:root{color-scheme:light;--bg:#F2F2F7;--surface:#FFFFFF;--surface-2:#F0F0F4;--surface-3:#E3E3E8;--fill:rgba(118,118,128,.12);--fill-2:rgba(118,118,128,.2);--line:#E5E5EA;--line-strong:#C7C7CC;--text:#0B0B0D;--text-2:#6E6E73;--text-3:#8E8E93;--brand:#B6EE3F;--brand-hover:#A6E22A;--brand-soft:#EEF9D6;--brand-ink:#3F6A00;--on-brand:#15200A;--ink:#15181B;--on-ink:#F4F6F1;--ink-2:#23282D;--success:#2F9E44;--success-soft:#E3F4E6;--warning:#E67700;--warning-soft:#FFF0DB;--danger:#E03131;--danger-soft:#FDE7E7;--info:#3B6FE0;--info-soft:#E6EDFC;--scrim:rgba(14,16,18,.42);--glass:rgba(255,255,255,.74);--glass-line:rgba(0,0,0,.06);--shadow-1:0 1px 1px rgba(0,0,0,.02);--shadow-seg:0 3px 8px rgba(0,0,0,.12),0 0 1px rgba(0,0,0,.08);--shadow-dock:0 10px 32px rgba(0,0,0,.14),0 1px 3px rgba(0,0,0,.06);--shadow-2:0 12px 36px rgba(21,24,27,.16),0 2px 6px rgba(21,24,27,.06);--shadow-fab:0 10px 24px rgba(92,140,0,.32),0 2px 6px rgba(21,24,27,.12);--font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","YS Text",Onest,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--fs-display:34px;--fs-h1:28px;--fs-h2:22px;--fs-body-l:17px;--fs-body:15px;--fs-small:13px;--fs-micro:12px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--r-s:10px;--r-m:14px;--r-l:22px;--r-pill:999px;--ease:cubic-bezier(.2,.8,.2,1);--t-fast:.15s;--t:.22s;--tabbar-h:62px;--dock-h:calc(var(--tabbar-h) + 10px + var(--safe-b));--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--content-max:1180px}html.dark{color-scheme:dark;--bg:#000000;--surface:#1C1C1E;--surface-2:#2C2C2E;--surface-3:#3A3A3C;--fill:rgba(118,118,128,.24);--fill-2:rgba(118,118,128,.32);--line:#38383A;--line-strong:#48484A;--text:#FFFFFF;--text-2:#98989F;--text-3:#6C6C70;--brand-soft:#26331A;--brand-ink:#C7F36B;--ink:#2C2C2E;--on-ink:#FFFFFF;--ink-2:#3A3A3C;--success:#5CCB6F;--success-soft:#1D3323;--warning:#FFA94D;--warning-soft:#3A2A16;--danger:#FF6B6B;--danger-soft:#3C1F21;--info:#7FA2FF;--info-soft:#1F2A44;--scrim:rgba(0,0,0,.6);--glass:rgba(30,30,32,.74);--glass-line:rgba(255,255,255,.08);--shadow-1:none;--shadow-seg:0 3px 8px rgba(0,0,0,.3);--shadow-dock:0 10px 32px rgba(0,0,0,.5);--shadow-2:0 16px 40px rgba(0,0,0,.5),0 2px 6px rgba(0,0,0,.3);--shadow-fab:0 10px 26px rgba(0,0,0,.45)}:root{--c-blue:#3B7BF0;--c-blue-soft:#E3EDFE;--c-orange:#F0762B;--c-orange-soft:#FEEADC;--c-green:#2FA357;--c-green-soft:#DFF3E5;--c-violet:#8B5CF6;--c-violet-soft:#EEE7FE;--c-pink:#E64980;--c-pink-soft:#FCE4EE;--c-teal:#12A3A3;--c-teal-soft:#DBF3F2;--c-yellow:#D9A400;--c-yellow-soft:#FCF2CF;--c-gray:#6B7570;--c-gray-soft:#ECEEEA}html.dark{--c-blue:#6E9CFF;--c-blue-soft:#1E2B45;--c-orange:#FF9A5C;--c-orange-soft:#3A2618;--c-green:#5CCB7E;--c-green-soft:#19321F;--c-violet:#A88BFF;--c-violet-soft:#2A2244;--c-pink:#FF7AA8;--c-pink-soft:#3D1F2C;--c-teal:#3CCFCB;--c-teal-soft:#15312F;--c-yellow:#F2C94C;--c-yellow-soft:#352C12;--c-gray:#9AA39D;--c-gray-soft:#2A2F2C}:root{--status-planned:var(--c-blue);--status-inprogress:var(--c-orange);--status-done:var(--c-green)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);overflow:hidden;overscroll-behavior:none}body{font-family:var(--font);font-size:var(--fs-body);line-height:1.42;letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none;overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}#root{height:100%}h1,h2,h3,p{margin:0}h1{font-size:var(--fs-display);line-height:1.12;font-weight:700;letter-spacing:-.012em}h2{font-size:var(--fs-body-l);line-height:1.3;font-weight:650;letter-spacing:-.01em}button,input,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}button{background:none;border:0;padding:0;margin:0;cursor:pointer;touch-action:manipulation;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease)}button:disabled{cursor:default}input,textarea{background:none;border:0;outline:0;min-width:0}input::placeholder,textarea::placeholder,[data-placeholder]:empty:before{color:var(--text-3);opacity:1}:focus{outline:none}:focus-visible{outline:3px solid var(--brand);outline-offset:2px;box-shadow:0 0 0 5px var(--ink);border-radius:var(--r-s)}html.dark :focus-visible{box-shadow:none}.ui-icon{flex-shrink:0;display:block}.tnum{font-variant-numeric:tabular-nums}.muted{color:var(--text-2);font-size:var(--fs-small)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none;background:var(--tone,var(--c-gray))}.tone-dot{background:var(--tone,var(--c-gray))}.visually-hidden-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0}::selection{background:var(--brand);color:var(--on-brand)}html.reduce-motion *,html.reduce-motion *:before,html.reduce-motion *:after{animation-duration:1ms!important;transition-duration:1ms!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}html.ritm-drag-session,html.ritm-drag-session *{user-select:none;-webkit-user-select:none;cursor:grabbing}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:50px;padding:0 20px;border-radius:var(--r-m);font-size:16px;font-weight:650;letter-spacing:-.01em;white-space:nowrap}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45}.btn-primary{background:var(--brand);color:var(--on-brand)}.btn-primary:hover:not(:disabled){background:var(--brand-hover)}.btn-secondary{background:var(--surface-2);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-3)}.btn-danger{background:var(--danger);color:#fff}.btn-ghost-danger{color:var(--danger);height:44px;padding:0 4px;justify-content:flex-start;font-size:15px;font-weight:600}.btn-sm{height:40px;padding:0 14px;border-radius:var(--r-s);font-size:14px}.btn-block{width:100%}.btn-row{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.link-btn{color:var(--text-2);font-size:var(--fs-small);font-weight:600;padding:4px 6px;border-radius:var(--r-s)}.link-btn:hover{color:var(--text);background:var(--surface-2)}kbd{font:600 11px/1 var(--font);padding:3px 6px;border-radius:6px;background:#15200a1f;margin-left:auto}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--r-s);color:var(--text-2);flex:none}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn:disabled{opacity:.3}.icon-btn.sm{width:36px;height:36px}.icon-btn.round{width:38px;height:38px;border-radius:50%;background:var(--fill);color:var(--text)}.icon-btn.round:hover:not(:disabled){background:var(--fill-2)}.icon-btn.filled{background:var(--ink);color:var(--on-ink)}html.dark .icon-btn.filled{background:var(--brand);color:var(--on-brand)}.icon-btn.danger:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.icon-btn.is-active{background:var(--brand-soft);color:var(--brand-ink)}.chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:var(--r-pill);background:var(--fill);border:1px solid transparent;font-size:14px;font-weight:550;color:var(--text);white-space:nowrap}.chip:hover{background:var(--fill-2)}.chip.is-active{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}html.dark .chip.is-active{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.chip-sm{height:30px;padding:0 12px;font-size:var(--fs-small)}.chip-wrap{display:flex;flex-wrap:wrap;gap:8px}.segmented{display:inline-flex;padding:2px;gap:2px;background:var(--fill);border-radius:var(--r-s);max-width:100%}.seg{flex:1 1 auto;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 14px;border-radius:8px;font-size:14px;font-weight:600;color:var(--text);white-space:nowrap}.seg:hover{color:var(--text)}.seg.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-seg)}html.dark .seg.is-active{background:#636366}.seg-sm .seg{height:28px;font-size:var(--fs-small);padding:0 12px}.seg-count{min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-pill);background:var(--fill);font-size:var(--fs-micro);display:inline-grid;place-items:center;font-variant-numeric:tabular-nums}.seg.is-active .seg-count{background:var(--brand);color:var(--on-brand)}.count-pill{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--r-pill);background:var(--surface-2);font-size:var(--fs-micro);font-weight:600;color:var(--text-2);font-variant-numeric:tabular-nums}.switch{position:relative;display:inline-flex;cursor:pointer;flex:none}.switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.switch-track{width:51px;height:31px;border-radius:var(--r-pill);background:var(--fill-2);padding:2px;transition:background-color var(--t) var(--ease)}.switch-thumb{display:block;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 3px 8px #00000026,0 1px 1px #0000000f;transition:transform var(--t) var(--ease)}.switch input:checked+.switch-track{background:var(--brand)}.switch input:checked+.switch-track .switch-thumb{transform:translate(20px)}.switch input:focus-visible+.switch-track{outline:3px solid var(--brand);outline-offset:2px}.switch.is-disabled{opacity:.4;cursor:default}.ring{position:relative;display:inline-grid;place-items:center;flex:none}.ring svg{position:absolute;inset:0}.ring-bg{stroke:var(--surface-2)}.ring-fg{stroke:var(--tone,var(--success));transition:stroke-dashoffset .5s var(--ease)}.ring-brand .ring-fg{stroke:var(--brand)}html:not(.dark) .ring-brand .ring-bg{stroke:var(--surface-3)}.ring-label{position:relative;font-size:var(--fs-micro);font-weight:700;line-height:1}.progress{height:6px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden}.progress>span{display:block;height:100%;border-radius:inherit;background:var(--success);transition:width .4s var(--ease)}.progress.tone>span{background:var(--tone)}.progress.sm{height:4px}.card{background:var(--surface);border-radius:var(--r-l);padding:18px;box-shadow:var(--shadow-1)}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.screen-head{display:flex;align-items:flex-end;gap:12px;padding:8px 2px 16px}.screen-head-copy{min-width:0}.screen-head p{color:var(--text-2);margin-top:2px;font-size:var(--fs-body)}.screen-head p:first-letter{text-transform:uppercase}.screen-head-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.empty{display:grid;justify-items:center;gap:6px;text-align:center;padding:28px 16px}.empty-art{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink);margin-bottom:6px}.empty strong{font-size:16px;font-weight:650}.empty p{color:var(--text-2);font-size:var(--fs-small);max-width:300px}.empty .btn{margin-top:10px}.hint,.footnote{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:var(--fs-small);margin-top:12px}.footnote:hover{color:var(--text)}.tip{display:flex;gap:10px;align-items:flex-start;margin-top:14px;padding:12px 14px;border-radius:var(--r-m);background:var(--brand-soft);color:var(--text);font-size:var(--fs-small)}.tip .ui-icon{color:var(--brand-ink);margin-top:1px}.streak{display:inline-flex;align-items:center;gap:3px;height:24px;padding:0 8px;border-radius:var(--r-pill);background:var(--warning-soft);color:var(--warning);font-size:var(--fs-micro);font-weight:700;font-variant-numeric:tabular-nums;flex:none}.check-circle{width:26px;height:26px;border-radius:50%;border:2px solid var(--tone,var(--line-strong));display:grid;place-items:center;color:#fff;flex:none;background:transparent}.check-circle:hover{background:var(--tone-soft,var(--surface-2))}.check-circle.is-done{background:var(--tone,var(--success));border-color:var(--tone,var(--success))}.check-circle.lg{width:30px;height:30px;margin-top:2px}.check-circle.sm{width:22px;height:22px}html.dark .check-circle{color:var(--bg)}.task-group{background:var(--surface);border-radius:var(--r-l);overflow:hidden;box-shadow:var(--shadow-1)}.task-row{position:relative;display:flex;align-items:flex-start;gap:12px;padding:12px 8px 12px 16px;background:var(--surface);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:background-color var(--t-fast) var(--ease)}.task-row:active{background:var(--surface-2)}.task-row+.task-row:before{content:"";position:absolute;top:0;left:54px;right:0;height:1px;background:var(--line);transform:scaleY(.6);transform-origin:top}.task-row .check-circle{margin-top:1px}.task-row.is-focus:after{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:0 4px 4px 0;background:var(--brand)}.task-row .task-title{transition:color var(--t) var(--ease)}.task-row.is-done .task-title{text-decoration:line-through;text-decoration-thickness:1.5px;color:var(--text-3)}.task-row.is-done .task-meta{opacity:.7}.task-row.is-popping .check-circle{animation:pop .42s var(--ease)}.task-row.is-leaving{animation:row-leave .26s var(--ease) forwards}.task-row.is-arriving{animation:row-arrive .42s var(--ease)}@keyframes pop{0%{transform:scale(1)}35%{transform:scale(1.28)}to{transform:scale(1)}}@keyframes row-leave{to{opacity:0;transform:translateY(10px)}}@keyframes row-arrive{0%{opacity:0;transform:translateY(-8px);background:var(--brand-soft)}}.task-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;text-align:left;padding-top:2px}.task-title{font-size:var(--fs-body-l);font-weight:500;line-height:1.3;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.task-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:var(--fs-small);color:var(--text-2);line-height:1.3}.meta-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.meta-item .dot{width:7px;height:7px}.meta-item.is-important{color:var(--warning)}.meta-item.is-focus{color:var(--brand-ink);font-weight:600}.meta-item.is-overdue{color:var(--danger)}.badge-warn{height:20px;padding:0 7px;border-radius:var(--r-pill);background:var(--warning-soft);color:var(--warning);font-weight:600;font-size:var(--fs-micro);gap:3px}.row-more{margin:-6px 0 -6px auto}@media(hover:hover){.row-more{opacity:0}.task-row:hover .row-more,.row-more:focus-visible{opacity:1}}@media(hover:none){.row-more{display:none}}.overlay{position:fixed;left:0;right:0;top:var(--ritm-visual-top,0px);height:var(--ritm-visual-height,100dvh);z-index:50;display:flex;align-items:flex-end;justify-content:center;background:var(--scrim);animation:fade var(--t) var(--ease)}.sheet{position:relative;width:100%;max-height:calc(100% - 10px - var(--safe-t));display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r-l) var(--r-l) 0 0;box-shadow:var(--shadow-2);animation:sheet-up .28s var(--ease);transition:transform var(--t) var(--ease)}.sheet-grabber{display:grid;place-items:center;height:22px;flex:none;touch-action:none;cursor:grab}.sheet-grabber span{width:40px;height:5px;border-radius:var(--r-pill);background:var(--line-strong)}.sheet-head{display:flex;align-items:center;gap:8px;padding:2px 12px 8px 20px;flex:none}.sheet-head h2{flex:1;font-size:var(--fs-h2);font-weight:700}.sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 20px 20px;-webkit-overflow-scrolling:touch}.sheet-foot{flex:none;padding:12px 20px calc(12px + var(--safe-b));border-top:1px solid var(--line);background:var(--surface)}.ritm-keyboard-open .sheet-foot{padding-bottom:10px}.sheet-lead{color:var(--text-2);margin-bottom:14px}.sheet-lead:first-letter{text-transform:uppercase}@keyframes fade{0%{opacity:0}}@keyframes sheet-up{0%{transform:translateY(40px);opacity:.4}}@keyframes panel-in{0%{transform:translate(40px);opacity:.4}}@keyframes pop-in{0%{transform:translateY(-4px) scale(.98);opacity:0}}@media(min-width:901px){.overlay-dialog{align-items:center;padding:24px}.sheet-dialog{width:480px;max-height:min(86vh,760px);border-radius:var(--r-l);animation:pop-in .22s var(--ease)}.sheet-dialog .sheet-grabber{height:12px;visibility:hidden}.sheet-dialog .sheet-foot{border-radius:0 0 var(--r-l) var(--r-l)}.overlay-task{justify-content:flex-end;align-items:stretch;padding:12px}.sheet-task{width:480px;max-height:none;height:100%;border-radius:var(--r-l);animation:panel-in .24s var(--ease)}.sheet-task .sheet-grabber{height:14px;visibility:hidden}.sheet-task .sheet-foot{border-radius:0 0 var(--r-l) var(--r-l)}}.popover{position:fixed;z-index:80;background:var(--glass);backdrop-filter:blur(30px) saturate(1.8);-webkit-backdrop-filter:blur(30px) saturate(1.8);border:1px solid var(--glass-line);border-radius:var(--r-m);box-shadow:var(--shadow-2);padding:6px;max-height:70vh;overflow-y:auto;animation:pop-in .16s var(--ease)}html.dark .popover{background:#2c2c2ed1}.menu-item{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:0 12px;border-radius:var(--r-s);text-align:left;font-size:var(--fs-body);color:var(--text)}.menu-item:hover{background:var(--fill)}html.dark .menu-item:hover{background:var(--surface-3)}.menu-item .ui-icon{color:var(--text-2)}.menu-item.is-danger,.menu-item.is-danger .ui-icon{color:var(--danger)}.menu-item .dot{width:10px;height:10px;margin:0 4px}.menu-gap{width:19px;flex:none}.menu-text{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px}.menu-hint{margin-left:auto;color:var(--text-3);font-size:var(--fs-small)}.menu-item .menu-check{color:var(--brand-ink)}html:not(.dark) .menu-item .menu-check{color:var(--success)}.menu-sep{height:1px;background:var(--line);margin:6px 4px}.menu-title{padding:8px 12px 6px;font-size:var(--fs-small);font-weight:600;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-note{padding:6px 8px;color:var(--text-2);font-size:var(--fs-small)}.menu-pad{display:grid;gap:12px;padding:8px 6px}.input-row{display:flex;align-items:center;gap:8px;padding:4px 4px 4px 14px;border-radius:var(--r-m);background:var(--surface-2)}html.dark .popover .input-row{background:var(--surface-3)}.input-row input{flex:1;height:40px;font-size:var(--fs-body)}.time-row{justify-content:space-between;color:var(--text-2);font-size:14px;padding:4px 6px 4px 14px}.time-row input{flex:none;width:auto;font-weight:600;color:var(--text)}.form-stack{display:grid;gap:18px}.field{display:grid;gap:8px}.field-inline{display:flex;align-items:center;justify-content:space-between}.field-label{display:inline-flex;align-items:center;gap:6px;color:var(--text-2);font-size:var(--fs-small);font-weight:600}.input{height:50px;padding:0 16px;border-radius:var(--r-m);background:var(--fill);font-size:16px;width:100%}.input:focus{box-shadow:0 0 0 2px var(--brand)}.day-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.day-toggle{height:44px;border-radius:var(--r-s);background:var(--fill);font-weight:600;font-size:14px;color:var(--text-2)}.day-toggle.is-active{background:var(--ink);color:var(--on-ink)}html.dark .day-toggle.is-active{background:var(--brand);color:var(--on-brand)}.stepper{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border-radius:var(--r-pill);padding:3px}.stepper strong{min-width:24px;text-align:center;font-size:17px}.stepper .icon-btn{border-radius:50%;background:var(--surface)}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;box-shadow:inset 0 0 0 1px #0000000f}.swatch.is-active{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--text)}.confirm{display:grid;gap:12px;padding:14px;border-radius:var(--r-m);background:var(--danger-soft)}.confirm p{font-size:14px}.option-list{display:grid;gap:8px}.option{display:flex;align-items:center;gap:12px;min-height:52px;padding:10px 14px;border-radius:var(--r-m);background:var(--fill);text-align:left;font-weight:550}.option span{flex:1}.option.is-active{background:var(--brand-soft);box-shadow:inset 0 0 0 2px var(--brand)}.option .ui-icon{color:var(--brand-ink)}.toast-zone{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--dock-h) + 16px);z-index:90;display:grid;gap:8px;width:max-content;max-width:calc(100vw - 32px);pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:var(--r-pill);background:#1c1c1eeb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:#f4f6f1;box-shadow:var(--shadow-2);font-size:14px;font-weight:550;pointer-events:auto;animation:toast-in .24s var(--ease)}html.dark .toast{background:#f1f3ee;color:#15181b}.toast .ui-icon{color:var(--brand)}html.dark .toast .ui-icon{color:#3f6a00}.toast-action{color:var(--brand);font-weight:700;padding:4px 8px;margin:-4px -8px -4px 4px;border-radius:var(--r-s)}html.dark .toast-action{color:#3f6a00}@keyframes toast-in{0%{transform:translateY(12px);opacity:0}}.fab-zone{position:relative;flex:none;z-index:2;pointer-events:auto}.fab{position:relative;z-index:2;width:var(--tabbar-h);height:var(--tabbar-h);border-radius:50%;display:grid;place-items:center;background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-fab);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.fab .ui-icon{transition:transform var(--t) var(--ease)}.fab:hover{background:var(--brand-hover)}.fab:active{transform:scale(.94)}.fab.is-open .ui-icon{transform:rotate(45deg)}.fab-scrim{position:fixed;inset:0;z-index:0;background:var(--scrim);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:fade var(--t) var(--ease)}.fab-fan{position:absolute;z-index:1;right:0;bottom:calc(var(--tabbar-h) + 14px);display:flex;flex-direction:column;align-items:flex-end;gap:10px}.fab-hint{color:#fff;font-size:var(--fs-small);font-weight:600;margin:0 6px 2px 0;text-shadow:0 1px 6px rgba(0,0,0,.4)}.fan-item{display:flex;align-items:center;gap:12px;height:50px;padding:0 6px 0 18px;border-radius:var(--r-pill);background:var(--surface);color:var(--text);box-shadow:var(--shadow-2);font-size:15px;font-weight:650;animation:fan-in .24s var(--ease) both;animation-delay:calc(var(--i) * 28ms);transition:transform var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.fan-dot{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--tone);color:#fff}html.dark .fan-dot{color:var(--bg)}.fan-item.is-hit{transform:scale(1.07) translate(-8px);background:var(--tone);color:#fff}html.dark .fan-item.is-hit{color:var(--bg)}.fan-item.is-hit .fan-dot{background:#ffffff40;color:inherit}.fan-item.is-manage{font-weight:550;color:var(--text-2)}.fan-item.is-manage .fan-dot{background:var(--surface-2);color:var(--text-2)}.fan-item.is-manage.is-hit{background:var(--ink);color:var(--on-ink)}.fan-item.is-manage.is-hit .fan-dot{background:#ffffff2e;color:inherit}@keyframes fan-in{0%{transform:translateY(16px) scale(.9);opacity:0}}.fab-ghost{position:fixed;z-index:60;transform:translate(-50%,-150%);padding:8px 14px;border-radius:var(--r-pill);background:#15181b;color:#f4f6f1;font-size:14px;font-weight:650;pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-2)}.touch-card{touch-action:pan-y;-webkit-touch-callout:none}.touch-card.is-moving{opacity:.35}.drag-preview{position:fixed;left:0;top:0;z-index:70;pointer-events:none;display:grid;gap:6px;align-content:start;padding:14px 16px;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-2);border:2px solid var(--brand)}.drag-preview small{color:var(--text-2);font-size:var(--fs-small)}.app{position:fixed;inset:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.sidebar{display:none}.main{position:relative;flex:1 1 auto;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding:calc(var(--safe-t) + 10px) 16px calc(var(--dock-h) + 40px)}.screen{max-width:var(--content-max);margin:0 auto}.topbar{position:absolute;z-index:20;top:0;left:0;right:0;height:calc(var(--safe-t) + 46px);padding-top:var(--safe-t);display:grid;place-items:center;pointer-events:none;border-bottom:1px solid transparent;transition:background-color var(--t) var(--ease),border-color var(--t) var(--ease)}.topbar span{font-size:var(--fs-body-l);font-weight:650;opacity:0;transform:translateY(4px);transition:opacity var(--t) var(--ease),transform var(--t) var(--ease)}.topbar.is-scrolled{background:var(--glass);backdrop-filter:blur(24px) saturate(1.8);-webkit-backdrop-filter:blur(24px) saturate(1.8);border-bottom-color:var(--glass-line)}.topbar.is-scrolled span{opacity:1;transform:none}.dock{position:absolute;z-index:30;left:0;right:0;bottom:0;display:flex;align-items:center;gap:10px;padding:0 14px calc(var(--safe-b) + 10px);pointer-events:none}.dock:before{content:"";position:absolute;inset:auto 0 0;height:calc(var(--dock-h) + 24px);background:linear-gradient(to top,var(--bg) 35%,transparent);pointer-events:none;z-index:-1;opacity:.85}.tabbar{position:relative;flex:1;min-width:0;height:var(--tabbar-h);display:grid;grid-template-columns:repeat(4,1fr);padding:4px;border-radius:var(--r-pill);background:var(--glass);backdrop-filter:blur(26px) saturate(1.9);-webkit-backdrop-filter:blur(26px) saturate(1.9);border:1px solid var(--glass-line);box-shadow:var(--shadow-dock);pointer-events:auto}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:var(--r-pill);color:var(--text);min-width:0}.tab-icon{display:grid;place-items:center;height:26px}.tab-label{font-size:11px;font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.tab:not(.is-active){color:var(--text-2)}.tab.is-active{background:var(--fill);color:var(--text)}.tab.is-active .tab-icon{color:var(--brand-ink)}html:not(.dark) .tab.is-active .tab-icon{color:#2f5a00}.tab:active{transform:scale(.95)}.head-back{margin-right:4px;align-self:center}@media(min-width:1024px){.app{display:grid;grid-template-columns:264px minmax(0,1fr);grid-template-rows:100%}.sidebar{display:flex;flex-direction:column;height:100%;overflow-y:auto;padding:24px 16px;background:var(--surface);border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;padding:0 6px}.brand strong{display:block;font-size:22px;font-weight:750;letter-spacing:-.02em;line-height:1.1}.brand small{display:block;color:var(--text-2);font-size:var(--fs-micro)}.side-new{margin:24px 0 18px;justify-content:flex-start;padding:0 16px;height:48px;font-size:15px}.side-nav{display:grid;gap:2px}.side-item{display:flex;align-items:center;gap:12px;height:44px;padding:0 14px;border-radius:var(--r-s);color:var(--text);font-size:15px;font-weight:500;width:100%;text-align:left}.side-item .ui-icon{color:var(--text-2)}.side-item:hover{background:var(--fill)}.side-item.is-active{background:var(--fill);font-weight:650}.side-item.is-active .ui-icon{color:#2f5a00}html.dark .side-item.is-active .ui-icon{color:var(--brand)}.side-count{margin-left:auto;font-size:var(--fs-micro);font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-2)}.side-bottom{margin-top:auto;display:grid;gap:2px}.main{padding:28px 40px 80px}.topbar{display:none}.dock{left:auto;right:32px;bottom:32px;padding:0}.dock:before,.tabbar{display:none}.head-settings,.head-back{display:none}.toast-zone{bottom:32px}}.today-main>.focus-card{margin-bottom:12px}@media(min-width:1200px){.today-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}.today-aside{position:sticky;top:28px;display:grid;gap:16px}}.focus-card{position:relative;display:flex;align-items:center;gap:12px;padding:14px 14px 14px 18px;border-radius:var(--r-l);color:#f4f6f1;background:radial-gradient(130% 160% at 100% 0%,#b6ee3f38,#b6ee3f00 55%),#15181b;box-shadow:0 10px 26px #15181b2e;overflow:hidden}html.dark .focus-card{background:radial-gradient(130% 160% at 100% 0%,#b6ee3f29,#b6ee3f00 55%),#1c1c1e;box-shadow:none}.focus-body{flex:1;min-width:0;display:grid;gap:5px;text-align:left;color:inherit}.focus-label{display:inline-flex;align-items:center;gap:6px;color:#b6ee3f;font-size:var(--fs-micro);font-weight:700;letter-spacing:.01em}.focus-title{font-size:17px;font-weight:650;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.focus-card.is-empty .focus-title{color:#f4f6f1bf;font-weight:550}.focus-title.is-done{text-decoration:line-through;opacity:.6}.focus-meta{display:inline-flex;align-items:center;gap:6px;color:#f4f6f1a8;font-size:var(--fs-small)}.focus-meta .sep{opacity:.5}.live-dot{width:8px;height:8px;border-radius:50%;background:#b6ee3f;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.35;transform:scale(.8)}}.focus-play{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#b6ee3f;color:#15200a;flex:none;box-shadow:0 6px 16px #b6ee3f40}.focus-play:hover{background:#c6f75b}.focus-play:active{transform:scale(.94)}.focus-play.is-pick{background:#ffffff1f;color:#fff;box-shadow:none}.focus-card.is-running .focus-play{background:#f4f6f1}.focus-play.is-done{background:#b6ee3f2e;color:#b6ee3f;box-shadow:none}.weekstrip{background:var(--surface);border-radius:var(--r-l);padding:8px 8px 6px}.weekstrip-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 0 2px 8px}.weekstrip-head strong{font-size:15px;font-weight:650}.weekstrip-nav{display:flex;align-items:center;gap:2px}.weekstrip-nav .chip{margin-right:4px}.weekstrip-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}.wday{display:grid;justify-items:center;gap:2px;padding:2px 0 4px;border-radius:var(--r-m)}.wday:hover{background:var(--fill)}.wday-name{font-size:var(--fs-micro);font-weight:600;color:var(--text-3)}.wday-num{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;font-size:17px;font-weight:650;font-variant-numeric:tabular-nums}.wday.is-past .wday-num{color:var(--text-2)}.wday.is-today .wday-num{box-shadow:inset 0 0 0 2px var(--brand)}.wday.is-today .wday-name{color:var(--text)}.wday.is-selected .wday-num{background:var(--ink);color:var(--on-ink);box-shadow:none}html.dark .wday.is-selected .wday-num{background:var(--brand);color:var(--on-brand)}.wday-load{display:flex;gap:3px;height:5px;align-items:center}.wday-load i{width:5px;height:5px;border-radius:50%;background:var(--text-3)}.wday-load i.all-done{width:12px;height:4px;border-radius:var(--r-pill);background:var(--success)}.list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 4px 8px}.list-head h2{font-size:var(--fs-h2);font-weight:700;display:flex;align-items:baseline;gap:8px}.list-head h2 small{font-size:15px;font-weight:500;color:var(--text-2)}.days-gesture{position:relative;overflow:hidden;touch-action:pan-y;margin:0 -16px;transition:height var(--t) var(--ease)}.days-three{display:flex;width:300%;align-items:flex-start;transform:translate(-33.333333%);will-change:transform}.day-page{width:33.333333%;padding:2px 16px 18px;display:grid;gap:12px;align-content:start}.inline-composer{margin-top:2px}.composer-form{display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 6px 6px 16px;border-radius:var(--r-l);background:var(--surface);border:1.5px solid transparent;transition:border-color var(--t) var(--ease),background-color var(--t) var(--ease),box-shadow var(--t) var(--ease)}.composer-form:focus-within{border-color:var(--brand)}.composer-plus{width:26px;height:26px;border-radius:50%;border:2px dashed var(--line-strong);color:var(--text-3);display:grid;place-items:center;margin-right:2px}.composer-plus .ui-icon{width:14px;height:14px}.composer-form textarea{flex:1;resize:none;height:40px;padding:9px 0;line-height:22px;font-size:16px;overflow:hidden}.composer-cat{display:none;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:var(--r-pill);background:var(--surface-2);font-size:var(--fs-micro);font-weight:600;color:var(--text-2);white-space:nowrap}.composer-form:focus-within .composer-cat{display:inline-flex}.composer-send{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--brand);color:var(--on-brand);flex:none}.composer-send:disabled{background:var(--fill);color:var(--text-3)}.done-group{margin-top:6px}.group-toggle{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 6px;margin-bottom:4px;border-radius:var(--r-s);color:var(--text-2);font-size:var(--fs-small);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.group-toggle:hover{background:var(--fill);color:var(--text)}.day-page .empty{background:var(--surface);border-radius:var(--r-l)}.empty-inline{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-l);background:var(--surface)}.empty-inline-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-ink);flex:none}html:not(.dark) .empty-inline-icon{color:#2f5a00}.empty-inline strong{display:block;font-size:16px;font-weight:650}.empty-inline small{display:block;color:var(--text-2);font-size:var(--fs-small)}.side-card h2{font-size:16px}.habit-mini{display:flex;align-items:center;gap:12px;width:100%;min-height:44px;padding:6px;border-radius:var(--r-s);text-align:left;font-weight:550}.habit-mini>span:nth-child(2){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.habit-mini:hover{background:var(--surface-2)}.habit-mini.is-done .check-circle{background:var(--tone);border-color:var(--tone)}.habit-mini.is-done>span:nth-child(2){color:var(--text-2)}.week-mini{display:flex;align-items:center;gap:14px}.week-mini p{font-size:14px}.task-head{display:flex;align-items:flex-start;gap:12px;padding:0 10px 14px 20px;flex:none}.task-title-edit:focus-visible{outline:none;box-shadow:none}.task-title-edit{flex:1;min-width:0;font-size:var(--fs-h2);font-weight:700;line-height:1.28;letter-spacing:-.02em;padding:3px 0;overflow-wrap:anywhere;white-space:pre-wrap;cursor:text;user-select:text;-webkit-user-select:text;outline:none;border-radius:6px}.task-title-edit:empty:before{content:attr(data-placeholder);color:var(--text-3)}.task-title-edit.is-done{text-decoration:line-through;color:var(--text-3)}.task-head-actions{display:flex;margin-top:-4px}.prop-chips{display:flex;gap:8px;overflow-x:auto;margin:0 -20px;padding:2px 20px 6px;scrollbar-width:none}.prop-chips::-webkit-scrollbar{display:none}@media(min-width:901px){.prop-chips{flex-wrap:wrap;overflow:visible}}.prop-chip{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:var(--r-pill);border:1.5px dashed var(--line-strong);color:var(--text-2);font-size:14px;font-weight:550;white-space:nowrap;flex:none;max-width:240px}.prop-chip span{overflow:hidden;text-overflow:ellipsis}.prop-chip:hover{border-color:var(--text-3);color:var(--text)}.prop-chip.is-set{border:1.5px solid transparent;background:var(--fill);color:var(--text)}.prop-chip.is-important{background:var(--warning-soft);color:var(--warning)}.prop-chip.is-open{box-shadow:0 0 0 2px var(--brand)}.prop-chip .dot{width:10px;height:10px}.field-block{margin-top:20px}.field-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.field-count{font-size:var(--fs-small);font-weight:600;color:var(--text-2)}.note-input{display:block;width:100%;margin-top:8px;padding:10px 14px;border-radius:var(--r-m);background:var(--fill);font-size:16px;line-height:1.4;resize:none;min-height:42px;max-height:160px}.note-input:focus{box-shadow:0 0 0 2px var(--brand)}.check-list{margin-top:4px}.check-line{display:flex;align-items:center;gap:12px;min-height:46px;border-bottom:1px solid var(--line)}.check-line:last-child{border-bottom:0}.mini-check{position:relative;width:22px;height:22px;border-radius:6px;border:2px solid var(--line-strong);display:grid;place-items:center;color:#fff;flex:none;cursor:pointer;transition:background-color var(--t-fast) var(--ease)}.mini-check input{position:absolute;inset:-10px;opacity:0;margin:0;cursor:pointer}.mini-check .ui-icon{opacity:0}.mini-check.is-done{background:var(--success);border-color:var(--success)}.mini-check.is-done .ui-icon,.mini-check.is-add .ui-icon{opacity:1}.mini-check.is-add{border-style:dashed;color:var(--text-3);cursor:default}.mini-check:has(input:focus-visible){outline:3px solid var(--brand);outline-offset:2px}html.dark .mini-check{color:var(--bg)}.check-text{flex:1;height:44px;font-size:16px}.check-text.is-done{text-decoration:line-through;color:var(--text-3)}.info-row{display:flex;align-items:center;gap:8px;margin-top:16px;padding:12px 14px;border-radius:var(--r-m);background:var(--fill);color:var(--text-2);font-size:var(--fs-small)}.info-row strong{color:var(--text)}.info-row.is-warning{background:var(--warning-soft);color:var(--warning)}.mode-switch{display:none}.mode-switch-mobile{margin:-4px 0 14px}.mode-switch-mobile .segmented{display:flex;width:100%}@media(min-width:900px){.mode-switch{display:inline-flex}.mode-switch-mobile{display:none}}.pstrip{display:flex;gap:8px;overflow-x:auto;margin:0 -16px 16px;padding:2px 16px 4px;scrollbar-width:none}.pstrip::-webkit-scrollbar{display:none}.pcard{position:relative;flex:none;display:flex;align-items:center;gap:10px;min-width:0;max-width:210px;height:56px;padding:0 14px 0 10px;border-radius:var(--r-m);background:var(--surface);text-align:left;border:2px solid transparent;overflow:hidden}.pcard:active{transform:scale(.97)}.pcard-icon{width:34px;height:34px;border-radius:var(--r-s);display:grid;place-items:center;flex:none;background:var(--tone-soft,var(--fill));color:var(--tone,var(--text-2))}.pcard-icon.lg{width:48px;height:48px;border-radius:var(--r-m)}.pcard-copy{display:grid;min-width:0}.pcard-copy strong{font-size:14px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pcard-copy small{font-size:var(--fs-micro);color:var(--text-2);white-space:nowrap}.pcard-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:transparent}.pcard-progress span{display:block;height:100%;background:var(--tone,var(--text))}.pcard.is-active{border-color:var(--tone,var(--text));background:var(--tone-soft,var(--surface))}.pcard.is-all.is-active{border-color:var(--text);background:var(--surface)}.pcard.is-muted .pcard-copy strong{color:var(--text-2)}.pcard-manage{background:transparent;border:1.5px dashed var(--line-strong)}.pcard-manage .pcard-icon{background:var(--fill);color:var(--text-2)}.project-preview{display:flex;align-items:center;gap:14px;padding:12px;border-radius:var(--r-l);background:var(--fill)}.project-preview strong{font-size:var(--fs-body-l);font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.icon-pick{aspect-ratio:1;border-radius:var(--r-s);display:grid;place-items:center;background:var(--fill);color:var(--text-2)}.icon-pick.is-active{background:var(--tone);color:#fff}html.dark .icon-pick.is-active{color:var(--bg)}.btn-col{display:grid;gap:8px}.danger-text{color:var(--danger)}.kanban-tabs{display:flex;width:100%;margin-bottom:12px}.kanban-tabs .seg{padding:0 6px;gap:4px;font-size:var(--fs-small);min-width:0}.kanban{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:0 16px 16px;scrollbar-width:none}.kanban::-webkit-scrollbar{display:none}.kcol{flex:0 0 calc(100% - 4px);scroll-snap-align:center;display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:var(--r-l);background:var(--fill);min-height:220px;transition:box-shadow var(--t) var(--ease),background-color var(--t) var(--ease)}html.dark .kcol{background:var(--surface)}.kcol.drop-highlight{background:var(--brand-soft);box-shadow:inset 0 0 0 2px var(--brand)}.kcol-head{display:flex;align-items:center;gap:8px;padding:2px 4px}.kcol-head strong{flex:1;font-size:15px;font-weight:650}.status-dot{width:10px;height:10px;border-radius:50%;flex:none}.kcol-list{display:grid;gap:8px}.kcard{position:relative;display:flex;align-items:flex-start;gap:4px;padding:12px 6px 12px 16px;border-radius:var(--r-m);background:var(--surface);box-shadow:var(--shadow-1);cursor:grab}html.dark .kcard{background:var(--surface-2)}.kcard:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:var(--tone)}.kcard-main{flex:1;min-width:0;display:grid;gap:6px;text-align:left}.kcard-main strong{font-size:15px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}.kcard.is-done strong{text-decoration:line-through;color:var(--text-3)}.kcard-tools{display:flex;align-items:center;margin:-6px 0}@media(hover:none){.hover-only{display:none}}@media(hover:hover){.kcard .hover-only,.kcard .hover-only:disabled{opacity:0}.kcard:hover .hover-only:not(:disabled){opacity:1}.kcard:hover .hover-only:disabled{opacity:.3}}.kcol-empty{border:1.5px dashed var(--line-strong);border-radius:var(--r-m);padding:18px;text-align:center;color:var(--text-3);font-size:var(--fs-small)}.add-row{display:flex;align-items:center;justify-content:center;gap:6px;height:44px;border-radius:var(--r-m);color:var(--text-2);font-weight:600;font-size:14px}.add-row:hover{background:var(--fill);color:var(--text)}html.dark .add-row:hover{background:var(--surface-2)}@media(min-width:900px){.pstrip{margin:0 0 20px;padding:2px 0 6px;flex-wrap:wrap}.kanban-tabs{display:none}.kanban{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));overflow:visible;margin:0;padding:0}.kcol{flex:none}}.gantt-card{background:var(--surface);border-radius:var(--r-l);box-shadow:var(--shadow-1);padding:14px 0;overflow:hidden}.gantt-toolbar{display:flex;align-items:center;gap:10px;padding:0 10px 10px 14px}.gantt-month{margin-left:auto;font-size:14px;font-weight:600;color:var(--text-2);white-space:nowrap}@media(max-width:420px){.gantt-month{display:none}.gantt-toolbar .weekstrip-nav{margin-left:auto}}.gantt-toolbar strong{font-size:15px;font-weight:650}.gantt{--glabel:162px;position:relative;overflow-x:auto;overscroll-behavior-x:contain}.g-row{display:flex;min-width:calc(var(--glabel) + var(--gday) * var(--gdays));border-top:1px solid var(--line)}.g-header{border-top:0}.g-label{position:sticky;left:0;z-index:3;flex:0 0 var(--glabel);width:var(--glabel);min-height:54px;display:grid;gap:2px;align-content:center;text-align:left;padding:8px 10px 8px 16px;background:var(--surface);border-right:1px solid var(--line)}.g-label span{font-size:14px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g-label span.is-done{text-decoration:line-through;color:var(--text-3)}.g-row.is-sub .g-label{padding-left:30px;background:var(--surface)}.g-row.is-sub .g-label span{font-size:13px}.g-group .g-label{background:var(--surface)}.g-label .g-group-name{display:flex;align-items:center;gap:6px}.g-group-name b{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-group-name>.ui-icon{color:var(--text-3);flex:none}.g-picon{width:22px;height:22px;border-radius:6px;display:inline-grid;place-items:center;background:var(--tone-soft,var(--fill));color:var(--tone,var(--text-2));flex:none}.g-bar.g-pbar{height:26px;background:var(--tone-soft);color:var(--text);box-shadow:inset 0 0 0 1.5px var(--tone)}html.dark .g-bar.g-pbar:not(.is-done){color:var(--text)}.g-pfill{position:absolute;left:0;top:0;bottom:0;background:var(--tone);opacity:.45;border-radius:inherit}.g-bar.g-pbar span{position:sticky;z-index:1}.g-label small{display:flex;align-items:center;gap:5px;font-size:var(--fs-micro);color:var(--text-2);white-space:nowrap;overflow:hidden}button.g-label:hover span{text-decoration:underline}.g-corner{font-size:var(--fs-micro);font-weight:600;color:var(--text-3);min-height:58px}.g-track{position:relative;flex:1 0 calc(var(--gday) * var(--gdays));background-image:repeating-linear-gradient(90deg,transparent 0 calc(var(--gday) - 1px),var(--line) calc(var(--gday) - 1px) var(--gday))}.g-header .g-track{display:flex;background:none}.g-day{flex:0 0 var(--gday);display:grid;justify-items:center;align-content:center;gap:2px;font-size:var(--fs-micro);color:var(--text-3)}.g-day b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:14px;color:var(--text-2);font-variant-numeric:tabular-nums}.g-day.is-weekend{background:var(--fill)}.g-day.is-today b{background:var(--brand);color:var(--on-brand)}.g-now{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--brand);z-index:0}.g-bar{position:absolute;top:50%;z-index:1;height:30px;transform:translateY(-50%);display:flex;align-items:center;padding:0 10px;border-radius:var(--r-s);background:var(--tone);color:#fff;font-size:var(--fs-small);font-weight:600;text-align:left;box-shadow:0 1px 2px #0000001f}.g-bar span{position:sticky;left:calc(var(--glabel) + 10px);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-bar:hover{filter:brightness(1.06)}.g-bar.is-done{background:var(--tone-soft);color:var(--tone);box-shadow:none}.g-bar.is-done span{text-decoration:line-through}html.dark .g-bar:not(.is-done){color:var(--bg)}.g-empty{padding:24px 16px;color:var(--text-2)}.gantt-card .hint{padding:0 16px}@media(min-width:900px){.gantt{--glabel:240px}}.week-switch{display:flex;align-items:center;gap:8px;margin:-4px 0 12px}.week-switch strong{flex:1;text-align:center;font-size:16px;font-weight:650}.habit-swipe-viewport{overflow:hidden;touch-action:pan-y;margin:0 -16px}.habit-swipe-track{display:flex;width:300%;transform:translate(-33.333333%);align-items:flex-start}.habit-week-slide{width:33.333333%;padding:2px 16px 16px}.habit-list{display:grid;gap:12px}@media(min-width:1024px){.habit-list{grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}.week-switch{max-width:420px}}.habit-card{display:grid;gap:14px;padding:16px;border-radius:var(--r-l);background:var(--surface)}.habit-card.is-paused{opacity:.6}.habit-top{display:flex;align-items:center;gap:12px}.habit-icon{width:40px;height:40px;border-radius:var(--r-s);display:grid;place-items:center;background:var(--tone-soft);color:var(--tone);flex:none}.habit-copy{flex:1;min-width:0;display:grid;gap:2px}.habit-copy strong{font-size:16px;font-weight:650;line-height:1.3;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.habit-copy small{font-size:var(--fs-small);color:var(--text-2)}.ring-tone .ring-fg{stroke:var(--tone)}.ring-tone .ring-label b{font-size:var(--fs-micro)}.habit-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.hday{display:grid;justify-items:center;gap:5px}.hday small{font-size:var(--fs-micro);font-weight:600;color:var(--text-3)}.hday>span{width:40px;height:40px;max-width:100%;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;transition:transform var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease)}.hday.is-done>span{background:var(--tone);color:#fff}html.dark .hday.is-done>span{color:var(--bg)}.hday.is-todo>span{box-shadow:inset 0 0 0 2px var(--tone)}.hday.is-missed>span{background:var(--fill);color:var(--text-2)}.hday.is-future>span{border:1.5px dashed var(--line-strong);color:var(--text-3)}.hday.is-off>span{color:var(--text-3)}.hday.is-today small{color:var(--text);font-weight:700}.hday:not(:disabled):hover>span{transform:scale(1.07)}.hday:not(:disabled):active>span{transform:scale(.92)}.off-dot{width:4px;height:4px;border-radius:50%;background:var(--line-strong)}.overview-grid{display:grid;gap:14px}@media(min-width:1024px){.overview-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px}}.hero-top{display:flex;align-items:center;gap:18px;width:100%;text-align:left;border-radius:var(--r-m)}.tap-chev{margin-left:auto;color:var(--text-3)}.hero-card .hint{margin-top:6px;font-size:var(--fs-micro);color:var(--text-3)}.bar{border-radius:var(--r-s)}.bar:hover{background:var(--fill)}.bar:active .bar-col i{opacity:.7}.hero-top .ring-label strong{font-size:22px;font-weight:750}.hero-copy h2{font-size:var(--fs-h2);font-weight:700;margin-bottom:4px}.hero-copy p{color:var(--text-2);font-size:14px}.hero-copy b{color:var(--text)}.delta{display:inline-flex;align-items:center;height:26px;margin-top:8px;padding:0 10px;border-radius:var(--r-pill);background:var(--fill);font-size:var(--fs-small);font-weight:650;color:var(--text-2)}.delta.is-up{background:var(--success-soft);color:var(--success)}.delta.is-down{background:var(--danger-soft);color:var(--danger)}.bars{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;height:150px;margin-top:22px}.bar{display:grid;grid-template-rows:18px 1fr 18px;justify-items:center;gap:4px;min-height:0}.bar-val{font-size:var(--fs-micro);font-weight:700;color:var(--text-2)}.bar-col{width:100%;max-width:30px;height:100%;display:flex;align-items:flex-end}.bar-col i{display:block;width:100%;min-height:4px;border-radius:6px;background:#1c1c1e;transition:height .5s var(--ease)}html.dark .bar-col i{background:var(--text-3)}.bar.is-today .bar-col i{background:var(--brand)}.bar.is-zero .bar-col i{background:var(--fill-2)}.bar small{font-size:var(--fs-micro);color:var(--text-3);font-weight:600}.bar.is-today small{color:var(--text)}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}.kpi{display:grid;gap:2px;align-content:start;width:100%;text-align:left;padding:16px;border-radius:var(--r-l);background:var(--surface);box-shadow:var(--shadow-1)}.kpi:active,.prow:active,.legend-row:active,.hero-top.tap:active{transform:scale(.98)}.kpi:hover,.prow:hover,.legend-row:hover{background:var(--surface-2)}.kpi-icon{width:36px;height:36px;border-radius:var(--r-s);display:grid;place-items:center;background:var(--tone-soft);color:var(--tone);margin-bottom:10px}.kpi small{font-size:var(--fs-small);font-weight:600;color:var(--text-2)}.kpi strong{font-size:var(--fs-h2);font-weight:750;letter-spacing:-.02em;line-height:1.2}.kpi em{font-style:normal;font-size:17px;color:var(--text-3)}.kpi>span:last-child{font-size:var(--fs-micro);color:var(--text-3)}.prow{display:grid;gap:8px;text-align:left;padding:10px 8px;margin:0 -8px;width:calc(100% + 16px);border-radius:var(--r-s);border-top:1px solid var(--line)}.card-head+.prow{border-top:0;padding-top:0}.prow-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.prow-top>span{display:inline-flex;align-items:center;gap:6px}.prow-top>span:first-child{gap:8px;font-weight:600;min-width:0}.prow-top .ui-icon,.legend-end .ui-icon{color:var(--text-3)}.stackbar{display:flex;gap:3px;height:12px;border-radius:var(--r-pill);overflow:hidden;margin-bottom:8px}.stackbar i{background:var(--tone)}.legend-row{display:flex;align-items:center;justify-content:space-between;width:calc(100% + 16px);margin:0 -8px;padding:10px 8px;border-radius:var(--r-s);border-top:1px solid var(--line);text-align:left}.legend-end{display:inline-flex;align-items:center;gap:6px}.legend-row span{display:inline-flex;align-items:center;gap:8px}.overview-screen .footnote{margin-top:16px}.settings-screen{max-width:720px}.sgroup{margin-bottom:24px}.sgroup-title{font-size:var(--fs-small);font-weight:500;color:var(--text-2);padding:0 16px 7px;text-transform:uppercase;letter-spacing:.02em}.sgroup-card{background:var(--surface);border-radius:var(--r-l);box-shadow:var(--shadow-1);overflow:hidden}.sgroup-note{font-size:var(--fs-small);color:var(--text-2);padding:7px 16px 0}.srow{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 14px;text-align:left}.sgroup-card>.srow+.srow:before{content:"";position:absolute;top:0;left:58px;right:0;height:1px;background:var(--line);transform:scaleY(.6);transform-origin:top}.srow-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--tone,#8E8E93);color:#fff;flex:none}.srow-icon .ui-icon{width:18px;height:18px}.srow-copy{flex:1;min-width:120px;display:grid}.srow-copy span{font-size:var(--fs-body);font-weight:550}.srow-copy small{font-size:var(--fs-small);color:var(--text-2)}.srow-end{display:flex;align-items:center;gap:2px;margin-left:auto}.srow-btn:hover{background:var(--surface-2)}.srow-btn:active{background:var(--fill)}.srow-chev{color:var(--text-3)}.cat-color{width:28px;height:28px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px #00000014}.cat-color:hover{transform:scale(1.08)}.cat-name{flex:1;min-width:0;height:40px;padding:0 8px;border-radius:var(--r-s);font-size:16px;font-weight:550}.cat-name:focus{background:var(--surface-2)}.cat-swatches,.srow>.confirm{flex-basis:100%}.cat-swatches{padding:4px 0 6px 40px}.srow>.confirm{margin-bottom:4px}.app-version{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;color:var(--text-3);font-size:var(--fs-small)}@media(max-width:599px){.btn-label{display:none}.screen-head .btn-sm{width:40px;padding:0}}@media(max-width:1023px){.screen-head{padding:4px 0 14px}.screen-head-actions{flex-wrap:nowrap;align-self:flex-start}}.detail-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:8px;margin-bottom:6px}.detail-stats>div{padding:10px 12px;border-radius:var(--r-m);background:var(--fill)}.detail-stats strong{display:block;font-size:20px;font-weight:700;line-height:1.2}.detail-stats small{font-size:var(--fs-micro);color:var(--text-2)}.group-title{font-size:var(--fs-small);font-weight:500;color:var(--text-2);text-transform:uppercase;letter-spacing:.02em;margin:18px 16px 7px}.sheet .task-group{background:var(--surface-2)}.sheet .task-group .task-row{background:transparent}.feedback-screen{max-width:760px}.fb-compose,.fb-prompt{display:grid;gap:12px;margin-bottom:14px}.fb-compose .segmented{display:flex}.fb-input{margin-top:0;min-height:88px}.fb-prompt-head{display:flex;align-items:center;gap:12px}.fb-prompt-head strong{display:block;font-size:16px;font-weight:650}.fb-prompt-head small{display:block;font-size:var(--fs-small);color:var(--text-2)}.fb-actions .btn{flex:1}.fb-prompt .link-btn{justify-self:start}.fb-preview{margin:0;padding:12px 14px;border-radius:var(--r-m);background:var(--fill);font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto;user-select:text;-webkit-user-select:text}.fb-list-head{margin:20px 0 10px}.fb-list-head .segmented{display:flex}.fb-row{user-select:text;-webkit-user-select:text}.fb-text{display:block;-webkit-line-clamp:unset;overflow:visible;white-space:pre-wrap}.fb-type{color:var(--tone);font-weight:600}
