:root{--bg:#fff;--fg:#0f172a;--muted:#475569;--border:#e2e8f0;--card-bg:#fff;--header-bg:#fff;--header-fg:#0f172a;--header-border:#e2e8f0;--input-bg:#fff;--input-fg:#0f172a;--input-border:#cbd5e1;--input-placeholder:#94a3b8;--focus:#3b82f659;--btn-bg:#f1f5f9;--btn-fg:#0f172a;--btn-border:#cbd5e1;--btn-bg-hover:#e2e8f0;--shadow:0 10px 25px #02061714}html[data-theme=dark]{--bg:#0b1220;--fg:#e5e7eb;--muted:#a1a1aa;--border:#1f2937;--card-bg:#0f172a;--header-bg:#0b1220;--header-fg:#e5e7eb;--header-border:#1f2937;--input-bg:#0f172a;--input-fg:#e5e7eb;--input-border:#334155;--input-placeholder:#64748b;--focus:#3b82f673;--btn-bg:#111827;--btn-fg:#e5e7eb;--btn-border:#334155;--btn-bg-hover:#0f172a;--shadow:0 12px 28px #00000059}@media (prefers-color-scheme:dark){html:not([data-theme]){--bg:#0b1220;--fg:#e5e7eb;--muted:#a1a1aa;--border:#1f2937;--card-bg:#0f172a;--header-bg:#0b1220;--header-fg:#e5e7eb;--header-border:#1f2937;--input-bg:#0f172a;--input-fg:#e5e7eb;--input-border:#334155;--input-placeholder:#64748b;--focus:#3b82f673;--btn-bg:#111827;--btn-fg:#e5e7eb;--btn-border:#334155;--btn-bg-hover:#0f172a;--shadow:0 12px 28px #00000059}}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--fg);margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,Apple Color Emoji,Segoe UI Emoji}.app-header{z-index:50;background:var(--header-bg);color:var(--header-fg);border-bottom:1px solid var(--header-border);position:sticky;top:0}.header-inner{align-items:center;gap:12px;max-width:1200px;margin:0 auto;padding:12px 16px;display:flex}.header-left{align-items:center;gap:10px;min-width:160px;display:flex}.header-links{align-items:center;gap:12px;display:flex}.header-spacer{flex:1}.btn{appearance:none;border:1px solid var(--btn-border);background:var(--btn-bg);color:var(--btn-fg);cursor:pointer;border-radius:10px;padding:8px 10px;font-weight:600;line-height:1}.btn:hover{background:var(--btn-bg-hover)}.btn:focus{box-shadow:0 0 0 4px var(--focus);outline:none}.input{border:1px solid var(--input-border);background:var(--input-bg);width:100%;color:var(--input-fg);border-radius:12px;padding:10px 12px}.input::placeholder{color:var(--input-placeholder)}.input:focus{box-shadow:0 0 0 4px var(--focus);outline:none}.modal-backdrop{z-index:60;background:#00000059;justify-content:center;align-items:flex-start;padding:80px 16px 16px;display:flex;position:fixed;inset:0}.modal{background:var(--card-bg);border:1px solid var(--border);width:100%;max-width:720px;box-shadow:var(--shadow);border-radius:16px;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);padding:14px 14px 10px}.modal-body{padding:10px 0}.result-row{cursor:pointer;flex-direction:column;gap:2px;padding:10px 14px;display:flex}.result-row:hover{background:#94a3b81f}.result-title{font-weight:700}.result-subtitle{color:var(--muted);font-size:13px}.kbd{border:1px solid var(--border);color:var(--muted);background:#94a3b81f;border-radius:6px;padding:2px 6px;font-size:12px}.toaster{z-index:9999;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:24px;right:24px}.toast{pointer-events:all;border-radius:12px;align-items:center;gap:12px;min-width:240px;max-width:400px;padding:12px 16px;font-size:14px;font-weight:600;animation:.22s toast-in;display:flex;box-shadow:0 4px 20px #00000024}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-success{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.toast-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.toast-info{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}html[data-theme=dark] .toast-success{color:#a7f3d0;background:#064e3b;border-color:#065f46}html[data-theme=dark] .toast-error{color:#fca5a5;background:#450a0a;border-color:#991b1b}html[data-theme=dark] .toast-info{color:#93c5fd;background:#1e3a5f;border-color:#1e40af}.toast-msg{flex:1}.toast-close{cursor:pointer;opacity:.6;color:inherit;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.toast-close:hover{opacity:1}.spinner{vertical-align:middle;border:2px solid;border-top-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}
