/* Espace partenaire : compléments aux styles communs (base.css) */
.side .brand small{ color:var(--orange); }
.pa-name{ padding:0 8px 12px; font-weight:800; font-size:15px; overflow-wrap:anywhere; }
.pa-name small{ display:block; color:var(--steel); font-weight:600; font-size:12px; }
.nav-btn .dot{ margin-left:auto; min-width:20px; height:20px; padding:0 6px; border-radius:10px; background:var(--red); color:#fff; font-size:11px; font-weight:800; display:grid; place-items:center; }

.chip.pending{ background:rgba(255,176,32,.15); color:#ffc766; }
.chip.rejected{ background:rgba(255,90,90,.16); color:#ff9a9a; }
.chip.text{ background:rgba(80,92,182,.3); color:var(--violet-hi); }
.reason{ margin-top:10px; padding:10px 12px; border-radius:8px; background:rgba(255,90,90,.08); border:1px solid rgba(255,90,90,.35); font-size:14px; }
.reason b{ color:#ff9a9a; }
.goal{ display:flex; align-items:center; gap:10px; }

.choice{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.choice .type-card.on{ border-color:var(--orange); background:rgba(255,97,0,.06); }
.words{ display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; font-size:13px; color:var(--steel); }
.words b{ color:var(--paper); }
.words .over{ color:#ffc766; }
.progress{ height:6px; background:var(--ink); border-radius:3px; overflow:hidden; flex:1; min-width:120px; }
.progress > i{ display:block; height:100%; background:var(--violet-hi); transition:width .2s; }
.intro{ background:linear-gradient(135deg, rgba(254,0,2,.14), rgba(80,92,182,.14)); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px; margin-bottom:18px; }
.intro h2{ margin:0 0 4px; font-size:17px; }
.intro p{ margin:0; color:var(--steel); font-size:14px; }
.steps3{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px; }
.steps3 div{ background:rgba(14,15,30,.5); border-radius:8px; padding:10px 12px; font-size:13px; color:var(--steel); }
.steps3 b{ display:block; color:var(--paper); font-size:14px; }

.logo-box{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.logo-prev{ width:84px; height:84px; border-radius:12px; background:var(--ink); border:1px solid var(--line); display:grid; place-items:center; overflow:hidden; color:var(--steel); font-size:12px; text-align:center; }
.logo-prev img{ width:100%; height:100%; object-fit:contain; }
.pin-state{ font-weight:700; }
.pin-state.ok{ color:#6fe3a3; }
.pin-state.no{ color:#ffc766; }
.inline-form{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.inline-form .input{ width:auto; flex:1; min-width:160px; max-width:260px; }
.code-in{ text-transform:uppercase; letter-spacing:.12em; font-family:ui-monospace,Menlo,monospace; }
.login .code{ font-size:28px; letter-spacing:.4em; text-align:center; font-weight:800; }
.login .sent{ color:var(--steel); font-size:14px; margin:0; }

@media (max-width:860px){
  .pa-name{ width:100%; padding:6px 0; display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; } .pa-name small{ display:none; } .sw-add{ margin:0; } .sw-sel{ width:auto; max-width:100%; margin:0; }
  .choice, .steps3{ grid-template-columns:1fr; }
}

/* Inscription, bandeaux de fiche */
.signup-cta{ display:flex; flex-direction:column; gap:8px; align-items:stretch; border-top:1px solid var(--line); padding-top:14px; }
.signup-cta span{ color:var(--steel); font-size:14px; }
.su-title{ margin:0; font-size:20px; }
.login .box{ max-width:480px; }
.field.bad .input, .field.bad .textarea{ border-color:#ff8a8a; box-shadow:0 0 0 3px rgba(255,90,90,.15); }
.field.bad label{ color:#ff9a9a; }
.banner{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; border-radius:var(--radius); padding:12px 16px; margin-bottom:16px; font-size:14px; }
.banner.warn{ background:rgba(255,176,32,.1); border:1px solid rgba(255,176,32,.45); color:#ffd58a; }
.banner.info{ background:rgba(80,92,182,.18); border:1px solid rgba(154,162,242,.4); color:var(--paper); }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.sw-sel{ font-weight:800; padding:8px 10px; margin-bottom:4px; }
.sw-add{ display:block; margin-top:8px; font-size:13px; }
.acc-list{ list-style:none; padding:0; margin:0 0 12px; display:flex; flex-direction:column; gap:4px; }
.acc-list b{ overflow-wrap:anywhere; }
.by-line{ margin-top:4px; font-size:12px; }
.nowrap{ white-space:nowrap; }

/* Formule et paiement */
.chip.unpaid{ background:rgba(254,0,2,.18); color:#ff8a8a; }
.offers{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; }
.type-card.offer strong{ font-size:18px; color:var(--paper); margin-top:4px; font-variant-numeric:tabular-nums; }
.type-card.offer.on{ border-color:var(--orange); background:rgba(255,97,0,.06); }
.opt-list{ display:flex; flex-direction:column; gap:8px; }
.opt{ display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; background:var(--ink); border:1px solid var(--line); border-radius:8px; padding:10px 12px; cursor:pointer; }
.opt input{ width:18px; height:18px; accent-color:var(--orange); }
.opt small{ display:block; color:var(--steel); font-size:12px; }
.opt b{ font-variant-numeric:tabular-nums; white-space:nowrap; }
.opt.forced{ opacity:.85; cursor:default; }
.opt.blocked{ opacity:.45; cursor:not-allowed; }
.opt.blocked b{ text-decoration:line-through; }
.quote{ background:var(--ink); border:1px solid var(--line); border-radius:var(--radius); padding:12px 14px; }
.quote table{ width:100%; border-collapse:collapse; font-size:14px; }
.quote td{ padding:5px 0; }
.quote .num{ text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; padding-left:12px; }
.quote .disc td{ color:#6fe3a3; }
.quote .sum td{ border-top:1px solid var(--line); padding-top:8px; font-weight:700; }
.quote .ttc td{ font-size:18px; font-weight:800; color:var(--paper); }
.quote .help{ margin-top:8px; }
.legal-link{ display:block; margin-top:10px; font-size:12px; color:var(--steel); }
/* Image de l'annonce : aperçu dans le formulaire */
.visual-prev:empty{ display:none; }
.visual-prev img{ display:block; width:120px; height:80px; object-fit:cover; border-radius:8px; border:1px solid var(--line); }
/* Menu : titres de groupes (masqués sur téléphone, où le menu tient en une barre) */
.nav-group{ margin:14px 12px 2px; font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--steel); opacity:.75; }
.side .brand + .nav-group, .pa-name + .nav-group{ margin-top:4px; }
@media (max-width:860px){ .nav-group{ display:none; } }
/* Établissement public : type de dépôt (annonce, info officielle, alerte urgente) */
.choice.choice-3{ grid-template-columns:repeat(3, 1fr); }
.choice .type-card.ty-urgent.on{ border-color:var(--red); background:rgba(254,0,2,.08); }
.alert-sec{ border-left:4px solid var(--red); }
@media (max-width:640px){ .choice.choice-3{ grid-template-columns:1fr; } }

/* Programme de test : invitation à l'inscription ; retours et FAQ */
.op-join{ display:flex; gap:10px; align-items:flex-start; padding:12px; border-radius:10px; cursor:pointer; background:linear-gradient(135deg, rgba(255,97,0,.16), rgba(80,92,182,.14)); border:1px solid rgba(255,97,0,.5); }
.op-join input{ width:20px; height:20px; margin:2px 0 0; flex-shrink:0; accent-color:var(--orange); }
.op-join span{ display:flex; flex-direction:column; gap:3px; }
.op-join small{ color:var(--steel); font-size:13px; line-height:1.4; }
.fb-rec{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:10px 12px; border-radius:10px; border:1px solid var(--line); }
.fb-rec.on{ border-color:var(--red); background:rgba(254,0,2,.08); }
.fb-rec audio{ max-width:100%; height:36px; }
.fb-rec .btn{ margin-left:auto; }
.fb-dot{ width:12px; height:12px; border-radius:50%; background:var(--red); animation:fbpulse 1.2s ease-in-out infinite; }
@keyframes fbpulse{ 50%{ opacity:.35; } }
@media (prefers-reduced-motion: reduce){ .fb-dot{ animation:none; } }
.fb-card p{ margin:8px 0 0; line-height:1.5; }
.fb-card audio{ display:block; margin-top:8px; max-width:100%; }
.fb-reply{ margin-top:10px; padding:10px 12px; border-left:3px solid var(--orange); background:rgba(255,97,0,.07); border-radius:0 8px 8px 0; }
.fb-reply p{ margin:4px 0 0; }
.fb-faq{ padding:12px 0; border-bottom:1px solid var(--line); }
.fb-faq:last-child{ border-bottom:0; }
.fb-faq summary{ cursor:pointer; font-weight:700; }
.fb-faq p{ margin:8px 0 0; color:var(--steel); line-height:1.5; }
.ok-msg{ color:#6fe3a3; font-size:13px; font-weight:600; }
/* Top Flash : case dans le formulaire du Flash, puis calendrier des heures (écran suivant) */
.chip.tf{ background:rgba(47,191,113,.16); color:#6fe3a3; }
.tf-toggle{ grid-template-columns:auto 1fr; }
.tf-toggle b{ display:block; }
.tf-sum{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; background:var(--ink); border:1px solid var(--line); border-radius:8px; padding:10px 12px; }
.tf-layout{ display:grid; grid-template-columns:280px minmax(0, 1fr); gap:16px; align-items:start; }
.tf-side{ display:flex; flex-direction:column; gap:14px; position:sticky; top:16px; }
.tf-region{ display:block; font-size:18px; }
.tf-legend, .tf-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; font-size:13px; }
.tf-legend li{ display:flex; align-items:center; gap:8px; color:var(--steel); }
.tf-legend .tf-cell{ width:22px; height:16px; flex-shrink:0; }
.tf-list li{ color:var(--steel); } .tf-list b{ color:var(--paper); font-weight:700; }
.tf-total{ display:flex; justify-content:space-between; align-items:baseline; border-top:1px solid var(--line); padding-top:10px; }
.tf-total b{ font-size:20px; font-variant-numeric:tabular-nums; }
.tf-cal{ padding:12px; min-width:0; }
.tf-nav{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.tf-nav b{ text-align:center; font-size:14px; }
.tf-grid{ display:grid; grid-template-columns:38px repeat(7, minmax(0, 1fr)); gap:3px; }
.tf-day{ font-size:11px; font-weight:700; color:var(--steel); text-align:center; padding:2px 0 4px; line-height:1.2; }
.tf-h{ font-size:11px; color:var(--steel); display:flex; align-items:center; justify-content:flex-end; padding-right:4px; font-variant-numeric:tabular-nums; }
.tf-cell{ height:26px; border-radius:5px; border:1px solid var(--line); background:transparent; color:#fff; font-weight:800; font-size:13px; padding:0; cursor:pointer; display:grid; place-items:center; }
.tf-cell.t-standard{ background:rgba(47,191,113,.16); }
.tf-cell.t-prime{ background:rgba(47,191,113,.45); border-color:rgba(47,191,113,.7); }
.tf-cell.s-taken{ background:rgba(254,0,2,.55); border-color:var(--red); cursor:not-allowed; }
.tf-cell.s-mine{ background:repeating-linear-gradient(45deg, rgba(154,162,242,.35) 0 4px, transparent 4px 8px); border-color:var(--violet-hi); cursor:not-allowed; }
.tf-cell.s-past{ opacity:.25; cursor:not-allowed; }
.tf-cell.s-sel{ background:var(--violet); border-color:var(--violet-hi); box-shadow:0 0 0 2px var(--violet-hi) inset; }
.tf-cell.off{ border:0; background:transparent; cursor:default; }
.tf-cell:not(:disabled):hover{ outline:2px solid var(--orange); outline-offset:0; }
.tf-cell:focus-visible{ outline:3px solid var(--violet-hi); outline-offset:1px; }
@media (max-width: 900px){ .tf-layout{ grid-template-columns:1fr; } .tf-side{ position:static; order:2; } .tf-cal{ order:1; } }
@media (max-width: 480px){ .tf-grid{ grid-template-columns:30px repeat(7, minmax(0, 1fr)); gap:2px; } .tf-day{ font-size:10px; } .tf-cell{ height:24px; } }
/* Compteur de caractères à côté d'un libellé (gros titre de la page radio : titre 40, message visuel 300) */
.count{ float: right; color: var(--steel, #8a8fb0); font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; }
/* Rubriques parrainées : choix de la rubrique, calendrier des passages (jours × plages), « Mes rubriques » */
.choice.rb-kinds{ grid-template-columns:repeat(2, 1fr); }
.rb-nav{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:6px 0 10px; }
.rb-grid{ border-collapse:separate; border-spacing:4px; }
.rb-grid th{ font-size:12px; font-weight:600; color:var(--steel, #8a8fb0); text-align:left; padding-right:10px; white-space:nowrap; }
.rb-grid thead th{ text-align:center; }
.rb-pass{ width:64px; height:30px; border-radius:6px; border:1px solid rgba(47,191,113,.55); background:rgba(47,191,113,.12); color:#fff; font-weight:700; cursor:pointer; }
.rb-pass.s-sel{ background:var(--violet, #5a5fd0); border-color:var(--violet-hi, #9aa2f2); box-shadow:0 0 0 2px var(--violet-hi, #9aa2f2) inset; }
.rb-pass.s-taken, .rb-pass.s-mine{ background:rgba(254,0,2,.18); border-color:rgba(254,0,2,.5); cursor:not-allowed; }
.rb-pass.s-past{ background:transparent; border-color:rgba(255,255,255,.08); cursor:not-allowed; }
.rb-pass:not(:disabled):hover{ outline:2px solid var(--orange, #ff6100); }
.rb-legend .rb-pass{ width:22px; height:14px; display:inline-block; vertical-align:middle; margin-right:6px; }
@media (max-width:640px){ .choice.rb-kinds{ grid-template-columns:1fr; } .rb-pass{ width:52px; } }

/* Type et sous-type (alerte, info officielle) ; cases jingles */
.lb-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:560px){ .lb-row{ grid-template-columns:1fr; } }
.jg-checks{ display:flex; flex-wrap:wrap; gap:18px; margin-top:4px; }
.jg-check{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; font-weight:600; }
.jg-check input{ width:18px; height:18px; accent-color:var(--orange, #f97316); }
.foot-row{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
/* Thème clair : couleurs de texte foncées pour rester lisibles */
:root[data-theme="light"] .reason b, :root[data-theme="light"] .field.bad label{ color:#C40002; }
:root[data-theme="light"] .field.bad .input, :root[data-theme="light"] .field.bad .textarea{ border-color:#C40002; }
:root[data-theme="light"] .steps3 div{ background:#F3F2F8; }
:root[data-theme="light"] .banner.warn{ color:#7A4F00; }
:root[data-theme="light"] .ok-msg, :root[data-theme="light"] .chip.tf, :root[data-theme="light"] .quote .disc td{ color:#1E7F4A; }
/* Messages audio (Mes annonces → Message AUDIO) */
.am-kinds{ display:grid; gap:10px; }
.am-kind{ border:1px solid var(--line); border-radius:12px; padding:12px 14px; }
.am-kind.on{ border-color:var(--orange); background:rgba(255,97,0,.05); }
.am-check{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; cursor:pointer; }
.am-check input{ width:18px; height:18px; accent-color:var(--orange); transform:translateY(3px); }
.am-body{ margin-top:10px; display:grid; gap:8px; }
.am-pick{ display:flex; gap:8px; align-items:center; }
.am-pick .select{ flex:1; min-width:0; }
.am-count{ margin:4px 0 0; }
.am-total{ font-weight:700; font-size:17px; margin:4px 0 0; }
.am-files{ display:grid; gap:8px; margin-top:10px; }
.am-file{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.am-file b{ min-width:110px; }
.am-player audio{ display:block; max-width:100%; margin-top:6px; }
@media (max-width:600px){ .am-pick{ flex-wrap:wrap; } .am-file b{ min-width:0; width:100%; } }
/* Visuel de l'annonce (bandeau, carré) et réseaux sociaux — même bloc dans l'espace partenaire */
.vs-grid{ display:grid; grid-template-columns:1.6fr 1fr; gap:12px; margin-top:6px; }
.vs-slot{ border:1px solid var(--line); border-radius:12px; padding:10px; display:grid; gap:8px; align-content:start; }
.vs-prev{ border-radius:8px; overflow:hidden; background:rgba(255,255,255,.04); border:1px dashed var(--line); display:grid; place-items:center; color:var(--steel); font-size:13px; }
.vs-banner .vs-prev{ aspect-ratio:1200/628; }
.vs-square .vs-prev{ aspect-ratio:1/1; max-width:220px; width:100%; }
.vs-prev img{ width:100%; height:100%; object-fit:cover; display:block; }
.vs-info{ display:grid; gap:4px; }
.vs-nets-l{ margin-top:12px; display:block; }
.vs-nets{ display:flex; gap:10px; flex-wrap:wrap; margin-top:6px; }
.vs-net{ display:inline-flex; align-items:center; gap:8px; padding:8px 14px; border:1px solid var(--line); border-radius:999px; cursor:pointer; font-weight:600; }
.vs-net input{ width:18px; height:18px; accent-color:var(--orange); }
.vs-net.off{ opacity:.5; cursor:not-allowed; }
@media (max-width:700px){ .vs-grid{ grid-template-columns:1fr; } }
.ok-txt{ color:#6fe3a3; }
/* Formulaire d'annonce en étapes (même présentation que la régie) */
.stepper{ display:flex; gap:6px; margin-bottom:18px; flex-wrap:wrap; }
.stepper.ghost{ visibility:hidden; pointer-events:none; }   /* Rubrique, Promo Artiste : même place que la barre des étapes */
.step{ display:flex; align-items:center; gap:8px; padding:6px 12px 6px 6px; border-radius:999px; background:var(--panel); color:var(--steel); font-size:13px; font-weight:600; border:1px solid var(--line); cursor:pointer; font-family:inherit; }
.step i{ font-style:normal; width:22px; height:22px; border-radius:50%; display:grid; place-items:center; background:var(--ink); font-size:12px; }
.step.on{ color:var(--paper); border-color:var(--violet-hi); }
.step.on i{ background:var(--violet); color:#fff; }
.step.done i{ background:var(--ok); color:#fff; }
.fa-right{ display:flex; gap:10px; flex-wrap:wrap; margin-left:auto; }
/* Catalogue des voix et des fonds musicaux (Message AUDIO) */
.cat-grid{ display:grid; grid-template-columns:repeat(auto-fill, 148px); gap:18px 16px; justify-content:start; }
.cat-tile{ display:grid; grid-template-rows:148px 2.6em 1.3em 1.5em auto; gap:6px; justify-items:start; width:148px; }
.cat-sq{ width:100%; aspect-ratio:1/1; border-radius:14px; border:2px solid transparent; background:linear-gradient(145deg, var(--c), color-mix(in srgb, var(--c) 55%, #000)); color:#fff; display:grid; place-items:center; align-content:center; gap:4px; cursor:pointer; font-family:inherit; box-shadow:0 6px 18px rgba(0,0,0,.25); }
.cat-sq:disabled{ cursor:default; opacity:.85; }
.cat-ico{ width:52px; height:52px; border-radius:50%; background:rgba(0,0,0,.28); display:grid; place-items:center; font-size:20px; }
.cat-sq small{ font-size:11px; opacity:.85; }
.cat-tile.on .cat-sq{ border-color:var(--orange); box-shadow:0 0 0 3px rgba(255,97,0,.35); }
.cat-name{ font-size:14px; line-height:1.25; }
@media (max-width:600px){ .cat-grid{ grid-template-columns:repeat(2, 1fr); } .cat-tile{ width:auto; grid-template-rows:auto 2.6em 1.3em 1.5em auto; } }
.am-link{ margin-top:12px; display:grid; gap:6px; }
.am-link-row{ display:flex; gap:8px; }
.am-link-row .input{ flex:1; min-width:0; font-size:13px; }

/* Champs date et heure (datefield.js) : saisie au clavier + bouton calendrier / horloge */
.df-wrap{ position:relative; display:flex; align-items:center; min-width:0; }
.df-wrap > .df-text{ flex:1 1 auto; min-width:0; padding-right:42px; }
.df-wrap > .df-native{ position:absolute; left:0; bottom:0; width:100%; height:100%; opacity:0; pointer-events:none; margin:0; padding:0; border:0; }
.df-wrap > .df-btn{ position:absolute; right:4px; top:50%; transform:translateY(-50%); width:34px; height:34px; border:0; border-radius:8px; background:transparent; cursor:pointer; font-size:17px; line-height:1; display:grid; place-items:center; padding:0; }
.df-wrap > .df-btn:hover{ background:rgba(127,127,160,.18); }
.df-wrap > .df-btn:disabled{ opacity:.35; cursor:default; }
.df-wrap > input[data-time-list]{ flex:1 1 auto; min-width:0; padding-right:42px; }
.df-text.df-bad{ border-color:#ff5a5a !important; box-shadow:0 0 0 2px rgba(255,90,90,.25); }
/* Géolocalisation du lieu de l'annonce, à côté de l'adresse */
.geo-row{ display:flex; gap:8px; align-items:stretch; }
.geo-row .input{ flex:1; min-width:0; }
.geo-row .btn{ flex:none; white-space:nowrap; }
.geo-row .btn.geo-on{ border-color:#1f9a5a; color:#7be3a8; }
.geo-box{ margin-top:8px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--ink); display:flex; flex-direction:column; gap:8px; }
.geo-box .help{ margin:0; }
.geo-set{ margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; }
.geo-set .mono{ font-family:ui-monospace, monospace; font-size:13px; }
.geo-set a{ color:var(--orange); }
.geo-tools{ display:flex; flex-wrap:wrap; gap:8px; }
.geo-manual{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.geo-manual label{ font-size:13px; color:var(--steel); }
.geo-manual .input{ flex:1; min-width:180px; }
@media (max-width:520px){ .geo-row{ flex-direction:column; } }

/* Option : rapport par e-mail (Statistiques) */
.rm-card{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
.rm-card select{ width:auto; min-width:220px; }
.rm-card .help{ flex-basis:100%; margin:0; }
@media print{ .rm-card{ display:none !important; } }
.cat-reco{ font-size:12px; font-weight:800; color:var(--orange); }

/* Certification */
.ce-role{ border:0; padding:0; margin:0 0 14px; } .ce-role legend{ font-weight:700; margin-bottom:6px; padding:0; }
.ce-radio{ display:flex; align-items:flex-start; gap:8px; margin:6px 0; font-size:14px; line-height:1.4; cursor:pointer; } .ce-radio input{ margin-top:3px; }
.ce-panel.ok{ border-color:rgba(31,154,90,.6); } .ce-panel.warn{ border-color:rgba(254,0,2,.5); }
.ce-state{ display:inline-block; margin-left:8px; font-size:12px; font-weight:800; letter-spacing:.04em; padding:2px 8px; border-radius:999px; background:rgba(255,97,0,.18); color:#ffb07f; text-transform:none; }
.ce-state.certified, .ce-state.legacy{ background:rgba(31,154,90,.2); color:#5fd08f; } .ce-state.refused{ background:rgba(254,0,2,.2); color:#ff8a8a; } .ce-state.test{ background:rgba(80,92,182,.3); color:#c9cdf7; }
/* Suppression de la fiche */
.del-zone{ border-color:rgba(255,90,90,.35); }
.del-alert{ border-color:rgba(255,90,90,.5); }
.del-alert h2{ color:#ff8a8a; }
.del-list{ margin:8px 0 12px; padding-left:20px; line-height:1.5; }
.del-list ul{ margin:4px 0; padding-left:18px; }
:root[data-theme="light"] .del-alert h2{ color:#C40002; }

/* Rubriques du menu : titres sur fond de couleur (clic : ouvrir / réduire), sous-rubriques sur un fond plus clair */
.nav-sec{ margin-top:10px; border-radius:10px; overflow:hidden; flex-shrink:0; }
.side .nav-sec .nav-group, .nav-sec .nav-group{ display:flex; align-items:center; gap:8px; width:100%; margin:0; border:0; cursor:pointer; text-align:left;
  padding:9px 12px; font-family:inherit; font-size:13.5px; font-weight:800; line-height:1.15; letter-spacing:.08em; text-transform:uppercase; color:#fff; opacity:1; border-radius:0; }
.nav-sec .nav-group:focus-visible{ outline:2px solid #fff; outline-offset:-2px; }
.nav-sec .nav-group span:first-child{ flex:1; }
.nav-sec .nav-group .cnt{ background:var(--red); color:#fff; border-radius:999px; font-size:11px; letter-spacing:0; padding:1px 7px; }
.nav-sec .nav-group .chev{ font-size:13px; opacity:.9; transition:transform .2s; }
.nav-sec.closed .nav-group .chev{ transform:rotate(-90deg); }
.nav-sec .nav-body{ padding:4px 5px 6px; display:grid; gap:1px; }
.nav-sec.closed .nav-body{ display:none; }
.nav-sec .nav-btn{ color:#e6e5f2; }
.nav-sec .nav-btn:hover{ background:rgba(255,255,255,.08); }
.nav-sec .nav-btn.active{ background:rgba(255,255,255,.15); color:#fff; box-shadow:inset 3px 0 0 #fff; }
.nav-sec.grp_media .nav-group{ background:#b8326e; }   .nav-sec.grp_media .nav-body{ background:rgba(230,70,140,.13); }
.nav-sec.grp_mine .nav-group{ background:#c85512; }    .nav-sec.grp_mine .nav-body{ background:rgba(255,120,40,.13); }
.nav-sec.grp_account .nav-group{ background:#6a4fd8; } .nav-sec.grp_account .nav-body{ background:rgba(140,110,255,.14); }
@media (max-width:860px){ .nav-sec{ display:contents; } .nav-sec .nav-body{ display:contents !important; } .nav-sec .nav-group{ display:none !important; } }
/* Opération en cours, brouillon, page d'accueil de l'espace */
.op-banner{ display:flex; gap:14px; align-items:center; background:#3a2a06; border:2px solid #f0b429; color:#ffe7a8; border-radius:12px; padding:14px 16px; margin:0 0 18px; }
.op-banner b{ color:#fff; } .op-banner .btns{ margin-left:auto; display:flex; gap:8px; flex:none; flex-wrap:wrap; }
:root[data-theme="light"] .op-banner{ background:#fff4d6; color:#5a4200; } :root[data-theme="light"] .op-banner b{ color:#3a2a00; }
.op-modal{ border:2px solid #f0b429; }
.btn.draft-btn{ background:#f0b429; color:#2a1f00; border-color:#f0b429; }
.pa-home{ min-height:calc(100vh - 120px); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px; text-align:center; }
.pa-home h1{ margin:0; font-family:'Audiowide',sans-serif; font-weight:400; font-size:clamp(28px,4vw,46px); line-height:1.1; color:var(--paper); }
.pa-home h1 small{ display:block; margin-top:12px; font-family:'Inter',sans-serif; font-weight:700; font-size:.45em; letter-spacing:.3em; color:var(--steel); }
.pa-home img{ width:min(300px,60vw); height:min(300px,60vw); object-fit:contain; border-radius:50%; box-shadow:0 20px 60px rgba(0,0,0,.35); }
.pa-home img.plogo{ background:#fff; padding:14px; }
.pa-home p{ margin:0; color:var(--steel); font-size:14px; }
.side .brand img.plogo{ object-fit:contain; background:#fff; border-radius:50%; }
.modal.vo-modal{ max-width:900px; width:100%; max-height:88vh; overflow:auto; }
.vo-modal .page-head h2{ margin:0 0 4px; }
.od-chip{ align-self:center; font-size:11px; background:rgba(240,180,41,.18); color:#f0b429; }

/* Catalogue : rubriques, blocs de même taille ou liste, vignettes */
.cat-bar{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; margin-bottom:6px; }
.cat-view button{ white-space:nowrap; }
.cat-sec{ margin:18px 0 10px; font-size:13px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted, #9a9cb8); border-bottom:1px solid var(--line); padding-bottom:6px; }
.cat-name{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.cat-sub{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; }
.cat-tags{ display:flex; gap:6px; align-items:center; min-height:1.4em; }
.cat-sq.has-img{ background-size:cover; background-position:center; }
.cat-sq.has-img .cat-ico{ background:rgba(0,0,0,.45); }
.cat-list{ display:grid; gap:8px; }
.cat-row{ display:grid; grid-template-columns:64px 1fr auto; gap:14px; align-items:center; padding:8px 10px; border:1px solid var(--line); border-radius:12px; }
.cat-row.on{ border-color:var(--orange); box-shadow:0 0 0 2px rgba(255,97,0,.25); }
.cat-row .cat-sq{ width:64px; height:64px; aspect-ratio:auto; border-radius:10px; box-shadow:none; }
.cat-row .cat-ico{ width:34px; height:34px; font-size:14px; }
.cat-meta{ display:grid; gap:2px; min-width:0; }
.cat-row .cat-name{ -webkit-line-clamp:1; }

/* Accès à l'espace : Admin et niveau 2 */
.tm-row{ display:grid; grid-template-columns:1fr auto auto; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); }
.tm-row small{ display:block; color:var(--steel); font-size:12px; }
.tm-chip{ border-radius:999px; padding:3px 10px; font-weight:800; font-size:12px; background:rgba(80,92,182,.3); color:#9AA2F2; white-space:nowrap; }
.tm-chip.admin{ background:rgba(255,97,0,.18); color:var(--orange); }
.tm-form{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:12px 0 4px; } .tm-form .input{ flex:1 1 220px; } .tm-form .tm-name{ flex:0 1 180px; }
.tm-box{ border:1px dashed var(--line); border-radius:10px; padding:12px 14px; margin:10px 0; } .tm-q{ margin:10px 0 4px; font-weight:700; }
.lvl-admin{ color:var(--orange); } .lvl-member{ color:#9AA2F2; }
.banner.member{ background:rgba(80,92,182,.18); border-color:rgba(80,92,182,.45); }
@media (max-width:640px){ .tm-row{ grid-template-columns:1fr auto; } .tm-row .btn{ grid-column:1 / -1; justify-self:start; } }
.pay-admin{ align-self:center; white-space:nowrap; }
/* Promo Artiste */
.pm-list{ display:grid; gap:12px; }
.pm-card{ display:grid; gap:8px; }
.pm-kinds{ margin-top:4px; }
.chip-btn{ background:var(--ink); color:inherit; border:1px solid var(--line); border-radius:999px; padding:6px 12px; font:inherit; font-size:13px; cursor:pointer; }
.chip-btn.on{ background:var(--orange); border-color:var(--orange); color:#1a0e00; font-weight:700; }
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.pm-songs{ display:grid; gap:6px; max-height:260px; overflow:auto; }
.pm-song{ display:grid; grid-template-columns:auto 1fr; column-gap:10px; align-items:center; background:var(--ink); border:1px solid var(--line); border-radius:8px; padding:8px 12px; cursor:pointer; }
.pm-song .help{ grid-column:2; }
@media (max-width:640px){ .grid2{ grid-template-columns:1fr; } }
/* Promo Artiste : visuels (bandeau, carré, vertical) et « Mes visuels » */
.pmv-grid{ grid-template-columns:2fr 1.1fr 0.9fr; align-items:start; }
.pmv-grid .vs-prev{ width:100%; }
.modal.pmv-lib{ max-width:760px; max-height:88vh; overflow:auto; }
.pmv-lib-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(120px, 1fr)); gap:10px; }
.pmv-pick{ all:unset; cursor:pointer; display:grid; gap:4px; padding:6px; border:1px solid var(--line); border-radius:10px; }
.pmv-pick:hover, .pmv-pick:focus-visible{ border-color:var(--orange); }
.pmv-th{ display:block; aspect-ratio:1/1; border-radius:6px; overflow:hidden; background:rgba(255,255,255,.04); }
.pmv-th img{ width:100%; height:100%; object-fit:contain; display:block; }
.pmv-pick b{ font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:900px){ .pmv-grid{ grid-template-columns:1fr 1fr; } .pmv-grid .pmv-banner{ grid-column:1 / -1; } }
@media (max-width:480px){ .pmv-grid{ grid-template-columns:1fr; } }
/* « Que souhaitez-vous faire ? » : 4 choix (annonce, Top Flash, rubrique, Promo Artiste) */
.choice.choice-4{ grid-template-columns:repeat(4, 1fr); }
@media (max-width:1100px){ .choice.choice-4{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:560px){ .choice.choice-4{ grid-template-columns:1fr; } }
.pm-up-audio{ display:block; width:100%; max-width:420px; margin-top:6px; }

/* ===== DA commune (page, régie, espace partenaire) : boutons et menus rectangulaires, coins de 4 px, comme le cœur ===== */
:is(button, [role="button"], .btn, a.btn, .tab, .step, .chip-btn, .dchip, .vs-net, .lb-item, .seg, .nav-btn, .nav-sec){ border-radius: 4px !important; }

/* Promo Artiste venue de « Nouvelle annonce » : titre de la carte choisie en tête du bloc, champs espacés comme les autres blocs */
.pm-head{ display:flex; flex-direction:column; gap:4px; }
.pm-head .help{ margin:0; }
.pm-form .stepper{ margin-bottom:0; }
.pm-form .actions{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:4px; }
.pm-form .actions .draft-btn{ margin-left:auto; }   /* Retour à gauche ; Brouillon et Suivant à droite, comme les autres formulaires */
.pm-form .field > label.btn, .pm-form .field > .btn{ align-self:flex-start; }   /* « Envoyer un fichier » : taille du bouton, pas toute la largeur */
.pmv-grid{ align-items:stretch; }
.pmv-grid .inline-actions{ display:flex; flex-direction:column; align-items:stretch; gap:8px; }   /* Envoyer / Mes visuels l'un sous l'autre dans les 3 formats */
.pmv-grid .inline-actions > *{ justify-content:center; text-align:center; }

/* ===== Écrans au format de la page de la radio, comme la régie (voir frameMain dans app.js) : grand écran seulement ===== */
@media (min-width: 1200px){
  .main.framed{ max-width: none; padding: 20px 32px 20px; height: 100vh; display: flex; flex-direction: column; }
  .main.framed > :not(.rg-hero){ flex: none; }
  .rg-hero{ flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); column-gap: 40px; row-gap: 12px; }
  .rg-label{ grid-column: 1; grid-row: 1; display: flex; align-items: center; gap: 10px; font: 800 13px 'Inter', sans-serif; letter-spacing: .18em; text-transform: uppercase; color: var(--violet-hi); }
  .rg-bars{ display: inline-flex; flex-direction: column; gap: 3px; } .rg-bars i{ display: block; width: 18px; height: 3px; background: var(--violet-hi); } .rg-bars i + i{ width: 12px; margin-left: 6px; }
  .rg-kick{ grid-column: 2; grid-row: 1; display: flex; align-items: center; gap: 8px; font: 800 12px 'Inter', sans-serif; letter-spacing: .16em; text-transform: uppercase; color: var(--orange); }
  .rg-dot{ width: 9px; height: 9px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 4px rgba(254,0,2,.18); }
  .rg-win{ border: 1px solid var(--line); border-top: 4px solid var(--violet); border-radius: 6px; background: rgba(27,29,55,.55); min-height: 0; display: flex; flex-direction: column; }
  .rg-left{ grid-column: 1; grid-row: 2; overflow: hidden; }
  .rg-scroll{ flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 16px; overscroll-behavior: contain; }
  .rg-scroll > :first-child{ margin-top: 0; }
  .rg-right{ grid-column: 2; grid-row: 2; min-height: 0; display: flex; flex-direction: column; gap: 10px; }
  .rg-right > h1{ margin: 0; font-size: 28px; letter-spacing: -.01em; }
  .rg-right > p{ margin: 0; color: var(--steel); font-size: 14px; line-height: 1.45; }
  .rg-side{ flex: 1 1 auto; padding: 12px; gap: 10px; overflow-y: auto; }
  .rg-side.empty{ display: none; }
  .rg-side > .tabs{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 0; flex-wrap: nowrap; overflow: visible; }
  .rg-side > .tabs .tab{ width: 100%; min-width: 0; display: flex; justify-content: space-between; align-items: center; gap: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .rg-secs{ display: flex; flex-direction: column; gap: 6px; }
  .rg-sec{ width: 100%; text-align: left; padding: 9px 12px; border: 1px solid var(--line); border-radius: 4px; background: rgba(255,255,255,.03); color: var(--paper); font: 700 13.5px 'Inter', sans-serif; cursor: pointer; }
  .rg-sec:hover{ border-color: var(--orange); }
  .rg-side > .btn, .rg-side > button, .rg-side > a.btn{ width: 100%; justify-content: center; }
  .rg-side.has-btn > .btn:first-of-type, .rg-side.has-btn > button:not(.rg-sec):first-of-type{ margin-top: auto; }
}
@media (min-width: 1200px){ .rg-side > .rg-save{ margin-top: auto; } }
