/* Shared geometry: 8 px spacing rhythm, 44 px controls, one content grid. */
:root { --space-1: 8px; --space-2: 16px; --space-3: 24px; --space-4: 32px; --control-height: 44px; }
body { min-height: 100vh; display: flex; flex-direction: column; }
main { min-height: 0; flex: 1 0 auto; }
.site-header, .site-footer { flex-shrink: 0; }
.shell { width: min(var(--shell), calc(100% - 48px)); }
.narrow { width: min(820px, calc(100% - 48px)); }
.header-inner { min-height: 88px; gap: 24px; }
.nav { gap: 16px; }
.nav > a:not(.button), .nav .link-button, .nav summary { min-height: 44px; display: inline-flex; align-items: center; }
.nav .link-button { padding: 8px 4px; font-size: inherit; }
.theme-toggle { min-width: 44px; min-height: 44px; justify-content: center; }
.button, .button-small, .card-actions .button { min-height: var(--control-height); padding: 10px 16px; font-size: 13px; line-height: 22px; }
.card-actions .button { padding-inline: 12px; }
.button { max-width: 100%; text-align: center; }
.link-button { min-height: 44px; padding: 8px 0; }
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select { min-height: var(--control-height); }
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]), select:not([multiple]) { height: var(--control-height); }
input, select, textarea { max-width: 100%; }
input:not([type="checkbox"]):not([type="radio"]), select { padding: 10px 12px; line-height: 22px; }
textarea { line-height: 1.6; }
.strategy-form input, .strategy-form select, .strategy-filters input, .strategy-filters select { padding: 10px 12px; }
.strategy-form label, .strategy-filters label { min-width: 0; gap: 8px; font-size: 13px; margin-top: 0; font-weight: 500; }
.strategy-shell .strategy-check { margin-top: 0; }
.strategy-shell { grid-template-columns: 216px minmax(0, 1fr); gap: 32px; padding-block: 32px 64px; }
.strategy-nav { gap: 8px; }
.strategy-nav a { min-height: 44px; }
.strategy-heading { margin: 0 0 32px; }
.strategy-heading h1 { margin: 8px 0 16px; line-height: 1.2; }
.strategy-heading > :last-child, .strategy-heading-split > div > :last-child { margin-bottom: 0; }
.strategy-heading-split { align-items: flex-start; }
.strategy-heading-split > .button { margin-top: 8px; }
.strategy-panel { padding: 24px; margin-block: 24px; }
.strategy-panel > :first-child, .form-card > :first-child { margin-top: 0; }
.strategy-panel > input[type="hidden"] + h2 { margin-top: 0; }
.strategy-panel > :last-child, .form-card > :last-child { margin-bottom: 0; }
.strategy-shell h2 { line-height: 1.4; margin-bottom: 16px; }
.strategy-session-grid, .strategy-columns-two, .strategy-form-grid, .strategy-task-list, .learning-overview { gap: 24px; }
.strategy-session-grid > .strategy-panel, .strategy-columns-two > .strategy-panel, .strategy-task-list > .strategy-panel, .learning-overview > .strategy-panel { margin: 0; }
.strategy-session-grid > .strategy-panel { display: flex; flex-direction: column; align-items: flex-start; }
.strategy-session-grid > .strategy-panel > .button, .strategy-session-grid > .strategy-panel > .strategy-row { margin-top: auto; }
.strategy-filters { gap: 16px; margin-block: 24px; }
.strategy-filters > .button, .strategy-filters > a { flex-shrink: 0; }
.strategy-filters > a { min-height: 44px; display: inline-flex; align-items: center; }
.strategy-panel > form:not(.strategy-form):not(.strategy-filters) { margin-block: 16px; }
.strategy-panel > form > .strategy-check + .button { margin-top: 16px; }
.strategy-metrics { gap: 16px; margin-bottom: 24px; }
.strategy-metrics article { padding: 24px; gap: 8px; }
.strategy-lane { padding: 16px; }
.strategy-lane > h2 { margin: 0 0 16px; }
.strategy-card { padding: 16px; margin-bottom: 16px; }
.strategy-card h3 { margin-block: 8px 16px; }
.strategy-card .card-owner { margin-top: 16px; padding-top: 16px; }
.card-actions { margin-top: 16px; gap: 8px; }
.strategy-timeline { margin-left: 8px; padding-left: 24px; }
.strategy-step::before { left: -32px; }
.strategy-shell .table-wrap { margin-block: 24px; max-width: 100%; }
.table-wrap { overflow-x: auto; overscroll-behavior-x: contain; }
.strategy-shell table { min-width: 800px; }
.strategy-shell th, .strategy-shell td { padding: 16px; min-width: 80px; line-height: 1.5; vertical-align: top; font-variant-numeric: tabular-nums; }
.strategy-shell th:first-child, .strategy-shell td:first-child { min-width: 160px; }
.strategy-shell td > small { display: block; margin-top: 4px; color: var(--muted); }
.strategy-notice { margin-block: 24px; }
.strategy-notice p { margin: 8px 0 16px; }
.strategy-history article { padding-block: 24px; }
.strategy-shell details[open] > summary { margin-bottom: 24px; }
.strategy-shell details > summary { min-height: 32px; line-height: 1.6; }
.course-program { margin-top: 24px; }
.learning-module summary strong { font-size: 22px; }
.course-edit-block, .course-question { margin-block: 24px; padding: 24px; }
.course-edit-block .link-button { justify-self: start; text-align: left; font-size: 13px; }
.hero h1, .dashboard-head h1, .auth-aside h1 { font-family: var(--font-sans); }
.form-card h2 { font-family: var(--font-sans); font-size: 24px; margin-bottom: 16px; }
.form-card label { margin-top: 24px; font-size: 13px; font-weight: 500; }
.form-card .button { margin-top: 24px; }
.auth-shell { min-height: 0; padding-block: 64px; }
.admin-head, .student-profile-head, .review-head, .lesson-head { padding-block: 32px; }
.admin-head h1, .profile-title h1, .review-head h1, .lesson-title h1 { font-family: var(--font-sans); font-size: clamp(28px, 2.8vw, 40px); line-height: 1.2; margin-block: 8px 16px; }
.review-layout, .lesson-layout { gap: 32px; }
.filters, .profile-actions { gap: 16px; }
.filters input, .filters select, .profile-actions select { margin: 0; }
.footer-inner { min-height: 80px; }
@media (max-width: 1150px) {
  .strategy-shell { grid-template-columns: 184px minmax(0, 1fr); gap: 24px; }
  .strategy-metrics article { padding: 16px; }
}
@media (max-width: 900px) {
  .strategy-shell { display: block; padding-top: 24px; }
  .strategy-sidebar { margin-bottom: 24px; }
  .strategy-nav { gap: 8px; padding-bottom: 16px; }
  .strategy-panel { padding: 24px; }
}
@media (max-width: 680px) {
  .shell, .narrow { width: calc(100% - 32px); }
  .header-inner { min-height: 0; gap: 8px; padding-block: 16px 8px; }
  .nav { gap: 0 12px; }
  .nav > a:not(.button) { padding-block: 8px; }
  .strategy-heading { margin-bottom: 24px; }
  .strategy-heading h1 { font-size: 28px; }
  .strategy-panel, .course-edit-block, .course-question { padding: 16px; }
  .strategy-form-grid, .strategy-columns-two, .strategy-task-list, .learning-overview { gap: 16px; }
  .strategy-filters { gap: 16px; }
  .strategy-filters > label { grid-column: 1 / -1; }
  .strategy-metrics { gap: 16px; }
  .strategy-metrics strong { font-size: 30px; }
  .strategy-timeline { margin-left: 8px; padding-left: 16px; }
  .strategy-step::before { left: -24px; }
  .strategy-shell th, .strategy-shell td { padding: 12px 16px; }
  .footer-inner { padding-block: 16px; gap: 8px; align-items: flex-start; flex-direction: column; justify-content: center; }
}
@media print { .strategy-shell, .shell { width: 100%; padding: 0; } .strategy-guide .strategy-panel { padding: 0; margin-block: 12px; } }
