/* Régie DoHit'S ZeeMEDIA — mêmes couleurs que la page de la radio */
:root{
  --red:#FE0002; --orange:#FF6100; --violet:#505CB6; --violet-hi:#9AA2F2;
  --ink:#0E0F1E; --ink-2:#15172B; --panel:#1B1D37; --panel-2:#23264A;
  --steel:#A3A5C7; --paper:#F3F2F8; --line:rgba(243,242,248,.12);
  --ok:#2FBF71; --warn:#FFB020;
  --radius:10px;
}
*{ box-sizing:border-box; }
html,body{ margin:0; }
body{ background:var(--ink); color:var(--paper); font-family:'Inter',system-ui,sans-serif; font-size:15px; line-height:1.5; }
a{ color:var(--violet-hi); }
button,input,select,textarea{ font:inherit; color:inherit; }
.brand-accent, .accent{ color:var(--orange); text-decoration:underline; text-decoration-color:var(--orange); text-decoration-thickness:.08em; text-underline-offset:.16em; text-decoration-skip-ink:none; }
.brand-accent{ text-transform:none; }
.hidden{ display:none !important; }

/* ---------- Structure ---------- */
.shell{ display:grid; grid-template-columns:240px 1fr; min-height:100vh; }
.side{ background:var(--ink-2); border-right:1px solid var(--line); padding:20px 14px; display:flex; flex-direction:column; gap:6px; position:sticky; top:0; height:100vh; overflow-y:auto; overscroll-behavior:contain; }   /* menu long : il défile, « Se déconnecter » reste accessible */
.side .brand{ display:flex; align-items:center; gap:10px; padding:4px 8px 18px; }
.side .brand img{ width:38px; height:38px; }
.side .brand b{ font-family:'Audiowide',sans-serif; font-weight:400; font-size:15px; line-height:1.15; }
.side .brand small{ display:block; color:var(--steel); font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.nav-btn{ display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:none; border:0; border-radius:8px; padding:10px 12px; color:var(--steel); font-weight:600; cursor:pointer; }
.nav-btn svg{ width:18px; height:18px; flex-shrink:0; }
.nav-btn:hover{ background:var(--panel); color:var(--paper); }
.nav-btn.active{ background:var(--panel-2); color:var(--paper); box-shadow:inset 3px 0 0 var(--red); }
.side .spacer{ flex:1; }
.side .foot{ border-top:1px solid var(--line); padding-top:12px; display:flex; flex-direction:column; gap:8px; font-size:13px; color:var(--steel); }
.lang{ display:inline-flex; border:1px solid var(--line); border-radius:8px; overflow:hidden; width:max-content; }
.lang button{ background:none; border:0; padding:5px 10px; cursor:pointer; color:var(--steel); font-weight:700; font-size:12px; }
.lang button.on{ background:var(--violet); color:#fff; }
.link-btn{ background:none; border:0; padding:0; color:var(--steel); cursor:pointer; text-decoration:underline; text-underline-offset:3px; text-align:left; }
.link-btn:hover{ color:var(--paper); }

.main{ padding:32px 40px 80px; max-width:1100px; width:100%; min-width:0; }
.page-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
.page-head h1{ margin:0; font-size:28px; letter-spacing:-.01em; }
.page-head p{ margin:4px 0 0; color:var(--steel); }

/* ---------- Boutons ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; border:1px solid var(--line); background:var(--panel); border-radius:8px; padding:10px 16px; font-weight:700; cursor:pointer; white-space:nowrap; }
.btn:hover{ background:var(--panel-2); }
.btn.primary{ background:var(--red); border-color:var(--red); color:#fff; }
.btn.primary:hover{ background:#e00002; }
.btn.orange{ background:var(--orange); border-color:var(--orange); color:#fff; }
.btn.ghost{ background:transparent; }
.btn.danger{ color:#ff8a8a; border-color:rgba(255,90,90,.4); background:transparent; }
.btn.small{ padding:6px 10px; font-size:13px; }
.btn:disabled{ opacity:.45; cursor:default; }
.btn svg{ width:16px; height:16px; }

/* ---------- Cartes et listes ---------- */
.tabs{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:18px; }
.tab{ background:var(--panel); border:1px solid var(--line); color:var(--steel); border-radius:999px; padding:6px 14px; font-weight:600; font-size:13px; cursor:pointer; }
.tab.on{ background:var(--paper); color:var(--ink); border-color:var(--paper); }
.tab .n{ opacity:.7; margin-left:4px; }
.cards{ display:flex; flex-direction:column; gap:12px; }
.card{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; }
.ev{ display:grid; grid-template-columns:1fr auto; gap:14px; align-items:start; }
.ev h3{ margin:6px 0 2px; font-size:17px; }
.ev .meta{ color:var(--steel); font-size:13px; display:flex; flex-wrap:wrap; gap:4px 16px; }
.ev .actions{ display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.chips{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.chip{ display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; padding:3px 8px; border-radius:4px; }
.chip.partner{ background:rgba(255,97,0,.16); color:#ffa066; }
.chip.state{ background:rgba(80,92,182,.3); color:var(--violet-hi); }
.chip.urgent{ background:var(--red); color:#fff; }
.chip.flash{ background:var(--orange); color:#fff; }
.chip.live{ background:rgba(47,191,113,.16); color:#6fe3a3; }
.chip.live::before{ content:""; width:7px; height:7px; border-radius:50%; background:#6fe3a3; }
.chip.planned{ background:rgba(255,176,32,.15); color:#ffc766; }
.chip.draft{ background:rgba(163,165,199,.15); color:var(--steel); }
.chip.done{ background:rgba(163,165,199,.08); color:#7d7fa3; }
.stats{ margin-top:12px; font-size:13px; color:var(--steel); display:flex; gap:18px; flex-wrap:wrap; align-items:center; }
.stats b{ color:var(--paper); }
.bar{ height:6px; background:var(--ink); border-radius:3px; overflow:hidden; width:180px; }
.bar > i{ display:block; height:100%; background:var(--orange); }
.empty{ text-align:center; color:var(--steel); padding:48px 16px; border:1px dashed var(--line); border-radius:var(--radius); }

/* ---------- Formulaires ---------- */
.stepper{ display:flex; gap:6px; margin-bottom:22px; flex-wrap:wrap; }
.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; }
.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; }
.form{ display:flex; flex-direction:column; gap:18px; }
.field{ display:flex; flex-direction:column; gap:6px; }
.field > label, .label{ font-weight:700; font-size:14px; }
.help{ color:var(--steel); font-size:13px; margin:0; }
.input, .select, .textarea{ width:100%; background:var(--ink); border:1px solid var(--line); border-radius:8px; padding:10px 12px; outline:none; }
.input:focus, .select:focus, .textarea:focus{ border-color:var(--violet-hi); box-shadow:0 0 0 3px rgba(154,162,242,.18); }
.row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.req::after{ content:" *"; color:var(--orange); }
.error-msg{ color:#ff8a8a; font-size:13px; font-weight:600; }
.type-choice{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.type-card{ text-align:left; background:var(--ink); border:2px solid var(--line); border-radius:var(--radius); padding:16px; cursor:pointer; display:flex; flex-direction:column; gap:6px; }
.type-card b{ font-size:16px; }
.type-card span{ color:var(--steel); font-size:13px; }
.type-card.on.partner{ border-color:var(--orange); }
.type-card.on.state{ border-color:var(--violet-hi); }
.type-card.on.urgent{ border-color:var(--red); background:rgba(254,0,2,.08); }
.days{ display:flex; gap:6px; flex-wrap:wrap; }
.day{ width:46px; padding:8px 0; text-align:center; border-radius:8px; border:1px solid var(--line); background:var(--ink); cursor:pointer; font-weight:700; font-size:13px; color:var(--steel); }
.day.on{ background:var(--violet); border-color:var(--violet); color:#fff; }
.seg{ display:inline-flex; align-self:flex-start; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.seg button{ background:var(--ink); border:0; padding:8px 14px; cursor:pointer; color:var(--steel); font-weight:700; }
.seg button.on{ background:var(--violet); color:#fff; }
.slot{ display:flex; align-items:center; gap:8px; }
.slot .input{ width:130px; }
.upload{ border:2px dashed var(--line); border-radius:var(--radius); padding:18px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.upload.has{ border-style:solid; border-color:rgba(47,191,113,.4); }
.upload audio{ height:36px; max-width:100%; }
details.adv{ border:1px solid var(--line); border-radius:var(--radius); padding:12px 16px; }
details.adv summary{ cursor:pointer; font-weight:700; }
details.adv[open] summary{ margin-bottom:12px; }
.form-actions{ display:flex; justify-content:space-between; gap:10px; margin-top:8px; flex-wrap:wrap; }
.recap{ display:grid; grid-template-columns:180px 1fr; gap:8px 16px; }
.recap dt{ color:var(--steel); }
.recap dd{ margin:0; font-weight:600; }

/* ---------- Carte ---------- */
.map-wrap{ display:flex; flex-direction:column; gap:10px; }
.map{ height:360px; border-radius:var(--radius); border:1px solid var(--line); background:#1c2140; overflow:hidden; }
.map-tools{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.map-tools .input{ flex:1; min-width:200px; }
.radius{ display:flex; align-items:center; gap:12px; }
.radius input[type=range]{ flex:1; accent-color:var(--orange); }
.radius output{ min-width:70px; font-weight:800; color:var(--orange); }
.search-results{ display:flex; flex-direction:column; border:1px solid var(--line); border-radius:8px; overflow:hidden; }
.search-results button{ background:var(--ink); border:0; border-bottom:1px solid var(--line); text-align:left; padding:8px 12px; cursor:pointer; }
.search-results button:hover{ background:var(--panel-2); }

/* Repère du centre de zone (pas d'image externe) */
.zone-pin{ background:var(--orange); border:3px solid #fff; border-radius:50%; box-shadow:0 2px 8px rgba(0,0,0,.5); }

/* ---------- Bandeau ---------- */
.tick-row{ display:grid; grid-template-columns:auto 1fr auto auto; gap:12px; align-items:center; }
.tick-row .order{ display:flex; flex-direction:column; gap:2px; }
.tick-row .order button{ background:none; border:1px solid var(--line); border-radius:4px; width:26px; height:20px; cursor:pointer; color:var(--steel); font-size:11px; line-height:1; }
.tick-row .text{ font-weight:600; }
.tick-row .sub{ color:var(--steel); font-size:12px; }
.switch{ position:relative; width:42px; height:24px; flex-shrink:0; }
.switch input{ opacity:0; width:0; height:0; }
.switch span{ position:absolute; inset:0; background:var(--ink); border:1px solid var(--line); border-radius:12px; cursor:pointer; transition:.2s; }
.switch span::after{ content:""; position:absolute; width:18px; height:18px; left:2px; top:2px; background:var(--steel); border-radius:50%; transition:.2s; }
.switch input:checked + span{ background:var(--ok); border-color:var(--ok); }
.switch input:checked + span::after{ transform:translateX(18px); background:#fff; }
.switch input:focus-visible + span{ box-shadow:0 0 0 3px rgba(154,162,242,.35); }
.ticker-preview{ background:var(--red); color:#fff; border-radius:8px; padding:9px 14px; font-weight:700; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ---------- Top horaire ---------- */
.hours{ display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; }
.hour{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:12px; display:flex; flex-direction:column; gap:8px; }
.hour.missing{ border-style:dashed; }
.hour .h{ font-family:'Audiowide',sans-serif; font-size:22px; }
.hour .d{ color:var(--steel); font-size:12px; }
.hour .btns{ display:flex; gap:6px; }
.play{ width:34px; height:34px; border-radius:50%; background:var(--red); border:0; color:#fff; display:grid; place-items:center; cursor:pointer; flex-shrink:0; }
.play svg{ width:14px; height:14px; }

/* ---------- Connexion ---------- */
.login{ min-height:100vh; display:grid; place-items:center; padding:24px 16px; background:radial-gradient(circle at 80% 0%, rgba(254,0,2,.18), transparent 50%), var(--ink); }
.login .box{ width:100%; max-width:400px; background:var(--panel); border:1px solid var(--line); border-top:4px solid var(--red); border-radius:var(--radius); padding:28px; display:flex; flex-direction:column; gap:16px; }
.login .brand{ display:flex; align-items:center; gap:12px; }
.login .brand img{ width:54px; height:54px; }
.login .brand b{ font-family:'Audiowide',sans-serif; font-weight:400; font-size:18px; }
.login .brand small{ display:block; color:var(--steel); }

/* ---------- Divers ---------- */
.toast{ position:fixed; left:50%; bottom:24px; transform:translate(-50%,150%); opacity:0; visibility:hidden; background:var(--paper); color:var(--ink); padding:10px 18px; border-radius:8px; font-weight:700; box-shadow:0 10px 30px rgba(0,0,0,.4); transition:transform .25s; z-index:1000; max-width:90vw; }
.toast.show{ transform:translate(-50%,0); opacity:1; visibility:visible; }
.toast.err{ background:#ff5a5a; color:#fff; }
.modal-bg{ position:fixed; inset:0; background:rgba(5,6,15,.7); display:grid; place-items:center; z-index:900; padding:16px; }
.modal{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:24px; max-width:460px; width:100%; display:flex; flex-direction:column; gap:14px; }
.modal.urgent{ border-top:4px solid var(--red); }
.modal h2{ margin:0; font-size:20px; }
.modal .btns{ display:flex; justify-content:flex-end; gap:8px; }
.spinner{ width:18px; height:18px; border:2px solid rgba(255,255,255,.3); border-top-color:#fff; border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }

@media (max-width:860px){
  .shell{ grid-template-columns:minmax(0,1fr); }
  .side{ position:static; height:auto; flex-direction:row; flex-wrap:wrap; align-items:center; padding:10px 12px; gap:4px; }
  .side .brand{ padding:0 8px 0 0; }
  .side .brand small{ display:none; }
  .side .spacer{ display:none; }
  .side .foot{ border:0; padding:0; flex-direction:row; align-items:center; width:100%; justify-content:space-between; }
  .nav-btn{ width:auto; padding:8px 10px; }
  .nav-btn.active{ box-shadow:inset 0 -3px 0 var(--red); }
  .main{ padding:20px 16px 60px; }
  .row, .type-choice{ grid-template-columns:1fr; }
  .ev{ grid-template-columns:1fr; }
  .ev .actions{ justify-content:flex-start; }
  .recap{ grid-template-columns:1fr; gap:2px; }
  .recap dd{ margin-bottom:8px; }
  .tick-row{ grid-template-columns:auto 1fr auto; }
  .tick-row .del{ grid-column:2; justify-self:start; }
}

/* ---------- Statistiques ---------- */
:root{ --viz-1:#E65700; --viz-2:#7F89E6; --viz-grid:rgba(243,242,248,.09); }
.filters{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:14px; }
.filters .seg{ flex-wrap:wrap; }
.filters .select{ width:auto; min-width:180px; max-width:280px; }
.filters .slot .input{ width:160px; }
.period-line{ margin:0 0 14px; }
.kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin-bottom:16px; }
.kpi{ background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:14px 16px; display:flex; flex-direction:column; gap:2px; }
.kpi small{ color:var(--steel); font-size:12px; font-weight:600; }
.kpi b{ font-size:26px; letter-spacing:-.01em; font-variant-numeric:tabular-nums; }
.sec{ margin-bottom:16px; }
.sec h2{ margin:0 0 6px; font-size:18px; }
.sec > .help{ margin-bottom:10px; }
.legend{ display:flex; gap:16px; flex-wrap:wrap; font-size:13px; color:var(--steel); margin:6px 0 10px; }
.legend span{ display:inline-flex; align-items:center; gap:6px; }
.sw{ width:12px; height:12px; border-radius:3px; display:inline-block; }
.s1{ background:var(--viz-1); } .s2{ background:var(--viz-2); }
.chart{ margin:4px 0 8px; }
.plot{ position:relative; height:200px; margin-left:44px; border-bottom:1px solid var(--line); }
.gl{ position:absolute; left:0; right:0; border-top:1px solid var(--viz-grid); }
.gl span{ position:absolute; right:calc(100% + 8px); top:-8px; font-size:11px; color:var(--steel); font-variant-numeric:tabular-nums; white-space:nowrap; }
.cols{ position:absolute; inset:0; display:flex; }
.col{ flex:1; display:flex; justify-content:center; align-items:flex-end; min-width:0; height:100%; cursor:default; }
.col:hover{ background:rgba(243,242,248,.05); }
.stack{ width:min(24px, 72%); height:100%; display:flex; flex-direction:column; justify-content:flex-end; gap:2px; }
.stack > i{ display:block; min-height:1px; }
.stack > i:first-child{ border-radius:4px 4px 0 0; }
.xl{ display:flex; margin-left:44px; margin-top:6px; }
.xl span{ flex:1; min-width:0; text-align:center; font-size:11px; color:var(--steel); white-space:nowrap; overflow:visible; }
.viz-tip{ position:fixed; z-index:1100; pointer-events:none; background:var(--paper); color:var(--ink); padding:8px 10px; border-radius:8px; font-size:12px; line-height:1.45; white-space:pre-line; box-shadow:0 8px 24px rgba(0,0,0,.4); opacity:0; transition:opacity .1s; max-width:240px; }
.viz-tip::first-line{ font-weight:800; }
.viz-tip.show{ opacity:1; }
.tbl-wrap{ overflow-x:auto; }
.tbl{ width:100%; border-collapse:collapse; font-size:14px; }
.tbl th{ text-align:left; font-size:12px; color:var(--steel); font-weight:700; padding:8px 10px; border-bottom:1px solid var(--line); white-space:nowrap; }
.tbl td{ padding:9px 10px; border-bottom:1px solid var(--line); vertical-align:middle; }
.tbl tr:last-child td{ border-bottom:0; }
.tbl .num{ text-align:right; }
.tbl td.num{ font-variant-numeric:tabular-nums; white-space:nowrap; }
.tbl .cell-title{ font-weight:700; }
.tbl .chips{ margin-top:4px; }
.tbl .sub{ color:var(--steel); font-size:12px; }
.rate{ display:inline-flex; align-items:center; gap:8px; justify-content:flex-end; }
.rate .bar{ width:60px; }
.rate .bar > i{ background:var(--viz-1); }
.tbl-view{ margin-top:8px; }
.tbl-view summary{ cursor:pointer; color:var(--steel); font-size:13px; font-weight:600; }
.tbl-view[open] summary{ margin-bottom:8px; }
.stats-map{ height:320px; margin-bottom:12px; }
.stats .link-btn{ font-size:13px; }

/* Rapport partenaire : une feuille claire, à l'écran comme à l'impression */
.report-bar{ display:flex; justify-content:space-between; gap:10px; margin-bottom:16px; }
.paper{ --panel:#FFFFFF; --panel-2:#F3F2F8; --ink:#ECEBF3; --paper:#15172B; --steel:#585C7A; --line:rgba(21,23,43,.14); --viz-grid:rgba(21,23,43,.08);
  background:#FFFFFF; color:#15172B; border-radius:var(--radius); padding:32px 36px; max-width:900px; }
.paper .kpi{ background:#F6F5FA; }
.paper .col:hover{ background:rgba(21,23,43,.04); }
.paper-head{ display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; border-bottom:3px solid var(--red); padding-bottom:16px; margin-bottom:20px; }
.paper-head img{ width:56px; height:56px; background:#15172B; border-radius:12px; padding:6px; }
.paper-head small{ color:var(--steel); font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:11px; }
.paper-head h1{ margin:0; font-size:24px; }
.paper-meta{ display:flex; flex-direction:column; align-items:flex-end; font-size:13px; color:var(--steel); }
.paper-meta b{ color:#15172B; font-size:18px; }
.paper .sec{ margin:22px 0 0; break-inside:avoid; }
.paper .tbl-view{ display:none; }
.paper-note{ margin-top:24px; border-top:1px solid var(--line); padding-top:12px; font-size:12px; }

@media (max-width:860px){
  .filters .select{ max-width:none; flex:1; }
  .plot, .xl{ margin-left:36px; }
  .paper{ padding:20px 16px; }
  .paper-head{ grid-template-columns:auto 1fr; }
  .paper-meta{ grid-column:1 / -1; align-items:flex-start; }
}
@media print{
  *{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  @page{ margin:14mm; }
  body{ background:#fff; }
  .side, .no-print, .toast, .viz-tip, .main > .help{ display:none !important; }
  .shell{ display:block; }
  .main{ padding:0; max-width:none; }
  .paper{ padding:0; max-width:none; border-radius:0; }
}
.paper .chip.partner{ background:rgba(230,87,0,.12); color:#A63F00; }
.paper .chip.state{ background:rgba(80,92,182,.14); color:#3A45A0; }

/* ---------- Auditeurs ---------- */
.ls-kpis{ grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); }
.ls-search{ flex:1; min-width:220px; max-width:360px; }
.acc-card h3{ overflow-wrap:anywhere; }
.ls-note{ margin-top:8px; font-style:italic; }
.gift{ margin-top:14px; padding:14px; border:1px solid var(--line); border-radius:var(--radius); background:var(--ink); display:flex; flex-direction:column; gap:10px; }
.gift-row{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.gift-row .input{ flex:1; min-width:160px; }
.msg-row{ display:flex; gap:12px; align-items:flex-start; }
.msg-row .chip{ margin-top:2px; flex-shrink:0; }
.msg-row b{ font-size:15px; }

/* ---------- Partenaires et centres d'intérêt ---------- */
.dom-list{ display:flex; flex-direction:column; }
.dom-item{ display:flex; align-items:center; gap:14px; padding:9px 0; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.dom-item:last-child{ border-bottom:0; }
.dom-item b{ min-width:180px; }
.dom-item .help{ flex:1; }
.dom-item.editing .input{ flex:1; min-width:200px; max-width:340px; }
.danger-link{ color:#ff8a8a; }
.pa-card{ display:flex; flex-direction:column; gap:10px; }
.pa-head{ display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.pa-head h3{ margin:0; font-size:17px; }
.dom-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.dchip{ background:var(--ink); border:1px solid var(--line); color:var(--steel); border-radius:999px; padding:6px 12px; font-size:13px; font-weight:600; cursor:pointer; }
.dchip:hover{ color:var(--paper); border-color:var(--steel); }
.dchip.on{ background:rgba(255,97,0,.16); border-color:rgba(255,97,0,.6); color:#ffb07f; }
.warn-line{ color:#ffc766; }
.sub-h{ margin:18px 0 6px; font-size:15px; }

/* ---------- Fidélité ---------- */
.lo-off{ opacity:.6; }
.lo-rules{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:14px; }
.lo-rules .input{ max-width:140px; }
.lo-pin{ align-items:center; flex-wrap:wrap; padding:8px 0; border-bottom:1px solid var(--line); }
.lo-pin b{ min-width:200px; }
.lo-preview{ display:flex; align-items:center; gap:12px; }
.lo-preview span{ font-weight:800; color:#ffb07f; }
.lo-check .gift-row{ font-size:14px; color:var(--steel); }
.mono{ font-family:ui-monospace,Menlo,monospace; letter-spacing:.08em; }

/* ---------- Espace partenaire : annonces à valider, accès ---------- */
.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; }
.tab.review{ border-color:rgba(255,97,0,.6); color:#ffb07f; }
.tab.review.on{ background:var(--orange); border-color:var(--orange); color:#fff; }
.sub-card{ display:flex; flex-direction:column; gap:10px; }
.sub-card h3{ margin:0; font-size:17px; }
.sub-card .meta{ color:var(--steel); font-size:13px; display:flex; flex-wrap:wrap; gap:4px 16px; }
.sub-card .actions{ display:flex; gap:8px; justify-content:flex-end; flex-wrap:wrap; }
.script{ margin:0; padding:12px 14px; border-left:3px solid var(--violet-hi); background:var(--ink); border-radius:0 8px 8px 0; font-size:15px; line-height:1.55; white-space:pre-wrap; }
.sub-fields{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.pax{ border-top:1px solid var(--line); padding-top:10px; margin-top:4px; display:flex; flex-direction:column; gap:8px; }
.pax-row{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; }
.pax-mail{ font-weight:700; overflow-wrap:anywhere; }
.pax-btns{ display:flex; gap:12px; margin-left:auto; }
@media (max-width:860px){ .sub-fields{ grid-template-columns:1fr; } .pax-btns{ margin-left:0; } }
.pa-fiche{ display:grid; grid-template-columns:max-content minmax(0,1fr); gap:4px 14px; margin:0; font-size:14px; }
.pa-fiche dt{ color:var(--steel); }
.pa-fiche dd{ margin:0; overflow-wrap:anywhere; }
.pa-card.pa-pending{ border-color:rgba(255,176,32,.5); }

/* ---------- Paiements, tarifs ---------- */
.chip.unpaid{ background:rgba(254,0,2,.18); color:#ff8a8a; }
.sub-pay{ display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:16px; background:var(--ink); border:1px solid var(--line); border-radius:var(--radius); padding:12px 14px; }
.sub-pay .label{ display:block; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--steel); margin-bottom:6px; }
.sub-pay-side{ display:flex; flex-direction:column; gap:8px; }
.sub-pay-side .seg button[disabled]{ opacity:.4; cursor:not-allowed; }
.quote-t{ width:100%; border-collapse:collapse; font-size:14px; }
.quote-t td{ padding:4px 0; }
.quote-t .num{ text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; padding-left:12px; }
.quote-t .disc td{ color:#6fe3a3; }
.quote-t .sum td{ border-top:1px solid var(--line); padding-top:8px; font-weight:700; }
.quote-t .ttc td{ font-size:17px; font-weight:800; color:var(--paper); }
.bill-in{ display:inline-block; width:auto; min-width:140px; max-width:260px; padding:6px 8px; margin-left:6px; }
.bill-num{ width:96px; padding:6px 8px; text-align:right; font-variant-numeric:tabular-nums; }
@media (max-width:860px){ .sub-pay{ grid-template-columns:1fr; } .bill-in{ min-width:0; width:100%; margin:6px 0 0; } }
.tbl .switch{ display:inline-block; vertical-align:middle; }
.tbl td.mono a, .tbl td.mono{ white-space:nowrap; letter-spacing:.02em; }
.inline-actions{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.au-link{ font-family:ui-monospace,Menlo,monospace; font-size:13px; background:var(--ink); border:1px solid var(--line); border-radius:8px; padding:8px 10px; overflow-wrap:anywhere; }
/* « Se déconnecter » et la langue toujours visibles en bas du menu, même quand le menu défile */
@media (min-width:861px){ .side{ padding-bottom:0; } .side .foot{ position:sticky; bottom:0; background:var(--ink-2); padding-bottom:14px; z-index:1; } }

/* ============================================================
   Thème clair (choix B) : pages claires aux couleurs de la DA, navigation en bleu marine.
   Activé par <html data-theme="light"> (bouton Sombre / Clair / Auto, retenu sur l'appareil).
   ============================================================ */
:root[data-theme="light"]{ color-scheme:light; --ink:#F3F2F8; --ink-2:#FFFFFF; --panel:#FFFFFF; --panel-2:#ECEBF3; --paper:#15172B; --steel:#585C7A;
  --line:rgba(21,23,43,.14); --violet-hi:#505CB6; --viz-2:#5C67C9; --viz-grid:rgba(21,23,43,.08); }
:root[data-theme="light"] body{ background:#F3F2F8; color:#15172B; }
:root[data-theme="light"] .card, :root[data-theme="light"] .kpi{ box-shadow:0 1px 2px rgba(21,23,43,.06), 0 4px 14px rgba(21,23,43,.05); }
:root[data-theme="light"] .btn.danger, :root[data-theme="light"] .error-msg, :root[data-theme="light"] .danger-link, :root[data-theme="light"] .rb-log li.err{ color:#C40002; }
:root[data-theme="light"] .chip.unpaid, :root[data-theme="light"] .chip.rejected{ color:#C40002; background:rgba(254,0,2,.10); }
:root[data-theme="light"] .chip.live{ color:#1E7F4A; }
:root[data-theme="light"] .chip.live::before{ background:#2FBF71; }
:root[data-theme="light"] .quote-t .disc td, :root[data-theme="light"] .ok-txt, :root[data-theme="light"] .pin-state.ok{ color:#1E7F4A; }
:root[data-theme="light"] .chip.planned, :root[data-theme="light"] .chip.pending, :root[data-theme="light"] .warn-line, :root[data-theme="light"] .words .over, :root[data-theme="light"] .pin-state.no{ color:#8A5A00; }
:root[data-theme="light"] .chip.partner, :root[data-theme="light"] .dchip.on, :root[data-theme="light"] .tab.review, :root[data-theme="light"] .lo-preview span, :root[data-theme="light"] .rb-cell i{ color:#B84400; }
:root[data-theme="light"] .chip.partner{ background:rgba(255,97,0,.12); }
:root[data-theme="light"] .chip.state, :root[data-theme="light"] .chip.text{ background:rgba(80,92,182,.12); }
:root[data-theme="light"] .chip.done{ color:#6B6E8F; }
:root[data-theme="light"] .tab.review.on{ color:#fff; }
:root[data-theme="light"] .reason b{ color:#C40002; }
:root[data-theme="light"] .ticker-preview{ background:#1B1D37; color:#fff; }
:root[data-theme="light"] .login{ background:radial-gradient(circle at 80% 0%, rgba(254,0,2,.10), transparent 50%), #F3F2F8; }
:root[data-theme="light"] .modal-bg, :root[data-theme="light"] .msheet-bg{ background:rgba(21,23,43,.45); }
:root[data-theme="light"] .toast{ background:#15172B; color:#fff; }
:root[data-theme="light"] .toast.err{ background:#C40002; }
:root[data-theme="light"] .spinner{ border-color:rgba(21,23,43,.2); border-top-color:#505CB6; }
/* Navigation en marine : menu de gauche, barre du haut, onglets du bas, menu « Plus » */
:root[data-theme="light"] .side, :root[data-theme="light"] .mtop, :root[data-theme="light"] .mtabs, :root[data-theme="light"] .msheet-panel{
  --ink:#0E0F1E; --ink-2:#15172B; --panel:#1B1D37; --panel-2:#23264A; --paper:#F3F2F8; --steel:#A3A5C7; --line:rgba(243,242,248,.12); --violet-hi:#9AA2F2; color:#F3F2F8; }
:root[data-theme="light"] .side, :root[data-theme="light"] .mtop, :root[data-theme="light"] .mtabs{ background:#15172B; }
:root[data-theme="light"] .msheet-panel{ background:#1B1D37; }
/* Choix du thème */
.theme-sw{ display:inline-flex; border:1px solid var(--line); border-radius:8px; overflow:hidden; width:max-content; }
.theme-sw button{ background:none; border:0; padding:5px 9px; cursor:pointer; color:var(--steel); font-weight:700; font-size:12px; }
.theme-sw button.on{ background:var(--violet); color:#fff; }
