@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");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: #06070c;--bg-2: #0a0c14;--surface: rgba(255, 255, 255, .026);--surface-2: rgba(255, 255, 255, .045);--hair: rgba(255, 255, 255, .08);--hair-2: rgba(255, 255, 255, .14);--text: #eceef5;--muted: #9aa1b4;--faint: #7c8499;--accent: #ff2d6b;--accent-2: #ff5b3a;--violet: #7c5cff;--mint: #25d9a3;--amber: #ffb020;--sky: #38bdf8;--grad-accent: linear-gradient(135deg, #ff2d6b 0%, #ff5b3a 100%);--grad-accent-btn: linear-gradient(135deg, #d11a5e 0%, #c2371f 100%);--grad-violet: linear-gradient(135deg, #7c5cff 0%, #38bdf8 100%);--glow-accent: 0 0 0 1px rgba(255, 45, 107, .35), 0 8px 30px -8px rgba(255, 45, 107, .5);--shadow: 0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px -12px rgba(0,0,0,.6);--radius: 18px;--font: "Inter Variable", -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv11","ss01"}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(60% 50% at 12% -8%,rgba(124,92,255,.18),transparent 60%),radial-gradient(50% 45% at 100% 0%,rgba(255,45,107,.16),transparent 55%),radial-gradient(60% 60% at 50% 120%,rgba(56,189,248,.1),transparent 60%),var(--bg)}a{color:inherit;text-decoration:none}::selection{background:#ff2d6b4d}.num{font-variant-numeric:tabular-nums;letter-spacing:-.01em}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:20px}::-webkit-scrollbar-thumb:hover{background:#ffffff2e}.app{display:grid;grid-template-columns:256px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;display:flex;flex-direction:column;background:linear-gradient(180deg,#ffffff09,#ffffff03);border-right:1px solid var(--hair);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:11px;padding:6px 8px 24px}.brand .mark{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--grad-accent);box-shadow:var(--glow-accent)}.brand .name{font-weight:700;font-size:16px;letter-spacing:-.02em}.brand .name b{font-weight:800}.brand .name span{display:block;font-size:10.5px;font-weight:500;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-top:1px}.nav{display:flex;flex-direction:column;gap:4px;margin-top:4px}.nav a{position:relative;display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;font-size:13.5px;font-weight:500;color:var(--muted);transition:color .2s,background .2s}.nav a:hover{color:var(--text);background:var(--surface)}.nav a.active{color:#fff;background:var(--surface-2)}.nav a.active:before{content:"";position:absolute;left:-16px;top:50%;transform:translateY(-50%);width:3px;height:20px;border-radius:3px;background:var(--grad-accent);box-shadow:0 0 12px var(--accent)}.nav a .label{flex:1}.side-foot{margin-top:auto;padding:12px 10px 2px;font-size:11.5px;color:var(--faint)}.side-foot .org{margin-top:6px;color:var(--muted);letter-spacing:.02em}.pill{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:11px;padding:5px 10px;border-radius:999px;border:1px solid var(--hair)}.pill .dot{width:7px;height:7px;border-radius:50%}.pill.live{color:var(--mint);border-color:#25d9a34d;background:#25d9a314}.pill.live .dot{background:var(--mint);box-shadow:0 0 #25d9a399;animation:ping 1.8s infinite}.pill.demo{color:var(--amber);border-color:#ffb02047;background:#ffb02012}.pill.demo .dot{background:var(--amber)}@keyframes ping{0%{box-shadow:0 0 #25d9a38c}70%{box-shadow:0 0 0 7px #25d9a300}to{box-shadow:0 0 #25d9a300}}.main{padding:24px 32px 72px;min-width:0}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:26px}.topbar h1{font-size:24px;margin:0;font-weight:700;letter-spacing:-.03em}.topbar .sub{color:var(--muted);font-size:13px;margin-top:4px}.controls{display:flex;align-items:center;gap:10px}.select,.btn,.seg{font:inherit;color:var(--text);border:1px solid var(--hair);background:var(--surface);border-radius:11px;padding:9px 13px;font-size:13px;cursor:pointer;transition:border-color .2s,background .2s,transform .1s}.select:hover,.btn:hover{border-color:var(--hair-2);background:var(--surface-2)}.btn:active{transform:translateY(1px)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) 52%,calc(100% - 11px) 52%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}select option{background:var(--bg-2);color:var(--text)}.btn-accent{background:var(--grad-accent-btn);border:0;color:#fff;font-weight:600;box-shadow:var(--glow-accent)}.btn-accent:hover{filter:brightness(1.06)}.btn-ghost{display:inline-flex;align-items:center;gap:8px}.seg{display:inline-flex;padding:3px;gap:2px}.seg button{border:0;background:transparent;color:var(--muted);font-size:12.5px;font-weight:600;padding:6px 11px;border-radius:8px;cursor:pointer;transition:.2s}.seg button.on{background:var(--surface-2);color:#fff}.grid{display:grid;gap:16px}.kpis{grid-template-columns:repeat(auto-fill,minmax(232px,1fr))}.card{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--hair);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.kpi{padding:18px 18px 16px;transition:transform .25s cubic-bezier(.2,.7,.2,1),border-color .25s}.kpi:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:radial-gradient(120% 80% at 100% 0%,rgba(255,45,107,.08),transparent 45%);opacity:0;transition:opacity .3s}.kpi:hover{transform:translateY(-4px);border-color:var(--hair-2)}.kpi:hover:after{opacity:1}.kpi-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.kpi-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--hair);flex:none}.kpi-head .label{font-size:12.5px;color:var(--muted);font-weight:500;line-height:1.25}.kpi .val{font-size:30px;font-weight:700;letter-spacing:-.035em;line-height:1}.kpi-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.delta{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 8px 3px 6px;border-radius:999px}.delta svg{width:11px;height:11px}.delta.up{color:var(--mint);background:#25d9a31a}.delta.down{color:var(--accent);background:#ff2d6b1a}.delta.flat{color:var(--muted);background:var(--surface-2)}.src{font-size:10px;color:var(--faint);text-transform:uppercase;letter-spacing:.12em;font-weight:600}.kpi-btn{display:block;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.kpi-expand{position:absolute;top:14px;right:14px;width:16px;height:16px;color:var(--faint);opacity:0;transform:translate(-4px);transition:opacity .2s,transform .2s}.kpi-btn:hover .kpi-expand,.kpi-btn:focus-visible .kpi-expand{opacity:1;transform:translate(0)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:24px;background:#040509a8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade .18s ease}@keyframes fade{0%{opacity:0}}.modal{width:100%;max-width:860px;max-height:90vh;overflow-y:auto;background:linear-gradient(180deg,#141620fa,#0c0e16fa);border:1px solid var(--hair-2);border-radius:20px;box-shadow:0 30px 80px -20px #000c;animation:pop .2s cubic-bezier(.2,.7,.2,1)}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.99)}}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px 14px;position:sticky;top:0;background:#0e1018e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--hair);border-radius:20px 20px 0 0}.modal-title{font-size:18px;font-weight:700;letter-spacing:-.02em}.modal-sub{font-size:12px;color:var(--muted);margin-top:4px}.modal-close{width:40px;height:40px;flex:none;display:grid;place-items:center;cursor:pointer;border-radius:10px;border:1px solid var(--hair);background:var(--surface);color:var(--text)}.modal-close:hover{background:var(--surface-2);border-color:var(--hair-2)}.modal-close svg{width:16px;height:16px}.modal-body{padding:18px 24px 24px;display:flex;flex-direction:column;gap:18px}.modal-hero{font-size:38px;font-weight:700;letter-spacing:-.04em;display:flex;align-items:baseline;gap:12px}.modal-hero-cap{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.modal-table{max-height:320px;overflow-y:auto}.modal-table td.pos{color:var(--mint)}.modal-table td.neg{color:var(--accent)}@media (prefers-reduced-motion: reduce){.modal-backdrop,.modal{animation:none}}.section-title{font-size:12.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:34px 2px 14px;display:flex;align-items:center;gap:10px}.section-title:after{content:"";flex:1;height:1px;background:var(--hair)}.chart{padding:20px 20px 16px}.chart h3{margin:0 0 16px;font-size:14px;font-weight:600;letter-spacing:-.01em}.chart-plot{position:relative}.chart svg{display:block;overflow:visible;width:100%;height:auto;max-height:360px;touch-action:pan-y}.ch-tip{position:absolute;top:6px;transform:translate(-50%);min-width:132px;padding:9px 11px;border-radius:12px;pointer-events:none;z-index:3;background:#0e1018eb;border:1px solid var(--hair-2);box-shadow:0 10px 30px -10px #000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ch-tip.flip{transform:translate(-92%)}.ch-tip-h{font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--text);margin-bottom:7px}.ch-tip-row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:12px;margin-top:4px}.ch-tip-row span{display:inline-flex;align-items:center;gap:7px;color:var(--muted)}.ch-tip-row i{width:8px;height:8px;border-radius:3px;flex:none}.ch-tip-row b{color:var(--text);font-variant-numeric:tabular-nums}.legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:14px;font-size:12px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:7px}.legend .dot{width:9px;height:9px;border-radius:3px}.card.tablewrap{padding:6px;overflow-x:auto;-webkit-overflow-scrolling:touch}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:12px 14px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}th:first-child,td:first-child{text-align:left;position:sticky;left:0;background:linear-gradient(90deg,var(--bg-2),rgba(10,12,20,.86))}thead th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--hair);position:sticky;top:0;background:var(--bg-2)}tbody td{border-bottom:1px solid rgba(255,255,255,.05);color:#c8cdda}tbody tr{transition:background .15s}tbody tr:hover td{background:var(--surface);color:var(--text)}tfoot td{font-weight:700;color:#fff;border-top:1px solid var(--hair-2)}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login .card{width:100%;max-width:392px;padding:36px 34px}.login .brand{padding:0 0 22px}.login p{color:var(--muted);font-size:13.5px;margin:0 0 22px;line-height:1.5}.field{margin-bottom:16px}.field label{display:block;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.field input{width:100%;padding:12px 14px;border-radius:12px;font:inherit;font-size:14px;color:var(--text);background:var(--surface-2);border:1px solid var(--hair);transition:border-color .2s,box-shadow .2s}.field input:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px #ff2d6b29}.err{background:#ff2d6b1a;border:1px solid rgba(255,45,107,.3);color:#ff8aa9;padding:10px 13px;border-radius:10px;font-size:13px;margin-bottom:16px}.link-btn{border:0;background:none;color:var(--muted);cursor:pointer;font:inherit;font-size:12.5px}.link-btn:hover{color:var(--text)}.loading{padding:60px;text-align:center;color:var(--muted);font-size:14px}.errorstate{padding:32px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}.errorstate p{margin:0;color:var(--text);font-size:14px}.empty{padding:28px;text-align:center;color:var(--muted);font-size:13px}.spinner{width:26px;height:26px;margin:0 auto 14px;border-radius:50%;border:2.5px solid var(--hair);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}html.anim-ready .anim-rise{opacity:0}@media (prefers-reduced-motion: reduce){html.anim-ready .anim-rise{opacity:1}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.nav a:focus-visible,.btn:focus-visible,.select:focus-visible{outline-offset:3px}@media (max-width: 860px){.app{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:20;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 14px;border-right:0;border-bottom:1px solid var(--hair)}.brand{padding:0;margin-right:auto}.brand .name span{display:none}.nav{flex-direction:row;margin:0;gap:4px}.nav a{padding:9px 11px}.nav a .label{display:none}.nav a.active:before{display:none}.side-foot{margin:0;padding:0}.side-foot .org{display:none}.main{padding:18px 14px 56px}.topbar{gap:12px;margin-bottom:18px}.topbar h1{font-size:20px}.controls{width:100%;flex-wrap:wrap}.controls .select{flex:1;min-width:130px}.kpis{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.kpi{padding:14px}.kpi .val{font-size:24px}.chart svg{max-height:300px}.ch-tip{min-width:116px;padding:8px 9px}.seg button{padding:10px 12px}.src{font-size:11px}.modal-backdrop{padding:0;place-items:stretch}.modal{max-width:100%;max-height:100vh;border-radius:0;border:0}.modal-head{border-radius:0;padding-top:calc(18px + env(safe-area-inset-top))}.modal-hero{font-size:30px;min-width:0}.modal-body{padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}}@media (max-width: 460px){.kpis{grid-template-columns:1fr 1fr}.kpi .val{font-size:21px}.topbar h1{font-size:18px}}
