:root{--ground:#e9eff2;--surface:#f9fbfc;--raise:#e2eaee;--ink:#102a3a;--muted:#526b78;--line:#bdccd3;--accent:#007c91;--soft:#d5edf0;--on-accent:#fff;--good:#126c4c;--good-bg:#e4f3eb;--bad:#ac3526;--bad-bg:#fcebe7;font-family:"Hiragino Sans","Yu Gothic UI",Meiryo,system-ui,sans-serif;font-size:16px;line-height:1.75;color:var(--ink);background:var(--ground);color-scheme:light}
@media(prefers-color-scheme:dark){:root{--ground:#07151c;--surface:#0e222c;--raise:#15323e;--ink:#e7f0f3;--muted:#a5bbc5;--line:#35515d;--accent:#40c7d4;--soft:#123b45;--on-accent:#041519;--good:#89e1b5;--good-bg:#15382c;--bad:#ffb4a6;--bad-bg:#412820;color-scheme:dark}}
*{box-sizing:border-box}html,body{height:100%;overflow:hidden}body{margin:0;-webkit-text-size-adjust:100%}.phone{width:100%;max-width:520px;height:100vh;height:100dvh;margin:auto;display:flex;flex-direction:column;background:var(--surface);box-shadow:0 0 0 1px var(--line)}header{padding:calc(12px + env(safe-area-inset-top)) 18px 10px;background:#092c3c;color:#f9fbfc;flex-shrink:0}.brand{font-weight:750;font-size:18px;letter-spacing:.02em}.brand span{font-weight:500;font-size:13px;color:#bdd2dc}.sub{font-size:12px;color:#bdd2dc;margin-top:2px}.muted{font-size:13px;color:var(--muted)}main{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:22px 18px 28px;overflow-wrap:anywhere;scroll-padding-top:16px}h1{font-size:23px;line-height:1.4;margin:0 0 18px}h2{font-size:17px;margin:26px 0 12px}h3{font-size:16px;margin:0 0 8px}p{margin:10px 0}button,input{font:inherit}button{cursor:pointer;min-height:48px;border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:var(--surface);color:inherit;text-align:left;white-space:normal;overflow-wrap:anywhere;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{opacity:.5;cursor:default}.option:disabled{opacity:1;cursor:default}@media(hover:hover){button:hover:not(:disabled){border-color:var(--accent);background:var(--soft)}}.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:700}.primary:hover:not(:disabled){background:var(--accent)}.full{display:block;width:100%;margin:10px 0}.row{display:flex;gap:9px;align-items:center}.row>*{min-width:0;flex:1}.stack{display:grid;gap:10px}.card{padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin:12px 0}.card h2{margin:0 0 8px}.number{font-size:32px;font-weight:750;line-height:1.3;color:var(--accent)}.number small{font-size:14px;font-weight:400;margin-left:5px;color:var(--muted)}.tag{font-size:12px;color:var(--muted);font-weight:650}.lead{margin:-8px 0 18px;color:var(--muted);font-size:14px}.start-card{background:var(--soft);border-color:transparent}.start-card p{margin:0 0 12px}.start-card .full{margin:0}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:20px 0}.stat{padding:10px 4px;text-align:center;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat strong{display:block;font-size:23px;line-height:1.4}.stat span{font-size:12px;color:var(--muted)}.chapter-card{padding:15px;border:1px solid var(--line);border-radius:8px}.chapter-heading{display:flex;gap:12px;align-items:flex-start}.chapter-number{flex:none;color:var(--accent);font-weight:750;font-size:14px;padding-top:2px}.chapter-heading h3{margin:0;font-size:16px}.chapter-meta{margin:5px 0 10px;font-size:12px;color:var(--muted)}.chapter-card .row button{font-size:14px}.progress{height:5px;border-radius:3px;background:var(--raise);overflow:hidden;margin:12px 0}.progress span{display:block;height:100%;background:var(--accent)}.option{display:flex;width:100%;gap:12px;align-items:flex-start;margin:10px 0;padding:16px 13px;line-height:1.8}.option .mark{flex:none;display:grid;place-items:center;width:27px;height:27px;border:1px solid var(--line);border-radius:50%;font-size:13px;font-weight:750;color:var(--muted);line-height:1}.option[aria-pressed=true]{border:2px solid var(--accent);padding:15px 12px;background:var(--soft)}.option.selected .mark{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.option .option-text{flex:1;min-width:0}.option-label{display:block;font-size:12px;font-weight:700;color:var(--accent);margin-top:5px}.question{font-size:19px;font-weight:650;line-height:1.9;margin:20px 0}.selection-hint{font-size:13px;color:var(--muted);margin:8px 0}.good{color:var(--good)}.bad{color:var(--bad)}.verdict{padding:14px;border-radius:8px;background:var(--good-bg);border-left:4px solid var(--good);margin:20px 0}.verdict.bad{background:var(--bad-bg);border-color:var(--bad)}.verdict h2{margin:0}.verdict p{margin:5px 0 0;color:var(--ink);font-size:14px}.explanation{border-top:1px solid var(--line);padding-top:2px;margin-top:22px}.explanation p{font-size:16px;line-height:1.9}.explanation .option-quote{font-size:14px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:12px}.learning-point{background:var(--soft);border-radius:8px;padding:16px;margin:18px 0}.learning-point h2{margin:0 0 8px}.learning-point p{margin:0}.actionbar{position:sticky;bottom:-28px;background:var(--surface);padding:10px 0 14px;margin-top:18px;border-top:1px solid var(--line)}.actionbar .full{margin:0 0 8px}.session-tools{margin-top:24px}.timer{font-variant-numeric:tabular-nums;font-weight:750;color:var(--ink);background:var(--raise);padding:4px 8px;border-radius:5px;font-size:14px}nav{flex-shrink:0;display:flex;padding:5px 5px calc(5px + env(safe-area-inset-bottom));gap:2px;border-top:1px solid var(--line);background:var(--surface)}nav button{border:0;border-radius:6px;flex:1;min-width:0;font-size:12px;text-align:center;padding:7px 0;background:transparent}nav button[aria-current=page]{background:var(--soft);color:var(--accent);font-weight:700}.nav-icon{display:block;font-size:19px;line-height:1.35}.badge{font-size:10px;background:var(--accent);color:var(--on-accent);border-radius:8px;padding:1px 4px;margin-left:2px}a{color:var(--accent);text-underline-offset:3px}small{font-size:12px}ul{padding-left:22px}.jump{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin-top:15px}.jump button{text-align:center;padding:7px 0;font-size:13px;min-height:42px}.jump .answered{background:var(--soft)}.jump .current{outline:2px solid var(--accent)}details{margin:12px 0}summary{cursor:pointer;padding:12px 0;color:var(--muted);font-size:14px}#notice{margin:0;padding:9px 15px;background:#f7e9c9;color:#513c09;font-size:13px;flex-shrink:0;max-height:25vh;overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}td,th{padding:10px 4px;border-bottom:1px solid var(--line);text-align:left}label{display:block;margin:10px 0}textarea{max-width:100%;width:100%;min-height:100px}.split{display:flex;justify-content:space-between;gap:8px;align-items:center}.split>*{min-width:0}.linkbutton{font-size:13px;padding:7px 10px;min-height:44px}hr{border:0;border-top:1px solid var(--line);margin:20px 0}
@media(max-width:350px){main{padding:18px 12px 24px}header{padding-left:12px;padding-right:12px}.brand{font-size:16px}.brand span{font-size:12px}.question{font-size:18px}.row{gap:6px}button{padding:10px}.chapter-card{padding:12px}.actionbar{bottom:-24px}}
@media (min-width:600px) and (max-width:1366px) and (hover:none) and (pointer:coarse){.phone{max-width:none}main{font-size:18px;padding-inline:28px}.question{font-size:21px}.explanation p{font-size:18px}}
@media(prefers-reduced-motion:no-preference){main{scroll-behavior:smooth}}
