.planner{--pl-panel:#131518;--pl-panel-2:#1a1d21;--pl-rule:#23262b;--pl-rule-soft:#1b1e22;--pl-text:#f2f3f5;--pl-muted:#9ba1a9;--pl-dim:#676f78;--pl-lean:#34d399;--pl-fat:#fbbf24;--pl-mass:#c9ced6;--pl-alert:#f87171;--pl-warn:#d9a441;--pl-cool:#60a5fa;--pl-mono:var(--font-geist-mono), ui-monospace, "SF Mono", Menlo, Consolas, monospace;--pl-sans:var(--font-geist-sans), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;color:var(--pl-text);font-family:var(--pl-mono);-webkit-font-smoothing:antialiased;padding-bottom:40px;font-size:14px;line-height:1.5}.planner .wrap{max-width:1340px;margin:0 auto;padding:0 20px}.planner .grid{grid-template-columns:322px minmax(0,1fr);align-items:start;gap:22px;display:grid}@media (max-width:1040px){.planner .grid{grid-template-columns:minmax(0,1fr)}}.planner .rail{max-height:calc(100vh - 78px);padding-right:4px;position:sticky;top:64px;overflow-y:auto}@media (max-width:1040px){.planner .rail{max-height:none;position:static;overflow:visible}}.planner section{margin-bottom:22px}.planner .card{background:var(--pl-panel);border:1px solid var(--pl-rule);border-radius:3px}.planner .card-hd{border-bottom:1px solid var(--pl-rule-soft);justify-content:space-between;align-items:baseline;gap:10px;padding:10px 13px;display:flex}.planner .card-hd h2{letter-spacing:.2em;text-transform:uppercase;color:var(--pl-muted);margin:0;font-size:10.5px;font-weight:600}.planner .card-hd .note{color:var(--pl-dim);letter-spacing:.04em;font-size:10.5px}.planner .card-bd{padding:13px}.planner .railfoot{border-top:1px solid var(--pl-rule-soft)}.planner .grp{border-bottom:1px solid var(--pl-rule-soft)}.planner .grp:last-of-type{border-bottom:0}.planner .grp>summary{cursor:pointer;letter-spacing:.2em;text-transform:uppercase;color:var(--pl-muted);justify-content:space-between;align-items:center;padding:10px 13px;font-size:10.5px;font-weight:600;list-style:none;display:flex}.planner .grp>summary::-webkit-details-marker{display:none}.planner .grp>summary:after{content:"+";color:var(--pl-dim);font-size:14px}.planner .grp[open]>summary:after{content:"–"}.planner .grp>summary:hover{color:var(--pl-text)}.planner .grp .body{padding:2px 13px 14px}.planner .frow{grid-template-columns:1fr 1fr;gap:9px;margin-bottom:9px;display:grid}.planner .frow.one{grid-template-columns:1fr}.planner .field{flex-direction:column;gap:4px;min-width:0;display:flex}.planner .field label{letter-spacing:.15em;text-transform:uppercase;color:var(--pl-dim);font-size:9.5px}.planner .field input,.planner .field select{background:var(--background);border:1px solid var(--pl-rule);width:100%;color:var(--pl-text);font-family:var(--pl-mono);font-variant-numeric:tabular-nums;border-radius:2px;padding:6px 8px;font-size:13px}.planner .field input:focus,.planner .field select:focus,.planner button:focus-visible,.planner input[type=range]:focus-visible{outline:2px solid var(--pl-lean);outline-offset:2px}.planner .subhead{letter-spacing:.15em;text-transform:uppercase;color:var(--pl-dim);margin:12px 0 6px;font-size:9.5px}.planner .finetext{font-family:var(--pl-sans);color:var(--pl-dim);margin:6px 0 0;font-size:10.5px;line-height:1.45}.planner .slider{margin-bottom:14px}.planner .slider-hd{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.planner .slider-hd .name{letter-spacing:.15em;text-transform:uppercase;color:var(--pl-dim);font-size:9.5px}.planner .slider-hd .val{font-variant-numeric:tabular-nums;font-size:15px}.planner .slider-hd .val small{color:var(--pl-dim);margin-left:2px;font-size:10px}.planner .slider-sub{color:var(--pl-dim);justify-content:space-between;gap:8px;margin-top:4px;font-size:10px;display:flex}.planner input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:20px;margin:0}.planner input[type=range]::-webkit-slider-runnable-track{background:var(--pl-rule);border-radius:2px;height:2px}.planner input[type=range]::-moz-range-track{background:var(--pl-rule);border-radius:2px;height:2px}.planner input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--pl-text);border:none;border-radius:50%;width:13px;height:13px;margin-top:-5.5px}.planner input[type=range]::-moz-range-thumb{background:var(--pl-text);border:none;border-radius:50%;width:13px;height:13px}.planner #s-pro::-webkit-slider-thumb{background:var(--pl-lean)}.planner #s-pro::-moz-range-thumb{background:var(--pl-lean)}.planner #s-cal::-webkit-slider-thumb{background:var(--pl-fat)}.planner #s-cal::-moz-range-thumb{background:var(--pl-fat)}.planner .rail-track{border-radius:2px;height:6px;display:flex;position:relative;overflow:hidden}.planner .rail-track i{height:100%;display:block}.planner .z1{background:#f8717180}.planner .z2{background:#d9a44180}.planner .z3{background:#34d3998c}.planner .z4{background:#34d39933}.planner .rail-mark{background:var(--pl-text);width:2px;height:14px;position:absolute;top:-4px}.planner .rail-legend{color:var(--pl-dim);justify-content:space-between;margin-top:4px;font-size:9px;display:flex}.planner .ledger{border-top:1px solid var(--pl-rule-soft);margin-top:4px;padding-top:10px}.planner .ledger-row{color:var(--pl-muted);justify-content:space-between;padding:2px 0;font-size:11.5px;display:flex}.planner .ledger-row b{color:var(--pl-text);font-variant-numeric:tabular-nums;font-weight:500}.planner .ledger-row.derived b{color:var(--pl-fat)}.planner .ledger-row.bad b{color:var(--pl-alert)}.planner .ledger-row.hi b{color:var(--pl-lean)}.planner .cardioblk{border-left:2px solid var(--pl-rule);margin-bottom:10px;padding-left:9px}.planner .check{cursor:pointer;align-items:flex-start;gap:8px;margin:6px 0;display:flex}.planner .check input{accent-color:var(--pl-lean);flex:none;width:13px;height:13px;margin:2px 0 0}.planner .check span{color:var(--pl-text);font-size:11px;line-height:1.3}.planner .check em{font-family:var(--pl-sans);color:var(--pl-dim);margin-top:2px;font-size:10px;font-style:normal;line-height:1.35;display:block}.planner button{font-family:var(--pl-mono);letter-spacing:.05em;background:var(--pl-panel-2);color:var(--pl-muted);border:1px solid var(--pl-rule);cursor:pointer;border-radius:2px;padding:7px 6px;font-size:11px;transition:all .12s}.planner button:hover{border-color:var(--pl-lean);color:var(--pl-text)}.planner button.wide{width:100%;margin-top:6px}.planner button.on{background:var(--pl-lean);color:#08181a;border-color:var(--pl-lean);font-weight:600}.planner button.solve{border-color:var(--pl-lean);color:var(--pl-lean);background:#34d3991a}.planner .presets{grid-template-columns:1fr 1fr;gap:5px;margin-top:10px;display:grid}.planner .alerts{flex-direction:column;gap:5px;margin-top:10px;display:flex}.planner .alert{font-family:var(--pl-sans);border-left:2px solid var(--pl-muted);background:var(--pl-panel-2);color:var(--pl-muted);border-radius:2px;padding:7px 9px;font-size:11px;line-height:1.4}.planner .alert.crit{border-left-color:var(--pl-alert);color:#f4b9ac;background:#f8717117}.planner .alert.warn{border-left-color:var(--pl-warn);color:#e6cc93;background:#d9a44112}.planner .alert.good{border-left-color:var(--pl-lean);color:#a8e5db;background:#34d3990f}.planner .alert b{font-variant-numeric:tabular-nums}.planner .partition{padding:16px 15px 15px}.planner .part-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:10px;margin-bottom:11px;display:flex}.planner .part-total{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:28px;line-height:1}.planner .part-total small{color:var(--pl-dim);letter-spacing:.14em;text-transform:uppercase;margin-left:7px;font-size:10.5px}.planner .part-scenario{color:var(--pl-dim);letter-spacing:.09em;text-transform:uppercase;text-align:right;font-size:10.5px}.planner .bar{background:var(--pl-panel-2);border-radius:2px;height:48px;display:flex;overflow:hidden}.planner .bar div{white-space:nowrap;flex-direction:column;justify-content:center;min-width:0;padding:0 11px;transition:width .3s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden}.planner .seg-fat{background:var(--pl-fat);color:#241a03}.planner .seg-lean{background:var(--pl-lean);color:#052019}.planner .seg-gain{color:#052019;background:repeating-linear-gradient(45deg,#34d399 0 6px,#10b981 6px 12px)}.planner .bar .k{letter-spacing:.15em;text-transform:uppercase;opacity:.72;font-size:9px;font-weight:600}.planner .bar .v{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:17px;font-weight:600;line-height:1.1}.planner .part-foot{font-family:var(--pl-sans);color:var(--pl-muted);margin-top:10px;font-size:12px;line-height:1.55}.planner .part-foot b{color:var(--pl-text);font-weight:600}.planner .stats{background:var(--pl-rule-soft);border:1px solid var(--pl-rule);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}@media (max-width:900px){.planner .stats{grid-template-columns:repeat(2,1fr)}}@media (max-width:440px){.planner .stats{grid-template-columns:1fr}}.planner .stat{background:var(--pl-panel);padding:11px 12px 12px}.planner .stat .k{letter-spacing:.16em;text-transform:uppercase;color:var(--pl-dim);margin-bottom:6px;font-size:9px}.planner .stat .v{letter-spacing:-.025em;font-variant-numeric:tabular-nums;font-size:21px;line-height:1.1}.planner .stat .v span{color:var(--pl-dim);letter-spacing:0;font-size:11px}.planner .stat .s{color:var(--pl-muted);font-variant-numeric:tabular-nums;margin-top:4px;font-size:10.5px;line-height:1.35}.planner .stat.lean .v{color:var(--pl-lean)}.planner .stat.fat .v{color:var(--pl-fat)}.planner .stat.alertv .v{color:var(--pl-alert)}.planner .stat.cool .v{color:var(--pl-cool)}.planner .chart-wrap{padding:6px 4px 0;position:relative}.planner svg.chart{width:100%;display:block;overflow:visible}.planner .tip{pointer-events:none;border:1px solid var(--pl-rule);opacity:0;z-index:5;background:#0b0c0e;border-radius:2px;min-width:158px;padding:7px 9px;font-size:11px;transition:opacity .1s;position:absolute;box-shadow:0 8px 24px #0000008c}.planner .tip .th{letter-spacing:.15em;text-transform:uppercase;color:var(--pl-dim);margin-bottom:4px;font-size:9px}.planner .tip .tr{font-variant-numeric:tabular-nums;justify-content:space-between;gap:14px;display:flex}.planner .tip .tr span:first-child{color:var(--pl-muted)}.planner .legend{color:var(--pl-muted);flex-wrap:wrap;gap:14px;padding:4px 13px 12px;font-size:10.5px;display:flex}.planner .legend i{vertical-align:middle;width:15px;height:2px;margin-right:5px;display:inline-block}.planner .legend .dash{background:repeating-linear-gradient(90deg, var(--pl-fat) 0 4px, transparent 4px 7px)}.planner .fitbox{background:var(--pl-rule-soft);border-top:1px solid var(--pl-rule);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}@media (max-width:620px){.planner .fitbox{grid-template-columns:repeat(2,1fr)}}.planner .fitbox div{background:var(--pl-panel);padding:9px 13px}.planner .fitbox .k{letter-spacing:.15em;text-transform:uppercase;color:var(--pl-dim);font-size:9px}.planner .fitbox .v{font-variant-numeric:tabular-nums;margin-top:2px;font-size:13px}.planner .sweepbar{border-bottom:1px solid var(--pl-rule-soft);flex-wrap:wrap;gap:5px;padding:10px 13px;display:flex}.planner .sweepbar button{flex:1;min-width:88px}.planner .tbl-scroll{max-height:340px;overflow:auto}.planner table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:11.5px}.planner th{background:var(--pl-panel-2);text-align:right;letter-spacing:.14em;text-transform:uppercase;color:var(--pl-dim);border-bottom:1px solid var(--pl-rule);white-space:nowrap;z-index:2;padding:7px 10px;font-size:9px;font-weight:600;position:sticky;top:0}.planner th:first-child,.planner td:first-child{text-align:left}.planner td{text-align:right;border-bottom:1px solid var(--pl-rule-soft);white-space:nowrap;padding:5px 10px}.planner tbody tr:hover{background:var(--pl-panel-2)}.planner td.lean{color:var(--pl-lean)}.planner td.fat{color:var(--pl-fat)}.planner tr.ph-break{background:#60a5fa12}.planner tr.ph-break td:first-child{color:var(--pl-cool)}.planner tr.ph-final{background:#34d3990f}.planner tr.ph-final td:first-child{color:var(--pl-lean)}.planner .tbl-scroll::-webkit-scrollbar{width:8px;height:8px}.planner .rail::-webkit-scrollbar{width:8px;height:8px}.planner .tbl-scroll::-webkit-scrollbar-track{background:0 0}.planner .rail::-webkit-scrollbar-track{background:0 0}.planner .tbl-scroll::-webkit-scrollbar-thumb{background:var(--pl-rule)}.planner .rail::-webkit-scrollbar-thumb{background:var(--pl-rule)}.planner .mealgrid{background:var(--pl-rule-soft);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}@media (max-width:900px){.planner .mealgrid{grid-template-columns:1fr}}.planner .mealcol{background:var(--pl-panel);padding:12px 13px}.planner .mealcol h4{letter-spacing:.16em;text-transform:uppercase;color:var(--pl-text);margin:0 0 3px;font-size:10.5px}.planner .mealcol .sub{color:var(--pl-dim);font-variant-numeric:tabular-nums;margin-bottom:9px;font-size:10.5px}.planner .mealrow{border-bottom:1px solid var(--pl-rule-soft);grid-template-columns:1fr auto;gap:8px;padding:4px 0;font-size:11.5px;display:grid}.planner .mealrow:last-child{border-bottom:0}.planner .mealrow .mn{color:var(--pl-muted)}.planner .mealrow .mm{font-variant-numeric:tabular-nums;color:var(--pl-text)}.planner .mealrow .mm b{color:var(--pl-lean);font-weight:500}.planner .mealrow .mm i{color:var(--pl-fat);font-style:normal}.planner .exch{font-family:var(--pl-sans);color:var(--pl-muted);border-top:1px solid var(--pl-rule);padding:12px 13px;font-size:11.5px;line-height:1.6}.planner .exch b{color:var(--pl-text);font-weight:600}.planner .exch code{font-family:var(--pl-mono);color:var(--pl-lean);font-size:11px}.planner .method{font-family:var(--pl-sans);color:var(--pl-muted);font-size:12.5px;line-height:1.62}.planner .method h3{font-family:var(--pl-mono);letter-spacing:.17em;text-transform:uppercase;color:var(--pl-dim);margin:0 0 7px;font-size:9.5px}.planner .method h3+p{margin-top:0}.planner .method p{max-width:80ch;margin:0 0 11px}.planner .method code{font-family:var(--pl-mono);color:var(--pl-text);background:var(--pl-panel-2);border-radius:2px;padding:1px 4px;font-size:11px}.planner .method b{color:var(--pl-text);font-weight:600}.planner .mcols{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (max-width:820px){.planner .mcols{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.planner *{transition:none!important}}
