:root{--bg:#fbfaf6;--card:#fff;--ink:#1d2433;--sub:#5b6475;--line:#e4e1d8;--red:#d93a2b;--navy:#1d3a8a;--soft:#eef2fb;--yellow:#fff3a3;--ok:#2e9b57}
@media (prefers-color-scheme:dark){:root{--bg:#15171c;--card:#1e2128;--ink:#e8e9ec;--sub:#a3a9b6;--line:#343844;--red:#ff6b5c;--navy:#8fb0ff;--soft:#222a3d;--yellow:#4a4320;--ok:#5fd18d}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Hiragino Sans","Noto Sans JP",sans-serif;line-height:1.85;font-size:16px}
.wrap{max-width:720px;margin:0 auto;padding:16px 16px 64px}
a{color:var(--navy)}
code{background:var(--soft);padding:1px 5px;border-radius:4px;font-size:.92em;word-break:break-all}
pre{background:var(--soft);padding:10px 12px;border-radius:8px;overflow-x:auto;font-size:14px}
pre code{background:none;padding:0}
.crumb{font-size:13px;color:var(--sub)}
.tag{display:inline-block;font-size:12px;padding:2px 8px;border-radius:4px;background:var(--navy);color:var(--card);margin-right:6px}
.stars{color:#e0a400;letter-spacing:1px}
h1{font-size:24px;margin:8px 0 6px;line-height:1.4}
h2{font-size:19px;margin:32px 0 8px;padding:6px 10px;background:var(--soft);border-radius:4px}
h3{font-size:16px;margin:20px 0 4px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:12px 0}
.lead{background:var(--soft);border-left:4px solid var(--navy)}
.red{color:var(--red);font-weight:700}
.ul{text-decoration:underline wavy var(--red);text-underline-offset:4px}
.imp{display:inline-block;font-size:12px;border-radius:999px;padding:0 8px;margin-left:6px;vertical-align:2px;font-weight:400}
.must{background:#ffe1dd;color:#b3261e}.light{background:#e3ebfb;color:#1d3a8a}.skip{background:#e9e9e9;color:#555}
.hosoku{border:2px dashed #f0a49c;border-radius:10px;padding:10px 14px;margin:14px 0}
.hosoku::before{content:"補足";display:inline-block;background:var(--line);padding:0 8px;font-size:13px;margin-bottom:4px}
.min{background:var(--yellow);border-radius:8px;padding:10px 14px;font-weight:700;margin:20px 0}
.min::before{content:"最低ライン　";color:var(--red)}
table{border-collapse:collapse;width:100%;font-size:14px;display:block;overflow-x:auto}
td,th{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}
th{background:var(--soft)}
.toc ol{margin:4px 0 0;padding-left:20px}
.q p{margin:4px 0 8px}
.q .opt{display:block;width:100%;text-align:left;font:inherit;color:inherit;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:6px 0;cursor:pointer;background:var(--card)}
.q .opt.ok{border-color:var(--ok);background:rgba(46,155,87,.1)}
.q .opt.ng{border-color:var(--red);background:rgba(217,58,43,.08)}
.q .exp{display:none;font-size:14px;color:var(--sub);margin-top:4px}
.q .opt.ok .exp,.q .opt.ng .exp{display:block}
.bar{height:8px;background:var(--line);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--navy);transition:width .3s}
.unit{display:flex;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}
.unit a{text-decoration:none;color:var(--ink)}
.unit.done a::before{content:"✓ ";color:var(--ok)}
.unit.now a{color:var(--red);font-weight:700}
.unit.now a::before{content:"▶ "}
.sec{margin-top:14px}
.sec b{display:block}
.sec .target{font-size:13px;color:var(--sub)}
.note{font-size:13px;color:var(--sub)}
.nav{display:flex;justify-content:space-between;gap:8px;margin-top:28px}
.btn{display:inline-block;border:1px solid var(--navy);color:var(--navy);background:var(--card);border-radius:8px;padding:8px 14px;text-decoration:none;font:inherit;cursor:pointer}
.btn.primary{background:var(--navy);color:var(--card)}
.btn.done{border-color:var(--ok);color:var(--ok)}
.five dt{font-weight:700;margin-top:6px}.five dd{margin:0 0 0 1em}
