@font-face{font-family:Outfit;font-style:normal;font-weight:100;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.1spbknb88wd48.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Outfit;font-style:normal;font-weight:100;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:200;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.1spbknb88wd48.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Outfit;font-style:normal;font-weight:200;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:300;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.1spbknb88wd48.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Outfit;font-style:normal;font-weight:300;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.1spbknb88wd48.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Outfit;font-style:normal;font-weight:400;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.1spbknb88wd48.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Outfit;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.1spbknb88wd48.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Outfit;font-style:normal;font-weight:600;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.1spbknb88wd48.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Outfit;font-style:normal;font-weight:700;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.1spbknb88wd48.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Outfit;font-style:normal;font-weight:800;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-weight:900;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.1spbknb88wd48.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Outfit;font-style:normal;font-weight:900;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1gsd1jahc5dg_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit Fallback;src:local(Arial);ascent-override:100.18%;descent-override:26.05%;line-gap-override:0.0%;size-adjust:99.82%}.outfit_95ce333c-module__K0ve2G__className{font-family:Outfit,Outfit Fallback;font-style:normal}.outfit_95ce333c-module__K0ve2G__variable{--font-outfit:"Outfit", "Outfit Fallback"}
:root{--bg-base:#0d0f14;--bg-surface:#161922;--bg-card:#1e2130;--bg-hover:#252840;--border:#2a2f4a;--border-light:#353a5c;--accent:#4bbacb;--accent-2:#72d0de;--accent-glow:#4bbacb40;--accent-hover:#3aa8ba;--success:#22d3a0;--success-bg:#22d3a01a;--warning:#fbbf24;--warning-bg:#fbbf241a;--error:#f87171;--error-bg:#f871711a;--info:#60a5fa;--text-primary:#f1f5f9;--text-secondary:#b8c2d8;--text-muted:#7e8aaa;--header-h:52px;--sidebar-w:220px;--radius:10px;--radius-lg:14px;--font:var(--font-outfit), system-ui, sans-serif}[data-theme=light]{--bg-base:#f0f2f8;--bg-surface:#fff;--bg-card:#fff;--bg-hover:#e8eaf4;--border:#d1d5e8;--border-light:#b8bddc;--accent:#2d7d8c;--accent-2:#3a96a8;--accent-glow:#2d7d8c2e;--accent-hover:#236b79;--success:#0fa870;--success-bg:#0fa8701a;--warning:#d97706;--warning-bg:#d977061a;--error:#dc2626;--error-bg:#dc262614;--info:#2563eb;--text-primary:#1e1f2e;--text-secondary:#4b5280;--text-muted:#9ca3c0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-base);height:100%;color:var(--text-primary);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.6}input,textarea,select,button{font-family:var(--font)}a{color:inherit;text-decoration:none}.app-shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-body{flex:1;display:flex;overflow:hidden}.main-and-footer{flex-direction:column;flex:1;display:flex;overflow:hidden}.main-area{flex:1;padding:24px;overflow-y:auto}.app-header{height:var(--header-h);background:var(--bg-surface);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 20px;display:flex}.header-brand{align-items:center;gap:10px;display:flex}.header-version{color:var(--text-muted);background:var(--bg-hover);border:1px solid var(--border);border-radius:20px;padding:2px 8px;font-size:11px;font-weight:500}.header-actions{align-items:center;gap:10px;display:flex}.icon-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:7px;transition:all .15s;display:flex}.icon-btn:hover{border-color:var(--accent);color:var(--accent-2)}.header-user{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.header-avatar{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;font-weight:700;display:flex}.logout-btn{background:var(--error-bg);color:var(--error);cursor:pointer;border:1px solid #f8717133;border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;transition:all .15s;display:flex}.logout-btn:hover{background:#f8717133}.sidebar{width:var(--sidebar-w);background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;height:100%;display:flex;overflow:hidden}.sidebar-nav{flex-direction:column;gap:2px;padding:12px 10px;display:flex;overflow:hidden auto}.nav-item{color:var(--text-secondary);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{background:var(--bg-card)}.nav-item.active{background:var(--accent-glow);color:var(--accent-2)}.nav-icon-box{border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.sidebar-console-section{flex-direction:column;display:flex;overflow:hidden}.console-toggle{color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font);background:0 0;border:none;flex-shrink:0;align-items:center;gap:10px;padding:10px 12px;transition:all .15s;display:flex}.console-toggle:hover{color:var(--text-primary)}.sidebar-console{background:#090b10;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.console-header{background:#0f1117;border-bottom:1px solid #1a1f2e;flex-shrink:0;justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.console-title{color:#22d3a0;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.console-dot{background:#22d3a0;border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}.console-clear{color:var(--text-muted);cursor:pointer;font-size:11px;font-family:var(--font);background:0 0;border:none}.console-clear:hover{color:var(--text-primary)}.console-body{flex-direction:column;flex:1;gap:2px;min-height:0;padding:8px 12px;display:flex;overflow-y:auto}.console-empty{color:#4a5568;font-size:12px}.console-line{word-break:break-all;gap:8px;font-family:monospace;font-size:11px;display:flex}.console-time{color:#4a5568;flex-shrink:0}.console-msg.info{color:#60a5fa}.console-msg.success{color:#22d3a0}.console-msg.warning{color:#fbbf24}.console-msg.error{color:#f87171}.console-msg.muted{color:#4a5568}.app-footer{border-top:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 24px;font-size:12px;display:flex}.app-footer a{color:var(--accent-2)}.app-footer-version{background:var(--bg-hover);border:1px solid var(--border);border-radius:20px;padding:2px 8px;font-size:11px;font-weight:500}.btn{cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font);border:1px solid #0000;border-radius:8px;align-items:center;gap:7px;padding:8px 16px;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{color:#72d0de;background:#4bbacb21;border-color:#4bbacb61}.btn-primary:hover:not(:disabled){box-shadow:0 0 0 3px var(--accent-glow);background:#4bbacb3b}.btn-secondary{color:var(--text-secondary);background:#b4bed21a;border-color:#b4bed240}.btn-secondary:hover:not(:disabled){background:#b4bed233}.btn-danger{color:#f87171;background:#f871711f;border-color:#f8717152}.btn-danger:hover:not(:disabled){background:#f8717138}.btn-success{color:#34d399;background:#22d3a01f;border-color:#22d3a052}.btn-success:hover:not(:disabled){background:#22d3a038}.btn-sm{padding:5px 10px;font-size:12px}.btn-lg{padding:12px 24px;font-size:15px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.badge{border:1px solid #0000;border-radius:20px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-success{background:var(--success-bg);color:var(--success);border-color:#22d3a033}.badge-warning{background:var(--warning-bg);color:var(--warning);border-color:#fbbf2433}.badge-error{background:var(--error-bg);color:var(--error);border-color:#f8717133}.badge-info{color:var(--info);background:#60a5fa1a;border-color:#60a5fa33}.badge-muted{border-color:var(--border);color:var(--text-secondary);background:#4a55684d}.table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.data-table{border-collapse:collapse;width:100%}.data-table th{background:var(--bg-surface);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px;text-align:left;padding:11px 16px;font-size:11px;font-weight:600}.data-table td{border-bottom:1px solid var(--border);color:var(--text-primary);padding:12px 16px;font-size:13px}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--bg-hover)}label{color:var(--text-secondary);margin-bottom:5px;font-size:13px;font-weight:500;display:block}input,textarea,select{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);outline:none;padding:8px 12px;font-size:14px;transition:all .15s}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.page-title{color:var(--text-primary);align-items:center;gap:10px;font-size:22px;font-weight:700;display:flex}.page-subtitle{color:var(--text-secondary);margin-top:4px;font-size:13px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:90vh;animation:.2s slideUp;overflow-y:auto}.modal-header{padding:20px 24px 0}.modal-body{padding:20px 24px}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:16px 24px 20px;display:flex}.login-page{background:var(--bg-base);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:18px;flex-direction:column;gap:20px;width:100%;max-width:420px;padding:40px;display:flex;box-shadow:0 24px 64px #00000080}.login-title{color:var(--text-primary);text-align:center;font-size:22px;font-weight:700}.login-subtitle{color:var(--text-secondary);text-align:center;margin-top:-12px;font-size:14px}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:8px;padding:20px;display:flex}.stat-value{font-size:32px;font-weight:800;line-height:1}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.w-full{width:100%}.text-muted{color:var(--text-muted)}.text-success{color:var(--success)}.text-error{color:var(--error)}.text-warning{color:var(--warning)}.text-info{color:var(--info)}.text-accent{color:var(--accent-2)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.header-lockup{width:auto;height:32px;display:block}[data-theme=light] .header-lockup{filter:invert()hue-rotate(180deg)saturate(.8)}
