:root{--bg:#0f1117;--bg-card:#1a1d27;--bg-input:#242736;--text:#e0e0e0;--text-muted:#8b8fa3;--accent:#6366f1;--accent-hover:#818cf8;--success:#22c55e;--danger:#ef4444;--warning:#f59e0b;--border:#2a2d3a;--radius:8px;color:var(--text);background:var(--bg);font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh}#app{min-height:100vh;display:flex}.sidebar{background:var(--bg-card);border-right:1px solid var(--border);flex-direction:column;width:220px;padding:20px 0;display:flex}.sidebar .logo{color:var(--accent);border-bottom:1px solid var(--border);margin-bottom:10px;padding:0 20px 20px;font-size:18px;font-weight:700}.sidebar nav a{color:var(--text-muted);align-items:center;gap:10px;padding:10px 20px;text-decoration:none;transition:all .15s;display:flex}.sidebar nav a:hover,.sidebar nav a.router-link-active{color:var(--text);background:var(--bg-input)}.sidebar .spacer{flex:1}.sidebar .logout{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;padding:10px 20px;font-size:14px}.sidebar .logout:hover{color:var(--danger)}.main{flex:1;padding:30px;overflow-y:auto}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h1{color:var(--text);margin:0;font-size:24px;font-weight:600}.stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.stat-card .label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px}.stat-card .value{margin-top:4px;font-size:28px;font-weight:700}.stat-card .value.accent{color:var(--accent)}.stat-card .value.success{color:var(--success)}.stat-card .value.warning{color:var(--warning)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:20px}.card h2{margin-bottom:16px;font-size:16px;font-weight:600}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:8px 12px;font-size:12px}td{border-bottom:1px solid var(--border);padding:10px 12px;font-size:13px}tr:hover td{background:var(--bg-input)}tr:last-child td{border-bottom:none}.badge{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.success{color:var(--success);background:#22c55e26}.badge.danger{color:var(--danger);background:#ef444426}.badge.warning{color:var(--warning);background:#f59e0b26}.badge.info{color:var(--accent);background:#6366f126}.btn{border-radius:var(--radius);cursor:pointer;border:none;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-sm{padding:4px 10px;font-size:12px}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);background:0 0}.btn-ghost:hover{color:var(--text);border-color:var(--text-muted)}.form-group{margin-bottom:16px}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:12px;display:block}.form-group input,.form-group select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:10px 12px;font-size:14px}.form-group input:focus,.form-group select:focus{border-color:var(--accent)}.form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.login-page{justify-content:center;align-items:center;width:100%;min-height:100vh;display:flex}.login-box{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:380px;padding:40px}.login-box h1{text-align:center;margin-bottom:24px;font-size:20px}.clickable{cursor:pointer}.text-muted{color:var(--text-muted)}.text-right{text-align:right}.mt-2{margin-top:8px}.mb-4{margin-bottom:16px}.flex{display:flex}.gap-2{gap:8px}
