:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f1f3f6;--surface-3:#e8ebf0;--border:#dfe3ea;--border-strong:#c6ccd8;--text:#16181d;--text-body:#3c414c;--text-muted:#6b7280;--text-faint:#9aa1ad;--accent:#3b5bdb;--accent-hover:#2f4bc4;--accent-soft:#e7ecfd;--accent-text:#fff;--ok:#1a7f4b;--ok-soft:#e3f5eb;--bad:#c1362f;--bad-soft:#fbe9e8;--warn:#9a6100;--warn-soft:#fdf1dc;--n1:#b4232b;--n2:#a35a00;--n3:#1f6f4a;--radius:12px;--radius-sm:8px;--radius-lg:18px;--shadow:0 1px 2px #10141e0f,0 4px 14px #10141e0f;--shadow-lg:0 8px 34px #10141e24;--sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",sans-serif;--jp:"Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;--jp-sans:"Hiragino Sans","Yu Gothic","Noto Sans JP",var(--sans);--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}:root[data-theme=light]{--buncss-light:initial;--buncss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--buncss-light: ;--buncss-dark:initial;color-scheme:dark;--bg:#0f1115;--surface:#171a20;--surface-2:#1f232b;--surface-3:#282d37;--border:#2a2f39;--border-strong:#3b414e;--text:#f2f4f7;--text-body:#ccd2dc;--text-muted:#949cab;--text-faint:#6c7482;--accent:#7c95f5;--accent-hover:#93a7f8;--accent-soft:#1e2740;--accent-text:#0f1115;--ok:#58cf90;--ok-soft:#11291d;--bad:#f0817a;--bad-soft:#2c1614;--warn:#e0aa5a;--warn-soft:#2a2114;--n1:#f08078;--n2:#e0aa5a;--n3:#6cc79a;--shadow:0 1px 2px #0006,0 4px 14px #0000004d;--shadow-lg:0 8px 34px #00000080}}:root[data-theme=dark]{--buncss-light: ;--buncss-dark:initial;color-scheme:dark;--bg:#0f1115;--surface:#171a20;--surface-2:#1f232b;--surface-3:#282d37;--border:#2a2f39;--border-strong:#3b414e;--text:#f2f4f7;--text-body:#ccd2dc;--text-muted:#949cab;--text-faint:#6c7482;--accent:#7c95f5;--accent-hover:#93a7f8;--accent-soft:#1e2740;--accent-text:#0f1115;--ok:#58cf90;--ok-soft:#11291d;--bad:#f0817a;--bad-soft:#2c1614;--warn:#e0aa5a;--warn-soft:#2a2114;--n1:#f08078;--n2:#e0aa5a;--n3:#6cc79a;--shadow:0 1px 2px #0006,0 4px 14px #0000004d;--shadow-lg:0 8px 34px #00000080}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text-body);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-size:15px;line-height:1.6}h1,h2,h3,h4{color:var(--text);letter-spacing:-.011em;margin:0;font-weight:650;line-height:1.25}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;cursor:pointer}.shell{display:flex;flex-direction:column;min-height:100vh}.container{width:100%;max-width:1080px;margin:0 auto;padding:0 20px}.container-wide{max-width:1320px}.topbar{position:sticky;z-index:40;background:color-mix(in srgb,var(--surface)88%,transparent);backdrop-filter:saturate(160%)blur(12px);border-bottom:1px solid var(--border);top:0}.topbar-inner{display:flex;align-items: center;gap:16px;height:58px}.brand{display:flex;color:var(--text);letter-spacing:-.02em;align-items:baseline;gap:8px;font-size:17px;font-weight:700}.brand:hover{text-decoration:none}.brand small{color:var(--text-faint);letter-spacing:0;font-size:12px;font-weight:500}.spacer{flex:1}main{flex:1;padding:32px 0 72px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.btn{display:inline-flex;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);white-space:nowrap;justify-content:center;align-items: center;gap:8px;padding:9px 16px;transition:background .12s,border-color .12s,transform 60ms;font-size:14px;font-weight:550}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-lg{padding:13px 26px;font-size:15px}.btn-sm{padding:5px 10px;font-size:13px}.chip{display:inline-flex;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);letter-spacing:.01em;border-radius:999px;align-items: center;gap:6px;padding:3px 9px;font-size:12px;font-weight:600}.chip-n1{color:var(--n1);border-color:color-mix(in srgb,var(--n1)35%,transparent);background:color-mix(in srgb,var(--n1)10%,transparent)}.chip-n2{color:var(--n2);border-color:color-mix(in srgb,var(--n2)35%,transparent);background:color-mix(in srgb,var(--n2)10%,transparent)}.chip-n3{color:var(--n3);border-color:color-mix(in srgb,var(--n3)35%,transparent);background:color-mix(in srgb,var(--n3)10%,transparent)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.tnum{font-variant-numeric:tabular-nums}.stack{display:flex;flex-direction:column}.row{display:flex;align-items: center}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.wrap{flex-wrap:wrap}.hero{padding:8px 0 28px}.hero h1{letter-spacing:-.025em;font-size:32px}.hero p{color:var(--text-muted);max-width:62ch;margin:10px 0 0;font-size:15px}.level-tabs{display:flex;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;gap:4px;width:-moz-fit-content;width:fit-content;padding:4px}.level-tab{color:var(--text-muted);background:0 0;border:none;border-radius:7px;padding:7px 18px;font-size:14px;font-weight:600}.level-tab.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.exam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:12px;margin-top:20px}.exam-card{display:block;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;width:100%;padding:16px;transition:border-color .12s,box-shadow .12s,transform 80ms}.exam-card:hover{border-color:var(--accent);box-shadow:var(--shadow);text-decoration:none;transform:translateY(-1px)}.exam-card h3{margin-bottom:3px;font-size:16px}.exam-card .meta{color:var(--text-muted);display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;font-size:12.5px}.exam-card .best{border-top:1px dashed var(--border);display:flex;align-items: center;gap:6px;margin-top:10px;padding-top:10px;font-size:12.5px}.badge-partial{color:var(--warn);background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn)30%,transparent);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:650}.breadcrumb{color:var(--text-muted);display:flex;align-items: center;gap:7px;margin-bottom:14px;font-size:13px}.stat-row{display:flex;background:var(--surface-2);border-radius:var(--radius);border:1px solid var(--border);flex-wrap:wrap;gap:28px;margin-top:16px;padding:14px 18px}.stat{display:flex;flex-direction:column;gap:1px}.stat .v{color:var(--text);font-variant-numeric:tabular-nums;font-size:19px;font-weight:680}.stat .k{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11.5px;font-weight:600}.mode-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-top:12px}.mode-card{border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:left;padding:20px;transition:border-color .12s,box-shadow .12s}.mode-card:hover{border-color:var(--border-strong)}.mode-card.is-selected{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.mode-card h3{display:flex;align-items: center;gap:9px;font-size:17px}.mode-card ul{list-style:none;display:flex;flex-direction:column;gap:7px;margin:12px 0 0;padding:0}.mode-card li{color:var(--text-muted);position:relative;padding-left:20px;font-size:13.5px}.mode-card li:before{content:"";position:absolute;background:var(--border-strong);border-radius:50%;width:5px;height:5px;top:8px;left:5px}.sitting-block{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.sitting-block+.sitting-block{margin-top:10px}.sitting-head{display:flex;background:var(--surface-2);text-align:left;border:none;border-bottom:1px solid #0000;align-items: center;gap:12px;width:100%;padding:14px 16px}.sitting-block.is-open .sitting-head{border-bottom-color:var(--border)}.sitting-head .jp{font-family:var(--jp-sans);color:var(--text);font-size:15px;font-weight:650}.mondai-row{display:flex;border-top:1px solid var(--border);align-items: center;gap:12px;padding:9px 16px;font-size:13.5px}.mondai-row:first-child{border-top:none}.mondai-row .n{font-family:var(--jp-sans);color:var(--text);min-width:62px;font-size:13px;font-weight:650}.mondai-row .jp{font-family:var(--jp-sans);color:var(--text-body)}.mondai-row .q{color:var(--text-faint);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12.5px}.checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));list-style:none;gap:8px 20px;margin:0;padding:0}.checklist li{color:var(--text-muted);position:relative;padding-left:22px;font-size:13.5px}.checklist li:before{content:"✓";position:absolute;color:var(--text-faint);font-weight:700;left:3px}.notice{border-radius:var(--radius-sm);display:flex;border:1px solid;align-items: flex-start;gap:10px;padding:12px 15px;font-size:13.5px}.notice-warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn)30%,transparent);color:var(--warn)}.notice-info{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent)28%,transparent);color:var(--accent)}.runner{display:grid;grid-template-columns:1fr 236px;align-items: start;gap:24px}.runbar{position:sticky;z-index:40;background:color-mix(in srgb,var(--surface)92%,transparent);backdrop-filter:saturate(160%)blur(12px);border-bottom:1px solid var(--border);top:0}.runbar-inner{display:flex;align-items: center;gap:14px;height:58px}.runbar .title{font-family:var(--jp-sans);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px;font-weight:650}.clock{font-family:var(--mono);font-variant-numeric:tabular-nums;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:5px 12px;font-size:17px;font-weight:600}.clock.is-low{color:var(--bad);background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad)34%,transparent)}.clock.is-critical{animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.55}}.progress-track{background:var(--surface-3);overflow:hidden;height:3px}.progress-fill{background:var(--accent);height:100%;transition:width .25s}.mondai-header{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:16px 20px}.mondai-header .label{font-family:var(--jp-sans);color:var(--text);font-size:16px;font-weight:700}.mondai-header .instructions{font-family:var(--jp-sans);color:var(--text-muted);margin-top:6px;font-size:13.5px;line-height:1.75}.item-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 24px}.passage{font-family:var(--jp);color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);overflow-y:auto;max-height:46vh;margin-bottom:20px;padding:20px 22px;font-size:16px;line-height:2.05}.passage-line{margin:0 0 .55em}.passage-line:last-child{margin-bottom:0}.item-prompt{font-family:var(--jp-sans);color:var(--text);margin-bottom:18px;font-size:17px;line-height:1.95}.mk-underline{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1.5px;font-weight:600}.mk-bold{font-weight:700}.mk-img{display:block;border-radius:var(--radius-sm);border:1px solid var(--border);max-width:100%;height:auto;margin:12px 0}.mk-missing{display:inline-block;font-size:12px;font-family:var(--sans);color:var(--warn);background:var(--warn-soft);border-radius:5px;padding:2px 8px}.mk-blank{display:inline-block;text-align:center;border:1.5px solid var(--border-strong);font-family:var(--sans);color:var(--accent);background:var(--accent-soft);border-radius:4px;min-width:3.2em;padding:0 6px;font-size:.86em;font-weight:650}.compose-slots{display:inline-flex;vertical-align:middle;gap:5px;margin:0 5px}.compose-slot{display:inline-block;border-bottom:2px solid var(--border-strong);text-align:center;min-width:3.6em;line-height:1.5}.compose-slot.is-target{border-bottom-color:var(--accent);color:var(--accent);font-weight:700}.question-block+.question-block{border-top:1px solid var(--border);margin-top:26px;padding-top:22px}.question-head{display:flex;align-items:baseline;gap:11px;margin-bottom:13px}.qno{display:inline-flex;background:var(--text);color:var(--bg);font-variant-numeric:tabular-nums;border-radius:7px;flex:none;justify-content:center;align-items: center;min-width:30px;height:26px;padding:0 8px;font-size:13px;font-weight:700}.question-prompt{font-family:var(--jp-sans);color:var(--text);font-size:15.5px;line-height:1.85}.options{display:flex;flex-direction:column;gap:8px}.options.is-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.option{display:flex;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);text-align:left;font-family:var(--jp-sans);color:var(--text-body);align-items: flex-start;gap:12px;width:100%;padding:12px 15px;transition:border-color .1s,background .1s;font-size:15px;line-height:1.7}.option:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-2)}.option.is-picked{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.option.is-correct{border-color:var(--ok);background:var(--ok-soft);color:var(--text)}.option.is-wrong{border-color:var(--bad);background:var(--bad-soft);color:var(--text)}.option:disabled{cursor:default}.option-n{border:1.5px solid var(--border-strong);display:inline-flex;font-family:var(--sans);color:var(--text-muted);border-radius:50%;flex:none;justify-content:center;align-items: center;width:24px;height:24px;margin-top:1px;font-size:12.5px;font-weight:650}.option.is-picked .option-n{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.option.is-correct .option-n{background:var(--ok);border-color:var(--ok);color:#fff}.option.is-wrong .option-n{background:var(--bad);border-color:var(--bad);color:#fff}.option-img{border:1px solid var(--border);display:block;border-radius:6px;max-width:100%}.hidden-options{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);color:var(--text-muted);background:var(--surface-2);margin-bottom:10px;padding:13px 16px;font-size:13.5px}.audio{display:flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);align-items: center;gap:14px;margin-bottom:20px;padding:14px 16px}.audio-btn{background:var(--accent);color:var(--accent-text);display:inline-flex;border:none;border-radius:50%;flex:none;justify-content:center;align-items: center;width:42px;height:42px}.audio-btn:disabled{background:var(--surface-3);color:var(--text-faint)}.audio-bar{background:var(--surface-3);overflow:hidden;position:relative;border-radius:3px;flex:1;height:5px}.audio-bar.is-seekable{cursor:pointer;height:8px}.audio-bar-fill{background:var(--accent);height:100%}.audio-time{font-family:var(--mono);color:var(--text-muted);font-variant-numeric:tabular-nums;flex:none;font-size:12.5px}.audio-note{color:var(--text-faint);font-size:12px}.sheet{position:sticky;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:15px;top:78px}.sheet h4{text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:11px;font-size:12px}.sheet-group+.sheet-group{margin-top:13px}.sheet-group-label{font-family:var(--jp-sans);color:var(--text-faint);margin-bottom:6px;font-size:11.5px;font-weight:600}.sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(30px,1fr));gap:5px}.sheet-cell{aspect-ratio:1;border:1.5px solid var(--border);background:var(--surface);color:var(--text-faint);font-variant-numeric:tabular-nums;display:flex;border-radius:6px;justify-content:center;align-items: center;padding:0;font-size:11.5px;font-weight:650}.sheet-cell:hover{border-color:var(--border-strong)}.sheet-cell.is-answered{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent)45%,transparent);color:var(--accent)}.sheet-cell.is-current{border-color:var(--accent);box-shadow:0 0 0 2.5px var(--accent-soft);color:var(--accent)}.sheet-cell.is-correct{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.sheet-cell.is-wrong{background:var(--bad-soft);border-color:var(--bad);color:var(--bad)}.sheet-cell.is-void{opacity:.4;cursor:not-allowed}.navbar-bottom{display:flex;align-items: center;gap:12px;margin-top:18px}.overlay{position:fixed;z-index:90;background:color-mix(in srgb,var(--bg)78%,transparent);backdrop-filter:blur(6px);display:flex;justify-content:center;align-items: center;padding:24px;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:470px;padding:30px}.modal h2{margin-bottom:8px;font-size:21px}.modal p{color:var(--text-muted);margin:0 0 8px;font-size:14px}.big-clock{font-family:var(--mono);color:var(--text);font-variant-numeric:tabular-nums;text-align:center;letter-spacing:-.02em;margin:18px 0;font-size:46px;font-weight:700}.verdict{display:flex;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);flex-wrap:wrap;align-items: center;gap:22px;padding:26px}.verdict.is-pass{border-color:color-mix(in srgb,var(--ok)45%,transparent);background:var(--ok-soft)}.verdict.is-fail{border-color:color-mix(in srgb,var(--bad)45%,transparent);background:var(--bad-soft)}.verdict .score{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:46px;font-weight:720;line-height:1}.verdict .of{color:var(--text-muted);font-size:17px;font-weight:500}.verdict .stamp{letter-spacing:.02em;font-size:22px;font-weight:720}.verdict.is-pass .stamp{color:var(--ok)}.verdict.is-fail .stamp{color:var(--bad)}.section-table{border-collapse:collapse;width:100%;font-size:14px}.section-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:0 12px 9px;font-size:11.5px;font-weight:650}.section-table td{border-top:1px solid var(--border);vertical-align:middle;padding:13px 12px}.section-table .jp{font-family:var(--jp-sans);color:var(--text);font-weight:600}.bar{background:var(--surface-3);overflow:hidden;border-radius:4px;min-width:110px;height:7px}.bar-fill{background:var(--accent);border-radius:4px;height:100%}.bar-fill.is-under{background:var(--bad)}.review-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.review-filter{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:999px;padding:6px 13px;font-size:13px;font-weight:550}.review-filter.is-active{background:var(--text);color:var(--bg);border-color:var(--text)}.history-row{display:flex;border-top:1px solid var(--border);align-items: center;gap:14px;padding:12px 15px;font-size:13.5px}.history-row:first-child{border-top:none}.empty{text-align:center;color:var(--text-muted);padding:54px 20px}.theme-toggle{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;gap:2px;padding:3px}.theme-option{display:inline-flex;color:var(--text-muted);background:0 0;border:none;border-radius:6px;align-items: center;gap:6px;padding:5px 11px;transition:background .12s,color .12s;font-size:12.5px;font-weight:600}.theme-option:hover{color:var(--text)}.theme-option.is-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.theme-toggle.is-compact .theme-option{padding:5px 8px;font-size:14px}.passage.is-scan{text-align:center;max-height:72vh;padding:12px}.passage-scan{border-radius:var(--radius-sm);background:#fff;max-width:100%;height:auto}.item-figure{display:block;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;max-width:min(100%,460px);height:auto;margin:0 auto 18px}:root[data-theme=dark] .passage-scan,:root[data-theme=dark] .item-figure,:root[data-theme=dark] .option-img,:root[data-theme=dark] .mk-img{filter:brightness(.88)contrast(1.05)}@media (max-width:900px){.runner{grid-template-columns:1fr}.sheet{position:static;order:2}}@media (max-width:620px){.hero h1{font-size:25px}.item-card{padding:17px 15px}.passage{max-height:40vh;padding:15px;font-size:15.5px}.stat-row{gap:18px}.runbar .title,.theme-label{display:none}.theme-option{padding:5px 9px}.container{padding:0 14px}}@media print{.topbar,.runbar,.sheet,.navbar-bottom{display:none}}
