:root{--navy:#17243b;--navy2:#213451;--indigo:#5b6ce8;--indigo2:#eef0ff;--text:#172033;--muted:#5a6478;--line:#dfe4ee;--bg:#f5f7fb;--ok:#168462;--bad:#c84b5f;--warn:#c47717;--shadow:0 1px 3px rgba(16,24,40,.06),0 14px 36px rgba(35,52,81,.06);font-family:Inter,"Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif;color:var(--text);background:var(--bg)}
*[hidden]{display:none!important}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg)}body{font-size:15px;line-height:1.7}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid rgba(91,108,232,.28);outline-offset:2px}.siteHeader{height:72px;background:rgba(23,36,59,.98);color:#fff;display:flex;align-items:center;padding:0 max(24px,calc((100vw - 1160px)/2));gap:28px;position:sticky;top:0;z-index:50;box-shadow:0 8px 24px rgba(23,36,59,.12)}.brand{border:0;background:transparent;color:#fff;display:flex;align-items:center;gap:11px;padding:8px 0;text-align:left}.brandMark{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#7b87f5,#4f63df);display:grid;place-items:center;font-weight:900;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}.brand strong{display:block;font-size:14px}.brand small{display:block;font-size:12px;letter-spacing:.1em;color:#bfc9dd}.desktopNav{display:flex;align-self:stretch}.desktopNav button{border:0;background:transparent;color:#c9d1e2;min-width:70px;padding:0 16px;font-weight:700}.desktopNav button.active,.desktopNav button:hover{color:#fff;background:rgba(255,255,255,.06)}.accountButton{margin-left:auto;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);color:#fff;border-radius:999px;min-height:44px;padding:5px 12px 5px 6px;display:flex;align-items:center;gap:8px}.accountButton span{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--navy);font-weight:900}.accountButton b{font-size:13px}.app{width:min(1160px,calc(100% - 32px));margin:28px auto 64px}.hero{border-radius:22px;padding:36px 38px;background:linear-gradient(125deg,#17243b 0%,#243b61 68%,#344b81 100%);color:#fff;box-shadow:0 18px 48px rgba(23,36,59,.18);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:330px;height:330px;border-radius:50%;right:-90px;top:-170px;background:rgba(121,135,245,.15)}.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.14em;font-weight:900;color:#cbd3ff}.hero h1{font-size:clamp(28px,4vw,45px);line-height:1.25;margin:12px 0 12px;letter-spacing:-.03em}.hero p{max-width:660px;color:#d7deec;margin:0 0 24px;font-size:15px}.heroActions{display:flex;gap:12px;flex-wrap:wrap}.primary,.secondary,.ghost,.danger{border-radius:12px;min-height:48px;padding:0 20px;font-weight:800;border:1px solid transparent}.primary{background:var(--indigo);color:#fff;box-shadow:0 8px 20px rgba(91,108,232,.28)}.primary:hover{filter:brightness(.97)}.secondary{background:#fff;color:var(--navy);border-color:var(--line)}.ghost{background:transparent;color:var(--indigo);border-color:#cbd1ff}.danger{background:#fff1f3;color:var(--bad);border-color:#ffd1d9}.panel{background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);padding:24px;margin-top:20px}.panelHead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}.panelHead h2{font-size:20px;margin:0}.panelHead p{margin:2px 0 0;color:var(--muted);font-size:13px}.firstGuide{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px;border:1px solid #dfe3ff;background:linear-gradient(135deg,#f7f8ff,#fff);border-radius:15px}.firstGuide h2{margin:5px 0;font-size:22px}.firstGuide p{margin:0;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:20px}.metric{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:var(--shadow)}.metric small{display:block;color:var(--muted);font-size:13px}.metric strong{display:inline-block;font-size:29px;margin-top:5px}.metric em{font-style:normal;color:var(--muted);font-size:13px;margin-left:4px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.actionCard{border:1px solid var(--line);background:#fff;border-radius:16px;padding:20px;text-align:left;min-height:190px;display:flex;flex-direction:column;box-shadow:var(--shadow)}.actionCard:hover{border-color:#b8c0fa;transform:translateY(-1px)}.actionCard .tag{font-size:12px;font-weight:900;color:var(--indigo);letter-spacing:.06em}.actionCard .icon{width:43px;height:43px;border-radius:13px;background:var(--indigo2);color:var(--indigo);display:grid;place-items:center;font-weight:900;margin:12px 0}.actionCard h3{font-size:18px;margin:0 0 5px}.actionCard p{color:var(--muted);font-size:13px;margin:0}.actionCard .cta{margin-top:auto;color:var(--indigo);font-weight:800;font-size:13px;padding-top:14px}.loginShell{min-height:calc(100vh - 20px);display:grid;place-items:center;padding:24px}.loginCard{width:min(980px,100%);display:grid;grid-template-columns:1.08fr .92fr;background:#fff;border-radius:24px;overflow:hidden;border:1px solid var(--line);box-shadow:0 24px 70px rgba(23,36,59,.14)}.loginVisual{padding:52px;background:linear-gradient(135deg,#17243b,#2a4270);color:#fff}.loginVisual .brandMark{width:48px;height:48px}.loginVisual h1{font-size:38px;line-height:1.25;margin:30px 0 14px}.loginVisual p{color:#d7deec}.loginPoints{display:grid;gap:12px;margin-top:35px}.loginPoints div{display:flex;gap:11px;align-items:flex-start;font-size:13px;color:#e2e7f2}.loginPoints i{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.12);display:grid;place-items:center;font-style:normal}.loginForm{padding:52px;display:flex;flex-direction:column;justify-content:center}.loginForm h2{font-size:25px;margin:0 0 8px}.loginForm>p{color:var(--muted);font-size:13px;margin:0 0 24px}.field label{display:block;font-weight:800;font-size:13px;margin-bottom:7px}.field input{width:100%;height:50px;border:1px solid #cfd5e1;border-radius:11px;padding:0 14px;font-size:16px}.loginForm .primary{width:100%;margin-top:14px}.loginStatus{margin-top:16px;background:#f5f7ff;border:1px solid #dce1ff;border-radius:12px;padding:14px;font-size:13px;color:var(--muted)}.loginStatus a{display:inline-flex;margin-top:8px;color:var(--indigo);font-weight:800}.examShell{width:min(920px,100%);margin:0 auto}.examBar{background:rgba(23,36,59,.98);color:#fff;border-radius:17px;padding:12px 14px;display:grid;grid-template-columns:1fr auto auto auto auto;align-items:center;gap:10px;position:sticky;top:82px;z-index:30;box-shadow:0 12px 32px rgba(23,36,59,.18)}.examIdentity{display:flex;align-items:center;gap:10px}.examIcon{width:38px;height:38px;border-radius:11px;background:#6676eb;display:grid;place-items:center;font-weight:900}.examIdentity strong{display:block;font-size:14px}.examIdentity span{display:block;color:#bdc7da;font-size:12px}.examMetric{min-width:82px;text-align:center;border-left:1px solid rgba(255,255,255,.12)}.examMetric small{display:block;font-size:12px;color:#bfc9dd}.examMetric strong{font-size:16px}.exitButton{height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#fff;font-weight:800;padding:0 13px}.questionCard{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:28px;margin-top:16px}.questionTop{display:flex;gap:13px;align-items:flex-start}.questionNumber{flex:0 0 38px;height:38px;border-radius:11px;background:var(--indigo2);color:var(--indigo);display:grid;place-items:center;font-weight:900}.questionKind{font-size:12px;font-weight:900;color:var(--indigo);letter-spacing:.08em}.questionPrompt{font-size:17px;font-weight:800;line-height:1.8;margin-top:3px}.passage{max-width:46em;margin:24px auto;background:#fafbfe;border:1px solid #e5e8f0;border-radius:14px;padding:22px;font-size:16px;line-height:2}.passage p{margin:0 0 1em}.choices{display:grid;gap:10px;margin-top:20px}.choice{min-height:57px;border:1px solid #d7dce7;background:#fff;border-radius:13px;display:grid;grid-template-columns:36px 1fr;align-items:center;text-align:left;padding:10px 14px;color:var(--text)}.choice:hover{border-color:#aeb8fa;background:#fafaff}.choice.selected{border:2px solid var(--indigo);background:#f3f4ff;padding:9px 13px}.choiceKey{width:28px;height:28px;border-radius:9px;background:#f1f3f8;display:grid;place-items:center;font-weight:900;color:var(--muted)}.choice.selected .choiceKey{background:var(--indigo);color:#fff}.questionNav{display:flex;align-items:center;gap:10px;margin-top:20px}.questionNav .primary{margin-left:auto}.sessionCode{margin-top:17px;text-align:right;color:#8b94a5;font-size:12px;letter-spacing:.08em;user-select:none}.resultHero{border-radius:20px;padding:30px;background:linear-gradient(135deg,#17243b,#2b4370);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:30px}.scoreBig{font-size:52px;font-weight:900;line-height:1}.scoreBig small{font-size:17px;color:#c7d0e1}.resultList{display:grid;gap:13px;margin-top:18px}.reviewRow{background:#fff;border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:var(--shadow)}.reviewRow.wrong{border-left:4px solid var(--bad)}.reviewRow.correct{border-left:4px solid var(--ok)}.reviewRow h3{font-size:15px;margin:0 0 9px}.answerLine{font-size:13px;color:var(--muted)}.answerLine .ok{color:var(--ok);font-weight:900}.answerLine .bad{color:var(--bad);font-weight:900}.explanation{margin-top:12px;padding-top:12px;border-top:1px solid #edf0f5;font-size:14px;color:#374156}.tableList{display:grid;gap:10px}.historyRow,.deviceRow,.reviewSummary{display:grid;grid-template-columns:1.4fr repeat(3,.7fr);align-items:center;gap:14px;border:1px solid var(--line);border-radius:13px;padding:15px;background:#fff}.historyRow small,.deviceRow small{display:block;color:var(--muted);font-size:12px}.historyRow strong,.deviceRow strong{font-size:14px}.statusPill{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:0 10px;background:#eaf8f2;color:var(--ok);font-size:12px;font-weight:900}.accountGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.infoList{display:grid}.infoRow{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid #edf0f5}.infoRow span{color:var(--muted);font-size:13px}.infoRow strong{font-size:13px;text-align:right}.emptyState{text-align:center;padding:40px 18px;color:var(--muted)}.emptyState h2{color:var(--text);margin:0 0 6px}.modalBackdrop{position:fixed;inset:0;background:rgba(17,27,45,.55);z-index:100;display:grid;place-items:center;padding:20px}.modalCard{width:min(440px,100%);background:#fff;border-radius:16px;padding:24px;box-shadow:0 24px 60px rgba(16,24,40,.24)}.modalCard h2{font-size:19px;margin:0 0 7px}.modalCard p{font-size:14px;color:var(--muted)}.modalActions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.toast{position:fixed;right:18px;bottom:18px;z-index:120;background:#17243b;color:#fff;padding:12px 16px;border-radius:11px;box-shadow:0 12px 32px rgba(0,0,0,.18);opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s}.toast.show{opacity:1;transform:none}.mobileNav{display:none}.focusVideo{position:fixed;right:18px;bottom:18px;width:220px;aspect-ratio:4/3;object-fit:cover;border-radius:15px;border:4px solid #fff;box-shadow:0 16px 44px rgba(23,36,59,.28);z-index:40;background:#111}@media print{.examShell,.questionCard,.resultList{display:none!important}}
@media(max-width:760px){body{padding-bottom:74px}.siteHeader{height:62px;padding:0 12px;gap:8px}.brand strong{font-size:13px}.brand small,.desktopNav,.accountButton b{display:none}.brandMark{width:35px;height:35px}.accountButton{width:44px;height:44px;padding:0;justify-content:center}.accountButton span{width:31px;height:31px}.app{width:min(100% - 20px,620px);margin:15px auto 28px}.mobileNav{position:fixed;left:0;right:0;bottom:0;height:65px;background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);z-index:60;padding-bottom:env(safe-area-inset-bottom)}.mobileNav button{border:0;background:#fff;color:#6a7385;min-height:51px;font-size:12px;font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.mobileNav button span{font-size:17px}.mobileNav button.active{color:var(--indigo)}.hero{padding:26px 22px;border-radius:18px}.hero h1{font-size:29px}.heroActions>*{width:100%}.metrics{grid-template-columns:1fr 1fr}.metric{padding:15px}.metric strong{font-size:25px}.cards{grid-template-columns:1fr}.panel{padding:18px}.firstGuide{display:block}.firstGuide button{width:100%;margin-top:16px}.loginShell{padding:10px;min-height:100vh}.loginCard{grid-template-columns:1fr;border-radius:18px}.loginVisual{padding:27px}.loginVisual h1{font-size:27px;margin:18px 0 8px}.loginPoints{display:none}.loginForm{padding:27px}.examShell{width:100%}.examBar{top:70px;border-radius:14px;grid-template-columns:1fr auto auto;padding:10px}.examIdentity span,.examMetric:first-of-type,.examMetric:nth-of-type(2){display:none}.examMetric{min-width:64px}.examMetric small{font-size:12px}.exitButton{height:44px;padding:0 9px}.questionCard{padding:19px 16px;border-radius:15px}.questionPrompt{font-size:16px}.passage{width:100%;font-size:16px;line-height:1.95;padding:17px;margin:18px 0}.choice{min-height:52px;padding:11px;grid-template-columns:34px 1fr}.choice.selected{padding:10px}.questionNav{position:sticky;bottom:8px;background:rgba(245,247,251,.96);padding:9px;border-radius:14px;box-shadow:0 8px 24px rgba(23,36,59,.12)}.questionNav button{min-height:48px;padding:0 13px}.resultHero{display:block;padding:24px}.scoreBig{font-size:44px;margin-top:15px}.accountGrid{grid-template-columns:1fr}.historyRow,.deviceRow{grid-template-columns:1fr 1fr}.historyRow>:first-child,.deviceRow>:first-child{grid-column:1/-1}.focusVideo{display:none!important}body.inExam .mobileNav{display:none}body.inExam{padding-bottom:0}.sessionCode{font-size:12px}}

/* candidate_08: display mode and language timing analysis */
.layoutPicker{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.layoutPicker legend{font-weight:900;font-size:14px;margin-bottom:10px}.layoutOption{min-height:92px;border:1px solid var(--line);border-radius:14px;padding:15px;display:flex;gap:12px;align-items:flex-start;background:#fff;cursor:pointer}.layoutOption:hover{border-color:#b8c0fa}.layoutOption.selected{border:2px solid var(--indigo);background:#f5f6ff;padding:14px}.layoutOption input{margin-top:5px;accent-color:var(--indigo)}.layoutOption strong{display:block;font-size:15px}.layoutOption small{display:block;color:var(--muted);font-size:13px;line-height:1.65;margin-top:2px}.focusChoice{display:flex;gap:10px;align-items:center;margin-top:18px;color:var(--muted);font-size:13px}.practiceActions{display:flex;justify-content:flex-end;margin-top:20px}.loadingPanel{margin:80px auto;background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);padding:44px;text-align:center}.loadingPanel h2{margin:12px 0 3px}.loadingPanel p{margin:0;color:var(--muted)}.loadingDot{display:inline-block;width:34px;height:34px;border-radius:50%;border:4px solid #dfe3ff;border-top-color:var(--indigo);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.allPageShell{width:min(1020px,100%)}.allQuestions{display:grid;gap:16px}.allQuestionCard{margin-top:16px}.finishPanel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:20px;margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:18px}.finishPanel strong{font-size:16px}.finishPanel p{margin:2px 0 0;color:var(--muted);font-size:13px}.resultActions,.accountActions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.timingPanel{margin-top:18px}.timingGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.timingGrid article{border:1px solid var(--line);border-radius:13px;padding:15px;background:#fbfcff}.timingGrid strong{display:block;color:var(--indigo);font-size:15px}.timingGrid span{display:block;font-weight:800;font-size:13px;margin-top:5px}.timingGrid small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.reviewTitle{display:flex;gap:14px;align-items:flex-start;justify-content:space-between}.reviewTitle h3{margin:0 0 9px}.timingBadge{flex:0 0 auto;display:inline-flex;min-height:30px;align-items:center;border-radius:999px;padding:0 10px;background:var(--indigo2);color:var(--indigo);font-size:12px;font-weight:900}.timingLine{display:flex;gap:14px;flex-wrap:wrap;margin:2px 0 10px;color:var(--muted);font-size:12px}.timingLine strong{color:var(--text)}

@media(max-width:760px){.layoutPicker{grid-template-columns:1fr}.layoutOption{min-height:96px}.practiceActions .primary{width:100%}.loadingPanel{margin:50px auto;padding:30px 20px}.allPageShell .examBar{top:70px}.allQuestionCard{padding:19px 16px}.finishPanel{display:block}.finishPanel .primary{width:100%;margin-top:14px}.timingGrid{grid-template-columns:1fr 1fr}.timingGrid article{padding:13px}.reviewTitle{display:block}.timingBadge{margin-bottom:8px}.timingLine{gap:8px 12px}.resultActions{flex-direction:column-reverse}.resultActions button{width:100%}}

/* candidate_09: language drills and production adapter */
.menuCards{grid-template-columns:repeat(auto-fit,minmax(205px,1fr))}.practiceSection{scroll-margin-top:88px}.settingsGrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.compactPicker{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start}.compactPicker legend{grid-column:1/-1;font-weight:900;font-size:14px;margin-bottom:2px}.compactPicker .layoutOption{min-height:66px;padding:12px}.compactPicker .layoutOption.selected{padding:11px}.drillStats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.drillStats>div{border:1px solid var(--line);border-radius:13px;background:#fbfcff;padding:14px}.drillStats small{display:block;color:var(--muted);font-size:12px}.drillStats strong{display:block;font-size:16px;margin-top:3px}.resultDrillStats{margin:0}.dontKnowChoice{background:#f2f4f7}.choice:disabled{cursor:default;opacity:1}.choice.answerCorrect{border:2px solid var(--ok);background:#eaf8f2;padding:9px 13px}.choice.answerCorrect .choiceKey{background:var(--ok);color:#fff}.choice.answerWrong{border:2px solid var(--bad);background:#fff1f3;padding:9px 13px}.choice.answerWrong .choiceKey{background:var(--bad);color:#fff}.inlineFeedback{margin-top:14px;border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:12px;font-size:13px}.inlineFeedback strong{font-size:15px}.inlineFeedback.isCorrect{background:#eaf8f2;color:var(--ok);border:1px solid #b9e5d5}.inlineFeedback.isWrong{background:#fff1f3;color:var(--bad);border:1px solid #ffd1d9}.drillNav{justify-content:flex-end}.questionNote{text-align:right;color:var(--muted);font-size:12px;margin:8px 2px 0}.reviewRow .questionKind{margin-bottom:5px}
@media(max-width:760px){.settingsGrid{grid-template-columns:1fr}.compactPicker{grid-template-columns:1fr 1fr}.drillStats{grid-template-columns:1fr}.practiceSection{scroll-margin-top:72px}.questionNote{text-align:left}.menuCards{grid-template-columns:1fr}}
.reviewBadges{display:inline-flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;margin-left:8px}.badgeWrong,.badgeSaved,.badgeMastered{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:0 9px;font-size:12px;font-weight:900}.badgeWrong{background:#fff1f3;color:var(--bad)}.badgeSaved{background:#fff7dd;color:#8a6200}.badgeMastered{background:#eaf8f2;color:var(--ok)}.reviewRowActions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px}.reviewSaveButton{min-height:42px;border:1px solid #cfd5e1;border-radius:11px;padding:0 14px;background:#fff;color:var(--navy);font-weight:800}.reviewSaveButton.isSaved{background:#fff7dd;border-color:#efd27a;color:#725200}.reviewSaveButton:disabled{opacity:.55;cursor:wait}.integrityNotice{width:min(1160px,calc(100% - 32px));margin:18px auto 0;background:#fff7dd;border:1px solid #efd27a;border-radius:13px;padding:13px 15px;color:#725200;font-size:13px}.reviewMetrics{margin-bottom:0}
@media(max-width:760px){.reviewBadges{margin:8px 0 0;justify-content:flex-start}.reviewRowActions{display:grid;grid-template-columns:1fr}.reviewRowActions button{width:100%}.integrityNotice{width:100%;margin-top:14px}.reviewMetrics{grid-template-columns:1fr 1fr}.panelHead{align-items:flex-start;flex-direction:column}.panelHead>.primary{width:100%}}

/* candidate_21: scanner-safe magic-link confirmation */
.authConfirmBody{min-height:100vh;margin:0;background:radial-gradient(circle at 20% 10%,#eef1ff 0,transparent 38%),linear-gradient(145deg,#f7f9fd,#edf2f9);color:#17243b;display:grid;place-items:center;padding:24px;font-family:inherit}
.authConfirmShell{width:min(100%,520px)}
.authConfirmCard{background:#fff;border:1px solid #dfe4ee;border-radius:20px;box-shadow:0 18px 50px rgba(23,36,59,.12);padding:38px;text-align:center}
.authConfirmMark{width:56px;height:56px;margin:0 auto 18px;border-radius:16px;display:grid;place-items:center;color:#fff;font-size:24px;font-weight:800;background:linear-gradient(145deg,#5b6ce8,#22b6c7)}
.authConfirmCard h1{font-size:26px;line-height:1.35;margin:8px 0 14px}
.authConfirmLead{font-size:15px;line-height:1.9;color:#4b5870;margin:0 auto 18px}
.authConfirmNotice{font-size:13px;line-height:1.7;background:#f4f6ff;border:1px solid #dce1ff;color:#3443a8;border-radius:12px;padding:12px 14px;margin:0 0 18px}
.authConfirmNotice.isError{background:#fff3f1;border-color:#ffd3cc;color:#9b3325}
.authConfirmButton{width:100%;min-height:50px;font-size:15px}
.authConfirmButton:disabled{opacity:.55;cursor:not-allowed}
.authConfirmBack{display:inline-block;margin-top:16px;color:#4f5fcf;font-size:14px;font-weight:700;text-decoration:none}
.authConfirmBack:hover{text-decoration:underline}
.authConfirmFoot{font-size:12px;line-height:1.7;color:#657086;margin:22px 0 0}
@media(max-width:520px){.authConfirmBody{padding:16px}.authConfirmCard{padding:28px 20px;border-radius:17px}.authConfirmCard h1{font-size:22px}.authConfirmLead{font-size:14px}.authConfirmFoot{font-size:13px}}
.captchaArea{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fafbfe;min-height:92px;display:flex;flex-direction:column;justify-content:center}.captchaArea>div{min-height:65px;display:flex;align-items:center;justify-content:center}.captchaArea p{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.captchaArea p.captchaError{color:var(--bad)}.loginForm .primary:disabled{cursor:not-allowed;opacity:.58;box-shadow:none}.loginStatus.error{background:#fff4f5;border-color:#ffd4da;color:var(--bad)}
@media(max-width:760px){.captchaArea{padding:12px}.captchaArea>div{overflow:hidden}.captchaArea iframe{max-width:100%}}
/* candidate_25 legal notice v1 */
.legalLinks {
  margin-top: 14px;
  font-size: 0.92rem;
  line-height: 1.6;
}

.legalLinks a {
  color: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.legalNotice {
  margin-top: 18px;
}

.legalNoticeList {
  display: grid;
  gap: 10px;
  margin: 14px 0 0;
  padding-left: 1.25rem;
  line-height: 1.75;
}

.legalPageBody {
  min-height: 100vh;
  margin: 0;
  padding: 32px 18px 56px;
}

.legalPage {
  width: min(820px, 100%);
  margin: 0 auto;
}

.legalPageHeader,
.legalPageSection {
  margin-bottom: 18px;
}

.legalPageHeader h1 {
  margin: 8px 0 12px;
}

.legalPageSection h2 {
  margin-top: 0;
}

.legalPageSection p,
.legalPageSection li {
  line-height: 1.85;
}

.legalPageSection ul {
  display: grid;
  gap: 8px;
  padding-left: 1.35rem;
}

.legalPageMeta {
  font-size: 0.9rem;
  opacity: 0.75;
}

.legalPageBack {
  margin-top: 26px;
}
/* candidate_25 mobile visual polish v1 */
.loginVisual h1 .heroLine {
  display: block;
}

@media (max-width: 720px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  #app,
  .loginCard,
  .loginVisual,
  .hero,
  .metrics,
  .panel {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  .loginVisual h1 {
    font-size: 24px;
    line-height: 1.22;
    letter-spacing: 0;
  }

  .hero h1 {
    font-size: clamp(1.75rem, 7.4vw, 2.1rem);
    line-height: 1.25;
    overflow-wrap: anywhere;
  }

  .hero p {
    overflow-wrap: anywhere;
  }

  .metrics {
    grid-template-columns: minmax(0, 1fr);
  }

  .metric {
    min-width: 0;
  }
}

/* candidate_25 account hero mobile fix v1 */
@media (max-width: 640px) {
  .hero.heroAccount {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    overflow: hidden;
  }

  .hero.heroAccount h1 {
    max-width: 100%;
    margin-right: 0;
    font-size: clamp(1.65rem, 7vw, 1.9rem);
    line-height: 1.22;
    letter-spacing: 0;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
  }

  .hero.heroAccount .accountHeroLine {
    display: block;
    max-width: 100%;
  }

  .hero.heroAccount p {
    max-width: 100%;
    margin-right: 0;
    font-size: 0.95rem;
    line-height: 1.65;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
  }

  .hero.heroAccount::after {
    width: 180px;
    height: 180px;
    top: -88px;
    right: -70px;
    opacity: 0.55;
  }
}

/* TGWEB_CANDIDATE25_R8_ACCOUNT_HERO_MOBILE_TWO_LINE_V1
   390px前後のスマートフォン表示で、アカウント見出しの各行を途中分割しない。 */
@media (max-width: 700px) {
  .hero.heroAccount h1 {
    font-size: clamp(23px, 7.18vw, 28px);
    line-height: 1.18;
    letter-spacing: -0.04em;
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
  }
}

/* TGWEB_CANDIDATE25_R9B_MANUAL_WITHDRAWAL_SUPPORT_V1
   アカウント画面に手動退会・問い合わせ窓口を表示する。 */
.accountSupportBlock {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid rgba(18, 48, 96, 0.16);
}

.accountSupportBlock h3 {
  margin: 0 0 10px;
  font-size: 1.05rem;
}

.accountSupportBlock p {
  margin: 0 0 10px;
}

.accountSupportBlock ul {
  margin: 10px 0 12px;
  padding-left: 1.35rem;
}

.accountSupportBlock li + li {
  margin-top: 6px;
}

.accountSupportAddress {
  font-weight: 700;
}

.accountSupportAddress a {
  overflow-wrap: anywhere;
}

.accountSupportNote {
  margin-bottom: 0;
  font-size: 0.92rem;
  color: #4c5d78;
}

@media (max-width: 700px) {
  .accountSupportBlock {
    margin-top: 18px;
    padding-top: 18px;
  }

  .accountSupportBlock ul {
    padding-left: 1.2rem;
  }
}
/* candidate_27: product branding */
.loginBrand{
  display:flex;
  align-items:center;
  gap:12px;
}

.loginBrand strong{
  display:block;
  font-size:15px;
}

.loginBrand small{
  display:block;
  margin-top:1px;
  font-size:11px;
  letter-spacing:.12em;
  color:#cbd3ff;
}

/* candidate_27: preserve approved <u> markup in passages */
.passage u{
  text-decoration:underline;
  text-decoration-thickness:1.5px;
  text-underline-offset:3px;
}

/* candidate_27: robust copy-deterrence selection fallback */
.examShell .questionCard,[data-material-protected="1"]{
  -webkit-user-select:none;
  user-select:none;
}

/* TGWEB_CANDIDATE30_LANGUAGE_MOBILE_UI_FIX_V1
   Language smartphone UI only:
   - restore login points 1-3
   - keep login controls inside symmetric form margins
   - avoid awkward one-character hero wrapping
   No API / auth / scoring / quantitative changes.
*/
@media (max-width: 760px) {
  .loginPoints {
    display: grid;
    gap: 10px;
    margin-top: 22px;
  }

  .loginPoints div {
    font-size: 12px;
    line-height: 1.55;
  }

  .loginPoints i {
    flex: 0 0 22px;
  }

  .loginForm {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .loginForm .field,
  .loginForm .captchaArea,
  .loginForm .captchaArea > div,
  .loginForm .primary {
    min-width: 0;
    max-width: 100%;
  }

  .loginForm .field input,
  .loginForm .primary {
    width: 100%;
    max-width: 100%;
  }

  .loginForm .captchaArea {
    width: 100%;
    padding-left: 0;
    padding-right: 0;
    overflow: hidden;
  }

  .loginForm .captchaArea > div {
    width: 100%;
    min-width: 0;
    overflow: hidden;
  }

  .loginForm .captchaArea iframe {
    display: block;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 420px) {
  .hero h1 {
    font-size: clamp(23px, 6.7vw, 25.5px);
    line-height: 1.28;
    letter-spacing: -0.02em;
    word-break: normal;
    overflow-wrap: normal;
    text-wrap: balance;
  }
}

/* TGWEB_CANDIDATE31_LANGUAGE_MOBILE_HERO_EXPLICIT_BREAKS_V1
   Explicit smartphone hero line breaks only.
   Desktop remains inline.
*/
@media (max-width: 760px) {
  .hero h1 .mobileHeroLine {
    display: block;
    white-space: nowrap;
    word-break: keep-all;
    overflow-wrap: normal;
  }
}

/* TG-WEB OTP6 LOGIN */
.otpArea{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.otpArea label{display:block;font-weight:800;font-size:13px;margin-bottom:6px}
.otpHelp{color:var(--muted);font-size:12px;line-height:1.7;margin:0 0 10px}
.otpArea input{width:100%;height:50px;border:1px solid #cfd5e1;border-radius:11px;padding:0 14px;font-size:20px;letter-spacing:6px;text-align:center}
.otpArea .secondary{width:100%;margin-top:10px}
#otpStatus:empty{display:none}

/* ------------------------------------------------------------------
   q59: アクセス不可時の説明画面

   従来は bootstrap() の失敗をすべてログイン画面へ落としていたため、
   「利用権がない」「端末が上限」「通信エラー」のいずれも無言で
   ログイン画面に戻るだけで、利用者からは原因が判別できなかった。
   原因ごとに説明と対処手段を提示するための画面。
   .deviceRow / .tableList / .statusPill / .heroAccount は既存を流用。
   ------------------------------------------------------------------ */
.q59Blocked{margin-top:16px}
.q59Lead{margin:0 0 14px;line-height:1.9}
.q59List{margin:14px 0;padding-left:20px;line-height:1.9}
.q59List li{margin-bottom:6px}
.q59Note{color:var(--muted);font-size:13px;line-height:1.8;margin:14px 0 0}
.q59Support{margin:14px 0 0;font-size:14px;line-height:1.8}
.q59Support a{font-weight:800}
.q59Blocked .infoList{margin-bottom:14px}
.q59Actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.q59Actions button{flex:1 1 auto;min-width:180px;min-height:46px}

@media(max-width:760px){
  .q59Actions{display:block}
  .q59Actions button{width:100%;min-width:0}
  .q59Actions button + button{margin-top:10px}
}

/* ------------------------------------------------------------------
   L34: 解答・解説の折りたたみ / 履歴の正答率配色

   言語版は1問に長文パッセージを含むことがあり、全問を展開したまま縦に
   並べると目的の問題に到達するまでのスクロール量が大きい。既定で開くのは
   「今すぐ手を打つべきもの」だけに絞る。
     結果画面 → 誤答した問題
     復習画面 → 累積誤答3回以上（全件が誤答なので正誤では区別できない）
   ------------------------------------------------------------------ */

/* 一覧見出しと開閉トグル */
.reviewListHead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0 -4px}
.reviewListHead h2{font-size:20px;margin:0}.resultLegend{display:flex;align-items:center;gap:14px;margin:4px 0 0;color:var(--muted);font-size:12px}.resultLegend span{display:inline-flex;align-items:center;gap:5px}.resultLegendDot{width:9px;height:9px;border-radius:50%;display:inline-block}.resultLegendDot.correct{background:var(--ok)}.resultLegendDot.wrong{background:var(--bad)}
.reviewToggle{border:0;background:#eef1ff;color:#5267da;border-radius:9px;padding:8px 12px;font-size:12px;font-weight:800;min-height:40px}
.reviewHeadActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* details 化した行。閉じた状態でも判断できるよう summary に情報を残す */
details.reviewRow{padding:0}
details.reviewRow>summary{list-style:none;cursor:pointer;padding:18px 20px;display:flex;align-items:flex-start;gap:11px}
details.reviewRow>summary::-webkit-details-marker{display:none}
details.reviewRow>summary::after{content:"▾";margin-left:auto;flex:0 0 auto;color:var(--muted);font-size:13px;transition:transform .15s}
details.reviewRow[open]>summary::after{transform:rotate(180deg)}
details.reviewRow>summary:hover{background:#fafbff}
.reviewSummaryText{flex:1 1 auto;min-width:0;font-size:15px;font-weight:800;line-height:1.7}
.reviewSummaryText .questionKind{display:block;margin-bottom:3px}
.reviewSummaryMeta{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.reviewBody{padding:0 20px 20px}
.reviewBody .passage{margin-top:4px}

/* 正誤ドット（結果画面） */
.reviewDot{flex:0 0 auto;width:10px;height:10px;border-radius:50%;margin-top:8px}
.reviewDot.correct{background:var(--ok)}
.reviewDot.wrong{background:var(--bad)}

/* 累積誤答回数（復習画面）。左ラインの色でも重さを示す */
.missBadge{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:0 9px;font-size:12px;font-weight:900}
.missBadge.missLight{background:#f1f3f8;color:var(--muted)}
.missBadge.missMid{background:#fff7dd;color:#8a6200}
.missBadge.missHeavy{background:#fff1f3;color:var(--bad)}
details.reviewRow.missWeight-light{border-left:4px solid #d7dce7}
details.reviewRow.missWeight-mid{border-left:4px solid #efd27a}
details.reviewRow.missWeight-heavy{border-left:4px solid var(--bad)}

/* 履歴の正答率 */
/* 結果画面のバッジ。卒業（2回連続正解）は復習演習でのみ進むため、
   復習演習では残り回数を、模試・演習では状態のみを示す。 */
.badgeStreak{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:0 9px;font-size:12px;font-weight:900;background:#eef1ff;color:#4a5bd0}
.badgeInPool{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:0 9px;font-size:12px;font-weight:900;background:#f1f3f8;color:var(--muted)}

.accHigh{color:var(--ok)}
.accMid{color:#8a6200}
.accLow{color:var(--bad)}

/* 結果画面のボタン。右寄せだと3つが片側へ寄って重心が偏るため、
   幅いっぱいに均等配置する。主行動（ホームへ戻る）は右端のまま。 */
.resultActionsSpread{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.resultActionsSpread button{width:100%}

@media(max-width:760px){
  .resultActionsSpread{display:flex;flex-direction:column-reverse}

  .reviewListHead{display:block;margin-bottom:10px}
  .reviewToggle{width:100%;margin-top:10px}
  .reviewHeadActions{display:grid;grid-template-columns:1fr;width:100%}
  .reviewHeadActions button{width:100%}
  details.reviewRow>summary{padding:16px;flex-wrap:wrap}
  .reviewSummaryMeta{width:100%;justify-content:flex-start;margin-top:8px}
  .reviewBody{padding:0 16px 16px}
}

/* ------------------------------------------------------------------
   H01: 見出し説明文の折り返し調整（両製品共通）

   .hero p は max-width:660px で折り返していたため、画面幅に余裕のある
   PCでも早く折り返し、最終行に数文字だけ残ることがあった。

   max-width を広げて1行に収まる範囲を増やしつつ、2行以上になる場合も
   text-wrap:pretty でブラウザに行末を調整させ、最終行が極端に短くなる
   状態を避ける。未対応のブラウザでは従来どおり折り返すだけで、
   悪化はしない。

   1行が長くなりすぎると行頭に視線を戻しにくくなるため、無制限には
   広げず 800px に留める。

   ホームの説明は 800px でも1行に収まらない長さだったため、文を2つに
   分けてそれぞれ独立して折り返すようにした。内容は続きの説明であり
   別段落として離すものではないので、2文目の上余白は詰める。
   ------------------------------------------------------------------ */
.hero p{max-width:800px;text-wrap:pretty}
.hero h1{text-wrap:balance}
.hero p.heroLead2{margin-top:-26px}

/* 見出しの改行は画面幅で切り替える。計数版は <br> を直接書いていたため、
   PCでも常に2行になっていた。HTMLの構造による改行はCSSで打ち消せないので、
   言語版と同じ span 方式に揃え、狭い画面でのみ行を分ける。 */
@media(max-width:760px){
  .hero h1 .mobileHeroLine{display:block;white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
}

/* ------------------------------------------------------------------
   H06: ログイン画面リード文の改行位置

   ログイン画面の左カラムは幅424pxで、リード文（29字・約435px）が
   わずか11px足りずに2行になっていた。そのため「一／つ」のように
   語の途中で折り返していた。

   カラムを広げると右のフォームが狭くなり、文字を縮めると他の文言との
   統一が崩れる。11pxのために払う代償として見合わない。

   2行になること自体は避けられないので、切れる位置を意味の区切りに
   固定する。既存の .loginVisual h1 .heroLine と同じ方式を p にも
   適用する。幅が多少変わっても崩れない。
   ------------------------------------------------------------------ */
.loginVisual p .heroLine{display:block}


/* candidate_35 TC language format-navigation UI staging */
.formatSwitchPanel{padding-bottom:20px}.formatTabs{display:inline-flex;gap:6px;padding:5px;background:#f1f3f8;border:1px solid var(--line);border-radius:13px;margin:0 0 18px}.formatTab{border:0;background:transparent;color:var(--muted);min-height:40px;padding:0 18px;border-radius:9px;font-weight:900}.formatTab:hover{background:#fff}.formatTab.active{background:#fff;color:var(--indigo);box-shadow:0 1px 3px rgba(16,24,40,.08)}
.examFormatModal{width:min(560px,100%)}.examFormatChoices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.examFormatChoice{border:1px solid var(--line);background:#fff;border-radius:14px;padding:17px;text-align:left;min-height:145px}.examFormatChoice:hover{border-color:#aeb8fa;background:#fafaff}.examFormatChoice .tag{display:inline-flex;color:var(--indigo);font-size:12px;font-weight:900;margin-bottom:8px}.examFormatChoice strong{display:block;font-size:16px}.examFormatChoice small{display:block;color:var(--muted);font-size:13px;line-height:1.65;margin-top:5px}
.tcMenuCards{grid-template-columns:repeat(4,minmax(0,1fr))}.tcFormatSummary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 12px}.tcFormatSummary span{display:inline-flex;min-height:38px;align-items:center;border:1px solid #dfe3ff;background:#f7f8ff;color:#3543a4;border-radius:10px;padding:0 13px;font-weight:900;font-size:13px}.tcFormatSummary b{color:var(--muted)}
.tcDrillStats{grid-template-columns:repeat(4,1fr)}.tcSettingsGrid{grid-template-columns:1.45fr .75fr}.tcFormatPicker{grid-template-columns:1fr}.tcPriorityBox{border:1px solid var(--line);border-radius:14px;background:#fbfcff;padding:14px;align-self:start}.tcPriorityLabel{display:block;color:var(--muted);font-size:12px;font-weight:800}.tcPriorityBox strong{display:block;color:var(--indigo);font-size:16px;margin-top:4px}.tcPriorityBox small{display:block;color:var(--muted);font-size:12px;line-height:1.65;margin-top:5px}
@media(max-width:900px){.tcMenuCards{grid-template-columns:repeat(2,minmax(0,1fr))}.tcDrillStats{grid-template-columns:1fr 1fr}.tcSettingsGrid{grid-template-columns:1fr}}
@media(max-width:760px){.formatTabs{display:grid;grid-template-columns:1fr 1fr;width:100%}.formatTab{padding:0 10px}.examFormatChoices{grid-template-columns:1fr}.tcMenuCards{grid-template-columns:1fr}.tcDrillStats{grid-template-columns:1fr 1fr}.tcFormatSummary{display:grid;grid-template-columns:1fr auto 1fr}.tcFormatSummary span{justify-content:center;text-align:center;min-height:52px}.tcPriorityBox{grid-column:1/-1}}

/* ------------------------------------------------------------------
   candidate_35 TC language full integration
   Scoped to TC-only classes so the frozen New-Type layout is not restyled.
   ------------------------------------------------------------------ */
.tcExamGrid{display:block}.tcQuestionMain{min-width:0}.tcQuestionRail{position:sticky;top:86px;display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:10px;border:1px solid var(--line);background:#fff;border-radius:14px;box-shadow:var(--shadow)}.tcRailButton{height:38px;border:1px solid var(--line);background:#fff;border-radius:8px;font-weight:900;color:var(--muted)}.tcRailButton.answered{border-color:#aeb8fa;background:#f3f4ff;color:var(--indigo)}.tcRailButton.current{background:var(--navy);border-color:var(--navy);color:#fff}.tcQuestionCard{margin:0}.tcPassage{margin-bottom:20px}.tcStatements{display:grid;gap:14px}.tcStatement{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fbfcff}.tcStatementHead{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}.tcStatementHead>span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:30px;border-radius:8px;background:#eef1ff;color:var(--indigo);font-size:12px;font-weight:900}.tcStatementHead p{margin:2px 0 0;font-weight:800;line-height:1.75}.tcClassificationChoices{display:grid;grid-template-columns:1fr;gap:8px}.tcClassChoice{min-height:54px}.tcBackChoices{margin-top:18px}.tcResultMetrics{grid-template-columns:repeat(3,minmax(0,1fr))}.tcResultStatements{display:grid;gap:12px;margin-top:16px}.tcResultStatement{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:12px;padding:14px}.tcResultStatement.correct{border-left-color:var(--ok)}.tcResultStatement.wrong{border-left-color:var(--bad)}.tcResultStatement>strong{display:block;line-height:1.75}.tcExplanationIntro>strong{color:var(--indigo);font-size:15px}.tcOptionExplanationList{display:grid;gap:10px;margin-top:14px}.tcOptionExplanation{border-top:1px solid var(--line);border-left:3px solid transparent;padding:11px 10px 3px}.tcOptionExplanation.correct{background:#f6fbf8;border-left-color:var(--ok);border-radius:8px}.tcOptionExplanationHead{display:flex;align-items:flex-start;gap:8px}.tcOptionExplanationHead>strong{line-height:1.75}.tcExplanationJudge{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:24px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:900;line-height:1}.tcExplanationJudge.correct{background:#eaf8ef;color:var(--ok)}.tcExplanationJudge.wrong{background:#fff1f3;color:var(--bad)}.tcOptionExplanationList p{margin:5px 0 0;line-height:1.75;color:var(--muted)}.reviewBadge{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;padding:0 9px;font-size:12px;font-weight:900;background:#eef1ff;color:#4a5bd0}.reviewMastered{background:#eaf8ef;color:var(--ok)}.tcReviewPoolRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:17px 0;border-bottom:1px solid var(--line)}.tcReviewPoolRow:last-child{border-bottom:0}.tcReviewPoolRow>div:first-child{display:grid;gap:5px;min-width:0}.tcReviewPoolRow .questionKind{width:max-content}.tcReviewPoolRow strong{line-height:1.65}.tcReviewPoolRow small{color:var(--muted)}
@media(max-width:900px){.tcResultMetrics{grid-template-columns:1fr 1fr}.tcReviewPoolRow{grid-template-columns:1fr}.tcReviewPoolRow .reviewRowActions{justify-content:flex-start}}
@media(max-width:760px){.tcExamGrid{display:block}.tcQuestionRail{position:static;display:flex;overflow-x:auto;margin-bottom:10px;padding:8px}.tcRailButton{flex:0 0 42px}.tcStatement{padding:13px}.tcStatementHead{display:block}.tcStatementHead>span{margin-bottom:8px}.tcResultMetrics{grid-template-columns:1fr}.tcOptionExplanationHead{display:block}.tcExplanationJudge{margin-bottom:7px}.tcOptionExplanationHead>strong{display:block}.tcReviewPoolRow .reviewRowActions{display:grid;grid-template-columns:1fr}.tcReviewPoolRow .reviewRowActions button{width:100%}}

/* ===== candidate_38 HUMAN QA R2A: traditional sentence rows ===== */
.oldSentenceRow{
  display:grid;
  grid-template-columns:32px minmax(0,1fr);
  align-items:start;
  justify-content:initial;
  gap:10px;
}
.oldSentenceRow>span{
  text-align:left;
  justify-self:start;
}
.oldSentenceRow>strong{
  text-align:left;
  justify-self:stretch;
  line-height:1.75;
  overflow-wrap:anywhere;
}
/* ===== end candidate_38 HUMAN QA R2A ===== */

/* ===== candidate_38 HUMAN QA R4A V3: sentence-order readability ===== */
.oldSentenceRow{
  grid-template-columns:28px minmax(0,1fr);
  column-gap:8px;
  width:100%;
}
.oldSentenceRow>span{
  font-size:16px;
  line-height:1.8;
  text-align:left;
  justify-self:start;
}
.oldSentenceRow>strong{
  font-size:16px;
  line-height:1.8;
  text-align:left;
  justify-self:stretch;
}
/* ===== end candidate_38 HUMAN QA R4A V3 ===== */

/* ===== candidate_39 STEP02: language question-body weight unification ===== */
.questionPrompt,
.passage,
.tcStatementHead p,
.oldSentenceRow>strong{
  font-weight:600;
}
/* ===== end candidate_39 STEP02 ===== */

/* ===== candidate_40 STEP02: mobile language layout only ===== */
@media(max-width:760px){
  #oldExamSettings .tcFormatSummary{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    justify-items:stretch;
  }
  #oldExamSettings .tcFormatSummary span{
    width:100%;
    justify-content:center;
    text-align:center;
    min-height:44px;
  }
  #oldExamSettings .tcFormatSummary b{
    display:block;
    text-align:center;
    line-height:1;
    color:var(--muted);
  }

  .questionTop{
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    column-gap:13px;
    row-gap:8px;
    align-items:center;
  }
  .questionTop>.questionNumber{
    grid-column:1;
    grid-row:1;
  }
  .questionTop>div{
    display:contents;
  }
  .questionTop>div>.questionKind{
    grid-column:2;
    grid-row:1;
    align-self:center;
    margin:0;
  }
  .questionTop>div>.questionPrompt{
    grid-column:1/-1;
    grid-row:2;
    margin-top:0;
  }
}
/* ===== end candidate_40 STEP02 ===== */

/* ===== candidate_41 STEP06A: New-Type mock mobile summary = Traditional ===== */
@media(max-width:760px){
  #examSettings .tcFormatSummary{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
    justify-items:stretch;
  }
  #examSettings .tcFormatSummary span{
    width:100%;
    justify-content:center;
    text-align:center;
    min-height:44px;
  }
  #examSettings .tcFormatSummary b{
    display:block;
    text-align:center;
    line-height:1;
    color:var(--muted);
  }
}
/* ===== end candidate_41 STEP06A ===== */

/* ===== candidate_41 STEP06G: mobile exam-format modal usability ===== */
@media(max-width:760px){
  .examFormatModal{
    max-height:calc(100vh - 40px);
    max-height:calc(100dvh - 40px);
    overflow-y:auto;
    padding:18px;
  }
  .examFormatModal .examFormatChoices{
    gap:8px;
    margin-top:12px;
  }
  .examFormatModal .examFormatChoice{
    min-height:0;
    padding:12px 14px;
  }
  .examFormatModal .examFormatChoice .tag{
    margin-bottom:4px;
  }
  .examFormatModal .examFormatChoice small{
    line-height:1.5;
    margin-top:3px;
  }
  .examFormatModal .modalActions{
    position:sticky;
    bottom:0;
    z-index:1;
    margin-top:10px;
    padding-top:10px;
    background:#fff;
  }
}
/* ===== end candidate_41 STEP06G ===== */


/* ===== candidate_42 STEP07: review option alignment ===== */
.reviewChoiceList{display:grid}
.reviewChoiceRow{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:start;padding:13px 0;border-bottom:1px solid #edf0f5}
.reviewChoiceRow>span{color:var(--muted);font-size:13px;line-height:1.75}
.reviewChoiceRow>strong{min-width:0;font-size:13px;font-weight:600;line-height:1.75;text-align:left}
@media(max-width:760px){
  .reviewChoiceRow{grid-template-columns:24px minmax(0,1fr);gap:10px}
}
/* ===== end candidate_42 STEP07 ===== */
.loginRecovery{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.loginRecoveryDetails{margin:0}
.loginRecoveryDetails summary{list-style:none;cursor:pointer;text-align:center;color:var(--muted);font-size:12px;font-weight:800;line-height:1.5;user-select:none}
.loginRecoveryDetails summary::-webkit-details-marker{display:none}
.loginRecoveryDetails summary::after{content:"＋";display:inline-block;margin-left:7px;font-weight:900;color:var(--indigo)}
.loginRecoveryDetails[open] summary::after{content:"−"}
.loginRecoveryBody{padding-top:12px}
.loginRecoveryActions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.loginRecoveryActions .secondary,.loginRecoveryActions .ghost{width:100%;min-height:40px;padding:0 9px;font-size:12px;white-space:nowrap}
.loginRecovery p{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.6}
@media(max-width:460px){.loginRecoveryActions{grid-template-columns:1fr}.loginRecoveryActions .secondary,.loginRecoveryActions .ghost{min-height:44px}}
