.persona-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0 10px}.persona-card{display:flex;flex-direction:column;gap:3px;text-align:left;padding:8px 10px;border-radius:var(--r-md, 8px);border:1px solid var(--border);background:var(--surface-sunk);color:var(--text);cursor:pointer;font:inherit;line-height:1.25}.persona-card b{font-size:var(--fs-sm, 12px);font-weight:600;color:var(--text-strong)}.persona-card span{font-size:var(--fs-2xs, 10.5px);color:var(--text-dim)}.persona-card:hover{border-color:var(--border-strong)}.persona-card[aria-checked=true]{border-color:var(--accent);background:var(--accent-weak)}.persona-card:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.household-members{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}.household-members .chip{font-size:var(--fs-2xs, 10.5px);padding:2px 8px;border-radius:var(--r-pill, 999px);border:1px solid var(--border);background:var(--surface-sunk);color:var(--text)}.household-members .chip em{font-style:normal;color:var(--text-dim)}.household-assumptions{margin:6px 0 8px;padding-left:16px;font-size:var(--fs-2xs, 10.5px);color:var(--text-dim);line-height:1.4}.household-assumptions li+li{margin-top:2px}.household-now{font-size:var(--fs-xs, 11.5px);color:var(--text);margin:6px 0 4px}.household-now b{font-family:var(--font-mono);font-weight:600;color:var(--text-strong)}.household-strip{display:grid;grid-template-columns:repeat(24,1fr);gap:1px;height:28px;align-items:end;margin:2px 0}.household-strip i{display:block;background:var(--border-strong);border-radius:1px 1px 0 0;min-height:2px}.household-strip i.now{background:var(--accent)}.household-strip-axis{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:9.5px;color:var(--text-dim);margin-bottom:4px}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-vietnamese-700-normal-nuAQAQa7.woff2) format("woff2"),url(/assets/archivo-vietnamese-700-normal-Bz2vkKqq.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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-latin-ext-700-normal-DD_nkw6b.woff2) format("woff2"),url(/assets/archivo-latin-ext-700-normal-CgyfnKjw.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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-latin-700-normal-D9cHMWGj.woff2) format("woff2"),url(/assets/archivo-latin-700-normal-lT5TFe7H.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:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/archivo-vietnamese-800-normal-DHDgv4cm.woff2) format("woff2"),url(/assets/archivo-vietnamese-800-normal-BKe5Z8rz.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:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/archivo-latin-ext-800-normal-BC6piDwP.woff2) format("woff2"),url(/assets/archivo-latin-ext-800-normal-B9NTbsU1.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:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/archivo-latin-800-normal-cB6v3kRN.woff2) format("woff2"),url(/assets/archivo-latin-800-normal-DZa_k145.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: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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.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 Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.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 Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.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 Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.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 Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.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 Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.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 Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.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 Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.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 Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.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 Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.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 Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.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 Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.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}*{box-sizing:border-box;margin:0}:root{--ink-950: #080d19;--ink-900: #0d1425;--ink-800: #141d33;--ink-700: #1c2a47;--ink-600: #26375c;--ink-500: #3a5283;--ink-300: #9fb0cc;--cyan-200: #9be4ff;--cyan-300: #5ad0ff;--cyan-400: #38bdf8;--cyan-500: #0ea5e9;--cyan-600: #0284c7;--mint-300: #3ecf8e;--mint-400: #2fbf80;--mint-500: #1f9f66;--mint-600: #167a4f;--mint-700: #0f5c3b;--heat-yellow: #f0c93e;--heat-500: #e0663f;--heat-600: #c9502c;--paper-100: #f2f1ec;--epc-a: #2e9e5b;--epc-b: #6cbf5a;--epc-c: #b7d15a;--epc-d: #f0d048;--epc-e: #f0a848;--epc-f: #e07c4e;--epc-g: #e06c4e;--surface-app: var(--ink-950);--surface-panel: rgba(13, 20, 37, .84);--surface-sunk: rgba(255, 255, 255, .06);--text: #e8edf5;--text-dim: #9fb0cc;--text-strong: #ffffff;--text-invert: var(--ink-950);--border: rgba(154, 196, 255, .12);--border-strong: rgba(154, 196, 255, .28);--accent: var(--cyan-300);--accent-weak: rgba(90, 208, 255, .18);--focus-ring: rgba(90, 208, 255, .85);--ok: var(--mint-300);--warn: var(--heat-yellow);--bad: #f28a66;--ok-weak: rgba(62, 207, 142, .16);--warn-weak: rgba(240, 201, 62, .18);--bad-weak: rgba(224, 102, 63, .2);--font-display: "Archivo", system-ui, sans-serif;--font-sans: "IBM Plex Sans", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;--fw-regular: 400;--fw-medium: 500;--fw-semi: 600;--fw-bold: 700;--fw-black: 800;--fs-h3: 1.125rem;--fs-sm: .8125rem;--fs-xs: .75rem;--fs-2xs: .6875rem;--lh-body: 1.55;--ls-eyebrow: .14em;--ls-tight: -.01em;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--r-xs: 4px;--r-sm: 8px;--r-md: 9px;--r-lg: 14px;--r-xl: 16px;--r-pill: 999px;--shadow-lg: 0 12px 40px rgba(8, 13, 25, .16);--shadow-glass: 0 8px 32px rgba(0, 0, 0, .38);--text-shadow-scene: 0 1px 8px rgba(0, 0, 0, .7);--blur-glass: 14px;--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .18s;--dur-med: .3s;--dur-slow: .7s;font-size:14px}html,body,#root{height:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--surface-app);color:var(--text)}button,select,input{font-family:inherit}button:focus-visible,select:focus-visible,input[type=range]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.app{position:relative;height:100%}.scene{position:absolute;inset:0}.scene canvas{display:block}.topbar{position:absolute;top:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:8px 18px;background:var(--surface-panel);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));border-bottom:1px solid var(--border);box-shadow:var(--shadow-glass)}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-text{min-width:0}.brand h1,.brand .sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:1360px){.brand .sub{display:none}}.brand-logo{width:34px;height:34px;flex:none;display:block}.brand h1{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-black);letter-spacing:var(--ls-tight);color:var(--text-strong)}.brand .sub{font-size:var(--fs-xs);color:var(--text-dim)}.top-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;white-space:nowrap}.top-centre{display:flex;align-items:center;gap:12px}.scenario-select{max-width:300px}.clock{display:flex;flex-direction:column;align-items:flex-start;font-family:var(--font-mono);line-height:1.15;min-width:128px}.clock-time{font-size:var(--fs-h3);font-weight:var(--fw-semi);font-variant-numeric:tabular-nums;color:var(--text-strong)}.clock-date{font-size:var(--fs-2xs);color:var(--text-dim);white-space:nowrap}.backend{font-size:var(--fs-2xs);font-weight:var(--fw-semi);padding:3px 9px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--accent-weak);color:var(--accent)}.backend-webgl2{background:var(--warn-weak);color:var(--warn)}.dock{position:absolute;top:66px;bottom:134px;width:300px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:2px;scrollbar-width:thin;scrollbar-color:rgba(159,176,204,.4) transparent;transition:transform var(--dur-med) var(--ease-out),opacity var(--dur-med)}.dock.left{left:14px}.dock.right{right:14px}@media(min-width:1520px){.dock{bottom:14px}}.bottom{position:absolute;left:50%;transform:translate(-50%);bottom:14px;width:min(860px,calc(100% - 28px))}.panel{background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));box-shadow:var(--shadow-glass)}.panel-head{display:flex;justify-content:space-between;align-items:baseline;margin:10px 0 8px}.panel-head:first-child{margin-top:0}.panel h2{font-family:var(--font-display);font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--text-dim)}.row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;gap:8px;font-size:var(--fs-sm)}.hint{font-size:var(--fs-xs);color:var(--text-dim);margin-bottom:8px}.field{display:block;font-size:var(--fs-xs);color:var(--text-dim);margin:8px 0 4px}.field input[type=range]{width:100%;accent-color:var(--accent)}.chip{font-family:var(--font-sans);font-size:var(--fs-2xs);font-weight:var(--fw-semi);padding:3px 9px;border-radius:var(--r-pill);transition:background var(--dur-med),color var(--dur-med),transform var(--dur-fast)}.chip-cat1{background:var(--bad-weak);color:var(--bad);border:1px solid var(--bad);animation:pulse .5s ease}.chip-cat2{background:var(--warn-weak);color:var(--warn);border:1px solid var(--warn)}.chip-none,.chip-pass{background:var(--ok-weak);color:var(--ok);border:1px solid rgba(90,208,255,.5)}.chip-fail{background:var(--bad-weak);color:var(--bad);border:1px solid var(--bad)}@keyframes pulse{0%{transform:scale(.85)}60%{transform:scale(1.08)}to{transform:scale(1)}}.badge{font-family:var(--font-sans);font-size:var(--fs-2xs);padding:2px 8px;border-radius:var(--r-pill);border:1px dashed var(--text-dim);background:transparent;color:var(--text-dim);cursor:pointer;transition:color var(--dur-fast),border-color var(--dur-fast)}.badge:hover{color:var(--text-strong);border-color:var(--text-strong)}.dhs-verdict{font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:var(--fw-semi);padding:6px 10px;border-radius:var(--r-sm);margin-bottom:6px;transition:background var(--dur-slow)}.dhs-verdict.pass{background:var(--ok-weak);color:var(--ok)}.dhs-verdict.fail{background:var(--bad-weak);color:var(--bad)}.dhs-letter{display:inline-block;width:16px;color:var(--accent)}.awaab-stage{border-left:3px solid var(--warn);padding:4px 10px;margin:6px 0}.awaab-stage.overdue{border-color:var(--bad)}.awaab-label{font-size:var(--fs-sm);font-weight:var(--fw-semi)}.awaab-due{font-size:var(--fs-2xs);color:var(--text-dim)}.awaab-stage.overdue .awaab-due{color:var(--bad);font-weight:var(--fw-semi)}.room-row{display:flex;justify-content:space-between;width:100%;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);color:var(--text);padding:6px 8px;cursor:pointer;font-size:var(--fs-xs);text-align:left;gap:6px;transition:background var(--dur-fast)}.room-row:hover{background:var(--surface-sunk)}.room-row.focused{border-color:var(--accent)}.room-stats{font-family:var(--font-mono);color:var(--text-dim);white-space:nowrap}.mould-tag{color:var(--warn);font-weight:var(--fw-semi)}.room-label span{font-family:var(--font-sans);font-size:var(--fs-2xs);color:var(--text);background:var(--surface-panel);border:1px solid var(--border);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));text-shadow:var(--text-shadow-scene);padding:2px 8px;border-radius:var(--r-pill);white-space:nowrap;user-select:none}.segmented{display:flex;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;margin-bottom:6px}.segmented button{flex:1;padding:6px 4px;background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:var(--fs-xs);transition:background var(--dur-med),color var(--dur-med)}.segmented button.active{background:var(--accent-weak);color:var(--accent);font-weight:var(--fw-semi)}.toggle{min-width:70px;padding:4px 10px;border-radius:var(--r-pill);border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;font-size:var(--fs-xs);transition:border-color var(--dur-fast),color var(--dur-fast)}.toggle.on{border-color:var(--accent);color:var(--accent)}.toggle.on.warn{border-color:var(--bad);color:var(--bad)}.cop-note{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--warn);padding:4px 0}.btn{padding:6px 14px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-sunk);color:var(--text);cursor:pointer;font-size:var(--fs-xs);transition:background var(--dur-fast),border-color var(--dur-fast)}.btn.primary{background:var(--accent-weak);border-color:var(--accent);color:var(--accent);font-weight:var(--fw-semi)}.btn:disabled{opacity:.4;cursor:default}.seq-catalogue{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.seq-add{font-size:var(--fs-2xs);padding:4px 9px;border-radius:var(--r-pill);border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer}.seq-add:disabled{opacity:.35;cursor:default}.cost{font-family:var(--font-mono);color:var(--text-dim);margin-left:5px}.seq-list{margin:6px 0 10px 18px;font-size:var(--fs-xs)}.seq-list li{padding:3px 0}.seq-list li.applied{color:var(--accent)}.seq-warning{font-size:var(--fs-2xs);color:var(--warn);margin:2px 0 4px}.seq-warning-detail{color:var(--text-dim);font-size:var(--fs-2xs)}.seq-actions{display:flex;gap:8px}.hem-metric{margin-bottom:8px}.hem-row{display:flex;justify-content:space-between;font-size:var(--fs-sm);margin-bottom:3px}.meter{height:5px;background:var(--surface-sunk);border-radius:var(--r-pill);overflow:hidden}.meter-fill{height:100%;background:linear-gradient(90deg,var(--ink-500),var(--accent));border-radius:var(--r-pill);transition:width var(--dur-slow) var(--ease-out)}.epc{font-family:var(--font-display);font-size:var(--fs-2xs);font-weight:var(--fw-bold);width:22px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-xs);color:var(--text-invert)}.epc-A{background:var(--epc-a)}.epc-B{background:var(--epc-b)}.epc-C{background:var(--epc-c)}.epc-D{background:var(--epc-d)}.epc-E{background:var(--epc-e)}.epc-F{background:var(--epc-f)}.epc-G{background:var(--epc-g)}.env-bar{display:flex;align-items:center;gap:12px;background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:10px 16px;backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));box-shadow:var(--shadow-glass)}.env-clock{display:flex;flex-direction:column;min-width:92px;font-family:var(--font-mono)}.env-time{font-size:var(--fs-h3);font-weight:var(--fw-semi);font-variant-numeric:tabular-nums;color:var(--text-strong)}.env-temp,.env-days{font-size:var(--fs-2xs);color:var(--text-dim)}.time-slider{flex:1;accent-color:var(--accent)}.speeds{display:flex;gap:4px}.speeds button{width:34px;height:30px;border-radius:var(--r-sm);border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;font-size:var(--fs-sm);transition:border-color var(--dur-fast),color var(--dur-fast)}.speeds button.active{border-color:var(--accent);color:var(--accent)}.env-bar select,.top-actions select{font-family:var(--font-sans);background:var(--surface-panel);border:1px solid var(--border);color:var(--text);border-radius:var(--r-md);padding:6px 8px;font-size:var(--fs-xs)}.modal-backdrop{position:fixed;inset:0;background:#080d1999;display:flex;align-items:center;justify-content:center;z-index:50}.modal{max-width:460px;background:var(--ink-800);border:1px solid var(--border);border-radius:var(--r-xl);padding:var(--sp-5);box-shadow:var(--shadow-lg)}.modal h3{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-h3);color:var(--text-strong);margin-bottom:10px}.modal p{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--text-dim);margin-bottom:16px}.fpv-dock{position:absolute;top:76px;left:50%;transform:translate(-50%);z-index:20;pointer-events:none}.fpv-dock>*{pointer-events:auto}.overlay-thermal:not(.presenting) .fpv-dock{top:162px}.fpv-pill{display:inline-flex;align-items:center;gap:10px;max-width:min(92vw,620px);padding:7px 9px 7px 14px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface-panel);color:var(--text);font-size:var(--fs-sm);font-family:inherit;backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));box-shadow:var(--shadow-glass);text-shadow:var(--text-shadow-scene)}.fpv-pill-cta{cursor:pointer;transition:border-color var(--dur-med),color var(--dur-med)}.fpv-pill-cta:hover{border-color:var(--accent);color:var(--accent)}.fpv-pill-placing{border-color:var(--warn)}.fpv-pill-active{border-color:var(--accent)}.fpv-eye{color:var(--accent);font-size:14px;line-height:1}.fpv-pill-placing .fpv-eye{color:var(--warn)}.fpv-label{white-space:nowrap;font-weight:var(--fw-semi)}.fpv-label-btn{background:transparent;border:none;color:var(--text);font:inherit;font-weight:var(--fw-semi);cursor:pointer;padding:0}.fpv-label-btn:hover{color:var(--accent)}.fpv-hint{color:var(--text-dim);font-size:var(--fs-2xs);white-space:nowrap}.fpv-btn{padding:4px 12px;border-radius:var(--r-pill);border:1px solid var(--accent);background:var(--accent-weak);color:var(--accent);cursor:pointer;font-size:var(--fs-xs);font-family:inherit;font-weight:var(--fw-semi);white-space:nowrap}.fpv-btn-ghost{border-color:var(--border);background:transparent;color:var(--text-dim);font-weight:var(--fw-medium)}.fpv-btn-ghost:hover{color:var(--text);border-color:var(--text-dim)}.fpv-x{width:26px;height:26px;border-radius:var(--r-pill);border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;font-size:var(--fs-xs);line-height:1;flex:0 0 auto;transition:color var(--dur-fast),border-color var(--dur-fast)}.fpv-x:hover{color:var(--bad);border-color:var(--bad)}.row,.room-row,.dhs-verdict,.hem-metric,.cop-note{position:relative}.row-value{display:flex;align-items:center;gap:6px;font-family:var(--font-mono)}.row-pulse{position:absolute;inset:-3px -8px;border-radius:var(--r-sm);background:linear-gradient(90deg,transparent,var(--accent-weak),transparent);pointer-events:none;animation:rowPulse 1.6s var(--ease-out)}@keyframes rowPulse{0%{opacity:0;transform:translate(-14%)}35%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(14%)}}.delta-chip{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:var(--fw-semi);color:var(--accent);white-space:nowrap;animation:chipFade 4s ease forwards}@keyframes chipFade{0%{opacity:0;transform:translateY(2px)}8%{opacity:1;transform:translateY(0)}78%{opacity:1}to{opacity:0}}.room-block{display:flex;flex-direction:column}.room-deltas{display:flex;flex-wrap:wrap;gap:8px;padding:0 8px 4px;margin-top:-2px}.panel-head{position:relative}.help-tip{position:relative;display:inline-flex;align-items:center;margin-left:6px;cursor:help}.help-tip-icon{font-size:var(--fs-2xs);color:var(--text-dim);line-height:1}.help-tip:hover .help-tip-icon,.help-tip:focus .help-tip-icon,.help-tip:focus-visible .help-tip-icon{color:var(--accent)}.help-tip-bubble{position:absolute;z-index:30;bottom:calc(100% + 8px);left:50%;width:max-content;max-width:200px;padding:8px 10px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--ink-800);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-2xs);font-weight:var(--fw-regular);line-height:1.45;text-transform:none;letter-spacing:normal;box-shadow:var(--shadow-lg);opacity:0;transform:translate(-50%,4px);pointer-events:none;transition:opacity .15s ease,transform .15s ease}.help-tip:hover .help-tip-bubble,.help-tip:focus .help-tip-bubble,.help-tip:focus-visible .help-tip-bubble{opacity:1;transform:translate(-50%)}.starter-card{border-color:var(--border-strong)}.starter-dismiss{border:none;background:transparent;color:var(--text-dim);cursor:pointer;font-size:var(--fs-xs);line-height:1;padding:2px 4px}.starter-dismiss:hover{color:var(--text)}.starter-list{list-style:none;display:flex;flex-direction:column;gap:8px}.starter-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:var(--fs-xs);color:var(--text-dim);line-height:1.4}.starter-do{flex:0 0 auto;padding:4px 10px;border-radius:var(--r-pill);border:1px solid var(--border);background:transparent;color:var(--accent);cursor:pointer;font-size:var(--fs-2xs);font-weight:var(--fw-semi);white-space:nowrap;transition:border-color var(--dur-fast),background var(--dur-fast)}.starter-do:hover{border-color:var(--accent);background:var(--accent-weak)}.view-dock{position:absolute;left:50%;bottom:134px;transform:translate(-50%);z-index:20;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:calc(100% - 28px);pointer-events:none}.view-dock>*{pointer-events:auto}.view-bar{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px}.view-eyebrow{align-self:center;padding:0 6px 0 10px;font-family:var(--font-display);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-dim);text-shadow:var(--text-shadow-scene);user-select:none}.view-home{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface-panel);color:var(--text-dim);cursor:pointer;font-size:var(--fs-xs);font-family:inherit;font-weight:var(--fw-semi);white-space:nowrap;text-shadow:var(--text-shadow-scene);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));box-shadow:var(--shadow-glass);transition:color var(--dur-med),border-color var(--dur-med)}.view-home:hover{color:var(--text);border-color:var(--border-strong)}.view-hint{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface-panel);color:var(--text);font-size:var(--fs-xs);text-shadow:var(--text-shadow-scene);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));box-shadow:var(--shadow-glass);animation:view-hint-in var(--dur-slow) var(--ease-out) both}.view-hint-glyph{color:var(--accent);font-size:var(--fs-sm)}@keyframes view-hint-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.room-label span{cursor:pointer;transition:border-color var(--dur-fast),color var(--dur-fast),background var(--dur-fast)}.room-label span:hover{border-color:var(--border-strong);color:var(--text-strong)}.room-label-active span{border-color:var(--accent);color:var(--accent);background:#0d1425eb}.room-hover-foot{margin-top:7px;padding-top:6px;border-top:1px solid var(--border);font-size:var(--fs-2xs);color:var(--text-dim)}.storey-toggle{display:inline-flex;gap:2px;padding:4px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface-panel);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));box-shadow:var(--shadow-glass)}.storey-btn{padding:5px 14px;border-radius:var(--r-pill);border:none;background:transparent;color:var(--text-dim);cursor:pointer;font-size:var(--fs-xs);font-family:inherit;font-weight:var(--fw-semi);white-space:nowrap;text-shadow:var(--text-shadow-scene);transition:background var(--dur-med),color var(--dur-med)}.storey-btn:hover{color:var(--text)}.storey-btn-active{background:var(--accent-weak);color:var(--accent)}.control-group{border-radius:var(--r-sm);transition:background var(--dur-med)}.control-group:hover{background:#5ad0ff0f}.section+.section{margin-top:14px}.section-head-actions{display:flex;align-items:center;gap:6px}.section-toggle{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;border-radius:var(--r-xs);background:transparent;color:var(--text-dim);cursor:pointer;transition:color var(--dur-fast),background var(--dur-fast)}.section-toggle:hover{color:var(--text-strong);background:var(--surface-sunk)}.chevron{display:inline-block;font-size:var(--fs-xs);line-height:1;transform:rotate(0);transition:transform var(--dur-med) var(--ease-out)}.chevron.collapsed{transform:rotate(-90deg)}.section-summary{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-dim);padding:0 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--dur-med) var(--ease-out)}.section-body.collapsed{grid-template-rows:0fr}.section-body-inner{overflow:hidden;min-height:0}.health-risk{position:relative;padding:8px 0}.health-risk+.health-risk{border-top:1px solid var(--border)}.health-risk-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:var(--fs-sm)}.health-risk-title{font-weight:var(--fw-semi)}.health-rationale{font-size:var(--fs-xs);color:var(--text-dim);line-height:var(--lh-body);margin-top:3px}.health-rooms{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.health-room-pill{font-family:var(--font-sans);font-size:var(--fs-2xs);padding:2px 9px;border-radius:var(--r-pill);border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;transition:border-color var(--dur-fast),color var(--dur-fast),background var(--dur-fast)}.health-room-pill:hover{background:var(--surface-sunk);color:var(--text)}.health-room-pill.focused{border-color:var(--accent);background:var(--accent-weak);color:var(--accent)}.health-vulnerable{font-size:var(--fs-2xs);color:var(--text-dim);margin-top:4px}.health-vulnerable-label{color:var(--text);font-weight:var(--fw-semi)}.health-nhs{position:relative;font-family:var(--font-sans);padding:8px 10px;border-radius:var(--r-sm);margin-top:10px;transition:background var(--dur-slow)}.health-nhs-low{background:var(--ok-weak)}.health-nhs-elevated{background:var(--warn-weak)}.health-nhs-high{background:var(--bad-weak)}.health-nhs-head{display:flex;align-items:center;gap:8px}.health-nhs-label{font-size:var(--fs-xs);font-weight:var(--fw-semi);color:var(--text)}.health-nhs-framing{font-size:var(--fs-2xs);color:var(--text-dim);line-height:var(--lh-body);margin-top:6px}.shading-row{padding:6px 0;font-size:var(--fs-xs)}.shading-row+.shading-row{border-top:1px solid var(--border)}.shading-master{padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid var(--border)}.shading-master-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px;font-weight:var(--fw-semi);color:var(--text)}.shading-master-head .shading-remove-all{display:inline-block;width:auto;margin:0;padding:3px 8px}.shading-layer{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:6px;padding:3px 0}.shading-layer-name{font-size:var(--fs-2xs);color:var(--text-dim)}.shading-layer .shading-layer-select{width:100%;min-width:0}.shading-layer .segmented.shading-row-state{flex:none;margin-bottom:0}.shading-layer .shading-row-state button{padding:4px 6px}.shading-row-state.is-idle{opacity:.45}.shading-row-state button:disabled{cursor:default}.shading-layer-compact .shading-row-state button{padding:2px 6px;font-size:var(--fs-2xs)}.shading-window-list{display:flex;flex-direction:column}.shading-row-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.shading-row-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim)}.shading-row-select{width:100%;font-family:var(--font-sans);background:var(--surface-panel);border:1px solid var(--border);color:var(--text);border-radius:var(--r-md);padding:5px 6px;font-size:var(--fs-2xs)}.shading-row .segmented.shading-row-state{flex:0 0 auto;margin-bottom:0}.shading-row-state button{padding:5px 7px}.shading-fixed-hint{flex:0 0 auto;font-size:var(--fs-2xs);color:var(--text-dim);font-style:italic;padding:0 4px}.shading-remove-all{display:block;width:100%;margin:2px 0 8px;padding:4px 6px;background:none;border:1px dashed var(--border);border-radius:var(--r-md);color:var(--text-dim);font-family:var(--font-sans);font-size:var(--fs-2xs);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.shading-remove-all:hover{color:var(--text);border-color:var(--border-strong)}.timer{margin-top:8px;display:flex;flex-direction:column;gap:6px}.timer-head{display:flex;align-items:center;gap:4px;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.timer-period{display:flex;align-items:center;justify-content:space-between;gap:8px}.timer-label{flex:0 0 auto;font-size:var(--fs-xs);color:var(--text-dim)}.timer-range{flex:0 0 auto;display:flex;align-items:center;gap:4px}.timer-range select{font-family:var(--font-sans);background:var(--surface-panel);border:1px solid var(--border);color:var(--text);border-radius:var(--r-md);padding:4px 5px;font-size:var(--fs-2xs)}.timer-dash{color:var(--text-dim);font-size:var(--fs-2xs)}.env-bar-stack{display:flex;flex-direction:column;gap:8px}.timeline-row{display:flex;align-items:center;gap:12px;background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:8px 16px;backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));box-shadow:var(--shadow-glass)}.timeline-calendar{display:flex;align-items:baseline;gap:5px;min-width:168px;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text);white-space:nowrap}.timeline-day,.timeline-season{color:var(--text-dim)}.timeline-advancing{margin-left:6px;color:var(--accent);font-size:var(--fs-2xs)}.timeline-strip{position:relative;flex:1;height:12px;border-radius:var(--r-pill);background:var(--surface-sunk);border:1px solid var(--border);overflow:hidden}.timeline-band{position:absolute;top:0;bottom:0}.timeline-band-winter{background:#8fb5c529}.timeline-band-spring{background:#5ad0ff24}.timeline-band-summer{background:#f0c93e29}.timeline-band-autumn{background:#e0663f29}.timeline-wash{position:absolute;top:0;bottom:0;background:var(--accent-weak);animation:timeline-wash-pulse 1.1s ease-in-out infinite}@keyframes timeline-wash-pulse{0%,to{opacity:.55}50%{opacity:.9}}.timeline-marker{position:absolute;top:2px;bottom:2px;width:2px;transform:translate(-1px)}.timeline-marker-faint{background:var(--border-strong)}.timeline-marker-warn{top:0;bottom:0;width:3px;background:var(--warn)}.timeline-marker-bad{top:0;bottom:0;width:3px;background:var(--bad)}.timeline-marker-start{background:var(--text-dim)}.timeline-now{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--accent);box-shadow:0 0 4px var(--accent);transform:translate(-1px)}.timeline-jumps{display:flex;align-items:center;gap:4px}.timeline-jump-divider{width:1px;align-self:stretch;background:var(--border);margin:0 2px}.timeline-jump-btn{padding:5px 8px;border-radius:var(--r-sm);border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;font-size:var(--fs-2xs);font-family:var(--font-mono);white-space:nowrap;transition:border-color var(--dur-fast),color var(--dur-fast)}.timeline-jump-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.timeline-jump-btn:disabled{opacity:.35;cursor:default}.new-model-modal{max-width:560px}.new-model-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;max-height:50vh;overflow-y:auto}.new-model-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--border);cursor:pointer;transition:border-color var(--dur-fast)}.new-model-item.active{border-color:var(--accent);background:var(--accent-weak)}.new-model-item input[type=radio]{margin-top:3px;accent-color:var(--accent)}.new-model-item-text{display:flex;flex-direction:column;gap:2px}.new-model-item-label{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-strong)}.new-model-item-desc{font-size:var(--fs-xs);color:var(--text-dim);line-height:var(--lh-body)}.new-model-actions{display:flex;justify-content:flex-end;gap:8px}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#9fb0cc59;border-radius:var(--r-pill);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#9fb0cc99;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}.hiw-backdrop{position:fixed;inset:0;z-index:20000000;background:#080d19a8;backdrop-filter:blur(calc(var(--blur-glass) - 4px));-webkit-backdrop-filter:blur(calc(var(--blur-glass) - 4px));display:flex;align-items:stretch;justify-content:center;padding:3.5vh 16px}.hiw-page{display:flex;flex-direction:column;width:min(860px,100%);max-height:100%;background:var(--ink-800);border:1px solid var(--border-strong);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);overflow:hidden}.hiw-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;background:var(--surface-panel);border-bottom:1px solid var(--border);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass))}.hiw-header h1{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-black);letter-spacing:var(--ls-tight);color:var(--text-strong)}.hiw-close{flex:0 0 auto;width:32px;height:32px;border-radius:var(--r-pill);border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;font-size:20px;line-height:1;transition:color var(--dur-fast),border-color var(--dur-fast)}.hiw-close:hover{color:var(--text-strong);border-color:var(--text-strong)}.hiw-scroll{flex:1 1 auto;overflow-y:auto;padding:26px 22px 40px;scrollbar-width:thin;scrollbar-color:rgba(159,176,204,.4) transparent}.hiw-measure{max-width:65ch;margin:0 auto}.hiw-page p,.hiw-page li{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--text)}.hiw-page p{margin-bottom:12px}.hiw-page strong{color:var(--text-strong);font-weight:var(--fw-semi)}.hiw-page em{color:var(--text);font-style:italic}.hiw-lede{font-size:.9375rem;color:var(--text)}.hiw-disclaimer{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--text);background:var(--surface-sunk);border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:var(--r-sm);padding:12px 16px;margin:4px 0 22px}.hiw-disclaimer strong{color:var(--accent)}.hiw-section{margin:26px 0}.hiw-section:first-of-type{margin-top:8px}.hiw-eyebrow{font-family:var(--font-display);font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--accent);padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--border)}.hiw-sub{font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--text-strong);margin:18px 0 8px}.hiw-list{margin:0 0 14px 20px;display:flex;flex-direction:column;gap:8px}.hiw-list li{padding-left:2px}.hiw-footnote{font-size:var(--fs-xs)!important;color:var(--text-dim)!important;margin-top:18px}.hiw-tools{flex:0 0 auto;display:flex;align-items:center;gap:10px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.hiw-tools .segmented.hiw-mode{margin-bottom:0;flex:0 0 auto}.hiw-tools .segmented.hiw-mode button{padding:6px 12px;white-space:nowrap}.hiw-listen{display:flex;align-items:center;gap:6px}.hiw-listen .btn{white-space:nowrap}.hiw-section.hiw-reading{border-left:3px solid var(--accent);padding-left:14px;margin-left:-17px;background:var(--accent-weak);border-radius:var(--r-sm);transition:background var(--dur-med),border-color var(--dur-med)}.tn-eq{font-family:var(--font-mono);font-size:var(--fs-xs);line-height:1.7;color:var(--text-strong);white-space:pre-wrap;background:var(--surface-sunk);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--r-sm);padding:12px 14px;margin:10px 0 14px;overflow-x:auto}.tn-mono{font-family:var(--font-mono);font-size:.92em;color:var(--text-strong)}.tn-table{width:100%;border-collapse:collapse;margin:8px 0 16px;font-size:var(--fs-xs)}.tn-table th,.tn-table td{text-align:left;padding:5px 10px;border-bottom:1px solid var(--border);color:var(--text)}.tn-table thead th{font-family:var(--font-display);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--accent);border-bottom:1px solid var(--border-strong)}.tn-table td:not(:first-child){font-family:var(--font-mono);color:var(--text-strong)}.tn-table tr.tn-row-hi td{background:var(--accent-weak);color:var(--text-strong)}.tn-tables-2{display:flex;flex-wrap:wrap;gap:8px 22px}.tn-tables-2 .tn-table{flex:1 1 220px}.tn-src{font-family:var(--font-mono);font-size:var(--fs-2xs)!important;color:var(--text-dim)!important;margin:-4px 0 4px!important;word-break:break-word}.tn-note{font-size:var(--fs-xs)!important;color:var(--text-dim)!important}.tn-audio-note{font-size:var(--fs-sm);color:var(--text);background:var(--surface-sunk);border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:22px}.setup-modal{width:min(92vw,620px);max-width:620px;max-height:min(86vh,780px);display:flex;flex-direction:column}.setup-body{overflow-y:auto;display:flex;flex-direction:column;gap:20px;margin-bottom:16px;padding-right:6px}.setup-modal .new-model-list{max-height:none;overflow-y:visible;margin-bottom:0}.setup-eyebrow{font-family:var(--font-display);font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--accent);margin-bottom:8px}.setup-heating{margin-top:10px;margin-bottom:0}.setup-caption{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-dim);line-height:var(--lh-body);margin-top:8px}.setup-chips{display:flex;flex-wrap:wrap;gap:6px}.setup-chip{position:relative;padding:5px 12px;border-radius:var(--r-pill);border:1px solid var(--border);color:var(--text-dim);font-size:var(--fs-xs);white-space:nowrap;cursor:pointer;user-select:none;transition:border-color var(--dur-fast),background var(--dur-fast),color var(--dur-fast)}.setup-chip input[type=radio]{position:absolute;opacity:0;pointer-events:none}.setup-chip.active{border-color:var(--accent);background:var(--accent-weak);color:var(--accent);font-weight:var(--fw-semi)}.setup-backdrop,.disclaimer-backdrop{z-index:20000000}.presenting .dock,.presenting .starter-card{display:none}.present-hint{position:absolute;bottom:178px;right:14px;z-index:20;font-size:var(--fs-2xs);color:var(--text-dim);background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--r-pill);padding:5px 12px;backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass))}.present-hint kbd{font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r-xs);padding:0 4px}.narrow .dock{visibility:hidden;transition:transform var(--dur-med) var(--ease-out),visibility 0s var(--dur-med)}.narrow.drawer-inputs .dock.left,.narrow.drawer-outcomes .dock.right{visibility:visible;transition-delay:0s}.narrow .topbar{gap:10px;padding:8px 12px}.narrow .brand-text{display:none}.narrow .scenario-select{max-width:190px}.narrow .dock{width:min(380px,92vw);top:66px;bottom:14px;z-index:30;background:#080d1980;border-radius:var(--r-lg);padding:8px}.narrow .dock.left{transform:translate(calc(-100% - 20px))}.narrow .dock.right{transform:translate(calc(100% + 20px))}.narrow.drawer-inputs .dock.left,.narrow.drawer-outcomes .dock.right{transform:none}.drawer-scrim{position:absolute;inset:0;z-index:25;background:#080d1959}.drawer-tabs{display:flex;gap:4px}.thermal-legend{position:absolute;left:328px;top:76px;z-index:20;width:300px;padding:10px 12px 8px;background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--r-lg);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));box-shadow:var(--shadow-glass)}.presenting .thermal-legend,.narrow .thermal-legend{left:14px}.thermal-legend-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.thermal-legend-title{font-family:var(--font-display);font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--text-dim);display:inline-flex;align-items:center}.thermal-legend .segmented.thermal-legend-mode{margin-bottom:0;flex:0 0 auto}.thermal-legend-mode button{padding:4px 9px}.thermal-legend-bar{height:10px;border-radius:var(--r-pill);border:1px solid rgba(255,255,255,.12)}.thermal-legend-ticks{position:relative;height:16px;margin-top:4px;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text-dim)}.thermal-legend-tick{position:absolute;top:0;transform:translate(-50%);white-space:nowrap}.thermal-legend-tick:before{content:"";position:absolute;left:50%;top:-5px;width:1px;height:4px;background:var(--border-strong)}.compass{position:absolute;right:328px;top:76px;z-index:20;display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--r-pill);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));box-shadow:var(--shadow-glass);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--fs-2xs)}.presenting .compass,.narrow .compass{right:14px}.compass-fpv{opacity:.75;top:124px}.compass-svg{width:52px;height:52px;display:block}.compass-ring{transform-origin:32px 32px;transform:rotate(calc(-1 * var(--cam-az, 0deg)));transition:transform 80ms linear}.compass-ring circle{fill:none;stroke:var(--border-strong);stroke-width:1}.compass-ring text{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:11px;fill:var(--text-dim)}.compass-ring .compass-n{fill:var(--accent)}.compass-sun{fill:var(--heat-yellow);stroke:var(--ink-950);stroke-width:1.5}.compass-sun-down{fill:none;stroke:var(--text-dim);stroke-width:1;stroke-dasharray:2 1.5}.compass-readout{display:flex;flex-direction:column;line-height:1.25}.compass-num{color:var(--text);font-variant-numeric:tabular-nums}.room-hover{position:fixed;z-index:26;width:236px;padding:10px 12px;pointer-events:none;background:var(--ink-800);border:1px solid var(--border-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-lg);font-size:var(--fs-xs);color:var(--text)}.room-hover-name{font-family:var(--font-display);font-weight:var(--fw-bold);color:var(--text-strong);margin-bottom:6px}.room-hover-grid{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-family:var(--font-mono);font-size:var(--fs-2xs)}.room-hover-grid span{color:var(--text-dim)}.room-hover-grid b{font-weight:var(--fw-medium);color:var(--text-strong);font-variant-numeric:tabular-nums}.room-hover-bands{display:flex;gap:4px;margin-top:8px}.room-hover-bands .chip{padding:2px 7px;animation:none}.room-row.hovered{background:var(--surface-sunk)}.room-row-static{cursor:default}.room-note{font-size:var(--fs-2xs);color:var(--text-dim);font-weight:var(--fw-regular);margin-left:6px}.loft-block{margin-top:6px;padding-top:6px;border-top:1px dashed var(--border)}.loft-detail{font-size:var(--fs-2xs);color:var(--text-dim);padding:0 8px 4px}.export-wrap{position:relative}.export-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:170px;display:flex;flex-direction:column;padding:4px;background:var(--ink-800);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg)}.export-menu button{text-align:left;padding:7px 10px;border:none;border-radius:var(--r-xs);background:transparent;color:var(--text);cursor:pointer;font-size:var(--fs-xs)}.export-menu button:hover{background:var(--surface-sunk);color:var(--text-strong)}:root{--series-demand: #3987e5;--series-pv: #d95926;--series-import: #199e70}.echart{margin-top:10px}.echart-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.echart-title{font-family:var(--font-display);font-size:var(--fs-2xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--ls-eyebrow);color:var(--text-dim)}.echart-toggle{font-size:var(--fs-2xs);padding:2px 8px;border-radius:var(--r-pill);border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer}.echart-toggle:hover{color:var(--text);border-color:var(--border-strong)}.echart-svg{width:100%;height:auto;display:block;overflow:visible}.echart-grid{stroke:#9ac4ff24;stroke-width:1}.echart-axis,.echart-unit{font-family:var(--font-mono);font-size:10.5px;fill:var(--text-dim)}.echart-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.echart-line.echart-demand{stroke:var(--series-demand)}.echart-line.echart-pv{stroke:var(--series-pv)}.echart-line.echart-import{stroke:var(--series-import)}.echart-end{font-family:var(--font-sans);font-size:10px;fill:var(--text-dim);paint-order:stroke fill;stroke:#0d1425;stroke-width:3px;stroke-linejoin:round}.echart-crosshair{stroke:var(--border-strong);stroke-width:1}.echart-dot{stroke:var(--ink-800);stroke-width:2}.echart-dot.echart-demand{fill:var(--series-demand)}.echart-dot.echart-pv{fill:var(--series-pv)}.echart-dot.echart-import{fill:var(--series-import)}.echart-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:var(--fs-2xs);color:var(--text-dim)}.echart-key{display:inline-flex;align-items:center;gap:5px}.echart-swatch{display:inline-block;width:12px;height:2px;border-radius:1px}.echart-swatch.echart-demand{background:var(--series-demand)}.echart-swatch.echart-pv{background:var(--series-pv)}.echart-swatch.echart-import{background:var(--series-import)}.echart-tip{display:flex;flex-wrap:wrap;gap:2px 10px;min-height:16px;margin-top:4px;font-family:var(--font-mono);font-size:var(--fs-2xs);color:var(--text)}.echart-tip b{color:var(--text-strong)}.echart-tip-hint{color:var(--text-dim);font-family:var(--font-sans)}.echart-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:var(--fs-2xs)}.echart-table th,.echart-table td{text-align:right;padding:2px 4px;border-bottom:1px solid var(--border)}.echart-table th:first-child,.echart-table td:first-child{text-align:left}.echart-table th{color:var(--text-dim);font-weight:var(--fw-medium)}@media(prefers-reduced-motion:reduce){.row-pulse,.chip-cat1,.timeline-wash{animation:none}.delta-chip{animation:none;opacity:1}.section-body,.meter-fill,.compass-ring,.dock,.help-tip-bubble,.chip{transition:none}}.setup-chip:focus-within{outline:2px solid var(--focus-ring);outline-offset:2px}.help-tip:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.section-toggle{min-width:24px;min-height:24px}.starter-dismiss,.echart-toggle,.health-room-pill,.badge{min-height:24px}.help-tip{padding:0;border:0;background:none;color:inherit;font:inherit}.help-tip-bubble{text-align:left;white-space:normal}.row+.hint{margin:-2px 0 6px}.hem-metric .hint{margin:4px 0 0}.loft-block .hint{margin:0;padding:0 8px 4px}.shading-row .hint{margin:4px 0 0}.export-status{position:absolute;top:calc(100% + 6px);right:0;z-index:40;padding:6px 10px;white-space:nowrap;font-size:var(--fs-xs);color:var(--accent);background:var(--ink-800);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);pointer-events:none}.export-status:empty{padding:0;border:0;box-shadow:none}.hiw-header h1:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px;border-radius:var(--r-xs)}.room-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px}.room-title{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);color:var(--text-strong);line-height:1.2}.room-meta{font-size:var(--fs-2xs);color:var(--text-dim);margin-top:3px}.room-actions{display:flex;gap:6px;flex-shrink:0}.room-actions .btn{padding:4px 10px}.room-bands{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.room-bands .chip{padding:2px 7px;animation:none}.room-metrics{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:4px}.room-metric{display:flex;flex-direction:column;gap:1px;min-width:0;padding:6px 8px 7px;border-radius:var(--r-sm);background:var(--surface-sunk)}.room-metric-label{font-family:var(--font-display);font-size:9.5px;font-weight:var(--fw-bold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-dim)}.room-metric-value{font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums;color:var(--text-strong)}.room-metric-sub{font-size:var(--fs-2xs);line-height:1.35;color:var(--text-dim)}.room-sub{display:flex;align-items:center;gap:4px;margin:12px 0 4px;font-family:var(--font-display);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-dim)}.room-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums}.room-table th{padding:2px 4px;text-align:right;font-family:var(--font-sans);font-weight:var(--fw-medium);color:var(--text-dim)}.room-table td{padding:3px 4px;text-align:right;border-top:1px solid var(--border);color:var(--text)}.room-table th:first-child,.room-table td:first-child{text-align:left;font-family:var(--font-sans)}.room-table tr.coldest td{color:var(--text-strong)}.room-table .room-tag{margin-left:5px;font-family:var(--font-sans);color:var(--warn)}.room-opening{padding:6px 0;border-top:1px solid var(--border);font-size:var(--fs-2xs)}.room-opening:first-of-type{border-top:none}.room-opening-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.room-opening-name{font-size:var(--fs-xs);color:var(--text)}.room-opening-stats{margin-top:2px;font-family:var(--font-mono);color:var(--text-dim)}.room-opening-shade{display:flex;flex-direction:column;align-items:stretch;gap:2px;margin-top:4px;color:var(--text-dim)}.room-opening-shade .segmented{flex:0 0 auto;margin-bottom:0}.room-opening-shade .segmented button{padding:2px 7px;font-size:var(--fs-2xs)}.room-pick{display:flex;flex-direction:column;gap:6px}.room-pick-storey{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.room-pick-storey .view-eyebrow{padding:0 4px 0 0;text-shadow:none}.room-float{position:absolute;left:14px;bottom:134px;z-index:20;width:290px}.room-float .panel{padding:12px 14px}.room-float .room-metric-sub{display:none}.echart-line.echart-s1{stroke:var(--series-demand)}.echart-line.echart-s2{stroke:var(--series-pv)}.echart-line.echart-s3{stroke:var(--series-import)}.echart-dot.echart-s1{fill:var(--series-demand)}.echart-dot.echart-s2{fill:var(--series-pv)}.echart-dot.echart-s3{fill:var(--series-import)}.echart-swatch.echart-s1{background:var(--series-demand)}.echart-swatch.echart-s2{background:var(--series-pv)}.echart-swatch.echart-s3{background:var(--series-import)}.echart-guide{stroke:#f0c93e80;stroke-width:1;stroke-dasharray:3 3}.echart-guide-label{font-family:var(--font-sans);font-size:9px;fill:var(--text-dim)}.echart-now{stroke:var(--accent);stroke-opacity:.6;stroke-width:1;stroke-dasharray:2 3}.echart-row-now td{color:var(--accent)}.mini-chart{margin-top:6px}.narrow .view-hint{display:none}html.site,html.site body,html.site #root{height:auto;min-height:100%;overflow:auto}.site-shell{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(1200px 600px at 15% -10%,rgba(90,208,255,.1),transparent 60%),radial-gradient(900px 500px at 100% 0%,rgba(58,82,131,.25),transparent 60%),var(--surface-app);color:var(--text)}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;background:#080d19d9;border-bottom:1px solid var(--border);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass))}.site-brand{display:flex;align-items:center;gap:12px;color:var(--text-strong);text-decoration:none;min-width:0}.site-brand span{display:flex;flex-direction:column;line-height:1.15}.site-brand strong{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-sm);letter-spacing:var(--ls-tight)}.site-brand small{font-size:var(--fs-2xs);color:var(--text-dim)}.site-nav{display:flex;align-items:center;gap:14px}.site-link{color:var(--text-dim);text-decoration:none;font-size:var(--fs-sm);padding:6px 2px;border-bottom:1px solid transparent;transition:color var(--dur-fast),border-color var(--dur-fast)}.site-link:hover,.site-link.active{color:var(--text-strong);border-bottom-color:var(--accent)}.site-nav .btn,.hero-cta .btn,.cta-band .btn,.prose .btn{text-decoration:none;display:inline-flex;align-items:center}.btn-lg{padding:12px 22px;font-size:15px}.btn-danger{border-color:var(--bad);color:var(--bad)}.site-main{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:16px 24px 72px}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding:20px 24px 28px;border-top:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-dim)}.site-footer a{color:var(--text)}.site-footer-links{display:flex;gap:16px}.eyebrow{font-family:var(--font-display);font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--accent);margin-bottom:14px}.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;padding:44px 0 28px}.hero h1{font-family:var(--font-display);font-weight:var(--fw-black);font-size:clamp(30px,4.2vw,50px);line-height:1.06;letter-spacing:-.02em;color:var(--text-strong);margin-bottom:18px}.hero-lead{font-size:17px;line-height:1.6;color:var(--text-dim);max-width:52ch}.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.hero-note{margin-top:14px;font-size:var(--fs-xs);color:var(--text-dim)}.hero-media{margin:0}.hero-media img{display:block;width:100%;border-radius:var(--r-lg);border:1px solid var(--border);box-shadow:var(--shadow-glass)}.disclaimer-strip{margin:20px 0 48px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-sunk);color:var(--text-dim);font-size:var(--fs-sm);line-height:var(--lh-body)}.disclaimer-strip strong{color:var(--text)}.disclaimer-strip a,.prose a,.form-note a{color:var(--accent)}.site-section{margin-top:56px}.site-section h2{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:26px;letter-spacing:var(--ls-tight);color:var(--text-strong);margin-bottom:20px}.stories{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.story{overflow:hidden;background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--r-lg)}.story img{display:block;width:100%;aspect-ratio:16 / 10;object-fit:cover;border-bottom:1px solid var(--border)}.story-body{padding:16px 18px 20px}.story h3,.audience h3{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:17px;color:var(--text-strong);margin-bottom:8px}.story p,.audience p,.feature-grid li{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--text-dim)}.feature-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px 24px}.feature-grid li{padding:14px 16px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-sunk)}.feature-grid strong,.audience strong{color:var(--text)}.audience{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.site-section .lead{max-width:64ch;margin:0 0 14px;color:var(--text-dim);line-height:1.6}.site-section .lead strong{color:var(--text-strong)}.cta-band{margin-top:64px;padding:36px;text-align:center;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-panel)}.cta-band p{max-width:60ch;margin:0 auto 20px;color:var(--text-dim);line-height:var(--lh-body)}.prose{max-width:72ch;margin:24px auto 0;line-height:1.65}.prose h1{font-family:var(--font-display);font-weight:var(--fw-black);font-size:34px;letter-spacing:-.02em;color:var(--text-strong);margin-bottom:6px}.prose h2{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:19px;color:var(--text-strong);margin:28px 0 8px}.prose p,.prose li{color:var(--text);margin-bottom:10px}.prose ul{padding-left:20px}.prose blockquote{margin:16px 0;padding:14px 18px;border-left:3px solid var(--accent);background:var(--surface-sunk);border-radius:0 var(--r-md) var(--r-md) 0;color:var(--text)}.notes-page{max-width:880px;margin:24px auto 0}.notes-crumb{font-size:var(--fs-xs);color:var(--text-dim);margin:0 0 14px}.notes-title{font-family:var(--font-display);font-weight:var(--fw-black);font-size:34px;letter-spacing:-.02em;color:var(--text-strong);margin-bottom:6px}.notes-intro{color:var(--text);line-height:1.6;max-width:72ch;margin-bottom:18px}.hiw-page.notes-host{max-height:none;overflow:visible;width:100%;margin:0 0 32px}.notes-host .hiw-body{padding:8px 28px 28px}.prose h3{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:16px;color:var(--text-strong);margin:20px 0 6px}.prose code{font-family:var(--font-mono);font-size:.9em;color:var(--text-strong)}.prose .notes-table{margin:12px 0 18px;font-size:var(--fs-xs)}.prose .notes-table td,.prose .notes-table th{vertical-align:top}.muted{color:var(--text-dim);font-size:var(--fs-sm)}.draft-banner{padding:10px 14px;margin:20px 0;border:1px dashed var(--warn);border-radius:var(--r-md);color:var(--warn);font-size:var(--fs-sm)}.form{width:100%;max-width:600px;margin:0 auto 20px;padding:24px 26px;background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--r-lg);backdrop-filter:blur(var(--blur-glass));-webkit-backdrop-filter:blur(var(--blur-glass));box-shadow:var(--shadow-glass)}.form-title{font-family:var(--font-display);font-weight:var(--fw-black);font-size:28px;letter-spacing:-.02em;color:var(--text-strong);margin-bottom:8px}.form-sub{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--fs-2xs);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-dim);margin:18px 0 10px}.form-intro{color:var(--text-dim);font-size:var(--fs-sm);line-height:var(--lh-body);margin-bottom:18px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.form-field label{font-size:var(--fs-xs);color:var(--text-dim)}.form input:not([type=checkbox]),.form select,.form textarea,.feedback-dialog input:not([type=checkbox]),.feedback-dialog select,.feedback-dialog textarea{width:100%;padding:9px 11px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:#080d19b3;color:var(--text-strong);font-size:var(--fs-sm);font-family:inherit}.form textarea,.feedback-dialog textarea{resize:vertical;min-height:96px}.form input:focus-visible,.form select:focus-visible,.form textarea:focus-visible,.feedback-dialog textarea:focus-visible,.feedback-dialog select:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.form-check{display:flex;align-items:flex-start;gap:10px;margin:8px 0 12px;font-size:var(--fs-sm);line-height:1.5;color:var(--text);cursor:pointer}.form-check input{margin-top:4px;width:16px;height:16px;accent-color:var(--accent);flex-shrink:0}.form-note{font-size:var(--fs-xs);line-height:1.5;color:var(--text-dim);margin-bottom:8px}.form-error{color:var(--bad);font-size:var(--fs-sm);margin:6px 0}.form-ok{color:var(--ok);font-size:var(--fs-sm);margin:6px 0}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.form-actions-left{justify-content:flex-start;flex-wrap:wrap}.submission-list{list-style:none;padding:0}.submission-list li{padding:10px 0;border-top:1px solid var(--border);font-size:var(--fs-sm)}.submission-list p{margin-top:4px;white-space:pre-wrap}.account-page{margin-top:20px}.gate{position:fixed;inset:0;overflow:auto;display:grid;place-items:center;padding:24px;background:radial-gradient(900px 500px at 50% 0%,rgba(90,208,255,.1),transparent 60%),var(--surface-app);color:var(--text-dim);font-size:var(--fs-sm)}.gate-inner{width:100%;max-width:640px}.feedback-dialog{width:min(560px,92vw);max-width:none}.feedback-tabs{margin-bottom:14px}.feedback-tabs button{font-size:var(--fs-xs)}.auth-box{display:flex;justify-content:center;padding:32px 0}a.brand{text-decoration:none;color:inherit}@media(max-width:900px){.hero{grid-template-columns:1fr;gap:24px;padding-top:24px}.stories,.feature-grid{grid-template-columns:1fr}.audience{grid-template-columns:1fr 1fr}.site-brand strong{font-size:var(--fs-xs)}.site-nav .site-link{display:none}}@media(max-width:560px){.audience,.form-row{grid-template-columns:1fr}.site-main{padding:12px 16px 56px}}
