/* Same button tracking default as the source design base layer. */
:where(body.compact-journey-app button){letter-spacing:.015em}
/* Screen geometry is derived from TeacherFlow and its screen class lists. */
html:has(>body.compact-journey-app){height:auto;min-height:100%;overflow-x:clip;overflow-y:auto}
body.compact-journey-app{margin:0;min-width:0;min-height:100dvh;height:auto;display:block;overflow:visible;background:var(--page);font:400 16px/1.5 Poppins,Arial,sans-serif;color:var(--ink)}
body.compact-journey-app>.topbar{all:unset;box-sizing:border-box;position:relative;flex:none;width:100%;margin:0;padding:12px 16px 8px;background:rgb(var(--page-rgb)/.85);border:0;backdrop-filter:blur(24px) saturate(1.5);z-index:20}
body.compact-journey-app>.test-journey{position:relative;flex:none;margin:0;width:100%;padding:0 12px;border-bottom:1px solid rgb(var(--brand-rgb)/.06);background:var(--page)}
body.compact-journey-app>.test-journey:not(.is-visible){display:none}
body.compact-journey-app>main{all:unset;box-sizing:border-box;position:relative;min-height:calc(100dvh - var(--stage-header-height,154px));height:auto!important;width:100%;max-width:none;margin:0;padding:0 16px;display:flex;flex-direction:column;gap:0;overflow:visible;touch-action:pan-y pinch-zoom;background:var(--page);letter-spacing:inherit;scrollbar-width:none;scroll-padding:0}
body.compact-journey-app>.topbar{display:block;position:sticky;top:0}
body.compact-journey-app>.test-journey,body.compact-journey-app>.mp-rail-shell{position:sticky;top:var(--app-header-height,96px);z-index:19}
body.compact-journey-app>main>:not(.mp-viewport-dock){flex:0 0 auto}
body.compact-journey-app>main::-webkit-scrollbar{display:none}
body.compact-journey-app>main>.flow-hero-shell{all:unset;display:block;flex:none;width:100%;height:auto!important;position:relative!important;transform:none!important;margin:0!important}
body.compact-journey-app>main :is(.welcome,.class-hero,.capture-heading,.paper-heading){height:auto!important;width:100%!important;min-height:0;margin:0!important;transform:none!important}
/* Retire the legacy absolutely centred hero: its title must size the wrapper. */
body.compact-journey-app>main>.flow-hero-shell>:is(.welcome,.class-hero,.capture-heading,.paper-heading){position:relative!important;inset:auto!important;transform:none!important;will-change:auto}
body.compact-journey-app .mp-exact h1{max-width:none!important;white-space:normal!important}
body.compact-journey-app .topbar-inner{all:unset;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:12px;width:100%;max-width:none;margin:0}
body.compact-journey-app .topbar-inner>.wordmark{all:unset;display:block;width:clamp(180px,48vw,230px);height:auto;max-width:100%;justify-self:center}
body.compact-journey-app .topbar-inner>:is(.stage-path-toggle,.account-placeholder){position:relative;top:14px;width:44px;height:44px;min-height:44px;padding:0;border:0;display:grid;place-items:center;border-radius:9999px;background:var(--surface);color:var(--action-ink);box-shadow:var(--shadow-tile),0 0 0 1px rgb(var(--brand-rgb)/.08);transform:none;margin:0}
body.compact-journey-app .topbar-inner .stage-path-toggle[aria-expanded=false] svg:nth-child(2),body.compact-journey-app .topbar-inner .stage-path-toggle[aria-expanded=true] svg:nth-child(1){display:none}
body.compact-journey-app .topbar-inner .stage-path-toggle[aria-expanded=true]{background:var(--brand);color:var(--on-brand)}
body.compact-journey-app .topbar-inner .account-placeholder svg{width:24px;height:24px}
body.compact-journey-app .classes,body.compact-journey-app .lists-test-group-body{display:grid;grid-template-columns:1fr;gap:12px;width:100%;margin:0;padding:0;max-width:none}
body.compact-journey-app .lists-section-label{margin:0 0 12px;padding:0 4px;font:700 10px/1.5 var(--font);letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
body.compact-journey-app .lists-test-group{margin:0 0 20px}
body.compact-journey-app .test-list{display:block;width:100%;margin:0;padding:0}
body.compact-journey-app .lists-test{position:relative;width:100%;margin:0}
body.compact-journey-app .lists-delete{position:absolute;right:0;top:0;z-index:2;width:44px;height:44px}
body.compact-journey-app .mp-exact{flex-shrink:0}
body.compact-journey-app :is(.shell-action-dock,.reports-finish-dock){position:relative;bottom:auto;z-index:5;flex:none;margin:0 -16px;padding:12px 16px max(12px,env(safe-area-inset-bottom));width:100%;max-width:none;border-top:1px solid rgb(var(--brand-rgb)/.06);background:rgb(var(--page-rgb)/.85);backdrop-filter:blur(24px);box-shadow:var(--shadow-dock);display:grid;grid-template-columns:1fr;gap:10px}
body.compact-journey-app .shell-secondary-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;min-width:0;background:none;border:0}
body.compact-journey-app .shell-primary:after{display:none}
body.compact-journey-app .shell-primary{max-width:680px;align-self:center}
body.compact-journey-app .mp-caption-space{min-height:13.75px}
body.compact-journey-app .paper-screen-view>.capture-workspace{margin:8px 0 24px;max-width:none;width:100%;gap:0;flex:1;overflow:visible}
body.compact-journey-app .paper-screen-view .photo-thumbnails{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;overflow:visible;flex:none}
body.compact-journey-app .paper-screen-view .photo-thumbnail{all:unset;box-sizing:border-box;position:relative;display:block;width:100%;height:auto;aspect-ratio:3/4;overflow:hidden;border-radius:12px;background:var(--photo);box-shadow:var(--shadow-tile),0 0 0 1px rgb(var(--brand-rgb)/.1)}
body.compact-journey-app .paper-screen-view .photo-thumbnail img{width:100%;height:100%;object-fit:cover}
body.compact-journey-app .paper-screen-view .photo-thumbnail[aria-pressed=true]{outline:0;border:0}
body.compact-journey-app .paper-screen-view .photo-thumbnail>span{position:absolute;bottom:8px;left:8px;right:auto;padding:2px 8px;min-width:0;border-radius:9999px;background:rgb(var(--surface-rgb)/.95);color:var(--action-ink-dark);font:700 10px/1.5 var(--font);letter-spacing:.08em;text-transform:uppercase;box-shadow:var(--shadow-tile)}
body.compact-journey-app .paper-thumb-remove{display:grid;place-items:center;position:absolute;right:8px;top:8px;width:32px;height:32px;border:0;border-radius:9999px;background:rgb(var(--surface-rgb)/.95);font:24px/1 var(--font);box-shadow:var(--shadow-tile);color:var(--ink)}
body.compact-journey-app>.test-journey{display:none!important}
.mp-rail-shell{position:relative;flex:none;z-index:10;width:100%;overflow:hidden;border-bottom:1px solid rgb(var(--brand-rgb)/.06);padding:0 12px;background:var(--page)}
.mp-rail-shell[hidden]{display:none}.mp-rail-shell>nav{width:100%}
.mp-title-space{margin-top:4px}
body.compact-journey-app .capture-empty.mp-exact{display:grid;min-height:0;height:auto;aspect-ratio:3/4;padding:0;margin:0;border-radius:20px}
body.compact-journey-app .mp-back{top:50%!important;left:0!important;margin:0!important;transform:translateY(-50%)!important}
body.compact-journey-app main .individual-list-navigation{display:contents!important}

body.compact-journey-app .shell-action-dock>:is(.shell-primary,.shell-secondary-row){grid-column:1/-1;width:100%}

body.compact-journey-app [hidden]{display:none!important}
/* SheetsScreen — original spacing and card dimensions. */
body.compact-journey-app .sheets-screen-view>.stack-body{display:block;flex:1;width:100%;max-width:none;margin:0;padding:0 0 24px;background:none;border:0}
body.compact-journey-app .sheets-screen-view .stack-children{display:grid;grid-template-columns:1fr;gap:10px;margin:0;padding:0;width:100%}
body.compact-journey-app .sheets-screen-view .stack-absent{display:none}
body.compact-journey-app .sheets-screen-view .stack-footer>.stack-match-count{display:none}
body.compact-journey-app .sheets-screen-view .sheets-counter{max-width:none}
body.compact-journey-app .sheets-screen-view .sheets-capture-row{margin:0;padding:0}
/* ReadingScreen — 62% photo, 24px separation, 300px checklist. */
body.compact-journey-app .paper-reading-panel{display:block;flex:1;width:100%;max-width:none;margin:0;padding:0 0 24px;background:none;border:0;box-shadow:none;border-radius:0}
body.compact-journey-app .paper-reading-facts{margin:0;width:100%}
body.compact-journey-app .reading-paper-photo{width:62%;max-width:none;aspect-ratio:3/4;margin:8px auto 0;border:0;border-radius:12px;box-shadow:var(--shadow-lift),0 0 0 1px rgb(var(--brand-rgb)/.1)}
body.compact-journey-app .reading-paper-photo img{width:100%;height:100%;object-fit:cover}
body.compact-journey-app .paper-checklist{margin:24px auto 0;max-width:300px;gap:12px;padding:0;list-style:none}
body.compact-journey-app .paper-checklist li{gap:12px;font-size:14px;line-height:21px}
body.compact-journey-app .paper-summary{margin:24px 0 0;padding:16px 0;border-radius:20px;box-shadow:var(--shadow-tile),0 0 0 1px rgb(var(--brand-rgb)/.08)}
body.compact-journey-app .paper-summary dd{line-height:32px;letter-spacing:-.025em}
body.compact-journey-app .class-report-page .report-chapters{display:grid;gap:16px;width:100%;max-width:none;margin:0;padding:0 0 24px}
body.compact-journey-app .class-report-page .report-chapter{margin:0;padding:20px;border:0;border-radius:20px;box-shadow:var(--shadow-tile),0 0 0 1px rgb(var(--brand-rgb)/.06)}
body.compact-journey-app .class-report-page .report-average{display:flex;gap:20px;align-items:center}
body.compact-journey-app .class-report-page .report-average .report-gauge{position:relative;flex:none;width:120px;height:120px;margin:0;padding:0;border:0}
body.compact-journey-app .shell-toast{position:fixed;inset-inline:0;bottom:auto;left:0;right:0;translate:none;max-width:calc(100vw - 32px);text-align:center}
body.compact-journey-app .eval-review-view .review-student-navigation{margin:-4px 0 16px;padding:0;min-height:0;gap:8px}
body.compact-journey-app .eval-review-view .review-paper-sticky{position:relative;top:auto;z-index:auto;flex:none;width:100%;max-width:none;margin:0;padding:0;background:transparent}
body.compact-journey-app .eval-review-view .review-toolbar{margin:0 0 8px;padding:0;min-height:44px;flex-wrap:nowrap;gap:8px}
body.compact-journey-app .eval-review-view .eval-answer-summary{gap:12px;font-size:11px;line-height:16.5px;flex-wrap:nowrap}
body.compact-journey-app .eval-review-view .eval-answer-summary>span:before{width:8px;height:8px;margin-right:6px}
body.compact-journey-app .eval-review-view .review-photo-area{position:relative;flex:none;min-height:0;max-height:none;width:100%;border:4px solid var(--brand);border-radius:22px;background:var(--photo);box-shadow:var(--shadow-lift);overflow:hidden}
body.compact-journey-app .eval-review-view .review-details{flex:none;overflow:visible;width:100%;max-width:none;margin:0;padding:0 0 24px}
body.compact-journey-app .eval-review-view .sheet-annotation{border-width:1.5px;background:transparent;border-radius:6px;outline:0;box-shadow:none}
body.compact-journey-app .eval-review-view .sheet-annotation.annotation-selected{border-width:2px;background:rgb(255 255 255/.1)}
body.compact-journey-app .eval-review-view .sheet-annotation>span{font:700 9px/1 var(--font);padding:2px 6px;top:auto;bottom:calc(100% + 3px);color:var(--ink);background:var(--surface);border-radius:9999px;box-shadow:var(--shadow-tile)}
body.compact-journey-app .eval-review-view .review-image-plane:has(.annotation-selected) .sheet-annotation:not(.annotation-selected){opacity:.35}
body.compact-journey-app .eval-list-view .saved-results-list{display:grid;grid-template-columns:1fr;gap:10px;align-content:start;flex:1;width:100%;max-width:none;margin:0;padding:0 0 24px;overflow:visible}
body.compact-journey-app .eval-list-view :is(.eval-filters,.results-filters){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 16px;padding:0;max-width:none}
body.compact-journey-app .eval-checking-card{width:100%;max-width:none;margin:16px 0 0;padding:0;background:none;border:0;box-shadow:none}
body.compact-journey-app .eval-completed-list{margin:24px 0 0;padding:0;gap:8px}
body.compact-journey-app .class-report-page .report-topics{display:grid;gap:10px}
body.compact-journey-app .class-report-page .report-topics>header{margin-bottom:6px}
body.compact-journey-app .class-report-page .report-help-pupils{margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;list-style:none}
body.compact-journey-app .lists-create{display:flex;min-height:56px;justify-content:center;align-items:center;gap:8px;margin:8px 0 0;padding:0;border:1.5px dashed rgb(var(--brand-rgb)/.3);border-radius:20px;background:none;color:var(--action-ink);font:700 12px/18px var(--font);letter-spacing:.08em;text-transform:uppercase;box-shadow:none}
body.compact-journey-app .lists-create .create-plus{font-size:18px;line-height:1}
body.compact-journey-app .teacher-app-menu{position:absolute;left:16px;right:auto;top:calc(100% - 4px);z-index:30;display:grid;width:240px;max-width:calc(100vw - 32px);gap:2px;padding:6px;border:0;border-radius:20px;background:var(--surface);box-shadow:var(--shadow-pop),0 0 0 1px rgb(var(--brand-rgb)/.1)}
body.compact-journey-app .teacher-app-menu>button{display:flex;align-items:center;width:100%;min-height:48px;padding:8px 12px;gap:12px;border:0;border-radius:12px;background:none;color:var(--action-ink-dark);text-align:left;font:700 12px/18px var(--font);letter-spacing:.08em;text-transform:uppercase;box-shadow:none}
body.compact-journey-app .teacher-app-menu>button:hover{background:var(--page)}
body.compact-journey-app .teacher-app-menu>button:after{content:'›';margin-left:auto;font-size:20px;color:rgb(var(--action-ink-rgb)/.4)}
body.compact-journey-app .class-report-page .report-topic-row:has(>button[aria-expanded=true]){box-shadow:var(--shadow-lift)}
body.compact-journey-app .class-report-page .report-topic-toggle[aria-expanded=true]>span:nth-child(3)>svg{rotate:180deg}
/* DoubtsScreen / DoubtCard: exact source scale; controllers still own choices/forms. */
body.compact-journey-app .doubts-page>.doubts-paper{display:none}
body.compact-journey-app .doubts-page>.doubt-list{display:block;flex:1;width:100%;max-width:none;margin:0;padding:0 0 24px;overflow:visible}
body.compact-journey-app .paper-doubt-progress{margin:0 0 16px;padding:0 4px;gap:12px;font:700 11px/16.5px var(--font)}
body.compact-journey-app .paper-doubt-progress>.paper-summary{display:none}
body.compact-journey-app .paper-doubt-card{position:relative;margin:0 0 12px;border:0;border-radius:20px;background:var(--surface);box-shadow:var(--shadow-tile),0 0 0 1px rgb(var(--tint-red-edge-rgb)/.7);overflow:hidden}
body.compact-journey-app .paper-doubt-card:before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:var(--marks-help)}
body.compact-journey-app .paper-doubt-card.answered{box-shadow:var(--shadow-tile),0 0 0 1px rgb(var(--tint-green-edge-rgb)/.7)}
body.compact-journey-app .paper-doubt-card.answered:before{background:var(--forward)}
body.compact-journey-app .paper-doubt-card .doubt-row{display:flex;align-items:flex-start;gap:12px;width:100%;min-height:0;margin:0;padding:14px 12px 14px 20px;border:0;background:none;text-align:left}
body.compact-journey-app .paper-doubt-card .doubt-symbol{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:9999px;font:700 16px/24px var(--font)}
body.compact-journey-app .paper-doubt-card .doubt-row strong{font:700 20px/1 var(--font);letter-spacing:-.025em}
body.compact-journey-app .paper-doubt-card .doubt-body{padding:0 16px 16px 20px}
body.compact-journey-app .paper-doubt-card>.doubt-prompt{margin:0 16px 12px 20px;font:700 15px/1.375 var(--font);color:var(--ink)}
body.compact-journey-app .paper-doubt-card .doubt-options{display:grid;gap:8px;margin:0;padding:0}
body.compact-journey-app .paper-doubt-card .doubt-choice{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:10px 12px;border:0;border-radius:12px;background:var(--surface);box-shadow:0 0 0 1px rgb(var(--brand-rgb)/.15);font:400 14px/21px var(--font);color:var(--ink)}
body.compact-journey-app .paper-doubt-card .doubt-choice[aria-pressed=true]{background:var(--brand-tint);box-shadow:0 0 0 2px var(--brand)}
body.compact-journey-app .paper-doubt-card .doubt-choice:before{content:'';flex:none;width:20px;height:20px;border-radius:9999px;box-shadow:inset 0 0 0 1.5px rgb(var(--brand-rgb)/.3)}
body.compact-journey-app .paper-doubt-card .doubt-choice[aria-pressed=true]:before{background:var(--surface);box-shadow:inset 0 0 0 6px var(--brand)}
body.compact-journey-app .paper-doubt-card .doubt-answer-actions{display:flex;gap:8px;margin:12px 0 0}
body.compact-journey-app .paper-doubt-card .save-doubt{min-height:44px;padding:0 16px;border:0;border-radius:16px;background:var(--forward);color:var(--on-forward);font:700 12px/18px var(--font);letter-spacing:.08em;text-transform:uppercase;box-shadow:var(--shadow-btn-forward)}
body.compact-journey-app .eval-review-view .review-question:not(.eval-reason-open){display:none}
body.compact-journey-app .eval-review-view .sheet-annotation>span{display:inline-flex;align-items:center;gap:4px}
body.compact-journey-app .local-paper-details{width:100%;max-width:none;margin:0 0 auto;padding:20px;border:0;border-left:4px solid var(--marks-help);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-tile),0 0 0 1px rgb(var(--tint-red-edge-rgb)/.7)}
body.compact-journey-app .local-paper-details .demo-paper-preview{display:none}
body.compact-journey-app .local-paper-details label{display:grid;gap:12px;color:var(--ink);font:700 15px/1.375 var(--font)}
body.compact-journey-app .local-paper-details input{box-sizing:border-box;width:100%;height:48px;padding:10px 12px;border:1px solid rgb(var(--brand-rgb)/.25);border-radius:12px;background:var(--surface);color:var(--ink);font:400 16px/24px var(--font)}
body.compact-journey-app .mp-local-details-dock{margin-top:24px}
body.compact-journey-app .sheets-screen-view:not(.sheets-still-matching) .stack-body>.live-completion{display:none}
body.compact-journey-app .eval-list-view .results-filters button:nth-child(n+4){display:none}
body.compact-journey-app .live-paper-total{display:none}
body.compact-journey-app .paper-checklist li:not(.is-done):not(.is-active){color:rgb(var(--muted-rgb)/.6)}
body.compact-journey-app .paper-checklist li:not(.is-done):not(.is-active)>.paper-check-icon{background:rgb(var(--brand-rgb)/.06)}
body.compact-journey-app .paper-scan-line{height:64px;top:-15%;border-bottom:2px solid var(--brand);background:rgb(var(--brand-rgb)/.15);animation:mp-paper-scan 1.6s ease-in-out infinite;transform:none}
@keyframes mp-paper-scan{from{top:-15%;transform:none}to{top:100%;transform:none}}
@media(prefers-reduced-motion:reduce){body.compact-journey-app .paper-scan-line{animation:none;top:45%}}
body.compact-journey-app .class-report-page .reports-distribution{display:flex;height:10px;gap:2px;margin:0;overflow:hidden;border-radius:9999px}
body.compact-journey-app .class-report-page .report-band-pills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;margin:12px 0 20px;padding:0;list-style:none}
body.compact-journey-app .class-report-page .report-band-pills li{display:flex;align-items:center;gap:8px;min-height:0;margin:0;padding:0;border:0;background:none;box-shadow:none;font:400 12px/16px var(--font);color:var(--muted)}
body.compact-journey-app .mp-legend-dot{flex:none;width:10px;height:10px;border-radius:9999px;background:var(--report-band-color)}
body.compact-journey-app .report-band-absent .mp-legend-dot{border:1px dashed var(--absent);background:none}
body.compact-journey-app .mp-legend-name{flex:1}
body.compact-journey-app .report-band-pills strong{font-weight:700;color:var(--ink)}
body.compact-journey-app .class-report-page .report-chalkboard{display:grid;place-items:center;width:60%;height:28px;margin:0 auto 12px;border:0;border-radius:6px;background:var(--brand-dark);color:var(--on-brand);font:700 8px/12px var(--font);letter-spacing:.3em;text-transform:uppercase;box-shadow:inset 0 -3px 0 rgb(0 0 0/.18)}
body.compact-journey-app .class-report-page .report-desks{gap:6px}
body.compact-journey-app .class-report-page .report-desk{height:44px;padding:4px 2px 8px;border-radius:12px}
body.compact-journey-app .class-report-page .report-desk-top{height:28px;padding:0 4px;border-radius:7px;box-shadow:inset 0 -2px 0 rgb(0 0 0/.12)}
body.compact-journey-app .class-report-page .report-desk-glyph{display:none}
body.compact-journey-app .class-report-page .report-desk-label{font:700 11px/1 var(--font)}
body.compact-journey-app .class-report-page .report-desk:before,body.compact-journey-app .class-report-page .report-desk:after{bottom:6px;height:10px;opacity:.7}
body.compact-journey-app .class-report-page .report-actions{position:static;display:block;width:100%;margin:16px 0 24px;padding:0;border:0;box-shadow:none;background:none}
body.compact-journey-app .report-chip-record{font:400 10px/15px var(--font);color:var(--muted)}

/* Moving guarded supporting actions must not leave an empty dock track. */
body.compact-journey-app .shell-secondary-row:empty{display:none}

body.compact-journey-app .mp-live-reason .mp-reason-body{display:block;padding:0;margin:0;border:0}
body.compact-journey-app .mp-reason-actions:not(:has(.live-change-form)){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
body.compact-journey-app .mp-reason-actions>button{min-height:44px;height:44px}

body.compact-journey-app .mp-marks-off .review-details .review-question{display:none!important}

body.compact-journey-app .teacher-app-menu{left:16px;top:calc(100% - 4px);width:240px;min-width:0;max-width:calc(100vw - 32px);padding:6px;gap:2px;border:0;border-radius:20px}
body.compact-journey-app .teacher-app-menu>button{min-height:48px;padding:8px 12px;border:0;border-radius:12px;background:transparent;font:700 12px/18px var(--font);letter-spacing:.08em;color:var(--action-ink-dark)}
body.compact-journey-app .teacher-app-menu>button:hover{background:var(--page)}

/* Actions stay at the visible viewport bottom, never halfway through a list.
   Leave the page visible between solid buttons; reserve scroll space to reveal
   the last row above it. The controller still owns every button and guard. */
body.compact-journey-app>main.mp-has-dock{
 --dock-bottom-gap:max(12px,env(safe-area-inset-bottom));
 padding-bottom:calc(var(--app-dock-height,0px) + var(--dock-bottom-gap) + 24px);
 scroll-padding-bottom:calc(var(--app-dock-height,0px) + var(--dock-bottom-gap) + 24px);
}
/* Let content define its scroll height; shrinking grids can overflow past the
   reserved footer space and leave the final row underneath the controls. */
body.compact-journey-app>main.mp-has-dock>:not(.mp-viewport-dock){flex:0 0 auto}
body.compact-journey-app .shell-action-dock.mp-viewport-dock{
 /* Keep the empty gap OUTSIDE the fixed box. A viewport-wide fixed box
    touching Safari's bottom edge triggers an opaque browser-toolbar fill,
    even when its own background is transparent (WebKit edge sampling). */
 position:fixed;inset:auto 0 var(--dock-bottom-gap,max(12px,env(safe-area-inset-bottom)));z-index:15;
 transform:none;translate:none;animation:none;transition:none;
 box-sizing:border-box;width:auto;max-width:none;min-width:0;margin:0;
 padding:12px max(16px,env(safe-area-inset-left),env(safe-area-inset-right)) 0;
 display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;
 border:0;border-radius:0;background:transparent;
 -webkit-backdrop-filter:none;backdrop-filter:none;
 box-shadow:none;isolation:auto;pointer-events:none;
}
body.compact-journey-app .mp-viewport-dock::before,
body.compact-journey-app .mp-viewport-dock::after{content:none}
body.compact-journey-app .mp-viewport-dock>:not(button){
 background:transparent;border:0;box-shadow:none;
 -webkit-backdrop-filter:none;backdrop-filter:none;
}
body.compact-journey-app .mp-viewport-dock :is(button,input,select,textarea,a){pointer-events:auto}
body.compact-journey-app .mp-viewport-dock>:is(.shell-primary,.shell-secondary-row,.shell-secondary){
 box-sizing:border-box;width:100%;max-width:680px;min-width:0;justify-self:center;margin:0;
}
body.compact-journey-app .mp-viewport-dock .shell-secondary-row>button{min-width:0;max-width:100%}
body.compact-journey-app main :is(.results-filters,.eval-filters){
 position:relative;top:auto;inset-block-start:auto;z-index:auto;flex:none;min-width:0;
}
body.compact-journey-app main :is(.results-filters,.eval-filters)>button{
 min-width:0;white-space:normal;overflow-wrap:normal;text-align:center;
}
body.compact-journey-app .teacher-app-menu>button:after{display:none;content:none}
/* Test actions stay discoverable on their own card, above its open hit area. */
body.compact-journey-app .lists-test .delete-test.mp-test-delete{
 position:absolute;inset:auto 52px 4px auto;z-index:3;display:inline-flex;align-items:center;justify-content:center;
 flex:0 0 auto;min-width:44px;width:44px;height:44px;min-height:44px;margin:0;
 padding:12px;border:0;border-radius:12px;background:transparent;color:var(--marks-help);
 box-shadow:none;font:700 11px/16px var(--font);cursor:pointer;
}
body.compact-journey-app .paper-screen-view .capture-empty{letter-spacing:.24px}
/* Static/locked rows retain the source button typography and empty meta track. */
body.compact-journey-app .sheets-student-static{letter-spacing:.24px}
body.compact-journey-app .sheets-waiting-space{display:block;height:16.5px;flex:none}
/* Answer Sheets: capture first, then resolve the class stack. */
body.compact-journey-app main.engine-stack .stack-draft-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;margin:0 0 16px;padding:0;overflow:visible}
body.compact-journey-app main.engine-stack .stack-draft-tile{position:relative;min-width:0;aspect-ratio:3/4}
body.compact-journey-app main.engine-stack .stack-draft-tile>.photo-thumbnail{position:relative;display:block;width:100%;height:100%;padding:0;overflow:hidden;border:0;border-radius:12px;background:var(--photo);box-shadow:var(--shadow-tile)}
body.compact-journey-app main.engine-stack .stack-draft-tile img{display:block;width:100%;height:100%;object-fit:cover}
body.compact-journey-app main.engine-stack .stack-draft-number{position:absolute;bottom:8px;left:8px;border-radius:999px;background:var(--surface);color:var(--action-ink-dark);padding:2px 8px;font:700 10px/15px var(--font)}
body.compact-journey-app main.engine-stack .stack-draft-remove{position:absolute;right:4px;top:4px;display:grid;place-items:center;width:36px;height:36px;min-height:36px;padding:0;border:0;border-radius:50%;background:var(--surface);color:var(--ink);font:24px/1 var(--font);box-shadow:var(--shadow-tile)}
body.compact-journey-app main.engine-stack .stack-retained{margin:0 0 16px}
body.compact-journey-app main.engine-stack .stack-retry-upload{width:100%;min-height:48px;border:0;border-radius:16px;background:var(--brand);color:var(--on-brand);font:700 12px/18px var(--font)}
body.compact-journey-app main.engine-stack .stack-upload-empty{min-height:140px;border:2px dashed rgb(var(--brand-rgb)/.25);border-radius:12px;margin-bottom:16px}
body.compact-journey-app main.engine-stack .shell-action-dock.mp-viewport-dock{bottom:0;padding-bottom:max(12px,env(safe-area-inset-bottom));background:var(--page);pointer-events:auto;border-top:1px solid rgb(var(--divider-rgb))}
body.compact-journey-app main.engine-stack .stack-upload-panel{width:100%;max-width:680px;margin:0 auto}
body.compact-journey-app main.engine-stack .stack-whose{margin-top:0}
body.compact-journey-app main.engine-stack .stack-candidates{display:grid;grid-template-columns:1fr;gap:10px}
body.compact-journey-app main.engine-stack .stack-candidate{min-height:56px;width:100%;padding:14px;border:1px solid rgb(var(--brand-rgb)/.2);border-radius:16px;background:var(--brand-tint);color:var(--action-ink-dark);font:700 14px/20px var(--font)}
@media(min-width:700px){body.compact-journey-app main.engine-stack .stack-draft-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Actual upload errors can retain the engine's full sentence. */
body.compact-journey-app .shell-toast{max-width:calc(100vw - 32px);box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}
/* Shared opaque dock: the measured height reserves content clearance everywhere. */
body.compact-journey-app .shell-action-dock.mp-viewport-dock{bottom:0;background:var(--page);padding-bottom:max(12px,env(safe-area-inset-bottom));pointer-events:auto;border-top:1px solid rgb(var(--divider-rgb))}
body.compact-journey-app>main.mp-has-dock{--dock-bottom-gap:0px;padding-bottom:calc(var(--app-dock-height,0px) + 16px);scroll-padding-bottom:calc(var(--app-dock-height,0px) + 16px)}
body.compact-journey-app .create-dialog .create-submit{margin-top:16px;width:100%;height:56px;min-height:56px;background:#0F8060;color:#fff}
body.compact-journey-app .create-dialog form>.field-error{margin:0;min-height:0}
body.compact-journey-app .mp-paper-dock>.mp-paper-actions{display:grid;grid-template-columns:56px 56px minmax(0,1fr);gap:10px;width:100%;max-width:680px;align-items:center;justify-self:center}
body.compact-journey-app .mp-paper-actions>.mp-paper-icon{display:grid;place-items:center;flex:none;box-sizing:border-box;width:56px;min-width:56px;max-width:56px;height:56px;min-height:56px;padding:0;border:0;border-radius:16px;background:var(--brand);color:var(--on-brand)}
body.compact-journey-app .mp-paper-actions>.gallery-choice{background:var(--brand-tint);color:var(--action-ink-dark)}
body.compact-journey-app .mp-paper-actions>.shell-primary{width:100%;min-width:0;height:56px;min-height:56px;margin:0;padding-bottom:0}
body.compact-journey-app .mp-paper-actions:has(>.camera-choice[hidden]):has(>.gallery-choice[hidden]){grid-template-columns:minmax(0,1fr)}
body.compact-journey-app .mp-paper-actions>[hidden]{display:none!important}
body.compact-journey-app .eval-review-dock .eval-review-done{height:56px;min-height:56px}
/* Bound the scrollable content above the fixed dock, including disabled controls. */
body.compact-journey-app>main.mp-has-dock{height:calc(100dvh - var(--app-content-top,154px) - var(--app-dock-height,81px))!important;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:16px;scroll-padding-bottom:16px;overscroll-behavior-y:contain}

/* Add Pages and Start Checking occupy one 56px row in both class lists. */
body.compact-journey-app .mp-paper-dock>.mp-stack-actions{grid-template-columns:56px minmax(0,1fr)}
/* Shared question card: Review and inspection use identical inner layout. */
body.compact-journey-app .question-panel{box-sizing:border-box;width:100%;margin:0;border:1px solid rgb(var(--brand-rgb)/.1);border-radius:20px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow-pop);overflow:hidden}
body.compact-journey-app .question-panel-header{display:flex;align-items:center;gap:10px;padding:16px;border:0;background:var(--surface)}
body.compact-journey-app .question-panel-header h2{flex:1;margin:0;font:700 20px/25px var(--font);letter-spacing:-.025em}
body.compact-journey-app .question-panel-body{padding:0 16px 16px;display:grid;gap:16px}
body.compact-journey-app .question-panel-body[hidden]{display:none}
body.compact-journey-app .question-panel .question-writing{margin:0;padding:10px 12px;border-radius:12px;background:var(--page);color:var(--ink);font:12px/18px ui-monospace,monospace;overflow-wrap:anywhere}
body.compact-journey-app .question-panel .question-step-reason{margin:0;font:400 13px/20px var(--font);color:var(--muted)}
body.compact-journey-app .question-panel-actions:not(:has(.live-change-form)),body.compact-journey-app .paired-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;margin:0}
body.compact-journey-app .question-panel-actions>button,body.compact-journey-app .paired-actions>button{min-width:0;width:100%;margin:0;min-height:52px;white-space:normal}
body.compact-journey-app .question-agree{transition:background-color 250ms,color 250ms;position:relative}
body.compact-journey-app .question-agree.is-agreed{background:var(--forward)!important;color:var(--on-forward)!important;box-shadow:var(--shadow-btn-forward)}
body.compact-journey-app .agree-tick{display:inline-grid;place-items:center;margin-right:6px;animation:agree-in 250ms var(--ease-spring)}
@keyframes agree-in{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
body.compact-journey-app .question-panel .live-change-form{display:grid;gap:16px;margin:0;padding:0;border:0;background:transparent;animation:panel-open 250ms var(--ease-spring)}
@keyframes panel-open{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
body.compact-journey-app .question-panel .live-change-form h3{margin:0;font:700 13px/20px var(--font);color:var(--ink)}
body.compact-journey-app .question-panel .live-review-reasons{display:flex;flex-wrap:wrap;gap:8px;margin:0}
body.compact-journey-app .review-reason-chip{display:block;flex:0 1 auto;max-width:100%;min-height:36px;padding:8px 12px;border:1px solid rgb(var(--brand-rgb)/.18);border-radius:999px;background:var(--brand-tint);color:var(--action-ink-dark);font:600 12px/18px var(--font);white-space:normal;text-align:left}
body.compact-journey-app .review-reason-chip[aria-pressed="true"]{background:var(--brand);color:var(--on-brand);border-color:var(--brand)}
body.compact-journey-app .question-panel .live-review-field{display:block;margin:0}
body.compact-journey-app .question-panel .live-review-field input{box-sizing:border-box;width:100%;height:48px;min-height:48px;margin:0;padding:10px 12px;border:1px solid rgb(var(--brand-rgb)/.25);border-radius:16px;background:var(--surface);color:var(--ink);font:16px/24px var(--font)}
body.compact-journey-app .question-panel .live-half-marks{display:flex;justify-content:center;align-items:center;gap:16px;margin:0;padding:0}
body.compact-journey-app .question-panel .mark-stepper{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:var(--brand-tint);color:var(--action-ink);font:700 24px/1 var(--font)}
body.compact-journey-app .question-panel .mark-stepper:disabled{opacity:.35}
body.compact-journey-app .question-panel .live-half-marks output{min-width:84px;text-align:center;font:700 26px/32px var(--font);color:var(--ink)}
body.compact-journey-app .question-panel .live-review-preview{margin:0;font:600 13px/20px var(--font);color:var(--ink)}
body.compact-journey-app .question-step-timeline{list-style:none;display:grid;gap:12px;margin:0;padding:0}
body.compact-journey-app .question-step-tile{display:grid;grid-template-columns:12px minmax(0,1fr);gap:10px;padding:12px;border:1px solid rgb(var(--brand-rgb)/.1);border-radius:12px;background:var(--surface)}
body.compact-journey-app .question-step-dot{width:10px;height:10px;margin-top:7px;border-radius:50%;background:var(--muted)}
body.compact-journey-app .question-step-high .question-step-dot{background:var(--marks-strong)}
body.compact-journey-app .question-step-middle .question-step-dot{background:var(--marks-middle)}
body.compact-journey-app .question-step-low .question-step-dot{background:var(--marks-help)}
body.compact-journey-app .question-step-content{display:grid;gap:8px;min-width:0}
body.compact-journey-app .question-step-title{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:0;border:0;background:none;color:var(--ink);font:700 13px/20px var(--font);text-align:left}
body.compact-journey-app .question-panel .question-step-tile.is-selected{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
/* Give the photo its own area and scroll the remaining explanation to its last action. */
body.compact-journey-app dialog.review-inspection{box-sizing:border-box;position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:100dvh;margin:0;padding:0 0 env(safe-area-inset-bottom);overflow:hidden;background:var(--page);border:0;border-radius:0;display:flex;flex-direction:column}
body.compact-journey-app dialog.review-inspection:not([open]){display:none}
body.compact-journey-app .review-inspection>header{flex:none;box-sizing:border-box;min-height:56px;padding:8px 16px;background:var(--page)}
body.compact-journey-app .review-inspection .inspection-body{display:flex;flex:1;flex-direction:column;gap:0;min-height:0;overflow:hidden;padding:0 16px;justify-content:flex-start}
body.compact-journey-app .review-inspection .inspection-sheet{flex:0 0 auto;width:100%;min-height:0;margin:0!important;border:4px solid var(--brand);border-radius:20px;overflow:hidden;background:var(--photo)}
body.compact-journey-app .review-inspection .inspection-canvas{width:100%;height:100%;min-height:0;flex:1}
body.compact-journey-app .review-inspection .inspection-explanation{box-sizing:border-box;flex:1 1 0;min-height:0;width:100%;max-width:none;max-height:none;margin:0;padding:16px 0;border:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;background:var(--page)}
body.compact-journey-app .review-inspection .inspection-answer-content{padding:0;margin:0;overflow:visible;max-height:none}
body.compact-journey-app .review-inspection .inspection-explanation>.inspection-answer-heading{padding:0 0 16px}
body.compact-journey-app main.mp-has-dock>.review-details{padding-bottom:0;margin-bottom:0}
body.compact-journey-app .paired-actions.paired-small>button{min-height:44px;height:44px}
@media(prefers-reduced-motion:reduce){body.compact-journey-app .question-agree{transition:none}body.compact-journey-app .agree-tick,body.compact-journey-app .question-panel .live-change-form{animation:none}}
body.compact-journey-app .review-question:has(.question-panel){padding:0;margin:12px 0 0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
body.compact-journey-app .review-question-body:has(>.question-panel){padding:0;margin:0;border:0;background:transparent}
body.compact-journey-app .question-panel .question-step-reason{text-align:left}
body.compact-journey-app .paired-actions>button{box-sizing:border-box;height:52px}
body.compact-journey-app dialog.confirm-dialog{box-sizing:border-box;max-height:calc(100dvh - max(16px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom)));overflow-y:auto;scroll-padding-bottom:16px}
/* Question actions stay at the bottom; only the evidence/edit fields scroll. */
body.compact-journey-app .question-panel-scroll{display:grid;gap:16px;min-width:0}
body.compact-journey-app .question-panel-actions:has(>.paired-actions){display:block}
body.compact-journey-app .eval-review-dock{gap:10px}
body.compact-journey-app .eval-review-dock>.question-panel-actions{width:100%;max-width:680px;margin:0;justify-self:center;flex:none}
body.compact-journey-app .review-inspection .inspection-explanation{overflow:hidden;display:flex;flex-direction:column}
body.compact-journey-app .review-inspection .inspection-answer-content{display:flex;flex:1;min-height:0;overflow:hidden}
body.compact-journey-app .review-inspection .question-panel{display:flex;flex:1;flex-direction:column;min-height:0}
body.compact-journey-app .review-inspection .question-panel-header{flex:none}
body.compact-journey-app .review-inspection .question-panel-body{display:flex;flex:1;flex-direction:column;min-height:0}
body.compact-journey-app .review-inspection .question-panel-body[hidden]{display:none}
body.compact-journey-app .review-inspection .question-panel-scroll{display:flex;flex:1;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}
body.compact-journey-app .review-inspection .question-panel-actions{flex:none}

/* Compact reading rows: equal icon columns, no separate percentage gauge. */
body.compact-journey-app .paper-checklist{width:max-content;max-width:100%;margin:16px auto 0;gap:8px}
body.compact-journey-app .paper-checklist li{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:8px;font-size:12px;line-height:18px;font-weight:500}
body.compact-journey-app .paper-checklist .paper-check-icon{width:16px;height:16px;min-width:16px;box-shadow:none}
body.compact-journey-app .paper-checklist .paper-check-icon>span{display:block;width:12px;height:12px;box-sizing:border-box}
body.compact-journey-app .paper-checklist .paper-check-label{text-align:left}
body.compact-journey-app .paper-checklist .is-active .paper-check-icon>span{border:2px solid rgb(var(--brand-rgb)/.25);border-top-color:var(--brand);border-radius:50%;animation:paper-status-spin .8s linear infinite}
@keyframes paper-status-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){body.compact-journey-app .paper-checklist .is-active .paper-check-icon>span{animation:none}}

/* Live worker health and engine topic data. */
body.compact-journey-app .live-worker-paused-warning{font-size:14px;line-height:21px;color:var(--ink);margin:16px 0;text-align:left}
body.compact-journey-app .live-paper-topics{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
body.compact-journey-app .live-paper-topics .tile-tag{background:var(--brand-tint);color:var(--action-ink);font-size:12px;line-height:18px;padding:4px 8px;border-radius:5px}
body.compact-journey-app .live-worker-paused .animate-spin,body.compact-journey-app .live-worker-paused .paper-scan-line{visibility:hidden;animation:none}
body.compact-journey-app .live-worker-paused .paper-checklist .is-active .paper-check-icon>span{animation:none;visibility:hidden}
/* One shared page grid/empty-state presentation for paper and answer upload. */
body.compact-journey-app main.paper-screen-view .stack-draft-tile.paper-thumb-tile{position:relative;display:block;min-width:0;width:100%;height:auto;margin:0;padding:0;border:0;background:none;box-shadow:none}
body.compact-journey-app main.paper-screen-view .stack-draft-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;margin:0}
body.compact-journey-app main.paper-screen-view .stack-draft-tile .photo-thumbnail{aspect-ratio:3/4;width:100%;height:auto;min-height:0}
body.compact-journey-app main.paper-screen-view .stack-draft-tile .photo-thumbnail img{width:100%;height:100%;object-fit:cover}
body.compact-journey-app .page-photo-undecodable{display:none!important}
body.compact-journey-app .page-number-fallback{display:grid;place-items:center;min-height:120px;width:100%;height:100%;background:var(--photo);color:var(--action-ink);font:600 14px var(--font);border-radius:12px}
body.compact-journey-app .photo-thumbnail .page-number-fallback{position:absolute;inset:0;min-height:0;pointer-events:none}
body.compact-journey-app .paper-topic-box{padding:16px;border:1px solid rgb(var(--brand-rgb)/.15);border-radius:20px;background:var(--surface);margin:0 0 16px}
body.compact-journey-app .paper-no-doubts-message{display:block;color:var(--ink);font:600 16px/1.5 var(--font);text-align:center;margin:16px 0}
body.compact-journey-app .live-request-wait{display:grid;place-items:center;flex:none;margin:0}

body.compact-journey-app main.paper-screen-view .photo-thumbnail>.page-number-fallback{position:absolute;inset:0;display:grid;place-items:center;width:100%;height:100%;padding:0;border-radius:12px;box-shadow:none;background:var(--photo);font:600 14px var(--font);letter-spacing:0;text-transform:none}

/* Compact filters apply only to the Evaluate student list. */
body.compact-journey-app main.eval-list-view .eval-filters{gap:5px}
body.compact-journey-app main.eval-list-view .eval-filters>button{height:28px;min-height:28px;padding:4px 8px;gap:4px;font-size:11px;line-height:16px}

/* Compact, colour-coded answer counts in both review modes; no tiles. */
body.compact-journey-app .eval-review-view .review-toolbar{flex-wrap:wrap;min-height:0;height:auto;padding:0;margin:0 0 6px;gap:2px}
body.compact-journey-app .eval-review-view .eval-answer-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;flex:1 0 100%;gap:2px 10px;width:100%;margin:0;padding:0}
body.compact-journey-app .eval-review-view .eval-answer-summary>span{display:inline-flex;justify-content:center;align-items:center;gap:3px;min-height:0;height:auto;padding:0;border-radius:0;background:none;color:var(--muted);border:0;box-shadow:none;text-align:center;text-transform:lowercase}
body.compact-journey-app .eval-review-view .eval-answer-summary>span:before{content:none;display:none}
body.compact-journey-app .eval-review-view .eval-summary-count{font-size:11px;line-height:16px;font-weight:600;color:inherit}
body.compact-journey-app .eval-review-view .eval-summary-label{font-size:11px;line-height:16px;font-weight:600;color:inherit}
body.compact-journey-app .eval-review-view .eval-answer-summary>.eval-summary-high{color:var(--marks-strong)}
body.compact-journey-app .eval-review-view .eval-answer-summary>.eval-summary-middle{color:var(--marks-middle)}
body.compact-journey-app .eval-review-view .eval-answer-summary>.eval-summary-low{color:var(--marks-help)}

/* Give the sheet total a complete pill and its own space between title and photo. */
body.compact-journey-app main.eval-review-view .review-student-navigation{position:relative;inset:auto;display:flex;align-items:center;justify-content:center;flex:none;min-height:44px;height:auto;margin:0 0 12px;padding:4px 0;overflow:visible;transform:none}
body.compact-journey-app main.eval-review-view .review-student-navigation>div{position:static;display:flex;align-items:center;justify-content:center;flex:none;min-height:36px;height:auto;overflow:visible}
body.compact-journey-app main.eval-review-view .review-final-mark{box-sizing:border-box;position:static;display:inline-flex;align-items:center;justify-content:center;flex:none;width:max-content;height:36px;min-height:36px;margin:0;padding:0 14px;border-radius:9999px;font-size:15px;line-height:1;white-space:nowrap;overflow:visible;transform:none}

/* Keep the actual paper capture controls together, with uniform disabled colours. */
body.compact-journey-app .mp-paper-dock>.mp-paper-actions:not(.mp-stack-actions){grid-template-columns:56px 56px minmax(0,1fr);gap:10px;align-items:center}
body.compact-journey-app .mp-paper-actions>button:disabled{background:var(--photo)!important;color:var(--muted)!important;opacity:1!important;box-shadow:none!important;filter:grayscale(1)}
body.compact-journey-app .mp-paper-actions>button:disabled :is(span,svg){color:inherit}

/* Engine counts are quiet status text, never action buttons. */
body.compact-journey-app main.engine-stack:not(.eval-checking-view) .stack-counts{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 12px;margin:4px 0 8px}
body.compact-journey-app main.engine-stack:not(.eval-checking-view) .stack-counts p{display:inline-flex;align-items:center;justify-content:center;min-height:28px;margin:0;padding:0 2px;border:0;border-radius:0;background:none;color:var(--muted);box-shadow:none;font:600 11px/16px var(--font);cursor:default}

/* Selected-answer actions share one compact row with the existing review completion. */
body.compact-journey-app .eval-review-dock.has-inline-question-actions,body.compact-journey-app .inspection-review-dock.has-inline-question-actions{display:grid;grid-template-columns:1fr 1.2fr 1.1fr;gap:8px;align-items:center}
body.compact-journey-app .has-inline-question-actions>.dock-inline-question-actions{display:contents!important}
body.compact-journey-app .has-inline-question-actions :is(.dock-inline-question-actions>button,.eval-review-done,.inspection-review-done){box-sizing:border-box;width:100%;min-width:0;max-width:none;height:44px;min-height:44px;margin:0;padding:6px 8px;border-radius:16px;font-size:10px;line-height:1.2;letter-spacing:0;white-space:normal}
body.compact-journey-app .has-inline-question-actions :is(.eval-review-done,.inspection-review-done)>span:first-child{width:24px;height:24px;min-width:24px}
body.compact-journey-app .dock-inline-question-actions>button{animation:none}
body.compact-journey-app .inspection-review-dock{display:grid;grid-template-columns:1fr;gap:8px;flex:none;padding:12px 16px max(12px,env(safe-area-inset-bottom));background:var(--page);border-top:1px solid rgb(var(--divider-rgb))}
body.compact-journey-app .review-inspection .inspection-body{min-height:0}
body.compact-journey-app .review-inspection:not(.has-explanation)>.inspection-review-dock{grid-template-columns:1fr}
body.compact-journey-app .review-inspection:not(.has-explanation) .dock-inline-question-actions{display:none!important}
@keyframes question-action-enter{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){body.compact-journey-app .dock-inline-question-actions>button{animation:none}}

body.compact-journey-app .has-inline-question-actions :is(.eval-review-done,.inspection-review-done){gap:6px}
body.compact-journey-app .has-inline-question-actions :is(.eval-review-done,.inspection-review-done)>span:last-child>span:first-child{font-size:10px;line-height:12px;letter-spacing:0}

/* Override the general primary-button full-row span only for this three-action dock. */
body.compact-journey-app .has-inline-question-actions>.eval-review-done,body.compact-journey-app .has-inline-question-actions>.inspection-review-done{grid-column:3!important;grid-row:1!important;justify-self:stretch}
body.compact-journey-app .has-inline-question-actions>.dock-inline-question-actions>button:first-child{grid-column:1;grid-row:1}
body.compact-journey-app .has-inline-question-actions>.dock-inline-question-actions>button:nth-child(2){grid-column:2;grid-row:1}
body.compact-journey-app .review-inspection:not(.has-explanation)>.inspection-review-dock>.inspection-review-done{grid-column:1!important}

/* Each label fits its control; changing answers never replays a button entrance. */
body.compact-journey-app .eval-review-dock.has-inline-question-actions,body.compact-journey-app .inspection-review-dock.has-inline-question-actions{grid-template-columns:repeat(3,max-content);justify-content:center;gap:8px}
body.compact-journey-app .has-inline-question-actions :is(.dock-inline-question-actions>button,.eval-review-done,.inspection-review-done){width:max-content!important;min-width:0!important;padding-inline:8px!important;font-size:11px;white-space:nowrap;animation:none!important}
body.compact-journey-app :is(.eval-review-done,.inspection-review-done){width:max-content!important;justify-self:end;padding-inline:10px}
body.compact-journey-app .has-inline-question-actions :is(.eval-review-done,.inspection-review-done)>span:last-child>span:first-child{font-size:11px;line-height:14px;white-space:nowrap}

/* Start with one full-width forward action; expand the answer tools only on selection. */
body.compact-journey-app .eval-review-dock:not(.has-inline-question-actions)>.eval-review-done,body.compact-journey-app .inspection-review-dock:not(.has-inline-question-actions)>.inspection-review-done{width:100%!important;height:56px;min-height:56px;justify-self:stretch;grid-column:1/-1!important}
body.compact-journey-app :is(.eval-review-done,.inspection-review-done){transition:width 420ms cubic-bezier(.22,1,.36,1),height 420ms cubic-bezier(.22,1,.36,1),padding 420ms ease}
body.compact-journey-app :is(.eval-review-done,.inspection-review-done) span{transition:font-size 420ms ease}
body.compact-journey-app :is(.eval-review-dock,.inspection-review-dock){min-height:calc(68px + max(12px,env(safe-area-inset-bottom)))}
@media(prefers-reduced-motion:reduce){body.compact-journey-app :is(.eval-review-done,.inspection-review-done),body.compact-journey-app :is(.eval-review-done,.inspection-review-done) span{transition:none}}

body.compact-journey-app .has-inline-question-actions>:is(.eval-review-done,.inspection-review-done){justify-self:center!important}

/* Keep the trailing arrow inside the review button as the whole action contracts. */
body.compact-journey-app :is(.eval-review-done,.inspection-review-done){grid-template-columns:36px minmax(0,1fr) 36px;overflow:hidden;transition:width 420ms cubic-bezier(.22,1,.36,1),height 420ms cubic-bezier(.22,1,.36,1),padding 420ms cubic-bezier(.22,1,.36,1),grid-template-columns 420ms cubic-bezier(.22,1,.36,1),gap 420ms cubic-bezier(.22,1,.36,1)}
body.compact-journey-app :is(.eval-review-done,.inspection-review-done)>span:first-child{width:auto;height:auto;min-width:0}
body.compact-journey-app :is(.eval-review-done,.inspection-review-done)>span:last-child{width:36px;height:36px;min-width:0;transition:width 420ms cubic-bezier(.22,1,.36,1),height 420ms cubic-bezier(.22,1,.36,1)}
body.compact-journey-app :is(.eval-review-done,.inspection-review-done)>span:last-child svg{width:20px;height:20px;transition:width 420ms cubic-bezier(.22,1,.36,1),height 420ms cubic-bezier(.22,1,.36,1)}
body.compact-journey-app .has-inline-question-actions :is(.eval-review-done,.inspection-review-done){grid-template-columns:24px minmax(0,1fr) 24px}
body.compact-journey-app .has-inline-question-actions :is(.eval-review-done,.inspection-review-done)>span:first-child{width:auto;height:auto;min-width:0}
body.compact-journey-app .has-inline-question-actions :is(.eval-review-done,.inspection-review-done)>span:last-child{width:24px;height:24px}
body.compact-journey-app .has-inline-question-actions :is(.eval-review-done,.inspection-review-done)>span:last-child svg{width:16px;height:16px}
body.compact-journey-app .has-inline-question-actions :is(.eval-review-done,.inspection-review-done)>span:nth-child(2)>span:first-child{font-size:11px;line-height:14px;letter-spacing:0;white-space:nowrap}
@media(prefers-reduced-motion:reduce){body.compact-journey-app :is(.eval-review-done,.inspection-review-done),body.compact-journey-app :is(.eval-review-done,.inspection-review-done)>span:last-child,body.compact-journey-app :is(.eval-review-done,.inspection-review-done)>span:last-child svg{transition:none}}

/* Intrinsic button size is measured once at its final typography and spacing. */
body.compact-journey-app .review-dock-measuring,body.compact-journey-app .review-dock-measuring *{transition:none!important}

/* Balance outer spacing and inter-button gaps while retaining label-sized controls. */
body.compact-journey-app .eval-review-dock.has-inline-question-actions,body.compact-journey-app .inspection-review-dock.has-inline-question-actions{justify-content:space-evenly;padding-inline:8px;column-gap:8px}
body.compact-journey-app .dock-inline-question-actions>.question-agree{background:var(--forward)!important;color:var(--on-forward)!important}
body.compact-journey-app .dock-inline-question-actions>.question-change{background:var(--danger)!important;color:#fff!important}
body.compact-journey-app .dock-inline-question-actions>:is(.question-agree,.question-change){display:inline-flex;align-items:center;justify-content:center;gap:5px}
body.compact-journey-app .dock-inline-question-actions .agree-tick{display:inline-block;font-size:14px;line-height:1}
body.compact-journey-app .dock-inline-question-actions .question-change svg{flex:none;width:14px;height:14px}
body.compact-journey-app :is(.eval-review-done,.inspection-review-done){background:var(--brand)!important;color:var(--on-brand)!important;box-shadow:none!important}

/* Text-only return action and wider compact controls; Agree is an accessible tick. */
body.compact-journey-app :is(.eval-review-done,.inspection-review-done)>span:first-child,body.compact-journey-app :is(.eval-review-done,.inspection-review-done)>span:last-child{display:none!important}
body.compact-journey-app :is(.eval-review-done,.inspection-review-done),body.compact-journey-app .has-inline-question-actions :is(.eval-review-done,.inspection-review-done){grid-template-columns:minmax(0,1fr);gap:0}
body.compact-journey-app :is(.eval-review-done,.inspection-review-done)>span:nth-child(2){grid-column:1}
body.compact-journey-app .has-inline-question-actions :is(.dock-inline-question-actions>button,.eval-review-done,.inspection-review-done){padding-inline:22px!important}
body.compact-journey-app .dock-inline-question-actions>.question-agree{min-width:56px!important}
body.compact-journey-app .dock-inline-question-actions .agree-tick{font-size:20px}

/* Fill the action row with three equal controls and identical inner/outer gaps. */
body.compact-journey-app .eval-review-dock.has-inline-question-actions,body.compact-journey-app .inspection-review-dock.has-inline-question-actions{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch;padding-inline:10px;column-gap:10px}
body.compact-journey-app .has-inline-question-actions :is(.dock-inline-question-actions>button,.eval-review-done,.inspection-review-done){width:100%!important;max-width:none;min-width:0!important;padding-inline:8px!important;justify-self:stretch!important}

/* An acknowledged answer keeps its place as a clear green outlined action. */
body.compact-journey-app .dock-inline-question-actions>.question-agree{border:2px solid var(--forward);transition:background-color 250ms ease,color 250ms ease,border-color 250ms ease}
body.compact-journey-app .dock-inline-question-actions>.question-agree.is-agreed{background:var(--surface)!important;color:var(--forward)!important;box-shadow:none!important}
@media(prefers-reduced-motion:reduce){body.compact-journey-app .dock-inline-question-actions>.question-agree{transition:none}}

/* Mark editing reuses the same dock: red cancellation and green acceptance. */
body.compact-journey-app .dock-inline-question-actions>.live-review-cancel{background:var(--danger)!important;color:#fff!important}
body.compact-journey-app .dock-inline-question-actions>.live-review-accept{background:var(--forward)!important;color:var(--on-forward)!important}

/* A confirmed change leaves just its outlined acknowledgement and return action. */
body.compact-journey-app .eval-review-dock.has-accepted-change,body.compact-journey-app .inspection-review-dock.has-accepted-change{grid-template-columns:repeat(2,minmax(0,1fr))}
body.compact-journey-app .has-accepted-change>:is(.eval-review-done,.inspection-review-done){grid-column:2!important}

/* Mark-change reasons live beside the selected answer on the sheet itself. */
body.compact-journey-app .review-image-plane>.sheet-reason-bubbles{position:absolute;z-index:8;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:5px;width:min(340px,calc(100vw - 48px));max-width:none;max-height:none;overflow:visible;transform:translateX(-50%);margin:0;padding:0;pointer-events:auto}
body.compact-journey-app .sheet-reason-bubbles>.review-reason-chip{flex:0 1 auto;min-width:0;min-height:32px;height:auto;margin:0;padding:5px 8px;border:1px solid var(--brand);border-radius:999px;background:var(--surface);color:var(--action-ink);box-shadow:0 1px 4px rgb(var(--brand-rgb)/.15);font-size:10px;line-height:14px;white-space:normal;letter-spacing:0;text-transform:none}
body.compact-journey-app .sheet-reason-bubbles>.review-reason-chip[aria-pressed=true]{background:var(--brand);color:var(--on-brand)}

body.compact-journey-app .sheet-reason-bubbles>.review-reason-chip:last-child{grid-column:1/-1;justify-self:center}

/* Strong green/red answer boundaries in both checked-sheet views; amber is unchanged. */
body.compact-journey-app :is(.eval-review-view,.review-inspection) .sheet-annotation.annotation-high{border:2.5px dashed #009640}
body.compact-journey-app :is(.eval-review-view,.review-inspection) .sheet-annotation.annotation-low{border:2.5px dashed #DC2626}

/* Checked paper remains inline; only its answer boxes are actionable. */
body.compact-journey-app .eval-review-view .review-image-plane>img{cursor:default}

/* Selecting an answer updates its explanation without moving the reading position. */
body.compact-journey-app main.eval-review-view,body.compact-journey-app .eval-review-view :is(.review-details,.review-paper-sticky){overflow-anchor:none}

/* Live uploaded-page actions use SecondaryButton, including its disabled state. */
body.compact-journey-app .live-stack-child-secondary{width:100%;margin-block:8px}
body.compact-journey-app .live-stack-child-secondary:disabled{opacity:.4;cursor:default;pointer-events:none;box-shadow:none}
body.compact-journey-app .teacher-wait-overlay>.teacher-wait-child-back{position:absolute;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);width:calc(100% - 32px);max-width:680px;margin:0;pointer-events:auto}
/* Live docks live outside main's animation/transition containing block (WebKit). */
body.compact-journey-app>#live-action-dock{display:block!important;height:auto!important;min-height:0!important;max-height:none!important;padding:0!important;overflow:visible!important;position:fixed;inset:auto 0 0;z-index:100;box-sizing:border-box;width:100%;margin:0;transform:none;translate:none;animation:none;transition:none;view-transition-name:none;background:var(--page);color:var(--ink);font:inherit}
body.compact-journey-app>#live-action-dock[hidden]{display:none!important}
body.compact-journey-app>#live-action-dock>.shell-action-dock{position:relative!important;inset:auto!important;transform:none!important;translate:none!important;animation:none!important;transition:none!important;box-sizing:border-box;width:100%;max-width:none;margin:0;padding:12px max(16px,env(safe-area-inset-left),env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom));background:var(--page);pointer-events:auto;border-top:1px solid rgb(var(--divider-rgb))}

/* App-wide centred screen copy, including the body-level Live action dock. */
body.compact-journey-app :is(main,#live-action-dock),body.compact-journey-app :is(main,#live-action-dock) *{text-align:center!important}
body.compact-journey-app main .mp-screen-title-row{justify-content:center!important}
body.compact-journey-app main .mp-screen-title-copy{flex:1;min-width:0;align-items:center!important}
body.compact-journey-app main :is(.sheets-student-tile,.eval-student-tile,.class-card,.lists-resume) :is(.flex-col,.ds-tile-copy){align-items:center!important}
body.compact-journey-app main :is(.sheets-student-tile,.eval-student-tile,.class-card,.lists-resume) span.flex:not(.flex-col){justify-content:center!important}
body.compact-journey-app main .sheets-counter>div{justify-content:center;gap:10px}

/* Equal side tracks keep stacked text on the same screen-centre axis. */
body.compact-journey-app main .mp-screen-title:has(>.mp-back){grid-template-columns:36px minmax(0,1fr) 36px!important}
body.compact-journey-app main .mp-screen-title:has(>.mp-back)>.mp-screen-title-row{grid-column:2}
body.compact-journey-app main :is(.sheets-student-tile,.eval-student-tile):not([hidden]){display:grid!important;grid-template-columns:44px minmax(0,1fr) 44px;column-gap:12px;padding-inline:12px!important}
body.compact-journey-app main :is(.sheets-student-tile,.eval-student-tile)>span.flex-col{width:100%;min-width:0}
body.compact-journey-app main :is(.sheets-student-tile,.eval-student-tile)>svg{justify-self:end}
body.compact-journey-app main :is(.class-card,.lists-resume):not([hidden]){display:grid!important;grid-template-columns:56px minmax(0,1fr) 56px;padding-inline:16px!important}
body.compact-journey-app main :is(.class-card,.lists-resume)>:last-child{justify-self:end}

/* Filters own visibility; layout must never override a hidden student. */
body.compact-journey-app :is(main,#live-action-dock) [hidden]{display:none!important}
body.compact-journey-app main .eval-student-tile:not([hidden]){grid-template-columns:70px minmax(0,1fr) 70px;align-items:center}
body.compact-journey-app main .eval-tile-trailing{display:flex;align-items:center;justify-content:flex-end;gap:6px;width:100%;min-width:0}
body.compact-journey-app main .eval-tile-trailing>svg{flex:none;align-self:center}

/* Student rows use status words and score colours, without extra status dots. */
body.compact-journey-app main :is(.sheets-student-tile,.eval-student-tile) .ds-avatar::after{content:none!important;display:none!important}
body.compact-journey-app main :is(.sheets-student-tile,.eval-student-tile) .ds-dot{display:none!important}
body.compact-journey-app main :is(.sheets-student-tile,.eval-student-tile)>span.relative>span.absolute{display:none!important}

/* Compact no-doubts success state: keep its message above the phone dock. */
body.compact-journey-app main .paper-no-doubts{box-sizing:border-box;flex:none;width:100%;max-width:600px;margin:0 auto;padding:12px 16px}
body.compact-journey-app main .paper-no-doubts .reading-success-burby{margin:0 0 8px}
body.compact-journey-app main .paper-no-doubts .reading-success-burby img{width:clamp(72px,16dvh,120px);height:auto;max-height:120px;object-fit:contain}
body.compact-journey-app main .paper-no-doubts .paper-no-doubts-message{margin:8px 0 0;line-height:1.4}
body.compact-journey-app main:has(>.paper-no-doubts)>.paper-topic-box{padding:10px 12px;margin-bottom:10px}
body.compact-journey-app main:has(>.paper-no-doubts)>.mp-screen-title{margin-bottom:12px;padding-block:8px}

/* Evaluate filter feedback follows the live pressed state immediately. */
body.compact-journey-app main.eval-list-view :is(.eval-filters,.results-filters)>button[aria-pressed="false"]{background:var(--brand-tint)!important;color:var(--action-ink-dark)!important;font-weight:500!important;box-shadow:none!important}
body.compact-journey-app main.eval-list-view :is(.eval-filters,.results-filters)>button[aria-pressed="true"]{background:var(--brand)!important;color:var(--on-brand)!important;font-weight:700!important;box-shadow:none!important}

.skill-name-toggle{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:start;cursor:pointer;overflow-wrap:anywhere}.skill-name-toggle[aria-expanded="true"]{-webkit-line-clamp:unset;overflow:visible}.live-skill{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 10px}.live-skill progress{grid-column:1/-1}.skill-marks{white-space:nowrap}

.saved-skill-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px}

/* Keep the two-word mark-change label inside its compact dock button. */
body.compact-journey-app .has-inline-question-actions .dock-inline-question-actions>.live-review-accept{white-space:normal}
body.compact-journey-app .has-inline-question-actions .dock-inline-question-actions>.live-review-accept>span:not(.nyne-saving-ring){display:block;box-sizing:border-box;min-width:0;max-width:100%;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none;line-height:14px;text-align:center}
