*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--font-display: "Syne", sans-serif;--font-body: "DM Sans", sans-serif;--bg: #0c0e14;--bg-2: #13161f;--bg-3: #1a1e2a;--bg-4: #222739;--surface: #1e2232;--surface-2: #262c40;--surface-3: #2e354d;--border: rgba(255,255,255,.07);--border-2: rgba(255,255,255,.12);--text: #f0f2f8;--text-2: #a0a8c0;--text-3: #636b85;--accent: #6c63ff;--accent-2: #8b85ff;--accent-bg: rgba(108,99,255,.12);--accent-border: rgba(108,99,255,.3);--green: #22c55e;--green-bg: rgba(34,197,94,.1);--amber: #f59e0b;--amber-bg: rgba(245,158,11,.1);--red: #ef4444;--red-bg: rgba(239,68,68,.1);--blue: #3b82f6;--blue-bg: rgba(59,130,246,.1);--radius: 10px;--radius-lg: 16px;--radius-xl: 24px;--shadow: 0 4px 24px rgba(0,0,0,.4);--shadow-sm: 0 2px 8px rgba(0,0,0,.3);--sidebar-w: 240px}html{height:100%}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100%;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;color:var(--text)}a{color:inherit;text-decoration:none}button{font-family:var(--font-body);cursor:pointer;border:none;background:none}input,select,textarea{font-family:var(--font-body);background:var(--bg-3);border:1px solid var(--border-2);color:var(--text);border-radius:var(--radius);padding:10px 14px;font-size:14px;width:100%;outline:none;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-3)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:100px;font-size:11px;font-weight:500}.badge-green{background:var(--green-bg);color:var(--green)}.badge-amber{background:var(--amber-bg);color:var(--amber)}.badge-red{background:var(--red-bg);color:var(--red)}.badge-blue{background:var(--blue-bg);color:var(--blue)}.badge-gray{background:var(--bg-4);color:var(--text-2)}.badge-accent{background:var(--accent-bg);color:var(--accent-2)}.btn{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:var(--radius);font-size:14px;font-weight:500;transition:all .15s;cursor:pointer;border:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-2)}.btn-ghost{background:transparent;color:var(--text-2);border:1px solid var(--border-2)}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--red-bg);color:var(--red);border:1px solid rgba(239,68,68,.2)}.btn-danger:hover{background:#ef444433}.btn-sm{padding:6px 12px;font-size:12px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-in{animation:fadeIn .25s ease-out}.spinning{animation:spin .8s linear infinite}.pulsing{animation:pulse 2s ease-in-out infinite}
