@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/fraunces-vietnamese-300-normal-BrBjvxUu.woff2) format("woff2"),url(/assets/fraunces-vietnamese-300-normal-CmQ6M8D-.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:Fraunces;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/fraunces-latin-ext-300-normal-BvV3UMMg.woff2) format("woff2"),url(/assets/fraunces-latin-ext-300-normal-BAkGoidE.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:Fraunces;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/fraunces-latin-300-normal-CTWA4xHV.woff2) format("woff2"),url(/assets/fraunces-latin-300-normal-BJaf1pbq.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:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-vietnamese-500-normal-GOH_-EGq.woff2) format("woff2"),url(/assets/fraunces-vietnamese-500-normal-B-KbxExq.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:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-ext-500-normal-Z5DV8IzT.woff2) format("woff2"),url(/assets/fraunces-latin-ext-500-normal-BMcFk1Xs.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:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-500-normal-DnGCNyPD.woff2) format("woff2"),url(/assets/fraunces-latin-500-normal-BTR4KCeb.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}@layer theme{:root,:host{--font-mono:"IBM Plex Mono", monospace;--spacing:.25rem;--container-md:28rem;--default-font-family:"IBM Plex Sans", sans-serif;--default-mono-font-family:"IBM Plex Mono", monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.mx-auto{margin-inline:auto}.flex{display:flex}.w-56{width:calc(var(--spacing) * 56)}.w-full{width:100%}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.font-mono{font-family:IBM Plex Mono,monospace}.break-all{word-break:break-all}}:root{--frame:#eeebe3;--canvas:#faf8f3;--card:#fff;--ink:#1b1f1c;--muted:#585c56;--rule:#e2ddd2;--track:#eae6dc;--accent:#24443a;--accent-ink:#fff;--accent-soft:#e4ece6;--accent-text:#24443a;--metal:#86672a;--warn:#8f4e0e;--warn-soft:#f7eadb;--danger:#9b2c2c;--danger-soft:#f7e4e2;--ok:#2d6646;--ok-soft:#e2efe6;--sel:#e9e5dc;font-variant-numeric:tabular-nums;color:var(--ink);background:var(--frame);color-scheme:light;font-family:IBM Plex Sans,sans-serif;font-size:14px}:root[data-theme=dark]{--frame:#0d110f;--canvas:#141916;--card:#1a201c;--ink:#e8eae4;--muted:#a3aaa1;--rule:#2a322d;--track:#262d28;--accent:#a6cdb6;--accent-ink:#0f1512;--accent-soft:#1f2e26;--accent-text:#a6cdb6;--metal:#d1b57c;--warn:#e8a15c;--warn-soft:#33261a;--danger:#ee9a92;--danger-soft:#3a2120;--ok:#86c49e;--ok-soft:#1c2e23;--sel:#222a25;color-scheme:dark}*{box-sizing:border-box}body{margin:0;line-height:1.5}a{color:var(--accent-text)}button,input,textarea,select{font:inherit;color:inherit}button,.button,select,input{min-height:44px}button,.button{border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-weight:500;text-decoration:none;display:inline-flex}button:hover,.button:hover{background:var(--sel)}button:disabled{opacity:.6;cursor:wait}button.primary,.button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.danger-button{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}input,textarea,select{border:1px solid var(--rule);background:var(--canvas);border-radius:8px;max-width:100%;padding:8px 12px}textarea{resize:vertical;width:100%;font-family:var(--font-mono);font-size:12px}:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px}fieldset{border:0;margin:0;padding:0}h1,h2{font-family:Fraunces,Georgia,serif;font-weight:500;line-height:1.2}h1{overflow-wrap:anywhere;letter-spacing:-.01em;text-wrap:pretty;margin:0 0 8px;font-size:36px;font-weight:300}h2{margin:0;font-size:21px}h3{margin:0;font-size:16px;font-weight:600}p{margin:0}small{color:var(--muted);font-size:12px}code,time,.eyebrow,.meter,.chart-axis,.chart-value{font-family:IBM Plex Mono,monospace}.eyebrow{letter-spacing:.08em;color:var(--muted);font-size:11px}.muted{color:var(--muted)}.warn{color:var(--warn)}.ok{color:var(--ok)}.card{border:1px solid var(--rule);background:var(--card);border-radius:12px;min-width:0}.app-shell{--nav-width:224px;padding:8px 8px 8px var(--nav-width);min-height:100dvh}.app-shell.nav-collapsed{--nav-width:72px}.sidebar{width:var(--nav-width);flex-direction:column;padding:12px;display:flex;position:fixed;inset:0 auto 0 0}.brand-row{justify-content:space-between;align-items:center;padding:0 4px 16px;display:flex}.brand,.auth-brand{color:var(--ink);white-space:nowrap;font-family:Fraunces,Georgia,serif;font-size:24px;font-weight:500;text-decoration:none}.brand span,.auth-brand span{color:var(--metal);font-family:IBM Plex Mono,monospace;font-size:13px}.icon-button{width:44px;min-width:44px;height:44px;color:var(--muted);background:0 0;border:0;border-radius:8px;flex:0 0 44px;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.icon-button:hover{background:var(--sel)}.nav-caption{padding:4px 12px 8px}.sidebar nav{flex-direction:column;gap:4px;display:flex}.sidebar nav a{min-height:44px;color:var(--muted);border-radius:8px;align-items:center;gap:12px;padding:0 12px;text-decoration:none;display:flex}.sidebar nav a:hover{background:var(--sel)}.sidebar nav a.active{color:var(--ink);background:var(--sel);font-weight:600}.nav-badge{color:var(--warn);margin-left:auto}.owner{color:var(--ink);align-items:center;gap:12px;margin-top:auto;padding:12px 4px;text-decoration:none;display:flex}.avatar{width:32px;height:32px;color:var(--accent-ink);background:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-weight:600;display:grid}.owner-name{flex-direction:column;line-height:1.4;display:flex}.nav-collapsed .brand,.nav-collapsed .nav-caption,.nav-collapsed nav a span,.nav-collapsed .owner-name,.nav-collapsed .nav-badge{display:none}.nav-collapsed .sidebar{padding-inline:12px}.nav-collapsed .brand-row{padding-inline:0}.nav-collapsed .sidebar nav a{padding-inline:13px}.nav-collapsed .owner{justify-content:center}.canvas{border:1px solid var(--rule);background:var(--canvas);border-radius:14px;min-height:calc(100dvh - 16px)}.topbar{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:12px;min-height:61px;padding:8px 12px 8px 28px;display:flex}.topbar-title{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.topbar-actions{align-items:center;gap:12px;display:flex}.hub-state{white-space:nowrap}.theme-setting{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.theme-setting select{background:0 0;border:0;width:94px;padding-inline:4px}.bell{color:var(--ink);position:relative}.badge{background:var(--warn-soft);min-width:18px;height:18px;color:var(--warn);border-radius:9px;place-items:center;padding:0 4px;font-size:11px;font-weight:600;display:grid;position:absolute;top:2px;right:0}main{flex-direction:column;gap:36px;min-width:0;max-width:1260px;margin-inline:auto;padding:36px 40px 64px;display:flex}main:focus{outline:none}.briefing{flex-direction:column;gap:12px;max-width:800px;display:flex}.briefing h1{margin:0}.briefing>p:last-child,.page-heading p:last-child{color:var(--muted);font-size:15px}.section-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.section-heading .eyebrow{text-align:right}.text-link{align-items:center;gap:6px;min-height:44px;font-weight:500;text-decoration:none;display:inline-flex}.signature-grid{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:16px;display:grid}.signature{flex-direction:column;gap:12px;padding:20px;display:flex}.signature p{color:var(--muted)}.empty-tray{border:1px dashed var(--rule);color:var(--muted);border-radius:12px;align-items:center;gap:16px;padding:24px;display:flex}.empty-tray svg{color:var(--ok);flex-shrink:0}.empty-tray strong{color:var(--ink);font-weight:500}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:36px 24px;display:flex}.empty>svg{color:var(--metal)}.empty p{color:var(--muted)}.vitals-row{color:var(--ink);grid-template-columns:minmax(180px,1.25fr) minmax(0,2fr) 20px;align-items:center;gap:24px;padding:20px 24px;text-decoration:none;display:grid}.vitals-row+.vitals-row{border-top:1px solid var(--rule)}.vitals-row:hover{background:var(--sel)}.vitals-list{overflow:hidden}.room-identity{flex-direction:column;gap:4px;display:flex}.room-identity strong{overflow-wrap:anywhere;font-weight:600}.status{align-items:center;gap:8px;font-size:12px;display:inline-flex}.status-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:7px;height:7px}.meters{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.meter{color:var(--muted);flex-direction:column;gap:8px;font-size:11px;display:flex}.meter>div{justify-content:space-between;gap:4px;display:flex}.meter-track{background:var(--track);border-radius:2px;height:4px;display:block;overflow:hidden}.meter-fill{background:var(--metal);border-radius:2px;height:100%;transition:width .2s ease-out;display:block}.meter-fill.warning-fill{background:var(--warn)}.room-arrow{color:var(--muted)}.recommendation{border-top:1px solid var(--rule);color:var(--muted);align-items:center;gap:16px;padding-top:20px;display:flex}.recommendation p{flex:1}.recommendation button{font-size:12px}.page-heading{justify-content:space-between;align-items:center;gap:24px;display:flex}.page-heading>div{min-width:0}.page-heading h1{margin:8px 0}.page-heading>button{flex-shrink:0}.room-summary{flex-wrap:wrap;gap:12px;display:flex}.rooms-head,.rooms-row{grid-template-columns:minmax(160px,1.4fr) .7fr .7fr minmax(130px,1fr) .7fr minmax(140px,1fr);align-items:center;gap:12px;padding:16px 20px;display:grid}.rooms-head{border-bottom:1px solid var(--rule)}.rooms-row+.rooms-row{border-top:1px solid var(--rule)}.room-name{color:var(--ink);align-items:center;gap:10px;min-width:0;min-height:44px;text-decoration:none;display:flex}.room-name strong{overflow-wrap:anywhere}.room-name svg{color:var(--muted);flex-shrink:0}.os-label{text-transform:capitalize}.os-label small{display:block}.connection-label,.rooms-row time{color:var(--muted);font-size:12px}.actions{flex-wrap:wrap;gap:8px;display:flex}.rooms-row .actions button{padding-inline:12px;font-size:12px}.host-info{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:20px 24px;display:grid}.host-info dt{font-family:var(--font-mono);color:var(--muted);margin-bottom:6px;font-size:11px}.host-info dd{overflow-wrap:anywhere;margin:0}.charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:-28px;display:grid}.chart{padding:20px}.chart h2{font-size:18px}.chart-value{color:var(--metal);font-size:14px}.chart svg{width:100%;height:auto;display:block}.chart-grid{stroke:var(--rule);stroke-width:1px}.chart-line{stroke:var(--metal)}.chart-point{fill:var(--metal)}.chart-axis{color:var(--muted);justify-content:space-between;gap:8px;font-size:10px;display:flex}.room-tabs [role=tablist]{border-bottom:1px solid var(--rule);flex-wrap:wrap;gap:4px;margin-bottom:20px;display:flex}.room-tabs [role=tab]{border:0;border-radius:8px 8px 0 0;font-size:13px}.room-tabs [role=tab][data-state=active]{background:var(--accent-soft);color:var(--accent-text);box-shadow:inset 0 -2px var(--accent)}.dialog-overlay{background:var(--ink);opacity:.3;z-index:20;position:fixed;inset:0}.dialog-content{z-index:21;background:var(--card);border:1px solid var(--rule);width:min(560px,100% - 32px);max-height:calc(100dvh - 40px);box-shadow:0 24px 48px -24px var(--ink);border-radius:12px;flex-direction:column;gap:20px;padding:28px;display:flex;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.dialog-content h2{padding-right:24px}.dialog-content>p{color:var(--muted)}.dialog-close{position:absolute;top:8px;right:8px}.fingerprint{overflow-wrap:anywhere;background:var(--sel);border-radius:8px;padding:16px;display:block}.auth-page{justify-content:center;gap:24px;max-width:500px;min-height:100dvh;padding:32px 24px}.auth-brand{text-align:center;font-size:32px}.auth-page>section{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:32px}.auth-page h1{margin-bottom:24px;font-size:28px}.auth-page p{color:var(--muted)}.auth-page button[type=submit]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.auth-page input{background:var(--canvas)}.auth-page section>p{margin-bottom:20px}[role=alert]{color:var(--danger)}.notice{background:var(--danger-soft);border-radius:8px;padding:12px}.reconnect-notice{color:var(--warn)}.bottom-tabs{display:none}.skip-link{z-index:30;background:var(--card);color:var(--ink);padding:12px;position:fixed;top:-80px;left:16px}.skip-link:focus{top:16px}@media(min-width:640px)and (max-width:1279px){.app-shell{--nav-width:200px}main{padding:28px}.rooms-head,.rooms-row{grid-template-columns:minmax(150px,1.4fr) .7fr minmax(130px,1fr) .7fr 1fr}.rooms-head>:nth-child(3),.rooms-row>.connection-label{display:none}.rooms-row .actions{flex-direction:column}}@media(min-width:640px)and (max-width:960px){.rooms-head,.rooms-row{grid-template-columns:minmax(130px,1fr) minmax(100px,1fr) 1fr}.rooms-head>:nth-child(2),.rooms-head>:nth-child(5),.rooms-row .os-label,.rooms-row time,.hub-state{display:none}.vitals-row{grid-template-columns:1fr;gap:16px}.room-arrow{display:none}}@media(max-width:639px){.app-shell{padding:0 0 80px}.sidebar{display:none}.canvas{border:0;border-radius:0;min-height:calc(100dvh - 80px)}.topbar{min-height:64px;padding:8px 16px}.topbar-actions{gap:4px}.hub-state,.theme-setting>svg{display:none}.theme-setting select{width:85px}main{gap:28px;padding:24px 20px 32px}h1{font-size:28px}h2{font-size:19px}.briefing{gap:12px}.briefing .eyebrow{font-size:10px}.briefing>p:last-child{font-size:14px}.section-heading{gap:8px;margin-bottom:12px}.section-heading .eyebrow{font-size:10px}.signature{padding:16px}.vitals-row{flex-direction:column;align-items:stretch;gap:12px;padding:16px;display:flex}.room-identity{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;display:grid}.room-identity small{grid-column:1/-1;font-size:11px}.room-arrow{display:none}.meters{gap:12px}.recommendation{flex-direction:column;align-items:flex-start}.page-heading{flex-wrap:wrap;align-items:flex-start;gap:16px}.page-heading p:last-child{font-size:14px}.room-summary{gap:8px;font-size:10px}.rooms-table{background:0 0;border:0;flex-direction:column;gap:12px;display:flex}.rooms-head{display:none}.rooms-row{border:1px solid var(--rule);background:var(--card);border-radius:12px;grid-template-columns:1fr auto;gap:8px;padding:12px 16px 16px;display:grid}.rooms-row+.rooms-row{border-top:1px solid var(--rule)}.room-name{grid-column:1/-1}.room-name svg:last-child{margin-left:auto}.os-label{font-size:12px}.os-label small{display:inline}.connection-label{text-align:right}.rooms-row time{text-align:right;font-size:10px}.rooms-row .actions{grid-column:1/-1;margin-top:8px}.host-info{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:16px}.charts{grid-template-columns:1fr;gap:16px;margin-top:-16px}.chart{padding:16px}.chart h2{font-size:17px}.room-tabs [role=tab]{padding-inline:10px;font-size:12px}.dialog-content{padding:24px 20px}.bottom-tabs{z-index:10;padding:6px 4px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--rule);background:var(--card);grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;inset:auto 0 0}.bottom-tabs a{min-height:52px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;text-decoration:none;display:flex}.bottom-tabs a.active{color:var(--accent-text);font-weight:600}.auth-page{padding:24px 16px}.auth-page>section{padding:24px}}@media(prefers-reduced-motion:reduce){.meter-fill{transition:none}}.rooms-table{border-spacing:0;width:100%;display:block}.rooms-table thead,.rooms-table tbody{display:block}.rooms-head th{text-align:left;font-weight:400}.rooms-row td{min-width:0}@media(max-width:639px){.rooms-table thead{display:none}.rooms-table tbody{flex-direction:column;gap:12px;display:flex}.room-name-cell,.room-actions-cell{grid-column:1/-1}.last-seen-cell{text-align:right}}
