@layer legacy {
/* Simba Zouk · refonte visuelle du 21 octobre 2026.
   Couche chargée après styles.css : seule la forme change, les contenus, actions et règles restent ceux du Cockpit.
   Inspirations validées : Qonto (chiffres), Mercury (sobriété), Tabler (menus), Leboncoin (carrousels), Superprof (fiches). */

:root {
  --ink: #23354c;
  --deep: #172d49;
  --navy: #172d49;
  --blue: #2864dc;
  --blue-light: #edf3ff;
  --sea: #edf3ff;
  --mint: #e8f5ef;
  --green: #16704f;
  --paper: #f3f6fa;
  --line: #e4e9f1;
  /* Gris des petits textes : 5,6:1 sur blanc, 5,2:1 sur le fond de page (réserve de la maquette). */
  --muted: #5b687c;
  --booking-bordeaux: #172d49;
  --radius: 16px;
  --shadow: 0 1px 2px rgba(23,45,73,.04), 0 6px 24px rgba(23,45,73,.035);
  --nav-height: 64px;
  background: var(--paper);
}
body { background: var(--paper); color: var(--ink); -webkit-font-smoothing: antialiased; }
h1, h2, h3 { color: var(--navy); }

/* Période Bookings : contenir les contrôles de date natifs sur mobile Safari. */
.filters > .booking-date-filter { display: flex; flex-direction: column; gap: 7px; flex: 1 1 145px; min-width: 0; max-width: 100%; color: var(--muted); font-size: .75rem; }
.filters > .booking-date-filter[hidden] { display: none; }
.booking-date-control { display: flex; align-items: stretch; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.booking-date-control > input.form-control { flex: 1 1 0; width: 0; inline-size: 0; min-inline-size: 0; border: 0; border-radius: 0; box-shadow: none; }
.booking-date-control > input[data-empty="true"]:not(:focus) { color: transparent; -webkit-text-fill-color: transparent; }
.booking-date-control > input[data-empty="true"]:not(:focus)::-webkit-datetime-edit,
.booking-date-control > input[data-empty="true"]:not(:focus)::-webkit-date-and-time-value { opacity: 0; }
.booking-date-clear { flex: 0 0 44px; min-width: 44px; min-height: 44px; padding: 0; display: grid; place-items: center; border: 0; border-left: 1px solid var(--line); border-radius: 0; background: #fff; color: var(--ink); font-size: 1.5rem; line-height: 1; cursor: pointer; touch-action: manipulation; }
.booking-date-clear:focus-visible { outline: 3px solid var(--blue); outline-offset: -3px; }
@media (max-width: 600px) {
  .booking-filters-fold { overflow: hidden; }
  .booking-filters-fold .filters > .booking-date-filter {
    flex-basis: 100%;
    grid-column: 1 / -1;
    overflow: hidden;
  }
}
/* Navigation latérale claire (ordinateur) */
.shell .sidebar { background: #fff; color: var(--ink); border-right: 1px solid var(--line); padding: 26px 16px 20px; scrollbar-color: #c3ccd9 transparent; }
.shell .brand strong { color: var(--navy); }
.shell .brand small { color: var(--muted); }
.shell .brand-mark { width: 38px; height: 38px; border-radius: 12px; background: var(--navy); color: #9fbcff; }
.shell .brand-mark svg { width: 26px; height: 26px; }
.shell .nav-eyebrow { color: #6b788c; font-size: .6875rem; letter-spacing: .12em; }
.shell .nav-item { color: #4f5d72; border-radius: 10px; min-height: 42px; padding: 10px 12px; font-size: .84375rem; }
.shell .nav-item .ui-icon { color: #6b788c; }
.shell .nav-item:hover { background: #f2f5fa; color: var(--navy); }
.shell .nav-item.active { background: var(--blue-light); color: var(--blue); font-weight: 600; }
.shell .nav-item.active .ui-icon { color: var(--blue); }
.shell .nav-item.active:before { display: none; }
.shell .side-nav-quick { margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.shell .nav-videos { color: var(--navy); font-weight: 600; }
.shell .sidebar-toggle { background: #fff; color: var(--muted); border-color: var(--line); }
.shell .sidebar-toggle:hover, .shell .sidebar-toggle:focus-visible { background: #f2f5fa; }
.shell .sidebar-bottom { border-color: var(--line); color: var(--muted); }
.shell .sidebar-caption, .shell .sidebar-privacy { color: var(--muted); }
.shell .sidebar button:focus-visible, .shell .sidebar a:focus-visible { outline-color: var(--blue); }
.sidebar-collapsed .side-nav-quick { border-bottom: 0; }

/* Barre supérieure */
.topbar { background: rgba(255,255,255,.86); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); border-bottom-color: var(--line); box-shadow: none; position: sticky; top: 0; z-index: 12; }
.topbar-title .eyebrow { color: var(--muted); }
.global-search-toggle { border-radius: 12px; background: var(--paper); }

/* Surfaces : cartes aérées et calmes */
.panel, .item-card, .kpi { border-radius: var(--radius); border-color: var(--line); box-shadow: var(--shadow); }
.panel { padding: 22px 24px; }
.icon-button, .button { border-radius: 10px; }
.button-primary { background: var(--blue); border-color: var(--blue); }
.button-primary:hover { background: #1f53bd; border-color: #1f53bd; }
.filter-pill { border-radius: 999px; min-height: 36px; color: #4f5d72; }
.filter-pill.active { background: var(--navy); border-color: var(--navy); color: #fff; }
.chip { border-radius: 999px; }
.muted, .item-top p, .section-header p, .kpi small, .kpi .label-small, .kpi>span { color: var(--muted); }
.form-control { border-radius: 10px; }
.sheet-dialog, .quick-dialog { border-radius: 20px; }

/* Chiffres financiers façon Qonto : sobres, alignés, sans liserés colorés */
.dashboard-kpis .kpi, .dashboard-kpis .kpi:nth-child(2), .dashboard-kpis .kpi:nth-child(3) { border-top: 1px solid var(--line); }
.kpi strong, .dashboard-kpis .kpi strong { color: var(--navy); font-weight: 650; letter-spacing: -.035em; }
.dashboard-kpis button.kpi:hover { border-color: #c4d4f2; box-shadow: 0 6px 24px rgba(40,100,220,.08); }
.hero-card, .hero-card-upcoming:not(.is-empty) { background: var(--navy); }

/* Solde suivi : carte claire et chiffre net, comme les autres indicateurs financiers */
.home-block .dashboard-kpis button.home-balance { background: #fff; background-image: none; border-color: var(--line); color: var(--ink); }
.home-block .dashboard-kpis .home-balance:hover { background: #fff; border-color: #c4d4f2; }
.home-balance .home-card-label, .home-balance small { color: var(--muted)!important; }
.home-block .dashboard-kpis .home-balance strong { color: var(--navy); font-weight: 650; }
.home-balance .home-card-link { color: var(--blue); background: var(--blue-light); }
.home-balance .ui-icon { color: var(--blue); }

/* Carrousels de l’accueil et des fiches (aperçus ; les listes complètes restent accessibles) */
.carousel-section { margin: 4px 0 8px; min-width: 0; }
.carousel-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.carousel-head h2 { margin: 0; font-size: 1.25rem; letter-spacing: -.02em; display: flex; align-items: center; gap: 8px; }
.carousel-head p { margin: 2px 0 0; font-size: .8125rem; color: var(--muted); }
.count-badge { display: inline-grid; place-items: center; min-width: 24px; height: 22px; padding: 0 7px; border-radius: 7px; background: #e9eef6; color: #4f5d72; font-size: .75rem; font-weight: 600; letter-spacing: 0; }
.see-all { border: 0; background: none; color: var(--blue); font-weight: 600; font-size: .875rem; min-height: 44px; padding: 0 2px; white-space: nowrap; }
.carousel { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(220px, 1fr); gap: 14px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding: 2px 2px 10px; scrollbar-width: thin; }
.carousel > * { scroll-snap-align: start; }
@media (min-width: 1100px) { .carousel { grid-auto-columns: minmax(220px, calc((100% - 42px) / 4)); } }
.person-tile { display: flex; flex-direction: column; justify-content: space-between; gap: 14px; text-align: left; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; min-height: 132px; color: var(--ink); box-shadow: var(--shadow); }
.person-tile:hover { border-color: #c4d4f2; }
.person-tile-top { display: flex; align-items: center; gap: 12px; min-width: 0; }
.person-tile-top > span:last-child { min-width: 0; }
.person-tile strong { display: block; color: var(--navy); font-size: .9375rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.person-tile small { display: block; color: var(--muted); font-size: .8125rem; }
.person-tile .person-portrait, .person-initials { width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0; object-fit: cover; box-shadow: 0 0 0 3px #fff, 0 0 0 4px var(--line); }
.person-initials { display: grid; place-items: center; background: #fbe9dc; color: #8a4b27; font-weight: 650; font-size: .9375rem; }
.person-tile-foot { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--line); padding-top: 10px; font-size: .8125rem; color: var(--blue); font-weight: 600; }
.video-tile { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); min-width: 0; }
.video-tile-thumb { position: relative; aspect-ratio: 16 / 9; display: grid; place-items: center; background: radial-gradient(circle at 30% 30%, #dfe9fb, #c9d8f3 55%, #b9cbee); }
.video-tile-thumb small { position: absolute; left: 10px; bottom: 8px; font-size: .6875rem; font-weight: 600; color: var(--navy); background: rgba(255,255,255,.85); border-radius: 6px; padding: 2px 7px; }
.video-tile-play { min-height: 44px; padding: 10px 18px; border: 0; border-radius: 999px; background: var(--navy); color: #fff; font-weight: 600; font-size: .875rem; box-shadow: 0 6px 18px rgba(23,45,73,.25); }
.video-tile-play:hover { background: var(--blue); }
.video-tile-body { padding: 12px 14px 14px; display: grid; gap: 3px; }
.video-tile-body strong { color: var(--navy); font-size: .9375rem; line-height: 1.35; overflow-wrap: anywhere; }
.video-tile-body small { color: var(--muted); font-size: .8125rem; }
.home-block:has(> .carousel-section) { min-width: 0; grid-column: 1 / -1; }
.person-videos { margin-bottom: 20px; }

/* Vidéos prêtes : la préparation reste accessible, repliée sous les onglets */
.video-manage-fold { margin: 0 0 18px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.video-manage-fold > summary { min-height: 48px; display: flex; align-items: center; padding: 0 18px; font-weight: 600; color: var(--navy); cursor: pointer; }
.video-manage-fold > summary::after { content: '⌄'; margin-left: auto; color: var(--muted); }
.video-manage-fold[open] > summary::after { content: '⌃'; }
.video-manage-fold[open] > summary { border-bottom: 1px solid var(--line); }
.video-manage-fold > :not(summary) { margin: 14px; }

/* Plus : grille de rubriques confortable */
.more-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.more-grid > .panel { text-align: left; min-height: 64px; font-weight: 600; color: var(--navy); padding: 18px 20px; }

/* Téléphone : navigation basse, encoche, contenus pleine largeur */
@media (max-width: 700px) {
  .topbar { padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); }
  .mobile-brand { display: flex; align-items: center; gap: 10px; }
  .mobile-brand-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: var(--navy); color: #fff; font-size: .8125rem; font-weight: 700; letter-spacing: -.04em; }
  .mobile-brand strong { color: var(--navy); font-size: 1rem; letter-spacing: -.01em; text-transform: none; }
  #main-content { padding-left: max(16px, env(safe-area-inset-left)); padding-right: max(16px, env(safe-area-inset-right)); padding-bottom: calc(var(--nav-height) + 40px + env(safe-area-inset-bottom)); }
  .bottom-nav { background: rgba(255,255,255,.94); -webkit-backdrop-filter: saturate(1.4) blur(16px); backdrop-filter: saturate(1.4) blur(16px); border-top: 1px solid var(--line); padding: 6px max(6px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left)); gap: 2px; }
  .bottom-item { min-height: 52px; border-radius: 12px; color: #5b687c; gap: 3px; }
  .bottom-item .ui-icon { width: 22px; height: 22px; }
  .bottom-item small { font-size: .6875rem; font-weight: 500; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .bottom-item.active { color: var(--blue); background: none; }
  .bottom-item.active .ui-icon { background: var(--blue-light); border-radius: 10px; padding: 3px 10px; width: 44px; height: 28px; box-sizing: border-box; }
  .bottom-item.active small { font-weight: 650; }
  .bottom-item.active:after { display: none; }
  .quick-add { bottom: calc(var(--nav-height) + 18px + env(safe-area-inset-bottom)); }
  /* Onglets et filtres débordants : défilement horizontal plutôt que retour à la ligne serré */
  .filters:has(> .filter-pill) { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; margin-right: calc(-1 * max(16px, env(safe-area-inset-right))); padding-right: 16px; }
  .filters:has(> .filter-pill)::-webkit-scrollbar { display: none; }
  .filters:has(> .filter-pill) > .filter-pill { flex-shrink: 0; }
  .filters:has(> .filter-pill) > .form-control, .filters:has(> .filter-pill) > label { flex: 0 0 auto; min-width: 180px; }
  .carousel { grid-auto-columns: 78%; margin-right: calc(-1 * max(16px, env(safe-area-inset-right))); padding-right: 16px; }
  .panel { padding: 18px; }
  .more-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 370px) {
  .carousel { grid-auto-columns: 86%; }
  .more-grid { grid-template-columns: 1fr; }
  .bottom-item small { font-size: .625rem; }
}

/* Mode installé (écran d’accueil) : la barre d’état iOS chevauche la page */
@media (display-mode: standalone) {
  .topbar { padding-top: max(12px, env(safe-area-inset-top)); }
  .shell .sidebar { padding-top: calc(26px + env(safe-area-inset-top)); }
}

@media (prefers-reduced-motion: reduce) { .carousel { scroll-behavior: auto; } }
@media print { .carousel { grid-auto-flow: row; grid-auto-columns: auto; overflow: visible; } .bottom-nav { display: none; } }
.cockpit-date-control{display:flex;align-items:center;min-width:0;width:100%;gap:4px}
.cockpit-date-control>input[data-date-display]{min-width:0;width:100%;flex:1}
.cockpit-date-control>input[hidden]{display:none!important}
.cockpit-date-open{flex:0 0 44px;min-height:44px;border:1px solid var(--line,#d6deeb);border-radius:10px;background:#f3f6fc;color:#203552;font-size:24px;cursor:pointer}
.cockpit-date-dialog{width:min(380px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #d6deeb;border-radius:20px;padding:18px;color:#203552;background:white;box-sizing:border-box;box-shadow:0 20px 80px #11274444}
.cockpit-date-dialog::backdrop{background:#13294b66}
.cockpit-date-dialog h2{font-size:20px;margin:0 0 12px}
.cockpit-calendar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cockpit-calendar-heading button,.cockpit-calendar-grid button{min-height:40px;min-width:0;border:1px solid #d6deeb;border-radius:8px;background:white;color:#203552;font:inherit;cursor:pointer}
.cockpit-calendar-heading button{min-width:44px;font-size:24px}
.cockpit-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.cockpit-calendar-grid>span{font-size:12px;padding:4px 0}
.cockpit-calendar-grid button[aria-pressed="true"]{background:#2864e7;color:white;border-color:#2864e7}
.cockpit-calendar-grid button:disabled{opacity:.35;cursor:default}
.cockpit-calendar-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}
.date-chip.date-chip-numeric{width:auto;min-width:86px;padding:10px 5px;flex-shrink:0}
.date-chip.date-chip-numeric strong{font-size:13px;white-space:nowrap}

.home-block .evolution-row-collection .list-row.home-agenda-row{align-items:center}
.home-agenda-row>strong,.home-agenda-row>.button{align-self:center}
.student-space-view .ssv-danger{color:#af374d;border-color:#d797a6;background:#fff1f3}

.profile-management-actions,.ssv-management-actions{display:inline-flex;align-items:center;gap:8px;max-width:100%}
.profile-management-actions>.button,.ssv-management-actions>.ssv-button{min-width:0}
.profile-management-actions>.button-danger,.ssv-management-actions>.ssv-danger{flex-shrink:0}

.student-profile-tabs{display:flex;gap:.4rem;overflow-x:auto;max-width:100%;padding:.5rem 0;margin-bottom:1rem}
.student-profile-tabs [role="tab"]{flex:0 0 auto;white-space:nowrap}
.student-profile-tabs [aria-selected="true"]{background:#2860df;color:white;border-color:#2860df}
.student-profile-panels{display:block!important;min-width:0}
.student-profile-panels>[hidden]{display:none!important}
.student-profile-panels>[role="tabpanel"]{min-width:0}

.organizer-link-row { padding: .8rem 0; border-bottom: 1px solid var(--line, #e1e6ef); }
.organizer-link-row .item-actions { margin-top: .5rem; flex-wrap: wrap; }

/* Shared semantic palette: navigation, actions, records and feedback. */
:root{--cockpit-blue:#1d4ed8;--cockpit-blue-soft:#eff6ff;--cockpit-teal:#0f766e;--cockpit-teal-soft:#ecfdf5;--cockpit-amber:#92400e;--cockpit-amber-soft:#fffbeb;--cockpit-red:#b91c1c;--cockpit-red-soft:#fef2f2;--cockpit-purple:#6d28d9;--cockpit-purple-soft:#f5f3ff}
.side-nav .nav-item{border-left:3px solid transparent;border-radius:12px}
.side-nav [data-nav="bookings"],.side-nav [data-nav="agenda"]{--nav-accent:var(--cockpit-blue);--nav-surface:var(--cockpit-blue-soft)}
.side-nav [data-nav="private"],.side-nav [data-nav="eleves"],.side-nav [data-nav="people"]{--nav-accent:var(--cockpit-purple);--nav-surface:var(--cockpit-purple-soft)}
.side-nav [data-nav="finances"]{--nav-accent:var(--cockpit-teal);--nav-surface:var(--cockpit-teal-soft)}
.side-nav .nav-item.active{color:var(--nav-accent,var(--cockpit-blue));background:var(--nav-surface,var(--cockpit-blue-soft));border-left-color:currentColor}
.button{color:#243b63;background:#f1f5fb;border-color:#c8d5e6}
.button:hover{background:#e4edfa;border-color:#8faad3}
.button-primary,.button[data-action^="new-"],.button[data-action="person-new"]{background:var(--cockpit-blue);color:white;border-color:var(--cockpit-blue)}
.button-primary:hover{background:#1e40af;color:white}
.button[data-action*="delete"],.button-danger{background:var(--cockpit-red-soft);color:var(--cockpit-red);border-color:#efb5b5}
.button[data-action^="payment-"],.button[data-action="course-associate"]{background:var(--cockpit-teal-soft);color:#115e59;border-color:#9fd8c8}
.button[data-action*="template"],#booking-model-toggle{background:var(--cockpit-purple-soft);color:var(--cockpit-purple);border-color:#c4b5fd}
.warning,.form-validation-summary,.field-validation-message{color:#8c2525;background:#fff2ef;border-color:#dd9e95}
.form-validation-summary{padding:12px 16px;border-left:4px solid #b91c1c;border-radius:8px;position:sticky;top:0;z-index:2}
.field-invalid{border:2px solid #b91c1c!important;background:#fffafa!important}
.info-panel{background:var(--cockpit-blue-soft);color:#1e3a8a;border-color:#b8cff7}
.finance-kpis .kpi{background:var(--cockpit-teal-soft);border:1px solid #b7dfd2}.finance-entry-table tbody tr:nth-child(even),.people-table tbody tr:nth-child(even){background:#f5f8fc}
.finance-entry-table tbody tr:hover,.people-table tbody tr:hover{background:#eaf2ff}
.booking-tone-paid,.private-tone-confirmed{background:#edf8f1;border-color:#a1cbb2}.booking-tone-cancelled,.private-tone-cancelled{background:#fff0f1;border-color:#e4b4ba}.booking-tone-concluded{background:#fff8df;border-color:#dfca84}
.cards>.item-card{display:flex;flex-direction:column}.cards>.item-card>.item-top{min-height:110px}.cards>.item-card>.item-money{margin-top:auto;padding-top:20px;min-height:88px}.cards>.item-card>.item-actions{margin-top:16px}.cards>.item-card>.field-hint{min-height:42px}
.booking-place-field>.field{margin:0}#booking-organizer-addresses:empty{display:none}#booking-model-panel{margin-top:20px}#booking-model-toggle{margin-right:auto}
#dialog-fields h3.full{grid-column:1/-1;color:#243b63;border-bottom:1px solid #c8d5e6;padding:12px 0 8px;margin:0}
input[type="checkbox"]{accent-color:var(--cockpit-blue);min-width:18px;min-height:18px}.button:focus-visible,.nav-item:focus-visible{outline:3px solid #2563eb;outline-offset:3px}
@media(max-width:600px){.cards>.item-card>.item-top{min-height:0}#booking-model-toggle{margin-right:0;width:100%}.dialog-actions{gap:8px}}

/* Keep every financial column readable in both display modes on narrow screens. */
.finance-entry-table{min-width:760px}
.finance-entry-table th,.finance-entry-table td{overflow-wrap:normal;word-break:normal}
.finance-entry-table th,.finance-entry-table td:nth-child(2),.finance-entry-table td:nth-child(5){white-space:nowrap}
.finance-entry-table.evolution-list-mode{min-width:640px}
.finance-entry-table.evolution-list-mode th:nth-child(1){width:7%}
.finance-entry-table.evolution-list-mode th:nth-child(2){width:13%}
.finance-entry-table.evolution-list-mode th:nth-child(3){width:23%}
.finance-entry-table.evolution-list-mode th:nth-child(4){width:12%}
.finance-entry-table.evolution-list-mode th:nth-child(5){width:12%}
.finance-entry-table.evolution-list-mode th:nth-child(6){width:20%}
.finance-entry-table.evolution-list-mode th:nth-child(7){width:13%}
.finance-entry-table [data-finance-select]{min-width:24px;min-height:24px}

.finance-entry-table th:nth-child(3),.finance-entry-table td:nth-child(3){display:table-cell}

/* Palette 6 choisie par le propriétaire : cobalt + mandarine + rose.
   Les autres jetons historiques sont des alias ; fonds et états utilisent
   les nuances de ces trois couleurs, toujours accompagnées de libellés. */
:root {
  --cobalt:#254db1; --cobalt-deep:#182d63; --cobalt-soft:#e0e9ff; --cobalt-pale:#f0f4ff;
  --mandarine:#bc4b1e; --mandarine-deep:#843314; --mandarine-soft:#ffdfbd; --mandarine-pale:#fff3e7;
  --rose:#d978af; --rose-deep:#92255f; --rose-soft:#fbe4f0; --rose-pale:#fff5fa;
  --ink:#243252; --muted:#57617a; --deep:var(--cobalt-deep); --navy:var(--cobalt-deep);
  --blue:var(--cobalt); --blue-light:var(--cobalt-soft); --paper:var(--cobalt-pale); --line:#cbd6ef;
  --sea:var(--cobalt-soft); --mint:var(--cobalt-soft); --green:var(--cobalt); --green-soft:var(--cobalt-soft);
  --coral:var(--mandarine); --coral-light:var(--mandarine-soft); --purple:var(--rose-deep); --purple-soft:var(--rose-soft);
  --danger:var(--rose-deep); --red-soft:var(--rose-pale); --booking-bordeaux:var(--cobalt);
  --cockpit-blue:var(--cobalt); --cockpit-blue-soft:var(--cobalt-soft);
  --cockpit-teal:var(--mandarine); --cockpit-teal-soft:var(--mandarine-pale);
  --cockpit-amber:var(--mandarine-deep); --cockpit-amber-soft:var(--mandarine-soft);
  --cockpit-red:var(--rose-deep); --cockpit-red-soft:var(--rose-pale);
  --cockpit-purple:var(--rose-deep); --cockpit-purple-soft:var(--rose-soft);
}
/* Navigation : fond cobalt soutenu, rubriques repérées par les secondaires. */
.shell .sidebar {background:var(--cobalt-deep);color:#fff;border-right-color:var(--cobalt-deep)}
.shell .brand strong,.shell .sidebar .nav-item,.shell .sidebar .nav-item .ui-icon {color:#fff}
.shell .brand small,.shell .nav-eyebrow,.shell .sidebar-caption,.shell .sidebar-privacy,.shell .sidebar-bottom {color:#d8e3ff}
.shell .brand-mark {background:var(--cobalt);color:var(--mandarine-soft);border:1px solid #7892d5}
.shell .sidebar .nav-item {--nav-surface:var(--cobalt-soft);--nav-accent:var(--cobalt-deep);border-left:3px solid transparent}
.shell .sidebar [data-nav="people"],.shell .sidebar [data-nav="private"],.shell .sidebar [data-nav="finances"] {--nav-surface:var(--mandarine-soft);--nav-accent:var(--mandarine-deep)}
.shell .sidebar [data-nav="eleves"],.shell .sidebar [data-nav="cours"],.shell .sidebar [data-nav="dj"],.shell .sidebar [data-videos-entry] {--nav-surface:var(--rose-soft);--nav-accent:var(--rose-deep)}
.shell .sidebar .nav-item .ui-icon {color:var(--nav-surface)}
.shell .sidebar .nav-item:hover,.shell .sidebar .nav-item.active {background:var(--nav-surface);color:var(--nav-accent);border-left-color:var(--nav-accent)}
.shell .sidebar .nav-item:hover .ui-icon,.shell .sidebar .nav-item.active .ui-icon {color:var(--nav-accent)}
.shell .sidebar-toggle {background:var(--cobalt);color:#fff;border-color:#7892d5}
.shell .sidebar-toggle:hover,.shell .sidebar-toggle:focus-visible {background:var(--cobalt-soft);color:var(--cobalt-deep)}
.shell .side-nav-quick,.shell .sidebar-bottom {border-color:#6176ab}
.topbar {background:var(--cobalt-pale);border-bottom:2px solid #b9c9ed}
.global-search-toggle {background:#fff;border-color:#b9c9ed;color:var(--cobalt-deep)}
/* Actions : cobalt = action principale ; mandarine et rose = actions associées. */
.button {background:var(--cobalt-soft);color:var(--cobalt-deep);border-color:#b2c4ee}
.button:hover {background:#ccdbff;border-color:var(--cobalt)}
.button-primary,.button[data-action^="new-"],.button[data-action="person-new"],.quick-add {background:var(--cobalt);color:#fff;border-color:var(--cobalt)}
.button-primary:hover,.button[data-action^="new-"]:hover,.button[data-action="person-new"]:hover,.quick-add:hover {background:var(--cobalt-deep);color:#fff}
.button[data-action^="payment-"],.button[data-action="course-associate"],.button[data-action="client-new"] {background:var(--mandarine-soft);color:var(--mandarine-deep);border-color:#e9af89}
.button[data-action*="template"],#booking-model-toggle,.button-purple {background:var(--rose-soft);color:var(--rose-deep);border-color:#dfa4c4}
.button-purple:hover {background:var(--rose-deep);color:#fff;border-color:var(--rose-deep)}
.button[data-action*="delete"],.button-danger,.button-danger:hover {background:var(--rose-pale);color:var(--rose-deep);border-color:#d697b9}
.filter-pill {background:#fff;color:var(--cobalt-deep);border-color:#b2c4ee}
.filter-pill.active,.student-profile-tabs [aria-selected="true"] {background:var(--cobalt);color:#fff;border-color:var(--cobalt)}
.agenda-filters [data-filter] {background:var(--cobalt-pale);color:var(--cobalt-deep);border-color:#b2c4ee}
.agenda-filters [data-filter].active {background:var(--cobalt);color:#fff;border-color:var(--cobalt)}
.agenda-filters [data-filter="private"] {background:var(--mandarine-pale);color:var(--mandarine-deep);border-color:#e9af89}
.agenda-filters [data-filter="private"].active {background:var(--mandarine);color:#fff;border-color:var(--mandarine)}
.agenda-filters [data-filter="followed"] {background:var(--rose-pale);color:var(--rose-deep);border-color:#dfa4c4}
.agenda-filters [data-filter="followed"].active {background:var(--rose-deep);color:#fff;border-color:var(--rose-deep)}
.button:focus-visible,.nav-item:focus-visible,.bottom-item:focus-visible {outline:3px solid var(--mandarine);outline-offset:3px}
/* Surfaces : les couleurs occupent aussi les grands blocs et les cellules. */
.panel {background:#f9fbff;border-color:#c1cfee}
.panel-header,.carousel-head {border-bottom:2px solid var(--mandarine-soft);padding-bottom:10px}
.hero-card,.hero-card-upcoming:not(.is-empty) {background:var(--cobalt);color:#fff}
.hero-card h2,.hero-card .eyebrow,.hero-card .hero-booking-main strong,.hero-card .hero-booking-main small {color:#fff}
.hero-card-upcoming.is-empty {background:var(--cobalt-soft);color:var(--cobalt-deep)}
.hero-card-upcoming.is-empty h2,.hero-card-upcoming.is-empty .eyebrow {color:var(--cobalt-deep)}
.dashboard-kpis .kpi,.home-block .dashboard-kpis .kpi,.finance-kpis .kpi {background:var(--mandarine-soft);border:1px solid #e9af89;color:var(--cobalt-deep)}
.dashboard-kpis .kpi:nth-child(2n),.home-block .dashboard-kpis .kpi:nth-child(2n),.finance-kpis .kpi:nth-child(2n) {background:var(--rose-soft);border-color:#dfa4c4}
.home-block .dashboard-kpis button.home-balance,.home-block .dashboard-kpis button.home-balance:hover {background:var(--mandarine-soft);border-color:#e9af89}
.home-balance .home-card-label,.home-balance small {color:var(--mandarine-deep)!important}
.home-balance .home-card-link {background:var(--mandarine);color:#fff}
.home-block .dashboard-kpis .home-balance strong,.finance-kpis .kpi strong {color:var(--cobalt-deep)}
.finance-kpis.finance-balance .kpi {background:var(--cobalt);color:#fff;border-color:var(--cobalt)}
.finance-kpis.finance-balance .kpi strong,.finance-balance .kpi>span,.finance-balance .kpi small {color:#fff}
.count-badge,.date-chip,.person-initials,.person-avatar {background:var(--mandarine-soft);color:var(--mandarine-deep)}
.person-tile {background:var(--rose-pale);border-color:#dfa4c4}.person-tile-foot {border-top-color:#dfa4c4}
.video-tile-thumb {background:var(--rose-soft)}
.more-grid>.panel,.action-grid>button {background:var(--mandarine-soft);border-color:#e9af89;color:var(--mandarine-deep)}
.more-grid>.panel:nth-child(2n),.action-grid>button:nth-child(2n) {background:var(--rose-soft);border-color:#dfa4c4;color:var(--rose-deep)}
.people-table thead,.finance-entry-table thead {background:var(--cobalt-soft);color:var(--cobalt-deep)}
.people-table tbody tr:nth-child(even) {background:var(--rose-pale)}
.finance-entry-table tbody tr:nth-child(even) {background:var(--mandarine-pale)}
.people-table tbody tr:hover,.finance-entry-table tbody tr:hover {background:var(--cobalt-soft)}
/* États : libellés inchangés, nuances cohérentes dans cartes et listes. */
.item-card.booking-tone-review,.private-tone-pending {background:var(--cobalt-pale);border-color:#b2c4ee}
.item-card.booking-tone-concluded,.private-tone-postponed {background:var(--mandarine-soft);border-color:#e9af89}
.item-card.booking-tone-partial {background:var(--mandarine-pale);border-color:#e9af89}
.item-card.booking-tone-paid,.private-tone-confirmed {background:var(--cobalt-soft);border-color:#9cb4e9}
.item-card.booking-tone-cancelled,.private-tone-cancelled {background:var(--rose-soft);border-color:#dfa4c4}
.evolution-list-mode>.private-tone-confirmed .evolution-compact-main,.evolution-list-mode>.private-tone-confirmed .evolution-compact-main>span:not(.evolution-row-arrow) {color:var(--cobalt-deep)}
.evolution-list-mode>.private-tone-cancelled .evolution-compact-main,.evolution-list-mode>.private-tone-cancelled .evolution-compact-main>span:not(.evolution-row-arrow) {color:var(--rose-deep)}
.booking-tone-concluded .booking-status-select,.private-tone-postponed .private-status-select,.status.pending {background:var(--mandarine-pale);color:var(--mandarine-deep);border-color:#d4a17f}
.booking-tone-partial .booking-status-select,.booking-tone-paid .booking-status-select,.private-tone-confirmed .private-status-select,.status.paid,.chip {background:var(--cobalt-pale);color:var(--cobalt-deep);border-color:#9cb4e9}
.booking-tone-cancelled .booking-status-select,.booking-tone-cancelled .status,.private-tone-cancelled .private-status-select,.status.unpaid {background:var(--rose-pale);color:var(--rose-deep);border-color:#dfa4c4}
.calendar-event-label {background:var(--cobalt-soft);color:var(--cobalt-deep)}
.calendar-event-label.private {background:var(--mandarine-soft);color:var(--mandarine-deep)}
.calendar-event-label.followed {background:var(--rose-soft);color:var(--rose-deep)}
.calendar .marker,.calendar-event-row .marker,
.calendar .marker:not(.private):not(.training):not(.general):not(.followed),
.calendar-event-row .marker:not(.private):not(.training):not(.general):not(.followed) {background:var(--cobalt);border-color:var(--cobalt)}
.calendar .marker.training,.calendar-event-row .marker.training,
.calendar .marker.tentative,.calendar-event-row .marker.tentative {background:var(--cobalt);border-color:var(--cobalt)}
.calendar .marker.private,.calendar-event-row .marker.private {background:var(--mandarine);border-color:var(--mandarine)}
.calendar .marker.followed,.calendar-event-row .marker.followed {background:var(--rose);border-color:var(--rose)}
.agenda-list-row[data-action="open-booking"] .date-chip {background:var(--cobalt-soft);color:var(--cobalt-deep)}
.agenda-list-row[data-action="open-private"] .date-chip {background:var(--mandarine-soft);color:var(--mandarine-deep)}
.agenda-list-row[data-action="open-followed"] .date-chip {background:var(--rose-soft);color:var(--rose-deep)}
/* Fiches et messages restent lisibles, y compris avec la validation ouverte. */
.sheet-dialog>header,.sheet-header,.dialog-header,.dialog-actions {background:var(--cobalt-pale)}
#dialog-fields fieldset {background:var(--cobalt-pale);border-color:#b2c4ee}
#dialog-fields fieldset:nth-of-type(2n) {background:var(--mandarine-pale);border-color:#e9af89}
#dialog-fields h3.full {color:var(--mandarine-deep);border-bottom:2px solid #e9af89}
#dialog-fields legend {color:var(--cobalt-deep);font-weight:600}
.form-control {border-color:#b2c4ee;background:#fff;color:var(--ink)}
.form-control:focus {border-color:var(--cobalt);outline-color:var(--cobalt)}
.info-panel {background:var(--cobalt-soft);color:var(--cobalt-deep);border-color:#9cb4e9}
.warning {background:var(--mandarine-soft);color:var(--mandarine-deep);border-color:#d4a17f}
.form-validation-summary,.field-validation-message {background:var(--rose-pale);color:var(--rose-deep);border-color:#c772a1}
.field-invalid {background:var(--rose-pale)!important;border-color:var(--rose-deep)!important}
.toast,.toast.toast-success {background:var(--cobalt);color:#fff}.toast.toast-error {background:var(--rose-deep);color:#fff}
.cockpit-date-open {background:var(--mandarine-soft);color:var(--mandarine-deep);border-color:#e9af89}
.cockpit-calendar-grid button[aria-pressed="true"] {background:var(--cobalt);border-color:var(--cobalt);color:#fff}
.bar.income,.legend-dot.income {background:var(--cobalt)}
.bar.expense,.legend-dot.expense {background:var(--mandarine)}
@media(max-width:700px){
 .calendar {min-width:0;max-width:100%;width:100%}
 .agenda-layout .list-sort-control select,.agenda-followup-filters select {min-width:0;max-width:100%;width:100%;overflow:hidden;text-overflow:ellipsis}
 .bottom-nav {background:var(--cobalt-deep);border-color:var(--cobalt-deep)}
 .bottom-item {color:#e2eaff}.bottom-item.active {background:var(--cobalt-soft);color:var(--cobalt-deep)}
 .bottom-item.active .ui-icon {background:transparent;color:var(--cobalt-deep)}
 .bottom-item[data-nav="private"]:not(.active) {color:var(--mandarine-soft)}
 .bottom-item[data-nav="plus"]:not(.active) {color:var(--rose-soft)}
}

/* Les listes restent sur une seule ligne, indépendamment du style des blocs. */
.evolution-list-mode.cards > .item-card.evolution-compact-row,
.evolution-list-mode.student-directory > .panel.evolution-compact-row {
 display:flex; flex-direction:row; align-items:center; flex-wrap:nowrap; gap:10px;
 min-height:56px; padding:8px 12px;
}
.evolution-list-mode > .evolution-compact-row > .evolution-row-detail {display:none;}
.evolution-list-mode > .evolution-compact-row > .evolution-compact-main {margin:0; align-items:center;}
.evolution-list-mode > .evolution-compact-row > .booking-selection {margin:0; flex:0 0 22px;}
.evolution-list-mode > .evolution-compact-row > .evolution-row-status {margin:0; flex:0 0 135px;}
.student-directory:not(.evolution-list-mode) {align-items:stretch;}
.student-directory:not(.evolution-list-mode) > article {
 display:grid; grid-template-rows:auto auto minmax(100px,1fr) minmax(54px,auto) auto auto; gap:12px;
}
.student-directory:not(.evolution-list-mode) > article > * {margin:0; min-width:0;}
.student-directory:not(.evolution-list-mode) > article > .student-card-status {align-self:end; justify-self:start;}
.student-card-actions {display:grid;gap:10px;align-self:end;}
.student-card-actions .button {width:100%;}
.student-directory:not(.evolution-list-mode) .evolution-compact-main {display:none;}
.student-learning-actions {display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:12px;}
.student-validation-queue .list-row {gap:12px;align-items:center;}
@media(max-width:650px) {
 .evolution-list-mode > .evolution-compact-row > .evolution-row-status {flex-basis:95px;}
 .evolution-list-mode.cards > .item-card.evolution-compact-row {gap:6px;padding:6px;}
}

@supports (grid-template-rows: subgrid) {
  .student-directory:not(.evolution-list-mode) > article { grid-row: span 6; grid-template-rows: subgrid; }
}
.student-card-finances p { margin: 0; }
.student-card-finances .item-actions { margin-top: 10px; }
.student-validation-queue .list-row > span { flex: 1; min-width: 0; }
.course-participation-summary { font-size: .9rem; color: var(--ink); }

/* Actualisation tactile : hors du contenu remplacé lors de la synchronisation. */
.cockpit-pull-refresh{position:fixed;z-index:90;top:calc(env(safe-area-inset-top, 0px) + 76px);left:50%;transform:translate(-50%,-16px);display:flex;align-items:center;gap:10px;max-width:calc(100vw - 32px);width:max-content;padding:12px 18px;border:1px solid #d5a5bf;border-radius:24px;background:#fbe8f2;color:#1b2e60;box-shadow:0 6px 24px #1b2e6026;font-size:14px;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .18s,transform .18s;}
.cockpit-pull-refresh.visible{opacity:1;visibility:visible;transform:translate(-50%,0);}
.pull-refresh-icon{display:inline-block;font-size:26px;line-height:1;flex-shrink:0;}
.cockpit-pull-refresh[data-state="loading"] .pull-refresh-icon{animation:cockpit-refresh-spin .85s linear infinite;}
.cockpit-pull-refresh[data-state="success"]{background:#e2f3e8;border-color:#8fc5a2;}
.cockpit-pull-refresh[data-state="error"]{background:#fff0da;border-color:#e5b784;}
#cockpit-refresh{font-size:26px;flex-shrink:0;}
@keyframes cockpit-refresh-spin{to{transform:rotate(360deg);}}
@media(prefers-reduced-motion:reduce){.cockpit-pull-refresh{transition:none;}.cockpit-pull-refresh[data-state="loading"] .pull-refresh-icon{animation:none;}}

/* Actual completion is separate from a confirmed appointment. */
.item-card[data-private-id][data-course-completed="true"]{background:#edf8f1;border-color:#a1cbb2}
.item-card[data-course-completed="true"] .private-status-select{color:#086642;background-color:#dff4e7;border-color:#a1cbb2}
.evolution-list-mode>.item-card[data-course-completed="true"] .evolution-compact-main,.evolution-list-mode>.item-card[data-course-completed="true"] .evolution-compact-main>span:not(.evolution-row-arrow){color:#086642}

/* Booking follow-up stays usable with native selectors on narrow screens. */
.booking-overdue-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 12px; }
.booking-overdue-row .row-body strong { white-space: normal; overflow-wrap: anywhere; }
.booking-overdue-controls { display: grid; gap: 8px; min-width: 0; }
.booking-overdue-controls select, .booking-fee-choice { min-width: 0; max-width: 100%; }
@media (max-width: 700px) { .booking-overdue-row { grid-template-columns: minmax(0, 1fr); } }

/* Palette fonctionnelle : mouvements verts, actions neutres, sélection cobalt. */
:root {
 --movement-soft:#e2f3e8; --movement-ink:#20543a; --movement-line:#a1cbb2;
 --action-soft:#f1f3f5; --action-ink:#344054; --action-line:#cbd2da;
}
:root :is(.button,.quick-add,.global-search-toggle,.close-button):not(.button-danger):not([data-action*="delete"]):not([data-action="training-remove"]):not([data-action="training-evening-remove"]):not([aria-pressed="true"]) {
 background:var(--button-surface,var(--action-soft)); color:var(--button-ink,var(--action-ink)); border-color:var(--button-line,var(--action-line));
}
:root :is(.button,.quick-add,.global-search-toggle,.close-button):not(.button-danger):not([data-action*="delete"]):not([data-action="training-remove"]):not([data-action="training-evening-remove"]):not([aria-pressed="true"]):hover {
 background:var(--button-hover,#e4e7eb); color:var(--button-ink,var(--action-ink)); border-color:var(--button-line,#9ca8b8);
}
.button-primary,.quick-add,.button[data-action^="new-"],.button[data-action="person-new"],.button[data-action^="training-google"] {
 --button-line:var(--cobalt); --button-ink:var(--cobalt-deep);
}
.button[data-button-role="movement"] {
 --button-surface:var(--movement-soft); --button-ink:var(--movement-ink); --button-line:var(--movement-line); --button-hover:#d0e9d9;
}
.training-movement-name {background:var(--movement-soft);color:var(--movement-ink);border-color:var(--movement-line)}
.button[data-action="training-tab"][aria-pressed="true"],.button[data-action="training-date"][aria-pressed="true"] {
 background:var(--cobalt);color:#fff;border-color:var(--cobalt);font-weight:700;
}
.button[data-action="training-remove"],.button[data-action="training-evening-remove"] {background:#fce7ed;color:#a12849;border-color:#eaa5b8}
.button[data-action="training-remove"]:hover,.button[data-action="training-evening-remove"]:hover {background:#f8d3de;color:#861b38}
.training-overlap-warning {background:#fff0da;color:#713b16;border:1px solid #d5a572;border-radius:12px;padding:14px}
.training-overlap-warning p {margin:0}

/* Approved Training presentation: scoped controls, no changes to other rubrics. */
.training-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}
.training-toolbar .layout-choice{margin:0;display:flex}
.training-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:8px 0}
:root .training-tabs .button{min-width:0;white-space:normal;font-size:.72rem;padding:3px 2px;min-height:36px;background:#fff2ce;color:#674600;border-color:#d4ad53;text-decoration:none}
:root .training-tabs .button[aria-pressed="true"]{background:#e8c56b;color:#503600;border-color:#a87c22;text-decoration:none}
.training-filters{display:flex;flex-wrap:wrap;gap:4px}
:root .training-filters .button,:root .training-toolbar .button,:root .training-google-action .button{font-size:.75rem;min-height:36px;padding:5px 8px;margin:0}
.training-google-action{margin:8px 0}
.training-session-card .training-session-movement{display:flex;flex-wrap:nowrap;gap:6px;min-width:0;align-items:center}
.training-session-movement>.training-movement-name{display:block;flex:1 1 0;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;padding:8px;max-width:100%;background:var(--movement-soft);color:var(--movement-ink);border:1px solid var(--movement-line);border-radius:9px}
.training-session-movement>.training-movement-name.button{min-height:44px}
.training-session-movement>[class^="training-progress-"]{flex:0 0 142px;min-width:0;font-size:12px}
.training-progress-segments,.training-progress-switch{display:flex;gap:3px;align-items:center;min-height:44px}
:root .training-progress-choice.button{position:relative;flex:1;min-width:0;min-height:44px;white-space:nowrap;font-size:11px;padding:0 4px;margin:0;border:0;background:transparent;color:#475467;box-shadow:none;z-index:0}
.training-progress-choice:before{content:'';position:absolute;inset:11px 0;border-radius:7px;background:#edf0f3;border:1px solid #cbd2da;z-index:-1}
:root .training-progress-choice.review[aria-pressed="true"]{background:transparent;color:#fff}
:root .training-progress-choice.acquired[aria-pressed="true"]{background:transparent;color:#fff}
.training-progress-choice.review[aria-pressed="true"]:before{background:#a74608;border-color:#a74608}
.training-progress-choice.acquired[aria-pressed="true"]:before{background:#196840;border-color:#196840}
.training-progress-switch{border-radius:24px;background:#edf0f3;padding:0 3px}
.training-progress-switch .training-progress-choice:before{border-radius:20px}
.training-progress-select{display:flex;min-height:44px;align-items:center}
.training-progress-select select{width:100%;font-size:12px;height:32px;padding:2px 6px;min-width:0}
.training-progress-radios{display:flex;gap:5px;min-height:44px;align-items:center}
.training-progress-radios label{display:flex;gap:2px;align-items:center;min-height:44px;font-size:10px;white-space:nowrap}
.training-progress-radios input{margin:0;width:14px;height:14px;accent-color:#196840}
.training-progress-menu{position:relative}
.training-progress-menu>summary{min-height:44px;align-content:center;cursor:pointer;font-size:12px;text-align:center;list-style:none}
.training-progress-menu>summary.review{color:#8b3d05}.training-progress-menu>summary.acquired{color:#196840}
.training-progress-menu>div{position:absolute;right:0;top:100%;width:150px;z-index:5;display:flex;padding:4px;background:white;border:1px solid #bcc7d9;border-radius:9px;box-shadow:0 4px 12px #182d6322}
.training-movement-divider{width:50%;border:0;border-top:1px solid #cbd6e4;margin:4px auto}
.training-movement-label{text-align:center;color:var(--muted);font-size:.7rem}
.training-fixed-head>.section-header{margin-bottom:6px}
.training-fixed-head>.section-header .section-actions>[data-action="training-add"]{display:none}
.training-scroll-content{min-width:0}
@media(max-width:767px){
 body.training-route{overflow:hidden}
 body.training-route #main-content{padding-top:10px;padding-bottom:0}
 .training-page{height:var(--training-viewport-height,calc(100dvh - 160px));display:flex;flex-direction:column;min-height:0}
 .training-fixed-head{flex:none;background:var(--bg,#f1f4fa);z-index:6;max-height:65%;overflow:auto;scrollbar-width:thin}
 .training-scroll-content{flex:1;min-height:44px;overflow:auto;overscroll-behavior:contain;padding-bottom:14px}
 .training-scroll-content>.cards{margin-top:8px}
 .training-session-card{padding:12px}
 .training-session-actions .button{font-size:.7rem;padding:5px 6px;min-height:36px}
}
.training-progress-switch{display:flex;align-items:center;justify-content:space-between;gap:3px;background:none;padding:0;font-size:10px;min-height:44px;cursor:pointer}
.training-progress-switch input{appearance:none;-webkit-appearance:none;position:relative;width:35px;height:22px;flex:none;border:1px solid #adb7c5;border-radius:20px;background:#a74608;margin:11px 0;cursor:pointer}
.training-progress-switch input:before{content:'';display:block;background:white;width:16px;height:16px;border-radius:50%;position:absolute;left:2px;top:2px}
.training-progress-switch input:checked{background:#196840;border-color:#196840}
.training-progress-switch input:checked:before{left:15px}
.training-progress-switch input:focus-visible{outline:2px solid #254db1;outline-offset:3px}
.training-filters[hidden]{display:none}
:root body #main-content .button.training-movement-name{background:var(--movement-soft);color:var(--movement-ink);border-color:var(--movement-line)}
:root .training-tabs .button{font-size:.65rem;overflow-wrap:normal;hyphens:none}
.training-sort-options{font-size:.75rem;margin:4px 0}
.training-sort-options>summary{min-height:36px;align-content:center;cursor:pointer}
.training-sort-options .list-sort-control{margin:0 0 6px}
.training-movement-divider{border-top:2px solid #b5bfd0}
:root .training-tabs .button{font-size:11px;line-height:1.25}
:root body #main-content .training-tabs .button{background:#fff2ce;color:#674600;border-color:#d4ad53}
:root body #main-content .training-tabs .button[aria-pressed="true"]{background:#e8c56b;color:#503600;border-color:#a87c22}
:root body #main-content .training-progress-choice.button{background:transparent;border:0;color:#475467;box-shadow:none}
:root body #main-content .training-progress-choice.button[aria-pressed="true"]{color:#fff}
:root body #main-content .training-toolbar [data-action="training-menu"]{min-height:44px;min-width:44px}
.training-progress-choice[aria-pressed="true"]:after{content:'✓';font-size:9px;margin-left:2px}
/* Native Training scrolling: introduction flows away; tools stick from the golden tabs. */
.training-filter-row{display:flex;align-items:center;gap:6px;justify-content:space-between}
.training-page .training-google-action{margin:4px 0 0}
.training-page .training-sort-options{margin:0}
.training-scroll-content>.cards{margin-top:4px}
@media(max-width:767px){
 .training-page{display:block;overflow-y:auto;overscroll-behavior:contain;scroll-padding-top:170px}
 .training-fixed-head{display:contents}
 .training-sticky-tools{position:sticky;top:0;z-index:6;background:var(--bg,#f1f4fa);padding-bottom:4px}
 .training-scroll-content{overflow:visible;min-height:0;padding-bottom:14px}
 .training-scroll-content>.cards{margin-top:4px}
}

/* Explicit ownership mark and matching movement filter. */
:root .button:is([data-action="training-creation-toggle"],[data-action="training-creation-filter"])[aria-pressed="true"]{background:var(--cobalt);color:#fff;border-color:var(--cobalt);font-weight:700}

.training-movement-card.item-card{padding:10px 12px}
.training-movement-card>details>summary{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;align-items:center;gap:8px;list-style:none;cursor:pointer;min-height:44px}
.training-movement-card>details>summary::-webkit-details-marker{display:none}
.training-movement-title{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:700}
.training-movement-card .training-movement-date{font-size:.7rem;white-space:nowrap}
.training-movement-card>details>summary>.button{width:44px;min-width:44px;min-height:44px;margin:0;padding:8px}
.training-movement-body{padding-top:12px}

.training-filter-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px}
:root .training-filter-row>[data-action="training-fold-all"]{font-size:.75rem;min-height:36px;padding:5px 8px;margin:0}

.training-movement-title:before{content:'▸ ';font-size:.7em}
.training-movement-card>details[open] .training-movement-title:before{content:'▾ '}

/* More displayed Training cards use less vertical space; opened cards retain their spacing. */
@media(max-width:767px){
 .training-page .training-scroll-content:has(>.cards:is([data-training-density="compact"],[data-training-density="dense"])){padding-bottom:calc(80px + env(safe-area-inset-bottom))}
 #main-content .training-page .cards[data-training-density="compact"]:not(.evolution-list-mode){gap:8px}
 #main-content .training-page .cards[data-training-density="dense"]:not(.evolution-list-mode){gap:4px}
 #main-content .training-page .cards[data-training-density="compact"]>article:has(>details:not([open])){padding-block:4px}
 #main-content .training-page .cards[data-training-density="dense"]>article:has(>details:not([open])){padding-block:0}
 #main-content .training-page .cards:is([data-training-density="compact"],[data-training-density="dense"])>article>details:not([open])>summary{padding-block:0}
}

/* Keep the title and its left-hand collapse arrow together when opened. */
.training-movement-card>details[open]>summary{grid-template-columns:1fr}
.training-movement-card>details[open]>summary>.training-movement-title{white-space:normal;overflow-wrap:anywhere}
.training-movement-card>details[open]>summary>:not(.training-movement-title){display:none}
.training-movement-body>.training-movement-date{display:block;margin-bottom:8px}

/* Playback keeps its own rows above movement actions. */
.training-movement-body>.training-movement-videos{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-bottom:8px}
.training-movement-body>.training-movement-videos:empty{display:none}
.training-movement-body>.training-movement-actions{display:flex;flex-wrap:wrap;gap:6px}
.training-movement-body>:is(.training-movement-videos,.training-movement-actions)>.button{min-height:44px;max-width:100%;margin:0}
.home-welcome h1{overflow-wrap:anywhere}

/* Local rubric settings: stable target beside the heading, including narrow screens. */
/* Reserve the top-right slot before wrapping other actions. */
.section-settings-header > .section-settings-actions { position: relative; box-sizing: border-box; flex: 1 1 360px; width: auto; min-height: 44px; padding-right: 52px; align-items: flex-start; }
:root #main-content .section-settings-actions > .section-settings-gear { position: absolute; top: 0; right: 0; flex: none; width: 44px; min-width: 44px; max-width: 44px; height: 44px; min-height: 44px; padding: 10px; margin: 0; }
.section-settings-actions [data-training-layout] .layout-choice { margin: 0; display: flex; }
@media (max-width: 700px) { .section-settings-header > .section-settings-actions { flex-basis: 100%; width: 100%; } }
.section-settings-links { display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
.section-settings-links > .button { white-space: normal; text-align: left; min-height: 44px; }

}