:root{--coral:#6550a5;--coral-dark:#493681;--ink:#2b2d3b;--muted:#727387;--paper:#fefeff;--canvas:#f4f3f8;--line:#e2dfea;--teal:#1b7081;--teal-soft:#e5f0f3;--gold:#d9a33d;--shadow:0 18px 45px rgba(53,44,90,.1);font-family:"Yu Gothic UI","Hiragino Kaku Gothic ProN",Meiryo,system-ui,sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-width:320px;background:radial-gradient(circle at 86% 8%,rgba(241,111,75,.09),transparent 28%),var(--canvas)}button,input{font:inherit}button{cursor:pointer}.mobile-only{display:none!important}.app-shell{min-height:100vh}.topbar{position:fixed;z-index:30;inset:0 0 auto 0;height:74px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;background:rgba(255,253,249,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--coral);color:white;font:800 24px/1 Georgia,serif;box-shadow:0 7px 18px rgba(241,111,75,.28)}.brand strong,.brand small{display:block}.brand strong{font-size:16px;letter-spacing:.03em}.brand small{margin-top:2px;color:var(--muted);font-size:9px;letter-spacing:.16em}.top-actions{display:flex;align-items:center;gap:14px}.icon-button{width:42px;height:42px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);font-size:22px}.top-counter{display:flex;align-items:baseline;gap:4px;color:var(--muted);font-variant-numeric:tabular-nums}.top-counter b{color:var(--coral-dark);font-size:19px}.top-counter span{font-size:12px}.sidebar{position:fixed;z-index:20;top:74px;bottom:0;left:0;width:286px;padding:24px 20px 30px;overflow-y:auto;background:#fffaf5;border-right:1px solid var(--line)}.progress-card{display:flex;align-items:center;gap:15px;padding:16px;border:1px solid var(--line);border-radius:18px;background:white}.progress-ring{--progress:0deg;display:grid;place-items:center;width:72px;height:72px;flex:0 0 auto;border-radius:50%;background:conic-gradient(var(--coral) var(--progress),#eee8e0 0);position:relative}.progress-ring:before{content:"";position:absolute;inset:7px;border-radius:50%;background:white}.progress-ring span{position:relative;text-align:center;line-height:1}.progress-ring b{font-size:21px}.progress-ring small{display:block;margin-top:4px;color:var(--muted);font-size:9px}.progress-card p{margin:0 0 2px;color:var(--muted);font-size:11px}.progress-card>div>strong{display:block;font-size:24px}.progress-card>div>small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.mode-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:18px 0}.mode-button{min-width:0;padding:10px 4px;border:1px solid transparent;border-radius:14px;background:transparent;color:var(--muted)}.mode-button span,.mode-button b,.mode-button small{display:block}.mode-button span{font-size:18px}.mode-button b{margin:3px 0;font-size:11px}.mode-button small{font-size:8px}.mode-button.is-active{border-color:#f1c4b8;background:#fff0ea;color:var(--coral-dark)}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:26px 2px 9px}.section-heading span{font-size:11px;font-weight:700;letter-spacing:.1em}.section-heading button{border:0;background:transparent;color:var(--coral-dark);font-size:9px}.section-list{display:grid;gap:3px}.section-button{display:grid;grid-template-columns:26px 1fr auto;align-items:center;gap:7px;width:100%;padding:8px 9px;border:0;border-radius:10px;background:transparent;color:var(--ink);text-align:left}.section-button:hover,.section-button.is-active{background:white;box-shadow:0 3px 15px rgba(64,47,33,.06)}.section-button .dot{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#eee6dd;color:var(--muted);font-size:9px;font-weight:800}.section-button.is-active .dot{background:var(--coral);color:white}.section-button b{font-size:11px}.section-button small{color:var(--muted);font-size:9px;font-variant-numeric:tabular-nums}.reset-button{width:100%;margin-top:24px;padding:10px;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--muted);font-size:10px}.main-content{min-height:100vh;padding:106px 34px 70px 320px}.study-column{width:min(790px,100%);margin:0 auto}.question-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-chip{display:inline-block;padding:6px 11px;border-radius:999px;background:var(--teal-soft);color:var(--teal);font-size:11px;font-weight:800}.source-page{margin-left:9px;color:var(--muted);font-size:10px}.bookmark-button{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:white;color:#9b8a75;font-size:22px}.bookmark-button.is-active{border-color:#efc464;background:#fff7df;color:#d79816}.question-card{position:relative;padding:34px 38px 24px;border:1px solid var(--line);border-radius:24px;background:var(--paper);box-shadow:var(--shadow);overflow:hidden}.question-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:5px;background:linear-gradient(90deg,var(--coral),#f6ad67 55%,transparent)}.question-number{display:flex;align-items:baseline;gap:9px;margin-bottom:18px}.question-number span{color:var(--coral-dark);font-size:9px;font-weight:900;letter-spacing:.16em}.question-number b{font:800 28px/1 Georgia,serif;color:var(--ink)}.question-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:500 16px/1.9 "Yu Gothic UI",Meiryo,sans-serif;color:#263238}.source-details{margin-top:24px;border-top:1px dashed var(--line);padding-top:15px}.source-details summary{width:max-content;max-width:100%;color:var(--muted);font-size:11px;font-weight:700;cursor:pointer}.source-image-wrap{margin-top:13px;padding:8px;border:1px solid var(--line);border-radius:13px;background:#f3f0eb;overflow:auto}.source-image-wrap img{display:block;width:100%;height:auto;border-radius:7px;mix-blend-mode:multiply}.reveal-button{display:flex;align-items:center;justify-content:center;gap:18px;width:100%;margin:18px 0 0;padding:17px;border:0;border-radius:15px;background:var(--coral);color:white;font-weight:800;box-shadow:0 12px 25px rgba(241,111,75,.24)}.reveal-button:hover{background:var(--coral-dark)}kbd{padding:3px 7px;border:1px solid rgba(255,255,255,.35);border-radius:5px;background:rgba(0,0,0,.08);font:9px/1.2 system-ui}.answer-panel{margin-top:18px;padding:30px 34px;border:1px solid #bddbd5;border-radius:24px;background:#fbfffd;box-shadow:var(--shadow);animation:rise .22s ease-out}.answer-label{color:var(--teal);font-size:9px;font-weight:900;letter-spacing:.18em}.answer-panel>h2{margin:8px 0 24px;color:#114e4c;font-size:21px;line-height:1.55}.explanation-block{padding:18px 20px;border-radius:14px;background:var(--teal-soft)}.explanation-block h3{display:flex;align-items:center;gap:7px;margin:0 0 8px;font-size:13px}.explanation-block h3 span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--teal);color:white;font-size:10px}.explanation-block p,.rule-card p{margin:0;font-size:13px;line-height:1.9}.rule-card{margin-top:15px;padding:20px;border:1px solid #d8e7e3;border-radius:14px;background:white}.rule-title{display:flex;align-items:center;gap:9px;margin-bottom:10px}.rule-title span{padding:4px 7px;border-radius:5px;background:#fff0ea;color:var(--coral-dark);font-size:8px;font-weight:900}.rule-title h3{margin:0;font-size:15px}.rule-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 0}.rule-card dl div{padding:11px;border-radius:10px;background:#f7f4ef}.rule-card dt{margin-bottom:5px;color:var(--muted);font-size:9px;font-weight:800}.rule-card dd{margin:0;font-size:11px;line-height:1.65}.self-check{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}.self-check p{margin:0;font-size:12px;font-weight:700}.self-check>div{display:flex;gap:8px}.self-check button{padding:10px 15px;border-radius:10px;font-size:11px;font-weight:800}.retry-button{border:1px solid #e5b36d;background:#fff8e9;color:#a46b1d}.master-button{border:1px solid var(--teal);background:var(--teal);color:white}.pager{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;margin-top:18px}.pager button{padding:12px 15px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);font-size:11px;font-weight:700}.pager button:last-child{text-align:right}.pager button:disabled{opacity:.35;cursor:not-allowed}.pager .shuffle-button{color:var(--coral-dark)}.keyboard-help{margin:12px 0 0;text-align:center;color:#a3988b;font-size:9px}.search-dialog{width:min(760px,calc(100% - 30px));height:min(720px,calc(100% - 40px));padding:0;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:0 30px 80px rgba(36,29,24,.28)}.search-dialog::backdrop{background:rgba(38,50,56,.45);backdrop-filter:blur(4px)}.search-head{display:flex;align-items:center;gap:10px;padding:15px;border-bottom:1px solid var(--line)}.search-head label{display:flex;align-items:center;gap:10px;flex:1;padding:9px 12px;border:1px solid var(--line);border-radius:11px;background:white}.search-head input{width:100%;border:0;outline:0;background:transparent;font-size:14px}.search-head button{width:38px;height:38px;border:0;background:transparent;font-size:21px}.search-summary{padding:12px 20px;color:var(--muted);font-size:10px}.search-results{height:calc(100% - 116px);padding:0 12px 16px;overflow-y:auto}.search-item{display:grid;grid-template-columns:50px 1fr auto;gap:12px;width:100%;padding:14px 10px;border:0;border-top:1px solid #eee6dd;background:transparent;text-align:left}.search-item:hover{background:#fff5ef}.search-item strong{color:var(--coral-dark);font:700 14px Georgia,serif}.search-item div b{display:block;margin-bottom:5px;font-size:11px}.search-item div span{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:10px;line-height:1.5;-webkit-line-clamp:2;-webkit-box-orient:vertical}.search-item>span{align-self:center;color:#b1a79b}.toast{position:fixed;z-index:80;left:50%;bottom:28px;transform:translate(-50%,20px);padding:10px 16px;border-radius:999px;background:#263238;color:white;font-size:11px;opacity:0;pointer-events:none;transition:.2s}.toast.is-visible{transform:translate(-50%,0);opacity:1}.scrim{display:none}@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:860px){.mobile-only{display:grid!important}.topbar{height:62px;padding:0 14px}.brand-mark{width:36px;height:36px;border-radius:11px;font-size:20px}.brand strong{font-size:13px}.brand small{display:none}.top-actions{gap:7px}.top-counter{display:none}.icon-button{width:38px;height:38px}.sidebar{z-index:60;top:0;width:min(330px,88vw);padding-top:14px;transform:translateX(-102%);transition:transform .22s ease}.sidebar.is-open{transform:none}.sidebar-head{display:flex!important;align-items:center;justify-content:space-between;margin-bottom:12px}.scrim{position:fixed;z-index:55;inset:0;background:rgba(38,50,56,.4)}.scrim.is-open{display:block}.main-content{padding:84px 14px 42px}.question-card{padding:26px 20px 20px;border-radius:20px}.question-text{font-size:15px;line-height:1.85}.answer-panel{padding:24px 18px;border-radius:20px}.rule-card dl{grid-template-columns:1fr}.self-check{display:block}.self-check>div{margin-top:12px}.self-check button{flex:1}.pager button span{display:none}.keyboard-help{display:none}}
@media (max-width:430px){.question-meta{margin-inline:3px}.source-page{display:none}.question-card{padding-inline:17px}.question-number b{font-size:25px}.question-text{font-size:14px}.reveal-button{font-size:13px}.answer-panel>h2{font-size:18px}.pager{grid-template-columns:1fr auto 1fr}.pager button{padding-inline:10px}.source-image-wrap img{width:720px;max-width:none}.search-item{grid-template-columns:44px 1fr}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.meta-tags{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.meta-tags .source-page{margin-left:0}.difficulty-chip{display:inline-block;padding:5px 9px;border:1px solid #d8e2e8;border-radius:999px;background:#fff;color:var(--muted);font-size:9px;font-weight:800}.difficulty-chip[data-level="発展"]{border-color:#ebc778;background:#fff8e6;color:#966719}.kind-label{display:inline-block;margin:0 0 12px;padding:4px 8px;border-radius:6px;background:#ece8f7;color:#514184;font-size:9px;font-weight:900;letter-spacing:.08em}.formula-card{margin-top:15px;padding:16px 18px;border-left:4px solid var(--coral);border-radius:10px;background:#f0eef8}.formula-card span{display:block;margin-bottom:6px;color:var(--coral-dark);font-size:9px;font-weight:900;letter-spacing:.08em}.formula-card p{margin:0;white-space:pre-wrap;font-family:"Yu Gothic UI",Meiryo,sans-serif;font-size:12px;line-height:1.7}.formula-card.is-generic{border-left-color:#aab9c4;background:#f3f6f7}.sidebar{background:#f8f7fb}.question-card:before{background:linear-gradient(90deg,var(--coral),#3994a3 62%,transparent)}.reveal-button{box-shadow:0 12px 25px rgba(101,80,165,.22)}
@media (max-width:430px){.meta-tags .source-page{display:inline}.meta-tags{gap:5px}.difficulty-chip,.section-chip{font-size:9px}.question-meta{align-items:flex-start}.bookmark-button{flex:0 0 auto}}
.translation-block{margin-bottom:15px;padding:18px 20px;border:1px solid #ead9a7;border-radius:14px;background:#fffaf0}.translation-block h3{display:flex;align-items:center;gap:7px;margin:0 0 12px;font-size:13px}.translation-block h3 span{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#e8ad37;color:#fff;font-size:10px}.meaning-row{padding:12px 14px;border-radius:10px;background:#fff}.meaning-row b{display:block;margin-bottom:5px;color:#8a651d;font-size:9px}.meaning-row p{margin:0;font-size:13px;line-height:1.85}.translation-block details{margin-top:10px}.translation-block summary{color:#8a651d;font-size:11px;font-weight:800;cursor:pointer}.translation-block pre{margin:6px 0 0;padding:13px 14px;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:10px;background:#fff;color:#4d4a43;font:500 12px/1.8 "Yu Gothic UI",Meiryo,sans-serif}.full-translation,.choice-translation{margin-top:12px}.full-translation>b,.choice-translation>b{display:block;color:#8a651d;font-size:10px}

/* ── 4択UI（2026-08-14 作り直し）───────────────────────────── */
.difficulty-chip[data-level="基礎"]{border-color:#cfd3ea;background:#f3f4fb;color:#4b4a86}
.difficulty-chip[data-level="難関"]{border-color:#e8a9a0;background:#fdf1ef;color:#a8452f}
.course-heading{margin:14px 2px 5px;padding-left:4px;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.12em}
.course-heading:first-child{margin-top:2px}
.section-button .dot{font-size:10px}
.question-text{font-size:17px;line-height:2}

.choice-list{display:grid;gap:9px;margin-top:22px}
.choice-button{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:12px;width:100%;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);text-align:left;transition:.14s}
.choice-button:hover:not(:disabled){border-color:var(--coral);background:#f7f5fc;transform:translateY(-1px)}
.choice-button:disabled{cursor:default}
.choice-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#eeecf5;color:var(--muted);font-size:14px;font-weight:800}
.choice-body{font-size:15px;line-height:1.8;overflow-wrap:anywhere;white-space:pre-wrap}
.choice-judge{color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.06em}
.choice-button.is-correct{border-color:#2f9c76;background:#eefaf4}
.choice-button.is-correct .choice-mark{background:#2f9c76;color:#fff}
.choice-button.is-correct .choice-judge{color:#1d7a58}
.choice-button.is-wrong{border-color:#d9776a;background:#fdf2f0}
.choice-button.is-wrong .choice-mark{background:#d9776a;color:#fff}
.choice-button.is-wrong .choice-judge{color:#b04a3a}
.choice-button.is-picked{box-shadow:0 0 0 2px rgba(101,80,165,.16)}
.verdict{display:inline-block;margin-bottom:12px;padding:6px 14px;border-radius:999px;font-size:12px;font-weight:900}
.verdict[data-state="correct"]{background:#e3f6ed;color:#1d7a58}
.verdict[data-state="wrong"]{background:#fdeae6;color:#b04a3a}
@media (max-width:860px){.question-text{font-size:16px;line-height:1.95}.choice-button{grid-template-columns:28px 1fr;padding:13px 13px;gap:10px}.choice-judge{grid-column:2;margin-top:2px}.choice-body{font-size:14px}.choice-mark{width:26px;height:26px;font-size:12px}}
