/* ══════════════════════════════════════════════════════════════
   GALERIE DE MANNEQUINS — feuille de style
   Source : maquette Claude Design « Bibliotheque Mannequins v2 »
   (septembre 2026). La charte de la maquette fait foi : elle remplace
   la palette et la police de la passe d'août.
   ══════════════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  /* ── PALETTE — charte Paradigme, valeurs de la maquette ── */
  --black:#000;
  --white:#fff;
  --ardoise:#333c43;      /* survol des boutons noirs */
  --brun:#3f2c1e;
  --creme:#f0ebe7;        /* aplats : pastilles actives, bulles, vignettes */
  --creme-2:#f6f2ee;      /* aplats clairs : panneaux, emplacements vides */
  --sable:#deceb5;        /* bouton secondaire plein, filets pointillés */
  --sable-2:#d3c0a2;      /* survol du sable */
  --terracotta:#c25352;   /* indisponible, erreurs */
  --ocre:#f1a32b;         /* « nouveau », avertissements */

  --ink:var(--black);
  --muted:#5d646a;        /* texte secondaire — 6:1 sur blanc, AA */
  --faint:#b9b2aa;        /* cases à cocher, valeurs en attente (décoratif) */
  --line:#e4ddd6;         /* filets */

  /* Anciens noms encore lus par ai.js (bordure du champ prénom). */
  --red:var(--terracotta);
  --amber:var(--ocre);
  --sage:var(--ink);

  --font:'Work Sans',system-ui,sans-serif;

  /* ── ÉCHELLE TYPOGRAPHIQUE ── */
  --fs-0:9px;    /* libellés posés sur une photo */
  --fs-1:10px;   /* eyebrow, MAJUSCULES */
  --fs-2:11px;   /* pastilles, compteurs, libellés de groupe */
  --fs-3:12px;   /* boutons, texte secondaire */
  --fs-4:13px;   /* corps */
  --fs-5:18px;   /* titre de modale, texte d'accroche */
  --fs-6:22px;
  --fs-h1:42px;  /* titre de page */
  --fs-hero:64px;/* prénom sur la fiche */

  --track-eyebrow:.12em;
  --track-label:.1em;
  --track-btn:.04em;

  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:40px; --sp-8:56px;

  --ease:cubic-bezier(.25,.46,.45,.94);
  --shadow-pop:0 6px 24px rgba(0,0,0,.08);

  --page-max:1440px;
  --page-pad:40px;
  --header-h:68px;
}

html{scroll-behavior:auto}
body{font-family:var(--font);background:var(--white);color:var(--ink);font-size:var(--fs-4);line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:var(--font);color:inherit}
a{color:var(--ink);text-decoration:none}
img{display:block}
[hidden]{display:none !important}

/* ── ICÔNES ── tracé unique, monochrome, hérite de la couleur du texte.
   Terminaisons carrées et angles vifs, comme les pictos de la maquette. */
.ic{display:inline-block;vertical-align:-.125em;flex-shrink:0;
    fill:none;stroke:currentColor;stroke-width:1.6;
    stroke-linecap:square;stroke-linejoin:miter}

/* ── CLAVIER ── */
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}

/* ── TYPOGRAPHIE ── */
.eyebrow{font-size:var(--fs-2);font-weight:500;line-height:1;letter-spacing:var(--track-eyebrow);color:var(--muted);text-transform:uppercase}
.label{font-size:var(--fs-1);font-weight:500;line-height:1;letter-spacing:var(--track-eyebrow);color:var(--muted);text-transform:uppercase}
.h1{font-size:var(--fs-h1);font-weight:700;line-height:1;letter-spacing:.04em;text-transform:uppercase}
.link{background:none;border:none;padding:0;cursor:pointer;font-size:var(--fs-3);font-weight:500;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.link:hover{opacity:.6}
.link:disabled{opacity:.3;cursor:default}

/* ── BOUTONS ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;
     font-size:var(--fs-3);font-weight:600;line-height:1;letter-spacing:var(--track-btn);text-transform:uppercase;
     padding:14px 24px;border:1px solid var(--ink);background:var(--ink);color:var(--white);white-space:nowrap;
     transition:background .15s,color .15s,border-color .15s}
.btn:hover{background:var(--ardoise);border-color:var(--ardoise)}
.btn-outline{background:transparent;color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:var(--white);border-color:var(--ink)}
.btn-sable{background:var(--sable);border-color:var(--sable);color:var(--ink)}
.btn-sable:hover{background:var(--sable-2);border-color:var(--sable-2)}
.btn-danger{background:transparent;color:var(--terracotta);border-color:var(--terracotta)}
.btn-danger:hover{background:var(--terracotta);color:var(--white);border-color:var(--terracotta)}
.btn-sm{padding:9px 12px;font-size:var(--fs-1);gap:6px}
.btn-block{width:100%}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn:disabled:hover{background:var(--ink);border-color:var(--ink)}
.btn-outline:disabled:hover{background:transparent;color:var(--ink)}

/* ── PASTILLES ── angles droits, contour clair ; l'état actif est plein noir.
   nowrap + flex-shrink:0 : une pastille ne se coupe jamais à l'intérieur,
   elle passe à la ligne. Leur conteneur DOIT être en flex-wrap. */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 13px;cursor:pointer;
      background:var(--white);color:var(--ink);border:1px solid var(--line);
      font-size:var(--fs-2);font-weight:500;line-height:1;letter-spacing:.06em;text-transform:uppercase;
      white-space:nowrap;flex:none;max-width:100%;overflow:hidden;text-overflow:ellipsis;
      transition:border-color .12s,background .12s,color .12s}
.chip:hover{border-color:var(--ink)}
.chip.is-on,.chip.selected{background:var(--ink);color:var(--white);border-color:var(--ink)}
.chip-static{cursor:default;height:auto;padding:7px 10px;font-size:var(--fs-3);letter-spacing:.04em;text-transform:none}
.chip-static:hover{border-color:var(--line)}
.chip-x{background:var(--creme);border-color:var(--creme);height:auto;padding:7px 10px;letter-spacing:.06em}
.chip-x:hover{border-color:var(--ink)}
.chip-x .x{font-size:13px;line-height:1}

/* ── CHAMPS ── */
.field{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.field>label,.field-label{font-size:var(--fs-1);font-weight:500;line-height:1;letter-spacing:var(--track-eyebrow);color:var(--muted);text-transform:uppercase}
.input,.field input:not([type=checkbox]):not([type=file]),.field select,.field textarea{
  width:100%;height:44px;padding:0 14px;border:1px solid var(--line);background:var(--white);
  font-size:14px;color:var(--ink);outline:none;border-radius:0;transition:border-color .15s}
.field textarea{height:auto;min-height:88px;padding:12px 14px;line-height:1.5;resize:vertical}
.field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 18px) 19px,calc(100% - 13px) 19px;background-size:5px 5px;background-repeat:no-repeat;padding-right:36px}
.input:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink)}
.field input:disabled,.field select:disabled{background:var(--creme-2);color:var(--muted)}
.field-hint{font-size:var(--fs-3);color:var(--muted);line-height:1.5}
.field-error{font-size:var(--fs-3);color:var(--terracotta);line-height:1.4}
.field-error:empty{display:none}
.note{font-size:var(--fs-3);line-height:1.55;color:var(--ink);background:var(--creme);padding:14px 16px}
.note-warn{background:#fdf1dc;color:var(--brun)}

/* Case à cocher carrée de la maquette */
.box{width:14px;height:14px;flex:none;border:1px solid var(--faint);background:var(--white);display:flex;align-items:center;justify-content:center}
.box svg{display:none}
.is-on>.box,.box.is-on{background:var(--ink);border-color:var(--ink)}
.is-on>.box svg,.box.is-on svg{display:block}

/* Bascule carrée — une vraie case à cocher dessous, donc clavier et
   lecteurs d'écran fonctionnent sans code. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.switch{display:inline-flex;align-items:center;gap:12px;cursor:pointer;position:relative}
.switch-track{width:34px;height:18px;background:var(--line);position:relative;flex:none;transition:background .28s}
.switch-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--white);transition:left .28s var(--ease)}
.switch input:checked+.switch-track{background:var(--ink)}
.switch input:checked+.switch-track .switch-knob{left:18px}
.switch input:focus-visible+.switch-track{outline:2px solid var(--ink);outline-offset:2px}
.switch-text{font-size:var(--fs-4);color:var(--ink);line-height:1.3}
.switch-field{display:flex;align-items:center;min-height:44px}

/* ══ ÉCRANS DE CONNEXION ══ */
.auth-screen{min-height:100vh;display:none;align-items:center;justify-content:center;padding:24px;background:var(--white)}
#login-screen{display:flex}
.auth-box{width:100%;max-width:380px;display:flex;flex-direction:column}
.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:48px}
.auth-title{font-size:30px;font-weight:700;line-height:1.1;letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px}
.auth-sub{font-size:var(--fs-4);color:var(--muted);margin-bottom:32px;line-height:1.5}
.auth-box .btn{margin-top:8px}
.auth-box .link{align-self:center;margin-top:18px}
.auth-box .note{margin-bottom:24px}

/* ══ LOGO ══ */
.brand-logo{display:block;flex-shrink:0;fill:currentColor;height:24px;width:96px;color:var(--ink)}
.brand-tag{font-size:var(--fs-1);font-weight:500;line-height:1;letter-spacing:var(--track-eyebrow);color:var(--muted)}

/* ══ EN-TÊTE ══ */
#app-screen{display:none;min-height:100vh;flex-direction:column}
.site-header{position:sticky;top:0;z-index:200;background:var(--white);border-bottom:1px solid var(--line)}
.site-header-inner{max-width:var(--page-max);margin:0 auto;padding:0 var(--page-pad);height:var(--header-h);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.site-brand{display:flex;align-items:center;gap:14px;background:none;border:none;padding:0;cursor:pointer;justify-self:start}
.site-nav{display:flex;gap:40px}
.site-nav-item{background:none;border:none;padding:24px 0 22px;cursor:pointer;font-size:var(--fs-3);font-weight:500;line-height:1;letter-spacing:var(--track-label);color:var(--ink);border-bottom:2px solid transparent}
.site-nav-item.is-on{border-bottom-color:var(--ink)}
.site-user{position:relative;justify-self:end;display:flex;align-items:center;gap:14px}
.site-user-btn{display:flex;align-items:center;gap:14px;background:none;border:none;padding:0;cursor:pointer}
.site-user-name{font-size:var(--fs-3);letter-spacing:var(--track-btn);color:var(--muted);white-space:nowrap}
.avatar{width:32px;height:32px;background:var(--creme);display:flex;align-items:center;justify-content:center;font-size:var(--fs-2);font-weight:700;letter-spacing:var(--track-btn);color:var(--ink);flex:none}

.menu{position:absolute;top:calc(100% + 14px);right:0;min-width:240px;background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow-pop);z-index:300;animation:fade .15s ease}
.menu-head{padding:14px 16px 10px}
.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:none;border:none;cursor:pointer;text-align:left;font-size:var(--fs-4);color:var(--ink)}
.menu-item:hover{background:var(--creme-2)}
.menu-item .menu-check{margin-left:auto;display:none}
.menu-item.is-current{font-weight:600}
.menu-item.is-current .menu-check{display:flex}
.menu-sep{height:1px;background:var(--line)}
.menu-item-danger:hover{color:var(--terracotta)}

/* ══ PAGES ══ */
.page{max-width:var(--page-max);width:100%;margin:0 auto;padding:48px var(--page-pad) 96px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.page-head-text{display:flex;flex-direction:column;gap:12px}
.page-head-actions{display:flex;gap:12px;flex-wrap:wrap}
body.modal-open{overflow:hidden}

/* ══ GALERIE ══ */
.gallery-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--sp-8)}
.gallery-main{display:flex;flex-direction:column;gap:32px;min-width:0}

/* Filtres */
.filters{position:sticky;top:calc(var(--header-h) + 24px);align-self:start;max-height:calc(100vh - var(--header-h) - 48px);display:flex;flex-direction:column}
.filters-head{flex:none;display:flex;justify-content:space-between;align-items:baseline;padding-bottom:14px}
.filters-title{font-size:var(--fs-2);font-weight:700;line-height:1;letter-spacing:var(--track-label)}
.filters .filters-close{display:none}
.search{flex:none;display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:0 12px;height:40px;background:var(--white)}
.search:focus-within{border-color:var(--ink)}
.search input{border:none;outline:none;font-size:var(--fs-4);flex:1;min-width:0;background:transparent}
.search-clear{background:none;border:none;padding:0;cursor:pointer;font-size:16px;line-height:1;color:var(--muted)}
.quick{flex:none;display:flex;gap:6px;padding:14px 0 6px}
.quick .chip{flex:1;justify-content:center;padding:0 8px;letter-spacing:.02em;text-transform:none}
.filters-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;margin-right:-14px;padding-right:14px}
.fgroup{border-bottom:1px solid var(--line)}
.fgroup-head{width:100%;display:flex;align-items:center;gap:8px;background:none;border:none;padding:16px 0 14px;cursor:pointer;text-align:left}
.fgroup-title{flex:1;font-size:var(--fs-2);font-weight:700;line-height:1;letter-spacing:var(--track-label);text-transform:uppercase}
.fgroup-count{min-width:18px;height:18px;padding:0 5px;background:var(--ink);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:var(--fs-1);font-weight:600;line-height:1}
.fgroup-chev{transition:transform .2s}
.fgroup.is-closed .fgroup-chev{transform:rotate(-90deg)}
.fgroup-summary{margin:-6px 0 14px;font-size:var(--fs-3);line-height:1.4;color:var(--muted)}
.fgroup-body{display:flex;flex-direction:column;padding-bottom:12px}
.fgroup.is-closed .fgroup-body{display:none}
.fgroup-search{height:32px;border:none;border-bottom:1px solid var(--line);outline:none;background:transparent;font-size:var(--fs-3);margin-bottom:6px}
.fgroup-search:focus{border-bottom-color:var(--ink)}
.fopt{display:flex;align-items:center;gap:10px;background:none;border:none;padding:6px 0;cursor:pointer;text-align:left;font-size:var(--fs-4);line-height:1.3;color:var(--ink)}
.fopt:hover{opacity:.7}
.fopt:disabled{opacity:.35;cursor:default}
.fopt-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fopt.is-on .fopt-label{font-weight:600}
.fopt-count{font-size:var(--fs-2);color:var(--muted);font-variant-numeric:tabular-nums}
.dot{width:7px;height:7px;border-radius:50%;flex:none;display:inline-block}
.fopt .dot{margin-left:-2px}
.fgroup-more{align-self:flex-start;margin-top:6px}
.filters-toggle{display:none}

/* Grille */
.active-chips{display:flex;flex-wrap:wrap;gap:8px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:40px 24px}
.card{position:relative;animation:rise 420ms var(--ease) both}
.card-link{display:flex;flex-direction:column;gap:14px;color:inherit}
/* Calque de la hauteur exacte de la photo (même largeur, même ratio) : il
   place les boutons en bas de l'image sans les mettre DANS le lien, où des
   boutons n'ont pas le droit d'être. */
.card-actions-layer{position:absolute;left:0;right:0;top:0;aspect-ratio:3/4;pointer-events:none}
.card-actions-layer .card-actions{pointer-events:auto}
@keyframes rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
.card-visual{position:relative;aspect-ratio:3/4;background:var(--creme);overflow:hidden}
.card-visual img{width:100%;height:100%;object-fit:cover;transition:opacity .25s,transform .5s var(--ease)}
.card:hover .card-visual img.ready{opacity:.88}
.card-ph{position:absolute;inset:0;display:flex;align-items:flex-end;padding:12px}
.card-ph span{font-size:var(--fs-0);font-weight:500;letter-spacing:var(--track-eyebrow);color:var(--muted)}
.tag-excl,.tag-new{position:absolute;top:12px;padding:5px 8px;font-size:var(--fs-0);font-weight:700;line-height:1;letter-spacing:var(--track-eyebrow)}
.tag-excl{left:12px;background:var(--ink);color:var(--white)}
.tag-new{right:12px;background:var(--ocre);color:var(--ink)}
.card-actions{position:absolute;right:12px;bottom:12px;display:flex;gap:6px;opacity:0;transition:opacity .15s}
.card:hover .card-actions,.card:focus-within .card-actions{opacity:1}
.icon-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--white);border:1px solid var(--white);color:var(--ink);cursor:pointer;transition:background .12s,color .12s}
.icon-btn:hover{background:var(--ink);color:var(--white);border-color:var(--ink)}
.icon-btn-danger:hover{background:var(--terracotta);border-color:var(--terracotta)}
.card-info{display:flex;flex-direction:column;gap:6px}
.card-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.card-name{font-size:14px;font-weight:700;line-height:1.2;letter-spacing:.06em;text-transform:uppercase;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-2);line-height:1;letter-spacing:var(--track-btn);color:var(--muted);white-space:nowrap}
.card-meta{font-size:var(--fs-3);line-height:1.4;letter-spacing:.02em;color:var(--muted)}
.views-row{display:flex;align-items:center;gap:8px}
.bars{display:flex;gap:2px}
.bars span{width:10px;height:3px;background:var(--line)}
.bars span.on{background:var(--ink)}
.views-txt{font-size:var(--fs-2);line-height:1;letter-spacing:var(--track-btn);color:var(--muted)}
.empty{grid-column:1/-1;padding:80px 0;text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center}
.empty-title{font-size:var(--fs-4);font-weight:500;letter-spacing:var(--track-label);text-transform:uppercase}
.loader{grid-column:1/-1;display:flex;justify-content:center;padding:80px}
.spinner{width:22px;height:22px;border:2px solid var(--line);border-top-color:var(--ink);border-radius:50%;animation:spin .65s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ══ FICHE ══ */
.detail{display:flex;flex-direction:column;gap:32px;padding-top:32px}
.back{align-self:flex-start;background:none;border:none;padding:0;cursor:pointer;font-size:var(--fs-2);font-weight:500;letter-spacing:var(--track-label);color:var(--muted)}
.back:hover{color:var(--ink)}
.detail-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);gap:64px;align-items:start}
.detail-visual{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px}
.thumbs{display:flex;flex-direction:column;gap:8px}
.thumb{position:relative;aspect-ratio:3/4;padding:0;cursor:pointer;background:var(--creme);border:1px solid transparent;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--muted)}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb.is-on{border-color:var(--ink)}
.thumb.is-empty{background:var(--white);border:1px dashed var(--sable)}
.thumb.is-empty:hover{background:var(--creme-2)}
.thumb.is-empty:disabled{cursor:default}
.thumb.is-empty:disabled:hover{background:var(--white)}
.thumb-plus{font-size:16px;font-weight:300;line-height:1}
.stage{position:relative;aspect-ratio:3/4;background:var(--creme);overflow:hidden}
.stage img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.stage-label{position:absolute;left:20px;bottom:20px;font-size:var(--fs-1);font-weight:500;letter-spacing:var(--track-eyebrow);color:var(--muted);pointer-events:none}
.stage-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--creme-2)}
.stage-actions{position:absolute;right:16px;bottom:16px;display:flex;gap:6px}
.stage-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;background:var(--white);border:none;cursor:pointer;font-size:var(--fs-1);font-weight:600;letter-spacing:var(--track-label);text-transform:uppercase}
.stage-btn:hover{background:var(--ink);color:var(--white)}
.detail-side{display:flex;flex-direction:column;gap:32px;position:sticky;top:calc(var(--header-h) + 40px)}
.detail-id{display:flex;flex-direction:column;gap:14px}
.detail-status{display:flex;align-items:center;gap:8px;font-size:var(--fs-2);font-weight:500;line-height:1;letter-spacing:var(--track-eyebrow)}
.detail-name{font-size:var(--fs-hero);font-weight:700;line-height:.95;letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere}
.detail-meta{font-size:14px;line-height:1.6;letter-spacing:.02em;color:var(--muted)}
.dsec{display:flex;flex-direction:column;gap:14px}
.dsec-top{border-top:1px solid var(--line);padding-top:24px}
.dsec-head{display:flex;justify-content:space-between;align-items:baseline}
.book-list{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.book-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:var(--fs-4);line-height:1.2;letter-spacing:.02em}
.book-row.is-missing{color:var(--muted)}
.book-state{font-size:var(--fs-2);letter-spacing:var(--track-btn)}
.brands-line{font-size:var(--fs-4);line-height:1.5;letter-spacing:.06em;text-transform:uppercase}
.notes{font-size:var(--fs-4);line-height:1.6;white-space:pre-line}
.detail-actions{display:flex;gap:12px;flex-wrap:wrap;padding-top:8px}
.detail-actions .btn{flex:1}
.muted{color:var(--muted)}

/* ══ MODALES ══ */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:500;display:flex;align-items:flex-start;justify-content:center;padding:6vh 24px;overflow-y:auto;animation:fade .18s ease}
.modal{background:var(--white);width:100%;max-width:560px;padding:36px;animation:rise .25s var(--ease) both;position:relative}
.modal-wide{max-width:720px}
.modal-narrow{max-width:420px}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:28px}
.modal-head-text{display:flex;flex-direction:column;gap:10px;min-width:0}
.modal-title{font-size:26px;font-weight:700;line-height:1.05;letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere}
.modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--line);cursor:pointer;flex:none}
.modal-close:hover{border-color:var(--ink)}
.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.modal-back{background:none;border:none;padding:0;cursor:pointer;font-size:var(--fs-2);font-weight:500;letter-spacing:var(--track-label);color:var(--muted);text-transform:uppercase;align-self:flex-start}
.modal-back:hover{color:var(--ink)}
.modal-text{font-size:14px;line-height:1.6;color:var(--ink)}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.form-grid .full{grid-column:1/-1}
.form-sec{border-top:1px solid var(--line);padding-top:24px;margin-top:8px}
.form-sec-head{display:flex;align-items:center;justify-content:space-between;gap:6px 12px;flex-wrap:wrap;margin-bottom:16px}
.tag-cat{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line)}
.tag-cat:last-child{border-bottom:none}
.tag-cat-label{font-size:var(--fs-4);line-height:32px;letter-spacing:.02em}
.name-row{display:flex;gap:8px}
.name-row input{flex:1}

/* Zones de dépôt */
.drop{border:1px dashed var(--sable);background:var(--creme-2);padding:24px 16px;text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted);transition:background .15s,border-color .15s}
.drop:hover,.drop.is-drag{background:var(--creme);border-color:var(--ink)}
.drop-title{font-size:var(--fs-4);color:var(--ink)}
.drop-hint{font-size:var(--fs-2);letter-spacing:var(--track-btn)}
.preview{position:relative;display:inline-block;margin-top:12px}
.preview img{height:96px;width:auto;cursor:zoom-in}
.preview-remove{position:absolute;top:-8px;right:-8px;width:22px;height:22px;background:var(--ink);color:var(--white);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}
.progress{height:2px;background:var(--line);margin-top:10px;overflow:hidden;display:none}
.progress-bar{height:100%;background:var(--ink);transition:width .2s}

/* Emplacements de vues du formulaire */
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.slot{display:flex;flex-direction:column;gap:8px}
.slot-visual{aspect-ratio:3/4;position:relative;background:var(--creme-2);border:1px dashed var(--sable);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);overflow:hidden;transition:background .15s,border-color .15s}
.slot-visual:hover,.slot.is-drag .slot-visual{background:var(--creme);border-color:var(--ink)}
.slot-visual.has-img{border:1px solid transparent;background:var(--creme)}
.slot-visual img{width:100%;height:100%;object-fit:cover}
.slot-label{font-size:var(--fs-2);font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.slot-btns{display:flex;gap:10px}

/* Listes de gestion */
.mlist{display:flex;flex-direction:column;max-height:320px;overflow-y:auto;margin-bottom:28px;border-top:1px solid var(--line)}
.mitem{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.mitem-name{font-size:var(--fs-4);font-weight:500}
.mitem-meta{font-size:var(--fs-2);color:var(--muted);margin-top:2px;letter-spacing:.02em}
.mitem-main{flex:1;min-width:0}
.mitem-desc{display:block;width:100%;margin-top:8px;min-height:0;height:auto;padding:6px 8px;font-size:var(--fs-3);line-height:1.4;resize:vertical}
.mitem select{height:32px;border:1px solid var(--line);padding:0 8px;font-size:var(--fs-3);background:var(--white)}
.add-row{display:flex;gap:8px;flex-wrap:wrap}
.add-row .input{flex:1;min-width:140px}
.add-row select.input{appearance:auto}
.settings-links{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.settings-link{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:16px 0;background:none;border:none;border-bottom:1px solid var(--line);cursor:pointer;text-align:left}
.settings-link:hover{opacity:.7}
.settings-link-title{font-size:14px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.settings-link-sub{display:block;font-size:var(--fs-3);color:var(--muted);margin-top:4px}
.group-title{margin:32px 0 12px}

/* ══ VISIONNEUSE ══ */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.94);z-index:1000;display:flex;align-items:center;justify-content:center;animation:fade .15s ease;cursor:zoom-out}
.lightbox-img{max-width:90vw;max-height:84vh;object-fit:contain;cursor:default;animation:zoomin .2s ease}
@keyframes zoomin{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.lb-btn{position:fixed;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1);border:none;color:var(--white);cursor:pointer;transition:background .15s}
.lb-btn:hover{background:rgba(255,255,255,.25)}
.lb-btn:disabled{opacity:.2;cursor:default}
.lb-close{top:20px;right:24px}
.lb-prev{top:50%;left:20px;transform:translateY(-50%)}
.lb-next{top:50%;right:20px;transform:translateY(-50%)}
.lb-counter{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.6);font-size:var(--fs-2);letter-spacing:var(--track-label)}
.lb-thumbs{position:fixed;bottom:48px;left:50%;transform:translateX(-50%);display:flex;gap:8px}
.lb-thumb{width:40px;height:52px;overflow:hidden;cursor:pointer;border:1px solid transparent;opacity:.5;transition:opacity .15s;background:rgba(255,255,255,.08);padding:0}
.lb-thumb:hover{opacity:.8}
.lb-thumb.is-on{border-color:var(--white);opacity:1}
.lb-thumb img{width:100%;height:100%;object-fit:cover}
.lb-loader,.lb-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:12px;color:rgba(255,255,255,.8);font-size:var(--fs-3);letter-spacing:var(--track-btn);pointer-events:none;text-align:center}
.lb-error{background:rgba(0,0,0,.6);padding:20px 28px;max-width:320px;line-height:1.5}
.spinner-light{border-color:rgba(255,255,255,.25);border-top-color:var(--white)}

/* ══ CHARGEMENT DES IMAGES ══
   Le proxy Drive met ~800 ms par image : sans retour visuel, on ne sait
   pas si ça charge ou si ça a planté. */
@keyframes shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
.img-loading{background-image:linear-gradient(90deg,var(--creme-2) 0%,var(--creme) 50%,var(--creme-2) 100%);background-size:800px 100%;animation:shimmer 1.8s linear infinite}
img.img-fade{opacity:0;transition:opacity .25s ease}
img.img-fade.ready{opacity:1}

/* ══ TOAST ══ */
.toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--white);padding:15px 22px;font-size:var(--fs-2);font-weight:500;line-height:1.3;letter-spacing:var(--track-label);text-transform:uppercase;box-shadow:var(--shadow-pop);z-index:1100;animation:rise .28s var(--ease) both;pointer-events:none;max-width:min(90vw,560px)}
.toast-error{background:var(--terracotta)}

/* ══ BARRES DE DÉFILEMENT ══ */
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--line)}
::-webkit-scrollbar-thumb:hover{background:var(--faint)}

/* ══ ÉCRANS ÉTROITS ══
   La maquette ne dessine que le bureau. Sous 960 px, les filtres passent
   dans un tiroir ; sous 640 px, tout passe en une colonne. */
@media (max-width:1100px){
  .detail-grid{gap:40px}
  .detail-name{font-size:48px}
}
@media (max-width:960px){
  :root{--page-pad:24px}
  .page{padding-top:32px}
  .gallery-layout{grid-template-columns:minmax(0,1fr)}
  .filters{position:fixed;top:0;left:0;bottom:0;width:min(340px,88vw);max-height:none;z-index:600;background:var(--white);padding:24px;box-shadow:var(--shadow-pop);transform:translateX(-105%);transition:transform .28s var(--ease)}
  body.filters-open .filters{transform:none}
  body.filters-open::after{content:'';position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:550}
  .filters .filters-close{display:flex}
  .filters-toggle{display:inline-flex}
  .detail-grid{grid-template-columns:minmax(0,1fr)}
  .detail-side{position:static}
}
@media (max-width:640px){
  :root{--page-pad:16px;--header-h:60px}
  .site-header-inner{grid-template-columns:auto 1fr auto;gap:12px}
  .site-nav{justify-self:center;gap:20px}
  .site-user-name{display:none}
  .brand-tag{display:none}
  .h1{font-size:32px}
  .page-head-actions .btn{padding:12px 14px}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px}
  .card-name{font-size:var(--fs-3)}
  .card-meta{font-size:var(--fs-2)}
  .card-actions{opacity:1}
  .detail-visual{grid-template-columns:minmax(0,1fr)}
  .thumbs{flex-direction:row;overflow-x:auto;order:2}
  .thumb{width:56px;flex:none}
  .detail-name{font-size:40px}
  .book-list{grid-template-columns:1fr}
  .modal{padding:24px 20px}
  .overlay{padding:0;align-items:stretch}
  .modal{min-height:100%}
  .form-grid{grid-template-columns:1fr}
  .tag-cat{grid-template-columns:1fr;gap:8px}
  .tag-cat-label{line-height:1.3}
  .modal-title{font-size:22px}
  .lb-prev{left:8px}.lb-next{right:8px}
}

/* ══ VUES DU BOOK (formulaire) — plusieurs photos par type ══ */
.vgroup{display:flex;flex-direction:column;gap:10px;padding:16px 0;border-bottom:1px solid var(--line)}
.vgroup:first-child{padding-top:0}
.vgroup.is-drag{background:var(--creme-2);outline:1px dashed var(--ink);outline-offset:4px}
.vgroup-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.vgroup .slots{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}
.slot-precision.input{height:34px;padding:0 10px;font-size:var(--fs-3)}
.slot-ref{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-3);cursor:pointer}
.slot-ref input{accent-color:var(--ink);margin:0}
.slot-btns{justify-content:space-between;align-items:center}
.slot-flag{position:absolute;left:6px;top:6px;background:var(--ocre);color:var(--ink);padding:3px 6px;font-size:var(--fs-0);font-weight:700;letter-spacing:var(--track-eyebrow)}

/* ══ ANNA — atelier de casting (maquette v2 : Créer, Compléter, le run) ══ */
.anna{display:flex;flex-direction:column;gap:40px}
.site-nav-item.has-alert::after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ocre);margin-left:8px;vertical-align:2px}
.anna-modes{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ink)}
.anna-mode{text-align:left;padding:22px 26px;border:none;cursor:pointer;background:var(--white);color:var(--ink);display:flex;flex-direction:column;gap:8px}
.anna-mode.is-on{background:var(--ink);color:var(--white)}
.anna-mode-t{font-size:var(--fs-3);font-weight:600;line-height:1;letter-spacing:var(--track-eyebrow)}
.anna-mode-s{font-size:var(--fs-4);line-height:1.4;letter-spacing:.02em;opacity:.75}

.anna-creer{display:flex;flex-wrap:wrap;gap:32px 48px;align-items:flex-start}
.anna-fiche{flex:0 1 280px;min-width:240px;position:sticky;top:calc(var(--header-h) + 24px);display:flex;flex-direction:column}
.anna-portrait{position:relative;height:300px;background:var(--creme);overflow:hidden}
.anna-portrait img{position:absolute;left:50%;bottom:0;height:90%;width:auto;transform:translateX(-50%);pointer-events:none}
.anna-badge{position:absolute;left:16px;bottom:16px;background:var(--ink);color:var(--white);padding:7px 10px;font-size:var(--fs-1);font-weight:700;line-height:1;letter-spacing:var(--track-label)}
.anna-fiche-body{border:1px solid var(--line);border-top:none;background:var(--white);padding:22px 22px 18px;display:flex;flex-direction:column;gap:10px}
.fiche-row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:var(--fs-3);line-height:1.3}
.fiche-row>span:last-child{text-align:right;color:var(--faint)}
.fiche-row .is-set{font-weight:600;color:var(--ink)}
.fiche-row .is-anna{font-style:italic;color:var(--muted)}
.anna-talk{flex:1 1 360px;min-width:0;display:flex;flex-direction:column;gap:28px;max-width:720px}
.anna-progress{display:flex;align-items:center;gap:14px}
.bar{flex:1;height:2px;background:var(--line);overflow:hidden;position:relative}
.bar>div{height:2px;background:var(--ink);transition:width 420ms var(--ease)}
.bar .bar-indeterminate{position:absolute;top:0;left:-40%;width:40%;height:2px;background:var(--ink);animation:indet 1.6s var(--ease) infinite}
@keyframes indet{0%{left:-40%}100%{left:100%}}
.thread{display:flex;flex-direction:column}
.thread-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 20px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--creme)}
.thread-q{font-size:var(--fs-4);color:var(--muted)}
.thread-row .chip{height:auto;padding:6px 10px}
.thread-react{grid-column:1/-1;font-size:var(--fs-3);font-style:italic;color:var(--brun)}
.anna-q{display:flex;flex-direction:column;gap:22px;animation:rise 420ms var(--ease) both}
.anna-bubble-row{display:flex;gap:16px;align-items:flex-start}
.anna-avatar{width:56px;height:56px;border-radius:50%;flex:none;background:var(--white) url(../assets/anna/avatar.webp) no-repeat;background-size:112% auto;background-position:50% 18%;box-shadow:0 0 0 1px var(--line)}
.anna-bubble{position:relative;flex:1;background:var(--creme);padding:18px 22px}
.anna-bubble::before{content:"";position:absolute;left:-8px;top:18px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:8px solid var(--creme)}
.anna-bubble p{font-size:22px;line-height:1.35;text-wrap:pretty}
.anna-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.anna-tile{text-align:left;cursor:pointer;padding:18px 16px 16px;background:var(--white);color:var(--ink);border:1px solid var(--line);display:flex;flex-direction:column;gap:10px;min-height:112px}
.anna-tile:hover{border-color:var(--ink)}
.anna-tile.is-on{background:var(--sable);border-color:var(--sable)}
.anna-tile-t{font-size:var(--fs-4);font-weight:700;line-height:1;letter-spacing:.06em}
.anna-tile-s{font-size:var(--fs-3);line-height:1.45;opacity:.8}
.anna-chip{height:40px;padding:0 16px;font-size:var(--fs-3);letter-spacing:.04em}
.anna-other{display:flex;border:1px solid var(--ink)}
.anna-other .input{border:none;height:48px;font-size:15px}
.anna-other .btn{flex:none}
.anna-precisions{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px}
.anna-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.anna-slots .slot-visual{flex-direction:column;gap:8px}
.anna-slots .preview-remove{position:absolute;top:6px;right:6px}
.anna-vues{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0 24px}
.anna-vues .fopt{border-bottom:1px solid var(--line);padding:12px 0;font-size:14px}
.anna-vues .fopt[aria-disabled="true"]{cursor:default}
.anna-vues .fopt[aria-disabled="true"] .box{background:var(--muted);border-color:var(--muted)}
.anna-vues .fopt[aria-disabled="true"] .box svg{display:block}
.anna-launch{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.anna-launch .field-hint{flex:1;min-width:200px}

.anna-completer{display:flex;flex-wrap:wrap;gap:48px 64px;align-items:flex-start}
.anna-completer-main{flex:1 1 520px;min-width:0;display:flex;flex-direction:column;gap:44px}
.anna-sec{display:flex;flex-direction:column;gap:16px}
.anna-sec-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.anna-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;max-height:520px;overflow-y:auto;padding:4px}
.anna-pick-item{padding:0;border:none;background:none;cursor:pointer;display:flex;flex-direction:column;gap:8px;text-align:left}
.anna-pick-img{display:block;width:100%;aspect-ratio:3/4;background:var(--creme);outline:2px solid transparent;outline-offset:2px;overflow:hidden}
.anna-pick-img img{width:100%;height:100%;object-fit:cover}
.anna-pick-item.is-on .anna-pick-img{outline-color:var(--ink)}
.anna-pick-item .card-name{font-size:var(--fs-2)}
.anna-picked{display:flex;align-items:flex-end;gap:20px}
.anna-picked .anna-pick-img{width:160px;flex:none;outline-color:var(--ink)}
.anna-picked-text{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-bottom:4px}
.anna-picked .card-name{font-size:var(--fs-5)}
.anna-aside{flex:1 0 300px;max-width:380px;position:sticky;top:calc(var(--header-h) + 40px);display:flex;flex-direction:column;gap:24px;background:var(--creme-2);padding:28px}
.anna-aside .anna-vues{grid-template-columns:1fr}

.anna-reglages{border-top:1px solid var(--line);padding-top:20px}
.anna-reglages summary{cursor:pointer}
.anna-reglages-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0 24px;margin-top:20px}

/* Le run */
.run-steps{display:flex;gap:28px}
.run-step{display:flex;flex-direction:column;gap:10px;min-width:96px}
.run-step span:first-child{height:2px;background:var(--line)}
.run-step.is-on span:first-child{background:var(--ink)}
.run-step .label{color:var(--muted)}
.run-step.is-on .label{color:var(--ink)}
.run-grid{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:64px;align-items:start}
.run-side,.run-aside{display:flex;flex-direction:column;gap:22px}
.run-side{padding-top:24px;max-width:520px}
.run-book{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:start}
.run-aside{position:sticky;top:calc(var(--header-h) + 40px);background:var(--creme-2);padding:28px}
.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:28px 16px}
.book-tile{display:flex;flex-direction:column;gap:10px}
.book-tile .stage.is-pending{background:var(--creme-2)}
.run-anna{display:flex;align-items:flex-end;gap:14px}
.anna-run-img{height:150px;width:auto;flex:none}
.run-aside .anna-run-img{height:110px}
.run-text{font-size:24px;line-height:1.35;text-wrap:pretty}
.run-aside .run-text{font-size:18px;line-height:1.45}
.run-title{font-size:30px;font-weight:700;line-height:1.15;letter-spacing:.02em}
.run-sub{font-size:14px;line-height:1.6;text-wrap:pretty;white-space:pre-line}
.run-actions{display:flex;gap:12px;flex-wrap:wrap}
.run-actions .btn{flex:1}
.tag-ask{background:var(--ocre);padding:6px 9px;font-size:var(--fs-1);font-weight:600;line-height:1;letter-spacing:var(--track-eyebrow)}
.anna-retouch{display:flex;flex-direction:column;gap:8px}
.anna-retouch textarea{height:auto;padding:10px;font-size:var(--fs-3);resize:none}
.anna-brand-list{max-height:176px;overflow-y:auto;border:1px solid var(--line);border-top:none;padding:0 10px}
.anna-verdict summary{cursor:pointer}
.anna-verdict .run-sub{margin-top:10px}
.anna-tech{border-top:1px solid var(--line);padding-top:20px}
.anna-tech summary{cursor:pointer}
.anna-tech .field-hint{margin:12px 0}
.anna-log{max-height:360px;overflow:auto;background:var(--creme-2);padding:14px 16px;font-size:var(--fs-2);line-height:1.5;white-space:pre-wrap;font-family:ui-monospace,Consolas,monospace}
.anna-prompts{display:grid;gap:4px;margin-top:8px}
.anna-prompt{border-bottom:1px solid var(--line);padding:10px 0}
.anna-prompt .anna-log{margin-top:6px}

@media (max-width:960px){
  .anna-fiche{position:static;flex-basis:100%}
  .anna-portrait{height:220px}
  .run-grid,.run-book{grid-template-columns:minmax(0,1fr);gap:32px}
  .run-aside,.anna-aside{position:static;max-width:none}
}
@media (max-width:640px){
  .anna-modes{grid-template-columns:1fr}
  .anna-precisions{grid-template-columns:1fr}
  .anna-bubble p{font-size:18px}
  .run-steps{gap:12px;width:100%}
  .run-step{min-width:0;flex:1}
  .run-text{font-size:19px}
  .run-title{font-size:24px}
  .book-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ── PARTAGE : mode sélection (équipe) et sélection partagée (sans compte) ── */
.card.is-selectable .card-link{cursor:pointer}
.card-check{position:absolute;bottom:12px;right:12px;z-index:2;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.9);border:1px solid var(--faint)}
.card-check svg{display:none;width:12px;height:12px}
.card.is-selected .card-check{background:var(--ink);border-color:var(--ink)}
.card.is-selected .card-check svg{display:block}
.card.is-selected .card-visual{outline:2px solid var(--ink);outline-offset:3px}
.select-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;padding:14px 24px;background:var(--white);border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(0,0,0,.06)}
.select-bar[hidden]{display:none}
.select-count{font-size:var(--fs-2);font-weight:600;letter-spacing:var(--track-label)}
.select-spacer{flex:1}
body.is-selecting .page{padding-bottom:96px}
.share-note{margin-top:12px;font-size:var(--fs-3);color:var(--muted)}
.is-shared .site-nav,.is-shared .site-user,.is-shared .filters,.is-shared .filters-toggle,.is-shared #btn-select,.is-shared #btn-add-mannequin{display:none !important}
.is-shared .gallery-layout{grid-template-columns:minmax(0,1fr)}
.mitem.is-off{opacity:.55}
.mitem-actions{display:flex;gap:8px;flex:none}
@media (max-width:640px){
  .select-bar{padding:12px 16px}
  .select-spacer{display:none}
}

/* ── GABARITS DE PROPORTIONS (Paramètres > Anna) ── */
.gabarits-list{max-height:60vh}
.mitem.gabarit{align-items:flex-start}
.gabarit-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}
.gabarit-prop{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.gabarit-img{display:block;width:96px;aspect-ratio:3/4;background:var(--creme);overflow:hidden;outline:1px solid var(--line)}
.gabarit-img img{width:100%;height:100%;object-fit:contain}
.gabarit-img.is-on{outline:2px solid var(--ink);outline-offset:2px}

/* ── TEMPLATES DE MORPHOLOGIE (choix au lancement, fiche) ── */
.anna-morpho{margin-top:20px}
.morpho-pick{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.morpho-item{display:flex;align-items:flex-start;gap:12px;padding:8px;background:var(--white);border:1px solid var(--line);cursor:pointer;text-align:left}
.morpho-item.is-on{border-color:var(--ink)}
.morpho-item .gabarit-img{width:56px;flex:none}
.morpho-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.morpho-name{font-size:var(--fs-3);font-weight:600}
.morpho-fiche{display:flex;align-items:flex-start;gap:12px;margin-top:8px}
.morpho-fiche .gabarit-img{width:64px;flex:none}
.morpho-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}
.morpho-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:10px;background:var(--white);border:1px solid var(--line);cursor:pointer;text-align:left}
.morpho-card.is-on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.morpho-card-img{display:block;width:100%;aspect-ratio:3/4;background:var(--creme)}
.morpho-card-img img{width:100%;height:100%;object-fit:contain}
.morpho-stature{font-size:var(--fs-1);font-weight:600;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--muted)}
