:root{--bg: #0f172a;--surface: #1e293b;--surface2: #1a2332;--text: #f1f5f9;--text-secondary: #94a3b8;--muted: #64748b;--accent: #3b82f6;--accent-dim: #2563eb;--accent-glow: rgba(59, 130, 246, .15);--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .1);--success: #22c55e;--warning: #f59e0b;--border: #334155;--divider: #1e293b;--sidebar-w: 200px;--sidebar-collapsed: 60px;--header-h: 64px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .2), 0 4px 12px rgba(0, 0, 0, .3);--shadow-dropdown: 0 8px 24px rgba(0, 0, 0, .4);--radius-card: 20px;--radius-btn: 8px;--radius-sm: 6px}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}input,textarea,select{font:inherit;color:var(--text);background:#0f172a;border:1px solid var(--border);border-radius:var(--radius-btn);padding:10px 14px;width:100%;outline:none;transition:border-color .2s,box-shadow .2s}input::placeholder,textarea::placeholder{color:#475569}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3b82f626}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius-btn);border:none;font-weight:500;font-size:14px;transition:all .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-dim)}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:#3b82f614}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.field-error{color:var(--danger);font-size:12px;margin-top:4px}.card{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:24px}.table-wrap{overflow-x:auto;border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card)}table.data,table.data-table{width:100%;border-collapse:collapse;font-size:14px;min-width:800px}table.data th,table.data-table th{color:var(--text);font-weight:600;font-size:14px;line-height:48px;text-align:center;white-space:nowrap;background:#1a2332;border-bottom:1px solid var(--border);padding:0 16px;-webkit-user-select:none;user-select:none}table.data th:first-child,table.data-table th:first-child{padding-left:20px}table.data th:last-child,table.data-table th:last-child{padding-right:20px}table.data tbody tr,table.data-table tbody tr{border-bottom:1px solid var(--divider);transition:background .2s}table.data tbody tr:last-child,table.data-table tbody tr:last-child{border-bottom:none}table.data tbody tr:hover,table.data-table tbody tr:hover{background:#3b82f60a}table.data td,table.data-table td{padding:14px 16px;vertical-align:middle;color:var(--text-secondary);line-height:24px;text-align:center}table.data td:first-child,table.data-table td:first-child{padding-left:20px}table.data td:last-child,table.data-table td:last-child{padding-right:20px}.skeleton{animation:pulse 1.2s ease-in-out infinite;background:#1e293b;border-radius:6px}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.toast-host{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{min-width:240px;max-width:360px;padding:12px 16px;border-radius:10px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-dropdown);font-size:14px;color:var(--text)}.toast.err{border-color:#ef44444d;background:#ef44441a;color:#fca5a5}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9000;padding:16px}.modal{background:var(--surface);border-radius:16px;border:1px solid var(--border);width:100%;max-width:480px;max-height:90vh;overflow:auto;padding:24px;box-shadow:var(--shadow-dropdown)}.modal.wide{max-width:640px}.modal h3{margin:0 0 16px;font-size:18px;font-weight:600;color:var(--text)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.empty{text-align:center;padding:48px 16px;color:var(--muted);font-size:14px}.mono{font-family:ui-monospace,SF Mono,Cascadia Code,monospace;font-size:13px;color:var(--text-secondary)}.page-title{margin:0;font-size:20px;font-weight:600;color:var(--text)}@media (max-width: 768px){:root{--sidebar-w: 0px}}
