/* SessionReview page-only layout and components. */ .sr-root { width: min(100%, 1360px); margin: 0 auto; display: grid; gap: var(--sp-5); } .sr-root--empty { --sr-empty-tone: var(--neutral-sig); } .sr-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--sp-5); padding: var(--sp-4) var(--sp-5); border: 1px solid var(--border-subtle); border-radius: var(--radius); background: linear-gradient(180deg, color-mix(in srgb, var(--bg-surface) 86%, var(--accent-tint)), var(--bg-surface)); box-shadow: var(--shadow-sm); } .sr-head__id { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: var(--sp-4); } .sr-avatar { width: 48px; height: 48px; border-radius: 50%; flex: none; display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-num); font-size: 20px; font-weight: 700; letter-spacing: 0; color: var(--clay-deep); background: var(--clay-tint); } .sr-head__name { min-width: 0; color: var(--text-strong); font-size: var(--fs-h3); font-weight: 680; letter-spacing: 0; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .sr-head__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; margin-top: 5px; color: var(--text-muted); font-size: var(--fs-xs); } .sr-head__meta .sr-mono { font-family: var(--font-num); } .sr-meta-sep { width: 3px; height: 3px; border-radius: 50%; background: var(--neutral-200); flex: none; } .sr-head__stats { display: grid; grid-template-columns: repeat(2, minmax(130px, auto)); gap: var(--sp-2); } .sr-stat { min-width: 0; display: grid; gap: 5px; padding: 9px 12px; border: 1px solid var(--border-subtle); border-radius: var(--radius); background: var(--bg-surface-2); } .sr-stat__lab { font-family: var(--font-num); font-size: var(--fs-kicker); font-weight: 650; letter-spacing: 0.06em; color: var(--text-muted); } .sr-stat__val { min-width: 0; display: inline-flex; align-items: center; gap: 7px; color: var(--text-strong); font-size: var(--fs-sm); font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .sr-stat__val--accent { color: var(--accent-deep); } .sr-cols { min-width: 0; display: grid; grid-template-columns: minmax(236px, 280px) minmax(0, 1fr) minmax(286px, 340px); grid-template-areas: "overview chart rubric" "overview flow rubric" "overview transcript good" "overview transcript growth" "overview transcript prepost" "overview transcript worksheet" "overview transcript feedback" "session session session"; gap: var(--sp-4); align-items: start; margin-top: 0; } .sr-cols--supervisor { grid-template-areas: "overview chart teacher" "overview flow rubric" "overview transcript good" "overview transcript growth" "overview transcript prepost" "overview transcript worksheet" "overview transcript feedback" "session session session"; } .sr-cols--learner { grid-template-columns: minmax(232px, 300px) minmax(380px, 1fr) minmax(264px, 328px); grid-template-areas: "overview transcript rubric" "chart transcript good" "flow transcript growth" "worksheet worksheet prepost" "worksheet worksheet feedback" "session session session"; } .sr-cols--learner .sr-overview { position: sticky; top: calc(var(--topbar-h) + var(--sp-4)); max-height: calc(100vh - var(--topbar-h) - var(--sp-5) - var(--sp-5)); overflow: auto; scrollbar-gutter: stable; } .sr-root--empty .sr-cols { grid-template-columns: minmax(236px, 300px) minmax(0, 1fr); grid-template-areas: "overview chart" "overview flow" "overview transcript" "overview rubric" "overview good" "overview growth" "overview prepost" "overview worksheet" "overview feedback" "session session"; } .sr-root--empty .sr-cols--supervisor { grid-template-areas: "overview chart" "overview flow" "overview teacher" "overview transcript" "overview rubric" "overview good" "overview growth" "overview prepost" "overview worksheet" "overview feedback" "session session"; } .sr-left, .sr-right { display: contents; } .sr-overview { grid-area: overview; min-width: 0; display: grid; gap: var(--sp-3); align-self: start; position: sticky; top: calc(var(--topbar-h) + var(--sp-4)); z-index: 1; max-height: calc(100vh - var(--topbar-h) - var(--sp-5) - var(--sp-5)); overflow: auto; scrollbar-gutter: stable; } .sr-feedback { grid-area: feedback; } .sr-card--chart { grid-area: chart; } .sr-card--flow { grid-area: flow; } .sr-card--rubric { grid-area: rubric; } .sr-card--teacher-review { grid-area: teacher; } .sr-card--good { grid-area: good; } .sr-card--growth { grid-area: growth; } .sr-card--prepost { grid-area: prepost; } .sr-card--worksheet { grid-area: worksheet; } .sr-card--transcript { grid-area: transcript; } .sr-session-id { grid-area: session; } .sr-card { min-width: 0; box-shadow: var(--shadow-sm); border-radius: var(--radius); } .sr-card--side { align-self: start; } @media (min-width: 1181px) { .sr-cols--supervisor { grid-template-columns: minmax(0, 1fr) minmax(286px, 340px); grid-template-areas: "main side"; align-items: start; } .sr-cols--supervisor .sr-left { grid-area: main; min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "overview overview" "chart flow" "transcript transcript"; gap: var(--sp-4); align-items: start; } .sr-cols--supervisor .sr-right { grid-area: side; min-width: 0; display: grid; gap: var(--sp-4); align-items: start; } .sr-cols--supervisor .sr-left > *, .sr-cols--supervisor .sr-right > * { grid-area: auto; } .sr-cols--supervisor .sr-overview { grid-area: overview; position: static; max-height: none; overflow: visible; scrollbar-gutter: auto; } .sr-cols--supervisor .sr-card--chart { grid-area: chart; } .sr-cols--supervisor .sr-card--flow { grid-area: flow; } .sr-cols--supervisor .sr-card--transcript { grid-area: transcript; align-self: start; } } .sr-root--empty .sr-card--side { padding-top: var(--sp-5); padding-bottom: var(--sp-5); } .sr-teacher-review__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-3); margin-bottom: var(--sp-3); } .sr-teacher-review__head b { display: block; margin-top: 6px; color: var(--text-strong); font-size: var(--fs-body); line-height: 1.35; } .sr-teacher-review__head--sub { margin-bottom: var(--sp-2); } .sr-eval-scope { display: grid; gap: var(--sp-2); margin-bottom: var(--sp-3); padding: 10px 11px; border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); background: var(--bg-surface-2); } .sr-eval-scope__title { display: inline-flex; align-items: center; gap: 7px; color: var(--text-strong); font-size: var(--fs-xs); line-height: 1.35; } .sr-eval-scope dl { display: grid; gap: 7px; margin: 0; } .sr-eval-scope dl div { display: grid; gap: 2px; } .sr-eval-scope dt { color: var(--text-strong); font-size: 11px; font-weight: 740; line-height: 1.35; } .sr-eval-scope dd { margin: 0; color: var(--text-muted); font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; } .sr-teacher-review__worksheet { margin-top: var(--sp-4); padding-top: var(--sp-4); border-top: 1px solid var(--border-subtle); } .sr-teacher-review__note { display: grid; gap: 7px; } .sr-teacher-review__note span { color: var(--text-muted); font-size: var(--fs-xs); font-weight: 700; } .sr-teacher-review__note textarea { width: 100%; min-height: 104px; resize: vertical; border: 1px solid var(--border-subtle); border-radius: var(--radius); background: var(--bg-surface-2); color: var(--text-body); padding: 10px 12px; font: inherit; font-size: var(--fs-sm); line-height: 1.5; } .sr-teacher-review__note textarea:focus-visible { outline: 2px solid var(--border-focus); outline-offset: 2px; border-color: var(--border-focus); box-shadow: 0 0 0 3px var(--focus-ring); } .sr-teacher-review__meta, .sr-teacher-review__error { margin: var(--sp-3) 0 0; font-size: var(--fs-xs); line-height: 1.45; } .sr-teacher-review__meta { color: var(--text-muted); } .sr-teacher-review__error { color: var(--crit-text); } .sr-teacher-review__actions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-2); margin-top: var(--sp-3); } .sr-teacher-review__actions .vg-btn { width: 100%; } .sr-teacher-review__actions--three { grid-template-columns: repeat(3, minmax(0, 1fr)); } .sr-summary { max-width: 68ch; margin: 0; color: var(--text-strong); font-size: clamp(19px, 1.7vw, 25px); font-weight: 650; letter-spacing: 0; line-height: 1.45; } .sr-overview .sr-summary { font-size: var(--fs-sm); font-weight: 520; line-height: 1.58; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; } .sr-summary .sr-hl { color: var(--accent-deep); } .sr-overview .sr-summary .sr-hl { font-weight: 650; } .sr-readiness { display: grid; grid-template-columns: 1fr; gap: 8px; padding-top: var(--sp-3); border-top: 1px solid var(--hair); } .sr-readiness span { min-width: 0; display: grid; gap: 4px; padding: 8px 10px; border-radius: var(--radius); background: var(--bg-surface-2); } .sr-readiness b { color: var(--text-strong); font-size: var(--fs-sm); line-height: 1.35; overflow-wrap: anywhere; } .sr-readiness small { color: var(--text-muted); font-size: var(--fs-xs); font-weight: 650; } .sr-actions { display: grid; grid-template-columns: 1fr; gap: var(--sp-3); } .sr-actions .vg-btn { width: 100%; } .sr-share-note { min-width: 0; margin: calc(var(--sp-2) * -1) 0 0; padding: 8px 10px; border: 1px solid var(--border-subtle); border-radius: var(--radius); background: var(--bg-surface-2); color: var(--text-muted); font-family: var(--font-num); font-size: var(--fs-xs); line-height: 1.45; overflow-wrap: anywhere; } .sr-share-note--error { color: var(--crit-text); background: var(--crit-tint); border-color: color-mix(in srgb, var(--crit-text) 28%, var(--border-subtle)); } .sr-empty { max-width: none; gap: var(--sp-2); padding: var(--sp-4); border-radius: var(--radius); background: var(--bg-surface-2); } .sr-empty .vg-empty__title { font-size: var(--fs-body); line-height: 1.35; } .sr-empty .vg-empty__desc { color: var(--text-body); font-size: var(--fs-sm); line-height: 1.55; } .sr-prepost__head { min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-3); } .sr-prepost__head > div { min-width: 0; display: grid; gap: 4px; } .sr-prepost__head b { color: var(--text-strong); font-size: var(--fs-sm); line-height: 1.35; } .sr-prepost__badge { flex: none; display: inline-flex; align-items: center; min-height: 28px; padding: 0 9px; border: 1px solid color-mix(in srgb, var(--accent) 24%, var(--border-subtle)); border-radius: var(--radius-sm); color: var(--accent-deep); background: var(--accent-tint); font-family: var(--font-num); font-size: 11px; font-weight: 750; white-space: nowrap; } .sr-prepost__note { margin: var(--sp-3) 0 0; color: var(--text-muted); font-size: var(--fs-xs); line-height: 1.5; } .sr-prepost__table { min-width: 0; display: grid; gap: 7px; margin-top: var(--sp-4); } .sr-prepost__row { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) repeat(2, minmax(58px, 68px)); gap: 8px; align-items: center; } .sr-prepost__row--head { color: var(--text-muted); font-family: var(--font-num); font-size: 10.5px; font-weight: 750; letter-spacing: 0.04em; text-transform: uppercase; } .sr-prepost__row--head span:not(:first-child) { text-align: center; } .sr-prepost__measure { min-width: 0; display: grid; gap: 2px; } .sr-prepost__measure b { min-width: 0; color: var(--text-strong); font-size: var(--fs-xs); line-height: 1.35; overflow-wrap: anywhere; } .sr-prepost__measure small { min-width: 0; color: var(--text-muted); font-size: 10.5px; line-height: 1.35; overflow-wrap: anywhere; } .sr-prepost__field { min-width: 0; display: grid; } .sr-prepost__field span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; } .sr-prepost__field input { width: 100%; min-width: 0; height: 36px; padding: 0 7px; border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); background: var(--bg-surface); color: var(--text-strong); font-family: var(--font-num); font-size: var(--fs-sm); font-weight: 650; text-align: center; } .sr-prepost__field input:focus-visible { outline: 2px solid var(--border-focus); outline-offset: 2px; border-color: var(--border-focus); box-shadow: 0 0 0 3px var(--focus-ring); } .sr-prepost__field input[aria-invalid="true"] { border-color: color-mix(in srgb, var(--crit-text) 44%, var(--border-subtle)); background: var(--crit-tint); } .sr-prepost__error { margin: var(--sp-3) 0 0; color: var(--crit-text); font-size: 12px; line-height: 1.45; } .sr-prepost__actions { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); margin-top: var(--sp-4); padding-top: var(--sp-3); border-top: 1px solid var(--hair); } .sr-prepost__actions span { min-width: 0; color: var(--text-muted); font-size: var(--fs-xs); line-height: 1.35; overflow-wrap: anywhere; } .sr-chart { position: relative; width: 100%; } .sr-chart__legend { display: flex; flex-wrap: wrap; gap: var(--sp-4); margin-bottom: var(--sp-4); } .sr-legend-item { display: inline-flex; align-items: center; gap: 7px; color: var(--text-body); font-size: var(--fs-xs); } .sr-legend-line { width: 18px; height: 0; border-top-width: 2px; border-top-style: solid; flex: none; } .sr-legend-line--client { border-top-color: var(--clay); } .sr-legend-line--baseline { border-top-style: dashed; border-top-color: var(--accent-bright); } .sr-chart__plot { position: relative; width: 100%; height: 180px; } .sr-chart__yaxis { position: absolute; left: 0; top: 0; bottom: 18px; width: 30px; display: flex; flex-direction: column; justify-content: space-between; padding-right: 8px; color: var(--text-muted); font-family: var(--font-num); font-size: 10px; text-align: right; } .sr-chart__canvas { position: absolute; left: 34px; right: 0; top: 0; bottom: 18px; } .sr-chart__svg { width: 100%; height: 100%; display: block; overflow: visible; } .sr-chart__xaxis { position: absolute; left: 34px; right: 0; bottom: 0; display: flex; justify-content: space-between; color: var(--text-muted); font-family: var(--font-num); font-size: 10px; } .sr-phasebar__track { min-width: 0; display: flex; min-height: 38px; border: 1px solid var(--hair); border-radius: var(--radius); overflow: hidden; } .sr-phase { min-width: 0; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 0 8px; border-right: 1px solid var(--hair); color: var(--text-body); font-size: var(--fs-xs); font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .sr-phase:last-child { border-right: none; } .sr-phase__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent-bright); flex: none; } .sr-phasebar__axis { display: flex; justify-content: space-between; margin-top: 7px; color: var(--text-muted); font-family: var(--font-num); font-size: 11px; } .sr-card--transcript { padding: 0; overflow: hidden; border-color: color-mix(in srgb, var(--accent) 14%, var(--border-subtle)); } .sr-tx__head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-5) var(--sp-5) var(--sp-3); border-bottom: 1px solid var(--hair); flex-wrap: wrap; } .sr-tx__filters { display: inline-flex; gap: 6px; flex: none; } .sr-chip-toggle { flex: none; min-height: 30px; padding: 4px 12px; border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); background: var(--bg-surface); color: var(--text-muted); font-family: var(--font-sans); font-size: var(--fs-xs); font-weight: 650; line-height: 1.35; white-space: nowrap; word-break: keep-all; cursor: pointer; transition: background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out); } .sr-chip-toggle:hover { color: var(--text-strong); border-color: var(--border-strong); } .sr-chip-toggle:focus-visible, .sr-ws-evidence:focus-visible, .sr-point__at:focus-visible { outline: 2px solid var(--border-focus); outline-offset: 2px; box-shadow: 0 0 0 3px var(--focus-ring); } .sr-chip-toggle[aria-pressed="true"] { color: var(--accent-deep); background: var(--accent-tint); border-color: transparent; } .sr-chip-toggle:disabled { cursor: not-allowed; opacity: .55; } .sr-turns { display: flex; flex-direction: column; padding: 0 var(--sp-5) var(--sp-4); } .sr-turn { display: grid; grid-template-columns: 58px minmax(0, 1fr); column-gap: var(--sp-4); padding: var(--sp-4) 0; } .sr-turn + .sr-turn { border-top: 1px solid var(--paper-2); } .sr-turn__rail { display: flex; flex-direction: column; align-items: center; gap: 6px; padding-top: 3px; } .sr-turn__ts { color: var(--text-muted); font-family: var(--font-num); font-size: 10px; } .sr-turn__node { width: 11px; height: 11px; border-radius: 50%; flex: none; } .sr-turn__node--learner { background: var(--accent-bright); } .sr-turn__node--client { background: var(--clay); } .sr-turn__stem { width: 2px; flex: 1; min-height: 8px; background: var(--hair); } .sr-turn__body { min-width: 0; } .sr-turn__who { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 5px; font-size: var(--fs-xs); font-weight: 650; letter-spacing: 0.01em; } .sr-turn__who--learner { color: var(--accent-deep); } .sr-turn__who--client { color: var(--clay-deep); } .sr-turn__said { max-width: 68ch; margin: 0; color: var(--text-strong); font-size: var(--fs-body); line-height: 1.62; } .sr-turn__said--client { color: var(--text-body); } .sr-technique { display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px; border-radius: var(--radius-sm); font-family: var(--font-sans); font-size: 11px; font-weight: 650; line-height: 1.5; white-space: nowrap; } .sr-technique__dot { width: 5px; height: 5px; border-radius: 50%; flex: none; } .sr-technique--empathy { color: var(--pos-text); background: var(--pos-tint); } .sr-technique--empathy .sr-technique__dot { background: var(--pos-solid); } .sr-technique--explore { color: var(--accent-deep); background: var(--accent-tint); } .sr-technique--explore .sr-technique__dot { background: var(--accent); } .sr-technique--reflect { color: var(--info-text); background: var(--info-tint); } .sr-technique--reflect .sr-technique__dot { background: var(--info-solid); } .sr-technique--confront { color: var(--clay-deep); background: var(--clay-tint); } .sr-technique--confront .sr-technique__dot { background: var(--clay); } .sr-technique--closed { color: var(--warn-text); background: var(--warn-tint); } .sr-technique--closed .sr-technique__dot { background: var(--warn-solid); } .sr-nonverbal { display: inline-flex; align-items: center; gap: 6px; min-width: 0; padding: 2px 8px; border: 1px solid var(--hair); border-radius: var(--radius-sm); background: var(--paper-1); color: var(--text-body); font-family: var(--font-sans); font-size: 11px; font-weight: 650; line-height: 1.5; white-space: nowrap; } .sr-nonverbal__dot { width: 5px; height: 5px; border-radius: 50%; flex: none; background: var(--text-muted); } .sr-nonverbal__detail { color: var(--text-muted); font-family: var(--font-num); font-size: 10px; font-weight: 650; } .sr-nonverbal--silence .sr-nonverbal__dot { background: var(--warn-solid); } .sr-nonverbal--pace .sr-nonverbal__dot { background: var(--info-solid); } .sr-nonverbal--barge_in .sr-nonverbal__dot { background: var(--clay); } .sr-nonverbal--audio .sr-nonverbal__dot { background: var(--accent); } .sr-nonverbal--paralinguistic .sr-nonverbal__dot { background: var(--good-solid); } .sr-nonverbal--prosody .sr-nonverbal__dot { background: var(--ink-soft); } .sr-nonverbal--audio_quality .sr-nonverbal__dot { background: var(--text-muted); } .sr-note { max-width: 68ch; margin-top: var(--sp-3); padding: var(--sp-3) var(--sp-4); border-radius: var(--radius); transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); } .sr-note--ai { background: color-mix(in srgb, var(--info-tint) 72%, var(--accent-tint)); } .sr-note--warn { background: var(--warn-tint); } .sr-note__head { display: flex; align-items: center; gap: 7px; margin-bottom: 5px; font-size: 11px; font-weight: 650; letter-spacing: 0.03em; } .sr-note--ai .sr-note__head { color: var(--accent-deep); } .sr-note--warn .sr-note__head { color: var(--warn-text); } .sr-note__head svg { flex: none; } .sr-note__tag { margin-left: auto; color: var(--text-muted); font-family: var(--font-num); font-size: 10px; font-weight: 650; letter-spacing: 0.04em; text-transform: uppercase; } .sr-note__body { display: grid; gap: 8px; color: var(--text-body); font-size: var(--fs-sm); line-height: 1.58; } .sr-md { display: grid; gap: 7px; } .sr-md__p { margin: 0; } .sr-md code { display: inline; padding: 1px 5px; border: 1px solid color-mix(in srgb, currentColor 18%, transparent); border-radius: 5px; font-family: var(--font-num); font-size: .92em; color: var(--text-strong); background: color-mix(in srgb, var(--bg-surface) 74%, transparent); white-space: normal; word-break: break-word; } .sr-md strong { color: var(--text-strong); font-weight: 720; } .sr-md__list { display: grid; gap: 4px; margin: 0; padding-left: 18px; } .sr-md__quote, .sr-note__quote { margin: 0; padding: 8px 10px; border-left: 3px solid color-mix(in srgb, var(--accent) 70%, var(--border-strong)); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; color: var(--text-strong); background: color-mix(in srgb, var(--bg-surface) 72%, var(--accent-tint)); } .sr-md__quote { display: grid; gap: 3px; } .sr-note__quote span { display: block; margin-bottom: 3px; color: var(--text-muted); font-family: var(--font-num); font-size: 10px; font-weight: 700; letter-spacing: 0.06em; } .sr-note__quote p { margin: 0; color: var(--text-strong); font-style: italic; } .sr-rubric { display: grid; gap: var(--sp-4); } .sr-rubric__row { min-width: 0; } .sr-rubric__row .sr-rubric__top { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-3); margin-bottom: 8px; } .sr-rubric__name { min-width: 0; color: var(--text-strong); font-size: var(--fs-sm); font-weight: 650; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .sr-rubric__qual { display: inline-flex; align-items: center; gap: 6px; flex: none; font-size: var(--fs-xs); font-weight: 650; } .sr-rubric__qual--good { color: var(--pos-text); } .sr-rubric__qual--watch { color: var(--warn-text); } .sr-rubric__qual .sr-technique__dot { width: 6px; height: 6px; } .sr-rubric__qual--good .sr-technique__dot { background: var(--pos-solid); } .sr-rubric__qual--watch .sr-technique__dot { background: var(--warn-solid); } .sr-rubric__cluster { margin-top: 6px; color: var(--text-muted); font-family: var(--font-num); font-size: 11px; } .sr-worksheet { display: grid; gap: var(--sp-4); margin-top: var(--sp-4); max-height: 620px; overflow: auto; padding-right: 4px; scrollbar-gutter: stable; } .sr-ws-toolbar { min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-3); } .sr-ws-toolbar > div { min-width: 0; display: grid; gap: 4px; } .sr-ws-state { color: var(--text-muted); font-size: 11px; line-height: 1.35; } .sr-ws-readonly { flex: none; min-height: 28px; display: inline-flex; align-items: center; padding: 0 9px; border: 1px solid var(--hair); border-radius: var(--radius-sm); color: var(--text-muted); background: var(--bg-surface-2); font-size: 11px; font-weight: 700; white-space: nowrap; } .sr-ws-section { min-width: 0; display: grid; gap: var(--sp-3); } .sr-ws-section h3 { margin: 0; color: var(--text-strong); font-size: var(--fs-sm); font-weight: 680; line-height: 1.35; } .sr-ws-items { display: grid; gap: 8px; } .sr-ws-item { min-width: 0; display: grid; gap: 6px; padding: 10px 11px; border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); background: var(--bg-surface-2); } .sr-ws-item__head { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; } .sr-ws-item__head b { min-width: 0; color: var(--text-strong); font-size: var(--fs-xs); font-weight: 680; line-height: 1.35; } .sr-ws-badge { flex: none; padding: 2px 7px; border-radius: var(--radius-sm); font-size: 10.5px; font-weight: 680; line-height: 1.45; white-space: nowrap; } .sr-ws-badge--medium { color: var(--pos-text); background: var(--pos-tint); } .sr-ws-badge--low { color: var(--accent-deep); background: var(--accent-tint); } .sr-ws-badge--none { color: var(--text-muted); background: var(--paper-2); } .sr-ws-input { width: 100%; min-height: 78px; resize: vertical; padding: 8px 9px; border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); background: var(--bg-surface); color: var(--text-body); font-family: var(--font-sans); font-size: var(--fs-xs); line-height: 1.55; overflow-wrap: anywhere; } .sr-ws-input:focus-visible { outline: 2px solid var(--border-focus); outline-offset: 2px; border-color: var(--border-focus); box-shadow: 0 0 0 3px var(--focus-ring); } .sr-ws-input.is-readonly { resize: none; cursor: default; color: var(--text-body); background: color-mix(in srgb, var(--bg-surface) 82%, var(--bg-surface-2)); } .sr-ws-input.is-readonly:focus-visible { outline: none; border-color: var(--border-subtle); box-shadow: none; } .sr-ws-input::placeholder { color: var(--text-muted); } .sr-ws-evidence { min-width: 0; width: 100%; padding: 0; border: none; background: none; color: var(--accent-deep); font-family: var(--font-sans); font-size: 11px; font-weight: 650; line-height: 1.5; text-align: left; cursor: pointer; overflow-wrap: anywhere; } .sr-ws-evidence:hover { text-decoration: underline; } .sr-ws-save-error { margin-top: var(--sp-3); color: var(--crit-text); font-size: 12px; line-height: 1.45; } .sr-ws-limitations { display: grid; gap: 5px; margin-top: var(--sp-4); padding-top: var(--sp-3); border-top: 1px solid var(--hair); } .sr-ws-limitations span { color: var(--text-muted); font-size: 11px; line-height: 1.45; } /* Empty state: keep the card as low-contrast as the other placeholders so an unanswered feedback block never outweighs the page heading or actions. */ .sr-feedback { min-width: 0; padding: var(--sp-5); border: 1px solid var(--border-subtle); border-radius: var(--radius); background: var(--bg-surface-2); } /* Filled state: only a real client quote earns the high-contrast stage card. */ .sr-feedback--filled { border-color: transparent; background: linear-gradient(135deg, rgba(30, 39, 36, .95), rgba(30, 39, 36, .82)); box-shadow: var(--shadow-sm); } .sr-feedback__kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: var(--sp-3); color: var(--text-muted); font-family: var(--font-num); font-size: var(--fs-kicker); font-weight: 650; letter-spacing: 0.08em; } .sr-feedback__kicker .sr-technique__dot { width: 6px; height: 6px; background: var(--text-muted); } .sr-feedback--filled .sr-feedback__kicker { color: var(--accent-bright); } .sr-feedback--filled .sr-feedback__kicker .sr-technique__dot { background: var(--accent-bright); } .sr-feedback__quote { margin: 0; color: var(--text-body); font-size: var(--fs-sm); font-style: italic; line-height: 1.65; } .sr-feedback--filled .sr-feedback__quote { color: #d7ddda; } .sr-feedback__src { display: flex; align-items: center; gap: 8px; margin-top: var(--sp-4); padding-top: var(--sp-3); border-top: 1px solid var(--hair); color: var(--text-muted); font-family: var(--font-num); font-size: 11px; } .sr-feedback--filled .sr-feedback__src { border-top-color: rgba(255, 255, 255, 0.12); color: #8a9794; } .sr-points { display: grid; gap: var(--sp-4); } .sr-point { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 11px; align-items: start; } .sr-point__mk { width: 7px; height: 7px; margin-top: 7px; border-radius: 50%; flex: none; } .sr-points--good .sr-point__mk { background: var(--pos-solid); } .sr-points--grow .sr-point__mk { background: var(--warn-solid); } .sr-point__h { margin-bottom: 2px; color: var(--text-strong); font-size: var(--fs-sm); font-weight: 650; } .sr-point__d { color: var(--text-body); font-size: var(--fs-xs); line-height: 1.58; } .sr-point__at { margin-left: 6px; padding: 0; border: none; background: none; color: var(--accent); cursor: pointer; font-family: var(--font-num); font-size: 11px; font-weight: 650; } .sr-point__at:hover { color: var(--accent-deep); text-decoration: underline; } .sr-nextline { margin-top: var(--sp-4); padding: var(--sp-4); border-radius: var(--radius); background: color-mix(in srgb, var(--warn-tint) 58%, var(--bg-surface-2)); } .sr-nextline__lab { margin-bottom: 7px; color: var(--accent-deep); font-family: var(--font-num); font-size: 11px; font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; } .sr-nextline__q { color: var(--text-strong); font-size: var(--fs-sm); font-weight: 550; line-height: 1.58; } .sr-turn--active .sr-turn__said { margin: 0 -8px; padding: 4px 8px; border-radius: var(--radius-sm); background: var(--accent-tint); } .sr-session-id { min-width: 0; margin: 0; color: var(--text-muted); font-family: var(--font-num); font-size: var(--fs-xs); overflow-wrap: anywhere; } [data-theme="dark"] .sr-head, [data-theme="dark"] .sr-card, [data-theme="dark"] .sr-overview { background: linear-gradient(180deg, rgba(27, 42, 38, 0.92), rgba(18, 31, 28, 0.96)); border-color: rgba(203, 227, 220, 0.13); box-shadow: 0 16px 42px rgba(3, 9, 8, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.035); } [data-theme="dark"] .sr-card--transcript { background: linear-gradient(180deg, rgba(13, 24, 22, 0.98), rgba(11, 19, 17, 0.98)); } [data-theme="dark"] .sr-overview { border-color: rgba(111, 179, 164, 0.2); background: linear-gradient(180deg, rgba(32, 50, 45, 0.94), rgba(18, 31, 28, 0.98)); } [data-theme="dark"] .sr-card--worksheet { background: linear-gradient(180deg, rgba(25, 39, 44, 0.94), rgba(16, 27, 31, 0.98)); } [data-theme="dark"] .sr-card--prepost, [data-theme="dark"] .sr-card--rubric { background: linear-gradient(180deg, rgba(29, 43, 38, 0.92), rgba(18, 30, 27, 0.96)); } [data-theme="dark"] .sr-stat, [data-theme="dark"] .sr-readiness span, [data-theme="dark"] .sr-empty, [data-theme="dark"] .sr-chip-toggle, [data-theme="dark"] .sr-eval-scope, [data-theme="dark"] .sr-ws-item, [data-theme="dark"] .sr-prepost__field input, [data-theme="dark"] .sr-feedback, [data-theme="dark"] .sr-nextline { background: rgba(255, 255, 255, 0.055); border-color: rgba(203, 227, 220, 0.12); } [data-theme="dark"] .sr-tx__head, [data-theme="dark"] .sr-turn + .sr-turn, [data-theme="dark"] .sr-readiness, [data-theme="dark"] .sr-ws-limitations, [data-theme="dark"] .sr-prepost__actions, [data-theme="dark"] .sr-feedback__src { border-color: rgba(203, 227, 220, 0.1); } [data-theme="dark"] .sr-turn__said--client { color: rgba(234, 240, 241, 0.74); } [data-theme="dark"] .sr-note--ai { background: rgba(92, 151, 190, 0.12); } [data-theme="dark"] .sr-note--warn { background: rgba(212, 162, 74, 0.12); } [data-theme="dark"] .sr-turn--active .sr-turn__said { background: rgba(111, 179, 164, 0.14); } [data-theme="dark"] .sr-feedback--filled { border-color: rgba(203, 227, 220, 0.12); background: linear-gradient(135deg, rgba(12, 24, 21, 0.98), rgba(30, 44, 40, 0.92)); } @media (max-width: 1180px) { .sr-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "overview overview" "chart flow" "rubric rubric" "good growth" "transcript transcript" "prepost prepost" "feedback feedback" "worksheet worksheet" "session session"; } .sr-root--empty .sr-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "overview overview" "chart flow" "transcript transcript" "rubric rubric" "good growth" "prepost prepost" "feedback feedback" "worksheet worksheet" "session session"; } .sr-cols--supervisor { grid-template-areas: "overview overview" "chart flow" "teacher teacher" "rubric rubric" "good growth" "transcript transcript" "prepost prepost" "feedback feedback" "worksheet worksheet" "session session"; } .sr-root--empty .sr-cols--supervisor { grid-template-areas: "overview overview" "chart flow" "teacher teacher" "transcript transcript" "rubric rubric" "good growth" "prepost prepost" "feedback feedback" "worksheet worksheet" "session session"; } .sr-overview { position: static; max-height: none; overflow: visible; scrollbar-gutter: auto; } .sr-readiness { grid-template-columns: repeat(3, minmax(0, 1fr)); } .sr-actions { display: flex; flex-wrap: wrap; } .sr-actions .vg-btn { width: auto; } .sr-worksheet { max-height: 520px; } } @media (max-width: 780px) { .sr-root { gap: var(--sp-4); } .sr-head { grid-template-columns: 1fr; gap: var(--sp-4); padding: var(--sp-4); } .sr-head__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sr-cols { grid-template-columns: minmax(0, 1fr); grid-template-areas: "overview" "chart" "flow" "rubric" "good" "growth" "prepost" "transcript" "feedback" "worksheet" "session"; gap: var(--sp-4); } .sr-root--empty .sr-cols { grid-template-columns: minmax(0, 1fr); grid-template-areas: "overview" "chart" "flow" "transcript" "rubric" "good" "growth" "prepost" "feedback" "worksheet" "session"; } .sr-cols--supervisor { grid-template-areas: "overview" "chart" "flow" "teacher" "rubric" "good" "growth" "prepost" "transcript" "feedback" "worksheet" "session"; } .sr-root--empty .sr-cols--supervisor { grid-template-areas: "overview" "chart" "flow" "teacher" "transcript" "rubric" "good" "growth" "prepost" "feedback" "worksheet" "session"; } .sr-summary { font-size: 20px; line-height: 1.45; } .sr-overview .sr-summary { -webkit-line-clamp: 8; font-size: clamp(18px, 1.26vw, 21px); font-weight: 650; } .sr-readiness { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; } .sr-readiness span { padding: 9px; } .sr-actions .vg-btn { flex: 1 1 150px; } .sr-worksheet { max-height: 460px; } .sr-ws-toolbar { align-items: stretch; flex-direction: column; } .sr-ws-toolbar .vg-btn { width: 100%; } .sr-chart__plot { height: 156px; } .sr-tx__head { padding: var(--sp-4) var(--sp-4) var(--sp-3); } .sr-turns { padding: 0 var(--sp-4) var(--sp-3); } .sr-turn { grid-template-columns: 48px minmax(0, 1fr); column-gap: var(--sp-3); } } @media (max-width: 520px) { .sr-head__id { grid-template-columns: 40px minmax(0, 1fr); align-items: start; } .sr-avatar { width: 40px; height: 40px; font-size: 17px; } .sr-head__name { white-space: normal; } .sr-head__stats { grid-template-columns: 1fr; } .sr-stat { padding: 8px 10px; } .sr-summary { font-size: 18px; } .sr-overview .sr-summary { -webkit-line-clamp: 7; } .sr-readiness { grid-template-columns: 1fr; } .sr-actions { gap: var(--sp-2); } .sr-actions .vg-btn { flex-basis: 100%; min-height: 38px; } .sr-teacher-review__actions { grid-template-columns: 1fr; } .sr-feedback, .sr-card, .sr-overview { padding: var(--sp-4); } .sr-card--transcript { padding: 0; } .sr-phasebar__track { min-height: 34px; } .sr-phase { gap: 5px; padding: 0 5px; font-size: 11px; } .sr-phase__dot { display: none; } .sr-tx__head { align-items: flex-start; } .sr-tx__filters { width: 100%; } .sr-chip-toggle { flex: 1; min-height: 34px; } .sr-turn { grid-template-columns: 1fr; gap: 6px; } .sr-turn__rail { flex-direction: row; justify-content: flex-start; gap: 8px; padding-top: 0; } .sr-turn__stem { display: none; } .sr-turn__said, .sr-note { max-width: none; } } @media (prefers-reduced-motion: reduce) { .sr-note, .sr-chip-toggle, .sr-turn--active .sr-turn__said { transition-duration: 0.01ms; } }