*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--font-family-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-family-mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--surface-canvas:#0b1120;--surface-subtle:#0f172a;--surface-card:#1e293b;--surface-card-hover:#243248;--surface-sidebar:#090e17;--surface-overlay:#0f172ad9;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--text-inverse:#0f172a;--color-border:#334155;--color-border-subtle:#1e293b;--color-border-focus:#10b981;--accent-color:#10b981;--accent-hover:#059669;--accent-active:#047857;--accent-ink:#fff;--accent-bg-subtle:#10b9811f;--color-danger:#ef4444;--color-danger-hover:#dc2626;--color-danger-bg:#ef444426;--color-danger-border:#ef444466;--color-warning:#f59e0b;--color-warning-hover:#d97706;--color-warning-bg:#f59e0b26;--color-warning-border:#f59e0b73;--color-info:#38bdf8;--color-info-bg:#38bdf81f;--color-info-border:#38bdf859;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 12px 32px #0000008c;--focus-ring-color:#10b981;--transition-fast:.15s ease;--transition-normal:.25s ease}body{font-family:var(--font-family-body);background:var(--surface-canvas);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:var(--accent-color);transition:color var(--transition-fast);text-decoration:none}a:hover{color:#34d399;text-decoration:underline}h1,h2,h3,h4,h5,h6{color:var(--text-primary);letter-spacing:-.02em;font-weight:600;line-height:1.25}h1{margin-bottom:.5rem;font-size:1.75rem}h2{margin-top:1.5rem;margin-bottom:.75rem;font-size:1.25rem}h3{margin-bottom:.5rem;font-size:1rem}p{color:var(--text-secondary);font-size:.9375rem;line-height:1.6}.card{background:var(--surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);padding:1.5rem}.card:hover{border-color:#ffffff26}.btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--text-primary);transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-size:.875rem;font-weight:500;line-height:1.25;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-card-hover);color:#fff;border-color:#fff3}.btn:focus-visible{outline:2px solid var(--focus-ring-color);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent-color);color:#042f24;border-color:var(--accent-color);font-weight:600;box-shadow:0 1px 3px #10b9814d}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff;box-shadow:0 2px 8px #10b98166}.btn-primary:active:not(:disabled){background:var(--accent-active)}.btn-danger{background:var(--color-danger-bg);color:#fca5a5;border-color:var(--color-danger-border)}.btn-danger:hover:not(:disabled){background:var(--color-danger);border-color:var(--color-danger);color:#fff;box-shadow:0 2px 8px #ef444459}.btn-outline{border:1px solid var(--color-border);color:var(--text-secondary);background:0 0}.btn-outline:hover:not(:disabled){color:var(--text-primary);background:#ffffff0d}.btn-sm{padding:.35rem .75rem;font-size:.8125rem}.badge{border-radius:var(--radius-full);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:.35rem;padding:.2rem .6rem;font-size:.75rem;font-weight:600;line-height:1.2;display:inline-flex}.badge-success{color:#34d399;background:#10b98126;border:1px solid #10b98159}.badge-danger{color:#f87171;background:#ef444426;border:1px solid #ef444459}.badge-warning{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b59}.badge-neutral{color:#94a3b8;background:#94a3b826;border:1px solid #94a3b84d}.badge-info{color:#38bdf8;background:#38bdf826;border:1px solid #38bdf859}.error-banner{background:var(--color-danger-bg);color:#fca5a5;border:1px solid var(--color-danger-border);border-radius:var(--radius-sm);align-items:center;gap:.75rem;margin-bottom:1.25rem;padding:.875rem 1.1rem;font-size:.875rem;display:flex}.security-alert-box{border-radius:var(--radius-md);background:linear-gradient(135deg,#ef444426 0%,#f59e0b1f 100%);border:2px solid #ef4444;margin-bottom:1.75rem;padding:1.5rem;box-shadow:0 4px 20px #ef444433}.security-alert-box h2{color:#fca5a5;letter-spacing:.05em;text-transform:uppercase;align-items:center;gap:.5rem;margin-top:0;margin-bottom:.5rem;font-size:1.15rem;font-weight:700;display:flex}.security-alert-box p{color:#cbd5e1;margin-bottom:.75rem;font-size:.9rem}.security-alert-box .notice-highlight{color:#fde047;font-weight:600}.security-alert-box .redirect-container{border-radius:var(--radius-sm);background:#0f172abf;border:1px solid #f59e0b4d;justify-content:space-between;align-items:center;gap:1rem;margin-top:.75rem;padding:.75rem 1rem;display:flex}.table-container{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--surface-card);width:100%;margin-top:1.25rem;overflow-x:auto}table.admin-table{border-collapse:collapse;text-align:left;width:100%;font-size:.875rem}table.admin-table th{background:var(--surface-subtle);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--color-border);padding:.875rem 1.25rem;font-size:.75rem;font-weight:600}table.admin-table td{border-bottom:1px solid var(--color-border);color:var(--text-primary);vertical-align:middle;padding:1rem 1.25rem}table.admin-table tbody tr:last-child td{border-bottom:none}table.admin-table tbody tr:hover{background:#ffffff05}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-top:1.5rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast), border-color var(--transition-fast);flex-direction:column;justify-content:space-between;padding:1.25rem;display:flex}.stat-card:hover{border-color:#fff3;transform:translateY(-2px)}.stat-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.stat-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8125rem;font-weight:600}.stat-icon{color:var(--accent-color);align-items:center;display:flex}.stat-value{color:var(--text-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-bottom:.5rem;font-size:2.25rem;font-weight:700;line-height:1}.stat-footer{color:var(--text-secondary);align-items:center;gap:.35rem;font-size:.8125rem;display:flex}.action-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;margin-top:1rem;margin-bottom:2rem;display:grid}.action-card{background:var(--surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);flex-direction:column;justify-content:space-between;padding:1.25rem;text-decoration:none;display:flex}.action-card:hover{background:var(--surface-card-hover);border-color:var(--accent-color);text-decoration:none;transform:translateY(-2px)}.action-card-header{align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.action-card-title{color:var(--text-primary);font-size:1rem;font-weight:600}.action-card-desc{color:var(--text-secondary);margin-bottom:1rem;font-size:.85rem;line-height:1.45}.action-card-arrow{color:var(--accent-color);align-items:center;gap:.35rem;font-size:.8125rem;font-weight:600;display:flex}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-subtle{0%,to{opacity:1}50%{opacity:.4}}.pulse-dot{background-color:#10b981;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite pulse-subtle;display:inline-block}
