/* Le Carquois — kit v2 (proposition du 6 octobre 2026)
   Jetons Solaire v3 conservés ; densité resserrée ; 22 composants. */

:root {
  --paper:#fbf6ee; --surface:#fff; --sunken:#f4efe8; --line:#ebe3d8; --line-strong:#d9cfc2;
  --ink:#1d1a17; --ink-2:#4a403a; --ink-3:#6f665f;
  --sorties-500:#ec4a2f; --sorties-600:#d9381f; --sorties-700:#a8290f; --sorties-100:#ffe3d3; --sorties-50:#fff1e9;
  --fleches-500:#2f62d8; --fleches-600:#2553c4; --fleches-700:#1f4bb0; --fleches-100:#dfe8fb; --fleches-50:#eef3fd;
  --brm-500:#1c9a55; --brm-600:#15803f; --brm-700:#13703d; --brm-100:#d7f0df; --brm-50:#ecf8f0;
  --roulettes-500:#d0457f; --roulettes-600:#a8336b; --roulettes-700:#8c2453; --roulettes-100:#f9dceb; --roulettes-50:#fdf0f6;
  --sun-500:#ffd23f; --sun-100:#fff3c4;
  --ok-bg:#e2f4e8; --ok-fg:#13703d; --warn-bg:#fff3c4; --warn-fg:#7a5a00; --danger-bg:#fde4dc; --danger-fg:#b8321a; --neutral-bg:#f1efeb;
  --wind-face:#d9381f; --wind-travers:#6f665f; --wind-dos:#13703d;
  --rain-0:#fdf0e6; --rain-1:#9ec3f0; --rain-2:#3a78e0;

  --accent:var(--sorties-500); --accent-strong:var(--sorties-600); --accent-ink:var(--sorties-700);
  --accent-hero:var(--sorties-100); --accent-tint:var(--sorties-50);

  --font-sans:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --fs-display:42px; --fs-h1:36px; --fs-h2:24px; --fs-h3:18px; --fs-lead:17px; --fs-body:15px; --fs-small:14px; --fs-caption:13px; --fs-micro:12px;
  --fs-num-l:30px; --fs-num-m:22px;

  /* Densité v2 */
  --gutter:24px; --section-gap:28px; --section-inner:14px;
  --hero-pad-y:28px; --hero-pad-x:36px; --hero-gap:12px;
  --card-pad:18px 22px; --row-h:52px; --empty-h:120px; --page-bottom:40px;
  --radius-hero:24px; --radius-card:16px; --radius-sm:10px; --radius-pill:999px;
  --shadow-card:0 1px 2px rgba(29,26,23,.05),0 6px 18px rgba(29,26,23,.06);
  --ring-focus:0 0 0 4px color-mix(in srgb,var(--accent) 25%,transparent);
  --control-h:44px;
}
[data-universe="roulettes"]{--accent:var(--roulettes-500);--accent-strong:var(--roulettes-600);--accent-ink:var(--roulettes-700);--accent-hero:var(--roulettes-100);--accent-tint:var(--roulettes-50)}
[data-universe="fleches"]{--accent:var(--fleches-500);--accent-strong:var(--fleches-600);--accent-ink:var(--fleches-700);--accent-hero:var(--fleches-100);--accent-tint:var(--fleches-50)}
[data-universe="brm"]{--accent:var(--brm-500);--accent-strong:var(--brm-600);--accent-ink:var(--brm-700);--accent-hero:var(--brm-100);--accent-tint:var(--brm-50)}
[data-universe="moi"],[data-universe="calculateurs"]{--accent:var(--ink);--accent-strong:var(--ink);--accent-ink:var(--ink);--accent-hero:var(--sun-100);--accent-tint:var(--sunken)}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:var(--fs-body)/1.5 var(--font-sans);-webkit-font-smoothing:antialiased}
a{color:var(--accent-ink)}
h1,h2,h3,p{margin:0}
.c-display{font-size:var(--fs-display);line-height:1.04;letter-spacing:-.03em;font-weight:800}
.c-h1{font-size:var(--fs-h1);line-height:1.06;letter-spacing:-.03em;font-weight:800}
.c-h2{font-size:var(--fs-h2);line-height:1.15;letter-spacing:-.02em;font-weight:800}
.c-h3{font-size:var(--fs-h3);line-height:1.2;letter-spacing:-.01em;font-weight:700}
.c-lead{font-size:var(--fs-lead);line-height:1.45;color:var(--ink-2);max-width:62ch}
.c-text{color:var(--ink-2)}
.c-caption{font-size:var(--fs-caption);color:var(--ink-3);line-height:1.45}
.c-link{color:var(--accent-ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.c-num{font-weight:800;letter-spacing:-.03em;line-height:1;white-space:nowrap}
.c-num--l{font-size:var(--fs-num-l)} .c-num--m{font-size:var(--fs-num-m)}
.c-num__unit{font-size:var(--fs-caption);font-weight:600;letter-spacing:0;margin-left:3px}

/* 1. Page */
.c-page{min-height:100vh;display:flex;flex-direction:column;padding-bottom:var(--page-bottom)}
.c-main{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--gutter)}

/* 2. Barre des rubriques */
.c-topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:14px var(--gutter);max-width:1200px;margin:0 auto;width:100%}
.c-topbar>.c-logo{justify-self:start}
.c-topbar>.c-unav{justify-self:center}
.c-topbar>.c-actions{justify-self:end}
.c-logo{text-decoration:none;font-weight:800;font-size:24px;letter-spacing:-.03em;color:var(--ink);white-space:nowrap}
.c-logo::after{content:".";color:var(--accent)}
.c-unav{display:flex;gap:4px;background:var(--surface);padding:4px;border-radius:var(--radius-pill);box-shadow:var(--shadow-card);overflow-x:auto;scrollbar-width:none;max-width:100%}
.c-unav__item{text-decoration:none;display:flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--radius-pill);font-size:var(--fs-small);font-weight:600;color:var(--ink);white-space:nowrap}
.c-unav__item::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--u)}
.c-unav__item.is-active{background:var(--u-strong);color:#fff;font-weight:600}
.c-unav__item.is-active::before{visibility:hidden}
.c-unav__item--roulettes{--u:var(--roulettes-500);--u-strong:var(--roulettes-600)}
.c-unav__item--sorties{--u:var(--sorties-500);--u-strong:var(--sorties-600)}
.c-unav__item--fleches{--u:var(--fleches-500);--u-strong:var(--fleches-600)}
.c-unav__item--brm{--u:var(--brm-500);--u-strong:var(--brm-600)}
.c-unav__item--calculateurs{--u:var(--sun-500);--u-strong:var(--ink)}
.c-unav__lock{display:block;width:12px;height:12px;flex:0 0 12px;opacity:.7}
.c-unav__lock.is-hidden{visibility:hidden}

/* 3. Onglets de la rubrique (ou d'un objet) */
.c-tabs{display:flex;gap:22px;overflow-x:auto;scrollbar-width:none;padding:2px var(--gutter) 12px;max-width:1200px;margin:0 auto;width:100%}
.c-tabs__tab{text-decoration:none;font-size:15px;font-weight:600;color:var(--ink-3);padding-bottom:6px;white-space:nowrap;border-bottom:3px solid transparent}
.c-tabs__tab.is-active{color:var(--ink);border-color:var(--accent)}
.c-tabs--object{background:var(--surface);border-radius:var(--radius-pill);box-shadow:var(--shadow-card);padding:4px;gap:2px;width:max-content;max-width:100%;margin:12px auto 0 0}
.c-tabs--object .c-tabs__tab{padding:8px 14px;border:0;border-radius:var(--radius-pill);font-size:var(--fs-small)}
.c-tabs--object .c-tabs__tab.is-active{background:var(--accent-strong);color:#fff}
.c-tabs--object .c-tabs__tab.is-disabled{display:grid;gap:0;color:var(--ink-3);opacity:.65;cursor:not-allowed}
.c-tabs__hint{font-size:10px;font-weight:500;line-height:1.1}

/* 4. Bandeau */
.c-hero{background:var(--accent-hero);border-radius:var(--radius-hero);padding:var(--hero-pad-y) var(--hero-pad-x);display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:center}
.c-hero--aside{grid-template-columns:minmax(0,1fr) minmax(260px,340px)}
.c-hero__body{display:grid;gap:var(--hero-gap);align-content:start}
.c-hero__actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.c-hero__figure{justify-self:center;width:min(100%,300px);color:var(--ink)}
.c-hero__figure svg{display:block;width:100%;height:auto}

/* 5. Section */
.c-section{margin-top:var(--section-gap);display:grid;gap:var(--section-inner)}
.c-section__head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.c-section__intro{color:var(--ink-2);max-width:70ch}
.c-grid{display:grid;gap:12px;grid-template-columns:repeat(var(--n,2),minmax(0,1fr))}
.c-split{display:grid;gap:20px;grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start}
.c-split--barriers{grid-template-columns:minmax(360px,1.2fr) minmax(460px,1fr)}
.c-split>*,.c-grid>*,.u-stack>*{min-width:0}
.c-split.c-workshop-split{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}

/* 6. Carte */
.c-card{background:var(--surface);border-radius:var(--radius-card);padding:var(--card-pad);box-shadow:var(--shadow-card);display:grid;gap:10px;align-content:start}
.c-card--tint{background:var(--accent-tint);box-shadow:none}
.c-card__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.c-card>.c-badge{justify-self:start;white-space:normal}
.c-card--sorties{background:var(--sorties-50)} .c-card--fleches{background:var(--fleches-50)} .c-card--brm{background:var(--brm-50)} .c-card--calculateurs{background:var(--sun-100)}
a.c-card{text-decoration:none;color:inherit}
a.c-card:hover{box-shadow:0 2px 4px rgba(29,26,23,.06),0 10px 24px rgba(29,26,23,.1)}

/* 7. Faits (clé / valeur) */
.c-kv{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:4px 18px;display:grid}
.c-kv__row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}
.c-kv__row:last-child{border-bottom:0}
.c-kv__key{font-size:var(--fs-small);font-weight:600;color:var(--ink-3)}
.c-kv__val{font-weight:600;text-align:right}
.c-kv__val--stack{display:grid;text-align:right;gap:2px}
.c-kv__val--stack small{font-weight:500;color:var(--ink-3);font-size:var(--fs-caption)}
.c-kv--flush{box-shadow:none;padding:0}
.c-kv__row--stack{display:grid;justify-content:stretch;align-items:start}
.c-kv__row--stack .c-kv__val{text-align:left;font-weight:400}

/* 8. Tableau */
.c-table{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow-x:auto}
.c-table__head,.c-table__row{display:grid;grid-template-columns:var(--cols);gap:12px;align-items:center;padding:0 18px;min-width:var(--min,0)}
.c-table__head{font-size:var(--fs-micro);font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;padding-top:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.c-table__row{min-height:var(--row-h);padding-top:9px;padding-bottom:9px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.c-table__row:last-child{border-bottom:0}
a.c-table__row:hover{background:var(--accent-tint)}
.c-table__title{font-weight:700}
.c-table__title a,a.c-table__title,.c-card__head a{text-decoration:none}
.c-table__title a:hover,a.c-table__title:hover,.c-card__head a:hover{text-decoration:underline;text-underline-offset:3px}
.c-table__sub{display:block;font-size:var(--fs-caption);color:var(--ink-3)}
.c-table{overflow:visible}
.c-table--distances{--cols:minmax(150px,.5fr) minmax(0,1.5fr)}
.c-table--comparison{--cols:110px minmax(200px,1fr) minmax(200px,1fr)}
.c-table--catalogue{--cols:minmax(190px,1.6fr) 44px 80px 80px 70px 90px 70px}
.c-table--controles{--cols:52px minmax(140px,1fr) 100px 110px}
.c-table--notes{--cols:100px minmax(0,1fr)}
.c-table--home-rides,.c-table--ride-list{--cols:110px minmax(200px,1fr) 150px 100px 190px}
.c-table--home-rides-compact{--cols:160px minmax(200px,1fr) 190px}
.c-table--season-events{--cols:110px minmax(200px,1fr) 220px}
.c-table--plan{--cols:52px minmax(180px,1fr) 100px 130px;--min:620px}
.c-table--ravito{--cols:minmax(160px,1fr) 70px 150px 130px 80px;--min:700px}
.c-table--conditions{--cols:minmax(150px,1fr) 90px 150px 90px 120px;--min:650px}
.c-table--terrain{--cols:minmax(130px,.6fr) minmax(220px,1.4fr) 170px;--min:620px}
.c-table--adopter{--cols:minmax(130px,.6fr) minmax(220px,1.4fr) 100px 100px;--min:680px}
.c-table--debrief,.c-table--saisie{--cols:60px minmax(150px,1fr) 110px 180px 100px 120px;--min:760px}
.c-table--today-loops{--cols:minmax(180px,1fr) 90px 80px 150px minmax(220px,1.2fr)}
.c-table--sorties-loops{--cols:minmax(180px,1fr) 90px 80px 70px 120px}
.c-table--loop-passages{--cols:minmax(150px,1fr) 110px 120px}
.c-table--loop-slices{--cols:90px 80px minmax(140px,1fr) 90px 110px 90px}
.c-table--activities{--cols:90px minmax(180px,1fr) 100px 80px minmax(140px,.8fr)}
.c-table--sorties-debriefs{--cols:120px minmax(180px,1fr) 130px 100px}
.c-table--brm-list{--cols:100px minmax(180px,1fr) 150px 80px minmax(130px,auto)}
.c-table--brm-group{--cols:100px minmax(180px,1fr) 150px minmax(160px,1fr) 100px}
.c-table--brm-barriers{--cols:minmax(130px,1fr) 60px 100px 100px}
.c-table--brm-plan{--cols:60px minmax(160px,1fr) 90px 90px 90px 90px}
.c-table--brm-weather{--cols:minmax(180px,1.2fr) 70px minmax(130px,1fr) 80px 110px 140px}
.c-table--brm-debrief{--cols:60px minmax(150px,1fr) 100px minmax(180px,1fr) 90px}
.c-table--climbs{--cols:64px minmax(150px,1fr) 90px 70px 70px}
.c-table--r5000{--cols:minmax(160px,1fr) 110px 90px}
.c-table--equipment{--cols:minmax(180px,1fr) 100px minmax(150px,auto)}
.c-table--durees{overflow:visible}
.c-table table{width:100%;border-collapse:collapse;table-layout:fixed}
.c-table th,.c-table td{padding:10px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.c-table th{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}
.c-table tr:last-child td{border-bottom:0}
.c-table--today-loops .c-badge{white-space:normal}
.c-table--plan,.c-table--ravito,.c-table--conditions,.c-table--terrain,.c-table--adopter,.c-table--debrief,.c-table--saisie{overflow-x:auto}
.c-table__actions{justify-content:flex-end}

/* 9. Tuile de mesure */
.c-tile{border-radius:var(--radius-card);padding:14px 16px;display:grid;gap:4px;background:var(--tile,var(--sunken))}
.c-tile--sun{--tile:var(--sun-500)} .c-tile--mint{--tile:#bfe8cf} .c-tile--sky{--tile:#cfe0fb} .c-tile--rose{--tile:#f6d3e4}
.c-tile__label{font-size:var(--fs-caption);font-weight:700;color:var(--ink-2)}

/* 10. Étiquette */
.c-badge{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-caption);font-weight:600;padding:4px 9px;border-radius:var(--radius-sm);background:var(--neutral-bg);color:var(--ink-2);white-space:nowrap}
.c-badge--ok{background:var(--ok-bg);color:var(--ok-fg)} .c-badge--warn{background:var(--warn-bg);color:var(--warn-fg)} .c-badge--danger{background:var(--danger-bg);color:var(--danger-fg)}

/* 11. Boutons */
.c-btn{appearance:none;border:1.5px solid transparent;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-pill);font:700 var(--fs-body)/1.2 var(--font-sans);padding:10px 18px;min-height:var(--control-h);white-space:nowrap;color:var(--ink)}
.c-btn--primary{background:var(--accent-strong);color:#fff}
.c-btn--primary:hover{background:var(--ink)}
.c-btn--secondary{background:transparent;border-color:var(--ink)}
.c-btn--secondary:hover{background:var(--ink);color:#fff}
.c-btn--soft{background:var(--sunken)}
.c-btn--soft:hover{background:var(--line)}
.c-btn--danger{background:transparent;border-color:var(--danger-fg);color:var(--danger-fg)}
.c-btn--sm{padding:6px 12px;min-height:34px;font-size:var(--fs-caption)}
.c-btn--sorties{background:var(--sorties-600);color:#fff} .c-btn--fleches{background:var(--fleches-600);color:#fff} .c-btn--brm{background:var(--brm-600);color:#fff} .c-btn--calculateurs{background:var(--ink);color:#fff}
.c-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.c-form>.c-actions,.c-actions--end{justify-content:flex-end}

/* 12. État vide */
.c-empty{border:1.5px dashed var(--line-strong);border-radius:var(--radius-card);padding:18px 20px;min-height:var(--empty-h);display:grid;gap:8px;align-content:center;color:var(--ink-2)}
.c-empty strong{color:var(--ink)}

/* 13. Avis (sécurité, alerte) — un par page au plus */
.c-notice{border-radius:var(--radius-card);padding:14px 18px;display:grid;gap:6px;background:var(--warn-bg);color:var(--ink)}
.c-notice--danger{background:var(--danger-bg)}
.c-notice__title{font-weight:700}

/* 14. Formulaire : champ, contrôles stylés (natifs en dessous) */
.c-form{display:grid;gap:14px}
.c-form__row{display:grid;gap:12px;grid-template-columns:repeat(var(--n,2),minmax(0,1fr))}
.c-field{display:grid;gap:6px}
.c-field__label{font-size:var(--fs-small);font-weight:700}
.c-field__hint{font-size:var(--fs-caption);color:var(--ink-3);line-height:1.4}
.c-field__error{font-size:var(--fs-caption);color:var(--danger-fg);font-weight:600}
.c-field input:not([type=checkbox]):not([type=radio]):not([type=file]),.c-field select,.c-field textarea,.c-input,.c-select{width:100%;min-height:var(--control-h);font:400 16px/1.3 var(--font-sans);color:var(--ink);padding:10px 14px;background:var(--surface);border:1.5px solid var(--line-strong);border-radius:12px;outline:0;appearance:none;-webkit-appearance:none}
.c-field input:hover,.c-field select:hover,.c-field textarea:hover{border-color:var(--ink-3)}
.c-field input:focus,.c-field select:focus,.c-field textarea:focus,.c-input:focus,.c-select:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
.c-field textarea{min-height:96px;resize:vertical}
.c-field select,.c-select{padding-right:40px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'><path d='M4 6l4 4 4-4' fill='none' stroke='%231d1a17' stroke-width='2' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 14px center}
.c-field input[type=date],.c-field input[type=datetime-local],.c-field input[type=time]{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'><rect x='2' y='3' width='12' height='11' rx='2' fill='none' stroke='%231d1a17' stroke-width='1.6'/><path d='M2 7h12M5 1.5v3M11 1.5v3' stroke='%231d1a17' stroke-width='1.6' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}
.c-field input::-webkit-calendar-picker-indicator{opacity:0;position:absolute;right:0;width:44px;height:44px;cursor:pointer}
.c-field--date{position:relative}
.c-field input[type=number]{font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.c-field input[type=number]::-webkit-inner-spin-button,.c-field input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.c-field__control{position:relative}
.c-field--unit input{padding-right:56px}
.c-field__unit{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:var(--fs-caption);font-weight:600;color:var(--ink-3);pointer-events:none}
.c-file{position:relative;display:grid;gap:8px}
.c-file input[type=file]{position:absolute;width:1px;height:1px;opacity:0}
.c-file__box{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:var(--control-h);padding:8px 8px 8px 14px;background:var(--surface);border:1.5px dashed var(--line-strong);border-radius:12px;color:var(--ink-3);cursor:pointer}
.c-file__box:focus-within{border-color:var(--accent);box-shadow:var(--ring-focus)}
.c-file__btn{flex:none}
.c-check,.c-radio{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:var(--fs-body)}
.c-check input,.c-radio input{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:1px 0 0;border:1.5px solid var(--line-strong);background:var(--surface);border-radius:6px;display:grid;place-items:center;cursor:pointer}
.c-radio input{border-radius:50%}
.c-check input:checked,.c-radio input:checked{background:var(--accent-strong);border-color:var(--accent-strong)}
.c-check input:checked::after{content:"";width:11px;height:6px;border:2.5px solid #fff;border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg)}
.c-radio input:checked::after{content:"";width:8px;height:8px;border-radius:50%;background:#fff}
.c-check input:focus-visible,.c-radio input:focus-visible{box-shadow:var(--ring-focus)}
.c-choice{display:inline-flex;background:var(--sunken);border-radius:var(--radius-pill);padding:4px;gap:2px}
.c-choice label{cursor:pointer}
.c-choice input{position:absolute;opacity:0;width:1px;height:1px}
.c-choice span{display:block;padding:7px 14px;border-radius:var(--radius-pill);font-size:var(--fs-small);font-weight:600;color:var(--ink-2)}
.c-choice input:checked+span{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}
.c-choice__option{appearance:none;border:0;background:transparent;color:var(--ink-2);font:600 var(--fs-small)/1.2 var(--font-sans);text-decoration:none;padding:7px 14px;border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap}
.c-choice__option.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card)}

/* 15. Progression */
.c-progress{display:grid;gap:6px}
.c-progress__bar{height:10px;border-radius:5px;background:var(--sunken);overflow:hidden}
.c-progress__fill{height:100%;background:var(--accent-strong);border-radius:5px}
.c-progress__meta{display:flex;justify-content:space-between;font-size:var(--fs-caption);color:var(--ink-3)}

/* 16. Liste de contrôle */
.c-checklist{display:grid;gap:0;background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:4px 18px}
.c-checklist .c-check{padding:10px 0;border-bottom:1px solid var(--line)}
.c-checklist .c-check:last-child{border-bottom:0}

/* 17. Relance de bas de page */
.c-next{margin-top:var(--section-gap);background:var(--sunken);border-radius:var(--radius-card);padding:18px 22px;display:grid;gap:12px}

/* 18. Pied de page */
.c-footer{margin-top:var(--section-gap);padding:18px var(--gutter) 0;border-top:1px solid var(--line);max-width:1200px;margin-left:auto;margin-right:auto;width:100%;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:var(--fs-caption);color:var(--ink-3)}
.c-footer a{color:var(--ink-2);text-decoration:none;margin-right:14px}

/* 19. Personne (participant) */
.c-person{display:flex;align-items:center;gap:10px}
.c-person__avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-tint);color:var(--accent-ink);font-weight:800;font-size:13px;display:grid;place-items:center;flex:none}
.c-live-layout{display:grid;grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:24px;align-items:center}
.c-live-layout--compact{grid-template-columns:minmax(0,1fr);justify-items:center}
.c-live-layout--compact .u-stack{width:100%}
.c-live-layout--compact .c-btn{width:100%;white-space:normal;text-align:center}
.c-live-qr{display:block;width:min(100%,220px)}
.c-live-qr .live-qr-grid{display:grid;width:100%;height:auto;aspect-ratio:1;background:#fff}
.c-live-qr .live-qr-module{display:block;min-width:0;min-height:0;background:#fff}
.c-live-qr .live-qr-module.is-dark{background:var(--ink)}
.c-live-qr.live-qr-21>.live-qr-grid{grid-template-columns:repeat(21,1fr)}
.c-live-qr.live-qr-25>.live-qr-grid{grid-template-columns:repeat(25,1fr)}
.c-live-qr.live-qr-29>.live-qr-grid{grid-template-columns:repeat(29,1fr)}
.c-live-qr.live-qr-33>.live-qr-grid{grid-template-columns:repeat(33,1fr)}
.c-live-qr.live-qr-37>.live-qr-grid{grid-template-columns:repeat(37,1fr)}
.c-live-qr.live-qr-41>.live-qr-grid{grid-template-columns:repeat(41,1fr)}
.c-live-qr.live-qr-45>.live-qr-grid{grid-template-columns:repeat(45,1fr)}
.c-live-qr.live-qr-49>.live-qr-grid{grid-template-columns:repeat(49,1fr)}

/* 20. Repère de guidage : ce qu'on peut faire ici */
.c-guide{display:grid;gap:4px;padding:12px 16px;border-left:3px solid var(--accent);background:var(--surface);border-radius:0 12px 12px 0;color:var(--ink-2)}
.c-guide strong{color:var(--ink)}
.c-main>.c-guide{margin-top:var(--section-gap)}
.c-form-page{max-width:800px;margin-inline:auto;width:100%}

/* Composants métier conservés pendant la migration. */
.c-profile{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:18px 22px;display:grid;gap:10px}
.c-profile svg{display:block;width:100%;height:auto}
.profile-area{fill:var(--accent-hero)}
.profile-line{fill:none;stroke:var(--accent-strong);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.profile-base{stroke:var(--line);stroke-width:1.5}
.profile-tick{stroke:var(--line-strong);stroke-width:1.5;stroke-dasharray:4 4}
.profile-dot{fill:var(--surface);stroke:var(--accent-strong);stroke-width:2.5}
.profile-num{font:800 14px var(--font-sans);fill:var(--ink)}
.c-route{display:block;width:100%;height:auto;background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:18px 22px}
.route-seg{fill:none;stroke-width:10;stroke-linecap:round}
.route-seg--face{stroke:var(--wind-face)} .route-seg--travers{stroke:var(--wind-travers)} .route-seg--dos{stroke:var(--wind-dos)}
.route-pt{fill:var(--surface);stroke:var(--ink);stroke-width:3}
.route-num{font:800 15px var(--font-sans);fill:var(--ink)}
.route-wind{fill:none;stroke:var(--ink);stroke-width:2.5}
.route-head{fill:var(--ink)}
.c-rose{background:var(--surface);border-radius:50%;padding:18px;aspect-ratio:1;width:100%}
.c-rose svg{display:block;width:100%;height:auto}
.c-rose path{stroke:var(--surface);stroke-width:3}
.c-rose-legend{font-size:var(--fs-caption);color:var(--ink-2);text-align:center;line-height:1.45;margin-top:10px}
.rain-0{fill:var(--rain-0)} .rain-1{fill:var(--rain-1)} .rain-2{fill:var(--rain-2)}
.rose-sun{fill:var(--sun-500)}
.rose-dir{font:700 13px var(--font-sans);fill:var(--ink)}
.rose-wind{font:600 10px var(--font-sans)}
.rose-wind.wind-face{fill:var(--wind-face)} .rose-wind.wind-travers{fill:var(--wind-travers)} .rose-wind.wind-dos{fill:var(--wind-dos)}
.c-badge--wind-face{background:var(--sunken);color:var(--wind-face)}
.c-badge--wind-travers{background:var(--sunken);color:var(--wind-travers)}
.c-badge--wind-dos{background:var(--sunken);color:var(--wind-dos)}
.c-badge--wind-inconnu{background:var(--sunken);color:var(--ink-3)}
.c-time-window{grid-template-columns:minmax(230px,1fr) 110px 110px auto;align-items:end}
.c-time-window>.c-actions{align-self:end}
.c-planner-wide{grid-template-columns:minmax(0,1fr);min-width:0;max-width:100%}
.c-planner-wide>.c-badge{white-space:normal;justify-self:start}
.c-planner-table{width:100%;min-width:0;max-width:100%;overflow-x:auto;border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card)}
.c-planner-table table{width:100%;min-width:760px;border-collapse:collapse}
.c-planner-table th,.c-planner-table td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left}
.c-planner-table input{max-width:64px}
.c-planner-table td:not(:first-child){white-space:nowrap}
.c-map{display:block;width:100%;min-width:680px;background:var(--fleches-50);border-radius:var(--radius-card)}
.c-map-viewport{overflow:auto;border-radius:var(--radius-card)}
.c-map__water{fill:var(--fleches-50)}
.c-map__grid{fill:none;stroke:var(--line);stroke-width:1}
.c-map__water-labels{fill:var(--ink-3);font:700 var(--fs-micro)/1 var(--font-sans);letter-spacing:.12em}
.c-map__france{fill:var(--surface);stroke:var(--line-strong);stroke-width:2}
.c-map__route line{stroke:var(--fleches-500);stroke-width:2;stroke-linecap:round}
.c-map__route:hover line,.c-map__route:focus line{stroke-width:4}
.c-map__hit{fill:transparent}
.c-map__pin{fill:var(--fleches-600);stroke:var(--surface);stroke-width:2}
.c-map__number{fill:var(--surface);font:800 12px/1 var(--font-sans)}
.c-map__pulse{fill:var(--sorties-100)}
.c-map__ring{fill:none;stroke:var(--sorties-600);stroke-width:3}
.c-map__dot{fill:var(--sorties-600)}
.c-map__label{fill:var(--ink);font:800 12px/1 var(--font-sans);letter-spacing:.08em}
.c-map__list a.c-kv__row{color:var(--ink);text-decoration:none}
.c-map__list a.c-kv__row.is-map-active{background:var(--fleches-100);color:var(--fleches-700)}
.c-quiver{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}
.c-quiver__cell{text-decoration:none;color:var(--ink);background:var(--surface);border-radius:var(--radius-card);padding:10px 10px 12px;display:grid;gap:2px;align-content:start;min-height:104px;box-shadow:var(--shadow-card);transition:transform .15s ease,box-shadow .15s ease}
.c-quiver__cell:hover{transform:translateY(-2px);box-shadow:0 3px 8px rgba(29,26,23,.08),0 12px 28px rgba(29,26,23,.12);color:var(--ink)}
.c-quiver__num{font-weight:800;font-size:22px;letter-spacing:-.03em;line-height:1}
.c-quiver__name{font-size:var(--fs-micro);font-weight:600;line-height:1.25;overflow-wrap:normal;hyphens:manual}
.c-quiver__state{font-size:11px;font-weight:700;margin-top:6px;color:var(--ink-3)}
.c-quiver__cell.is-or{background:var(--sun-500)}
.c-quiver__cell.is-argent{background:var(--line-strong)}
.c-quiver__cell.is-bronze{background:var(--sorties-100)}
.c-quiver__cell.is-planned{background:var(--accent-tint);box-shadow:inset 0 0 0 2px var(--accent)}
.c-quiver__cell.is-or .c-quiver__state,.c-quiver__cell.is-argent .c-quiver__state,.c-quiver__cell.is-bronze .c-quiver__state{color:var(--ink)}
.c-feedback-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.c-report{margin-top:var(--section-gap)}
.c-report:not(:target):not(.is-open){display:none}
.c-report__card{max-width:720px}
.c-404-layout{display:grid;gap:var(--section-gap);margin-top:var(--section-gap)}
.c-404__card{--c-404-card-bg:var(--surface);--c-404-picto-ink:var(--ink);width:100%;max-width:900px;margin-inline:auto;justify-items:center;text-align:center;background:var(--c-404-card-bg)}
.c-404__picto{display:block;width:100%;max-width:520px;height:auto}
.c-404__picto>g:first-child,.c-404__picto>path,.c-404__picto>rect{fill:var(--c-404-picto-ink)}
.c-404__picto>circle:nth-of-type(1){fill:var(--c-404-card-bg)}
.c-404__picto>circle:nth-of-type(2){fill:none;stroke:var(--c-404-picto-ink)}
.c-404__picto>g:nth-of-type(2){stroke:var(--c-404-picto-ink)}
.c-404__picto>circle:nth-of-type(3){fill:var(--roulettes-500)}
.c-404__card .c-lead{max-width:50ch}
.c-404__actions{justify-content:center}
.c-404-pages{max-width:1000px;margin-inline:auto}

@media (prefers-color-scheme:dark){
  .c-404__card{--c-404-card-bg:var(--ink);--c-404-picto-ink:var(--paper);color:var(--paper)}
  .c-404__card .c-lead{color:var(--paper)}
  .c-404__card .c-btn--soft{background:var(--paper);color:var(--ink)}
}

/* Utilitaires */
.u-cols-1{--n:1}.u-cols-2{--n:2}.u-cols-3{--n:3}.u-cols-4{--n:4}
.u-muted{color:var(--ink-3)} .u-right{text-align:right} .u-mt-2{margin-top:8px}
.u-stack{display:grid;gap:14px}.u-gap-8{gap:8px}.u-gap-12{gap:12px}.u-gap-24{gap:24px}.u-gap-44{gap:44px}
.u-disclosure{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 14px}
.u-disclosure>summary{cursor:pointer;font-weight:700}.u-disclosure>[open]{margin-top:10px}
.u-stoprow{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:8px;align-items:center}
.u-stoprow input{width:100%;min-height:40px;border:1.5px solid var(--line-strong);border-radius:10px;padding:8px}
.u-notice-close{justify-self:end}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

@media (max-width:1000px){.c-hero--aside{grid-template-columns:minmax(0,1fr)} .c-hero--aside>.c-kv{max-width:420px} .c-split{grid-template-columns:minmax(0,1fr)} .c-grid{--n:2 !important} .u-cols-4{--n:2}.c-quiver{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:1000px){.c-split.c-workshop-split{grid-template-columns:minmax(0,1fr)}}
@media (max-width:700px){
  .u-hide-m{display:none !important}
  .c-quiver{grid-template-columns:repeat(4,minmax(0,1fr))}
  .c-table--catalogue .c-table__sub--delai{display:none}
  .c-table--catalogue{--cols:minmax(0,1fr) 84px 72px !important}
  .c-table--conditions{--cols:minmax(0,1fr) 80px 100px !important;--min:0}
  .c-table--controles{--cols:44px minmax(0,1fr) 80px !important}
  .c-table--debrief,.c-table--saisie{--cols:minmax(0,1fr) 160px 86px !important;--min:0}
  .c-table--notes{--cols:80px minmax(0,1fr) !important}
  .c-table--home-rides,.c-table--home-rides-compact{--cols:82px minmax(0,1fr) !important}
  .c-table--ride-list{--cols:104px minmax(0,1fr) !important}
  .c-table--season-events{--cols:82px minmax(0,1fr) !important}
  .c-table--today-loops{--cols:minmax(0,1fr) minmax(132px,1fr) !important}
  .c-table--sorties-loops{--cols:minmax(0,1fr) 92px !important}
  .c-table--loop-passages{--cols:minmax(0,1fr) 100px !important}
  .c-table--loop-slices{--cols:66px 70px minmax(0,1fr) !important}
  .c-table--activities{--cols:70px minmax(0,1fr) 76px !important}
  .c-table--sorties-debriefs{--cols:84px minmax(0,1fr) 84px !important}
  .c-table--brm-list{--cols:82px minmax(0,1fr) minmax(90px,auto) !important}
  .c-table--brm-group{--cols:82px minmax(0,1fr) 80px !important}
  .c-table--brm-barriers{--cols:minmax(0,1fr) 100px !important}
  .c-table--brm-plan{--cols:minmax(0,1fr) 80px 70px !important}
  .c-table--brm-weather{--cols:minmax(0,1fr) minmax(110px,.7fr) !important}
  .c-table--brm-debrief{--cols:minmax(0,1fr) minmax(150px,1fr) 70px !important}
  .c-table--climbs{--cols:54px minmax(0,1fr) 62px !important}
  .c-table--r5000{--cols:minmax(0,1fr) 78px !important}
  .c-table--equipment{--cols:minmax(0,1fr) minmax(118px,auto) !important}
  .c-table--home-rides .c-table__head>:last-child,.c-table--home-rides-compact .c-table__head>:last-child,.c-table--ride-list .c-table__head>:last-child{display:none}
  .c-table--home-rides .c-table__actions,.c-table--home-rides-compact .c-table__actions,.c-table--ride-list .c-table__actions{grid-column:1/-1;justify-self:end}
  .c-table--stack .c-table__head{display:none}
  .c-table--stack .c-table__row{grid-template-columns:minmax(0,1fr);gap:4px;padding-top:12px;padding-bottom:12px}
  .c-table--stack .c-table__row>[data-label]::before{content:attr(data-label);display:block;font-size:var(--fs-micro);font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;margin-top:6px}
  .c-table--stack .c-table__row>.c-table__title{font-size:var(--fs-h3)}
  :root{--gutter:16px;--section-gap:20px;--hero-pad-y:20px;--hero-pad-x:20px;--fs-display:32px;--fs-h1:28px;--fs-h2:21px;--card-pad:16px 18px;--radius-hero:20px}
  .c-topbar{padding:10px var(--gutter);grid-template-columns:1fr auto 1fr}
  .c-topbar__actions{flex-wrap:nowrap}
  .c-topbar__actions>:not(:last-child){display:none}.c-topbar>.c-unav{grid-column:1/-1;grid-row:2;justify-self:stretch}.c-topbar>.c-actions{grid-row:1;grid-column:3}
  .c-grid{--n:1 !important} .c-form__row{--n:1} .c-hero__figure{width:min(100%,220px)}
  .c-hero--aside>.c-kv{max-width:none}
  .c-profile{padding:14px}
  .c-choice{max-width:100%;overflow-x:auto}
  .c-time-window{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .c-time-window__day,.c-time-window>.c-actions{grid-column:1/-1}
  .c-time-window>.c-actions .c-btn{width:100%}
  .c-live-layout{grid-template-columns:minmax(0,1fr)}
}
