/* Shared dark theme: student modules, sign-in and administration. */
:root, body, body.minimal-student-space {
  color-scheme: dark;
  --ink: #eeeeF2; --ink-soft: #b2b1be; --paper: #19191d; --cream: #0d0d0f;
  --line: #36363e; --mint: #b9b0f5; --mint-bright: #29253c;
  --coral: #b9a5ff; --coral-soft: #30263d; --shadow: 0 16px 44px #0005;
  background: #0d0d0f; color: #eeeef2;
}
body .grain { display: none; }
body :is(.topbar,.brand strong,.cahier-resource,.cahier-vocabulary-button,.cahier-section-title,.student-course-picker,.vocab-set-option,.verbs-video-link,.chum-roles) { color:#e5e3ed !important; }
body :is(.auth-card,.panel,.flashcard,.set-card,.cahier-assignment-list,.cahier-video-branch,.cahier-comprehension,.verbs-video-link,.chum-assistant,.chum-feedback,.chum-suggestions,.access-row,.card-editor-row) {
  background:#19191d !important; border-color:#36363e !important; color:#eeeef2;
}
body :is(.learning-frame,.mode-tabs,.cahier-section-summary) { background:#202025 !important; border-color:#39373f !important; }
body .module-tabs { background:transparent !important; border-color:#36363e !important; }
body :is(button,select,input,textarea,.google-sign-in,.admin-link) {
  background-color:#26262d !important; color:#eeeef2 !important; border-color:#44434e !important;
}
body :is(button,select,input,textarea):focus-visible { outline:2px solid #c2afff !important; outline-offset:3px; }
body :is(input,textarea)::placeholder { color:#aaa7b7; opacity:1; }
body :is(.module-tab,.cahier-resource,.cahier-vocabulary-button,.vocab-set-option) { background:transparent !important; }
body :is(.module-tab.active,.tab.active,.course-tab.active,.admin-link,.verbs-play,.cahier-open-video,.account-avatar) { color:#d1bfff !important; background:#30283f !important; border-color:#b6a0ef !important; }
body .module-tab.active { background:transparent !important; }
body :is(button:hover:not(:disabled),.set-card:hover,.cahier-tracked-resource:hover,.verbs-video-link:hover) { background-color:#33303e !important; }
body :is(.chum-user,.set-card.active,.vocab-set-option[aria-pressed="true"],.chum-ratings button[aria-pressed="true"]) { background:#342b49 !important; color:#f1eaff !important; border-color:#b6a0ef !important; }
body :is(#chumSend,.primary-button,.admin-form button,.access-row button,.card-editor-row button) { background:#bca9f4 !important; color:#191320 !important; }
body :is(#chumSend,.primary-button,.admin-form button,.access-row button,.card-editor-row button):hover { background:#ccbcff !important; }
body :is(.slow-french-button.active,.chum-toolbar .slow-french-button.active) { background:#d8c8ff !important; color:#1d1628 !important; }
body :is(.chum-translation,.chum-message small,.chum-privacy,#chumStatus,.chum-toolbar,.cahier-next-date,.cahier-due-date,.cahier-visited,.eyebrow,#cahierNextEyebrow,#cahierHomeworkCount,.music-note) { color:#bab5c8 !important; }
body :is(.chum-correction,.chum-grade,.cahier-comprehension h3,.cahier-section-title::before) { color:#d1bfff !important; }
body a { color:#c6b7ff; }
body #musicModule a { color:#c6b7ff; }
body :is(.cahier-tracked-resource,.cahier-video-group,.cahier-comprehension,.cahier-resource-children) { border-color:#3c3947 !important; }
body :is(.flashcard.known-card,.cahier-tracked-resource.is-complete,.choice.correct,.feedback:not(.bad),.filter-button[data-filter="known"]) { background:#17352b !important; color:#c2f3d8 !important; border-color:#3d765c !important; }
body :is(.choice.wrong,.feedback.bad,.filter-button[data-filter="unknown"],.access-row .delete-access) { background:#44262c !important; color:#ffc5c8 !important; border-color:#89515a !important; }
body .rating.known { background:#8ee0b3 !important; color:#10291d !important; }
body .rating.again { background:#f6aaa9 !important; color:#36181b !important; }
body :is(.rating span,.primary-button small) { color:inherit !important; }
body .progress-track { background:#35313f; }
body .toast { background:#e7def8; color:#231d2c; }
body .brand-mark { background:#b9a5ff; color:#21182f; }
::selection { background:#5a467c; color:#fff; }
body #chumModule .chum-assistant { background:#26262b !important; border:0; }
body #chumModule .chum-user { background:#39304f !important; border:0; }
body #chumModule .chum-message .chum-listen { background:#ffffff0d !important; border-color:#ffffff26 !important; }
body #chumSend .chum-translation { color:#332640 !important; }
/* Persistent left rail, compact on smaller screens. */
body.minimal-student-space { --nav-width:216px; padding-left:var(--nav-width); }
body.minimal-student-space #moduleNav {
  position:fixed; inset:0 auto 0 0; z-index:30; width:var(--nav-width); height:100dvh;
  display:flex; flex-direction:column; justify-content:flex-start; align-items:stretch;
  gap:8px; margin:0; padding:26px 14px; overflow-x:hidden; overflow-y:auto;
  border:0; border-right:1px solid #29292f; border-radius:0;
  background:#111113 !important; box-shadow:none;
}
body.minimal-student-space #moduleNav .module-tab {
  display:flex; align-items:center; gap:13px; width:100%; min-height:52px;
  padding:13px 14px; border:0; border-radius:18px; text-align:left;
  color:#b8b7c1 !important; background:transparent !important;
}
body.minimal-student-space #moduleNav .module-tab[hidden] { display:none; }
body.minimal-student-space #moduleNav .module-tab.active {
  background:#29292e !important; color:#fff !important; box-shadow:none;
}
body.minimal-student-space #moduleNav .module-tab:hover { background:#222227 !important; color:#fff !important; }
#moduleNav .nav-icon { width:25px; height:25px; flex:none; }
body.minimal-student-space #moduleNav strong { font:500 14px/1.3 system-ui,sans-serif; }
@media(max-width:760px) {
  body.minimal-student-space { --nav-width:68px; }
  body.minimal-student-space #moduleNav { padding:18px 8px; gap:12px; }
  body.minimal-student-space #moduleNav .module-tab { justify-content:center; min-height:50px; padding:12px; }
  #moduleNav .module-tab strong { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
  body.minimal-student-space .shell { width:calc(100% - 24px); }
  body.minimal-student-space .topbar { padding:18px 12px; }
  body.minimal-student-space .brand strong { font-size:clamp(20px,5vw,28px); }
}
body.minimal-student-space .topbar > .brand strong {
  font:600 20px/1.3 system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  letter-spacing:-.025em; overflow-wrap:anywhere;
}
body.minimal-student-space #moduleNav #studentCoursePicker {
  display:block; width:100%; margin:0 0 14px; padding:0;
}
body.minimal-student-space #moduleNav #studentCoursePicker[hidden] { display:none; }
body.minimal-student-space #moduleNav #studentCourseSelect {
  display:block; width:100%; max-width:100%; min-width:0; min-height:52px;
  box-sizing:border-box; border-radius:18px; padding:12px 14px; font-size:14px;
}
@media(max-width:760px) {
  body.minimal-student-space #moduleNav #studentCourseSelect { padding:8px 2px; font-size:12px; min-height:50px; }
}
/* Borderless dropdowns with a consistently inset chevron. */
body select {
  appearance:none; -webkit-appearance:none;
  border:0 !important;
  padding-right:34px !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23c9c5d3' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 12px center !important;
  background-size:16px 16px !important;
}
@media(max-width:760px) {
  body.minimal-student-space #moduleNav #studentCourseSelect {
    padding-left:5px; padding-right:19px !important;
    background-position:right 5px center !important; background-size:12px 12px !important;
  }
}
body.minimal-student-space #moduleNav .sidebar-account { margin-top:auto; padding-top:20px; width:100%; }
body.minimal-student-space #moduleNav #accountButton { position:relative; width:100%; min-height:52px; padding:10px; border-radius:18px; text-align:left; }
#accountName { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.presence-dot { display:inline-block; width:9px; height:9px; border-radius:50%; background:#777581; flex:none; vertical-align:middle; margin-right:6px; }
.presence-dot.online { background:#43ce7e; }
#accountPresence { position:absolute; bottom:10px; left:31px; border:2px solid #26262d; width:12px; height:12px; margin:0; }
.admin-presence { display:inline-block; color:#bbb5c8; margin-top:5px; font-size:12px; }
#profileDialog { width:min(440px,calc(100% - 32px)); color:#eeeef2; background:#1e1e24; border:1px solid #44434e; border-radius:24px; padding:24px; }
#profileDialog::backdrop { background:#000a; }
#profileForm label { display:block; margin:16px 0; }
#profileForm input { display:block; width:100%; padding:12px; margin-top:6px; border-radius:12px; border:1px solid; }
.profile-hint { color:#bbb5c8; font-size:12px; }
.profile-actions { display:flex; flex-wrap:wrap; gap:8px; }
.profile-actions button { padding:10px 14px; border-radius:18px; cursor:pointer; border:1px solid; }
@media(max-width:760px) { #moduleNav #accountName { display:none; } body.minimal-student-space #moduleNav #accountButton { padding:10px; } }
#profileDialog h2 { font:600 22px/1.3 system-ui,sans-serif; margin:0 0 20px; letter-spacing:-.02em; }
/* Square interface; only chat bubbles retain the messenger silhouette. */
body :is(button,select,input,textarea,dialog,.panel,.auth-card,.set-card,.flashcard,.learning-frame,.mode-tabs,.module-tabs,.cahier-assignment-list,.cahier-video-branch,.cahier-comprehension,.cahier-section-summary,.cahier-tracked-resource,.verbs-video-link,.verbs-play,.admin-link,.account-avatar,.chum-feedback,.chum-suggestions,.access-row,.card-editor-row,.feedback,.choice,.toast) {
  border-radius:4px !important;
}
body #chumModule .chum-message { border-radius:26px !important; }
body #chumModule .chum-assistant { border-bottom-left-radius:8px !important; }
body #chumModule .chum-user { border-bottom-right-radius:8px !important; }
body .presence-dot { border-radius:50% !important; }
/* Minimal visual hierarchy, without changing controls or content. */
body :is(button,select,input,textarea,dialog,.panel,.auth-card,.set-card,.flashcard,.learning-frame,.module-tabs,.chum-message,.account-button,.brand-mark) { box-shadow:none !important; }
body :is(.admin-link,.verbs-play,.cahier-open-video,.account-avatar,.tab.active,.course-tab.active) { background:#27272b !important; color:#eeeeF2 !important; }
body :is(#chumSend,.primary-button,.admin-form button,.access-row button,.card-editor-row button) { background:#e3e3e7 !important; color:#171719 !important; }
body #chumSend .chum-translation { color:#44444b !important; }
body :is(.slow-french-button.active,.chum-toolbar .slow-french-button.active) { background:#dfdfe4 !important; color:#171719 !important; }
body :is(.learning-frame,.chum-feedback,.chum-suggestions) { background:transparent !important; border-color:#303035 !important; }
/* Black navigation; charcoal workspace and line-based learning sections. */
body.minimal-student-space { background:#18181b; --cream:#18181b; }
body.minimal-student-space #moduleNav { background:#000 !important; border-right:0; }
body #cahierModule :is(.panel,.cahier-assignment-list,.cahier-video-branch,.cahier-comprehension,.cahier-section-summary,.cahier-tracked-resource,.cahier-tracked-resource.is-complete) {
  background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important;
}
body #cahierModule :is(.cahier-video-branch,.cahier-comprehension,.cahier-video-group) { border-bottom:1px solid #38383e !important; }
body #cahierModule .cahier-tracked-resource { border-bottom:1px solid #303035 !important; }
body #cahierModule .cahier-tracked-resource:last-child { border-bottom:0 !important; }
body #cahierModule :is(.cahier-section-summary,.cahier-tracked-resource):hover { background:transparent !important; }
body #cahierModule .cahier-resource-children { border-left:0 !important; }
body #cahierModule .cahier-resource-children > .cahier-tracked-resource::before { display:none; }
body #verbsModule :is(.verbs-video-link,.verbs-play) { background:transparent !important; border:0 !important; border-radius:0 !important; }
body #verbsModule .verbs-video-link { border-bottom:1px solid #38383e !important; padding:14px 0; }
body [data-module="vocabulary"]:is(.learning-frame,.mode-tabs,.catalog),
body [data-module="vocabulary"] :is(.panel,.set-card,.flashcard,.flashcard.known-card,.mode-tabs) {
  background:transparent !important; border:0 !important; border-radius:0 !important; box-shadow:none !important;
}
body [data-module="vocabulary"] :is(.set-card,.flashcard,.panel) { border-bottom:1px solid #38383e !important; }
body [data-module="vocabulary"].mode-tabs { border-bottom:1px solid #38383e !important; }
body [data-module="vocabulary"] .tab { background:transparent !important; border-radius:0 !important; }
body [data-module="vocabulary"] .tab.active { background:transparent !important; border-bottom:2px solid #ddd !important; color:#fff !important; }
body [data-module="vocabulary"].learning-frame { padding:0; }
/* Each module owns its separator, including consecutive videos in one group. */
body #cahierModule #cahierAssignmentList .cahier-video-group { border:0 !important; }
body #cahierModule #cahierAssignmentList :is(.cahier-video-branch,.cahier-comprehension) {
  border:0 !important; border-bottom:1px solid #38383e !important; margin-bottom:12px;
}
body #cahierModule #cahierAssignmentList > .cahier-tracked-resource {
  border-bottom:1px solid #38383e !important;
}
body #cahierModule #cahierAssignmentList .cahier-resource-children > .cahier-tracked-resource + .cahier-tracked-resource {
  border-top:1px solid #303035 !important;
}
.sidebar-day { width:100%; margin:0 0 16px; }
.sidebar-day > small { display:block; color:#aaa; font:400 12px/1.4 system-ui,sans-serif; margin:0 0 8px; }
.sidebar-day-control { display:flex; align-items:center; justify-content:space-between; min-height:52px; width:100%; background:#202024; }
.sidebar-day-control button { width:34px; min-height:48px; border:0; background:transparent !important; font-size:24px; padding:0; }
.sidebar-day-control button:disabled { opacity:.25; cursor:default; }
#sidebarDayLabel { font-size:14px; white-space:nowrap; }
#cahierTestPicker { display:none !important; }
body .learning-frame > .mode-tabs { display:none !important; }
@media(max-width:760px){ .sidebar-day > small { font-size:9px; overflow-wrap:anywhere; }.sidebar-day-control { flex-wrap:wrap; }.sidebar-day-control button { width:24px; min-height:30px; font-size:20px; }#sidebarDayLabel { order:-1; width:100%; text-align:center; font-size:11px; padding-top:6px; } }
.learning-day-title { margin:0 0 18px; color:#b8b7c1; font:400 14px/1.5 system-ui,sans-serif; }
.vocab-minimal-heading:has(#courseEyebrow:empty) { display:none !important; }

/* Compact, monochrome study controls. */
body .slow-french-button .turtle-icon { width:22px; height:22px; display:block; color:#fff; }
body :is(.slow-french-button,.chum-toolbar .slow-french-button).active { background:#404047 !important; border-color:#fff !important; color:#fff !important; }
body .reveal-mode-button { height:44px; min-height:44px; padding:0 10px; gap:0; background:#26262d !important; color:#eeeef2 !important; }
body .reveal-mode-button > :first-child { font-size:11px; line-height:1; color:inherit !important; }
body .reveal-mode-button.active { border-color:#fff !important; background:#404047 !important; }

body .sound-toggle span { border-radius:4px; height:44px; padding:0 10px; background:#26262d; color:#fff; }
body .sound-toggle input:checked + span { background:#26262d; border-color:#777780; color:#fff; }
body #filterButton { width:136px; min-width:136px; max-width:136px; padding-left:8px; padding-right:8px; justify-content:center; }
body #filterButton .filter-selection { width:100%; justify-content:space-between; white-space:nowrap; }

body #moduleNav .sidebar-brand { display:block; flex:none; margin:0 0 20px; padding:0 6px; color:#fff; text-decoration:none; font:600 16px/1.25 system-ui,sans-serif; letter-spacing:-.03em; overflow-wrap:anywhere; }
body .topbar:not(:has(> :not([hidden]))) { display:none; }
@media(max-width:760px) { body #moduleNav .sidebar-brand { padding:0; font-size:12px; line-height:1.35; text-align:center; overflow-wrap:anywhere; margin-bottom:8px; } }

/* Course and day selectors blend into the black sidebar. */
body.minimal-student-space #moduleNav #studentCourseSelect,
body.minimal-student-space #moduleNav .sidebar-day-control,
body.minimal-student-space #moduleNav .sidebar-day-control button { background-color:#000 !important; }
body.minimal-student-space #moduleNav #studentCourseSelect option { background:#000; color:#eeeef2; }

/* Gently rounded navigation and study toolbar controls. */
body #moduleNav :is(button,select,.sidebar-day-control),
body .study-controls-row :is(button,.sound-toggle span) { border-radius:8px !important; }

/* One active state for every study toggle. */
body .study-controls-row button[aria-pressed="true"],
body .study-controls-row .sound-toggle input:checked + span { background:#404047 !important; border-color:#fff !important; color:#fff !important; }
body .study-controls-row button[aria-pressed="true"] :is(span,s,svg) { color:#fff !important; }

/* Larger, recognizable playback symbols. */
body .study-controls-row :is(#playButton,#shuffleButton) { width:44px; padding:0; justify-content:center; }
body #playButton #playButtonIcon { display:block; font-size:22px; line-height:1; color:#fff; }
body #shuffleButton .shuffle-icon { display:block; width:22px; height:22px; color:#fff; }

/* Bitten-croissant brand mark. */
body #moduleNav .sidebar-brand { display:flex; flex-direction:column; align-items:flex-start; gap:9px; font-size:15px; }
body #moduleNav .sidebar-logo { display:block; width:38px; height:38px; object-fit:contain; }
@media(max-width:760px) { body #moduleNav .sidebar-brand { align-items:center; font-size:11px; gap:5px; } body #moduleNav .sidebar-logo { width:34px; height:34px; } }

/* Emphasize the language shown first, not the swap action. */
body #directionButton { gap:5px; width:60px; padding:0 8px; justify-content:center; }
body #directionFrom { font-size:11px; font-weight:850; line-height:1; letter-spacing:0; color:#fff; }
body #directionTo { font-size:11px; font-weight:600; line-height:1; color:#b8b8c0; }
body #directionButton b { font-size:14px; font-weight:400; color:#9999a3; }

body #directionButton:active b { transform:none; }

/* Quiet account footer, with the existing live presence status. */
body.minimal-student-space #moduleNav #accountButton { border:0 !important; background:transparent !important; box-shadow:none !important; }
body #moduleNav .account-identity { display:flex; flex-direction:column; align-items:flex-start; gap:3px; min-width:0; }
body #moduleNav #accountName { max-width:100%; }
body #moduleNav #accountStatus { font:400 11px/1.2 system-ui,sans-serif; color:#a4a4ac; }
@media(max-width:760px) { body #moduleNav .account-identity { display:none; } }

/* Leaf lessons are not expandable categories. */
body #cahierModule .cahier-leaf .cahier-section-title::before { content:none; display:none; }
body #cahierModule .cahier-leaf > .cahier-section-summary { cursor:default; }

/* Discord-style message identity: circular avatar, name, then content. */
body #chumModule .chum-entry { display:flex; align-items:flex-start; gap:12px; width:100%; }
body #chumModule .chum-avatar { width:38px; height:38px; flex:0 0 38px; border-radius:50%; display:grid; place-items:center; background:#4263eb; color:#342139; font:600 17px/1 system-ui,sans-serif; margin-top:2px; }
body #chumModule .chum-avatar img { width:27px; height:27px; opacity:1; }
body #chumModule .chum-entry-user .chum-avatar { background:#ed4245; }
body #chumModule .chum-entry .chum-message { min-width:0; max-width:calc(100% - 50px); margin:0; }
body #chumModule .chum-author { font:600 13px/1.4 system-ui,sans-serif; color:#d4c4f8; margin-bottom:7px; }
body #chumModule .chum-entry-user .chum-author { color:#f2c0d7; }
@media(max-width:480px) { body #chumModule .chum-entry { gap:8px; } body #chumModule .chum-avatar { width:32px; height:32px; flex-basis:32px; } body #chumModule .chum-avatar img { width:24px; height:24px; } body #chumModule .chum-entry .chum-message { max-width:calc(100% - 40px); } }

body #chumModule .chum-entry .chum-message { background:transparent !important; border:0 !important; border-radius:0 !important; padding:0; }
body #chumModule .chum-entry .chum-author { color:#f2f2f5; font-size:14px; }

/* Tight message rhythm and unobtrusive monochrome audio controls. */
body #chumModule .chum-entry .chum-author { margin-bottom:1px; line-height:1.3; }
body #chumModule .chum-entry .chum-message { line-height:1.4; }
body #chumModule .chum-message .chum-line { margin:0; gap:7px; }
body #chumModule .chum-message .chum-translation { margin-top:1px; margin-bottom:0; line-height:1.35; }
body #chumModule .chum-message .chum-listen { width:24px; height:24px; min-height:24px; border:0 !important; background:transparent !important; box-shadow:none !important; color:#fff !important; }
body #chumModule .chum-listen svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
body #chumModule .chum-listen:hover svg { opacity:.7; }

/* Both study languages use the same white text. */
body :is(#promptText,#answerText,.vocabulary-row > span) { color:#fff !important; }

/* English translations are deliberately quieter than French. */
body :is(#promptText,#answerText,.vocabulary-row > span)[lang="en"],
body #chumModule .chum-message .chum-translation { color:#a4a4ad !important; }

/* The signed-in account uses the same student avatar as the chat. */
body #moduleNav #accountAvatar { background:#ed4245 url('logo.svg?v=4') center / 24px 24px no-repeat !important; border:0 !important; border-radius:50% !important; font-size:0; color:transparent !important; }

body #moduleNav #accountAvatar { width:38px; height:38px; flex:0 0 38px; background-size:27px 27px !important; }
@media(max-width:760px) { body.minimal-student-space #moduleNav #accountButton { padding:7px; } }
@media(max-width:480px) { body #moduleNav #accountAvatar { width:32px; height:32px; flex-basis:32px; background-size:24px 24px !important; } }

/* Soft button surfaces; outlines are reserved for selected states. */
body.minimal-student-space button:not(#moduleNav button),
body.minimal-student-space .sound-toggle span,
body.minimal-student-space .study-controls-row button,
body.minimal-student-space #chumModule button { background-color:#303036 !important; border:1px solid transparent !important; box-shadow:none !important; }
body.minimal-student-space button:not(#moduleNav button):is(.active,[aria-pressed="true"],[aria-selected="true"]),
body.minimal-student-space .study-controls-row button[aria-pressed="true"],
body.minimal-student-space .sound-toggle input:checked + span,
body.minimal-student-space #chumModule button[aria-pressed="true"] { background-color:#404047 !important; border:1px solid #fff !important; }
/* Keep the deliberately unboxed audio, account and day controls. */
body.minimal-student-space #chumModule .chum-message .chum-listen,
body.minimal-student-space #moduleNav #accountButton,
body.minimal-student-space #moduleNav .sidebar-day-control button { background:transparent !important; border:0 !important; }

/* Compact scene controls and playful, monochrome action symbols. */
body #chumModule #chumScene { margin-bottom:12px; }
body #chumModule .chum-control-icon { width:22px; height:22px; flex:none; color:#fff; vertical-align:middle; }
body #chumModule :is(#chumSound,#chumSlow) { width:44px; height:44px; padding:0; display:inline-grid; place-items:center; }
body #chumModule #chumHelp .chum-control-icon { margin-right:8px; }
body #chumModule #chumEnd { display:inline-flex; align-items:center; gap:8px; }

/* Audio on study cards is an unboxed icon only. */
body.minimal-student-space #flashcard :is(#speakPrompt,#speakAnswer) { width:36px; height:36px; padding:6px; display:inline-grid; place-items:center; background:transparent !important; border:0 !important; box-shadow:none !important; color:#fff !important; }
body.minimal-student-space #flashcard #speakPrompt[hidden] { display:none; }
body #flashcard :is(#speakPrompt,#speakAnswer) svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* One aligned control row beneath the scene, then a quieter role panel. */
body #chumModule .chum-toolbar { display:flex; justify-content:flex-start; align-items:center; flex-wrap:nowrap; gap:8px; overflow-x:auto; max-width:100%; padding-bottom:3px; margin-bottom:12px; }
body #chumModule .chum-toolbar > * { flex:0 0 auto; }
body #chumModule .chum-toolbar button,
body #chumModule #chumFormality { height:44px; min-height:44px; box-sizing:border-box; margin:0; border-radius:8px !important; }
body #chumModule .chum-toolbar .chum-variety-label { flex-wrap:nowrap; }
body #chumModule #chumRoles { background:#111114; border:0; border-radius:8px; padding:12px 16px; margin:0 0 16px; }
body #chumModule #chumRoles:empty { display:none; }

/* Compact Messenger-like reply composer. */
body #chumModule .chum-composer { display:flex; align-items:center; gap:8px; width:100%; margin-top:10px; }
body #chumModule #chumInput { flex:1; min-width:0; width:auto; height:66px; min-height:66px; max-height:66px; padding:12px 18px; line-height:21px; border:0 !important; border-radius:28px !important; resize:none; overflow-y:auto; }
body.minimal-student-space #chumModule #chumSend { flex:0 0 44px; width:44px; height:44px; padding:8px; display:grid; place-items:center; border:0 !important; border-radius:50% !important; background:transparent !important; color:#fff !important; }
body #chumModule #chumSend svg { width:28px; height:28px; fill:currentColor; }
body #chumModule #chumSend:disabled { opacity:.4; cursor:not-allowed; }

/* A thought-cloud action, above the send arrow. */
body #chumModule .chum-input-tools { justify-content:flex-end; }
body.minimal-student-space #chumModule #chumHelp { position:relative; width:190px; height:95px; padding:0; border:0 !important; background:transparent !important; flex:none; }
body #chumModule #chumHelp .chum-cloud-shape { position:absolute; inset:0; width:100%; height:100%; fill:#303036; stroke:transparent; stroke-width:1.5; }
body #chumModule #chumHelp:hover .chum-cloud-shape { fill:#404047; }
body #chumModule #chumHelp:focus-visible .chum-cloud-shape { stroke:#fff; }
body #chumModule .chum-cloud-label { position:absolute; left:14px; right:14px; top:28px; text-align:center; font:500 13px/1.3 system-ui,sans-serif; color:#fff; }
body #chumModule .chum-cloud-label .chum-translation { margin:2px 0 0; font-size:10px; }
