@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-BPWuI_CM.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-CTUnhTqV.woff) format("woff")}@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-D1zm99-P.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-BEypoZQd.woff) format("woff")}@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-DM9A4i1K.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BuRiwhxF.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-KNc67_qc.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-DH4-ctVk.woff) format("woff")}@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-BJItruJi.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-C1SKuNhx.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-BPWuI_CM.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-CTUnhTqV.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-n6oPB5VF.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-DSasf_jt.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-B97dYap6.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-OKGpH0gQ.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-BHf956ki.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-CyDjbWPV.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-CdZtFfYS.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-BU83cd9M.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-Cfrm0EKX.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DujcQJCN.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-D1zm99-P.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-BEypoZQd.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-By04ZBDJ.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-BwBTeJfm.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-rpgY82Kd.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-V_-bWxzT.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-DprGrCew.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-CgrnmiIU.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-BFLYOLbL.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-Dh0NORqx.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-jBHiQjEG.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-CJ5MtzOJ.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-DM9A4i1K.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BuRiwhxF.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-FZrtz_q-.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-BJUfoJTU.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-DHNi5J5O.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-D03elqKW.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-dAZVOL-H.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-bp4QDljZ.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-BGOKnPO6.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-ZykYOGKL.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:700;src:url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-BURdOHSV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-700-normal-DB8GrNuW.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:700;src:url(/assets/ibm-plex-sans-cyrillic-700-normal-KNc67_qc.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-700-normal-DH4-ctVk.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:700;src:url(/assets/ibm-plex-sans-greek-700-normal-BoLTwK2U.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-700-normal-v1ZS-zG7.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:700;src:url(/assets/ibm-plex-sans-vietnamese-700-normal-Blw1EEi-.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-700-normal-N1itUhP2.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:700;src:url(/assets/ibm-plex-sans-latin-ext-700-normal-IsFYRIfa.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-700-normal-D97e-FUQ.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:700;src:url(/assets/ibm-plex-sans-latin-700-normal-BiUoxtWd.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-700-normal-BmphL1LA.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-400-normal-DvQQgHTq.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CJUKFyLa.woff) format("woff")}@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-B3hZxag_.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-ZyMXPjaT.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-DvQQgHTq.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CJUKFyLa.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-BFiUPp6R.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DLynVohM.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-DxDDqVQb.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-uwM7KshN.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-Dm_PoFIZ.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-O6-GRVqx.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-6-AWF9yE.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-BZFL66GJ.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-DqTcxLwU.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-C8N-B5AP.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-D7hk9wLv.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-BifMsNUA.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-5raxGPWx.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-C5zKQMXr.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-rgB1DpUr.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DeXYNBV7.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{--bg: #eef1f5;--bg-deep: #e6eaef;--panel: #ffffff;--border: #d9dfe7;--border-strong: #c3ccd7;--text: #1a2330;--muted: #5b6b7d;--faint: #8b98a8;--ink: #16202e;--primary: #1c3d63;--primary-hover: #274f7e;--primary-ghost: #eaf1f8;--accent: #0d5c9e;--ok: #17753a;--ok-bg: #e2f2e6;--ok-border: #b9dfc4;--warn: #9a6a10;--warn-bg: #fbf1d8;--warn-border: #ecd9a4;--danger: #b3362a;--danger-bg: #fbe7e3;--danger-border: #f0c2b9;--info: #0d5c9e;--info-bg: #e6f0f9;--info-border: #bfd8ec;--radius: 8px;--radius-sm: 6px;--shadow: 0 1px 2px rgba(22, 32, 46, .06), 0 2px 8px rgba(22, 32, 46, .05);--shadow-lift: 0 2px 4px rgba(22, 32, 46, .07), 0 10px 28px rgba(22, 32, 46, .1);--font: "IBM Plex Sans", "Segoe UI", -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:radial-gradient(1200px 500px at 85% -10%,#f6f8fb 0%,transparent 60%),var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:#cfe0f0}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{height:10px;width:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px;border:2px solid var(--bg)}*::-webkit-scrollbar-track{background:transparent}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}h1{font-size:21px;margin:0 0 14px;font-weight:700;letter-spacing:-.015em;color:var(--ink)}h2{font-size:16px;margin:18px 0 8px;font-weight:650;letter-spacing:-.01em;color:var(--ink)}h3{font-size:13.5px;margin:12px 0 8px;font-weight:650;color:var(--ink);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.layout{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:linear-gradient(180deg,#1b2836,#16202e);color:#b9c6d4;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar .brand{padding:18px 18px 16px;font-weight:700;color:#fff;font-size:16px;letter-spacing:-.01em;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:10px}.sidebar .brand:before{content:"УТ";font-family:var(--mono);font-size:13px;font-weight:600;color:#dce9f5;background:linear-gradient(135deg,#27466e,#1c3d63);border:1px solid rgba(255,255,255,.14);width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;letter-spacing:0}.sidebar nav{flex:1;overflow-y:auto;padding:10px 8px}.sidebar a{display:block;padding:8px 12px;margin:1px 0;color:#b9c6d4;font-size:13.5px;font-weight:500;border-radius:7px;border-left:2px solid transparent;transition:background .12s ease,color .12s ease}.sidebar a:hover{background:#ffffff0f;color:#e8eef5;text-decoration:none}.sidebar a.active{background:#6096cd29;color:#fff;border-left-color:#6ea8dc}.sidebar a.dev{margin-top:10px;background:#4caf50;color:#0c2410;font-weight:600;border-left-color:#2e7d32}.sidebar a.dev:hover{background:#5dbf61;color:#0a1f0d}.sidebar a.dev.active{background:#6fcc73;color:#0a1f0d;border-left-color:#1f6b23}.sidebar .userbox{padding:14px 16px;border-top:1px solid rgba(255,255,255,.08);font-size:12.5px;color:#93a3b5}.sidebar .userbox strong{color:#fff;font-weight:600}.sidebar .userbox button{background:#ffffff0a;color:#b9c6d4;border:1px solid rgba(255,255,255,.14)}.sidebar .userbox button:hover{background:#ffffff1a;color:#fff}.content{flex:1;padding:22px 28px 40px;min-width:0}.dirbar{width:190px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);padding:14px 12px;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.dirbar.collapsed{width:44px;padding:12px 6px;align-items:center}.dstat{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;position:relative;overflow:visible;background:#fbfcfd}.dirbar .hint-box{left:auto;right:0;width:230px}.dstat:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--primary)}.dstat .v{font-size:16px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.dstat .l{font-size:10.5px;color:var(--muted);margin-top:1px}.dstat.ok:before{background:var(--ok)}.dstat.ok .v{color:var(--ok)}.dstat.warn:before{background:#c98a13}.dstat.danger:before{background:var(--danger)}.dstat.danger .v{color:var(--danger)}@media (max-width: 1200px){.dirbar{display:none}}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;margin-bottom:14px}.panel.tight{padding:0;overflow:hidden}table.tbl{width:100%;border-collapse:collapse;font-size:13.5px}.tbl th{text-align:left;font-weight:600;color:var(--muted);padding:10px 12px;border-bottom:1px solid var(--border-strong);white-space:nowrap;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;background:#f7f9fb;position:sticky;top:0;z-index:1}.tbl td{padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:top;font-variant-numeric:tabular-nums}.tbl tbody tr{transition:background .1s ease}.tbl tbody tr:hover td{background:#f5f8fb}.tbl tbody tr:last-child td{border-bottom:none}.tbl-wrap{overflow-x:auto}button,.btn{font:inherit;font-weight:500;cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:#fff;color:var(--text);padding:7px 14px;transition:background .12s ease,border-color .12s ease,box-shadow .12s ease,transform .06s ease;display:inline-block}button:hover,.btn:hover{background:#f2f5f9;border-color:#aeb9c6;text-decoration:none}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(180deg,#23486f,var(--primary));border-color:#17324f;color:#fff;font-weight:600;box-shadow:inset 0 1px #ffffff1f,0 1px 2px #16202e2e}.btn-primary:hover{background:linear-gradient(180deg,#2b567f,var(--primary-hover));border-color:#17324f}.btn-danger{background:var(--danger);border-color:#8f2a20;color:#fff;font-weight:600}.btn-danger:hover{background:#9c3025;border-color:#8f2a20}.btn-sm{padding:4px 10px;font-size:12.5px}.btn-lg{padding:10px 22px;font-size:15px;border-radius:var(--radius)}input,select,textarea{font:inherit;padding:7px 11px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:#fff;color:var(--text);width:100%;transition:border-color .12s ease,box-shadow .12s ease}input:hover,select:hover,textarea:hover{border-color:#aeb9c6}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0d5c9e1f;outline:none}textarea{resize:vertical;min-height:72px;line-height:1.5}input[type=checkbox]{accent-color:var(--primary)}label.fld{display:block;margin-bottom:12px}label.fld>span{display:block;font-size:11.5px;color:var(--muted);margin-bottom:4px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 18px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row-sb{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.badge{display:inline-block;padding:2.5px 9px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;letter-spacing:.01em;border:1px solid transparent}.badge.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-border)}.badge.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-border)}.badge.danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.badge.info{background:var(--info-bg);color:var(--info);border-color:var(--info-border)}.badge.muted{background:#eef1f5;color:var(--muted);border-color:#dde3ea}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:12px;margin-bottom:16px}.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px 12px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:box-shadow .15s ease,transform .15s ease}.stat:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}.stat:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--primary);opacity:.85}.stat .v{font-size:22px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.25}.stat .l{font-size:12px;color:var(--muted);margin-top:3px}.hint{position:relative;display:inline-block;margin-left:4px}.hint-btn{width:15px;height:15px;padding:0;line-height:13px;font-size:10px;font-weight:700;border-radius:50%;border:1px solid var(--border);background:var(--panel);color:var(--muted);cursor:pointer}.hint-btn:hover{color:var(--primary);border-color:var(--primary)}.hint-box{position:absolute;z-index:40;left:0;top:20px;width:260px;display:block;padding:8px 22px 8px 10px;font-size:12px;line-height:1.45;color:var(--ink);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lift);text-align:left;white-space:normal}.hint-close{position:absolute;top:2px;right:4px;border:none;background:none;color:var(--muted);font-size:14px;line-height:1;cursor:pointer;padding:2px}.stat{overflow:visible}.stat.danger:before{background:var(--danger)}.stat.danger .v{color:var(--danger)}.stat.warn:before{background:#c98a13}.stat.warn .v{color:var(--warn)}.stat.ok:before{background:var(--ok)}.stat.ok .v{color:var(--ok)}.tabs{display:flex;gap:2px;border-bottom:2px solid var(--border);margin-bottom:16px;overflow-x:auto}.tabs button{border:none;background:none;border-radius:6px 6px 0 0;padding:9px 14px;color:var(--muted);font-weight:600;font-size:13.5px;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-2px;box-shadow:none}.tabs button:hover{background:var(--primary-ghost);color:var(--primary)}.tabs button.active{color:var(--primary);border-bottom-color:var(--primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1018228c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;z-index:100;padding:48px 16px;animation:fade-in .14s ease}.modal{background:#fff;border-radius:12px;box-shadow:var(--shadow-lift),0 24px 64px #10182247;width:100%;max-width:640px;max-height:85vh;overflow-y:auto;padding:20px 22px;animation:modal-in .18s cubic-bezier(.2,.8,.3,1);border-top:3px solid var(--primary)}.modal h2{margin-top:0}@keyframes fade-in{0%{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(-10px) scale(.985)}}.kanban{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 16px;align-items:flex-start}.kcol{min-width:248px;width:248px;flex-shrink:0;background:var(--bg-deep);border:1px solid var(--border);border-radius:10px;padding:10px;transition:outline-color .12s ease,background .12s ease;outline:2px dashed transparent;outline-offset:-2px}.kcol h4{margin:2px 6px 10px;font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);display:flex;justify-content:space-between;font-weight:700}.kcol h4>span:last-child{background:#fff;border:1px solid var(--border);border-radius:999px;min-width:22px;height:18px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.kcol.drag-over{outline-color:var(--accent);background:#e2ecf5}.kcard{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;margin-bottom:8px;cursor:grab;box-shadow:var(--shadow);font-size:12.8px;transition:box-shadow .14s ease,transform .14s ease,border-color .14s ease}.kcard:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px);border-color:var(--border-strong)}.kcard:active{cursor:grabbing;transform:scale(.99)}.kcard .t{font-weight:600;margin-bottom:4px;color:var(--ink);line-height:1.35}.kcard .m{color:var(--muted);font-size:12px;margin-top:1px}.kcard .m strong{color:var(--ink);font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--muted);padding:40px 16px}.empty p{margin-top:0}.error-box{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border);border-left:3px solid var(--danger);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:12px}.notice{background:var(--warn-bg);color:#6d4d0e;border:1px solid var(--warn-border);border-left:3px solid #c98a13;border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:12px}.notice.info{background:var(--info-bg);color:#144a75;border-color:var(--info-border);border-left-color:var(--accent)}.muted{color:var(--muted)}.small{font-size:12.5px}.mono{font-family:var(--mono);font-size:12px;letter-spacing:-.01em}.skeleton{background:linear-gradient(90deg,#e7ebf0 25%,#f4f6f9,#e7ebf0 75%);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:5px;min-height:14px}@keyframes sk{0%{background-position:200% 0}to{background-position:-200% 0}}.progress{height:7px;background:#e2e7ee;border-radius:999px;overflow:hidden}.progress>div{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--primary));transition:width .4s ease}.quote{border-left:3px solid var(--border-strong);padding:6px 12px;color:var(--muted);font-size:12.5px;margin:6px 0;background:#f7f9fb;border-radius:0 6px 6px 0;font-style:italic}pre.diff{background:#131c28;color:#ccd8e4;padding:14px;border-radius:8px;overflow-x:auto;font-size:12px;font-family:var(--mono);line-height:1.55}.checklist li{list-style:none}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(900px 480px at 20% 0%,rgba(110,168,220,.1),transparent 60%),radial-gradient(700px 420px at 90% 100%,rgba(110,168,220,.06),transparent 55%),linear-gradient(165deg,#1b2836,#131c28);padding:16px}.login-card{background:#fff;padding:32px 34px 26px;border-radius:14px;width:380px;max-width:100%;box-shadow:0 24px 80px #00000073;border-top:3px solid var(--primary);animation:modal-in .3s cubic-bezier(.2,.8,.3,1)}.content>*{animation:page-in .2s ease both}@keyframes page-in{0%{opacity:0;transform:translateY(4px)}}@media (max-width: 900px){.layout{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.sidebar nav{display:flex;flex-wrap:wrap;padding:6px}.sidebar a,.sidebar a.active{border-left:none}.content{padding:14px}.stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:13px;font-weight:500;background:var(--panel);border:1px solid var(--border);color:var(--text);cursor:pointer;transition:border-color .12s ease,background .12s ease}.chip:hover{border-color:var(--border-strong);background:#fbfcfe}.chip.on{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 1px 3px #1c3d634d}.chip.on .chip-n{background:#ffffff38;color:#fff}.chip-n{min-width:20px;text-align:center;padding:1px 6px;border-radius:999px;background:#eef1f5;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.chip-dot,.group-tag i{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.group-tag{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;padding:3px 9px 3px 7px;border-radius:999px;background:#eef1f5;border:1px solid var(--border);color:var(--text)}.bulk-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin-bottom:10px;border-left:3px solid var(--primary);background:var(--primary-ghost)}.bulk-bar select{max-width:260px}.tbl tbody tr.row-sel td{background:var(--primary-ghost)}.kw-box{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.kw{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;padding:3px 6px 3px 10px;border-radius:999px;background:#eef4fa;border:1px solid var(--info-border);color:var(--info)}.kw button{border:none;background:none;padding:0 2px;cursor:pointer;color:var(--info);font-size:14px;line-height:1}.kw.zero{background:#f3f5f8;border-color:var(--border);color:var(--faint)}.balance{display:flex;height:24px;border-radius:6px;overflow:hidden;margin-bottom:14px}.balance-pro,.balance-con{display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:600;color:#fff;white-space:nowrap;transition:width .3s ease}.balance-pro{background:var(--ok)}.balance-con{background:var(--danger)}.pc-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pc-col{border-radius:var(--radius);padding:12px 14px}.pc-col h4{margin:0 0 10px;font-size:14px}.pc-col.pro{background:var(--ok-bg);border:1px solid var(--ok-border)}.pc-col.pro h4{color:var(--ok)}.pc-col.con{background:var(--danger-bg);border:1px solid var(--danger-border)}.pc-col.con h4{color:var(--danger)}.pc-item{padding:7px 0;border-top:1px solid rgba(22,32,46,.08)}.pc-item:first-of-type{border-top:none}@media (max-width: 900px){.pc-grid{grid-template-columns:1fr}}.dirfull{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:var(--bg, #eef1f5);display:flex;flex-direction:column}.dirfull-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:1}.dirfull-body{flex:1;overflow-y:auto;padding:18px 24px 40px}.dirfull-kpi{display:grid;gap:12px;margin-bottom:16px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.dirfull-grid{display:grid;gap:14px;margin-top:14px;grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}@media (max-width: 900px){.dirfull-top,.dirfull-body{padding-left:12px;padding-right:12px}.dirfull-grid{grid-template-columns:1fr}}.agent-wrap{display:grid;grid-template-columns:260px 1fr;gap:14px;align-items:start}.agent-side{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:12px;max-height:74vh;overflow-y:auto}.agent-chat-item{display:flex;align-items:center;gap:6px;padding:2px 0}.agent-chat-item.on{background:var(--primary-ghost);border-radius:var(--radius-sm)}.agent-chat-item .link-btn{flex:1;border:none;background:none;text-align:left;padding:5px 6px;color:var(--text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-chat-item .link-btn:hover{background:transparent;text-decoration:underline}.agent-drop{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);padding:14px 10px;text-align:center;font-size:12.5px;color:var(--muted);cursor:pointer;background:#fbfcfe}.agent-drop.over{border-color:var(--accent);background:var(--primary-ghost);color:var(--accent)}.agent-file{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 0;border-bottom:1px solid var(--border)}.agent-main{display:flex;flex-direction:column;min-width:0}.agent-msgs{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;height:60vh;overflow-y:auto;margin-bottom:10px}.agent-msg{margin-bottom:14px}.agent-msg .agent-role{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}.agent-msg.user .agent-text{background:var(--primary-ghost);border-left:3px solid var(--primary);padding:8px 12px;border-radius:var(--radius-sm)}.agent-text{white-space:pre-wrap;word-break:break-word;font-size:13.5px}.agent-tools{font-family:var(--mono);font-size:11.5px;color:var(--muted);background:#f7f9fb;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;margin-bottom:6px}.agent-tools summary{cursor:pointer}.agent-input textarea{width:100%;font:inherit;padding:10px 12px;margin-bottom:8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);resize:vertical}@media (max-width: 1000px){.agent-wrap{grid-template-columns:1fr}}.work-note{width:100%;font:inherit;font-size:12.5px;margin-top:6px;padding:5px 7px;border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical}.report .print-head,.report .print-foot{display:none}@media print{@page{size:A4 landscape;margin:12mm}.sidebar,.dirbar,.no-print,.tabs{display:none!important}.layout{display:block}.content{padding:0}body{background:#fff;font-size:11px}.report .print-head{display:block;margin-bottom:10px}.report .print-foot{display:block;margin-top:10px}.panel{box-shadow:none;border:1px solid #c9d2dc;margin-bottom:10px;break-inside:avoid;page-break-inside:avoid}.tbl th{background:#f2f5f8!important;-webkit-print-color-adjust:exact}.tbl td,.tbl th{padding:4px 6px;font-size:10.5px}.dirfull-kpi{grid-template-columns:repeat(5,1fr);gap:6px}.stat{padding:6px 8px}.stat .v{font-size:13px}a{color:inherit;text-decoration:none}}.sidebar a.matrix{margin-top:10px;background:#04120a;color:#29e04f;font-family:var(--mono);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;border:1px solid #12351f;border-left-color:#29e04f;text-shadow:0 0 6px rgba(41,224,79,.55);position:relative;overflow:hidden}.sidebar a.matrix:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(180deg,rgba(41,224,79,.1) 0 1px,transparent 1px 4px);pointer-events:none;opacity:.6}.sidebar a.matrix:before{content:"> ";color:#29e04f;opacity:.8}.sidebar a.matrix:hover{background:#07200f;color:#4dff74;text-shadow:0 0 10px rgba(77,255,116,.8)}.sidebar a.matrix.active{background:#08260f;color:#6bff8c;border-left-color:#6bff8c;box-shadow:inset 0 0 18px #29e04f2e}@media (prefers-reduced-motion: no-preference){.sidebar a.matrix{animation:matrix-glow 3.6s ease-in-out infinite}@keyframes matrix-glow{0%,to{text-shadow:0 0 6px rgba(41,224,79,.45)}50%{text-shadow:0 0 12px rgba(41,224,79,.85)}}}.rule-group{border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:8px;background:#fbfcfe}.rule-group.depth-1{border-left-color:var(--accent);background:#f7fafd}.rule-group.depth-2{border-left-color:#7fa6c8;background:#fafcfe}.rule-group.depth-3{border-left-color:#aec6da}.rule-term{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:6px;background:#fff}.rule-term select,.rule-term input{padding:5px 8px;font-size:13px}.deal-no{display:inline-block;margin-right:8px;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--primary);background:var(--primary-ghost);border:1px solid var(--border);border-radius:4px;padding:1px 6px;vertical-align:middle}.score-cell summary{cursor:pointer;list-style:none}.score-cell summary::-webkit-details-marker{display:none}.score-badge{display:inline-block;min-width:42px;text-align:center;font-weight:700;font-size:14px;padding:2px 8px;border-radius:5px;border:1px solid var(--border)}.score-badge.p-high{background:var(--ok-bg);color:var(--ok);border-color:var(--ok-border)}.score-badge.p-medium{background:var(--warn-bg);color:var(--warn);border-color:var(--warn-border)}.score-badge.p-low,.score-badge.p-unknown{background:#eef1f5;color:var(--muted)}.kw-btn{cursor:pointer;font:inherit}.kw-btn:disabled{cursor:default}.kw-btn:hover:not(:disabled):not(.on){border-color:var(--primary);color:var(--primary)}.kw-btn.on,.kw-btn.on:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.kw-btn.on b,.kw-btn.on span{color:inherit}.warn-text{color:var(--warn)}.score-why{margin-top:6px;padding:8px 10px;background:#f7f9fb;border:1px solid var(--border);border-radius:var(--radius-sm);max-width:420px}.score-why>div{margin-bottom:5px}.rule-params{margin-top:6px;padding:8px 10px;background:#f7f9fb;border:1px solid var(--border);border-radius:var(--radius-sm)}.rule-params select,.rule-params input{padding:4px 7px;font-size:12.5px}.ft-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 12px}.ft-grid label{display:flex;flex-direction:column;gap:3px;color:var(--muted)}.ft-grid input{padding:5px 8px;font-size:13px}
