/* =====================================================================
   Batcave · interface claire façon Things (bêta, html.v3)
   Mode sombre : classe html.dark posée par shell.js (réglage de l'appareil, ou choix forcé en cliquant sur le M 3D,
   localStorage bc-theme). Ne fait que redéfinir : sans la classe v3, rien ne change.
   ===================================================================== */
html.v3{
  color-scheme:light;
  --bg:#ffffff;
  --sidebar:#f5f5f3;
  --surface:#ffffff;
  --surface-2:#f4f4f2;
  --surface-3:#e9e9e6;
  --border:rgba(24,24,16,.13);
  --border-soft:rgba(24,24,16,.075);
  --khaki:#76766f;
  --khaki-light:#5d5d58;
  --cream:#1d1d1b;
  --lime:#357d09;
  --lime-soft:#3f8f0c;
  --lime-tint:rgba(53,125,9,.1);
  --brand:#92ed11;
  --amber:#a86200;
  --coral:#c9372f;
  --radius:10px;
  --radius-lg:14px;
  --shadow-card:0 1px 2px rgba(20,20,10,.04),0 4px 14px -10px rgba(20,20,10,.14);
  --inset-soft:#f6f6f4;
  --inset:#f4f4f2;
  --inset-strong:#f1f1ee;
  --bar-bg:#ffffff;
  --scrim:rgba(30,30,25,.28);
  /* teintes en composantes (rgba(var(--lime-rgb),a) dans shell.css / plan.css) */
  --lime-rgb:53,125,9;
  --amber-rgb:168,98,0;
  --coral-rgb:201,55,47;
  --khaki-rgb:110,110,100;
  --cream-rgb:29,29,27;
  --sage-rgb:110,110,100;
  --violet:#9a7cf4;
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI","Inter",system-ui,sans-serif;
}

  html.v3.dark{
    color-scheme:dark;
    --bg:#1c1c1e;
    --sidebar:#232325;
    --surface:#242427;
    --surface-2:#2b2b2e;
    --surface-3:#353538;
    --border:rgba(255,255,255,.13);
    --border-soft:rgba(255,255,255,.075);
    --khaki:#8e8e93;
    --khaki-light:#b7b7bc;
    --cream:#f2f2f4;
    --lime:#9fe628;
    --lime-soft:#b2ee4f;
    --lime-tint:rgba(159,230,40,.14);
    --amber:#f0b13c;
    --coral:#ff6b5e;
    --shadow-card:0 1px 2px rgba(0,0,0,.25),0 4px 14px -10px rgba(0,0,0,.45);
    --inset-soft:#29292c;
    --inset:#2b2b2e;
    --inset-strong:#2e2e31;
    --bar-bg:#1c1c1e;
    --scrim:rgba(0,0,0,.45);
    --lime-rgb:159,230,40;
    --amber-rgb:240,177,60;
    --coral-rgb:255,107,94;
    --khaki-rgb:142,142,147;
    --cream-rgb:242,242,244;
    --sage-rgb:200,200,205;
    --violet:#b9a2ff;
  }

html.v3 body{font-family:var(--font);font-size:14.5px;letter-spacing:-.003em;background:var(--bg);color:var(--cream)}
html.v3 ::selection{background:rgba(59,138,10,.2)}
html.v3 :focus-visible{box-shadow:0 0 0 3px rgba(59,130,246,.35)}
html.v3 .ico{filter:grayscale(1) opacity(.75)}
html.v3 .field input[type=date],html.v3 .qmenu-date{color-scheme:inherit}

/* ---------- barre latérale ---------- */
html.v3 .sb{background:var(--sidebar);border-right:1px solid var(--border-soft);padding:16px 10px 12px}
html.v3 .sb-brand img{filter:none}
html.v3 .sb-brand b{font-family:var(--font);font-size:14px;font-weight:700;letter-spacing:-.01em;text-transform:none;color:var(--cream)}
html.v3 .sb-brand b span{color:var(--cream)}
html.v3 .sb-search{background:var(--surface);border-color:var(--border-soft);box-shadow:0 1px 1px rgba(0,0,0,.03);border-radius:8px}
html.v3 .sb-link{font-size:14px;font-weight:500;color:var(--cream);padding:6px 10px;border-radius:7px}
html.v3 .sb-link:hover{background:rgba(24,24,16,.05)}
html.v3 .sb-link.is-active{background:rgba(24,24,16,.085);color:var(--cream);font-weight:600}
html.v3 .sb-link .i,html.v3 .sb-link.is-active .i{color:var(--ic,var(--khaki))}
html.v3 .sb-group[data-key=home]{--ic:#f2a900}
html.v3 .sb-group[data-key=projets]{--ic:#2f7cf6}
html.v3 .sb-group[data-key=commercial]{--ic:#1f9d63}
html.v3 .sb-group[data-key=traffic]{--ic:#e5484d}
html.v3 .sb-group[data-key=data]{--ic:#7c7c84}
html.v3 .sb-group[data-key=gear]{--ic:#f07a16}
html.v3 .sb-group[data-key=point]{--ic:#8b5cf6}
html.v3 .sb-group[data-key=team]{--ic:#13a89e}
html.v3 .sb-sub{border-left-color:var(--border-soft)}
html.v3 .sb-sub a{color:var(--khaki-light);font-size:13.5px}
html.v3 .sb-sub a:hover{background:rgba(24,24,16,.05);color:var(--cream)}
html.v3 .sb-sub a.is-active{color:var(--cream);font-weight:600;background:rgba(24,24,16,.06)}
html.v3 .sb-label{letter-spacing:.06em;font-size:11px;color:var(--khaki)}
html.v3 .sb-caret:hover{background:rgba(24,24,16,.07)}
html.v3 .sb-who{background:var(--surface);border-color:var(--border-soft)}
html.v3 .sb-who i{background:var(--cream);color:var(--bg)}
html.v3 .mode{color:var(--khaki);letter-spacing:.04em}
html.v3 .mode.is-shared .mode-dot{background:#34c759}

  html.v3.dark .sb-link:hover,html.v3.dark .sb-sub a:hover,html.v3.dark .sb-caret:hover{background:rgba(255,255,255,.06)}
  html.v3.dark .sb-link.is-active{background:rgba(255,255,255,.1)}
  html.v3.dark .sb-sub a.is-active{background:rgba(255,255,255,.07)}

html.v3 .mb-top,html.v3 .mb-tabs{background:var(--bar-bg)}
html.v3 .mb-tabs .is-active{color:var(--lime)}
html.v3 .mb-top .sb-brand b{font-size:15px}

/* ---------- en-têtes de page ---------- */
html.v3 .top{padding-top:clamp(22px,4vw,44px)}
html.v3 .app-title,html.v3 .app-title.is-long{font-family:var(--font);font-size:clamp(26px,3.2vw,30px);font-weight:700;letter-spacing:-.02em;text-transform:none;line-height:1.15;margin-top:0;color:var(--cream)}
html.v3 .app-title .accent{color:inherit}
html.v3 .app-title .v3-ico{display:inline-flex;vertical-align:-3px;margin-right:10px;color:var(--ic,var(--khaki))}
html.v3 .app-title .v3-ico .i{width:26px;height:26px;stroke-width:1.9}
html.v3 .app-sub{font-size:14px;color:var(--khaki);margin-top:6px}
html.v3 .stats{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:12px}
html.v3 .stat{background:none;border:0;box-shadow:none;padding:0;flex-direction:row;align-items:baseline;gap:6px;border-radius:0}
html.v3 .stat b{font-size:15px;font-weight:700;color:var(--cream)}
html.v3 .stat span{font-size:14px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--khaki-light)}
html.v3 .stat.s-late b,html.v3 .stat.s-out b{color:var(--coral)}
html.v3 .stat.is-zero b,html.v3 .stat.s-late.is-zero b{color:var(--khaki)}
html.v3 .stat.s-ok b,html.v3 .stat.s-live b,html.v3 .stat.s-month b,html.v3 .stat.s-week b{color:var(--lime)}

/* ---------- onglets, filtres, boutons, champs ---------- */
html.v3 .tabs-shell{background:var(--bg);border-bottom:1px solid var(--border-soft);margin-top:18px}
html.v3 .tabs{gap:0;padding:0;position:relative}
/* trait sous l'onglet actif, posé par tabInk (shell.js) et animé d'un onglet à l'autre */
html.v3 .tabs:has(.tab-ink) .tab.is-active{box-shadow:none}
html.v3 .tab-ink{position:absolute;left:0;bottom:0;height:2px;border-radius:2px;background:var(--cream);pointer-events:none}
html.v3 .tab-ink.is-moving{transition:transform .34s var(--ease),width .34s var(--ease)}
/* appui : léger enfoncement des boutons et des lignes, comme une touche */
html.v3 :is(.btn-mini,.btn-ghost,.btn-add,.btn-primary,.chip,.fbtn,.seg,.prs,.qedit,.sb-link,.mb-tabs a,.mb-tabs button):active{transform:scale(.96)}
html.v3 :is(.lrow,.item,.ptile,.vrow,.db-row,.tday-list li,.bt-todo a,.bt-card):active{transform:scale(.992)}
html.v3 .tab{padding:11px 0;margin-right:22px;border-radius:0;background:none;font-size:14px;font-weight:500;color:var(--khaki-light);box-shadow:none}
html.v3 .tab:hover{background:none;color:var(--cream)}
html.v3 .tab.is-active{background:none;color:var(--cream);font-weight:600;box-shadow:inset 0 -2px 0 var(--cream)}
html.v3 .tab-badge{background:var(--surface-3);color:var(--khaki-light);font-weight:700}
html.v3 .tab-badge.is-late{background:var(--coral);color:#fff}
html.v3 .search{background:var(--surface-2);border:1px solid transparent;border-radius:8px;padding:9px 12px;color:var(--cream)}
html.v3 .search:focus{background:var(--surface);border-color:var(--border);box-shadow:0 0 0 3px rgba(59,130,246,.18)}
html.v3 .chip{background:none;border:1px solid transparent;border-radius:7px;padding:5px 9px;font-weight:500;font-size:13px;color:var(--khaki-light)}
html.v3 .chip:hover{background:var(--surface-2);color:var(--cream);border-color:transparent}
html.v3 .chip.is-active{background:var(--surface-3);color:var(--cream);border-color:transparent;font-weight:600}
html.v3 .chip small{opacity:.55}
html.v3 .chips-label{color:var(--khaki);font-size:10.5px}
html.v3 .btn-primary,html.v3 .btn-add{background:var(--lime);color:#fff;box-shadow:none;border-radius:8px;font-weight:600}
html.v3 .btn-primary:hover,html.v3 .btn-add:hover{background:var(--lime-soft);box-shadow:none}
html.v3.dark .btn-primary,html.v3.dark .btn-add{color:#141414}
html.v3 .btn-add{padding:0 14px;font-size:14px}
html.v3 .btn-ghost{border:1px solid var(--border);color:var(--cream);background:var(--surface);border-radius:8px;font-weight:500}
html.v3 .btn-ghost:hover{background:var(--surface-2);border-color:var(--border)}
html.v3 .btn-mini{border:1px solid var(--border);color:var(--khaki-light);background:var(--surface);border-radius:7px;font-weight:500}
html.v3 .btn-mini:hover{color:var(--cream);border-color:var(--border);background:var(--surface-2)}
html.v3 .btn-mini.is-go{color:var(--lime);border-color:rgba(59,138,10,.35)}
html.v3 .btn-mini.is-danger:hover,html.v3 .btn-mini.is-armed{color:var(--coral);border-color:rgba(212,66,58,.4)}
html.v3 .icon-btn{border-color:var(--border-soft);color:var(--khaki-light)}
html.v3 .icon-btn:hover{color:var(--cream);border-color:var(--border)}
html.v3 .field span{color:var(--khaki-light);font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none}
html.v3 .field input,html.v3 .field select,html.v3 .field textarea,html.v3 .gate-input{background-color:var(--surface);border:1px solid var(--border);color:var(--cream);border-radius:8px}
html.v3 .field input:focus,html.v3 .field select:focus,html.v3 .field textarea:focus{border-color:rgba(59,130,246,.55);box-shadow:0 0 0 3px rgba(59,130,246,.15)}
html.v3 .field input::placeholder,html.v3 .field textarea::placeholder,html.v3 .search::placeholder{color:var(--khaki)}
html.v3 .field select{background-image:linear-gradient(45deg,transparent 50%,var(--khaki) 50%),linear-gradient(135deg,var(--khaki) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}
html.v3 .section-label{color:var(--khaki);letter-spacing:.06em;font-size:11px;font-weight:600}
html.v3 .hint{color:var(--khaki)}
html.v3 .empty{border:0;background:var(--surface-2);color:var(--khaki-light);border-radius:12px}
html.v3 .pill{background:none}
html.v3 .pill-ok{color:var(--lime);border-color:rgba(59,138,10,.35)}
html.v3 .pill-out{color:var(--amber);border-color:rgba(185,111,0,.35)}
html.v3 .pill-late{color:var(--coral);border-color:rgba(212,66,58,.35)}
html.v3 .stage{font-weight:600;letter-spacing:0;text-transform:none}

/* ---------- listes façon Things : des lignes, pas des cartes ---------- */
html.v3 .items,html.v3 .log,html.v3 .dues,html.v3 .vlist{gap:0}
html.v3 .item,html.v3 .log li,html.v3 .due,html.v3 .vrow{background:none;border:0;border-bottom:1px solid var(--border-soft);border-radius:0;box-shadow:none;padding:11px 8px}
html.v3 .item:hover,html.v3 .due:hover,html.v3 .vrow:hover{background:var(--surface-2);border-color:var(--border-soft);border-radius:8px}
html.v3 .item.is-late,html.v3 .due.is-late,html.v3 .due.is-soon{border-color:var(--border-soft)}
html.v3 .item-name{font-size:14.5px;font-weight:500}
html.v3 .item-meta,html.v3 .log-items{color:var(--khaki)}
html.v3 .item.is-sel{background:var(--lime-tint);border-radius:8px}
html.v3 .log-text b{color:var(--cream)}
html.v3 .log-ico{border-radius:50%;width:26px;height:26px;font-size:12px}

/* cartes conservées (vignettes, colonnes, sections) : blanches, bord fin, ombre légère */
html.v3 .ptile,html.v3 .kcard,html.v3 .tday,html.v3 .rg-card,html.v3 .loan,html.v3 .tile,html.v3 .disk,html.v3 .gm-card{background:var(--surface);border:1px solid var(--border-soft);box-shadow:var(--shadow-card);border-radius:12px}
html.v3 .ptile:hover,html.v3 .kcard:hover{border-color:var(--border)}
html.v3 .kcol{background:var(--surface-2);border:0;border-radius:12px}
html.v3 .db-table{background:var(--surface);border-color:var(--border-soft);box-shadow:none}
html.v3 .db-row:not(.db-head):hover{background:var(--surface-2)}

/* ---------- fiches (panneau) ---------- */
@media(min-width:900px){html.v3 .sheet{border-left:1px solid var(--border-soft);box-shadow:-20px 0 50px -30px rgba(20,20,10,.35)}}
html.v3 .sheet-title{font-family:var(--font);font-weight:700;letter-spacing:-.015em}
html.v3 .sheet-x:hover{background:var(--surface-2)}
html.v3 .sheet-actions{background:var(--surface)}
html.v3 .is-opened{box-shadow:inset 0 0 0 1.5px rgba(59,130,246,.55) !important;border-radius:8px}

/* ---------- recherche, menus, toasts ---------- */
html.v3 .pal,html.v3 .qmenu{background:var(--surface);border-color:var(--border-soft);box-shadow:0 24px 60px -18px rgba(20,20,10,.35),0 0 0 1px var(--border-soft)}
html.v3 .pal-row.is-sel,html.v3 .qmenu-item:hover,html.v3 .qmenu-item:focus{background:rgba(59,130,246,.12)}
html.v3 .pal-row.is-sel .i{color:#2f7cf6}
html.v3 .qmenu-check{color:#2f7cf6}
html.v3 .toast{background:var(--cream);color:var(--bg);font-weight:600;box-shadow:0 12px 30px -10px rgba(0,0,0,.35)}
html.v3 kbd{background:var(--surface-2);border-color:var(--border-soft)}

/* ---------- cases à cocher façon Things (missions) ---------- */
.v3-check,.v3-pie{display:none}
html.v3 .v3-check{display:inline-flex;flex:0 0 auto;width:20px;height:20px;margin:1px 2px 0 0;border-radius:50%;border:1.6px solid var(--khaki);align-items:center;justify-content:center;color:transparent;transition:background .18s ease,border-color .18s ease,transform .12s ease}
html.v3 .v3-check:hover{border-color:var(--lime)}
html.v3 .v3-check:active{transform:scale(.88)}
html.v3 .v3-check .i{width:13px;height:13px;stroke-width:3}
html.v3 .v3-check.st-doing{border-color:var(--lime);background:conic-gradient(var(--lime-tint) 0 50%,transparent 50% 100%)}
html.v3 .v3-check.st-done,html.v3 .v3-check.is-checking{background:var(--lime);border-color:var(--lime);color:#fff}
html.v3 .v3-check.is-checking{animation:v3-pop .3s var(--ease)}
@keyframes v3-pop{0%{transform:scale(.7)}60%{transform:scale(1.15)}100%{transform:scale(1)}}
html.v3 .item.mission.is-checking{opacity:.45;transition:opacity .3s ease .15s}
html.v3 .item.mission .item-ico,html.v3 .item.mission > .pill{display:none}
html.v3 .item.mission{align-items:flex-start}
html.v3 .item.mission.is-inactive .item-name{text-decoration:line-through;color:var(--khaki)}
/* jauge d'avancement des projets */
html.v3 .v3-pie{display:inline-block;flex:0 0 auto;width:18px;height:18px;border-radius:50%;border:1.6px solid var(--ic,#2f7cf6);background:conic-gradient(var(--ic,#2f7cf6) calc(var(--p,0) * 1turn),transparent 0);box-shadow:inset 0 0 0 2px var(--surface)}
html.v3 .ptile .pavatar{display:none}
/* vignettes clients : la ligne de l'étiquette (Agence, Annonceur…) existe sur toutes, les noms restent alignés */
html.v3 .ctile .ptile-head{min-height:22px;justify-content:flex-end}
html.v3 .ptile-head{align-items:center}

/* ---------- bouton + (ajout rapide) ---------- */
.fab{display:none}
html.v3 .fab{display:flex;position:fixed;right:24px;bottom:24px;z-index:36;width:46px;height:46px;border-radius:50%;align-items:center;justify-content:center;background:var(--brand,#92ed11);color:#1d1d1b;box-shadow:0 8px 22px -6px rgba(110,190,10,.65);transition:transform .15s var(--ease),box-shadow .15s ease}
html.v3 .fab:hover{transform:scale(1.06)}
html.v3 .fab:active{transform:scale(.95)}
html.v3 .fab .i{width:22px;height:22px;stroke-width:2.2}
@media(max-width:899px){html.v3 .fab{bottom:calc(76px + env(safe-area-inset-bottom));right:16px}}
html.v3.is-gate .fab,html.v3 body.is-gate .fab{display:none}
@media(min-width:900px){html.v3 body.has-panel .fab{right:calc(min(var(--panel-w),calc(100vw - var(--sb-w) - 48px)) + 24px)}}

/* =====================================================================
   Finition des pages : contrastes, casse normale, barres d'outils sur une ligne,
   moins de cadres. Toujours sous html.v3 : l'interface classique ne bouge pas.
   ===================================================================== */

/* ---------- texte : plus de capitales espacées sur les titres, noms, dates et étiquettes ---------- */
html.v3 .plan-title,html.v3 .gate-title,html.v3 .brief-name,html.v3 .tile-title,html.v3 .gm-head h2,html.v3 .disk-type,html.v3 .disk-head h3,html.v3 .recup-head h3,html.v3 .loan-title,html.v3 .kcard h4,html.v3 .ptile-name,html.v3 .sheet-title{font-family:var(--font);text-transform:none;letter-spacing:-.01em}
html.v3 .plan-title{font-size:clamp(26px,3.2vw,30px);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin-top:8px}
html.v3 .plan-back{color:var(--khaki-light);font-weight:500}
html.v3 .gm-head h2{font-size:16px;font-weight:700}
html.v3 .disk-type{font-size:19px;font-weight:700}
html.v3 .disk-head h3,html.v3 .recup-head h3{font-size:15px;font-weight:700}
html.v3 .loan-title{font-size:17px;font-weight:700}
html.v3 .log-date{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;margin-top:3px}
html.v3 .tday-head b{font-size:13px;font-weight:700;letter-spacing:0;text-transform:none}
html.v3 .due-day span,html.v3 .fiche-histo .h-date{letter-spacing:0;text-transform:none;font-weight:600}
html.v3 .fiche-cell span{font-size:11.5px;font-weight:600;letter-spacing:0;text-transform:none}
html.v3 .srow-h small{font-size:11.5px;font-weight:500;letter-spacing:0;text-transform:none}
html.v3 .tl-name span,html.v3 .tl-load{font-size:11px;font-weight:500;letter-spacing:0;text-transform:none}
html.v3 .tl-load{font-weight:600}
html.v3 .g-label span em{font-size:11px;font-weight:600;letter-spacing:0;text-transform:none}
html.v3 .legend{font-size:12px;font-weight:500;letter-spacing:0;text-transform:none}
html.v3 .dl-foot small,html.v3 .sheet-progress small{font-size:12px;font-weight:600;letter-spacing:0;text-transform:none}
html.v3 .done-fold summary{font-size:13px;font-weight:600;letter-spacing:0;text-transform:none}
html.v3 .kv dt{font-size:12px;font-weight:600;letter-spacing:0;text-transform:none}
html.v3 .vrow-top b{font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--khaki-light)}
html.v3 .prf-facts p b{font-size:12px;font-weight:600;letter-spacing:0;text-transform:none}
html.v3 .plan-tile .pt-client{font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none}
html.v3 .chips-label,html.v3 .group-by span{font-size:12.5px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--khaki);margin-right:2px}
html.v3 .ico-pick .ico-auto{letter-spacing:0;text-transform:none}
html.v3 .fb-src{letter-spacing:.02em;text-transform:none;font-size:10.5px;font-weight:700}
html.v3 .section-label small{font-size:12px;font-weight:500;letter-spacing:0}

/* ---------- contrastes ---------- */
html.v3 .chip small{opacity:1;color:var(--khaki);font-weight:500}
html.v3 .chip.is-active small{color:var(--khaki-light)}
html.v3 .sb-search kbd,html.v3 kbd{color:var(--khaki-light)}
html.v3 .bar.s-done{opacity:.55}
html.v3 .tday.is-future{opacity:.6}
html.v3 .disk.is-broken,html.v3 .recup-row.is-taken{opacity:.7}
html.v3.dark .tab-badge.is-late{background:#e5484d}

/* ---------- emoji en couleur, sur une pastille claire (fini le gris délavé) ---------- */
html.v3 .ico{filter:none}
html.v3 .item-ico{width:32px;height:32px;border-radius:8px;background:var(--surface-2);font-size:17px}
html.v3 .fiche-ico{background:var(--surface-2);border-radius:12px}

/* ---------- étiquettes : teinte douce, sans contour ---------- */
html.v3 .pill,html.v3 .stage,html.v3 .ds,html.v3 .prs,html.v3 .vtag{border-color:transparent;background:var(--surface-2);color:var(--khaki-light);font-weight:600;padding:3px 8px;border-radius:6px}
html.v3 .pill-ok,html.v3 .stage.st-live,html.v3 .ds-prog,html.v3 .prs-won,html.v3 .vtag.v-video,html.v3 .pill-done{background:rgba(var(--lime-rgb),.11);color:var(--lime)}
html.v3 .pill-out,html.v3 .stage.st-billing,html.v3 .ds-sort,html.v3 .prs-contacted,html.v3 .prs-meeting,html.v3 .prs-proposal,html.v3 .vtag.v-crea,html.v3 .pill-doing,html.v3 .pill-week{background:rgba(var(--amber-rgb),.12);color:var(--amber)}
html.v3 .pill-late,html.v3 .stage.st-alert,html.v3 .ds-del{background:rgba(var(--coral-rgb),.1);color:var(--coral)}
html.v3 .stage.st-pipeline{background:var(--surface-3);color:var(--cream)}
html.v3 .stage.st-closed,html.v3 .ds-ok,html.v3 .pill-off{background:none;color:var(--khaki)}
html.v3 .pill-today{background:var(--cream);color:var(--bg)}
html.v3 .tag-loc{background:rgba(var(--amber-rgb),.14);color:var(--amber);letter-spacing:.04em;font-size:9.5px;font-weight:800}

/* ---------- boutons : plus discrets, même hauteur que la recherche ---------- */
html.v3 .btn-add{min-height:38px;padding:0 14px;font-size:13.5px}
html.v3 .search{padding:8px 12px;font-size:14px;min-height:38px}
html.v3 .btn-primary{padding:10px 16px;font-size:14px}
html.v3 .icon-btn{border-color:transparent;border-radius:8px}
html.v3 .icon-btn:hover{background:var(--surface-2);border-color:transparent;color:var(--cream)}
html.v3 .btn-mini.is-go{background:rgba(var(--lime-rgb),.08);border-color:transparent}
html.v3 .btn-mini.is-go:hover{background:rgba(var(--lime-rgb),.14);color:var(--lime)}
/* boutons secondaires en série (pied de sortie, disques, temps, récup) : texte sur fond gris clair, sans contour */
html.v3 .loan-foot-left .btn-mini,html.v3 .li-btns .btn-mini,html.v3 .disk-foot .btn-mini,html.v3 .tday-foot .btn-mini,html.v3 .recup-row .btn-mini,html.v3 .vrow-actions .btn-mini,html.v3 .plan-tools .btn-mini{border-color:transparent;background:var(--surface-2);color:var(--khaki-light)}
html.v3 .loan-foot-left .btn-mini:hover,html.v3 .li-btns .btn-mini:hover,html.v3 .disk-foot .btn-mini:hover,html.v3 .tday-foot .btn-mini:hover,html.v3 .recup-row .btn-mini:hover,html.v3 .vrow-actions .btn-mini:hover,html.v3 .plan-tools .btn-mini:hover{background:var(--surface-3);color:var(--cream)}
html.v3 .vrow-actions .btn-mini.is-go{color:var(--lime);background:rgba(var(--lime-rgb),.08)}
html.v3 .tday-foot .btn-mini.is-go{color:var(--lime);background:rgba(var(--lime-rgb),.1);font-weight:600}

/* ---------- barres d'outils : filtres et réglages d'affichage sur une ligne ---------- */
html.v3 .controls{gap:10px;margin-bottom:20px}
html.v3 .seg{padding:5px 10px;border:0;border-radius:7px;font-size:13px;font-weight:500;color:var(--khaki-light)}
html.v3 .seg:hover{background:var(--surface-2);color:var(--cream)}
html.v3 .seg.is-active{background:var(--surface-3);color:var(--cream);font-weight:600;border:0}
html.v3 .seg small{color:var(--khaki);font-weight:500}
html.v3 .seg.is-active small{color:var(--khaki-light)}
/* choix de vue (Vignettes / Colonnes, onglets de la veille) : contrôle segmenté façon macOS */
html.v3 .view-bar{gap:8px 12px;justify-content:flex-start}
html.v3 .view-bar .group-by{background:var(--surface-2);border-radius:9px;padding:2px;gap:2px;flex-wrap:nowrap}
html.v3 .view-bar .group-by > span{display:none}
html.v3 .view-bar .seg{padding:4px 11px;border-radius:7px}
html.v3 .view-bar .seg:hover{background:var(--surface-3)}
html.v3 .view-bar .seg.is-active{background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.08),0 0 0 .5px rgba(0,0,0,.06)}
html.v3.dark .view-bar .seg.is-active{background:var(--surface-3);box-shadow:none}
html.v3 .view-bar > .chip-toggle:first-of-type{margin-left:auto}
@media(min-width:700px){
  html.v3 .controls{flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 18px}
  html.v3 .controls > *{flex:1 1 100%;min-width:0}
  html.v3 .controls > .chips,html.v3 .controls > .group-by{flex:0 1 auto}
  html.v3 .controls > .chips-sub:has(> .spacer){flex:1 1 auto}
  /* Projets : la vue (Vignettes / Colonnes, Les miens) rejoint la ligne de recherche, avant « + Projet » ;
     dessous, le statut à gauche et le regroupement à droite */
  html.v3 .controls:has(#psearch):has(> .view-bar) > .controls-row{display:contents}
  html.v3 .controls:has(#psearch):has(> .view-bar) .search{order:1;flex:1 1 240px}
  html.v3 .controls:has(#psearch):has(> .view-bar) > .view-bar{order:2;flex:0 0 auto}
  html.v3 .controls:has(#psearch):has(> .view-bar) .btn-add{order:3}
  html.v3 .controls:has(#psearch):has(> .view-bar) > .chips{order:4}
  html.v3 .controls:has(#psearch):has(> .view-bar) > .group-by{order:5;margin-left:auto}
  html.v3 .controls > .reorder-hint{order:9}
  /* Database : import / export rejoignent la ligne de recherche, avant « + Contact » */
}
@media(max-width:699px){
  html.v3 .view-bar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  html.v3 .view-bar::-webkit-scrollbar{display:none}
  html.v3 .group-by{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  html.v3 .group-by > *{flex:0 0 auto}
}

/* ---------- en-têtes de section dans les listes (Projets, Prospects) : un titre, un filet ---------- */
html.v3 .proj-section{margin:28px 0 10px;padding:0 2px 7px;border-bottom:1px solid var(--border-soft);align-items:center;letter-spacing:0;text-transform:none}
html.v3 .proj-section:first-of-type,html.v3 #project-list > .hint + .proj-section{margin-top:6px}
html.v3 .proj-section > span{font-size:14.5px;font-weight:700;letter-spacing:-.005em;text-transform:none;color:var(--cream)}
html.v3 .proj-section .stage{background:none;padding:0;font-size:14.5px;font-weight:700;color:var(--cream);display:inline-flex;align-items:center;gap:8px}
html.v3 .proj-section .stage::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--khaki)}
html.v3 .proj-section .stage.st-live::before{background:var(--lime)}
html.v3 .proj-section .stage.st-billing::before{background:var(--amber)}
html.v3 .proj-section .stage.st-alert::before{background:var(--coral)}
html.v3 .proj-section .stage.st-pipeline::before{background:#2f7cf6}
html.v3 .proj-section small{font-size:12.5px;font-weight:500;color:var(--khaki)}

/* ---------- accueil ---------- */
@media(hover:hover) and (min-width:900px){
  /* poignée de déplacement : dans la marge, visible au survol de la case */
}

/* ---------- Projets : vignettes ---------- */
html.v3 .ptile{gap:5px;padding:13px 14px 12px}
html.v3 .ptile:hover{transform:none;border-color:var(--border)}
html.v3 .ptile-name{font-size:14.5px;font-weight:650}
html.v3 .ptile-client{color:var(--khaki-light);font-weight:500}
html.v3 .ptile-foot{font-weight:500}
html.v3 .ptile-foot b{font-weight:600}
html.v3 .ptile-head .stage{font-size:11.5px}
html.v3 .team-dots i{background:var(--surface-2);color:var(--khaki-light);font-weight:700}
@media(max-width:640px){html.v3 .pgrid{grid-template-columns:1fr}}
/* regroupé par étape, l'étape de chaque vignette répète le titre de section : visible au survol seulement */
@media(hover:hover){
  html.v3 #project-list:has(> .proj-section .stage) .ptile-head .qpill{opacity:0;transition:opacity .15s ease}
  html.v3 #project-list:has(> .proj-section .stage) .ptile:hover .qpill,html.v3 #project-list:has(> .proj-section .stage) .ptile-head .qpill:focus-visible{opacity:1}
}
html.v3 .kcard{border-color:var(--border-soft)}
html.v3 .kcol-head{border-bottom-color:transparent}

/* ---------- listes : lignes plus aérées, cases rondes douces ---------- */
html.v3 .check{width:20px;height:20px;border-radius:6px;border-width:1.5px}
html.v3 .item.is-sel .check,html.v3 .pick.is-sel .check{color:#fff}
html.v3.dark .item.is-sel .check,html.v3.dark .pick.is-sel .check{color:#141414}
html.v3 .item-out{font-weight:500}
html.v3 .item.is-sel{background:var(--lime-tint)}
html.v3 .reorder-hint{font-weight:500}
html.v3 .actbar{background:var(--bar-bg);border-top-color:var(--border-soft)}
html.v3 .actbar-count{font-weight:600}

/* ---------- Commercial ---------- */
html.v3 .vrow{gap:14px}
html.v3 .vrow-title{font-weight:650}
html.v3 .vrow-date{font-weight:700}
html.v3 .stat-link:hover span{text-decoration:underline;text-underline-offset:3px}
html.v3 .db-head{font-size:10.5px;letter-spacing:.06em}
html.v3 .db-row:not(.db-head):hover{background:var(--surface-2)}
html.v3 .db-base small{border-color:transparent;background:var(--surface-2);color:var(--khaki-light)}

/* ---------- Traffic : frise lisible en clair ---------- */
html.v3 .tl{border-color:var(--border-soft)}
html.v3 .tl-name b{font-weight:700}
html.v3 .tl-day b{font-weight:700;color:var(--cream)}
html.v3 .tl-day span{letter-spacing:.04em}
html.v3 .bar{border-color:var(--border-soft);font-weight:600;border-radius:7px}
html.v3 .bar:hover{transform:none;border-color:var(--border)}
html.v3 .bar-p{font-weight:500}
html.v3 .bar.is-dragging{box-shadow:0 14px 30px -12px rgba(0,0,0,.35)}
html.v3 .bar-done{color:#fff}
html.v3 .tl-range{font-weight:600}
html.v3 .quick-hint{font-weight:500}

/* ---------- Gear ---------- */
html.v3 .loan{padding:18px 20px}
html.v3 .loan-title{margin-bottom:0}
html.v3 .loan-items{gap:0;margin-top:12px}
html.v3 .loan-items li{background:none;border:0;border-top:1px solid var(--border-soft);border-radius:0;padding:9px 2px;font-weight:500}
html.v3 .loan-items li:first-child{border-top:0}
html.v3 .loan-items li.is-rental{background:none;border-left:0}
html.v3 .loan-legend{color:var(--khaki)}
html.v3 .li-btns .icon-btn{width:28px;height:28px}
html.v3 .loan-foot{margin-top:14px}

/* ---------- Data : disques ---------- */
html.v3 .disks{gap:10px}
html.v3 .disk{box-shadow:none;padding:13px 16px}
html.v3 .disk-head p{font-weight:500}
html.v3 .disk-table th{letter-spacing:.06em}
html.v3 .disk-table td{border-bottom-color:var(--border-soft)}
html.v3 .disk-table.is-folders td:first-child{font-weight:700}
html.v3 .dproj{background:var(--surface-2);font-weight:500}
html.v3 .disk-foot{margin-top:8px}
html.v3 .disk-foot .btn-mini{padding:5px 10px}

/* ---------- Team : temps, synthèse, récup ---------- */
html.v3 .tday{box-shadow:none;border-color:var(--border-soft)}
html.v3 .tday-list li{background:var(--surface-2);border-color:transparent;font-weight:500}
html.v3 .tday-list li span{hyphens:manual}
html.v3 .tday.is-full{background:var(--lime-tint)}
html.v3 .tw-mood{font-weight:600}
html.v3 .synth{gap:4px}
html.v3 .srow{border:0;border-bottom:1px solid var(--border-soft);border-radius:0;background:none}
html.v3 .srow summary{padding:20px 6px 18px}
html.v3 .srow-main b{font-weight:650}
html.v3 .srow-h b{font-weight:700}
html.v3 .srow-detail li{background:var(--surface-2);border-color:transparent}
html.v3 .srow-detail .srow-list li{background:none}
html.v3 .srow-detail{padding:2px 6px 22px}
html.v3 .recup-card{box-shadow:none}
html.v3 .recup-h{font-weight:700}
html.v3 .recup-main{font-weight:500}

/* ---------- points d'équipe (fiche projet), statut des missions ---------- */
html.v3 .pt-prev li{background:var(--surface-2);border-color:transparent}
html.v3 .pt-seg{border-color:var(--border-soft)}

/* ---------- Tickets, abonnements ---------- */
html.v3 .amount b{font-size:15px;font-weight:700}
html.v3 .amount b span{font-weight:500}
html.v3 .bk-head{font-weight:600}
html.v3 .bk-bar{height:6px}
html.v3 .month-bar b{font-weight:700}

/* ---------- Plannings (dans Batcave), guides et briefs ---------- */
html.v3 .plan-link{background:var(--surface-2);border-color:transparent;color:var(--khaki-light)}
html.v3 .plan-link code{color:var(--khaki-light)}
html.v3 .plan-tile{box-shadow:var(--shadow-card)}
html.v3 .plan-tile:hover{transform:none}
html.v3 .gantt{border-color:var(--border-soft)}
html.v3 .g-we{background:rgba(var(--khaki-rgb),.07)}
html.v3 .g-work{box-shadow:none}
html.v3 .g-ms,html.v3 .lg-ms{background:var(--surface);border-width:2px}
html.v3 .g-deliv{border-color:var(--surface)}
html.v3 .g-month{letter-spacing:.08em}
html.v3 .g-week b{font-weight:700}
html.v3 .g-label b{font-weight:700}
html.v3 .dl-name{font-weight:700}
html.v3 .ms-name{font-weight:600}
html.v3 .ms-date{font-weight:700}
html.v3 .ms .check{border-radius:50%}
html.v3 .ms.is-done .check{color:#fff}
html.v3 .brief{box-shadow:none}
html.v3 .g-body pre{background:var(--surface-2)}

/* ---------- Réglages : des sections séparées par un filet, plus des cartes ---------- */
html.v3 .rg-card{background:none;border:0;border-bottom:1px solid var(--border-soft);border-radius:0;box-shadow:none;padding:20px 2px}
html.v3 .rg-card:last-child{border-bottom:0}
html.v3 .rg-card h2{letter-spacing:.06em;font-size:11px;color:var(--khaki)}
html.v3 .rg-card p.rg-state{font-weight:650}
html.v3 .token-box{border-color:transparent}

/* ---------- Mino Games ---------- */
html.v3 .gm-board li:first-child b{color:var(--cream)}
html.v3 .gm-card{box-shadow:none}

/* ---------- connexion ---------- */
html.v3 .gate-card{background:var(--surface);border-color:var(--border-soft);box-shadow:0 1px 2px rgba(0,0,0,.04),0 20px 50px -30px rgba(0,0,0,.25)}
html.v3 .gate-title{font-size:clamp(28px,6vw,34px);font-weight:700;letter-spacing:-.02em;line-height:1.1}
html.v3 .gate-title .accent{color:inherit}
html.v3 .gate-input{letter-spacing:0}

/* ---------- fiches, menus, recherche ---------- */
html.v3 .sheet-list{background:var(--surface-2);border-color:transparent}
html.v3 .fiche-histo li{background:var(--surface-2);border-color:transparent}
html.v3 .fb-block{background:var(--surface-2);border-color:transparent}
html.v3 .fb-item{background:var(--surface);border-color:var(--border-soft)}
html.v3 .pick{background:var(--surface);border-color:var(--border-soft)}
html.v3 .pick.is-sel{background:var(--lime-tint);border-color:rgba(var(--lime-rgb),.45)}
html.v3 .drag-ghost,html.v3 .kghost{box-shadow:0 18px 40px -14px rgba(0,0,0,.3)}
html.v3 .qmenu-title{letter-spacing:.06em}
html.v3 .pal-group{letter-spacing:.06em}

/* ---------- bouton + : au-dessus de la barre d'action de Gear ---------- */
html.v3 body:has(.actbar) .fab{bottom:88px}
@media(max-width:899px){html.v3 body:has(.actbar) .fab{bottom:calc(140px + env(safe-area-inset-bottom))}}
html.v3 .qtext.late,html.v3 .qtext.soon,html.v3 .item-meta .soon,html.v3 .item-meta .late,html.v3 .ptile-foot .late,html.v3 .ptile-foot .soon,html.v3 .kcard .late,html.v3 .kcard .soon{font-weight:600}
/* disques : un disque vide tient sur une ligne (nom, « Disque vide. », ajout à droite) ; l'ajout devient un lien discret */
html.v3 .disk:not(:has(.disk-table)){display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;padding:11px 16px}
html.v3 .disk:not(:has(.disk-table)) > .hint{margin:0 !important}
html.v3 .disk:not(:has(.disk-table)) > .disk-foot{margin:0 0 0 auto}
html.v3 .disk-foot .btn-mini{background:none;color:var(--khaki-light);padding:4px 8px;margin-left:-8px}
html.v3 .disk:not(:has(.disk-table)) .disk-foot .btn-mini{margin:0 -8px 0 0}
html.v3 .disk-foot .btn-mini:hover{background:var(--surface-2);color:var(--cream)}
/* barre d'avancement des livrables : la barre de la frise Traffic (.bar) lui donnait un liseré de 3 px */
html.v3 .dl-foot .bar,html.v3 .sheet .bar,html.v3 .plan-tile .bar{display:block;border:0;padding:0;margin:0;cursor:default;touch-action:auto}
html.v3 .pal-in input:focus-visible,html.v3 .pal-in input:focus{box-shadow:none;outline:none}
@media(max-width:899px){html.v3 body.sb-open .sb{box-shadow:0 0 40px rgba(0,0,0,.18)}}

html.v3 .plan-title,html.v3 .app-title,html.v3 .sheet-title{text-wrap:balance}
@media(max-width:520px){
  html.v3 .plan-tools{gap:6px}
  html.v3 .plan-tools .plan-link{flex:1 1 100%;justify-content:flex-start}
  html.v3 .plan-tools .plan-link code{max-width:100%}
  html.v3 .plan-tools .btn-mini{padding:6px 8px;font-size:12px}
}
html.v3 .fiche-label,html.v3 .sheet-manage-label,html.v3 .fiche-manage-label,html.v3 .prf-more summary{letter-spacing:.06em}
html.v3 .due-day b{font-size:20px;font-weight:700}
html.v3 .due-right b{font-weight:700}
html.v3 .due-main h3{font-weight:600}

/* ---------- logo : M de Mino en relief, en mouvement continu ; un clic bascule clair / sombre ----------
   18 couches serrées du M (masque m3d.png) empilées sur l'axe Z dans .m3d-in (tranche pleine de profil). Seul .m3d-in
   tourne (transform animé : le navigateur le fait sur la carte graphique, sans redessiner les couches à chaque image).
   Il se balance sans jamais passer de profil ; le tour complet n'a lieu qu'au clic, trop rapide pour que le profil se voie. */
.m3d-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:42px;height:38px;border-radius:10px;transition:background .15s ease}
html.v3 .m3d-btn:hover{background:rgba(24,24,16,.06)}
html.v3.dark .m3d-btn:hover{background:rgba(255,255,255,.07)}
.m3d{--s:32px;position:relative;display:block;width:var(--s);height:calc(var(--s) * .66);perspective:calc(var(--s) * 5);animation:m3d-float 3.4s ease-in-out infinite}
.m3d-in{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(10deg) rotateY(-50deg);animation:m3d-idle 7s ease-in-out infinite}
.m3d.spin .m3d-in{animation:m3d-spin 1.1s cubic-bezier(.3,.9,.3,1) 1 both,m3d-idle 7s ease-in-out 1.1s infinite}
.m3d-btn:hover .m3d-in{animation-duration:3.5s}
.m3d i{position:absolute;inset:0;-webkit-mask:url(/m3d.png) center / contain no-repeat;mask:url(/m3d.png) center / contain no-repeat}
.m3d i:nth-child(1){background:linear-gradient(135deg,#86d90c 0%,#6fbf0a 100%);transform:translateZ(calc(var(--s) * -0.2200))}
.m3d i:nth-child(2){background:#2e5504;transform:translateZ(calc(var(--s) * -0.2071))}
.m3d i:nth-child(3){background:#305904;transform:translateZ(calc(var(--s) * -0.1941))}
.m3d i:nth-child(4){background:#335d05;transform:translateZ(calc(var(--s) * -0.1812))}
.m3d i:nth-child(5){background:#356105;transform:translateZ(calc(var(--s) * -0.1682))}
.m3d i:nth-child(6){background:#386506;transform:translateZ(calc(var(--s) * -0.1553))}
.m3d i:nth-child(7){background:#3b6906;transform:translateZ(calc(var(--s) * -0.1424))}
.m3d i:nth-child(8){background:#3d6d07;transform:translateZ(calc(var(--s) * -0.1294))}
.m3d i:nth-child(9){background:#407107;transform:translateZ(calc(var(--s) * -0.1165))}
.m3d i:nth-child(10){background:#427608;transform:translateZ(calc(var(--s) * -0.1035))}
.m3d i:nth-child(11){background:#457a08;transform:translateZ(calc(var(--s) * -0.0906))}
.m3d i:nth-child(12){background:#487e09;transform:translateZ(calc(var(--s) * -0.0776))}
.m3d i:nth-child(13){background:#4a8209;transform:translateZ(calc(var(--s) * -0.0647))}
.m3d i:nth-child(14){background:#4d860a;transform:translateZ(calc(var(--s) * -0.0518))}
.m3d i:nth-child(15){background:#4f8a0a;transform:translateZ(calc(var(--s) * -0.0388))}
.m3d i:nth-child(16){background:#528e0b;transform:translateZ(calc(var(--s) * -0.0259))}
.m3d i:nth-child(17){background:#55930c;transform:translateZ(calc(var(--s) * -0.0129))}
.m3d i:nth-child(18){background:linear-gradient(135deg,#b4ff47 0%,#92ed11 45%,#7fd40c 100%);transform:translateZ(calc(var(--s) * -0.0000))}

@keyframes m3d-idle{0%,100%{transform:rotateX(10deg) rotateY(-50deg)}50%{transform:rotateX(-5deg) rotateY(50deg)}}
@keyframes m3d-spin{from{transform:rotateX(24deg) rotateY(-410deg)}to{transform:rotateX(10deg) rotateY(-50deg)}}
@keyframes m3d-float{0%,100%{translate:0 0}50%{translate:0 -6%}}
@media(prefers-reduced-motion:reduce){.m3d,.m3d-in,.m3d.spin .m3d-in{animation:none}.m3d-in{transform:rotateX(8deg) rotateY(-22deg)}}

/* en-tête de la barre latérale : M en relief + logo Mino agrandi */
html.v3 .sb-top{gap:4px;padding:0 2px 14px 0;min-height:0}
html.v3 .sb-brand{gap:10px;margin-right:auto}
html.v3 .sb-brand img{height:22px}
html.v3 .sb-brand b{font-size:15px;font-weight:700;color:var(--cream)}
html.v3 .sb-brand b span{color:inherit}
@media(min-width:900px){
  html.v3 .sb-top{padding-right:38px}
  html.v3 .sb-collapse{top:3px;right:2px}
  html.v3 body.sb-mini .sb-top{padding-bottom:54px}
  html.v3 body.sb-mini .sb-collapse{top:46px;right:6px}
  html.v3 body.sb-mini .m3d-btn{width:44px}
}
html.v3 .mb-top .sb-brand img{height:20px}
.mb-right{display:inline-flex;align-items:center;gap:2px}
html.v3 .mb-top .m3d{--s:26px}

/* pages publiques (brief, guide, planning client) : M en relief (bascule clair / sombre) + Mino */
.pub-brand{display:inline-flex;align-items:center;gap:6px;margin-left:-6px}
.pub-brand b{font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--cream)}
html.v3 .mb-top .m3d-btn{width:36px;height:36px}

/* ---------- planning Traffic : teintes claires (barres, livraisons, bulles) ---------- */
html.v3:not(.dark) .tl .bar{background:hsl(var(--h) 80% 95%);border-color:hsl(var(--h) 45% 86%);border-left-color:hsl(var(--h) 62% 48%);color:hsl(var(--h) 40% 17%)}
html.v3:not(.dark) .tl .bar.no-proj{background:var(--surface-2);border-color:var(--border-soft);border-left-color:var(--khaki);color:var(--cream)}
html.v3:not(.dark) .tl .bar-p{color:hsl(var(--h) 32% 40%)}
html.v3:not(.dark) .tl .bar.no-proj .bar-p{color:var(--khaki-light)}
html.v3:not(.dark) .tl .bar:hover{filter:brightness(.98);border-color:hsl(var(--h) 45% 78%)}
html.v3:not(.dark) .tl .bar.is-popped{outline-color:hsl(var(--h) 62% 48%)}
html.v3:not(.dark) .tl .bar.no-proj.is-popped{outline-color:var(--cream)}
html.v3:not(.dark) .ms-chip{background:hsl(var(--h) 80% 95%);border-color:hsl(var(--h) 50% 78%);color:hsl(var(--h) 42% 22%)}
html.v3:not(.dark) .ms-chip:not([style*="--h"]){background:var(--surface-2);border-color:var(--border);color:var(--cream)}
html.v3:not(.dark) .ms-chip b{color:hsl(var(--h) 62% 45%)}
html.v3:not(.dark) .tl-focus-chip{background:hsl(var(--h) 80% 95%);border-color:hsl(var(--h) 50% 70%);color:hsl(var(--h) 42% 22%)}
html.v3 .tl-pop{border-color:var(--border-soft);box-shadow:0 24px 60px -18px rgba(20,20,10,.35),0 0 0 1px var(--border-soft)}
html.v3:not(.dark) .tl-pop{box-shadow:0 24px 60px -18px rgba(20,20,10,.3),0 0 0 1px var(--border-soft)}
html.v3 .tl-day small{letter-spacing:0;text-transform:none}
html.v3 .tl .tl-cell.is-over{background:rgba(var(--coral-rgb),.06)}

/* ---------- planning Traffic en clair : plus de contraste (retour de Bastien du 27 oct. : « pas très lisible ») ---------- */
html.v3:not(.dark) .tl{border-color:rgba(24,24,16,.14)}
html.v3:not(.dark) .tl .tl-row{border-top-color:rgba(24,24,16,.11)}
html.v3:not(.dark) .tl .tl-head{background:#f7f7f4;border-bottom:1px solid rgba(24,24,16,.12)}
html.v3:not(.dark) .tl .tl-head .tl-name{background:#f7f7f4}
html.v3:not(.dark) .tl .tl-day,html.v3:not(.dark) .tl .tl-cell,html.v3:not(.dark) .tl-mcell{border-left-color:rgba(24,24,16,.09)}
html.v3:not(.dark) .tl .tl-name{border-right-color:rgba(24,24,16,.14)}
html.v3:not(.dark) .tl-day span{font-size:11.5px;font-weight:600;color:#55554f}
html.v3:not(.dark) .tl-day b{font-size:17px;color:#1d1d1b}
html.v3:not(.dark) .tl-day small{font-size:11px;font-weight:600;color:#6a6a63}
html.v3:not(.dark) .tl-day.is-today span,html.v3:not(.dark) .tl-day.is-today b{color:var(--lime)}
html.v3:not(.dark) .tl-day.is-we,html.v3:not(.dark) .tl .tl-cell.is-we,html.v3:not(.dark) .tl-mcell.is-we{background:#efefeb}
/* une ligne sur deux légèrement teintée : on suit mieux une personne d'un bout à l'autre de la semaine */
html.v3:not(.dark) .tl .tl-row[data-person]:nth-child(even) .tl-cell:not(.is-today):not(.is-we):not(.is-off):not(.is-over):not(.is-sel){background:#fafaf8}
html.v3:not(.dark) .tl .tl-row[data-person]:nth-child(even) .tl-name{background:#fafaf8}
html.v3:not(.dark) .tl .tl-cell.is-today{background:rgba(var(--lime-rgb),.06)}
html.v3:not(.dark) .tl .tl-name b{font-size:14.5px;color:#1d1d1b}
html.v3:not(.dark) .tl .tl-load{font-size:11.5px;color:#55554f}
html.v3:not(.dark) .tl .tl-load.is-over{color:var(--coral)}
html.v3:not(.dark) .tl .tl-load.is-free{color:var(--lime)}
html.v3:not(.dark) .tl-meter i:not(.l1):not(.l2):not(.l3):not(.is-off){background:rgba(24,24,16,.12)}
html.v3:not(.dark) .tl-meter i.l1{background:#4a9a16}
html.v3:not(.dark) .tl-meter i.is-off{background:repeating-linear-gradient(135deg,rgba(24,24,16,.3) 0 2px,transparent 2px 4px)}
/* barres : fond plus franc, bord et texte foncés dans la teinte du projet */
html.v3:not(.dark) .tl .bar{background:hsl(var(--h) 72% 90%);border-color:hsl(var(--h) 42% 74%);border-left-color:hsl(var(--h) 66% 40%);color:hsl(var(--h) 55% 13%);box-shadow:0 1px 1px rgba(20,20,10,.05)}
html.v3:not(.dark) .tl .bar-t{font-size:13.5px;font-weight:650}
html.v3:not(.dark) .tl .bar-p{font-size:11px;font-weight:600;color:hsl(var(--h) 45% 28%)}
html.v3:not(.dark) .tl .bar:hover{border-color:hsl(var(--h) 45% 60%);filter:none}
html.v3:not(.dark) .tl .bar.no-proj{background:#eeeeea;border-color:rgba(24,24,16,.18);border-left-color:#76766f;color:#1d1d1b}
html.v3:not(.dark) .tl .bar.s-done{opacity:.5}
html.v3:not(.dark) .tl .bar.is-dim{opacity:.25}
html.v3:not(.dark) .bar-due{color:#55554f}
html.v3:not(.dark) .bar-due.is-bad{color:var(--coral)}
html.v3:not(.dark) .ms-chip{background:hsl(var(--h) 72% 90%);border-color:hsl(var(--h) 45% 65%);color:hsl(var(--h) 55% 15%)}
html.v3:not(.dark) .tl-ms{background:#fbfbf9}
