/* 设计 token 唯一来源：颜色、字号、间距只在这里定义，其他地方一律引用 var()。 */
:root{--focus-ring:2px solid var(--app-accent-strong);--font-ui:system-ui,-apple-system,"PingFang SC","Noto Sans CJK SC","Microsoft YaHei UI","Microsoft YaHei",sans-serif;font-family:var(--font-ui);color:var(--app-ink);background:var(--app-bg);font-size:16px;color-scheme:light;
 /* 颜色：页面、表面、文字、强调色（--green/--surface/--tint 是旧名，只做别名） */
 --app-bg:#faf9f5;--app-surface:#fffdf8;--app-card:#eef2e9;--app-ink:#28362d;--muted:#657165;--line:#e4e6dd;--app-accent:#3d6a55;--app-accent-strong:#315b4c;--green:var(--app-accent);--surface:var(--app-surface);--tint:var(--app-card);
 /* 字号 */
 --text-body:16px;--text-title:16px;--text-meta:12px;--type-action:.9375rem;--type-reading:1rem;--type-section:1.125rem;--type-control:.8125rem;--type-meta:.75rem;
 /* 间距、圆角、尺寸 */
 --space-group:12px;--space-section:16px;--surface-radius:7px;--reading-width:46rem;--nav-height:76px;
}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;color:inherit;padding:9px 14px;min-height:44px}@media(hover:hover) and (pointer:fine){button:hover{background:#edf2eb}.primary:hover{background:#244636}}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--green);color:#fff;border-color:var(--green)}.danger{color:#a33832}.shell{display:grid;grid-template-columns:214px minmax(0,1fr);max-width:1440px;margin:auto;min-height:100vh}aside{border-right:1px solid var(--line);padding:36px 24px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;font-size:25px;font-weight:700;color:inherit;text-decoration:none}.brand small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:6px}.mark{display:grid;place-items:center;background:var(--green);color:white;width:42px;height:45px;border-radius:12px;font-size:23px}nav{display:grid;gap:8px;margin-top:46px}nav button{text-align:left;background:transparent;border:0;font-weight:550;padding:13px 16px}nav button span{font-size:20px;margin-right:15px;display:inline-block;width:22px}nav button.active{background:#dfe9dc;}.aside-note{margin-top:auto;font-size:14px;line-height:1.9;color:var(--muted)}.aside-note p{font-size:12px}main{min-width:0;max-width:1040px;width:100%;margin:0 auto;padding:38px 48px 26px}header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}h1{font-size:30px;letter-spacing:-1px;margin:5px 0 0}h2{font-size:20px;margin:0}h3{font-size:17px;margin:0}.eyebrow{font-size:14px;color:var(--muted);margin:0}.composer{background:#fff;border:1px solid #c6d4c3;border-radius:18px;padding:22px;box-shadow:0 4px 18px #243c2f06}.composer label{display:block;font-size:17px;font-weight:600}.composer textarea{border:0;padding:14px 0 4px;resize:vertical;min-height:98px}.composer textarea:focus{outline:0}.composer:focus-within{border-color:var(--green)}textarea,input,select{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:white;color:inherit;line-height:1.6}textarea{resize:vertical}textarea:focus,input:focus,select:focus{outline:var(--focus-ring);outline-offset:1px}.composer-bottom,.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.composer-bottom{justify-content:space-between}.muted{color:var(--muted);font-size:14px;line-height:1.65}.composer #input-status:empty{display:none}.stats{display:flex;gap:24px;margin:0 0 28px;padding:0 3px;color:var(--muted);font-size:14px}.stats strong{color:var(--green);font-size:21px;margin-right:5px}.section-head{display:flex;justify-content:space-between;gap:12px;margin:0 0 12px}.count{font-size:13px;color:var(--muted);background:#e7ece3;border-radius:7px;padding:2px 7px;margin-left:8px}.task{margin-bottom:10px}.task-row{display:flex;}.check{padding:0;min-height:24px;min-width:24px;width:24px;height:24px;border-radius:50%;flex-shrink:0;margin-top:2px;color:var(--green);border-color:#adbeab}.task h3{line-height:1.6;overflow-wrap:anywhere}.time{color:var(--green);font-weight:700}.task .preview{margin:8px 0 0;font-size:14px;line-height:1.7;color:#50654f;white-space:pre-wrap;overflow-wrap:anywhere}.preview b{font-weight:600;color:var(--app-accent-strong)}.task summary{cursor:pointer;font-size:14px;color:var(--muted);padding:12px 0 0}.task .body{padding:8px 0 0;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.task .actions{margin-top:12px}.task .actions button,.tiny{font-size:14px;padding:5px 10px;min-height:44px}.plain{border:0;background:transparent;padding:3px 7px}.star{font-size:21px;color:#7b846e}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}.tag{font-size:12px;color:#657361;background:#eef1e9;border-radius:5px;padding:2px 7px}.empty{border:1px dashed #cbd5c7;color:var(--muted);line-height:1.8;}.empty strong{color:#344d3e;display:block;font-weight:550;margin-bottom:4px}.group{border-left:3px solid #aac09d;}.group h3{font-size:14px;color:var(--muted);margin:0 0 10px}.cognition p{line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.cognition input[type=checkbox]{width:20px;height:20px;accent-color:var(--green);margin-right:10px}.cognition .title-row{display:flex;}.settings-box{margin-bottom:18px}.field{display:block;margin-bottom:15px;font-size:14px}.field>span{display:block;margin-bottom:7px;color:#52604e}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checkbox{display:flex;align-items:center;gap:10px;margin:12px 0;font-size:14px}.checkbox input{width:18px;height:18px;accent-color:var(--green)}.record{border-bottom:1px solid var(--line)}.record p{white-space:pre-wrap;line-height:1.8;overflow-wrap:anywhere}.record-head{display:flex;justify-content:space-between;gap:8px;font-size:14px;color:var(--muted)}.notice{padding:13px 16px;background:#edf1e8;border-radius:10px;line-height:1.8;font-size:14px;margin-bottom:18px}.error{color:#a33832}.timeline{border-left:2px solid #cddbc5;padding-left:14px}.timeline p{margin:5px 0}.timeline time{font-size:12px;color:var(--muted)}.done h3{text-decoration:line-through;color:var(--muted)}footer{color:#788171;font-size:12px;padding:28px 0;text-align:center}dialog{border:1px solid #c9d5c4;border-radius:18px;max-width:680px;width:calc(100% - 28px);padding:24px;color:inherit;max-height:90vh;overflow:auto}dialog::backdrop{background:#112a2466}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:15px}.dialog-top button{border:0}.edit-row{border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px}.edit-row legend{padding:0 7px;font-size:14px;color:var(--muted)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#213c2f;color:white;padding:12px 20px;border-radius:12px;max-width:90vw;z-index:20;display:none;box-shadow:0 6px 22px #16352226}#toast.show{display:block}.busy{opacity:.7}pre{white-space:pre-wrap;word-break:break-word;font-size:14px}a{color:var(--green)}[hidden]{display:none!important}@media(max-width:850px){.shell{grid-template-columns:170px minmax(0,1fr)}aside{padding:26px 15px}main{padding:28px 24px}.composer-bottom>.muted{width:100%}}@media(max-width:600px){.shell{display:block}aside{height:auto;position:fixed;bottom:0;top:auto;width:100%;z-index:5;padding:0;background:#fcfcf8f5;backdrop-filter:blur(12px);border:0;border-top:1px solid var(--line)}aside .brand,.aside-note{display:none}nav{display:flex;margin:0;justify-content:space-around;padding:6px 4px max(6px,env(safe-area-inset-bottom))}nav button{display:flex;flex-direction:column;align-items:center;font-size:12px;padding:6px 8px;gap:3px;border-radius:9px}nav button span{margin:0;font-size:21px;text-align:center}main{padding:23px 16px 90px}header{margin-bottom:21px}h1{font-size:27px}.composer{padding:17px;border-radius:14px}.composer-bottom .actions{width:100%;justify-content:flex-end}.stats{gap:17px;margin-bottom:22px}.task{padding:15px 13px}.grid-two{grid-template-columns:1fr}.settings-box{padding:18px}dialog{padding:18px}#toast{bottom:94px}.section-head{align-items:flex-start}.section-head .actions{justify-content:flex-end}}

/* Phone-first refinement, mobile build 2. Native app colors and navigation stay intact. */

nav svg{width:24px;height:24px;display:block}.mobile-compose{display:none}
button,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
input,textarea,select{min-width:0;max-width:100%}
body:has(dialog[open]){overflow:hidden}
@media(max-width:767px){
 .shell{display:block;min-height:100svh}
 aside{position:fixed;inset:auto 0 0;height:auto;width:100%;padding:0;border:0;z-index:5;}
 aside .brand,.aside-note{display:none}
 nav{display:grid;gap:0;margin:0;padding:6px max(3px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(3px,env(safe-area-inset-left))}
 nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:0;background:none;white-space:normal;text-align:center}
 nav button.active{background:none;}
 nav button span{display:flex;align-items:center;justify-content:center;margin:0;}

 main{padding:calc(16px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) calc(var(--nav-height) + env(safe-area-inset-bottom) + 22px) max(12px,env(safe-area-inset-left));}
 header{gap:12px;margin-bottom:16px;align-items:center}
 h1{letter-spacing:0;line-height:1.45}.eyebrow{font-size:13px;line-height:1.5}
 header>button{font-size:14px;min-height:44px;flex-shrink:0;padding:8px 12px}
 .composer{padding:0;background:#d7e8df;border:0;border-radius:12px;box-shadow:none}
 .mobile-compose{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;text-align:left}
 .mobile-compose span{font-size:24px;line-height:1}
 .composer:not(.input-open)>:not(.mobile-compose):not(#input-status){display:none}
 .composer:not(.input-open) #input-status:not(:empty){padding:0 16px 14px;margin:0}
 .composer.input-open{background:#fdfcf7;border:1px solid #c6d4c3;padding:16px}
 .composer.input-open>.mobile-compose{display:none}
 .composer label{font-size:16px;line-height:1.6}.composer textarea{font-size:16px;min-height:124px;max-height:40dvh}
 .composer-bottom{gap:10px}.composer-bottom>.muted{width:100%;font-size:13px}
 .composer-bottom .actions{display:flex;justify-content:stretch;width:100%}.composer-bottom .actions button{flex:1;min-height:46px;padding:8px;font-size:15px}
 .stats{gap:8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:22px;font-size:12px}.stats>span{min-width:0;line-height:1.7}.stats strong{font-size:19px;margin-right:3px}
 .section{margin-bottom:24px}.section-head{flex-wrap:wrap;}
 .task{background:#e9ece7;border:0;border-radius:12px;}
 .task h3{font-size:16px;line-height:1.65;white-space:normal;overflow-wrap:anywhere}
 .task .check{position:relative;height:44px;min-height:44px;flex:0 0 44px;border:0;background:transparent;margin:0;color:var(--app-accent-strong);isolation:isolate}
 .task .check::before{content:'';position:absolute;border:1.7px solid #78927b;border-radius:50%;z-index:-1}
 .task .star{flex:0 0 44px;min-height:44px;padding:0;margin:0;}
 .task .preview{margin-top:7px;font-size:14px;line-height:1.75}.task summary{min-height:44px;display:list-item;padding-top:12px;padding-bottom:10px}
 .task .actions{gap:6px;margin-top:8px}.task .actions button,.tiny{min-height:44px;font-size:14px;padding:8px 10px}
 .task .body,.record p,.cognition p{font-size:16px;line-height:1.8;overflow-wrap:anywhere}
 .tag{font-size:12px;max-width:100%;overflow-wrap:anywhere}.tags{gap:5px}.group{padding-left:8px;margin-bottom:20px}

 .cognition{border-radius:12px}.cognition .title-row{align-items:flex-start;}.cognition .title-row h3{line-height:1.7;overflow-wrap:anywhere}
 .cognition input[type=checkbox]{flex:0 0 24px;width:24px;height:24px;margin:3px 10px 0 0}
 .settings-box .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.settings-box .actions button{min-width:0;min-height:46px}
 .grid-two{grid-template-columns:1fr}.field input,.field textarea,.field select{font-size:16px;min-height:48px;line-height:1.6}
 .checkbox input{width:24px;height:24px;flex-shrink:0}.checkbox{line-height:1.7;padding:4px 0}
 dialog{position:fixed;inset:var(--visual-top,0px) 0 auto;margin:0 auto;width:100%;max-width:600px;height:var(--visual-height,100dvh);max-height:var(--visual-height,100dvh);border:0;border-radius:0;padding:0 16px calc(20px + env(safe-area-inset-bottom));overscroll-behavior:contain;scroll-padding:80px 0 24px}
 .dialog-top{position:sticky;top:0;z-index:2;margin:0 -16px 18px;padding:calc(8px + env(safe-area-inset-top)) 12px 8px 16px;border-bottom:1px solid var(--line)}
 .dialog-top h2{font-size:18px;overflow-wrap:anywhere}.dialog-top button{min-width:48px;min-height:48px;flex-shrink:0}
 dialog .primary{min-height:48px}dialog .edit-row{padding:12px;min-width:0}dialog .edit-row>details{min-width:0}dialog .actions{gap:8px}dialog .actions button{min-height:46px}
 #toast{bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 12px);width:max-content;max-width:calc(100vw - 28px);font-size:14px;line-height:1.6}
 .keyboard-open aside{visibility:hidden}.keyboard-open #toast{bottom:12px}
 footer{display:none}
}
@media(max-width:359px){.task-row{gap:2px}.task .star{min-width:36px;width:36px;flex-basis:36px}.task .check{min-width:40px;width:40px;flex-basis:40px}nav button span{width:44px;font-size:19px}nav button{font-size:11px;padding:4px 0}.stats{font-size:12px}.stats strong{display:block}}

/* 语音输入、备忘与导入预览 */
#voice.listening{background:#d7e8df;border-color:var(--app-accent-strong);color:#102d24;font-weight:600}
.composer-bottom .actions button{min-width:0}
.tag.on{background:#d7e8df;color:#102d24;font-weight:600}
.periodic-later{margin:14px 0 10px}

.imp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0}
.imp-row{display:flex;justify-content:space-between;gap:10px;align-items:baseline;background:#eef1e9;border-radius:8px;padding:9px 12px;font-size:14px}
.imp-row b{color:var(--green);font-size:16px}
dialog .notice p{margin:4px 0}
@media(max-width:767px){.imp-grid{grid-template-columns:1fr 1fr}}
@media(hover:none){button:hover{background:inherit}.primary:hover{background:var(--app-accent-strong)}.check:hover,.star:hover{background:transparent}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* ===== APP UI 保真度（对照实机截图） ===== */
nav button.active span{background:var(--tint)}
nav button.active{color:var(--green);font-weight:600}
.task .star{color:#8b8f7f}

.section-head h2{margin:6px 0 0}
.section-head .count{background:transparent;color:var(--app-accent-strong);padding:0;font-weight:700}
.section-sub{margin:2px 0 14px;color:var(--muted);line-height:1.6;flex-basis:100%}
.section-head{flex-wrap:wrap;align-items:baseline;row-gap:2px}
.section-head .actions{margin-left:auto}
.sleep-home{display:flex;align-items:center;gap:14px;border-radius:14px;margin:0 0 24px}

.sleep-home h3{font-size:17px;margin:0}
.sleep-home p{margin:3px 0 0;font-size:14px;color:var(--muted)}
.sleep-home .sleep-view{color:var(--app-accent-strong);background:transparent;border:0;font-size:16px;min-height:44px}
.today-done{background:#fff;border:1px solid var(--line);border-radius:14px;padding:4px 16px;margin:6px 0 0}
.today-done summary{list-style:none;display:flex;align-items:center;gap:10px;padding:14px 0;min-height:44px;cursor:pointer}
.today-done summary::-webkit-details-marker{display:none}
.today-done summary b{font-size:18px}

.page-tools input{background:#fff;border:1px solid #9aa89b;border-radius:10px;min-height:52px;font-size:16px;padding:12px 14px}
.chip-row{display:flex;gap:8px;overflow-x:auto;padding:12px 2px 4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.chip-row::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;border:1px solid #b9c4b6;background:#fff;border-radius:22px;padding:9px 16px;min-height:40px;font-size:14px;color:#3c4a42}
.chip.on{background:var(--tint);border-color:#ceddcb;color:var(--green);font-weight:600}
.tag.line{background:#fff;border:1px solid #c2cdc0;color:#44544a}
.day-head{letter-spacing:-.3px}
.raw-status{color:var(--app-accent-strong)}
@media(max-width:767px){
 h1{font-size:30px}
 .section-head{align-items:flex-start}

 .task .preview{color:#4d5c50}
 .page-tools input{min-height:50px}
}

/* 完成按钮：待办时为细描边圆圈，完成后填充绿色并出现白勾（参考 Things 3 的圆圈勾选模式） */
.task .check{transition:background .15s ease,border-color .15s ease}
@media(max-width:767px){
 .task:not(.done) .check{background:transparent;color:transparent}
 .task:not(.done) .check::before{background:#fdfdfb;border:1.7px solid #a5b6a8}
 .task:not(.done) .check:active::before{background:#e7eee5}
 .task.done .check{background:transparent;color:#fff}
 .task.done .check{font-size:17px}
 .task.done .check::before{background:var(--app-accent-strong);border:1.7px solid var(--app-accent-strong)}
}
@media(min-width:768px){
 .task:not(.done) .check{background:#fdfdfb;border:1.6px solid #a5b6a8;color:transparent}
 .task:not(.done) .check:hover{border-color:#7d9483}
 .task.done .check{background:var(--app-accent-strong);border:1.6px solid var(--app-accent-strong);color:#fff}
}

/* 置顶记录 */
.record.pinned{border-left:3px solid #d9b64a;padding-left:12px}

/* V6.9.11: native controls, daily review and compact groups. */
.day-nav{display:grid;grid-template-columns:auto minmax(0,1fr) auto;}
.day-nav button{padding:8px;white-space:nowrap}.day-nav input{min-width:0}
.group>summary,.fold-section>summary,[data-fold]>summary{cursor:pointer;padding:14px 4px;font-weight:600;line-height:1.6}
.group{border:1px solid var(--line);border-radius:12px;padding:0 12px;margin-bottom:12px}
.group-toolbar{display:flex;align-items:center;justify-content:space-between;}
.group-toolbar p{margin:0;flex:1;min-width:0;font-size:13px;line-height:1.5}.group-toolbar button{flex-shrink:0;padding:8px 12px}
.group-list{border-top:1px solid var(--line)}
.group-manager{display:grid;grid-template-columns:minmax(0,1fr) 60px;column-gap:8px;border-bottom:1px solid var(--line)}
.group-entry{text-align:left;min-width:0;padding:8px 0;align-self:start;color:var(--green)}
.group-name{display:block;line-height:1.5;font-weight:600;overflow-wrap:anywhere}
.group-entry small{display:block;color:var(--muted);line-height:1.5;}
.group-options{display:contents}.group-options>summary{grid-column:2;grid-row:1;list-style:none;cursor:pointer;color:var(--green);font-size:14px;text-align:center;padding:12px 4px;min-height:44px;align-self:start}
.group-options>summary::-webkit-details-marker{display:none}
.group-options .group-options-menu{display:none}.group-options[open] .group-options-menu{grid-column:1/-1;display:grid;background:#e9ede6;margin-top:6px;padding:4px}
.group-options-menu button{min-width:0;padding:8px 4px}.group-options-menu button:disabled{cursor:default}
.group-sort{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;color:var(--muted);font-size:13px}.group-sort button{font-size:13px;color:var(--green)}
.group-editor-name{font-size:18px;line-height:1.5;overflow-wrap:anywhere;margin:0 0 8px}.member-hint{font-size:13px;margin:8px 0 12px}
#group-members-form .member-list{max-height:none;overflow:visible;margin:8px 0}
#group-members-form .member-row{border-bottom:1px solid var(--line);padding:12px 0;margin:0;gap:12px;min-width:0}
.member-row>span{flex:1;min-width:0;overflow-wrap:anywhere;font-size:15px;line-height:1.5}.member-row input{margin:2px 0 0;flex-shrink:0}.member-row small{font-size:12px;margin-top:5px;color:var(--muted)}
.group-form-footer{position:sticky;bottom:0;display:flex;gap:10px;justify-content:flex-end;background:#f7f7f2;padding:12px 0 max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--line);z-index:1}
.group-form-footer button{min-width:88px}.group-form-footer .primary{min-width:120px}
.body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}
#long-sleep input{flex-shrink:0}#sleep-error:empty{display:none}

/* Sleep pages mirror the Android app: same palette, summary card and two-chart hierarchy. */
.sleep-page-head h2{text-align:center;font-size:22px}.sleep-back,.sleep-add{font-size:25px;padding:0;min-height:44px;border:0;background:transparent}.sleep-record-cta{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:#d7e8df;border:0;color:#102d24}.sleep-record-cta>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}.sleep-record-cta small{font-size:13px;}.sleep-record-cta strong{font-size:24px;font-weight:400}.sleep-range-row{display:flex;align-items:center;justify-content:space-between;}.sleep-range-row .chip-row{padding:4px 0}.sleep-range-row>span{font-size:13px;color:var(--muted);white-space:nowrap}.sleep-stats{margin-bottom:36px}.sleep-stats>div{display:flex;flex-direction:column;gap:9px;padding:0 7px;min-width:0}.sleep-stats b{font-weight:650;white-space:nowrap}.sleep-stats small{font-weight:500}.sleep-chart h2{margin:0 0 6px}.sleep-chart>.muted{margin:0 0 18px}.sleep-window-plot{display:grid;}.sleep-axis{position:relative}.sleep-axis span{position:absolute;right:7px;transform:translateY(-50%);color:var(--muted)}.sleep-window-grid{position:relative;min-width:0}.sleep-window-grid>i{position:absolute;left:0;right:0;height:1px;}.sleep-window-day{position:absolute;left:calc((100% / var(--sleep-days,7)) * var(--day));width:calc(100% / var(--sleep-days,7));top:0;border:0;border-radius:0;padding:0}.sleep-window-grid:has(.sleep-window-day:nth-of-type(30)){--sleep-days:30}.sleep-window-grid:not(:has(.sleep-window-day:nth-of-type(30))){--sleep-days:7}.sleep-window-bar{position:absolute;left:50%;top:var(--sleep-top);height:var(--sleep-height);transform:translateX(-50%);min-height:4px}.sleep-window-bar b,.sleep-window-bar em{position:absolute;left:50%;transform:translateX(-50%);font-style:normal;white-space:nowrap;}.sleep-window-bar b{bottom:calc(100% + 4px)}.sleep-window-bar em{top:calc(100% + 4px)}.sleep-window-day>small{position:absolute;left:50%;transform:translateX(-50%);color:var(--muted);white-space:nowrap}.sleep-form .field{margin-bottom:18px}.sleep-duration-card{display:flex;flex-direction:column;gap:6px;background:#d7e8df;color:#102d24;border-radius:16px;padding:18px;margin:2px 0 18px}.sleep-duration-card span{font-size:13px}.sleep-duration-card b{font-size:28px}.sleep-form-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;position:sticky;bottom:0;background:var(--surface);padding:10px 0 calc(6px + env(safe-area-inset-bottom))}
@media(max-width:359px){.sleep-stats{padding:16px 7px}.sleep-stats b{font-size:17px}.sleep-range-row{align-items:flex-start;flex-direction:column;gap:3px}.sleep-window-plot{height:250px}}

body:has(.sleep-page-head) #quick-add{display:none!important}
.sleep-abnormal{position:absolute;bottom:0;left:50%;color:#b3261e}.sleep-window-grid[style*="30"] .sleep-window-bar{max-width:6px}
.sleep-add{width:max-content;justify-self:end}
