/* FRQ evidence stays distinct from automatic correctness claims. */
.code-feedback { margin-top:24px; padding:24px; border:1px solid #b7d7d1; border-radius:16px; background:#f2faf8; scroll-margin-top:20px; }
.code-feedback h3 { margin:0 0 14px; }
.code-feedback h3:not(:first-child) { margin-top:24px; }
.score-point { padding:20px; margin:16px 0; border:1px solid #d3dfdc; border-radius:12px; background:#fff; }
.score-point h4 { margin:0 0 10px; font-size:18px; }
.score-point label { display:block; margin-top:14px; }
.score-point select,.score-point input { display:block; width:100%; box-sizing:border-box; margin-top:6px; min-height:44px; }
.score-point pre { white-space:pre-wrap; font-family:inherit; }
.score-total { font-weight:700; }
.code-feedback.has-errors { background:#fff7f5;border-color:#e4aaa0; }
.code-feedback.needs-review { background:#fffaf0;border-color:#ddc68e; }
.checked-code { overflow-x:auto;background:#fff;border:1px solid #e1d4d1;border-radius:10px;margin:16px 0; }
.checked-line { display:flex;gap:14px;min-width:max-content;padding:5px 12px;font:16px/1.6 Consolas,monospace; }
.checked-line code { white-space:pre;font:inherit; }
.line-number { color:#667784;min-width:2ch;text-align:right;user-select:none; }
.error-line { background:#ffe2dc;border-left:4px solid #b52e22;padding-left:8px; }
.line-flag { color:#9a241b;font:600 16px/1.7 system-ui; }
.scoring-details { margin-top:20px;border-top:1px solid #d9dfe0;padding-top:14px; }
.scoring-details summary { cursor:pointer;font-weight:600; }
.option.choice-correct { background:#e5f6ed;border:2px solid #218553; }
.option.choice-wrong { background:#fff0ed;border:2px solid #c24b3b; }
.choice-verdict { margin-left:auto;white-space:nowrap;font-size:16px; }
.choice-correct .choice-verdict { color:#13653b; }
.choice-wrong .choice-verdict { color:#9e2e22; }
.answer details { margin:12px 0; }
@media(max-width:600px){.option{flex-wrap:wrap}.choice-verdict{width:100%;margin-left:0}.code-feedback{padding:16px}.score-point{padding:14px}}
.test-result { padding:12px 16px;margin:10px 0;border-radius:8px;border-left:4px solid; }
.test-result p { margin:4px 0 0; }
.test-pass { background:#e5f6ed;border-color:#218553; }
.test-fail { background:#fff0ed;border-color:#c24b3b; }
.test-pending { background:#fff8e7;border-color:#b68b21; }
.code-feedback.verified-code { background:#f0faf4;border-color:#7db995; }
.score-evidence { display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 14px;margin:6px 0;border-radius:8px; }
.score-evidence button { padding:4px 10px;min-height:42px;margin-left:auto; }


/* CSA Studio: shared product system. Page files own layout mechanics only. */
:root{--ink:#18181b;--muted:#62626b;--line:#e4e4e7;--green:#116b62;--success:#197347;--surface:#fff;--canvas:#fafafa;--radius:6px;color:var(--ink);font:16px/1.6 system-ui,"Segoe UI","Microsoft YaHei",sans-serif;background:var(--canvas)}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:inherit}[hidden]{display:none!important}
header{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:10px max(24px,calc((100vw - 1400px)/2));gap:24px;background:white;border-bottom:1px solid var(--line);box-shadow:none}
.brand,.logo{font-size:20px;line-height:1.3;font-weight:650;letter-spacing:-.4px;color:var(--ink);text-decoration:none;white-space:nowrap}.brand span,.logo small{display:block;font-size:14px;font-weight:400;letter-spacing:0;color:var(--muted);margin:3px 0 0}.logo b{color:var(--green)}
header nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}header nav a,header nav .nav-link{font-size:15px;font-weight:500;line-height:1.5;min-height:42px;padding:8px 12px;color:var(--muted);border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;box-shadow:none;text-decoration:none}header nav a:hover{background:#f4f5f6;color:var(--ink)}header nav a.active,header nav a[aria-current=page]{color:var(--ink);background:transparent;border-color:var(--green)}
main,.practice-page main{max-width:1400px;margin:auto;padding:28px 32px 48px}h1,.intro h1,.page-title h1{font-size:24px;line-height:1.35;font-weight:650;letter-spacing:-.4px;margin:0 0 8px;color:var(--ink)}h2{font-size:18px;line-height:1.45}h3{font-size:16px;line-height:1.5}p{font-size:16px;line-height:1.65;margin:8px 0 14px;color:var(--muted)}.hint,.muted,.badge,footer{font-size:14px;line-height:1.6;color:var(--muted)}footer{border-top:1px solid var(--line);padding:20px 32px;background:transparent}.eyebrow,.tag{font-size:14px;letter-spacing:.5px;color:var(--muted)}
.intro,.page-title{padding:0 0 20px;margin:0 0 24px;border:0;border-bottom:1px solid var(--line);background:none;border-radius:0;box-shadow:none}.intro:after{display:none}.intro .eyebrow{display:none}.intro p{margin:4px 0}.intro-stats{display:flex;gap:16px;margin:10px 0 0}.intro-stats span,.intro-stats span:last-child{font-size:14px;background:none;border:0;color:var(--muted);padding:0;min-height:0;border-radius:0}
label,legend,.choice-group legend{font-size:15px;font-weight:550;margin-bottom:8px}label{line-height:1.5}input,select,textarea,.bank-filters input,.bank-filters select{font:16px/1.5 system-ui,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);min-height:42px;padding:7px 10px;border:1px solid #c6ccd1;border-radius:var(--radius);background:white;box-shadow:none}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:none}input[type=checkbox],input[type=radio]{min-height:0;accent-color:var(--green);width:16px;height:16px;flex-shrink:0}
button,.button,.cta{font:500 15px/1.5 system-ui,"Segoe UI","Microsoft YaHei",sans-serif;min-height:42px;padding:7px 12px;border:1px solid #c6ccd1;border-radius:var(--radius);background:white;color:var(--ink);box-shadow:none;transition:none;text-decoration:none}button:hover,.secondary:hover,.cta:hover{background:#f0f2f3;border-color:#a3acb3;box-shadow:none;filter:none;transform:none}.primary,button.primary,.cta.primary,#selection-panel .bank-use{background:var(--green);border-color:var(--green);color:white;box-shadow:none}.primary:hover,button.primary:hover,.cta.primary:hover{background:#0b514a;border-color:#0b514a;box-shadow:none}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}:focus-visible{outline:2px solid var(--green);outline-offset:3px}summary{cursor:pointer}.skip-link{position:absolute;top:-80px;left:16px;padding:10px;background:white;z-index:100}.skip-link:focus{top:8px}
.workspace{grid-template-columns:320px minmax(0,1fr);gap:32px}.bank-layout{grid-template-columns:220px minmax(0,1fr);gap:32px}.workspace>aside,.bank-layout .bank-filters{position:sticky;top:min(16px,calc(100dvh - var(--sidebar-height,100dvh) - 16px));align-self:start;max-height:none;overflow:visible;padding:0 24px 0 0;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;scrollbar-gutter:auto}.section-title{margin:0 0 16px;padding:0;border:0}.section-title h2{font-size:16px;margin:0}.section-title .step{display:none}fieldset{min-width:0}.teacher-page fieldset{margin:16px 0;padding:0;border:0}.teacher-page label{margin-bottom:14px}.teacher-page .check{margin:8px 0}.teacher-page .scope-actions{display:flex;gap:12px;margin:8px 0}.teacher-page .scope-action{font-size:14px;min-height:36px;padding:3px 0;border:0;background:transparent;color:var(--green)}.choice-options{grid-template-columns:1fr 1fr;gap:6px;max-height:none;overflow:visible}.choice-option{font-size:15px;min-height:42px;padding:7px 8px;margin:0!important;border-radius:4px}.choice-option:hover{transform:none}.choice-option:has(input:checked){background:#edf5f3;color:#0b514a;border-color:#8eafa9;box-shadow:none}.choice-group legend small,.knowledge-group legend small{font-size:14px;color:var(--muted);font-weight:400}
.knowledge-unit{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;padding:10px 0;margin:0}.knowledge-unit summary{font-size:15px;font-weight:500}.teacher-page .knowledge-option{display:flex;align-items:start;gap:8px;font-size:15px;line-height:1.5;padding:7px 0;margin:0}.knowledge-option input{margin-top:2px}.selected-knowledge{margin:12px 0 18px;padding:0;background:none}.selected-knowledge summary{font-size:14px;color:var(--green)}#topic-selected{display:flex;flex-wrap:wrap;gap:6px;padding:10px 0;border:0;background:none;max-height:180px;overflow:auto}.selected-chip{font-size:14px;border:1px solid var(--line);border-radius:4px;background:white;color:var(--ink);white-space:normal}.selected-chip button{min-height:24px;padding:0 5px}.availability-card{border:0;border-top:1px solid var(--line);background:none;padding:12px 0;margin:12px 0}.availability-card h3{font-size:15px;margin:0}.availability-card p{font-size:14px;margin:4px 0}.time input{min-width:0}.time span{font-size:15px;white-space:nowrap}.history,.teacher-tools{margin:16px 0 0;padding:14px 0;border:0;border-top:1px solid var(--line);border-radius:0;background:none}.history summary,.teacher-tools summary{font-size:15px}.teacher-tools form{margin-top:14px}
#empty{display:flex;flex-direction:column;align-items:start;justify-content:center;min-height:240px;padding:32px;border:1px solid var(--line);border-radius:6px;background:white;box-shadow:none;text-align:left}#empty h2{font-size:20px;margin:0 0 6px}#empty p{margin:0}.paper-icon{display:none}#preview{padding:0;border:0;border-radius:0;background:none;box-shadow:none}.paper-header{padding:0 0 20px;border-bottom:1px solid var(--line)}.paper-header h2{font-size:20px}.exports{gap:8px;align-items:end}.exports .more-operations{position:relative;align-self:center}.more-operations summary{font-size:15px;padding:8px}.more-operations[open]{padding:8px;border:1px solid var(--line);background:white}.more-operations button{display:block;margin:6px 0}.export-language{font-size:14px}.question{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:24px 0;background:none;box-shadow:none}.qtop h3{font-size:18px}.qtop .buttons{gap:6px}.qtop .buttons button{font-size:14px}.question pre,pre,.bank-card pre{font:16px/1.7 Consolas,"Cascadia Code",monospace;background:#f5f6f7;color:var(--ink);border:1px solid var(--line);border-radius:4px}.question .task,.bank-task{font-size:16px;line-height:1.75}.question-image,.question-page{display:block;max-width:100%;height:auto;cursor:zoom-in}.answer{background:#f1f6f4;border-color:#cbded7;border-radius:4px}.answer p,.answer li{color:var(--ink);font-size:16px}.answer summary{font-size:16px;color:var(--green)}
.bank-toolbar{padding:0 0 14px;margin-bottom:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;gap:12px;flex-wrap:wrap}.bank-toolbar strong{font-size:15px}.bank-pagination{margin-left:auto}.bank-card{position:relative;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;background:white;padding:0;margin:0;min-width:0}.bank-card:hover{box-shadow:none;transform:none}.bank-entry>summary{padding:18px 160px 18px 16px;list-style:none}.bank-entry>summary:before{content:'›';position:absolute;left:0;top:18px;color:var(--muted)}.bank-entry[open]>summary:before{content:'⌄'}.bank-entry>summary:hover{background:#f7f8f9}.bank-card-head{display:block}.bank-card h2{font-size:16px;line-height:1.5;margin:0 0 5px}.bank-card .badge{display:block;font-size:14px;background:none;padding:0}.bank-card .bank-pick{position:absolute;top:20px;right:0;font-size:14px;min-height:40px;background:white;border-color:#c6ccd1;color:var(--ink);margin:0}.bank-pick[aria-pressed=true]{background:#edf5f3;color:var(--green);border-color:#8eafa9}.bank-entry-body{padding:0 16px 24px}.bank-entry-body h3{font-size:16px}.bank-entry-body .source-text{white-space:pre-wrap}.source-disclosure{font-size:14px;margin:12px 0}.source-disclosure summary{color:var(--muted)}#selection-panel{padding:16px;margin:16px 0;background:#edf5f3;border:1px solid #cbded7;border-radius:4px}#selection-panel h2{font-size:16px}#selection-panel li{font-size:15px}.empty-bank{border:0;background:white;padding:40px 20px;font-size:16px}
.home-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px}.course-list>a{display:flex;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}.course-list>a:hover{background:#f0f3f3}.course-list strong,.course-list small{display:block}.course-list strong{font-size:16px;font-weight:550}.course-list small{font-size:15px;color:var(--muted);margin-top:4px}.unit-index{font-size:14px;color:var(--muted);min-width:48px}.home-tools{border-left:1px solid var(--line);padding-left:28px}.home-tools section+section{border-top:1px solid var(--line);margin-top:28px;padding-top:12px}.home-tools h2{font-size:16px}.home-tools a{display:block;margin:12px 0;color:var(--green);font-size:16px}.home-tools .cta{display:inline-flex;color:white}.landing-note{font-size:14px;color:var(--muted);margin-top:28px}
.practice-page{background:var(--canvas);color:var(--ink);font:16px/1.6 system-ui,"Microsoft YaHei",sans-serif}.practice-page .practice-box{margin-top:16px;border:1px solid var(--line);border-radius:6px;background:white}.practice-page .study-tabs,.study-tabs{display:flex;gap:20px;padding:0;border-bottom:1px solid var(--line);margin:16px 0}.study-tabs button,.practice-page .study-tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--muted);font-size:16px;padding:10px 0;box-shadow:none}.study-tabs button[aria-pressed=true]{background:none;color:var(--ink);border-bottom-color:var(--green)}#mistake-count{font-size:14px;background:#e9eded;padding:1px 5px;border-radius:4px}.practice-page button{font-size:15px;min-height:42px;padding:7px 12px;border-radius:6px}.session-toolbar{padding:12px 20px;border-radius:6px 6px 0 0;gap:12px}.session-toolbar strong{font-size:16px}.session-mode,#clock-label{font-size:14px}#clock-display{font-size:20px}.question-toolbar{padding:12px 20px;gap:12px}#question-position{font-size:16px}.practice-page .filters{padding:16px 20px;gap:16px}.practice-page .filters label,.practice-page .filters select{font-size:15px}.question-prompt,.response-pane{padding:24px;position:static}.question-prompt h2{font-size:20px;margin:0 0 20px}.question-prompt .task{font-size:16px;line-height:1.8}.question-prompt pre{font-size:16px}.response-pane h3{font-size:16px}.option{font-size:16px;border-radius:4px;padding:12px;box-shadow:none}.option:hover{background:#f7f9f8}.session-bottom{padding:12px 20px}.stats{display:flex;gap:24px;flex-wrap:wrap;margin:16px 0}.stat,.stats .stat{border:0;border-right:1px solid var(--line);border-radius:0;background:none;padding:0 24px 0 0;box-shadow:none}.stat strong,.practice-page .stat strong{font-size:24px}.unit{border-radius:4px;box-shadow:none;padding:10px;font-size:15px}.unit:hover{transform:none}.notebook-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;background:none;border:0;border-radius:0;padding:0;color:var(--ink)}.notebook-heading h1{font-size:24px}.notebook-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:16px 0;border-block:1px solid var(--line);margin:20px 0}.mistake-card{padding:20px 0;border:0;border-bottom:1px solid var(--line);background:none}.mistake-card h3{font-size:17px}.mistake-card-head{display:flex;justify-content:space-between}.state-pill{font-size:14px}.review-notes textarea{width:100%}.notebook-empty{padding:36px 0;text-align:center}
.community-dialog{border-radius:8px!important;box-shadow:0 12px 40px #0002!important;padding:24px!important}.community-dialog h2{font-size:20px}.community-account{font-size:14px!important;min-height:40px!important;padding:5px 10px!important;background:white!important;color:var(--ink)!important;border:1px solid #c6ccd1!important;border-radius:6px!important;box-shadow:none!important}.community-feedback{font-size:14px!important;box-shadow:none!important;border-radius:6px!important}.library-toolbar{flex-wrap:wrap}.admin-card{border-radius:6px;box-shadow:none}.code-feedback,.score-point{border-radius:4px;padding:16px}.score-point h4{font-size:16px}
@media(max-width:1000px){header{gap:12px;padding-inline:20px}.brand span{display:none}.workspace{grid-template-columns:280px minmax(0,1fr);gap:24px}.bank-layout{grid-template-columns:200px minmax(0,1fr);gap:24px}.bank-toolbar .hint{display:none}}
@media(max-width:850px){main,.practice-page main{padding:20px 16px 36px}.workspace,.bank-layout,.home-grid{grid-template-columns:1fr;gap:24px}.workspace>aside,.bank-layout .bank-filters{position:static;border:0;border-bottom:1px solid var(--line);padding:0 0 20px;max-height:none;overflow:visible}.home-tools{border-left:0;border-top:1px solid var(--line);padding:16px 0}.intro-stats{flex-wrap:wrap;gap:4px 12px}.bank-entry>summary{padding-right:16px;padding-bottom:56px}.bank-card .bank-pick{top:auto;bottom:14px;right:16px}.bank-entry[open]+.bank-pick{position:static;margin:0 16px 16px}.notebook-filters{grid-template-columns:1fr;gap:10px}.notebook-heading{align-items:start;flex-direction:column}.session-toolbar{flex-wrap:wrap;padding:12px}.question-prompt,.response-pane{padding:18px}.session-tools,.clock-controls{gap:6px}.qtop{flex-wrap:wrap}.qtop .buttons{justify-content:start}.teacher-page .choice-options{grid-template-columns:repeat(4,minmax(0,1fr))}input,select,textarea,.bank-filters input,.bank-filters select,.practice-page .filters select{font-size:16px}button,.practice-page button{min-height:40px}.home-grid{gap:20px}}
/* Explicit ownership over legacy page-specific skin rules. */
header nav .nav-link.active{color:var(--ink);background:transparent;border-color:var(--green)}
.teacher-page .intro,.bank-page .intro{padding:0 0 16px;margin:0 0 20px}.teacher-page .intro h1,.bank-page .intro h1{font-size:24px}
.teacher-page .workspace{grid-template-columns:320px minmax(0,1fr)}
.teacher-page .workspace>aside{padding:0 24px 0 0;position:sticky!important;top:min(16px,calc(100dvh - var(--sidebar-height,100dvh) - 16px))}
.teacher-page #empty{min-height:220px;padding:28px;max-height:none}
.teacher-page .section-title{margin:0 0 12px}.teacher-page .section-title:before{display:none}
.teacher-page fieldset{margin:12px 0}.teacher-page label{margin-bottom:10px}.teacher-page .check{display:inline-flex;margin-right:12px;font-size:14px}.teacher-page #mode-help{margin-bottom:8px}.teacher-page .intro-stats{margin-bottom:0}.teacher-page .knowledge-group{margin-bottom:8px}
.bank-page .bank-toolbar{padding:0 0 14px}.exports button{min-height:42px}.qtop .buttons .lock-control{background:white;color:var(--ink);border-color:#c6ccd1}.question .answer[open]{box-shadow:none}
.home-tools{position:static;background:none;box-shadow:none;border-radius:0;border-top:0;border-right:0;border-bottom:0}
.exam-page #intro,.exam-page #exam{border-radius:6px;box-shadow:none}.exam-page h1{font-size:24px}.exam-toolbar{border-radius:6px 6px 0 0}.exam-page #intro{max-width:850px;margin:0 auto}
@media(max-width:850px){.teacher-page .workspace{grid-template-columns:1fr}.teacher-page .workspace>aside{position:static!important;padding:0 0 20px!important}.teacher-page .intro,.bank-page .intro{padding:0 0 16px}.home-tools{border-top:1px solid var(--line)}}
.practice-page #learning-overview{border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;padding:0 0 10px}.practice-page #learning-overview>summary{font-size:15px;font-weight:500}.practice-page .exam-entry{background:transparent;border:0;color:var(--green);font-size:14px;box-shadow:none}.practice-page .exam-entry:hover{background:#edf5f3}.community-dialog input,.community-dialog select,.community-dialog textarea{border-radius:6px;padding:8px 10px}.community-dialog .community-heading{border-radius:0}.exam-page #intro h1{font-size:24px}
@media(max-width:850px){.teacher-page .choice-options{grid-template-columns:1fr 1fr}.choice-option span{white-space:nowrap}}
.library-grid{display:block}.library-item{padding:20px 0;background:transparent;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 24px}.library-item h2{grid-column:1;margin:0;font-size:16px}.library-item .hint{grid-column:1;margin:0}.library-item .buttons{grid-column:2;grid-row:1/3;display:flex;gap:8px;align-items:center}.library-item .bank-use{padding:7px 12px;min-height:42px;border-radius:6px;font-size:15px;text-decoration:none}.library-item .buttons .primary{color:var(--green);background:white;border:1px solid #b4c9c5}.library-toolbar input[type=search]{max-width:420px}
.community-dialog .community-heading h2{font-size:20px}.community-dialog label{font-size:15px}.community-dialog button{font-size:16px;border-radius:6px}.community-dialog p{font-size:15px}.community-heading{margin-bottom:16px}
@media(max-width:850px){.library-item{display:block}.library-item .buttons{margin-top:12px;flex-wrap:wrap}.unit-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){header:has(#site-navigation){flex-direction:row!important}.brand{width:auto;flex:0 1 auto}.mobile-menu-toggle{min-height:42px;font-size:15px;padding:6px 12px}.practice-page .session-toolbar{position:static}}
#warnings:not(:empty){padding:12px 16px;margin:12px 0 16px;background:#fff8e7;border-left:3px solid #ba912f;border-radius:0}#warnings p{margin:3px 0;padding:0;border:0;background:none;font-size:14px;color:#775914}.paper-header #stats{font-size:15px;color:var(--muted);font-weight:400}.paper-header h2{font-size:18px;line-height:1.5}.exports #student{order:0}.exports #teacher{order:1}.exports .export-language{order:2}.exports .more-operations{order:3}.exports .export-language select{font-size:14px;min-height:42px}.exports .export-language{margin:0}
.teacher-page #picked-info:empty{display:none}.teacher-page #unit-options{grid-template-columns:repeat(4,minmax(0,1fr));padding:0;margin:0}.teacher-page #unit-options .choice-option{gap:4px;padding:7px 4px;font-size:14px}.teacher-page #unit-options input{width:14px;height:14px}.teacher-page .selected-knowledge{margin-bottom:12px}.teacher-page #availability small{display:block;font-size:14px;line-height:1.5;margin:6px 0 0;color:var(--muted)}.teacher-page #availability{padding:10px 0}.teacher-page #availability summary{font-size:14px}.teacher-page #generate{margin-top:8px}
@media(max-width:850px){.teacher-page #unit-options{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-page #unit-options .choice-option{min-height:40px;font-size:16px;padding:8px;gap:8px}}
.teacher-page #unit-options .choice-option span{white-space:nowrap}.teacher-page #unit-options input{margin:0;min-width:14px}.teacher-page #unit-options .choice-option{display:flex;align-items:center}
/* Comfortable reading scale; wider screens add room, not longer reading lines. */
:root{--content-width:1320px;font-size:16px}
main,.practice-page main{max-width:var(--content-width);padding-inline:32px}
header{padding-inline:max(32px,calc((100vw - var(--content-width))/2 + 32px));min-height:72px}
header nav a,header nav .nav-link{font-size:15px;padding:10px 12px;min-height:42px}
.brand,.logo{font-size:24px}.brand span,.logo small{font-size:14px;letter-spacing:0}
.community-account{font-size:15px!important;min-height:42px!important;padding:9px 12px!important}.community-feedback{font-size:14px!important;min-height:42px}
.teacher-page .workspace{grid-template-columns:340px minmax(0,1fr)}.bank-layout{grid-template-columns:240px minmax(0,1fr)}
.teacher-page #unit-options{grid-template-columns:1fr 1fr}.teacher-page #unit-options .choice-option{font-size:15px;min-height:42px;padding:8px;gap:8px}.teacher-page #unit-options input{width:18px;height:18px}
input[type=checkbox],input[type=radio]{width:18px;height:18px}input,select,textarea,.bank-filters input,.bank-filters select{font-size:16px;min-height:42px}
button,.button,.cta,.practice-page button,.library-item .bank-use{font-size:15px;min-height:42px;padding:9px 14px}
.teacher-page label,.teacher-page legend,.knowledge-unit summary{font-size:16px}.teacher-page .knowledge-option{font-size:15px}.teacher-page .check{font-size:15px}.teacher-page .section-title h2{font-size:18px}
.hint,.muted,.badge,footer,.intro-stats span,.intro-stats span:last-child{font-size:14px}.teacher-page #availability small{font-size:14px}.teacher-page #availability summary{font-size:14px}
.course-list strong{font-size:19px}.course-list small,.unit-index,.home-tools a{font-size:16px}.home-tools h2{font-size:18px}.home-grid{grid-template-columns:minmax(0,1fr) 300px;gap:40px}
.bank-card h2,.library-item h2{font-size:18px}.bank-card .bank-pick{font-size:15px;min-height:42px}.bank-entry>summary{padding-right:180px}.bank-card .badge{font-size:14px}
.question-prompt .task,.question .task,.exam-page .task{font-size:18px;line-height:1.75}.option,.response-pane .option{font-size:18px;line-height:1.65}.question-prompt pre,.question pre,.bank-card pre{font-size:16px}.response-pane h3{font-size:18px}
.session-toolbar strong,#question-position{font-size:16px}.session-mode,#clock-label{font-size:14px}.practice-page .filters label,.practice-page .filters select{font-size:16px}.practice-page .exam-entry{font-size:15px}
.library-item{grid-template-columns:minmax(260px,1fr) auto;gap:8px 24px}.library-toolbar input[type=search]{max-width:480px}
@media(min-width:1600px){:root{--content-width:1480px}.teacher-page .workspace{grid-template-columns:360px minmax(0,1fr);gap:40px}.bank-layout{grid-template-columns:260px minmax(0,1fr);gap:40px}.home-grid{grid-template-columns:minmax(0,1fr) 340px}.question-prompt,.response-pane{padding:28px}.library-grid{max-width:1280px}}
@media(max-width:1100px){header{flex-wrap:wrap;gap:12px}.brand span{display:none}.library-item{display:block}.library-item .buttons{margin-top:12px;flex-wrap:wrap}}
@media(max-width:850px){main,.practice-page main{padding-inline:16px}.teacher-page .workspace,.bank-layout,.home-grid{grid-template-columns:1fr}.teacher-page .workspace>aside{position:static!important}.bank-entry>summary{padding-right:16px;padding-bottom:64px}.bank-card .bank-pick{bottom:12px}button,.practice-page button{min-height:44px}.session-toolbar{flex-wrap:wrap}.question-prompt .task,.response-pane .option{font-size:18px}.brand span{display:none}.home-tools{padding-left:0}.library-item .buttons{gap:8px}.community-account{min-height:44px!important}}
@media(max-width:600px){.practice-page .clock-controls{display:flex;gap:4px;width:100%;flex-wrap:nowrap}.practice-page #clock-display{min-width:58px;font-size:20px}.practice-page #clock-label{white-space:nowrap}.practice-page .clock-controls button{font-size:14px;padding:8px;white-space:nowrap}.practice-page .session-toolbar{gap:10px}.practice-page .community-feedback{position:static;display:block;margin:16px auto}}
.library-toolbar .check{display:flex;align-items:center;gap:10px;white-space:nowrap}.library-toolbar .check input{flex:0 0 18px;width:18px;min-width:18px;margin:0}.library-toolbar .check{margin-bottom:0}
/* Teacher task hierarchy: one persistent primary action, useful preparation state. */
.teacher-page .intro{position:sticky;top:0;z-index:25;background:var(--canvas);padding:14px 0 12px;margin-top:-14px}
.workspace-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.workspace-heading h1{margin:0}.teacher-page .workspace-heading #generate{width:auto;min-width:160px;margin:0;position:static}
.teacher-page .intro>p{display:none}.teacher-page .intro-stats{margin-top:6px;font-weight:400}
.teacher-page .workspace>aside{position:static!important}.teacher-page .result>.availability-card{margin:0 0 24px;padding:0 0 20px;border:0;border-bottom:1px solid var(--line);background:none}.teacher-page .result>.availability-card h3{font-size:18px}.teacher-page .result>.availability-card p{font-size:16px}.teacher-page .result>.availability-card small{max-width:70ch}
.teacher-page #empty{background:transparent;border:0;border-radius:0;min-height:0;max-height:none;padding:8px 0;display:block}.teacher-page #empty h2{font-size:18px;margin-bottom:6px}.teacher-page #empty p{max-width:60ch;color:var(--muted)}
.teacher-page #unit-options .choice-option{border:0;background:transparent;box-shadow:none;padding:8px 0;font-weight:500}.teacher-page #unit-options .choice-option:has(input:checked){background:transparent;color:var(--ink)}
.teacher-page #bank-note{font-size:14px;padding-top:12px;border-top:1px solid var(--line)}.teacher-page .section-title{margin-bottom:14px}.teacher-page #preview>.section-title{display:none}
.paper-scope{margin:8px 0;font-size:14px;color:var(--muted)}.paper-scope #paper-title{font-size:15px;font-weight:400;line-height:1.65;max-width:70ch}.coverage-notice{margin:12px 0;padding:10px 0;border-block:1px solid var(--line);font-size:14px}.coverage-notice.is-partial>summary{color:#775914;font-weight:600}#warnings:not(:empty){margin:10px 0 0;padding:8px 12px}.paper-header{display:flex;flex-direction:column}.paper-header>.eyebrow{display:none}.paper-header h2{margin:0;font-size:22px}.paper-header>.hint{font-size:14px}.exports{padding-top:8px}.exports #student{order:0}.exports #teacher{order:1}.exports #toggle-answers{order:2}.exports .more-operations{order:3}.more-operations[open]{position:relative;padding:12px;background:white}.exports .export-language{display:block;margin:10px 0}
.question .answer{background:transparent;border:0;border-top:1px solid var(--line);padding:12px 0;border-radius:0}.question .answer[open]{background:transparent}.question .answer>summary{font-weight:500}.qtop .buttons button{border-color:transparent;background:transparent;box-shadow:none}.qtop .buttons button:hover{background:#e9efed;border-color:#c6ccd1}.qtop .buttons .lock-control{background:transparent;border-color:transparent}.question .task{background:transparent}
@media(max-width:850px){.teacher-page .intro{padding:12px 0;background:var(--canvas)}.workspace-heading{gap:12px}.teacher-page .workspace-heading #generate{min-width:0;font-size:15px;padding:9px 12px}.workspace-heading h1{font-size:22px}.teacher-page .workspace{gap:20px}.teacher-page .result>.availability-card{margin-bottom:16px}.teacher-page #empty{display:block}.exports{align-items:stretch}.exports .more-operations{width:100%}.qtop .buttons{width:auto}.teacher-page .intro-stats{font-size:14px}}
.teacher-page #message.warning{background:#fff8e7;border:1px solid #e0d0a6;color:#775914}.teacher-page .result>.availability-card{border-radius:0;box-shadow:none}.teacher-page .intro-stats span{font-weight:400}
.question .english-explanation{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;padding:16px 0;margin-top:20px}.question .english-explanation>strong{color:var(--ink);font-size:16px;font-weight:600}

/* Workspace system: compact controls, generous reading surfaces. */
:root{--text-ui:14px;--text-body:16px;--text-reading:18px;--control-height:36px;--field-height:40px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px}
body>header{min-height:60px;padding-block:8px;gap:16px}.brand,.logo{font-size:20px}.brand span,.logo small{font-size:12px}
body>header nav a,body>header nav .nav-link{font-size:var(--text-ui);min-height:36px;padding:7px 10px;box-shadow:none!important}body>header nav .active{background:transparent!important;box-shadow:none!important}
main,.practice-page main{padding-top:24px}.intro,.page-title{margin-bottom:20px;padding-bottom:16px}.intro p{font-size:14px}h1{font-weight:600}
button,.button,.cta,.practice-page button,.exports button,.library-item .bank-use{min-height:var(--control-height);font-size:var(--text-ui);padding:6px 12px;line-height:1.5}
input,select,textarea,.bank-filters input,.bank-filters select{min-height:var(--field-height);font-size:15px;padding:7px 10px}
.community-account{min-height:36px!important;font-size:14px!important;padding:6px 10px!important}.community-feedback{min-height:36px!important}
.home-grid{grid-template-columns:minmax(0,1fr) 260px;gap:40px}.home-page .course-list h2{font-size:14px;color:var(--muted);font-weight:500;margin:0;padding:0 0 12px}.course-list>a{padding:20px 12px;gap:20px}.course-list strong{font-size:17px}.course-list small{font-size:14px}.unit-index{font-size:14px}.course-enter{margin-left:auto;white-space:nowrap;font-size:14px;color:var(--green)}.home-tools h2{font-size:16px}.home-tools p,.home-tools a{font-size:14px}.home-tools{padding-left:24px}.home-page .landing-note{margin-top:20px}.home-page main{padding-bottom:32px}
.library-toolbar{margin:0 0 8px;padding:0 0 16px;border-bottom:1px solid var(--line)}.library-item{padding:16px 0;gap:4px 24px}.library-item h2{font-size:16px}.library-item .hint{font-size:13px}.row-actions{position:relative}.row-actions>summary{font-size:14px;padding:7px 10px;color:var(--muted);list-style:none;border:1px solid transparent;border-radius:6px}.row-actions>summary:hover{background:#f1f1f2}.row-actions[open]{display:flex;flex-wrap:wrap;gap:4px;max-width:300px}.row-actions[open]>summary{width:100%;color:var(--ink)}.row-actions button{min-height:32px;font-size:13px}.library-item .buttons{align-items:start}
.advanced-filters{border-top:1px solid var(--line);padding-top:12px;margin:16px 0}.advanced-filters>summary{font-size:14px;color:var(--muted);margin-bottom:12px}.bank-filters label{font-size:14px}.bank-card h2{font-size:16px}.bank-card .badge{font-size:13px}.bank-entry>summary{padding-top:14px;padding-bottom:14px}.bank-card .bank-pick{top:16px;min-height:32px;font-size:13px;padding:5px 10px}.bank-toolbar{padding-bottom:12px}.bank-card{background:transparent}.bank-toolbar .hint{font-size:13px}
.practice-navigation{display:flex;align-items:start;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);margin-bottom:16px}.practice-page .study-tabs{margin:0;border:0;flex-shrink:0}.practice-page .study-tabs button{font-size:15px;padding:10px 0}.practice-page #learning-overview{margin:0;padding:10px 0;border:0;max-width:70%;font-size:14px}.practice-page #learning-overview>summary{font-size:14px;color:var(--muted);text-align:right}.practice-page #learning-overview[open]{flex:1}.practice-page .practice-box{margin-top:0;border-radius:4px}.session-toolbar{padding:10px 16px;gap:12px;border-radius:4px 4px 0 0}.session-toolbar strong{font-size:14px}.question-toolbar{padding:8px 16px}#question-position{font-size:14px;font-weight:600}.question-prompt,.response-pane{padding:20px}.question-prompt h2{font-size:18px;margin-bottom:16px}.response-pane h3{font-size:16px}.session-bottom{padding:10px 16px}.question-prompt .task,.response-pane .option{font-size:var(--text-reading)}.option{padding:10px 12px}.practice-page #clock-label{font-size:13px}.practice-page .clock-controls button{border-color:transparent;background:transparent}.practice-page .session-tools button{font-size:14px}.practice-page .filters{padding:16px;gap:16px}.practice-page .filters label{font-size:14px}
.teacher-page .intro{padding-block:10px}.teacher-page .workspace{grid-template-columns:300px minmax(0,1fr);gap:28px}.teacher-page .section-title h2{font-size:16px}.teacher-page label,.teacher-page legend,.knowledge-unit summary{font-size:14px}.teacher-page .check{font-size:14px}.teacher-page .result>.availability-card{margin:0 0 12px;padding:0 0 12px}.teacher-page .result>.availability-card h3{font-size:15px}.teacher-page .result>.availability-card p{font-size:14px;margin:4px 0}.teacher-page #availability small{font-size:13px}.teacher-page #message:not(:empty){padding:6px 0;margin:0 0 12px;border:0;background:transparent;color:var(--muted);font-size:13px}.teacher-page #message.error{color:#a32f25}.teacher-page #message.warning{color:#775914}.paper-header{padding-bottom:16px;gap:0}.paper-header h2{font-size:18px}.paper-header #stats{margin:4px 0;font-size:14px}.paper-scope{margin:4px 0}.coverage-notice{margin:8px 0;padding:8px 0}.exports{padding-top:4px;gap:6px}.question{padding:20px 0}.qtop h3{font-size:17px}.qtop .buttons button{font-size:13px;min-height:32px;padding:5px 8px}.more-operations summary{font-size:14px}
.exam-toolbar{padding:10px 16px;border-radius:4px 4px 0 0}.exam-page #exam{border-radius:4px}.exam-toolbar strong{font-size:15px}#phase{font-size:13px}.exam-page #timer{font-size:22px}.exam-page #question-tabs{padding:8px 16px;gap:6px}.exam-page #question-tabs button{font-size:13px}.exam-page .question-heading{padding:0 16px}.exam-page .question-heading h2{font-size:18px;margin:10px 0}.exam-page #prompt,.exam-page .response{padding:20px}.exam-page .exam-bottom{padding:10px 16px}.exam-page #question-tabs button[aria-current=true]{background:#eaf3f1;color:var(--green);border-color:#a8c7c0}
@media(min-width:1600px){.teacher-page .workspace{grid-template-columns:320px minmax(0,1fr)}.home-grid{grid-template-columns:minmax(0,1fr) 300px}}
@media(max-width:1100px){.teacher-page .workspace{grid-template-columns:280px minmax(0,1fr);gap:24px}.session-toolbar{flex-wrap:wrap}.session-toolbar .clock-controls{order:2}.library-item .buttons{margin-top:8px}.home-grid{gap:24px;grid-template-columns:minmax(0,1fr) 230px}}
@media(max-width:850px){.teacher-page .workspace,.home-grid{grid-template-columns:1fr}.home-tools{padding:16px 0}.course-list>a{padding:18px 0;gap:12px}.course-enter{font-size:13px}.course-list small{font-size:14px}.course-list strong{font-size:16px}.practice-navigation{flex-wrap:wrap;gap:0}.practice-page #learning-overview{width:100%;max-width:100%;padding-top:0}.practice-page #learning-overview>summary{text-align:left}.bank-card .bank-pick{top:auto;bottom:12px;min-height:40px}.bank-entry>summary{padding-bottom:60px}.library-item .buttons{display:flex}.teacher-page .workspace-heading #generate{min-height:44px}.row-actions>summary{min-height:44px}.row-actions button{min-height:44px}button,.button,.cta,.practice-page button,.exports button,.library-item .bank-use{min-height:44px}input,select,textarea,.bank-filters input,.bank-filters select{font-size:16px;min-height:44px}.community-account{min-height:44px!important}.session-toolbar .clock-controls{order:0}.question-prompt,.response-pane{padding:16px}.teacher-page #unit-options .choice-option{min-height:44px}.course-enter{white-space:nowrap;max-width:none;text-align:right}.course-enter>span{display:none}.unit-index{min-width:42px}.exam-page .exam-toolbar{padding:12px}.exam-page #question-tabs{display:grid;grid-template-columns:1fr 1fr}.exam-page .question-heading h2{font-size:17px}.home-page .intro p{max-width:26ch}}

@media(max-width:850px){.community-feedback{position:static!important;display:block;margin:16px auto!important}.teacher-page .workspace-heading #generate{min-width:0}}
@media(min-width:851px) and (max-width:1100px){.library-item{display:grid;grid-template-columns:minmax(0,1fr) auto}.library-item .buttons{margin-top:0}}

/* Learning and assessment workspaces. These components own their layout. */
:root{--surface-subtle:#f4f5f5;--border-strong:#d4d4d8;--text-secondary:#52525b;--focus:#116b62;--code-comment:#66756a;--code-keyword:#754b99;--code-string:#936023;--code-number:#285e98;--code-match:#d6ede6;--font-code:Consolas,"Cascadia Code","SFMono-Regular",monospace}
.learning-summary{display:flex;gap:16px 32px;align-items:baseline;padding:16px 0 24px;margin-bottom:20px;border-bottom:1px solid var(--line);flex-wrap:wrap}.learning-summary strong{font-size:18px;font-weight:600}.learning-summary span{font-size:14px}.learning-summary small{margin-left:auto;color:var(--muted);font-size:13px}.course-list progress{display:block;width:160px;height:4px;margin-top:8px;accent-color:var(--green)}.course-list .unit-completion{font-size:13px}.home-tools #recent-learning p{font-size:14px}.home-tools #recent-learning a{color:var(--ink);font-size:14px;text-decoration:none}.home-tools #recent-learning small{display:block;color:var(--muted)}
.practice-page #question.reading-flow{display:block;max-width:880px;margin:auto}.reading-flow .question-prompt{border-right:0;padding-bottom:8px}.reading-flow .response-pane{padding-top:8px}.reading-flow .question-prompt h2{margin-bottom:12px}.reading-flow .response-pane .option{padding:10px 12px;margin-bottom:8px}.practice-page .session-bottom{position:sticky;bottom:0;background:var(--surface);z-index:10}.practice-page #question{padding-bottom:12px}
.password-field{position:relative;display:block}.password-field input{padding-right:88px!important}.password-field .password-toggle{position:absolute;right:4px;top:4px;margin:0;min-height:32px;padding:4px 8px;background:transparent;border:0;font-size:13px;color:var(--text-secondary)}.community-dialog form[aria-busy=true]{cursor:progress}.community-dialog .community-status:empty{display:none}.community-dialog{max-height:calc(100dvh - 32px);overflow:auto}.community-dialog label{margin-bottom:16px}
.exam-page #exam{overflow:hidden}.exam-page .exam-columns{--reading-share:55%;display:grid;grid-template-columns:minmax(0,var(--reading-share)) 8px minmax(0,1fr);height:var(--work-height,60vh);min-height:300px}.exam-page #reading-pane{min-width:0;min-height:0;display:flex;flex-direction:column}.document-tools{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface-subtle);flex-wrap:wrap}.document-tools strong{font-size:13px;font-weight:500;margin-right:auto}.document-tools button{min-height:28px;font-size:12px;padding:3px 7px}.document-tools output{font-size:12px;min-width:36px;text-align:center}.exam-page #prompt{flex:1;min-height:0;max-height:none;height:auto;overflow:auto;padding:16px;border:0}.exam-page #prompt>a{display:block;width:calc(100% * var(--document-zoom,1));max-width:none}.exam-page #prompt img{width:100%;max-width:none;height:auto}.exam-page #workspace-divider{cursor:col-resize;background:var(--surface-subtle);border-inline:1px solid var(--line);touch-action:none}.exam-page #workspace-divider:hover,.exam-page #workspace-divider:focus-visible{background:var(--code-match)}.exam-page .response{min-width:0;min-height:0;max-height:none;display:flex;flex-direction:column;overflow:auto;padding:0}.editor-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;background:var(--surface-subtle);border-bottom:1px solid var(--line)}.editor-heading label{margin:0;font:600 13px var(--font-code)}.editor-heading span{font-size:12px;color:var(--muted)}.exam-page .response .java-editor{flex:1;min-height:180px;margin:0;border:0;border-radius:0}.exam-page .response textarea#code{min-height:180px;height:100%;resize:none}.exam-page .response p{font-size:12px;margin:6px 12px;line-height:1.5}.exam-page .exam-bottom{position:static}.exam-page #save-status:empty{display:none}.exam-page #save-status{padding:4px 16px;min-height:24px;background:var(--surface-subtle);font-size:12px}.exam-view-tabs{display:none}.exam-page .community-feedback{position:static!important;display:block;margin:12px auto!important}
.java-editor{position:relative!important;display:block!important;overflow:hidden;background:var(--surface);border:1px solid var(--border-strong);border-radius:6px}.java-editor .editor-lines{position:absolute;inset:0 auto 0 0;width:44px;overflow:hidden;border:0;border-right:1px solid var(--line);background:var(--surface-subtle);color:var(--muted);text-align:right;padding:12px 8px!important}.java-editor .editor-highlight{position:absolute;inset:0 0 0 44px;overflow:hidden;pointer-events:none;background:transparent;border:0;padding:12px!important;color:var(--ink)}.java-editor textarea#draft,.java-editor textarea#code{display:block;position:relative;z-index:1;margin:0 0 0 44px!important;width:calc(100% - 44px)!important;border:0!important;border-radius:0!important;background:transparent!important;color:transparent!important;caret-color:var(--ink);padding:12px!important;box-shadow:none!important;white-space:pre!important;overflow:auto;tab-size:4}.java-editor textarea,.java-editor pre{font:15px/24px var(--font-code)!important;letter-spacing:0!important;white-space:pre!important;margin:0!important;tab-size:4;overflow-wrap:normal!important}.java-editor textarea::selection{background:#b7d7ee80;color:transparent}.java-editor:focus-within{outline:2px solid var(--focus);outline-offset:2px}.syntax-comment{color:var(--code-comment)}.syntax-keyword{color:var(--code-keyword)}.syntax-string{color:var(--code-string)}.syntax-number{color:var(--code-number)}.syntax-match{background:var(--code-match);outline:1px solid var(--green)}
.candidate-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.candidate-heading h2{font-size:16px}.candidate-heading a{font-size:14px;color:var(--green)}.candidate-list details{border-bottom:1px solid var(--line);padding:12px 0}.candidate-list summary{font-size:14px;font-weight:500}.candidate-list small{display:block;margin:4px 0;color:var(--muted)}.candidate-list .candidate-body{font-size:16px;white-space:pre-wrap;line-height:1.7;padding:12px 0}.candidate-list .hint{font-size:13px}.paper-composition{display:flex;flex-wrap:wrap;gap:16px;font-size:13px;margin:8px 0;color:var(--text-secondary)}
@media(max-width:850px){.learning-summary{gap:8px 16px}.learning-summary small{width:100%;margin:0}.course-list progress{max-width:100%}.exam-view-tabs{display:flex;border-bottom:1px solid var(--line);padding:0 12px;gap:16px}.exam-view-tabs button{border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent}.exam-view-tabs button[aria-selected=true]{border-color:var(--green)}.exam-page .exam-columns{display:block;height:65dvh;min-height:380px}.exam-page #reading-pane,.exam-page #writing-pane{height:100%}.exam-page #workspace-divider{display:none}.exam-page .exam-columns[data-mobile-pane=prompt] #writing-pane,.exam-page .exam-columns[data-mobile-pane=code] #reading-pane{display:none}.exam-page #split-reset{display:none}.document-tools button{min-height:40px;font-size:13px}.exam-page #prompt{padding:12px}.java-editor textarea#code,.java-editor textarea#draft{font-size:16px!important}.java-editor pre{font-size:16px!important}.password-field .password-toggle{min-height:36px}.practice-page .session-bottom{position:static}.candidate-heading{flex-wrap:wrap}}

@media(max-width:600px){.exam-page .exam-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 12px}.exam-page .exam-toolbar>div:first-child{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;gap:8px}.exam-page .exam-toolbar>div:first-child strong{font-size:13px}.exam-page .exam-toolbar #phase{font-size:12px}.exam-page .timer-group{gap:6px}.exam-page #timer-label{font-size:12px}.exam-page #timer{font-size:20px}.exam-page #hide-timer,.exam-page #reference-open{font-size:12px;padding:6px;min-height:44px}.exam-page #question-tabs{padding:8px;gap:4px}.exam-page #question-tabs button{font-size:12px;min-height:44px;padding:4px 6px;line-height:1.4}.exam-page .question-heading{padding:6px 12px;gap:8px}.exam-page .question-heading h2{font-size:14px}.exam-page #flag{font-size:12px;padding:6px}.exam-page .exam-columns{height:var(--work-height,55dvh);min-height:300px}.exam-page main{padding-top:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{body{background:white}main{padding:0}header,aside,footer,.skip-link{display:none!important}.workspace{display:block}#preview{padding:0;border:0}}

/* Touch code entry retains native selection and existing draft events. */
.editor-touch-tools{display:none}@media(max-width:850px){.editor-touch-tools{display:flex;gap:6px;padding:6px 8px;border-top:1px solid var(--line);flex-shrink:0}.editor-touch-tools button{flex:1;min-height:44px;padding:4px 6px;font:14px var(--font-code)}.exam-page .exam-columns{min-height:220px}.exam-page .response .java-editor,.exam-page .response textarea#code{min-height:100px}}

@media(max-width:850px){.editor-touch-tools{flex-wrap:wrap}.editor-touch-tools button{flex:1 1 42px;font-size:12px;padding:4px;min-width:42px}}

/* Line numbers must share the text overlay metrics, overriding legacy community styles. */
.java-editor pre.editor-lines{font:15px/24px var(--font-code)!important;max-height:none}.java-editor textarea#code,.java-editor textarea#draft{max-height:none}@media(max-width:850px){.java-editor pre.editor-lines{font-size:16px!important}}
