@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.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}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.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:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.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:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.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:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.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:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@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}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--ff-d: "Bricolage Grotesque", system-ui, sans-serif;--ff-u: "IBM Plex Sans", system-ui, sans-serif;--ff-m: "IBM Plex Mono", monospace;--b50: oklch(97% .012 237);--b100: oklch(93% .03 237);--b200: oklch(86% .06 237);--b300: oklch(75% .095 237);--b400: oklch(63% .13 237);--b500: oklch(52% .148 237);--b600: oklch(43% .135 237);--b700: oklch(34% .108 237);--b800: oklch(26% .075 237);--b900: oklch(18% .052 237);--n0: #ffffff;--n50: oklch(98.5% .004 237);--n100: oklch(96.8% .006 237);--n200: oklch(92.5% .007 237);--n300: oklch(84% .007 237);--n400: oklch(70% .007 237);--n500: oklch(56% .007 237);--n600: oklch(44% .007 237);--n700: oklch(35% .007 237);--n800: oklch(25% .007 237);--n900: oklch(16% .007 237);--n950: oklch(10% .007 237);--sg: oklch(54% .172 145);--sgb: oklch(96.5% .035 145);--sgt: oklch(35% .118 145);--sgbr: oklch(87% .075 145);--sa: oklch(68% .182 72);--sab: oklch(97% .04 72);--sat: oklch(42% .125 72);--sabr: oklch(88% .1 72);--sr: oklch(52% .215 25);--srb: oklch(96.5% .038 25);--srt: oklch(35% .148 25);--srbr: oklch(87% .088 25);--sl: oklch(54% .148 237);--slb: oklch(96.5% .03 237);--slt: oklch(36% .108 237);--slbr: oklch(87% .07 237);--bdr: 1px solid var(--n200);--sh-sm: 0 1px 3px rgba(8,18,42,.07), 0 1px 2px rgba(8,18,42,.04);--sh-md: 0 4px 8px rgba(8,18,42,.08), 0 2px 4px rgba(8,18,42,.04);--sh-lg: 0 16px 48px rgba(8,18,42,.14), 0 4px 12px rgba(8,18,42,.06)}html,body{height:100%;font-family:var(--ff-u);color:var(--n900);background:var(--n100);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}#root{height:100%}button{font-family:var(--ff-u);cursor:pointer}a{text-decoration:none;color:inherit}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--n300);border-radius:2px}.app-shell{display:flex;height:100vh;height:100dvh;overflow:hidden;background:var(--n100)}.sidebar{width:220px;flex-shrink:0;background:var(--n0);border-right:var(--bdr);display:flex;flex-direction:column;overflow:hidden;transition:width .16s ease}.sidebar-collapse-btn{display:flex;align-items:center;gap:10px;width:100%;padding:9px 18px;margin:0;background:none;border:none;border-top:var(--bdr);color:var(--n500);font-size:12px;font-family:var(--ff-u);cursor:pointer;flex-shrink:0}.sidebar-collapse-btn:hover{background:var(--n50);color:var(--n700)}.sidebar-collapse-chevron{flex-shrink:0;transition:transform .16s ease}@media (min-width: 769px){.sidebar.collapsed{width:64px}.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-badge,.sidebar.collapsed .sidebar-section,.sidebar.collapsed .sidebar-orginfo,.sidebar.collapsed .sidebar-orgchevron,.sidebar.collapsed .sidebar-userinfo,.sidebar.collapsed .sidebar-collapse-label{display:none}.sidebar.collapsed .nav-item{justify-content:center;gap:0;padding-left:0;padding-right:0;border-left-width:0}.sidebar.collapsed .sidebar-header,.sidebar.collapsed .sidebar-footer,.sidebar.collapsed .sidebar-collapse-btn{justify-content:center;padding-left:0;padding-right:0}.sidebar.collapsed .sidebar-collapse-chevron{transform:rotate(180deg)}}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 16px;font-size:13px;color:var(--n700);border-left:2px solid transparent;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s}.nav-item:hover{background:var(--n50)}.nav-item.active{background:var(--b50);border-left-color:var(--b500);color:var(--b700);font-weight:500}.nav-badge{margin-left:auto;font-family:var(--ff-m);font-size:10px;font-weight:600;padding:1px 5px;border-radius:999px}.badge{display:inline-flex;align-items:center;gap:3px;border-radius:2px;padding:2px 7px;font-size:11px;font-weight:500;border:1px solid;white-space:nowrap}.badge-g{background:var(--sgb);color:var(--sgt);border-color:var(--sgbr)}.badge-a{background:var(--sab);color:var(--sat);border-color:var(--sabr)}.badge-r{background:var(--srb);color:var(--srt);border-color:var(--srbr)}.badge-b{background:var(--slb);color:var(--slt);border-color:var(--slbr)}.badge-n{background:var(--n100);color:var(--n600);border-color:var(--n200)}.badge-ip{background:#e8eeff;background:oklch(95% .04 270);color:#2b3b81;border-color:#becdf6}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border-radius:4px;font-family:var(--ff-u);font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer;border:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--b500);color:#fff}.btn-primary:hover:not(:disabled){background:var(--b600)}.btn-secondary{background:var(--n0);color:var(--n800);border:1px solid var(--n300)}.btn-secondary:hover:not(:disabled){background:var(--n50)}.btn-danger{background:var(--sr);color:#fff}.btn-danger:hover:not(:disabled){background:var(--srt)}.btn-danger-soft{background:var(--srb);color:var(--srt);border:1px solid var(--srbr)}.btn-danger-soft:hover:not(:disabled){background:var(--sr);color:#fff;border-color:var(--sr)}.input{width:100%;height:40px;border:1px solid var(--n300);border-radius:4px;padding:0 12px;font-family:var(--ff-u);font-size:14px;color:var(--n900);background:var(--n0);outline:none}.input:focus{border-color:var(--b500);box-shadow:0 0 0 3px var(--b100)}.label{display:block;font-size:12px;font-weight:500;color:var(--n700);margin-bottom:5px}.kpi{background:var(--n0);border:var(--bdr);border-radius:8px;padding:20px;box-shadow:var(--sh-sm)}.kpi-link{cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.kpi-link:hover{border-color:var(--b300);box-shadow:var(--sh-md);transform:translateY(-1px)}.kpi-link:focus-visible{outline:2px solid var(--b400);outline-offset:2px}.dash-legend-row:hover,.dash-alert-row:hover{background:var(--n50)}.dash-legend-row:focus-visible,.dash-alert-row:focus-visible{outline:2px solid var(--b400);outline-offset:-2px}.tab-btn{padding:10px 16px;font-size:13px;color:var(--n500);border:none;border-bottom:2px solid transparent;background:transparent;cursor:pointer;font-family:var(--ff-u);white-space:nowrap}.tab-btn.active{color:var(--b600);font-weight:500;border-bottom-color:var(--b500)}.row-hover:hover{background:var(--n50)}[data-theme=dark]{--n0: oklch(13% .007 237);--n50: oklch(16% .008 237);--n100: oklch(19% .008 237);--n200: oklch(24% .009 237);--n300: oklch(32% .009 237);--n400: oklch(48% .008 237);--n500: oklch(60% .007 237);--n600: oklch(72% .007 237);--n700: oklch(82% .006 237);--n800: oklch(90% .005 237);--n900: oklch(95% .004 237);--n950: oklch(97% .003 237);--bdr: 1px solid oklch(24% .009 237);--sh-sm: 0 1px 3px rgba(0,0,0,.3), 0 1px 2px rgba(0,0,0,.2);--sh-md: 0 4px 8px rgba(0,0,0,.35), 0 2px 4px rgba(0,0,0,.2);--sgb: oklch(20% .05 145);--sgt: oklch(70% .14 145);--sgbr: oklch(28% .07 145);--sab: oklch(20% .05 72);--sat: oklch(72% .15 72);--sabr: oklch(28% .07 72);--srb: oklch(20% .05 25);--srt: oklch(68% .15 25);--srbr: oklch(28% .07 25);--slb: oklch(18% .04 237);--slt: oklch(70% .12 237);--slbr: oklch(26% .06 237)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (max-width: 768px){.sidebar{position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);transition:transform .22s ease,box-shadow .22s ease;z-index:100;width:220px}.sidebar.sidebar--mobile-open{transform:translate(0);box-shadow:var(--sh-lg)}.sidebar-overlay{display:block!important}.sidebar-hamburger{display:flex!important}.sidebar-collapse-btn{display:none}.table-scroll table{min-width:560px}.detail-panel{position:fixed;top:0;right:0;bottom:0;left:0;width:auto;z-index:150;border-left:none}.split-with-aside{flex-direction:column;overflow-y:auto;overflow-x:hidden}.split-primary{flex:1 1 auto;min-height:320px}.aside-panel{width:100%;flex:none;height:auto;max-height:340px;border-left:none;border-top:var(--bdr)}.form-grid{grid-template-columns:1fr}.tab-strip{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.page-header{flex-wrap:wrap}.topbar-search,.topbar-breadcrumb,.locswitch-label{display:none}.notif-list{width:100%}.notif-content{display:none;width:100%}.notif-row--content .notif-list{display:none}.notif-row--content .notif-content{display:flex;flex-direction:column}.notif-back-btn{display:flex!important}}.topbar-mobile-search-btn{display:none}@media (max-width: 768px){.topbar-mobile-search-btn{display:flex}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px}.modal-card{width:min(var(--modal-w, 520px),92vw);max-height:92vh;overflow-y:auto;background:var(--n0);border-radius:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 600px){.form-grid{grid-template-columns:1fr}}.detail-panel{width:var(--panel-w, 360px);flex-shrink:0;border-left:var(--bdr);background:var(--n0);display:flex;flex-direction:column;overflow:hidden}.card-list{display:none}.list-card{background:var(--n0);border:var(--bdr);border-radius:8px;padding:12px;cursor:pointer}.list-card:hover{border-color:var(--b300)}@media (max-width: 768px){.card-list{display:flex;flex-direction:column;gap:8px;padding:12px;overflow-y:auto}.table-view-desktop{display:none}}.tab-strip{display:flex}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.dash-main-grid{grid-template-columns:280px 1fr}.dash-bottom-grid{grid-template-columns:1fr 360px}@media (max-width: 768px){.dash-main-grid,.dash-bottom-grid{grid-template-columns:1fr}}.page-header{display:flex;align-items:center;gap:12px}@media (max-width: 480px){.hide-tiny{display:none}}@media (pointer: coarse){.btn,.input,.tab-btn,.filter-pill{min-height:44px}.row-action{min-height:44px;padding-left:10px;padding-right:10px}.select{min-height:44px}.nav-item{padding-top:11px;padding-bottom:11px}.topbar-back,.sidebar-hamburger{min-width:44px;min-height:44px}}.filter-pill{display:inline-flex;align-items:center;justify-content:center}.row-action{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer}.select{font-family:var(--ff-u)}
