/* Only listening-standard-v1 uses this stylesheet. Reference panel: 980 px. */
.cp-listening-session{width:980px;max-width:calc(100vw - 40px);margin:10px auto;text-align:right;font-size:12px}.cp-listening-session a{color:#416375}
#cp-exam[data-listening-v1]{height:min(720px,calc(100vh - 65px));max-height:720px;min-height:540px;margin:12px auto;font-family:Arial,Helvetica,sans-serif}
#cp-exam[data-listening-v1] .cp-heading strong{font-size:16px}#cp-exam[data-listening-v1] .cp-header{padding-left:20px}#cp-exam[data-listening-v1] .cp-clock{white-space:nowrap}
#cp-exam[data-listening-v1] .cp-stage-body{height:100%;min-height:100%}#cp-exam[data-listening-v1] .cp-stage{overflow:auto}#cp-exam[data-listening-v1] .cp-reading{padding:18px 20px 35px;box-sizing:border-box}
#cp-exam[data-listening-v1] .cp-instruction{background:#fff}#cp-exam[data-listening-v1] .cp-instruction>.cp-info{display:none}#cp-exam[data-listening-v1] .cp-instruction .cp-copy{margin:0 35px;max-width:760px}
#cp-exam[data-listening-v1] .cp-instruction h1,#cp-exam[data-listening-v1] .lv1-instructions h1{font-size:18px;color:#080808;margin:5px 0 16px;font-weight:600}
#cp-exam[data-listening-v1] .cp-instruction ul,#cp-exam[data-listening-v1] .lv1-instructions ul{padding-left:20px;max-width:700px;color:#17618f;font-size:18px;font-weight:600;line-height:1.8;margin:0}
#cp-exam[data-listening-v1] .cp-instruction li,#cp-exam[data-listening-v1] .lv1-instructions li{padding:15px 10px;border-bottom:1px dotted #ccc}#cp-exam[data-listening-v1] li::marker{color:#999}#cp-exam[data-listening-v1] li:last-child{border-bottom:0}
#cp-exam[data-listening-v1] .lv1-instructions{padding:3px 35px 15px}#cp-exam[data-listening-v1] .lv1-instructions+.lv1-media-container .cp-playback-card{margin-top:22px}
#cp-exam[data-listening-v1] .lv1-instructions~.lv1-media-container .cp-versioned-media{max-width:440px}
#cp-exam[data-listening-v1] .lv1-scenario,#cp-exam[data-listening-v1] .lv1-instructions{background:white}#cp-exam[data-listening-v1] .lv1-scenario-copy{margin:30px 35px 20px;font-size:17px;line-height:1.6;color:#50575b}#cp-exam[data-listening-v1] .lv1-scenario-image{display:block;width:auto;max-width:100%;max-height:none;height:auto;margin:20px auto;object-fit:contain}
#cp-exam[data-listening-v1] .cp-single .cp-media-pane{padding:16px 20px}#cp-exam[data-listening-v1] .cp-single .cp-question-pane{padding:18px 20px;background:#eef8fa;overflow:visible}#cp-exam[data-listening-v1] .cp-option{min-height:27px;padding:3px 0;align-items:start}#cp-exam[data-listening-v1] .cp-option input{top:5px}#cp-exam[data-listening-v1] .cp-option-text{font-size:14px;line-height:20px}#cp-exam[data-listening-v1] .cp-option img{height:auto;max-height:110px;object-fit:contain;width:155px}#cp-exam[data-listening-v1] .cp-option:has(input:checked){background:#c5e8eb}#cp-exam[data-listening-v1] .cp-image-options .cp-option-text:empty{display:none}
#cp-exam[data-listening-v1] .cp-group{padding:16px 20px 40px;box-sizing:border-box}#cp-exam[data-listening-v1] .cp-group-list{display:block;margin:28px 0 0}#cp-exam[data-listening-v1] .cp-group-question{display:block;margin:24px 0;font-size:14px;line-height:1.7}#cp-exam[data-listening-v1] .cp-group-question b{font-weight:400}
.lv1-choice{display:inline-block;vertical-align:baseline;margin:0 4px}.lv1-choice-toggle{display:inline-flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;color:#344e62;border:0;border-bottom:1px dotted #999;border-radius:0;padding:2px 8px;min-width:82px;min-height:24px;font-size:14px;cursor:pointer;max-width:500px}.lv1-choice-toggle[aria-expanded=true]{outline:1px solid #486873;background:#cdfaff}.lv1-choice-toggle>span{color:#005596;font-size:11px;margin-left:8px}.lv1-choice-popup{position:fixed;z-index:10000;background:#fff;border:3px solid #bdbdbd;border-radius:10px;padding:18px 20px;max-width:min(520px,calc(100vw - 20px));box-sizing:border-box;max-height:240px;overflow:auto;color:#111;font:14px Arial,Helvetica,sans-serif}.lv1-choice-popup label{display:flex;gap:6px;padding:5px 0;border-bottom:1px dotted #ccc;cursor:pointer}.lv1-choice-popup input{margin:0;flex:0 0 16px}.lv1-choice-popup label:has(input:checked){background:#c5e8eb}.lv1-choice-popup label:has(input:focus-visible){outline:1px solid #337caf}
#cp-exam[data-listening-v1] .lv1-preparation{display:flex;background:#d9dce2;border-radius:10px;padding:20px;max-width:375px;margin:45px auto;gap:35px;align-items:center;color:#111}#cp-exam[data-listening-v1] .lv1-preparation[hidden],#cp-exam[data-listening-v1] .lv1-media-container[hidden]{display:none}#cp-exam[data-listening-v1] .lv1-preparation strong{display:block;color:#0069b7;text-align:center;margin-top:15px;font-weight:400}#cp-exam[data-listening-v1] .lv1-tutorial .cp-playback-card{display:none}#cp-exam[data-listening-v1] .lv1-tutorial video{width:min(900px,100%);max-height:none;background:#eee}#cp-exam[data-listening-v1] .lv1-tutorial .cp-versioned-media{max-width:none}#cp-exam[data-listening-v1] .cp-skip{display:block;margin:20px auto}
#cp-exam[data-listening-v1] .cp-media-note{min-height:18px}#cp-exam[data-listening-v1] .cp-playback-label{display:block}#cp-exam[data-listening-v1] .cp-tools{flex-direction:row-reverse}.lv1-result{margin:20px auto;width:min(980px,calc(100vw - 40px));display:block;font:14px Arial;color:#4f5b62}.lv1-result header,.lv1-result footer{background:linear-gradient(#edeef1,#d9dce1);padding:12px 20px}.lv1-result footer{text-align:right}.lv1-result main{padding:0;background:transparent}.lv1-result table{border-collapse:collapse;width:100%;font-size:14px}.lv1-result td,.lv1-result th{text-align:left;padding:8px 5px;border-bottom:1px solid #ddd;vertical-align:top}.lv1-result tbody tr:nth-child(even){background:#f8f8f8}.lv1-result .lv1-part-heading th{background:#eef3f5;padding-top:18px}.lv1-result img{width:110px;height:73px;object-fit:contain}.lv1-result .lv1-right{color:#42812b}.lv1-result .lv1-wrong{color:#b83e3e}.lv1-result .lv1-summary{padding:12px;background:#eee;border:1px solid #bbb;margin-bottom:20px}

#cp-exam[data-listening-v1] .cp-instruction h1{color:#185f91}#cp-exam[data-listening-v1] .cp-instruction h1:before{content:"i";display:inline-flex;justify-content:center;align-items:center;width:18px;height:18px;background:#5988a5;color:white;border-radius:50%;font:700 13px Arial;margin-right:8px}#cp-exam[data-listening-v1] .cp-versioned-media[data-complete="true"] .cp-ui-track,#cp-exam[data-listening-v1] .cp-versioned-media[data-complete="true"] .cp-media-play{visibility:hidden}
.lv1-choice-toggle>.lv1-choice-value{color:#344e62;font-size:14px;margin:0}

.lv1-result footer a{display:inline-block;background:#377fb6;border:1px solid #2e6b9e;padding:3px 12px;color:white;font-size:12px;text-decoration:none}

@font-face{font-family:CPListening;src:url('../../vendor/roboto-fontface/fonts/roboto-condensed/Roboto-Condensed-Regular.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:CPListening;src:url('../../vendor/roboto-fontface/fonts/roboto-condensed/Roboto-Condensed-Bold.woff2') format('woff2');font-weight:600 900;font-display:swap}#cp-exam[data-listening-v1],.lv1-result,.lv1-choice-popup{font-family:CPListening,Arial,Helvetica,sans-serif}#cp-exam[data-listening-v1] button,.lv1-choice-toggle{font-family:inherit}.lv1-result{box-sizing:border-box}

#cp-exam[data-listening-v1] .cp-media-stage[data-media-type=video] .cp-playback-card{display:none}#cp-exam[data-listening-v1] .cp-media-stage[data-media-type=video] .cp-versioned-media{max-width:none}#cp-exam[data-listening-v1] .cp-media-stage[data-media-type=video] video{width:min(640px,100%);max-height:400px;margin:75px auto 24px}
.cp-resume-choice{margin-top:8px}.cp-enter-secondary{background:#fff!important;color:#2f6f9f!important;border:1px solid #2f6f9f!important}.cp-restart-confirm{margin-top:14px;padding:12px 14px;border:1px solid #d9a441;background:#fff8e6}.cp-restart-confirm[hidden]{display:none}.cp-enter[disabled]{opacity:.55;cursor:default}

/* Playback status text keeps its box so status changes never move the layout. */
#cp-exam[data-listening-v1] .cp-media-note{min-height:2.8em}
/* Narrow screens: the shared exam-ui rule forces min-width:720px; Listening fits the available width instead. */
@media (max-width:1020px){
.cp-listening-session{width:auto;max-width:none;margin:8px 10px}
#cp-exam[data-listening-v1]{width:auto;min-width:0;max-width:980px;margin:8px 10px}
}
/* Phones and portrait tablets (shared exam-ui already stacks below 800px): one column — header (title, timer, NEXT), then audio, then question and options. Page scrolls; no inner scroll areas. */
@media (max-width:800px){
#cp-exam[data-listening-v1]{display:flex;flex-direction:column;height:auto;min-height:0;max-height:none;overflow:visible}
#cp-exam[data-listening-v1] .cp-header{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 12px;min-height:42px}
#cp-exam[data-listening-v1] .cp-heading{flex:1 1 100%;min-width:0}
#cp-exam[data-listening-v1] .cp-heading strong{white-space:normal;overflow:visible;font-size:15px;line-height:1.35}
#cp-exam[data-listening-v1] .cp-clock{margin-right:auto}
#cp-exam[data-listening-v1] .cp-stage{overflow:visible;flex:0 0 auto}
#cp-exam[data-listening-v1] .cp-stage-body,#cp-exam[data-listening-v1] .cp-reading{height:auto;min-height:0}
#cp-exam[data-listening-v1] .cp-reading{padding:14px 12px 20px}
#cp-exam[data-listening-v1] .cp-single{display:flex;flex-direction:column;height:auto;min-height:0}
#cp-exam[data-listening-v1] .cp-single .cp-media-pane,#cp-exam[data-listening-v1] .cp-single .cp-question-pane{min-height:0;height:auto;overflow:visible;padding:14px 12px;border-right:0}
#cp-exam[data-listening-v1] .cp-single .cp-media-pane{border-bottom:1px solid #ccc;flex:0 0 auto}
#cp-exam[data-listening-v1] .cp-playback-card{margin:10px auto;max-width:100%}
#cp-exam[data-listening-v1] audio.cp-native-media{width:100%}
#cp-exam[data-listening-v1] .cp-options{margin-left:0}
#cp-exam[data-listening-v1] .cp-question-copy,#cp-exam[data-listening-v1] .cp-option-text,#cp-exam[data-listening-v1] .cp-info{overflow-wrap:anywhere;min-width:0}
#cp-exam[data-listening-v1] .cp-info{font-size:15px}
#cp-exam[data-listening-v1] .cp-option img{width:auto;max-width:100%}
#cp-exam[data-listening-v1] .lv1-instructions{padding:3px 4px 10px}
#cp-exam[data-listening-v1] .lv1-instructions ul{font-size:16px}
#cp-exam[data-listening-v1] .lv1-scenario-copy{margin:16px 4px}
#cp-exam[data-listening-v1] .lv1-scenario-image,#cp-exam[data-listening-v1] .cp-scenario-image{max-width:100%!important;height:auto;max-height:none}
#cp-exam[data-listening-v1] .cp-media-stage[data-media-type=video] video,#cp-exam[data-listening-v1] .lv1-tutorial video{width:100%;height:auto;max-height:none;margin:12px auto}
#cp-exam[data-listening-v1] .cp-footer{flex-wrap:wrap;gap:8px;padding:8px 12px;min-height:50px}
#cp-exam[data-listening-v1] #cp-save-state{max-width:100%}
}
/* Reserve the video box before metadata arrives so loading does not push the page. */
#cp-exam[data-listening-v1] .cp-media-stage[data-media-type=video] video{aspect-ratio:16/9;height:auto;background:#000}
/* Play / Retry appears only when playback needs the user (autoplay blocked, load failure, interruption). */
#cp-exam[data-listening-v1] .cp-media-actions[hidden]{display:none}
#cp-exam[data-listening-v1] .cp-media-actions{flex-direction:column;align-items:center;gap:8px;margin:12px auto;max-width:440px}
#cp-exam[data-listening-v1] .cp-media-actions .cp-media-note{min-height:0;color:#a32225;font-size:13px;text-align:center}
/* L1 scenario page: "Instructions:" label, indented dark-grey intro text, large centred image. No card or border. */
#cp-exam[data-listening-v1] .lv1-scene{background:#fff;padding:18px 35px 30px;min-height:100%}
#cp-exam[data-listening-v1] .lv1-scene>.cp-info{margin:0 0 26px;font-size:16px;line-height:1.5}
#cp-exam[data-listening-v1] .lv1-scene-copy{margin:0 0 22px 26px;max-width:760px;padding:0;background:none;border:0;text-align:left;font-size:16px;font-weight:600;line-height:1.6;color:#4d4d4d}
#cp-exam[data-listening-v1] .lv1-scene-copy p{margin:0;padding:0;border:0}
/* Scenario image: 800px on desktop, at least 600px on tablets and 320px on phones; only narrower when the screen itself is. */
#cp-exam[data-listening-v1] .lv1-scene-image{display:block;width:min(800px,100%);max-width:none;height:auto;max-height:none;margin:0 auto;object-fit:contain}
@media (max-width:800px){
#cp-exam[data-listening-v1] .lv1-scene{padding:14px 12px 20px!important}
#cp-exam[data-listening-v1] .lv1-scene-copy{margin-left:0}
}
@media (max-width:400px){
#cp-exam[data-listening-v1]{margin-left:6px;margin-right:6px}
#cp-exam[data-listening-v1] .lv1-scene{padding:12px 6px 18px!important}
}
/* Exam toolbar above the window: Pause, Save & Exit, Exit Without Saving. */
.cp-listening-session{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px}
.cp-session-tools{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.cp-session-tools[hidden],.cp-listening-session #cp-exit[hidden]{display:none}
.cp-tool{appearance:none;border:1px solid #2e6b9e;background:#fff;color:#245f8c;font:13px Arial,Helvetica,sans-serif;padding:5px 12px;line-height:18px;cursor:pointer;border-radius:2px}
.cp-tool:hover{background:#eef5fa}.cp-tool:disabled{opacity:.6;cursor:wait}
.cp-tool-danger{border-color:#a32225;color:#a32225}.cp-tool-danger:hover{background:#fbeeee}
.cp-abandon-dialog{position:fixed;inset:0;z-index:10050;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;padding:16px}
.cp-abandon-dialog[hidden]{display:none}
.cp-abandon-dialog>div{background:#fff;border:1px solid #bbb;max-width:440px;width:100%;padding:22px;font:15px Arial,Helvetica,sans-serif;color:#222;box-sizing:border-box}
.cp-abandon-dialog p{margin:0 0 18px;font-weight:bold;line-height:1.5}.cp-abandon-dialog p span{font-weight:normal;color:#555;font-size:13px}
/* Paused: the overlay hides the question content completely. */
#cp-exam[data-listening-v1]{position:relative}
#cp-exam[data-listening-v1] #cp-paused{position:absolute;inset:0;z-index:30;background:#f4f5f7;padding:16px}
#cp-exam[data-listening-v1] #cp-paused>div{box-shadow:none;border:1px solid #ccd2d8;max-width:100%}
#cp-exam[data-listening-v1] #cp-paused h2{font-size:20px}
/* Transcript: closed by default, opens in place under its button. */
#cp-exam[data-listening-v1] .lv1-transcript{max-width:760px;margin:16px auto 0;text-align:left}
#cp-exam[data-listening-v1] .cp-media-pane .lv1-transcript{max-width:100%;margin:16px 0 0}
#cp-exam[data-listening-v1] .lv1-transcript-toggle{appearance:none;border:1px solid #9fa9b4;background:#fff;color:#245f8c;font:13px Arial,Helvetica,sans-serif;padding:5px 12px;cursor:pointer}
#cp-exam[data-listening-v1] .lv1-transcript-panel{margin-top:10px;border:1px solid #c9ced3;background:#fff}
#cp-exam[data-listening-v1] .lv1-transcript-panel[hidden]{display:none}
#cp-exam[data-listening-v1] .lv1-transcript-head{background:#e9ebee;border-bottom:1px solid #c9ced3;padding:8px 12px;font-weight:bold;font-size:14px;color:#333}
#cp-exam[data-listening-v1] .lv1-transcript-table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.55;color:#333;table-layout:fixed}
#cp-exam[data-listening-v1] .lv1-transcript-table th,#cp-exam[data-listening-v1] .lv1-transcript-table td{border-bottom:1px solid #dde1e5;padding:7px 12px;vertical-align:top;text-align:left;overflow-wrap:anywhere}
#cp-exam[data-listening-v1] .lv1-transcript-table tr:last-child th,#cp-exam[data-listening-v1] .lv1-transcript-table tr:last-child td{border-bottom:0}
#cp-exam[data-listening-v1] .lv1-transcript-table th{width:7.5em;font-weight:bold;white-space:nowrap;border-right:1px solid #dde1e5}
#cp-exam[data-listening-v1] .lv1-transcript-text{padding:8px 12px;font-size:14px;line-height:1.6;color:#333}
#cp-exam[data-listening-v1] .lv1-transcript-text p{margin:0 0 10px}
@media (max-width:480px){#cp-exam[data-listening-v1] .lv1-transcript-table th{width:5.6em;padding:7px 8px}#cp-exam[data-listening-v1] .lv1-transcript-table td{padding:7px 8px}}
/* Instructional video page: no fixed exam height and no inner scroll; the video is sized by fitTutorial() to the window height. */
#cp-exam[data-listening-v1][data-page=tutorial]{height:auto;min-height:0;max-height:none;grid-template-rows:minmax(42px,auto) auto minmax(50px,auto)}
#cp-exam[data-listening-v1][data-page=tutorial] .cp-stage{overflow:visible}
#cp-exam[data-listening-v1][data-page=tutorial] .cp-stage-body,#cp-exam[data-listening-v1][data-page=tutorial] .lv1-tutorial{height:auto;min-height:0}
#cp-exam[data-listening-v1][data-page=tutorial] .lv1-tutorial{padding:10px 12px!important}
#cp-exam[data-listening-v1][data-page=tutorial] .lv1-tutorial video{display:block;width:min(100%,calc(var(--cp-video-h,400px) * var(--cp-video-ratio,1.7778)));height:auto;aspect-ratio:var(--cp-video-ratio,1.7778);max-height:none;margin:0 auto;object-fit:contain}
#cp-exam[data-listening-v1][data-page=tutorial] .cp-skip{margin:10px auto 0}
#cp-exam[data-listening-v1][data-page=tutorial] .cp-media-actions:not([hidden]){margin:8px auto 0}
/* Transcript: questions for this material, after a separator. Prompts only (no options, answers or explanations). */
#cp-exam[data-listening-v1] .lv1-transcript-questions{border-top:1px solid #c9ced3;padding:10px 12px 4px;font-size:14px;line-height:1.55;color:#333}
#cp-exam[data-listening-v1] .lv1-transcript-hint{font-weight:bold;margin:0 0 8px}
#cp-exam[data-listening-v1] .lv1-transcript-questions ol{margin:0 0 6px;padding:0;list-style:none}
#cp-exam[data-listening-v1] .lv1-transcript-questions li{display:flex;gap:.5em;margin:0 0 6px;list-style:none;overflow-wrap:anywhere}
.lv1-tq-num{flex:0 0 auto;min-width:1.6em;text-align:right;font-weight:bold}
.lv1-transcript-questions li>span:last-child{min-width:0}

/* Bilingual transcript (Chinese pages): English sentence on top, its translation below, smaller and muted. */
.lv1-bilingual .lv1-tr-en{display:block}
.lv1-bilingual .lv1-tr-zh{display:block;margin:2px 0 8px;font-size:.9em;line-height:1.5;color:#5f6b76}
.lv1-bilingual .lv1-tr-zh:last-child{margin-bottom:0}
.lv1-bilingual .lv1-tr-en,.lv1-bilingual .lv1-tr-zh{overflow-wrap:anywhere}

/* Bilingual questions and A-D options in the transcript area (Chinese pages only; never in the answer area). */
.lv1-tq-bilingual .lv1-tq-body{min-width:0;flex:1 1 auto}
.lv1-tq-bilingual .lv1-tq-options{list-style:none;margin:6px 0 2px;padding:0}
.lv1-tq-bilingual .lv1-tq-options li{display:flex;gap:.45em;margin:0 0 6px;overflow-wrap:anywhere}
.lv1-tq-bilingual .lv1-tq-options li>div{min-width:0;flex:1 1 auto}
.lv1-tq-label{flex:0 0 auto;min-width:1.4em;font-weight:bold;color:#444}
.lv1-tq-bilingual>ol>li{margin-bottom:12px}
.lv1-result .lv1-transcript-questions{border-top:1px solid #c9ced3;padding:10px 12px 4px;font-size:14px;line-height:1.55;color:#333;text-align:left}
.lv1-result .lv1-transcript-questions .lv1-transcript-hint{font-weight:bold;margin:0 0 8px}
.lv1-result .lv1-transcript-questions>ol{margin:0 0 6px;padding:0;list-style:none}
.lv1-result .lv1-transcript-questions>ol>li{display:flex;gap:.5em;list-style:none;overflow-wrap:anywhere}

/* Result page: explanations (Chinese pages) and the section transcripts after the exam. */
.lv1-result tr.lv1-explanation td{background:#f7f8fa;color:#3d4852;font-size:.92em;line-height:1.55;text-align:left;overflow-wrap:anywhere}
.lv1-result-transcripts{margin-top:22px}
.lv1-result-transcripts h2{font-size:1.15em;margin:0 0 10px}
.lv1-result-transcript{margin:0 0 16px}
.lv1-result-transcript .lv1-transcript-panel{display:block}
/* Parts 4-6 full questions: question line with its own Play button, drop-down answer below */
#cp-exam[data-listening-v1] .lv1-full-question{margin:22px 0}
#cp-exam[data-listening-v1] .lv1-q-line{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:0}
#cp-exam[data-listening-v1] .lv1-q-text{flex:1 1 320px;min-width:0}
#cp-exam[data-listening-v1] .lv1-q-answer{margin:8px 0 0 1.4em}
#cp-exam[data-listening-v1] .lv1-full-question .lv1-choice{margin:0}
#cp-exam[data-listening-v1] .lv1-full-question .lv1-choice-toggle{min-width:240px;max-width:min(560px,100%);text-align:left;white-space:normal}
/* Practice scope on the start page (practice mode only) */
.cp-practice-scope{margin:14px 0;padding:10px 14px;border:1px solid #c9ced3;border-radius:3px;text-align:left;max-width:560px;background:#fff}
.cp-practice-scope legend{padding:0 6px;font-weight:bold}
.cp-practice-scope label{display:flex;align-items:baseline;gap:8px;padding:4px 0;cursor:pointer;line-height:1.4}
.cp-practice-scope small{color:#5f6b75;white-space:nowrap}
.cp-resume-scope{font-weight:bold}
/* Result page: region 1 answers & explanations, then one transcript region per part */
.lv1-result-region{margin:0 0 24px;border:1px solid #c9ced3;border-radius:4px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.lv1-result .lv1-result-region>h2{font-size:1.15em;margin:0;padding:11px 20px;background:linear-gradient(#edeef1,#d9dce1);border-bottom:1px solid #c9ced3;border-radius:4px 4px 0 0;color:#344e62}
.lv1-result-region>h2 small{font-weight:normal;color:#5f6b75;font-size:.8em}
.lv1-result-transcript h3.lv1-transcript-head{margin:0;background:#e9ebee;border-bottom:1px solid #c9ced3;padding:8px 12px;font-weight:bold;font-size:14px;color:#333}
/* Result page windows: page title and back link outside the windows, window bodies grow with their content (page scrolls) */
.lv1-result>header{background:none;padding:4px 2px 14px;font-size:16px;color:#344e62}
.lv1-result>footer{background:none;padding:0 0 24px}
.lv1-result .lv1-window-body{padding:16px 20px}
.lv1-result .lv1-window-body>.lv1-result-transcript:last-child{margin-bottom:0}
.lv1-result .lv1-summary{margin-bottom:16px}
/* Words are only broken when a single word is wider than its column (exam-ui.css allows breaking anywhere in result cells) */
.lv1-result.lv1-result :is(td,th,li,.lv1-tr-en,.lv1-tr-zh){overflow-wrap:break-word}
/* Phones: answers as one card per question (same rows, same order); the transcript windows keep their layout */
@media (max-width:600px){
.lv1-result{width:calc(100vw - 20px);margin:12px auto}
.lv1-result .lv1-window-body{padding:12px}
.lv1-result .lv1-result-region>h2{padding:10px 12px}
.lv1-result-answers table,.lv1-result-answers tbody,.lv1-result-answers tr,.lv1-result-answers td,.lv1-result-answers tbody th{display:block;width:auto}
.lv1-result-answers thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lv1-result-answers tbody tr{background:#fff}
.lv1-result .lv1-result-answers tr.lv1-part-heading th{width:auto;padding:10px 12px;margin-top:14px;border:0} /* exam-ui.css gives first/last header cells 36%/14% */
.lv1-result-answers tr:not(.lv1-part-heading):not(.lv1-explanation){margin-top:10px;border:1px solid #dde1e5;border-bottom-width:0;padding:6px 12px}
.lv1-result-answers tr:not(.lv1-part-heading):not(.lv1-explanation)>td{border:0;padding:4px 0}
.lv1-result-answers tr:not(.lv1-part-heading):not(.lv1-explanation)>td:first-child{font-weight:bold}
.lv1-result-answers td[data-label]::before{content:attr(data-label);display:block;font-size:12px;color:#6b7680}
.lv1-result-answers tr.lv1-explanation{border:1px solid #dde1e5;border-top:1px dashed #dde1e5}
.lv1-result-answers tr.lv1-explanation td{padding:8px 12px;border:0}
.lv1-result-answers tr:not(.lv1-part-heading):not(.lv1-explanation):not(:has(+tr.lv1-explanation)){border-bottom-width:1px}
}
/* Result page transcripts: each question's A-D options as one "A. text" row (no list bullet), with or without a Chinese translation.
   Long options wrap under the option text, not under the letter; the Chinese line, when sent, sits under its English line. */
.lv1-result .lv1-transcript-questions .lv1-tq-body{flex:1 1 auto;min-width:0}
.lv1-result .lv1-transcript-questions .lv1-tq-options{list-style:none;margin:6px 0 2px;padding:0}
.lv1-result .lv1-transcript-questions .lv1-tq-options>li{display:flex;align-items:baseline;gap:.45em;margin:0 0 6px;padding:0;list-style:none}
.lv1-result .lv1-transcript-questions .lv1-tq-options>li>div{flex:1 1 auto;min-width:0}
/* Result page score panel (above the seven windows): number correct, accuracy and - complete 38-question mock only - CELPIP LEVEL */
.lv1-result .lv1-score{margin:0 0 24px}
.lv1-result .lv1-score__tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0}
.lv1-result .lv1-score--level .lv1-score__tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
.lv1-result .lv1-score__tile{margin:0;padding:14px 18px;background:#fff;border:1px solid #c9ced3;border-radius:6px;min-width:0}
.lv1-result .lv1-score__tile dt{margin:0 0 4px;font-size:13px;font-weight:600;color:#4b5563;letter-spacing:.02em}
.lv1-result .lv1-score__tile dd{margin:0;font-size:28px;font-weight:700;line-height:1.15;color:#1f2937;font-variant-numeric:tabular-nums}
.lv1-result .lv1-score__tile--level{background:#e8f8f8;border-color:#9fd9db;border-top:4px solid #00b6b7}
.lv1-result .lv1-score__tile--level dt{color:#006e72}
.lv1-result .lv1-score__tile--level dd{font-size:40px;color:#006e72}
.lv1-result .lv1-score__note{margin:10px 2px 0;font-size:13px;line-height:1.5;color:#4b5563}
@media (max-width:600px){
.lv1-result .lv1-score__tiles,.lv1-result .lv1-score--level .lv1-score__tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lv1-result .lv1-score__tile{padding:12px 14px}
.lv1-result .lv1-score__tile dd{font-size:24px}
.lv1-result .lv1-score__tile--level{grid-column:1/-1;order:-1}
.lv1-result .lv1-score__tile--level dd{font-size:36px}
}
/* Result page, picture options: square picture with its English description (option_texts) below */
.lv1-result .lv1-answer-picture{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px;max-width:180px}
.lv1-result .lv1-answer-picture .cp-answer-image{width:96px;height:96px;margin:0;object-fit:contain;border:1px solid #d5dbe0;background:#fff}
.lv1-result .lv1-answer-caption{font-size:.92em;line-height:1.4;color:#303c43}

/* Picture options (any single question whose options carry images): 2x2 grid in A B / C D order. Each picture keeps its own
   ratio and is capped by the panel height so all four fit without scrolling on common desktop screens; the whole cell is the label.
   The question row grows with its content, so the pale answer background always reaches below the pictures. */
#cp-exam[data-listening-v1] .cp-single:has(.cp-image-options){height:auto;min-height:100%}
#cp-exam[data-listening-v1] .cp-image-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 0}
#cp-exam[data-listening-v1] .cp-image-options .cp-option{grid-template-columns:18px minmax(0,1fr);align-items:start;align-content:start;gap:6px;min-height:0;padding:6px;border:1px solid #cfdde2;border-radius:3px;background:#fff;cursor:pointer}
@media (hover:hover){#cp-exam[data-listening-v1] .cp-image-options .cp-option:hover{background:#def5f8}}
#cp-exam[data-listening-v1] .cp-image-options .cp-option:has(input:checked){background:#c5e8eb;border-color:#5c9fb4}
#cp-exam[data-listening-v1] .cp-image-options .cp-option img{display:block;grid-column:2;width:auto;height:auto;max-width:100%;max-height:clamp(90px,calc((min(720px,100vh - 65px) - 300px) / 2),200px);object-fit:contain;margin:0}
#cp-exam[data-listening-v1] .cp-image-options .cp-option-text{grid-column:2}
@media (max-width:800px){
#cp-exam[data-listening-v1] .cp-single:has(.cp-image-options){min-height:0}
#cp-exam[data-listening-v1] .cp-image-options .cp-option img{max-height:200px}
}
@media (max-width:560px){
#cp-exam[data-listening-v1] .cp-image-options{grid-template-columns:minmax(0,1fr)}
}
