@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2) format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-BasfLYem.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-C4iEst2y.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-BIZE56-Y.woff2) format("woff2"),url(/assets/inter-greek-500-normal-Xzm54t5V.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-CWCymEST.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-4D_pXhcN.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-B8X0CLgF.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-plRanbMR.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BZpKdvQh.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-700-normal-LO58E6JB.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-cyrillic-700-normal-CjBOestx.woff2) format("woff2"),url(/assets/inter-cyrillic-700-normal-DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2) format("woff2"),url(/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-greek-700-normal-C3JjAnD8.woff2) format("woff2"),url(/assets/inter-greek-700-normal-BUv2fZ6O.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2) format("woff2"),url(/assets/inter-vietnamese-700-normal-BZaoP0fm.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2) format("woff2"),url(/assets/inter-latin-ext-700-normal-TidjK2hL.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:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2) format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.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}:root{color-scheme:light;--ink: #241a1c;--mute: #6b5d60;--faint: #786a6c;--bg: #f7f4f3;--card: #ffffff;--soft: #fbf9f8;--line: #ece5e4;--line2: #ded3d2;--nav-bg: #2a1a1e;--nav-fg: #c6b4b6;--nav-fg-strong: #fbf6f6;--nav-faint: #a08f91;--nav-active-bg: #412a2f;--nav-active-bar: #c9a871;--nav-line: #3b272b;--hover: #faf5f5;--press: #f2e9e9;--brand: #7e323e;--brand-strong: #6d2b36;--brand-hover: #96414e;--brand-press: #652630;--brand-bg: #fbf1f2;--brand-line: #ecd4d7;--on-brand: #ffffff;--gold: #8a6a2f;--gold-bg: #fbf5e9;--gold-line: #e6d4ae;--ok: #2b6a4c;--ok-bg: #ebf4ef;--ok-line: #c2ddcd;--warn: #8a6a2f;--warn-bg: #fbf5e9;--warn-line: #e6d4ae;--bad: #be2e2e;--bad-bg: #fdeeee;--bad-line: #f3cccc;--info: #2f5f6b;--info-bg: #ecf3f5;--info-line: #c2dadf;--acc: var(--brand);--acc-bg: var(--brand-bg);--acc-line: var(--brand-line);--acc-hover: var(--brand-hover);--acc-press: var(--brand-press);--accs: var(--brand-bg);--warns: var(--warn-bg);--radius: 12px;--radius-control: 7px;--radius-sm: 5px;--shadow: 0 6px 24px rgba(42, 26, 30, .05);--sans: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", monospace;--sidebar-w: 252px;--content-max: 1500px;--row-h: 38px;--control-h: 36px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--ink: #f0e8e9;--mute: #ab9b9d;--faint: #9b8b8d;--bg: #140f10;--card: #1d1718;--soft: #241d1e;--line: #322829;--line2: #413436;--nav-bg: #140d0e;--nav-fg: #b3a2a4;--nav-fg-strong: #f7eff0;--nav-faint: #9e8d8f;--nav-active-bg: #332024;--nav-active-bar: #c9a871;--nav-line: #2a1d1f;--hover: #272021;--press: #312829;--brand: #dc8f9b;--brand-strong: #e9a9b3;--brand-hover: #e7a3ad;--brand-press: #c47a86;--brand-bg: #2e1a1e;--brand-line: #4e2d33;--on-brand: #1d1718;--gold: #d2b176;--gold-bg: #2a2114;--gold-line: #4d3e23;--ok: #6ec294;--ok-bg: #14271d;--ok-line: #2a4c38;--warn: #d2b176;--warn-bg: #2a2114;--warn-line: #4d3e23;--bad: #ef8b8b;--bad-bg: #2e1819;--bad-line: #562a2b;--info: #7cc0cd;--info-bg: #15272b;--info-line: #27474e;--shadow: 0 6px 24px rgba(0, 0, 0, .35)}}:root[data-theme=dark]{color-scheme:dark;--ink: #f0e8e9;--mute: #ab9b9d;--faint: #9b8b8d;--bg: #140f10;--card: #1d1718;--soft: #241d1e;--line: #322829;--line2: #413436;--nav-bg: #140d0e;--nav-fg: #b3a2a4;--nav-fg-strong: #f7eff0;--nav-faint: #9e8d8f;--nav-active-bg: #332024;--nav-active-bar: #c9a871;--nav-line: #2a1d1f;--hover: #272021;--press: #312829;--brand: #dc8f9b;--brand-strong: #e9a9b3;--brand-hover: #e7a3ad;--brand-press: #c47a86;--brand-bg: #2e1a1e;--brand-line: #4e2d33;--on-brand: #1d1718;--gold: #d2b176;--gold-bg: #2a2114;--gold-line: #4d3e23;--ok: #6ec294;--ok-bg: #14271d;--ok-line: #2a4c38;--warn: #d2b176;--warn-bg: #2a2114;--warn-line: #4d3e23;--bad: #ef8b8b;--bad-bg: #2e1819;--bad-line: #562a2b;--info: #7cc0cd;--info-bg: #15272b;--info-line: #27474e;--shadow: 0 6px 24px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-width:320px;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a,button,input,select,textarea,label{touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.02em;text-wrap:balance}h1{font-size:clamp(23px,2.2vw,29px);line-height:1.2;letter-spacing:-.035em}h2{font-size:14px;font-weight:700}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.num,.mono{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-weight:500}.num{text-align:right}.lab{font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--mute)}.mute{color:var(--mute)}.faint{color:var(--faint)}.ok{color:var(--ok)}.bad{color:var(--bad)}.warn{color:var(--warn)}.acc,.brand{color:var(--brand-strong)}.app{min-height:100%}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:var(--sidebar-w);display:flex;flex-direction:column;background:var(--nav-bg);color:var(--nav-fg);border-right:1px solid var(--nav-line)}.brand-block{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:18px 20px 16px;border-bottom:1px solid var(--nav-line)}.brand-block img{max-width:100%;height:auto}.logo-auto{display:inline-flex;align-items:center}.logo-auto .logo-toi{display:none}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .logo-auto .logo-sang{display:none}:root:not([data-theme=light]) .logo-auto .logo-toi{display:inline-block}}:root[data-theme=dark] .logo-auto .logo-sang{display:none}:root[data-theme=dark] .logo-auto .logo-toi{display:inline-block}.brand-name{font-size:13px;font-weight:700;line-height:1.3;color:var(--nav-fg-strong);letter-spacing:-.01em}.brand-caption{margin-top:3px;font-size:9.5px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--nav-faint)}.nav-caption{padding:22px 20px 8px;font-size:9.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--nav-faint)}.nav{display:grid;gap:3px;padding:0 10px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 11px;border:0;border-left:3px solid transparent;border-radius:var(--radius-control);color:var(--nav-fg);background:transparent;font-size:12.5px;transition:background .16s ease,color .16s ease}.nav-item:hover{color:var(--nav-fg-strong);background:var(--nav-active-bg);text-decoration:none}.nav-item.on{color:var(--nav-fg-strong);background:var(--nav-active-bg);border-left-color:var(--nav-active-bar);font-weight:600}.nav-icon{flex:0 0 auto;width:18px;height:18px;display:grid;place-items:center}.nav-icon svg{width:18px;height:18px}.nav-label{flex:1;min-width:0}.nav-num{font-family:var(--mono);font-size:10px;font-variant-numeric:tabular-nums;color:var(--nav-faint)}.nav-item.on .nav-num{color:var(--nav-active-bar)}.sidebar-foot{margin-top:auto;padding:14px 18px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--nav-line);font-size:11px;color:var(--nav-faint)}.sidebar-user{margin-bottom:8px;color:var(--nav-fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-foot button{height:30px;padding:0 10px;font-size:11px;color:var(--nav-fg);background:transparent;border-color:var(--nav-line)}.sidebar-foot button:hover:not(:disabled){color:var(--nav-fg-strong);background:var(--nav-active-bg);border-color:var(--nav-active-bg)}.main{min-height:100%;margin-left:var(--sidebar-w)}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px;padding:0 32px;background:var(--card);border-bottom:1px solid var(--line)}.crumbs{font-size:12px;color:var(--mute)}.crumbs strong{color:var(--ink);font-weight:650}.top-left,.top-right{display:flex;align-items:center;gap:12px}.avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--brand-line);background:var(--brand-bg);color:var(--brand-strong);font-size:11px;font-weight:700}.menu-btn{display:none;width:38px;height:38px;padding:0;place-items:center;border-color:transparent;background:transparent}.content,.page{max-width:var(--content-max);margin-inline:auto;padding:26px 32px 44px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:20px}.eyebrow{margin-bottom:6px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}.subtitle{margin:7px 0 0;font-size:12px;color:var(--mute)}.card,.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--line)}.panel-caption{margin-top:3px;font-size:10.5px;color:var(--mute)}.section{margin-top:14px}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(200px,1.1fr);gap:12px;margin-bottom:14px}.stat{display:flex;flex-direction:column;min-height:116px;padding:15px 16px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.stat-icon{flex:0 0 auto;width:28px;height:28px;display:grid;place-items:center;border-radius:var(--radius-control);color:var(--brand);background:var(--brand-bg)}.stat-icon svg{width:15px;height:15px}.stat-icon.ok{color:var(--ok);background:var(--ok-bg)}.stat-icon.warn{color:var(--warn);background:var(--warn-bg)}.stat-icon.info{color:var(--info);background:var(--info-bg)}.stat-value{margin-top:10px;font-size:clamp(18px,1.55vw,22px);font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap}.stat-note{margin-top:5px;font-size:10.5px;color:var(--mute)}.stat.lead{border-top:2px solid var(--brand)}.stat.lead .stat-value{color:var(--brand-strong)}.stat.lead.negative{border-top-color:var(--bad)}.stat.lead.negative .stat-value{color:var(--bad)}.task-links{display:grid;gap:7px;margin-top:10px}.task-link{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:600;color:var(--brand-strong)}.task-count{min-width:22px;padding:2px 5px;border-radius:var(--radius-sm);border:1px solid var(--warn-line);background:var(--warn-bg);color:var(--warn);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;text-align:center}.task-count.done{border-color:var(--ok-line);background:var(--ok-bg);color:var(--ok)}.chart{display:grid;gap:7px;padding:14px 18px 12px;overflow-x:auto}.chart-day{min-width:38px;display:flex;flex-direction:column;align-items:center;gap:7px}.bars{width:100%;height:76px;display:flex;align-items:flex-end;justify-content:center;gap:4px;padding:0 5px;border-bottom:1px solid var(--line)}.chart-bar{width:min(16px,34%);min-height:3px;border-radius:3px 3px 0 0;background:var(--brand);transition:height .2s ease}.chart-bar.b2{background:var(--ok)}.chart-bar.neg{background:var(--bad)}.chart-label{font-size:9.5px;color:var(--mute);white-space:nowrap}.legend{display:flex;align-items:center;gap:14px;font-size:10.5px;color:var(--mute)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:8px;height:8px;border-radius:3px;background:var(--brand)}.legend i.b2{background:var(--ok)}button,.btn{height:var(--control-h);padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line2);border-radius:var(--radius-control);background:var(--card);color:var(--ink);font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease}button:hover:not(:disabled),.btn:hover{border-color:var(--brand-line);background:var(--hover);color:var(--brand-strong);text-decoration:none}button:active:not(:disabled){background:var(--press)}button:disabled{opacity:.45;cursor:default}button.pri{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}button.pri:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover);color:var(--on-brand)}button.pri:active:not(:disabled){background:var(--brand-press);border-color:var(--brand-press)}button.danger{border-color:var(--bad-line);background:var(--bad-bg);color:var(--bad)}button.link{height:auto;padding:0;border:0;background:none;color:var(--brand-strong);font-size:inherit;font-weight:600}button.link:hover{background:none;color:var(--brand);text-decoration:underline}button.quick{height:34px;padding:0 11px;border-color:transparent;background:transparent;color:var(--mute);font-size:11px}button.quick.on{border-color:var(--brand-line);background:var(--brand-bg);color:var(--brand-strong)}input,select,textarea{height:var(--control-h);padding:0 10px;border:1px solid var(--line2);border-radius:var(--radius-control);background:var(--card);color:var(--ink);font-family:var(--sans);font-size:12px}input[type=number],input.num{font-family:var(--mono);text-align:right}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}input:focus,select:focus,textarea:focus{border-color:var(--brand)}label.field{display:flex;flex-direction:column;gap:5px}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.toolbar>label{display:flex;align-items:center;gap:7px}.toolbar .sep{width:1px;align-self:stretch;background:var(--line)}.range-label{padding-left:11px;border-left:1px solid var(--line);font-size:10px;font-weight:650;letter-spacing:.04em;color:var(--mute);white-space:nowrap}.scroll{overflow-x:auto}.scroll.tall{max-height:min(68vh,760px);overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}thead th{position:sticky;top:0;z-index:1;padding:10px 11px;background:var(--soft);border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--mute)}thead th.l,tbody td.l,tfoot td.l{text-align:left}thead th:first-child,tbody td:first-child,tfoot td:first-child{padding-left:18px}tbody td,tfoot td{height:var(--row-h);padding:9px 11px;border-bottom:1px solid var(--line);text-align:right;vertical-align:top;font-variant-numeric:tabular-nums}tbody tr{transition:background .14s ease}tbody tr:hover td{background:var(--hover)}tbody td:first-child{font-weight:600}tfoot td{border-top:1px solid var(--line2);border-bottom:0;background:var(--soft);font-weight:700}tr.need td,tr.need:hover td{background:var(--warn-bg)}tr.need td:first-child{box-shadow:none;border-left:3px solid var(--warn);padding-left:15px}tr.ret td{color:var(--mute)}tr.noprice td:first-child{border-left:3px solid var(--bad);padding-left:15px}.raw-line{font-size:11px;color:var(--faint);overflow-wrap:anywhere}.row-action{visibility:hidden}tr:hover .row-action,tr:focus-within .row-action{visibility:visible}@media (hover: none){button.row-action{visibility:visible;padding-block:10px}}.tag{display:inline-block;padding:1px 6px;border:1px solid var(--line2);border-radius:var(--radius-sm);font-size:11.5px;white-space:nowrap}.tag.mod{border-color:var(--warn-line);background:var(--warn-bg);color:var(--warn)}.tag.noprice{border-color:var(--bad-line);background:var(--bad-bg);color:var(--bad)}.state{display:inline-block;padding:2px 6px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.state.ok{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line)}.state.warn{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-line)}.state.bad{color:var(--bad);background:var(--bad-bg);border-color:var(--bad-line)}.state.info{color:var(--info);background:var(--info-bg);border-color:var(--info-line)}.state.acc{color:var(--brand-strong);background:var(--brand-bg);border-color:var(--brand-line)}.dash{color:var(--faint)}.bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:12px 15px;border:1px solid var(--line2);border-left-width:3px;border-radius:var(--radius-control);background:var(--card);font-size:12px;line-height:1.5}.bar>:first-child{flex:1 1 240px}.bar>:last-child{flex:0 0 auto;white-space:nowrap}.bar.err{border-color:var(--bad-line);border-left-color:var(--bad);background:var(--bad-bg);color:var(--bad)}.bar.warnbar{border-color:var(--warn-line);border-left-color:var(--warn);background:var(--warn-bg);color:var(--warn)}.bar.okbar{border-color:var(--ok-line);border-left-color:var(--ok);background:var(--ok-bg);color:var(--ok)}.bar.infobar{border-color:var(--info-line);border-left-color:var(--info);background:var(--info-bg);color:var(--info)}.sticky-note{position:sticky;top:68px;z-index:10}.empty{padding:30px 20px;text-align:center;color:var(--mute);font-size:12px}.empty strong{display:block;margin-bottom:4px;color:var(--ink);font-weight:650}.sk{height:10px;border-radius:var(--radius-sm);background:var(--soft)}.sk-table{padding:0}.sk-row{display:flex;gap:14px;align-items:center;height:var(--row-h);padding:0 18px;border-bottom:1px solid var(--line)}.sk-cell{height:9px;border-radius:var(--radius-sm);background:var(--soft)}.sk-row:first-child .sk-cell{background:var(--line)}.toast{position:fixed;right:22px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:50;max-width:min(400px,calc(100vw - 32px));padding:12px 15px;border:1px solid var(--brand-line);border-radius:var(--radius-control);background:var(--card);color:var(--ink);font-size:12px;opacity:0;transform:translateY(9px);pointer-events:none;transition:opacity .2s ease,transform .2s ease}.toast.on{opacity:1;transform:translateY(0)}@media (max-width: 1240px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.stats>.stat:last-child{grid-column:1 / -1;min-height:0}.stats>.stat:last-child .task-links{display:flex;flex-wrap:wrap;gap:16px}}@media (max-width: 1080px){:root{--sidebar-w: 220px}.topbar{padding:0 22px}.content,.page{padding:22px 22px 34px}.page-head{flex-direction:column;align-items:stretch}}@media (max-width: 860px){.sidebar{width:268px;transform:translate(-101%);transition:transform .22s ease}.sidebar.open{transform:translate(0)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;background:#0a122073;border:0;border-radius:0;padding:0}.main{margin-left:0}.menu-btn{display:grid}.topbar{min-height:58px;padding:0 14px;padding-top:env(safe-area-inset-top)}.content,.page{padding:18px 14px calc(28px + env(safe-area-inset-bottom))}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat{min-height:104px;padding:13px}.stat-value{font-size:18px}.stats>.stat:last-child{grid-column:1 / -1}.stats>.stat:last-child .task-links{display:grid;gap:8px}button,.btn,input,select,textarea{min-height:40px}button.link,.sidebar-foot button{min-height:0}input[type=checkbox],input[type=radio]{min-height:0;width:20px;height:20px}.tag{white-space:normal}.sticky-note{top:58px}.scroll.tall{max-height:none;overflow:visible}.toast{right:14px;left:14px;max-width:none}table.cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}table.cards tbody tr,table.cards tfoot tr{display:block;margin:10px;border:1px solid var(--line2);border-radius:var(--radius-control);background:var(--card)}table.cards tfoot tr{border-color:var(--brand-line);background:var(--brand-bg)}table.cards tbody tr.need{border-left:3px solid var(--warn);background:var(--warn-bg)}table.cards tbody tr.need td:first-child,table.cards tbody tr.noprice td:first-child{border-left:0;padding-left:11px}table.cards tbody td,table.cards tfoot td{display:flex;align-items:baseline;justify-content:space-between;gap:14px;height:auto;padding:8px 11px;border-bottom:1px solid var(--line);text-align:right}table.cards tbody tr:hover td{background:transparent}table.cards td:before{content:attr(data-label);flex:0 0 auto;font-weight:700;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);text-align:left}table.cards td.l{flex-direction:column;align-items:stretch;text-align:left;gap:5px}table.cards td:last-child{border-bottom:0}table.cards td[data-empty="1"]{display:none}table.matrix th:first-child,table.matrix td:first-child{position:sticky;left:0;z-index:1;background:var(--card);border-right:1px solid var(--line2)}table.matrix thead th:first-child{background:var(--soft);z-index:2}}@media (max-width: 420px){.stats{grid-template-columns:1fr}.stat{min-height:0}}
