:root { --fg:#1d1d1f; --muted:#6b6b70; --bg:#fafaf8; --card:#fff; --line:#ddd; --accent:#4b3fbf; --danger:#b42318; --note:#f3f1ff; }
@media (prefers-color-scheme: dark) { :root { --fg:#eee; --muted:#a0a0a8; --bg:#141416; --card:#1d1d20; --line:#333; --accent:#9d93ff; --danger:#ff6b5e; --note:#24213a; } }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, sans-serif; background:var(--bg); color:var(--fg); line-height:1.6; }
header { display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-bottom:1px solid var(--line); gap:12px; flex-wrap:wrap; }
header nav { display:flex; gap:14px; align-items:center; }
.brand { font-weight:700; color:var(--fg); text-decoration:none; }
main { max-width:680px; margin:0 auto; padding:16px; }
a { color:var(--accent); }
h1 { font-size:1.5rem; } h2 { font-size:1.15rem; margin-top:2em; }
button, .button { display:inline-block; font:inherit; padding:10px 16px; border-radius:8px; border:1px solid var(--accent); background:var(--accent); color:#fff; cursor:pointer; text-decoration:none; }
button.secondary, .button.secondary { background:transparent; color:var(--accent); }
button.danger { background:var(--danger); border-color:var(--danger); }
button.small { padding:4px 10px; font-size:.9rem; }
button.link { background:none; border:none; color:var(--accent); padding:0; text-decoration:underline; }
button:disabled { opacity:.5; }
.actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:1em 0; }
form.inline { display:inline; }
.stack { display:flex; flex-direction:column; gap:14px; }
label { display:flex; flex-direction:column; gap:4px; font-size:.95rem; }
label.radio { flex-direction:row; align-items:center; gap:8px; }
.row { display:flex; gap:12px; flex-wrap:wrap; } .row label { flex:1; min-width:140px; }
input, textarea, select { font:inherit; padding:8px; border:1px solid var(--line); border-radius:6px; background:var(--card); color:var(--fg); width:100%; }
input[type=radio] { width:auto; }
input.narrow { width:5em; }
fieldset { border:1px solid var(--line); border-radius:8px; display:flex; flex-direction:column; gap:6px; }
.note { background:var(--note); padding:10px 14px; border-radius:8px; font-size:.92rem; }
.error { color:var(--danger); font-weight:600; }
.muted { color:var(--muted); font-size:.9rem; }
.list { list-style:none; padding:0; } .list li { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; padding:10px 0; border-bottom:1px solid var(--line); }
dl { display:grid; grid-template-columns:max-content 1fr; gap:4px 16px; } dd { margin:0; }
.qr { display:block; margin:16px auto; background:#fff; border-radius:8px; max-width:100%; height:auto; }
.copyrow { display:flex; gap:6px; } .copyrow input { font-family:monospace; font-size:.85rem; }
table { width:100%; border-collapse:collapse; font-size:.92rem; } th, td { text-align:left; padding:6px 4px; border-bottom:1px solid var(--line); }
code { word-break:break-all; }
select { width:auto; }
