/* 应用外壳层：颜色等 token 统一在 style.css 顶部的 :root 定义。 */
/* V6.9.17: compact actions, stable keyboard composer, real waiting feedback. */

.action-search{margin:6px 0 12px}.action-search input{width:100%;min-height:44px;font-size:16px;padding:10px 14px;border-radius:12px;border:1px solid #c2cbc2;background:#fdfcf7;color:#26362d}
.boot-status{padding:24px 0;color:#647469;font-size:14px}
.task-expanded .body{font-size:14px;line-height:1.55;margin:6px 0;white-space:pre-wrap}
.task-expanded h4{margin:10px 0 4px}.task-expanded .actions{margin:8px 0;gap:6px}
.task-expanded .daily-toggle{min-height:44px;padding:4px 0}.task-expanded .timeline{padding:9px 10px;margin:6px 0}
.task-expanded .timeline time{font-size:11px}.task-expanded details>summary{font-size:12px;padding:8px 0}
.date-shortcuts{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.date-shortcuts button{min-height:40px;padding:7px 12px;font-size:14px;border-radius:20px;background:#fdfcf7;color:var(--app-accent-strong)}
.date-shortcuts button[aria-pressed=true]{background:#dce7df;border-color:var(--app-accent-strong)}
.schedule-title{font-size:16px;line-height:1.5;margin:0 0 10px}
input[type=date],input[type=time]{color:var(--app-accent-strong);background:#fdfcf7;min-width:0;max-width:100%;height:44px;min-height:44px;padding:8px 10px;font-size:16px;box-sizing:border-box;accent-color:var(--app-accent-strong)}
input::-webkit-date-and-time-value{color:var(--app-accent-strong);text-align:left}
#schedule-form .field{margin:8px 0}#schedule-form .grid-two{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:10px}
.ai-working #input-status{position:relative;display:flex;align-items:center;gap:10px;min-height:48px;padding:11px 14px 14px;margin:8px 0;background:#e4eee7;border-radius:12px;color:var(--app-accent-strong);font-size:13px;overflow:hidden}
.ai-working #input-status::before{content:'';display:block;flex:none;width:19px;height:19px;border:2px solid #a9c7b6;border-top-color:var(--app-accent-strong);border-radius:50%;animation:organizing-turn 1s linear infinite}
.ai-working #input-status::after{content:'';position:absolute;bottom:0;left:-34%;width:34%;height:3px;border-radius:3px;background:var(--app-accent-strong);animation:organizing-sweep 2.2s ease-in-out infinite}
.task,.cognition{overflow-wrap:anywhere}
@keyframes organizing-turn{to{transform:rotate(360deg)}}
@keyframes organizing-sweep{to{left:100%}}
@media(prefers-reduced-motion:reduce){.ai-working #input-status::before,.ai-working #input-status::after{animation:none}.ai-working #input-status::after{left:0;width:100%;opacity:.35}}
@media(max-width:767px){
 body.input-screen #composer{overflow:hidden;padding-bottom:max(8px,env(safe-area-inset-bottom))}
 body.input-screen #composer textarea{flex:1 1 0;min-height:64px;border-radius:12px!important;border:1px solid #a9b5ab!important;background:#fdfcf7;padding:12px;box-shadow:0 1px 3px #26362d10}
 body.input-screen #composer textarea:focus{border-color:var(--app-accent-strong)!important;outline:1px solid var(--app-accent-strong);outline-offset:0}
 body.input-screen #composer .input-toolbar{height:52px;min-height:52px;margin-bottom:8px;flex-shrink:0}
 body.input-screen #composer .composer-bottom{margin-top:8px;background:transparent;padding-bottom:0}
 body.input-screen.keyboard-open #composer .daily-toggle small{display:none}
 #input-status{font-size:12px;line-height:1.5;margin:6px 0 0}
 .task-expanded{padding:4px 4px 8px}.task-expanded .task-primary button{font-size:13px}.cognition>p{white-space:pre-wrap;}
}

.task{background:var(--app-card);padding:6px 10px;border:0;border-radius:12px}
.task-row{align-items:center;position:relative;gap:0}
.task-open{flex:1;min-width:0;text-align:left;display:block;padding:8px 2px;min-height:64px;border-radius:8px}
.task-open h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.task-caption{margin:3px 0 0;color:var(--muted);}
.task-open .preview{font-size:12px;line-height:1.5;margin-top:4px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.task .star{min-height:44px;min-width:40px;width:40px;flex:0 0 40px}
.task .expand-icon{font-size:20px;width:16px;flex:0 0 16px;}
.task:has(.task-detail:not([hidden])) .expand-icon{transform:rotate(180deg)}
.task-expanded{padding:4px 10px 12px;border-top:1px solid var(--line)}
.task h4{font-size:12px;margin:12px 0 5px;color:var(--muted)}

.task-secondary{gap:12px;margin-top:4px}.task-secondary .plain{color:var(--accent,var(--app-accent-strong))}
.edit-advanced{margin:14px 0}.edit-advanced>summary{padding:12px 0;color:var(--muted);cursor:pointer}
#task-form input[type=date],#task-form input[type=time]{min-height:44px;color:var(--app-accent-strong);color-scheme:light}

.edit-actions{justify-content:flex-end;position:sticky;bottom:0;background:var(--app-card,#f7f7f2);padding:12px 0}
.member-list{max-height:45vh;overflow:auto;margin:12px 0}.member-list .checkbox{padding:10px 0;align-items:flex-start}
.member-list small{display:block;color:var(--muted);margin-top:3px}
.task .task-primary button{min-width:0}.task-secondary{justify-content:flex-end}
.timeline{background:var(--app-surface);padding:12px;border:0;border-radius:10px;margin:8px 0}
.sleep-moon{font-size:32px;color:var(--app-accent);line-height:1}.sleep-text{flex:1}
.sleep-home{background:var(--app-surface);border:0;padding:12px 16px;margin-bottom:18px}
.attention{margin-bottom:20px}.attention button{display:block;text-align:left;max-width:100%;overflow-wrap:anywhere;color:inherit}
.section-head .count{margin-left:8px;}
.section-head{margin-bottom:10px}
.empty strong{font-size:15px}
.input-toolbar{display:none}
.sleep-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));}.sleep-stats span{color:var(--muted);display:block}.sleep-stats small{font-size:11px}

.record{padding:16px 0}.page-tools{margin-top:0}
#connection-state{font-size:12px;background:#f0e5c5;padding:8px 12px;color:#51472d;border-radius:8px;margin-bottom:10px}
.pwa-update>span{flex:1 1 0;min-width:0;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.pwa-update>button{flex:0 0 auto;white-space:nowrap;min-height:44px;min-width:44px;padding:8px 12px;font-size:14px}
.pwa-update{position:fixed;bottom:90px;left:16px;right:16px;z-index:9;background:var(--app-surface);border:1px solid var(--line);padding:12px;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 4px 24px #0002}
@media(max-width:767px){
 main{padding:calc(8px + env(safe-area-inset-top)) 16px calc(var(--nav-height) + env(safe-area-inset-bottom) + 24px)}
 main>header{margin-bottom:8px;gap:8px}main>header h1{letter-spacing:0}
 #quick-add{background:transparent;color:var(--app-accent);border:0;font-size:13px;padding:8px}

 .task .task-primary button{min-height:44px}.task .task-secondary button{font-size:13px;padding:6px 8px}
 .group{padding:0 8px;border:0;background:var(--app-surface);border-radius:12px}.group>summary{padding:14px 8px;font-size:16px}
 .today-done summary{flex-wrap:wrap;gap:4px}.today-done summary b{font-size:16px}
 .input-screen{overflow:hidden}.input-screen aside{display:none}
 .input-screen #composer{position:fixed;inset:var(--visual-top,0px) 0 auto;z-index:7;height:var(--visual-height,100dvh);max-height:none;border:0;border-radius:0;padding:0 16px max(16px,env(safe-area-inset-bottom));background:var(--app-bg);display:flex;flex-direction:column;overflow:auto}
 .input-screen #composer>.mobile-compose{display:none}.input-screen .input-toolbar{display:flex;align-items:center;gap:12px;margin:0 -16px 20px;padding:8px 12px;}
 .input-toolbar button{border:0;background:transparent;}.input-toolbar span{margin-left:auto;color:var(--muted)}
 .input-screen #composer textarea{flex:1;max-height:none;background:var(--app-bg);resize:none}
 .input-screen .composer-bottom{flex-shrink:0;}.input-screen .composer-bottom .actions{display:grid;grid-template-columns:1fr 1fr}
 .input-screen #input-status{flex-shrink:0;margin-bottom:0}
 .input-screen .composer>label{font-size:14px;color:var(--muted);font-weight:400}
 dialog{background:var(--app-bg)}.dialog-top{background:var(--app-bg);min-height:60px}.dialog-top button{font-size:22px}
}
@media(min-width:768px){.task-open{min-height:58px}.input-open .input-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px}.input-toolbar span{margin-left:auto;font-size:12px;color:var(--muted)}}

.task:has(.task-detail:not([hidden])) .task-open h3{-webkit-line-clamp:unset;display:block}
.input-screen .pwa-update,body:has(dialog[open]) .pwa-update{display:none}

/* Verified against the USB-connected Android 6.9.8 UI, 2026-09-20. */

.task-open{color:#49464f}.star.on{color:#e5a500}
.sleep-moon svg{display:block;width:28px;height:28px}
.sleep-form input[type=date],.sleep-form input[type=time]{border:1px solid #79747e;border-radius:28px;background:transparent;color:var(--app-accent-strong);text-align:center;min-height:48px;font-size:20px}
.sleep-form .field>span{font-size:16px;color:var(--app-ink);font-weight:600}.sleep-form-actions button{border-radius:26px}
.sleep-stats{background:#e9f0eb;gap:0;padding:20px 12px;margin:28px 0 36px;border-radius:22px}
.sleep-stats b{font-size:22px;line-height:1.3;color:var(--app-ink)}
.sleep-stats span{font-size:13px}.sleep-record-cta{padding:20px;border-radius:14px;margin-bottom:20px}
.sleep-record-cta b{font-size:18px}.sleep-record-cta small{color:#244238}
.sleep-range-row{margin-bottom:12px;gap:8px}.sleep-range-row .chip-row{gap:8px;flex-wrap:nowrap}
.sleep-range-row .chip{white-space:nowrap;padding:8px 12px;border:1px solid #79747e;border-radius:9px}
.sleep-range-row .chip.on{background:#f0e5c5;border-color:#f0e5c5;color:#24202c}
.sleep-range-row>.plain{white-space:nowrap;color:var(--app-accent);padding:5px 0;font-size:14px}
.sleep-count{margin:16px 0 0}.sleep-page-head{margin:0 0 14px}.sleep-add{font-size:28px;min-width:44px}
.sleep-chart{margin:30px 0 40px}.sleep-chart h2{font-size:23px}.sleep-chart>.muted{font-size:13px;margin-bottom:40px}
.sleep-window-plot{height:270px;grid-template-columns:42px 1fr;padding-bottom:34px}
.sleep-window-grid>i{background:#e6e9ec}.sleep-window-day{bottom:0;background:transparent!important}
.sleep-window-day.selected{background:#eaf5fd!important;border-radius:8px}
.sleep-window-bar{background:#67b2f4;width:min(14px,35%);border-radius:10px}
.selected .sleep-window-bar{background:#2f96ea}
.sleep-window-bar b,.sleep-window-bar em{font-size:11px;font-weight:700;color:var(--app-ink)}
.sleep-axis span{font-size:11px}.sleep-window-day>small{font-size:11px;bottom:-30px}
.sleep-duration .sleep-window-plot{height:220px}
.sleep-duration .sleep-window-bar{width:65%;max-width:32px;border-radius:7px 7px 0 0}
.sleep-window-grid[style*="30"] .sleep-window-bar,.sleep-window-grid[style*="31"] .sleep-window-bar,.sleep-window-grid[style*="28"] .sleep-window-bar,.sleep-window-grid[style*="29"] .sleep-window-bar{max-width:6px}
.sleep-selected{display:flex;gap:8px;align-items:center;background:#e7eee8;border-radius:14px;padding:14px;margin:0 0 28px;font-size:14px}
.sleep-selected>div{flex:1;min-width:0}.sleep-selected p{margin:6px 0;overflow-wrap:anywhere;white-space:pre-wrap;font-size:12px}.sleep-selected button{flex-shrink:0;padding:4px;font-size:13px}
.sleep-month-nav{display:flex;align-items:center;justify-content:space-between;gap:12px}.sleep-month-nav button{font-size:28px;min-width:44px}
.sleep-screen #today,.sleep-screen footer{display:none}
.task .check,.task:not(.done) .check,.task.done .check{position:relative;isolation:isolate;flex:0 0 44px;width:44px;height:44px;min-width:44px;border:0!important;background:transparent!important;color:transparent!important;font-size:0}
.task .check::before,.task:not(.done) .check::before,.task.done .check::before{content:'';position:absolute;inset:11px;background:var(--app-accent-strong)!important;border:0!important;border-radius:50%;z-index:0}
.task .check::after{position:absolute;display:grid;place-items:center;color:#fff;font-size:17px;font-weight:700;z-index:1}
.composer-bottom{display:flex;flex-direction:column;align-items:stretch;gap:10px}.composer-main-actions{display:grid;grid-template-columns:1fr 1fr}
.composer-main-actions>button{border-radius:24px}.record-more{font-size:12px;color:var(--muted)}.record-more>summary{cursor:pointer;padding:6px;text-align:center}.record-more .actions{justify-content:center;padding:8px 0}.record-more .actions button{font-size:13px}
@media(max-width:767px){
 .input-screen .composer>label{display:none}.input-screen #composer textarea{border:1px solid #79747e!important;border-radius:4px;padding:16px;min-height:160px}
 .input-screen .composer-bottom{background:#e9ece7;margin:16px -16px 0;padding:14px 16px 0}
 .input-screen .composer-bottom .composer-main-actions{display:grid;grid-template-columns:1fr 1fr}.input-screen #organize{grid-column:auto}
 .input-screen #cancel-input{border-color:#79747e;background:transparent;color:var(--app-accent)}
 .input-screen .input-toolbar{margin-bottom:16px;background:var(--app-surface)}.input-screen .input-toolbar b{font-size:22px}
}

@media(max-width:767px){
 .sleep-screen aside{display:none}.sleep-screen main{padding-bottom:24px}
 .sleep-screen #content{margin-top:0}.sleep-page-head{position:sticky;top:0;background:var(--app-surface);z-index:3;margin:0 -16px 18px;padding:8px 16px}
 .sleep-stats b{font-size:21px}.sleep-stats{padding:22px 10px}.sleep-stats>div{padding:0 7px}
}
.sleep-screen main>header{display:none}
.sleep-page-head{display:grid;grid-template-columns:40px 1fr 44px;gap:8px;align-items:center;min-height:64px}
.sleep-page-head h1{font-size:23px;font-weight:600;letter-spacing:0;margin:0;text-align:left}
.sleep-back{font-size:26px;min-width:40px;width:40px;text-align:center}

/* V6.9.15: matches the connected Android app's compact single-column layout. */
.daily-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;padding:8px 0;color:var(--app-ink);font-size:15px;font-weight:500;cursor:pointer}
.daily-toggle span{flex:1;min-width:0}.daily-toggle small{display:block;font-size:12px;line-height:1.5;font-weight:400;color:var(--muted);margin-top:3px}
.composer .daily-toggle{display:flex;margin:0}
.daily-toggle input{appearance:none;-webkit-appearance:none;flex:0 0 48px;width:48px;height:28px;min-height:28px;border:2px solid #79747e;border-radius:20px;background:#e2e3dc;padding:0;position:relative;cursor:pointer}
.daily-toggle input:before{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#79747e}
.daily-toggle input:checked{background:var(--app-accent-strong);border-color:var(--app-accent-strong)}.daily-toggle input:checked:before{left:23px;background:white}
.daily-toggle input:focus-visible{outline:var(--focus-ring);outline-offset:3px}.daily-toggle input:disabled{opacity:.5}
.task-expanded>.body,.task-expanded>.muted{overflow-wrap:anywhere}
.mobile-compose svg{width:24px;height:24px;display:block}.raw-new{width:100%;}
.star svg,.expand-icon svg{display:block;width:24px;height:24px;margin:auto}.star.on svg{fill:currentColor}
.task .check::after{content:'';inset:auto;left:19px;top:14px;width:7px;height:12px;border:solid white;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
#open-memos{margin-left:auto;color:var(--app-accent)}

.cog-index-head{display:flex;align-items:center;justify-content:space-between;}
.cog-more{margin-left:auto;text-align:right}.cog-more>summary{list-style:none;cursor:pointer}.cog-more>summary::-webkit-details-marker{display:none}.cog-more .actions{justify-content:flex-end}
.raw-filter-row{display:flex;align-items:center;}.raw-date-chip{position:relative;display:flex;align-items:center;min-height:44px;padding:8px 14px;cursor:pointer;margin:0!important}
.raw-date-chip input,.review-date-chip input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.raw-date-chip:focus-within,.review-date-chip:focus-within{outline:var(--focus-ring);outline-offset:2px}
.review-date-chip{position:relative;flex:1;min-width:0;min-height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;font-size:14px;margin:0!important;cursor:pointer}
.task .expand-icon{pointer-events:auto;min-height:44px;border:0;padding:0;color:var(--muted);background:transparent}
.task .star.on{color:#e1a500}
@media(max-width:767px){

 main{padding-top:0}main>header{position:relative}
 main>header h1{font-weight:600}#quick-add{display:none}
 nav{grid-template-columns:repeat(5,minmax(0,1fr));padding-top:8px}
 nav button span{max-width:100%;}
 .mobile-compose{color:#49464f}.mobile-compose span{color:#102f24}
 #composer:not(.input-open){margin-bottom:10px}#content{margin-top:10px}
 .sleep-home{min-height:64px;margin-bottom:14px;padding:12px 16px;gap:16px}.sleep-home h3{font-size:16px;line-height:24px}.sleep-home p{font-size:12px;margin:0;line-height:16px}.sleep-view{font-size:16px;padding:0;min-width:44px}
 .section-head{margin-bottom:10px;gap:0}.section-head h2{font-size:var(--text-title);line-height:1.5;margin:0}.section-head .count{font-size:var(--text-meta);color:var(--app-accent)}.section-sub{margin:0;font-size:13px;line-height:1.65}
 .task{padding:6px 10px;margin-bottom:10px}.task-row{gap:0}.task .check{flex-basis:48px;min-width:48px;width:48px}.task .star{flex-basis:48px;min-width:48px;width:48px;font-size:24px;color:#49464f}
 .task-open{min-height:48px;padding:0}.task-open h3{font-size:16px;font-weight:600;line-height:24px;letter-spacing:0}.task-caption{font-size:12px;line-height:16px;margin:0}.task .expand-icon{width:24px;flex-basis:24px;text-align:center;font-size:24px}
 .task .check::before{inset:12px}.task .task-open .preview{display:none}
 .input-screen .input-toolbar{border-bottom:0;height:64px;min-height:64px}.input-toolbar button{min-width:40px;padding:8px 0}.input-toolbar span{font-size:10px}
 .input-screen #composer textarea{font-size:16px;line-height:24px}.input-screen .composer-bottom{padding-top:0;padding-bottom:10px;gap:6px}.input-screen .composer-bottom .daily-toggle{font-size:14px;padding:8px 0}
 .input-screen .composer-bottom .daily-toggle small{font-size:11px}.record-more>summary{padding:10px;font-size:13px;min-height:44px}.input-screen #input-status:empty{display:none}
 .cognition,body[data-page=raw] .record{background:var(--app-card);border:0;border-radius:12px;padding:16px;margin-bottom:12px;color:var(--muted)}
 .cognition>p{font-size:14px;}.cognition .tag{border:1px solid #79747e;border-radius:8px;padding:6px 12px;background:transparent}

 .page-tools .chip-row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.page-tools .chip-row .chip{flex-shrink:0}
 body[data-page=raw] .record-head{font-size:13px}.day-head{font-size:16px}
 body[data-page=history] .empty{padding:8px 0;background:transparent;border:0;font-size:12px}body[data-page=history] .section>h2{font-size:18px}

 .cog-card-actions>.plain{padding-left:0}.cog-card-actions button{font-size:13px}
 .cognition .title-row h3{margin:0}.cognition .title-row{gap:10px}.cognition .title-row input{flex:0 0 22px;width:22px;height:22px}
 .task .star.on{color:#e1a500}.task .expand-icon{min-width:24px}
}
/* APP reference: outlined labels, quiet surfaces and one contained dialog. */
dialog:has(#task-form){inset:0;margin:auto;width:calc(100% - 40px);max-width:440px;height:auto;max-height:calc(var(--visual-height,100dvh) - 40px);padding:22px 24px 12px;border:0;border-radius:28px;background:#e9ece5;color:#20231f;scroll-padding:16px;overflow:auto}
dialog:has(#task-form)::backdrop{background:#0009}
dialog:has(#task-form) .dialog-top{position:static;background:transparent;border:0;min-height:0;margin:0 0 26px;padding:0}
dialog:has(#task-form) .dialog-top h2{font-size:26px;line-height:1.3;font-weight:500}
dialog:has(#task-form) .dialog-top button{display:none}
#task-form .field:has(textarea){position:relative;margin:0 0 18px}
#task-form .field:has(textarea)>span{position:absolute;top:-10px;left:12px;margin:0;padding:0 5px;background:#e9ece5;font-size:13px;line-height:20px;color:#51574f;z-index:1}
#task-form textarea{background:transparent;border:1px solid #7d817a;border-radius:5px;font-size:16px;line-height:1.5;padding:15px 14px 12px;min-height:84px;resize:vertical}
#task-form textarea[name=details]{min-height:108px}
#task-form .field:has(input[type=date]),#task-form .field:has(input[type=time]){margin-bottom:14px}
#task-form .field:has(input[type=date])>span,#task-form .field:has(input[type=time])>span{font-size:14px;font-weight:600;color:#494e48;margin-bottom:12px}
.editor-picker{position:relative;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid #7d817a;border-radius:999px;min-height:44px;color:var(--app-accent-strong)}
.editor-picker svg{width:22px;height:22px;flex-shrink:0}.editor-picker>span{font-size:15px}
#task-form .editor-picker input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}
.editor-picker:focus-within{outline:var(--focus-ring);outline-offset:2px}
#task-form .date-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0 18px}
#task-form .date-shortcuts button{min-width:0;min-height:36px;padding:5px 2px;background:transparent;color:#20231f;border:1px solid #7d817a;border-radius:8px;font-size:15px}
#task-form .date-shortcuts button[aria-pressed="true"],.date-shortcuts button[data-group-day][aria-pressed="true"]{background:#dce7df;border-color:var(--app-accent-strong);color:#204537;box-shadow:inset 0 0 0 1px var(--app-accent-strong)}
#task-form .clock-clear{float:right;margin:-3px 0 0;padding:0 4px;min-height:28px;font-size:12px;color:var(--app-accent-strong);background:transparent;border:0}
#task-form .edit-advanced{margin:16px 0 0}#task-form .edit-advanced>summary{font-size:12px;color:#596158;padding:8px 0}
#task-form .edit-advanced .field{margin-top:12px}#task-form .daily-toggle{font-size:14px}
#task-form .edit-actions{position:sticky;bottom:-12px;gap:16px;margin:14px -4px 0;padding:12px 0 4px;background:#e9ece5}
#task-form .edit-actions button{min-width:60px;min-height:44px;background:transparent;color:var(--app-accent-strong);border:0;font-size:15px;padding:8px}
@media(max-width:350px){dialog:has(#task-form){width:calc(100% - 24px);padding:20px 18px 12px}#task-form .date-shortcuts{gap:6px}}
@media(max-height:480px){dialog:has(#task-form){max-height:calc(var(--visual-height,100dvh) - 16px);border-radius:18px}.dialog-top:has(+ #modal-content #task-form){margin-bottom:18px}}

/* The action card grows with real content; controls never reserve empty space. */
.task .task-expanded{padding:9px 6px 5px;border-top:1px solid #d6ddd4}
.task .task-expanded h4{margin:0 0 6px;color:#49464f;font-size:13px;line-height:1.4;font-weight:650}
.task .task-expanded .body{padding:0;margin:0;color:#26362d;font-size:15px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.task .task-original{padding:3px 0 2px}
.task .task-primary{display:flex;justify-content:flex-start;margin:12px 0 4px;gap:0}
.task .task-primary .primary{width:auto;max-width:100%;min-height:44px;margin:0;padding:9px 17px;border-radius:999px;font-size:14px;line-height:1.4;font-weight:600;white-space:normal;text-align:center;background:var(--app-accent-strong);color:#fff}
.task .task-progress{margin:14px 0 0}
.task .task-timeline-list{display:grid;gap:8px}
.task .task-timeline-list .timeline{display:block;width:100%;margin:0;border:0;text-align:left;color:inherit;cursor:pointer}
.task .task-timeline-list .timeline time{display:block;color:#67736a;}
.task .task-timeline-list .timeline .body{display:block;margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.task .task-timeline-list .timeline .progress-status{float:right;margin-left:8px;color:var(--app-accent-strong)}

.task .task-timeline-list .timeline details>summary{min-height:40px;padding:9px 0 0;color:#49464f;font-size:12px}

.task .task-timeline-list .timeline .tiny{margin-top:6px;padding:7px 4px;border:0;background:transparent;color:var(--app-accent-strong);font-size:12px}
.task .task-older{margin:3px 0 0}.task .task-older>summary{min-height:44px;padding:11px 0;color:#49464f;font-size:13px}
.task .task-older [data-older-list]{display:grid;gap:8px}
.task .task-secondary{justify-content:flex-end;gap:3px;margin:3px 0 0}
.task .task-secondary button{min-height:44px;padding:8px 10px;color:var(--app-accent-strong);font-size:13px;line-height:1.3}
.progress-detail>time{display:block;color:#67736a;font-size:12px}.progress-detail>.body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.6}.progress-detail details{margin:14px 0}.progress-more{border-top:1px solid #d6ddd4;padding-top:8px}.progress-more>summary{color:#67736a;font-size:13px}
@media(hover:none){.task .task-timeline-list .timeline:hover{background:#fdfcf7}}
@media(pointer:coarse){.task .task-open:active,.task .expand-icon:active,.task .task-timeline-list .timeline:active,.date-shortcuts button:active,#task-form .date-shortcuts button:active,.task .task-secondary button:active{background:#dce7df;transform:scale(.985)}.task .task-open,.task .expand-icon,.task .task-timeline-list .timeline,.date-shortcuts button,.task .task-secondary button{transition:background-color .12s ease,transform .12s ease}}
@media(prefers-reduced-motion:reduce){.task .task-open,.task .expand-icon,.task .task-timeline-list .timeline,.date-shortcuts button,.task .task-secondary button{transition:none!important}}

/* One focused editor, with the original text kept visible during AI work. */
dialog:has(#update-form){background:#f7f7f2;color:#26362d}
dialog:has(#update-form) .dialog-top{margin-bottom:12px}
dialog:has(#update-form) .dialog-top h2{font-size:21px;line-height:1.3;font-weight:600}
#update-form{display:flex;flex-direction:column;gap:12px}
#update-form .update-task-name{-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:0;color:#49464f;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
#update-form .update-compose .field{margin:0}
#update-form .update-compose .field>span{margin-bottom:8px;color:#26362d;font-size:14px;font-weight:600}
#update-form .update-compose textarea{min-height:190px;padding:14px;border:1px solid #9aa89b;border-radius:12px;background:#fdfcf7;color:#26362d;font-size:16px;line-height:1.6;resize:vertical}
#update-form .update-compose textarea:focus{outline:var(--focus-ring);outline-offset:1px}
#update-form .update-options{border-top:1px solid #d6ddd4}
#update-form .update-options>summary{min-height:44px;padding:12px 2px;color:var(--app-accent-strong);font-size:14px;cursor:pointer}
#update-form .update-options .field{margin:10px 0}
#update-form #update-status{order:1;margin:0;color:#49464f;font-size:13px;line-height:1.5}
#update-form #update-status:empty{display:none}
#update-form .update-actions{order:2;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);gap:8px;margin:0}
#update-form .update-actions button{min-width:0;min-height:48px;border-radius:999px;padding:9px 10px;font-size:14px;line-height:1.35;user-select:none;-webkit-user-select:none}
#update-form .update-actions #save-update{border-color:#9aa89b;background:transparent;color:var(--app-accent-strong)}
#update-form .update-actions button:active{transform:scale(.98)}
@media(max-width:767px){
 dialog:has(#update-form)[open]{position:fixed;inset:var(--visual-top,0px) 0 auto;display:flex;flex-direction:column;width:100%;max-width:600px;height:var(--visual-height,100dvh);max-height:var(--visual-height,100dvh);margin:0 auto;padding:0 16px max(12px,env(safe-area-inset-bottom,0px));border:0;border-radius:0;overflow:hidden}
 dialog:has(#update-form) .dialog-top{flex:0 0 auto;margin:0 -16px 10px;padding-bottom:8px;border-bottom:1px solid #d6ddd4}
 dialog:has(#update-form) #modal-content{display:flex;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
 #update-form{flex:1 1 auto;min-height:0;width:100%}
 #update-form .update-compose{display:flex;flex:1 1 auto;min-height:0}
 #update-form .update-compose .field{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;width:100%}
 #update-form .update-compose textarea{flex:1 1 auto;min-height:110px;max-height:none;resize:none}
 #update-form .update-actions{flex:0 0 auto;padding:6px 0 2px;background:#f7f7f2}
 .keyboard-open #update-form .update-compose textarea{min-height:80px}
}
@media(max-width:359px){#update-form .update-actions button{font-size:13px;padding-inline:6px}}

/* Long archives stay scannable without hiding their complete source text. */
.raw-preview>p:not(.error){-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow-wrap:anywhere}
.raw-preview .record-head{display:flex;justify-content:space-between;}

.raw-more{display:block;width:100%;min-height:44px;margin:12px 0 20px;color:var(--app-accent-strong)}

.source-original{margin:14px 0 16px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.65}
.source-related{margin-top:16px;border-top:1px solid #d6ddd4;padding-top:12px}
.source-related>summary,.correction-manual>summary{color:#67736a;font-size:13px;min-height:42px;padding:10px 0}
.source-related h3{margin:14px 0 4px;font-size:14px}
.source-related p{margin:6px 0;font-size:14px;line-height:1.5}
.correction-preview{margin:16px 0;padding-left:22px;line-height:1.65}
.correction-preview li{margin:8px 0}
@supports (content-visibility:auto){.task,.cognition,.raw-preview{content-visibility:auto;contain-intrinsic-size:auto 126px}}
.attention.organizing h3{display:flex;align-items:center;gap:9px}
.attention.organizing h3::before{content:'';width:16px;height:16px;flex:none;border:2px solid #a9c7b6;border-top-color:var(--app-accent-strong);border-radius:50%;animation:organizing-turn 1s linear infinite}
.attention.organizing .muted{margin:6px 0 0}
@media(prefers-reduced-motion:reduce){.attention.organizing h3::before{animation:none}}

/* 回顾页重设计（V6.9.27）：与全站同一套卡片语言，睡眠直观展示，去掉密集罗列 */
.review2-head{margin:2px 0 16px}

/* 紧凑轻量卡片：直接修订五页呈现层，保留输入与键盘专项行为。 */

body{font-family:var(--font-ui);font-size:16px;line-height:1.6;color:var(--app-ink);background:var(--app-bg)}
button,input,textarea,select{min-height:44px}button{border-radius:7px}button:active{filter:brightness(.96)}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:var(--focus-ring);outline-offset:3px}
main>header h1{letter-spacing:0}main>header .eyebrow{line-height:1.6;letter-spacing:0}
#content{margin-top:12px}.section{margin-bottom:14px}.section-head h2{font-size:16px;font-weight:600;letter-spacing:0;line-height:1.5}.section-head .count{font-size:12px}.section-sub{font-size:12px;margin-bottom:6px}.empty{padding:12px;font-size:14px;border-radius:6px}

#composer:not(.input-open){border-color:#ccd8ca;box-shadow:none}.mobile-compose{color:var(--green);font-weight:500}
#composer:not(.input-open) #input-status{margin:0;min-height:0;padding:0 12px 8px;font-size:12px;line-height:1.5;background:transparent;border-radius:0;overflow-wrap:anywhere}
.ai-working #composer:not(.input-open) #input-status{gap:6px}.ai-working #composer:not(.input-open) #input-status::before{width:14px;height:14px}
.attention{background:#f3edd9;border:1px solid #e9dfbf;border-radius:7px;padding:10px 12px;margin:0 0 12px}.attention h3{font-size:15px;line-height:1.65;font-weight:600}.attention button{font-size:14px;line-height:1.65}.attention.organizing{background:var(--tint);border-color:#dbe4d8}
.task-open h3{font-size:16px;line-height:1.6;display:block;-webkit-line-clamp:unset;overflow:visible;font-weight:600}.task-caption{font-size:12px;line-height:1.5;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.task-group-label{display:inline-block;box-sizing:border-box;max-width:100%;margin:4px 0 0;padding:3px 7px;border:1px solid var(--line);border-radius:5px;background:var(--app-surface);color:#697768;font-size:12px;font-weight:400;line-height:1.3;white-space:normal;overflow-wrap:anywhere}

.task-expanded .body,.task .body{font-size:15px;line-height:1.75}.record p,.cognition p,.source-original{font-size:16px;line-height:1.8}.task-expanded h4{font-size:13px;line-height:1.65;font-weight:500}
.task .task-primary .primary,.task .task-secondary button,.task-secondary .plain,.tiny{min-height:44px}
.task .task-timeline-list .timeline{border-radius:6px;border-left:2px solid #b9cbb5;padding:9px 10px;background:var(--app-surface)}.task .task-timeline-list .timeline time{font-size:12px;line-height:1.6;font-variant-numeric:tabular-nums}.task .task-timeline-list .timeline .body{font-size:15px;line-height:1.75;margin-top:4px}.task .task-timeline-list .timeline .tiny{min-height:44px}
#update-form .update-task-name{display:block;-webkit-line-clamp:unset;overflow:visible}
.cognition{background:var(--app-surface);border:1px solid var(--line);margin:0 0 10px;box-shadow:none;color:var(--app-ink);max-width:744px}.cognition h3{letter-spacing:0;}.cognition>p{display:block;overflow:visible;-webkit-line-clamp:unset;color:var(--app-ink)}.cognition .title-row{align-items:flex-start}.cognition .tag.line{font-size:12px;border:0;border-radius:4px;background:var(--tint);color:var(--muted);padding:4px 8px}
.cog-card-actions{align-items:center}.cog-card-actions .plain{color:var(--green)}.cog-more>summary{font-size:14px;min-height:44px}.cog-index-head{margin:8px 0 0;color:var(--muted);}
.page-tools{margin:0 0 10px;max-width:744px}.page-tools input[type=search],.action-search input{min-height:44px;background-color:var(--app-surface);border:1px solid #d7ddd2;border-radius:7px;color:var(--app-ink);padding:9px 12px 9px 39px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23657165' stroke-width='1.7'%3E%3Ccircle cx='10' cy='10' r='6'/%3E%3Cpath d='m15 15 6 6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:12px center;background-size:18px 18px;font-size:15px}.page-tools input::placeholder,.action-search input::placeholder{color:#748071}
.chip,.chip-row .chip{min-height:44px;border:1px solid var(--line);border-radius:7px;font-size:14px;background:transparent;padding:7px 10px}.chip.on,.chip-row .chip.on{background:var(--tint);color:var(--green);border-color:#ceddcb}.raw-filter-row{flex-wrap:wrap;gap:6px;margin:6px 0 4px}.raw-new{border-radius:7px;}
.raw-preview,body[data-page=raw] .record.raw-preview{border:1px solid var(--line);background:var(--app-surface);max-width:744px;color:var(--app-ink)}.raw-preview .record-head{align-items:center;flex-wrap:wrap;font-variant-numeric:tabular-nums}.raw-preview .raw-status{font-size:12px;background:var(--tint);padding:3px 7px;border-radius:4px;color:var(--green)}.raw-preview>p:not(.error){display:block;-webkit-line-clamp:unset;overflow:visible;}.raw-preview .error{font-size:14px;line-height:1.7;color:#9b493e;padding:8px 10px;background:#f6ede7;border-radius:6px}.raw-preview .actions button{min-height:44px;padding-left:5px;color:var(--green)}.day-head{color:var(--muted);font-variant-numeric:tabular-nums}
.settings-grid{display:grid;align-items:start}.settings-box{background:var(--app-surface);border:1px solid var(--line);margin:0;box-shadow:none;min-width:0}.settings-box h2{line-height:1.5;margin:0 0 7px;}.settings-box .field,.settings-box .checkbox{font-size:14px;line-height:1.75}.settings-box .field{margin-bottom:10px}.settings-box .field>span{color:var(--muted);margin-bottom:4px}.settings-box .actions{gap:6px;margin-top:8px}.settings-box input:not([type=checkbox]),.settings-box select{background:var(--app-bg);border-color:#d7ddd2}.settings-box .checkbox{gap:9px;align-items:flex-start;padding:3px 0;margin:8px 0}.settings-box .checkbox input{margin-top:1px}.settings-box.data-insurance{border-top:2px solid #7e9d82}
.settings-box.settings-import,.settings-box.settings-install,.settings-box.settings-guide{background:transparent;border:0;border-top:1px solid var(--line);padding-top:12px}.insurance-heading{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}.insurance-heading h2{margin:0 0 4px}.insurance-heading p{margin:0}.insurance-icon{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border-radius:6px;background:var(--tint);color:var(--green)}.insurance-icon svg{width:22px;height:22px}.insurance-status{margin:0 0 10px}.insurance-status>div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:8px;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.75}.insurance-status>div:last-child{border:0}.insurance-status dt{color:var(--muted)}.insurance-status dd{margin:0;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.insurance-note{margin:10px 0 4px}.backup-contents summary{font-size:13px;color:var(--green);cursor:pointer;min-height:44px;padding:8px 0}
.group-toolbar{gap:8px;margin-bottom:10px}.group-manager{padding:6px 0}.group-name{font-size:15px}.group-entry small{font-size:12px;margin-top:2px}.group-sort{margin-top:14px;padding-top:8px}.group-options[open] .group-options-menu{grid-template-columns:repeat(4,minmax(0,1fr));border-radius:6px;gap:4px}.group-options-menu button{min-height:44px;font-size:13px}
#modal:has(.group-screen),#modal:has(#confirm-group-delete){position:fixed;inset:calc(var(--visual-top,0px) + 12px) 0 auto;margin:auto;width:calc(100% - 24px);max-width:560px;height:auto;max-height:calc(var(--visual-height,100dvh) - 24px);padding:0 12px 12px;border:1px solid var(--line);border-radius:8px;overflow:auto;overscroll-behavior:contain}
#modal:has(.group-screen) .dialog-top,#modal:has(#confirm-group-delete) .dialog-top{min-height:52px;margin:0 -12px 10px;padding:4px 8px 4px 12px;background:var(--app-bg);border-bottom:1px solid var(--line)}
#modal:has(.group-screen) .dialog-top h2,#modal:has(#confirm-group-delete) .dialog-top h2{font-size:16px;line-height:1.5}
#modal:has(.group-screen) .dialog-top button,#modal:has(#confirm-group-delete) .dialog-top button{min-width:44px;min-height:44px;width:44px;height:44px;font-size:20px}
#toast .toast-undo{min-height:44px;padding:4px 10px;margin-left:8px;color:#fff;background:transparent;border:1px solid #ffffff70;border-radius:6px;font-size:13px}
.review2-head{max-width:744px;margin-bottom:12px}.day-nav{gap:8px;margin:10px 0}.day-nav button,.review-date-chip{border-color:#d7ddd2;border-radius:7px;font-size:14px;background:var(--app-surface)}

/* Claude's three surfaces stay local to the home page; reading pages retain their own type scale. */
body[data-page="now"]{font-family:var(--font-ui);font-size:14px}
body[data-page="now"] main>header{height:auto;min-height:0;padding-top:16px;padding-bottom:12px;margin-bottom:0;align-items:center}
body[data-page="now"] main>header h1{font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1.3;margin-bottom:4px;color:var(--app-ink)}
body[data-page="now"] main>header .eyebrow{font-size:13px;line-height:1.4;color:#555f55;opacity:1}
body[data-page="now"] #home-overview .sleep-home{background:var(--app-card);border:1px solid #d5ddcd;border-radius:12px;padding:18px 16px;margin:0 0 20px;min-height:0;gap:12px;box-shadow:none;flex-wrap:wrap}
body[data-page="now"] #home-overview .sleep-text{flex:1 1 9rem;min-width:0;overflow-wrap:anywhere}
body[data-page="now"] #home-overview .sleep-home h3{font-size:17px;font-weight:600;line-height:1.4;margin:0 0 6px;color:var(--app-ink)}
body[data-page="now"] #home-overview .sleep-home p{font-size:14px;line-height:1.5;color:#555f55;margin:0}
body[data-page="now"] #home-overview .sleep-moon svg{width:22px;height:22px}
body[data-page="now"] #home-overview .sleep-home .sleep-view{font-size:13px;line-height:1.4;min-width:44px;min-height:44px;color:var(--app-accent);padding:6px 8px;border-radius:6px;margin-left:auto}
body[data-page="now"] #composer:not(.input-open){background:rgba(238,242,233,.35);border:1px solid rgba(61,106,85,.08);border-radius:12px;padding:15px 16px;margin-bottom:16px}
body[data-page="now"] #composer:not(.input-open)>.mobile-compose{background:transparent;width:100%;min-height:48px;padding:8px 0;border-radius:8px;font-size:15px;line-height:1.5;font-weight:400;color:var(--muted)}
body[data-page="now"] #composer:not(.input-open):focus-within{background:rgba(238,242,233,.6);border-color:rgba(61,106,85,.2)}
body[data-page="now"] #content{margin-top:0}
body[data-page="now"] #content .action-search input{background-color:rgba(238,242,233,.35);border:1px solid rgba(61,106,85,.08);border-radius:12px;padding:13px 16px 13px 44px;font-size:16px;line-height:1.5;color:var(--app-ink)}
body[data-page="now"] #content .action-search input::placeholder{color:var(--muted);opacity:1}
body[data-page="now"] #content .action-search input:focus{background-color:rgba(238,242,233,.6);border-color:rgba(61,106,85,.2);outline:var(--focus-ring);outline-offset:2px}
body[data-page="now"] #content .attention{background:rgba(238,234,222,.4);border:1px solid rgba(61,106,85,.06);border-radius:12px;padding:16px;margin:0 0 16px}
body[data-page="now"] #content .attention h3{font-size:16px;line-height:1.4;font-weight:600;color:var(--app-ink);margin:0 0 8px}
body[data-page="now"] #content .attention>button{width:100%;min-height:44px;padding:10px 0;border-radius:6px;font-size:14px;line-height:1.6;color:#414b41}
body[data-page="now"] #content .attention>button[data-act="source"]+button[data-act="source"]{border-top:1px solid rgba(61,106,85,.08)}
body[data-page="now"] #content .attention>button[data-act="raw-tab"]{font-size:13px;color:var(--app-accent);margin-top:4px}
body[data-page="now"] #content .attention .muted{font-size:13px;color:#555f55}
body.input-screen #home-overview{display:none}
body[data-page="now"] #content{--home-surface:var(--app-surface);--home-ink:var(--app-ink);--home-muted:#555f55;--home-accent:var(--app-accent);--home-tint:var(--app-card);--home-line:rgba(61,106,85,.1);color:var(--home-ink)}
.home-board{display:grid;grid-template-columns:minmax(0,1fr);gap:0}.home-focus,.home-plans{min-width:0}.home-board.plans-only .home-focus{display:none}.home-board.plans-only .home-plans{grid-column:1/-1}
body[data-page="now"] #content .action-search{margin:0 0 16px}
body[data-page="now"] #content .home-section{background:var(--home-tint);border:1px solid rgba(61,106,85,.1);border-radius:12px;padding:16px;margin:0 0 20px;box-shadow:none;min-width:0}body[data-page="now"] #content .home-overdue{background:#f5f1e7;border-color:#e5dece}body[data-page="now"] #content .home-waiting{background:rgba(238,234,222,.4);border-color:rgba(61,106,85,.06);margin-bottom:16px}body[data-page="now"] #content .home-section>.section{margin:0}
body[data-page="now"] #content .home-section .section-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin:0 0 14px}body[data-page="now"] #content .home-section .section-head h2{flex:1;min-width:0;font-size:18px;line-height:1.4;letter-spacing:0;color:var(--home-ink);margin:0;font-weight:600;overflow-wrap:anywhere}body[data-page="now"] #content .home-section .section-head .count{display:inline-block;font-size:13px;font-weight:400;color:var(--home-accent);margin-left:7px;padding:0;background:transparent;white-space:nowrap}body[data-page="now"] #content .home-section .section-sub{font-size:13px;font-weight:400;line-height:1.5;color:var(--home-muted);margin:0;flex-basis:100%}
body[data-page="now"] #content .home-section .task{background:var(--home-surface);border:1px solid var(--home-line);border-radius:10px;padding:14px 16px;margin:0 0 10px;box-shadow:none;min-width:0}body[data-page="now"] #content .home-section .task:last-child{margin-bottom:0}body[data-page="now"] #content .home-section .task-open h3{color:var(--home-ink)}body[data-page="now"] #content .home-section .task-caption{color:var(--home-muted)}body[data-page="now"] #content .home-section .empty{border:0;background:var(--home-surface);border-radius:6px;padding:10px}
/* Only the direct empty child describes an empty column; an empty group still has working actions. */
body[data-page="now"] #content :is(.home-waiting,.home-group-section):has(>section>.empty){min-height:44px;padding:12px 16px;background:transparent;border:1px dashed rgba(61,106,85,.15);margin-bottom:16px}
body[data-page="now"] #content :is(.home-waiting,.home-group-section):has(>section>.empty)>section>.section-head{align-items:center;margin:0;gap:0 8px}
body[data-page="now"] #content :is(.home-waiting,.home-group-section):has(>section>.empty)>section>.section-head h2{font-size:14px;font-weight:500;line-height:1.4;color:var(--muted)}
body[data-page="now"] #content :is(.home-waiting,.home-group-section):has(>section>.empty)>section>.section-head .section-sub{display:none}
body[data-page="now"] #content .home-waiting>section>.empty{display:none}
body[data-page="now"] #content .home-group-section:has(>section>.empty)>section{display:flex;align-items:center;flex-wrap:wrap;gap:0 8px}
body[data-page="now"] #content .home-group-section:has(>section>.empty)>section>.section-head{flex:1 1 10.5rem}
body[data-page="now"] #content .home-group-section>section>.empty{background:transparent;padding:0;margin:0;border:0;flex:0 0 auto}
body[data-page="now"] #content .home-group-section>section>.empty>strong{display:none}
body[data-page="now"] #content .home-group-section>section>.empty .tiny{min-width:44px;min-height:44px;padding:6px 8px;font-size:13px;line-height:1.4;color:var(--home-accent);border-radius:6px}
body[data-page="now"] #content .home-overdue [data-fold="overdue"]{margin-top:6px;padding-top:4px;border-top:1px solid var(--home-line)}body[data-page="now"] #content .home-overdue [data-fold="overdue"]>summary,body[data-page="now"] #content .home-periodic [data-fold="periodic-later"]>summary,body[data-page="now"] #content .home-loose [data-fold="loose"]>summary{font-size:13px;min-height:44px;color:var(--home-accent);padding:8px 2px}
body[data-page="now"] #content .home-group-section .section-head [data-act="manage-groups"]{margin-left:auto;border-color:var(--home-line);color:var(--home-accent);background:transparent;font-size:12px;min-height:44px;padding:5px 9px}
body[data-page="now"] #content .home-groups{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}body[data-page="now"] #content .home-groups .group{min-width:0;margin:0;padding:12px 16px;border:1px solid var(--home-line);border-radius:12px;background:var(--app-card);overflow:visible}body[data-page="now"] #content .home-groups .group>summary{display:list-item;min-height:44px;padding:10px 0;color:var(--home-ink);font-size:16px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}body[data-page="now"] #content .home-groups .group[open]{grid-column:1/-1;border-color:#d8e2d7}body[data-page="now"] #content .home-groups .group[open]>summary{margin-bottom:14px}body[data-page="now"] #content .home-groups .group>.actions{justify-content:flex-end;margin:0;padding:3px 0;border-top:1px solid var(--home-line)}body[data-page="now"] #content .home-groups .group>.actions button{font-size:13px;min-height:44px;color:var(--home-accent);background:transparent;border-color:var(--home-line)}body[data-page="now"] #content .home-groups .group .task{margin-left:0}body[data-page="now"] #content .home-groups .group .task:last-child{margin-bottom:0}
body[data-page="now"] #content .home-groups+.home-loose{margin-top:12px;padding-top:10px;border-top:1px solid var(--home-line)}body[data-page="now"] #content .home-loose h3{font-size:15px;line-height:1.6;color:var(--home-ink);margin:0 0 4px;font-weight:500}body[data-page="now"] #content .home-loose h3 span{margin-left:6px;color:var(--home-accent);font-size:12px;font-weight:500}
body[data-page="now"] #content .home-future>.section{margin:0}body[data-page="now"] #content .home-future .fold-section>summary{color:var(--home-ink);padding:0;font-size:18px;font-weight:600;min-height:44px}body[data-page="now"] #content .today-done{background:var(--home-surface);border:1px solid var(--home-line);padding:3px 12px;box-shadow:none;margin-top:0;border-radius:12px}body[data-page="now"] #content .today-done summary{padding:7px 0}body[data-page="now"] #content .today-done summary b{font-size:16px;font-weight:600}body[data-page="now"] #content .today-done .task{background:transparent;border:0;border-top:1px solid var(--home-line);border-radius:0;padding:6px 0;margin:0}
body[data-page="now"] #content .task-row{display:grid;grid-template-columns:minmax(0,1fr) 44px 44px 58px;grid-template-rows:auto auto;column-gap:0;align-items:center}body[data-page="now"] #content .task .task-open{grid-column:1/-1;grid-row:1;width:100%;padding:3px 0 0;min-height:44px}body[data-page="now"] #content .task .task-open h3{font-size:15px;line-height:1.5;font-weight:500;letter-spacing:0;margin:0 0 6px;color:var(--home-ink)}body[data-page="now"] #content .task .task-caption{font-size:13px;line-height:1.4;margin:0;color:var(--home-muted)}
body[data-page="now"] #content .task-group-label{padding:3px 8px;background:rgba(61,106,85,.08);border:0;border-radius:4px;font-size:12px;line-height:1.3;color:var(--app-accent);margin:6px 0 0}
body[data-page="now"] #content .task .star{grid-column:2;grid-row:2;width:44px;min-width:44px;height:44px;min-height:44px;padding:10px;color:#7d897a}body[data-page="now"] #content .task .star.on{color:#aa7c24}body[data-page="now"] #content .task .expand-icon{grid-column:3;grid-row:2;width:44px;min-width:44px;height:44px;min-height:44px;padding:10px}body[data-page="now"] #content .task .check{grid-column:4;grid-row:2;justify-self:end;width:58px;min-width:58px;height:44px;min-height:44px;padding:0;border-radius:6px;font-size:0}
body[data-page="now"] #content .task.task-short .task-open{grid-column:1;grid-row:1;padding-right:5px}body[data-page="now"] #content .task.task-short .star,body[data-page="now"] #content .task.task-short .expand-icon,body[data-page="now"] #content .task.task-short .check{grid-row:1}
body[data-page="now"] #content .task .check::before{display:none}body[data-page="now"] #content .task .check::after{content:'完成';position:static;display:block;width:auto;height:auto;border:0;transform:none;color:var(--home-accent);font-size:13px;font-weight:500;line-height:44px}body[data-page="now"] #content .task .check[data-act="undo-done"]::after{content:'撤销完成'}body[data-page="now"] #content .task .check:focus-visible{outline:var(--focus-ring);outline-offset:1px}
body[data-page="now"] #content .task:has(.task-detail:not([hidden])){background:var(--home-surface);border:1px solid #ccd9c7;border-radius:10px;padding:14px 16px;margin-top:0;margin-bottom:10px;box-shadow:none}body[data-page="now"] #content .task:has(.task-detail:not([hidden]))+.task{margin-top:0}body[data-page="now"] #content .task .task-expanded{padding:10px 0 0;border-top:1px solid #d9dfd3}body[data-page="now"] #content .task .task-expanded h4{font-size:13px;font-weight:500;line-height:1.65;color:var(--home-muted);margin:0 0 6px}body[data-page="now"] #content .task .task-expanded .body{font-size:15px;font-weight:400;line-height:1.75;color:#354137;padding:0;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}body[data-page="now"] #content .task .task-primary{margin:10px 0 8px}body[data-page="now"] #content .task .task-primary .primary{width:100%;margin:0;min-height:44px;font-size:14px;font-weight:500;padding:9px 10px;border-radius:7px}body[data-page="now"] #content .task .task-secondary{margin:8px 0 0;padding-top:2px;}
body[data-page="now"] #content :is(button.tiny,button.plain){min-height:44px;min-width:44px;font-size:13px;line-height:1.4;border-radius:6px}
body[data-page="now"] :is(#open-input,#quick-add,.sleep-view),body[data-page="now"] #content :is(.task,button.tiny,button.plain,details.group>summary,details.today-done>summary){transition:background-color 90ms ease,opacity 90ms ease}
body[data-page="now"] :is(#open-input,#quick-add,.sleep-view):active,body[data-page="now"] #content :is(.task,button.tiny,button.plain,details.group>summary,details.today-done>summary):active{opacity:.7}
body[data-page="now"] #content .home-section .task:active{background:#e4ecdf}
@media(hover:hover) and (pointer:fine){body[data-page="now"] #composer:not(.input-open):hover{background:rgba(238,242,233,.5);border-color:rgba(61,106,85,.12)}}
@media(prefers-reduced-motion:reduce){body[data-page="now"] :is(#open-input,#quick-add,.sleep-view),body[data-page="now"] #content :is(.task,button.tiny,button.plain,details.group>summary,details.today-done>summary){transition:none}}
@media(min-width:768px){
 .shell{max-width:1440px;grid-template-columns:172px minmax(0,1fr)}aside{padding:24px 16px;background:#f5f5ee}nav{margin-top:26px;gap:4px}nav button{border-radius:7px;padding:9px 10px}nav button.active{background:#e8eee1;color:var(--green)}nav button.active span{background:transparent}.brand{font-size:21px}.brand small{font-size:11px;line-height:1.65}.mark{border-radius:7px}.aside-note{font-size:13px}
 main{max-width:1140px;padding:22px 24px 24px}main>header{margin-bottom:12px}#home-overview{grid-column:1/-1}
 #composer:not(.input-open){padding:0;border-radius:7px;background:#e6eee2}#composer:not(.input-open)>.mobile-compose{display:flex;width:100%;min-height:48px;align-items:center;justify-content:space-between;border-radius:7px;padding:10px 12px;background:#e6eee2;font-size:15px}#composer:not(.input-open)>:not(.mobile-compose):not(#input-status){display:none}
 body:not([data-page=now]):not([data-page=settings]) #content{max-width:744px}body[data-page=cognitions] #content,body[data-page=raw] #content,body[data-page=history] #content{margin-left:auto;margin-right:auto}body[data-page=cognitions] main>header,body[data-page=raw] main>header,body[data-page=history] main>header{max-width:744px;margin-left:auto;margin-right:auto}
 .settings-box.settings-guide{grid-column:1/-1}.settings-box.settings-import,.settings-box.settings-install,.settings-box.settings-guide{padding-left:0;padding-right:0}
}
@media(min-width:1024px){.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-board{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}}
@media(max-width:767px){
 main{padding-top:calc(8px + env(safe-area-inset-top));padding-left:13px;padding-right:13px;max-width:640px}main>header{height:auto;min-height:48px;margin:0 0 10px;padding:0;align-items:center}main>header h1{font-size:22px}main>header .eyebrow{font-size:12px}#today{display:block;margin:0 0 3px}
 nav{font-family:var(--font-ui);background:rgba(250,249,245,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(61,106,85,.08);padding:8px max(3px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(3px,env(safe-area-inset-left))}nav button{font-size:12px;line-height:1.3;padding:8px 4px;min-width:44px;min-height:64px;color:#555f55;font-weight:500;transition:opacity 90ms ease}nav button.active{color:var(--app-ink);font-weight:600}nav button.active span{background:rgba(238,242,233,.8)}nav button span{width:52px;height:34px;padding:6px 12px;border-radius:8px;transition:background-color 120ms ease}nav svg{width:22px;height:22px;opacity:.7}nav button.active svg{opacity:1}nav button:active{opacity:.7}nav button:active span{background:rgba(61,106,85,.12)}aside{border-top:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
 body[data-page="now"] main{padding-top:env(safe-area-inset-top);padding-bottom:max(120px,calc(var(--nav-height) + env(safe-area-inset-bottom) + 24px))}
 #composer:not(.input-open){border-radius:7px;background:#e6eee2}.mobile-compose{min-height:48px;padding:10px 12px;font-size:15px;background:#e6eee2;border-radius:7px}
 .cognition{padding:11px 12px;margin-bottom:10px}.cognition h3{font-size:16px;line-height:1.6}.cognition>p{margin:8px 0;line-height:1.8}.page-tools .chip-row{padding-top:6px;gap:6px}

 .settings-box{padding:11px 12px}.settings-box .actions button{font-size:14px;line-height:1.7}.insurance-status>div{grid-template-columns:72px minmax(0,1fr);gap:8px;font-size:13px}
 .group-options[open] .group-options-menu{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:359px){main{padding-left:11px;padding-right:11px}.cognition{padding:10px 11px}.settings-box{padding:10px 11px}.insurance-status>div{grid-template-columns:minmax(0,1fr);gap:3px}.insurance-status dd{text-align:left}.cog-card-actions{flex-wrap:wrap}}
@media(max-width:767px) and (prefers-reduced-motion:reduce){nav button,nav button span{transition:none}}

/* 操作、阅读和回看共用角色字号，各页按内容选择密度。 */

::selection{background:#dce8dc;color:var(--app-ink)}input,textarea{caret-color:var(--app-accent)}
main>header h1{font-size:1.375rem;line-height:1.35;font-weight:650}#quick-add{font-size:.875rem;font-weight:500;padding:8px 12px}main>header .eyebrow{font-size:var(--type-meta)}
body[data-page="now"] #content .task .task-secondary button{font-size:var(--type-control);font-weight:400}body[data-page="now"] #content .task .task-secondary{gap:4px 8px}
.cognition{padding:16px 18px;margin-bottom:var(--space-section);border-radius:10px}.cognition h3{font-size:1.0625rem;font-weight:600;line-height:1.6}.cognition>p{font-size:var(--type-reading);line-height:1.85;margin:12px 0;max-width:var(--reading-width)}.cog-card-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;border-top:0;margin-top:8px;padding-top:0}.cog-card-actions button,.cog-more>summary{font-size:var(--type-control);font-weight:400;min-height:44px}.cog-more>summary{display:flex;align-items:center;justify-content:center;min-width:44px;padding:0 8px;color:var(--muted)}.cog-more[open]{flex-basis:100%}.cog-more[open]>summary{justify-content:flex-start}.cog-more .actions{gap:6px;padding-top:4px;border-top:1px solid var(--line)}.cog-index-head{font-size:var(--type-control)}
.raw-preview,body[data-page=raw] .record.raw-preview{padding:12px 16px;border-radius:8px;margin-bottom:12px}.raw-preview>p:not(.error){font-size:var(--type-reading);line-height:1.8;margin:10px 0}.raw-preview .actions{border-top:1px solid var(--line);padding-top:2px;margin-top:8px;gap:4px 12px}.raw-preview .actions button{font-size:var(--type-control);font-weight:400}.raw-preview .record-head{font-size:var(--type-meta);gap:8px 12px}.day-head{font-size:var(--type-control);font-weight:500;margin:20px 0 8px;border-bottom:0;padding:0}.raw-new{font-size:.875rem;margin-bottom:4px}body[data-page=raw] #content>.muted{font-size:var(--type-control);margin:4px 0 12px}
.settings-box{padding:16px 18px;border-radius:10px}.settings-box h2{font-size:var(--type-section);font-weight:600;margin-bottom:10px}.settings-box .actions button{font-size:.875rem;font-weight:500}.settings-box .muted{font-size:var(--type-control);line-height:1.75}.settings-box.settings-import,.settings-box.settings-install,.settings-box.settings-guide{padding:16px 2px 0;border-radius:0}.settings-box.settings-import h2,.settings-box.settings-install h2,.settings-box.settings-guide h2{font-size:1rem}.settings-grid{gap:var(--space-section)}
.progress-current,.progress-next{display:block;min-width:0;margin:12px 0;padding:11px 12px;border:1px solid var(--line);border-radius:7px;background:var(--app-surface)}.progress-current{background:#f1f4ec;border-color:#d6dfd1}.progress-next{border-left:3px solid #c1d0b9}
.task .task-expanded .progress-current h4,.task .task-expanded .progress-next h4,body[data-page="now"] #content .task .task-expanded .progress-current h4,body[data-page="now"] #content .task .task-expanded .progress-next h4{margin:0 0 7px;font-size:13px;font-weight:500;line-height:1.65;color:var(--app-ink)}
.progress-current p,.progress-next p,.progress-current .body,.progress-next .body{margin:0;font-size:15px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:767px){.cognition,.raw-preview,body[data-page=raw] .record.raw-preview,.settings-box{padding:12px 14px}.settings-box.settings-import,.settings-box.settings-install,.settings-box.settings-guide{padding:16px 0 0}.progress-current,.progress-next{padding:10px}}
/* 栏目先于内容，睡眠单独用紧凑信息行；视觉字小，触摸区不缩小。 */
body[data-page=history]{background:#f6f5f0}body[data-page=history] #today{display:none}body[data-page=history] #content,body[data-page=history] main>header{max-width:744px;margin-left:auto;margin-right:auto}body[data-page=history] main>header h1{font-size:1.375rem;font-weight:600;line-height:1.35}
body[data-page=history] .review2-head{max-width:744px;margin:0 auto 16px}body[data-page=history] .review2-head .day-nav{display:flex;align-items:center;gap:12px;margin:0}body[data-page=history] .review2-head .day-nav button{min-height:44px;min-width:44px;padding:6px 4px;border:0;border-radius:var(--surface-radius);background:transparent;color:var(--muted);font-size:.8125rem;font-weight:400;line-height:1.5}body[data-page=history] .review2-head .day-nav button:disabled{opacity:.4}body[data-page=history] .review2-head .review-date-chip{min-height:48px;border:0;border-radius:var(--surface-radius);background:transparent;color:var(--app-ink);font-size:1.125rem;line-height:1.5;font-weight:500}body[data-page=history] .review-today-link{font-size:.8125rem;font-weight:400;line-height:1.5;padding:4px 0;min-height:44px;min-width:44px;color:var(--app-accent)}
body[data-page=history] .page-tools{max-width:744px;margin:0 auto 24px}body[data-page=history] .page-tools input[type=search]{background-color:#fffefb;border-color:#e0e5dc;border-radius:10px;font-size:.875rem;font-weight:400;line-height:1.6;min-height:46px}body[data-page=history] .page-tools input[type=search]::placeholder{color:var(--muted);opacity:1}
body[data-page=history] #content>[data-act=review-clear]{display:block;margin:0 0 12px;font-size:.8125rem;font-weight:400;line-height:1.5}body[data-page=history] #content>.record{padding:22px;margin:0 0 12px;background:#fffefb;border:1px solid #e0e5dc;border-radius:14px}body[data-page=history] #content>.record>time{font-size:.8125rem;font-weight:400;line-height:1.6;color:var(--muted)}body[data-page=history] #content>.record>p{font-size:.9375rem;font-weight:400;line-height:1.75;color:#3a473e;white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 12px}body[data-page=history] #content>.record>button{display:block;width:100%;text-align:left;min-height:44px;min-width:44px;padding:4px 2px;border:0;border-top:1px solid #e6e9e1;border-radius:0;background:transparent;color:var(--app-accent);font-size:.8125rem;font-weight:400;line-height:1.5}
body[data-page=history] .review-day{display:grid;gap:24px;max-width:744px;margin:0 auto;min-width:0}body[data-page=history] .review-section{background:transparent;border:0;border-radius:0;padding:0;min-width:0;box-shadow:none}
body[data-page=history] .review-section-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;margin:0 0 8px;min-width:0}body[data-page=history] .review-section-head h2{margin:0;font-size:1.25rem;font-weight:600;line-height:1.4;color:var(--app-ink);overflow-wrap:anywhere}body[data-page=history] .review-section-head .count{font-size:.8125rem;font-weight:400;line-height:1.6;color:var(--muted);background:transparent;padding:0;margin-left:9px}body[data-page=history] .review-section-head>button{font-size:.8125rem;font-weight:400;line-height:1.5;padding:4px 2px;color:var(--app-accent);background:transparent;border:0;min-height:44px;min-width:44px}
body[data-page=history] .review-items{display:grid;gap:0;margin:0;padding:0;min-width:0}body[data-page=history] .review-item,body[data-page=history] .review-item:first-child,body[data-page=history] .review-item:last-child{min-width:0;padding:0;border:0}body[data-page=history] .review-section[data-review-section=progress] .review-items{gap:12px}
body[data-page=history] .review-task-item{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:16px;row-gap:0}body[data-page=history] .review-item-head{flex:1 1 max-content;min-width:0}body[data-page=history] .review-item h3{margin:0;font-size:.9375rem;font-weight:400;line-height:1.65;overflow-wrap:anywhere}
body[data-page=history] .review-open{display:block;width:100%;min-height:44px;padding:8px 0;border:0;border-radius:var(--surface-radius);text-align:left;color:var(--app-ink);background:transparent;font:inherit;line-height:inherit;overflow-wrap:anywhere}body[data-page=history] .review-open::after{content:none}body[data-page=history] .review-open:active{background:var(--tint)}
body[data-page=history] .review-item-body{flex:0 0 100%;min-width:0}body[data-page=history] .review-item p,body[data-page=history] .review-item .body{margin:8px 0 0;font-size:.9375rem;font-weight:400;line-height:1.75;color:#3a473e;white-space:pre-wrap;overflow-wrap:anywhere;display:block;overflow:visible;-webkit-line-clamp:unset}body[data-page=history] .review-item .muted,body[data-page=history] .review-item small{font-size:.8125rem;font-weight:400;line-height:1.6;color:var(--muted)}body[data-page=history] .review-item .task-group-label{margin:0 0 4px;font-size:.8125rem;font-weight:400;line-height:1.6;color:var(--muted);border:0;padding:0;background:transparent}
body[data-page=history] .review-row-actions,body[data-page=history] .review-inline-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;min-width:0}body[data-page=history] .review-row-actions{flex:0 0 auto;justify-content:flex-end;margin-left:auto}body[data-page=history] .review-row-actions button,body[data-page=history] .review-inline-actions button{min-height:44px;min-width:44px;padding:4px 2px;color:var(--app-accent);background:transparent;border:0;border-radius:var(--surface-radius);font-size:.8125rem;font-weight:400;line-height:1.5}body[data-page=history] .review-task-item:has(>.review-item-body)>.review-row-actions{order:3;flex-basis:100%;justify-content:flex-start;margin-left:0;margin-top:12px}body[data-page=history] .review-inline-actions{margin-top:12px;padding-top:4px;border-top:1px solid #e6e9e1}
body[data-page=history] .review-empty{margin:0;font-size:.8125rem;font-weight:400;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}body[data-page=history] .review-section.is-empty{background:#f0f2ec;border:1px solid #e0e5dc;border-radius:14px;padding:12px 16px}body[data-page=history] .review-section.is-empty .review-section-head{margin-bottom:2px}body[data-page=history] .review-section.is-empty h2{font-size:1rem;font-weight:500;line-height:1.5;color:#596a5b}body[data-page=history] .review-section.is-empty>button{min-height:44px;min-width:44px;padding:4px 2px;border:0;background:transparent;font-size:.8125rem;font-weight:400;line-height:1.5;color:var(--app-accent)}
body[data-page=history] .review-insights{display:grid;gap:12px}body[data-page=history] .review-insight,body[data-page=history] .review-item.review-task-progress{min-width:0;color:var(--app-ink);padding:22px;background:#fffefb;border:1px solid #e0e5dc;border-radius:14px}body[data-page=history] .review-insight p,body[data-page=history] .review-insight .body{margin:0;font-size:.9375rem;font-weight:400;line-height:1.75;color:#3a473e;white-space:pre-wrap;overflow-wrap:anywhere;display:block;overflow:visible;-webkit-line-clamp:unset}body[data-page=history] .review-insight h3{margin:0 0 8px;font-size:1rem;font-weight:500;line-height:1.6;overflow-wrap:anywhere}body[data-page=history] .review-task-progress .review-item-head{flex-basis:100%}body[data-page=history] .review-task-progress h3{font-size:1rem;font-weight:500;line-height:1.6}body[data-page=history] .review-task-progress .review-open{padding:0 0 8px}body[data-page=history] .review-task-progress>.review-row-actions{border-top:1px solid #e6e9e1;padding-top:4px}
body[data-page=history] .review-section[data-review-section=done]:not(.is-empty)>.review-items,body[data-page=history] .review-section[data-review-section=unfinished]:not(.is-empty)>.review-items{padding:4px 20px;background:#fffefb;border:1px solid #e0e5dc;border-radius:14px}body[data-page=history] .review-section[data-review-section=done] .review-task-item,body[data-page=history] .review-section[data-review-section=unfinished] .review-task-item{padding:6px 0;min-height:56px;border-bottom:1px solid #e6e9e1}body[data-page=history] .review-section[data-review-section=done] .review-task-item:last-child,body[data-page=history] .review-section[data-review-section=unfinished] .review-task-item:last-child{border-bottom:0}
body[data-page=history] .review-item.review-sleep{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;min-height:80px;padding:14px 16px;border:1px solid #e0e5dc;border-radius:12px;background:#edf2e8}body[data-page=history] .review-sleep-info{flex:1 1 7.5rem;min-width:0}body[data-page=history] .review-sleep h3{font-size:1rem;font-weight:500;line-height:1.5;margin:0}body[data-page=history] .review-sleep p{margin:0;font-size:.8125rem;font-weight:400;line-height:1.6;color:var(--muted)}body[data-page=history] .review-sleep p.review-sleep-note{flex:0 0 100%;font-size:.875rem;font-weight:400;line-height:1.7;color:#3a473e;margin:0}body[data-page=history] .review-section .actions{margin:0;gap:8px;flex-wrap:wrap}body[data-page=history] .review-section .actions button{min-height:44px;min-width:44px;font-size:.8125rem;font-weight:400;line-height:1.5;padding:4px 2px;border:0;background:transparent;color:var(--app-accent)}body[data-page=history] .review-sleep .actions{flex:0 0 96px;justify-content:flex-end;padding:0;border:0}
body[data-page=history] .review-section[data-review-section=sleep].is-empty{padding:10px 16px;background:#edf2e8;border-radius:12px}body[data-page=history] .review-section[data-review-section=sleep].is-empty .review-section-head{margin-bottom:0}body[data-page=history] .review-sleep-empty{display:flex;align-items:center;flex-wrap:wrap;gap:0 8px;min-width:0}body[data-page=history] .review-sleep-empty .review-empty{flex:1 1 6.5rem}body[data-page=history] .review-sleep-empty>button{min-height:44px;min-width:44px;font-size:.8125rem;font-weight:400;line-height:1.5;padding:4px 2px;border:0;background:transparent;color:var(--app-accent)}
body[data-page=history] .progress-current,body[data-page=history] .progress-next{margin:8px 0 0;padding:0;border:0;border-radius:0;background:transparent}body[data-page=history] .progress-next{margin-top:14px;padding-top:12px;border-top:1px solid #e6e9e1}body[data-page=history] .progress-next>.muted{display:block;font-size:.8125rem;font-weight:400;line-height:1.6;color:var(--muted);margin-bottom:6px}body[data-page=history] .progress-current p,body[data-page=history] .progress-next p,body[data-page=history] .progress-current .body,body[data-page=history] .progress-next .body{font-size:.9375rem;font-weight:400;line-height:1.75}
/* 查看记录的展示层与编辑表单分开，输入继续沿用16px。 */
body[data-page=history] #modal:has(.progress-detail,.source-original) .dialog-top h2{font-size:1.25rem;font-weight:600;line-height:1.4}body[data-page=history] #modal .progress-detail,body[data-page=history] #modal .source-original,body[data-page=history] #modal .source-related{font-size:.9375rem;font-weight:400;line-height:1.75;color:#3a473e;overflow-wrap:anywhere}body[data-page=history] #modal .progress-detail p,body[data-page=history] #modal .source-related p{font-size:.9375rem;font-weight:400;line-height:1.75;white-space:pre-wrap}body[data-page=history] #modal .progress-detail .muted,body[data-page=history] #modal .progress-detail time,body[data-page=history] #modal:has(.source-original) #modal-content>time,body[data-page=history] #modal .progress-detail summary,body[data-page=history] #modal .source-related summary{font-size:.8125rem;font-weight:400;line-height:1.6;color:var(--muted)}body[data-page=history] #modal .source-related h3{font-size:1rem;font-weight:500;line-height:1.6;margin-top:14px}body[data-page=history] #modal:has(.progress-detail,.source-original) #modal-content button{font-size:.8125rem;font-weight:400;line-height:1.5;min-height:44px;min-width:44px}
@media(max-width:767px){body[data-page=history] main{padding-left:16px;padding-right:16px}body[data-page=history] .review-insight,body[data-page=history] .review-item.review-task-progress,body[data-page=history] #content>.record{padding:18px}body[data-page=history] .review-section[data-review-section=done]:not(.is-empty)>.review-items,body[data-page=history] .review-section[data-review-section=unfinished]:not(.is-empty)>.review-items{padding:4px 16px}}
@media(max-width:360px){body[data-page=history] main{padding-left:12px;padding-right:12px}body[data-page=history] .review-insight,body[data-page=history] .review-item.review-task-progress,body[data-page=history] #content>.record{padding:16px}}
@media(hover:hover) and (pointer:fine){body[data-page=history] .review-open:hover,body[data-page=history] .review-row-actions button:hover,body[data-page=history] .review-inline-actions button:hover,body[data-page=history] .review-today-link:hover,body[data-page=history] .review2-head .day-nav button:hover,.cog-more>summary:hover{background:var(--tint);color:var(--app-accent)}}

/* Preserve each page's body size and original paragraph spacing. */
.prose-section-heading{font-size:inherit;font-weight:600;line-height:inherit}
body:not([data-page="now"]) #today{display:none}

/* V7.8 首页与回顾设计层：只调层次、密度和可点感，不改字号规格、配色体系与操作顺序。 */
body[data-page="now"] #home-overview .sleep-home{padding:10px 8px 10px 12px;margin:0 0 12px;gap:12px;border-color:#d9e1d2;flex-wrap:nowrap}
body[data-page="now"] #home-overview .sleep-home .sleep-moon{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:rgba(255,253,248,.75);color:var(--app-accent)}
body[data-page="now"] #home-overview .sleep-home .sleep-moon svg{width:18px;height:18px}
body[data-page="now"] #home-overview .sleep-home .sleep-text{min-width:0}
body[data-page="now"] #home-overview .sleep-home h3{font-size:15px;line-height:1.4;margin:0 0 1px}
body[data-page="now"] #home-overview .sleep-home p{font-size:13px;line-height:1.4;font-variant-numeric:tabular-nums}
body[data-page="now"] #home-overview .sleep-home .sleep-view::after{content:' ›';font-size:15px}
body[data-page="now"] #composer:not(.input-open){background:var(--app-surface);border:1px solid rgba(61,106,85,.18);padding:4px 6px 4px 16px;margin-bottom:10px;box-shadow:0 1px 2px rgba(40,54,45,.04)}
body[data-page="now"] #composer:not(.input-open):focus-within{background:var(--app-surface);border-color:rgba(61,106,85,.36)}
body[data-page="now"] #composer:not(.input-open)>.mobile-compose{min-height:48px;padding:0;border:0;background:transparent;font-size:15px;color:var(--muted)}
body[data-page="now"] #composer:not(.input-open)>.mobile-compose span{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--app-accent);color:#fffdf8}
body[data-page="now"] #composer:not(.input-open)>.mobile-compose span svg{width:18px;height:18px;margin-left:2px}
body[data-page="now"] #content .action-search{margin:0 0 14px}
body[data-page="now"] #content .action-search input{min-height:44px;padding:10px 14px 10px 42px;background-color:rgba(238,242,233,.6);border-color:transparent;background-position:14px center}
body[data-page="now"] #content .action-search input:focus{background-color:var(--app-surface);border-color:rgba(61,106,85,.24)}
body[data-page="now"] #content .attention{background:#f7f2e6;border:1px solid #ece3cc;padding:12px 14px 4px;margin:0 0 14px}
body[data-page="now"] #content .attention h3{display:flex;align-items:center;gap:8px;font-size:15px;line-height:1.5;margin:0}
body[data-page="now"] #content .attention h3::before{content:'';flex:none;width:7px;height:7px;border-radius:50%;background:#b8862f}
body[data-page="now"] #content .attention>button{min-height:44px;padding:8px 0}
body[data-page="now"] #content .attention>button[data-act="source"]{padding-top:4px}
body[data-page="now"] #content .attention>button[data-act="raw-tab"]{width:auto;margin:0;padding:0;font-weight:500}
body[data-page="now"] #content .attention>button[data-act="raw-tab"]::after{content:' →'}
body[data-page="now"] #content .home-section{padding:14px 12px 12px;margin:0 0 14px}
body[data-page="now"] #content .home-section .section-head{margin:0 4px 12px}
body[data-page="now"] #content .home-section .section-head .count{margin-left:8px;padding:0 7px;border-radius:999px;background:rgba(61,106,85,.1);line-height:20px;vertical-align:2px;font-variant-numeric:tabular-nums}
body[data-page="now"] #content .home-waiting .section-head .count{background:rgba(120,104,60,.1);color:#6f6340}
body[data-page="now"] #content .home-section .task{padding:12px 4px 12px 14px;margin:0 0 8px;border-color:rgba(61,106,85,.09)}
body[data-page="now"] #content .task .task-open{padding:0;min-height:44px}
body[data-page="now"] #content .task .task-open h3{margin:0 0 3px}
body[data-page="now"] #content .task:not(.task-short) .task-row:has(.task-caption)>.task-open{grid-row:1/3;align-self:stretch;display:flex;flex-direction:column;justify-content:flex-start}
body[data-page="now"] #content .task:not(.task-short) .task-row:has(.task-caption)>.task-open .task-caption{margin-top:auto;max-width:calc(100% - 146px);line-height:44px}
body[data-page="now"] #content .task:not(.task-short) .task-row:has(.task-caption)>.task-open h3{margin:0}
body[data-page="now"] #content .task .star:not(.on){color:#8b958a}
body[data-page="now"] #content .task .expand-icon{color:#8b958a}
body[data-page="now"] #content .task .check[data-act="done"]::after{display:inline-block;padding:0 12px;border-radius:999px;background:rgba(61,106,85,.1);line-height:30px;vertical-align:middle}
body[data-page="now"] #content .task .check[data-act="done"]:active::after{background:rgba(61,106,85,.2)}
body[data-page="now"] #content .task .check{display:grid;place-items:center}
body[data-page="now"] #content .home-group-section .section-head [data-act="manage-groups"]{border-color:transparent;font-size:13px;padding:6px 8px}
body[data-page="now"] #content .today-done{padding:2px 14px}
body[data-page="now"] #content .today-done summary{gap:8px}
body[data-page="now"] #content .today-done summary b{font-size:15px}
body[data-page="now"] #content .today-done summary .muted{font-size:13px;font-weight:400;color:var(--muted)}
body[data-page="now"] #content .today-done summary::after{content:'›';margin-left:auto;font-size:18px;line-height:1;color:var(--muted);transition:transform 120ms ease}
body[data-page="now"] #content .today-done[open] summary::after{transform:rotate(90deg)}
body[data-page=history] .review2-head .day-nav{gap:8px}
body[data-page=history] .review2-head .day-nav button{padding:6px 10px;color:var(--app-accent);border-radius:999px}
body[data-page=history] .review2-head .day-nav button[data-act="review-prev"]::before{content:'‹ ';font-size:15px}
body[data-page=history] .review2-head .day-nav button[data-act="review-next"]::after{content:' ›';font-size:15px}
body[data-page=history] .review2-head .day-nav button:disabled{color:var(--muted);opacity:.45}
body[data-page=history] .review2-head .review-date-chip{flex:0 1 auto;margin:0 auto!important;min-height:44px;padding:0 14px;gap:6px;border:1px solid #e0e5dc;border-radius:999px;background:#fffefb;font-size:1.125rem;font-weight:500;font-variant-numeric:tabular-nums}
body[data-page=history] .review2-head .review-date-chip span::after{content:'';display:inline-block;width:6px;height:6px;margin:0 0 3px 9px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg)}
body[data-page=history] .review-section-head>button:is([data-act="review-insight"],[data-act="review-completion"])::before{content:'+ '}
body[data-page=history] .review-section-head .count{margin-left:8px;padding:0 7px;border-radius:999px;background:rgba(61,106,85,.08);line-height:20px;vertical-align:2px;font-variant-numeric:tabular-nums}
body[data-page=history] .review-inline-actions{margin-left:-2px}
body[data-page=history] .review-sleep p{font-variant-numeric:tabular-nums}
body[data-page=history] .review-section[data-review-section=done] .review-open,body[data-page=history] .review-section[data-review-section=unfinished] .review-open{position:relative;padding-left:24px}
body[data-page=history] .review-section[data-review-section=done] .review-open::before{content:'';position:absolute;left:3px;top:calc(8px + .5lh - 6px);width:5px;height:10px;border-right:2px solid var(--app-accent);border-bottom:2px solid var(--app-accent);transform:rotate(45deg)}
body[data-page=history] .review-section[data-review-section=done] .review-open{color:#4d5a50}
body[data-page=history] .review-section[data-review-section=unfinished] .review-open::before{content:'';position:absolute;left:4px;top:calc(8px + .5lh - 3px);width:6px;height:6px;border-radius:50%;background:#b9c2b5}
body[data-page="now"] #content .task:not(.task-short) .task-row:not(:has(.task-caption))>:is(.star,.expand-icon,.check){margin-top:-6px}
body[data-page=history] .review-inline-actions button{min-width:44px;padding:4px 8px 4px 0;text-align:left}
body[data-page=history] .review-inline-actions{margin-left:0;gap:4px 14px}
body[data-page="now"] #content .task .task-expanded{margin-top:10px}

/* V7.9 期限行动：期限内每天在“这几天推进”；今天推进过的变淡但仍清楚可读 */
body[data-page="now"] #content .home-section .task.task-progressed{background:#f0f2ec;border-color:rgba(61,106,85,.06)}
body[data-page="now"] #content .home-section .task.task-progressed .task-open h3{color:#5b675d;font-weight:400}
body[data-page="now"] #content .home-section .task.task-progressed .task-caption{color:#3d6a55}
/* 期限说明在窄屏可换成两行，不截断；行高收紧，仍与右侧操作同排 */
body[data-page="now"] #content .task.task-deadline:not(.task-short) .task-row:has(.task-caption)>.task-open .task-caption{display:flex;align-items:center;min-height:44px;line-height:18px}
.deadline-field{border:0;margin:16px 0 4px;padding:0;min-width:0}
.deadline-field legend{padding:0;margin:0 0 8px;font-size:15px;font-weight:500;color:var(--ink,#1f2a22)}
.deadline-field .deadline-shortcuts{margin:0 0 10px}
.deadline-field .deadline-hint{margin:8px 0 0;font-size:13px;line-height:1.6}
body[data-page="now"] #content .deadline-caption>span{white-space:nowrap}
/* V8.1 该决定与想做：决定按钮是次要操作，小而清楚，触摸区保持44px。想做页沿用首页卡片层级。 */
body[data-page="now"] #content .task-decide{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;margin:8px 0 0;padding-top:8px;border-top:1px solid var(--home-line)}
body[data-page="now"] #content .task-decide button{min-width:0;min-height:44px;padding:6px 2px;font-size:13px;line-height:1.3;border:1px solid var(--home-line);border-radius:22px;background:transparent;color:var(--home-accent);overflow-wrap:anywhere}
body[data-page="now"] #content :is(.task-decide,.decide-all) .decide-drop{color:#7a6a55}
body[data-page="now"] #content .decide-all{display:flex;justify-content:flex-end;margin:12px 0 0}body[data-page="now"] #content .decide-all button{min-height:44px;padding:6px 12px;font-size:13px;color:var(--home-accent);background:transparent;border:1px solid var(--home-line);border-radius:22px}
body[data-page="now"] #content .home-ideas{padding:0;background:transparent;border:1px dashed rgba(61,106,85,.18)}
body[data-page="now"] #content .ideas-entry{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 16px;text-align:left;color:var(--home-ink);background:transparent;border:0}
.ideas-entry-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ideas-entry-title{font-size:16px;font-weight:600;line-height:1.4}.ideas-entry-title .count{font-size:13px;font-weight:400;color:var(--home-accent);margin-left:7px}.ideas-entry-sub{font-size:13px;line-height:1.5;color:var(--home-muted);overflow-wrap:anywhere}.ideas-entry svg{width:20px;height:20px;flex:0 0 auto;color:var(--home-muted)}
body.ideas-screen #content .ideas-head{margin:0 0 16px}body.ideas-screen #content .ideas-head p{font-size:13px;line-height:1.6;margin:8px 0 0;color:var(--home-muted)}body.ideas-screen #content .ideas-head button{min-height:44px;padding:6px 4px;color:var(--home-accent)}
body.ideas-screen #content .ideas-old [data-fold]>summary{font-size:13px;min-height:44px;color:var(--home-accent);padding:8px 2px}
.review-task-dropped .review-open{color:var(--muted)}
/* V8.1 每日清单：一行一件小事，整行可点，勾完自动记这一次完成。 */
.task-items{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.task-item{display:flex;align-items:flex-start;gap:10px;width:100%;min-height:44px;padding:10px 4px;text-align:left;font-size:15px;line-height:1.5;color:var(--home-ink,#1f2a22);background:transparent;border:0;border-radius:8px}
.task-item .item-box{flex:0 0 auto;width:20px;height:20px;margin-top:1px;border:1.5px solid rgba(61,106,85,.45);border-radius:6px;background:transparent}
.task-item.on .item-box{background:var(--app-accent,#3d6a55);border-color:var(--app-accent,#3d6a55);box-shadow:inset 0 0 0 3px var(--home-surface,#fff)}
.task-item.on .item-text{color:var(--home-muted,#555f55);text-decoration:line-through;text-decoration-color:rgba(85,95,85,.45)}
.task-item .item-text{flex:1;min-width:0;overflow-wrap:anywhere}.task-item:disabled{opacity:1;cursor:default}
/* V8.1 回顾“放下了”沿用完成/待完成的列表卡，标题变淡，与完成区分。 */
body[data-page=history] .review-section[data-review-section=dropped]>.review-items{padding:4px 20px;background:#fffefb;border:1px solid #e0e5dc;border-radius:14px}body[data-page=history] .review-section[data-review-section=dropped] .review-task-item{padding:6px 0;min-height:56px;border-bottom:1px solid #e6e9e1}body[data-page=history] .review-section[data-review-section=dropped] .review-task-item:last-child{border-bottom:0}
@media(max-width:767px){body[data-page=history] .review-section[data-review-section=dropped]>.review-items{padding:4px 16px}}
/* V8.1.1 清单编辑入口：小而明确，不抢打勾的位置。 */
body[data-page="now"] #content .task-items-edit{display:flex;justify-content:flex-end;margin:2px 0 0}body[data-page="now"] #content .task-items-edit button{min-height:44px;padding:6px 8px;font-size:13px;color:var(--home-accent);background:transparent;border:0}
.checklist-field .checklist-hint{margin:-4px 0 12px;font-size:13px;line-height:1.6}
/* V8.2 接下来 7 天：按天小标题分隔，截止与每周固定的事只占一行。 */
body[data-page="now"] #content .home-week .week-day{margin:0 0 12px}body[data-page="now"] #content .home-week .week-day:last-child{margin-bottom:0}
body[data-page="now"] #content .home-week .week-day-title{margin:0 0 8px;font-size:13px;font-weight:600;line-height:1.5;color:var(--home-muted)}
body[data-page="now"] #content .home-week .week-day .task{margin-bottom:8px}
body[data-page="now"] #content .week-line{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;margin:0 0 8px;padding:8px 14px;text-align:left;background:var(--home-surface);border:1px solid var(--home-line);border-radius:10px;color:var(--home-ink);font-size:15px;line-height:1.5}
body[data-page="now"] #content .week-tag{flex:0 0 auto;padding:2px 8px;border-radius:4px;background:rgba(61,106,85,.08);color:var(--app-accent);font-size:12px;line-height:1.4}
body[data-page="now"] #content .week-line-title{flex:1;min-width:0;overflow-wrap:anywhere}body[data-page="now"] #content .week-line-time{flex:0 0 auto;font-size:13px;color:var(--home-muted)}
body[data-page="now"] #content .home-week.is-empty{padding:12px 16px;background:transparent;border:1px dashed rgba(61,106,85,.15)}body[data-page="now"] #content .home-week.is-empty .section-head{margin:0}body[data-page="now"] #content .home-week.is-empty h2{font-size:14px;font-weight:500;color:var(--muted)}
