/* Skill Hub and shared sub-navigation, 2CFinance charter (rounded panels, pill navigation). */
nav.subnav { display: flex; flex: none; justify-content: flex-start; gap: 6px; margin: 8px 0 28px; padding: 6px; overflow-x: auto; background: var(--surface); border-radius: 999px; box-shadow: var(--shadow); width: fit-content; max-width: 100%; }
nav.subnav a { text-decoration: none; color: var(--muted); font-size: 13px; padding: 10px 18px; min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; border: 0; border-radius: 999px; background: transparent; }
nav.subnav a[aria-current] { color: #fff; background: var(--teal); font-weight: 600; }
.subnav a:hover { color: var(--teal); background: var(--wash); }
nav.subnav a[aria-current]:hover { color: #fff; background: var(--teal); }
.pagination { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 24px 0; font-size: 13px; }
.pagination div { display: flex; gap: 10px; }
.hub-head .section-heading { border-bottom: 0; padding-bottom: 0; align-items: flex-end; }
.hub-head h1 { margin: 10px 0 8px; }
.hub-head .lead { margin: 0; }
.hub-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.hub-search { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; background: var(--surface); border-radius: var(--radius-panel); box-shadow: var(--shadow); padding: 20px 22px; margin-bottom: 18px; }
.hub-search .hub-query { flex: 2 1 280px; }
.hub-search label { flex: 1 1 200px; }
.hub-search a { font-size: 12px; margin-bottom: 12px; }
.sort-group { display: flex; border: 0; padding: 0; margin: 0; }
.sort-group legend { font-size: 12px; font-weight: 600; margin-bottom: 6px; padding: 0; }
.sort { background: var(--surface); color: var(--teal); border: 1px solid var(--line); border-radius: 0; min-height: 46px; padding: 10px 16px; font-weight: 600; font-size: 12px; }
.sort:first-of-type { border-radius: 999px 0 0 999px; }
.sort:last-of-type { border-radius: 0 999px 999px 0; }
.sort:hover { background: var(--wash); border-color: var(--line); color: var(--teal); }
.sort + .sort { border-left: 0; }
.sort.active, .sort.active:hover { background: var(--teal); border-color: var(--teal); color: #fff; }
.hub-count { margin: 0 0 12px; }
.skill-list { display: flex; flex-direction: column; background: var(--surface); border-radius: var(--radius-panel); box-shadow: var(--shadow); overflow: hidden; }
.skill-row { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; padding: 20px 22px 20px 12px; border-bottom: 1px solid var(--line); background: var(--surface); }
.skill-row:last-child { border-bottom: 0; }
.skill-row:hover { background: var(--bg); }
.skill-body h2 { font-size: 18px; margin: 0 0 6px; letter-spacing: -.2px; }
.skill-body h2 a { text-decoration: none; color: var(--teal); }
.skill-body h2 a:hover { text-decoration: underline; }
.skill-summary { color: var(--muted); font-size: 14px; margin: 0 0 10px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.skill-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 12px; color: var(--muted); margin: 0; }
.skill-meta .tag { font-size: 11px; padding: 3px 8px; }
.label { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .3px; padding: 3px 10px; border: 0; border-radius: 999px; }
.label.validated { color: var(--prod-ink); background: var(--prod-bg); }
.label.unreviewed { color: var(--test-ink); background: var(--test-bg); }
.vote { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.vote form { margin: 0; }
.vote-button { min-height: 44px; width: 44px; padding: 0; border-radius: 999px; background: var(--surface); color: var(--muted); border: 1px solid var(--line); font-size: 15px; }
.vote-button:hover { background: var(--wash); border-color: var(--wash2); color: var(--teal); }
.vote-button.active, .vote-button.active:hover { background: var(--teal); border-color: var(--teal); color: #fff; }
.vote-score { font-weight: 700; color: var(--teal); font-size: 16px; min-width: 24px; text-align: center; }
.booking-panel .vote { flex-direction: row; justify-content: flex-start; gap: 10px; margin: 6px 0 10px; }
.booking-panel .vote-button { width: 44px; margin: 0; }
.skill-source { white-space: pre-wrap; overflow-wrap: anywhere; background: var(--bg); border: 1px solid var(--line); border-radius: 16px; padding: 18px; font: 12.5px/1.6 Consolas, 'Courier New', monospace; color: var(--ink); max-height: 70vh; overflow: auto; margin: 18px 0 0; }
.warnings { background: var(--test-bg); color: var(--ink); border: 0; border-radius: 16px; padding: 14px 18px; margin: 12px 0; }
.warnings h3 { color: var(--test-ink); }
.warnings h3 { font-size: 14px; margin: 0 0 6px; }
.warnings ul, .warnings-list { margin: 6px 0; padding-left: 18px; font-size: 12px; overflow-wrap: anywhere; }
.notice.error { background: var(--warn-bg); color: var(--warn); }
.notice ul { margin: 8px 0 0; padding-left: 18px; }
.domain-choices { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 16px; }
.domain-choices legend { font-size: 12px; font-weight: 600; margin-bottom: 4px; padding: 0; }
.domain-choices .confirmation { margin: 6px 0; font-size: 13px; }
.form-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.skill-body em, .how em { font-style: normal; font-weight: 600; color: var(--teal2); }
.how .panel h2 { margin-top: 0; font-size: 19px; }
.how .panel p:last-child { margin-bottom: 0; }
code { font-family: Consolas, 'Courier New', monospace; font-size: .92em; background: var(--wash); padding: 1px 6px; border-radius: 6px; }
@media (max-width: 850px) {
  .hub-head .section-heading { align-items: flex-start; }
  .domain-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 570px) {
  .hub-actions, .hub-actions .button { width: 100%; }
  .sort-group { width: 100%; }
  .sort { flex: 1; padding: 10px 6px; font-size: 11px; }
  nav.subnav { border-radius: 22px; flex-wrap: wrap; overflow: visible; width: auto; }
  nav.subnav a { padding: 10px 14px; }
  .skill-row { grid-template-columns: 44px minmax(0, 1fr); gap: 10px; padding: 16px 4px; }
  .domain-choices { grid-template-columns: 1fr; }
  .pagination { flex-direction: column; align-items: stretch; }
}
/* Course objectives and skills on the session page (course_types.py). */
.course-objectives, .course-skills { margin-top: 24px; }
.objective-list { list-style: none; margin: 0; padding: 0; }
.objective-list li { display: flex; gap: 16px; padding: 14px 0; border-top: 1px solid var(--line); }
.objective-list li p { margin: 2px 0 0; font-size: 13px; color: var(--muted); }
.objective-number { font-family: var(--heading); font-weight: 800; color: var(--teal2); width: 26px; flex-shrink: 0; }
.objective-facts { display: grid; grid-template-columns: 130px 1fr; gap: 4px 12px; border: 0; padding: 0; margin: 8px 0 0; font-size: 13px; }
.course-skill-list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.course-skill-list li { border: 1px solid var(--line); border-radius: 16px; background: var(--bg); padding: 16px; display: flex; flex-direction: column; gap: 6px; }
/* Session summaries (session_summaries.py). */
.session-summary { margin-top: 24px; }
.coverage-grid { list-style: none; margin: 0 0 18px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; }
.coverage-grid li { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 8px; }
/* Status shown as a pill, never as a coloured edge on the card. */
.coverage-label { align-self: flex-start; font-size: 11px; font-weight: 600; border-radius: 999px; padding: 3px 10px; color: var(--muted); border: 1px solid var(--line); }
.coverage-seen .coverage-label { color: var(--prod-ink); background: var(--prod-bg); border-color: var(--prod-bg); }
.coverage-partial .coverage-label { color: var(--test-ink); background: var(--test-bg); border-color: var(--test-bg); }
.summary-columns { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 28px; }
.summary-columns h3 { font-size: 16px; margin: 16px 0 8px; }
.cited-skills { list-style: none; padding: 0; margin: 0; }
.cited-skills li { padding: 10px 0; border-top: 1px solid var(--line); }
.cited-skills li { display: flex; flex-direction: column; gap: 6px; }
.cited-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cited-actions .pill { white-space: nowrap; }
.summary-actions { display: flex; gap: 12px; }
@media (max-width: 850px) { .summary-columns { grid-template-columns: 1fr; } }
/* Skill Hub by category: overview tiles, one section per category, cards. */
.cat-closing { --cat: #2f505a; } .cat-fpa { --cat: #437280; } .cat-treasury { --cat: #4f8f7e; }
.cat-ts { --cat: #a5675f; } .cat-mission { --cat: #b08a4e; } .cat-reporting { --cat: #5b7fa6; }
.cat-sales { --cat: #8a6a9e; } .cat-productivity { --cat: #6f8a3a; } .cat-tools { --cat: #6f777d; }
.cat-dot { display: inline-block; width: 10px; height: 10px; background: var(--cat, #437280); margin-right: 8px; flex: none; }
.cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; margin: 0 0 22px; }
.cat-tile { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; padding: 14px 16px; background: #fff; border: 1px solid var(--line); text-decoration: none; color: #2f505a; }
.cat-tile:hover { background: #f4f8f9; }
.cat-tile[aria-current] { background: #e4f5fa; border-color: var(--cat); }
.cat-tile.cat-empty { opacity: .5; }
.cat-name { display: flex; align-items: center; font-weight: 700; font-size: 14px; }
.cat-count { font-size: 22px; font-weight: 700; line-height: 1; color: var(--cat); font-variant-numeric: tabular-nums; }
.cat-hint { grid-column: 1 / -1; font-size: 12px; color: #596a70; }
.cat-section { margin: 30px 0 10px; }
.cat-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; border-bottom: 1px solid var(--line); padding-bottom: 8px; margin-bottom: 14px; }
.cat-head h2 { display: flex; align-items: center; margin: 0; font-size: 20px; color: #2f505a; }
.cat-head p { margin: 0; flex: 1 1 260px; color: #596a70; font-size: 13px; }
.cat-head-count { margin-left: 8px; font-size: 13px; font-weight: 700; color: #fff; background: var(--cat); padding: 1px 8px; }
.skill-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.skill-card { background: #fff; border: 1px solid #d9d9d9; padding: 16px 16px 12px; display: flex; flex-direction: column; gap: 8px; }
.skill-card:hover { border-color: #9cc5cc; }
.skill-card h3 { font-size: 16px; margin: 0; letter-spacing: -.2px; line-height: 1.35; }
.skill-card h3 a { text-decoration: none; color: #2f505a; }
.skill-card h3 a:hover { text-decoration: underline; }
.skill-card .skill-summary { margin: 0; flex: 1; }
.skill-card .vote { flex-direction: row; gap: 8px; border-top: 1px solid #ececec; padding-top: 8px; }
.skill-card .vote-button { min-height: 28px; width: 32px; }
.cat-current { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 12px 14px; background: #f4f8f9; border: 1px solid var(--line); margin: 0 0 12px; font-size: 14px; }
.cat-current a { margin-left: auto; font-size: 12px; }
/* DT tab: use cases (use_cases.py). */
.dt-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.dt-stats div { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 16px; }
.dt-stats strong { display: block; font-size: 30px; line-height: 1.1; color: var(--teal); }
.dt-domains { display: flex; flex-direction: column; gap: 8px; }
.dt-domain { display: grid; grid-template-columns: 220px minmax(0, 1fr) 32px; gap: 10px; align-items: center; font-size: 13px; text-decoration: none; color: inherit; }
.dt-domain .track { appearance: none; width: 100%; height: 10px; border: 0; background: var(--wash); border-radius: 999px; overflow: hidden; }
.dt-domain .track::-webkit-progress-bar { background: var(--wash); border-radius: 999px; }
.dt-domain .track::-webkit-progress-value { background: var(--teal2); border-radius: 999px; }
.dt-domain .track::-moz-progress-bar { background: var(--teal2); border-radius: 999px; }
.dt-domain[aria-current] { font-weight: 700; }
.uc-status { align-self: flex-start; font-size: 11px; font-weight: 600; border-radius: 999px; padding: 3px 10px; white-space: nowrap; color: var(--muted); border: 1px solid var(--line); }
.uc-production { color: var(--prod-ink); background: var(--prod-bg); border-color: var(--prod-bg); }
.uc-tested { color: var(--test-ink); background: var(--test-bg); border-color: var(--test-bg); }
.uc-prior { color: var(--teal2); background: var(--wash); border-color: var(--wash); }
.uc-confirm { color: var(--warn); background: var(--warn-bg); border-color: var(--warn-bg); }
.uc-card .uc-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.uc-card .uc-who { display: flex; justify-content: space-between; gap: 10px; align-items: center; border-top: 1px solid var(--line); padding-top: 10px; margin-top: auto; font-size: 13px; }
@media (max-width: 850px) { .dt-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .dt-domain { grid-template-columns: 140px minmax(0, 1fr) 28px; } }
/* DT directory: skills, missions, directory and dynamic CV (dt_directory.py). */
.dt-chips { display: flex; align-items: center; gap: 6px 8px; margin: 0 0 16px; }
.dt-chips .pill { text-decoration: none; font-size: 12px; padding: 6px 12px; }
.dt-table td { vertical-align: top; }
.dt-level { display: inline-block; }
.dt-level-2 { color: var(--test-ink); background: var(--test-bg); border-color: var(--test-bg); }
.dt-level-3 { color: var(--prod-ink); background: var(--prod-bg); border-color: var(--prod-bg); }
.dt-level-4, .dt-level-5 { color: #fff; background: var(--teal2); border-color: var(--teal2); }
.dt-level-5 { background: var(--teal); border-color: var(--teal); }
.dt-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.dt-two > .panel { margin: 0; }
.dt-agg { grid-template-columns: minmax(0, 180px) minmax(0, 1fr) 64px; row-gap: 2px; }
.dt-agg .small { grid-column: 1 / -1; }
.dt-missions { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.dt-person h3 a { color: inherit; text-decoration: none; }
.dt-person h3 a:hover { text-decoration: underline; }
.dt-text { white-space: pre-line; margin: 0; }
.dt-nature + .dt-nature { margin-top: 12px; }
.dt-nature h3, .dt-cv h3 { font-size: 14px; margin: 16px 0 8px; color: var(--teal); }
.dt-nature .pill-row, .dt-cv .pill-row { display: flex; gap: 6px; }
.dt-stats-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 8px; }
.dt-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; }
.dt-head h1 { margin: 6px 0 10px; }
.dt-head-side { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.dt-dash { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 16px 0; }
.dt-dash > .panel { margin: 0; }
.dt-dash .dt-wide { grid-column: 1 / -1; }
.dt-rank { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; }
.dt-rank li span { float: right; color: var(--muted); }
.dt-howto { background: var(--wash); box-shadow: none; }
.dt-howto code { font-size: 12px; background: var(--surface); padding: 1px 6px; border-radius: 6px; }
.dt-cv { display: flex; flex-direction: column; gap: 16px; margin-top: 16px; }
.dt-cv > .panel { margin: 0; }
@media (max-width: 850px) { .dt-two, .dt-dash { grid-template-columns: minmax(0, 1fr); } .dt-head { flex-direction: column; } .dt-head-side { align-items: flex-start; } .dt-stats-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Site frame (2026-09-26): one page head per page (eyebrow, h1, lead), then sub-tabs as pills. */
.page-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px 24px; flex-wrap: wrap; margin: 0 0 18px; }
.page-head h1 { margin: 10px 0 8px; }
.page-head .lead { margin: 0; max-width: 760px; }
.page-actions { display: flex; gap: 10px; flex-wrap: wrap; }
nav.subnav.subnav-modes { margin: -16px 0 24px; padding: 4px; box-shadow: none; background: var(--wash); }
nav.subnav.subnav-modes a { min-height: 40px; padding: 8px 16px; font-size: 12px; }
nav.subnav.subnav-modes a[aria-current] { background: var(--surface); color: var(--teal); box-shadow: var(--shadow); }
nav.subnav.subnav-modes a:hover { background: var(--surface); }
.page-section { margin-top: 36px; }
/* Dashboard (/) and personal pages. */
.dash-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 16px; }
.dash-grid > .panel { margin: 0; }
.dash-grid .dash-wide { grid-column: 1 / -1; }
.dash-grid h2 { margin-top: 0; }
.dash-grid h2 .small { font-family: 'Open Sans', 'Segoe UI', Arial, sans-serif; font-weight: 400; margin-left: 6px; }
.dash-facts { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 6px 14px; margin: 0; font-size: 14px; }
.dash-facts dt { font-size: 12px; padding-top: 2px; }
.dash-facts dd { margin: 0; overflow-wrap: anywhere; }
.dash-more { margin: 14px 0 0; }
.dash-more a:not(.button) { color: var(--teal); }
.dash-pills { margin-top: 0; gap: 8px; }
.dash-three { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dash-three h3 { font-size: 15px; margin: 0 0 10px; }
.dash-three .dt-missions { font-size: 13px; }
.claude-update { box-shadow: none; background: var(--wash); padding: 16px 22px; }
.claude-update summary { font-weight: 600; min-height: 28px; }
.claude-update p, .claude-update li { font-size: 13px; }
.claude-update code { font-size: 12px; background: var(--surface); }
div.dt-domain { cursor: default; }
.panel .table-wrap:last-child { margin-bottom: 0; }
.dt-stats + .dt-two { margin: 16px 0; }
/* Main menu: six entries for a participant, eight for the admin, on one line on a desktop screen. */
body header > nav { gap: 2px; }
body header > nav a { padding: 10px 12px; white-space: nowrap; }
@media (min-width: 1200px) { body header > nav { flex-wrap: nowrap; } }
.filters { flex-wrap: wrap; }
.filters label { min-width: 170px; }
.skills-table { table-layout: fixed; }
.skills-table th:first-child { width: 45%; }
@media (max-width: 850px) { .dash-grid, .dash-three { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 570px) { .page-head { align-items: flex-start; } .page-actions, .page-actions .button { width: 100%; } nav.subnav.subnav-modes { margin-top: -12px; } .dash-facts { grid-template-columns: 1fr; gap: 0; } .dash-facts dd { margin-bottom: 8px; } }

/* Quarterly skills review (« Mon CV », 26/09/2026). */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.seg { display: inline-flex; border: 1px solid var(--line); border-radius: var(--radius-field); overflow: hidden; margin: 0; padding: 0; min-width: 0; }
.seg input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.seg label { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; border-right: 1px solid var(--line); color: var(--teal); font-weight: 600; font-size: 13px; cursor: pointer; background: var(--surface); }
.seg label:last-of-type { border-right: 0; }
.seg label:hover { background: var(--wash); }
.seg input:checked + label { background: var(--teal); color: #fff; }
.seg input:focus-visible + label { outline: 3px solid var(--teal2); outline-offset: -3px; }
.review-skill small { display: block; color: var(--muted); }
.review-table td { vertical-align: middle; }
.review-stale { color: var(--test-ink); font-weight: 600; }
.review-actions { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 8px; }
.review-buttons, .inline-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.inline-actions select { max-width: 220px; }

/* « Mon CV », home page of a roster consultant (26/09/2026). */
.cv-head { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 16px; margin: 8px 0 28px; }
.cv-head > .panel { margin: 0; }
.cv-identity { background: var(--wash); box-shadow: none; display: flex; flex-direction: column; gap: 10px; }
.cv-identity h1 { margin: 0; font-size: clamp(34px, 5vw, 52px); line-height: 1.05; }
.cv-where { margin: 0; color: var(--teal); }
.cv-summary { margin: 0; line-height: 1.6; max-width: 70ch; }
.cv-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.cv-complete { display: flex; flex-direction: column; gap: 12px; }
.cv-complete-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.cv-complete-head h2 { margin: 0; font-size: 20px; }
.cv-complete progress { width: 100%; height: 10px; border: 0; border-radius: 999px; background: var(--wash); overflow: hidden; appearance: none; }
.cv-complete progress::-webkit-progress-bar { background: var(--wash); border-radius: 999px; }
.cv-complete progress::-webkit-progress-value { background: var(--teal2); border-radius: 999px; }
.cv-complete progress::-moz-progress-bar { background: var(--teal2); border-radius: 999px; }
.cv-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.cv-checks li { display: flex; gap: 10px; align-items: baseline; }
.cv-review-open { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: var(--radius-field); background: var(--test-bg); color: var(--test-ink); }
.cv-review-open a { font-weight: 700; }
.cv-step { margin: 0 0 28px; }
.cv-step-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.cv-step-head h2 { margin: 0; font-size: 26px; }
.cv-num { font-family: var(--heading); color: var(--teal2); font-weight: 800; }
.cv-step .dash-grid h3, .cv-levels h3 { margin: 0 0 10px; font-size: 18px; }
.cv-step h4 { font-size: 14px; margin: 14px 0 6px; color: var(--teal); }
.cv-levels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.cv-levels > .panel { margin: 0; }
.cv-bars { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.cv-bar-label { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; margin-bottom: 5px; }
.cv-bar { height: 8px; border-radius: 999px; background: var(--wash); overflow: hidden; }
.cv-fill { display: block; height: 8px; border-radius: 999px; background: var(--teal2); width: 0; }
.cv-fill-1 { width: 20%; } .cv-fill-2 { width: 40%; } .cv-fill-3 { width: 60%; } .cv-fill-4 { width: 80%; } .cv-fill-5 { width: 100%; }
.cv-big { margin: 6px 0 10px; font-size: 14px; }
.cv-big strong { font-family: var(--heading); font-size: 40px; color: var(--teal); margin-right: 6px; }
.cv-todo { background: var(--teal); color: #fff; }
.cv-todo h3 { color: #fff; }
.cv-todo .eyebrow { color: var(--wash2); }
@media (max-width: 900px) { .cv-head, .cv-levels { grid-template-columns: minmax(0, 1fr); } }

/* Debrief after a session (Mon CV, lot 4). */
.debrief { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 16px; align-items: start; }
.debrief > .panel { margin: 0; }
.debrief-head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.debrief-head h2 { margin: 0; font-size: 22px; }
.debrief-num { width: 40px; height: 40px; border-radius: 999px; background: var(--teal); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-family: var(--heading); font-weight: 800; flex-shrink: 0; }
@media (max-width: 900px) { .debrief { grid-template-columns: minmax(0, 1fr); } }

/* Two-level search: the other sub-categories of the same category (spec of 26/09/2026). */
.same-category { display: flex; flex-direction: column; gap: 10px; }
.same-category h2 { margin: 0; }
.same-cat-block { border-top: 1px solid var(--line); padding-top: 10px; }
.same-cat-block summary { cursor: pointer; }
.same-cat-block .dt-missions { margin-top: 8px; }
/* Compact breakdowns (2026-09-30): one line per sector, business model, competence or client. */
.dt-three { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin: 16px 0; }
.dt-three > .panel { margin: 0; }
.dt-compact h2 { font-size: 16px; margin: 0 0 10px; }
.dt-lines { display: flex; flex-direction: column; }
.dt-line { display: grid; grid-template-columns: minmax(0, 1fr) 40px 52px 64px; gap: 8px; align-items: center; min-height: 28px; font-size: 13px; text-decoration: none; color: inherit; border-bottom: 1px solid var(--line); }
.dt-line:last-child { border-bottom: 0; }
a.dt-line:hover .dt-line-label { text-decoration: underline; }
.dt-line strong { text-align: right; white-space: nowrap; }
.dt-line-label, .dt-line .small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dt-line .small { min-width: 0; }
.dt-mission-table td, .dt-mission-table th { padding-top: 8px; padding-bottom: 8px; }
.dt-line .track, .dt-days .track { appearance: none; width: 100%; height: 6px; border: 0; background: var(--wash); border-radius: 999px; overflow: hidden; }
.dt-line .track::-webkit-progress-bar, .dt-days .track::-webkit-progress-bar { background: var(--wash); border-radius: 999px; }
.dt-line .track::-webkit-progress-value, .dt-days .track::-webkit-progress-value { background: var(--teal2); border-radius: 999px; }
.dt-line .track::-moz-progress-bar, .dt-days .track::-moz-progress-bar { background: var(--teal2); border-radius: 999px; }
.dt-days { min-width: 90px; white-space: nowrap; }
.dt-days .track { display: block; margin: 6px 0 2px; }
.dt-case { display: flex; gap: 6px; align-items: baseline; }
.dt-case + .dt-case { margin-top: 4px; }
.uc-dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--line); }
.uc-dot.uc-production { background: var(--prod-ink); }
.uc-dot.uc-tested { background: var(--test-ink); }
.uc-dot.uc-prior { background: var(--teal2); }
.uc-link { font-size: 13px; margin: 0; }
@media (max-width: 600px) { .dt-line { grid-template-columns: minmax(0, 1fr) 52px 64px; } .dt-line .track { display: none; } }
/* Use case context and detail (2026-09-30): mission, sector › category, business model, approach, processes. */
.uc-context { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 12px; margin: 0; font-size: 13px; }
.uc-context dt { color: var(--muted); }
.uc-context dd { margin: 0; overflow-wrap: anywhere; }
.uc-context a { color: inherit; }
.uc-card h3 a { color: inherit; text-decoration: none; }
.uc-card h3 a:hover { text-decoration: underline; }
.uc-steps { margin: 0; padding-left: 18px; }
.uc-detail-meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; }
.uc-detail { margin: 0 0 16px; }
.dt-stats-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.dt-stat-link { text-decoration: none; }
@media (max-width: 850px) { .dt-stats-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.uc-warn { color: var(--warn); white-space: nowrap; }
.dt-two .dt-line { grid-template-columns: minmax(0, 1fr) 80px 58px 120px; }
