:root{--bg-dark: #090b10;--bg-surface: #12151e;--bg-surface-elevated: #1a1e2b;--bg-surface-glass: rgba(26, 30, 43, .75);--border-subtle: rgba(255, 255, 255, .08);--border-medium: rgba(255, 255, 255, .16);--border-glow: rgba(99, 102, 241, .4);--accent-primary: #6366f1;--accent-primary-hover: #4f46e5;--accent-glow: rgba(99, 102, 241, .25);--accent-cyan: #06b6d4;--accent-cyan-glow: rgba(6, 182, 212, .2);--status-success: #10b981;--status-success-bg: rgba(16, 185, 129, .15);--status-warning: #f59e0b;--status-warning-bg: rgba(245, 158, 11, .15);--status-danger: #ef4444;--status-danger-bg: rgba(239, 68, 68, .15);--status-info: #3b82f6;--text-main: #f8fafc;--text-muted: #94a3b8;--text-dim: #64748b;--font-sans: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-pill: 9999px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .2);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--transition-fast: .15s ease;--transition-normal: .25s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-sans);background-color:var(--bg-dark);color:var(--text-main);line-height:1.5;font-size:15px;user-select:none;-webkit-user-select:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0003}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}h1,h2,h3,h4,h5,h6{font-weight:700;color:var(--text-main);letter-spacing:-.02em}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);backdrop-filter:blur(12px);transition:transform var(--transition-normal),border-color var(--transition-normal),box-shadow var(--transition-normal)}.card-hover:hover{border-color:var(--border-medium);transform:translateY(-2px);box-shadow:var(--shadow-lg)}button{font-family:var(--font-sans);cursor:pointer;border:none;outline:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:600;border-radius:var(--radius-md);background:var(--accent-primary);color:#fff;transition:all var(--transition-fast);box-shadow:0 4px 12px #6366f14d}.btn:hover:not(:disabled){background:var(--accent-primary-hover);transform:translateY(-1px);box-shadow:0 6px 16px #6366f173}.btn:active:not(:disabled){transform:translateY(1px);box-shadow:0 2px 8px #6366f133}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.btn-secondary{background:var(--bg-surface-elevated);color:var(--text-main);border:1px solid var(--border-subtle);box-shadow:none}.btn-secondary:hover:not(:disabled){background:#ffffff1a;border-color:var(--border-medium);box-shadow:none}.btn-success{background:var(--status-success);box-shadow:0 4px 12px #10b9814d}.btn-success:hover:not(:disabled){background:#059669;box-shadow:0 6px 16px #10b98173}.btn-danger{background:var(--status-danger);box-shadow:0 4px 12px #ef44444d}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:0 6px 16px #ef444473}.btn-warning{background:var(--status-warning);color:#000;box-shadow:0 4px 12px #f59e0b4d}.btn-lg{padding:16px 24px;font-size:16px;border-radius:var(--radius-lg);font-weight:700}.btn-icon{width:44px;height:44px;padding:0;border-radius:var(--radius-md)}input,select,textarea{font-family:var(--font-sans);font-size:14px;background:var(--bg-surface-elevated);color:var(--text-main);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:12px 16px;outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,select:focus,textarea:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-glow)}input::placeholder,textarea::placeholder{color:var(--text-dim)}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.badge-success{background:var(--status-success-bg);color:#34d399;border:1px solid rgba(16,185,129,.3)}.badge-warning{background:var(--status-warning-bg);color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.badge-danger{background:var(--status-danger-bg);color:#f87171;border:1px solid rgba(239,68,68,.3)}.badge-info{background:#3b82f626;color:#60a5fa;border:1px solid rgba(59,130,246,.3)}.badge-neutral{background:#ffffff14;color:var(--text-muted);border:1px solid var(--border-subtle)}.toast-stack{position:fixed;top:20px;right:20px;display:flex;flex-direction:column;gap:10px;z-index:9999}.toast{padding:14px 20px;border-radius:var(--radius-md);color:#fff;font-weight:600;min-width:280px;box-shadow:var(--shadow-lg);backdrop-filter:blur(16px);animation:slideInRight .3s cubic-bezier(.16,1,.3,1)}.toast-success{background:#10b981f2;border:1px solid rgba(52,211,153,.4)}.toast-error{background:#ef4444f2;border:1px solid rgba(248,113,113,.4)}.toast-info{background:#3b82f6f2;border:1px solid rgba(96,165,250,.4)}table{width:100%;border-collapse:separate;border-spacing:0}th{background:#ffffff08;color:var(--text-muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:14px 16px;border-bottom:1px solid var(--border-subtle)}td{padding:14px 16px;border-bottom:1px solid var(--border-subtle);color:var(--text-main);font-size:14px}tr:last-child td{border-bottom:none}tr:hover td{background:#ffffff05}.screen-centered{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at center,#1e1b4b 0%,var(--bg-dark) 70%);padding:24px}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes pulseGlow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.02)}}.pulse-live{display:inline-block;width:8px;height:8px;border-radius:50%;background-color:var(--status-success);box-shadow:0 0 8px var(--status-success);animation:pulseGlow 2s infinite ease-in-out}
