@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&family=Poppins:wght@400;500;600;700;800;900&display=swap";
:root,[data-theme=dark]{--bg-page:#0f172a;--bg-card:#1e293b;--bg-input:#0f172a;--bg-nav:#0f172af7;--border:#334155;--border-light:#1e293b;--text-primary:#f8fafc;--text-secondary:#a8b8cc;--text-muted:#7c8fa3;--text-faint:#475569;--action:#2563eb;--action-hover:#1d4ed8;--action-light:#2563eb14;--action-border:#1d4ed8;--accent:#60a5fa;--scanline:#60a5fa;--badge-action-text:#60a5fa;--badge-action-border:#1d4ed8;--badge-action-bg:#2563eb14;--font-heading:"Inter",system-ui,sans-serif;--font-body:"Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--radius:0px;--nav-border:#334155}[data-theme=coral]{--bg-page:#f5f4f1;--bg-card:#edecea;--bg-input:#fafaf9;--bg-nav:#f5f4f1f7;--border:#d8d6d0;--border-light:#e4e2dc;--text-primary:#333;--text-secondary:#2b2d31;--text-muted:#666870;--text-faint:#888b93;--action:#ff6b5a;--action-hover:#e85a49;--action-light:#ff6b5a14;--action-border:#ff6b5a;--accent:#ff6b5a;--scanline:#ff6b5a;--badge-action-text:#ff6b5a;--badge-action-border:#ffbdb7;--badge-action-bg:#ff6b5a12;--font-heading:"Poppins",system-ui,sans-serif;--font-body:"Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--radius:6px;--nav-border:#e2e2e4}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background:var(--bg-page);color:var(--text-primary);line-height:1.6;transition:background .25s,color .25s}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:-.03em;font-weight:800;line-height:1}.font-mono{font-family:var(--font-mono)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-card)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}:focus-visible{outline:2px solid var(--action);outline-offset:2px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tce-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:background .25s,border-color .25s}.tce-card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.btn-primary{background:var(--action);color:#fff;border-radius:var(--radius);cursor:pointer;font-size:15px;font-weight:700;font-family:var(--font-body);border:none;align-items:center;gap:8px;padding:12px 28px;transition:background .15s;display:inline-flex}.btn-primary:hover{background:var(--action-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;font-size:13px;font-family:var(--font-body);background:0 0;align-items:center;gap:6px;padding:8px 12px;transition:all .15s;display:inline-flex}.btn-ghost:hover{color:var(--text-primary);border-color:var(--text-muted)}.tce-input{background:var(--bg-input);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:var(--radius);font-size:15px;font-family:var(--font-body);padding:12px 16px;transition:border-color .15s}.tce-input::placeholder{color:var(--text-muted)}.tce-input:focus{border-color:var(--action);outline:none}.tce-input.error{border-color:#f87171}.badge{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;border-radius:var(--radius);border:1px solid;align-items:center;gap:5px;padding:3px 8px;font-size:11px;display:inline-flex}.badge-blue{color:var(--badge-action-text);border-color:var(--badge-action-border);background:var(--badge-action-bg)}.badge-green{color:#22c55e;background:#22c55e14;border-color:#166534}[data-theme=coral] .badge-green{color:#16a34a;background:#22c55e0f;border-color:#bbf7d0}.badge-gray{color:var(--text-muted);border-color:var(--border);background:0 0}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:2px solid #fff3;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}[data-theme=coral] .spinner{border-color:#ff6b5a #ff6b5a33 #ff6b5a33}@keyframes scanline{0%{top:0%}to{top:100%}}.scanline{background:linear-gradient(90deg,transparent,var(--scanline),transparent);opacity:.6;height:2px;animation:2s linear infinite scanline;position:absolute;left:0;right:0}@keyframes progress{0%{width:0%}to{width:95%}}.progress-bar{background:var(--action);border-radius:var(--radius);height:100%;animation:3s ease-out forwards progress}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.pulse-dot{background:#22c55e;border-radius:50%;width:7px;height:7px;animation:2s ease-in-out infinite pulse;display:inline-block}[data-theme=coral] .pulse-dot{background:#16a34a}.theme-toggle{border:1px solid var(--border);color:var(--text-muted);font-size:12px;font-family:var(--font-mono);cursor:pointer;border-radius:var(--radius);letter-spacing:.04em;background:0 0;align-items:center;gap:7px;padding:6px 12px;transition:all .15s;display:flex}.theme-toggle:hover{border-color:var(--action);color:var(--action)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
