:root { --bg:#0d0f12; --panel:#15181d; --text:#e8e6e1; --dim:#9a968e; --gold:#c9a227; --line:#2a2e35; --ok:#3fae5a; --bad:#d9644a; }
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) { --bg:#faf8f4; --panel:#ffffff; --text:#1d1f23; --dim:#6b675f; --gold:#9a7b1c; --line:#e2ddd2; --ok:#2e7d43; --bad:#b4442c; }
}
* { margin:0; padding:0; box-sizing:border-box; }
body { background:var(--bg); color:var(--text); font:17px/1.65 Georgia, "Times New Roman", serif; }
.wrap { max-width:640px; margin:0 auto; padding:3rem 16px; }
h1 { font-size:2.2rem; letter-spacing:.01em; }
h1 .mark { color:var(--gold); }
.tag { color:var(--dim); font-style:italic; margin:.3rem 0 1.8rem; }
h2 { font-size:1.15rem; margin:2.2rem 0 .6rem; border-bottom:1px solid var(--line); padding-bottom:.3rem; }
p, li { margin:.6rem 0; }
ul { padding-left:1.2rem; }
a { color:var(--gold); }
.mono { font-family:ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size:.85em; overflow-wrap:anywhere; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:8px; padding:1.2rem; }
label { display:block; font-weight:bold; margin-bottom:.4rem; }
input { width:100%; font:15px/1.4 ui-monospace, "SF Mono", Menlo, Consolas, monospace; color:var(--text); background:var(--bg);
  border:1px solid var(--line); border-radius:6px; padding:.65rem .75rem; }
input:focus { outline:2px solid var(--gold); outline-offset:1px; }
.hint { color:var(--dim); font-size:.92rem; }
button { font:bold 16px/1 Georgia, "Times New Roman", serif; background:var(--gold); color:var(--bg); border:0; border-radius:6px;
  padding:.8rem 1.3rem; cursor:pointer; margin-top:.4rem; }
button:disabled { opacity:.55; cursor:default; }
.result { margin-top:1rem; padding:.6rem .8rem; border-radius:6px; border-left:3px solid var(--line); word-break:break-word; }
.result.ok { border-left-color:var(--ok); }
.result.bad { border-left-color:var(--bad); }
.foot { margin-top:2.6rem; padding-top:1rem; border-top:1px solid var(--line); color:var(--dim); font-size:.9rem; }
