:root{--bg:#f8fafc;--surface:#fff;--surface-2:#f1f5f9;--border:#e2e8f0;--border-strong:#cbd5e1;--text:#0f172a;--text-2:#334155;--muted:#64748b;--accent:#4f46e5;--accent-2:#4338ca;--accent-grad:linear-gradient(135deg, #4f46e5, #6366f1);--accent-soft:#eef2ff;--accent-line:#e0e7ff;--accent-ring:#4f46e529;--err:#dc2626;--warn:#b45309;--warn-soft:#fffbeb;--ok:#16a34a;--shadow-sm:0 1px 3px #0f172a0f;--shadow-md:0 1px 3px #0f172a0d, 0 12px 30px #0f172a0f}body{background:radial-gradient(1100px 520px at 100% -15%, #eef2ff 0%, transparent 55%), var(--bg);color:var(--text);margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}.field{flex-direction:column;gap:.4rem;display:flex}.label{color:var(--text-2);align-items:center;gap:.5rem;font-size:.82rem;font-weight:600;display:inline-flex}.label small{color:var(--muted);font-weight:400}.hint{color:var(--muted);font-size:.76rem}.sub{color:var(--muted);font-size:.85rem;font-weight:400}.pill{border-radius:999px;padding:.05rem .45rem;font-size:.68rem;font-weight:600}.pill.ok{color:var(--ok);background:#ecfdf5}.err{color:var(--err)}input,textarea{border:1px solid var(--border);color:var(--text);font:inherit;box-sizing:border-box;background:#fff;border-radius:10px;width:100%;padding:.6rem .75rem;transition:border-color .12s,box-shadow .12s}textarea{resize:vertical;font-size:.82rem;line-height:1.45}input::placeholder,textarea::placeholder{color:#aab2c0}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.primary{background:var(--accent);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:11px;align-items:center;gap:.5rem;padding:.75rem 1.7rem;font-weight:650;transition:transform 80ms,box-shadow .12s,background .12s,opacity .12s;display:inline-flex;box-shadow:0 1px 2px #0f172a29}.primary.sm{border-radius:9px;padding:.55rem 1.15rem}.primary:hover:not(:disabled){background:var(--accent-2);transform:translateY(-1px);box-shadow:0 4px 12px #4f46e547}.primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.ghost{border:1px solid var(--border-strong);color:var(--text-2);font:inherit;cursor:pointer;background:#fff;border-radius:9px;padding:.5rem .85rem;font-size:.83rem;font-weight:550;transition:background .12s,border-color .12s}.ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--muted)}.ghost:disabled{opacity:.5;cursor:not-allowed}.ghost.xs,.dl{border-radius:7px;padding:.28rem .55rem;font-size:.72rem;font-weight:600}.dl{color:var(--accent);border:1px solid var(--accent-line);background:var(--accent-soft);cursor:pointer;font-family:inherit;text-decoration:none;transition:background .12s}.dl:hover:not(:disabled){background:#e0e7ff}.dl:disabled{opacity:.55;cursor:wait}.linklike{font:inherit;color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.spinner{border:2px solid #ffffff73;border-top-color:#fff;border-radius:50%;flex:none;width:14px;height:14px;animation:.7s linear infinite spin}.spinner.dark{border-color:var(--accent-line);border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.checker{background-color:#fff;background-image:linear-gradient(45deg,#d4d4d8 25%,#0000 25%),linear-gradient(-45deg,#d4d4d8 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#d4d4d8 75%),linear-gradient(-45deg,#0000 75%,#d4d4d8 75%);background-position:0 0,0 9px,9px -9px,-9px 0;background-size:18px 18px}summary{cursor:pointer;color:var(--muted);font-size:.85rem}pre{white-space:pre-wrap;background:var(--surface);border:1px solid var(--border);color:var(--text-2);border-radius:10px;margin-top:.6rem;padding:1rem;font-size:.78rem}.seg{border:1px solid var(--border);background:var(--surface);border-radius:9px;display:inline-flex;overflow:hidden}.seg button{font:inherit;color:var(--text-2);cursor:pointer;background:0 0;border:0;padding:.35rem .7rem;font-size:.78rem;font-weight:550}.seg button+button{border-left:1px solid var(--border)}.seg button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}
