@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal.ca157063.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.71d5ee93.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.6e9e020a.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.1be3448e.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.5c66f9e0.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.34b9c504.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.3100e775.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: #0e1016;--bg2: #151823;--panel: #1a1e2b;--panel2: #20263a;--border: #2a3146;--text: #d7dcea;--muted: #8a93ad;--blue: #3b82f6;--blue2: #1d4ed8;--orange: #f59e0b;--green: #22c55e;--red: #ef4444;--hover: rgba(255,255,255,.04)}:root[data-theme=light]{--bg: #eef1f7;--bg2: #e3e8f1;--panel: #ffffff;--panel2: #eef1f7;--border: #cdd5e3;--text: #1b2233;--muted: #5c6781;--blue: #2563eb;--blue2: #1d4ed8;--orange: #d97706;--green: #16a34a;--red: #dc2626;--hover: rgba(0,0,0,.045)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter Variable,Inter,Segoe UI,system-ui,sans-serif;font-size:13px;user-select:none}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:210px;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}.brand{height:56px;padding:0 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border)}.brand .logo{width:32px;height:32px;border-radius:9px;flex-shrink:0;background:linear-gradient(135deg,var(--blue),var(--orange));color:#fff;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;box-shadow:0 2px 10px #f59e0b4d}.brand .logo-img{width:34px;height:34px;border-radius:8px;object-fit:contain;flex-shrink:0}.brand .name{font-weight:800;font-size:13px;letter-spacing:.2px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand .name .accent{color:var(--orange)}.nav{padding:6px 0;flex:1;overflow-y:auto}.nav-section{padding:14px 16px 6px;font-size:10px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;font-weight:700}.nav button{width:calc(100% - 16px);margin:2px 8px;text-align:left;background:none;border:1px solid transparent;color:var(--muted);padding:9px 11px;cursor:pointer;font-size:13px;display:flex;gap:10px;align-items:center;border-radius:8px}.nav button:hover{background:var(--panel);color:var(--text)}.nav button.active{background:rgba(245,158,11,.14);color:var(--orange);font-weight:600;border-color:transparent;box-shadow:inset 3px 0 0 0 var(--orange)}.sidebar .foot{padding:12px 18px;font-size:11px;color:var(--muted);border-top:1px solid var(--border)}.sidebar{transition:width .15s ease}.nav button .ic,.collapse-btn .ic{width:20px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.nav button .lbl{white-space:nowrap;overflow:hidden}.foot-row{display:flex;align-items:center;gap:8px;padding:8px;border-top:1px solid var(--border)}.collapse-btn{flex:1;min-width:0;display:flex;gap:8px;align-items:center;justify-content:center;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 12px;cursor:pointer;font-size:13px}.collapse-btn:hover{background:var(--panel2)}.theme-btn{flex-shrink:0;width:38px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;cursor:pointer}.theme-btn:hover{background:var(--panel2)}.sidebar.collapsed{width:60px}.sidebar.collapsed .lbl,.sidebar.collapsed .nav-section{display:none}.sidebar.collapsed .brand{justify-content:center;padding:0;gap:0}.sidebar.collapsed .nav button{justify-content:center;padding:9px 0}.sidebar.collapsed .foot{display:none}.sidebar.collapsed .foot-row{flex-direction:column;gap:6px}.sidebar.collapsed .collapse-btn{padding:8px 0}.sidebar.collapsed .theme-btn{width:100%}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:56px;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px;gap:16px;background:var(--bg2)}.topbar .title{font-size:15px;font-weight:600}.spacer{flex:1}.chip{padding:4px 10px;border-radius:6px;font-size:12px;background:var(--panel2);border:1px solid var(--border)}.chip.ok{color:var(--green)}.chip.bad{color:var(--red)}.chip.warn{color:var(--orange)}.content{flex:1;overflow:auto;padding:8px 10px;display:flex;flex-direction:column}.panel.fill{flex:1;min-height:0;display:flex;flex-direction:column;margin-bottom:0}.panel.fill>.scroll{flex:1;min-height:0;overflow:auto}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin-bottom:8px}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px}.card .label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.card .value{font-size:20px;font-weight:700;margin-top:4px}.card .sub{color:var(--muted);font-size:11px;margin-top:2px}table{width:100%;border-collapse:collapse;font-size:12.5px;border:1px solid var(--border);border-radius:6px;overflow:hidden}thead th{position:sticky;top:0;background:var(--bg2);color:var(--muted);text-align:left;padding:6px 8px;border-bottom:2px solid var(--border);border-right:1px solid var(--border);font-weight:600;white-space:nowrap}thead th:last-child{border-right:none}tbody td{padding:5px 8px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);white-space:nowrap}tbody td:last-child{border-right:none}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--hover)}.num{text-align:right;font-variant-numeric:tabular-nums}.bar{height:6px;background:var(--panel2);border-radius:4px;overflow:hidden;min-width:80px}.bar>i{display:block;height:100%;background:var(--blue)}.bar>i.hot{background:var(--orange)}.bar>i.full{background:var(--red)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:8px}.panel h3{margin:0 0 8px;font-size:13px}.panel.compact{padding:5px 8px;margin-bottom:3px}.panel.compact h3{margin:0 0 4px;font-size:12px}button.btn{background:var(--blue);color:#fff;border:none;border-radius:6px;padding:7px 14px;cursor:pointer;font-size:12px}button.btn:hover{background:var(--blue2)}button.btn.ghost{background:var(--panel2);border:1px solid var(--border);color:var(--text)}button.btn.danger{background:var(--red)}input,select,textarea{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:12px}textarea{resize:vertical;font-family:inherit;line-height:1.5}.logs{font-family:Cascadia Code,Consolas,monospace;font-size:12px;line-height:1.6;user-select:text;cursor:text}.logs,.logs *{user-select:text;-webkit-user-select:text}.logs .row{padding:1px 0;white-space:pre-wrap;word-break:break-word}.logs .lvl-error{color:var(--red)}.logs .lvl-warn{color:var(--orange)}.logs .lvl-info{color:var(--text)}.logs .ts{color:var(--muted)}.login-wrap{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg)}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:28px;width:320px}.login-card h2{margin:0 0 6px}.login-card p{color:var(--muted);margin:0 0 18px;font-size:12px}.login-card label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px}.login-card input{width:100%}.login-card .btn{width:100%;margin-top:18px;padding:9px}.err{color:var(--red);font-size:12px;margin-top:10px}table.grid{table-layout:fixed;border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;overflow:visible}table.grid tbody td{overflow:hidden;text-overflow:ellipsis}table.grid th:first-child,table.grid td:first-child{position:sticky;left:0}table.grid thead th{z-index:2}table.grid tbody td:first-child{background:var(--panel);z-index:1}table.grid thead th:first-child{background:var(--bg2);z-index:3}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--panel2);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}::-webkit-scrollbar-corner{background:var(--bg2)}#app{height:100vh;text-align:center}#logo{display:block;width:50%;height:50%;margin:auto;padding:10% 0 0;background-position:center;background-repeat:no-repeat;background-size:100% 100%;background-origin:content-box}.result{height:20px;line-height:20px;margin:1.5rem auto}.input-box .btn{width:60px;height:30px;line-height:30px;border-radius:3px;border:none;margin:0 0 0 20px;padding:0 8px;cursor:pointer}.input-box .btn:hover{background-image:linear-gradient(to top,#cfd9df 0%,#e2ebf0 100%);color:#333}.input-box .input{border:none;border-radius:3px;outline:none;height:30px;line-height:30px;padding:0 10px;background-color:#f0f0f0;-webkit-font-smoothing:antialiased}.input-box .input:hover{border:none;background-color:#fff}.input-box .input:focus{border:none;background-color:#fff}
