/* Local assets only. Readable, responsive server-rendered interface. */
:root {
  color-scheme:light;
  --ink:#172b3a;
  --muted:#566678;
  --accent:#2459a9;
  --accent-soft:#eef4fd;
  --bg:#f6f7f9;
  --line:#dce2e9;
  --error:#a52b31;
  --ok:#28704d;
  --radius:10px;
  --shadow:0 1px 3px #172b3a05
}
* {
  box-sizing:border-box
}
html {
  scrollbar-gutter:stable
}
main,section,form,article {
  min-width:0
}
img {
  max-width:100%
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font:16px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
a {
  color:var(--accent);
  text-underline-offset:3px;
  overflow-wrap:anywhere
}
a:hover {
  color:#174282
}
h1,h2,h3,p {
  margin-top:0
}
h1 {
  font-size:clamp(1.65rem,3vw,2.15rem);
  line-height:1.2;
  letter-spacing:-.025em;
  margin-bottom:.7rem
}
h2 {
  font-size:1.25rem;
  line-height:1.35;
  margin:1.8rem 0 .8rem
}
h3 {
  font-size:1.05rem;
  line-height:1.4
}
ul,ol {
  padding-left:1.4rem
}
li+li {
  margin-top:.35rem
}
strong {
  font-weight:700
}
small,.hint,.helptext {
  font-size:.9rem;
  color:var(--muted)
}
.hint,.helptext {
  display:block;
  margin:.35rem 0
}
.eyebrow {
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:700;
  color:var(--accent);
  margin-bottom:.4rem
}
.muted {
  color:var(--muted)
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
[hidden] {
  display:none!important
}
.site-header {
  background:#fff;
  border-bottom:1px solid var(--line);
  padding:.8rem max(1.25rem,calc((100vw - 1380px)/2));
  display:flex;
  gap:1.5rem;
  align-items:center;
  flex-wrap:wrap
}
.brand {
  font-size:1.45rem;
  font-weight:750;
  letter-spacing:-.04em;
  text-decoration:none;
  color:var(--ink);
  white-space:nowrap
}
.brand span {
  color:var(--accent)
}
nav,.actions {
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap
}
.site-header nav {
  flex:1;
  gap:.2rem
}
.site-header nav a {
  padding:.6rem .8rem;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  border-radius:7px;
  font-size:.92rem;
  font-weight:600;
  white-space:nowrap
}
.site-header nav a[aria-current] {
  background:var(--accent-soft);
  color:#174282
}
.site-header nav a:hover {
  background:#f2f5f9
}
.session {
  display:flex;
  align-items:center;
  gap:.75rem;
  font-size:.85rem;
  color:var(--muted)
}
.session form {
  margin:0
}
main {
  max-width:1380px;
  margin:2.2rem auto;
  padding:0 1.5rem;
  min-height:55vh
}
footer {
  margin-top:3rem;
  padding:2rem 1.25rem;
  text-align:center;
  color:var(--muted);
  font-size:.88rem;
  background:#f6f7f9;
  border-top:1px solid var(--line)
}
footer p {
  margin:.4rem auto;
  max-width:650px
}
.skip-link {
  position:absolute;
  top:-100px;
  left:1rem;
  background:var(--ink);
  color:#fff;
  padding:.7rem 1rem;
  z-index:100
}
.skip-link:focus {
  top:.5rem;
  color:#fff
}
.breadcrumbs {
  color:var(--muted);
  font-size:.9rem;
  margin-bottom:1.2rem
}
.page-heading,.section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap
}
.page-heading {
  align-items:flex-start;
  margin-bottom:1.4rem
}
.page-heading>div {
  max-width:820px
}
.page-heading p:last-child {
  margin-bottom:0
}
.section-heading h2,.card>h2:first-child {
  margin-top:0
}
.card,.status-panel,.save-bar {
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.3rem;
  margin:1.2rem 0;
  box-shadow:var(--shadow)
}
.narrow {
  max-width:560px;
  margin:2rem auto
}
.grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));
  gap:1rem
}
.grid .card {
  margin:0
}
.scene-grid {
  grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr))
}
.scene-link {
  display:block;
  text-decoration:none;
  color:var(--ink);
  transition:border-color .12s,box-shadow .12s
}
.scene-link:hover {
  border-color:var(--accent);
  box-shadow:0 4px 12px #172b3a0b
}
.scene-link h3 {
  font-size:1.1rem;
  margin:.8rem 0
}
.scene-counts {
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:.9rem
}
.badge {
  display:inline-flex;
  align-items:center;
  padding:.22rem .6rem;
  border-radius:6px;
  background:#f0f2f5;
  color:#48586a;
  font-size:.8rem;
  font-weight:700;
  white-space:normal
}
.badge-complete {
  background:#e4f1e9;
  color:#185338
}
.badge-error {
  background:#fdf0f1;
  color:var(--error)
}
.badge-progress {
  background:#eef4fd;
  color:#24518a
}
.stats {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(125px,1fr));
  gap:.65rem;
  margin:1.2rem 0
}
.stats>div {
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:.85rem 1rem;
  font-size:.85rem
}
.stats strong {
  display:block;
  font-size:1.2rem;
  color:#172b3a
}
.status-panel .section-heading p {
  margin:0
}
.checklist {
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  margin:1rem 0
}
.checklist ul {
  margin-bottom:.5rem
}
.next-step {
  background:#fff;
  border:1px solid #dce2e9;
  border-left:3px solid var(--accent)
}
.next-step h2 {
  margin-top:0
}
.stepper {
  display:flex;
  list-style:none;
  padding:0;
  gap:.4rem;
  margin:1.2rem 0 1.5rem;
  counter-reset:step
}
.stepper li {
  flex:1;
  margin:0;
  min-width:0
}
.stepper a {
  display:flex;
  align-items:center;
  gap:.45rem;
  padding:.7rem .6rem;
  border-radius:8px;
  background:#f0f2f5;
  color:var(--muted);
  font-size:.83rem;
  font-weight:650;
  text-decoration:none;
  height:100%
}
.stepper a>span {
  display:grid;
  place-items:center;
  flex:none;
  width:1.55rem;
  height:1.55rem;
  border-radius:50%;
  background:#fff;
  font-size:.8rem
}
.stepper .done a {
  background:#e3f0e9;
  color:#1b563c
}
.stepper .current a {
  background:var(--accent-soft);
  color:var(--accent);
  box-shadow:inset 0 0 0 1px #bfd2ee
}
.stepper .current a>span {
  color:var(--accent)
}
form {
  margin:1rem 0
}
form p {
  margin:1rem 0
}
label {
  display:block;
  font-weight:650;
  font-size:.93rem;
  margin-bottom:.35rem
}
input,select,textarea {
  font:inherit;
  color:var(--ink);
  padding:.6rem .7rem;
  border:1px solid #8493a5;
  border-radius:7px;
  max-width:100%;
  background:#fff;
  min-height:44px
}
input:not([type=checkbox]):not([type=file]):not([type=radio]):not([type=hidden]),textarea {
  width:100%
}
select {
  width:100%
}
textarea {
  resize:vertical;
  line-height:1.5
}
input[type=file] {
  width:100%;
  font-size:.85rem;
  padding:.35rem;
  background:#f8f9fb
}
input::file-selector-button {
  padding:.45rem .6rem;
  min-height:44px;
  color:var(--ink);
  background:#fff;
  border:1px solid var(--line);
  border-radius:4px;
  cursor:pointer;
  margin-right:.5rem
}
input[type=checkbox],input[type=radio] {
  width:1.2rem;
  height:1.2rem;
  min-height:0;
  margin:0;
  flex:none;
  accent-color:var(--accent)
}
fieldset {
  border:0;
  padding:0;
  margin:0;
  min-width:0
}
legend {
  padding:0 .35rem;
  font-size:1rem;
  font-weight:750
}
.field {
  margin:.85rem 0;
  min-width:0
}
.checkbox-label {
  display:flex;
  align-items:center;
  gap:.6rem;
  font-weight:500;
  line-height:1.4;
  min-height:44px
}
.actions>form {
  margin:0
}
.actions>.field {
  margin:0;
  min-width:140px
}
.filter-form {
  display:flex;
  gap:.75rem;
  align-items:flex-end;
  flex-wrap:wrap;
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  padding:1rem;
  margin:1.2rem 0
}
.filter-form .field {
  flex:1;
  min-width:160px;
  margin:0
}
.filter-form label {
  font-size:.85rem
}
.form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 1.2rem
}
.form-grid .full-width {
  grid-column:1/-1
}
button,.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  cursor:pointer;
  font:650 .95rem system-ui;
  padding:.7rem 1rem;
  min-height:44px;
  color:#fff;
  background:var(--accent);
  border:1px solid var(--accent);
  border-radius:8px;
  text-decoration:none;
  line-height:1.4;
  text-align:center;
  max-width:100%
}
button:hover,.button:hover {
  background:#174282;
  border-color:#174282;
  color:#fff
}
.secondary {
  background:#fff;
  color:var(--ink);
  border-color:#b5c0cd
}
.secondary:hover {
  background:var(--accent-soft);
  color:#174282;
  border-color:var(--accent)
}
.compact {
  font-size:.85rem;
  padding:.45rem .65rem;
  min-height:44px
}
button:disabled {
  opacity:1;
  color:#647286;
  background:#eef1f5;
  border-color:#d4dce6;
  cursor:not-allowed
}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible {
  outline:3px solid #2459a9;
  outline-offset:3px
}
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true] {
  border:2px solid var(--error)
}
.errorlist {
  color:var(--error);
  padding-left:1.3rem;
  font-size:.93rem
}
.errorlist.nonfield {
  background:#fdf0f1;
  border-left:4px solid var(--error);
  padding:.8rem 1rem .8rem 2rem;
  margin:1rem 0
}
.dirty-state {
  font-size:.9rem;
  color:var(--muted)
}
.is-dirty .dirty-state {
  color:var(--muted);
  font-weight:650
}
.save-error {
  color:var(--error);
  font-weight:650
}
.save-bar {
  border-top:1px solid var(--line)
}
.save-bar #save-state {
  font-weight:600
}
.message {
  padding:1rem 1.2rem;
  border:1px solid var(--line);
  border-left:3px solid var(--accent);
  background:#fff;
  border-radius:0 8px 8px 0;
  margin:1rem 0;
  overflow-wrap:anywhere
}
.message.error {
  background:#fdf0f1;
  border-color:var(--error);
  color:#8e2329
}
.message.success {
  border-left-color:var(--ok);
  color:var(--ok)
}
.empty-state {
  padding:1.2rem;
  background:#fff;
  border:1px dashed var(--line);
  border-radius:8px;
  color:var(--muted)
}
.photos {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));
  gap:1rem;
  margin:1rem 0
}
.pair-photos {
  grid-template-columns:repeat(2,minmax(0,1fr))
}
figure {
  margin:0;
  min-width:0
}
figure img,.photo-slot img {
  width:100%;
  height:200px;
  object-fit:contain;
  background:#f2f4f7;
  border-radius:8px;
  display:block
}
.photo-zoom {
  display:block;
  width:100%;
  border:1px solid var(--line);
  background:#f2f4f7;
  padding:0;
  border-radius:8px;
  overflow:hidden
}
.photo-zoom:hover {
  background:#edf1f6;
  border-color:var(--accent)
}
figcaption {
  font-size:.85rem;
  margin:.4rem 0;
  overflow-wrap:anywhere
}
.photo-slot {
  border:1px solid var(--line);
  border-radius:9px;
  padding:.7rem;
  min-width:0
}
.photo-slot .field {
  margin:.7rem 0
}
.photo-placeholder {
  height:200px;
  display:grid;
  place-items:center;
  text-align:center;
  padding:1rem;
  background:#f2f4f7;
  border:1px dashed #c2cbd7;
  border-radius:8px;
  color:var(--muted);
  font-size:.85rem
}
.photo-order {
  display:flex;
  gap:.4rem;
  justify-content:space-between
}
.photo-order button {
  font-size:.8rem;
  padding:.4rem .5rem
}
.photo-dialog {
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1rem;
  width:min(1080px,calc(100vw - 2rem));
  max-height:calc(100dvh - 2rem);
  overflow:auto;
  color:var(--ink);
  box-shadow:0 12px 50px #0005
}
.photo-dialog::backdrop {
  background:#172b3a99
}
.dialog-toolbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  margin-bottom:.8rem
}
.dialog-toolbar h2 {
  margin:0
}
.photo-dialog img {
  width:100%;
  max-height:70vh;
  object-fit:contain;
  background:#f2f4f7
}
.photo-dialog p {
  font-size:.85rem;
  margin:.6rem 0 0
}
.criterion-row,.score-card {
  padding:1rem;
  border:1px solid var(--line);
  border-radius:9px;
  margin:1.2rem 0;
  background:#fff
}
.criterion-meta {
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:1rem
}
.criterion-states {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.75rem
}
.criterion-footer {
  display:grid;
  grid-template-columns:1fr auto;
  gap:1rem;
  align-items:center
}
.criterion-removed {
  background:#f5f5f5;
  opacity:.7
}
.criterion-removed legend {
  text-decoration:line-through
}
.key-card {
  border:1px solid var(--line);
  border-radius:9px;
  background:#fff;
  padding:1rem;
  margin:.8rem 0
}
.key-card h3 {
  margin-bottom:.5rem
}
.key-states {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.5rem;
  margin:.8rem 0 0
}
.key-states>div,.expected-states>div {
  background:#f4f6f9;
  border-radius:6px;
  padding:.6rem;
  min-width:0
}
.key-states dt,.expected-states dt {
  color:var(--muted);
  font-size:.8rem;
  text-transform:uppercase
}
.key-states dd,.expected-states dd {
  margin:.25rem 0 0;
  overflow-wrap:anywhere
}
.evaluation-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:2rem
}
.evaluation-layout>section {
  min-width:0
}
.evaluation-source h2:first-child {
  margin-top:0
}
.evaluation-form form {
  margin-top:0
}
.evaluation-form .score-card:first-child {
  margin-top:0
}
.expected-states {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.6rem;
  margin:0
}
.response {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  word-break:normal;
  background:#fff;
  padding:1.1rem;
  border:1px solid var(--line);
  border-radius:8px;
  font: .92rem/1.6 ui-monospace,SFMono-Regular,Consolas,monospace
}
pre {
  max-width:100%;
  overflow:auto
}
pre.response {
  max-height:65vh;
  overflow:auto
}
.metadata {
  display:grid;
  grid-template-columns:minmax(140px,1fr) 3fr;
  gap:.25rem 1rem
}
.metadata dt {
  font-weight:650;
  overflow-wrap:anywhere
}
.metadata dd {
  margin:0 0 .4rem;
  overflow-wrap:anywhere;
  white-space:pre-wrap
}
dt {
  font-weight:650
}
dd {
  margin:0 0 .6rem;
  overflow-wrap:anywhere
}
.table-scroll {
  overflow-x:auto;
  max-width:100%
}
table {
  border-collapse:separate;
  border-spacing:0;
  background:#fff;
  width:100%;
  margin:.8rem 0;
  border:1px solid var(--line);
  border-radius:8px;
  overflow:hidden;
  font-size:.9rem
}
th,td {
  border-bottom:1px solid var(--line);
  padding:.7rem;
  text-align:left;
  vertical-align:top;
  overflow-wrap:anywhere
}
th {
  background:#f4f6f9;
  font-size:.8rem;
  color:var(--muted)
}
tbody tr:last-child td {
  border-bottom:0
}
tbody tr:hover {
  background:#f8f9fb
}
.teacher-table td:first-child {
  font-weight:650
}
.teacher-table td details {
  font-weight:400;
  font-size:.85rem;
  padding:0;
  margin:.4rem 0
}
.pagination {
  display:flex;
  justify-content:center;
  margin:1.5rem 0;
  font-size:.9rem;
  gap:1rem
}
.subnav {
  padding:.8rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  margin:1.2rem 0
}
.subnav a {
  font-size:.9rem;
  font-weight:650
}
.section-spaced {
  scroll-margin-top:1rem;
  margin:2rem 0
}
details {
  padding:.85rem;
  background:#fff;
  border-radius:8px;
  margin:.6rem 0;
  min-width:0
}
details>summary {
  min-height:44px;
  padding:.55rem 0;
  cursor:pointer;
  font-weight:650;
  overflow-wrap:anywhere
}
details>summary::marker {
  color:var(--muted)
}
details[open]>summary {
  margin-bottom:.8rem
}
details .key-card:last-child {
  margin-bottom:0
}
.grade-group {
  border:1px solid var(--line);
  border-radius:9px;
  padding:1rem;
  margin:1rem 0;
  background:#fff
}
.grade-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.6rem 1.2rem
}
.grade-fields input {
  max-width:110px
}
.grade-total {
  background:#f7f9fc;
  padding:1rem;
  border:1px solid var(--line);
  border-radius:8px;
  font-weight:650
}
.grade-total output {
  font-size:1.4rem
}
.grade-group output {
  font-weight:650;
  color:var(--accent)
}
.help-layout {
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:2rem
}
.help-index {
  align-self:start;
  position:sticky;
  top:1rem;
  display:flex;
  flex-direction:column;
  gap:.5rem
}
.help-index a {
  background:#fff;
  padding:.5rem .7rem;
  border-radius:6px;
  text-decoration:none
}
.example {
  background:#f6f8fb;
  border-left:4px solid #b5c0cd;
  padding:1rem;
  border-radius:0 8px 8px 0
}
.example h3 {
  margin-bottom:.4rem
}
.version-list {
  display:flex;
  gap:.6rem;
  flex-wrap:wrap
}
.version-list a {
  background:#fff;
  padding:.4rem .6rem;
  border:1px solid var(--line);
  border-radius:5px
}
@media(max-width:1000px) {
  .site-header {
    gap:.75rem
  }
  .site-header nav {
    order:3;
    flex-basis:100%
  }
  .session {
    margin-left:auto
  }
  .stepper a {
    flex-direction:column;
    text-align:center;
    gap:.35rem
  }
  .teacher-table th,.teacher-table td {
    padding:.5rem
  }
  .evaluation-layout {
    gap:1.2rem
  }
  .criterion-states,.key-states {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:760px) {
  main {
    margin:1.25rem auto;
    padding:0 1rem
  }
  .site-header {
    padding:.8rem 1rem
  }
  .site-header nav a {
    font-size:.82rem;
    padding:.5rem
  }
  .page-heading {
    margin-bottom:1rem
  }
  .card,.status-panel,.save-bar {
    padding:1rem
  }
  .stepper {
    flex-wrap:wrap
  }
  .stepper li {
    flex:1 1 30%
  }
  .stepper a {
    flex-direction:row;
    text-align:left;
    font-size:.78rem
  }
  .form-grid,.criterion-meta,.criterion-footer,.evaluation-layout,.help-layout {
    grid-template-columns:1fr
  }
  .criterion-meta,.criterion-footer {
    gap:0
  }
  .grade-fields {
    grid-template-columns:1fr
  }
  .filter-form .field {
    flex:1 1 42%;
    min-width:120px
  }
  .filter-form button {
    align-self:end
  }
  .help-index {
    position:static;
    flex-direction:row;
    flex-wrap:wrap
  }
  .pair-photos img {
    height:170px
  }
  .metadata {
    grid-template-columns:1fr;
    gap:0
  }
  .metadata dd {
    margin-bottom:.8rem
  }
  .stats {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.4rem
  }
  .stats>div {
    padding:.6rem;
    font-size:.78rem
  }
  .stats strong {
    font-size:1.05rem
  }
  .stacked-table,.stacked-table thead,.stacked-table tbody,.stacked-table tr,.stacked-table td {
    display:block;
    min-width:0;
    width:100%
  }
  .stacked-table {
    border:0;
    background:transparent;
    overflow:visible
  }
  .stacked-table thead {
    position:absolute;
    clip:rect(0,0,0,0);
    width:1px;
    height:1px;
    overflow:hidden
  }
  .stacked-table tr {
    padding:.7rem;
    margin:.7rem 0;
    background:#fff;
    border:1px solid var(--line);
    border-radius:9px
  }
  .stacked-table td {
    display:grid;
    grid-template-columns:105px minmax(0,1fr);
    gap:.5rem;
    border:0;
    padding:.35rem;
    font-size:.85rem
  }
  .stacked-table td:before {
    content:attr(data-label);
    color:var(--muted);
    font-weight:600;
    font-size:.8rem
  }
  .stacked-table td[colspan] {
    display:block
  }
  .stacked-table td>details {
    margin:0
  }
  .stacked-table td>strong {
    font-weight:650
  }
  .stacked-table td .badge {
    justify-self:start
  }
  .stacked-table td form {
    margin:0
  }
  .photo-order button {
    min-height:44px
  }
  .grade-total {
    position:sticky;
    bottom:0;
    z-index:2;
    box-shadow:0 -3px 8px #172b3a0b
  }
  .dialog-toolbar {
    flex-wrap:wrap;
    align-items:flex-start
  }
  .dialog-toolbar h2 {
    font-size:1rem
  }
  .actions {
    gap:.65rem
  }
  .actions>button,.actions>.button {
    flex:1 1 auto
  }
  .page-heading .button {
    width:100%
  }
}
@media(max-width:400px) {
  .criterion-states {
    grid-template-columns:1fr
  }
  .key-states {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .stats {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .filter-form .field {
    flex-basis:100%
  }
  .pair-photos {
    grid-template-columns:1fr
  }
  .session {
    font-size:.75rem
  }
  .session button {
    padding:.4rem;
    font-size:.78rem
  }
  .stepper li {
    flex-basis:45%
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    transition:none!important
  }
}
@media print {
  .site-header,footer,button,.button,.filter-form,.save-bar,.pagination,.skip-link {
    display:none
  }
  main {
    max-width:none;
    margin:0;
    padding:0
  }
  body {
    background:#fff
  }
  .card {
    box-shadow:none;
    break-inside:avoid
  }
  .grade-total {
    position:static
  }
  pre.response {
    max-height:none
  }
  a {
    color:#000
  }
  .evaluation-layout {
    display:block
  }
}
.next-step {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:1.2rem;
  border-radius:10px;
  margin:1.3rem 0
}
.next-step p:last-child {
  margin-bottom:0
}
.next-step>div {
  max-width:850px
}
@media(max-width:760px) {
  .next-step {
    align-items:flex-start;
    flex-direction:column
  }
}
.summary-metrics {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:.5rem 1rem;
  margin-bottom:0;
  font-size:.9rem
}
.summary-metrics dt {
  font-weight:500;
  color:var(--muted)
}
.summary-metrics dd {
  font-weight:650;
  text-align:right;
  margin:0
}
.model-context {
  padding:.8rem 1rem;
  background:#f4f6f9;
  border-radius:8px;
  overflow-wrap:anywhere
}

/* Short prose workflow: one author text and one human evaluation. */
.text-reference textarea { min-height: 10rem; line-height: 1.65; resize: vertical; }
.reference-prose { line-height: 1.75; overflow-wrap: anywhere; max-width: 80ch; }
.text-example { margin-top: .8rem; }
form[data-text-workflow] .photo-upload-guidance { font-size: .9rem; }
@media (min-width: 960px) { form[data-text-workflow] .photo-editor { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
