@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#fafafa;--surface:#fff;--surface-muted:#f4f4f5;--surface-subtle:#fafafa;--border:#e4e4e7;--divider:#f4f4f5;--text:#09090b;--text-2:#52525b;--text-3:#71717a;--text-4:#a1a1aa;--inverse:#09090b;--inverse-text-2:#a1a1aa;--inverse-badge-bg:#1c2611;--inverse-badge-fg:#b9e36a;--brand-700:#368a10;--brand-600:#4ca30d;--brand-lime:#8bc400;--green-tint:#f2f8ea;--green-strong:#2f6b0e;--green-muted:#4d5b3d;--positive:#15803d;--negative:#b91c1c;--danger-border:#fecaca;--grade-1:#368a10;--grade-2:#8bc400;--grade-3:#e0a526;--grade-4:#d2502e;--grade-pass:#d4d4d8;--grade-1-bg:#e3f1da;--grade-1-fg:#2a6b0c;--grade-2-bg:#edf6cf;--grade-2-fg:#4a6a00;--grade-3-bg:#fbefd0;--grade-3-fg:#855a00;--grade-4-bg:#fbe2da;--grade-4-fg:#a63a1b;--grade-5-bg:#fee2e2;--grade-5-fg:#b91c1c;--r-card:16px;--r-panel:12px;--r-control:10px;--r-segment:7px;--r-badge:6px;--r-bar:4px;--gap:24px;--gap-mobile:16px;--shadow-segment:0 1px 2px #00000014;--font:"Inter Variable", Inter, system-ui, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;scroll-padding-top:88px}body{background:var(--bg);color:var(--text);font:400 14px/1.5 var(--font);font-feature-settings:"tnum" 1, "cv11" 1;-webkit-font-smoothing:antialiased;margin:0}h1,h2,p,dl,dd{margin:0}a{color:inherit}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--text);outline-offset:2px}h1:focus{outline:none}.vh{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--text-3)}.r{text-align:right;justify-self:end}.skip{z-index:20;color:var(--surface);background:var(--text);border-radius:var(--r-badge);padding:8px 12px;position:absolute;top:-60px;left:16px}.skip:focus{top:8px}.narrow,.narrow-flex,.narrow-block{display:none}.bar{background:var(--surface);border-bottom:1px solid var(--border)}.bar-in{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;max-width:1200px;min-height:72px;margin:0 auto;padding:0 24px;display:flex}.brand{letter-spacing:-.02em;align-items:baseline;gap:5px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.brand img{object-fit:cover;object-position:bottom;width:36px;height:36px;display:block}.bar-actions{align-items:center;gap:12px;display:flex}.avatar{width:40px;height:40px;color:var(--text);background:var(--surface-muted);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.avatar svg{display:block}.avatar:hover{border-color:var(--text-4)}.avatar[aria-current=page]{color:var(--surface);background:var(--text);border-color:var(--text)}.btn{white-space:nowrap;min-height:40px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-control);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex;position:relative}.btn:hover{background:var(--surface-muted)}.btn.primary{color:var(--surface);background:var(--text);border-color:var(--text)}.btn.primary:hover{background:var(--text-2);border-color:var(--text-2)}.btn.danger{color:var(--negative);border-color:var(--danger-border)}.btn.danger:hover{background:var(--surface);border-color:var(--negative)}.btn.small{border-radius:8px;min-height:36px;padding:0 12px;font-size:13px}.btn.block{width:100%}.btn.tall{min-height:44px;padding:0 8px}.btn[disabled]{opacity:.5;cursor:default}.btn:has(input:focus-visible){outline:2px solid var(--text);outline-offset:2px}.icon-btn{width:36px;height:36px;color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{color:var(--text);background:var(--surface-muted)}.link{color:var(--text);cursor:pointer;text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);background:0 0;border:0;padding:0;font-size:13px;font-weight:600}.link:hover{-webkit-text-decoration-color:var(--text);text-decoration-color:var(--text)}.text-link{white-space:nowrap;font-size:14px;font-weight:600;text-decoration:none}.text-link:hover{color:var(--text-2)}.seg{background:var(--surface-muted);border-radius:var(--r-control);gap:4px;padding:4px;display:inline-flex}.seg>a,.seg>button{min-height:32px;color:var(--text-2);border-radius:var(--r-segment);cursor:pointer;white-space:nowrap;background:0 0;border:0;justify-content:center;align-items:center;padding:0 12px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.seg>:hover{color:var(--text)}.seg.nav>[aria-pressed=true],.seg.nav>[aria-current=page]{color:var(--text);background:var(--surface);box-shadow:var(--shadow-segment);font-weight:600}.top-nav>a{min-height:36px;padding:8px 16px;font-size:14px}.seg.pick>button{width:44px;height:36px;padding:0;font-size:14px;font-weight:600}.seg.pick>[aria-pressed=true],.seg.pick>[aria-pressed=true]:hover{color:var(--surface);background:var(--text)}.seg.full{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.choice{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.choice>label{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-control);cursor:pointer;justify-content:center;align-items:center;min-height:40px;font-size:14px;font-weight:600;display:flex;position:relative}.choice>label:hover{background:var(--surface-muted)}.choice>label:has(:checked){color:var(--surface);background:var(--text);border-color:var(--text)}.choice>label:has(:focus-visible){outline:2px solid var(--text);outline-offset:2px}input[type=text],input[type=number],input[type=date],input[type=email],input[type=password],select{width:100%;min-width:0;min-height:44px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-control);padding:0 12px;font-size:14px}select{appearance:none;cursor:pointer;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;padding-right:36px}select:invalid{color:var(--text-4)}input.date-input{background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E") no-repeat right 12px center;padding-right:36px}input::placeholder{color:var(--text-4)}.label,.field>span{color:var(--text-3);font-size:13px;font-weight:500}.field{flex-direction:column;gap:8px;display:flex}input[type=range]{width:100%;height:24px;accent-color:var(--text);margin:0}main{gap:var(--gap);flex-direction:column;flex:auto;width:100%;max-width:1200px;margin:0 auto;padding:40px 24px 24px;display:flex}.page{gap:var(--gap);flex-direction:column;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:8px;display:flex}.page-title{flex-direction:column;gap:4px;min-width:0;display:flex}h1{letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1.2}.page-title p{min-height:21px;color:var(--text-3)}.split-row{align-items:stretch;gap:var(--gap);flex-wrap:wrap;display:flex}.split-row>.grow{flex:999 600px;min-width:0}.split-row>.side{flex:340px;min-width:0}.split-row.even>*{flex:460px;min-width:0}[data-greeting]{overflow-wrap:anywhere}.notice{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-panel);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:8px 8px 8px 16px;font-size:14px;display:flex}#example{padding-right:16px}.notice.warn{color:var(--negative);border-color:var(--danger-border)}body.dragging #dropzone{border-color:var(--text);background:var(--surface)}.settings{align-items:start;gap:var(--gap);grid-template-columns:200px minmax(0,1fr);display:grid}.settings-nav{flex-direction:column;gap:4px;display:flex;position:sticky;top:24px}.settings-nav a{min-height:40px;color:var(--text-3);border-radius:var(--r-control);align-items:center;padding:0 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.settings-nav a:hover{color:var(--text)}.settings-nav a[aria-current=page]{color:var(--text);background:var(--surface-muted);font-weight:600}.settings-group{gap:var(--gap);flex-direction:column;min-width:0;display:flex}.settings-form{flex-direction:column;align-items:flex-start;gap:16px;display:flex}.settings-form .field,.settings-form .form-error,.settings-form .form-note,.settings-form .name-fields{width:100%;max-width:400px}.two[hidden]{display:none}.settings-msg{padding:0 24px 20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);flex-direction:column;display:flex}.card.flush{overflow:hidden}.card-head{border-bottom:1px solid var(--divider);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.card-head.line{border-bottom-color:var(--border)}.card>.card-head:last-child{border-bottom:0}.card-title{flex-direction:column;gap:2px;min-width:0;display:flex}h2{font-size:16px;font-weight:600;line-height:1.5}.card-title p{color:var(--text-3)}.card-body{padding:var(--gap)}.card-note{color:var(--text-3);margin-top:auto;padding:16px 24px;font-size:13px}.kpi-row{align-items:stretch;gap:var(--gap);flex-wrap:wrap;display:flex}.hero{min-height:280px;color:var(--surface);background:var(--inverse);border-radius:var(--r-card);flex-direction:column;flex:460px;justify-content:space-between;gap:24px;padding:24px;display:flex}.hero-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.hero-label{color:var(--inverse-text-2);font-size:14px;font-weight:500}.hero-badge{color:var(--inverse-badge-fg);background:var(--inverse-badge-bg);border-radius:var(--r-badge);padding:4px 8px;font-size:12px;font-weight:600}.hero-badge.worse{color:var(--danger-border);box-shadow:inset 0 0 0 1px var(--negative);background:0 0}.hero-bottom{flex-direction:column;gap:8px;display:flex}.hero-value{letter-spacing:-.05em;font-size:96px;font-weight:700;line-height:1}.hero-calc{color:var(--inverse-text-2);font-size:14px}.kpi-grid{gap:var(--gap);flex:460px;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);flex-direction:column;justify-content:space-between;gap:12px;min-width:0;padding:24px;display:flex}.kpi.span-2{grid-column:span 2;gap:16px}.kpi-label{color:var(--text-3);font-size:14px;font-weight:500}.kpi-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.kpi-body{flex-direction:column;gap:4px;display:flex}.kpi-inline{align-items:baseline;gap:8px;display:flex}.kpi-value{letter-spacing:-.03em;font-size:32px;font-weight:700;line-height:1}.kpi-meta{color:var(--text-3);font-size:13px}.strong-meta{font-size:14px}.progress{background:var(--surface-muted);border-radius:var(--r-bar);height:8px;display:flex;overflow:hidden}.progress .done{background:var(--brand-lime)}.progress .next{background:var(--brand-lime);opacity:.35}.whatif{align-items:stretch;gap:var(--gap);flex-wrap:wrap;display:flex}.pickers{gap:var(--gap);flex-wrap:wrap;flex:420px;display:flex}.picker{flex-direction:column;gap:8px;min-width:0;display:flex}.whatif-name{flex:100%}.whatif-actions{gap:8px}.whatif-actions.wide{display:flex}.whatif .pickers{align-content:flex-start}.stepper{align-items:center}.stepper>button{width:36px;height:36px;color:var(--text);background:var(--surface);border-radius:var(--r-segment);box-shadow:var(--shadow-segment);padding:0;font-size:18px;font-weight:600}.stepper>button:hover{color:var(--text)}.stepper input[type=number]{text-align:center;appearance:textfield;background:0 0;border:0;width:56px;height:36px;min-height:0;padding:0;font-weight:700}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none}.whatif-result{border-left:1px solid var(--divider);flex:420px;justify-content:space-between;align-items:center;gap:40px;padding:0 16px 0 40px;display:flex}.whatif-result>div{flex-direction:column;gap:8px;display:flex}.whatif-result dt{color:var(--text-3);font-size:13px;font-weight:500}.whatif-result dd{letter-spacing:-.02em;font-size:32px;font-weight:700;line-height:1}.whatif-result>div:first-child dd{color:var(--text-3)}.whatif-after dd{letter-spacing:-.03em;font-size:48px}@media (width<=1023.98px){.whatif-result{border-left:0;padding:0}}.panel{border:1px solid var(--border);border-radius:var(--r-panel);display:grid;overflow:hidden}.panel.three{flex:420px;grid-template-columns:repeat(3,minmax(0,1fr))}.panel.three>div{border-right:1px solid var(--border);flex-direction:column;gap:8px;padding:16px 20px;display:flex}.panel.three>div:last-child{border-right:0}.panel dt{color:var(--text-3);font-size:13px;font-weight:500}.panel dd{letter-spacing:-.02em;font-size:24px;font-weight:700;line-height:1}.panel .good{background:var(--green-tint)}[data-trend=down]{color:var(--green-strong)}[data-trend=up]{color:var(--negative)}.chart-body{flex:auto}.chart{border-radius:4px;width:100%;min-height:200px;position:relative}.chart:focus-visible{outline:2px solid var(--text);outline-offset:4px}.chart svg,.weight-chart svg{width:100%;height:auto;display:block;overflow:visible}svg text{font:400 13px var(--font);fill:var(--text-3)}svg text.strong{fill:var(--text);font-size:14px;font-weight:700}svg text.strong.small{font-size:13px;font-weight:600}svg text.tiny{font-size:12px}svg .grid{stroke:var(--divider)}svg .axis{stroke:var(--border)}svg .cone{fill:var(--green-tint)}svg .run{fill:none;stroke:var(--text);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}svg .expected{fill:none;stroke:var(--text);stroke-width:2.5px;stroke-dasharray:8 7;stroke-linecap:round}svg .curve{fill:none;stroke:var(--brand-700);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}svg .end{fill:var(--surface);stroke:var(--text);stroke-width:2.5px}svg circle.g1{fill:var(--grade-1)}svg circle.g2{fill:var(--grade-2)}svg circle.g3{fill:var(--grade-3)}svg circle.g4{fill:var(--grade-4)}svg circle[class*=g]{stroke:var(--surface);stroke-width:2px}svg circle.planned{fill:var(--surface);stroke-dasharray:3 2}svg circle.planned.g1{stroke:var(--grade-1)}svg circle.planned.g2{stroke:var(--grade-2)}svg circle.planned.g3{stroke:var(--grade-3)}svg circle.planned.g4{stroke:var(--grade-4)}.chart-empty{color:var(--text-3);padding:24px 0}.chart-tip{z-index:2;width:max-content;max-width:260px;color:var(--text-2);background:var(--surface);border:1px solid var(--border);pointer-events:none;border-radius:8px;flex-direction:column;gap:2px;padding:8px 12px;font-size:13px;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 4px 16px #00000014}.chart-tip[hidden]{display:none}.chart-tip.below{transform:translate(-50%)}.chart-tip strong{color:var(--text);font-weight:600}.forecast{flex-direction:column;flex:auto;display:flex}.forecast-foot{flex-wrap:wrap;justify-content:space-between;gap:16px;padding:0 24px 20px;display:flex}.legend{color:var(--text-2);flex-wrap:wrap;gap:16px;font-size:13px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.outcomes{color:var(--text-3);font-size:13px;display:none}.outcomes>div{gap:4px;display:flex}.outcomes dd{color:var(--text);font-weight:600}.card-actions{align-items:center;gap:24px;display:flex}[data-slot=plan-toggle]{display:flex}.switch{color:var(--text-2);white-space:nowrap;cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:500;display:inline-flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch-track{background:var(--border);border-radius:10px;flex:none;width:34px;height:20px;position:relative}.switch-track:after{content:"";background:var(--surface);width:16px;height:16px;box-shadow:var(--shadow-segment);border-radius:50%;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--text)}.switch input:checked+.switch-track:after{left:16px}.switch:has(input:disabled){color:var(--text-3);cursor:default}.switch input:disabled+.switch-track{opacity:.6}.switch input:focus-visible+.switch-track{outline:2px solid var(--text);outline-offset:2px}.slider-box{background:var(--surface-muted);border-radius:var(--r-panel);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:2px 16px;padding:10px 16px 12px;display:grid}.slider-box-title{color:var(--text-2);font-size:13px;font-weight:500}.slider-box output{color:var(--text);font-size:14px;font-weight:600}.slider-box-note{color:var(--text-3);grid-column:1/-1;font-size:12px}[data-slot=rest] .slider-box,.crowd-slider .slider-box{margin:var(--gap) var(--gap) 0}.crowd-source{color:var(--text-3);flex:100%;margin:0;font-size:12px}.crowd-facts{margin:var(--gap) var(--gap) 0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.crowd-facts>div{background:var(--surface-muted);border-radius:var(--r-panel);flex-direction:column;gap:4px;padding:14px 16px;display:flex}.crowd-facts>div:first-child{background:var(--green-tint)}.crowd-facts dt{color:var(--text-2);font-size:13px;font-weight:500}.crowd-facts dd{color:var(--text);font-size:24px;font-weight:700}.crowd-facts dd.crowd-fact-note{color:var(--text-3);font-size:12px;font-weight:400}.crowd-slider .slider-box-title{white-space:nowrap}.crowd-slider .slider-box{grid-template-columns:auto minmax(0,1fr) 11.5em}.crowd-slider output{text-align:right}.crowd-key{border-top:2.5px solid var(--text);width:22px;display:inline-block}.crowd-key.prog{border-top-style:dashed}.crowd-key.own{border-top-color:var(--green-strong)}.crowd-key.edge{border-top:1.5px solid var(--text-4)}.crowd-key.lead{border-top:2px dotted var(--text-3)}.crowd-scale{color:var(--text-3);grid-column:2;grid-template-columns:1fr auto 1fr;font-size:11px;display:grid}.crowd-scale span:last-child{text-align:right}.crowd-reset{font:inherit;color:var(--text-2);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.crowd-reset[hidden]{display:none}svg .edge{fill:none;stroke:var(--text-4);stroke-width:1.5px}svg .edge.dotted{stroke:var(--text-3);stroke-width:2px;stroke-dasharray:1 5;stroke-linecap:round}svg .own{fill:none;stroke:var(--green-strong);stroke-width:2px}.goal{gap:var(--gap);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}[data-slot=goal]{border-top:1px solid var(--divider)}.goal-box{color:var(--green-muted);background:var(--green-tint);border-radius:var(--r-panel);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 16px;padding:12px 16px;display:grid}.goal-label,.goal-note{grid-column:2;font-size:13px}.goal-label{font-weight:500}.goal-value{letter-spacing:-.03em;color:var(--green-strong);grid-area:1/1/span 2;font-size:32px;font-weight:700;line-height:1}.goal-box.muted-box{color:var(--text-2);background:var(--surface-muted)}.goal-box.muted-box .goal-value{color:var(--text)}.dot{border-radius:4px;flex:none;width:8px;height:8px;display:inline-block}.dot.g1,.bg1{background:var(--grade-1)}.dot.g2,.bg2{background:var(--grade-2)}.dot.g3,.bg3{background:var(--grade-3)}.dot.g4,.bg4{background:var(--grade-4)}.grade{width:28px;height:28px;color:var(--text-2);background:var(--surface-muted);border-radius:var(--r-badge);justify-content:center;align-items:center;font-size:14px;font-weight:600;display:inline-flex}.grade.g1{color:var(--grade-1-fg);background:var(--grade-1-bg)}.grade.g2{color:var(--grade-2-fg);background:var(--grade-2-bg)}.grade.g3{color:var(--grade-3-fg);background:var(--grade-3-bg)}.grade.g4{color:var(--grade-4-fg);background:var(--grade-4-bg)}.grade.g5{color:var(--grade-5-fg);background:var(--grade-5-bg)}.grade.planned{background:0 0;border:1.5px dashed}.row.off .grade{opacity:.6}.impact{font-size:14px;font-weight:500}.impact.down{color:var(--positive)}.impact.up{color:var(--negative)}.impact.flat{color:var(--text-3)}.impact.none{color:var(--text-4)}.scroll{overflow-x:auto}.table{min-width:720px}.table.full{min-width:800px}.table.snaps{min-width:720px}.thead,.row{align-items:center;padding:0 24px;display:grid}.table.recent .thead,.table.recent .row{grid-template-columns:minmax(0,1fr) 112px 72px 72px 112px 96px}.table.full .thead,.table.full .row{grid-template-columns:minmax(0,1fr) 112px 72px 72px 112px 96px 64px}.table.snaps .thead,.table.snaps .row{grid-template-columns:112px minmax(0,1fr) 80px 96px 112px 184px}.thead{min-height:44px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-subtle);border-bottom:1px solid var(--border);font-size:12px;font-weight:600}.sort-btn{min-height:32px;font:inherit;letter-spacing:inherit;text-transform:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:0;display:inline-flex}.r>.sort-btn{flex-direction:row-reverse}.sort-btn:hover,[aria-sort]>.sort-btn{color:var(--text)}.carets{flex:none}.carets path{opacity:.35}[aria-sort=ascending] .up,[aria-sort=descending] .down{opacity:1}.row{border-bottom:1px solid var(--divider);min-height:56px}.row>*{min-width:0}.c-name{padding-right:16px}.name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;display:block;overflow:hidden}.row.off{color:var(--text-4)}.row.off .name{text-decoration:line-through}.row.off .muted{color:var(--text-4)}.row.off .dot{opacity:.5}.c-edit{justify-content:flex-end;display:flex}.group-head{background:var(--surface-subtle);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:0 24px;display:flex}.group-name{font-size:13px;font-weight:600}.meta{color:var(--text-3);font-size:13px}.totals{background:var(--green-tint);padding:12px 0}.row.total{border-bottom:0;min-height:28px}.row.total:only-child{min-height:32px}.row.total .tint{color:var(--green-muted)}.row.total .strong{font-weight:600}.total-avg{color:var(--green-strong);font-weight:700}.row.total.part .total-avg{color:var(--text);font-weight:600}.table-empty{color:var(--text-3);padding:24px}.table-empty a{font-weight:600}#recent .row:last-child{border-bottom:0}.summary-row{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.summary-row>.kpi{gap:16px;min-height:160px}.dist-bar{background:var(--surface-muted);border-radius:var(--r-bar);flex:none;gap:2px;height:8px;display:flex;overflow:hidden}.dist{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.dist-item{flex-direction:column;gap:2px;display:flex}.dist-label{color:var(--text-3);align-items:center;gap:6px;font-size:13px;display:flex}.dist-count{font-size:16px;font-weight:600}.dist.three{grid-template-columns:repeat(3,minmax(0,1fr))}.progress-body{flex-direction:column;gap:12px;display:flex}.dot.done{background:var(--brand-lime)}.dot.next{background:var(--brand-lime);opacity:.35}.dot.open{background:var(--border)}.study-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.inline-input{border:1px solid var(--border);border-radius:var(--r-control);align-items:center;gap:8px;min-height:40px;padding:0 12px;display:flex}.inline-input span{color:var(--text-3);font-size:13px}.inline-input input{text-align:right;appearance:textfield;background:0 0;border:0;width:48px;min-height:0;padding:0;font-weight:600}.inline-input input::-webkit-outer-spin-button{-webkit-appearance:none}.inline-input input::-webkit-inner-spin-button{-webkit-appearance:none}.inline-input:focus-within{outline:2px solid var(--text);outline-offset:2px}.inline-input input:focus-visible{outline:none}.tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search{min-height:40px;color:var(--text-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-control);align-items:center;gap:8px;padding:0 12px;display:flex}.search input{width:140px;min-width:0;color:var(--text);appearance:none;background:0 0;border:0;outline:none;padding:0;font-size:14px}.search:focus-within{outline:2px solid var(--text);outline-offset:2px}.plan{align-items:stretch;gap:var(--gap);flex-wrap:wrap;display:flex}.plan-main{flex-direction:column;flex:999 560px;gap:16px;min-width:0;display:flex}.plan-form{align-items:flex-end;gap:16px var(--gap);flex-wrap:wrap;display:flex}.plan-submit{gap:8px;margin-left:auto;display:flex}.plan-submit .btn{min-height:44px}.plan-list{border:1px solid var(--border);border-radius:var(--r-panel);overflow:hidden}.plan-row{border-bottom:1px solid var(--divider);grid-template-columns:72px minmax(0,1fr) 80px 96px 80px;align-items:center;min-height:56px;padding:0 8px 0 16px;display:grid}.plan-row:last-child{border-bottom:0}.plan-row .c-name{min-width:0;padding-right:12px}.plan-actions{justify-content:flex-end;display:flex}.plan-empty{min-height:72px;color:var(--text-3);justify-content:center;align-items:center;padding:24px;display:flex}.panel.stack-panel{flex:300px;grid-template-rows:repeat(4,minmax(0,1fr))}.stack-panel>div{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.stack-panel>div:last-child{border-bottom:0}.stack-now dd{color:var(--text-3)}.weight{gap:var(--gap);flex-wrap:wrap;display:flex}.weight-chart{flex:460px;min-width:0}.weight-chart svg{touch-action:pan-y;-webkit-user-select:none;user-select:none}.weight-handle{outline:none}.weight-handle .hit{fill:#0000}.weight-handle:focus-visible .g1{stroke:var(--text)}.weight-now circle{fill:var(--surface);stroke:var(--text-3);stroke-width:1.5px}.weight-now[hidden],.weight-now text[hidden]{display:none}.weight-side{flex-direction:column;flex:420px;gap:16px;min-width:0;display:flex}.weight-side .pickers{flex:none;gap:16px}.weight-side .seg.pick>button{width:40px}.weight-side .body-text{display:none}.mini-table{border:1px solid var(--border);border-radius:var(--r-panel);overflow:hidden}.mini-head,.mini-row{grid-template-columns:minmax(0,1fr) 96px 96px;align-items:center;padding:0 16px;display:grid}.mini-head{min-height:40px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;background:var(--surface-subtle);border-bottom:1px solid var(--border);font-size:12px;font-weight:600}.mini-row{border-bottom:1px solid var(--divider);min-height:44px;font-size:14px}.mini-row:last-child{border-bottom:0}.strong-cell{font-weight:500}.import{align-items:stretch;gap:var(--gap);flex-wrap:wrap;display:flex}.dropzone{text-align:center;background:var(--surface-subtle);border:1.5px dashed var(--grade-pass);border-radius:var(--r-panel);cursor:pointer;flex-direction:column;flex:999 560px;justify-content:center;align-items:center;gap:12px;min-width:0;min-height:200px;padding:24px;display:flex;position:relative}.dropzone:hover{border-color:var(--text-4)}.dropzone:has(input:focus-visible){outline:2px solid var(--text);outline-offset:2px}.drop-icon{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-panel);justify-content:center;align-items:center;width:48px;height:48px;display:flex}.drop-title{font-size:16px;font-weight:600}.drop-sub{color:var(--text-3)}.drop-sub u{color:var(--text);text-underline-offset:3px;font-weight:600}.snap-date{align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.snap-source{align-items:center;gap:8px;display:flex}.badge-now{color:var(--green-strong);background:var(--green-tint);border-radius:var(--r-badge);padding:2px 8px;font-size:12px;font-weight:600}.snap-avg{font-weight:600}.snap-actions{justify-content:flex-end;gap:8px;display:flex}.safe{flex-direction:column;flex:auto;gap:12px;display:flex}.body-text{color:var(--text-2)}.two-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.prose{flex-direction:column;gap:16px;display:flex}.prose p{color:var(--text-2);line-height:1.6}.formula{background:var(--surface-muted);border-radius:var(--r-control);padding:14px 16px;font-weight:500}.settings-nav a[aria-current=true]{color:var(--text);background:var(--surface-muted);font-weight:600}.explain-topic{gap:var(--gap);flex-direction:column;scroll-margin-top:24px;display:flex}.explain .card{scroll-margin-top:24px}.fraction-card{min-height:240px;color:var(--surface);background:var(--inverse);border-radius:var(--r-card);flex-direction:column;justify-content:space-between;gap:40px;padding:24px;display:flex}.fraction-row{flex-wrap:wrap;align-items:center;gap:12px 20px;display:flex}.fraction{justify-items:center;font-weight:600;display:inline-grid}.fraction>:first-child{border-bottom:2px solid var(--surface);padding:0 8px 8px}.fraction>:last-child{padding-top:8px}.fraction.words{color:var(--inverse-text-2);font-size:14px}.fraction.words>:first-child{border-bottom-color:var(--inverse-text-2)}.fraction.numbers{letter-spacing:-.03em;font-size:32px;font-weight:700;line-height:1.1}.fraction-sign{color:var(--inverse-text-2);font-size:32px;font-weight:400}.terms>div{border-bottom:1px solid var(--divider);grid-template-columns:200px minmax(0,1fr);gap:8px 24px;padding:16px 24px;display:grid}.terms>div:last-child{border-bottom:0}.terms dt{overflow-wrap:anywhere;-webkit-hyphens:manual;hyphens:manual;font-weight:600}.terms dd{max-width:68ch;color:var(--text-2);flex-direction:column;gap:12px;line-height:1.6;display:flex}.terms .impact{font-weight:600}.terms .impact.good{color:var(--positive)}.terms .impact.bad{color:var(--negative)}.terms .formula{color:var(--text)}.plain-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.plain-list b{color:var(--text);font-weight:600}.steps{counter-reset:step;border-bottom:1px solid var(--divider);grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0;padding:24px;list-style:none;display:grid}.steps li{counter-increment:step;color:var(--text-2);flex-direction:column;gap:4px;line-height:1.6;display:flex}.steps li:before{content:counter(step);width:28px;height:28px;color:var(--surface);background:var(--text);border-radius:50%;justify-content:center;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.steps b{color:var(--text);font-weight:600}.faq{padding:0 24px}.faq details{border-bottom:1px solid var(--divider)}.faq details:last-child{border-bottom:0}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:12px 0;font-weight:600;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2371717a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") 50% no-repeat;flex:none;width:16px;height:16px}.faq details[open] summary:after{transform:rotate(180deg)}.faq p{max-width:68ch;color:var(--text-2);padding-bottom:16px;line-height:1.6}body.app{flex-direction:column;min-height:100dvh;display:flex}.foot{color:var(--text-3);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:auto;padding-top:24px;font-size:13px;display:flex}.foot-links{flex-wrap:wrap;gap:24px;display:flex}.foot a{color:var(--text-3)}.foot a:hover{color:var(--text)}.tabbar{display:none}dialog.sheet{width:min(480px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:24px}dialog::backdrop{background:#09090b80}dialog form,.study-box{flex-direction:column;gap:16px;display:flex}.two{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:16px;display:grid}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}dialog strong{overflow-wrap:anywhere;font-weight:600}.form-error{color:var(--negative);font-size:13px}.form-note{color:var(--green-muted);background:var(--green-tint);border-radius:var(--r-control);padding:12px 16px;font-size:13px}.study-options{gap:8px;display:grid}.study-option{text-align:left;white-space:normal;justify-content:flex-start;min-height:44px;padding:10px 12px;font-weight:500}dialog.import-sheet{width:min(760px,100vw - 32px)}.import-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.import-head p{margin-top:4px}.import-sheet .import{flex:auto;min-height:0}.import-sheet .dropzone{flex:auto;min-height:320px}dialog.import-sheet:not(.onboard)>.study-box,dialog.import-sheet:not(.onboard)>.review{height:536px;max-height:calc(100dvh - 84px);overflow:auto}dialog.import-sheet:not(.onboard)>.analyze{justify-content:center;height:584px;max-height:calc(100dvh - 34px)}.onboard-brand,.onboard-only{display:none}dialog.import-sheet.onboard[open]{background:var(--surface);border:0;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:24px;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:16px;display:flex;position:fixed;inset:0;overflow:auto}dialog.onboard::backdrop{background:var(--surface)}.onboard .onboard-brand{flex:none;display:flex}.onboard>.study-box,.onboard>.analyze,.onboard>.review{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);flex:none;width:min(100%,560px);height:600px;max-height:calc(100dvh - 116px);margin:0;padding:32px;overflow:auto}.onboard>.analyze{justify-content:center;overflow:hidden}.onboard h2{outline:0;font-size:20px;line-height:1.3}.onboard .onboard-step{color:var(--text-3);font-size:13px;display:block}.onboard #import-close{display:none}.onboard .import{flex-flow:column;flex:auto;gap:12px;min-height:0}dialog.onboard .dropzone{flex:auto;min-height:150px}.onboard .onboard-foot{flex:none;justify-content:space-between;gap:8px;margin-top:auto;display:flex}.onboard .onboard-foot .btn{min-height:44px}.onboard .study-option[aria-pressed=true]{border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}dialog.import-sheet.leaving{pointer-events:none;animation:.22s ease-in both sheet-leave}dialog.import-sheet.onboard.leaving{animation-name:fade-leave}dialog.import-sheet.leaving::backdrop{animation:.22s ease-in both fade-leave}@keyframes sheet-leave{to{opacity:0;transform:translateY(8px)scale(.985)}}@keyframes fade-leave{to{opacity:0}}.analyze{--dur:4.5s;text-align:center;flex-direction:column;align-items:center;gap:20px;margin:-24px;padding:32px 24px;display:flex;overflow:hidden}.an-box{width:min(100%,500px)}.an-stage{width:100%;height:auto;display:block;overflow:visible}.an-text{min-height:24px;font-size:16px;font-weight:600}.an-bar{background:var(--surface-muted);border-radius:var(--r-bar);width:min(100%,280px);height:4px;overflow:hidden}.an-bar span{background:var(--brand-600);border-radius:inherit;transform-origin:0;height:100%;animation:an-bar var(--dur) linear both;display:block}.an-ground{fill:var(--border)}.an-blade path:first-child{fill:var(--text)}.an-handle{fill:none;stroke:var(--text);stroke-width:34px}.an-pivot{fill:var(--surface)}.an-lens{opacity:0;animation:an-lens var(--dur) ease-in-out both}.an-lens-tool{animation:an-lens-tool var(--dur) ease-in-out both}.an-zoom{animation:an-zoom var(--dur) ease-in-out both}.an-lens-floor{opacity:0;animation:an-lens-floor var(--dur) ease-in-out both}.an-scissors{opacity:0;animation:an-scissors var(--dur) ease-in-out both}.an-floor{opacity:0;animation:an-floor var(--dur) ease-in-out both}.an-blade-a{animation:an-open-a var(--dur) ease-in-out both}.an-blade-b{animation:an-open-b var(--dur) ease-in-out both}.an-cast{fill:#09090b;opacity:.14}.an-stem{transform-origin:var(--bx) 1254px;animation:an-bend .46s ease-out calc(var(--dur) * var(--t) - .3s) both}.an-top{transform-origin:var(--cx) var(--cy);animation:an-fall .82s cubic-bezier(.5, 0, .9, .55) calc(var(--dur) * var(--t)) both}.an-roll{opacity:0;transform-box:fill-box;transform-origin:50%;animation:an-roll .9s linear calc(var(--dur) * var(--t)) both}@keyframes an-bar{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes an-lens{0%{opacity:0;transform:translate(-260px,1020px)}5%{opacity:1;transform:translate(170px,960px)}14%{transform:translate(400px,800px)}18%{transform:translate(400px,800px)}27%{transform:translate(830px,770px)}31%{opacity:1;transform:translate(830px,770px)}37%,to{opacity:0;transform:translate(1560px,320px)}}@keyframes an-lens-tool{0%{transform:rotate(-8deg)}5%{transform:rotate(-8deg)}14%{transform:rotate(4deg)}18%{transform:rotate(4deg)}27%{transform:rotate(-6deg)}31%{transform:rotate(-6deg)}37%,to{transform:rotate(12deg)}}@keyframes an-zoom{0%{transform:scale(1.7)translate(260px,-1020px)}5%{transform:scale(1.7)translate(-170px,-960px)}14%{transform:scale(1.7)translate(-400px,-800px)}18%{transform:scale(2.2)translate(-400px,-800px)}27%{transform:scale(1.7)translate(-830px,-770px)}31%{transform:scale(2.2)translate(-830px,-770px)}37%,to{transform:scale(1.7)translate(-1560px,-320px)}}@keyframes an-lens-floor{0%{opacity:0;transform:translate(-260px)}5%{opacity:1;transform:translate(170px)}14%{transform:translate(400px)}18%{transform:translate(400px)}27%{transform:translate(830px)}31%{opacity:1;transform:translate(830px)}37%,to{opacity:0;transform:translate(1560px)}}@keyframes an-scissors{0%,35%{opacity:0;transform:translate(2100px,780px)rotate(-5deg)}37%{opacity:1}41%,44%{transform:translate(1560px,812px)rotate(-3deg)}48%,52%{transform:translate(1290px,826px)rotate(-1deg)}56%,60%{transform:translate(1020px,806px)rotate(-4deg)}64%,68%{opacity:1;transform:translate(750px,822px)rotate(-2deg)}78%,to{opacity:0;transform:translate(40px,700px)rotate(-10deg)}}@keyframes an-floor{0%,35%{opacity:0;transform:translate(2100px)}41%,44%{opacity:1;transform:translate(1560px)}48%,52%{transform:translate(1290px)}56%,60%{transform:translate(1020px)}64%,68%{opacity:1;transform:translate(750px)}78%,to{opacity:0;transform:translate(40px)}}@keyframes an-open-a{0%,41%,48%,56%,64%{transform:rotate(11deg)}44%,52%,60%,68%{transform:rotate(.6deg)}78%,to{transform:rotate(7deg)}}@keyframes an-open-b{0%,41%,48%,56%,64%{transform:rotate(-11deg)}44%,52%,60%,68%{transform:rotate(-.6deg)}78%,to{transform:rotate(-7deg)}}@keyframes an-bend{0%{transform:none}65%{transform:skew(2.4deg)}82%{transform:skew(-1.3deg)}to{transform:none}}@keyframes an-fall{0%{opacity:1;transform:none}18%{opacity:1;transform:translate(calc(var(--dx) * .1), 26px) rotate(calc(var(--r) * .18))}80%{opacity:1}to{opacity:0;transform:translate(var(--dx), 470px) rotate(var(--r))}}@keyframes an-roll{0%{opacity:0;animation-timing-function:cubic-bezier(.5,0,.9,.5);transform:none}1%{opacity:1}66%{opacity:1;transform:translate(calc(var(--dx) * .7), var(--dy)) rotate(calc(var(--r) * .7));animation-timing-function:ease-out}82%{transform:translate(calc(var(--dx) * .86), calc(var(--dy) - 46px)) rotate(calc(var(--r) * .86));animation-timing-function:ease-in}to{opacity:1;transform:translate(var(--dx), var(--dy)) rotate(var(--r))}}@media (prefers-reduced-motion:reduce){.an-lens,.an-lens-floor,.an-scissors,.an-floor,.an-roll{display:none}.an-stem,.an-top,.an-bar span{animation:none}}.review{flex-direction:column;gap:16px;max-height:calc(100dvh - 84px);display:flex}.rev-head h2{outline:0;font-size:20px;line-height:1.3}.rev-head p{margin-top:4px}.review-scroll{flex-direction:column;flex:auto;gap:16px;min-height:0;display:flex;overflow:auto}#rev-body{flex-direction:column;flex:1 0 auto;gap:16px;display:flex}.rev-empty{text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:12px;padding:8px 16px;display:flex}.rev-empty img{width:56px;height:56px;display:block}.rev-empty p{max-width:42ch;color:var(--text-2);line-height:1.5}.rev-average{color:var(--surface);background:var(--inverse);border-radius:var(--r-panel);justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.rev-label{color:var(--inverse-text-2);font-size:14px}.rev-numbers{align-items:center;gap:10px;display:flex}.rev-numbers strong{font-size:28px;font-weight:600;line-height:1}.rev-before{color:var(--inverse-text-2)}.rev-arrow{color:var(--text-4)}.rev-delta{border-radius:var(--r-badge);padding:2px 8px;font-size:13px;font-weight:600}.rev-delta.down{color:var(--inverse-badge-fg);background:var(--inverse-badge-bg)}.rev-delta.up{color:var(--grade-5-fg);background:var(--grade-5-bg)}.rev-section{flex-direction:column;gap:4px;display:flex}.rev-section h3{color:var(--text-3);font-size:14px;font-weight:600}.rev-row{border-bottom:1px solid var(--divider);align-items:center;gap:10px;min-height:40px;display:flex}.rev-row:last-child{border-bottom:0}.rev-row .grade{flex:none}.rev-row .name{overflow-wrap:anywhere;flex:auto;min-width:0}.rev-meta{color:var(--text-3);flex:none;font-size:13px}.rev-check{color:var(--green-strong);background:var(--green-tint);border-radius:var(--r-control);padding:12px 16px;font-size:14px}.rev-note{color:var(--text-2);font-size:14px;line-height:1.5}.rev-note.warn{color:var(--negative);border:1px solid var(--danger-border);border-radius:var(--r-control);padding:12px 16px}.rev-choice{border:0;border-bottom:1px solid var(--divider);flex-direction:column;gap:8px;min-width:0;margin:0;padding:12px 0;display:flex}.rev-choice:last-child{border-bottom:0}.rev-choice legend{float:left;overflow-wrap:anywhere;width:100%;padding:0;font-weight:600}.rev-choice p{clear:both;color:var(--text-2);font-size:14px}.rev-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.rev-option{border:1px solid var(--border);border-radius:var(--r-control);cursor:pointer;align-items:center;gap:8px;min-height:44px;padding:8px 12px;font-size:14px;display:flex}.rev-option:has(input:checked){border-color:var(--text);box-shadow:inset 0 0 0 1px var(--text)}.rev-option:has(input:focus-visible){outline:2px solid var(--text);outline-offset:2px}.rev-option input{accent-color:var(--text);flex:none}.rev-actions{flex:none;gap:8px;display:flex}.rev-actions .btn{flex:1 1 0;min-height:44px}dialog.auth{width:min(420px,100vw - 32px);padding:32px}dialog.auth.solo::backdrop{background:var(--surface)}.auth-form{position:relative}.auth-close{position:absolute;top:-16px;right:-16px}.auth-brand{text-align:center;flex-direction:column;align-items:center;gap:4px;padding-bottom:8px;display:flex}.auth-brand img{object-fit:cover;object-position:bottom;width:36px;height:36px;margin-bottom:8px}.auth-brand h2{letter-spacing:-.02em;font-size:24px;font-weight:700;line-height:1.2}.auth-brand p{color:var(--text-3)}.auth .btn.primary{min-height:44px}.auth-links{justify-content:center;display:flex}.auth-foot{color:var(--text-3);text-align:center;border-top:1px solid var(--divider);padding-top:16px;font-size:13px}.suggest{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-control);margin:0;padding:4px;list-style:none;position:fixed;overflow-y:auto}.suggest.flip{flex-direction:column-reverse;display:flex}.suggest li{border-radius:var(--r-segment);cursor:pointer;align-items:baseline;gap:8px;min-height:36px;padding:8px;font-size:14px;display:flex}.suggest li:hover,.suggest li[aria-selected=true]{background:var(--surface-muted)}.s-type{width:24px;color:var(--text-3);flex:none;font-size:12px;font-weight:500}.s-name{overflow-wrap:anywhere;flex:1;min-width:0}.s-ects{color:var(--text-3);flex:none}.s-done{color:var(--positive);flex:none;font-size:12px}.calendar{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-panel);flex-direction:column;gap:4px;width:296px;padding:12px;display:flex;position:fixed;box-shadow:0 8px 24px #09090b1f}.cal-head{justify-content:space-between;align-items:center;padding-bottom:4px;display:flex}.cal-head strong{font-size:14px;font-weight:600}.cal-head [data-step="-1"] svg{transform:rotate(180deg)}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));place-items:center;display:grid}.cal-grid>span{color:var(--text-3);padding:4px 0;font-size:12px;font-weight:500}.cal-day{width:36px;height:36px;color:var(--text);border-radius:var(--r-segment);cursor:pointer;background:0 0;border:0;padding:0;font-size:14px}.cal-day:hover{background:var(--surface-muted)}.cal-day.out{color:var(--text-4)}.cal-day.today{box-shadow:inset 0 0 0 1px var(--border);font-weight:700}.cal-day[aria-pressed=true],.cal-day[aria-pressed=true]:hover{color:var(--surface);background:var(--text);box-shadow:none;font-weight:600}.cal-foot{justify-content:center;padding-top:4px;display:flex}.legal{max-width:720px}.legal-card{gap:16px;padding:32px;line-height:1.6}.legal-card a{text-underline-offset:3px;text-decoration:underline}.legal-card h2{margin-top:8px;font-size:18px;line-height:1.3}@media (width<=767.98px){html{scroll-padding-top:72px}.wide,.wide-block,.wide-flex{display:none!important}.narrow{display:inline}.narrow-flex{display:inline-flex}.narrow-block{display:block}.bar{z-index:5;position:sticky;top:0}.bar-in{flex-wrap:nowrap;min-height:56px;padding:0 16px}.brand{gap:4px;font-size:17px}.brand img{width:30px;height:30px}.top-nav{display:none}.bar-actions{gap:8px}.avatar{width:44px;height:44px;font-size:15px}.import-link{width:44px;height:44px;min-height:44px;padding:0}main{gap:var(--gap-mobile);padding:24px 16px 32px}.page{gap:var(--gap-mobile)}.settings{gap:var(--gap-mobile);grid-template-columns:minmax(0,1fr)}.settings-nav{background:var(--surface-muted);border-radius:var(--r-control);flex-direction:row;padding:4px;position:static}.settings-nav a{border-radius:var(--r-segment);flex:1 1 0;justify-content:center;min-width:0;padding:0 4px;font-size:13px}.settings-nav a[aria-current=page]{background:var(--surface);box-shadow:var(--shadow-segment)}.settings-group{gap:var(--gap-mobile)}.settings-form .field,.settings-form .form-error,.settings-form .form-note,.settings-form .name-fields{max-width:none}.settings-form .btn{width:100%}.settings-msg{padding:0 16px 16px}.page-head{flex-direction:column;align-items:stretch;gap:12px}.page-title p{min-height:0;font-size:13px}h1{font-size:24px}.page-head .btn{min-height:48px;font-size:15px}.split-row,.kpi-row{gap:var(--gap-mobile)}.split-row>*,.split-row>.grow,.split-row>.side,.split-row.even>*{flex:100%}.btn{min-height:44px;font-size:15px}.btn.small{min-height:44px}.icon-btn{width:44px;height:44px}input[type=text],input[type=number],input[type=date],input[type=email],input[type=password],select,.search input{font-size:16px}.card-head{flex-wrap:nowrap;gap:12px;padding:16px}.card-title p{font-size:13px}.card-body{padding:var(--gap-mobile)}.card-note{padding:16px}.card-foot{padding:0 16px 16px}.text-link{align-items:center;min-height:44px;display:flex}.hero{flex:100%;gap:20px;min-height:0;padding:20px}.hero-label{font-size:13px}.hero-bottom{gap:6px}.hero-value{font-size:72px}.hero-calc{font-size:13px}.kpi-grid{gap:var(--gap-mobile);flex:100%;grid-template-rows:none}.kpi{padding:16px}.kpi.span-2{gap:12px}.kpi-label{font-size:13px}.kpi-value{font-size:24px}.kpi-meta{font-size:12px}.strong-meta{font-size:13px}.kpi-inline{gap:6px}.whatif,.plan,.import,.weight{gap:var(--gap-mobile);flex-flow:column}.stepper{grid-template-columns:44px minmax(0,1fr) 44px;width:100%;display:grid}.stepper>button{width:auto;height:40px}.stepper input[type=number]{width:100%;height:40px}.whatif-result{border:0;flex:none;gap:16px;padding:0}.whatif-result dd{font-size:24px}.whatif-after dd{font-size:40px}.whatif-actions.narrow-flex{flex-wrap:wrap;width:100%}.whatif-actions.narrow-flex .btn{flex:140px;padding-left:8px;padding-right:8px}.pickers{gap:var(--gap-mobile);flex-flow:column;flex:none;width:100%}.picker{width:100%}.seg.pick{grid-template-columns:repeat(var(--n), minmax(0, 1fr));display:grid}.seg.pick>button,.weight-side .seg.pick>button{width:auto;height:40px;font-size:15px}.panel.three{flex:none}.panel.three>div{gap:6px;padding:12px}.panel dt{font-size:12px}.panel dd{font-size:20px}.chart{min-height:170px}svg text{font-size:11px}svg .run,svg .expected,svg .curve{stroke-width:2px}svg .expected{stroke-dasharray:5 5}svg circle[class*=g]{stroke-width:1.5px}.forecast-foot{border-top:1px solid var(--divider);padding:0}.outcomes{flex:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid}.outcomes>div{border-right:1px solid var(--divider);flex-direction:column;gap:2px;padding:12px 16px}.outcomes>div:last-child{border-right:0}.outcomes dt{font-size:12px}.outcomes dd{font-size:15px}.card-actions{gap:12px}.switch{min-height:44px}.slider-box{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:12px}[data-slot=rest] .slider-box,.crowd-slider .slider-box{margin:var(--gap-mobile) var(--gap-mobile) 0}.crowd-source{border-top:1px solid var(--divider);padding:12px 16px}.crowd-facts{margin:var(--gap-mobile) var(--gap-mobile) 0;grid-template-columns:minmax(0,1fr);gap:8px}.crowd-scale{order:1;grid-column:1/-1}.crowd-facts dd{white-space:nowrap;font-size:20px}.crowd-facts dd.crowd-fact-note,.crowd-slider .slider-box-title{white-space:normal}.crowd-slider .slider-box{grid-template-columns:minmax(0,1fr) auto}.crowd-outcomes.outcomes{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.crowd-outcomes.outcomes>div{border-bottom:1px solid var(--divider)}.forecast-foot .legend{padding:12px 16px}.slider-box input{order:1;grid-column:1/-1}.slider-box-note{order:2}.goal{flex-direction:column;align-items:stretch;gap:20px;display:flex}.goal-box{flex-flow:wrap;justify-content:space-between;align-items:center;gap:4px 12px;padding:16px;display:flex}.goal-label{flex:1 1 0}.goal-value{font-size:28px}.goal-note{flex:100%}[data-hint] .goal-note{display:none}.scroll{overflow:visible}.table,.table.full,.table.snaps{min-width:0}.thead{scrollbar-width:none;align-items:center;gap:16px;min-height:40px;padding:0 16px;display:flex;overflow-x:auto}.thead::-webkit-scrollbar{display:none}.thead>:not([data-sort]){display:none}.thead>[data-sort]{flex:none}.thead>.r>.sort-btn{flex-direction:row}.thead .sort-btn{min-height:40px}.courses .thead{background:0 0;border:0;margin-bottom:16px;padding:0}.table.recent .row,.table.full .row,.table.snaps .row{align-items:center;gap:12px;min-height:64px;padding:12px 16px;display:flex;position:relative}.row>.c-grade{flex:0 0 32px;order:-1}.row .grade{font-size:15px}.row .c-name{flex-direction:column;flex:auto;gap:2px;min-width:0;padding:0;display:flex}.name{font-size:15px}.meta.narrow{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.row>.r:not(.wide){white-space:nowrap;flex:none}.c-edit{width:16px;color:var(--text-4);flex:none}.icon-btn.stretch{width:16px;height:16px;color:var(--text-4);background:0 0;position:static}.icon-btn.stretch:after{content:"";position:absolute;inset:0}.card.courses{background:0 0;border:0;border-radius:0;gap:16px;overflow:visible}.courses>.card-head{border:0;padding:0}.courses>.scroll{min-width:0}#list{flex-direction:column;gap:16px;display:flex}.group{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden}.group .row:last-child{border-bottom:0}.group-head{min-height:48px;padding:0 16px}.group-name{font-size:14px}.group-head .meta{white-space:nowrap;font-size:12px}.totals{border-radius:var(--r-card);overflow:hidden}.table.full .row.total{min-height:0;padding:4px 16px}.row.total .name{font-weight:600}.row.total .meta{color:var(--green-muted)}.total-avg{letter-spacing:-.02em;white-space:nowrap;font-size:24px}.row.total.part .total-avg{letter-spacing:0;font-size:16px}.c-edit:empty{display:none}.tools{grid-template-columns:minmax(0,1fr);gap:8px;width:100%;display:grid}.search{min-height:44px}.search input{flex:auto;width:auto}#filter{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}#filter>button{min-height:36px}.summary-row{gap:var(--gap-mobile);grid-template-columns:minmax(0,1fr)}.summary-row>.kpi{gap:12px;min-height:0}.dist-label{font-size:12px}.dist-count{font-size:15px}.inline-input{flex:auto;min-height:44px}.inline-input input{flex:auto;width:auto}#total-presets>button{min-height:36px}.choice>label{min-height:44px;font-size:15px}.plan-main{flex:none;width:100%}.plan-form{flex-flow:column;align-items:stretch}.plan-submit{margin-left:0}.plan-submit .btn{flex:auto;min-height:48px}.plan-row{gap:12px;padding:8px 8px 8px 16px;display:flex}.plan-row>.grade{flex:0 0 28px;font-size:15px}.plan-row .c-name{flex-direction:column;flex:auto;gap:2px;padding:0;display:flex}.plan-row .r{flex:none}.plan-empty{min-height:0;padding:16px}.panel.stack-panel{flex:none;grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr))}.stack-panel>div{flex-direction:column;align-items:flex-start;gap:6px;padding:12px}.stack-panel>div:nth-child(odd){border-right:1px solid var(--border)}.stack-panel>div:nth-last-child(-n+2){border-bottom:0}.weight-side{flex:none;width:100%}.weight-side .body-text{display:block}.mini-head,.mini-row{grid-template-columns:minmax(0,1fr) 76px 88px}.mini-row{min-height:48px}.dropzone{flex:none;gap:10px;min-height:160px;padding:20px}.drop-title{font-size:15px}.drop-sub{font-size:13px}.drop-icon{width:44px;height:44px}.import-sheet .dropzone{min-height:240px}.analyze{margin:-20px -16px;padding:28px 16px}.rev-options{grid-template-columns:minmax(0,1fr)}.rev-empty{gap:8px;padding:0}.rev-empty img{width:40px;height:40px}.rev-empty p{font-size:14px}.rev-average{padding:12px 16px}.rev-check{padding:10px 12px;font-size:13px}.onboard>.study-box,.onboard>.analyze,.onboard>.review{padding:20px}.rev-head h2{font-size:18px}dialog.import-sheet:not(.onboard)>.study-box,dialog.import-sheet:not(.onboard)>.review{height:410px;max-height:calc(100dvh - 120px)}dialog.import-sheet:not(.onboard)>.analyze{height:450px;max-height:calc(100dvh - 80px)}.snap-date{font-size:15px}.snap-avg{flex:none;font-size:16px}.snap-actions{flex:none}.snap-actions .icon-btn.narrow{display:inline-flex}.badge-now{padding:2px 6px;font-size:11px}.prose{gap:12px}.formula{padding:12px 14px;font-size:13px;line-height:1.5}.faq{padding:0 16px}.fraction-card{gap:24px;min-height:0;padding:20px}.fraction-row{gap:12px}.fraction-row .fraction.words{flex:1 0 100%;justify-items:start}.fraction-row .fraction.words>:first-child{padding-left:0}.fraction-row .fraction-sign:nth-child(2){display:none}.terms>div{grid-template-columns:minmax(0,1fr);gap:4px;padding:14px 16px}.steps{grid-template-columns:minmax(0,1fr);gap:16px;padding:16px}.explain .settings-nav{scrollbar-width:none;overflow-x:auto}.explain .settings-nav a{flex:none;padding:0 12px}.explain .settings-nav a[aria-current=true]{background:var(--surface);box-shadow:var(--shadow-segment)}.foot{text-align:center;border-top:0;flex-direction:column;justify-content:center;gap:12px;padding-top:16px}.foot-links{justify-content:center;gap:20px}.tabbar{z-index:5;padding:6px 8px max(22px, env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:sticky;bottom:0}.tabbar a{min-height:48px;color:var(--text-3);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;font-weight:500;text-decoration:none;display:flex}.tabbar a[aria-current=page]{color:var(--text);font-weight:600}dialog.sheet{width:100%;max-width:none;max-height:calc(100dvh - 40px);padding:20px 16px max(20px, env(safe-area-inset-bottom));border-radius:var(--r-card) var(--r-card) 0 0;border-width:1px 0 0;margin:auto 0 0}dialog.auth{width:100%;padding:24px 16px max(24px, env(safe-area-inset-bottom))}.auth-close{top:-12px;right:-4px}.two{gap:12px}.actions .btn{flex:auto}.actions .spacer{display:none}.legal-card{padding:20px}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media (width>=768px){.narrow,.narrow-flex,.narrow-block{display:none!important}}
