/* Stage 2 production asset generated from the Tailwind utility set used by the current PHP views. */
*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}::before,::after{--tw-content:''}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}h1,p,pre{margin:0}a{color:inherit;text-decoration:inherit}button,input,select,textarea{font:inherit;color:inherit;margin:0;padding:0}button{background-color:transparent;background-image:none}button,[role=button]{cursor:pointer}img,svg{display:block;vertical-align:middle}img{max-width:100%;height:auto}.block{display:block}.hidden{display:none}.flex{display:flex}.grid{display:grid}.min-h-screen{min-height:100vh}.min-w-0{min-width:0}.w-full{width:100%}.max-w-md{max-width:28rem}.max-w-6xl{max-width:72rem}.max-w-48{max-width:12rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-8{margin-bottom:2rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.space-y-5>:not([hidden])~:not([hidden]){margin-top:1.25rem}.space-y-6>:not([hidden])~:not([hidden]){margin-top:1.5rem}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-3{gap:.75rem}.gap-4{gap:1rem}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded-xl{border-radius:.75rem}.rounded-2xl{border-radius:1rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-red-200{border-color:#fecaca}.border-emerald-200{border-color:#a7f3d0}.border-slate-200{border-color:#e2e8f0}.border-slate-300{border-color:#cbd5e1}.bg-white{background-color:#fff}.bg-red-50{background-color:#fef2f2}.bg-emerald-50{background-color:#ecfdf5}.bg-slate-50{background-color:#f8fafc}.bg-slate-950{background-color:#020617}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-12{padding-top:3rem;padding-bottom:3rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-sm{font-size:.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-white{color:#fff}.text-red-700{color:#b91c1c}.text-emerald-700{color:#047857}.text-slate-500{color:#64748b}.text-slate-600{color:#475569}.text-slate-700{color:#334155}.text-slate-900{color:#0f172a}.text-slate-950{color:#020617}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.hover\:bg-slate-800:hover{background-color:#1e293b}.hover\:text-slate-950:hover{color:#020617}.focus\:border-slate-500:focus{border-color:#64748b}@media (min-width:640px){.sm\:block{display:block}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:p-7{padding:1.75rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}
/* Stage 3 utilities used by content administration views. */
.flex-col{flex-direction:column}.flex-1{flex:1 1 0%}.flex-wrap{flex-wrap:wrap}.shrink-0{flex-shrink:0}.contents{display:contents}.items-start{align-items:flex-start}.justify-end{justify-content:flex-end}.gap-2{gap:.5rem}.gap-6{gap:1.5rem}.mb-2{margin-bottom:.5rem}.mb-6{margin-bottom:1.5rem}.mt-1{margin-top:.25rem}.mt-3{margin-top:.75rem}.space-y-3>:not([hidden])~:not([hidden]){margin-top:.75rem}.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}.space-y-8>:not([hidden])~:not([hidden]){margin-top:2rem}.min-h-24{min-height:6rem}.min-h-40{min-height:10rem}.max-w-3xl{max-width:48rem}.overflow-hidden{overflow:hidden}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.divide-y>:not([hidden])~:not([hidden]){border-top-width:1px}.divide-slate-200>:not([hidden])~:not([hidden]){border-color:#e2e8f0}.bg-slate-100{background-color:#f1f5f9}.px-2{padding-left:.5rem;padding-right:.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-xs{font-size:.75rem;line-height:1rem}.whitespace-pre-line{white-space:pre-line}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.h-4{height:1rem}.w-4{width:1rem}.hover\:bg-slate-50:hover{background-color:#f8fafc}.hover\:underline:hover{text-decoration-line:underline}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}fieldset:disabled input,fieldset:disabled select,fieldset:disabled textarea{background-color:#f8fafc;color:#64748b;cursor:not-allowed}[hidden]{display:none!important}
@media (min-width:640px){.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-span-3{grid-column:span 3/span 3}}

/* Stage 8 utilities used by dashboard and learner views. */
.space-y-7>:not([hidden])~:not([hidden]){margin-top:1.75rem}.h-2{height:.5rem}.gap-5{gap:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-slate-400{color:#94a3b8}.border-t{border-top-width:1px}.border-slate-100{border-color:#f1f5f9}progress{appearance:auto}
@media (min-width:640px){.sm\:text-right{text-align:right}}
@media (min-width:1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* Production monitoring utilities. */
.text-amber-700{color:#b45309}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}


.lesson-image-preview{display:block;width:100%;height:auto;max-height:28rem;object-fit:contain;background:#f8fafc}
/* Integration settings utilities. */
.mt-1\.5{margin-top:.375rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.cursor-pointer{cursor:pointer}.outline-none{outline:2px solid transparent;outline-offset:2px}.border-amber-200{border-color:#fde68a}.border-amber-300{border-color:#fcd34d}.bg-amber-50{background-color:#fffbeb}.text-amber-800{color:#92400e}.hover\:text-red-700:hover{color:#b91c1c}.disabled\:opacity-50:disabled{opacity:.5}
@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:col-span-3{grid-column:span 3/span 3}}

/* Topic identity images shared across admin, companion cards and public share landing pages. */
.topic-card-image,.topic-landing-image,.topic-admin-image-preview{display:block;width:100%;aspect-ratio:1200/630;object-fit:cover;background:#f1f5f9}
.topic-admin-image-preview{max-width:36rem;border-radius:.75rem}

/* Learner journey utilities. */
.items-end{align-items:flex-end}
.mb-3{margin-bottom:.75rem}
.p-3{padding:.75rem}
.leading-6{line-height:1.5rem}
.tracking-wide{letter-spacing:.025em}
.uppercase{text-transform:uppercase}
.text-slate-800{color:#1e293b}
.gap-x-5{column-gap:1.25rem}
.gap-y-2{row-gap:.5rem}
@media (min-width:640px){.sm\:p-6{padding:1.5rem}}

/* Lightweight admin dashboard live metrics and learner activity trend. */
.dashboard-status-card{transition:border-color .15s ease,background-color .15s ease}
.dashboard-status-card[data-state="warning"]{border-color:#fde68a;background-color:#fffbeb}
.dashboard-range-button{border:1px solid #cbd5e1;border-radius:.5rem;background:#fff;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;font-weight:500;color:#475569}
.dashboard-range-button:hover{background:#f8fafc;color:#020617}
.dashboard-range-button[aria-pressed="true"]{border-color:#020617;background:#020617;color:#fff}
.dashboard-trend-wrap{width:100%;min-height:15rem;overflow:hidden}
.dashboard-trend-wrap svg{display:block;width:100%;height:auto;min-height:15rem}
.dashboard-chart-grid{stroke:#e2e8f0;stroke-width:1}
.dashboard-chart-line{fill:none;stroke:#0f172a;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.dashboard-chart-point{fill:#fff;stroke:#0f172a;stroke-width:2}
.dashboard-chart-axis-label{fill:#64748b;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:11px}
.dashboard-trend-empty{border:1px dashed #cbd5e1;border-radius:.75rem;background:#f8fafc;padding:2rem 1rem;text-align:center;font-size:.875rem;line-height:1.25rem;color:#64748b}

/* Admin reports: compact filters, responsive tables and advisory AI output. */
.report-filter-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}.report-control{display:block;width:100%;margin-top:.375rem;border:1px solid #cbd5e1;border-radius:.75rem;background:#fff;padding:.625rem .75rem;font-size:.875rem;line-height:1.25rem;color:#0f172a;outline:2px solid transparent;outline-offset:2px}.report-control:focus{border-color:#64748b}.report-filter-action{display:flex;align-items:end}.report-summary-grid{display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:.75rem}.report-table-wrap{overflow-x:auto}.report-table{width:100%;min-width:52rem;border-collapse:collapse;font-size:.8125rem;line-height:1.25rem}.report-table th{background:#f8fafc;padding:.75rem 1rem;text-align:left;font-size:.75rem;font-weight:600;color:#475569;white-space:nowrap;border-bottom:1px solid #e2e8f0}.report-table td{padding:.75rem 1rem;vertical-align:top;color:#334155;border-top:1px solid #f1f5f9}.report-table tbody tr:first-child td{border-top:0}.report-table tbody tr:hover td{background:#f8fafc}.report-empty-cell{padding:2rem 1rem!important;text-align:center;color:#64748b!important}.report-ai-output{border:1px solid #e2e8f0;border-radius:.75rem;background:#f8fafc;padding:1rem;font-size:.875rem;line-height:1.6;color:#1e293b}
@media (min-width:640px){.report-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.report-filter-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.report-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Learner detail redesign: one expansion level, explicit details affordance, answer result icons. */
.learner-lesson-summary{list-style:none}.learner-lesson-summary::-webkit-details-marker{display:none}.learner-result-icon{width:1.75rem;height:1.75rem}.learner-interaction-section{padding-top:1.5rem}
.inline-flex{display:inline-flex}.justify-center{justify-content:center}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}

/* AdventShare interface refresh — visual rules only. No service or form logic. */
:root {
  --ui-accent: #087d68;
  --ui-accent-dark: #076452;
  --ui-accent-tint: #e8f4f0;
  --ui-ink: #20352f;
  --ui-muted: #65756e;
  --ui-line: #e2eae5;
  --ui-canvas: #f7f9f7;
  --ui-white: #fff;
  --ui-radius: 12px;
}
html { scroll-behavior: smooth; }
body.app-shell,body.auth-ui {background:var(--ui-canvas);color:var(--ui-ink)}
:where(.app-shell,.auth-ui) a:focus-visible,
:where(.app-shell,.auth-ui) button:focus-visible,
:where(.app-shell,.auth-ui) summary:focus-visible,
:where(.app-shell,.auth-ui) input:focus-visible,
:where(.app-shell,.auth-ui) select:focus-visible,
:where(.app-shell,.auth-ui) textarea:focus-visible {
  outline: 2px solid var(--ui-accent); outline-offset: 2px;
}
:where(.app-shell,.auth-ui) .text-slate-950,
:where(.app-shell,.auth-ui) .text-slate-900 {color:var(--ui-ink)}
:where(.app-shell,.auth-ui) .text-slate-700 {color:#3c5148}
:where(.app-shell,.auth-ui) .text-slate-600,
:where(.app-shell,.auth-ui) .text-slate-500 {color:var(--ui-muted)}
:where(.app-shell,.auth-ui) .border-slate-200,
:where(.app-shell,.auth-ui) .border-slate-300 {border-color:var(--ui-line)}
:where(.app-shell,.auth-ui) .bg-slate-50 {background:var(--ui-canvas)}
:where(.app-shell,.auth-ui) .bg-slate-100 {background:#f1f5f2}
:where(.app-shell,.auth-ui) .bg-slate-950 {background:var(--ui-accent);color:#fff}
:where(.app-shell,.auth-ui) .hover\:bg-slate-800:hover {background:var(--ui-accent-dark)}
:where(.app-shell,.auth-ui) .hover\:text-slate-950:hover {color:var(--ui-accent)}
:where(.app-shell,.auth-ui) .focus\:border-slate-500:focus {border-color:var(--ui-accent)}
:where(.app-shell,.auth-ui) .accent-slate-900 {accent-color:var(--ui-accent)}
:where(.app-shell,.auth-ui) .rounded-xl {border-radius:10px}
:where(.app-shell,.auth-ui) .rounded-2xl {border-radius:var(--ui-radius)}

/* Shared brand and chrome */
.brand-mark {flex:none;display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;
  background:var(--ui-accent);color:#fff;font-size:17px;font-weight:720;letter-spacing:-.06em;border-radius:10px;}
.brand-name {min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:670;letter-spacing:-.025em;font-size:1.05rem;}
.app-topbar {background:#fff;border-bottom:1px solid var(--ui-line)}
.topbar-account {display:flex;align-items:center;gap:16px;margin-left:auto;min-width:0}
.topbar-account-name {font-size:.825rem;font-weight:540;color:#53665c;max-width:175px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-account form {margin:0;flex:none}
.topbar-signout {border:1px solid var(--ui-line);border-radius:9px;background:#fff;color:#41574c;min-height:36px;padding:6px 12px;font-weight:550;font-size:.815rem}
.topbar-signout:hover {background:#f2f6f3;border-color:#cbd9d1}
.app-main {min-width:0}
.app-main > :first-child {min-width:0}
.ui-alert {padding:12px 16px;margin:0 0 22px;border:1px solid;border-radius:10px;font-size:.875rem;line-height:1.5}
.ui-alert-success {color:#145e4e;background:#edf8f2;border-color:#c9e9db}
.ui-alert-error {color:#9e3131;background:#fff5f4;border-color:#f3d5d0}

/* Admin: stable desktop sidebar, small-screen native disclosure. */
.admin-layout {display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}
.admin-sidebar {height:100vh;position:sticky;top:0;min-width:0;background:#fff;border-right:1px solid var(--ui-line);display:flex;flex-direction:column}
.admin-brand {display:flex;align-items:center;gap:11px;min-height:75px;padding:20px 20px 17px;color:var(--ui-ink);text-decoration:none}
.admin-brand:hover {color:var(--ui-ink)}
.admin-sidebar .admin-nav {flex:1;overflow-y:auto;overscroll-behavior:contain;padding:5px 12px 26px;scrollbar-width:thin;scrollbar-color:#d8e5dd transparent}
.admin-nav-group + .admin-nav-group {margin-top:18px}
.admin-nav-heading {padding:9px 12px 7px;color:#839189;font-size:.68rem;font-weight:700;letter-spacing:.085em;text-transform:uppercase}
.admin-nav-link {position:relative;display:block;text-decoration:none;border-radius:9px;padding:10px 12px;min-height:41px;font-size:.865rem;font-weight:510;line-height:21px;color:#52665b;transition:background-color .13s ease,color .13s ease}
.admin-nav-link:hover {color:var(--ui-ink);background:#f4f7f4}
.admin-nav-link.is-current {color:var(--ui-accent-dark);background:var(--ui-accent-tint);font-weight:650}
.admin-nav-link.is-current::before {content:"";position:absolute;left:0;top:11px;bottom:11px;width:3px;border-radius:3px;background:var(--ui-accent)}
.admin-workspace {min-width:0}
.admin-topbar {height:64px;display:flex;align-items:center;justify-content:flex-end;padding:0 32px;position:sticky;top:0;z-index:30}
.admin-main {max-width:1380px;margin:0 auto;padding:31px 32px 60px}
.admin-mobile-menu,.topbar-mobile {display:none}

/* Companion: retain three straightforward destinations. */
.companion-topbar-inner {display:flex;align-items:center;gap:30px;max-width:1200px;margin:0 auto;padding:0 24px;min-height:70px}
.companion-brand {display:flex;align-items:center;gap:10px;max-width:210px;min-width:0;text-decoration:none}
.companion-nav {display:flex;align-items:center;gap:3px;min-width:0}
.companion-nav a {padding:10px 14px;font-size:.875rem;font-weight:550;color:var(--ui-muted);border-radius:9px;white-space:nowrap;text-decoration:none}
.companion-nav a:hover {background:#f2f6f3;color:var(--ui-ink)}
.companion-nav a.is-current {background:var(--ui-accent-tint);color:var(--ui-accent-dark);font-weight:660}
.companion-main {max-width:1180px;padding:32px 24px 60px;margin:0 auto}

/* Shared content: restrained type, surfaces, controls, and compact forms. */
.app-main h1 {color:var(--ui-ink);font-size:1.55rem;line-height:1.25;font-weight:680;letter-spacing:-.035em}
.app-main h2 {color:var(--ui-ink);letter-spacing:-.02em;font-weight:650}
.app-main h3 {color:var(--ui-ink)}
.app-main :is(.rounded-2xl,.rounded-xl).border.bg-white {border:1px solid var(--ui-line);background:#fff;border-radius:var(--ui-radius);box-shadow:0 1px 2px rgba(22,47,34,.025)}
.app-main .rounded-2xl.border.border-slate-200.bg-white.p-5,
.app-main .rounded-xl.border.border-slate-200.bg-white.p-5 {padding:20px}
.app-main :is(input[type=text],input[type=search],input[type=tel],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],input[type=url],input:not([type]),select,textarea) {
  background:#fff;border:1px solid #d3dfd7;border-radius:9px;color:var(--ui-ink);min-height:40px;
  transition:border-color .12s ease,box-shadow .12s ease;
}
.app-main :is(input[type=text],input[type=search],input[type=tel],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],input[type=url],input:not([type]),select,textarea):focus {
  border-color:var(--ui-accent);outline:0;box-shadow:0 0 0 3px rgba(8,125,104,.11);
}
.app-main textarea {line-height:1.6;resize:vertical}
.app-main :is(input,textarea)::placeholder {color:#99a69d}
.app-main :is(input[type=checkbox],input[type=radio]) {accent-color:var(--ui-accent)}
.app-main label {line-height:1.5}
.app-main button[class*="rounded"],.app-main a[class*="rounded"] {transition:background-color .13s ease,border-color .13s ease,color .13s ease}
.app-main button:disabled {opacity:.50;cursor:not-allowed}
.app-main .bg-slate-950 {background:var(--ui-accent);color:white}
.app-main .hover\:bg-slate-800:hover {background:var(--ui-accent-dark)}
.app-main :is(button,a).border-slate-300:hover {background:#f5f8f5;border-color:#b9cfc2}
.app-main a:not([class*="bg-"]):hover {color:var(--ui-accent-dark)}
.app-main :is(.border-t,.border-b,.divide-y) {border-color:var(--ui-line)}
.app-main :is(.text-slate-400) {color:#8a9b90}
.app-main progress {accent-color:var(--ui-accent);height:8px}
.app-main progress::-webkit-progress-bar {background:#e6ede8;border-radius:999px}
.app-main progress::-webkit-progress-value {background:var(--ui-accent);border-radius:999px}
.app-main progress::-moz-progress-bar {background:var(--ui-accent);border-radius:999px}

/* Common data and reports */
.app-main table {border-collapse:collapse;color:var(--ui-ink)}
.app-main :is(table, .report-table) th {font-size:.77rem;font-weight:650;color:#597166;background:#f7faf7;border-color:var(--ui-line)}
.app-main :is(table, .report-table) td {border-color:#edf1ed}
.app-main :is(table, .report-table) tbody tr:hover td {background:#f8faf8}
.report-control {border-color:#d3dfd7;border-radius:9px;color:var(--ui-ink);min-height:40px}
.report-control:focus {border-color:var(--ui-accent);outline:0;box-shadow:0 0 0 3px rgba(8,125,104,.11)}
.report-ai-output {border-color:var(--ui-line);background:#f8faf8;color:var(--ui-ink)}
.dashboard-range-button {border-color:var(--ui-line);border-radius:8px;color:var(--ui-muted)}
.dashboard-range-button:hover {background:var(--ui-accent-tint);color:var(--ui-accent-dark)}
.dashboard-range-button[aria-pressed=true] {background:var(--ui-accent);border-color:var(--ui-accent);color:#fff}
.dashboard-chart-line,.dashboard-chart-point {stroke:var(--ui-accent)}
.dashboard-chart-grid {stroke:var(--ui-line)}
.dashboard-chart-axis-label {fill:var(--ui-muted)}
.dashboard-trend-empty {border-color:var(--ui-line);background:#f8faf8}
.dashboard-status-card {text-decoration:none}
.dashboard-status-card:hover {border-color:#b8d5c6}

/* Authentication stays a focused single card, with no sidebar. */
.auth-ui {min-height:100vh}
.auth-main {padding-top:min(12vh,100px);max-width:440px}
.auth-brand {display:flex;align-items:center;gap:12px;margin-bottom:24px;font-size:1.15rem;font-weight:690;letter-spacing:-.025em}
.auth-main > .rounded-2xl,.auth-main > .rounded-xl {background:#fff;border:1px solid var(--ui-line);border-radius:14px;box-shadow:0 5px 28px rgba(22,49,35,.045)}
.auth-ui .bg-slate-950 {background:var(--ui-accent);color:#fff}
.auth-ui .hover\:bg-slate-800:hover {background:var(--ui-accent-dark)}
.auth-ui input:not([type=hidden]) {min-height:43px;border:1px solid #d3dfd7;border-radius:9px}
.auth-ui input:focus {border-color:var(--ui-accent);outline:0;box-shadow:0 0 0 3px rgba(8,125,104,.11)}
.auth-ui a.underline {color:var(--ui-accent-dark)}

/* Responsive behaviour, no JS dependency for the mobile menu. */
@media (max-width:1000px) {
  .admin-layout {display:block}
  .admin-sidebar {display:none}
  .admin-topbar {height:64px;padding:0 22px;justify-content:space-between}
  .topbar-mobile {display:flex;align-items:center;gap:16px;min-width:0}
  .mobile-brand-name {font-weight:680;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.95rem;letter-spacing:-.02em}
  .admin-mobile-menu {display:block;position:relative;z-index:50}
  .admin-mobile-menu > summary {list-style:none;display:flex;align-items:center;gap:7px;cursor:pointer;color:var(--ui-ink);border:1px solid var(--ui-line);border-radius:9px;padding:8px 10px;font-size:.82rem;font-weight:600}
  .admin-mobile-menu > summary::-webkit-details-marker {display:none}
  .admin-mobile-menu[open] > summary {background:var(--ui-accent-tint);color:var(--ui-accent-dark)}
  .admin-mobile-panel {position:absolute;top:calc(100% + 10px);left:0;width:min(330px,calc(100vw - 36px));max-height:calc(100vh - 100px);overflow-y:auto;background:#fff;border:1px solid var(--ui-line);border-radius:12px;box-shadow:0 16px 50px rgba(24,54,39,.13);padding:12px}
  .admin-nav-group + .admin-nav-group {margin-top:8px}
  .admin-main {padding:27px 25px 55px}
}
@media (max-width:720px) {
  .companion-topbar-inner {padding:12px 16px;gap:12px;flex-wrap:wrap}
  .companion-brand {flex:1}
  .companion-brand .brand-mark {width:29px;height:29px;font-size:15px}
  .companion-brand .brand-name {font-size:.98rem}
  .companion-topbar-inner > .topbar-account {margin-left:0}
  .companion-nav {flex:1 1 100%;order:3;justify-content:space-around;gap:4px}
  .companion-nav a {padding:7px 12px}
  .companion-main {padding:24px 16px 44px}
  .admin-main {padding:23px 16px 44px}
  .admin-topbar {padding:0 16px}
  .topbar-account {gap:10px}
  .topbar-account-name {display:none}
  .app-main h1 {font-size:1.42rem}
  .app-main .rounded-2xl.border.border-slate-200.bg-white.p-5 {padding:16px}
  .auth-main {padding-top:48px}
}
@media (prefers-reduced-motion:reduce) {
  html {scroll-behavior:auto}
  .app-shell *, .auth-ui * {transition-duration:0s!important}
}

/* Small missing layout utilities used by existing forms; presentation only. */
.whitespace-nowrap{white-space:nowrap}.text-left{text-align:left}.text-right{text-align:right}
.space-y-2>:not([hidden])~:not([hidden]){margin-top:.5rem}
.space-y-1>:not([hidden])~:not([hidden]){margin-top:.25rem}
.leading-5{line-height:1.25rem}.leading-7{line-height:1.75rem}
.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}
.min-h-10{min-height:2.5rem}.min-h-20{min-height:5rem}.min-h-80{min-height:20rem}
[class~="min-h-[32rem]"]{min-height:32rem}[class~="max-h-[34rem]"]{max-height:34rem}
.px-2\.5{padding-left:.625rem;padding-right:.625rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}
.hover\:bg-slate-100:hover{background:#f1f5f2}.hover\:bg-red-50:hover{background:#fef2f2}
.rounded{border-radius:.25rem}
@media(min-width:640px){
 .sm\:flex{display:flex}.sm\:gap-4{gap:1rem}.sm\:col-span-1{grid-column:span 1/span 1}
 .sm\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}
 [class~="sm:grid-cols-[1fr_220px_auto]"]{grid-template-columns:minmax(0,1fr) 220px auto}
 [class~="sm:grid-cols-[minmax(0,1fr)_160px_150px_auto]"]{grid-template-columns:minmax(0,1fr) 160px 150px auto}
 [class~="sm:grid-cols-[minmax(0,1fr)_120px_150px_auto]"]{grid-template-columns:minmax(0,1fr) 120px 150px auto}
}
@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:items-start{align-items:flex-start}}

/* Home announcement editor: CSS classes rather than inline styles (required by CSP). */
.home-announcement-editor {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;align-items:start}
.home-announcement-preview-column {min-width:0}
.home-announcement-preview {position:relative;display:flex;align-items:center;min-height:235px;width:100%;max-width:480px;overflow:hidden;border-radius:15px;padding:24px 23px 34px;background:#17675e;color:#fff;isolation:isolate}
.home-announcement-tone-0 {background-color:#17675e}
.home-announcement-tone-1 {background-color:#285943}
.home-announcement-tone-2 {background-color:#254d67}
.home-announcement-tone-3 {background-color:#594b70}
.home-announcement-tone-4 {background-color:#70503e}
.home-announcement-preview-image {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.home-announcement-preview-shade {display:none;position:absolute;inset:0;background:rgba(0,0,0,.58);z-index:-1}
.home-announcement-preview.has-image .home-announcement-preview-shade {display:block}
.home-announcement-preview-copy {min-width:0;width:100%;overflow-wrap:anywhere}
.home-announcement-preview-title {color:#fff;font-size:21px;line-height:1.24;letter-spacing:-.025em;font-weight:700;white-space:pre-line;margin-bottom:12px}
.home-announcement-preview-message {color:#fff;font-size:14px;line-height:1.5;white-space:pre-line}
.home-announcement-preview-dots {position:absolute;bottom:12px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:6px}
.home-announcement-preview-dots span {display:block;background:rgba(255,255,255,.55);width:7px;height:5px;border-radius:100px}
.home-announcement-preview-dots span:last-child {background:#fff;width:19px}
.home-announcement-swatches {display:flex;flex-wrap:wrap;align-items:center;gap:13px}
.home-announcement-choice {display:inline-flex;align-items:center;justify-content:center;position:relative;cursor:pointer;padding:3px;border-radius:11px}
.home-announcement-choice input {position:absolute;opacity:0;width:100%;height:100%;inset:0;cursor:pointer}
.home-announcement-swatch {display:block;width:37px;height:37px;border-radius:9px;border:2px solid #fff;box-shadow:0 0 0 1px #d1ddd5}
.home-announcement-choice:has(input:checked) .home-announcement-swatch {box-shadow:0 0 0 2px #0d695a;border-color:#fff}
.home-announcement-choice:has(input:focus-visible) {outline:2px solid #0d695a;outline-offset:3px}
.study-introduction-preview {max-width:440px;max-height:260px;margin-top:12px;border:1px solid #dbe5dd;border-radius:12px;overflow:hidden;background:#f7faf7}
.study-introduction-preview img {display:block;max-width:100%;max-height:258px;width:auto;height:auto;object-fit:contain}
@media (max-width:850px){.home-announcement-editor {grid-template-columns:minmax(0,1fr)}.home-announcement-preview {max-width:480px}}

/* Course image preview: show complete artwork and keep broken files out of the editor. */
.course-image-preview{max-width:440px;max-height:260px;overflow:hidden;border:1px solid #dbe5dd;border-radius:12px;background:#f7faf7}
.course-image-preview img{display:block;max-width:100%;max-height:258px;width:auto;height:auto;object-fit:contain}

/* UI consistency: missing layout utilities used by existing pages. */
.font-normal{font-weight:400}.gap-0{gap:0}.gap-1{gap:.25rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.mt-0\.5{margin-top:.125rem}
.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pl-5{padding-left:1.25rem}.pl-7{padding-left:1.75rem}
.min-w-full{min-width:100%}.min-w-56{min-width:14rem}.overflow-x-auto{overflow-x:auto}.overflow-auto{overflow:auto}.break-all{overflow-wrap:anywhere;word-break:break-all}.resize-y{resize:vertical}
.list-disc{list-style-type:disc}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.divide-slate-100>:not([hidden])~:not([hidden]){border-color:#f1f5f9}
.text-orange-600{color:#ea580c}.text-amber-900{color:#78350f}.text-red-800{color:#991b1b}.text-emerald-800{color:#065f46}
.bg-black{background-color:#000}.bg-red-700{background-color:#b91c1c}.hover\:bg-red-800:hover{background-color:#991b1b}
.hover\:text-slate-800:hover{color:#1e293b}.disabled\:bg-slate-50:disabled{background-color:#f8fafc}.disabled\:text-slate-500:disabled{color:#64748b}
[class~="bg-slate-50/60"]{background-color:rgb(248 250 252 / 60%)}
@media(min-width:640px){.sm\:items-end{align-items:flex-end}.sm\:p-8{padding:2rem}.sm\:p-5{padding:1.25rem}.sm\:mt-0{margin-top:0}}
@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.lg\:flex-row{flex-direction:row}.lg\:justify-between{justify-content:space-between}.lg\:w-72{width:18rem}}
@media(min-width:1280px){.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:border-b-0{border-bottom-width:0}.xl\:border-r{border-right-width:1px}}

/* Refinements shared by admin, companion and sign-in views; no content changes. */
.app-main {overflow-wrap:break-word}
.app-main :is(.grid,.flex) > * {min-width:0}
.app-main :is(input[type=file]) {display:block;max-width:100%;min-height:44px;padding:7px 10px;line-height:1.45;border:1px solid #d3dfd7;border-radius:9px;background:#fff;color:var(--ui-muted);font-size:.875rem}
.app-main input[type=file]::file-selector-button{cursor:pointer;margin-right:12px;padding:5px 11px;border:1px solid var(--ui-line);border-radius:7px;background:#f5f8f5;color:var(--ui-ink);font-weight:600;font-size:.825rem;transition:background-color .12s ease}
.app-main input[type=file]::file-selector-button:hover{background:var(--ui-accent-tint)}
.app-main :is(button[type=submit],button[type=button],a.inline-flex){min-height:38px}
.app-main :is(textarea,select,input:not([type=checkbox]):not([type=radio]):not([type=hidden])){max-width:100%}
.app-main :is(audio,video){max-width:100%}
.app-main .overflow-x-auto{scrollbar-width:thin;scrollbar-color:#cedbd2 transparent}
.app-main :is(.report-table-wrap,.overflow-x-auto){overscroll-behavior-x:contain}
.app-main :is(.rounded-2xl,.rounded-xl).border.bg-white:focus-within{border-color:#c3dad0}
.admin-nav-link:focus-visible,.companion-nav a:focus-visible{outline:2px solid var(--ui-accent);outline-offset:2px}
.topic-admin-image-preview{max-height:260px;aspect-ratio:unset;object-fit:contain;border:1px solid var(--ui-line);border-radius:12px}
@media(max-width:720px){
  .app-main :is(.rounded-2xl,.rounded-xl).border.bg-white.p-6{padding:18px}
  .app-main :is(.rounded-2xl,.rounded-xl).border.bg-white.p-5{padding:16px}
  .app-main .flex-wrap > :is(button,a){max-width:100%}
  .topbar-mobile{flex:1 1 auto}
  .topbar-account{flex:none}
  .admin-main,.companion-main{min-width:0}
}
@media(max-width:390px){
  .admin-topbar{padding:0 12px}
  .topbar-mobile{gap:8px}
  .admin-mobile-menu > summary{padding:8px}
  .mobile-brand-name{font-size:.875rem}
  .topbar-signout{padding:6px 9px}
}
.gap-x-8{column-gap:2rem}
