/* Shared IELTS visual baseline for Reading, Listening, Mapping and teacher review.
   Maintain shared rules here; see docs/product-specs/ielts-ui-shell.md before changing density.
   All overrides are scoped to active detail workspaces. */
.ieltsExamShell [hidden]{display:none!important}
.ieltsExamShell{--exam-rail:56px;--exam-radius:8px;--exam-pad:20px;grid-template-columns:var(--exam-rail) minmax(0,1fr);height:100vh;height:100dvh;min-height:0;overflow:hidden}
.ieltsExamShell.examNavExpanded{--exam-rail:220px}
.ieltsExamShell .side{position:static;inset:auto;height:100%;min-height:0;padding:12px 7px;display:flex;flex-direction:column;overflow:auto}
.ieltsExamShell .side .logo{display:flex;justify-content:center;font-size:0;order:-2}
.ieltsExamShell .side .logo b{width:36px;height:36px;border-radius:8px;font-size:22px}
.ieltsExamShell .exam-rail-toggle{order:-1;border:1px solid #ffffff40;background:transparent;color:white;border-radius:7px;min-height:44px;font-size:26px;margin:14px 0 0;flex:none}
.ieltsExamShell .side nav,.ieltsExamShell .side .logout{display:none}
.ieltsExamShell.examNavExpanded .side .logo{font-size:16px;justify-content:flex-start}
.ieltsExamShell.examNavExpanded .side nav{display:flex;flex-direction:column;flex-wrap:nowrap;gap:4px;margin-top:18px;overflow:visible}
.ieltsExamShell.examNavExpanded .side nav button{padding:11px 10px;font-size:14px;white-space:normal;flex:none}
.ieltsExamShell.examNavExpanded .side .logout{display:block;margin-top:auto;min-height:44px}
.ieltsExamShell .main{height:100%;min-height:0;overflow:hidden;container-type:inline-size;container-name:exam}
.ieltsExamShell .main>.top{display:none}
.ieltsExamShell .page{width:100%;max-width:none;margin:0;padding:0;height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}
.ieltsExamShell button,.ieltsExamShell select,.ieltsExamShell input:not([type=checkbox]):not([type=radio]){min-height:44px}
.ieltsExamShell button:focus-visible,.ieltsExamShell input:focus-visible,.ieltsExamShell select:focus-visible,.ieltsExamShell textarea:focus-visible,.ieltsExamShell summary:focus-visible{outline:3px solid #7150a5;outline-offset:2px}
.ieltsExamShell button:disabled{opacity:.45;cursor:default}
.ieltsExamShell .exam-head{margin:0;padding:12px var(--exam-pad);background:#fff;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;z-index:3;max-height:45dvh;overflow:auto}
.ieltsExamShell .exam-head>div:first-child{min-width:0;flex:1 1 240px}
.ieltsExamShell .exam-identity{font-size:11px;letter-spacing:.07em;color:var(--g);font-weight:bold}
.ieltsExamShell .pagehead h1{font-size:20px;line-height:1.35;margin:4px 0;overflow-wrap:anywhere}
.ieltsExamShell .pagehead p{font-size:13px;line-height:1.4;margin:0}
.ieltsExamShell .exam-head-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ieltsExamShell .exam-head-actions .wide{width:auto}
.ieltsExamShell .exam-content{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain}
.ieltsExamShell .readingWorkspace,.ieltsExamShell .readingReviewSplit{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:0;height:100%;min-height:0;align-items:stretch}
.ieltsExamShell .readingReviewSplit{grid-template-columns:repeat(2,minmax(0,1fr))}
.ieltsExamShell .readingPassage,.ieltsExamShell .readingQuestions,.ieltsExamShell .readingReviewQuestions{position:static;max-height:none;height:100%;min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:var(--exam-pad);border:0;border-radius:0}
.ieltsExamShell .readingPassage{font:14px/1.7 Georgia,serif;background:#fff;border-right:1px solid var(--line)}
.ieltsExamShell .readingPassage h2{font:700 20px/1.35 Arial,"Microsoft YaHei",sans-serif;margin:6px 0 10px}
.ieltsExamShell .readingQuestions{background:#fbfcfb;font-size:14px;line-height:1.5}
.ieltsExamShell .readingActiveQuestion h2{font-size:18px;line-height:1.4;font-weight:700;color:var(--ink);margin:12px 0 10px}
.ieltsExamShell .readingActiveQuestion h3{font-size:15px;line-height:1.4;margin:10px 0 6px}
.ieltsExamShell .readingActiveQuestion>.tag{font-size:10.5px;line-height:1.35;padding:3px 6px}
.ieltsExamShell .readingActiveQuestion .field{font-size:12px;line-height:1.4;font-weight:600;color:#536e63;margin:10px 0}
.ieltsExamShell .readingActiveQuestion .readingSourceStem{font-size:13.5px;line-height:1.55;margin:8px 0}
/* Only the instruction paragraph is secondary; source material keeps its full contrast. */
.ieltsExamShell .readingActiveQuestion>p.readingSourceStem{color:#536e63}
.ieltsExamShell .readingActiveQuestion .readingSharedOptions{font-size:14px;line-height:1.5;padding:10px;margin:10px 0}
.ieltsExamShell .readingActiveQuestion .readingOptions{gap:6px;margin:12px 0}
.ieltsExamShell .readingActiveQuestion .readingOptions label{min-height:44px;padding:8px 10px}
.ieltsExamShell .readingEvidenceSummary{font-size:12px;line-height:1.4;margin:10px 0;padding:6px 8px}
.ieltsExamShell .readingEvidenceSummary>b{display:block;font-size:11px;line-height:1.4;font-weight:500}
.ieltsExamShell .readingEvidenceSummary>p{font-size:12px;line-height:1.4;margin:4px 0;overflow-wrap:anywhere}
.ieltsExamShell .readingEvidenceSummary>small{display:block;font-size:10.5px;line-height:1.4}
.ieltsExamShell .readingActiveQuestion input,.ieltsExamShell .readingActiveQuestion select{max-width:100%;font-size:16px;color:var(--ink);border:1px solid #aabeb4;border-radius:6px;padding:8px}
.ieltsExamShell .readingInlineBlank input{width:112px}
.ieltsExamShell .readingPassageTabs{width:100%;margin:0;flex-wrap:nowrap;overflow-x:auto;padding:2px}
.ieltsExamShell .readingPassageTabs button{flex:none;max-width:300px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}
.ieltsExamShell .exam-bottom{position:relative;background:#fff;border-top:1px solid var(--line);padding:6px 12px max(6px,env(safe-area-inset-bottom));z-index:4;min-width:0;display:flex;flex-direction:column;gap:5px}
.ieltsExamShell .exam-navigation{display:flex;align-items:center;gap:8px;min-width:0;padding-right:68px}
.ieltsExamShell .exam-navigation>button{flex:none;font-size:13px;padding:8px}
.ieltsExamShell .exam-question-nav{display:flex;gap:5px;overflow-x:auto;flex-wrap:nowrap;min-width:0;flex:1;padding:3px;margin:0}
.ieltsExamShell .exam-question-nav button{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--g);min-width:44px;flex:none;padding:7px;font-size:14px}
.ieltsExamShell .exam-question-nav [aria-current]{background:var(--g);color:#fff;border-color:var(--g)}
.ieltsExamShell .readingTools{position:static;margin:0;padding:3px;box-shadow:none;border:0;flex-wrap:nowrap;overflow-x:auto;line-height:1.3}
.ieltsExamShell .readingTools button{flex:none;font-size:13px}
.ieltsExamShell:has([data-reading-tool=evidence].on) .readingSentence{cursor:pointer}
.ieltsExamShell .exam-pane-tabs{display:none;gap:6px}
.ieltsExamShell [aria-pressed=true]{background:var(--g);color:#fff}
.ieltsExamShell .exam-overview{font:14px/1.5 Arial,"Microsoft YaHei",sans-serif;max-width:100%;margin:0}
.ieltsExamShell .exam-overview summary{cursor:pointer;color:var(--g);padding:9px 2px}
.ieltsExamShell .exam-overview[open]{width:100%}
.ieltsExamShell .exam-overview .readingOverview{margin:10px 0;gap:8px}
.ieltsExamShell .exam-overview .card{padding:12px;border-radius:8px}
.ieltsExamShell .exam-overview .stat b{font-size:24px;margin:5px 0}
.ieltsExamShell .readingTeacherQuestion{padding:15px;border-radius:8px}
.ieltsExamShell .readingTeacherQuestion h2{font-size:17px}
.ieltsExamShell .readingQuestionGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;font-size:14px}
.ieltsExamShell .readingQuestionGrid p{padding:9px}
.ieltsExamShell .exam-site-info{position:absolute;right:12px;top:18px;font-size:11px;background:white}
.ieltsExamShell .exam-site-info summary{cursor:pointer;color:var(--muted)}
.ieltsExamShell .exam-site-info[open] footer{position:absolute;right:0;bottom:30px;width:min(310px,65vw);padding:16px;background:white;border:1px solid var(--line);border-radius:8px;box-shadow:0 4px 20px #172a2420}
.ieltsExamShell .lv1{height:100%;min-height:0;display:flex;flex-direction:column}
.ieltsExamShell .lv1-workspace{grid-template-columns:minmax(0,1fr);height:100%;min-height:0;gap:0;align-items:stretch}
.ieltsExamShell.examTeacher .lv1-workspace{grid-template-columns:repeat(2,minmax(0,1fr))}
.ieltsExamShell #lv1-paper,.ieltsExamShell #lv1-teacher{height:100%;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:var(--exam-pad);border:0;border-radius:0}
.ieltsExamShell #lv1-teacher{border-left:1px solid var(--line)}
.ieltsExamShell .lv1-section-nav{position:sticky;top:0;background:white;z-index:1;margin:-4px 0 10px;padding:4px 0;flex-wrap:nowrap;overflow:auto}
.ieltsExamShell .lv1-section-nav button{flex:none}
.ieltsExamShell .lv1-question{border-radius:8px;margin:16px 0;padding:14px;scroll-margin-top:70px}
.ieltsExamShell .lv1-teacher-unit{scroll-margin-top:12px;padding:14px}
.ieltsExamShell .exam-audio{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;width:100%;padding:6px 0 0;border:0;border-top:1px solid var(--line);border-radius:0}
.ieltsExamShell .exam-audio .lv1-player-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex:1}
.ieltsExamShell .exam-audio .lv1-player-controls strong{width:auto;font-size:14px}
.ieltsExamShell .exam-audio button,.ieltsExamShell .exam-audio select{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--g);padding:8px;font-size:13px;flex:none}
.ieltsExamShell .exam-audio .lv1-player-time{font-size:13px;white-space:nowrap;margin:0}
.ieltsExamShell .exam-audio .lv1-player-error{width:100%;margin:0}
.ieltsExamShell .exam-audio audio{display:none}
.ieltsExamShell .exam-listening-status,.ieltsExamShell #lv1-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0;font-size:13px}
.ieltsExamShell .exam-listening-status{width:100%}
.ieltsExamShell[data-exam-kind=listening] .exam-head>div:first-child>.muted{display:none}
.ieltsExamShell #lv1-message:empty,.ieltsExamShell .lv1-player-error:empty,.ieltsExamShell .exam-review-actions:empty,.ieltsExamShell .exam-learning-tools:empty{display:none}
.ieltsExamShell #lv1-message{width:100%;margin:0;color:#9b3030;font-size:14px}
.ieltsExamShell .exam-review-actions,.ieltsExamShell .exam-learning-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ieltsExamShell .exam-learning-tools button{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--g);padding:8px 12px}
.ieltsExamShell .exam-learning-tools button.primary{background:var(--g);color:#fff}
.ieltsExamShell .exam-learning-tools [aria-current=page]{background:#e4f2ed;border-color:var(--g);font-weight:bold}
.ieltsExamShell #lv1-teacher>h2{font-size:21px;margin:0 0 8px}
.ieltsExamShell #lv1-teacher>p{font-size:13px;margin:8px 0}
.ieltsExamShell .exam-review-meta{font-size:14px;margin:8px 0}
.ieltsExamShell .exam-review-meta>summary{padding:8px 0;cursor:pointer;color:var(--g)}
.ieltsExamShell #lv1-teacher .field{margin:12px 0}
.ieltsExamShell #lv1-teacher textarea{min-height:90px}
.ieltsExamShell .exam-surface-tabs{display:flex;gap:8px}
.ieltsExamShell #lv1-learning{display:none;height:100%;min-height:0;overflow:auto;margin:0;border:0;border-radius:0;padding:0}
.ieltsExamShell[data-exam-surface=learning] .lv1-workspace,.ieltsExamShell[data-exam-surface=learning] .exam-paper-navigation,.ieltsExamShell[data-exam-surface=learning] .exam-review-actions{display:none}
.ieltsExamShell[data-exam-surface=learning] #lv1-learning{display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.ieltsExamShell[data-exam-surface=learning] .exam-overview{display:none}
.ieltsExamShell[data-exam-surface=paper] .exam-learning-tools{display:none}
.ieltsExamShell .lv1-learning-head{position:static;background:#fff;padding:10px var(--exam-pad);border-bottom:1px solid var(--line);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px 12px}
.ieltsExamShell .lv1-learning-head h2{font-size:18px;margin:0;grid-column:1;grid-row:1}
.ieltsExamShell .lv1-learning-head p{margin:4px 0;font-size:13px}
.ieltsExamShell .lv1-learning-head>p:not([data-learning-status]){grid-column:1/-1;grid-row:2;margin:0;font-size:12px}
.ieltsExamShell .lv1-learning-head>[data-learning-status]{grid-column:2;grid-row:1}
.ieltsExamShell .lv1-learning-head>div.lv1-toolbar{grid-column:3;grid-row:1;margin:0}
.ieltsExamShell .lv1-learning-head>nav{grid-column:1/-1;grid-row:3}
.ieltsExamShell .lv1-learning-head .lv1-toolbar{margin:6px 0 0;flex-wrap:nowrap;overflow:auto}
.ieltsExamShell .lv1-learning-head button{flex:none;font-size:13px}
.ieltsExamShell .lv1-learning-body{padding:16px var(--exam-pad);min-height:0;overflow:auto;overscroll-behavior:contain}
.ieltsExamShell [data-learning-practice]>h3{font-size:18px;margin:0 0 4px}
.ieltsExamShell [data-learning-practice]>p,.ieltsExamShell [data-learning-run-host]>p{font-size:13px;margin:4px 0}
.ieltsExamShell .lv1-matching-controls{display:flex;align-items:center;gap:8px;overflow-x:auto;margin:6px 0}
.ieltsExamShell .lv1-matching-controls>button{flex:none}
.ieltsExamShell .lv1-matching-controls .lv1-run-history{margin:0;flex-wrap:nowrap}
.ieltsExamShell .lv1-matching-controls button{font-size:13px}
/* Compact passage rhythm; markers stay quiet while Evidence retains a 44px touch target. */
.ieltsExamShell .readingParagraph{padding:4px 0 4px 50px}
.ieltsExamShell .readingParagraph>p{margin:6px 0}
.ieltsExamShell .readingParagraphLabel{top:8px;min-width:20px;height:16px;border-radius:0;background:transparent;color:#536e63;font-size:10px;font-weight:400}
.ieltsExamShell .readingParagraph:has(.readingParagraphEvidence:not([hidden])){min-height:72px}
.ieltsExamShell .readingParagraphEvidence{top:24px;width:44px;height:44px;min-height:44px;padding:0;font:9.5px/1.2 Arial,"Microsoft YaHei",sans-serif;border-color:transparent;border-radius:4px;background:transparent;color:#426f61}
.ieltsExamShell .readingParagraphEvidence:hover,.ieltsExamShell .readingParagraphEvidence:focus-visible{border-color:#9bb9b1;background:#edf6f3}
.ieltsExamShell .readingParagraphEvidence.selected{border-color:transparent;background:transparent;color:#7149a5;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.ieltsExamShell .lv1-pairs{grid-template-columns:minmax(0,1fr);gap:8px;max-width:1100px;margin:auto}
.ieltsExamShell .lv1-pairs .card{padding:12px;border-radius:8px}
.ieltsExamShell .lv1-pairs .field{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 16px;margin:0;align-items:center}
.ieltsExamShell .lv1-pairs .field small{grid-column:1;font-size:12px}
.ieltsExamShell .lv1-pairs select{grid-column:2;grid-row:1/3;margin:0;font-size:16px;padding:9px}
.ieltsExamShell .lv1-pair-choice{display:block;font-weight:400;font-size:14px;color:var(--g);margin:4px 0 0;overflow-wrap:anywhere}
.ieltsExamShell .lv1-pair-choice:empty{display:none}
.ieltsExamShell .exam-learning-tools [data-learning-pages]{display:flex;gap:6px;overflow:auto;margin:0;flex-wrap:nowrap;flex:none}
.ieltsExamShell .exam-learning-tools button{flex:none;font-size:13px}
@container exam (max-width:680px){
  .ieltsExamShell .lv1-learning-head{grid-template-columns:minmax(0,1fr) auto}
  .ieltsExamShell .lv1-learning-head h2{display:none}
  .ieltsExamShell .lv1-learning-head>[data-learning-status]{grid-column:1}
  .ieltsExamShell .lv1-learning-head>div.lv1-toolbar{grid-column:2}
  .ieltsExamShell .exam-pane-tabs{display:flex}
  .ieltsExamShell .readingWorkspace,.ieltsExamShell .readingReviewSplit{grid-template-columns:minmax(0,1fr)}
  .ieltsExamShell[data-exam-pane=passage] .readingQuestions,.ieltsExamShell[data-exam-pane=passage] .readingReviewQuestions{display:none}
  .ieltsExamShell[data-exam-pane=questions] .readingPassage{display:none}
  .ieltsExamShell.examTeacher .lv1-workspace{display:block;overflow:auto}
  .ieltsExamShell.examTeacher #lv1-paper,.ieltsExamShell.examTeacher #lv1-teacher{height:auto;overflow:visible}
  .ieltsExamShell .lv1-pairs .field{display:block}
  .ieltsExamShell .readingQuestionGrid{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:760px){.ieltsExamShell{--exam-pad:12px}.ieltsExamShell.examNavExpanded{--exam-rail:176px}.ieltsExamShell .exam-head{padding:8px 12px;gap:4px 8px}.ieltsExamShell .pagehead h1{font-size:17px}.ieltsExamShell .exam-identity{font-size:10px}.ieltsExamShell .exam-head-actions button{font-size:13px;padding:8px}.ieltsExamShell .exam-bottom{padding:4px 6px max(4px,env(safe-area-inset-bottom))}.ieltsExamShell .exam-navigation{gap:4px;padding-right:0}.ieltsExamShell .exam-site-info{position:static;align-self:flex-end;font-size:10px;height:14px}.ieltsExamShell .exam-audio .lv1-player-controls{gap:4px}.ieltsExamShell .lv1-learning-head{position:static}.ieltsExamShell .exam-learning-tools{flex-wrap:nowrap;overflow:auto}.ieltsExamShell .exam-review-actions{max-height:100px;overflow:auto}}

/* Compact exam controls; answer fields and paragraph Evidence retain their larger hit areas. */
.ieltsExamShell .exam-head{padding:2px 16px;gap:2px 12px}
.ieltsExamShell .exam-head>div:first-child{display:flex;align-items:center;flex-wrap:wrap;gap:2px 12px}
.ieltsExamShell .exam-identity{display:block;flex:none;font-size:9px;line-height:1.3;letter-spacing:.03em}
.ieltsExamShell .pagehead h1{font-size:13.5px;line-height:1.3;margin:0;font-weight:600}
.ieltsExamShell .pagehead p{font-size:10.5px;line-height:1.3;margin:0}
.ieltsExamShell .exam-head-actions{gap:6px}
.ieltsExamShell .exam-head button,.ieltsExamShell .exam-head select{font-size:11px;line-height:1.3;min-height:34px;min-width:34px;padding:3px 7px}
.ieltsExamShell .exam-overview{font-size:11px;line-height:1.4}
.ieltsExamShell .exam-overview>summary{min-height:34px;padding:8px 2px}
.ieltsExamShell .exam-bottom{flex-direction:row;align-items:center;flex-wrap:nowrap;padding:2px 6px max(2px,env(safe-area-inset-bottom));gap:3px}
.ieltsExamShell .exam-navigation{flex:1;min-width:0;gap:3px;padding-right:0;overflow-x:auto;scrollbar-width:none}
.ieltsExamShell .exam-navigation::-webkit-scrollbar,.ieltsExamShell .exam-question-nav::-webkit-scrollbar{display:none}
.ieltsExamShell .exam-question-nav{padding:0 2px;gap:2px;min-width:104px;scrollbar-width:none;scroll-snap-type:x mandatory;scroll-padding-inline:2px}
.ieltsExamShell .readingTools{flex:none;overflow:visible;margin-left:auto;padding:0;gap:2px}
.ieltsExamShell .exam-bottom button{font-size:10.5px;line-height:1.25;padding:3px 4px;min-height:34px;min-width:34px;white-space:nowrap}
.ieltsExamShell .exam-question-nav button{width:32px;min-width:32px;flex:0 0 32px;padding:2px;scroll-snap-align:start}
.ieltsExamShell .exam-navigation>button:last-child{margin-left:auto}
.ieltsExamShell .exam-site-info{position:static;align-self:center;flex:none;order:10;height:auto;font-size:10px}
.ieltsExamShell .exam-site-info>summary{min-width:56px;height:34px;line-height:34px;white-space:nowrap;list-style-position:inside}
.ieltsExamShell .exam-site-info>summary:focus-visible{outline:3px solid #7150a5;outline-offset:-3px}
.ieltsExamShell .exam-site-info[open] footer{right:6px;bottom:calc(100% + 4px)}
.ieltsExamShell .exam-bottom button:focus-visible{outline-offset:-3px}
.ieltsExamShell .readingTools button.on{box-shadow:inset 0 0 0 2px #a8cec1}
.ieltsExamShell .readingPassage header .tag{font-size:10.5px;font-weight:500;padding:3px 6px}
.ieltsExamShell .exam-audio{padding:2px 0 0;gap:3px 8px}
.ieltsExamShell .exam-audio .lv1-player-controls{gap:3px}
.ieltsExamShell .exam-audio .lv1-player-controls strong,.ieltsExamShell .exam-audio .lv1-player-time{font-size:11px}
.ieltsExamShell .exam-listening-status,.ieltsExamShell #lv1-actions{width:auto;gap:4px;font-size:10.5px}
.ieltsExamShell .exam-listening-status .tag{font-size:10px;padding:2px 4px}
.ieltsExamShell .exam-surface-tabs{gap:3px}
.ieltsExamShell .exam-review-actions,.ieltsExamShell .exam-learning-tools{flex-wrap:nowrap;gap:3px;overflow-x:auto;max-height:none;font-size:11px}
.ieltsExamShell .exam-review-actions{flex:0 1 auto;max-width:50%}
.ieltsExamShell .exam-learning-tools{flex:1;min-width:0}
.ieltsExamShell .exam-learning-tools [data-learning-pages]{gap:2px}
.ieltsExamShell .lv1-learning-head{padding:4px 12px;gap:2px 8px}
.ieltsExamShell .lv1-learning-head h2{font-size:13px}
.ieltsExamShell .lv1-learning-head p{font-size:11px;margin:0}
.ieltsExamShell .lv1-learning-head>p:not([data-learning-status]){font-size:10.5px;line-height:1.4}
.ieltsExamShell .lv1-learning-head .lv1-toolbar{gap:3px;margin:0}
.ieltsExamShell .lv1-learning-head button,.ieltsExamShell .lv1-matching-controls button,.ieltsExamShell .lv1-section-nav button{font-size:11px;line-height:1.3;min-height:34px;padding:3px 7px}
.ieltsExamShell #lv1-learning .lv1-learning-head button,.ieltsExamShell #lv1-learning .lv1-matching-controls button{min-height:34px}
.ieltsExamShell .lv1-matching-controls{gap:3px;margin:4px 0}
@media(max-width:760px){.ieltsExamShell .exam-head{padding-left:8px;padding-right:8px}.ieltsExamShell .exam-review-actions{max-width:55%}}

/* Listening usability changes explicitly requested after real teaching trial.
   Reading/Mapping baseline rules above remain unchanged. */
.ieltsExamShell[data-exam-kind=listening]{height:min(100dvh,var(--lv1-viewport-height,100dvh))}
.ieltsExamShell[data-exam-kind=listening] .exam-head{max-height:min(160px,30dvh);gap:2px 8px;overscroll-behavior:contain}
.ieltsExamShell[data-exam-kind=listening] .exam-overview{font-size:11px;margin:0;flex:0 1 auto}
.ieltsExamShell[data-exam-kind=listening] .exam-overview>summary{min-height:28px;padding:4px 2px;cursor:pointer}
.ieltsExamShell[data-exam-kind=listening] .exam-overview>summary .lv1-score{font-size:inherit;font-weight:600}
.ieltsExamShell[data-exam-kind=listening] .exam-overview #lv1-result{padding:6px;border:0;margin:0}
.ieltsExamShell[data-exam-kind=listening] .exam-overview #lv1-result h3{font-size:13px;margin:0}
.ieltsExamShell[data-exam-kind=listening] .exam-overview #lv1-result p{font-size:12px;margin:4px 0}
.ieltsExamShell[data-exam-kind=listening] .exam-view-label{font-size:10.5px;color:var(--muted);overflow-wrap:anywhere}
.ieltsExamShell[data-exam-kind=listening][data-exam-surface=learning] .exam-view-label{display:none}
.ieltsExamShell[data-exam-kind=listening][data-listening-mode=training] .exam-view-label{display:none}
.ieltsExamShell[data-exam-kind=listening] .exam-audio{align-items:center;gap:2px 8px}
.ieltsExamShell[data-exam-kind=listening] .lv1-player-controls{min-width:0;flex:1 1 500px}
.ieltsExamShell[data-exam-kind=listening] .lv1-player-controls strong{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ieltsExamShell[data-exam-kind=listening] .lv1-player-controls select{max-width:200px;min-width:0}
.ieltsExamShell[data-exam-kind=listening] .lv1-player-progress{display:flex;flex:1 1 150px;min-width:70px}
.ieltsExamShell[data-exam-kind=listening] .lv1-player-progress:empty{display:none}
.ieltsExamShell[data-exam-kind=listening] input[data-player=progress]{width:100%;padding:0;margin:0;min-height:34px;accent-color:var(--g);cursor:pointer}
.ieltsExamShell[data-exam-kind=listening] .lv1-player-time[data-loading=true]::after{content:' · 加载中';font-size:10px;color:var(--muted)}
.ieltsExamShell[data-exam-kind=listening] .exam-section-nav{max-width:none!important;min-width:0;flex:1;overflow-x:auto}
.ieltsExamShell[data-exam-kind=listening] .exam-section-nav button{width:auto;min-width:52px;flex:0 0 auto;padding:3px 7px}
.ieltsExamShell[data-exam-kind=listening] .lv1-section,.ieltsExamShell[data-exam-kind=listening] .lv1-question{scroll-margin-top:8px}
.ieltsExamShell[data-exam-kind=listening] .lv1-section>h2{margin-top:0;line-height:1.5}
.ieltsExamShell[data-exam-kind=listening] .lv1-section-instruction{font-size:12px;font-weight:400;color:var(--muted)}
.ieltsExamShell[data-exam-kind=listening] .lv1-unit-result{font-size:12px;margin-top:6px}
.ieltsExamShell[data-exam-kind=listening] .lv1-unit-score{display:inline-block;margin:0 6px 3px 0}
.ieltsExamShell[data-exam-kind=listening][data-listening-state=submitted] .lv1-question>.lv1-answer-label{display:inline-grid;width:33%;max-width:260px;min-width:120px;vertical-align:bottom;margin-right:10px}
.ieltsExamShell[data-exam-kind=listening][data-listening-state=submitted] .lv1-question:has(>.lv1-answer-label)>.lv1-unit-result{display:inline-block;width:calc(67% - 16px);vertical-align:bottom}
.ieltsExamShell[data-exam-kind=listening] .lv1-answer-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.ieltsExamShell[data-exam-kind=listening] .lv1-answer-actions button,.ieltsExamShell[data-exam-kind=listening] [data-evidence-panel] button{min-height:34px;padding:3px 7px;font-size:11px}
.ieltsExamShell[data-exam-kind=listening] [data-answer-value]{font-size:13px;font-weight:600;color:var(--g)}
.ieltsExamShell[data-exam-kind=listening] .lv1-evidence-segments{margin:6px 0;padding-left:22px;font-size:14px;line-height:1.5}
.ieltsExamShell[data-exam-kind=listening] .lv1-evidence-segments p{margin:3px 0}
.ieltsExamShell[data-exam-kind=listening] .lv1-extra-replay{font-size:12px;margin:6px 0}
.ieltsExamShell[data-exam-kind=listening] .lv1-mark-group{border-bottom:1px solid var(--line);padding:6px 0}
.ieltsExamShell[data-exam-kind=listening] .lv1-mark-row{display:flex;flex-wrap:wrap;align-items:center;gap:3px 9px;padding:4px 0;font-size:13px;line-height:1.45}
.ieltsExamShell[data-exam-kind=listening] .lv1-mark-row small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.ieltsExamShell[data-exam-kind=listening] .lv1-mark-row button{font-size:11px;min-height:34px;padding:3px 7px}
.ieltsExamShell[data-exam-kind=listening] .lv1-mark-context{font-size:12px}
.ieltsExamShell[data-exam-kind=listening] .lv1-mark-context summary{min-height:34px;padding:6px 0;cursor:pointer;color:var(--g)}
.ieltsExamShell[data-exam-kind=listening] .lv1-mark-context blockquote{max-height:140px;overflow:auto;margin:3px 0;padding:5px 10px;font-size:14px;line-height:1.45}
.ieltsExamShell[data-exam-kind=listening] #lv1-learning[data-transcript-open="1"] .lv1-learning-head>nav{display:none}
.ieltsExamShell[data-exam-kind=listening] #lv1-learning[data-transcript-open="1"] .lv1-learning-head>h2,.ieltsExamShell[data-exam-kind=listening] #lv1-learning[data-transcript-open="1"] .lv1-learning-head>p:not([data-learning-status]),.ieltsExamShell[data-exam-kind=listening] #lv1-learning[data-transcript-open="1"] .lv1-learning-head>.lv1-toolbar{display:none}
.ieltsExamShell[data-exam-kind=listening] #lv1-learning[data-transcript-open="1"] .lv1-learning-head:has([data-learning-status]:empty){padding:0;border:0}
.ieltsExamShell[data-exam-kind=listening] #lv1-learning[data-transcript-open="1"] [data-learning-status]:empty{display:none}
.ieltsExamShell[data-exam-kind=listening] #lv1-learning[data-transcript-open="1"] .lv1-learning-body{display:grid;grid-template-rows:minmax(0,1fr);padding:0;overflow:hidden}
.ieltsExamShell[data-exam-kind=listening] #lv1-learning[data-transcript-open="1"] .lv1-learning-body>:not(.lv1-transcript-panel){display:none}
.ieltsExamShell[data-exam-kind=listening] .lv1-transcript-panel{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}
.ieltsExamShell[data-exam-kind=listening] .lv1-transcript-panel>header{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:4px 10px;border-bottom:1px solid var(--line);font-size:12px}
.ieltsExamShell[data-exam-kind=listening] .lv1-transcript-panel>header select{min-width:0;flex:1;max-width:300px;font-size:12px}
.ieltsExamShell[data-exam-kind=listening] .lv1-transcript-panel>header button{font-size:11px;min-height:34px;padding:3px 7px}
.ieltsExamShell[data-exam-kind=listening] .lv1-transcript-panel [data-full-transcript]{height:100%;max-height:none;min-height:0;margin:0;padding:10px 14px;overflow:auto;overscroll-behavior:contain;scroll-padding-block:8px;white-space:pre-wrap;font-size:14px;line-height:1.45;border:0;border-radius:0}
.ieltsExamShell[data-exam-kind=listening] .lv1-transcript-actions{padding:5px 10px max(5px,env(safe-area-inset-bottom));background:white;border-top:1px solid var(--line);display:grid;gap:3px;min-width:0}
.ieltsExamShell[data-exam-kind=listening] .lv1-transcript-actions [data-selection-preview]{font-size:12px;line-height:1.3;max-height:2.6em;overflow:auto;overflow-wrap:anywhere}
.ieltsExamShell[data-exam-kind=listening] .lv1-transcript-actions>div{display:flex;flex-wrap:wrap;gap:6px}
.ieltsExamShell[data-exam-kind=listening] .lv1-transcript-actions button{font-size:13px;min-height:40px;padding:5px 10px}
.lv1 .lv1-section-picker{max-height:40dvh;overflow:auto;border:1px solid var(--line);padding:6px;border-radius:6px}
.lv1 .lv1-section-picker fieldset{border:1px solid var(--line);border-radius:6px;margin:4px 0;padding:8px}
.lv1 .lv1-section-picker legend{font-size:14px;font-weight:600}
.lv1 .lv1-section-choice{display:flex;align-items:center;gap:8px;font-size:14px;line-height:1.45;padding:6px 0}
.lv1 .lv1-section-choice input{width:18px;min-width:18px;height:18px;flex:none}
.ieltsExamShell[data-exam-kind=listening] .lv1-batch{flex:0 0 auto;max-height:min(140px,25dvh);overflow:auto;padding:3px 10px;border-bottom:1px solid var(--line);font-size:12px}
.ieltsExamShell[data-exam-kind=listening] .lv1-batch p{margin:2px 0}
.ieltsExamShell[data-exam-kind=listening] .lv1-batch button{font-size:11px;min-height:34px;margin:2px 4px 2px 0;padding:3px 7px;max-width:100%;overflow-wrap:anywhere}
@media(max-width:600px){.ieltsExamShell[data-exam-kind=listening] .exam-head{max-height:min(240px,30dvh)}.ieltsExamShell[data-exam-kind=listening] .lv1-player-controls{flex-basis:100%}.ieltsExamShell[data-exam-kind=listening] .lv1-player-controls select[aria-label="播放 Section"]{max-width:160px}.ieltsExamShell[data-exam-kind=listening] .exam-identity{display:none}}

/* Listening active/preview completion fields: source marker or adjacent fallback. */
.ieltsExamShell[data-exam-kind=listening] .lv1-inline-prompt{min-width:0;max-width:100%;overflow-wrap:anywhere;line-height:1.65}
.ieltsExamShell[data-exam-kind=listening] .lv1-inline-prompt .lv1-inline-answer{position:relative;display:inline-block;vertical-align:middle;box-sizing:border-box;width:11rem;max-width:calc(100% - 10px);min-width:0;margin:2px 5px;font-weight:400;font-size:16px}
.ieltsExamShell[data-exam-kind=listening] .lv1-inline-answer>input{display:inline-block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;min-height:40px;margin:0;padding:6px 8px;font-size:16px;line-height:1.4}
.ieltsExamShell[data-exam-kind=listening] .lv1-answer-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
/* Training question vocabulary: allow native long-press selection inside option labels. */
.ieltsExamShell[data-exam-kind=listening][data-listening-mode=training] [data-question-vocab-source]{user-select:text;-webkit-user-select:text}
/* Reading V1.1: explicitly authorized content sizes; chrome retains V1 sizes. */
.readingStudentShell[data-reading-font="15"]{--reading-text-size:15px}
.readingStudentShell[data-reading-font="17"]{--reading-text-size:17px}
.readingStudentShell[data-reading-font="19"]{--reading-text-size:19px}
.ieltsExamShell.readingStudentShell[data-reading-font] .readingPassage,
.ieltsExamShell.readingStudentShell[data-reading-font] .readingQuestions,
.ieltsExamShell.readingStudentShell[data-reading-font] .readingActiveQuestion .readingSourceStem,
.ieltsExamShell.readingStudentShell[data-reading-font] .readingActiveQuestion .readingSharedOptions,
.ieltsExamShell.readingStudentShell[data-reading-font] .readingOptions label,
.ieltsExamShell.readingStudentShell[data-reading-font] .readingSourceTable,
.ieltsExamShell.readingStudentShell[data-reading-font] .readingGroupRow>button{font-size:var(--reading-text-size);line-height:1.65}
.ieltsExamShell.readingStudentShell[data-reading-font] .readingActiveQuestion h2{font-size:calc(var(--reading-text-size) + 2px)}
.ieltsExamShell.readingStudentShell[data-reading-font] .readingActiveQuestion h3{font-size:var(--reading-text-size)}
.ieltsExamShell.readingStudentShell[data-reading-font] .readingActiveQuestion input,
.ieltsExamShell.readingStudentShell[data-reading-font] .readingActiveQuestion select{font-size:max(16px,var(--reading-text-size));max-width:100%}
.ieltsExamShell.readingStudentShell[data-reading-font] .readingSourceStem,
.ieltsExamShell.readingStudentShell[data-reading-font] .readingOptions span,
.ieltsExamShell.readingStudentShell[data-reading-font] .readingGroupRow>button{overflow-wrap:anywhere;white-space:normal}
.ieltsExamShell.readingStudentShell[data-reading-font] .readingTableScroll{max-width:100%;overflow-x:auto}
.readingFontControl{display:flex;align-items:center;gap:4px;font-size:12px;white-space:nowrap}
.readingFontControl select{font:inherit;min-height:34px;padding:3px 6px}
#readingSaveState{font-size:11px;max-width:220px;overflow-wrap:anywhere}
#readingSaveState[data-state=error],#readingSaveState[data-state=conflict],#readingSaveState[data-state=auth]{color:#9a352f}
.readingPassageFeedback{border-top:1px solid var(--line);margin-top:16px;padding-top:10px}

/* Explicit Listening usability increment: state feedback and Review content only.
   Keep Shell geometry, rails, fonts, toolbars, scoring and playback contracts intact. */
.ieltsExamShell[data-exam-kind=listening] .exam-audio [data-player][aria-pressed=true]{background:var(--g);color:#fff;border-color:var(--g);box-shadow:inset 0 0 0 1px var(--g)}
.ieltsExamShell[data-exam-kind=listening] .lv1-options label:has(input:checked),.ieltsExamShell[data-exam-kind=listening] select[data-did]:has(option:checked:not([value=""])){background:#e4f2ed;box-shadow:inset 0 0 0 2px #126c59}
.ieltsExamShell[data-exam-kind=listening] .lv1-pairs .card[data-selected=true]{background:#e4f2ed;box-shadow:inset 0 0 0 2px #126c59}
.ieltsExamShell[data-exam-kind=listening] .lv1-pair-choice:empty{display:none}
.ieltsExamShell #lv1-teacher .lv1-review-filter{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:10px 0}
.ieltsExamShell #lv1-teacher .lv1-review-filter [aria-pressed=true]{background:var(--g);color:#fff}
.ieltsExamShell #lv1-teacher .lv1-review-filter span{font-size:13px}
.ieltsExamShell #lv1-teacher .lv1-teacher-unit{margin:8px 0;padding:12px;border-left:3px solid transparent}
.ieltsExamShell #lv1-teacher .lv1-teacher-unit[data-review-attention=true]{border-left-color:#9b3030}
.ieltsExamShell #lv1-teacher .lv1-teacher-unit .field{margin:6px 0}
.ieltsExamShell #lv1-teacher .lv1-teacher-unit h3{margin-bottom:8px}
.ieltsExamShell #lv1-teacher .lv1-teacher-unit p{margin:8px 0}
.ieltsExamShell #lv1-teacher .lv1-review-note{margin:6px 0 0}
.ieltsExamShell #lv1-teacher .lv1-review-note summary{padding:5px 0;font-size:13px}
.ieltsExamShell #lv1-teacher .lv1-review-note textarea{min-height:64px}
.ieltsExamShell #lv1-teacher .lv1-review-mark{font-size:12px;font-weight:500;color:#536e63}
.ieltsExamShell #lv1-teacher .lv1-needs-attention{color:#9b3030;font-weight:bold}
.ieltsExamShell #lv1-teacher.lv1-review-errors-only [data-review-attention=false]{display:none}

/* Teacher Reading classroom: retain full width, halve the former 130px note. */
.ieltsExamShell [data-classroom-workspace] #classroomNote{height:65px;min-height:65px}
@media(max-width:680px){
 .ieltsExamShell .readingGroupRows[data-reading-diagram-rows] .readingGroupRow{display:grid;grid-template-columns:minmax(0,1fr)}
 .ieltsExamShell .readingGroupRows[data-reading-diagram-rows] .readingGroupRow>:is(input,select){width:100%;min-width:0}
}

/* Teacher classroom only; student fonts and the shared review split retain their defaults. */
@container exam (min-width:681px){
 .ieltsExamShell .readingReviewSplit[data-classroom-workspace]{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}
}
.ieltsExamShell [data-classroom-workspace] #classroomPassageText{font-size:16px;line-height:1.7;overflow-wrap:anywhere}
.ieltsExamShell [data-classroom-workspace] .classroomParagraphNotes{display:flex;align-items:flex-start;flex-wrap:wrap;gap:6px;margin:8px 0 12px;font:13px/1.45 Arial,"Microsoft YaHei",sans-serif;color:var(--ink);user-select:none}
.ieltsExamShell [data-classroom-workspace] .classroomNotesLabel{flex:none;color:#536e63;font-size:11px;padding:5px 0}
.ieltsExamShell [data-classroom-workspace] .classroomParagraphNote{flex:0 1 auto;min-width:0;max-width:min(100%,32rem);margin:0;border:1px solid var(--line);border-radius:5px;background:#f2f7f4;overflow:hidden}
.ieltsExamShell [data-classroom-workspace] .classroomParagraphNote summary{display:flex;align-items:flex-start;gap:8px;padding:4px 8px;list-style:none;cursor:pointer}
.ieltsExamShell [data-classroom-workspace] .classroomParagraphNote summary::-webkit-details-marker{display:none}
.ieltsExamShell [data-classroom-workspace] .classroomParagraphNote summary::after{content:'展开';flex:none;color:#536e63;font-size:11px;line-height:19px}
.ieltsExamShell [data-classroom-workspace] .classroomParagraphNoteText{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:0;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap}
.ieltsExamShell [data-classroom-workspace] .classroomParagraphNote[open]{flex-basis:100%;max-width:100%}
.ieltsExamShell [data-classroom-workspace] .classroomParagraphNote[open] .classroomParagraphNoteText{-webkit-line-clamp:unset;overflow:visible}
.ieltsExamShell [data-classroom-workspace] .classroomParagraphNote[open] summary::after{content:'收起'}
.ieltsExamShell [data-classroom-workspace] .classroomParagraphNote>button{margin:0 8px 6px;padding:3px 7px;min-height:30px;font-size:12px}
.ieltsExamShell [data-classroom-workspace] .readingReviewQuestions .readingTeacherQuestion{overflow-wrap:anywhere;min-width:0}
.ieltsExamShell [data-classroom-workspace] .readingReviewQuestions :is(input,select){max-width:100%;min-width:0}
.ieltsExamShell [data-classroom-workspace] .readingReviewQuestions .readingTableScroll{max-width:100%;overflow-x:auto}
#classroomHistory .classroomHistoryRow,#classroomDeletedHistory .classroomHistoryRow{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0}
#classroomHistory [data-classroom-history],#classroomDeletedHistory .classroomHistoryRow>span{min-width:0;overflow-wrap:anywhere}
#classroomDeletedHistory .classroomHistoryRow>span{flex:1}
.ieltsExamShell [data-classroom-workspace] .classroomTableControls{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:4px;padding:5px 0;background:#fff;border-bottom:1px solid var(--line);font:12px/1.4 Arial,"Microsoft YaHei",sans-serif}
.ieltsExamShell [data-classroom-workspace] .classroomTableControls[hidden]{display:none}
.ieltsExamShell [data-classroom-workspace] .classroomTableControls>span{flex:1;min-width:0;overflow-wrap:anywhere}
.ieltsExamShell [data-classroom-workspace] .classroomTableControls>button{flex:none;min-width:34px;min-height:34px;padding:3px 7px;margin:0}
.ieltsExamShell [data-classroom-workspace] .readingTableScroll:focus-visible{outline:2px solid var(--g);outline-offset:2px}
.ieltsExamShell [data-classroom-workspace] .classroomFigureActions{margin:6px 0}
.ieltsExamShell [data-classroom-workspace] .classroomFigureActions>button{font-size:12px;min-height:34px;padding:4px 8px}
.ieltsExamShell [data-classroom-workspace] .readingVisual img{cursor:zoom-in}
dialog.classroomFigureDialog{width:min(1000px,calc(100vw - 24px));height:min(850px,90dvh);max-width:calc(100vw - 24px);max-height:90dvh;padding:0;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-family:Arial,"Microsoft YaHei",sans-serif}
dialog.classroomFigureDialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}
dialog.classroomFigureDialog::backdrop{background:#173c35a6}
.classroomFigureDialog>header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:12px;border-bottom:1px solid var(--line)}
.classroomFigureDialog h2{flex:1;min-width:160px;margin:0;font-size:16px;line-height:1.4;overflow-wrap:anywhere}
.classroomFigureDialog>header>div{display:flex;gap:6px;flex-wrap:wrap}
.classroomFigureDialog>header>p{flex-basis:100%;margin:0;font-size:12px;color:#536e63}
.classroomFigureDialog button{min-height:34px;padding:5px 9px;font-size:13px}
.classroomFigureDialog button[aria-pressed=true]{background:var(--g);color:#fff}
.classroomFigureCanvas{min-width:0;min-height:0;padding:16px;overflow:auto;overscroll-behavior:contain;background:#f5f8f6}
.classroomFigureCanvas>img{display:block;width:auto;max-width:none;height:auto;margin:0 auto;background:#fff}
.classroomFigureDialog[data-fit=true] .classroomFigureCanvas>img{max-width:100%;max-height:100%;object-fit:contain}
