@font-face{font-family:Nunito;src:url('./assets/nunito-regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Nunito;src:url('./assets/nunito-extra-bold.ttf') format('truetype');font-weight:700 900;font-display:swap}
:root{color-scheme:light;--bg:#fff4e8;--panel:#fffaf3;--text:#63404c;--muted:#826367;--green:#aa5c4c;--green-text:#fffaf4;--sage:#fce1cf;--line:#ecd3c5;--soft:#f1e6f0;--shadow:0 7px 24px #a6664610;--danger:#a72e3c;--warm:#fff0d9;--hero:#ffe4ce;--hero-end:#fbd3bb;--nav:#fff8ef;--night-cloud:none;--glow:#f8dccc66;font-family:Nunito,ui-rounded,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;line-height:1.5}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 4%,var(--glow),transparent 45%),var(--bg);color:var(--text)}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #ab6b87;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,3.4vw,3.15rem);line-height:1.16;letter-spacing:-.035em;font-weight:800;margin-bottom:12px;overflow-wrap:anywhere}h2{font-size:1.5rem;line-height:1.25;font-weight:800}h3{font-size:1rem;font-weight:800}p{margin-bottom:16px}.muted,.subtle{color:var(--muted)}.subtle{font-size:.8125rem}.eyebrow{font-size:.6875rem;letter-spacing:.13em;font-weight:800;color:var(--muted);margin-bottom:12px}.shell{max-width:1500px;margin:auto;min-height:100vh;display:grid;grid-template-columns:230px minmax(0,1fr)}.sidebar{border-right:1px solid var(--line);padding:43px 28px;display:flex;flex-direction:column;min-height:100vh;background:var(--panel)}.brand{font-weight:800;font-size:2rem;letter-spacing:-.06em;display:inline-flex;align-items:center;gap:7px}.brand-dot{color:var(--green);font-size:.875rem;align-self:flex-start;margin-top:5px}.brand-caption{font-size:.875rem;color:var(--muted);line-height:1.7;margin:16px 0 46px}.sidebar nav{display:grid;gap:10px}.nav-item{border:0;background:transparent;text-align:left;padding:14px 18px;border-radius:19px;font-size:.9375rem;display:flex;gap:16px;align-items:center}.nav-item span{font-size:1.4rem;width:22px}.nav-item.active{background:var(--sage);font-weight:800}.sidebar-footer{margin-top:auto;padding:100px 18px 0}.local-mark{display:block;font-size:2rem;margin-bottom:5px}.sidebar-footer strong{font-size:1.25rem}.sidebar-footer p{font-size:.8125rem;color:var(--muted);margin-top:8px}.version{font-size:.6875rem;letter-spacing:.06em;color:var(--muted)}main{padding:0 clamp(24px,4.2vw,64px);min-width:0}.topbar{height:100px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.date-label{font-size:.875rem;color:var(--muted)}.profile-chip{background:var(--panel);border:1px solid var(--line);border-radius:30px;display:flex;align-items:center;gap:8px;font-size:.8125rem;padding:5px 13px 5px 5px;max-width:50%;overflow-wrap:anywhere}.profile-initial{display:grid;place-items:center;background:var(--sage);border-radius:50%;width:34px;height:34px;flex-shrink:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:34px 0 25px}.page-heading .muted{font-size:.9375rem;margin:0}.heading-note{font-size:1rem;line-height:1.6;font-weight:800;color:var(--muted);transform:rotate(-5deg);padding-right:15px}.today-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:26px;align-items:start}.sleep-card{position:relative;background:linear-gradient(160deg,var(--hero),var(--hero-end));border:1px solid var(--line);border-radius:38px;padding:23px 26px 14px;text-align:center;box-shadow:0 8px 0 #9a645008,var(--shadow)}.sleep-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.sleep-top .eyebrow{margin:0;font-size:.6875rem;letter-spacing:.08em}.pill{background:var(--panel);padding:5px 12px;border-radius:20px;font-size:.75rem}.cloud-hero{height:210px;margin:-7px -20px -17px;display:flex;align-items:center;justify-content:center;pointer-events:none}.cloud-hero img{width:100%;height:100%;object-fit:contain;filter:var(--night-cloud)}.sleep-copy>p:first-child{font-size:1rem;font-weight:800;margin:0 0 4px;color:var(--muted)}#timer-value{font-size:clamp(2.25rem,4vw,3.6rem);line-height:1.1;letter-spacing:-.045em;margin:5px 0 12px;overflow-wrap:anywhere}#timer-value .unit{font-size:1.35rem;letter-spacing:0}#prediction-detail{font-size:.875rem;max-width:340px;margin:0 auto;line-height:1.45}.awake-label{font-size:.8125rem;margin:13px 0 20px;color:var(--muted)}.primary,.secondary,.danger-button{min-height:46px;padding:12px 18px;border-radius:19px;border:1px solid transparent;font-size:.875rem;font-weight:800}.primary{background:var(--green);color:var(--green-text);box-shadow:0 4px 0 #82544313}.primary:hover{filter:brightness(.96)}.secondary{background:var(--panel);border-color:var(--line);color:var(--text)}.sleep-button{display:flex;width:100%;align-items:center;justify-content:center;gap:12px;font-size:1.05rem;min-height:56px;border-radius:24px}.sleep-button>span:first-child{font-size:1.5rem;line-height:1}.text-button{background:transparent;border:0;min-height:46px;color:var(--text);font-size:.875rem;padding:10px}.sleep-card>.text-button{width:100%;margin-top:8px;background:var(--panel);border:1px solid var(--line);border-radius:22px;min-height:48px}.day-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:28px;padding:25px;box-shadow:var(--shadow)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.section-heading h2{margin:0}.sun-symbol{color:#b98235;padding-right:5px}.day-totals{display:grid;grid-template-columns:1.2fr 1fr;padding:20px 0;margin-bottom:8px;border-bottom:1px solid var(--line);gap:16px}.day-totals>div{display:flex;flex-direction:column;gap:3px}.day-totals strong{font-weight:800;font-size:1.8rem;line-height:1.3}.day-totals span{font-size:.8125rem;color:var(--muted)}.day-totals>div+div{border-left:1px solid var(--line);padding-left:20px}.empty{text-align:center;padding:26px 0 16px;color:var(--muted)}.empty>span{font-size:2rem;color:var(--text);display:block;margin-bottom:10px}.empty h3{font-size:1.1rem;color:var(--text);margin-bottom:8px}.empty p{font-size:.875rem;line-height:1.65;margin:0}.gentle-note{display:flex;gap:12px;padding:18px 12px 0;align-items:center}.gentle-note>span{font-size:1.6rem;color:var(--green)}.gentle-note p{font-size:.8125rem;color:var(--muted);line-height:1.7;margin:0}.gentle-note strong{font-weight:400;color:var(--text)}.learning-card{margin-top:20px;padding:20px 23px;background:var(--soft);border-radius:26px}.learning-heading{display:flex;align-items:center;gap:10px}.learning-heading>span{font-size:1.65rem}.learning-heading h2{font-size:1.1rem;margin:0}.learning-card p{font-size:.875rem;margin:8px 0;color:var(--muted)}.learning-card .learning-evidence{font-size:.8125rem;font-weight:800;color:var(--text)}details{margin-top:12px}summary{font-size:.8125rem;cursor:pointer;min-height:35px;display:list-item;list-style-position:inside;padding:7px 0}details p{line-height:1.6}.bottom-strip{display:flex;align-items:center;justify-content:space-between;padding:22px 0;margin-top:24px;border-top:1px solid var(--line);gap:20px}.bottom-strip>div{display:flex;align-items:center;gap:15px}.bottom-strip>div>span{font-size:2rem}.bottom-strip p{font-size:.8125rem;color:var(--muted);margin:0}.bottom-strip strong{font-weight:800;color:var(--text)}.quiet-link{background:none;border:0;font-size:.8125rem;min-height:44px;white-space:nowrap}.quiet-link span{margin-left:8px}.main-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:23px 0 28px;color:var(--muted);font-size:.75rem;margin-top:12px;gap:12px}.onboarding{background:var(--warm);border:1px dashed var(--line);padding:12px 18px;border-radius:22px;display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:22px}.onboarding strong{font-size:.875rem;font-weight:800}.onboarding p{font-size:.8125rem;margin:3px 0 0;color:var(--muted)}.onboarding button{flex-shrink:0}.mobile-brand,.mobile-nav{display:none}.timeline .entry{border-bottom:1px solid var(--line)}.entry:last-child{border-bottom:0}.entry{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:none;border:0;min-height:74px;padding:14px 0}.entry-dot{width:10px;height:10px;border-radius:50%;background:var(--green);flex-shrink:0}.entry-content{flex:1;min-width:0}.entry strong{display:block;font-size:.875rem;font-weight:800}.entry small{display:block;font-size:.8125rem;color:var(--muted);margin-top:4px}.entry-note{overflow-wrap:anywhere}.entry-duration{font-size:.8125rem;white-space:nowrap}.running .entry-dot{box-shadow:0 0 0 5px var(--sage)}.history-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:22px}.icon-button{border:0;background:transparent;border-radius:15px;min-width:44px;min-height:44px;font-size:1.5rem}.date-control{margin:0;display:flex;gap:12px;align-items:center;color:var(--muted);font-size:.875rem}.date-control input{width:auto}.panel{margin-bottom:24px}.history-entries{margin-top:25px}.history-entries .section-heading{margin-bottom:16px}.history-entries .entry{border-top:1px solid var(--line)}.week-chart{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin-top:28px}.chart-day{display:flex;flex-direction:column;align-items:center;gap:10px;background:transparent;border:0;padding:0;color:var(--muted);font-size:.8125rem;min-width:0}.chart-day .bar-track{height:110px;display:flex;align-items:flex-end;width:100%;max-width:45px;background:var(--bg);border-radius:14px}.chart-day .bar{background:var(--green);width:100%;border-radius:14px;min-height:0}.chart-day[aria-pressed=true] .day-label{background:var(--sage);border-radius:10px;color:var(--text)}.day-label{padding:5px 6px;min-height:32px}.chart-value{font-size:.75rem;line-height:1.2;min-height:29px;display:flex;align-items:center;justify-content:center}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}.settings-grid .panel h2{margin-bottom:22px}label{display:block;font-size:.875rem;margin-bottom:19px;font-weight:800}input,textarea,select{display:block;width:100%;min-width:0;margin-top:8px;padding:12px 13px;min-height:46px;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:14px;font-size:1rem}textarea{resize:vertical}.optional{color:var(--muted);font-weight:400;font-size:.8125rem}.field-help{font-size:.8125rem;line-height:1.65;color:var(--muted)}.full-width{width:100%}.backup-status{font-size:.8125rem;background:var(--sage);padding:12px;border-radius:15px}.install-panel p{font-size:.875rem;line-height:1.8}.install-panel strong{font-weight:800}dialog{width:min(480px,calc(100% - 28px));background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:28px;padding:26px;max-height:90dvh;overflow-y:auto}dialog::backdrop{background:#40293799;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.dialog-heading h2{margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.danger-button{background:transparent;color:var(--danger);margin-right:auto}.form-error{color:var(--danger);font-size:.875rem;min-height:1.2em}.notice{padding:16px;border-radius:17px;margin-top:20px;font-size:.875rem}.danger{color:var(--danger);background:var(--warm)}.toast{position:fixed;z-index:10;bottom:30px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);width:max-content;display:flex;align-items:center;gap:14px;background:var(--text);color:var(--bg);border-radius:19px;padding:12px 15px;box-shadow:0 8px 40px #0002;font-size:.875rem}.toast button{border:0;background:none;color:inherit;min-height:35px;font-size:.8125rem;text-decoration:underline}.toast #dismiss-toast{font-size:1.4rem;text-decoration:none}.sleeping .pill{background:var(--soft)}
:root[data-theme=dark]{color-scheme:dark;--bg:#2a2130;--panel:#352a3b;--text:#f9e8e0;--muted:#d2b9c4;--green:#ebad98;--green-text:#472c3b;--sage:#59404e;--line:#614755;--soft:#43364f;--shadow:0 8px 22px #0001;--danger:#ffb2a4;--warm:#433341;--hero:#57404d;--hero-end:#473344;--nav:#322735;--night-cloud:brightness(.85);--glow:#76566d22}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#2a2130;--panel:#352a3b;--text:#f9e8e0;--muted:#d2b9c4;--green:#ebad98;--green-text:#472c3b;--sage:#59404e;--line:#614755;--soft:#43364f;--shadow:0 8px 22px #0001;--danger:#ffb2a4;--warm:#433341;--hero:#57404d;--hero-end:#473344;--nav:#322735;--night-cloud:brightness(.85);--glow:#76566d22}}
@media(max-width:1080px){.shell{grid-template-columns:195px 1fr}.sidebar{padding:35px 20px}.sidebar .brand{font-size:1.8rem}.heading-note{display:none}.today-grid,.settings-grid{gap:20px}.day-card,.panel{padding:20px}.sleep-card{padding:20px 18px 12px}.day-totals strong{font-size:1.5rem}.cloud-hero{height:180px}.sleep-top .eyebrow{font-size:.625rem}}
@media(max-width:800px){.shell{display:block}.sidebar{display:none}main{padding:0 24px}.topbar{height:76px}.mobile-brand{display:inline-flex;font-size:1.85rem}.date-label{display:none}.page-heading{margin:25px 0 20px}.mobile-nav{position:fixed;z-index:5;bottom:0;left:0;right:0;display:flex;justify-content:space-around;background:var(--nav);border-top:1px solid var(--line);border-radius:25px 25px 0 0;padding:8px 15px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -8px 28px #8d575308}.mobile-nav button{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:72px;min-height:48px;background:transparent;border:0;color:var(--muted);font-size:.8125rem}.mobile-nav button>span{font-size:1.5rem;line-height:1.25}.mobile-nav button.active{color:var(--text);background:var(--sage);border-radius:17px;font-weight:800}.main-footer{padding-bottom:110px}.toast{bottom:calc(90px + env(safe-area-inset-bottom))}}
@media(max-width:580px){main{padding:0 18px}.today-grid,.settings-grid{grid-template-columns:1fr}.page-heading h1{font-size:1.85rem;max-width:330px;line-height:1.16;margin-bottom:7px}.page-heading{margin:19px 0 16px}.page-heading .eyebrow{display:none}.page-heading .muted{font-size:.875rem}.onboarding{padding:9px 12px;margin-bottom:15px;gap:10px;align-items:center}.onboarding p{display:none}.onboarding strong{font-size:.8125rem}.onboarding button{font-size:.75rem;min-height:40px;padding:8px 11px;border-radius:15px}.sleep-card{padding:15px 20px 13px;border-radius:32px}.sleep-top .eyebrow{font-size:.625rem}.cloud-hero{height:165px;margin:-10px -17px -14px}#timer-value{font-size:2.65rem;margin:5px 0 9px}.sleep-copy>p:first-child{font-size:.9375rem}#prediction-detail{font-size:.8125rem}.awake-label{font-size:.75rem;margin:10px 0 14px}.sleep-button{min-height:51px}.sleep-card>.text-button{min-height:43px;margin-top:8px;font-size:.8125rem}.today-grid{gap:20px}.day-card{padding:20px 22px;border-radius:28px}.day-totals{padding:16px 0;margin:0}.day-totals strong{font-size:1.65rem}.section-heading h2{font-size:1.3rem}.day-totals>div+div{padding-left:17px}.learning-card{padding:18px 20px}.section-heading .subtle{font-size:.75rem}.bottom-strip{align-items:flex-start;gap:12px}.bottom-strip>div>span{display:none}.bottom-strip p{font-size:.75rem}.quiet-link{font-size:.75rem;padding:0}.quiet-link span{margin-left:3px}.date-control{font-size:.8125rem;display:block}.history-toolbar{justify-content:space-between}.week-chart{gap:7px}.settings-grid{gap:0}.profile-chip{font-size:.75rem}.main-footer{font-size:.6875rem}.toast{gap:8px;font-size:.8125rem;padding:10px 12px;flex-wrap:wrap}.toast #toast-text{max-width:220px}.empty{padding:22px 0 12px}.profile-initial{width:28px;height:28px}}
@media(max-width:360px){main{padding:0 13px}.onboarding strong{font-size:.75rem}.sleep-card{padding:14px 16px}.cloud-hero{height:142px}.page-heading h1{font-size:1.7rem}.brand{font-size:1.6rem}.day-card,.panel{padding:18px}.day-totals strong{font-size:1.4rem}.history-toolbar{gap:4px}.date-control input{max-width:175px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s,filter .15s}.view{animation:arrive .2s ease-out}@keyframes arrive{from{opacity:.7;transform:translateY(4px)}to{opacity:1;transform:none}}}

#greeting{white-space:pre-line}

:is(.earlier-modes,.wake-modes){border:0;padding:0;margin:0 0 22px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
:is(.earlier-modes,.wake-modes) legend{font-size:.875rem;font-weight:800;margin-bottom:10px}
:is(.earlier-modes,.wake-modes) label{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:12px 10px;font-size:.8125rem;margin:0;min-height:48px;cursor:pointer}
:is(.earlier-modes,.wake-modes) label:has(input:checked){background:var(--sage);border-color:var(--green)}
:is(.earlier-modes,.wake-modes) input{appearance:auto;accent-color:var(--green);width:17px;height:17px;min-height:17px;margin:0;padding:0;flex-shrink:0}
:is(#earlier-dialog,#wake-dialog) .dialog-actions{flex-wrap:wrap}
@media(max-width:360px){:is(.earlier-modes,.wake-modes){grid-template-columns:1fr}:is(#earlier-dialog,#wake-dialog){padding:20px}}

.awake-timer{display:flex;flex-direction:column;gap:3px;margin:15px 0 19px;padding:12px;background:var(--panel);border-radius:20px}.awake-timer span{font-size:.8125rem;color:var(--muted)}.awake-timer strong{font-size:1.8rem;font-variant-numeric:tabular-nums;line-height:1.2}
