:root{color-scheme:dark;--bg:#171b21;--panel:#22272f;--panel2:#2b3038;--text:#f5f0e7;--muted:#a7a9ac;--amber:#f2bf7e;--line:#363b43;--green:#b4d0ae;--red:#f0a89a;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.5}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--amber);outline-offset:4px}button{color:inherit}a{color:inherit}h1,h2,h3,p{margin:0}h1{font-size:30px;font-weight:560;letter-spacing:-1px;line-height:1.2}h2{font-size:20px;font-weight:560;letter-spacing:-.4px}h3{font-size:16px;font-weight:600}small,.muted{color:var(--muted)}small{font-size:12px}.app-shell{max-width:480px;margin:auto;min-height:calc(100dvh - 33px);position:relative;padding-bottom:100px}.demo-bar{height:33px;background:#30353d;color:#e2dfd9;display:flex;align-items:center;justify-content:space-between;padding:0 16px;gap:10px;font-size:9px;letter-spacing:1.1px}.demo-bar button{background:none;border:0;text-decoration:underline;font-size:10px;letter-spacing:0;padding:5px}#demo-controls{padding:16px;background:#30353d;max-width:480px;margin:auto}#demo-controls p{font-size:12px;color:#c5c6c7;margin-top:8px}#demo-controls label{font-size:12px}#demo-controls select{margin:5px 0}.app-header{padding:24px 24px 22px;display:flex;justify-content:space-between;align-items:center}.wordmark{display:flex;align-items:center;gap:5px;font-size:16px;text-decoration:none;letter-spacing:-.4px}.wordmark strong{font-weight:650}.brand-sun{width:18px;height:10px;border-radius:18px 18px 0 0;border:1.7px solid var(--amber);border-bottom:2px solid var(--amber);display:inline-block;position:relative;margin-right:7px}.brand-sun:before{content:"";position:absolute;width:1px;height:4px;background:var(--amber);left:7px;top:-7px}.status-pill{padding:5px 10px;font-size:11px;border:1px solid #3d4a3e;border-radius:20px;color:var(--green);background:transparent}.status-pill:before{content:"";display:inline-block;width:5px;height:5px;background:currentColor;border-radius:50%;margin-right:6px}.status-pill.warning{border-color:#66513f;color:var(--amber)}main{padding:0 24px}.eyebrow{font-size:10px;letter-spacing:1.7px;text-transform:uppercase;color:var(--muted);font-weight:600}.intro{margin-bottom:22px}.intro p{margin-top:8px;font-size:13px;color:var(--muted)}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.row.start{align-items:flex-start}.section-heading{margin:27px 0 13px}.section-heading h2{font-size:17px}.hero{background:radial-gradient(ellipse 65% 66% at 50% 95%,#81564466,transparent 95%),linear-gradient(160deg,#2e3039,#24252c 65%);border:1px solid #424047;border-radius:20px;overflow:hidden;padding:24px 22px 19px;position:relative;text-align:center}.hero .eyebrow{color:#d2bba4}.big-time{font-size:76px;font-weight:300;letter-spacing:-5px;font-variant-numeric:tabular-nums;line-height:1.18;margin:5px 0}.hero .day{font-size:13px;color:#d4cec8}.sunrise{height:62px;position:relative;margin:10px -22px 0;overflow:hidden}.sunrise:before{content:"";position:absolute;left:50%;transform:translateX(-50%);width:158px;height:158px;border:1px solid #f1b16f;border-radius:50%;top:8px;box-shadow:0 0 50px 16px #eda56b1e,inset 0 0 45px #eda56b12;background:linear-gradient(#e6a96622,#e6a96600)}.sunrise:after{content:"";position:absolute;top:59px;left:22px;right:22px;height:1px;background:linear-gradient(90deg,transparent,#bd9976,transparent)}.hero-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;text-align:left;font-size:11px;color:#d8d0c8;gap:10px}.hero-foot strong{color:var(--amber);font-weight:500}.badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;background:#ffffff0b;border:1px solid #ffffff14;border-radius:5px;padding:3px 7px}.badge.amber{color:var(--amber);background:#f2bf7e0d;border-color:#f2bf7e25}.button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:11px;background:var(--panel);text-decoration:none;padding:10px 15px;font-size:13px;font-weight:550}.button.primary{background:var(--amber);border-color:var(--amber);color:#28221b}.button.ghost{background:transparent}.button.danger{color:var(--red);border-color:#704a45;background:transparent}.button.full{width:100%}.text-button{background:none;border:0;color:var(--amber);padding:8px 0;font-size:12px}.hero+.button{margin-top:12px}.schedule-switch{padding:19px 0;border-bottom:1px solid var(--line)}.schedule-switch p{font-size:11px;color:var(--muted);margin-top:2px}.switch{display:inline-flex;align-items:center;flex-shrink:0;position:relative;cursor:pointer}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0}.switch span{display:block;width:42px;height:25px;background:#454950;border-radius:16px;border:1px solid #62646a}.switch span:after{content:"";display:block;width:19px;height:19px;border-radius:50%;background:#d5d4d2;margin:2px;transition:transform .15s}.switch input:checked+span{background:var(--amber);border-color:var(--amber)}.switch input:checked+span:after{background:#302923;transform:translateX(17px)}.switch input:focus-visible+span{outline:2px solid white;outline-offset:4px}.alarm-row{display:flex;align-items:center;border-bottom:1px solid var(--line);gap:10px;min-height:91px}.alarm-open{flex:1;min-width:0;background:transparent;border:0;text-align:left;padding:14px 0;display:flex;align-items:center;gap:17px}.alarm-time{font-size:29px;letter-spacing:-1.2px;font-weight:350;white-space:nowrap}.alarm-details{font-size:12px}.alarm-details small{display:block;font-size:10px;margin-top:2px}.alarm-row.disabled .alarm-open{opacity:.42}.plus{font-size:20px;font-weight:300;line-height:15px}.notice{border:1px solid #6a5342;background:#ad763515;padding:12px;border-radius:11px;margin-bottom:15px;font-size:12px;color:#e8c7a2}.notice.success{border-color:#415042;background:#849d7710;color:var(--green)}.note{font-size:12px;color:var(--muted);line-height:1.6}.spacer{height:16px}.empty{text-align:center;padding:24px 15px;color:var(--muted)}.empty h2{color:var(--text);margin-bottom:6px}.empty .big-time{font-size:50px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:#1c2027f5;border-top:1px solid #383c43;display:flex;justify-content:space-around;z-index:5;padding:11px 12px max(14px,env(safe-area-inset-bottom));backdrop-filter:blur(15px)}.nav-button{width:25%;border:0;background:none;color:#858a94;font-size:10px;display:flex;align-items:center;flex-direction:column;gap:5px;min-height:45px;text-decoration:none}.nav-button.active{color:var(--amber)}.nav-button svg{width:21px;height:21px;stroke-width:1.5}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--line);background:transparent;border-radius:11px}.icon-button svg{width:18px}.month-nav{margin-top:25px;margin-bottom:16px}.month-nav h2{font-size:18px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.weekday{font-size:10px;color:var(--muted);text-align:center;padding-bottom:9px}.calendar button{border:1px solid transparent;background:var(--panel);border-radius:9px;min-width:0;min-height:49px;position:relative;font-size:13px;padding:5px}.calendar button.outside{background:transparent;color:#737781}.calendar button.selected{border-color:var(--amber);background:#f2bf7e15;color:var(--amber)}.calendar button.today{font-weight:750}.calendar button.excluded{color:#bd9f94;background:repeating-linear-gradient(135deg,#302b2c,#302b2c 4px,#352d2f 4px,#352d2f 5px);text-decoration:line-through}.calendar button .dot{width:3px;height:3px;position:absolute;border-radius:50%;background:var(--amber);bottom:6px;left:calc(50% - 1.5px)}.calendar button.excluded .dot{display:none}.legend{display:flex;gap:15px;margin:14px 0 24px;font-size:10px;color:var(--muted)}.legend span:before{content:"";width:5px;height:5px;background:var(--amber);display:inline-block;margin-right:5px;border-radius:50%}.legend span:last-child:before{border-radius:0;background:#9d8277}.day-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:17px}.day-card p{font-size:12px;color:var(--muted);margin:6px 0 15px}.day-card .button+.button{margin-top:8px}.day-alarms{margin-bottom:12px}.day-alarms div{font-size:13px;padding:8px 0;border-bottom:1px solid var(--line)}label.field{display:block;margin:18px 0 0;font-size:12px;color:var(--muted)}input:not([type=checkbox]):not([type=range]):not([type=color]),select{display:block;width:100%;background:var(--panel);border:1px solid #484b52;border-radius:10px;min-height:47px;color:var(--text);padding:10px 12px;margin-top:7px}input[type=time]{font-size:38px!important;text-align:center;font-weight:350;letter-spacing:-1px;min-height:78px!important}input[type=range]{accent-color:var(--amber);width:100%;height:28px;margin:8px 0}input[type=color]{border:0;border-radius:8px;padding:0;width:48px;height:42px;background:transparent;cursor:pointer}.segmented{display:flex;background:#11151b;border:1px solid var(--line);padding:4px;border-radius:11px;gap:4px;margin-top:8px}.segmented button{flex:1;min-height:39px;border:0;background:none;border-radius:7px;font-size:12px;color:var(--muted)}.segmented button.active{background:#383b41;color:var(--text)}.days-select{display:flex;gap:6px;margin-top:12px}.days-select button{flex:1;min-width:0;height:39px;border:1px solid var(--line);background:var(--panel);border-radius:9px;font-size:11px}.days-select button.active{color:#2a231a;background:var(--amber);border-color:var(--amber)}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.mode-option{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:14px 11px;text-align:left;min-height:81px}.mode-option.active{border-color:var(--amber);background:#f2bf7e0b}.mode-option strong{font-size:14px;font-weight:550;display:block}.mode-option small{display:block;margin-top:3px;font-size:11px}.toggle-row{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:19px 0}.toggle-row p{font-size:11px;color:var(--muted);margin-top:4px}.timeline{border-left:1px solid #655442;margin:20px 0 21px 4px;padding-left:19px;display:grid;gap:14px;font-size:12px}.timeline div{position:relative}.timeline div:before{content:"";position:absolute;left:-23px;top:6px;width:6px;height:6px;border:1px solid var(--amber);background:var(--bg);border-radius:50%}.timeline strong{color:var(--amber);font-weight:550;font-variant-numeric:tabular-nums;margin-right:8px}.form-actions{display:grid;gap:9px;margin-top:24px}.back{border:0;background:none;color:var(--muted);padding:0 0 16px;font-size:12px;display:flex;align-items:center;gap:6px}.back svg{width:15px;height:15px}.light-orb{height:204px;display:flex;justify-content:center;align-items:center;position:relative}.orb{width:123px;height:123px;border-radius:50%;background:var(--light-color,#efad6c);box-shadow:0 0 65px 5px color-mix(in srgb,var(--light-color,#efad6c),transparent 65%),inset 0 0 30px #fff4;transition:background .3s,opacity .3s}.orb.off{opacity:.12;box-shadow:none}.swatches{display:flex;justify-content:space-between;gap:9px;margin:14px 0 22px}.swatch{background:var(--swatch);border:3px solid var(--bg);outline:1px solid #ffffff20;width:41px;height:41px;border-radius:50%;position:relative}.swatch.active{outline:2px solid var(--amber)}.swatch.active:after{content:"✓";color:#151515;font-size:16px}.setting-group{margin-top:25px}.setting-group h2{font-size:11px;letter-spacing:1.3px;text-transform:uppercase;color:var(--amber);margin-bottom:12px}.setting-row{padding:15px 0;border-bottom:1px solid var(--line)}.setting-row p{color:var(--muted);font-size:11px;margin-top:4px}.setting-row .value{font-variant-numeric:tabular-nums;color:var(--amber);font-size:13px}.status-list{display:grid;grid-template-columns:1fr auto;gap:12px;font-size:12px;margin:16px 0}.status-list dt{color:var(--muted)}.status-list dd{margin:0;text-align:right}.login{padding-top:36px}.login-art{height:125px;position:relative;overflow:hidden;margin:0 -24px 34px;background:radial-gradient(ellipse at bottom,#b27b4338,transparent 65%)}.login-art .sunrise{height:140px;margin:0;top:45px}.login-art .sunrise:before{width:200px;height:200px;top:0}.login-art .sunrise:after{top:77px}.login h1{font-size:34px;max-width:260px}.login p{font-size:13px;color:var(--muted);margin-top:12px}.login .button{margin-top:23px}.login-foot{margin-top:28px;text-align:center;font-size:11px;color:var(--muted)}.active-alarm{text-align:center}.active-alarm h1{margin:12px 0 7px}.active-alarm .big-time{font-size:65px}.live-label{color:var(--amber);font-size:11px;letter-spacing:1.4px}.live-description{font-size:12px;color:var(--muted);margin:13px 0 23px}.phase-track{display:flex;gap:4px;margin:20px 0 6px}.phase-track span{height:4px;border-radius:3px;flex:1;background:#34363c}.phase-track span.on{background:var(--amber)}.phase-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.simulation{margin-top:23px;text-align:left;border:1px dashed #666057;border-radius:12px;padding:14px}.simulation label{font-size:11px;color:var(--muted)}.simulation .button{margin-top:8px}.signal-glyph{margin:15px auto 9px;display:flex;gap:8px;justify-content:center;align-items:center}.signal-glyph i{width:30px;height:30px;border:1px solid var(--amber);border-radius:50%;background:#f2bf7e}.signal-glyph i:last-child{background:transparent}.preview-disc{width:110px;height:110px;border-radius:50%;margin:30px auto;background:#b76c42;box-shadow:0 0 60px #d3965233;transition:background .4s,opacity .4s}dialog{color:var(--text);background:var(--bg);border:1px solid #57504a;border-radius:20px;padding:24px;width:calc(100% - 32px);max-width:400px;max-height:88dvh;overflow:auto}dialog::backdrop{background:#090b10bb;backdrop-filter:blur(5px)}dialog h2{font-size:23px;margin-bottom:9px}dialog .button{margin-top:12px}dialog .note{margin-top:9px}.modal-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.modal-top .icon-button{width:34px;height:34px;flex-shrink:0}.error{font-size:12px;color:var(--red);margin-top:9px}#toast{position:fixed;bottom:95px;left:50%;transform:translateX(-50%) translateY(12px);width:max-content;max-width:calc(100% - 40px);padding:12px 17px;border-radius:11px;background:#eee7db;color:#26221e;font-size:12px;box-shadow:0 6px 30px #0005;z-index:30;opacity:0;pointer-events:none;transition:.2s}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}[hidden]{display:none!important}.inline-link{font-size:12px;color:var(--amber);text-decoration:underline}.mini-empty{padding:13px 0;color:var(--muted);font-size:12px}.paused-banner{margin-top:15px;color:var(--amber);font-size:12px}.rule-note{font-size:11px;padding:11px 0;color:var(--muted)}.reveal{animation:appear .22s ease-out}@keyframes appear{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(min-width:600px){body{background:#11151b}.app-shell{background:var(--bg);border-left:1px solid #2b3038;border-right:1px solid #2b3038}.demo-bar{max-width:480px;margin:auto}}@media(max-width:360px){main{padding:0 18px}.app-header{padding:21px 18px}.big-time{font-size:68px}.hero{padding:20px 16px 16px}.alarm-time{font-size:26px}.alarm-open{gap:12px}.calendar{gap:3px}.calendar button{min-height:45px}.hero-foot{font-size:10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.switch{min-height:44px}.switch input{z-index:1;cursor:pointer}.switch span{pointer-events:none}.day-alarms .text-button{display:block;padding:5px 0}
.app-shell{min-height:100dvh}.switch{min-height:44px}.signal-glyph{flex-wrap:wrap}.signal-glyph span{font-size:13px}.login{padding-top:18px}

.palette-tools{margin-top:8px}.palette-tools .text-button{min-height:44px}.palette-tools .note{font-size:12px}.swatch.editable{position:relative}.swatch.editable:after{content:'✎';position:absolute;right:-3px;bottom:-3px;width:22px;height:22px;border-radius:50%;background:var(--panel);border:1px solid var(--line);color:var(--text);font-size:15px;line-height:20px}#preset-form input[type=color]{width:100%;height:64px;cursor:pointer}
