:root {
  color-scheme: light;
  --blue-950: #07385e; --blue-900: #0b4778; --blue-800: #0d568e; --blue-700: #1b70ad;
  --blue-500: #4b9bd1; --blue-100: #eaf4fb; --yellow: #ffb600; --orange: #ed723c;
  --green: #18734b; --green-soft: #eaf7f0; --ink: #172b3a; --text: #294052;
  --muted: #687b8c; --line: #d8e3eb; --paper: rgba(255,255,255,.97);
  --shadow-lg: 0 28px 80px rgba(7,56,94,.17); --shadow-md: 0 14px 34px rgba(7,56,94,.11);
}
:root[data-font-size="small"] { font-size:93.75%; }
:root[data-font-size="standard"] { font-size:100%; }
:root[data-font-size="large"] { font-size:112.5%; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; min-height: 100vh; overflow-x: hidden; color: var(--text);
  background: radial-gradient(circle at 6% 8%, rgba(237,114,60,.15), transparent 24rem), radial-gradient(circle at 94% 4%, rgba(255,182,0,.18), transparent 22rem), radial-gradient(circle at 74% 84%, rgba(13,79,134,.14), transparent 28rem), linear-gradient(135deg,#f3f8fc 0%,#fffaf2 58%,#f9f5f2 100%);
  font-family: "Noto Sans TC","Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft JhengHei",sans-serif;
}
body::before { content:""; position:fixed; inset:0; z-index:-2; pointer-events:none; background-image:radial-gradient(rgba(13,79,134,.11) 1.1px,transparent 1.1px); background-size:24px 24px; mask-image:linear-gradient(to bottom,rgba(0,0,0,.7),transparent 78%); }
.ambient { position:fixed; z-index:-1; border-radius:50%; pointer-events:none; }
.ambient-a { width:320px; height:320px; left:-130px; top:100px; background:radial-gradient(circle,rgba(237,114,60,.27),transparent 70%); }
.ambient-b { width:400px; height:400px; right:-150px; bottom:60px; background:radial-gradient(circle,rgba(75,155,209,.23),transparent 70%); }
.fontSizeToolbar { display:flex; align-items:center; justify-content:flex-end; gap:9px; width:min(1200px,calc(100% - 32px)); margin:10px auto 0; color:var(--blue-900); }
.fontSizeLabel { font-size:.75rem; font-weight:900; }
.fontSizeControls { display:inline-flex; padding:3px; border:1px solid #c8d8e4; border-radius:999px; background:rgba(255,255,255,.94); box-shadow:0 5px 15px rgba(7,56,94,.08); }
.fontSizeControls button { min-width:44px; min-height:44px; padding:6px 10px; border:0; border-radius:999px; color:var(--blue-800); background:transparent; font-size:.72rem; font-weight:900; }
.fontSizeControls button:hover { background:var(--blue-100); }
.fontSizeControls button[aria-pressed="true"] { color:#fff; background:var(--blue-800); box-shadow:0 4px 10px rgba(13,86,142,.2); }
.portalShell { width:min(1200px,calc(100% - 32px)); margin:28px auto 48px; }
.hidden { display:none !important; }
.eyebrow { margin:0 0 8px; color:var(--blue-700); font-size:.74rem; font-weight:900; letter-spacing:.14em; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { color:var(--blue-950); letter-spacing:-.035em; }
button,input { font:inherit; }
button { cursor:pointer; }
button:focus-visible,input:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid rgba(27,112,173,.22); outline-offset:2px; }
.srOnly { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }

.authCard { overflow:hidden; min-height:680px; border:1px solid rgba(13,79,134,.14); border-top:9px solid var(--yellow); border-radius:34px; background:var(--paper); box-shadow:var(--shadow-lg); }
.authBrand { display:flex; align-items:center; gap:16px; padding:28px clamp(26px,5vw,58px) 0; }
.authBrand img { width:102px; height:auto; }
.authBrand div { padding-left:16px; border-left:1px solid var(--line); }
.authBrand span,.authBrand strong { display:block; }
.authBrand span { color:var(--blue-800); font-size:.7rem; font-weight:900; letter-spacing:.08em; }
.authBrand strong { margin-top:3px; color:var(--blue-950); font-size:.92rem; }
.authGrid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr); align-items:center; gap:clamp(30px,5vw,80px); padding:clamp(42px,7vw,92px); padding-top:50px; }
.authCopy { position:relative; }
.authCopy::after { content:"あ"; position:absolute; z-index:-1; right:0; bottom:-90px; color:rgba(13,79,134,.055); font:900 17rem/1 "Noto Sans JP",sans-serif; }
.authCopy h1 { margin:0; font-size:clamp(3.2rem,6.8vw,6.2rem); line-height:.98; }
.authCopy h1 em { color:var(--orange); font-style:normal; }
.authCopy > p:not(.eyebrow) { max-width:560px; margin:28px 0; color:var(--muted); font-size:1.06rem; line-height:1.9; }
.authAssurance { display:flex; flex-wrap:wrap; gap:8px 18px; color:var(--blue-800); font-size:.82rem; font-weight:800; }
.authAssurance span { color:var(--green); white-space:nowrap; }
.loginPanel { padding:32px; border:1px solid var(--line); border-radius:25px; background:#fff; box-shadow:var(--shadow-md); }
.panelHeading { display:flex; align-items:center; gap:13px; margin-bottom:26px; }
.panelHeading > span { display:grid; place-items:center; width:42px; height:42px; border-radius:13px; color:#fff; background:var(--blue-800); font-weight:900; }
.panelHeading strong,.panelHeading small { display:block; }
.panelHeading strong { color:var(--blue-950); }
.panelHeading small { margin-top:3px; color:var(--muted); }
.loginPanel label { display:block; margin:17px 0 7px; color:var(--blue-950); font-size:.82rem; font-weight:900; }
.loginPanel input { width:100%; min-height:54px; padding:12px 15px; border:1px solid #c9d8e3; border-radius:13px; color:var(--ink); background:#fbfdff; }
.loginPanel input::placeholder { color:#a5b3bd; }
.loginPanel input[aria-invalid="true"] { border-color:#b54538; background:#fff5f3; }
.fieldHint { display:block; margin:6px 2px 0; color:var(--muted); font-size:.7rem; }
.primaryButton { display:flex; justify-content:space-between; align-items:center; width:100%; min-height:56px; margin-top:25px; padding:13px 19px; border:0; border-radius:14px; color:#fff; background:linear-gradient(135deg,var(--blue-800),var(--blue-950)); font-weight:900; box-shadow:0 10px 22px rgba(7,56,94,.2); }
.primaryButton:hover { transform:translateY(-1px); }
.primaryButton:disabled { opacity:.58; cursor:wait; transform:none; }
.primaryButton b { font-size:1.3rem; }
.primaryButton.compact { width:min(100%,290px); margin-inline:auto; }
.formMessage { min-height:20px; margin:14px 0 0; color:var(--muted); font-size:.75rem; line-height:1.55; }
.formMessage.is-error { color:#9f4134; font-weight:700; }
.privacyNote { margin:18px 0 0; padding-top:17px; border-top:1px solid var(--line); color:var(--muted); font-size:.7rem; line-height:1.6; text-align:center; }

.stateCard { width:min(680px,100%); margin:10vh auto 0; padding:clamp(34px,7vw,68px); border:1px solid rgba(13,79,134,.14); border-top:8px solid var(--yellow); border-radius:30px; background:var(--paper); box-shadow:var(--shadow-lg); text-align:center; }
.stateCard h1 { margin:7px 0 16px; font-size:clamp(2rem,5vw,3.2rem); line-height:1.13; }
.stateCard > p:not(.eyebrow) { color:var(--muted); line-height:1.8; }
.errorActions { display:grid; width:min(100%,360px); gap:11px; margin:24px auto 0; }
.errorActions .primaryButton,
.errorActions .secondaryButton { width:100%; margin:0; }
.secondaryButton.compact { border-radius:14px; }
.mailIllustration,.errorMark,.availabilityMark { display:grid; place-items:center; width:86px; height:86px; margin:0 auto 25px; border-radius:50%; color:var(--blue-800); background:var(--blue-100); font-size:2.35rem; font-weight:900; }
.errorMark { color:#a74436; background:#fff0ed; }
.availabilityMark { color:#8a5a00; background:#fff3cf; }
.availabilityActions { display:flex; justify-content:center; margin-top:26px; }
.availabilityActions a { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:10px 20px; border:1px solid #c8d8e4; border-radius:999px; color:var(--blue-800); background:#fff; font-weight:900; text-decoration:none; }
.tipBox { display:grid; gap:12px; margin:28px 0; padding:22px 23px; border:2px solid #df642f; border-left-width:8px; border-radius:17px; color:#6d3019; background:linear-gradient(135deg,#fff1e9,#fff9df); box-shadow:0 12px 30px rgba(171,76,30,.18); text-align:left; }
.tipBoxHeadline { display:flex; align-items:center; gap:12px; }
.tipBoxIcon { display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; border-radius:50%; color:#fff; background:#cf4f1f; font-size:1.25rem; font-weight:900; box-shadow:0 4px 10px rgba(171,76,30,.22); }
.tipBoxHeadline strong { color:#7b3218; font-size:clamp(1.12rem,3.6vw,1.3rem); font-weight:900; line-height:1.45; }
.tipBoxLead { margin:0; color:#7b3218; font-size:1.03rem; font-weight:900; line-height:1.65; }
.tipBox ol { margin:0; padding-left:1.4em; color:#61372a; font-size:1rem; font-weight:700; line-height:1.85; }
.tipBox li::marker { color:#cf4f1f; font-weight:900; }
.tipBox b { font-weight:900; }
.tipBox > span { padding-top:10px; border-top:1px solid rgba(207,79,31,.24); color:#76564a; font-size:.88rem; font-weight:700; line-height:1.65; }
.otpForm { width:min(100%,380px); margin:24px auto 0; }
.otpInput { width:100%; min-height:68px; padding:10px 16px; border:2px solid #bed3e2; border-radius:16px; color:var(--blue-950); background:#fbfdff; font-size:2rem; font-weight:900; letter-spacing:.3em; text-align:center; }
.otpInput::placeholder { color:#b8c6d0; }
.otpInput[aria-invalid="true"] { border-color:#b54538; background:#fff5f3; }
.otpActions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:18px; }
.otpActions button:disabled { opacity:.55; cursor:not-allowed; }
.systemMailNote { margin:18px 0 0; color:var(--muted); font-size:.72rem; }
.secondaryButton { min-height:46px; padding:10px 18px; border:1px solid #c8d8e4; border-radius:999px; color:var(--blue-800); background:#fff; font-weight:900; }
.loader { width:60px; height:60px; margin:0 auto 30px; border:5px solid var(--blue-100); border-top-color:var(--blue-700); border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

.dashboardHeader { display:flex; justify-content:space-between; align-items:center; min-height:74px; padding:13px 20px; border:1px solid rgba(13,79,134,.13); border-radius:19px; background:rgba(255,255,255,.94); box-shadow:0 8px 20px rgba(7,56,94,.08); }
.brandCompact { display:flex; align-items:center; gap:14px; color:var(--blue-950); font-weight:900; text-decoration:none; }
.brandCompact img { width:82px; height:auto; }
.brandCompact span { padding-left:14px; border-left:1px solid var(--line); }
.headerActions { display:flex; gap:9px; }
.headerActions button { min-height:40px; padding:8px 13px; border:1px solid #c8d8e4; border-radius:999px; color:var(--blue-800); background:#fff; font-size:.75rem; font-weight:900; }
.headerActions button span { margin-right:4px; }
.headerActions button:last-child { color:var(--muted); }
.welcomeRow { display:flex; align-items:end; justify-content:space-between; gap:20px; padding:50px 6px 26px; }
.welcomeRow h1 { margin:0 0 12px; font-size:clamp(2.45rem,5vw,4.6rem); line-height:1; }
.welcomeRow #programFullName { margin:0 0 5px; color:var(--blue-900); font-size:.86rem; font-weight:900; }
.welcomeRow > div > p:last-child { margin:0; color:var(--muted); font-size:.84rem; }
.updatedAt { padding:12px 16px; border-left:3px solid var(--yellow); }
.updatedAt span,.updatedAt strong { display:block; }
.updatedAt span { color:var(--muted); font-size:.67rem; }
.updatedAt strong { margin-top:4px; color:var(--blue-900); font-size:.8rem; }
.welcomeTools { display:grid; justify-items:end; gap:9px; }
.printCompactNotice { display:none; }
.overviewGrid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(220px,.7fr) minmax(220px,.7fr); gap:17px; }
.completionCard,.metricCard,.contentCard { border:1px solid rgba(13,79,134,.13); border-radius:25px; background:var(--paper); box-shadow:var(--shadow-md); }
.completionCard { display:flex; align-items:center; gap:26px; padding:28px; }
.completionRing { --progress:0deg; display:grid; place-items:center; flex:none; width:152px; height:152px; border-radius:50%; background:conic-gradient(var(--orange) var(--progress),#e6eef4 0); }
.completionRing::before { content:""; grid-area:1/1; width:120px; height:120px; border-radius:50%; background:#fff; }
.completionRing > div { z-index:1; grid-area:1/1; text-align:center; }
.completionRing strong,.completionRing span { display:block; }
.completionRing strong { color:var(--blue-950); font-size:2.15rem; }
.completionRing span { color:var(--muted); font-size:.66rem; font-weight:800; }
.completionCard h2 { margin:0 0 10px; font-size:1.7rem; line-height:1.3; }
.completionCard h2 em { color:var(--orange); font-style:normal; }
.completionCard > div > p:last-child { margin:0; color:var(--muted); }
.completionCard > div > p:last-child strong { color:var(--blue-800); font-size:1.2rem; }
.metricCard { display:flex; align-items:flex-start; gap:15px; padding:25px; }
.metricCard.latest { border-top:6px solid var(--blue-500); }
.metricCard.best { border-top:6px solid var(--yellow); }
.metricIcon { display:grid; place-items:center; flex:none; width:40px; height:40px; border-radius:12px; color:var(--blue-800); background:var(--blue-100); font-size:1.25rem; }
.metricCard.best .metricIcon { color:#a56600; background:#fff6dc; }
.metricCard p { margin:1px 0 7px; color:var(--muted); font-size:.72rem; font-weight:800; }
.metricCard strong,.metricCard span:not(.metricIcon) { display:block; }
.metricCard strong { color:var(--blue-950); font-size:2rem; line-height:1; }
.metricCard span:not(.metricIcon) { margin-top:10px; color:var(--muted); font-size:.72rem; line-height:1.5; }
.contentCard { margin-top:18px; padding:clamp(22px,4vw,34px); }
.diagnosisSummary { margin-top:0; overflow:hidden; border-top:7px solid var(--yellow); background:linear-gradient(135deg,#fff 0%,#f4faff 58%,#fff8e9 100%); }
.diagnosisLead { display:flex; align-items:end; justify-content:space-between; gap:18px; }
.diagnosisLead h2 { margin:0; font-size:clamp(1.65rem,3.5vw,2.45rem); line-height:1.25; }
.evidenceBadge { flex:none; padding:7px 11px; border-radius:999px; color:#7c5a0b; background:#fff0bf; font-size:.68rem; font-weight:900; }
.evidenceBadge.is-sufficient { color:var(--green); background:var(--green-soft); }
.diagnosisConclusion { margin:24px 0; padding:22px clamp(18px,3vw,28px); border-left:7px solid var(--orange); border-radius:0 17px 17px 0; color:#fff; background:linear-gradient(135deg,var(--blue-950),var(--blue-800)); font-size:clamp(1.15rem,2.2vw,1.65rem); font-weight:900; line-height:1.65; letter-spacing:.015em; }
.diagnosisMetricGrid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.diagnosisMetricGrid article { min-width:0; padding:17px; border:1px solid #d7e4ed; border-radius:16px; background:rgba(255,255,255,.9); }
.diagnosisMetricGrid article.is-recommendation { border-color:#efd27c; background:#fffaf0; }
.diagnosisMetricGrid span,.diagnosisMetricGrid strong,.diagnosisMetricGrid small { display:block; }
.diagnosisMetricGrid span { color:var(--muted); font-size:.67rem; font-weight:900; }
.diagnosisMetricGrid strong { margin:7px 0; color:var(--blue-950); font-size:clamp(1.1rem,2.1vw,1.55rem); line-height:1.35; overflow-wrap:anywhere; }
.diagnosisMetricGrid small { color:var(--muted); font-size:.63rem; line-height:1.55; }
.diagnosisMetricGrid small b { color:inherit; }
.diagnosisMethodNote { margin:15px 0 0; color:var(--muted); font-size:.67rem; line-height:1.7; }
.sectionHeading { display:flex; justify-content:space-between; align-items:end; gap:18px; margin-bottom:24px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.sectionHeading h2 { margin:0; font-size:1.75rem; }
.chapterLegend { display:flex; gap:13px; color:var(--muted); font-size:.68rem; font-weight:800; }
.chapterLegend span { display:flex; align-items:center; gap:5px; }
.chapterLegend i { display:inline-block; width:9px; height:9px; border-radius:50%; }
.chapterLegend .done { background:var(--green); }
.chapterLegend .pending { background:#c7d2da; }
.chapterLegend .focus { background:var(--orange); }
.chapterLegend .practice { background:var(--yellow); }
.chapterLegend .stable { background:var(--blue-500); }
.chapterLegend .strong { background:var(--green); }
.chapterGrid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.chapterCell { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:11px; min-height:112px; padding:13px; border:1px solid var(--line); border-top:5px solid #c7d2da; border-radius:16px; background:#fbfdff; }
.chapterCell.is-done { border-color:#b8ddca; background:var(--green-soft); }
.chapterCell.is-focus { border-color:#f0b5a2; border-top-color:var(--orange); background:#fff8f5; }
.chapterCell.is-practice { border-color:#ecd792; border-top-color:var(--yellow); background:#fffaf0; }
.chapterCell.is-stable { border-color:#bcd7e8; border-top-color:var(--blue-500); background:#f6fbfe; }
.chapterCell.is-strength { border-color:#b8ddca; border-top-color:var(--green); background:var(--green-soft); }
.chapterCell.is-insufficient_data { border-color:#d6e0e6; border-top-color:#9eafbb; background:#fafcfd; }
.chapterCell.is-pending { border-top-color:#c7d2da; }
.chapterNumber { display:grid; place-items:center; flex:none; width:40px; height:40px; border-radius:13px; color:var(--muted); background:#e8eef2; font-weight:900; }
.chapterCell.is-done .chapterNumber { color:#fff; background:var(--green); }
.chapterCell.is-focus .chapterNumber { background:var(--orange); }
.chapterCell.is-practice .chapterNumber { color:#785300; background:var(--yellow); }
.chapterCell.is-stable .chapterNumber { background:var(--blue-500); }
.chapterCell.is-insufficient_data .chapterNumber { background:#9eafbb; }
.chapterCopy { min-width:0; }
.chapterCell strong,.chapterCell span,.chapterCell em { display:block; }
.chapterCell strong { color:var(--blue-950); font-size:.77rem; line-height:1.45; }
.chapterCell span { margin-top:4px; color:var(--muted); font-size:.61rem; line-height:1.45; }
.chapterCell em { width:max-content; max-width:100%; margin-top:8px; padding:4px 7px; border-radius:999px; color:var(--blue-800); background:var(--blue-100); font-size:.58rem; font-style:normal; font-weight:900; }
.chapterCell.is-focus em { color:#8b382c; background:#ffeae4; }
.chapterCell.is-practice em { color:#7b590b; background:#fff0bb; }
.chapterCell.is-strength em { color:var(--green); background:#dff3e8; }
.chapterCell.is-insufficient_data em,.chapterCell.is-pending em { color:#657783; background:#edf2f5; }
.chapterScore { margin-left:auto; color:var(--blue-800); font-size:.82rem; }
.insightGrid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr); gap:18px; }
.insightGrid > * { min-width:0; }
.trendSummary,.countBadge { padding:6px 10px; border-radius:999px; color:var(--blue-800); background:var(--blue-100); font-size:.68rem; font-weight:900; }
.trendChart { min-height:260px; overflow:hidden; }
.trendChart svg { display:block; width:100%; height:auto; }
.trendChart text { font-size:.6875rem; }
.trendEmpty,.timelineEmpty { display:grid; place-items:center; min-height:220px; color:var(--muted); font-size:.82rem; text-align:center; }
.timeline { list-style:none; margin:0; padding:0; }
.timeline > li { position:relative; display:flex; align-items:center; gap:13px; min-height:68px; padding:8px 0 8px 27px; }
.timeline > li + li { border-top:1px solid #edf1f4; }
.timeline > li > i { position:absolute; top:34px; left:3px; width:11px; height:11px; border:3px solid #d3e7f4; border-radius:50%; background:var(--blue-700); transform:translateY(-50%); }
.attemptDisclosure { width:100%; min-width:0; }
.attemptDisclosure > summary { display:flex; align-items:center; gap:12px; min-height:52px; list-style:none; cursor:pointer; }
.attemptDisclosure > summary::-webkit-details-marker,.assessmentRecord > summary::-webkit-details-marker { display:none; }
.timelineBody { min-width:0; flex:1; }
.timelineBody > div { display:flex; justify-content:space-between; gap:10px; }
.timelineBody strong { overflow:hidden; color:var(--blue-950); font-size:.8rem; text-overflow:ellipsis; white-space:nowrap; }
.timelineBody time,.timelineMeta { color:var(--muted); font-size:.64rem; white-space:nowrap; }
.timelineMeta { display:block; margin-top:5px; }
.timelineScore { color:var(--orange); font-size:1.05rem; }
.dashboardFooter { display:flex; justify-content:space-between; gap:20px; margin-top:28px; padding:22px 6px; border-top:1px solid var(--line); color:var(--muted); font-size:.72rem; }
.dashboardFooter strong { color:var(--blue-900); }
.learningInsightGrid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.radarLayout { display:grid; grid-template-columns:minmax(260px,.94fr) minmax(260px,1.06fr); align-items:start; gap:24px; }
.radarLayout.is-insufficient { grid-template-columns:1fr; }
.radarLayout.is-insufficient .radarFigure { display:none; }
.radarFigure { min-width:0; margin:0; }
.radarChart { width:100%; max-width:390px; margin:auto; }
.radarChart svg { display:block; width:100%; height:auto; overflow:visible; }
.radarTargetBand { fill:rgba(24,115,75,.13); }
.radarGrid { fill:none; stroke:#d8e3eb; stroke-width:1; }
.radarCurrent { fill:rgba(75,155,209,.28); stroke:var(--blue-700); stroke-width:3; stroke-linejoin:round; }
.radarPrevious { fill:none; stroke:var(--orange); stroke-width:2.5; stroke-dasharray:8 6; stroke-linejoin:round; }
.radarCurrentPoint { fill:var(--orange); stroke:#fff; stroke-width:2; }
.radarAxisLabel { fill:var(--blue-950); font:800 .8125rem/1 "Noto Sans TC",sans-serif; }
.radarFigure figcaption { margin:4px auto 0; max-width:390px; color:var(--muted); font-size:.66rem; line-height:1.7; text-align:center; }
.radarEmpty { display:grid; gap:5px; margin-bottom:18px; padding:18px 20px; border:1px solid #d6e3ec; border-left:5px solid var(--blue-500); border-radius:15px; color:var(--muted); background:#f7fbfe; font-size:.75rem; line-height:1.7; }
.radarEmpty strong { color:var(--blue-950); font-size:.92rem; }
.abilityPanel { min-width:0; }
.radarLegend { display:flex; flex-wrap:wrap; gap:8px 13px; margin-bottom:14px; color:var(--muted); font-size:.64rem; font-weight:800; }
.radarLegend span { display:inline-flex; align-items:center; gap:6px; }
.radarLegend i { display:inline-block; width:24px; height:8px; border-radius:999px; }
.radarLegend i.current { background:rgba(75,155,209,.4); border:2px solid var(--blue-700); }
.radarLegend i.previous { height:0; border-top:2px dashed var(--orange); border-radius:0; }
.radarLegend i.target { background:rgba(24,115,75,.16); border:1px solid rgba(24,115,75,.32); }
.radarLegend .is-unavailable { color:#8a98a4; }
.radarLegend .is-unavailable i { opacity:.38; }
.abilityList { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.abilityRow { display:grid; gap:9px; padding:14px; border:1px solid var(--line); border-left:5px solid var(--blue-500); border-radius:15px; color:var(--blue-950); background:#fbfdff; }
.abilityRow.is-focus { border-left-color:var(--orange); background:#fffaf7; }
.abilityRow.is-target { border-left-color:var(--blue-500); }
.abilityRow.is-strength { border-left-color:var(--green); background:#f8fcfa; }
.abilityRow.is-insufficient_data { border-left-color:#b7c5cf; background:#f8fafb; }
.abilityHeading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.abilityHeading span { font-size:.78rem; font-weight:900; }
.abilityHeading strong { color:var(--blue-800); font-size:1.18rem; }
.abilityMeta { display:flex; flex-wrap:wrap; gap:6px; color:var(--muted); font-size:.62rem; font-weight:800; }
.abilityMeta span { padding:4px 7px; border-radius:999px; background:#edf3f7; }
.abilityMeta .abilityStatus { color:var(--blue-800); background:var(--blue-100); }
.is-focus .abilityStatus { color:#8c3b2e; background:#fff0ec; }
.is-strength .abilityStatus { color:var(--green); background:var(--green-soft); }
.abilityEvidence { margin:0; color:var(--muted); font-size:.62rem; line-height:1.5; }
.abilityBar { display:block; height:6px; overflow:hidden; border-radius:999px; background:#e7eef3; }
.abilityBar::before { content:""; display:block; width:var(--ability); height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--blue-500),var(--orange)); }
.abilityWrongLink { justify-self:start; min-height:44px; padding:7px 12px; border:1px solid #bdd2e1; border-radius:999px; color:var(--blue-800); background:#fff; font-size:.65rem; font-weight:900; }
.abilityWrongLink:hover { background:var(--blue-100); }
.abilityWrongUnavailable { color:#8796a2; font-size:.61rem; line-height:1.5; }
.feedbackQuote { position:relative; min-height:170px; padding:24px 24px 20px 45px; border-radius:18px; background:linear-gradient(135deg,#edf6fc,#fff8e7); }
.feedbackQuote > span { position:absolute; left:16px; top:8px; color:rgba(237,114,60,.38); font-family:Georgia,serif; font-size:4rem; line-height:1; }
.feedbackQuote p { margin:0; color:var(--blue-900); font-size:.91rem; font-weight:700; line-height:1.9; }
.feedbackTags { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.feedbackTags span { padding:7px 10px; border-radius:999px; color:var(--green); background:var(--green-soft); font-size:.66rem; font-weight:900; }
.assessmentCards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.assessmentRecord { padding:17px; border:1px solid var(--line); border-radius:17px; background:#fbfdff; }
.assessmentRecord > summary { list-style:none; cursor:pointer; }
.assessmentRecord[open] { grid-column:1/-1; padding:21px; border-color:#b8cede; background:#f8fbfd; box-shadow:0 12px 28px rgba(7,56,94,.08); }
.assessmentRecord.is-checkpoint { border-color:#eccb71; background:#fffaf0; }
.recordTop { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.recordType { padding:4px 7px; border-radius:999px; color:var(--blue-800); background:var(--blue-100); font-size:.59rem; font-weight:900; }
.assessmentRecord.is-checkpoint .recordType { color:#885b04; background:#fff0bd; }
.recordTop time { color:var(--muted); font-size:.58rem; }
.assessmentRecord h3 { min-height:42px; margin:13px 0; font-size:.85rem; }
.recordScore { display:flex; align-items:baseline; justify-content:space-between; }
.recordScore strong { color:var(--blue-950); font-size:1.65rem; }
.recordScore span { color:var(--muted); font-size:.62rem; }
.recordBar { height:6px; margin:9px 0 13px; overflow:hidden; border-radius:999px; background:#e5edf2; }
.recordBar i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--blue-500),var(--orange)); }
.assessmentRecord > summary > p { margin:0; color:var(--muted); font-size:.62rem; }
.wrongAnswerToggle { display:inline-flex; align-items:center; justify-content:center; min-height:32px; margin-top:12px; padding:5px 10px; border:1px solid #bdd2e1; border-radius:999px; color:var(--blue-800); background:#fff; font-size:.64rem; font-weight:900; }
.attemptDisclosure .wrongAnswerToggle { flex:none; margin:0; }
.attemptDisclosure[open] .wrongAnswerToggle,.assessmentRecord[open] .wrongAnswerToggle { color:#fff; border-color:var(--blue-800); background:var(--blue-800); }
.insightGrid:has(.attemptDisclosure[open]) { grid-template-columns:minmax(0,1fr); }
.wrongAnswerPanel { margin-top:16px; padding:16px; border:1px solid #d6e3eb; border-radius:16px; background:#f4f8fb; }
.wrongAnswerSummary { margin:0 0 14px; padding:10px 12px; border-radius:10px; color:var(--muted); background:#fff; font-size:.78rem; line-height:1.7; }
.wrongAnswerSummary strong { color:var(--blue-900); }
.wrongAnswerList { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr)); align-items:start; gap:16px; margin:0; padding:0; list-style:none; }
.wrongAnswerItem { display:block; width:100%; min-width:0; padding:20px; border:1px solid #d5e1e9; border-top:5px solid var(--orange); border-radius:16px; background:#fff; box-shadow:0 8px 20px rgba(7,56,94,.055); }
.wrongAnswerItem > * { max-width:100%; min-width:0; }
.wrongAnswerHeading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.wrongAnswerItem:focus { outline:3px solid #f2a824; outline-offset:3px; }
.wrongAnswerHeading strong { display:inline-flex; padding:5px 9px; border-radius:999px; color:#fff; background:var(--orange); font-size:.76rem; }
.wrongAnswerHeading span { color:var(--muted); font-size:.7rem; overflow-wrap:anywhere; }
.wrongQuestion { margin:0 0 14px; padding:14px 15px; border:1px solid #dce7ee; border-radius:12px; color:var(--blue-950); background:#f8fbfd; font-size:.95rem; font-weight:800; line-height:1.8; white-space:pre-wrap; }
.wrongQuestionStructured { display:grid; gap:8px; padding:13px; border:1px solid #d8e4ec; border-radius:12px; background:#f9fcfe; }
.wrongQuestionStructured p { margin:0; white-space:pre-wrap; }
.wrongQuestionPrompt { color:var(--muted); font-size:.78rem; }
.wrongQuestionContext { color:var(--blue-950); }
.wrongStarFrame { padding:13px; border-radius:10px; color:var(--blue-950); background:#fff; font-size:1rem; font-weight:900; letter-spacing:.03em; text-align:center; }
.wrongAnswerPair { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.wrongAnswerBox { min-width:0; padding:13px 14px; border:1px solid #f2d4ca; border-radius:11px; color:#7e352a; background:#fff1ee; }
.wrongAnswerBox.is-correct { color:#17633f; background:#eef9f3; }
.wrongAnswerBox span,.wrongAnswerBox strong { display:block; }
.wrongAnswerBox.is-correct { border-color:#b9dfca; }
.wrongAnswerBox span { margin-bottom:5px; font-size:.72rem; font-weight:900; }
.wrongAnswerBox strong { font-size:.88rem; line-height:1.65; overflow-wrap:anywhere; white-space:pre-wrap; }
.wrongExplanation { display:grid; gap:11px; margin-top:12px; padding:15px 16px; border:1px solid #cfe1ed; border-left:5px solid var(--blue-500); border-radius:12px; color:var(--blue-900); background:#edf6fc; font-size:.875rem; line-height:1.8; white-space:pre-wrap; }
.wrongExplanation > div + div { padding-top:11px; border-top:1px solid rgba(13,79,134,.14); }
.wrongExplanation strong { display:block; margin-bottom:4px; }
.wrongOptionAnalysis { margin-top:16px; }
.wrongOptionAnalysis h4 { margin:0 0 10px; color:var(--blue-950); font-size:.9rem; }
.wrongOptionNotice { margin:0 0 9px; padding:8px 10px; border-left:3px solid #d79219; border-radius:7px; color:#6e4a08; background:#fff8df; font-size:.64rem; line-height:1.65; }
.wrongOptionList { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.wrongOption { display:block; width:100%; min-width:0; padding:13px 14px; border:1px solid #dbe5ec; border-radius:11px; background:#fbfdff; }
.wrongOption.is-selected { border-color:#eda38e; background:#fff5f2; }
.wrongOption.is-correct { border-color:#84c9a7; background:#f1faf5; }
.wrongOptionHeading { display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:start; gap:8px; }
.wrongOptionLabel { display:grid; place-items:center; width:28px; height:28px; border-radius:8px; color:#fff; background:var(--blue-800); font-size:.68rem; }
.wrongOptionHeading strong { padding-top:3px; color:var(--blue-950); font-size:.875rem; line-height:1.6; white-space:pre-wrap; }
.wrongOptionBadges { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; }
.wrongOptionBadges em { padding:4px 7px; border-radius:999px; font-size:.75rem; font-style:normal; font-weight:900; white-space:nowrap; }
.wrongOptionBadges .is-selected { color:#8a3528; background:#ffe4dc; }
.wrongOptionBadges .is-correct { color:#17633f; background:#daf0e4; }
.wrongOptionTranslation,.wrongOptionExplanation { margin:8px 0 0 36px; font-size:.8125rem; line-height:1.75; }
.wrongOptionTranslation { color:var(--muted); }
.wrongOptionExplanation { color:var(--blue-900); }
.wrongTrap { margin-top:12px; padding:12px 14px; border-left:4px solid var(--yellow); border-radius:0 10px 10px 0; color:#72520d; background:#fff9e8; font-size:.78rem; line-height:1.75; }
.wrongTrap strong { display:block; margin-bottom:3px; }
.wrongSource { margin:12px 0 0; color:var(--muted); font-size:.75rem; line-height:1.65; }
.wrongDataNotice { margin-top:9px; color:#87630e; font-size:.65rem; line-height:1.6; }
.wrongDataNotice.is-blocking { margin:0; padding:13px; border:1px solid #e8cc7c; border-radius:11px; background:#fff9e8; font-weight:800; }
.wrongAnswerItem.is-incomplete { border-left-color:#c9a651; background:#fffdf7; }
.sectionIntro { margin:-8px 0 20px; color:var(--muted); font-size:.75rem; line-height:1.75; }
.diagnosisEmpty { display:grid; gap:6px; padding:24px; border:1px dashed #bfcfda; border-radius:16px; color:var(--muted); background:#f8fbfd; font-size:.75rem; text-align:center; }
.diagnosisEmpty strong { color:var(--blue-950); font-size:.95rem; }
.grammarDiagnosisList { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.grammarDiagnosisCard { min-width:0; padding:19px; border:1px solid var(--line); border-top:6px solid var(--orange); border-radius:18px; background:#fff; }
.grammarDiagnosisCard.is-practice { border-top-color:var(--yellow); }
.grammarDiagnosisCard.is-stable { border-top-color:var(--blue-500); }
.grammarDiagnosisCard.is-strength { border-top-color:var(--green); }
.grammarDiagnosisCard.is-insufficient_data { border-top-color:#9eafbb; background:#fafcfd; }
.grammarDiagnosisHeading { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:start; gap:6px 10px; }
.grammarDiagnosisHeading > span { padding:4px 7px; border-radius:999px; color:#fff; background:var(--blue-800); font-size:.58rem; font-weight:900; }
.grammarDiagnosisHeading h3 { margin:1px 0 0; font-size:.97rem; line-height:1.45; overflow-wrap:anywhere; }
.grammarDiagnosisHeading b { grid-column:2; justify-self:start; padding:4px 7px; border-radius:999px; color:#7c352b; background:#fff0ec; font-size:.58rem; }
.grammarDiagnosisCard.is-insufficient_data .grammarDiagnosisHeading b { color:#657783; background:#eaf0f3; }
.grammarUnit { min-height:34px; margin:13px 0; color:var(--blue-800); font-size:.65rem; font-weight:800; line-height:1.55; }
.grammarDiagnosisCard dl { display:grid; grid-template-columns:auto minmax(0,1fr); gap:9px 10px; margin:0; }
.grammarDiagnosisCard dt { color:var(--blue-950); font-size:.62rem; font-weight:900; }
.grammarDiagnosisCard dd { margin:0; color:var(--muted); font-size:.65rem; line-height:1.65; }
.representativeErrors { display:grid; grid-template-columns:1fr; gap:14px; }
.representativeErrorCard { min-width:0; overflow:hidden; border:1px solid #d5e1e9; border-left:6px solid var(--orange); border-radius:17px; background:#fff; transition:border-color .2s ease,box-shadow .2s ease; }
.representativeErrorCard[open] { border-color:#b9cfdc; border-left-color:var(--orange); box-shadow:0 10px 24px rgba(7,56,94,.075); }
.representativeErrorSummary { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; min-height:88px; padding:16px 18px; list-style:none; cursor:pointer; background:linear-gradient(135deg,#fff,#f8fbfd); }
.representativeErrorSummary::-webkit-details-marker { display:none; }
.representativeErrorNumber { display:inline-flex; align-items:center; justify-content:center; min-height:30px; padding:5px 9px; border-radius:999px; color:#fff; background:var(--orange); font-size:.7rem; font-weight:900; white-space:nowrap; }
.representativeErrorSummaryCopy { min-width:0; }
.representativeErrorSummaryCopy strong,.representativeErrorSummaryCopy small { display:block; }
.representativeErrorSummaryCopy strong { display:-webkit-box; overflow:hidden; color:var(--blue-950); font-size:.9rem; font-weight:900; line-height:1.65; white-space:pre-wrap; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.representativeErrorSummaryCopy small { margin-top:4px; color:var(--muted); font-size:.7rem; line-height:1.55; }
.representativeErrorToggle { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:38px; padding:7px 11px; border:1px solid #bfd2df; border-radius:999px; color:var(--blue-800); background:#fff; font-size:.7rem; font-weight:900; white-space:nowrap; }
.representativeErrorToggle b { font-size:1rem; line-height:1; transition:transform .2s ease; }
.representativeErrorOpenLabel { display:none; }
.representativeErrorCard[open] .representativeErrorClosedLabel { display:none; }
.representativeErrorCard[open] .representativeErrorOpenLabel { display:inline; }
.representativeErrorCard[open] .representativeErrorToggle b { transform:rotate(180deg); }
.representativeErrorBody { padding:20px; border-top:1px solid #dce6ed; background:#f8fbfd; }
.representativeErrorBody .wrongQuestion { background:#fff; }
@media (min-width:901px) {
  .representativeErrorBody .wrongOptionList,
  .wrongAnswerItem:only-child .wrongOptionList { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; }
}
.actionPlan { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; margin:0; padding:0; list-style:none; counter-reset:plan; }
.actionPlan li { position:relative; display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; padding:18px; border:1px solid var(--line); background:#fff; }
.actionPlan li:first-child { border-radius:17px 0 0 17px; }
.actionPlan li:last-child { border-radius:0 17px 17px 0; }
.actionPlan li + li { border-left:0; }
.actionWeek { display:grid; place-items:center; align-self:start; width:47px; min-height:47px; padding:5px; border-radius:13px; color:#fff; background:var(--blue-800); font-size:.62rem; font-weight:900; text-align:center; }
.actionPlan h3 { margin:0 0 8px; font-size:.87rem; line-height:1.45; }
.actionPlan p { margin:0 0 11px; color:var(--muted); font-size:.66rem; line-height:1.7; }
.actionPlan small { display:block; padding-top:9px; border-top:1px solid #e5edf2; color:var(--green); font-size:.6rem; font-weight:800; line-height:1.6; }
.courseRecommendationSection { border-top:7px solid var(--yellow); background:linear-gradient(135deg,#fff,#f4faff); }
.recommendationLevel { padding:8px 12px; border-radius:999px; color:#fff; background:var(--blue-800); font-size:.72rem; font-weight:900; }
.recommendationGrid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.recommendationGrid article { padding:17px; border:1px solid #d7e4ed; border-radius:15px; background:#fff; }
.recommendationGrid article.noPurchase { border-color:#bbddca; background:var(--green-soft); }
.recommendationGrid span { display:block; margin-bottom:7px; color:var(--blue-800); font-size:.65rem; font-weight:900; }
.recommendationGrid p { margin:0; color:var(--text); font-size:.75rem; line-height:1.75; }
.campaignSection { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); align-items:center; gap:28px; margin-top:22px; padding:clamp(24px,4vw,38px); border:1px solid rgba(13,79,134,.16); border-top:7px solid var(--yellow); border-radius:25px; background:linear-gradient(135deg,#f8fcff,#fff8e8); box-shadow:var(--shadow-md); }
.campaignCopy h2 { margin:0 0 11px; color:var(--blue-950); font-size:clamp(1.55rem,3vw,2.25rem); line-height:1.35; }
.campaignCopy > p:not(.eyebrow) { margin:0; color:var(--muted); line-height:1.8; }
.campaignOverview { display:inline-block; margin-top:13px; color:var(--blue-800); font-size:.76rem; font-weight:900; text-underline-offset:3px; }
.campaignActions { display:grid; gap:10px; }
.campaignActions a { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 14px; min-height:72px; padding:14px 16px; border-radius:15px; color:#fff; background:linear-gradient(135deg,var(--blue-800),var(--blue-700)); text-decoration:none; box-shadow:0 10px 22px rgba(13,86,142,.16); }
.campaignActions a span { font-size:.65rem; opacity:.8; }
.campaignActions a strong { font-size:.88rem; }
.campaignActions a b { grid-column:2; grid-row:1/3; align-self:center; font-size:1.15rem; }
.campaignActions a:hover { filter:brightness(1.05); }

@media (max-width: 900px) {
  .authGrid { grid-template-columns:1fr; padding-top:36px; }
  .authCopy h1 { font-size:clamp(3.1rem,12vw,5.4rem); }
  .authCopy::after { font-size:12rem; }
  .overviewGrid { grid-template-columns:1fr 1fr; }
  .completionCard { grid-column:1/-1; }
  .chapterGrid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .insightGrid { grid-template-columns:minmax(0,1fr); }
  .learningInsightGrid { grid-template-columns:1fr; }
  .assessmentCards { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .diagnosisMetricGrid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .grammarDiagnosisList,.representativeErrors { grid-template-columns:1fr; }
  .actionPlan { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .actionPlan li,.actionPlan li:first-child,.actionPlan li:last-child { border:1px solid var(--line); border-radius:15px; }
  .actionPlan li + li { border-left:1px solid var(--line); }
  .assessmentRecord[open] { grid-column:1/-1; }
  .campaignSection { grid-template-columns:1fr; }
}
@media (max-width: 620px) {
  .fontSizeToolbar { width:min(100% - 20px,1200px); margin-top:8px; }
  .fontSizeLabel { font-size:.7rem; }
  .fontSizeControls button { min-width:44px; min-height:44px; padding:5px 8px; }
  :root[data-font-size="large"] .overviewGrid,
  :root[data-font-size="large"] .diagnosisMetricGrid,
  :root[data-font-size="large"] .chapterGrid,
  :root[data-font-size="large"] .assessmentCards,
  :root[data-font-size="large"] .wrongAnswerList { grid-template-columns:1fr; }
  .portalShell { width:min(100% - 20px,1200px); margin:10px auto 30px; }
  .authCard { min-height:0; border-radius:24px; }
  .authBrand { padding:20px 20px 0; }
  .authBrand img { width:77px; }
  .authBrand strong { font-size:.78rem; }
  .authGrid { gap:30px; padding:34px 20px 24px; }
  .authCopy h1 { font-size:clamp(2.75rem,14vw,4rem); }
  .authCopy > p:not(.eyebrow) { margin:20px 0; font-size:.94rem; }
  .loginPanel { padding:22px 18px; border-radius:20px; }
  .stateCard { margin-top:35px; border-radius:24px; }
  .tipBox { padding:18px 15px; border-left-width:6px; }
  .tipBoxHeadline { align-items:flex-start; gap:9px; }
  .tipBoxIcon { flex-basis:30px; width:30px; height:30px; font-size:1.1rem; }
  .dashboardHeader { padding:10px 12px; }
  .brandCompact img { width:68px; }
  .brandCompact span { display:none; }
  .headerActions button b { display:none; }
  .headerActions button { min-width:42px; padding:8px 11px; }
  .welcomeRow { display:grid; align-items:start; gap:18px; padding:35px 3px 22px; }
  .welcomeRow h1 { font-size:2.65rem; }
  .welcomeTools { width:100%; justify-items:stretch; }
  .updatedAt { display:none; }
  .overviewGrid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
  .diagnosisLead { display:grid; }
  .evidenceBadge { justify-self:start; }
  .diagnosisConclusion { margin:18px 0; font-size:1.05rem; }
  .diagnosisMetricGrid { grid-template-columns:1fr 1fr; gap:8px; }
  .diagnosisMetricGrid article { padding:13px; }
  .metricCard { min-width:0; overflow-wrap:anywhere; }
  .completionCard { align-items:center; gap:16px; padding:20px 16px; }
  .completionRing { width:115px; height:115px; }
  .completionRing::before { width:91px; height:91px; }
  .completionRing strong { font-size:1.55rem; }
  .completionCard h2 { font-size:1.28rem; }
  .metricCard { display:block; padding:17px 15px; }
  .metricIcon { width:34px; height:34px; margin-bottom:13px; }
  .metricCard strong { font-size:1.65rem; }
  .contentCard { padding:20px 15px; border-radius:20px; }
  .sectionHeading { align-items:start; }
  .sectionHeading h2 { font-size:1.45rem; }
  .chapterLegend { display:none; }
  .chapterGrid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .chapterCell { min-height:70px; padding:10px; }
  .chapterNumber { width:34px; height:34px; border-radius:10px; }
  .chapterScore { font-size:.72rem; }
  .trendChart { min-height:190px; }
  .timelineBody > div { display:block; }
  .timelineBody time { display:block; margin-top:2px; }
  .dashboardFooter { display:grid; }
  .radarLayout { grid-template-columns:1fr; }
  .radarChart { max-width:320px; margin:auto; }
  .radarAxisLabel { font-size:.75rem; }
  .radarLegend { justify-content:center; }
  .abilityWrongLink { width:100%; justify-self:stretch; }
  .assessmentCards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .assessmentRecord { padding:13px; }
  .assessmentRecord[open] { padding:14px; }
  .assessmentRecord h3 { font-size:.76rem; }
  .attemptDisclosure > summary { flex-wrap:wrap; }
  .attemptDisclosure .wrongAnswerToggle { width:100%; }
  .timeline > li:has(.attemptDisclosure[open]) { padding-left:0; }
  .timeline > li:has(.attemptDisclosure[open]) > i { display:none; }
  .wrongAnswerPanel { padding:11px; border-radius:13px; }
  .attemptDisclosure[open] .wrongAnswerPanel,
  .assessmentRecord[open] .wrongAnswerPanel { padding:0; border:0; background:transparent; }
  .wrongAnswerSummary { padding:9px 10px; border:1px solid #dce6ed; font-size:.76rem; }
  .wrongAnswerItem { padding:14px; border-top-width:4px; border-radius:13px; }
  .wrongAnswerHeading { align-items:flex-start; flex-wrap:wrap; }
  .wrongAnswerHeading strong { font-size:.78rem; }
  .wrongAnswerHeading span { width:100%; font-size:.7rem; text-align:left; }
  .wrongQuestion { padding:12px; font-size:.95rem; }
  .wrongAnswerPair { grid-template-columns:1fr; }
  .wrongAnswerBox span { font-size:.73rem; }
  .wrongAnswerBox strong { font-size:.88rem; }
  .wrongExplanation { padding:13px; font-size:.875rem; }
  .wrongOptionAnalysis h4 { font-size:.95rem; }
  .wrongOptionHeading { grid-template-columns:28px minmax(0,1fr); }
  .wrongOptionHeading strong { font-size:.875rem; }
  .wrongOptionBadges { grid-column:2; justify-content:flex-start; }
  .wrongOptionTranslation,.wrongOptionExplanation { margin-left:0; font-size:.8125rem; }
  .representativeErrorSummary { grid-template-columns:auto minmax(0,1fr); gap:10px; padding:14px; }
  .representativeErrorSummaryCopy strong { font-size:.88rem; }
  .representativeErrorToggle { grid-column:1/-1; width:100%; }
  .representativeErrorBody { padding:13px; }
  .representativeAnswerPair { grid-template-columns:1fr; }
  .actionPlan { grid-template-columns:1fr; }
  .recommendationGrid { grid-template-columns:1fr; }
  .assessmentRecord[open] { grid-column:1/-1; }
  .campaignSection { padding:22px 18px; border-radius:20px; }
}
@media print {
  @page { size:A4; margin:10mm; }
  :root,
  :root[data-font-size="small"],
  :root[data-font-size="standard"],
  :root[data-font-size="large"] { font-size:10.5pt; }
  body { background:#fff; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  body::before,.ambient,.fontSizeToolbar,.dashboardHeader,.headerActions,.campaignSection { display:none !important; }
  .portalShell { width:100%; margin:0; }
  .welcomeRow { padding:0 0 4mm; }
  .welcomeRow h1 { font-size:25pt; }
  .welcomeTools { display:none; }
  .printCompactNotice { display:grid; grid-template-columns:auto minmax(0,1fr); gap:2mm 3mm; margin:0 0 4mm; padding:3mm 4mm; border:1px solid #b9d3e4; border-left:4px solid var(--blue-500); border-radius:3mm; color:var(--muted); background:#f4f9fc; font-size:8.5pt; line-height:1.55; }
  .printCompactNotice strong { color:var(--blue-900); white-space:nowrap; }
  .contentCard { margin-top:4mm; padding:5mm; border-radius:4mm; }
  .sectionHeading { margin-bottom:3mm; padding-bottom:2.5mm; }
  .sectionHeading h2 { font-size:16pt; }
  .diagnosisConclusion { margin:4mm 0; padding:4mm 5mm; font-size:12pt; }
  .diagnosisMetricGrid article { padding:3mm; }
  .contentCard,.completionCard,.metricCard { box-shadow:none; break-inside:avoid; }
  .overviewGrid,
  .insightGrid,
  .insightGrid:has(.attemptDisclosure[open]) { grid-template-columns:1fr 1fr; }
  .learningInsightGrid { grid-template-columns:1fr; }
  .radarSection,.radarLayout,.radarFigure,.abilityRow { break-inside:avoid; }
  .radarLayout { grid-template-columns:minmax(230px,.9fr) minmax(250px,1.1fr); }
  .radarChart { max-width:330px; }
  .abilityWrongLink { display:none; }
  .chapterGrid { grid-template-columns:repeat(4,1fr); }
  .chapterCell { min-height:0; padding:3mm; }
  .assessmentCards { grid-template-columns:1fr; }
  .assessmentRecord,
  .assessmentRecord[open] { grid-column:auto; padding:3mm 4mm; border-color:var(--line); background:#fbfdff; box-shadow:none; break-inside:avoid; }
  .assessmentRecord h3 { min-height:0; margin:2mm 0; }
  .assessmentRecord > summary > p { margin-top:1mm; }
  .assessmentRecord:nth-child(n+25),
  #timeline > li:nth-child(n+13) { display:none !important; }
  #dashboardView .wrongAnswerPanel,
  #dashboardView .wrongAnswerToggle,
  .representativeErrorSection { display:none !important; }
  #dashboardView details > summary { cursor:default; list-style:none; }
  #dashboardView details > summary::-webkit-details-marker { display:none; }
  .timeline > li { break-inside:avoid; }
  .grammarDiagnosisList { grid-template-columns:repeat(3,1fr); }
  .actionPlan { grid-template-columns:repeat(2,1fr); gap:6px; }
  .actionPlan li { border:1px solid var(--line) !important; border-radius:12px !important; break-inside:avoid; }
  .dashboardFooter { break-before:avoid; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; } }
