:root{--bg:#f6f5f2;--card:#ffffff;--text:#1f2421;--muted:#6b7280;--border:#e3e1db;--accent:#2f6f5e;--accent-hover:#275c4e;--danger:#b4423a;--code-bg:#f0efeb}@media (prefers-color-scheme:dark){:root{--bg:#16181a;--card:#1f2225;--text:#e8e6e1;--muted:#9aa0a6;--border:#33373b;--accent:#4fa78e;--accent-hover:#5fb89e;--danger:#d9736c;--code-bg:#26292d}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}main{max-width:760px;margin:0 auto;padding:2.5rem 1.25rem 4rem}h1{font-size:1.6rem;margin:0 0 .25rem}.subtitle{color:var(--muted);margin:0 0 2rem}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:1.25rem;margin-bottom:1.5rem}.card h2{font-size:1.05rem;margin:0 0 .25rem}.card .hint{color:var(--muted);font-size:.85rem;margin:0 0 1rem}.card .hint code{background:var(--code-bg);padding:.1em .35em;border-radius:4px;font-size:.85em}label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.3rem}input[type=password],input[type=text],select{width:100%;padding:.55rem .7rem;border:1px solid var(--border);border-radius:7px;background:var(--bg);color:var(--text);font-size:.9rem;margin-bottom:.9rem}input:focus{outline:2px solid var(--accent);outline-offset:-1px}input[type=file]{margin-bottom:.9rem;font-size:.9rem}button{background:var(--accent);color:#fff;border:none;border-radius:7px;padding:.55rem 1.1rem;font-size:.9rem;font-weight:600;cursor:pointer}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}.result{margin-top:1rem}.result .status{font-size:.85rem;font-weight:600;margin-bottom:.35rem}.result .status.ok{color:var(--accent)}.result .status.err{color:var(--danger)}pre{background:var(--code-bg);border:1px solid var(--border);border-radius:7px;padding:.75rem;font-size:.8rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word;margin:0;max-height:320px;overflow-y:auto}.row{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.row>.grow{flex:1 1;min-width:200px}.row input,.row select{margin-bottom:0}.row select{width:auto}