*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a0f;--bg2: #111118;--bg3: #1a1a24;--bg4: #22223a;--border: #2a2a40;--border2: #3a3a55;--text: #f0f0ff;--text2: #a0a0c0;--text3: #606080;--accent: #7c5cff;--accent2: #a084ff;--green: #00e5a0;--orange: #ff8c42;--pink: #ff4d8d;--yellow: #ffd700;--radius: 12px;--radius-sm: 8px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.6}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);border:none;cursor:pointer;font-size:13px;font-weight:600;transition:all .15s}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent2);transform:translateY(-1px)}.btn-ghost{background:var(--bg3);color:var(--text2);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.btn-green{background:var(--green);color:#000}.btn-green:hover:not(:disabled){opacity:.85}input,textarea,select{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:8px 12px;font-size:13px;outline:none;transition:border-color .15s;width:100%}input:focus,textarea:focus,select:focus{border-color:var(--accent)}select option{background:var(--bg3)}textarea{resize:vertical;font-family:inherit}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600}.tag-purple{background:#7c5cff33;color:var(--accent2)}.tag-green{background:#00e5a026;color:var(--green)}.tag-orange{background:#ff8c4226;color:var(--orange)}.tag-pink{background:#ff4d8d26;color:var(--pink)}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.spin{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
