.sh-shell { max-width: 1180px; margin: 0 auto; padding: 0 clamp(18px, 4vw, 48px); }
.sh-topbar {
  position: sticky; top: 0; z-index: 40;
  background: var(--sh-bg);
  background: color-mix(in srgb, var(--sh-bg) 85%, transparent);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--sh-line);
}
/* When the WP admin bar is present (admin/editor/shop-manager), stick the topbar
   beneath it instead of behind it. Matches the core 32px/46px admin-bar heights. */
body.admin-bar .sh-topbar { top: 32px; }
@media screen and (max-width: 782px) { body.admin-bar .sh-topbar { top: 46px; } }
.sh-topbar-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; row-gap: 10px; flex-wrap: wrap; padding: 14px clamp(18px, 4vw, 48px); }
.sh-nav { display: flex; gap: 6px; }
.sh-nav a { padding: 9px 16px; border-radius: 9999px; font-family: var(--sh-font-mono); font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sh-fg-muted); }
.sh-nav a.is-active, .sh-nav a:hover { color: var(--sh-fg); background: rgba(255,255,255,0.05); }
/* Right-side actions: Back to Site + account. */
.sh-topbar-actions { display: flex; align-items: center; gap: 10px; }
.sh-topbar .sh-pill { transition: color .15s ease, border-color .15s ease, background .15s ease; }
.sh-topbar .sh-pill:hover { color: var(--sh-fg); border-color: var(--sh-fg-muted); }
.sh-pill--exit span { font-size: 12px; line-height: 1; }
.sh-grid { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 24px; align-items: start; }
/* minmax(0,1fr) (not bare 1fr) so a wide child — e.g. the video embed — can't force the
   single column past the viewport and cause horizontal overflow on mobile. */
@media (max-width: 860px) { .sh-grid { grid-template-columns: minmax(0, 1fr); } }

/* Task 8 components */
.sh-brandmark { display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--sh-accent);color:var(--sh-accent-ink);font-family:var(--sh-font-hero);font-stretch:var(--sh-font-hero-stretch);font-weight:900;font-size:13px; }
.sh-ring { width:96px;height:96px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background: conic-gradient(var(--sh-accent) calc(var(--pct) * 1%), rgba(255,255,255,0.07) 0);
  font-family:var(--sh-font-display);font-weight:700; }
.sh-ring span { width:78px;height:78px;border-radius:50%;background:var(--sh-bg);display:flex;align-items:center;justify-content:center; }
.sh-row { display:flex;align-items:center;gap:16px;margin-top:12px;transition:border-color .15s ease, transform .15s ease; }
.sh-row:hover { border-color: var(--sh-accent-line); transform: translateY(-1px); }
.sh-row.is-locked { opacity:.62; }
.sh-row-num { min-width:44px;height:44px;border-radius:12px;border:1px solid var(--sh-line);display:flex;align-items:center;justify-content:center;font-family:var(--sh-font-mono);font-weight:700;color:var(--sh-accent-text); }
.sh-row-main { flex:1;min-width:0; } .sh-row-main small { display:block;color:var(--sh-fg-muted);font-size:13px; }
.sh-movement { margin:18px 0 26px; }
.sh-movement-head { display:flex;gap:14px;align-items:center;margin:18px 0 4px; }
.sh-movement-numeral { font-family:var(--sh-font-hero);font-stretch:var(--sh-font-hero-stretch);font-weight:900;font-size:30px;color:var(--sh-accent); }
.sh-video { position:relative;border-radius:var(--sh-r-xl);overflow:hidden;border:1px solid var(--sh-line);aspect-ratio:16/9;background:#000; }
.sh-video iframe { position:absolute;inset:0;width:100%;height:100%;border:0; }

/* Task B3 — Studio Check (Beat Check live + layer tabs) */
.sh-check { margin-top:18px; }
.sh-check h2 { font-family:var(--sh-font-hero);font-stretch:var(--sh-font-hero-stretch);font-weight:900;text-transform:uppercase;letter-spacing:-0.01em;line-height:0.95;font-size:clamp(24px,3vw,34px);margin:0; }
.sh-check-strap { color:var(--sh-fg-muted);font-size:14px;margin:8px 0 18px; }
.sh-tabs { display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px; }
.sh-tab { display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-family:var(--sh-font-mono);font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;padding:10px 16px;border-radius:9999px;border:1px solid var(--sh-line);background:transparent;color:var(--sh-fg-muted);transition:color .15s ease,border-color .15s ease; }
.sh-tab:hover { color:var(--sh-fg); }
.sh-tab.is-active { color:var(--sh-accent-text);border-color:var(--sh-accent-line);background:var(--sh-accent-bg); }
.sh-tab-w { font-family:var(--sh-font-mono);font-size:10px;color:inherit;opacity:0.85; }
.sh-panel-stub { color:var(--sh-fg-muted);font-size:14px; }
.sh-panel-stub p { margin:0 0 8px; }

.sh-check-intro { margin:2px 0 20px; }
.sh-check-intro h3 { font-family:var(--sh-font-display);font-weight:700;font-size:18px;margin:0 0 4px; }
.sh-check-intro small { display:block;font-family:var(--sh-font-mono);font-size:11px;letter-spacing:0.06em;color:var(--sh-fg-muted); }

.sh-q { border-top:1px solid var(--sh-line);padding:20px 0; }
.sh-check-intro + .sh-q { border-top:0;padding-top:4px; }
.sh-q-head { display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px; }
.sh-q-num { font-family:var(--sh-font-mono);font-weight:700;font-size:12px;color:var(--sh-accent-text); }
.sh-q-type { font-family:var(--sh-font-mono);font-size:9.5px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--sh-fg-muted); }
.sh-q-pts { margin-left:auto;font-family:var(--sh-font-mono);font-size:10px;letter-spacing:0.08em;color:var(--sh-fg-muted); }
.sh-q-prompt { font-size:15px;margin:0 0 14px;color:var(--sh-fg); }

.sh-choices { display:flex;flex-direction:column;gap:8px; }
.sh-choice { display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;width:100%;font-family:var(--sh-font-sans);font-size:14px;color:var(--sh-fg);background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);padding:12px 14px;transition:border-color .15s ease,background .15s ease; }
.sh-choice:hover { border-color:var(--sh-accent-line); }
.sh-choice.is-on { border-color:var(--sh-accent-line);background:var(--sh-accent-bg);color:var(--sh-fg); }
.sh-choice-key { display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:6px;border:1px solid var(--sh-line);font-family:var(--sh-font-mono);font-size:11px;font-weight:700;color:var(--sh-fg-muted);flex:0 0 auto; }
.sh-choice.is-on .sh-choice-key { border-color:var(--sh-accent-line);color:var(--sh-accent-text); }

.sh-match-row { display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap; }
.sh-match-left { flex:0 0 auto;min-width:160px;font-size:14px;font-weight:500; }
.sh-match { flex:1;min-width:200px;font-family:var(--sh-font-sans);font-size:14px;color:var(--sh-fg);background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);padding:11px 12px; }

.sh-self-text { width:100%;min-height:96px;resize:vertical;font-family:var(--sh-font-sans);font-size:14px;line-height:1.55;color:var(--sh-fg);background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);padding:12px 14px; }
.sh-self-reveal { margin-top:12px;font-family:var(--sh-font-mono);font-size:11px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;color:var(--sh-fg);background:transparent;border:1px solid var(--sh-line);border-radius:9999px;padding:10px 18px; }
.sh-self-reveal:disabled { opacity:0.5;cursor:not-allowed; }
.sh-self-guide { margin-top:14px;border:1px solid var(--sh-accent-line);background:var(--sh-accent-bg);border-radius:var(--sh-r-lg);padding:14px 16px; }
.sh-self-guide > p { margin:0 0 10px;font-size:13px;color:var(--sh-fg-muted); }
.sh-crit { display:flex;align-items:flex-start;gap:10px;margin:8px 0;font-size:14px;cursor:pointer; }
.sh-crit input { margin-top:3px;flex:0 0 auto; }
.sh-crit-pts { margin-left:auto;font-family:var(--sh-font-mono);font-size:11px;font-weight:700;color:var(--sh-accent-text);flex:0 0 auto; }

.sh-check-foot { display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid var(--sh-line);margin-top:8px;padding-top:18px; }
.sh-counter { font-family:var(--sh-font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--sh-fg-muted); }

.sh-result { margin-top:18px;border:1px solid var(--sh-line);border-radius:var(--sh-r-xl);padding:20px; }
.sh-result--pass { border-color:var(--sh-accent-line);background:var(--sh-accent-bg); }
.sh-result--fail { border-color:var(--sh-line); }
.sh-result-pct { font-family:var(--sh-font-hero);font-stretch:var(--sh-font-hero-stretch);font-weight:900;font-size:40px;line-height:1;color:var(--sh-accent); }
.sh-result-title { font-family:var(--sh-font-display);font-weight:700;font-size:18px;margin:10px 0 4px; }
.sh-result-meta { color:var(--sh-fg-muted);font-size:13.5px;margin:0; }
.sh-rewatch-h { margin:14px 0 6px;font-size:13.5px; }
.sh-rewatch { list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 4px; }
.sh-rewatch li { font-family:var(--sh-font-mono);font-size:12px;padding:6px 12px;border:1px solid var(--sh-line);border-radius:9999px;color:var(--sh-fg); }
.sh-result .sh-btn { margin-top:16px; }

.sh-q-verdict { display:inline-block;margin-top:12px;font-family:var(--sh-font-mono);font-size:10px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;padding:5px 12px;border-radius:9999px;border:1px solid var(--sh-line);color:var(--sh-fg-muted); }
.sh-q-verdict.is-correct { color:var(--sh-accent-text);border-color:var(--sh-accent-line);background:var(--sh-accent-bg); }
.sh-q-verdict.is-partial { color:var(--sh-fg); }
.sh-q-explain { margin:8px 0 0;font-size:13.5px;color:var(--sh-fg-muted); }

/* Task C2 — Studio Decisions (layer 2) */
.sh-dec-intro-text { font-size:15px;color:var(--sh-fg);margin:0 0 18px;line-height:1.55; }
.sh-dec-label { font-family:var(--sh-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--sh-fg-muted);margin:0 0 10px; }
.sh-dec-ranks { display:flex;flex-direction:column;gap:8px;margin-bottom:22px; }
.sh-dec-rank-row { display:flex;align-items:center;gap:12px;background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);padding:10px 14px;flex-wrap:wrap; }
.sh-dec-rank-item { flex:1;min-width:160px;font-size:14px;color:var(--sh-fg); }
.sh-dec-rank { flex:0 0 auto;min-width:90px;font-family:var(--sh-font-sans);font-size:14px;color:var(--sh-fg);background:var(--sh-bg);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);padding:8px 10px; }
.sh-dec-prompts { display:flex;flex-direction:column;gap:16px;margin-bottom:6px; }
.sh-dec-prompt-q { display:block;font-size:14px;font-weight:500;color:var(--sh-fg);margin:0 0 8px; }
.sh-dec-defense { width:100%;min-height:84px;resize:vertical;font-family:var(--sh-font-sans);font-size:14px;line-height:1.55;color:var(--sh-fg);background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);padding:12px 14px; }
.sh-dec-gate { font-family:var(--sh-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--sh-fg-muted); }
.sh-dec-msg { margin:12px 0 0;font-size:13.5px;color:var(--sh-accent-text); }

.sh-dec-summary { margin-top:8px;border:1px solid var(--sh-accent-line);background:var(--sh-accent-bg);border-radius:var(--sh-r-xl);padding:20px; }
.sh-dec-summary-title { font-family:var(--sh-font-display);font-weight:700;font-size:18px;margin:10px 0 4px; }
.sh-dec-summary-note { color:var(--sh-fg-muted);font-size:13.5px;margin:0 0 6px; }
.sh-dec-summary-h { font-family:var(--sh-font-mono);font-size:10px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--sh-fg-muted);margin:16px 0 8px; }
.sh-dec-summary-ranks { list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px; }
.sh-dec-summary-ranks li { display:flex;align-items:center;gap:12px;font-size:14px;color:var(--sh-fg); }
.sh-dec-summary-num { display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:6px;border:1px solid var(--sh-accent-line);font-family:var(--sh-font-mono);font-size:12px;font-weight:700;color:var(--sh-accent-text);flex:0 0 auto; }
.sh-dec-summary-def { margin:0 0 12px; }
.sh-dec-summary-q { font-size:13px;color:var(--sh-fg-muted);margin:0 0 4px; }
.sh-dec-summary-a { font-size:14px;color:var(--sh-fg);margin:0;line-height:1.55;white-space:pre-wrap; }
.sh-dec-summary .sh-btn { margin-top:12px; }

/* --- Record Proof (Studio Check layer 3) --- */
.sh-proof-prompt { font-size:15px;color:var(--sh-fg);margin:0 0 18px;line-height:1.55; }
.sh-proof-deliverable { margin:0 0 20px;padding:0 0 18px;border-bottom:1px solid var(--sh-line); }
.sh-proof-d-label { font-size:14px;font-weight:500;color:var(--sh-fg);margin:0 0 10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.sh-proof-d-kind { font-family:var(--sh-font-mono);font-size:9px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--sh-accent-text);border:1px solid var(--sh-accent-line);border-radius:9999px;padding:3px 8px;flex:0 0 auto; }
.sh-proof-text { width:100%;min-height:96px;resize:vertical;font-family:var(--sh-font-sans);font-size:14px;line-height:1.55;color:var(--sh-fg);background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);padding:12px 14px; }
.sh-proof-rec-controls { display:flex;align-items:center;gap:14px;flex-wrap:wrap; }
.sh-proof-rec.is-recording { border-color:var(--sh-accent-line);background:var(--sh-accent-bg);color:var(--sh-accent-text); }
.sh-proof-rec-status { font-family:var(--sh-font-mono);font-size:11px;letter-spacing:0.06em;color:var(--sh-fg-muted); }
.sh-proof-rec-hint { font-size:12.5px;color:var(--sh-fg-muted);margin:8px 0 0; }
.sh-proof-insecure { font-size:13.5px;color:var(--sh-accent-text);margin:0; }
.sh-proof-takes, .sh-proof-summary-takes { list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px; }
.sh-proof-take { display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);padding:10px 12px; }
.sh-proof-take-n { font-family:var(--sh-font-mono);font-size:10px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--sh-fg-muted);flex:0 0 auto; }
.sh-proof-take audio, .sh-proof-summary-takes audio { flex:1;min-width:220px;height:36px; }
.sh-proof-rubric { margin:6px 0 18px;border:1px solid var(--sh-line);border-radius:var(--sh-r-lg);padding:14px 16px; }
.sh-proof-rubric-h { font-family:var(--sh-font-mono);font-size:10px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--sh-fg-muted);margin:0 0 10px; }
.sh-proof-rubric-list { list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px; }
.sh-proof-rubric-list li { display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;color:var(--sh-fg); }
.sh-proof-rubric-pts { font-family:var(--sh-font-mono);font-size:12px;font-weight:700;color:var(--sh-accent-text);flex:0 0 auto; }
.sh-proof-rubric-note { font-size:12.5px;color:var(--sh-fg-muted);margin:12px 0 0; }
.sh-proof-gate { font-family:var(--sh-font-mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:var(--sh-fg-muted); }
.sh-proof-msg { margin:12px 0 0;font-size:13.5px;color:var(--sh-accent-text); }
.sh-proof-summary { margin-top:8px;border:1px solid var(--sh-accent-line);background:var(--sh-accent-bg);border-radius:var(--sh-r-xl);padding:20px; }
.sh-proof-summary-title { font-family:var(--sh-font-display);font-weight:700;font-size:18px;margin:10px 0 4px; }
.sh-proof-summary-note { color:var(--sh-fg-muted);font-size:13.5px;margin:0 0 12px; }
.sh-proof-summary-d { margin:0 0 14px; }
.sh-proof-summary-label { font-family:var(--sh-font-mono);font-size:10px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--sh-fg-muted);margin:0 0 6px; }
.sh-proof-summary-text { font-size:14px;color:var(--sh-fg);margin:0;line-height:1.55;white-space:pre-wrap; }
.sh-proof-summary .sh-btn { margin-top:12px; }

/* "Playback from your teacher" — the member's published score + one-sentence comment
   (Decisions locked-summary + Proof submitted-summary). Member NEVER sees the rubric
   breakdown, another member's work, recommended_by, or rec_note. */
.sh-playback { margin:4px 0 16px;border:1px solid var(--sh-accent-line);background:var(--sh-bg-elevated);border-radius:var(--sh-r-lg);padding:16px 18px; }
.sh-playback-score { font-family:var(--sh-font-hero,var(--sh-font-display));font-weight:900;font-size:32px;line-height:1;margin:12px 0 8px;color:var(--sh-accent-text); }
.sh-playback-comment { font-size:15px;color:var(--sh-fg);margin:0;line-height:1.55;white-space:pre-wrap; }

/* --- The Room wall (Phase D1) --- */
.screen-reader-text { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;border:0;padding:0;margin:-1px; }
.sh-room-stats { display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:var(--sh-font-mono);font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--sh-fg-muted);margin:0 0 18px; }
.sh-room-stat strong { color:var(--sh-fg);font-weight:700; }
.sh-room-dot { color:var(--sh-fg-muted);opacity:0.6; }

.sh-room-composer { padding:16px; }
.sh-room-input { width:100%;min-height:80px;resize:vertical;font-family:var(--sh-font-sans);font-size:15px;line-height:1.55;color:var(--sh-fg);background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);padding:12px 14px; }
.sh-room-input:focus { outline:none;border-color:var(--sh-accent-line); }
.sh-room-composer-foot { display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:12px; }
.sh-room-count { font-family:var(--sh-font-mono);font-size:11px;letter-spacing:0.06em;color:var(--sh-fg-muted); }
.sh-room-msg { margin:12px 0 0;font-size:13.5px;color:var(--sh-accent-text); }

.sh-room-feed { list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:2px; }
.sh-room-empty { color:var(--sh-fg-muted);font-size:14px;padding:22px 4px; }
.sh-room-post { display:flex;gap:14px;padding:16px 4px;border-top:1px solid var(--sh-line); }
.sh-room-feed .sh-room-post:first-child { border-top:0; }
.sh-room-avatar { flex:0 0 auto;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--sh-bg-hover);color:var(--sh-fg);font-family:var(--sh-font-display);font-weight:700;font-size:15px; }
.sh-room-body { flex:1;min-width:0; }
.sh-room-meta { display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px; }
.sh-room-who { font-family:var(--sh-font-display);font-weight:700;font-size:14px;color:var(--sh-fg); }
.sh-room-chip { font-family:var(--sh-font-mono);font-size:9px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;padding:3px 8px;border-radius:9999px;border:1px solid var(--sh-line);color:var(--sh-fg-muted); }
.sh-room-chip--teacher { color:var(--sh-accent-text);border-color:var(--sh-accent-line);background:var(--sh-accent-bg); }
.sh-room-chip--staff { color:var(--sh-fg);border-color:var(--sh-line); }
.sh-room-ago { font-family:var(--sh-font-mono);font-size:10px;letter-spacing:0.06em;color:var(--sh-fg-muted);margin-left:auto; }
.sh-room-text { font-size:15px;color:var(--sh-fg);margin:0;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere; }

/* --- Audience Mirror / Final Take (Phase E1) --- */
.sh-mirror-intro .sh-pill { display:inline-block; }
.sh-mirror-comps { list-style:none;margin:12px 0 0;padding:0;counter-reset:comp;display:flex;flex-direction:column;gap:2px; }
.sh-mirror-comps li { display:flex;align-items:center;gap:12px;padding:11px 2px;border-top:1px solid var(--sh-line);font-size:14.5px; }
.sh-mirror-comps li:first-child { border-top:0; }
.sh-mirror-comps li::before { counter-increment:comp;content:counter(comp);flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--sh-bg-hover);color:var(--sh-fg-muted);font-family:var(--sh-font-mono);font-size:11px;font-weight:700; }
.sh-mirror-comp-name { flex:1;color:var(--sh-fg); }
.sh-mirror-comp-pts { font-family:var(--sh-font-mono);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--sh-fg-muted); }

.sh-mirror-rail { list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:10px;align-items:center; }
.sh-mirror-dot { flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--sh-line);background:var(--sh-bg-secondary); }
.sh-mirror-dot-num { font-family:var(--sh-font-mono);font-size:12px;font-weight:700;color:var(--sh-fg-muted); }
.sh-mirror-dot.is-done { border-color:var(--sh-accent-line);background:var(--sh-accent-bg); }
.sh-mirror-dot.is-done .sh-mirror-dot-num { color:var(--sh-accent-text); }
.sh-mirror-dot.is-current { border-color:var(--sh-accent);box-shadow:0 0 0 3px var(--sh-accent-bg); }
.sh-mirror-dot.is-current .sh-mirror-dot-num { color:var(--sh-fg); }

.sh-mirror-stagebox { padding:20px; }
.sh-mirror-stage-head { margin-bottom:12px; }
.sh-mirror-stage-lead { margin:0 0 16px;font-size:14px;color:var(--sh-fg-muted);line-height:1.55; }
.sh-mirror-actions { display:flex;gap:10px;flex-wrap:wrap;margin-top:18px; }
.sh-mirror-msg { margin:12px 0 0;font-size:13.5px;color:var(--sh-accent-text); }
.sh-mirror-placeholder { padding:26px 4px;color:var(--sh-fg-muted);font-size:14.5px; }

.sh-mirror-brief { border:1px solid var(--sh-accent-line);background:var(--sh-bg-elevated);border-radius:var(--sh-r-lg);padding:18px 20px; }
.sh-mirror-brief-intro { margin:0 0 16px;font-size:15px;line-height:1.6;color:var(--sh-fg); }
.sh-mirror-brief-fields { margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px; }
.sh-mirror-field dt { font-family:var(--sh-font-mono);font-size:9.5px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--sh-fg-muted);margin:0 0 3px; }
.sh-mirror-field dd { margin:0;font-size:14.5px;color:var(--sh-fg);line-height:1.4; }
.sh-mirror-brief-note { margin:18px 0 0;padding-top:14px;border-top:1px solid var(--sh-line);font-size:13px;color:var(--sh-fg-muted);font-style:italic; }
@media (max-width:560px){ .sh-mirror-brief-fields { grid-template-columns:1fr; } }

/* --- Audience Mirror stages 2-5 (Phase E2) --- */
.sh-m-field { display:block;margin:0 0 16px; }
.sh-m-field-label { display:block;font-size:13.5px;font-weight:500;color:var(--sh-fg);margin:0 0 7px; }
.sh-m-input, .sh-m-textarea { width:100%;font-family:var(--sh-font-sans);font-size:14px;line-height:1.55;color:var(--sh-fg);background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);padding:11px 13px; }
.sh-m-textarea { min-height:96px;resize:vertical; }
.sh-m-input:focus, .sh-m-textarea:focus { outline:none;border-color:var(--sh-accent-line); }
.sh-m-input:disabled, .sh-m-textarea:disabled { opacity:0.7;cursor:default; }

/* Checkboxes. Left native for accessibility and keyboard behaviour, but tinted and sized
   so a browser default does not sit as a blue-and-white square on a black card. */
.sh-app input[type="checkbox"] { accent-color:var(--sh-accent);width:15px;height:15px;cursor:pointer; }
.sh-app input[type="checkbox"]:disabled { opacity:0.5;cursor:default; }

/* Recorders */
.sh-m-rec-row { display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 4px; }
.sh-m-rec-grid { display:flex;flex-direction:column;gap:10px;margin:6px 0 4px; }
.sh-m-rec.is-recording { border-color:var(--sh-accent-line);background:var(--sh-accent-bg);color:var(--sh-accent-text); }
.sh-m-rec-status { font-family:var(--sh-font-mono);font-size:11px;letter-spacing:0.05em;color:var(--sh-fg-muted); }
.sh-m-rec-hint, .sh-m-rec-label { font-size:12.5px;color:var(--sh-fg-muted); }
.sh-m-takes { list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px; }
.sh-m-takes:empty { margin:0; }
.sh-m-take-item { display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);padding:9px 12px; }
.sh-m-take-n { font-family:var(--sh-font-mono);font-size:10px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--sh-fg-muted);flex:0 0 auto; }
.sh-m-take-item audio { flex:1;min-width:200px;height:34px; }

/* Blind playback cards (A/B/C) */
.sh-m-blind-h { font-family:var(--sh-font-mono);font-size:10.5px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--sh-fg-muted);margin:22px 0 12px; }
.sh-m-blind { list-style:none;margin:0 0 6px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px; }
.sh-m-take-card { display:flex;flex-direction:column;gap:8px;cursor:pointer;background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-lg);padding:14px;transition:border-color .15s ease,background .15s ease; }
.sh-m-take-card:hover { border-color:var(--sh-accent-line); }
.sh-m-take-card:focus-visible { outline:2px solid var(--sh-accent-line);outline-offset:2px; }
.sh-m-take-card.is-picked { border-color:var(--sh-accent);background:var(--sh-accent-bg);box-shadow:0 0 0 2px var(--sh-accent-bg); }
.sh-m-blind[data-readonly] .sh-m-take-card { cursor:default; }
.sh-m-take-label { font-family:var(--sh-font-mono);font-size:10px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--sh-accent-text); }
.sh-m-take-text { margin:0;font-size:14px;line-height:1.5;color:var(--sh-fg);min-height:2.6em; }
.sh-m-take-type { font-family:var(--sh-font-mono);font-size:9.5px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--sh-fg-muted);border-top:1px solid var(--sh-line);padding-top:8px; }
@media (max-width:620px){ .sh-m-blind { grid-template-columns:1fr; } }

/* Word World chips */
.sh-m-world { display:flex;flex-direction:column;gap:16px; }
.sh-m-slot-head { display:flex;align-items:baseline;gap:10px;margin:0 0 8px; }
.sh-m-slot-label { font-size:13.5px;font-weight:500;color:var(--sh-fg); }
.sh-m-slot-count { font-family:var(--sh-font-mono);font-size:11px;font-weight:700;color:var(--sh-fg-muted);margin-left:auto;flex:0 0 auto; }
.sh-m-chips { display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);padding:10px 12px; }
.sh-m-chip { display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--sh-fg);background:var(--sh-bg-hover);border:1px solid var(--sh-line);border-radius:9999px;padding:5px 6px 5px 12px; }
.sh-m-chip.is-generic { border-color:var(--sh-accent-line);background:var(--sh-accent-bg); }
.sh-m-chip.is-generic .sh-m-chip-t { color:var(--sh-accent-text); }
.sh-m-chip.is-generic .sh-m-chip-t::after { content:"⚑";margin-left:6px;font-size:10px; }
.sh-m-chip-x { display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:0;background:transparent;color:var(--sh-fg-muted);font-size:15px;line-height:1;cursor:pointer;flex:0 0 auto; }
.sh-m-chip-x:hover { color:var(--sh-fg); }
.sh-m-chip-input { flex:1;min-width:160px;font-family:var(--sh-font-sans);font-size:13.5px;color:var(--sh-fg);background:transparent;border:0;padding:5px 4px; }
.sh-m-chip-input:focus { outline:none; }

/* Rhyme Map */
.sh-m-map { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px; }
.sh-m-map-slot.is-pair, .sh-m-map .sh-m-map-slot:last-child { grid-column:1 / -1; }
.sh-m-legend { list-style:none;margin:4px 0 0;padding:14px 0 0;border-top:1px solid var(--sh-line);display:flex;flex-wrap:wrap;gap:16px;font-family:var(--sh-font-mono);font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase;color:var(--sh-fg-muted); }
.sh-m-legend li { display:inline-flex;align-items:center;gap:8px; }
.sh-m-leg-mark { display:inline-block;width:24px;height:0;border-top:2px solid var(--sh-accent-text); }
.sh-m-leg--loose { border-top-style:dashed; }
.sh-m-leg--internal { border-top-style:double;border-top-width:4px; }
.sh-m-leg--repeat { border-top-style:dotted;border-top-width:3px; }
.sh-m-leg--silence { border-top:0;border-bottom:2px dotted var(--sh-fg-muted);height:6px; }
@media (max-width:620px){ .sh-m-map { grid-template-columns:1fr; } .sh-m-map-slot.is-pair { grid-column:auto; } }

/* Performance take */
.sh-m-takes-h { font-family:var(--sh-font-mono);font-size:10.5px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--sh-fg-muted);margin:20px 0 12px; }

/* Stage footer (hint + Back/Continue) */
.sh-m-foot { display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid var(--sh-line);margin-top:22px;padding-top:18px; }
.sh-m-foot-hint { font-family:var(--sh-font-mono);font-size:11px;letter-spacing:0.05em;color:var(--sh-fg-muted);flex:1;min-width:180px; }
.sh-m-foot-btns { display:flex;gap:10px;flex-wrap:wrap; }

/* --- Audience Mirror stages 6-9 + submit (Phase E3) --- */
.sh-m-select { appearance:auto; }
/* Stage 6 — five-seat readback */
.sh-m-seats { list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;gap:14px; }
.sh-m-seat { border:1px solid var(--sh-line);border-left:3px solid var(--sh-accent-line);border-radius:var(--sh-r-md);background:var(--sh-bg-secondary);padding:14px 16px; }
.sh-m-seat-label { margin:0 0 6px;font-family:var(--sh-font-mono);font-size:11px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--sh-accent-text); }
.sh-m-seat-body { margin:0;font-size:14px;line-height:1.6;color:var(--sh-fg); }
/* Stage 8 — revision target chips */
.sh-m-rev-targets { display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px; }
.sh-m-chip-toggle { font-size:13px;color:var(--sh-fg-muted);background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:9999px;padding:7px 14px;cursor:pointer;transition:border-color .12s,background .12s,color .12s; }
.sh-m-chip-toggle:hover { border-color:var(--sh-accent-line); }
.sh-m-chip-toggle.is-on { background:var(--sh-accent-bg);border-color:var(--sh-accent-line);color:var(--sh-fg); }
.sh-m-rev-targets[data-readonly] .sh-m-chip-toggle { cursor:default; }
/* Stage 8 — first vs revised compare */
.sh-m-compare { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0 4px; }
.sh-m-compare-col { min-width:0; }
.sh-m-compare-text { margin:6px 0 0;padding:12px 14px;background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);font-family:var(--sh-font-sans);font-size:13.5px;line-height:1.6;color:var(--sh-fg);white-space:pre-wrap;word-break:break-word;min-height:60px; }
@media (max-width:620px){ .sh-m-compare { grid-template-columns:1fr; } }
/* Post-submit recap */
.sh-m-submitted-lead { font-family:var(--sh-font-display);font-size:20px;margin:12px 0 6px;color:var(--sh-fg); }
.sh-m-score { font-family:var(--sh-font-hero);font-stretch:var(--sh-font-hero-stretch);font-weight:900;font-size:44px;line-height:1;margin:12px 0 4px;color:var(--sh-fg); }
.sh-m-score strong { color:var(--sh-accent-text); }
.sh-m-score-note { margin:8px 0 0;padding:12px 16px;border-left:3px solid var(--sh-accent);background:var(--sh-bg-secondary);border-radius:0 var(--sh-r-md) var(--sh-r-md) 0;font-size:15px;line-height:1.55;font-style:italic;color:var(--sh-fg); }
.sh-m-recap-row { margin:6px 0;font-size:14px;color:var(--sh-fg);line-height:1.5; }
.sh-m-recap-row span { display:inline-block;min-width:64px;font-family:var(--sh-font-mono);font-size:10.5px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--sh-fg-muted); }

/* --- The content manager (portal-side CMS) ---
   Buttons stay pill-shaped and mono-cased like the rest of the portal, but drop to a
   smaller size: a row can carry three of them and the card is not the page. */
/* Only the chosen tab is drawn. A row of identically outlined buttons reads as a wall
   and hides which family each one belongs to, so the rest stay as plain muted text. */
.sh-cm-tabs { display:flex;flex-direction:column;gap:12px;margin:16px 0 0; }
.sh-cm-group { display:flex;flex-direction:column;gap:6px; }
.sh-cm-grouplabel { font-family:var(--sh-font-mono);font-size:9.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--sh-fg-muted);opacity:.75; }
.sh-cm-grouprow { display:flex;flex-wrap:wrap;gap:6px; }
/* Scoped to the card on purpose. A `[type="button"]` reset ships later in the cascade and
   draws every bare button with a red outline; an attribute selector carries the same
   weight as a single class, so an unscoped .sh-cm-tab loses to it and the whole row comes
   back outlined. Two classes wins without needing !important. */
.sh-content-manager .sh-cm-tab { font-family:var(--sh-font-mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--sh-fg-muted);background:transparent;border:1px solid transparent;border-radius:9999px;padding:7px 13px;cursor:pointer;transition:background .12s,color .12s; }
.sh-content-manager .sh-cm-tab:hover { background:var(--sh-bg-hover);color:var(--sh-fg);border-color:transparent; }
.sh-content-manager .sh-cm-tab.is-on { background:var(--sh-accent-bg);border-color:var(--sh-accent-line);color:var(--sh-accent-text); }
.sh-content-manager .sh-cm-tab:focus-visible { outline:2px solid var(--sh-accent-line);outline-offset:2px; }
.sh-cm-bar { display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0 0; }
.sh-cm-bar .sh-btn { padding:9px 16px;font-size:11px; }
.sh-cm-status { font-size:12.5px;color:var(--sh-fg-muted); }
.sh-cm-note { margin:10px 0 0;font-size:12.5px;color:var(--sh-fg-muted); }
.sh-cm-empty { margin:14px 0 0;font-size:13.5px;color:var(--sh-fg-muted); }

.sh-cm-list { margin:14px 0 0;display:flex;flex-direction:column;gap:8px; }
.sh-cm-row { display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md); }
.sh-cm-main { flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px; }
.sh-cm-title { font-size:14.5px;color:var(--sh-fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.sh-cm-meta { font-family:var(--sh-font-mono);font-size:10.5px;letter-spacing:.04em;color:var(--sh-fg-muted); }
.sh-cm-acts { display:flex;gap:8px;flex-wrap:wrap;flex:0 0 auto;margin-top:4px; }
.sh-cm-acts .sh-btn { padding:8px 14px;font-size:10.5px; }

/* A dot rather than a word: the row already spells the state out underneath the title. */
.sh-cm-chip { flex:0 0 auto;width:8px;height:8px;border-radius:9999px;background:var(--sh-fg-muted);align-self:center; }
.sh-cm-chip.is-publish, .sh-cm-chip.is-published { background:var(--sh-accent); }
.sh-cm-chip.is-future { background:var(--sh-accent-line); }
.sh-cm-chip.is-pending, .sh-cm-chip.is-ta_recommended { background:#d9a441; }

.sh-cm-edit { margin:16px 0 0;padding:16px;background:var(--sh-bg-secondary);border:1px solid var(--sh-line);border-radius:var(--sh-r-md);display:flex;flex-direction:column;gap:12px; }
.sh-cm-edit[hidden] { display:none; }
.sh-cm-h { font-family:var(--sh-font-display);font-size:17px;color:var(--sh-fg);margin:0; }
.sh-cm-field { display:block; }
.sh-cm-field[hidden] { display:none; }
.sh-cm-label { display:block;font-family:var(--sh-font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--sh-fg-muted);margin-bottom:5px; }
.sh-cm-help { display:block;margin-top:5px;font-size:11.5px;color:var(--sh-fg-muted); }
.sh-cm-check { width:18px;height:18px;accent-color:var(--sh-accent); }
.sh-cm-read { display:flex;flex-direction:column;gap:10px; }
.sh-cm-readrow { display:flex;flex-direction:column;gap:2px; }
.sh-cm-readval { font-size:14px;line-height:1.6;color:var(--sh-fg);white-space:pre-wrap;word-break:break-word; }

@media (max-width:620px){
  .sh-cm-row { flex-wrap:wrap; }
  .sh-cm-main { flex:1 1 100%; }
}
