@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root[data-theme=light]{--bg:#eef2f7;--surface:#fff;--surface-2:#f8fafc;--surface-3:#f1f5f9;--border:#e5e9f0;--border-2:#edf1f6;--text:#0f172a;--text-2:#64748b;--text-3:#708096;--primary:#2563eb;--primary-600:#1d4ed8;--primary-soft:#eaf1fe;--success:#16a34a;--success-soft:#e7f6ec;--warning:#f59e0b;--warning-soft:#fef3e2;--danger:#ef4444;--danger-soft:#fdecec;--violet:#8b5cf6;--cyan:#06b6d4;--warning-text:#b45309;--cyan-text:#0e7490;--sidebar:#0f172a;--sidebar-2:#1a2540;--sidebar-text:#8a98b5;--shadow-sm:0 1px 2px #0f172a0f;--shadow:0 6px 22px #0f172a0f;--shadow-lg:0 18px 44px #0f172a24;--glass:#ffffffb8}:root[data-theme=dark]{--bg:#080d1a;--surface:#101a2e;--surface-2:#0c1424;--surface-3:#19243c;--border:#1e2a44;--border-2:#18233a;--text:#e6edf7;--text-2:#92a1bc;--text-3:#7384a0;--primary:#3b82f6;--primary-600:#60a5fa;--primary-soft:#15233f;--success:#22c55e;--success-soft:#11271b;--warning:#fbbf24;--warning-soft:#2a2110;--danger:#f87171;--danger-soft:#2a1517;--violet:#a78bfa;--cyan:#22d3ee;--warning-text:#fbbf24;--cyan-text:#22d3ee;--sidebar:#0a1120;--sidebar-2:#16203a;--sidebar-text:#7c89a8;--shadow-sm:0 1px 2px #0000004d;--shadow:0 6px 22px #00000059;--shadow-lg:0 18px 44px #00000080;--glass:#101a2eb8}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,sans-serif}button,input,select{font-family:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#94a3b859 padding-box content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#94a3b88c padding-box content-box}::-webkit-scrollbar-track{background:0 0}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:14px;padding:20px}.grid{gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}@media (width<=1100px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.grid-4,.grid-2{grid-template-columns:1fr}}.btn{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:8px;padding:9px 16px;font-size:13.5px;font-weight:600;display:inline-flex}.btn-primary{background:linear-gradient(90deg, var(--primary), var(--primary-600));color:#fff;box-shadow:0 6px 16px #2563eb4d}.btn-outline{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-danger{background:linear-gradient(90deg, var(--danger), #dc2626);color:#fff;box-shadow:0 6px 16px #ef44444d}.pill{border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.pill-dot{border-radius:50%;width:6px;height:6px}.avatar{color:#fff;background:linear-gradient(135deg, var(--primary), var(--cyan));border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:12.5px;font-weight:700;display:flex}table.data-table{border-collapse:collapse;width:100%;font-size:13.5px}table.data-table th{text-align:left;color:var(--text-2);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--border);padding:10px 14px;font-size:12px;font-weight:700}table.data-table td{border-bottom:1px solid var(--border-2);vertical-align:middle;padding:12px 14px}table.data-table tr:last-child td{border-bottom:none}table.data-table.compact-table th{white-space:normal;padding:4px 6px;font-size:10.5px}table.data-table.compact-table td{padding:4px 6px;font-size:11.5px}table.data-table.compact-table th,table.data-table.sticky-thead th{z-index:2;background:var(--surface);position:sticky;top:0}table.data-table.sticky-thead,table.data-table.compact-table{border-collapse:separate;border-spacing:0}table.data-table.sticky-thead th,table.data-table.compact-table th{box-shadow:0 2px 0 var(--surface), 0 3px 0 var(--border)}.table-scroll{isolation:isolate;max-height:65vh;overflow:auto}.tabs{border-bottom:1px solid var(--border);gap:4px;display:flex;overflow-x:auto}.tab-btn{color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2.5px solid #0000;padding:14px 16px;font-size:13.5px;font-weight:600}.tab-btn.active{border-bottom-color:var(--primary);color:var(--primary-600);font-weight:700}.field-row{border-bottom:1px solid var(--border-2);justify-content:space-between;padding:10px 0;font-size:13.5px;display:flex}.field-row:last-child{border-bottom:none}.field-row .label{color:var(--text-2)}.field-row .value{font-weight:600}.state-msg{text-align:center;color:var(--text-2);padding:40px 20px;font-size:14px}input.field,select.field,textarea.field{border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text);border-radius:10px;padding:9px 12px;font-family:inherit;font-size:13.5px}.field-required{color:var(--danger);margin-left:3px}.form-attempted input.field:required:invalid,.form-attempted select.field:required:invalid{border-color:var(--danger)}.login-screen{background:var(--bg);grid-template-columns:1.05fr .95fr;min-height:100vh;display:grid}@media (width<=900px){.login-screen{grid-template-columns:1fr}.login-hero{display:none}}.login-hero{color:#fff;background:linear-gradient(150deg,#0f172a 0%,#152547 55%,#1d3a6e 100%);flex-direction:column;justify-content:space-between;padding:48px 56px;display:flex;position:relative;overflow:hidden}.login-hero:before{content:"";filter:blur(8px);background:radial-gradient(circle,#2563eb73,#0000 65%);border-radius:50%;width:520px;height:520px;position:absolute;top:-160px;right:-120px}.login-hero:after{content:"";background:radial-gradient(circle,#06b6d447,#0000 65%);border-radius:50%;width:360px;height:360px;position:absolute;bottom:-120px;left:-80px}.login-hero-logo{background:#fff;border-radius:12px;align-items:center;width:fit-content;padding:9px 14px;display:inline-flex;position:relative;box-shadow:0 10px 30px #00000040}.login-hero-logo img{height:30px;display:block}.login-hero-body{position:relative}.login-badge{letter-spacing:.3px;background:#ffffff1a;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:8px;margin-bottom:22px;padding:7px 14px;font-size:12.5px;font-weight:600;display:inline-flex}.login-hero h1{letter-spacing:-.02em;margin:0 0 16px;font-size:40px;font-weight:800;line-height:1.12}.login-hero-sub{color:#afc0de;max-width:430px;margin:0 0 30px;font-size:15.5px;line-height:1.6}.login-hero-points{gap:12px;margin:0;padding:0;list-style:none;display:grid}.login-hero-points li{color:#c9d6ee;padding-left:22px;font-size:14px;font-weight:600;position:relative}.login-hero-points li:before{content:"";background:#4c8dff;border-radius:50%;width:8px;height:8px;position:absolute;top:7px;left:0}.login-stats{gap:26px;display:flex}.login-stats .divider{background:#ffffff1f;width:1px}.login-stats .value{font-size:26px;font-weight:800}.login-stats .label{color:#8fa3c7;font-size:12.5px;font-weight:600}.login-hero-footer{color:#7a8aac;font-size:12.5px;position:relative}.login-form-col{background:var(--surface);justify-content:center;align-items:center;padding:40px;display:flex}.login-card{width:100%;max-width:392px}.login-card-top{justify-content:flex-end;margin-bottom:-34px;display:flex}.login-card h2{letter-spacing:-.01em;margin:6px 0;font-size:25px;font-weight:800}.login-card .sub{color:var(--text-2);margin:0 0 26px;font-size:14px}.login-field{margin-bottom:16px}.login-field label{margin-bottom:7px;font-size:13px;font-weight:600;display:block}.login-input-wrap{position:relative}.login-input-wrap .field-icon{color:var(--text-3);display:flex;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.login-input-wrap .toggle-visibility{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:0;display:flex;position:absolute;top:50%;right:13px;transform:translateY(-50%)}.login-input-wrap input{border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text);border-radius:11px;padding:13px 42px 13px 40px;font-size:14px}.login-row{justify-content:space-between;align-items:center;margin-bottom:22px;font-size:13px;display:flex}.login-row label{color:var(--text-2);cursor:pointer;align-items:center;gap:8px;font-weight:500;display:flex}.login-row a{color:var(--primary);cursor:pointer;font-weight:600}.login-submit{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:11px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:14.5px;font-weight:700;display:flex;box-shadow:0 10px 24px #2563eb52}.login-divider{color:var(--text-3);align-items:center;gap:12px;margin:22px 0;font-size:12px;display:flex}.login-divider .line{background:var(--border);flex:1;height:1px}.login-alt{grid-template-columns:1fr 1fr;gap:12px;display:grid}.login-alt button{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:13.5px;font-weight:600;display:flex}.login-footer-text{text-align:center;color:var(--text-2);margin:26px 0 0;font-size:13px}.login-footer-text a{color:var(--primary);cursor:pointer;font-weight:600}.login-error{background:var(--danger-soft);color:var(--danger);border-radius:10px;margin-bottom:16px;padding:10px 12px;font-size:13px}.app-shell{background:var(--bg);grid-template-columns:260px 1fr;height:100vh;transition:grid-template-columns .22s;display:grid;overflow:hidden}.app-shell.collapsed{grid-template-columns:76px 1fr}.sidebar{background:var(--sidebar);color:var(--sidebar-text);flex-direction:column;gap:6px;height:100vh;padding:18px 14px;display:flex;overflow:hidden auto}.sidebar .brand{align-items:center;gap:10px;padding:6px 4px 18px;display:flex}.brand-logo{background:#fff;border-radius:10px;flex-shrink:0;align-items:center;padding:6px 9px;display:flex}.brand-logo img{height:22px;display:block}.brand-text{white-space:nowrap;line-height:1.1;overflow:hidden}.brand-title{color:#fff;font-size:14px;font-weight:800}.brand-sub{color:var(--sidebar-text);font-size:11px}.sidebar .nav-group-label{letter-spacing:.06em;color:var(--sidebar-text);opacity:.7;margin:14px 8px 6px;font-size:11px;font-weight:700}.nav-item{width:100%;color:var(--sidebar-text);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:11px;margin-bottom:2px;padding:10px 11px;font-size:13.5px;font-weight:600;display:flex}.nav-item.active{background:linear-gradient(90deg, var(--primary), var(--primary-600));color:#fff;box-shadow:0 6px 16px #2563eb59}.app-shell.collapsed .nav-item{justify-content:center;padding:10px}.nav-item .badge{background:var(--danger);color:#fff;border-radius:999px;margin-left:auto;padding:1px 7px;font-size:10.5px;font-weight:800}.main-col{flex-direction:column;min-width:0;height:100vh;display:flex;overflow:hidden}.topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:10;flex-shrink:0;align-items:center;gap:16px;padding:14px 24px;display:flex}.topbar .search{border:1px solid var(--border);background:var(--surface-2);max-width:360px;color:var(--text-2);border-radius:10px;flex:1;padding:9px 12px;font-size:13.5px}.topbar .spacer{flex:1}.topbar-icon-btn{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;width:36px;height:36px;color:var(--text);border-radius:10px;justify-content:center;align-items:center;display:flex}.role-badge{color:var(--primary-600);background:var(--primary-soft);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.page-content{flex:1;padding:24px;overflow-y:auto}.page-header{margin-bottom:20px}.page-header h1{margin:0 0 4px;font-size:24px;font-weight:800}.page-header .sub{color:var(--text-2);margin:0;font-size:13.5px}.coming-soon{text-align:center;color:var(--text-2);flex-direction:column;justify-content:center;align-items:center;padding:80px 20px;display:flex}.coming-soon .icon-wrap{background:var(--primary-soft);width:64px;height:64px;color:var(--primary);border-radius:18px;justify-content:center;align-items:center;margin-bottom:18px;display:flex}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}}
