:root { color-scheme: dark; --bg:#14171c; --panel:#1c2129; --border:#34404f; --text:#d8dee9; --muted:#a7b3c2; --accent:#83c1fc; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:16px/1.85 "Segoe UI","Hiragino Sans","Noto Sans JP",sans-serif; }
header { display:flex; flex-wrap:wrap; align-items:center; gap:16px; padding:16px 24px; border-bottom:1px solid var(--border); }
header img { display:block; width:auto; height:48px; }
nav { display:flex; flex-wrap:wrap; gap:10px 20px; align-items:center; }
header nav { margin-left:auto; font-size:14px; }
a { color:var(--accent); text-underline-offset:3px; overflow-wrap:anywhere; }
a:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
main { max-width:920px; margin:auto; padding:28px 24px 64px; }
h1 { font-size:28px; line-height:1.4; margin:0 0 8px; }
h2 { font-size:20px; line-height:1.5; margin:0 0 14px; }
p { margin:0 0 16px; } p:last-child { margin-bottom:0; }
ul,ol { padding-left:1.5em; margin:0 0 16px; } li { margin-bottom:10px; }
.meta { color:var(--muted); font-size:14px; }
.panel { background:var(--panel); border:1px solid var(--border); border-radius:10px; padding:22px; margin:24px 0; overflow-wrap:anywhere; }
.summary { border-left:4px solid var(--accent); }
section { scroll-margin-top:20px; }
table { border-collapse:collapse; width:100%; font-size:15px; }
caption { text-align:left; font-weight:600; margin-bottom:10px; }
th,td { text-align:left; vertical-align:top; padding:10px; border:1px solid var(--border); overflow-wrap:anywhere; }
th { width:30%; }
address { font-style:normal; overflow-wrap:anywhere; }
.skip { position:absolute; left:16px; top:-100px; background:var(--panel); padding:8px; z-index:1; }
.skip:focus { top:8px; }
@media(max-width:600px) { header { padding:12px 16px; } header nav { margin:0; } main { padding:22px 16px 40px; } h1 { font-size:24px; } .panel { padding:16px; } th,td { padding:8px; } }
@media print { :root { color-scheme:light; --bg:white; --panel:white; --text:black; --muted:#444; --border:#bbb; --accent:#164d77; } header,.skip { display:none; } main { max-width:none; padding:0; } .panel { break-inside:avoid; } }
