:root{--paper: #f4f6f9;--card: #ffffff;--ink: #16223c;--dim: #5b6780;--faint: #666e82;--rule: #ccd3dd;--rule-strong: #848ea2;--rule-soft: #eaeef4;--ok: #0f7b6c;--ok-bg: #e8f5f1;--ng: #b23a2e;--ng-bg: #fbeeec;--warn: #8a6008;--warn-bg: #fdf4e2;--accent: #2f4bad;--code-bg: #eef1f6;--shadow: 0 1px 2px rgba(22, 34, 60, .06);--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--paper: #12151c;--card: #1a1f29;--ink: #e6eaf2;--dim: #9aa5ba;--faint: #98a2b5;--rule: #333c4c;--rule-strong: #646e85;--rule-soft: #232a36;--ok: #4cc0a8;--ok-bg: #12312c;--ng: #f0837a;--ng-bg: #331d1b;--warn: #e0aa3e;--warn-bg: #33290f;--accent: #8fa6f0;--code-bg: #11151d;--shadow: none}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic UI,Noto Sans JP,sans-serif;font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}.page{min-height:100%;padding:calc(16px + var(--safe-t)) 14px calc(28px + var(--safe-b))}.wrap{max-width:560px;margin:0 auto}.page--quiz,.page--result,.page--review{padding-bottom:calc(96px + var(--safe-b))}.card{background:var(--card);border:1px solid var(--rule);border-radius:12px;padding:16px;box-shadow:var(--shadow)}.card+.card,.mt{margin-top:12px}.mt-lg{margin-top:18px}.h1{font-size:20px;font-weight:700;letter-spacing:-.2px;margin:0}.h2{font-size:13px;font-weight:700;color:var(--dim);margin:0 0 10px;letter-spacing:.02em}.sub{font-size:12.5px;color:var(--dim);margin:4px 0 0}.num{font-variant-numeric:tabular-nums}.dim{color:var(--dim)}.faint{color:var(--faint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:50px;padding:12px 16px;border-radius:10px;border:1px solid transparent;font-size:16px;font-weight:600;cursor:pointer;background:var(--ink);color:var(--paper);transition:opacity .12s,transform .06s}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.38;cursor:default}.btn--ghost{background:transparent;color:var(--ink);border-color:var(--rule-strong)}.btn--sm{min-height:44px;font-size:13.5px;padding:8px 12px;font-weight:600}.btn--danger{background:transparent;color:var(--ng);border-color:var(--rule-strong)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.row2--wide{grid-template-columns:1.4fr 1fr}.quizbar{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--dim);margin-bottom:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.progress{height:4px;background:var(--rule);border-radius:2px;overflow:hidden}.progress>i{display:block;height:100%;background:var(--ink);transition:width .25s}.qcode{background:var(--code-bg);border:1px solid var(--rule-soft);border-radius:8px;padding:12px;margin:0 0 14px;font-size:12.5px;line-height:1.65;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.qcode__ln{display:block;white-space:pre-wrap;overflow-wrap:anywhere}.nobr{white-space:pre}.qtext{font-size:16px;line-height:1.7}.opts{display:flex;flex-direction:column;gap:8px;margin-top:16px}.opt{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;padding:12px;min-height:48px;border:1px solid var(--rule-strong);border-radius:10px;background:var(--card);cursor:pointer;line-height:1.55;font-size:14.5px;transition:border-color .12s,background .12s,opacity .12s}.opt:active:not(:disabled){background:var(--rule-soft)}.opt__key{flex:0 0 auto;width:22px;height:22px;margin-top:1px;display:grid;place-items:center;border-radius:6px;background:var(--rule-soft);color:var(--dim);font-size:11.5px;font-weight:700}.opt__body{flex:1;min-width:0;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px}.opt__ln{display:block}.opt--ok{border-color:var(--ok);background:var(--ok-bg)}.opt--ok .opt__key{background:var(--ok);color:var(--card)}.opt--ng{border-color:var(--ng);background:var(--ng-bg)}.opt--ng .opt__key{background:var(--ng);color:var(--card)}.opt--mute{border-color:var(--rule);color:var(--dim)}.opt--mute .opt__key{background:var(--rule-soft);color:var(--dim)}.opt--pick{border-color:var(--ink)}.opt--pick .opt__key{background:var(--ink);color:var(--card)}.opt--static{cursor:default}.opt.opt--static:active{background:var(--card)}.tf-text{font-size:16.5px;line-height:1.8;word-break:break-word}.opt.tf-btn{align-items:center;justify-content:center;min-height:64px;font-size:15px;font-weight:600}.tf-btn__mark{font-size:22px;line-height:1}.tf-missed{list-style:none;margin:0;padding:0}.tf-missed>li{padding:10px 0;border-top:1px solid var(--rule-soft);font-size:14px;line-height:1.7}.tf-missed>li:first-child{border-top:0;padding-top:0}.tf-wrong{color:var(--dim);text-decoration:line-through}.multi-text{flex:1;min-width:0;font-size:14.5px;line-height:1.7;word-break:break-word}.multi-verdict{display:block;margin-top:6px;font-size:13px;line-height:1.6}.multi-fix{display:block;margin-top:2px}.opt.multi-done{cursor:default}.opt__key.multi-key{width:24px;height:24px;font-size:14px;color:var(--card)}.opt__key.multi-key--t{background:var(--ok)}.opt__key.multi-key--f{background:var(--ng)}.rule-links{margin-top:12px;display:flex;flex-direction:column;gap:8px}.rule-ref{border:1px solid var(--rule);border-radius:10px;background:var(--card)}.rule-ref>summary{display:grid;grid-template-columns:1fr auto;column-gap:8px;row-gap:2px;align-items:baseline;padding:10px 12px;min-height:44px;cursor:pointer;list-style:none;font-size:13.5px;line-height:1.6}.rule-ref>summary::-webkit-details-marker{display:none}.rule-ref>summary:after{content:"開く";grid-column:2;grid-row:1;font-size:12px;color:var(--dim)}.rule-ref[open]>summary:after{content:"閉じる"}.rule-ref__head{grid-column:1;grid-row:1;display:flex;gap:8px;align-items:baseline}.rule-ref__label{font-size:12px;color:var(--dim)}.rule-ref__id{font-weight:700}.rule-ref__title{grid-column:1 / -1;grid-row:2;min-width:0}.rule-ref .rule-body{padding:0 12px 12px}.rules{padding-top:4px;padding-bottom:4px}.rule-ref--list{border:0;border-radius:0;border-top:1px solid var(--rule-soft);background:transparent}.rule-ref--list:first-child{border-top:0}.rule-ref--list>summary{grid-template-columns:auto 1fr auto;padding-left:0;padding-right:0;font-size:14px}.rule-ref--list>summary:after{grid-column:3}.rule-ref--list .rule-ref__title{grid-column:2;grid-row:1}.rule-ref--list .rule-body{padding:0 0 4px}.rule-ref--list>.btn{width:auto;margin-bottom:12px}.rule-body{font-size:14px;line-height:1.8;word-break:break-word}.rule-p{margin:8px 0 0}.rule-list{margin:6px 0 0;padding-left:1.4em}ul.rule-list{list-style:disc}ol.rule-list{list-style:decimal}.rule-list .rule-list{margin-top:2px;list-style:circle}.rule-list li{margin-top:2px}.rule-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;background:var(--rule-soft);border-radius:4px;padding:1px 4px}.verdict{margin-top:16px;padding-top:14px;border-top:1px solid var(--rule-soft)}.verdict__head{font-weight:700;font-size:14.5px;margin-bottom:6px}.verdict__note{font-size:12.5px;color:var(--warn);margin-bottom:8px}.verdict__body{font-size:14px;line-height:1.8}.detail{margin-top:8px}.detail__summary{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 4px 0 0;list-style:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--accent)}.detail__summary::-webkit-details-marker{display:none}.detail__summary:before{content:"▸";content:"▸" / "";font-size:11px}.detail[open] .detail__summary:before{content:"▾";content:"▾" / ""}.detail__body{font-size:13.5px;line-height:1.8;white-space:pre-wrap;padding:0 0 4px 12px;border-left:2px solid var(--rule)}.confidence{display:flex;flex-direction:column;gap:10px;margin-top:14px}.confidence__label{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--dim)}.hintbtn{position:relative;display:inline-grid;place-items:center;width:18px;height:18px;padding:0;border-radius:50%;border:1px solid var(--rule-strong);background:transparent;color:var(--dim);font-size:11px;font-weight:700;line-height:1;cursor:pointer}.hintbtn:after{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px}.confidence__buttons{display:flex;flex-direction:column;gap:8px}.confidence__btn{width:100%;min-height:44px;padding:10px 14px;border-radius:999px;border:1px solid var(--rule-strong);background:transparent;color:var(--ink);font-size:13px;font-weight:600;cursor:pointer}.confidence__btn.is-active{background:var(--ink);color:var(--card);border-color:var(--ink)}@keyframes examhint-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.examhint{display:flex;align-items:center;gap:4px;background:var(--ink);color:var(--paper);border-radius:10px;padding:12px 6px 12px 14px;font-size:13.5px;line-height:1.5;box-shadow:var(--shadow);margin-top:16px;animation:examhint-in .18s ease-out}.examhint__close{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;background:none;border:none;color:inherit;font-size:20px;line-height:1;cursor:pointer}.save-banner{position:sticky;top:0;z-index:30;background:var(--ng-bg);color:var(--ng);padding:calc(12px + var(--safe-t)) 14px 12px;border-bottom:1px solid var(--ng)}.save-banner p{margin:0 0 10px;font-size:13.5px;line-height:1.6;max-width:560px}.save-banner .btn{max-width:560px;border-color:var(--ng);color:var(--ng)}.tab-banner{position:sticky;top:0;z-index:29;background:var(--warn-bg);color:var(--warn);padding:calc(12px + var(--safe-t)) 14px 12px;border-bottom:1px solid var(--warn)}.tab-banner p{margin:0 0 10px;font-size:13.5px;line-height:1.6;max-width:560px}.tab-banner .row2{max-width:560px}.footbar{position:fixed;left:0;right:0;bottom:0;z-index:10;padding:10px 14px calc(10px + var(--safe-b));background:var(--paper);border-top:1px solid var(--rule)}.footbar__inner{max-width:560px;margin:0 auto;display:flex;gap:10px}.footbar__inner>.btn{flex:1}.footbar__inner>.btn--ghost{flex:0 0 auto;width:auto;padding:12px 16px}.tag{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:700;line-height:1.7;background:var(--rule-soft);color:var(--dim)}.tag--ng{background:var(--ng-bg);color:var(--ng)}.tag--ok{background:var(--ok-bg);color:var(--ok)}.loss{display:flex;flex-direction:column;gap:11px}.lossrow{display:flex;align-items:center;gap:8px}.lossrow__ch{flex:0 0 40px;font-size:12px;color:var(--dim)}.lossrow__bar{flex:1;height:20px;background:var(--rule-soft);border-radius:4px;overflow:hidden}.lossrow__bar>i{display:block;height:100%;background:var(--ng);border-radius:4px;min-width:2px}.lossrow__bar>i.zero{background:var(--ok);opacity:.35}.lossrow__n{flex:0 0 46px;text-align:right;font-size:12.5px}.lossrow__title{font-size:11.5px;line-height:1.45;color:var(--faint);padding-left:48px;margin-top:2px}.chrow{display:flex;flex-direction:column;gap:3px;width:100%;padding:11px 2px;background:none;border:none;border-bottom:1px solid var(--rule-soft);cursor:pointer;text-align:left}.chrow:last-child{border-bottom:none}.chrow:active{background:var(--rule-soft)}.chrow__top{display:flex;align-items:center;gap:8px;width:100%}.chrow__ch{flex:0 0 34px;font-size:12.5px;color:var(--dim)}.chrow__title{flex:1;min-width:0;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chrow__rate{flex:0 0 40px;text-align:right;font-size:12.5px}.chrow__sub{padding-left:42px;font-size:11.5px}.hist{display:flex;align-items:center;gap:8px;padding:9px 2px;border-bottom:1px solid var(--rule-soft);font-size:13px}.hist:last-child{border-bottom:none}.trend{display:flex;margin:0;padding:0;list-style:none}.trend__col{flex:1;min-width:0;padding:0 1px;display:flex;flex-direction:column;align-items:center;gap:4px}.trend__pct{font-size:11px;font-weight:700;letter-spacing:-.02em}.trend__track{position:relative;width:100%;height:72px;display:flex;justify-content:center;align-items:flex-end}.trend__track>i{position:relative;z-index:1;display:block;width:55%;max-width:28px;border-radius:3px 3px 0 0}.trend__track:after{content:"";position:absolute;left:0;right:0;bottom:var(--pass);border-top:1px dashed var(--dim)}.trend__date{font-size:11px;color:var(--dim)}.review{border-top:1px solid var(--rule-soft);padding-top:12px;margin-top:12px}.review:first-child{border-top:none;padding-top:0;margin-top:0}.review__q{font-size:14px;line-height:1.65}.review__exp{font-size:13px;line-height:1.75;color:var(--dim);margin-top:6px}.bigscore{font-size:56px;font-weight:300;letter-spacing:-2px;line-height:1.05}.bigscore span{font-size:22px;font-weight:500}.center{text-align:center}.stack{display:flex;flex-direction:column;gap:10px}.between{display:flex;align-items:center;justify-content:space-between;gap:8px}.linkbtn{background:none;border:none;cursor:pointer;font-size:13px;color:var(--accent);text-decoration:underline;padding:4px 0;min-height:44px}textarea.io{width:100%;min-height:110px;font-size:12px;padding:10px;border:1px solid var(--rule-strong);border-radius:8px;background:var(--paper);color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dateinput{font:inherit;font-size:14px;padding:8px 10px;min-height:44px;border:1px solid var(--rule-strong);border-radius:8px;background:var(--paper);color:var(--ink)}.adslot{margin-top:12px;padding:12px;min-height:100px;display:grid;place-items:center;border:1px dashed var(--rule);border-radius:12px;background:var(--card)}.adslot__label{font-size:11px;color:var(--faint)}.legal{font-size:13.5px;line-height:1.9;margin:0 0 14px}.legal:last-child{margin-bottom:0}.legal strong{font-size:13px}.legal.dim{color:var(--dim)}.linklist{list-style:none;padding:0;margin:0}.linklist li+li{margin-top:2px;border-top:1px solid var(--rule-soft)}.linklist a{display:block;padding:11px 2px;color:var(--accent);text-decoration:none;font-size:14px}.linklist a:active{opacity:.6}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.btn:has(>input.sr-only:focus-visible){outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.btn:active{transform:none}}
