:root {
  --navy: #10243a;
  --navy-2: #174a78;
  --blue: #174a78;
  --gold: #d5a84b;
  --gold-ink: #6d5010;
  --white: #fff;
  --bg: #f4f6f9;
  --ink: #303846;
  --muted: #5c6775;
  --line: #e1e6ee;
  --soft: #eef2f6;
  --green: #1b7f4e;
  --red: #9f1d1d;
  --orange: #9a6700;
  --radius: 18px;
  --shadow: 0 12px 32px rgba(16, 36, 58, .06);
  --font: "Inter", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --display: "Montserrat", "Inter", "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--font); font-size: 16px; line-height: 1.6; }
body.public { overflow-x: clip; }
img { max-width: 100%; height: auto; }
a { color: var(--navy-2); }
h1, h2, h3, .brand strong { font-family: var(--display); letter-spacing: -.02em; }
h1 { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.12; margin: 0 0 .4em; }
h2 { font-size: clamp(1.45rem, 2vw, 2rem); line-height: 1.2; margin: 0 0 .5em; }
h3 { font-size: 1.15rem; line-height: 1.3; margin: 0 0 .35em; }
p { margin: 0 0 .8em; }
.skip { position: absolute; left: -999px; }
.skip:focus { left: 8px; top: 8px; background: #fff; padding: 8px; z-index: 9; }
.wrap { width: min(1160px, calc(100% - 32px)); margin: 0 auto; }
.muted { color: var(--muted); font-weight: 500; }
.site-header { position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,.94); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); }
.bar { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 78px; }
.brand { display: flex; gap: 12px; align-items: center; text-decoration: none; color: var(--navy); min-width: 0; }
.brand img { width: 48px; height: 48px; object-fit: cover; border-radius: 12px; }
.brand small, .side-brand small { display: block; color: var(--muted); font-family: var(--font); font-weight: 500; letter-spacing: 0; font-size: .78rem; }
.nav-toggle, .side-toggle, .side-fold { position: absolute; opacity: 0; pointer-events: none; }
.nav-burger, .menu-btn, .fold-btn { display: none; border: 1px solid var(--line); background: white; color: var(--navy); border-radius: 10px; min-height: 42px; padding: 8px 12px; font-weight: 700; }
.bar-tools { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.lang-switch { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; background: #fff; flex: none; }
.lang-switch a { padding: 7px 9px; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-decoration: none; color: var(--navy); line-height: 1; }
.lang-switch a.on { background: var(--navy); color: #fff; }
nav.main-nav { display: flex; gap: 6px 16px; align-items: center; flex-wrap: wrap; }
nav.main-nav a { text-decoration: none; color: var(--navy); font-weight: 600; font-size: .95rem; }
nav.main-nav a.active { color: var(--navy-2); box-shadow: inset 0 -2px 0 var(--gold); }
.btn, button, .btn-small { background: var(--navy); color: white; border: 0; border-radius: 999px; padding: 12px 18px; font-weight: 700; font-family: inherit; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px; cursor: pointer; min-height: 44px; transition: transform .15s ease, background .15s ease; }
.btn:hover, button:hover { background: var(--navy-2); }
.btn-small { min-height: 40px; padding: 8px 14px; font-size: .92rem; }
.btn-light { background: white; color: var(--navy); }
.btn-light:hover { background: #f7f1e3; }
.btn-line { background: transparent; color: var(--navy); box-shadow: inset 0 0 0 1.5px var(--navy); }
.btn-line:hover { background: var(--navy); color: white; }
.btn-gold, .form-pane .stack-form > button.btn, .list-pane .stack-form > button.btn { background: var(--gold); color: var(--navy); }
.btn-gold:hover, .form-pane .stack-form > button.btn:hover { background: #e2ba63; }
.hero { min-height: 78vh; background-color: var(--navy); background-image: url("../img/fond-hotellerie.jpg"); background-position: center; background-size: cover; color: white; display: flex; align-items: flex-end; }
@supports (background-image: image-set(url("../img/fond-hotellerie.webp") type("image/webp"))) {
  .hero { background-image: image-set(url("../img/fond-hotellerie.webp") type("image/webp"), url("../img/fond-hotellerie.jpg") type("image/jpeg")); }
}
.veil { background: linear-gradient(180deg, rgba(16,36,58,.2), rgba(16,36,58,.78)); width: 100%; padding: 88px 0 56px; }
.hero h1 { max-width: 16ch; }
.hero .lead { max-width: 62ch; font-size: 1.08rem; color: #f4f6f9; }
.eyebrow { letter-spacing: .12em; text-transform: uppercase; font-size: .75rem; font-weight: 700; color: var(--gold); margin: 0 0 10px; }
.actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 22px; }
.page-hero { background: var(--navy); color: white; padding: 42px 0 36px; }
.page-hero h1 { font-size: clamp(1.8rem, 3vw, 2.7rem); max-width: 18ch; }
.page-hero .lead { max-width: 68ch; color: #e7edf4; }
.crumb { display: flex; gap: 8px; flex-wrap: wrap; color: #c9d4e2; font-size: .88rem; margin: 0 0 12px; }
.crumb a { color: white; text-decoration: none; }
.section { padding: 56px 0; }
.section-head { display: flex; justify-content: space-between; gap: 16px; align-items: end; margin-bottom: 22px; }
.section-head p { max-width: 62ch; }
.grid-3, .course-grid, .value-grid, .why-grid, .news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.value-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.why-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.card, .value-card, .why-card, .course, .session-card, .news-card { background: white; border-radius: var(--radius); box-shadow: var(--shadow); }
.card { padding: 18px; }
.value-card, .why-card, .news-card { padding: 18px 18px 8px; }
.value-card strong, .why-card strong { display: block; color: var(--navy); margin-bottom: 6px; }
.why-card { border-top: 3px solid var(--gold); }
.course { overflow: hidden; display: flex; flex-direction: column; min-height: 100%; transition: transform .18s ease; }
.course:hover { transform: translateY(-3px); }
.course-media { display: block; background: var(--navy); min-height: 180px; position: relative; }
.course-media picture, .course-media img { width: 100%; height: 190px; object-fit: cover; display: block; }
.course-fallback { min-height: 190px; display: grid; place-items: end start; padding: 16px; color: white; background: linear-gradient(160deg, var(--navy-2), var(--navy)); }
.course-body { display: flex; flex-direction: column; gap: 8px; padding: 16px; flex: 1; }
.course-body p { color: var(--muted); }
.course-meta { display: flex; gap: 8px; flex-wrap: wrap; padding: 0; margin: 0; list-style: none; color: var(--navy); font-size: .88rem; font-weight: 600; }
.course[hidden], .session-card[hidden] { display: none; }
.session-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.session-card { padding: 18px; display: grid; gap: 8px; }
.session-card header { display: flex; justify-content: space-between; gap: 10px; align-items: start; }
.facts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; margin: 0; }
.facts div { display: grid; }
.facts dt { color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.facts dd { margin: 0; font-weight: 650; }
.filters-public, .view-switch { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 0 0 16px; }
.filters-public input, .filters-public select, .field input, .field select, .field textarea, .filters input, .filters select, .inline input {
  width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; font: inherit; font-size: 16px; background: white; color: var(--ink);
}
.filters-public input, .filters-public select { width: auto; min-width: 180px; background: white; }
.chip, .view-switch button { background: white; color: var(--navy); border-radius: 999px; box-shadow: inset 0 0 0 1px var(--line); min-height: 40px; padding: 8px 14px; }
.chip.on, .view-switch button.on { background: var(--navy); color: white; }
[data-session-board][data-mode="cards"] .session-table { display: none; }
[data-session-board][data-mode="table"] .session-grid { display: none; }
.table-scroll { overflow-x: auto; }
.split { display: grid; grid-template-columns: 1.4fr .8fr; gap: 22px; align-items: start; }
.aside-card { position: sticky; top: 96px; }
.cover { margin: 0 0 16px; }
.cover img { width: 100%; max-height: 460px; object-fit: cover; border-radius: 18px; display: block; }
.prose h1, .section h1 { margin-top: 0; }
.ticks { columns: 2; padding-left: 18px; }
.site-footer { background: var(--navy); color: #d5e0ea; padding: 42px 0 22px; margin-top: 20px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 24px; }
.site-footer a { color: white; text-decoration: none; }
.site-footer nav { display: grid; gap: 6px; }
.site-footer .brand { color: white; margin-bottom: 8px; }
.site-footer .brand small { color: #c9d4e2; }
.legal-row { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; border-top: 1px solid rgba(255,255,255,.12); margin-top: 22px; padding-top: 14px; font-size: .88rem; }
.login-shell { min-height: 62vh; display: grid; place-items: center; padding: 36px 0; }
.login-card { width: min(440px, 100%); }
.login-card h1 { font-size: 2rem; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
.form-grid .field:has(textarea), .form-grid > button, .form-grid > p, .form-grid > .card { grid-column: 1 / -1; }
tr[hidden], article[hidden], p[hidden] { display: none !important; }
.stack-form { display: grid; gap: 12px; }
.field { display: grid; gap: 6px; font-weight: 600; }
.check { display: flex; gap: 8px; align-items: center; }
.empty { background: white; border-radius: 12px; padding: 18px; color: var(--muted); }
.flash { padding: 12px 14px; border-radius: 12px; margin: 12px auto; width: min(1160px, calc(100% - 32px)); }
.flash-success { background: #e8f6ee; color: var(--green); }
.flash-error { background: #fdecea; color: var(--red); }
.hp { position: absolute; left: -9999px; }
.pill, .role { background: var(--soft); color: var(--navy); border-radius: 999px; padding: 4px 10px; font-size: .85rem; }
.motto, .motto-block { color: var(--navy); font-weight: 700; }
.data { width: 100%; border-collapse: collapse; background: white; }
.data th, .data td { border-bottom: 1px solid var(--line); text-align: left; padding: 10px 12px; vertical-align: top; }
.data th { background: var(--soft); color: var(--navy); font-size: .82rem; letter-spacing: .03em; text-transform: uppercase; }
.shell { display: grid; grid-template-columns: 272px minmax(0, 1fr); min-height: 100vh; background: var(--bg); }
.workspace { min-width: 0; }
.admin aside { background: var(--navy); color: #d7e4f2; padding: 18px 14px 16px; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; overflow: auto; }
.side-brand { display: flex; gap: 10px; align-items: center; color: white; text-decoration: none; margin-bottom: 16px; }
.side-brand img { width: 42px; height: 42px; border-radius: 12px; object-fit: cover; background: white; }
.side-brand small, .side-user small { display: block; color: #b7c5d6; line-height: 1.3; }
.side-user { display: flex; gap: 10px; align-items: center; background: rgba(255,255,255,.06); border-radius: 14px; padding: 10px; margin-bottom: 14px; }
.side-user > span { display: grid; min-width: 0; }
.avatar { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--gold); color: var(--navy); font-weight: 700; }
.side-nav { display: grid; gap: 4px; }
.side-nav a, .side-foot a { display: flex; align-items: center; gap: 10px; color: #d7e4f2; text-decoration: none; border-radius: 10px; padding: 9px 10px; }
.side-nav a.active, .side-foot a.active { background: rgba(213,168,75,.16); color: white; box-shadow: inset 3px 0 0 var(--gold); }
.side-nav a:hover, .side-foot a:hover { background: rgba(255,255,255,.08); }
.side-nav a.locked { opacity: .72; }
.need-card { border-color: var(--gold); }
.need-list { margin: 10px 0 0; padding-left: 18px; display: grid; gap: 8px; }
.need-list a { font-weight: 600; }
.side-nav svg, .side-foot svg, .bell svg, .fold-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.side-nav details { margin-top: 8px; }
.side-nav summary { cursor: pointer; color: #b7c5d6; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; padding: 8px 10px; display: flex; align-items: center; gap: 10px; list-style: none; }
.side-nav summary::-webkit-details-marker, .side-nav summary::marker { display: none; content: none; }
.side-nav summary > span, .side-nav a span { flex: 1; }
.side-nav summary .chevron { width: 14px; height: 14px; margin-left: auto; flex: 0 0 auto; transition: transform .15s ease; }
.side-nav details[open] > summary .chevron { transform: rotate(90deg); }
.count { min-width: 22px; height: 22px; border-radius: 999px; background: var(--gold); color: var(--navy); display: grid; place-items: center; font-size: .75rem; }
.side-foot { margin-top: 16px; display: grid; gap: 4px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.12); }
.logout { color: #f3c1c1 !important; }
.work-top { display: flex; justify-content: space-between; gap: 12px; align-items: center; background: white; border-bottom: 1px solid var(--line); padding: 14px 22px; position: sticky; top: 0; z-index: 2; }
.work-title { display: flex; align-items: center; gap: 12px; }
.work-title h1 { margin: 0; font-size: 1.35rem; }
.fold-btn { display: inline-flex; }
.who { display: flex; align-items: center; gap: 12px; }
.bell { position: relative; color: var(--navy); display: grid; place-items: center; width: 38px; height: 38px; }
.bell em { position: absolute; top: 0; right: 0; background: var(--red); color: white; border-radius: 999px; font-style: normal; font-size: .68rem; min-width: 16px; height: 16px; display: grid; place-items: center; }
.work-body { padding: 22px; }
.admin .flash { width: auto; margin: 0 0 14px; }
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.stat { background: white; border-radius: 18px; padding: 16px; box-shadow: var(--shadow); display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; }
.stat-copy { display: grid; }
.stat strong { font-size: 1.35rem; }
.stat-icon { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; color: white; flex: 0 0 auto; }
.stat-icon svg { width: 22px; height: 22px; fill: none; stroke: white; stroke-width: 1.8; }
.stat.blue .stat-icon, .stat.violet .stat-icon { background: var(--navy-2); }
.stat.green .stat-icon { background: var(--green); }
.stat.orange .stat-icon { background: var(--gold); }
.stat.orange .stat-icon svg { stroke: var(--navy); }
.stat.red .stat-icon { background: var(--red); }
.note-banner { background: #e8f1ff; color: #1e3a5f; border-radius: 14px; padding: 14px 16px; }
.chart-card header, .dash-grid { display: grid; gap: 16px; }
.chart-card header { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.chart-card header span { background: var(--soft); border-radius: 10px; padding: 6px 10px; color: var(--muted); font-size: .85rem; }
.dash-grid { grid-template-columns: 1.3fr .7fr; margin-top: 16px; }
.line-chart { width: 100%; height: auto; }
.line-chart line { stroke: #e6edf5; }
.line-chart text { fill: #7b8798; font-size: 11px; }
.series-in { fill: none; stroke: var(--navy-2); stroke-width: 3; }
.series-out { fill: none; stroke: var(--gold); stroke-width: 3; }
.filters { display: flex; gap: 10px; flex-wrap: wrap; align-items: end; margin: 12px 0; }
.filters .field { min-width: 160px; }
.inline { display: inline-flex; gap: 6px; align-items: center; margin: 2px; }
.inline button { padding: 6px 10px; min-height: 36px; }
.pager { display: flex; gap: 6px; margin-top: 12px; }
.pager a { background: white; padding: 6px 10px; border-radius: 8px; text-decoration: none; }
.pager a.active { background: var(--navy); color: white; }
.hbar { display: grid; grid-template-columns: minmax(140px, 1.4fr) 2fr auto; gap: 8px; align-items: center; margin: 8px 0; }
.hbar div { background: var(--soft); border-radius: 999px; height: 10px; }
.hbar b { display: block; height: 10px; border-radius: 999px; background: var(--navy-2); }
.hbar b.out { background: var(--gold); }
.legend { color: var(--muted); }
.swatch { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin: 0 4px 0 10px; }
.swatch.in { background: var(--navy-2); }
.swatch.out { background: var(--gold); }
.card + .card, .card + table, form.card { margin-top: 14px; }
.work-split { display: grid; grid-template-columns: minmax(380px, 420px) minmax(0, 1fr); gap: 16px; align-items: start; }
.form-pane > .card:first-child, .form-pane > form.card:first-child, .list-card { margin-top: 0; }
.form-pane .stack-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; align-items: end; }
.list-pane .stack-form { display: grid; grid-template-columns: 1fr; gap: 12px; }
.stack-form > input[type="hidden"] { display: none; }
.form-pane .stack-form > .link-for { grid-column: 1 / -1; }
.form-pane .stack-form > .link-for[hidden] { display: none; }
.form-pane .stack-form > .wide,
.form-pane .stack-form > .field:has(textarea),
.form-pane .stack-form > .field:has(input[type="email"]) { grid-column: 1 / -1; }
.form-pane .stack-form > h2,
.form-pane .stack-form > h3,
.form-pane .stack-form > p,
.form-pane .stack-form > .check,
.form-pane .stack-form > button { grid-column: 1 / -1; }
.form-pane .stack-form > h2, .form-pane .stack-form > h3 { margin: 0; font-size: 1.15rem; }
.form-pane .stack-form > button.btn { justify-self: end; border-radius: 8px; min-width: 120px; }
.list-pane { min-width: 0; }
.list-card { min-width: 0; overflow-x: auto; }
.list-card h2, .list-card h3 { margin: 16px 0 8px; font-size: 1rem; }
.list-card h2:first-child, .list-card h3:first-child { margin-top: 0; }
.list-tools, .list-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.list-tools { margin-bottom: 12px; }
.list-foot { margin-top: 12px; color: #445066; font-size: .92rem; }
.list-tools label { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.list-tools select, .list-tools input { width: auto; border: 1px solid var(--line); border-radius: 6px; padding: 6px 8px; font: inherit; background: white; }
.list-tools input { min-width: 180px; }
.list-pager { display: flex; gap: 4px; flex-wrap: wrap; }
.list-pager button { background: white; color: var(--ink); border: 1px solid var(--line); border-radius: 4px; padding: 6px 10px; font-weight: 600; min-height: 36px; }
.list-pager button.on { background: var(--navy-2); color: white; border-color: var(--navy-2); }
.list-pager button:disabled { opacity: .55; cursor: default; }
.list-card .data th { background: var(--navy); color: white; border-bottom: 0; white-space: nowrap; text-transform: none; letter-spacing: 0; font-size: .92rem; }
.list-card .data th.sortable { cursor: pointer; user-select: none; }
.list-card .data .sort-mark { margin-left: 4px; opacity: .75; font-size: .75rem; }
.list-card .data td { background: white; }
.list-card .data tbody tr:nth-child(even) td { background: #f7f9fc; }
.list-card .data tbody tr:hover td { background: #eef3f8; }
.list-card .data tr[hidden] { display: none; }
.list-card .data a { font-weight: 700; text-decoration: none; }
.list-card .data td.actions { white-space: nowrap; }
.admin .work-body { padding: 12px 14px; overflow-x: clip; container-type: inline-size; container-name: nsa-work; }
.admin .list-pane { container-type: inline-size; container-name: nsa-list; max-width: 100%; }
.admin .work-title h1 { font-size: 1.15rem; }
.admin .work-split { grid-template-columns: minmax(240px, 300px) minmax(0, 1fr); gap: 12px; }
.admin .card { padding: 10px 12px; }
.admin .card h2, .admin .form-pane .stack-form > h2 { font-size: 1rem; margin-bottom: 4px; }
.admin .muted { font-size: .78rem; line-height: 1.35; }
.admin .form-pane .stack-form { gap: 6px 8px; }
.admin .form-pane .stack-form > p { margin: 0; }
.admin .form-pane .stack-form > button.btn { min-height: 32px; padding: 6px 12px; font-size: .8rem; }
.admin .field { gap: 2px; font-size: .75rem; }
.admin .field input,
.admin .field select,
.admin .field textarea,
.admin .filters input,
.admin .filters select,
.admin .inline input,
.admin .list-tools select,
.admin .list-tools input {
  padding: 5px 8px;
  font-size: 13px;
  line-height: 1.3;
  border-radius: 7px;
}
.admin .field textarea { min-height: 38px; height: 38px; resize: vertical; }
.admin .form-pane .stack-form > .field:has(input[type="email"]) { grid-column: auto; }
.admin .filters .field { min-width: 0; flex: 1 1 120px; }
.admin .list-card, .admin .table-scroll { overflow-x: hidden; }
.admin .data { table-layout: fixed; width: 100%; }
.admin .data th, .admin .data td {
  padding: 5px 6px;
  font-size: .78rem;
  line-height: 1.25;
  white-space: normal;
  overflow-wrap: break-word;
  word-break: normal;
  hyphens: auto;
  vertical-align: top;
}
.admin .list-card .data th { white-space: normal; font-size: .72rem; line-height: 1.2; }
.admin .list-card .data td.actions, .admin .inline { white-space: normal; flex-wrap: wrap; }
.admin .list-tools { margin-bottom: 8px; }
.admin .list-tools input { min-width: 0; width: 9rem; }
.admin .list-foot { margin-top: 8px; font-size: .75rem; }
.admin .list-pager button { min-height: 28px; padding: 3px 7px; font-size: .75rem; }
.admin .badge { font-size: .68rem; padding: 1px 6px; }
.admin .data button { padding: 4px 7px; font-size: .72rem; }
@container nsa-list (max-width: 640px) {
  .admin .list-card, .admin .table-scroll { overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; }
  .admin .table-scroll { display: block; width: 100%; min-width: 0; }
  .admin .list-card .data { table-layout: auto; width: max-content; min-width: 100%; }
  .admin .list-card .data th, .admin .list-card .data td { width: auto; hyphens: manual; }
  .admin .list-card .data th { white-space: nowrap; font-size: .75rem; }
  .admin .list-card .data td { white-space: normal; min-width: 4.4rem; max-width: 11rem; overflow-wrap: break-word; }
  .admin .list-tools, .admin .list-foot { position: sticky; left: 0; width: 100%; max-width: 100%; }
  .admin .list-card::-webkit-scrollbar, .admin .table-scroll::-webkit-scrollbar { height: 8px; }
  .admin .list-card::-webkit-scrollbar-thumb, .admin .table-scroll::-webkit-scrollbar-thumb { background: var(--navy-2); border-radius: 8px; }
}
@container nsa-work (max-width: 640px) {
  .admin .list-card, .admin .table-scroll { overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; }
  .admin .table-scroll { display: block; width: 100%; min-width: 0; }
  .admin .list-card .data { table-layout: auto; width: max-content; min-width: 100%; }
  .admin .list-card .data th, .admin .list-card .data td { width: auto; hyphens: manual; }
  .admin .list-card .data th { white-space: nowrap; font-size: .75rem; }
  .admin .list-card .data td { white-space: normal; min-width: 4.4rem; max-width: 11rem; overflow-wrap: break-word; }
  .admin .list-tools, .admin .list-foot { position: sticky; left: 0; width: 100%; max-width: 100%; }
  .admin .list-card::-webkit-scrollbar, .admin .table-scroll::-webkit-scrollbar { height: 8px; }
  .admin .list-card::-webkit-scrollbar-thumb, .admin .table-scroll::-webkit-scrollbar-thumb { background: var(--navy-2); border-radius: 8px; }
}
.list-card .data button { background: var(--navy-2); border-radius: 6px; padding: 6px 10px; font-size: .8rem; }
.badge { display: inline-block; border-radius: 999px; padding: 3px 8px; font-size: .78rem; font-weight: 700; line-height: 1.3; white-space: nowrap; }
.badge-ok { background: #e8f6ee; color: #17693f; }
.badge-warn { background: #fff6e5; color: var(--gold-ink); }
.badge-bad { background: #fdecea; color: var(--red); }
.badge-info { background: #e8f1ff; color: var(--navy-2); }
.badge-muted, .badge-neutral { background: var(--soft); color: #445066; }
.badge + .badge { margin-left: 4px; }
@media (min-width: 901px) {
  .side-fold:checked ~ .shell { grid-template-columns: 86px 1fr; }
  .side-fold:checked ~ .shell aside span,
  .side-fold:checked ~ .shell aside small,
  .side-fold:checked ~ .shell aside .count,
  .side-fold:checked ~ .shell aside .chevron { display: none; }
  .side-fold:checked ~ .shell .side-nav a,
  .side-fold:checked ~ .shell .side-foot a,
  .side-fold:checked ~ .shell summary { justify-content: center; }
}
@media (max-width: 1200px) {
  .why-grid, .value-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dash-grid { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-3, .course-grid, .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .grid-3, .course-grid, .value-grid, .why-grid, .news-grid, .session-grid, .ticks, .split, .footer-grid, .stats { grid-template-columns: 1fr; columns: 1; }
  .nav-burger, .menu-btn { display: inline-flex; }
  .fold-btn { display: none; }
  .site-header nav { display: none; position: absolute; top: 78px; left: 0; right: 0; background: white; padding: 12px 16px 16px; border-bottom: 1px solid var(--line); }
  .nav-toggle:checked ~ nav { display: grid; }
  .site-header nav .btn { width: 100%; }
  .hbar { grid-template-columns: 1fr; }
  .shell { grid-template-columns: 1fr; }
  .admin aside { position: fixed; z-index: 5; width: min(300px, 88vw); transform: translateX(-105%); transition: transform .18s ease; }
  .side-toggle:checked ~ .shell aside { transform: none; }
  .work-split, .admin .work-split { grid-template-columns: 1fr; }
  .form-pane .stack-form { grid-template-columns: 1fr; }
  .who-name { display: none; }
  .aside-card { position: static; }
  .form-grid { grid-template-columns: 1fr; }
  .hero { min-height: 86vh; }
}
@media (max-width: 390px) {
  .wrap { width: min(1160px, calc(100% - 20px)); }
  .actions .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
