:root{--bg:#fafaf8;--fg:#1a1a1a;--mute:#666;--line:#e3e1dc;--acc:#1f3a5f}
@media (prefers-color-scheme:dark){:root{--bg:#141414;--fg:#eee;--mute:#aaa;--line:#2c2c2c;--acc:#8fb3e0}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-family:"Hiragino Sans","Noto Sans JP",sans-serif;line-height:1.8}
header,main,footer{max-width:880px;margin:0 auto;padding:0 20px}
header{display:flex;justify-content:space-between;align-items:center;padding-top:22px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.logo{font-weight:700;letter-spacing:.08em;color:var(--fg);text-decoration:none}
nav a{color:var(--mute);text-decoration:none;margin-left:18px;font-size:14px}
h1{font-size:30px;margin:56px 0 8px;line-height:1.4}h2{font-size:19px;margin:44px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.lead{color:var(--mute)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.card{border:1px solid var(--line);border-radius:10px;padding:16px}.card b{display:block;margin-bottom:4px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;vertical-align:top}th{width:32%;color:var(--mute);font-weight:500}
footer{margin-top:64px;padding-top:20px;padding-bottom:40px;border-top:1px solid var(--line);font-size:13px;color:var(--mute)}
a{color:var(--acc)}
