:root{--bg-base:#0a0e1a;--bg-surface:#111827;--bg-card:#1a2236;--bg-elevated:#1e2d45;--bg-hover:#243354;--accent:#14b8a6;--accent-dim:#0d9488;--accent-glow:#14b8a626;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--border:#ffffff12;--border-accent:#14b8a64d;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 8px 32px #0009;--shadow-glow:0 0 20px var(--accent-glow);--transition:.18s cubic-bezier(.4,0,.2,1);--sidebar-width:240px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{background:var(--bg-base);color:var(--text-primary);-webkit-font-smoothing:antialiased;height:100%;font-family:Inter,system-ui,sans-serif}#root{flex-direction:column;height:100%;display:flex}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-surface)}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-layout{height:100vh;display:flex;overflow:hidden}.main-content{background:var(--bg-base);flex:1;padding:32px;overflow-y:auto}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:24px}.btn{border-radius:var(--radius-sm);transition:all var(--transition);white-space:nowrap;border:none;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:500;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dim);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--accent)}.btn-danger{color:var(--danger);background:#ef444426;border:1px solid #ef44444d}.btn-danger:hover{background:#ef444440}.btn-ghost{color:var(--text-secondary);background:0 0;border:1px solid #0000}.btn-ghost:hover{background:var(--bg-elevated);color:var(--text-primary)}.btn-sm{padding:5px 10px;font-size:13px}.btn-icon{padding:8px}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{color:var(--text-secondary);font-size:13px;font-weight:500}.form-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);transition:border-color var(--transition);width:100%;padding:10px 12px;font-size:14px}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.form-input::placeholder{color:var(--text-muted)}.form-error{color:var(--danger);font-size:12px}.badge{border-radius:100px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.badge-success{color:var(--success);background:#22c55e1f;border:1px solid #22c55e40}.badge-warning{color:var(--warning);background:#f59e0b1f;border:1px solid #f59e0b40}.badge-danger{color:var(--danger);background:#ef44441f;border:1px solid #ef444440}.badge-info{color:var(--info);background:#3b82f61f;border:1px solid #3b82f640}.badge-muted{color:var(--text-muted);border:1px solid var(--border);background:#64748b1f}.table-container{border-radius:var(--radius-lg);border:1px solid var(--border);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}thead{background:var(--bg-elevated)}th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-bottom:1px solid var(--border);padding:12px 16px;font-size:12px;font-weight:600}td{color:var(--text-primary);border-bottom:1px solid var(--border);vertical-align:middle;padding:14px 16px}tbody tr{transition:background var(--transition)}tbody tr:hover{background:var(--bg-elevated)}tbody tr:last-child td{border-bottom:none}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#000000b3;justify-content:center;align-items:center;padding:16px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:560px;box-shadow:var(--shadow-lg);max-height:90vh;animation:.2s slideUp;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-title{font-size:18px;font-weight:600}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:transform var(--transition), box-shadow var(--transition);flex-direction:column;gap:8px;padding:24px;display:flex}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.stat-label{color:var(--text-muted);font-size:13px;font-weight:500}.stat-value{color:var(--text-primary);font-size:32px;font-weight:700}.stat-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:40px;height:40px;margin-bottom:4px;display:flex}.page-header{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.page-title{color:var(--text-primary);font-size:24px;font-weight:700}.page-subtitle{color:var(--text-muted);margin-top:2px;font-size:14px}.empty-state{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 24px;display:flex}.empty-state svg{opacity:.4}.empty-state h3{color:var(--text-secondary);font-size:16px}.empty-state p{text-align:center;font-size:14px}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.loading-center{justify-content:center;align-items:center;min-height:200px;display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}
