/*
|--------------------------------------------------------------------------
| STUDIO — la feuille de l'app de l'AGENCE (v4.17.0 §A)
|--------------------------------------------------------------------------
|
| Portée de `MAQUETTE-ESPACE-AGENCE-V1.html`, la maquette validée par le gérant. Tout ce qui est
| commun à l'app du client vient de `socle.css` (jetons, en-tête, tuiles, cartes, pastilles,
| fil, formulaires, barre du bas, cloche, porte) ; cette feuille n'ajoute que ce qui n'existe
| qu'ici — les cartes d'espace, les blocs « attend l'agence » / « chez les clients », les
| filtres, les formulaires de saisie, les réunions et les demandes, et la COQUILLE D'ORDINATEUR
| (barre latérale, barre du haut, onglets, tableau).
|
| Une seule coquille responsive, pas deux apps : le même HTML, la feuille décide.
*/
@import "./socle.css";

/* ---------- la coquille : téléphone par défaut, ordinateur à partir de 1024 px ---------- */
.app.studio{max-width:none;border:none;box-shadow:none;flex-direction:row;align-items:stretch}
.studio .main{display:flex;flex-direction:column;min-height:100dvh;flex:1 1 auto;min-width:0;max-width:720px;margin:0 auto;width:100%}
.studio .side,.studio .topbar,.studio .tabs,.studio .dh{display:none}
.studio .content{flex:1 1 auto}
@media (min-width:721px) and (max-width:1023px){
  .studio .main{border-left:1px solid var(--line);border-right:1px solid var(--line);box-shadow:var(--shadow-lift)}
}
@media (min-width:1024px){
  body{background:var(--bg)}
  .app.studio{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100dvh}
  .studio .main{max-width:none;margin:0;min-height:100dvh}
  .studio .top,.studio .nav{display:none}
  .studio .side{display:flex}
  .studio .topbar{display:flex}
  .studio .tabs{display:flex}
  .studio .dh{display:flex}
  .studio .content{max-width:1180px;padding:24px 26px 40px;width:100%}
  .studio .screen{padding:0}
}

/* la barre latérale */
.side{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;min-height:0;position:sticky;top:0;height:100dvh}
.side .sbrand{padding:18px 18px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);min-width:0}
.wordmark-suffixe{font-weight:700;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);flex:0 0 auto}
.side .snav{padding:10px 10px 4px;display:flex;flex-direction:column;gap:2px}
.side .snav a{display:flex;align-items:center;gap:10px;color:var(--muted);font-weight:700;font-size:13px;padding:9px 10px;border-radius:10px;min-height:40px}
.side .snav a:hover{color:var(--ink);background:var(--surface-2)}
.side .snav a.on{background:var(--accent-soft);color:var(--accent)}
.side .snav a .b,.side .sesp a .b,.tabs a .b{margin-inline-start:auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--gold);color:var(--gold-ink);font-size:10.5px;font-weight:800;display:grid;place-items:center;flex:0 0 auto}
.side .slabel{margin:14px 18px 8px}
/* ⚠️ v4.17.3 §D — LE JUMEAU de `.cloche-liste` : même patron (un enfant défilant d'une colonne
   flex bornée), même `min-height:0` manquant. Sans lui, une agence qui suit quinze marchés voyait
   la liste déborder vers le bas et pousser le pied de la barre latérale — son nom, le thème —
   hors de l'écran, sans jamais pouvoir défiler jusqu'au dernier espace. */
.side .sesp{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 10px 12px;display:flex;flex-direction:column;gap:2px}
.side .sesp a{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:600;font-size:12.5px;padding:8px 10px;border-radius:10px;min-height:44px}
.side .sesp a:hover{background:var(--surface-2)}
.side .sesp a .crest{width:26px;height:26px;font-size:8.5px;border-radius:7px;flex:0 0 auto}
.side .sesp a .t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side .sesp a .t small{display:block;color:var(--faint);font-weight:500;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side .sesp a.on{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}
.side .sfoot{border-top:1px solid var(--line);padding:12px 14px;display:flex;align-items:center;gap:10px;font-size:12.5px}
.side .sfoot .t{flex:1;min-width:0}
.side .sfoot .t b{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side .sfoot .t span{color:var(--muted);font-size:11px}

/* la barre du haut */
.topbar{align-items:center;gap:12px;padding:14px 26px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30}
.topbar .search{margin:0;flex:0 1 380px;padding:8px 12px}
.topbar .mock{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.topbar .right{margin-inline-start:auto;display:flex;align-items:center;gap:9px;flex:0 0 auto}

/* l'en-tête d'un espace et ses onglets (ordinateur) */
.dh{align-items:flex-end;gap:14px;margin-bottom:16px}
.dh-espace{display:flex;gap:14px;align-items:center;min-width:0}
.crest.grand{width:52px;height:52px;font-size:14px;border-radius:14px;flex:0 0 auto}
.tabs{gap:4px;border-bottom:1px solid var(--line);margin:0 0 18px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs a{border:none;background:none;color:var(--muted);font-weight:700;font-size:13px;padding:10px 12px;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:inline-flex;gap:6px;align-items:center;min-height:44px}
.tabs a:hover{color:var(--ink)}
.tabs a.on{color:var(--accent);border-bottom-color:var(--accent)}
.tabs a .b{margin-inline-start:0;min-width:17px;height:17px;font-size:10px}

/* deux colonnes sur ordinateur */
.dcols{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.dcols>div{min-width:0}
@media (min-width:1024px){
  .dcols{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)}
  .dcols .wait{margin-top:0}
  .dgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
  .dgrid .esp{align-items:flex-start}
}

/* le tableau des publications (ordinateur) */
.dtable{display:none}
@media (min-width:1024px){
  .list.publications-tel{display:none}
  .dtable{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);overflow:hidden}
  .dtable .tr{display:grid;grid-template-columns:52px 1.6fr 1fr .8fr .9fr;gap:12px;align-items:center;padding:11px 14px;border-top:1px solid var(--line);font-size:13px;color:inherit}
  .dtable a.tr:hover{background:var(--surface-2)}
  .dtable .tr:first-child{border-top:none;background:var(--surface-2);color:var(--faint);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
  .dtable .tr .pubthumb{width:44px;height:44px;border-radius:10px;font-size:7.5px}
  .dtable .tr .t b{display:block;font-weight:700}
  .dtable .tr .t span{color:var(--muted);font-size:11.5px}
  .dtable .tr .acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
}

/* ---------- l'en-tête téléphone : l'avatar et la puce de marque ---------- */
.avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:800;font-size:12px;flex:0 0 auto;text-decoration:none}
.chip.brand-chip{color:var(--gold-strong);background:var(--gold-soft);border-color:var(--gold-line)}
.top .row2 .chip{min-width:0;overflow:hidden;text-overflow:ellipsis}

/* ---------- attend l'agence (or) & chez les clients (accent) ---------- */
.todo .kind{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.todo .kind .espt{margin-inline-start:auto;color:var(--gold-strong);background:var(--gold-soft);border:1px solid var(--gold-line);padding:1px 8px;border-radius:999px;font-size:10.5px;letter-spacing:.02em;text-transform:none;white-space:nowrap}
.todo .acts .btn{min-height:40px;padding:9px 14px}
.wait{margin-top:12px;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:var(--r-lg);padding:14px 16px;box-shadow:var(--shadow)}
.wait .lab{font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:8px}
.wait .lab .n{margin-inline-start:auto;font-variant-numeric:tabular-nums}
.wait .wl{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px dashed color-mix(in srgb,var(--accent) 25%,transparent);font-size:12.5px}
.wait .wl:first-of-type{border-top:none;margin-top:6px}
.wait .wl .t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit}
.wait .wl .t b{display:block;font-weight:700;color:var(--ink)}
.wait .wl .t span{color:var(--muted);font-size:11.5px}
.wait .wl .late{color:var(--bad);font-weight:700;font-size:11px;background:var(--bad-soft);padding:2px 7px;border-radius:999px;white-space:nowrap}
.relance{border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);background:var(--surface);color:var(--accent);font-weight:700;font-size:11.5px;padding:6px 10px;border-radius:999px;white-space:nowrap;min-height:34px}
.relance:hover{background:var(--accent);color:var(--accent-ink)}

/* boutons propres à l'agence */
.btn.gold{background:var(--gold);color:var(--gold-ink)}
.btn.danger{background:transparent;color:var(--bad);border:1px solid color-mix(in srgb,var(--bad) 35%,transparent)}
.btn.small{padding:8px 12px;font-size:12.5px;border-radius:9px;flex:0 0 auto;min-height:36px}
.btn.ghost.souple{flex:1}
.cta{margin:0 0 16px}
.slabel{display:flex;align-items:center;gap:8px}
.slabel .cnt{margin-inline-start:auto;color:var(--muted);font-weight:600;letter-spacing:0;text-transform:none}

/* ---------- recherche & filtres ---------- */
.search{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--faint);font-size:13px;box-shadow:var(--shadow);margin:16px 0 10px}
/* v4.17.2 §C — 16px : en dessous, iOS zoome la page dès qu'on touche le champ. */
.search input{border:none;background:none;flex:1;font-size:16px;color:var(--ink);outline:none;min-width:0;font-family:inherit}
.filters{display:flex;gap:7px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.filters a,.filters button{flex:0 0 auto;border:1px solid var(--line);background:var(--surface);color:var(--muted);font-weight:700;font-size:12px;padding:7px 12px;border-radius:999px;min-height:36px;display:inline-flex;align-items:center}
.filters a.on,.filters button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.filters .b{display:inline-grid;place-items:center;min-width:17px;height:17px;padding:0 5px;border-radius:999px;background:var(--gold);color:var(--gold-ink);font-size:10px;margin-inline-start:5px}

/* ---------- les cartes d'espace ---------- */
.esp{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;display:flex;gap:12px;align-items:flex-start;box-shadow:var(--shadow);width:100%;text-align:start;color:inherit}
.esp:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.esp.hot{border-color:var(--gold-line);background:linear-gradient(180deg,color-mix(in srgb,var(--gold-soft) 55%,var(--surface)),var(--surface))}
.esp .crest{flex:0 0 auto;width:42px;height:42px;font-size:11.5px}
.esp .eb{flex:1;min-width:0}
.esp .en{font-weight:800;font-size:14.5px;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.esp .en .by{font-weight:600;font-size:11px;color:var(--muted)}
.esp .em{color:var(--muted);font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.esp .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.esp .who{display:flex;align-items:center;margin-top:9px;gap:6px;color:var(--faint);font-size:11px;flex-wrap:wrap}
.esp .who .av{width:20px;height:20px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:9px;font-weight:800;margin-inline-end:-8px;border:2px solid var(--surface)}
.esp .who .av:last-of-type{margin-inline-end:4px}
.esp .chev{color:var(--faint);flex:0 0 auto;align-self:center}

/* ---------- tuiles « Nouveau » ---------- */
.tiles.four{grid-template-columns:repeat(4,1fr)}
.tile.act{align-items:center;text-align:center;gap:7px;padding:12px 6px}
.tile.act .tic{background:var(--accent);color:var(--accent-ink);width:38px;height:38px;border-radius:12px}
.tile.act .tl{font-size:11.5px;font-weight:700}

/* ---------- la fiche d'une publication (agence) ---------- */
.post .visual .swap{position:absolute;top:12px;inset-inline-end:12px;background:var(--plaque);color:#1b1d25;border:1px solid var(--plaque-line);border-radius:999px;font-weight:700;font-size:11px;padding:6px 10px;display:inline-flex;gap:6px;align-items:center;cursor:pointer;min-height:32px}
.post .visual .swap input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.stateline{margin-top:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;box-shadow:var(--shadow);font-size:12.5px;color:var(--muted);line-height:1.5}
.stateline b{color:var(--gold-strong)}
.actstack{margin-top:12px}
.actrow .btn{flex:1}
.actrow .btn.small{flex:0 0 auto}
.notes-internes{margin-top:12px;background:var(--gold-soft);border:1px dashed var(--gold-line);border-radius:var(--r-md);padding:11px 13px;font-size:12.5px;color:var(--ink);white-space:pre-line}
.notes-internes .nl{display:block;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-strong);margin-bottom:4px}

/* ---------- formulaires de saisie ---------- */
.form{display:flex;flex-direction:column;gap:13px}
.field label{display:block;font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.02em;margin:0 2px 6px}
.field label i{font-style:normal;color:var(--gold-strong);font-weight:700;margin-inline-start:4px}
.field label small{color:var(--faint);font-weight:500}
/* v4.17.2 §C — Idem pour TOUS les champs des formulaires de Studio : proposer une publication
   depuis le téléphone ne doit pas faire sauter l'écran à chaque champ touché. */
.input{width:100%;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 13px;font-size:16px;color:var(--ink);box-shadow:var(--shadow);font-family:inherit;min-height:44px}
.input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}
select.input{appearance:none}
textarea.input{min-height:84px;resize:vertical;line-height:1.45}
textarea.input[dir="rtl"]{text-align:right}
.two{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chips button{border:1px solid var(--line);background:var(--surface);color:var(--muted);font-weight:700;font-size:12.5px;padding:8px 12px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;min-height:40px}
.chips button.on{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}
.chips .net{width:20px;min-width:20px;height:20px;font-size:9px;border-radius:6px;padding:0}
.drop{border:1.5px dashed color-mix(in srgb,var(--accent) 40%,var(--line));background:var(--surface);border-radius:var(--r-md);padding:16px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;box-shadow:var(--shadow)}
.drop .dic{width:44px;height:44px;border-radius:14px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}
.drop .dt{font-weight:700;font-size:13.5px}
.drop .dm{color:var(--muted);font-size:12px;margin-top:-4px}
.drop .dacts{display:flex;gap:8px;width:100%}
.drop .dacts .btn{padding:10px 12px;font-size:12.5px;position:relative;overflow:hidden}
.drop .dacts .btn input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;font-size:0}
.preview{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:10px;box-shadow:var(--shadow);display:flex;gap:12px;align-items:center}
.preview .pv{flex:0 0 auto;width:74px;height:74px;border-radius:12px;background:var(--surface-2);overflow:hidden;display:grid;place-items:center;color:var(--accent)}
.preview .pv img{width:100%;height:100%;object-fit:cover}
.preview .pb{flex:1;min-width:0}
.preview .pn{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.preview .pm{color:var(--muted);font-size:11.5px;display:block;margin-top:2px}
.preview .pacts{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.preview .pacts button,.preview .pacts label{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);font-weight:700;font-size:11.5px;padding:6px 10px;border-radius:999px;min-height:32px;display:inline-flex;align-items:center;position:relative;overflow:hidden;cursor:pointer}
.preview .pacts label input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer;font-size:0}
.preview .pacts .rm{color:var(--bad)}
.stick{position:sticky;bottom:calc(64px + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,var(--bg) 35%);padding:14px 0 2px;margin-top:6px;z-index:5}
@media (min-width:1024px){.stick{bottom:0}}
.help{font-size:12px;color:var(--faint);margin:-4px 2px 0}
.coche{margin:0}

/* ---------- réunions & demandes ---------- */
.meet{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:15px;box-shadow:var(--shadow)}
.meet + .meet{margin-top:10px}
.meet .mh{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.meet .mh .cal{flex:0 0 auto;width:46px;height:48px;border-radius:11px;border:1px solid var(--line);overflow:hidden;text-align:center;background:var(--surface-2)}
.meet .mh .cal .m{background:var(--accent);color:var(--accent-ink);font-size:10px;font-weight:700;padding:3px 0;text-transform:uppercase;letter-spacing:.05em}
.meet .mh .cal .d{font-size:19px;font-weight:800;padding:3px 0;font-variant-numeric:tabular-nums}
.meet .mt{font-weight:800;font-size:15px;letter-spacing:-.01em}
.meet .mm{color:var(--muted);font-size:12.5px;margin-top:2px}
.meet .mh .pill{margin-inline-start:auto;align-self:flex-start}
.meet .counter{margin-top:12px;background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:var(--r-sm);padding:10px 12px;font-size:12.5px;color:var(--gold-strong)}
.meet .counter b{display:block;font-size:13.5px;color:var(--ink);margin-bottom:2px}
.meet .form{margin-top:12px}
.req{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;box-shadow:var(--shadow);display:flex;gap:11px;align-items:flex-start;width:100%;text-align:start;color:inherit;flex-wrap:wrap}
.req .rav{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--gold-soft);border:1px solid var(--gold-line);color:var(--gold-strong);display:grid;place-items:center;font-weight:800;font-size:10.5px}
.req .rb{flex:1;min-width:0}
.req .rn{font-weight:700;font-size:13.5px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.req .rn .espt{margin-inline-start:auto;font-size:10.5px;color:var(--muted);font-weight:600}
.req .rt{font-size:12.5px;line-height:1.45;color:var(--ink);margin-top:4px;white-space:pre-line}
.req .rt.court{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.req .rm{color:var(--faint);font-size:11.5px;margin-top:6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.req .reponse{flex:1 1 100%;margin-top:8px}
.req .reponse .actrow{margin-top:8px}

/* ---------- le compte ---------- */
.toggle{width:44px;height:26px;border-radius:999px;background:var(--accent);position:relative;flex:0 0 auto;border:none;padding:0}
.toggle::after{content:"";position:absolute;top:3px;inset-inline-start:21px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s}
.toggle[aria-checked="false"]{background:var(--line)}
.toggle[aria-checked="false"]::after{inset-inline-start:3px}
@media (prefers-reduced-motion:reduce){.toggle::after{transition:none}}
.opt .chev{color:var(--faint);flex:0 0 auto}
a.opt{color:inherit}
a.opt:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}

/* ---------- la porte de Studio ---------- */
.porte .marque .wordmark-suffixe{margin-inline-start:6px}
.porte .refus{margin-top:10px}
