:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#1a1a2e;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--space-0-5: .125rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 9999px}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;display:flex;justify-content:center;padding:var(--space-4)}#root{width:100%;max-width:480px}.app{display:flex;flex-direction:column;gap:var(--space-4)}.main>div{display:flex;flex-direction:column;gap:var(--space-4)}.demo-banner{background:linear-gradient(135deg,#ff6b35,#f7c59f);color:#1a1a2e;text-align:center;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:.85rem;font-weight:600;box-shadow:0 2px 8px #ff6b354d}.header{text-align:center}.header h1{font-size:1.75rem;color:#f0f0f0;margin-bottom:var(--space-3)}.nav{display:flex;justify-content:center;gap:var(--space-2)}.nav-link{position:relative;color:#94a3b8;text-decoration:none;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);transition:color .2s ease}.nav-link:hover{color:#f0f0f0}.nav-link.active{color:#4ade80}.nav-indicator{position:absolute;bottom:0;left:0;right:0;height:100%;background-color:#16213e;border-radius:var(--radius-md);z-index:-1}.digital-clock{background:linear-gradient(135deg,#16213e,#0f172a);border-radius:var(--radius-2xl);padding:var(--space-6);text-align:center;border:1px solid rgba(74,222,128,.1);box-shadow:0 4px 30px #0000004d,0 0 60px #4ade800d inset}.clock-time{display:flex;align-items:stretch;justify-content:center;font-size:3.5rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.05em;color:#4ade80;text-shadow:0 0 20px rgba(74,222,128,.4),0 0 40px rgba(74,222,128,.2)}.clock-separator{opacity:.7;animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:.7}51%,to{opacity:.3}}.clock-hours,.clock-minutes{display:inline-flex;align-items:center;min-width:2ch}.clock-sub{display:flex;flex-direction:column;justify-content:center;margin-left:var(--space-1);gap:var(--space-0-5);overflow:hidden}.clock-seconds{font-size:1.1rem;line-height:1;min-width:2ch}.clock-ampm{font-size:1rem;opacity:.8;font-weight:500;line-height:1}.clock-date{color:#94a3b8;font-size:1rem;margin-top:var(--space-2)}h1{font-size:1.75rem;text-align:center;margin-bottom:var(--space-6);color:#f0f0f0}h2{font-size:1.25rem;margin-bottom:var(--space-3);color:#b0b0b0}.btn{border:none;border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-block}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background-color:#2563eb}.btn-secondary{background-color:#475569;color:#fff}.btn-secondary:hover:not(:disabled){background-color:#334155}.btn-on{background-color:#4ade80;color:#1a1a2e}.btn-on:hover:not(:disabled){background-color:#22c55e}.btn-off{background-color:#64748b;color:#fff}.btn-off:hover:not(:disabled){background-color:#475569}.btn-stop{background-color:#ef4444;color:#fff;font-size:1.25rem;padding:var(--space-4) var(--space-8);width:100%}.btn-stop:hover:not(:disabled){background-color:#dc2626}.btn-warning{background-color:#f59e0b;color:#1a1a2e}.btn-warning:hover:not(:disabled){background-color:#d97706}.btn-danger{background-color:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-icon{padding:var(--space-2);min-width:2.5rem;font-size:1rem}.card{background:linear-gradient(145deg,#16213e,#1a1a2e);border-radius:var(--radius-xl);padding:var(--space-5);border:1px solid rgba(255,255,255,.05);box-shadow:0 4px 20px #0003}.clock-controls{display:flex;gap:var(--space-3);align-items:center;margin-bottom:var(--space-4)}.status-indicator{margin-left:auto;font-weight:500}.status-indicator.on{color:#4ade80}.status-indicator.off{color:#64748b}.duty-control{display:flex;align-items:center;gap:var(--space-3)}.duty-control input[type=range]{flex:1;height:8px;border-radius:4px;background:#334155;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;touch-action:none}.duty-control input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:#334155}.duty-control input[type=range]::-moz-range-track{height:8px;border-radius:4px;background:#334155;border:none}.duty-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:#4ade80;cursor:pointer;margin-top:-8px;border:none;box-shadow:0 2px 6px #0000004d}.duty-control input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:#4ade80;cursor:pointer;border:none;box-shadow:0 2px 6px #0000004d}.duty-value{min-width:3rem;text-align:right;font-variant-numeric:tabular-nums}.status-panel{background-color:#0f172a;border-radius:var(--radius-md);padding:var(--space-4);font-size:.875rem}.status-row{display:flex;justify-content:space-between;padding:var(--space-1) 0}.status-label{color:#94a3b8}.status-value{font-weight:500}.status-value.on{color:#4ade80}.status-value.off{color:#64748b}.status-value.warning{color:#ef4444}.latch-warning{background-color:#7f1d1d;border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4);text-align:center}.latch-warning p{margin-bottom:var(--space-3)}.alarms-page,.alarm-edit-page{display:flex;flex-direction:column;gap:var(--space-4)}.alarm-edit-page h2{margin-bottom:0}.page-header{display:flex;justify-content:space-between;align-items:center}.page-header h2{margin-bottom:0}.page-header-actions{display:flex;gap:var(--space-3)}.empty-state{text-align:center;padding:var(--space-12) var(--space-4);color:#94a3b8}.empty-state p{margin-bottom:var(--space-4)}.alarms-list{display:flex;flex-direction:column;gap:var(--space-3)}.alarm-item{display:flex;align-items:center;gap:var(--space-4);background:linear-gradient(145deg,#16213e,#1a1a2e);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);border:1px solid rgba(255,255,255,.05);box-shadow:0 2px 10px #00000026}.alarm-item.disabled{opacity:.5}.alarm-toggle{flex-shrink:0}.alarm-info{flex:1;text-decoration:none;color:inherit}.alarm-info:hover{opacity:.8}.alarm-time{font-size:1.5rem;font-weight:600;font-variant-numeric:tabular-nums;color:#f0f0f0}.alarm-meta{display:flex;gap:var(--space-3);font-size:.875rem;color:#94a3b8;margin-top:var(--space-1)}.alarm-name{color:#b0b0b0}.alarm-clock{background-color:#334155;padding:var(--space-0-5) var(--space-2);border-radius:var(--radius-sm);font-size:.75rem}.alarm-menu-container{position:relative;flex-shrink:0}.btn-menu{background:transparent;color:#94a3b8}.btn-menu:hover{color:#f0f0f0;background:#ffffff1a}.alarm-dropdown{position:absolute;top:100%;right:0;margin-top:var(--space-2);background:#1e293b;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);padding:var(--space-2);min-width:140px;z-index:100;box-shadow:0 10px 30px #0006}.dropdown-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);border:none;background:transparent;color:#e2e8f0;font-size:.9rem;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s}.dropdown-item:hover{background:#ffffff1a}.dropdown-item-danger{color:#f87171}.dropdown-item-danger:hover{background:#ef444426}.toggle{position:relative;display:inline-block;width:48px;height:28px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#475569;transition:.3s;border-radius:28px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:.3s;border-radius:50%}.toggle input:checked+.toggle-slider{background-color:#4ade80}.toggle input:checked+.toggle-slider:before{transform:translate(20px)}.alarm-form{display:flex;flex-direction:column;gap:var(--space-5)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-size:.875rem;color:#94a3b8;font-weight:500}.form-input,.form-select{background-color:#0f172a;border:1px solid #334155;border-radius:var(--radius-md);padding:var(--space-3);font-size:1rem;color:#f0f0f0;outline:none;transition:border-color .2s ease}.form-input:focus,.form-select:focus{border-color:#4ade80}.form-hint{font-size:.75rem;color:#64748b}.time-picker .time-inputs{display:flex;align-items:center;justify-content:center;gap:var(--space-1)}.time-input{width:3.5rem;text-align:center;font-size:1.75rem;font-weight:600;font-variant-numeric:tabular-nums;background-color:#0f172a;border:1px solid #334155;border-radius:var(--radius-md);padding:var(--space-3) var(--space-1);color:#4ade80;outline:none}.time-input:focus{border-color:#4ade80}.time-input-sm{width:3rem;font-size:1.5rem}.ampm-select{font-size:1.25rem;font-weight:600;background-color:#0f172a;border:1px solid #334155;border-radius:var(--radius-md);padding:var(--space-3) var(--space-3);color:#4ade80;outline:none;cursor:pointer;margin-left:var(--space-2)}.ampm-select:focus{border-color:#4ade80}.time-separator{font-size:2rem;font-weight:600;color:#64748b}.time-inputs-mobile{display:flex;justify-content:center}.time-input-native{width:100%;font-size:1.5rem;font-weight:600;background-color:#0f172a;border:1px solid #334155;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:#4ade80;outline:none;color-scheme:dark}.time-input-native:focus{border-color:#4ade80}.time-input-native.input-error{border-color:#ef4444}.radio-group{display:flex;gap:var(--space-4)}.radio-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;color:#f0f0f0}.radio-label input[type=radio]{accent-color:#4ade80;width:1rem;height:1rem}.days-picker{display:flex;gap:var(--space-2);flex-wrap:wrap}.day-btn{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background-color:#334155;color:#94a3b8;border:1px solid transparent;font-size:.875rem;cursor:pointer;transition:all .2s ease}.day-btn:hover{background-color:#475569}.day-btn.active{background-color:#4ade80;color:#1a1a2e}.form-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-4)}.error-message{background-color:#7f1d1d;color:#fecaca;padding:var(--space-3);border-radius:var(--radius-md);text-align:center}.loading{text-align:center;padding:var(--space-8);color:#94a3b8}.form-group.has-error label{color:#f87171}.input-error,.form-input.input-error,.form-select.input-error,.time-input.input-error{border-color:#ef4444!important;box-shadow:0 0 0 2px #ef444433}.form-error{display:block;color:#f87171;font-size:.8rem;margin-top:var(--space-2)}.alarm-notification-container{position:fixed;top:0;left:0;right:0;z-index:9999;display:flex;flex-direction:column;align-items:center;padding:var(--space-4);gap:var(--space-2);pointer-events:none}.alarm-notification{position:relative;width:100%;max-width:480px;background:linear-gradient(135deg,#2a1a3e,#1a1a2e);border:1px solid rgba(168,85,247,.4);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);cursor:pointer;pointer-events:auto;overflow:hidden;box-shadow:0 4px 20px #a855f733,0 0 40px #a855f714}.alarm-notification:active{transform:scale(.98)}.alarm-notification-pulse{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#a855f7,#ec4899,#a855f7);background-size:200% 100%;animation:alarm-pulse-slide 2s ease-in-out infinite}@keyframes alarm-pulse-slide{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.alarm-notification-content{display:flex;align-items:center;gap:var(--space-3)}.alarm-notification-icon{font-size:1.5rem;flex-shrink:0;animation:alarm-ring .6s ease-in-out infinite alternate}@keyframes alarm-ring{0%{transform:rotate(-8deg)}to{transform:rotate(8deg)}}.alarm-notification-text{display:flex;flex-direction:column;flex:1;min-width:0}.alarm-notification-title{font-weight:600;font-size:.95rem;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alarm-notification-subtitle{font-size:.8rem;color:#a78bfa}.alarm-notification-badge{flex-shrink:0;font-size:.7rem;color:#94a3b8;background:#94a3b81a;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);white-space:nowrap}.connect-page{display:flex;flex-direction:column;gap:var(--space-4)}.connect-subtitle{color:#94a3b8;font-size:.9rem;margin-top:calc(-1 * var(--space-1))}.connect-section{display:flex;flex-direction:column;gap:var(--space-3)}.connect-section-title{font-size:1rem;font-weight:600;color:#f0f0f0;margin:0}.connect-section-header{display:flex;align-items:center;gap:var(--space-2);color:#f0f0f0}.connect-section-header .connect-section-title{margin:0}.connect-url-card{display:flex;align-items:center;gap:var(--space-3);background:linear-gradient(145deg,#16213e,#1a1a2e);border:1px solid rgba(74,222,128,.15);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:0 2px 12px #0003}.connect-url-value{flex:1;font-size:1.05rem;font-weight:600;color:#4ade80;word-break:break-all;font-family:SF Mono,Fira Code,Cascadia Code,monospace}.connect-note{font-size:.8rem;color:#64748b}.copy-btn{display:inline-flex;align-items:center;gap:var(--space-1);flex-shrink:0;padding:var(--space-1) var(--space-3);background-color:#334155;color:#e2e8f0;border:none;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color .15s ease}.copy-btn:hover{background-color:#475569}.copy-btn:active{background-color:#3b82f6}.endpoint-list{display:flex;flex-direction:column;gap:var(--space-2)}.endpoint-card{background:linear-gradient(145deg,#16213e,#1a1a2e);border:1px solid rgba(255,255,255,.05);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);box-shadow:0 2px 8px #00000026}.endpoint-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-1)}.endpoint-name{font-size:.9rem;font-weight:500;color:#f0f0f0}.endpoint-method{font-size:.7rem;font-weight:700;letter-spacing:.05em;padding:var(--space-0-5) var(--space-2);border-radius:var(--radius-sm)}.method-get{background-color:#4ade8026;color:#4ade80}.method-post{background-color:#3b82f626;color:#60a5fa}.method-patch{background-color:#a855f726;color:#a78bfa}.method-delete{background-color:#ef444426;color:#f87171}.endpoint-group-header{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#64748b;padding-top:var(--space-2)}.endpoint-list>div:first-child>.endpoint-group-header{padding-top:0}.endpoint-id-tip{font-size:.8rem;color:#94a3b8;background-color:#a855f714;border:1px solid rgba(168,85,247,.15);border-radius:var(--radius-md);padding:var(--space-3) var(--space-3);line-height:1.5}.endpoint-url-row{display:flex;align-items:center;gap:var(--space-2)}.endpoint-path{flex:1;font-size:.8rem;color:#94a3b8;font-family:SF Mono,Fira Code,Cascadia Code,monospace;word-break:break-all}.steps-list{list-style:none;display:flex;flex-direction:column;gap:var(--space-3);padding:0}.step-item{display:flex;align-items:flex-start;gap:var(--space-3)}.step-number{flex-shrink:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;background-color:#4ade8026;color:#4ade80;font-size:.75rem;font-weight:700;border-radius:50%}.step-text{font-size:.875rem;color:#e2e8f0;line-height:1.5;padding-top:var(--space-0-5)}.connect-tip{font-size:.8rem;color:#94a3b8;background-color:#3b82f614;border:1px solid rgba(59,130,246,.15);border-radius:var(--radius-md);padding:var(--space-3) var(--space-3);line-height:1.5}.code-block-group{display:flex;flex-direction:column;gap:var(--space-3)}.code-block-item{display:flex;flex-direction:column;gap:var(--space-1)}.code-block-label{font-size:.75rem;font-weight:500;color:#94a3b8}.code-block{display:flex;align-items:center;gap:var(--space-2);background-color:#0f172a;border:1px solid #334155;border-radius:var(--radius-md);padding:var(--space-3) var(--space-3)}.code-block code{flex:1;font-size:.775rem;color:#e2e8f0;font-family:SF Mono,Fira Code,Cascadia Code,monospace;word-break:break-all;line-height:1.4}
