:root{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-card:#1e293b;--bg-hover:#334155;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--accent:#667eea;--accent-hover:#5a6fd6;--accent2:#764ba2;--border:#334155;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--sidebar-width:240px}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg-primary);color:var(--text-primary);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.main{margin-left:var(--sidebar-width);padding:24px;min-height:100vh}
.page-header{margin-bottom:24px}
.page-header h2{font-size:22px;font-weight:600}
.page-header p{color:var(--text-secondary);margin-top:4px;font-size:14px}
.flex-between{display:flex;justify-content:space-between;align-items:center}
.card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:20px}
.card h3{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;font-size:15px}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:24px}
.stat-card{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:8px;padding:20px;transition:border-color .2s}
.stat-card:hover{border-color:var(--accent)}
.stat-card .number{color:var(--accent);font-size:32px;font-weight:700}
.stat-card .label{color:var(--text-secondary);margin-top:4px;font-size:13px}
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}
th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:500}
tr:hover td{background:rgba(102,126,234,0.04)}
.btn{cursor:pointer;border:none;border-radius:6px;display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:13px;transition:all .2s}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-hover)}
.btn-danger{background:var(--danger);color:#fff}
.btn-danger:hover{background:#dc2626}
.btn-warning{background:var(--warning);color:#000}
.btn-sm{padding:4px 10px;font-size:12px}
.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}
.btn-ghost:hover{background:var(--bg-hover)}
.gap-2{gap:8px}.gap-4{gap:16px}.mb-4{margin-bottom:16px}.mt-4{margin-top:16px}
.flex{display:flex}.flex-wrap{flex-wrap:wrap}
.form-group{margin-bottom:12px}
.form-group label{color:var(--text-secondary);margin-bottom:4px;font-size:13px;display:block}
.form-group input,.form-group select,.form-group textarea{background:var(--bg-primary);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:6px;padding:8px 12px;font-size:14px}
.form-group input:focus,.form-group select:focus{border-color:var(--accent);outline:none}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.modal-overlay{z-index:1000;background:rgba(0,0,0,0.6);display:none;justify-content:center;align-items:center;position:fixed;top:0;left:0;width:100%;height:100%}
.modal-overlay.show{display:flex}
.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;width:90%;max-width:600px;max-height:80vh;padding:24px;overflow-y:auto}
.modal h3{margin-bottom:16px;font-size:18px}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.modal-header h3{margin-bottom:0}
.modal-close{background:0 0;border:none;color:var(--text-secondary);font-size:24px;cursor:pointer;padding:0 4px;line-height:1}
.modal-close:hover{color:var(--text-primary)}
.modal-body{margin-bottom:16px}
.modal-footer{display:flex;justify-content:flex-end;gap:8px}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
.badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}
.badge-green{color:var(--success);background:#22c55e26}
.badge-red{color:var(--danger);background:#ef444426}
.badge-yellow{color:var(--warning);background:#f59e0b26}
.badge-blue{color:var(--accent);background:#3b82f626}
.badge-gray{color:var(--text-secondary);background:#47556926}
.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.pagination{display:flex;justify-content:space-between;align-items:center;padding:12px 0;font-size:14px;color:var(--text-secondary)}
.pagination button{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);border-radius:6px;padding:6px 12px;cursor:pointer;font-size:13px}
.pagination button:disabled{opacity:.4;cursor:not-allowed}
.tag{display:inline-block;background:rgba(102,126,234,0.15);color:var(--accent);border-radius:4px;padding:2px 8px;font-size:12px;margin:2px}
.btn-cancel{background:var(--bg-hover);color:var(--text-secondary);border:1px solid var(--border)}
.btn-cancel:hover{background:var(--border)}
.btn-outline{background:0 0;color:var(--text-secondary);border:1px solid var(--border)}
.btn-outline:hover{background:var(--bg-hover)}
.btn-success{background:var(--success);color:#fff}
.btn-success:hover{background:#16a34a}
.page-header h1{font-size:22px;font-weight:600;color:var(--accent)}
.tabs{display:flex;border-bottom:1px solid var(--border);gap:0;margin-bottom:20px}
.tab{cursor:pointer;color:var(--text-secondary);border-bottom:2px solid transparent;padding:10px 20px;font-size:14px;transition:all .2s}
.tab:hover{color:var(--text-primary)}
.tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.search-bar{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);border-radius:6px;width:250px;padding:8px 12px;font-size:14px}
.search-bar:focus{border-color:var(--accent);outline:none}
.empty-state{text-align:center;color:var(--text-secondary);padding:60px 20px}
.empty-state h3{margin-bottom:8px;font-size:18px}
.empty-state p{max-width:400px;margin:0 auto;font-size:14px}
pre.raw{background:var(--bg-primary);white-space:pre-wrap;word-break:break-all;border-radius:8px;max-height:400px;padding:16px;font-size:12px;overflow-x:auto}
@media(max-width:768px){.main{margin-left:60px}.stats-grid{grid-template-columns:repeat(2,1fr)}.form-row{grid-template-columns:1fr}}
