/* ============================================================================
   Interface V2 - Design system "Twenty" (chrome achromatique, accent indigo)
   Toutes les regles sont scopees sous [data-ui-version="v2"] : la V2 ne touche
   jamais la V1 (styles.css) et reciproquement. Le bascule se fait via
   document.documentElement.dataset.uiVersion = "v2".
   Source : refonte-La-vie-Kintsugi (maquettes Twenty) + twenty-theme.css.
   ========================================================================== */

/* ---- Tokens (clair) ---- */
[data-ui-version="v2"] {
  --g1:#ffffff; --g2:#fcfcfc; --g3:#f9f9f9; --g4:#f1f1f1; --g5:#ebebeb; --g6:#d6d6d6;
  --g7:#cccccc; --g8:#b3b3b3; --g9:#999999; --g10:#838383; --g11:#666666; --g12:#333333;
  --i3:#edf2fe; --i5:#d2deff; --i7:#abbdf9; --i9:#3e63dd; --i10:#3358d4; --i11:#3a5bc7;
  --grass3:#e9f6ec; --grass11:#218358;
  --amber3:#fff7c2; --amber11:#a35200;
  --gray-t3:#f1f1f1; --gray-t11:#646464;
  --iris3:#f0f1fe; --iris11:#5151cd;
  --teal3:#e0f8f3; --teal11:#008573;
  --blue3:#edf2fe; --blue11:#3a5bc7;
  --red3:#feebec; --red9:#e5484d; --red11:#ce2c31; --red5:#f9c6c6;
  --plum3:#fbecfc; --plum11:#9c2bad;

  --bg:var(--g1); --surface:var(--g2); --raised:var(--g1);
  --border-light:var(--g4); --border-med:var(--g5); --border-strong:var(--g6);
  --fg:var(--g12); --fg-2:var(--g11); --fg-3:var(--g9); --fg-light:var(--g8);
  --accent:var(--i9); --accent-hover:var(--i10); --link:var(--i11);
  --sel:var(--i3); --focus:var(--i7);
  --shadow-card:0 2px 4px rgba(0,0,0,.02), 0 0 4px rgba(0,0,0,.08);
  --shadow-pop:0 6px 16px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.06);
  --font-v2:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --mono-v2:'DM Mono',ui-monospace,Menlo,monospace;
}

/* ---- Tokens (sombre) ---- */
[data-ui-version="v2"][data-theme="dark"] {
  --g1:#171717; --g2:#1b1b1b; --g3:#191919; --g4:#242424; --g5:#2a2a2a; --g6:#484848;
  --g7:#4c4c4c; --g8:#666666; --g9:#818181; --g10:#7b7b7b; --g11:#b3b3b3; --g12:#ebebeb;
  --i3:#182449; --i5:#253974; --i7:#3a4f97; --i9:#3e63dd; --i10:#5472e4; --i11:#9eb1ff;
  --grass3:#102a1c; --grass11:#3dd68c;
  --amber3:#352306; --amber11:#ffca16;
  --gray-t3:#242424; --gray-t11:#a0a0a0;
  --iris3:#1c1c3c; --iris11:#b1a9ff;
  --teal3:#0a2822; --teal11:#0bd8b6;
  --blue3:#182449; --blue11:#9eb1ff;
  --red3:#3b1219; --red9:#ec5d5e; --red11:#ff9592; --red5:#5c2227;
  --plum3:#2f1338; --plum11:#e796f3;
  --shadow-card:0 0 0 1px rgba(255,255,255,.02);
  --shadow-pop:0 8px 24px rgba(0,0,0,.5);
}

/* ---- Reset local (uniquement dans le sous-arbre V2) ---- */
[data-ui-version="v2"] #app,
[data-ui-version="v2"] #app * { box-sizing:border-box; }
[data-ui-version="v2"] body {
  font-family:var(--font-v2); font-size:14px; line-height:1.5; color:var(--fg);
  background:var(--surface); -webkit-font-smoothing:antialiased;
  font-variant-numeric:tabular-nums; margin:0;
}
[data-ui-version="v2"] button { font-family:inherit; cursor:pointer; }
[data-ui-version="v2"] input,
[data-ui-version="v2"] select,
[data-ui-version="v2"] textarea { font-family:inherit; font-size:14px; color:var(--fg); }
[data-ui-version="v2"] .mono { font-family:var(--mono-v2); font-variant-numeric:tabular-nums; }

/* ---- Shell : sidebar + main ---- */
[data-ui-version="v2"] .v2-app { display:grid; grid-template-columns:236px 1fr; grid-template-rows:100vh;
  height:100vh; overflow:hidden; }
[data-ui-version="v2"] .v2-side { background:var(--surface); border-inline-end:1px solid var(--border-light);
  display:flex; flex-direction:column; min-height:0; }
[data-ui-version="v2"] .v2-brand { display:flex; align-items:center; gap:9px; padding:14px 14px 10px; }
[data-ui-version="v2"] .v2-brand .logo { width:30px; height:28px; border-radius:0; flex:0 0 auto;
  background:url("/assets/lavie-kintsugi-logo.png") center/contain no-repeat; display:block;
  color:transparent; font-size:0; overflow:hidden; }
[data-ui-version="v2"] .v2-brand .wk { display:flex; flex-direction:column; line-height:1.15; }
[data-ui-version="v2"] .v2-brand .wk b { font-size:13.5px; font-weight:600; letter-spacing:0; }
[data-ui-version="v2"] .v2-brand .wk span { font-size:11px; color:var(--fg-3); }
[data-ui-version="v2"] .v2-nav { padding:4px 8px; overflow-y:auto; flex:1; min-height:0; }
[data-ui-version="v2"] .v2-nav .grp { font-size:10.5px; font-weight:600; letter-spacing:.06em;
  text-transform:uppercase; color:var(--fg-light); padding:12px 8px 5px; }
[data-ui-version="v2"] .v2-nav a { display:flex; align-items:center; gap:9px; padding:6px 8px; border-radius:4px;
  font-size:13.5px; font-weight:500; color:var(--fg-2); text-decoration:none; margin-bottom:1px; }
[data-ui-version="v2"] .v2-nav a:hover { background:var(--g3); color:var(--fg); }
[data-ui-version="v2"] .v2-nav a.on { background:var(--sel); color:var(--fg); }
[data-ui-version="v2"] .v2-nav a.on svg { color:var(--accent); }
[data-ui-version="v2"] .v2-nav a svg { width:17px; height:17px; flex:0 0 auto; color:var(--fg-3); }
[data-ui-version="v2"] .v2-nav a .badge { margin-inline-start:auto; font-size:11px; font-weight:500;
  color:var(--fg-3); font-family:var(--mono-v2); }
[data-ui-version="v2"] .v2-foot { border-top:1px solid var(--border-light); padding:8px 12px;
  display:flex; align-items:center; gap:8px; }
[data-ui-version="v2"] .v2-foot .av { width:26px; height:26px; border-radius:50%; background:var(--plum3);
  color:var(--plum11); display:grid; place-items:center; font-size:11px; font-weight:600; flex:0 0 auto; }
[data-ui-version="v2"] .v2-foot .who { line-height:1.2; min-width:0; }
[data-ui-version="v2"] .v2-foot .who b { font-size:12.5px; font-weight:600; display:block;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
[data-ui-version="v2"] .v2-foot .who span { font-size:11px; color:var(--fg-3); }
[data-ui-version="v2"] .theme-btn { margin-inline-start:auto; width:30px; height:30px; border-radius:4px;
  border:1px solid var(--border-med); background:var(--bg); color:var(--fg-2); display:grid; place-items:center; }
[data-ui-version="v2"] .theme-btn:hover { background:var(--g3); }
[data-ui-version="v2"] .theme-btn svg { width:16px; height:16px; }
[data-ui-version="v2"][data-theme="light"] .theme-btn .moon { display:block; }
[data-ui-version="v2"][data-theme="light"] .theme-btn .sun { display:none; }
[data-ui-version="v2"][data-theme="dark"] .theme-btn .moon { display:none; }
[data-ui-version="v2"][data-theme="dark"] .theme-btn .sun { display:block; }

[data-ui-version="v2"] .v2-main { display:flex; flex-direction:column; min-width:0; min-height:0; background:var(--bg); }
[data-ui-version="v2"] .v2-topbar { height:48px; border-bottom:1px solid var(--border-light);
  display:flex; align-items:center; gap:10px; padding:0 16px; flex:0 0 auto; }
[data-ui-version="v2"] .burger { display:none; width:30px; height:30px; border-radius:4px;
  border:1px solid var(--border-med); background:var(--bg); color:var(--fg-2); place-items:center; }
[data-ui-version="v2"] .crumb { display:flex; align-items:center; gap:7px; font-size:13px; color:var(--fg-3); min-width:0; }
[data-ui-version="v2"] .crumb svg { width:15px; height:15px; }
[data-ui-version="v2"] .crumb b { color:var(--fg); font-weight:600; }
[data-ui-version="v2"] .crumb a { color:var(--link); text-decoration:none; }
[data-ui-version="v2"] .crumb .sep { color:var(--border-strong); }
[data-ui-version="v2"] .v2-topbar .sp { margin-inline-start:auto; }
[data-ui-version="v2"],
[data-ui-version="v2"] body { max-width:100%; overflow-x:hidden; }
[data-ui-version="v2"] .v2-scroll { overflow-y:auto; overflow-x:hidden; flex:1; min-height:0; min-width:0; max-width:100vw; }
/* Les conteneurs de page V1 (max-width + margin auto + gros padding) ne doivent
   pas deborder la zone principale du shell : on les remet en pleine largeur. */
[data-ui-version="v2"] .v2-legacy > .container,
[data-ui-version="v2"] .v2-legacy > section,
[data-ui-version="v2"] .v2-legacy .admin-simple-page,
[data-ui-version="v2"] .v2-legacy .admin-dashboard-source-page,
[data-ui-version="v2"] .v2-legacy .admin-parameters-page,
[data-ui-version="v2"] .v2-legacy .admin-booking-page,
[data-ui-version="v2"] .v2-legacy .admin-members-page,
[data-ui-version="v2"] .v2-legacy .admin-contributors-page,
[data-ui-version="v2"] .v2-legacy .admin-crm-page,
[data-ui-version="v2"] .v2-legacy .admin-flashinfo-page,
[data-ui-version="v2"] .v2-legacy .admin-subscribers-page,
[data-ui-version="v2"] .v2-legacy .admin-member-activities-page { max-width:100% !important; width:auto !important;
  margin-inline:0 !important; padding-inline:20px !important; box-sizing:border-box; min-width:0; overflow-x:hidden; }

/* ---- Boutons ---- */
[data-ui-version="v2"] .btn { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 10px;
  border-radius:4px; font-size:13.5px; font-weight:500; border:1px solid transparent; white-space:nowrap;
  background:transparent; color:var(--fg); transition:background .12s,border-color .12s; text-decoration:none; }
[data-ui-version="v2"] .btn svg { width:15px; height:15px; }
[data-ui-version="v2"] .btn-sm { height:26px; padding:0 8px; font-size:12.5px; }
[data-ui-version="v2"] .btn-primary { background:var(--accent); color:#fff; border-color:var(--accent); }
[data-ui-version="v2"] .btn-primary:hover { background:var(--accent-hover); border-color:var(--accent-hover); }
[data-ui-version="v2"] .btn-dark { background:var(--g12); color:var(--g1); border-color:var(--g12); }
[data-ui-version="v2"] .btn-dark:hover { opacity:.88; }
[data-ui-version="v2"] .btn-secondary { background:var(--bg); color:var(--fg); border-color:var(--border-strong); }
[data-ui-version="v2"] .btn-secondary:hover { background:var(--g3); }
[data-ui-version="v2"] .btn-ghost { color:var(--fg-2); }
[data-ui-version="v2"] .btn-ghost:hover { background:var(--g3); }
[data-ui-version="v2"] .btn-success { background:var(--grass11); color:#fff; border-color:var(--grass11); }
[data-ui-version="v2"] .btn-success:hover { opacity:.9; }
[data-ui-version="v2"] .btn-danger { background:transparent; color:var(--red11); border-color:var(--red5); }
[data-ui-version="v2"] .btn-danger:hover { background:var(--red3); }
[data-ui-version="v2"] .btn-icon { width:26px; height:26px; padding:0; justify-content:center;
  border:1px solid var(--border-med); background:var(--bg); color:var(--fg-2); border-radius:4px; }
[data-ui-version="v2"] .btn-icon:hover { background:var(--g3); }
[data-ui-version="v2"] .btn-plus { width:22px; height:22px; border-radius:4px; border:1px dashed var(--border-strong);
  background:transparent; color:var(--accent); font-size:14px; line-height:1; display:grid; place-items:center; }
[data-ui-version="v2"] .btn-plus:hover { background:var(--sel); border-style:solid; }

/* ---- Page + entete ---- */
[data-ui-version="v2"] .page { padding:16px 18px 40px; }
[data-ui-version="v2"] .page-head { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
[data-ui-version="v2"] .page-head h1 { font-size:18px; font-weight:600; letter-spacing:-.01em; text-transform:uppercase; }
[data-ui-version="v2"] .page-head .ct { font-size:12.5px; color:var(--fg-3); font-family:var(--mono-v2); }
[data-ui-version="v2"] .page-head .actions { margin-inline-start:auto; display:flex; gap:7px; flex-wrap:wrap; }

/* ---- Barre d'outils / filtres ---- */
[data-ui-version="v2"] .toolbar { display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-bottom:12px;
  padding:9px 10px; background:var(--surface); border:1px solid var(--border-light); border-radius:8px; }
[data-ui-version="v2"] .fld { position:relative; }
[data-ui-version="v2"] .fselect { appearance:none; height:30px; padding:0 26px 0 9px; border:1px solid var(--border-med);
  border-radius:4px; background:var(--bg); color:var(--fg-2); font-size:12.5px; font-weight:500; max-width:220px;
  text-overflow:ellipsis; }
[data-ui-version="v2"] .fselect:focus { outline:0; border-color:var(--focus); box-shadow:0 0 0 3px var(--sel); }
[data-ui-version="v2"] .fld::after { content:""; position:absolute; inset-inline-end:9px; top:12px; width:7px; height:7px;
  border-right:1.6px solid var(--fg-light); border-bottom:1.6px solid var(--fg-light);
  transform:rotate(45deg); pointer-events:none; }
[data-ui-version="v2"] .search-box { display:flex; align-items:center; gap:6px; height:30px; padding:0 8px;
  border:1px solid var(--border-med); border-radius:4px; background:var(--bg); min-width:180px; flex:1; }
[data-ui-version="v2"] .search-box svg { width:15px; height:15px; color:var(--fg-light); }
[data-ui-version="v2"] .search-box input { border:0; outline:0; background:transparent; width:100%; }
[data-ui-version="v2"] .toolbar .right { margin-inline-start:auto; display:flex; align-items:center; gap:7px; }

/* ---- Tableaux ---- */
[data-ui-version="v2"] .tbl-wrap { border:1px solid var(--border-light); border-radius:8px; overflow:hidden; background:var(--bg); }
[data-ui-version="v2"] .tbl-scroll { overflow-x:auto; }
[data-ui-version="v2"] table.tbl { width:100%; border-collapse:collapse; font-size:13px; min-width:880px; }
[data-ui-version="v2"] .tbl thead th { position:sticky; top:0; background:var(--surface); z-index:1; text-align:start;
  font-size:11.5px; font-weight:500; color:var(--fg-2); padding:9px 8px; border-bottom:1px solid var(--border-med); white-space:nowrap; }
[data-ui-version="v2"] .tbl thead th small { font-weight:400; color:var(--fg-light); font-size:10px; }
[data-ui-version="v2"] .tbl th.sortable { cursor:pointer; }
[data-ui-version="v2"] .tbl th.sortable:hover { color:var(--fg); }
[data-ui-version="v2"] .tbl td { padding:8px; border-bottom:1px solid var(--border-light); vertical-align:middle; }
[data-ui-version="v2"] .tbl tbody tr { cursor:pointer; }
[data-ui-version="v2"] .tbl tbody tr:hover { background:var(--surface); }
[data-ui-version="v2"] .tbl tbody tr.sel { background:var(--sel); }
[data-ui-version="v2"] .tbl tbody tr:last-child td { border-bottom:0; }
[data-ui-version="v2"] .colcheck { width:32px; text-align:center; }
[data-ui-version="v2"] .member-cell { display:flex; align-items:center; gap:9px; min-width:190px; }
[data-ui-version="v2"] .av-r { width:30px; height:30px; border-radius:50%; flex:0 0 auto; display:grid;
  place-items:center; font-size:11px; font-weight:600; }
[data-ui-version="v2"] .member-cell .nm { line-height:1.25; min-width:0; }
[data-ui-version="v2"] .member-cell .nm b { font-weight:500; color:var(--fg); display:block; white-space:nowrap; }
[data-ui-version="v2"] .member-cell .nm span { font-size:11.5px; color:var(--fg-3); }
[data-ui-version="v2"] .twolines { line-height:1.3; }
[data-ui-version="v2"] .twolines .a { color:var(--fg); white-space:nowrap; }
[data-ui-version="v2"] .twolines .b { font-size:11.5px; color:var(--fg-3); white-space:nowrap; }
[data-ui-version="v2"] .num { font-family:var(--mono-v2); text-align:end; color:var(--fg); white-space:nowrap; }
[data-ui-version="v2"] .muted { color:var(--fg-light); }
[data-ui-version="v2"] .del-x { width:22px; height:22px; border-radius:4px; border:1px solid transparent;
  background:transparent; color:var(--fg-light); font-size:15px; line-height:1; display:grid; place-items:center; }
[data-ui-version="v2"] .del-x:hover { background:var(--red3); color:var(--red11); border-color:var(--red5); }

/* ---- Tags ---- */
[data-ui-version="v2"] .tag { display:inline-flex; align-items:center; gap:4px; height:20px; padding:0 8px;
  border-radius:999px; font-size:11.5px; font-weight:500; white-space:nowrap; }
[data-ui-version="v2"] .dot { width:6px; height:6px; border-radius:50%; background:currentColor; opacity:.85; }
[data-ui-version="v2"] .t-grass { background:var(--grass3); color:var(--grass11); }
[data-ui-version="v2"] .t-amber { background:var(--amber3); color:var(--amber11); }
[data-ui-version="v2"] .t-gray { background:var(--gray-t3); color:var(--gray-t11); }
[data-ui-version="v2"] .t-iris { background:var(--iris3); color:var(--iris11); }
[data-ui-version="v2"] .t-teal { background:var(--teal3); color:var(--teal11); }
[data-ui-version="v2"] .t-blue { background:var(--blue3); color:var(--blue11); }
[data-ui-version="v2"] .t-plum { background:var(--plum3); color:var(--plum11); }

/* ---- Pagination ---- */
[data-ui-version="v2"] .footer-bar { display:flex; align-items:center; gap:10px; margin-top:12px; flex-wrap:wrap; }
[data-ui-version="v2"] .pager { display:flex; align-items:center; gap:2px; }
[data-ui-version="v2"] .pager button { min-width:28px; height:28px; padding:0 7px; border:1px solid var(--border-med);
  background:var(--bg); color:var(--fg-2); font-size:12px; font-family:var(--mono-v2); border-radius:4px; }
[data-ui-version="v2"] .pager button:hover { background:var(--g3); }
[data-ui-version="v2"] .pager button.on { background:var(--accent); color:#fff; border-color:var(--accent); }
[data-ui-version="v2"] .footer-bar .right { margin-inline-start:auto; display:flex; align-items:center; gap:8px;
  font-size:12.5px; color:var(--fg-3); }

/* ---- Cartes / formulaires detail ---- */
[data-ui-version="v2"] .detail-head { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
[data-ui-version="v2"] .detail-head h1 { font-size:18px; font-weight:600; letter-spacing:-.01em; }
[data-ui-version="v2"] .detail-head .meta { font-size:11.5px; color:var(--fg-3); font-family:var(--mono-v2); }
[data-ui-version="v2"] .detail-head .actions { margin-inline-start:auto; display:flex; gap:7px; flex-wrap:wrap; }
[data-ui-version="v2"] .dgrid { display:grid; grid-template-columns:1.6fr 1fr; gap:16px; align-items:start; }
[data-ui-version="v2"] .v2-col { display:flex; flex-direction:column; gap:16px; min-width:0; }
[data-ui-version="v2"] .dgrid > * { min-width:0; }
[data-ui-version="v2"] .card { min-width:0; }
[data-ui-version="v2"] .card { background:var(--bg); border:1px solid var(--border-light); border-radius:8px;
  box-shadow:var(--shadow-card); overflow:hidden; }
[data-ui-version="v2"] .card>.hd { display:flex; align-items:center; gap:8px; padding:10px 14px; border-bottom:1px solid var(--border-light); }
[data-ui-version="v2"] .card>.hd h2 { font-size:13px; font-weight:600; color:var(--fg); text-transform:uppercase; letter-spacing:.03em; }
[data-ui-version="v2"] .card>.hd .sp { margin-inline-start:auto; }
[data-ui-version="v2"] .card .bd { padding:6px 14px 12px; }
[data-ui-version="v2"] .frow { display:grid; grid-template-columns:130px 1fr; gap:10px; align-items:center;
  padding:7px 0; border-bottom:1px solid var(--border-light); }
[data-ui-version="v2"] .frow:last-child { border-bottom:0; }
[data-ui-version="v2"] .frow>label { font-size:12.5px; font-weight:500; color:var(--fg-2); }
[data-ui-version="v2"] .frow .v { min-width:0; }
[data-ui-version="v2"] .inp { width:100%; height:30px; padding:0 9px; border:1px solid var(--border-med);
  border-radius:4px; background:var(--bg); }
[data-ui-version="v2"] .inp:focus { outline:0; border-color:var(--focus); box-shadow:0 0 0 3px var(--sel); }
[data-ui-version="v2"] textarea.inp { height:auto; padding:7px 9px; resize:vertical; min-height:54px; line-height:1.5; }
[data-ui-version="v2"] .sel-inp { width:100%; height:30px; padding:0 26px 0 9px; border:1px solid var(--border-med);
  border-radius:4px; background:var(--bg); appearance:none; }
[data-ui-version="v2"] .sel-wrap { position:relative; }
[data-ui-version="v2"] .sel-wrap::after { content:""; position:absolute; inset-inline-end:10px; top:12px; width:6px; height:6px;
  border-right:1.6px solid var(--fg-light); border-bottom:1.6px solid var(--fg-light); transform:rotate(45deg); pointer-events:none; }
[data-ui-version="v2"] .with-icon { position:relative; }
[data-ui-version="v2"] .with-icon .inp { padding-inline-start:30px; }
[data-ui-version="v2"] .with-icon svg { position:absolute; inset-inline-start:9px; top:8px; width:14px; height:14px; color:var(--fg-light); }
[data-ui-version="v2"] .static-v { font-size:13px; color:var(--fg); display:flex; align-items:center; gap:7px; }
[data-ui-version="v2"] .static-v .ic { color:var(--fg-light); }
[data-ui-version="v2"] .radio-row { display:flex; gap:14px; }
[data-ui-version="v2"] .radio-row label { display:flex; align-items:center; gap:5px; font-size:13px; color:var(--fg-2); }
[data-ui-version="v2"] .radio-row input { accent-color:var(--accent); }

/* ---- Onglets ---- */
[data-ui-version="v2"] .tabs { display:flex; gap:0; border:1px solid var(--border-med); border-radius:5px; overflow:hidden; flex-wrap:wrap; }
[data-ui-version="v2"] .tabs button { height:28px; padding:0 11px; border:0; border-inline-end:1px solid var(--border-med);
  background:var(--bg); color:var(--fg-2); font-size:12.5px; font-weight:500; display:flex; align-items:center; gap:5px; }
[data-ui-version="v2"] .tabs button:last-child { border-inline-end:0; }
[data-ui-version="v2"] .tabs button.on { background:var(--sel); color:var(--fg); }
[data-ui-version="v2"] .tabs button:hover:not(.on) { background:var(--g3); }
[data-ui-version="v2"] .tabs .cb { font-family:var(--mono-v2); font-size:10px; background:var(--g5); color:var(--fg-2);
  border-radius:999px; padding:0 5px; min-width:16px; text-align:center; }
[data-ui-version="v2"] .tabs button.on .cb { background:var(--i5); color:var(--i11); }

/* ---- Bandeau RGPD ---- */
[data-ui-version="v2"] .rgpd { margin-top:16px; padding:10px 14px; border:1px solid var(--red5); background:var(--red3);
  border-radius:8px; color:var(--red11); font-size:11.5px; font-weight:500; line-height:1.5; }

/* ---- Cartes simples (compte intervenant) ---- */
[data-ui-version="v2"] .v2-stack { display:flex; flex-direction:column; gap:16px; max-width:760px; }
[data-ui-version="v2"] .v2-hello { font-size:13.5px; color:var(--fg-2); margin-bottom:4px; }
[data-ui-version="v2"] .v2-hello strong { color:var(--fg); }
[data-ui-version="v2"] .inline-pref { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:13px; color:var(--fg-2); }
[data-ui-version="v2"] .pref-note { font-size:12px; color:var(--fg-3); }

/* ---- Bouton de bascule d'interface (present aussi en V1, voir styles.css) ---- */
[data-ui-version="v2"] .ui-switch-card .bd { display:flex; flex-direction:column; gap:8px; }

/* ---- Responsive ---- */
@media(max-width:1024px) {
  [data-ui-version="v2"] .v2-app { grid-template-columns:60px 1fr; }
  [data-ui-version="v2"] .v2-brand .wk,
  [data-ui-version="v2"] .v2-nav .grp,
  [data-ui-version="v2"] .v2-nav a span,
  [data-ui-version="v2"] .v2-nav a .badge,
  [data-ui-version="v2"] .v2-foot .who { display:none; }
  [data-ui-version="v2"] .v2-nav a { justify-content:center; padding:8px; }
  [data-ui-version="v2"] .v2-foot { justify-content:center; flex-direction:column; gap:6px; }
  [data-ui-version="v2"] .dgrid { grid-template-columns:1fr; }
}
@media(max-width:760px) {
  [data-ui-version="v2"] .v2-app { grid-template-columns:1fr; }
  [data-ui-version="v2"] .v2-side { position:fixed; inset:0 auto 0 0; width:236px; z-index:40;
    transform:translateX(-100%); transition:transform .2s; }
  [data-ui-version="v2"] .v2-side.open { transform:none; }
  [data-ui-version="v2"] .v2-side .v2-brand .wk,
  [data-ui-version="v2"] .v2-side .v2-nav .grp,
  [data-ui-version="v2"] .v2-side .v2-nav a span,
  [data-ui-version="v2"] .v2-side .v2-nav a .badge,
  [data-ui-version="v2"] .v2-side .v2-foot .who { display:flex; }
  [data-ui-version="v2"] .v2-side .v2-nav a { justify-content:flex-start; padding:6px 8px; }
  [data-ui-version="v2"] .burger { display:grid; }
  [data-ui-version="v2"] .frow { grid-template-columns:1fr; gap:4px; align-items:start; }
  [data-ui-version="v2"] .page-head h1 { font-size:16px; }
  [data-ui-version="v2"] .v2-scrim.show { display:block; position:fixed; inset:0; background:rgba(0,0,0,.35); z-index:35; }
}
[data-ui-version="v2"] .v2-scrim { display:none; }

/* ============================================================================
   Thème de couleur "Kintsugi" (accent vert La Vie Kintsugi). On ne surcharge
   que les tokens SEMANTIQUES : tous les boutons/accents/liens suivent.
   ========================================================================== */
[data-ui-version="v2"][data-ui-accent="kintsugi"] {
  --accent:#37BABC; --accent-hover:#2ea1a3; --link:#0f8688; --sel:#e1f5f5; --focus:#9bdedf;
}
[data-ui-version="v2"][data-ui-accent="kintsugi"][data-theme="dark"] {
  --accent:#37BABC; --accent-hover:#54d3d5; --link:#54d3d5; --sel:#0e2e2e; --focus:#2a6e6f;
}
[data-ui-version="v2"][data-ui-accent="kintsugi"] .v2-brand .logo { background-image:url("/assets/lavie-kintsugi-logo.png"); }

/* Sélecteur d'apparence (segmenté) dans la carte compte */
[data-ui-version="v2"] .pref-row { display:flex; align-items:center; gap:14px; padding:9px 0;
  border-bottom:1px solid var(--border-light); flex-wrap:wrap; }
[data-ui-version="v2"] .pref-row:last-child { border-bottom:0; }
[data-ui-version="v2"] .pref-label { font-size:12.5px; font-weight:500; color:var(--fg-2); width:120px; flex:0 0 auto; }
[data-ui-version="v2"] .seg { display:inline-flex; border:1px solid var(--border-med); border-radius:6px; overflow:hidden; }
[data-ui-version="v2"] .seg-btn { display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 12px;
  border:0; border-inline-end:1px solid var(--border-med); background:var(--bg); color:var(--fg-2);
  font-size:12.5px; font-weight:500; }
[data-ui-version="v2"] .seg-btn:last-child { border-inline-end:0; }
[data-ui-version="v2"] .seg-btn.on { background:var(--sel); color:var(--fg); }
[data-ui-version="v2"] .seg-btn:hover:not(.on) { background:var(--g3); }
[data-ui-version="v2"] .seg-dot { width:10px; height:10px; border-radius:50%; display:inline-block; }

/* Pied de sidebar : identite + actions (compte, theme, deconnexion) */
[data-ui-version="v2"] .v2-foot { flex-wrap:wrap; gap:8px; }
[data-ui-version="v2"] .v2-foot-id { display:flex; align-items:center; gap:8px; text-decoration:none; color:inherit;
  min-width:0; flex:1; border-radius:6px; padding:2px; }
[data-ui-version="v2"] .v2-foot-id:hover { background:var(--g3); }
[data-ui-version="v2"] .v2-foot-actions { display:flex; align-items:center; gap:4px; }
[data-ui-version="v2"] .v2-foot-btn { width:30px; height:30px; border-radius:4px; border:1px solid var(--border-med);
  background:var(--bg); color:var(--fg-2); display:grid; place-items:center; text-decoration:none; cursor:pointer; }
[data-ui-version="v2"] .v2-foot-btn svg { width:16px; height:16px; }
[data-ui-version="v2"] .v2-foot-btn:hover { background:var(--g3); }
[data-ui-version="v2"] .v2-foot-logout { color:var(--red11); border-color:var(--red5); }
[data-ui-version="v2"] .v2-foot-logout:hover { background:var(--red3); }

/* ============================================================================
   Durcissement du reskin sur les pages V1 denses (tableaux, filtres custom).
   On force la lisibilite et on neutralise les positionnements V1 conflictuels.
   ========================================================================== */
/* En-tetes de tableaux : V1 force un fond colore en !important -> on reprend la
   main avec !important pour garantir un fond clair + texte lisible. */
[data-ui-version="v2"] .v2-legacy thead th,
[data-ui-version="v2"] .v2-legacy table th,
[data-ui-version="v2"] .v2-legacy .admin-members-source-table th {
  background:var(--surface) !important; color:var(--fg-2) !important;
  border-color:var(--border-med) !important; height:auto !important; }
[data-ui-version="v2"] .v2-legacy thead th small,
[data-ui-version="v2"] .v2-legacy table th small,
[data-ui-version="v2"] .v2-legacy .admin-members-source-table th small { color:var(--fg-light) !important; }
[data-ui-version="v2"] .v2-legacy thead,
[data-ui-version="v2"] .v2-legacy .admin-members-source-table thead { height:auto !important; }
[data-ui-version="v2"] .v2-legacy .table-responsive {
  display:block; width:100%; max-width:100%; min-width:0; overflow-x:auto; overflow-y:visible;
  box-sizing:border-box; contain:layout paint;
}
[data-ui-version="v2"] .v2-legacy .admin-members-source-table { width:max-content; min-width:720px; max-width:none; }

/* En-tete page membres : titre + boutons en flux flex (corrige le chevauchement
   des boutons EXPORT XLS / HISTORIQUE ACTIVITES inseres dans le h3). */
[data-ui-version="v2"] .v2-legacy .member-title { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
[data-ui-version="v2"] .v2-legacy .admin-members-form {
  position:static !important; display:flex !important; flex-direction:column; align-items:stretch;
  gap:12px; min-height:0 !important; margin:0 0 16px !important; }
[data-ui-version="v2"] .v2-legacy .member-title h3 { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0;
  height:auto !important; white-space:normal !important; line-height:1.35; }
[data-ui-version="v2"] .v2-legacy .member-title h3 .btn-sm,
[data-ui-version="v2"] .v2-legacy .admin-members-form .admin-activities-btn {
  width:auto !important; max-width:100%; height:30px !important; min-height:30px !important;
  overflow:visible !important; text-overflow:clip !important; white-space:nowrap !important; }
[data-ui-version="v2"] .v2-legacy .member-search { position:static !important; display:flex !important; align-items:center;
  gap:8px; flex-wrap:wrap; width:100% !important; height:auto !important; overflow:visible !important; }
[data-ui-version="v2"] .v2-legacy .member-search label { white-space:nowrap; margin:0; }
[data-ui-version="v2"] .v2-legacy .member-search input { position:static !important; flex:1 1 260px;
  width:auto !important; max-width:420px; min-width:180px; height:32px !important; border-radius:4px !important; }
[data-ui-version="v2"] .v2-legacy .member-search .btn,
[data-ui-version="v2"] .v2-legacy .admin-members-form .admin-add-member-btn {
  position:static !important; left:auto !important; top:auto !important; width:auto !important; height:32px !important;
  min-height:32px !important; margin:0 !important; border-radius:4px !important;
  overflow:visible !important; text-overflow:clip !important; white-space:nowrap !important; }
[data-ui-version="v2"] .v2-legacy .admin-member-filter-strip { display:flex; align-items:center; gap:8px;
  flex-wrap:wrap; position:static !important; inset:auto !important; width:100% !important; max-width:100% !important;
  margin:0 !important; padding:0 !important; overflow:visible !important; white-space:normal !important;
  justify-content:flex-start !important; line-height:1.35 !important; text-align:start !important; }
[data-ui-version="v2"] .v2-legacy .admin-member-result-count {
  position:static !important; left:auto !important; top:auto !important; width:auto !important;
  margin-inline-start:auto; color:var(--fg-3); font-size:12.5px; line-height:30px; text-align:end;
}
[data-ui-version="v2"] .v2-legacy .admin-members-form .member-size { position:static !important; right:auto !important;
  left:auto !important; top:auto !important; justify-self:auto !important; align-self:flex-end; margin:0 !important; }
[data-ui-version="v2"] .v2-legacy .admin-members-form .member-size select {
  width:auto !important; min-width:150px; max-width:100%; height:32px !important; }

/* Filtres custom V1 (bootstrap-select / dropdown-toggle btn-primary) -> neutre Twenty */
[data-ui-version="v2"] .v2-legacy .admin-member-filter,
[data-ui-version="v2"] .v2-legacy .dropdown.bootstrap-select,
[data-ui-version="v2"] .v2-legacy .selectpicker { position:relative; }
[data-ui-version="v2"] .v2-legacy .admin-member-filter-btn,
[data-ui-version="v2"] .v2-legacy .dropdown-toggle.btn-primary {
  background:var(--bg) !important; color:var(--fg-2) !important; border:1px solid var(--border-med) !important;
  border-radius:4px !important; box-shadow:none !important; font-weight:500 !important;
  height:30px !important; padding:0 28px 0 12px !important; display:inline-flex !important; align-items:center;
  justify-content:flex-start !important; gap:8px; font-size:13.5px !important; line-height:18px !important;
  max-width:100%; overflow:hidden; text-align:left; }
[data-ui-version="v2"] .v2-legacy .admin-member-filter-btn { width:auto !important; min-width:max-content; }
[data-ui-version="v2"] .v2-legacy .admin-member-filter-btn--nature { min-width:205px; }
[data-ui-version="v2"] .v2-legacy .admin-member-filter-btn--origin { min-width:260px; }
[data-ui-version="v2"] .v2-legacy .admin-member-filter-btn--profiles { min-width:155px; }
[data-ui-version="v2"] .v2-legacy .admin-member-filter-btn .filter-option-inner-inner {
  display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
[data-ui-version="v2"] .v2-legacy .admin-member-filter-btn::after {
  right:12px !important; border-top-width:4px !important; border-left-width:4px !important; border-right-width:4px !important; }
[data-ui-version="v2"] .v2-legacy .dropdown-toggle.btn-primary::after { color:var(--fg-light); }

@media(max-width:920px){
  [data-ui-version="v2"] .v2-legacy .admin-member-filter-strip { gap:6px; }
  [data-ui-version="v2"] .v2-legacy .admin-member-filter { max-width:100%; }
  [data-ui-version="v2"] .v2-legacy .admin-member-filter-btn,
  [data-ui-version="v2"] .v2-legacy .admin-member-filter-btn--nature,
  [data-ui-version="v2"] .v2-legacy .admin-member-filter-btn--origin,
  [data-ui-version="v2"] .v2-legacy .admin-member-filter-btn--profiles {
    width:100% !important; min-width:0; }
  [data-ui-version="v2"] .v2-legacy .admin-member-filter[data-filter-name="civilite"] { flex:1 1 150px; }
  [data-ui-version="v2"] .v2-legacy .admin-member-filter[data-filter-name="nature"] { flex:1 1 215px; }
  [data-ui-version="v2"] .v2-legacy .admin-member-filter[data-filter-name="origine"] { flex:1 1 260px; }
  [data-ui-version="v2"] .v2-legacy .admin-member-filter[data-filter-name="search_members"] { flex:1 1 170px; }
}

/* ============ Formulaire public de pre-inscription ============ */
[data-ui-version="v2"] .v2-public-page {
  min-height:100vh; background:var(--bg); color:var(--fg);
  display:flex; align-items:flex-start; justify-content:center; padding:36px 18px;
}
[data-ui-version="v2"] .v2-public-panel {
  width:min(980px, 100%); background:var(--bg); border:1px solid var(--border-light);
  border-radius:12px; box-shadow:var(--shadow-pop); padding:22px;
}
[data-ui-version="v2"] .v2-subscribe-head {
  display:flex; align-items:center; gap:14px; padding-bottom:16px; border-bottom:1px solid var(--border-light);
}
[data-ui-version="v2"] .v2-public-logo {
  width:64px; height:64px; border:1px solid var(--border-light); border-radius:12px;
  display:grid; place-items:center; background:var(--surface); flex:0 0 auto;
}
[data-ui-version="v2"] .v2-public-logo img { width:52px; height:52px; object-fit:contain; }
[data-ui-version="v2"] .v2-subscribe-head h1 { margin:0; font-size:22px; font-weight:600; letter-spacing:0; }
[data-ui-version="v2"] .v2-subscribe-head p { margin:3px 0 0; color:var(--fg-2); font-size:13.5px; }
[data-ui-version="v2"] .v2-subscribe-form { margin-top:20px; display:flex; flex-direction:column; gap:18px; }
[data-ui-version="v2"] .v2-form-section { display:flex; flex-direction:column; gap:12px; }
[data-ui-version="v2"] .v2-form-section h2 {
  margin:0; padding-bottom:8px; border-bottom:1px solid var(--border-light);
  font-size:14px; font-weight:600; color:var(--fg); letter-spacing:0;
}
[data-ui-version="v2"] .v2-subscribe-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; }
[data-ui-version="v2"] .v2-subscribe-field,
[data-ui-version="v2"] .v2-subscribe-textarea { display:flex; flex-direction:column; gap:5px; min-width:0; }
[data-ui-version="v2"] .v2-subscribe-field span,
[data-ui-version="v2"] .v2-subscribe-textarea span { color:var(--fg-2); font-size:12.5px; font-weight:500; }
[data-ui-version="v2"] .v2-subscribe-field input,
[data-ui-version="v2"] .v2-subscribe-textarea textarea {
  width:100%; border:1px solid var(--border-med); border-radius:6px; background:var(--bg);
  color:var(--fg); font-size:13.5px; box-shadow:none;
}
[data-ui-version="v2"] .v2-subscribe-field input { height:34px; padding:0 10px; }
[data-ui-version="v2"] .v2-subscribe-textarea textarea { min-height:92px; padding:9px 10px; line-height:1.45; resize:vertical; }
[data-ui-version="v2"] .v2-subscribe-field input:focus,
[data-ui-version="v2"] .v2-subscribe-textarea textarea:focus {
  outline:0; border-color:var(--focus); box-shadow:0 0 0 3px var(--sel);
}
[data-ui-version="v2"] .v2-field-error { min-height:15px; color:var(--red11); font-size:11.5px; }
[data-ui-version="v2"] .v2-subscribe-actions { display:flex; justify-content:center; align-items:center; gap:8px; flex-wrap:wrap; }
[data-ui-version="v2"] .v2-subscribe-secondary,
[data-ui-version="v2"] .v2-subscribe-submit {
  height:34px; display:inline-flex; align-items:center; justify-content:center; padding:0 14px;
  border-radius:6px; font-size:13.5px; font-weight:500; text-decoration:none; cursor:pointer;
}
[data-ui-version="v2"] .v2-subscribe-secondary { border:1px solid var(--border-med); color:var(--fg-2); background:var(--bg); }
[data-ui-version="v2"] .v2-subscribe-secondary:hover { background:var(--g3); color:var(--fg); }
[data-ui-version="v2"] .v2-subscribe-submit {
  border:1px solid var(--g12); background:var(--g12); color:var(--g1);
}
[data-ui-version="v2"] .v2-subscribe-submit:hover { opacity:.9; }
[data-ui-version="v2"] .v2-subscribe-submit[disabled] { opacity:.55; cursor:progress; }
[data-ui-version="v2"] .v2-subscribe-message {
  border:1px solid var(--red5); background:var(--red3); color:var(--red11);
  border-radius:8px; padding:10px 12px; font-size:13px;
}
[data-ui-version="v2"] .v2-subscribe-privacy {
  margin:0; color:var(--fg-3); font-size:12px; line-height:1.55; border-top:1px solid var(--border-light); padding-top:14px;
}
[data-ui-version="v2"] .v2-subscribe-success {
  margin-top:22px; border:1px solid var(--grass11); background:var(--grass3);
  color:var(--grass11); border-radius:10px; padding:20px; text-align:center;
}
[data-ui-version="v2"] .v2-subscribe-success h2 { margin:0 0 8px; font-size:17px; font-weight:600; }
[data-ui-version="v2"] .v2-subscribe-success p { margin:0 0 16px; color:inherit; }
[data-ui-version="v2"] .v2-hp-field { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; opacity:0 !important; }
@media(max-width:720px){
  [data-ui-version="v2"] .v2-public-page { padding:18px 10px; }
  [data-ui-version="v2"] .v2-public-panel { padding:16px; border-radius:10px; }
  [data-ui-version="v2"] .v2-subscribe-head { align-items:flex-start; }
  [data-ui-version="v2"] .v2-public-logo { width:54px; height:54px; }
  [data-ui-version="v2"] .v2-public-logo img { width:44px; height:44px; }
  [data-ui-version="v2"] .v2-subscribe-head h1 { font-size:18px; }
  [data-ui-version="v2"] .v2-subscribe-grid { grid-template-columns:1fr; gap:10px; }
  [data-ui-version="v2"] .v2-subscribe-actions { justify-content:stretch; }
  [data-ui-version="v2"] .v2-subscribe-secondary,
  [data-ui-version="v2"] .v2-subscribe-submit { flex:1 1 140px; }
}

/* Barres de filtres activites/booking : flux normal (corrige l'overlap du titre) */
[data-ui-version="v2"] .v2-legacy .admin-booking-source-filters,
[data-ui-version="v2"] .v2-legacy .admin-member-activities-filters,
[data-ui-version="v2"] .v2-legacy .admin-booking-filters,
[data-ui-version="v2"] .v2-legacy .admin-booking-filter-line {
  position:static !important; float:none !important; display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  margin:0 0 10px; inset:auto !important; min-width:0; max-width:100%; }
[data-ui-version="v2"] .v2-legacy .admin-booking-source-filters {
  width:100% !important; height:auto !important; margin:0 0 16px !important; padding:0 !important;
  flex-direction:column; align-items:stretch; }
[data-ui-version="v2"] .v2-legacy .admin-booking-page:not(.admin-member-activities-page) .admin-booking-filter-line {
  padding-left:0 !important; width:100%; justify-content:center; }
[data-ui-version="v2"] .v2-legacy .admin-booking-page:not(.admin-member-activities-page) .admin-booking-filter-line--secondary {
  justify-content:flex-start !important; }
[data-ui-version="v2"] .v2-legacy .admin-booking-filter-line--secondary #start { margin-right:0 !important; }
[data-ui-version="v2"] .v2-legacy .admin-booking-source-filters .bootstrap-select,
[data-ui-version="v2"] .v2-legacy .admin-booking-source-filters .dropdown.bootstrap-select {
  flex:1 1 220px; max-width:280px; min-width:180px; }
[data-ui-version="v2"] .v2-legacy .admin-booking-source-filters .btn.dropdown-toggle { width:100% !important; }
[data-ui-version="v2"] .v2-legacy .admin-booking-source-filters .form-control-sm {
  flex:0 1 174px; width:174px !important; max-width:100%; }
[data-ui-version="v2"] .v2-legacy .admin-booking-source-filters .nbselect {
  flex:0 1 150px; width:150px !important; max-width:100%; margin-left:0 !important; }
[data-ui-version="v2"] .v2-legacy .admin-booking-export { flex:0 0 auto; white-space:nowrap; }
[data-ui-version="v2"] .v2-legacy .admin-booking-page h3,
[data-ui-version="v2"] .v2-legacy .admin-member-activities-page h3 { position:static !important; margin:0 0 12px; }

/* Inputs de dates / selects V1 (form-control) -> Twenty */
[data-ui-version="v2"] .v2-legacy .form-control,
[data-ui-version="v2"] .v2-legacy .form-select { background:var(--bg) !important; color:var(--fg) !important;
  border:1px solid var(--border-med) !important; border-radius:4px !important; height:30px !important; }

/* ============================================================================
   Popups / modales. ATTENTION : renderModal() est injecte HORS de .v2-legacy,
   donc on cible directement .modal / .modal-* (sinon le reskin ne les atteint pas).
   ========================================================================== */
[data-ui-version="v2"] .modal-backdrop { position:fixed; inset:0; z-index:100; display:flex;
  align-items:flex-start; justify-content:center; padding:40px 16px; overflow:auto;
  background:rgba(20,20,20,.5); }
[data-ui-version="v2"] .modal { position:relative; width:fit-content;
  min-width:min(560px, calc(100vw - 32px)); max-width:min(1000px, calc(100vw - 32px)); margin:auto;
  background:var(--bg); color:var(--fg); border:1px solid var(--border-light); border-radius:12px;
  box-shadow:var(--shadow-pop); overflow:hidden; }
[data-ui-version="v2"] .modal-header { display:flex; align-items:center; gap:8px; padding:14px 18px;
  border-bottom:1px solid var(--border-light); }
[data-ui-version="v2"] .modal-title,
[data-ui-version="v2"] .modal-header h5,
[data-ui-version="v2"] .modal-header h4 { font-size:15px; font-weight:600; color:var(--fg); margin:0;
  text-transform:none; letter-spacing:0; }
[data-ui-version="v2"] .modal-body { padding:16px 18px; }
[data-ui-version="v2"] .modal-footer { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap;
  padding:12px 18px; border-top:1px solid var(--border-light); }
[data-ui-version="v2"] .modal h3 { font-size:15px; font-weight:600; padding:16px 18px 0; margin:0; text-transform:none; }
[data-ui-version="v2"] .modal > form,
[data-ui-version="v2"] .modal > .form-errors { padding:0 18px 16px; }
[data-ui-version="v2"] .modal .btn-close { position:absolute; top:11px; inset-inline-end:12px; width:28px; height:28px;
  border-radius:6px; border:1px solid var(--border-med); background:var(--bg) !important; background-image:none !important;
  color:var(--fg-2); font-size:0 !important; line-height:1; cursor:pointer; z-index:3; padding:0; opacity:1; }
/* Croix dessinee avec deux barres (compatible boutons a texte ET boutons V1 a
   barres) : on neutralise tout positionnement V1 et on recentre. */
[data-ui-version="v2"] .modal .btn-close::before,
[data-ui-version="v2"] .modal .btn-close::after { content:"" !important; position:absolute !important; top:50% !important;
  left:50% !important; right:auto !important; width:14px !important; height:1.6px !important; border-radius:1px;
  background:var(--fg-2) !important; margin:0 !important; }
[data-ui-version="v2"] .modal .btn-close::before { transform:translate(-50%,-50%) rotate(45deg) !important; }
[data-ui-version="v2"] .modal .btn-close::after { transform:translate(-50%,-50%) rotate(-45deg) !important; }
[data-ui-version="v2"] .modal .btn-close:hover { background:var(--g3) !important; }
[data-ui-version="v2"] .modal .btn-close:hover::before,
[data-ui-version="v2"] .modal .btn-close:hover::after { background:var(--fg) !important; }
[data-ui-version="v2"] .modal input:not([type=radio]):not([type=checkbox]),
[data-ui-version="v2"] .modal select,
[data-ui-version="v2"] .modal textarea,
[data-ui-version="v2"] .modal .form-control,
[data-ui-version="v2"] .modal .form-select { height:34px; padding:0 10px; border:1px solid var(--border-med);
  border-radius:6px; background:var(--bg); color:var(--fg); font-size:14px; }
[data-ui-version="v2"] .modal textarea { height:auto; padding:8px 10px; min-height:70px; line-height:1.5; }
[data-ui-version="v2"] .modal input:focus,
[data-ui-version="v2"] .modal select:focus,
[data-ui-version="v2"] .modal textarea:focus { outline:0; border-color:var(--focus); box-shadow:0 0 0 3px var(--sel); }
[data-ui-version="v2"] .modal label { color:var(--fg-2); font-size:13px; }
[data-ui-version="v2"] .modal .btn { display:inline-flex; align-items:center; gap:6px; height:34px; padding:0 14px;
  border-radius:6px; font-size:13.5px; font-weight:500; border:1px solid var(--border-strong); background:var(--bg);
  color:var(--fg); box-shadow:none; white-space:nowrap; }
[data-ui-version="v2"] .modal .btn:hover { background:var(--g3); }
[data-ui-version="v2"] .modal .btn-primary,
[data-ui-version="v2"] .modal .btn-success { background:var(--accent); color:#fff; border-color:var(--accent); }
[data-ui-version="v2"] .modal .btn-primary:hover,
[data-ui-version="v2"] .modal .btn-success:hover { background:var(--accent-hover); border-color:var(--accent-hover); }
[data-ui-version="v2"] .modal .btn-danger { background:transparent; color:var(--red11); border-color:var(--red5); }
[data-ui-version="v2"] .modal .btn-dark { background:var(--g12); color:var(--g1); border-color:var(--g12); }
[data-ui-version="v2"] .modal .btn-sm,
[data-ui-version="v2"] .modal .btn-xs { height:28px; padding:0 10px; font-size:12.5px; }
[data-ui-version="v2"] .modal table { width:100%; border-collapse:collapse; font-size:13px; }
[data-ui-version="v2"] .modal th { background:var(--surface) !important; color:var(--fg-2) !important; font-weight:500;
  font-size:11.5px; text-align:start; padding:8px; border-bottom:1px solid var(--border-med) !important; }
[data-ui-version="v2"] .modal td { padding:8px; border-bottom:1px solid var(--border-light); }
[data-ui-version="v2"] .modal .form-errors label { color:var(--red11); }

/* Modale planning admin : neutralise l'ancien layout absolu qui debordait et
   coupait les champs/actions a droite. */
[data-ui-version="v2"] .event-modal {
  width:min(1120px, calc(100vw - 32px)) !important; min-width:0 !important; max-width:calc(100vw - 32px) !important;
  max-height:calc(100dvh - 32px); padding:0 !important; overflow:visible !important; }
[data-ui-version="v2"] .event-modal .planning-event-dialog,
[data-ui-version="v2"] .event-modal .planning-event-dialog--admin-model,
[data-ui-version="v2"] .event-modal .planning-event-dialog--admin-event {
  width:100% !important; max-width:100% !important; transform:none !important; margin:0 !important; }
[data-ui-version="v2"] .event-modal .planning-event-content,
[data-ui-version="v2"] .event-modal .planning-event-content--admin-model,
[data-ui-version="v2"] .event-modal .planning-event-content--admin-event {
  display:flex !important; flex-direction:column; width:100% !important; max-height:calc(100dvh - 32px);
  min-height:0 !important; overflow:hidden !important; border-radius:10px; }
[data-ui-version="v2"] .event-modal .planning-event-content .modal-header {
  flex:0 0 auto; min-height:0 !important; padding:14px 18px; }
[data-ui-version="v2"] .event-modal .planning-event-content .modal-title {
  padding-inline-end:36px; font-size:16px; line-height:1.35; font-weight:600; color:var(--fg); }
[data-ui-version="v2"] .event-modal .planning-event-content .modal-body {
  flex:1 1 auto; min-height:0 !important; overflow:auto !important; padding:16px 18px; }
[data-ui-version="v2"] .event-modal .event-form--admin-model,
[data-ui-version="v2"] .event-modal .event-form--admin-event {
  position:static !important; display:grid !important; grid-template-columns:148px minmax(0,1fr) 148px minmax(0,1fr);
  gap:10px 14px; width:100% !important; height:auto !important; min-width:0 !important; max-width:100%; align-items:center; }
[data-ui-version="v2"] .event-modal .event-form--admin-model > *,
[data-ui-version="v2"] .event-modal .event-form--admin-event > * {
  position:static !important; left:auto !important; top:auto !important; grid-area:auto !important; transform:none !important;
  box-sizing:border-box; min-width:0; max-width:100%; margin:0 !important; }
[data-ui-version="v2"] .event-modal .event-form--admin-model input,
[data-ui-version="v2"] .event-modal .event-form--admin-event input,
[data-ui-version="v2"] .event-modal .event-form--admin-model select,
[data-ui-version="v2"] .event-modal .event-form--admin-event select,
[data-ui-version="v2"] .event-modal .event-form--admin-model textarea,
[data-ui-version="v2"] .event-modal .event-form--admin-event textarea,
[data-ui-version="v2"] .event-modal .event-form--admin-model .btn,
[data-ui-version="v2"] .event-modal .event-form--admin-event .btn,
[data-ui-version="v2"] .event-modal .event-form--admin-model .listeservices,
[data-ui-version="v2"] .event-modal .event-form--admin-event .listeservices,
[data-ui-version="v2"] .event-modal .event-form--admin-model .listecontribs,
[data-ui-version="v2"] .event-modal .event-form--admin-event .listecontribs,
[data-ui-version="v2"] .event-modal .event-form--admin-model .listerooms,
[data-ui-version="v2"] .event-modal .event-form--admin-event .listerooms,
[data-ui-version="v2"] .event-modal .event-form--admin-model .listemembres,
[data-ui-version="v2"] .event-modal .event-form--admin-event .listemembres,
[data-ui-version="v2"] .event-modal .event-form--admin-model .btn-colorselector,
[data-ui-version="v2"] .event-modal .event-form--admin-event .btn-colorselector,
[data-ui-version="v2"] .event-modal .event-form--admin-model .reserved-member-wrap,
[data-ui-version="v2"] .event-modal .event-form--admin-event .reserved-member-wrap {
  width:100% !important; min-width:0 !important; height:auto !important; min-height:34px !important;
  max-width:100% !important; white-space:normal; overflow:hidden; text-overflow:ellipsis; }
[data-ui-version="v2"] .event-modal .event-form .field-label { color:var(--fg-2); font-size:13px; line-height:1.25; }
[data-ui-version="v2"] .event-modal .event-form .field-label small { color:var(--fg-3); font-size:11px; }
[data-ui-version="v2"] .event-modal .event-label-service { grid-column:1 !important; grid-row:1 !important; }
[data-ui-version="v2"] .event-modal .listeservices { grid-column:2 !important; grid-row:1 !important; }
[data-ui-version="v2"] .event-modal .event-label-color { grid-column:3 !important; grid-row:1 !important; }
[data-ui-version="v2"] .event-modal .btn-colorselector { grid-column:4 !important; grid-row:1 !important; }
[data-ui-version="v2"] .event-modal .event-label-start { grid-column:1 !important; grid-row:2 !important; }
[data-ui-version="v2"] .event-modal .event-start-field { grid-column:2 !important; grid-row:2 !important; }
[data-ui-version="v2"] .event-modal .event-label-end { grid-column:3 !important; grid-row:2 !important; }
[data-ui-version="v2"] .event-modal .event-end-field { grid-column:4 !important; grid-row:2 !important; }
[data-ui-version="v2"] .event-modal .event-label-bookuntil { grid-column:1 !important; grid-row:3 !important; }
[data-ui-version="v2"] .event-modal .bookuntil-field { grid-column:2 !important; grid-row:3 !important; }
[data-ui-version="v2"] .event-modal .event-label-canceluntil { grid-column:3 !important; grid-row:3 !important; }
[data-ui-version="v2"] .event-modal .canceluntil-field { grid-column:4 !important; grid-row:3 !important; }
[data-ui-version="v2"] .event-modal .description-label { grid-column:1 !important; grid-row:4 !important; align-self:start; padding-top:8px; }
[data-ui-version="v2"] .event-modal .description-field,
[data-ui-version="v2"] .event-modal .visio-field,
[data-ui-version="v2"] .event-modal .resume-field {
  grid-column:2 / 5 !important; }
[data-ui-version="v2"] .event-modal .description-field { grid-row:4 !important; }
[data-ui-version="v2"] .event-modal .event-label-visio { grid-column:1 !important; grid-row:5 !important; }
[data-ui-version="v2"] .event-modal .visio-field { grid-row:5 !important; }
[data-ui-version="v2"] .event-modal .event-label-resume { grid-column:1 !important; grid-row:6 !important; align-self:start; padding-top:8px; }
[data-ui-version="v2"] .event-modal .resume-field { grid-row:6 !important; }
[data-ui-version="v2"] .event-modal .event-label-public { grid-column:1 !important; grid-row:7 !important; }
[data-ui-version="v2"] .event-modal .public-field { grid-column:2 !important; grid-row:7 !important; }
[data-ui-version="v2"] .event-modal .event-label-capacity { grid-column:3 !important; grid-row:7 !important; }
[data-ui-version="v2"] .event-modal .capacity-field,
[data-ui-version="v2"] .event-modal .reserved-member-wrap { grid-column:4 !important; grid-row:7 !important; }
[data-ui-version="v2"] .event-modal .event-label-contributor { grid-column:1 !important; grid-row:8 !important; }
[data-ui-version="v2"] .event-modal .listecontribs { grid-column:2 !important; grid-row:8 !important; }
[data-ui-version="v2"] .event-modal .event-label-place { grid-column:3 !important; grid-row:8 !important; }
[data-ui-version="v2"] .event-modal .listerooms { grid-column:4 !important; grid-row:8 !important; }
[data-ui-version="v2"] .event-modal .event-label-participation { grid-column:1 !important; grid-row:9 !important; }
[data-ui-version="v2"] .event-modal .participation-field { grid-column:2 !important; grid-row:9 !important; }
[data-ui-version="v2"] .event-modal .event-credit-legend { grid-column:3 / 5 !important; grid-row:9 !important; }
[data-ui-version="v2"] .event-modal .event-label-online { grid-column:1 !important; grid-row:10 !important; }
[data-ui-version="v2"] .event-modal .online-field { grid-column:2 / 5 !important; grid-row:10 !important; }
[data-ui-version="v2"] .event-modal .description-field { min-height:92px !important; }
[data-ui-version="v2"] .event-modal .resume-field { min-height:58px !important; }
[data-ui-version="v2"] .event-modal .event-form > span:empty { display:none !important; }
[data-ui-version="v2"] .event-modal .event-image-empty { display:none !important; }
[data-ui-version="v2"] .event-modal .event-credit-legend {
  position:static !important; width:auto !important; min-width:0 !important; color:var(--fg-2); font-size:13px; }
[data-ui-version="v2"] .event-modal .reserved-member-wrap { display:flex; align-items:center; gap:8px; }
[data-ui-version="v2"] .event-modal .reserved-member-wrap .listemembres { flex:1 1 auto; }
[data-ui-version="v2"] .event-modal .planning-event-content .modal-footer {
  position:static !important; flex:0 0 auto; display:flex !important; flex-wrap:wrap; align-items:center; justify-content:flex-end;
  gap:8px; min-height:0 !important; padding:12px 18px; }
[data-ui-version="v2"] .event-modal .planning-event-content .modal-footer .btn,
[data-ui-version="v2"] .event-modal .planning-event-content .modal-footer .btn-primary,
[data-ui-version="v2"] .event-modal .planning-event-content .modal-footer .btn-danger,
[data-ui-version="v2"] .event-modal .planning-event-content .modal-footer .btn-outline-secondary,
[data-ui-version="v2"] .event-modal .planning-event-content .modal-footer .admin-duplicate-weekly {
  position:static !important; inset:auto !important; width:auto !important; min-width:0 !important;
  height:34px !important; margin:0 !important; padding:0 14px !important; white-space:nowrap; }
[data-ui-version="v2"] .event-modal .planning-event-content .modal-footer .admin-duplicate-weekly {
  margin-inline-end:auto !important; }

@media(max-width:860px){
  [data-ui-version="v2"] .event-modal { width:calc(100vw - 20px) !important; max-width:calc(100vw - 20px) !important; }
  [data-ui-version="v2"] .event-modal .event-form--admin-model,
  [data-ui-version="v2"] .event-modal .event-form--admin-event { grid-template-columns:1fr; gap:6px; }
  [data-ui-version="v2"] .event-modal .event-form--admin-model > *,
  [data-ui-version="v2"] .event-modal .event-form--admin-event > * {
    grid-column:1 !important; grid-row:auto !important; }
  [data-ui-version="v2"] .event-modal .description-field,
  [data-ui-version="v2"] .event-modal .visio-field,
  [data-ui-version="v2"] .event-modal .resume-field { grid-column:1 !important; }
  [data-ui-version="v2"] .event-modal .event-form > span:empty { display:none !important; }
  [data-ui-version="v2"] .event-modal .planning-event-content .modal-footer { justify-content:stretch; }
  [data-ui-version="v2"] .event-modal .planning-event-content .modal-footer .btn,
  [data-ui-version="v2"] .event-modal .planning-event-content .modal-footer .admin-duplicate-weekly {
    flex:1 1 150px; justify-content:center; margin-inline-end:0 !important; }
}

/* ============ Page impression planning ============ */
[data-ui-version="v2"] .v2-legacy .admin-print-toolbar { display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  margin-bottom:16px; padding:10px; background:var(--surface); border:1px solid var(--border-light); border-radius:8px; }
[data-ui-version="v2"] .v2-legacy .admin-print-toolbar .sel-wrap { min-width:132px; max-width:170px; }
[data-ui-version="v2"] .v2-legacy .admin-print-toolbar .sel-inp { width:100%; -webkit-appearance:none; appearance:none; }
[data-ui-version="v2"] .v2-legacy .print-seg { display:inline-flex; border:1px solid var(--border-med); border-radius:6px; overflow:hidden; }
[data-ui-version="v2"] .v2-legacy .print-seg button { height:32px; padding:0 12px; border:0;
  border-inline-end:1px solid var(--border-med); background:var(--bg); color:var(--fg-2); font-size:12.5px; font-weight:500; cursor:pointer; }
[data-ui-version="v2"] .v2-legacy .print-seg button:last-child { border-inline-end:0; }
[data-ui-version="v2"] .v2-legacy .print-seg button.on { background:var(--sel); color:var(--fg); }
[data-ui-version="v2"] .v2-legacy .print-seg button:hover:not(.on) { background:var(--g3); }
[data-ui-version="v2"] .v2-legacy .admin-print-go { margin-inline-start:auto; background:var(--accent) !important;
  color:#fff !important; border-color:var(--accent) !important; }
[data-ui-version="v2"] .v2-legacy .admin-print-go:hover { background:var(--accent-hover) !important; }
[data-ui-version="v2"] .v2-legacy .admin-print-month td { width:14.28%; vertical-align:top; min-height:70px; }
[data-ui-version="v2"] .v2-legacy .admin-print-month td.print-other { background:var(--surface); color:var(--fg-light); }
[data-ui-version="v2"] .v2-legacy .admin-print-month .print-daynum { font-weight:600; font-size:11px; color:var(--fg-2); margin-bottom:4px; }
[data-ui-version="v2"] .v2-legacy .admin-print-canvas { overflow-x:auto; }
[data-ui-version="v2"] .v2-legacy .admin-print-week { width:100%; border-collapse:collapse; margin-bottom:18px;
  border:1px solid var(--border-light); border-radius:8px; overflow:hidden; }
[data-ui-version="v2"] .v2-legacy .admin-print-week caption { text-align:start; font-weight:600; font-size:14px;
  padding:10px 4px; color:var(--fg); caption-side:top; }
[data-ui-version="v2"] .v2-legacy .admin-print-week th { background:var(--surface) !important; color:var(--fg-2) !important;
  font-size:12px; font-weight:500; padding:8px; border:1px solid var(--border-light) !important; text-transform:capitalize; height:auto !important; }
[data-ui-version="v2"] .v2-legacy .admin-print-week td { border:1px solid var(--border-light); padding:8px;
  vertical-align:top; font-size:12px; height:96px; color:var(--fg); }
[data-ui-version="v2"] .v2-legacy .admin-print-week p { margin:0 0 6px; line-height:1.35; }

/* ============ Liste des reservations ("Mes reservations") ============ */
[data-ui-version="v2"] .v2-legacy .booking-list { background:transparent !important; border:0 !important;
  box-shadow:none !important; padding:0 !important; display:flex; flex-direction:column; gap:10px; }
[data-ui-version="v2"] .v2-legacy .list-head { display:flex; justify-content:space-between; font-size:11px;
  font-weight:600; color:var(--fg-3) !important; background:transparent !important; text-transform:uppercase;
  letter-spacing:.04em; padding:0 4px 2px; }
[data-ui-version="v2"] .v2-legacy .booking-toolbar .filters { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
[data-ui-version="v2"] .v2-legacy .xls { width:auto !important; display:inline-flex !important; align-items:center;
  height:30px; padding:0 12px; margin:0; }
[data-ui-version="v2"] .v2-legacy .booking-row { display:grid; grid-template-columns:1.25fr 1fr; gap:16px;
  background:var(--bg); border:1px solid var(--border-light); border-radius:10px; box-shadow:var(--shadow-card); padding:14px 16px; }
[data-ui-version="v2"] .v2-legacy .booking-row h4 { font-size:14px; font-weight:600; margin:0 0 4px; display:flex; align-items:center; gap:6px; }
[data-ui-version="v2"] .v2-legacy .booking-row p { font-size:12.5px; color:var(--fg-2); margin:2px 0; }
[data-ui-version="v2"] .v2-legacy .booking-members > div:first-child { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
[data-ui-version="v2"] .v2-legacy .booking-members .member-list p { display:flex; align-items:center; gap:6px;
  flex-wrap:wrap; padding:7px 0; border-bottom:1px solid var(--border-light); font-size:12.5px; margin:0; }
[data-ui-version="v2"] .v2-legacy .booking-members .member-list p:last-child { border-bottom:0; }
[data-ui-version="v2"] .v2-legacy .member-list.empty { color:var(--fg-light); font-size:12.5px; padding:6px 0; }
[data-ui-version="v2"] .v2-legacy .booking-member-name { font-weight:500; color:var(--fg); }
[data-ui-version="v2"] .v2-legacy .booking-member-contact { color:var(--fg-3); font-size:11.5px; }
[data-ui-version="v2"] .v2-legacy .badge.danger { background:var(--red3); color:var(--red11); border-radius:999px;
  padding:2px 9px; font-size:11px; font-weight:500; }
@media(max-width:760px){ [data-ui-version="v2"] .v2-legacy .booking-row { grid-template-columns:1fr; } }

/* Blocs d'evenements planning a fond colore : texte blanc (sinon le reskin des
   liens met la couleur d'accent, illisible sur fond colore). On NE touche PAS
   la vue liste (.fc-list-event) qui est sur fond blanc. */
[data-ui-version="v2"] .v2-legacy #external-events .fc-event,
[data-ui-version="v2"] .v2-legacy #external-events .fc-event a,
[data-ui-version="v2"] .v2-legacy .fc-event .editmodel,
[data-ui-version="v2"] .v2-legacy .fc-event .editmodel:hover,
[data-ui-version="v2"] .v2-legacy .fc-daygrid-block-event,
[data-ui-version="v2"] .v2-legacy .fc-timegrid-event,
[data-ui-version="v2"] .v2-legacy .calendar-event { color:#fff !important; }

[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event {
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:2px;
  min-width:0;
  padding:5px 6px !important;
  border-width:0 !important;
  border-radius:6px !important;
  text-align:left !important;
  font-size:12px !important;
  font-weight:500;
  line-height:1.18 !important;
  letter-spacing:0;
  white-space:normal !important;
  overflow:hidden !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.2), 0 1px 2px rgba(15,23,42,.14);
  text-shadow:0 1px 1px rgba(0,0,0,.18);
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event-time,
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event-title,
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event-meta,
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event-place {
  display:block;
  min-width:0;
  max-width:100%;
  overflow:hidden;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event-time {
  font-size:11.5px;
  font-weight:700;
  line-height:1.1;
  white-space:nowrap;
  text-overflow:ellipsis;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event-title {
  font-size:12.5px;
  font-weight:650;
  line-height:1.16;
  overflow-wrap:break-word;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event-meta,
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event-place {
  font-size:11px;
  line-height:1.15;
  opacity:.94;
  overflow-wrap:anywhere;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:1;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--short {
  gap:1px;
  padding:4px 5px !important;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--short .calendar-event-title {
  -webkit-line-clamp:1;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--short .calendar-event-place,
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--compact .calendar-event-meta,
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--compact .calendar-event-place {
  display:none;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--compact {
  gap:1px;
  padding:3px 5px !important;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--compact .calendar-event-time {
  font-size:11px;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--compact .calendar-event-title {
  font-size:11.5px;
  -webkit-line-clamp:1;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--slim {
  padding:4px 5px !important;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--slim .calendar-event-title {
  white-space:nowrap;
  text-overflow:ellipsis;
  display:block;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--slim .calendar-event-meta,
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--slim .calendar-event-place,
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--tiny .calendar-event-title,
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--tiny .calendar-event-meta,
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--tiny .calendar-event-place {
  display:none;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--tiny {
  padding:3px 4px !important;
  align-items:center;
  text-align:center !important;
}
[data-ui-version="v2"] .v2-legacy .week-canvas .calendar-event--tiny .calendar-event-time {
  font-size:10.5px;
  white-space:normal;
  text-align:center;
  line-height:1.05;
}

[data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(1) .btn-group {
  display:inline-flex;
  align-items:center;
  gap:2px;
}
[data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-next-button {
  margin-left:0 !important;
}
[data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar {
  align-items:center !important;
}
[data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk {
  display:flex;
  align-items:center;
}
[data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(1) {
  justify-self:start;
}
[data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(2) {
  justify-self:center;
}
[data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(3) {
  justify-self:end;
}
[data-ui-version="v2"] .v2-legacy .admin-planning-filters .admin-filter-button {
  display:block !important;
  padding-right:44px !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
[data-ui-version="v2"] .v2-legacy .admin-planning-filters .admin-filter-button::after {
  position:absolute !important;
  right:18px !important;
  margin-left:0 !important;
}

@media(max-width:760px){
  [data-ui-version="v2"] .v2-legacy .admin-planning-page { padding:0 !important; overflow-x:hidden; }
  [data-ui-version="v2"] .v2-legacy .planning-shell.admin-planning-shell {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    gap:14px !important;
    width:100% !important;
    max-width:100% !important;
    margin:12px 0 0 !important;
    padding-top:0 !important;
  }
  [data-ui-version="v2"] .v2-legacy .model-list.admin-model-list {
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    padding-top:0 !important;
    transform:none !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-model-title {
    width:100% !important;
    height:auto !important;
    margin:0 0 6px !important;
    line-height:18px !important;
    text-align:left !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-model-list #external-events {
    width:100% !important;
    max-height:208px;
    min-height:0 !important;
    margin:0 !important;
    padding:6px !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-model-list #external-events .fc-event {
    width:100% !important;
    height:30px !important;
    min-height:30px !important;
    margin:0 0 6px !important;
    padding:0 !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-model-list #external-events .editmodel {
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-model-duplicate-button {
    width:100% !important;
    margin:2px 0 8px !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-order-model {
    margin-top:8px !important;
    padding-left:0 !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar {
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    margin-left:0 !important;
    overflow-x:auto !important;
    transform:none !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar {
    display:grid !important;
    grid-template-columns:auto minmax(0,1fr) !important;
    grid-template-areas:
      "arrows title"
      "views views" !important;
    gap:8px !important;
    width:100% !important;
    height:auto !important;
    margin-bottom:8px !important;
    align-items:center !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk {
    width:auto !important;
    min-width:0 !important;
    height:auto !important;
    margin:0 !important;
    transform:none !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(1) { grid-area:arrows; }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(2) {
    grid-area:title;
    justify-content:flex-end !important;
    text-align:right !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(3) { grid-area:views; }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar h2 {
    display:block !important;
    height:auto !important;
    min-width:0 !important;
    padding-top:0 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .btn-group {
    display:flex !important;
    width:100% !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(1) .btn-group {
    width:auto !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(3) .btn {
    flex:1 1 0;
    min-width:0;
    justify-content:center;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .fc-view-harness,
  [data-ui-version="v2"] .v2-legacy .admin-calendar .fc-dayGridMonth-view,
  [data-ui-version="v2"] .v2-legacy .admin-calendar .fc-listMonth-view,
  [data-ui-version="v2"] .v2-legacy .admin-calendar .week-grid {
    width:100% !important;
    max-width:100% !important;
  }
}

@media(max-height:520px) and (min-width:761px){
  [data-ui-version="v2"] .v2-legacy { padding:10px 14px 28px; }
  [data-ui-version="v2"] .v2-legacy .admin-planning-page {
    padding:24px 24px 24px !important;
  }
  [data-ui-version="v2"] .v2-legacy .planning-shell.admin-planning-shell {
    gap:16px !important;
    padding-top:10px !important;
  }
  [data-ui-version="v2"] .v2-legacy .model-list.admin-model-list {
    padding-top:8px !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar {
    display:grid !important;
    grid-template-columns:72px minmax(160px,1fr) auto !important;
    align-items:center !important;
    gap:8px !important;
    width:100% !important;
    height:32px !important;
    margin-bottom:8px !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk {
    min-width:0 !important;
    margin:0 !important;
    transform:none !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(1) {
    justify-self:start !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(2) {
    display:flex !important;
    justify-content:center !important;
    text-align:center !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(3) {
    justify-self:end !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .btn-group {
    display:inline-flex !important;
    width:auto !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .btn {
    height:32px !important;
    min-height:32px !important;
    padding:0 10px !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .fc-prev-button,
  [data-ui-version="v2"] .v2-legacy .admin-calendar .fc-next-button {
    width:32px !important;
    min-width:32px !important;
    padding:0 !important;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar .fc-toolbar-chunk:nth-child(3) .btn {
    min-width:86px;
  }
  [data-ui-version="v2"] .v2-legacy .admin-calendar .calendar-toolbar h2 {
    height:32px !important;
    padding:0 !important;
    font-size:20px !important;
    line-height:32px !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }
}

/* ============================================================================
   Fiche membre (mode edition). La V1 est une grille pixel a zones nommees : on
   ne la restructure pas, on l'habille proprement facon Twenty.
   ========================================================================== */
[data-ui-version="v2"] .v2-legacy .member-detail { max-width:1100px; }
[data-ui-version="v2"] .v2-legacy .member-detail > h3 { font-size:16px; font-weight:600; color:var(--fg);
  text-transform:uppercase; letter-spacing:.01em; margin:0 0 16px; }
[data-ui-version="v2"] .v2-legacy .member-detail > h3 small { font-weight:400; text-transform:none;
  color:var(--fg-3); font-size:12px; font-family:var(--mono-v2); }
[data-ui-version="v2"] .v2-legacy .member-edit-form { background:var(--bg); border:1px solid var(--border-light);
  border-radius:10px; box-shadow:var(--shadow-card); padding:18px 20px; overflow-x:auto; }
[data-ui-version="v2"] .v2-legacy .member-detail-grid > label,
[data-ui-version="v2"] .v2-legacy .member-detail label { color:var(--fg-2); font-size:12.5px; font-weight:500; }
[data-ui-version="v2"] .v2-legacy .member-static { font-size:13.5px; color:var(--fg); }
[data-ui-version="v2"] .v2-legacy .member-profile-copy { font-size:13.5px; color:var(--fg); font-weight:500; }
[data-ui-version="v2"] .v2-legacy .member-credit-line { display:flex; align-items:center; gap:8px; font-size:13px; }
[data-ui-version="v2"] .v2-legacy .member-credit-line span { color:var(--fg-3); }
[data-ui-version="v2"] .v2-legacy .member-credit-line strong { font-family:var(--mono-v2); color:var(--fg); }
/* Boite photo cote intervenant uniquement (carre avatar). La boite ADMIN
   (.admin-photo-box) garde son layout V1 : input fichier + petit avatar, sinon
   l'image recouvre le champ et empeche le changement de photo. */
[data-ui-version="v2"] .v2-legacy .member-photo-box:not(.admin-photo-box) { border:1px solid var(--border-med);
  border-radius:10px; overflow:hidden; background:var(--g3); }
[data-ui-version="v2"] .v2-legacy .member-photo-box:not(.admin-photo-box) img { width:100%; height:100%; object-fit:cover; }
[data-ui-version="v2"] .v2-legacy .admin-photo-box .admin-photo-input { font-size:12px; color:var(--fg-2); }
/* Barre d'historique -> pills Twenty avec compteur */
[data-ui-version="v2"] .v2-legacy .member-history-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  margin-top:18px; padding-top:16px; border-top:1px solid var(--border-light); }
[data-ui-version="v2"] .v2-legacy .member-history-actions > span { font-size:12px; font-weight:600; color:var(--fg-3);
  text-transform:uppercase; letter-spacing:.04em; margin-inline-end:4px; }
[data-ui-version="v2"] .v2-legacy .btn-history { display:inline-flex; align-items:center; gap:6px; height:30px;
  padding:0 12px; border:1px solid var(--border-med) !important; border-radius:6px; background:var(--bg) !important;
  color:var(--fg) !important; font-size:12.5px; font-weight:500; box-shadow:none !important; }
[data-ui-version="v2"] .v2-legacy .btn-history:hover { background:var(--g3) !important; }
[data-ui-version="v2"] .v2-legacy .badge-count { font-family:var(--mono-v2); font-size:10.5px; min-width:16px;
  height:16px; padding:0 4px; border-radius:999px; background:var(--sel); color:var(--accent); display:inline-grid;
  place-items:center; position:static !important; transform:none !important; margin-inline-start:2px; }
[data-ui-version="v2"] .v2-legacy .member-history-plus,
[data-ui-version="v2"] .v2-legacy .admin-member-dependent-plus { width:22px; height:22px; border-radius:6px;
  border:1px dashed var(--border-strong) !important; background:transparent !important; color:var(--accent) !important;
  display:inline-grid; place-items:center; font-size:13px; }
[data-ui-version="v2"] .v2-legacy .member-history-plus::before,
[data-ui-version="v2"] .v2-legacy .admin-member-dependent-plus::before { content:none !important; }
[data-ui-version="v2"] .v2-legacy .member-history-plus:hover,
[data-ui-version="v2"] .v2-legacy .admin-member-dependent-plus:hover { background:var(--sel) !important; border-style:solid !important; }
/* Actions bas de fiche */
[data-ui-version="v2"] .v2-legacy .member-detail-actions { display:flex; justify-content:flex-end; gap:8px;
  flex-wrap:wrap; margin-top:16px; }
[data-ui-version="v2"] .v2-legacy .rgpd-warning { margin-top:16px; border:1px solid var(--amber11); background:var(--amber3);
  color:var(--amber11); border-radius:8px; padding:10px 14px; font-size:11.5px; line-height:1.5; }

/* ============================================================================
   Fiche membre NATIVE V2 (cartes responsives, remplace la grille pixel V1).
   ========================================================================== */
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .member-edit-form { background:transparent; border:0;
  box-shadow:none; padding:0; overflow:visible; }
/* Colonnes egales (50/50) sur la fiche membre */
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .dgrid { grid-template-columns:1fr 1fr; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .detail-head h1 { font-size:18px; font-weight:600; margin:0; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .detail-head .meta { font-size:11.5px; color:var(--fg-3);
  font-family:var(--mono-v2); margin-top:2px; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 input:not([type=radio]):not([type=file]),
[data-ui-version="v2"] .v2-legacy .member-detail-v2 select,
[data-ui-version="v2"] .v2-legacy .member-detail-v2 textarea { width:100%; height:32px; padding:0 9px;
  border:1px solid var(--border-med); border-radius:4px; background:var(--bg); color:var(--fg); font-size:13.5px; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 textarea { height:auto; min-height:62px; padding:7px 9px; line-height:1.5; resize:vertical; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .v2-cpcity { display:flex; gap:8px; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .v2-cpcity .postcode-field { max-width:110px; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .v2-inline { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .v2-inline input[type=number] { max-width:90px; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .member-static { font-size:13.5px; color:var(--fg); }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .member-credit-line { display:flex; align-items:center; gap:6px; font-size:13px; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .member-credit-line span { color:var(--fg-3); }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .member-credit-line strong { font-family:var(--mono-v2); }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .reminder-field { display:flex; gap:14px; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .reminder-field label { display:flex; align-items:center; gap:5px; }
/* Boite photo admin : on la remet en flux normal (input + petit avatar empiles) */
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .member-photo-box { width:auto !important; height:auto !important;
  position:static !important; border:0; background:transparent; display:flex; flex-direction:column; gap:8px; align-items:flex-start; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .member-photo-box img { position:static !important; left:auto !important;
  top:auto !important; width:80px !important; height:80px !important; border-radius:10px; border:1px solid var(--border-med); object-fit:cover; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .admin-photo-box .admin-photo-input { position:static !important;
  width:auto !important; font-size:12px; }
/* Barre historique dans la carte */
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .member-history-actions { display:flex; align-items:center;
  gap:8px; flex-wrap:wrap; margin:0; padding:0; border:0; }
[data-ui-version="v2"] .v2-legacy .member-detail-v2 .rgpd { margin-top:16px; }

/* Impression : on masque le chrome V2 et on laisse le contenu se derouler sur
   toute la hauteur (sinon le shell 100vh + overflow couperait l'impression). */
@media print {
  [data-ui-version="v2"] .v2-side,
  [data-ui-version="v2"] .v2-topbar,
  [data-ui-version="v2"] .v2-scrim { display:none !important; }
  [data-ui-version="v2"] .v2-app { display:block; height:auto; overflow:visible; }
  [data-ui-version="v2"] .v2-main { display:block; height:auto; overflow:visible; }
  [data-ui-version="v2"] .v2-scroll { overflow:visible; height:auto; }
  [data-ui-version="v2"] .v2-legacy { padding:0; }
}

/* ============================================================================
   Couche de "reskin" pour le contenu V1 embarque dans le shell V2.
   Les vues encore rendues avec le markup V1 (classes .container, .table, .btn,
   .admin-*, etc.) sont enveloppees dans <div class="v2-legacy"> par shell() /
   adminShell(). On retheme ici les primitives communes avec les tokens Twenty
   pour une coherence visuelle, sans toucher au markup ni aux bindings.
   ========================================================================== */
[data-ui-version="v2"] .v2-logout { color:var(--red11) !important; }
[data-ui-version="v2"] .v2-logout:hover { background:var(--red3) !important; }
[data-ui-version="v2"] .v2-logout svg { color:var(--red11); }

[data-ui-version="v2"] .v2-legacy { padding:16px 18px 40px; color:var(--fg); }
[data-ui-version="v2"] .v2-legacy .container,
[data-ui-version="v2"] .v2-legacy .front { max-width:none; width:auto; margin:0; padding:0; }
[data-ui-version="v2"] .v2-legacy section + section { margin-top:16px; }

/* Titres */
[data-ui-version="v2"] .v2-legacy h1,
[data-ui-version="v2"] .v2-legacy h2,
[data-ui-version="v2"] .v2-legacy h3 { font-size:18px; font-weight:600; letter-spacing:-.01em; color:var(--fg);
  margin:0 0 14px; text-transform:uppercase; }
[data-ui-version="v2"] .v2-legacy h4,
[data-ui-version="v2"] .v2-legacy h5,
[data-ui-version="v2"] .v2-legacy h6 { font-size:13px; font-weight:600; color:var(--fg);
  text-transform:uppercase; letter-spacing:.03em; margin:0 0 8px; }
[data-ui-version="v2"] .v2-legacy .hello { font-size:13.5px; color:var(--fg-2); margin-bottom:12px; }

/* Cartes / blocs */
[data-ui-version="v2"] .v2-legacy .account-block,
[data-ui-version="v2"] .v2-legacy .admin-simple-page,
[data-ui-version="v2"] .v2-legacy .admin-dashboard-block,
[data-ui-version="v2"] .v2-legacy .admin-dashboard-source-page,
[data-ui-version="v2"] .v2-legacy .admin-parameters-page,
[data-ui-version="v2"] .v2-legacy .admin-members-page,
[data-ui-version="v2"] .v2-legacy .admin-booking-page,
[data-ui-version="v2"] .v2-legacy .admin-contributors-page,
[data-ui-version="v2"] .v2-legacy .admin-reference-page,
[data-ui-version="v2"] .v2-legacy .admin-crm-page,
[data-ui-version="v2"] .v2-legacy .booking-list,
[data-ui-version="v2"] .v2-legacy .booking-toolbar { background:var(--bg); border:1px solid var(--border-light);
  border-radius:8px; box-shadow:var(--shadow-card); padding:14px; margin-bottom:16px; }

/* Boutons (remappe la famille V1 vers Twenty) */
[data-ui-version="v2"] .v2-legacy .btn { display:inline-flex; align-items:center; gap:6px; height:32px; padding:0 12px;
  border-radius:4px; font-size:13.5px; font-weight:500; border:1px solid var(--border-strong);
  background:var(--bg); color:var(--fg); white-space:nowrap; box-shadow:none; }
[data-ui-version="v2"] .v2-legacy .btn:hover { background:var(--g3); }
[data-ui-version="v2"] .v2-legacy .btn-sm { height:26px; padding:0 9px; font-size:12.5px; }
[data-ui-version="v2"] .v2-legacy .btn-primary { background:var(--accent); color:#fff; border-color:var(--accent); }
[data-ui-version="v2"] .v2-legacy .btn-primary:hover { background:var(--accent-hover); border-color:var(--accent-hover); }
[data-ui-version="v2"] .v2-legacy .btn-danger,
[data-ui-version="v2"] .v2-legacy .btn--danger { background:transparent; color:var(--red11); border-color:var(--red5); }
[data-ui-version="v2"] .v2-legacy .btn-danger:hover { background:var(--red3); }
[data-ui-version="v2"] .v2-legacy .btn--color,
[data-ui-version="v2"] .v2-legacy .btn-color { background:var(--g12); color:var(--g1); border-color:var(--g12); }

/* Champs */
[data-ui-version="v2"] .v2-legacy input:not([type=radio]):not([type=checkbox]),
[data-ui-version="v2"] .v2-legacy select,
[data-ui-version="v2"] .v2-legacy textarea { height:32px; padding:0 9px; border:1px solid var(--border-med);
  border-radius:4px; background:var(--bg); color:var(--fg); font-size:13.5px; }
[data-ui-version="v2"] .v2-legacy textarea { height:auto; padding:7px 9px; min-height:54px; line-height:1.5; }
[data-ui-version="v2"] .v2-legacy input:focus,
[data-ui-version="v2"] .v2-legacy select:focus,
[data-ui-version="v2"] .v2-legacy textarea:focus { outline:0; border-color:var(--focus); box-shadow:0 0 0 3px var(--sel); }
[data-ui-version="v2"] .v2-legacy label { color:var(--fg-2); }

/* Tableaux */
[data-ui-version="v2"] .v2-legacy table { width:100%; border-collapse:collapse; font-size:13px; }
[data-ui-version="v2"] .v2-legacy table th { text-align:start; font-size:11.5px; font-weight:500; color:var(--fg-2);
  padding:9px 8px; border-bottom:1px solid var(--border-med); background:var(--surface); white-space:nowrap; }
[data-ui-version="v2"] .v2-legacy table td { padding:8px; border-bottom:1px solid var(--border-light); color:var(--fg); }
[data-ui-version="v2"] .v2-legacy table.table,
[data-ui-version="v2"] .v2-legacy .tbl-wrap,
[data-ui-version="v2"] .v2-legacy .table-wrap { border:1px solid var(--border-light); border-radius:8px; overflow:hidden; }

/* Les tableaux de config/admin doivent TENIR dans la largeur (pas de scroll a
   droite) : table-layout fixed + largeur 100% => les colonnes se repartissent
   dans le conteneur, le texte passe a la ligne. */
[data-ui-version="v2"] .v2-legacy .table-responsive { overflow-x:auto; max-width:100%; }
[data-ui-version="v2"] .v2-legacy table.table { width:100% !important; min-width:0 !important; table-layout:auto; }
[data-ui-version="v2"] .v2-legacy table.table th,
[data-ui-version="v2"] .v2-legacy table.table td { white-space:normal; overflow-wrap:break-word; }
[data-ui-version="v2"] .v2-legacy table.admin-reference-table th:first-child,
[data-ui-version="v2"] .v2-legacy table.admin-reference-table td:first-child { width:48px; }
[data-ui-version="v2"] .v2-legacy table.admin-reference-table .left { width:auto; }
/* En-tetes de config : titre + recherche + actions passent a la ligne, inputs souples */
[data-ui-version="v2"] .v2-legacy .admin-reference-header,
[data-ui-version="v2"] .v2-legacy .admin-simple-header { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; }
[data-ui-version="v2"] .v2-legacy .admin-reference-search { display:flex; flex-wrap:wrap; gap:8px; align-items:center;
  margin-inline-start:auto; }
[data-ui-version="v2"] .v2-legacy .admin-reference-search input,
[data-ui-version="v2"] .v2-legacy .admin-reference-actions input { max-width:200px; }
[data-ui-version="v2"] .v2-legacy .admin-reference-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
/* Tables data tres larges (booking) : defilement CONTENU dans leur carte, pas
   au niveau de la page. */
[data-ui-version="v2"] .v2-legacy .admin-booking-table-wrap { max-width:100% !important; overflow-x:auto !important;
  border:1px solid var(--border-light); border-radius:8px; }
[data-ui-version="v2"] .v2-legacy .admin-booking-table { table-layout:auto; min-width:0 !important; }
/* Lien d'edition (titre) bien identifiable comme cliquable */
[data-ui-version="v2"] .v2-legacy .admin-reference-link { background:transparent !important; border:0 !important;
  color:var(--link) !important; padding:0 !important; font-weight:500; text-align:start; cursor:pointer; }
[data-ui-version="v2"] .v2-legacy .admin-reference-link:hover { text-decoration:underline; }
/* Bouton "-" d'edition (services) -> icone crayon claire */
[data-ui-version="v2"] .v2-legacy .admin-reference-table tbody td:first-child .btn-outline-secondary {
  width:30px; height:28px; padding:0; font-size:0; display:inline-grid; place-items:center; }
[data-ui-version="v2"] .v2-legacy .admin-reference-table tbody td:first-child .btn-outline-secondary::before {
  content:"\270E"; font-size:14px; font-family:var(--font-v2); color:var(--fg-2); }

/* Barres de filtres */
[data-ui-version="v2"] .v2-legacy .filters,
[data-ui-version="v2"] .v2-legacy .admin-filters { display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  padding:9px 10px; background:var(--surface); border:1px solid var(--border-light); border-radius:8px; margin-bottom:12px; }

/* Liens / bandeaux d'avertissement */
[data-ui-version="v2"] .v2-legacy a { color:var(--link); }
[data-ui-version="v2"] .v2-legacy .admin-parameters-warning,
[data-ui-version="v2"] .v2-legacy .admin-source-blocked,
[data-ui-version="v2"] .v2-legacy .rgpd-warning { border:1px solid var(--amber11); background:var(--amber3);
  color:var(--amber11); border-radius:8px; padding:10px 14px; font-size:12px; }
[data-ui-version="v2"] .v2-legacy .form-errors label { color:var(--red11); }

/* Modale (reutilise le markup V1 .modal-backdrop / .modal) */
[data-ui-version="v2"] .modal-backdrop { background:rgba(0,0,0,.45); }
[data-ui-version="v2"] .modal { background:var(--bg); color:var(--fg); border:1px solid var(--border-light);
  border-radius:10px; box-shadow:var(--shadow-pop); }
[data-ui-version="v2"] .modal h3,
[data-ui-version="v2"] .modal h4 { color:var(--fg); }

/* ============================================================================
   Page de connexion V2 : on garde le fond (.login-page conserve l'image),
   carte Twenty claire, formulaire V1 (.login-form) rethematise.
   ========================================================================== */
[data-ui-version="v2"] .v2-login { min-height:100vh; display:grid; place-items:center; padding:48px 16px; }
[data-ui-version="v2"] .v2-login-card { position:relative; z-index:1; width:380px; max-width:100%;
  background:var(--bg); color:var(--fg); border:1px solid var(--border-light); border-radius:14px;
  box-shadow:var(--shadow-pop); padding:30px 28px 22px; display:flex; flex-direction:column; align-items:center; }
[data-ui-version="v2"] .v2-login-logo { display:grid; place-items:center; width:64px; height:64px; border-radius:16px;
  background:var(--bg); border:1px solid var(--border-light); box-shadow:var(--shadow-card); margin-top:-62px; margin-bottom:14px; overflow:hidden; }
[data-ui-version="v2"] .v2-login-logo img { width:46px; height:46px; object-fit:contain; }
[data-ui-version="v2"] .v2-login-title { font-size:20px; font-weight:600; letter-spacing:-.01em; color:var(--fg); text-align:center; }
[data-ui-version="v2"] .v2-login-sub { font-size:13px; color:var(--fg-3); margin:4px 0 18px; text-align:center; }

/* Formulaire reutilise (.login-form / .input-group / .login_btn) */
[data-ui-version="v2"] .v2-login .login-form { width:100%; display:flex; flex-direction:column; gap:4px; }
[data-ui-version="v2"] .v2-login .intro { font-size:12.5px; color:var(--fg-3); margin-bottom:8px; text-align:center; }
[data-ui-version="v2"] .v2-login .input-group { display:flex; align-items:center; gap:8px; height:40px; padding:0 12px;
  border:1px solid var(--border-med); border-radius:8px; background:var(--bg); margin-bottom:4px; }
[data-ui-version="v2"] .v2-login .input-group:focus-within { border-color:var(--focus); box-shadow:0 0 0 3px var(--sel); }
[data-ui-version="v2"] .v2-login .input-group .bi { color:var(--fg-light); font-size:15px; }
[data-ui-version="v2"] .v2-login .v2-field-ic { width:18px; height:18px; display:grid; place-items:center; color:var(--fg-light); flex:0 0 18px; }
[data-ui-version="v2"] .v2-login .v2-field-ic .v2-ic { width:17px; height:17px; stroke-width:1.9; }
[data-ui-version="v2"] .v2-login .input-group input { flex:1; border:0; outline:0; background:transparent; height:100%;
  color:var(--fg); font-size:14px; }
[data-ui-version="v2"] .v2-login .field-icon { width:28px; height:28px; display:grid; place-items:center; border:0;
  border-radius:6px; background:transparent; color:var(--fg-light); cursor:pointer; flex:0 0 28px; padding:0; }
[data-ui-version="v2"] .v2-login .field-icon:hover { background:var(--g3); color:var(--fg-2); }
[data-ui-version="v2"] .v2-login .field-icon .v2-ic { width:18px; height:18px; stroke-width:1.8; }
[data-ui-version="v2"] .v2-login .field-error { font-size:11.5px; color:var(--red11); min-height:0; padding-inline-start:2px; }
[data-ui-version="v2"] .v2-login .form-errors { font-size:12px; color:var(--red11); text-align:center; min-height:0; }
[data-ui-version="v2"] .v2-login .form-errors label { color:var(--red11); }
[data-ui-version="v2"] .v2-login .recover-feedback { font-size:12px; line-height:1.35; text-align:center; }
[data-ui-version="v2"] .v2-login .recover-feedback--success { padding:10px 12px; border:1px solid rgba(31,111,74,.22);
  border-radius:8px; background:rgba(31,111,74,.08); }
[data-ui-version="v2"] .v2-login .recover-feedback strong { color:#1f6f4a; font-weight:700; }
[data-ui-version="v2"] .v2-login .recover-feedback span { color:var(--fg-2); }
[data-ui-version="v2"] .v2-login .recover-feedback small { color:var(--fg-3); }
[data-ui-version="v2"] .v2-login .login_btn { margin-top:10px; height:40px; width:100%; border:0; border-radius:8px;
  background:var(--accent); color:#fff; font-size:14px; font-weight:600; cursor:pointer; }
[data-ui-version="v2"] .v2-login .login_btn:hover { background:var(--accent-hover); }
[data-ui-version="v2"] .v2-login .login_btn[disabled] { opacity:.82; cursor:default; color:#fff !important; background:var(--accent-hover); }

[data-ui-version="v2"] .v2-login-links { display:flex; justify-content:space-between; width:100%; gap:10px; margin-top:14px; }
[data-ui-version="v2"] .v2-login-link { border:0; background:transparent; color:var(--link); font-size:12.5px;
  font-weight:500; cursor:pointer; text-decoration:none; padding:0; }
[data-ui-version="v2"] .v2-login-link:hover { text-decoration:underline; }
[data-ui-version="v2"] .v2-login-foot { margin-top:16px; font-size:11.5px; color:var(--fg-3); text-align:center; }
[data-ui-version="v2"] .v2-login-foot a { color:var(--link); }
