@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-wght-normal-BbzFLZTg.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #edf0f7;--panel: #ffffff;--panel-2: #f5f7fc;--line: #dfe4f0;--line-strong: #c3cbdf;--ink: #0e1330;--ink-2: #4b5578;--ink-3: #7c86a6;--accent: #3145f5;--accent-strong: #2233d6;--accent-soft: #e7eafe;--on-accent: #ffffff;--hero: #2c3ef2;--easy: #0a8f6c;--easy-soft: #ddf4eb;--medium: #b16a0b;--medium-soft: #fbebcf;--hard: #d03a5e;--hard-soft: #fbe1e7;--due-bg: #fbe9c6;--due-ink: #8a5300;--overdue-bg: #fbdde3;--overdue-ink: #b4223f;--later-bg: #e9edf7;--later-ink: #59648a;--heat-0: #e3e8f3;--heat-1: #c5ccff;--heat-2: #8e9bff;--heat-3: #5566ff;--heat-4: #2c3ef2;--seg-on: #ffffff;--shadow: 0 18px 40px -24px rgba(14, 19, 48, .4);--font-body: "Instrument Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Bricolage Grotesque Variable", "Instrument Sans Variable", system-ui, sans-serif}[data-theme=dark]{--bg: #080b15;--panel: #0f1424;--panel-2: #141a2e;--line: #1f2740;--line-strong: #2c3757;--ink: #e8ecfa;--ink-2: #a2accb;--ink-3: #6d789a;--accent: #8d9bff;--accent-strong: #b5bfff;--accent-soft: #1a2145;--on-accent: #0a1030;--hero: #2e40f5;--easy: #3ddbaf;--easy-soft: #0e3229;--medium: #f2b450;--medium-soft: #38290c;--hard: #ff7a97;--hard-soft: #3a1520;--due-bg: #3a2a0b;--due-ink: #f5c15e;--overdue-bg: #3b1420;--overdue-ink: #ff8fa6;--later-bg: #1b2340;--later-ink: #98a3c8;--heat-0: #161d36;--heat-1: #26327f;--heat-2: #3947c9;--heat-3: #6373ff;--heat-4: #a6b0ff;--seg-on: #1d2648;--shadow: 0 18px 40px -24px rgba(0, 0, 0, .7)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.5;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}h1,h2,h3,p,ul,ol{margin:0}ul,ol{padding:0;list-style:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}a{color:inherit}code{font-size:.9em;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:1px 6px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.app{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:28px;padding:24px 14px 20px;border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;padding:0 8px;text-decoration:none;font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-.02em}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:11px;text-decoration:none;color:var(--ink-2);font-weight:500;transition:background .15s,color .15s}.nav a:hover{background:var(--panel-2);color:var(--ink)}.nav a.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.badge{margin-left:auto;min-width:22px;padding:1px 7px;text-align:center;border-radius:999px;font-size:12px;font-weight:700;background:var(--due-bg);color:var(--due-ink)}.side-foot{margin-top:auto;display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--ink-3);font-size:13.5px}.main{min-width:0;width:100%;max-width:1120px;margin:0 auto;padding:34px 36px 80px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}.page-head h1{font-family:var(--font-display);font-size:36px;line-height:1.05;font-weight:700;letter-spacing:-.025em}.page-head p{margin-top:8px;color:var(--ink-2);max-width:58ch}.page-head-tools{display:flex;align-items:center;gap:10px;flex-shrink:0}.seg{display:inline-flex;gap:2px;padding:3px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;max-width:100%;overflow-x:auto;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.seg button{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:9px;font-size:13.5px;font-weight:500;color:var(--ink-2);white-space:nowrap;transition:background .15s,color .15s}.seg button:hover{color:var(--ink)}.seg button.on{background:var(--seg-on);color:var(--ink);font-weight:600;box-shadow:0 1px 3px #00000024}.seg-compact button{padding:7px 9px}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:9px;color:var(--ink-3);transition:background .15s,color .15s}.icon-btn:hover{background:var(--panel-2);color:var(--ink)}.icon-btn.note-btn.has-note{color:var(--accent-strong);background:var(--accent-soft)}.icon-btn.note-btn.has-note:hover{background:var(--accent);color:var(--on-accent)}.star.on{color:var(--medium)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:11px;border:1px solid var(--line-strong);background:var(--panel);font-weight:600;font-size:14.5px;transition:background .15s,transform .1s}.btn:hover{background:var(--panel-2)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-light{background:#fff;border-color:#fff;color:#1a26b8;padding:12px 20px;font-size:15.5px}.btn-light:hover{background:#eef0ff}.btn-quiet{border-color:transparent;background:var(--panel-2);color:var(--ink-2)}.btn-danger{background:var(--hard);border-color:var(--hard);color:#fff}.btn-danger:hover{background:var(--hard);filter:brightness(.92)}.btn-danger-quiet{color:var(--hard)}.btn-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.link-btn{color:var(--accent-strong);font-weight:600;font-size:13.5px}.link-btn:hover{text-decoration:underline}.bar{height:8px;background:var(--heat-0);border-radius:999px;overflow:hidden}.bar>span{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .35s ease}.bar-easy>span{background:var(--easy)}.bar-medium>span{background:var(--medium)}.bar-hard>span{background:var(--hard)}.diff{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap}.diff-easy{background:var(--easy-soft);color:var(--easy)}.diff-medium{background:var(--medium-soft);color:var(--medium)}.diff-hard{background:var(--hard-soft);color:var(--hard)}.plat{display:inline-block;padding:1px 7px;border:1px solid var(--line-strong);border-radius:6px;font-size:11.5px;font-weight:600;color:var(--ink-3)}.chip{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap}.chip-today{background:var(--due-bg);color:var(--due-ink)}.chip-overdue{background:var(--overdue-bg);color:var(--overdue-ink)}.chip-later{background:var(--later-bg);color:var(--later-ink)}.chip-paused{background:var(--later-bg);color:var(--ink-3)}.mix{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}.mix:before{content:"";width:8px;height:8px;border-radius:3px;background:currentColor}.mix-easy:before{color:var(--easy)}.mix-medium:before{color:var(--medium)}.mix-hard:before{color:var(--hard)}.empty{padding:44px 24px;text-align:center;background:var(--panel);border:1px dashed var(--line-strong);border-radius:16px;margin-top:20px}.empty h3{font-family:var(--font-display);font-size:22px;letter-spacing:-.01em}.empty p{margin:8px auto 18px;color:var(--ink-2);max-width:46ch}.toasts{position:fixed;left:50%;bottom:22px;transform:translate(-50%);display:flex;flex-direction:column;gap:10px;align-items:center;z-index:60;width:max-content;max-width:calc(100vw - 32px)}.toast{display:flex;align-items:center;gap:12px;padding:11px 12px 11px 16px;background:var(--ink);color:var(--bg);border-radius:12px;box-shadow:var(--shadow);font-size:14.5px;animation:toast-in .2s ease-out}.toast .icon-btn{color:inherit;opacity:.7;width:26px;height:26px}.toast .icon-btn:hover{background:#7f7f7f40;opacity:1}.toast-undo{padding:4px 10px;border-radius:8px;font-weight:700;color:var(--bg);background:#7f7f7f47}.toast-warn{background:var(--hard);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#0609168c;z-index:80}.dialog{width:min(440px,100%);padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.dialog h2{font-family:var(--font-display);font-size:21px;letter-spacing:-.01em}.dialog-body{margin-top:10px;color:var(--ink-2)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.dialog-lg{width:min(640px,96vw);height:min(680px,88vh);display:flex;flex-direction:column}.dialog-lg .seg{width:100%}.dialog-lg .dialog-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.dialog-lg .search{height:38px;flex:initial}.field select,.field input[type=url]{height:38px;padding:0 10px;background:var(--panel-2);border:1px solid var(--line-strong);border-radius:9px}.tab-panel{flex:1;min-height:0;display:flex;flex-direction:column;gap:12px}.pick-list{flex:1;min-height:120px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:6px}.pick-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 8px;border-radius:8px}.pick-row:hover{background:var(--panel)}.pick-row .check-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}.block{margin-top:30px}.block h2,.section-head h2{font-family:var(--font-display);font-size:21px;font-weight:650;letter-spacing:-.015em}.block-sub{margin:4px 0 14px;color:var(--ink-2);max-width:66ch;font-size:14.5px}.page-head+.block{margin-top:0}.section-head{display:flex;align-items:center;gap:10px}.section-head .heat-legend{margin-left:auto}.split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:34px;align-items:start}.stack{display:flex;flex-direction:column}.hint{margin:18px 0 4px;padding:12px 16px;background:var(--panel);border:1px solid var(--line);border-radius:12px;color:var(--ink-2);font-size:14px}.hint b{color:var(--ink)}.form-msg{margin-top:14px;font-weight:600;font-size:14px}.form-msg.ok{color:var(--easy)}.form-msg.err{color:var(--hard)}.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}.stat{padding:18px 22px;border-left:1px solid var(--line)}.stat:first-child{border-left:0}.stat-value{font-family:var(--font-display);font-size:40px;line-height:1;font-weight:700;letter-spacing:-.03em}.stat-label{margin-top:8px;font-weight:600;font-size:14px}.stat-hint{color:var(--ink-3);font-size:12.5px}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:36px;padding:38px 40px;border-radius:24px;background:var(--hero);color:#fff;overflow:hidden}.hero-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:18px}.hero-copy h2{font-family:var(--font-display);font-weight:800;letter-spacing:-.04em;line-height:.92}.hero-number{font-size:clamp(88px,11vw,132px)}.hero-words{font-size:clamp(40px,5.2vw,60px);line-height:1!important}.hero-label{display:block;margin-top:10px;font-size:20px;font-weight:600;letter-spacing:-.01em;opacity:.92}.hero-copy p{max-width:38ch;font-size:16px;opacity:.92}.hero-ladder{display:flex;flex-direction:column;justify-content:flex-end;gap:14px}.hero-caption{font-size:13.5px;opacity:.8;max-width:52ch}.ladder{display:flex;align-items:flex-end;gap:7px;height:206px}.ladder li{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;text-align:center}.ladder-count{font-family:var(--font-display);font-weight:700;font-size:20px;margin-bottom:5px;opacity:.5}.ladder-block{display:block;height:calc(22px + var(--step) * 17px);border-radius:9px 9px 4px 4px;background:#ffffff2b;transition:background .3s}.ladder-days{margin-top:7px;font-size:12.5px;font-weight:600;opacity:.8}.ladder li.has .ladder-count{opacity:1}.ladder li.has .ladder-block{background:#fff}.rm-list{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}.rm-list li+li{border-top:1px solid var(--line)}.rm-row{display:flex;align-items:center;gap:18px;width:100%;padding:16px 20px;text-align:left;box-shadow:inset 0 0 0 0 var(--accent);transition:background .15s,box-shadow .15s}.rm-row:hover{background:var(--panel-2)}.rm-row.is-current{box-shadow:inset 4px 0 0 0 var(--accent)}.rm-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.rm-name{font-weight:650;font-size:16px;display:flex;align-items:center;gap:10px}.rm-current{padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:12px;font-weight:600}.rm-blurb{color:var(--ink-3);font-size:13.5px}.rm-mix{display:flex;flex-wrap:wrap;gap:4px 14px}.rm-pct{text-align:right;flex-shrink:0;min-width:76px}.rm-pct b{display:block;font-family:var(--font-display);font-size:30px;line-height:1;letter-spacing:-.03em}.rm-pct span{font-size:12.5px;color:var(--ink-3)}.diff-rows{display:flex;flex-direction:column;gap:16px}.diff-row-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;font-size:14px;color:var(--ink-2)}.diff-row-head b{color:var(--ink)}.forecast{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:5px;align-items:end;height:132px;padding:14px 14px 10px;background:var(--panel);border:1px solid var(--line);border-radius:16px}.fc-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}.fc-num{height:16px;font-size:11.5px;font-weight:600;color:var(--ink-2)}.fc-bar{flex:1;width:100%;display:flex;align-items:flex-end}.fc-bar i{display:block;width:100%;min-height:3px;border-radius:5px 5px 2px 2px;background:var(--heat-2)}.fc-col.is-today .fc-bar i{background:var(--due-ink)}.fc-day{font-size:11px;color:var(--ink-3)}.rm-tabs{flex:1 1 auto;min-width:0;display:flex;gap:8px;overflow-x:auto;padding:0 2px 6px;margin:0 0 18px;scrollbar-width:thin}.rm-tabs-wrap{display:flex;align-items:flex-start;gap:10px;min-width:0}.rm-tabs-manage{flex-shrink:0}.rm-tabs button{display:inline-flex;align-items:baseline;gap:8px;padding:9px 14px;border:1px solid var(--line-strong);border-radius:12px;background:var(--panel);font-weight:600;font-size:14px;white-space:nowrap;color:var(--ink-2);transition:background .15s,color .15s,border-color .15s}.rm-tabs button small{font-size:12px;font-weight:600;color:var(--ink-3)}.rm-tabs button:hover{color:var(--ink)}.rm-tabs button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.rm-tabs button.on small{color:inherit;opacity:.85}.rm-tabs button:last-child{border-style:dashed;color:var(--ink-3)}.sheet-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.sheet-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--ink)}.sheet-row input{accent-color:var(--accent)}.sheet-row.is-visible{border-color:var(--accent-soft);background:var(--accent-soft)}.dialog-md{width:min(420px,92vw)}.summary{padding:20px 22px;background:var(--panel);border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;gap:14px}.summary-main{display:flex;align-items:center;gap:18px}.summary-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.summary-pct{font-family:var(--font-display);font-size:54px;line-height:.9;font-weight:750;letter-spacing:-.04em}.summary-pct span{font-size:26px;margin-left:2px;color:var(--ink-3)}.summary-text{display:flex;flex-direction:column}.summary-text strong{font-size:17px}.summary-text span{color:var(--ink-2);font-size:14px}.summary-mix{display:flex;flex-wrap:wrap;gap:6px 18px}.filters{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 8px;align-items:center}.search{flex:1 1 240px;display:flex;align-items:center;gap:8px;padding:0 6px 0 12px;height:42px;background:var(--panel);border:1px solid var(--line-strong);border-radius:12px;color:var(--ink-3)}.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search input{flex:1;min-width:0;height:100%;border:0;background:transparent;outline:none;color:var(--ink)}.list-tools{display:flex;justify-content:space-between;align-items:center;margin:14px 2px 10px;font-size:13.5px;color:var(--ink-3)}.list-tools-actions{display:inline-flex;gap:16px}.group{margin-top:12px;background:var(--panel);border:1px solid var(--line);border-radius:16px}.group-head-wrap{display:flex;align-items:center}.group-head-wrap .group-head{flex:1;min-width:0}.group-head-actions{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;margin-right:10px}.subheading-add{flex-shrink:0;margin-right:10px;color:var(--accent-strong);font-size:21px}.group-head{display:grid;grid-template-columns:22px minmax(0,1fr) auto 120px;align-items:center;gap:12px;width:100%;padding:15px 18px;text-align:left;border-radius:16px}.group-head:hover:not(:disabled){background:var(--panel-2)}.group-head:disabled{cursor:default}.group-head[draggable=true],.prow[draggable=true]{cursor:grab}.group-head[draggable=true]:active,.prow[draggable=true]:active{cursor:grabbing}.group-head[aria-expanded=true]{border-radius:16px 16px 0 0}.rows>:last-child{border-radius:0 0 15px 15px}.group-head h3{font-size:16px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chev{color:var(--ink-3);transition:transform .18s}.group-head[aria-expanded=true] .chev{transform:rotate(90deg)}.group-count{font-size:13.5px;font-weight:600;color:var(--ink-2)}.group-bar .bar{height:6px}.rows{border-top:1px solid var(--line)}.subhead{padding:10px 18px 6px 58px;font-size:13px;font-weight:650;color:var(--ink-3);background:var(--panel-2);border-top:1px solid var(--line)}.subhead-edit{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px 6px 18px}.subhead-edit[draggable=true]{cursor:grab}.subhead-edit[draggable=true]:active{cursor:grabbing}.subhead-actions{display:inline-flex;gap:2px}.subhead-actions .icon-btn{width:26px;height:26px}.subhead:first-child{border-top:0}.prow{display:grid;grid-template-columns:28px minmax(0,1fr) 48px 76px 132px 32px 32px;align-items:center;gap:10px;padding:9px 12px 9px 18px;border-top:1px solid var(--line);transition:background .12s}.prow.is-custom{grid-template-columns:28px minmax(0,1fr) 48px 76px 132px 32px 32px 32px 32px}.prow:first-child,.subhead+.prow{border-top:0}.prow:hover{background:var(--panel-2)}.prow .plat,.prow .diff{justify-self:start}.prow-status{display:flex;justify-content:flex-end}.prow-status:empty{display:none}.prow-note{grid-column:2 / -1;margin:0 0 4px}.prow-note textarea{width:100%;min-height:72px;resize:vertical;border:1px solid var(--line-strong);border-radius:10px;background:var(--panel-2);color:var(--ink);padding:10px 12px;font:inherit}.prow-note textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.menu-spacer{width:32px}.check{position:relative;width:24px;height:24px;border-radius:50%;border:2px solid var(--line-strong);display:grid;place-items:center;color:transparent;transition:background .15s,border-color .15s,transform .15s}.check:hover{border-color:var(--easy)}.check[aria-pressed=true]{background:var(--easy);border-color:var(--easy);color:#fff;animation:pop .22s ease-out}@keyframes pop{50%{transform:scale(1.18)}}.prow-main{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0}.prow-heading-line{display:flex;align-items:center;gap:10px;min-width:0}.prow-title{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%;text-decoration:none;font-weight:500}.prow-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prow-title svg{flex-shrink:0;opacity:0;color:var(--ink-3);transition:opacity .15s}.prow:hover .prow-title svg,.prow-title:focus-visible svg{opacity:1}.prow-title:hover span{text-decoration:underline;text-underline-offset:3px}.prow.is-solved .prow-title{color:var(--ink-2)}.prow-note-preview{display:block;max-width:100%;overflow:hidden;color:var(--ink-3);font-size:12px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.prow-lists{display:inline-flex;align-items:center;gap:3px;flex-shrink:0;font-size:12px;font-weight:600;color:var(--ink-3);cursor:help}.menu-wrap{position:relative}.popover{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:292px;padding:16px;background:var(--panel);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px;text-align:left}.pop-line{font-weight:650}.pop-sub{color:var(--ink-2);font-size:13.5px;margin-top:-6px}.field{display:flex;flex-direction:column;gap:5px;font-size:13.5px;font-weight:600}.field input{height:38px;padding:0 10px;background:var(--panel-2);border:1px solid var(--line-strong);border-radius:9px}.check-line{display:flex;align-items:center;gap:9px;font-size:14px;cursor:pointer}.check-line input{width:17px;height:17px;accent-color:var(--accent)}.count-pill{padding:1px 10px;border-radius:999px;background:var(--later-bg);color:var(--later-ink);font-size:13px;font-weight:700}.count-overdue{background:var(--overdue-bg);color:var(--overdue-ink)}.count-today{background:var(--due-bg);color:var(--due-ink)}.rlist{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden}.rrow{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px 20px}.rrow+.rrow{border-top:1px solid var(--line)}.rrow-overdue{box-shadow:inset 4px 0 0 var(--overdue-ink)}.rrow-today{box-shadow:inset 4px 0 0 var(--due-ink)}.rrow-info{min-width:0;display:flex;flex-direction:column;gap:7px}.rrow-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.rrow-title{display:inline-flex;align-items:center;gap:7px;font-size:17px;font-weight:650;text-decoration:none;letter-spacing:-.005em}.rrow-title svg{color:var(--ink-3);flex-shrink:0}.rrow-title:hover{text-decoration:underline;text-underline-offset:3px}.rrow-meta{color:var(--ink-3);font-size:13.5px}.rrow-actions{flex-shrink:0}.day-group{margin-top:18px}.day-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px;font-size:15px;font-weight:650}.day-head span{font-size:13px;font-weight:500;color:var(--ink-3)}.block .btn-quiet{margin-top:14px}.rate{display:grid;grid-template-columns:repeat(4,78px);gap:8px}.rate-btn{display:flex;flex-direction:column;align-items:center;gap:1px;padding:9px 4px 8px;border-radius:12px;border:1px solid var(--line-strong);background:var(--panel);transition:background .15s,border-color .15s,transform .1s}.rate-btn:active{transform:translateY(1px)}.rate-label{font-weight:650;font-size:14px}.rate-next{font-size:12.5px;color:var(--ink-3)}.rate-0:hover{background:var(--overdue-bg);border-color:var(--overdue-ink)}.rate-1:hover{background:var(--medium-soft);border-color:var(--medium)}.rate-2:hover{background:var(--easy-soft);border-color:var(--easy)}.rate-3:hover{background:var(--accent-soft);border-color:var(--accent)}.heatmap{overflow-x:auto;padding:16px 16px 12px;background:var(--panel);border:1px solid var(--line);border-radius:16px}.heatmap svg{display:block}.hm-label{font-size:10.5px;fill:var(--ink-3);font-family:var(--font-body)}.heat-0{fill:var(--heat-0);background:var(--heat-0)}.heat-1{fill:var(--heat-1);background:var(--heat-1)}.heat-2{fill:var(--heat-2);background:var(--heat-2)}.heat-3{fill:var(--heat-3);background:var(--heat-3)}.heat-4{fill:var(--heat-4);background:var(--heat-4)}rect.heat-today{stroke:var(--ink);stroke-width:1.5}.heat-legend{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-3)}.heat-legend i{width:12px;height:12px;border-radius:3px;display:block}.heat-legend span:first-child{margin-right:3px}.heat-legend span:last-child{margin-left:3px}.tracker{padding:18px 20px;background:var(--panel);border:1px solid var(--line);border-radius:16px}.tracker-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;margin-bottom:18px}.tracker-summary div{display:flex;flex-direction:column}.tracker-summary b{font-family:var(--font-display);font-size:30px;line-height:1;letter-spacing:-.03em}.tracker-summary span{margin-top:5px;font-size:13px;color:var(--ink-3)}.tracker-grid{display:grid;grid-template-columns:repeat(30,minmax(0,1fr));gap:4px}.tracker-grid i{display:block;aspect-ratio:1;border-radius:4px}.tracker-grid i.heat-today{outline:2px solid var(--ink);outline-offset:1px}.tracker-axis{display:flex;justify-content:space-between;margin-top:10px;font-size:12.5px;color:var(--ink-3)}.rungs{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.rungs li{display:flex;flex-direction:column;min-width:78px;padding:10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.rungs b{font-family:var(--font-display);font-size:22px;letter-spacing:-.02em}.rungs span{font-size:12.5px;color:var(--ink-3)}@media (max-width: 1040px){.split{grid-template-columns:1fr;gap:0}.hero{grid-template-columns:1fr;padding:30px 28px;gap:28px}}@media (max-width: 900px){.app{display:block}.sidebar{position:fixed;inset:auto 0 0 0;height:auto;z-index:40;flex-direction:row;gap:0;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--panel);border-right:0;border-top:1px solid var(--line)}.brand,.side-foot{display:none}.nav{flex-direction:row;flex:1;justify-content:space-between}.nav li{flex:1}.nav a{flex-direction:column;gap:2px;padding:7px 4px;font-size:11.5px;position:relative;justify-content:center}.badge{position:absolute;top:2px;left:calc(50% + 6px);margin:0;min-width:18px;padding:0 5px;font-size:11px}.main{padding:22px 16px 100px}.toasts{bottom:84px}.page-head h1{font-size:30px}}@media (max-width: 720px){.rm-tabs-wrap{flex-direction:column;gap:0}.rm-tabs{width:100%}.rm-tabs-manage{align-self:flex-start;margin:-8px 0 18px}.page-head{flex-direction:column;gap:14px}.prow{grid-template-columns:28px minmax(0,1fr) 76px 32px 32px;padding:10px 8px 10px 12px}.prow .plat{display:none}.prow-status{grid-column:2 / -1;grid-row:2;justify-content:flex-start}.group-head{grid-template-columns:22px minmax(0,1fr) auto}.group-bar{display:none}.subhead{padding-left:16px}.rrow{flex-direction:column;align-items:stretch;gap:14px}.rate{grid-template-columns:repeat(4,1fr)}.rm-row{padding:14px;gap:12px}.tracker-grid{grid-template-columns:repeat(15,minmax(0,1fr))}.stat{padding:14px 16px}.stat-value{font-size:32px}.ladder{height:176px;gap:5px}.ladder-block{height:calc(18px + var(--step) * 14px)}.forecast{gap:3px;padding:12px 8px 8px}.popover{position:fixed;left:16px;right:16px;top:auto;bottom:90px;width:auto}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
