*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0b0b0b;--bg-1:#111;--bg-2:#181818;--bg-3:#222;--border:#2a2a2a;--border-2:#333;--text:#f1f1f1;--text-2:#a0a0a0;--text-3:#666;--accent:#4ade80;--accent-dim:#166534;--accent-glow:rgba(74,222,128,.15);--blue:#60a5fa;--blue-dim:#1e3a5f;--amber:#fbbf24;--amber-dim:#78350f;--red:#f87171;--red-dim:#7f1d1d;--purple:#a78bfa;--sidebar-w:240px;--font-sans:"DM Sans",ui-sans-serif,system-ui,sans-serif;--font-mono:"DM Mono",ui-monospace,monospace;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--shadow-sm:0 1px 3px rgba(0,0,0,.5);--shadow-md:0 4px 16px rgba(0,0,0,.6);--shadow-glow:0 0 20px rgba(74,222,128,.12)}[data-theme=light]{--bg:#f8f9fa;--bg-1:#fff;--bg-2:#f1f3f5;--bg-3:#e9ecef;--border:#dee2e6;--border-2:#ced4da;--text:#212529;--text-2:#495057;--text-3:#adb5bd;--accent:#16a34a;--accent-dim:#dcfce7;--accent-glow:rgba(22,163,74,.12);--blue:#2563eb;--blue-dim:#dbeafe;--amber:#d97706;--amber-dim:#fef3c7;--red:#dc2626;--red-dim:#fee2e2;--purple:#7c3aed;--shadow-sm:0 1px 3px rgba(0,0,0,.08);--shadow-md:0 4px 16px rgba(0,0,0,.12)}html{font-size:14px}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}.app-shell{display:flex;min-height:100vh}.main-content{flex:1 1;margin-left:var(--sidebar-w);min-height:100vh;overflow-x:hidden}.page-wrapper{padding:28px 32px;max-width:1400px}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--bg-1);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:50;overflow:hidden}.sidebar-logo{padding:20px 20px 16px;border-bottom:1px solid var(--border)}.sidebar-logo-mark{gap:10px}.logo-icon,.sidebar-logo-mark{display:flex;align-items:center}.logo-icon{width:32px;height:32px;background:var(--accent);border-radius:8px;justify-content:center;flex-shrink:0}.logo-icon svg{color:#000}.logo-text{font-size:15px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.logo-sub{font-size:10px;color:var(--text-3);margin-top:1px;font-weight:400}.sidebar-nav{flex:1 1;padding:12px 8px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.nav-section-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);padding:12px 12px 4px}.nav-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-md);text-decoration:none;color:var(--text-2);font-size:13.5px;font-weight:500;transition:background .15s,color .15s;position:relative}.nav-link:hover{background:var(--bg-2);color:var(--text)}.nav-link.active{background:var(--accent-glow);color:var(--accent)}.nav-link.active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;background:var(--accent);border-radius:0 2px 2px 0}.nav-link svg{flex-shrink:0;opacity:.8}.nav-link.active svg{opacity:1}.nav-badge{margin-left:auto;background:var(--red);color:#000;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;min-width:18px;text-align:center}.sidebar-footer{padding:12px;border-top:1px solid var(--border)}.sidebar-user{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--r-md);cursor:pointer;transition:background .15s}.sidebar-user:hover{background:var(--bg-2)}.user-avatar{width:30px;height:30px;border-radius:50%;background:var(--bg-3);border:1px solid var(--border-2);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--accent);flex-shrink:0}.user-info{flex:1 1;min-width:0}.user-name{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:10.5px;color:var(--text-3)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:16px}.page-title{font-size:22px;font-weight:700;letter-spacing:-.02em}.page-subtitle{font-size:13px;color:var(--text-2);margin-top:2px}.card{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px}.card-title{font-size:13px;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.card-value{font-size:28px;font-weight:700;letter-spacing:-.03em}.stat-card:hover{border-color:var(--border-2);background:var(--bg-2)}.card-delta{font-size:12px;color:var(--text-3);margin-top:2px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px;margin-bottom:24px}.table-wrap{overflow-x:auto;border-radius:var(--r-lg);border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:13.5px}thead th{background:var(--bg-2);padding:10px 14px;text-align:left;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);white-space:nowrap}tbody tr,thead th{border-bottom:1px solid var(--border)}tbody tr{transition:background .1s}tbody tr:last-child{border-bottom:none}tbody tr:hover{background:var(--bg-2)}tbody td{padding:11px 14px;color:var(--text);vertical-align:middle}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--r-md);font-size:13px;font-weight:600;font-family:var(--font-sans);cursor:pointer;border:1px solid transparent;transition:all .15s;white-space:nowrap;text-decoration:none}.btn-primary{background:var(--accent);color:#000;border-color:var(--accent)}.btn-primary:hover{background:#86efac;border-color:#86efac}.btn-ghost{background:transparent;color:var(--text-2);border-color:var(--border-2)}.btn-ghost:hover{background:var(--bg-2);color:var(--text)}.btn-danger{background:var(--red-dim);color:var(--red);border-color:#991b1b}.btn-danger:hover{background:#991b1b}.btn-sm{padding:5px 10px;font-size:12px}.btn-icon{padding:7px}.form-group{display:flex;flex-direction:column;gap:5px}.form-label{font-size:12px;font-weight:600;color:var(--text-2)}input,select,textarea{background:var(--bg-2);border:1px solid var(--border-2);border-radius:var(--r-sm);color:var(--text);font-family:var(--font-sans);font-size:13.5px;padding:8px 12px;transition:border-color .15s,box-shadow .15s;outline:none;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}input::placeholder,textarea::placeholder{color:var(--text-3)}select option{background:var(--bg-2)}textarea{resize:vertical;min-height:80px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.badge-green{background:#14532d;color:#4ade80}.badge-amber{background:var(--amber-dim);color:var(--amber)}.badge-red{background:var(--red-dim);color:var(--red)}.badge-blue{background:var(--blue-dim);color:var(--blue)}.badge-gray{background:var(--bg-3);color:var(--text-3)}.badge-purple{background:#2e1065;color:var(--purple)}.alert{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--r-md);font-size:13px;line-height:1.5;margin-bottom:16px}.alert-warning{background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.25);color:var(--amber)}.alert-danger{background:hsla(0,91%,71%,.08);border:1px solid hsla(0,91%,71%,.25);color:var(--red)}.alert-success{background:rgba(74,222,128,.08);border:1px solid rgba(74,222,128,.25);color:var(--accent)}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal{background:var(--bg-1);border:1px solid var(--border-2);border-radius:var(--r-xl);padding:24px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-md)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-title{font-size:17px;font-weight:700;letter-spacing:-.02em}.divider{border:none;border-top:1px solid var(--border);margin:16px 0}.text-muted{color:var(--text-2)}.text-danger{color:var(--red)}.text-success{color:var(--accent)}.text-amber{color:var(--amber)}.mono{font-family:var(--font-mono)}.flex,.flex-col{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.grid-2{grid-template-columns:1fr 1fr;grid-gap:12px}.grid-2,.grid-3{display:grid;gap:12px}.grid-3{grid-template-columns:1fr 1fr 1fr;grid-gap:12px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,var(--bg-2) 25%,var(--bg-3) 50%,var(--bg-2) 75%);background-size:800px 100%;animation:shimmer 1.5s infinite;border-radius:var(--r-sm)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-2)}.mobile-topbar,.sidebar-overlay{display:none}@media (max-width:1024px){:root{--sidebar-w:200px}.page-wrapper{padding:20px 24px}.grid-3{grid-template-columns:1fr 1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){:root{--sidebar-w:0px}.mobile-topbar{display:flex!important;align-items:center;justify-content:space-between;padding:0 16px;background:var(--bg-1);border-bottom:1px solid var(--border);position:fixed;top:0;left:0;right:0;z-index:150;height:52px}.mobile-topbar-title{font-size:15px;font-weight:700;color:var(--text)}.main-content{margin-left:0!important;padding-top:52px}.page-wrapper{padding:16px}.sidebar{transform:translateX(-100%);transition:transform .25s ease;width:260px;z-index:200;box-shadow:4px 0 20px rgba(0,0,0,.5)}.sidebar.open{transform:translateX(0)}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:199}.sidebar-overlay.open{display:block!important}.page-header{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:16px}.page-header .btn{width:100%;justify-content:center}.grid-2,.grid-3{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr);gap:8px}.table-wrap{border-radius:var(--r-md)}table{min-width:500px}.card{padding:14px}.card-value{font-size:22px}.modal-backdrop{padding:0;align-items:flex-end}.modal{max-width:100%;max-height:92vh;border-radius:var(--r-xl) var(--r-xl) 0 0;padding:20px 16px}.page-title{font-size:18px}}@media (max-width:480px){.stats-grid{grid-template-columns:1fr 1fr;gap:6px}.card-value{font-size:20px}.page-wrapper{padding:12px}}