/* Recitations workspace: equal desktop columns, existing creation flow on narrow screens. */
:root:root:root:root body.page-recitations .recitation-workspace {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-areas:"create tasks";
  align-items:start; gap:24px; min-width:0; max-width:100%;
}
:root:root:root:root body.page-recitations .recitation-create-panel { grid-area:create; min-width:0; margin:0; padding:0; }
:root:root:root:root body.page-recitations .recitation-task-column { grid-area:tasks; min-width:0; }
:root:root:root:root body.page-recitations .recitation-task-column>.panel { min-width:0; margin:0 0 16px; padding:0; }
:root:root:root:root body.page-recitations .recitation-task-column .list-row { min-width:0; flex-wrap:wrap; gap:8px 16px; }
:root:root:root:root body.page-recitations .recitation-task-column .list-row>:is(span,small) { min-width:0; max-width:100%; overflow-wrap:anywhere; }
:root:root:root:root body.page-recitations .recitation-workspace.is-readonly { grid-template-columns:minmax(0,1fr); grid-template-areas:"filter" "tasks"; }
:root:root:root:root body.page-recitations .recitation-workspace>.readonly-class-filter { grid-area:filter; margin:0; }
:root:root:root:root body.page-recitations .recitation-create-heading {
  display:flex; align-items:center; justify-content:space-between; flex-wrap:nowrap; gap:10px;
}
:root:root:root:root body.page-recitations .recitation-create-heading>h2 { margin:0; min-width:0; white-space:nowrap; }
:root:root:root:root body.page-recitations .recitation-create-heading>.score-roller-tools {
  width:auto; flex:0 0 auto; margin:0; justify-content:flex-end;
}
:root:root:root:root body.page-recitations .recitation-create-heading .score-roller-sound {
  min-width:0; min-height:44px; padding:8px 10px!important; font-size:15px!important; white-space:nowrap;
}
/* Retain accessible field names without repeating them above obvious controls. */
:root:root:root:root body.page-recitations .recitation-context-row .recitation-field-label {
  position:absolute; width:1px; height:1px; padding:0!important; margin:-1px!important;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
:root:root:root:root body.page-recitations .recitation-create-panel .recitation-context-row {
  grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:end;
}
:root:root:root:root body.page-recitations .recitation-create-panel .classroom-choice-fieldset { grid-column:1 / -1; }
:root:root:root:root body.page-recitations .recitation-create-panel .recitation-subject-controls {
  grid-template-columns:minmax(0,1fr) minmax(136px,.8fr); gap:12px;
}
:root:root:root:root body.page-recitations .recitation-subject-controls .recitation-option-row input[type=radio] {
  position:absolute; width:1px!important; min-width:0!important; max-width:1px!important;
  height:1px!important; min-height:0!important; padding:0!important; margin:0!important;
  overflow:hidden; clip-path:inset(50%); opacity:0;
}
:root:root:root:root body.page-recitations .recitation-create-panel .recitation-context-row :is(input:not([type=radio]):not([type=hidden]),select) {
  min-width:0; width:100%; max-width:100%; box-sizing:border-box;
}
:root:root:root:root body.page-recitations .recitation-create-panel .recitation-bottom-row { grid-template-columns:minmax(0,1fr); }
@media(max-width:900px) {
  :root:root:root:root body.page-recitations .recitation-workspace { grid-template-columns:minmax(0,1fr); grid-template-areas:"create" "tasks"; gap:24px; }
}
/* Recitation creation only. Keep the shared score roller geometry unchanged. */
:root:root:root:root body.page-recitations .recitation-page-picker {
  min-width:0; max-width:100%; margin:0; padding:14px 16px;
  border:1px solid var(--geo-control-line,var(--st-line)); border-radius:12px;
  background:var(--geo-soft,var(--st-soft)); color:var(--geo-ink,var(--st-ink));
}
:root:root:root:root body.page-recitations .recitation-page-heading {
  display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 6px;
}
:root:root:root:root body.page-recitations .recitation-page-heading>h3 { margin:0; font-size:20px; line-height:1.35; }
:root:root:root:root body.page-recitations .recitation-page-type { min-width:0; width:144px; max-width:60%; margin-left:auto; }
:root:root:root:root body.page-recitations .recitation-page-type>select { width:100%; min-height:44px; margin:0; font-size:16px; }
:root:root:root:root body.page-recitations .recitation-page-body {
  display:grid; grid-template-columns:minmax(0,1fr) clamp(72px,24%,120px); align-items:center; gap:12px; min-width:0;
}
/* Selected option-2 shell has an empty slot; the real roller occupies it. */
:root:root:root:root body.page-recitations .recitation-page-ribbon {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(66px,30%); grid-template-rows:auto minmax(76px,1fr);
  align-items:stretch; gap:10px 4%; width:100%; max-width:100%; min-width:0;
  min-height:188px; padding:20px 10% 24px; box-sizing:border-box;
  /* Inline percentages below are relative to the ribbon, not the full row. */
  padding-inline:22px;
  background:transparent url('score-ink-ribbon.webp') center / 105% 115% no-repeat;
}
:root:root:root:root body.page-recitations .recitation-page-ribbon>label {
  display:block; grid-column:1; grid-row:1; align-self:start; margin:0!important; padding:0!important;
  font-size:22px!important; line-height:1.3; font-weight:850; color:#101112!important; text-align:center;
}
:root:root:root:root body.page-recitations .recitation-page-ribbon>.score-roller-field { display:contents; }
:root:root:root:root body.page-recitations .recitation-page-ribbon [data-recitation-page-candidate] {
  grid-column:1; grid-row:2; align-self:stretch; width:100%; min-width:0; max-width:100%; min-height:76px;
  padding:0!important; margin:0!important; font-size:58px!important; font-weight:900; line-height:1.1;
  color:#101112!important; text-align:center; background:transparent!important; border:0!important; border-radius:0!important; box-shadow:none!important;
}
:root:root:root:root body.page-recitations .recitation-page-ribbon .score-roller-control {
  grid-column:2; grid-row:1 / 3; align-self:stretch; width:100%; min-width:66px; height:100%; min-height:140px;
  background:transparent; border:0; border-radius:4px; box-shadow:none;
}
:root:root:root:root body.page-recitations .recitation-page-ribbon .score-roller-grip {
  display:block; inset:0 9% 0 6%; border:0; border-radius:0; box-shadow:none;
  background:transparent url('score-ink-ribbon-wheel.webp') center calc(50% + var(--roller-offset,0px)) / 143% 109% no-repeat;
}
:root:root:root:root body.page-recitations .recitation-page-ribbon .score-roller-grip::after { content:none; }
:root:root:root:root body.page-recitations .recitation-page-ribbon :is(.score-roller-plus,.score-roller-minus) { display:none; }
:root:root:root:root body.page-recitations .recitation-page-ribbon .score-roller-control.is-dragging { box-shadow:inset 0 0 0 2px #d8fa20; }
:root:root:root:root body.page-recitations .recitation-page-actions { display:flex; align-self:stretch; min-width:0; max-width:100%; padding-block:20px; }
:root:root:root:root body.page-recitations .recitation-page-actions [data-recitation-page-add] {
  display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
  width:100%; min-width:0; max-width:100%; min-height:140px!important; padding:10px 12px!important;
  font-size:18px!important; line-height:1.4; font-weight:800!important; white-space:nowrap;
  color:var(--geo-ink,var(--st-ink))!important; background:var(--geo-soft,var(--st-soft))!important;
  border:1px solid var(--geo-control-line,var(--st-line))!important; border-radius:8px!important; box-shadow:none!important;
}
:root:root:root:root body.page-recitations .recitation-page-selected { display:flex; flex-wrap:wrap; gap:7px; max-height:184px; overflow:auto; padding:4px; margin:10px -4px 0; scrollbar-gutter:stable; }
:root:root:root:root body.page-recitations .recitation-page-selected[hidden] { display:none; }
:root:root:root:root body.page-recitations [data-recitation-pages][hidden] { display:none!important; }
:root:root:root:root body.page-recitations .recitation-page-chip {
  min-width:0; min-height:44px; padding:8px 12px; border:1px solid var(--geo-blue,var(--st-blue)); border-radius:7px;
  background:var(--geo-blue-soft,var(--st-soft)); color:var(--geo-blue-ink,var(--st-ink));
  font-size:16px; line-height:1.3; font-weight:800; touch-action:manipulation; cursor:pointer; box-shadow:none;
}
:root:root:root:root body.page-recitations .recitation-page-state { margin:10px 0 0; min-height:20px; font-size:14px; color:var(--geo-muted,var(--st-muted)); line-height:1.4; }
@media(max-width:520px) {
  :root:root:root:root body.page-recitations .recitation-create-heading { gap:8px; }
  :root:root:root:root body.page-recitations .recitation-create-heading>h2 { font-size:clamp(16px,4.5vw,20px); }
  :root:root:root:root body.page-recitations .recitation-create-heading .score-roller-sound { font-size:14px!important; padding-inline:8px!important; }
  :root:root:root:root body.page-recitations .recitation-create-panel .recitation-context-row { grid-template-columns:minmax(0,1fr); }
  :root:root:root:root body.page-recitations .recitation-create-panel .recitation-subject-controls { grid-template-columns:minmax(0,1fr); }
  :root:root:root:root body.page-recitations .recitation-page-picker { padding:10px; }
  :root:root:root:root body.page-recitations .recitation-page-body { grid-template-columns:minmax(0,1fr) 64px; gap:10px; }
  :root:root:root:root body.page-recitations .recitation-page-ribbon { padding-inline:10px; grid-template-columns:minmax(0,1fr) minmax(44px,34%); }
  :root:root:root:root body.page-recitations .recitation-page-ribbon .score-roller-control { min-width:44px; }
  :root:root:root:root body.page-recitations .recitation-page-ribbon>label { font-size:20px!important; }
  :root:root:root:root body.page-recitations .recitation-page-ribbon [data-recitation-page-candidate] { font-size:clamp(32px,9vw,44px)!important; }
}
@media(prefers-reduced-motion:reduce) {
  :root:root:root:root body.page-recitations .recitation-page-ribbon .score-roller-grip { background-position:center!important; }
}
@media(forced-colors:active) {
  :root:root:root:root body.page-recitations .recitation-page-ribbon { background:Canvas; border:1px solid CanvasText; }
  :root:root:root:root body.page-recitations .recitation-page-ribbon :is(label,[data-recitation-page-candidate]) { color:CanvasText!important; }
  :root:root:root:root body.page-recitations .recitation-page-ribbon .score-roller-grip { background:repeating-linear-gradient(to bottom,Canvas 0 5px,CanvasText 5px 6px,Canvas 6px 8px); border:1px solid CanvasText; }
  :root:root:root:root body.page-recitations .recitation-page-chip { background:Highlight; color:HighlightText; border-color:Highlight; }
}
