:root{--bg:#fffaf0;--card:#fff;--ink:#2b2b2b;--mut:#6b6b6b;--line:#eadfbf;--acc:#c0392b;--acc-d:#962d22;--yel:#f4c542;--ok:#1e7a46;--err:#b3261e}
@media (prefers-color-scheme:dark){:root{--bg:#1d1b16;--card:#27241d;--ink:#f1ece0;--mut:#b9b19c;--line:#40392b;--acc:#ef7d6e;--acc-d:#f19588;--yel:#c9a02a;--ok:#5fcf8f;--err:#ff8a80}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 "Segoe UI",system-ui,sans-serif}
.wrap{max-width:860px;margin:0 auto;padding:16px}
header.top{background:var(--yel);color:#2b2b2b}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:12px}
header.top h1{font-size:1.15rem;margin:0}
h2{font-size:1.2rem;margin:22px 0 10px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 12px}
.card h3{margin:0 0 4px;font-size:1.05rem}
.mut{color:var(--mut);font-size:.9rem}
.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.grow{flex:1 1 auto}
label{display:block;font-weight:600;margin:10px 0 4px}
input,select,textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
textarea{min-height:90px;resize:vertical}
button,.btn{font:inherit;font-weight:600;border:0;border-radius:8px;padding:10px 16px;background:var(--acc);color:#fff;cursor:pointer;text-decoration:none;display:inline-block;min-height:44px}
button:hover,.btn:hover{background:var(--acc-d)}
button.sec{background:transparent;color:var(--acc);border:1px solid var(--acc)}
button.sec:hover{background:rgba(192,57,43,.08)}
button:disabled{opacity:.6;cursor:wait}
:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
.msg{min-height:1.4em;margin:8px 0;font-weight:600}
.msg.ok{color:var(--ok)}.msg.err{color:var(--err)}
.tag{display:inline-block;background:var(--yel);color:#2b2b2b;border-radius:999px;padding:1px 10px;font-size:.8rem;font-weight:700}
.code{font:700 1.3rem ui-monospace,Consolas,monospace;letter-spacing:.12em}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}
.tabs button{background:transparent;color:var(--ink);border:1px solid var(--line)}
.tabs button[aria-selected=true]{background:var(--acc);color:#fff;border-color:var(--acc)}
.hide{display:none!important}
.empty{text-align:center;padding:28px 12px;color:var(--mut)}
