:root{--bg: #080811;--surface: #0f0f1e;--card: #141426;--card-hover: #1a1a30;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .14);--text: #e8e8f4;--text-muted: #6b6b8d;--text-dim: #9898b8;--accent: #7c3aed;--accent-light: rgba(124, 58, 237, .18);--accent-glow: rgba(124, 58, 237, .35);--radius: 10px;--radius-sm: 6px;--radius-lg: 16px;--font-head: "Syne", sans-serif;--font-body: "IBM Plex Sans", sans-serif;--nav-h: 60px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.08) 0%,transparent 100%),radial-gradient(1px 1px at 80% 10%,rgba(255,255,255,.06) 0%,transparent 100%),radial-gradient(1px 1px at 50% 70%,rgba(255,255,255,.05) 0%,transparent 100%),radial-gradient(1px 1px at 10% 80%,rgba(255,255,255,.04) 0%,transparent 100%),radial-gradient(600px circle at 80% 0%,rgba(124,58,237,.06) 0%,transparent 60%);pointer-events:none;z-index:0}#root{position:relative;z-index:1;min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#ffffff38}h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;line-height:1.2;letter-spacing:-.02em}button{font-family:var(--font-body);cursor:pointer;border:none;outline:none}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{font-family:var(--font-body);font-size:15px;outline:none;border:none}.page{padding-top:calc(var(--nav-h) + 32px);padding-bottom:64px;min-height:100vh}.container{max-width:1280px;margin:0 auto;padding:0 24px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;gap:16px;flex-wrap:wrap}.page-title{font-size:28px;font-weight:800;letter-spacing:-.03em;color:var(--text)}.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:var(--accent);color:#fff;border-radius:var(--radius);font-size:14px;font-weight:600;transition:opacity .15s,transform .1s}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:transparent;color:var(--text-dim);border:1px solid var(--border-strong);border-radius:var(--radius);font-size:14px;font-weight:500;transition:color .15s,border-color .15s,background .15s}.btn-ghost:hover{color:var(--text);border-color:#ffffff40;background:#ffffff0a}.score-badge{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;border-radius:var(--radius-sm);font-family:var(--font-head);font-size:18px;font-weight:800;letter-spacing:-.02em}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .15s ease}.modal-box{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:100%;max-width:540px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 80px #0009;animation:slideUp .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 24px;color:var(--text-muted);text-align:center}.empty-state svg{opacity:.3}.empty-state p{font-size:14px;max-width:240px}.spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.08);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:99px;font-size:11px;font-weight:500;background:#ffffff0f;color:var(--text-dim);white-space:nowrap}@media (max-width: 640px){.container{padding:0 16px}.page-title{font-size:22px}.page{padding-top:calc(var(--nav-h) + 20px)}}
