@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff");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{--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a;--bg: #f1f4f3;--surface: #ffffff;--sunk: #e8edeb;--ink: #15201d;--muted: #5a6964;--line: #d5ddda;--accent: #1c5d8a;--accent-ink: #ffffff;--over: #a8620a;--under: #5b4bb3;--ok: #1f7a55;--warn-bg: #fbefd6;--warn-ink: #6b4300;--over-bg: #fbefd9;--over-ink: #7a4706;--under-bg: #ece9fb;--under-ink: #43359a;--ok-bg: #e2f3ea;--ok-ink: #1a6445;--band: #cfe0ec;--hl: #14201c;--hl-ink: #ffffff;--hl-muted: #c9d4d0;--hl-link: #9fd0f0;--radius: 16px;--radius-s: 10px;--display: "Archivo Variable", "IBM Plex Sans", system-ui, sans-serif;--body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #101514;--surface: #18201e;--sunk: #212b29;--ink: #e5ecea;--muted: #94a39e;--line: #2c3836;--s1: #3987e5;--s2: #d95926;--s3: #199e70;--accent: #74b6e0;--accent-ink: #0c1a24;--over: #e3a54a;--under: #a99cf0;--ok: #5fc79a;--warn-bg: #3a2d10;--warn-ink: #f1d59a;--over-bg: #3a2c12;--over-ink: #f0c27e;--under-bg: #2a2546;--under-ink: #c4bbf7;--ok-bg: #173328;--ok-ink: #86dbb3;--band: #2b4556;--hl: #e5ecea;--hl-ink: #101514;--hl-muted: #3e4b47;--hl-link: #1c5d8a;color-scheme:dark}}:root[data-theme=dark]{--bg: #101514;--surface: #18201e;--sunk: #212b29;--ink: #e5ecea;--muted: #94a39e;--line: #2c3836;--s1: #3987e5;--s2: #d95926;--s3: #199e70;--accent: #74b6e0;--accent-ink: #0c1a24;--over: #e3a54a;--under: #a99cf0;--ok: #5fc79a;--warn-bg: #3a2d10;--warn-ink: #f1d59a;--over-bg: #3a2c12;--over-ink: #f0c27e;--under-bg: #2a2546;--under-ink: #c4bbf7;--ok-bg: #173328;--ok-ink: #86dbb3;--band: #2b4556;--hl: #e5ecea;--hl-ink: #101514;--hl-muted: #3e4b47;--hl-link: #1c5d8a;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.45}.wrap{max-width:1120px;margin:0 auto;padding-inline:20px;padding-block:24px 64px;display:flex;flex-direction:column;gap:20px}h1{font-family:var(--display);font-stretch:112%;font-weight:750;font-size:1.5rem;margin:0;letter-spacing:-.01em}h2{font-family:var(--display);font-stretch:108%;font-weight:700;font-size:1.05rem;margin:0;text-wrap:balance}p{margin:0}.muted{color:var(--muted)}.foot{max-width:1120px;margin:-40px auto 0;padding:0 20px 32px;display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}.foot nav{display:flex;gap:16px}.foot a{color:inherit}.small{font-size:.84rem}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.fig{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;display:flex;flex-direction:column;gap:4px;min-width:0}.fig .lbl{font-size:.87rem;font-weight:500;color:var(--muted)}.fig .val{font-family:var(--display);font-stretch:108%;font-weight:700;font-size:2.5rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.fig .sub{font-size:.9rem;color:var(--muted)}.fig.hl,.panel.hl{background:var(--hl);border-color:var(--hl);color:var(--hl-ink)}.fig.hl .lbl,.fig.hl .sub,.panel.hl .muted{color:var(--hl-muted)}.fig.hl a,.panel.hl a{color:var(--hl-link)}nav.tabs{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;align-items:center;flex:1 1 auto;min-width:0}nav.tabs button{font:inherit;font-size:.93rem;font-weight:500;background:none;border:0;border-radius:999px;color:var(--muted);padding:10px 14px;min-height:44px;cursor:pointer;white-space:nowrap}nav.tabs button:hover{color:var(--ink);background:var(--sunk)}nav.tabs button[aria-selected=true]{color:var(--surface);background:var(--ink)}nav.tabs button:focus-visible{outline-offset:2px}.app{display:flex;flex-direction:column;gap:20px}.block{display:flex;flex-direction:column;gap:10px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;display:flex;flex-direction:column;gap:14px;min-width:0}.scroll{position:relative;overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{padding:9px 10px;text-align:right;border-bottom:1px solid var(--line);vertical-align:middle}th:first-child,td:first-child,td.l,th.l{text-align:left}td.c,th.c{text-align:center}td.l{white-space:nowrap}td.cat{white-space:normal;min-width:160px}th.st,td.st{width:1%;padding-right:0}.tick{display:block;width:18px;height:18px;padding:0;border:1.5px solid var(--over);border-radius:50%;background:transparent;cursor:pointer;position:relative}.tick.done{border-color:var(--ok);background:var(--ok)}.tick.done:after{content:"";position:absolute;left:5px;top:1.5px;width:4px;height:9px;border:solid var(--surface);border-width:0 2px 2px 0;transform:rotate(45deg)}button.sort{all:unset;cursor:pointer;display:inline-flex;gap:4px;align-items:center}button.sort:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.sort .arrow.off{visibility:hidden}th:hover button.sort .arrow.off{visibility:visible;opacity:.5}thead th{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:600;background:var(--sunk);vertical-align:bottom}tbody tr:last-child td{border-bottom:0}tr.grp td{font-weight:600}tr.child td:first-child{padding-left:28px;color:var(--muted)}tr.sub td{background:var(--sunk);font-weight:600}tr.click{cursor:pointer}tr.click:hover td{background:var(--sunk)}.dev{display:inline-flex;align-items:center;gap:10px;justify-content:flex-end}.bar{position:relative;width:64px;height:10px;background:var(--sunk);border-radius:2px;flex:none}.bar:after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--muted)}.bar i{position:absolute;top:0;bottom:0;border-radius:2px}.bar i.over{left:50%;background:var(--over)}.bar i.under{right:50%;background:var(--under)}.bar i.ok{background:var(--ok)}.chip{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:600;padding:3px 10px;border-radius:99px;white-space:nowrap;line-height:1.3}.chip.over{background:var(--over-bg);color:var(--over-ink)}.chip.under{background:var(--under-bg);color:var(--under-ink)}.chip.ok{background:var(--ok-bg);color:var(--ok-ink)}.chip .glyph{font-size:.7em}.target{position:relative;height:10px;margin-block:6px;border-radius:999px;background:var(--sunk)}.target .band{position:absolute;top:-4px;bottom:-4px;border-radius:3px;background:var(--band)}.target .fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--accent)}.target .mark{position:absolute;top:-6px;bottom:-6px;width:2px;margin-left:-1px;background:var(--ink)}.warn{background:var(--warn-bg);color:var(--warn-ink);border-radius:var(--radius-s);padding:10px 14px;font-size:.9rem}.legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.82rem;color:var(--muted)}.row{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}label.f{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--muted);min-width:0}input,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);padding:8px 10px;min-width:0;max-width:100%}input[type=number]{width:120px;text-align:right;font-variant-numeric:tabular-nums}input.pct{width:84px}input.name{width:230px}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.btn{font:inherit;font-weight:600;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 16px;cursor:pointer}button.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}button.btn.ghost{border-color:transparent;color:var(--muted);padding:8px 10px}button.btn.danger{color:var(--over)}button.icon{position:relative;display:inline-grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--sunk);color:var(--ink);cursor:pointer;flex:none}button.icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}button.icon:hover{border-color:var(--accent);color:var(--accent)}button.icon.danger{color:var(--over)}button.icon.danger:hover{border-color:var(--over);background:var(--warn-bg)}button.icon:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;translate:-50% 0;z-index:5;padding:4px 8px;border-radius:4px;background:var(--ink);color:var(--surface);font-size:.75rem;font-weight:600;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s}button.icon:hover:after,button.icon:focus-visible:after{opacity:1}.out{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink);padding:7px 0}.sum{font-size:.82rem;font-weight:600}.sum.bad{color:var(--over)}.sum.good{color:var(--ok)}.group{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px}.group:first-of-type{border-top:0;padding-top:0}.kids{display:flex;flex-direction:column;gap:8px;padding-left:18px;border-left:2px solid var(--line)}.head{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between}.seg{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.seg button{font:inherit;font-size:.84rem;font-weight:600;border:0;border-radius:999px;background:none;color:var(--muted);padding:6px 14px;cursor:pointer}.seg button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.entrybar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end}.entries{display:grid;grid-template-columns:190px minmax(0,1fr);gap:20px;align-items:start}.entries-main{display:flex;flex-direction:column;gap:20px;min-width:0}.timeline{position:sticky;top:16px;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 32px);min-width:0}.timeline h2{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}.timeline ol{list-style:none;margin:0;padding:0 0 0 4px;overflow-y:auto;display:flex;flex-direction:column}.timeline li{position:relative;padding-left:18px}.timeline li:before{content:"";position:absolute;left:4px;top:0;bottom:0;width:2px;background:var(--line)}.timeline li:first-child:before{top:18px}.timeline li:last-child:before{bottom:calc(100% - 18px)}.timeline li:only-child:before{display:none}.timeline button{all:unset;box-sizing:border-box;position:relative;display:flex;flex-direction:column;width:100%;padding:6px 10px;border-radius:4px;cursor:pointer}.timeline button:before{content:"";position:absolute;left:-19px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--bg);border:2px solid var(--muted)}.timeline button:hover{background:var(--sunk)}.timeline button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.timeline button[aria-current=true]{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.timeline button[aria-current=true]:before{background:var(--accent);border-color:var(--accent)}.timeline .date{font-weight:600}@media(max-width:760px){.entries{grid-template-columns:minmax(0,1fr)}.timeline{position:static;max-height:none}.timeline ol{flex-direction:row;overflow-x:auto;padding:0 0 6px}.timeline li{padding:14px 0 0;flex:none}.timeline li:before{left:0;right:0;top:5px;bottom:auto;width:auto;height:2px}.timeline li:first-child:before{top:5px;left:50%}.timeline li:last-child:before{bottom:auto;right:50%}.timeline button{align-items:center;white-space:nowrap}.timeline button:before{left:calc(50% - 5px);top:-14px}}.chart{position:relative}.chart svg{display:block;width:100%;height:auto}.chart text{font-family:var(--body);font-size:11px;fill:var(--muted);font-variant-numeric:tabular-nums}.chart text.end{fill:var(--ink);font-weight:600}.tip{position:absolute;top:8px;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:8px 10px;font-size:.8rem;box-shadow:0 2px 8px #00000026;min-width:170px}.tip div{display:flex;justify-content:space-between;gap:14px}.key{display:inline-block;width:14px;height:0;border-top:2px solid;vertical-align:middle;margin-right:6px}.empty{padding:28px 16px;text-align:center;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);padding:20px;width:min(560px,calc(100vw - 32px));max-height:calc(100vh - 32px)}dialog::backdrop{background:#00000073}dialog form{display:flex;flex-direction:column;gap:14px}dialog input:not([type=number]),dialog select{width:100%}button.btn:disabled{opacity:.6;cursor:default}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.appbar{background:var(--surface);border-bottom:1px solid var(--line)}.appbar .inner{max-width:1120px;margin:0 auto;padding:10px 20px;display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;justify-content:space-between}.appbar h1{font-size:1.2rem}.userbar{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;justify-content:flex-end;font-size:.84rem}.userbar .err{color:var(--over)}.userbar .status{color:var(--muted);font-size:.8rem}@media(max-width:760px){.appbar .inner{flex-wrap:wrap}.appbar .brand{flex:1 1 0;flex-wrap:nowrap}.appbar nav.tabs{order:3;flex-basis:100%;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;margin-inline:-20px;padding-inline:16px}}@media(max-width:640px){.appbar h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.userbar .status{display:none}}.usermenu{position:relative}.brand{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;min-width:0}.brand a.current{display:inline-flex;align-items:center;gap:6px;max-width:min(320px,calc(100vw - 112px));min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-weight:500;text-decoration:none}.brand a.current span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand a.current svg{flex:none;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2}.brand a.current:hover{border-color:var(--muted);background:var(--sunk)}.brand a.current:focus-visible{outline:2px solid var(--accent);outline-offset:2px}table.portfolios tr[aria-current] td:first-child{box-shadow:inset 3px 0 0 var(--accent)}table.portfolios .actions{flex-wrap:nowrap;justify-content:flex-end;gap:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}button.link{all:unset;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}button.link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.avatar{width:44px;height:44px;border-radius:50%;border:0;background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:700;font-size:1rem;cursor:pointer;display:grid;place-items:center}.avatar[aria-expanded=true]{outline:2px solid var(--accent);outline-offset:2px}.menu{position:absolute;right:0;top:calc(100% + 8px);z-index:10;min-width:200px;max-width:min(320px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);box-shadow:0 4px 16px #00000026;padding:6px;display:flex;flex-direction:column;font-size:.9rem}.menu .who{padding:6px 10px 8px;color:var(--muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid var(--line);margin-bottom:4px}.menu a,.menu button{all:unset;box-sizing:border-box;padding:8px 10px;border-radius:4px;color:var(--ink);cursor:pointer}.menu a:hover,.menu button:hover,.menu a:focus-visible,.menu button:focus-visible{background:var(--sunk)}.menu a[aria-current=page]{font-weight:600}.menu button:disabled{opacity:.6;cursor:default}.menu hr{border:0;border-top:1px solid var(--line);margin:4px 0;width:100%}.notice{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between}.notice p{flex:1 1 320px}main.auth{width:100%;max-width:440px;display:flex;flex-direction:column;gap:14px}main.auth input{width:100%}.note{background:var(--sunk);border-left:3px solid var(--ok);border-radius:var(--radius-s);padding:10px 14px;font-size:.9rem}.account{display:flex;flex-direction:column;gap:20px;max-width:640px}.account label.f input{width:100%}.account .err{color:var(--over);font-size:.84rem}.danger-zone{border-color:var(--over)}button.btn.danger-solid{background:var(--over);border-color:var(--over);color:var(--surface)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.alloc{display:flex;gap:8px;align-items:center}.alloc select{flex:1}@media(max-width:520px){.grid2{grid-template-columns:1fr}input.name{width:100%}.fig .val{font-size:2rem}.panel,.fig{padding:16px}}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}.badge{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:999px;background:var(--sunk);color:var(--muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;vertical-align:1px}.btn.small{padding:4px 10px;font-size:.84rem;white-space:nowrap}.invite-new{display:flex;flex-direction:column;gap:10px}input.invite-link{flex:1 1 320px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}.alt-signin{display:flex;flex-wrap:wrap;gap:10px;align-items:center;border-top:1px solid var(--line);padding-top:14px}.btn.google{display:inline-flex;align-items:center;gap:10px;background:#fff;color:#1f1f1f;border:1px solid #747775}.btn.google:hover:not(:disabled){background:#f2f2f2}.keys{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.keys li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.account h3{font-family:var(--display);font-size:.95rem;margin:6px 0 0}dialog.wide{width:min(860px,calc(100vw - 32px))}dialog.wide input.name{width:230px}.templates,.template-editor{display:flex;flex-direction:column;gap:14px}.templates h2,.template h3{margin:0}.template h3{font-size:1rem}.templates .err,.template-editor .err,.admin-templates .err{color:var(--over);font-size:.84rem}.templates ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.template{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:8px}.template p{margin:0}.template-preview{display:flex;flex-direction:column;gap:8px}.template-preview table{max-width:560px}.template-preview th,.template-preview td{padding:5px 8px}textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-s);padding:7px 9px;width:100%;resize:vertical}label.check{display:flex;gap:8px;align-items:center;font-weight:600}dialog label.check input{width:auto}td.desc{white-space:normal;min-width:220px;color:var(--muted);text-align:left}.admin-templates td .actions{flex-wrap:nowrap;gap:6px;justify-content:flex-end}.verdict{border-left:4px solid var(--ok);gap:4px}.verdict.off{border-left-color:var(--over)}.verdict h2{font-size:1.25rem}.month h2{font-size:1.35rem;line-height:1.25}ol.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}ol.steps li{gap:4px;position:relative;padding-right:52px}ol.steps .n{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--sunk);color:var(--muted);font-weight:700;font-size:.84rem}ol.steps .amt{font-family:var(--display);font-stretch:108%;font-weight:700;font-size:1.9rem;letter-spacing:-.02em;line-height:1.1}ol.steps .gap{margin-top:6px;padding-top:8px;border-top:1px solid var(--line);font-weight:600;white-space:normal}table.every td.cat{min-width:140px}table.every .st-inline{display:none}@media(max-width:520px){table.every .bar,table.every .st-col{display:none}table.every .st-inline{display:block;margin-top:4px}table.every td.cat{min-width:0}table.every th,table.every td{padding-inline:8px}.month h2{font-size:1.15rem}}.ov-top{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.ov-figs{display:flex;flex-direction:column;gap:16px;min-width:0}.fig h2.lbl{font-family:var(--body);font-stretch:normal;font-size:.87rem;font-weight:500;margin:0}.month{gap:8px}.month h2.lbl{font-family:var(--body);font-size:.87rem;font-weight:500;color:var(--hl-muted)}.panel.hl button.link{color:var(--hl-link)}.month .lead{font-family:var(--display);font-stretch:108%;font-weight:700;font-size:1.35rem;line-height:1.25}ol.month-steps{list-style:none;margin:0;padding:0}ol.month-steps li{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid color-mix(in srgb,var(--hl-muted) 35%,transparent)}ol.month-steps .n{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;flex:none;font-size:.8rem;font-weight:600;background:color-mix(in srgb,var(--hl-ink) 14%,transparent)}ol.month-steps .what{flex:1;min-width:0}ol.month-steps .num{font-weight:600;font-size:1.05rem}.strong{font-weight:600}.legend .key-fill,.legend .key-mark,.legend .key-band{display:inline-block;vertical-align:-1px;margin-right:6px}.key-fill{width:14px;height:8px;border-radius:4px;background:var(--accent)}.key-mark{width:2px;height:12px;background:var(--ink)}.key-band{width:14px;height:12px;border-radius:3px;background:var(--band)}.strat{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px 32px}.strat-item{display:flex;flex-direction:column;gap:4px;min-width:0}.strat-item .name,.sub-card .name{font-weight:600}.facts{display:flex;justify-content:space-between;align-items:baseline;gap:8px 12px;flex-wrap:wrap}.subs{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}.panel.sub-card{gap:6px;padding:18px 20px}.sub-card .amt{font-family:var(--display);font-stretch:108%;font-weight:700;font-size:1.5rem;line-height:1.15}.sub-card>.chip{align-self:flex-start}ul.kids-list{list-style:none;margin:4px 0 0;padding:8px 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}ul.kids-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}details.numbers summary{cursor:pointer;font-family:var(--display);font-stretch:108%;font-weight:700;font-size:1.05rem}table.tree tr.top td{font-weight:600}table.tree tr.kid td:first-child{padding-left:26px}table.tree tr.kid2 td:first-child{padding-left:44px;color:var(--muted)}nav.tabs button svg{display:none}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}@media(max-width:640px){.appbar .inner{flex-wrap:nowrap;padding-inline:16px}.appbar nav.tabs{position:fixed;z-index:20;left:0;right:0;bottom:0;margin:0;flex-basis:auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;overflow:visible;padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -2px 10px #0000000f}.appbar nav.tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;min-height:52px;padding:6px 2px;border-radius:var(--radius-s);font-size:.7rem;line-height:1.1}.appbar nav.tabs button span{max-width:100%;overflow:hidden;text-overflow:ellipsis}.appbar nav.tabs button svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.appbar nav.tabs button.all{display:none}.appbar nav.tabs button[aria-selected=true]{color:var(--accent);background:var(--sunk);font-weight:650}.appbar nav.tabs button[aria-selected=true] svg{stroke-width:2.4}body:has(.appbar nav.tabs){padding-bottom:calc(66px + env(safe-area-inset-bottom))}}.holdings{gap:16px}.holdings .hd-title{display:flex;flex-direction:column;gap:6px;min-width:0}.holdings .hd-title p{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.holdings .hd-tools{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}.sortby{display:inline-flex;align-items:center;gap:8px}.sortby select{padding:6px 10px;font-size:.88rem}.bucket{gap:10px}.bucket-head{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.bucket-head h3{font-family:var(--display);font-stretch:108%;font-weight:700;font-size:1rem;margin:0}.bucket-head .total{font-family:var(--display);font-stretch:108%;font-weight:700;font-size:1.15rem;padding-right:8px}.hlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.hlist li{border-top:1px solid var(--line)}.hrow{display:flex;align-items:center;gap:12px;min-width:0}.hrow .tick{flex:none;width:22px;height:22px}.hrow .tick.done:after{left:6.5px;top:2.5px;width:5px;height:10px}button.hmain{all:unset;box-sizing:border-box;flex:1 1 auto;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,15em) minmax(7.5em,auto);gap:4px 16px;align-items:center;padding:10px 8px;border-radius:var(--radius-s);cursor:pointer}button.hmain:hover{background:var(--sunk)}button.hmain:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.hname{display:flex;flex-direction:column;min-width:0}.hname .nm{font-weight:600;overflow-wrap:anywhere}.hname .num{white-space:normal;overflow-wrap:anywhere}.hcat{min-width:0}.hamt{text-align:right;font-weight:600}.hprompt{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:space-between;margin:0 0 10px 34px;padding:8px 12px;border-radius:var(--radius-s);background:var(--over-bg);color:var(--over-ink)}.hprompt .actions{gap:6px}.hprompt .btn.ghost{color:var(--over-ink)}@media(max-width:520px){button.hmain{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name amt" "cat cat"}.hname{grid-area:name}.hamt{grid-area:amt}.hcat{grid-area:cat}.hprompt{margin-left:0}.bucket-head .total{font-size:1rem}}:root{--area-cash: #a9cbe4;--area-low: #5893c0;--area-risky: #1c5d8a }@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--area-cash: #24425a;--area-low: #3f7fae;--area-risky: #74b6e0 }}:root[data-theme=dark]{--area-cash: #24425a;--area-low: #3f7fae;--area-risky: #74b6e0 }.dev-lead{font-size:1.05rem;color:var(--muted)}.dev-chart{overflow:hidden}.dev-chart svg{width:100%;max-width:100%}.dev-chart .grid{stroke:var(--line);stroke-width:1}.dev-chart .axis{stroke:var(--muted);stroke-width:1}.dev-chart .area.cash{fill:var(--area-cash)}.dev-chart .area.low{fill:var(--area-low)}.dev-chart .area.risky{fill:var(--area-risky)}.dev-chart .edge{fill:none;stroke:var(--surface);stroke-width:1.5;stroke-linejoin:round}.dev-chart .target-line line{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:5 4}.dev-chart .target-line line.halo{stroke:var(--surface);stroke-width:4;stroke-dasharray:none}.dev-chart .cursor{stroke:var(--ink);stroke-width:1}.dev-chart text.end{font-size:11.5px}.dev-chart .tip .tot{border-top:1px solid var(--line);margin-top:4px;padding-top:4px;font-weight:600}.swatch{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:8px;vertical-align:-1px;box-shadow:inset 0 0 0 1px var(--line)}.swatch.cash{background:var(--area-cash)}.swatch.low{background:var(--area-low)}.swatch.risky{background:var(--area-risky)}.key.dashed{border-top-style:dashed;border-color:var(--ink)}.dev-table th:first-child,.dev-table td:first-child{position:sticky;left:0;z-index:1}.dev-table td:first-child{background:var(--surface)}.dev-table tr.sub td{font-weight:600}.dev-table tr.sub td:first-child{background:var(--sunk)}.dev-table tr.lvl1 td:first-child{padding-left:30px}.dev-table tr.lvl2 td:first-child{padding-left:50px;color:var(--muted)}.dev-table td.chg{font-weight:600}.dev-table td.chg.up{color:var(--ok-ink)}.dev-table td.chg.down{color:var(--over-ink)}button.disclose{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:28px}button.disclose .chev{display:inline-block;width:1em;color:var(--muted)}button.disclose:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
