@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}:root{--brand: #123a6b;--brand-600: #1b4f8f;--brand-700: #0e2f57;--brand-900: #0b1f3a;--accent: #0ea5a4;--positive: #10b981;--warning: #f59e0b;--danger: #ef4444;--info: #3b82f6;--bg: #f4f6fb;--surface: #ffffff;--surface-2: #f8fafc;--border: #e4e9f2;--text: #0f1b2d;--text-muted: #5b6b82;--text-soft: #8493a8;--sidebar-bg: #0b1f3a;--sidebar-text: #aebdd4;--sidebar-active: #ffffff;--sidebar-active-bg: rgba(255, 255, 255, .08);--shadow-sm: 0 1px 2px rgba(16, 30, 54, .06);--shadow: 0 4px 16px rgba(16, 30, 54, .08);--shadow-lg: 0 12px 32px rgba(16, 30, 54, .14);--radius: 12px;--radius-sm: 8px;--radius-lg: 18px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}[data-theme=dark]{--bg: #0a1524;--surface: #101f34;--surface-2: #0d1a2c;--border: #1e3252;--text: #e8eef7;--text-muted: #9fb0c8;--text-soft: #6f829e;--sidebar-bg: #0a1728;--sidebar-text: #93a6c2;--sidebar-active: #ffffff;--sidebar-active-bg: rgba(255, 255, 255, .1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow: 0 6px 20px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .5)}*{box-sizing:border-box}.brand-logo{max-width:100%;width:auto;align-self:flex-start;flex:0 0 auto;object-fit:contain}.brand-logo-light{filter:brightness(0) invert(1)}html,body,#root{height:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;flex-shrink:0;background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar-brand{padding:22px 20px 18px}.sidebar-nav{flex:1;padding:8px 12px;overflow-y:auto}.sidebar-nav a{display:flex;align-items:center;gap:11px;padding:10px 12px;margin-bottom:3px;border-radius:var(--radius-sm);color:var(--sidebar-text);font-weight:500;font-size:13.5px;transition:background .15s,color .15s}.sidebar-nav a:hover{background:#ffffff0d;color:#fff}.sidebar-nav a.active{background:var(--sidebar-active-bg);color:var(--sidebar-active)}.sidebar-nav a .ic{width:18px;text-align:center;opacity:.9}.sidebar-foot{padding:14px 16px;border-top:1px solid rgba(255,255,255,.08);font-size:12px}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:62px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 26px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.topbar h1{font-size:17px}.topbar-left{display:flex;align-items:center;gap:12px}.topbar-right{display:flex;align-items:center;gap:14px}.icon-btn.hamburger{display:none}.lang-switch{position:relative;display:inline-flex;align-items:center;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px;height:34px}.lang-switch button{position:relative;z-index:1;border:none;background:transparent;width:34px;height:26px;font-size:11.5px;font-weight:700;letter-spacing:.02em;color:var(--text-muted);border-radius:999px;cursor:pointer;transition:color .22s}.lang-switch button.active{color:#fff}.lang-switch .lang-thumb{position:absolute;top:3px;left:3px;width:34px;height:26px;border-radius:999px;background:var(--brand-600);box-shadow:0 1px 3px #123a6b59;transition:transform .26s cubic-bezier(.4,0,.2,1)}.lang-switch.en .lang-thumb{transform:translate(34px)}.lang-switch.lang-light{background:#ffffff1f;border-color:#ffffff2e}.lang-switch.lang-light button{color:#ffffffb3}.lang-switch.lang-light button.active{color:#fff}.lang-switch.lang-light .lang-thumb{background:#ffffff38}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#060e1a80;z-index:55;animation:drawer-fade .2s ease}.content{padding:26px;max-width:1360px;width:100%;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:20px}.card-head{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-head h3{font-size:15px}.grid{display:grid;gap:18px}.grid-kpi{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.report-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.report-filters .field{margin-bottom:0}.report-card{transition:border-color .15s,box-shadow .15s}.report-card:hover{border-color:var(--brand-600);box-shadow:var(--shadow)}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent-bar, var(--brand-600))}.kpi-label{font-size:12.5px;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.kpi-value-row{display:flex;align-items:baseline;gap:10px;margin-top:8px;flex-wrap:wrap}.kpi-value{font-size:27px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi-sub{font-size:12.5px;color:var(--text-soft);margin-top:4px}.kpi-spark{margin-top:10px;margin-bottom:-4px}.kpi-spark .spark{width:100%;height:30px;display:block}.delta{display:inline-flex;align-items:center;gap:2px;font-size:12px;font-weight:700;padding:2px 7px;border-radius:999px;font-variant-numeric:tabular-nums}.delta.up{background:#10b98121;color:#0f9d69}.delta.down{background:#ef444421;color:#e0483f}.skeleton{position:relative;overflow:hidden;background:var(--surface-2)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:translate(-100%);animation:shimmer 1.3s infinite}[data-theme=dark] .skeleton:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent)}@keyframes shimmer{to{transform:translate(100%)}}.table-wrap{overflow-x:auto}table.dt{width:100%;border-collapse:collapse;font-size:13px}table.dt th{text-align:left;padding:11px 14px;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600;border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;position:sticky;top:0;z-index:2}table.dt th .th-inner{display:inline-flex;align-items:center;gap:5px}table.dt th.num .th-inner{flex-direction:row-reverse}table.dt th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}table.dt th.sortable:hover{color:var(--text)}table.dt th .th-sort{display:inline-flex;opacity:.5}table.dt th.sortable:hover .th-sort{opacity:1}table.dt td{padding:11px 14px;border-bottom:1px solid var(--border);white-space:nowrap}table.dt tbody tr:hover{background:var(--surface-2)}table.dt td.num,table.dt th.num{text-align:right;font-variant-numeric:tabular-nums}.money{font-variant-numeric:tabular-nums;font-weight:600}.money.pos{color:var(--positive)}.money.neg{color:var(--danger)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;line-height:1.4;border:1px solid transparent}.badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge.paid{background:#10b9811f;color:#0f9d69}.badge.advanced{background:#3b82f61f;color:#2f6fdb}.badge.overdue{background:#ef444421;color:#d33}.badge.partial{background:#f59e0b24;color:#c67c06}.badge.pending{background:#8b93a829;color:#6b7890}.badge.gray{background:var(--surface-2);color:var(--text-muted);border-color:var(--border)}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;border:1px solid var(--border);background:var(--surface);color:var(--text);transition:all .15s}.btn:hover{border-color:var(--brand-600)}.btn-primary{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.btn-primary:hover{background:var(--brand-700)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-ghost{background:transparent;border-color:transparent}.btn-sm{padding:6px 11px;font-size:12.5px}.btn:disabled{opacity:.55;cursor:not-allowed}.field{margin-bottom:14px}.field label{display:block;font-size:12.5px;font-weight:600;color:var(--text-muted);margin-bottom:6px}.input,.select{width:100%;padding:9px 12px;font-size:13.5px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.input:focus,.select:focus{outline:none;border-color:var(--brand-600);box-shadow:0 0 0 3px #1b4f8f1f}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#060e1a8c;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-head{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-body{padding:22px}.modal-foot{padding:16px 22px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.page-head h2{font-size:21px}.page-head .sub{color:var(--text-muted);font-size:13.5px;margin-top:2px}.row{display:flex;gap:10px;align-items:center}.spacer{flex:1}.muted{color:var(--text-muted)}.soft{color:var(--text-soft)}.mt{margin-top:18px}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--brand-600);animation:spin .7s linear infinite}.center-screen{display:flex;align-items:center;justify-content:center;min-height:100vh}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;padding:52px 20px;color:var(--text-soft)}.empty-art{color:var(--border);margin-bottom:14px}.empty-text{font-size:14px;font-weight:600;color:var(--text-muted)}.empty-hint{font-size:12.5px;margin-top:6px;color:var(--text-soft)}.avatar{width:34px;height:34px;border-radius:50%;background:var(--brand-600);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.icon-btn{width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.icon-btn:hover{color:var(--text);border-color:var(--brand-600)}.toast{position:fixed;bottom:24px;right:24px;z-index:200;display:flex;align-items:center;gap:10px;background:var(--surface);color:var(--text);padding:12px 16px 12px 13px;font-size:13.5px;font-weight:500;border:1px solid var(--border);border-left:4px solid var(--positive);border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:toast-in .32s cubic-bezier(.2,.8,.3,1)}.toast.err{border-left-color:var(--danger)}.toast-ic{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;flex-shrink:0;background:#10b98124;color:var(--positive)}.toast.err .toast-ic{background:#ef444424;color:var(--danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.login-brandside{background:radial-gradient(900px 500px at 85% -10%,rgba(14,165,164,.3),transparent 60%),radial-gradient(circle at 1px 1px,rgba(255,255,255,.06) 1px,transparent 0) 0 0 / 24px 24px,linear-gradient(150deg,var(--brand-900),var(--brand) 62%,var(--brand-600));color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-brandside .tagline{font-size:30px;font-weight:700;line-height:1.25;letter-spacing:-.02em;max-width:440px}.login-brandside .muted2{color:#ffffffb3;max-width:420px;margin-top:14px}.login-formside{position:relative;display:flex;align-items:center;justify-content:center;padding:40px;background:var(--bg)}.login-card{width:100%;max-width:380px}.login-card h2{font-size:22px;margin-bottom:6px}@media(max-width:860px){.login-wrap{grid-template-columns:1fr}.login-brandside{display:none}}@media(max-width:900px){.sidebar{position:fixed;left:0;top:0;z-index:60;transform:translate(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1)}.sidebar.open{transform:translate(0);box-shadow:var(--shadow-lg)}.icon-btn.hamburger{display:inline-flex}.content{padding:18px 15px}.topbar{padding:0 14px}.topbar-right .avatar+div{display:none}.page-head h2{font-size:19px}.drawer{width:100%}}.chart-tip{background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);padding:10px 12px;min-width:140px}.chart-tip-label{font-size:12px;font-weight:700;color:var(--text);margin-bottom:7px}.chart-tip-row{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:2px 0}.chart-tip-row .dot{width:9px;height:9px;border-radius:3px;flex-shrink:0}.chart-tip-row .k{color:var(--text-muted)}.chart-tip-row .v{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}.recharts-default-tooltip{border-radius:10px!important;border:1px solid var(--border)!important;background:var(--surface)!important}@keyframes g2-wave-in{0%{clip-path:circle(0% at 0% 100%)}to{clip-path:circle(150% at 0% 100%)}}html.theme-wave::view-transition-old(root),html.theme-wave::view-transition-new(root){animation:none;mix-blend-mode:normal}html.theme-wave::view-transition-old(root){z-index:0}html.theme-wave::view-transition-new(root){z-index:1;animation:g2-wave-in .62s cubic-bezier(.4,0,.2,1) forwards}@media(prefers-reduced-motion:reduce){html.theme-wave::view-transition-new(root){animation:none}}.pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--border);font-size:12.5px}.pagination-page{font-weight:600;padding:0 6px;font-variant-numeric:tabular-nums}table.dt tr.clickable{cursor:pointer}table.dt tr.clickable:hover{background:var(--surface-2)}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#060e1a80;z-index:120;display:flex;justify-content:flex-end;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:drawer-fade .2s ease}@keyframes drawer-fade{0%{opacity:0}to{opacity:1}}.drawer{width:480px;max-width:94vw;height:100%;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:drawer-slide .28s cubic-bezier(.4,0,.2,1)}@keyframes drawer-slide{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.drawer-head h3{font-size:17px}.drawer-body{flex:1;overflow-y:auto;padding:20px 22px}.drawer-foot{padding:14px 22px;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end}.drawer-section{margin-top:22px}.drawer-section:first-child{margin-top:0}.drawer-section-head{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:10px}.deflist{margin:0}.deflist-row{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px dashed var(--border)}.deflist-row:last-child{border-bottom:none}.deflist dt{color:var(--text-muted);font-size:13px}.deflist dd{margin:0;font-weight:600;font-size:13px;text-align:right;font-variant-numeric:tabular-nums}.mini-table{width:100%;border-collapse:collapse;font-size:12.5px}.mini-table th{text-align:left;color:var(--text-muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.03em}.mini-table td{padding:7px 8px;border-bottom:1px solid var(--border)}.mini-table td.num,.mini-table th.num{text-align:right;font-variant-numeric:tabular-nums}.mini-table tr:last-child td{border-bottom:none}.drawer-hero{background:linear-gradient(135deg,var(--brand-900),var(--brand-600));color:#fff;border-radius:var(--radius);padding:18px 20px;margin-bottom:4px}.drawer-hero .lbl{font-size:11.5px;opacity:.8;text-transform:uppercase;letter-spacing:.05em}.drawer-hero .val{font-size:28px;font-weight:700;margin-top:4px;letter-spacing:-.02em}
