/* Works – schlichte Kontor-Farben (Merchant Noir 1.1: braun, Messingkante), gut lesbar */
:root { --bg:#1d1612; --panel:#2a2019; --line:#b08d57; --text:#efe6d6; --muted:#b9a98f; --ok:#8fbf7a; --bad:#e08a6c; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:15px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; }
.top { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between; padding:.8rem 1rem; border-bottom:1px solid var(--line); background:var(--panel); }
.brand { font-weight:700; letter-spacing:.04em; } .brand span { color:var(--line); }
nav { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
nav a, .link { color:var(--text); text-decoration:none; background:none; border:0; font:inherit; cursor:pointer; padding:0; }
nav a:hover, .link:hover { color:var(--line); }
main { padding:1rem; max-width:1200px; margin:0 auto; }
footer { padding:1rem; color:var(--muted); font-size:.85rem; text-align:center; }
h1 { margin:.2rem 0 1rem; font-size:1.5rem; } h2 { font-size:1.1rem; margin:0 0 .6rem; color:var(--line); } h3 { font-size:1rem; margin:.8rem 0 .3rem; }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:1rem; }
.card { background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:1rem; overflow-x:auto; }
.card.wide { grid-column:1 / -1; } .card.narrow { max-width:420px; margin:2rem auto; }
dl { display:grid; grid-template-columns:auto 1fr; gap:.2rem .8rem; margin:0; } dt { color:var(--muted); } dd { margin:0; word-break:break-all; }
table { width:100%; border-collapse:collapse; font-size:.92rem; } th, td { text-align:left; padding:.3rem .4rem; border-bottom:1px solid #4a3a2c; } th { color:var(--muted); font-weight:600; }
label { display:block; margin:.6rem 0; color:var(--muted); }
input, select { display:block; width:100%; margin-top:.2rem; padding:.5rem; background:#1d1612; color:var(--text); border:1px solid #6b5640; border-radius:3px; font:inherit; }
button { margin-top:.6rem; padding:.55rem 1rem; background:var(--line); color:#1d1612; border:0; border-radius:3px; font-weight:700; cursor:pointer; }
.inline { display:inline; } .inline button { margin:0; }
.ok { color:var(--ok); } .bad, .error { color:var(--bad); } .hint { color:var(--muted); font-size:.9rem; }
.qr { display:block; margin:1rem auto; background:#fff; padding:8px; max-width:100%; }
code { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.9em; }
