:root{--bg:#fff;--fg:#1a1a1a;--muted:#5a5a5a;--line:#e3e3e3;--accent:#0b57d0;--card:#f6f7f9;--bad:#b3261e}
@media (prefers-color-scheme:dark){:root{--bg:#121212;--fg:#eee;--muted:#aaa;--line:#333;--accent:#8ab4ff;--card:#1c1c1c;--bad:#f2b8b5}}
*{box-sizing:border-box}
body{margin:0;font:16px/1.75 system-ui,-apple-system,"Malgun Gothic",sans-serif;background:var(--bg);color:var(--fg)}
header,main,footer{max-width:720px;margin:0 auto;padding:0 16px}
header{padding-top:16px;padding-bottom:8px;border-bottom:1px solid var(--line)}
nav a{margin-right:14px;color:var(--accent);text-decoration:none;white-space:nowrap;display:inline-block;padding:4px 0}
h1{font-size:1.5rem;line-height:1.35;margin:24px 0 8px}
h2{font-size:1.15rem;margin:28px 0 8px}
p{margin:8px 0}
.lead{color:var(--muted)}
form{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin:16px 0}
label{display:block;font-weight:600;margin:12px 0 4px}
input,select{width:100%;font:inherit;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg)}
button{margin-top:16px;font:inherit;font-weight:700;padding:12px 20px;border:0;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;min-height:44px}
.out{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:10px}
.out strong{font-size:1.25rem}
.out .warn{color:var(--bad);font-weight:700}
table{border-collapse:collapse;width:100%;margin:12px 0;font-size:.95rem}
th,td{border:1px solid var(--line);padding:8px;text-align:right}
th:first-child,td:first-child{text-align:left}
.note{font-size:.9rem;color:var(--muted)}
footer{padding-top:24px;padding-bottom:40px;border-top:1px solid var(--line);margin-top:32px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
