.campus { --radius: 8px; }
.campus-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px max(24px, calc((100vw - 1120px) / 2)); background: var(--surface); border-bottom: 1px solid var(--line); }
.campus-brand { display: flex; gap: 12px; align-items: center; text-decoration: none; font-size: 1.15rem; }
.campus-header nav { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.campus-header nav > a { padding: 12px 0; font-size: .9rem; font-weight: 650; text-decoration: none; }
.campus-header a[aria-current] { color: var(--red-dark); text-decoration: underline; text-underline-offset: 6px; }
.campus-main { width: min(1120px, calc(100% - 48px)); margin: 0 auto; padding: 40px 0 56px; min-height: calc(100vh - 160px); }
.campus h1 { font-size: clamp(1.65rem, 4vw, 2.2rem); line-height: 1.2; letter-spacing: -.025em; text-wrap: balance; }
.campus h2 { font-size: 1.2rem; line-height: 1.4; }
.campus h3 { font-size: 1rem; }
.campus p { line-height: 1.65; max-width: 72ch; }
.campus .button, .campus .control, .campus .check { min-height: 44px; }
.campus textarea.control { min-height: 118px; }
.campus textarea.course-description { min-height: 180px; }
.campus .panel { margin-bottom: 24px; }
.campus .panel-body { padding: 24px; }
.campus .page-heading { align-items: start; }
.campus .page-heading h1 { margin: 8px 0 0; }
.campus .page-heading > .button { flex-shrink: 0; }
.campus .muted { color: var(--muted); }
.campus .course-list { border-block: 1px solid var(--line); }
.campus .course-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.campus .course-row:last-child { border-bottom: 0; }
.campus .course-row > div { min-width: 0; }
.campus .course-row h2 { margin: 0 0 6px; overflow-wrap: anywhere; }
.campus .course-row p { margin: 4px 0; }
.campus .row-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.campus .course-row > .row-actions { flex-shrink: 0; }
.campus .empty-state { padding: 32px 0; border-block: 1px solid var(--line); }
.campus .empty-state h2 { margin-top: 0; }
.campus .auth-panel { max-width: 460px; margin: 24px auto; padding: 32px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.campus .auth-panel h1 { margin-top: 0; }
.campus .auth-panel .field { margin-top: 20px; }
.campus .auth-panel .button { width: 100%; margin-top: 24px; }
.campus .auth-help { margin-top: 20px; }
.campus a:focus-visible, .campus summary:focus-visible { outline: 3px solid var(--info); outline-offset: 4px; }
.campus .module { padding-block: 24px; border-top: 1px solid var(--line); }
.campus .module h2 { margin-top: 0; }
.campus .lesson-list { list-style: none; padding: 0; margin: 12px 0 0; }
.campus .lesson-list li { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); }
.campus .lesson-list a { padding-block: 10px; font-weight: 650; overflow-wrap: anywhere; }
.campus .lesson-body { max-width: 72ch; font-size: 1.05rem; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.campus .lesson-reading { padding: 32px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.campus textarea.lesson-editor { min-height: 340px; line-height: 1.65; }
.campus .section-heading { margin: 40px 0 20px; }
.campus fieldset { border: 1px solid var(--line); padding: 16px; margin: 0; min-width: 0; }
.campus legend { padding: 0 8px; font-weight: 650; }
.campus details > summary { cursor: pointer; padding: 12px 0; font-weight: 700; }
.campus .enrollment { padding: 24px 0; border-top: 1px solid var(--line); }
.campus .enrollment h3 { margin-bottom: 4px; overflow-wrap: anywhere; }
.campus .enrollment p { margin-top: 0; overflow-wrap: anywhere; }
.campus .enrollment .form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.campus .pagination { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 24px; padding-inline: 0; }
.campus-footer { padding: 20px 24px; color: var(--muted); border-top: 1px solid var(--line); font-size: .85rem; text-align: center; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; padding: 12px; background: white; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
@media (max-width: 700px) {
    .campus-header { align-items: flex-start; flex-direction: column; padding: 16px 20px; gap: 12px; }
    .campus-header nav { gap: 8px 18px; }
    .campus-main { width: calc(100% - 40px); padding-top: 24px; }
    .campus .course-row { align-items: flex-start; flex-direction: column; gap: 16px; }
    .campus .auth-panel { padding: 24px; margin: 0 auto; }
    .campus .page-heading { flex-direction: column; }
    .campus .form-grid, .campus .enrollment .form-grid { grid-template-columns: 1fr; }
    .campus .panel-body, .campus .lesson-reading { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) { .campus *, .campus *::before, .campus *::after { transition: none !important; } }

.campus .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.campus .course-row h3 { margin: 0 0 6px; overflow-wrap: anywhere; }

.campus .account-email { overflow-wrap: anywhere; }

.campus .csv-example { white-space: pre-wrap; overflow-wrap: anywhere; font-family: inherit; padding: 16px; background: var(--surface); border: 1px solid var(--line); }

.campus fieldset.quiz-question { margin-block: 24px; }
.campus .quiz-question legend { max-width: 100%; overflow-wrap: anywhere; }
.campus .quiz-option { padding-block: 12px; align-items: flex-start; overflow-wrap: anywhere; }

.campus .module h2.section-heading { margin-top: 40px; }

@media print { .campus-header, .campus-footer, .skip-link, .no-print { display: none !important; } .campus-main { max-width: none; margin: 0; padding: 0; } }

/* Shared administration: existing CRM and campus use one navigable shell. */
.admin-shell .sidebar { overflow-y: auto; }
.admin-shell .sidebar-footer { position: static; margin-top: 24px; }
.admin-navigation > summary { display: none; }
.admin-shell .nav-link[aria-current] { color: #fff; }
@media (max-width: 700px) {
 .admin-navigation > summary { display: list-item; cursor: pointer; min-height: 44px; padding: 12px 4px; font-weight: 700; }
 .admin-navigation[open] nav, .admin-navigation[open] .sidebar-footer { display: block; }
 .admin-navigation:not([open]) nav, .admin-navigation:not([open]) .sidebar-footer { display: none; }
}
@media print { .admin-shell .sidebar, .admin-shell .topbar { display: none; } .admin-shell .content { margin: 0; } }
