/* Tableau de bord de l'accueil — feuille cloisonnée.
   ------------------------------------------------------------------
   Générée depuis app.css en préfixant chaque sélecteur par
   .dash-live-view. Elle existe pour une raison précise : l'aperçu était
   chargé dans une iframe, et X-Frame-Options le laissait blanc. Une
   iframe imposait aussi une requête de plus, une règle d'en-têtes à
   maintenir et une chaîne d'ancêtres à surveiller — pour afficher du
   HTML venant du même site.

   Les variables de app.css (:root) sont redirigées sur .dash-live-view :
   elles ne peuvent donc pas écraser celles de style.css, qui portent les
   mêmes noms avec d'autres valeurs.

   Ne pas éditer à la main : régénérer depuis app.css. */


.dash-live-view{
  --ink:#0B2127; --green:#1C4D56; --green-d:#0F2B32; --green-dd:#0B2127;
  --gold:#C3D17E; --gold-s:#CFDA93; --cream:#F0F5F0; --beige:#E4EBE4;
  --line:rgba(11,33,39,0.08); --muted:#6A8085; --ink-soft:#3A4E54;
  --serif:"Inter",system-ui,sans-serif; --sans:"Inter",system-ui,sans-serif;
  --radius:18px;
}
.dash-live-view *, .dash-live-view *::before, .dash-live-view *::after{ box-sizing:border-box; }
.dash-live-view{ margin:0; font-family:var(--sans); color:var(--ink); background:var(--cream); -webkit-font-smoothing:antialiased; }
.dash-live-view a{ color:inherit; text-decoration:none; }
.dash-live-view h1, .dash-live-view h2, .dash-live-view h3, .dash-live-view h4{ font-family:var(--sans); font-weight:700; letter-spacing:-0.025em; margin:0; }
.dash-live-view .mono-c{ display:inline-block; width:34px; height:34px; border-radius:8px; background:url('../img/favicon.svg') center/contain no-repeat; font-size:0; color:transparent; }
.dash-live-view .auth{ min-height:100vh; display:grid; grid-template-columns:1.05fr 1fr; }
.dash-live-view .auth-brand{ background:var(--green-d); color:var(--cream); padding:56px; display:flex; flex-direction:column; justify-content:space-between; position:relative; }
.dash-live-view .auth-brand::before{ content:""; position:absolute; top:-20%; right:-15%; width:460px; height:460px; background:radial-gradient(circle,rgba(28,77,86,.5),rgba(15,43,50,0) 70%); }
.dash-live-view .auth-brand > *{ position:relative; z-index:1; }
.dash-live-view .auth-brand .logo{ font-family:var(--sans); font-weight:800; letter-spacing:-0.03em; font-size:26px; font-weight:700; display:flex; align-items:center; gap:12px; }
.dash-live-view .auth-brand h2{ font-size:clamp(28px,3vw,40px); line-height:1.1; margin-bottom:14px; }
.dash-live-view .auth-brand p{ color:rgba(244,241,234,.78); max-width:420px; font-size:16px; }
.dash-live-view .auth-brand .eyebrow{ color:var(--gold); font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; }
.dash-live-view .auth-form-wrap{ display:flex; align-items:center; justify-content:center; padding:40px; }
.dash-live-view .auth-form{ width:100%; max-width:380px; }
.dash-live-view .auth-form h1{ font-size:30px; margin-bottom:6px; }
.dash-live-view .auth-form .sub{ color:var(--muted); margin:0 0 28px; }
.dash-live-view .field{ margin-bottom:18px; }
.dash-live-view .field label{ display:block; font-size:13px; font-weight:600; margin-bottom:7px; }
.dash-live-view .field input{ width:100%; padding:13px 14px; border:1px solid var(--line); border-radius:9px; font-family:inherit; font-size:15px; background:#fff; }
.dash-live-view .field input:focus{ outline:none; border-color:var(--green); box-shadow:0 0 0 3px rgba(30,58,52,.1); }
.dash-live-view .btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:14px 22px; border-radius:9px; font-weight:600; font-size:15px; border:1px solid transparent; cursor:pointer; font-family:inherit; }
.dash-live-view .btn-green{ background:var(--green); color:var(--cream); width:100%; }
.dash-live-view .btn-green:hover{ background:var(--green-d); }
.dash-live-view .auth-err{ background:#fbecec; color:#a12; border:1px solid #f0c9c9; padding:11px 14px; border-radius:9px; font-size:13.5px; margin-bottom:18px; display:none; }
.dash-live-view .auth-hint{ margin-top:22px; font-size:12.5px; color:var(--muted); background:var(--beige); border-radius:9px; padding:12px 14px; }
.dash-live-view .auth-back{ margin-top:20px; font-size:13.5px; color:var(--muted); }
.dash-live-view .auth-back a{ color:var(--green); font-weight:600; }
@media (max-width:820px){
.dash-live-view .auth{ grid-template-columns:1fr; }
.dash-live-view .auth-brand{ display:none; } }
.dash-live-view .app{ display:grid; grid-template-columns:260px 1fr; min-height:100vh; }
.dash-live-view .side{ background:var(--green-d); color:var(--cream); padding:26px 18px; display:flex; flex-direction:column; }
.dash-live-view .side .logo{ display:flex; align-items:center; gap:11px; font-family:var(--sans); letter-spacing:-0.03em; font-size:22px; font-weight:700; padding:0 8px 8px;
  /* .logo (style.css) impose l'encre — illisible sur la barre sombre. */
  color:var(--cream); }
.dash-live-view .side .logo .mono-c{ background:url('../img/favicon.svg') center/contain no-repeat; }
.dash-live-view .side nav{ display:flex; flex-direction:column; gap:3px; margin-top:22px; }
.dash-live-view .side nav a{ display:flex; align-items:center; gap:12px; padding:11px 14px; border-radius:10px; font-size:14.5px; color:rgba(244,241,234,.8); }
.dash-live-view .side nav a svg{ width:19px; height:19px; opacity:.85; }
.dash-live-view .side nav a:hover{ background:rgba(255,255,255,.06); color:#fff; }
.dash-live-view .side nav a.active{ background:rgba(195,209,126,.15); color:#fff; }
.dash-live-view .side nav a.active svg{ color:var(--gold); opacity:1; }
.dash-live-view .side .side-foot{ margin-top:auto; display:flex; flex-direction:column; gap:3px; padding-top:16px; border-top:1px solid rgba(255,255,255,.08); }
.dash-live-view .side-foot a{ display:flex; align-items:center; gap:12px; padding:11px 14px; border-radius:10px; font-size:14.5px; color:rgba(240,245,240,.8); }
.dash-live-view .side-foot a svg{ width:19px; height:19px; opacity:.85; flex-shrink:0; }
.dash-live-view .side-foot a:hover{ background:rgba(255,255,255,.06); color:#fff; }
.dash-live-view .main{ background:var(--cream); padding:30px 40px 60px; overflow:auto; }
.dash-live-view .topbar{ display:flex; align-items:center; justify-content:space-between; margin-bottom:30px; gap:16px; flex-wrap:wrap; }
.dash-live-view .topbar h1{ font-size:30px; }
.dash-live-view .topbar .welcome{ color:var(--muted); font-size:14.5px; margin-top:2px; }
.dash-live-view .topbar-r{ display:flex; align-items:center; gap:16px; }
.dash-live-view .user-chip{ display:flex; align-items:center; gap:11px; background:#fff; border:1px solid var(--line); border-radius:999px; padding:6px 14px 6px 6px; cursor:pointer; }
.dash-live-view .user-chip .ava{ width:34px; height:34px; border-radius:50%; background:var(--green-d) center 15%/cover; }
.dash-live-view .user-chip .nm{ font-size:14px; font-weight:600; }
.dash-live-view .user-chip svg{ width:15px; height:15px; color:var(--muted); }
.dash-live-view .btn-gold{ background:var(--green); color:var(--cream); border-radius:9px; }
.dash-live-view .btn-gold:hover{ background:var(--green-d); }
.dash-live-view .stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-bottom:22px; }
.dash-live-view .stat{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:22px; }
.dash-live-view .stat .ic{ width:42px; height:42px; border-radius:12px; background:var(--beige); display:flex; align-items:center; justify-content:center; color:var(--green); margin-bottom:16px; }
.dash-live-view .stat .ic svg{ width:21px; height:21px; }
.dash-live-view .stat .val{ font-family:var(--sans); font-size:32px; font-weight:800; letter-spacing:-0.03em; line-height:1; }
.dash-live-view .stat .lbl{ color:var(--muted); font-size:13.5px; margin-top:6px; }
.dash-live-view .stat .delta{ font-size:12.5px; font-weight:600; margin-top:8px; }
.dash-live-view .up{ color:#2f855a; }
.dash-live-view .flat{ color:var(--muted); }
.dash-live-view .cols{ display:grid; grid-template-columns:1.4fr 1fr; gap:18px; }
@media (max-width:1100px){
.dash-live-view .stat-row{ grid-template-columns:1fr 1fr; }
.dash-live-view .cols{ grid-template-columns:1fr; } }
/* Téléphone : la barre latérale devient un bandeau, elle ne disparaît pas.
   -----------------------------------------------------------------------
   Elle était masquée d'un display:none, et l'aperçu se réduisait alors à une
   page claire sans logo ni navigation — cela ne ressemblait plus à un
   tableau de bord, donc l'illustration ne montrait plus rien. Repliée en
   bandeau supérieur, elle garde le logo et l'ensemble des entrées, réduites
   à leur pictogramme et parcourables au doigt : c'est exactement ce que fait
   une application sur un écran étroit. */
@media (max-width:720px){
.dash-live-view .app{ grid-template-columns:1fr; }
.dash-live-view .side{
  display:flex; flex-direction:row; align-items:center; gap:10px;
  padding:11px 13px; overflow:hidden;
}
.dash-live-view .side .logo{ padding:0; font-size:16px; gap:8px; flex:none; }
.dash-live-view .side .logo .mono-c{ width:22px; height:22px; }
.dash-live-view .side nav{
  flex-direction:row; margin-top:0; gap:3px; flex:1 1 0; min-width:0;
  overflow-x:auto; scrollbar-width:none;
}
.dash-live-view .side nav::-webkit-scrollbar{ display:none; }
/* Libellés escamotés par la taille de police, pas par display:none : le
   texte reste dans le document, donc lisible par un lecteur d'écran. */
.dash-live-view .side nav a{ flex:none; padding:8px 9px; gap:0; font-size:0; }
.dash-live-view .side nav a svg{ width:18px; height:18px; opacity:.9; }
.dash-live-view .side nav a.active{ background:rgba(195,209,126,.2); }
.dash-live-view .side .side-foot{ display:none; }
.dash-live-view .main{ padding:20px 18px; }
.dash-live-view .stat-row{ grid-template-columns:1fr 1fr; } }
.dash-live-view .panel{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px; margin-bottom:18px; }
.dash-live-view .panel-h{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.dash-live-view .panel-h h3{ font-size:18px; }
.dash-live-view .panel-h a{ font-size:13px; color:var(--green); font-weight:600; }
.dash-live-view .rdv{ display:flex; align-items:center; gap:14px; padding:13px 0; border-top:1px solid var(--line); }
.dash-live-view .rdv:first-of-type{ border-top:none; }
.dash-live-view .rdv .d{ text-align:center; min-width:48px; }
.dash-live-view .rdv .d b{ display:block; font-family:var(--sans); font-weight:800; font-size:19px; line-height:1; }
.dash-live-view .rdv .d span{ font-size:11px; text-transform:uppercase; color:var(--muted); }
.dash-live-view .rdv .info{ flex:1; }
.dash-live-view .rdv .info b{ font-size:14.5px; }
.dash-live-view .rdv .info span{ display:block; font-size:12.5px; color:var(--muted); }
.dash-live-view .tag-wa{ font-size:11.5px; color:#128C4B; background:rgba(37,211,102,.12); padding:4px 9px; border-radius:999px; font-weight:600; }
.dash-live-view .tag-pend{ font-size:11.5px; color:#8a6d1a; background:rgba(212,180,131,.22); padding:4px 9px; border-radius:999px; font-weight:600; }
.dash-live-view .art{ display:flex; align-items:center; gap:12px; padding:12px 0; border-top:1px solid var(--line); }
.dash-live-view .art:first-of-type{ border-top:none; }
.dash-live-view .art .info{ flex:1; }
.dash-live-view .art .info b{ font-size:14px; }
.dash-live-view .art .info span{ display:block; font-size:12px; color:var(--muted); }
.dash-live-view .art .btn-mini{ font-size:12.5px; font-weight:600; color:var(--green); border:1px solid var(--line); border-radius:7px; padding:6px 11px; cursor:pointer; }
.dash-live-view .rating-box{ display:flex; align-items:center; gap:16px; }
.dash-live-view .rating-box .num{ font-family:var(--sans); font-size:38px; font-weight:800; letter-spacing:-0.03em; color:var(--green); line-height:1; }
.dash-live-view .rating-box .stars{ color:var(--gold); letter-spacing:2px; }
.dash-live-view .mini-site{ display:flex; align-items:center; gap:12px; padding:12px 0; border-top:1px solid var(--line); }
.dash-live-view .mini-site:first-of-type{ border-top:none; }
.dash-live-view .mini-site .th{ width:56px; height:40px; border-radius:7px; background:var(--green-d) center/cover; }
.dash-live-view .mini-site .info{ flex:1; }
.dash-live-view .mini-site .info b{ font-size:14px; display:block; }
.dash-live-view .mini-site .info span{ display:block; font-size:12px; color:var(--muted); }
.dash-live-view .badge-pub{ font-size:11px; color:#2f855a; background:rgba(47,133,90,.12); padding:3px 9px; border-radius:999px; font-weight:600; }
.dash-live-view .demo-banner{ background:var(--green-d); color:var(--cream); text-align:center; font-size:12.5px; padding:8px 16px; }
.dash-live-view .demo-banner a{ color:var(--gold); font-weight:700; }
.dash-live-view .chart{ width:100%; height:auto; display:block; margin-top:4px; }
.dash-live-view .chart-grid line{ stroke:rgba(11,33,39,0.07); stroke-width:1; }
.dash-live-view .chart .dot{ fill:#0B2127; stroke:#fff; stroke-width:2; }
.dash-live-view .chart-x{ display:flex; justify-content:space-between; margin-top:10px; font-size:12px; color:var(--muted); }
.dash-live-view .btn-suggest{ margin-top:16px; width:100%; display:flex; align-items:center; justify-content:center; gap:8px; padding:12px; border:1px dashed var(--line); border-radius:10px; background:var(--beige); color:var(--green); font-weight:600; font-size:14px; cursor:pointer; font-family:inherit; }
.dash-live-view .btn-suggest:hover{ border-color:var(--green); }
.dash-live-view .wa-thread{ display:flex; align-items:flex-start; gap:13px; padding:14px 0; border-top:1px solid var(--line); cursor:pointer; }
.dash-live-view .wa-thread:first-of-type{ border-top:none; }
.dash-live-view .wa-thread .wa-ava{ width:40px; height:40px; border-radius:50%; background:var(--beige); color:var(--green); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13.5px; flex-shrink:0; }
.dash-live-view .wa-thread .msg{ flex:1; min-width:0; }
.dash-live-view .wa-thread .msg b{ font-size:14.5px; display:flex; align-items:center; gap:8px; }
.dash-live-view .wa-thread .msg p{ margin:3px 0 0; font-size:13px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dash-live-view .wa-thread .meta{ text-align:right; flex-shrink:0; }
.dash-live-view .wa-thread .meta time{ font-size:11.5px; color:var(--muted); display:block; }
.dash-live-view .wa-thread .meta .unread{ display:inline-flex; align-items:center; justify-content:center; min-width:19px; height:19px; border-radius:999px; background:var(--green); color:#fff; font-size:11px; font-weight:700; margin-top:5px; padding:0 5px; }
.dash-live-view .wa-head{ display:flex; align-items:center; gap:8px; }
.dash-live-view .wa-head .wa-logo{ width:20px; height:20px; color:var(--green); }
.dash-live-view .tag-rdv{ font-size:10.5px; color:var(--green); background:var(--beige); padding:3px 8px; border-radius:999px; font-weight:600; }
.dash-live-view .veille-item{ display:flex; align-items:flex-start; gap:12px; padding:13px 0; border-top:1px solid var(--line); }
.dash-live-view .veille-item:first-of-type{ border-top:none; }
.dash-live-view .veille-item .v-tag{ font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:4px 9px; border-radius:6px; flex-shrink:0; margin-top:2px; }
.dash-live-view .v-legi{ background:rgba(30,58,52,.1); color:var(--green); }
.dash-live-view .v-juri{ background:rgba(212,180,131,.25); color:#8a6d1a; }
.dash-live-view .v-actu{ background:rgba(94,42,59,.1); color:#5e2a3b; }
.dash-live-view .veille-item .info{ flex:1; }
.dash-live-view .veille-item .info b{ font-size:14px; line-height:1.35; display:block; }
.dash-live-view .veille-item .info span{ font-size:12px; color:var(--muted); }
.dash-live-view .veille-badge{ font-size:11.5px; color:var(--green); background:var(--beige); padding:5px 11px; border-radius:999px; font-weight:600; }
.dash-live-view .ai-panel{ background:var(--green-d); color:var(--cream); border:1px solid rgba(147,178,178,0.18); }
.dash-live-view .ai-panel h3{ color:#fff; }
.dash-live-view .ai-head{ display:flex; align-items:center; gap:10px; margin-bottom:6px; }
.dash-live-view .ai-head .ai-ic{ width:34px;height:34px;border-radius:9px;background:rgba(212,180,131,0.16);color:var(--gold);display:flex;align-items:center;justify-content:center; }
.dash-live-view .ai-head .ai-ic svg{ width:19px;height:19px; }
.dash-live-view .ai-sub{ font-size:12.5px; color:rgba(244,241,234,0.65); margin:0 0 14px; }
.dash-live-view .ai-log{ display:flex; flex-direction:column; gap:10px; margin-bottom:14px; max-height:260px; overflow-y:auto; }
.dash-live-view .ai-msg{ font-size:13.5px; line-height:1.5; padding:11px 14px; border-radius:12px; white-space:pre-wrap; }
.dash-live-view .ai-msg.u{ background:var(--gold); color:var(--ink); align-self:flex-end; max-width:85%; border-bottom-right-radius:4px; }
.dash-live-view .ai-msg.a{ background:rgba(255,255,255,0.06); color:rgba(244,241,234,0.92); border:1px solid rgba(212,180,131,0.14); align-self:flex-start; max-width:92%; border-bottom-left-radius:4px; }
.dash-live-view .ai-msg.a.think{ color:rgba(244,241,234,0.5); font-style:italic; }
.dash-live-view .ai-msg.a.streaming::after{
  content:"\u258B"; margin-left:2px; color:var(--gold);
  animation: aiCaret 1s steps(1) infinite;
}
@keyframes aiCaret{
0%, 49%{opacity:1}
50%, 100%{opacity:0} }
@media (prefers-reduced-motion: reduce){
.dash-live-view .ai-msg.a.streaming::after{ animation:none } }
.dash-live-view .ai-form{ display:flex; gap:8px; }
.dash-live-view .ai-form input{ flex:1; padding:11px 14px; border-radius:10px; border:1px solid rgba(212,180,131,0.22); background:rgba(255,255,255,0.05); color:var(--cream); font-family:inherit; font-size:14px; }
.dash-live-view .ai-form input::placeholder{ color:rgba(244,241,234,0.45); }
.dash-live-view .ai-form input:focus{ outline:none; border-color:var(--gold); }
.dash-live-view .ai-form button{ background:var(--gold); color:var(--ink); border:none; border-radius:10px; width:44px; display:flex;align-items:center;justify-content:center; cursor:pointer; }
.dash-live-view .ai-form button svg{ width:18px;height:18px; }
.dash-live-view .ai-chips{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:12px; }
.dash-live-view .ai-chips button{ font-size:12px; color:rgba(244,241,234,0.85); background:rgba(255,255,255,0.05); border:1px solid rgba(212,180,131,0.2); border-radius:999px; padding:6px 11px; cursor:pointer; font-family:inherit; }
.dash-live-view .ai-chips button:hover{ border-color:var(--gold); color:#fff; }
.dash-live-view .ai-attach{ background:transparent; border:1px solid rgba(147,178,178,0.22); border-radius:10px; width:44px; flex-shrink:0; display:flex; align-items:center; justify-content:center; cursor:pointer; color:rgba(240,245,240,0.75); }
.dash-live-view .ai-attach:hover{ border-color:var(--gold); color:#fff; }
.dash-live-view .ai-attach svg{ width:18px; height:18px; }
.dash-live-view .ai-file{ display:flex; align-items:center; gap:9px; background:rgba(255,255,255,0.05); border:1px solid rgba(147,178,178,0.18); border-radius:10px; padding:8px 12px; margin-bottom:10px; font-size:12.5px; color:rgba(240,245,240,0.9); }
.dash-live-view .ai-file[hidden]{ display:none; }
.dash-live-view .ai-file img.ai-thumb{ width:30px; height:30px; border-radius:6px; object-fit:cover; flex-shrink:0; }
.dash-live-view .ai-file > svg{ width:15px; height:15px; flex-shrink:0; color:var(--gold); }
.dash-live-view .ai-file span{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dash-live-view .ai-file button{ background:none; border:none; color:rgba(240,245,240,0.6); cursor:pointer; font-size:13px; padding:2px 4px; line-height:1; }
.dash-live-view .ai-file button:hover{ color:#fff; }
.dash-live-view .ai-disc{ font-size:11px; color:rgba(244,241,234,0.4); margin-top:10px; }
.dash-live-view .ai-msg.a.rendered{ white-space: normal; }
.dash-live-view .ai-msg.a.rendered > *:first-child{ margin-top:0; }
.dash-live-view .ai-msg.a.rendered > *:last-child{ margin-bottom:0; }
.dash-live-view .ai-msg.a.rendered p{ margin:0 0 9px; }
.dash-live-view .ai-msg.a.rendered h3, .dash-live-view .ai-msg.a.rendered h4, .dash-live-view .ai-msg.a.rendered h5, .dash-live-view .ai-msg.a.rendered h6{
  margin:15px 0 7px; line-height:1.3; color:#fff; letter-spacing:-0.01em;
}
.dash-live-view .ai-msg.a.rendered h3{ font-size:15px; }
.dash-live-view .ai-msg.a.rendered h4{ font-size:14px; }
.dash-live-view .ai-msg.a.rendered h5, .dash-live-view .ai-msg.a.rendered h6{ font-size:13.5px; }
.dash-live-view .ai-msg.a.rendered strong{ color:#fff; font-weight:650; }
.dash-live-view .ai-msg.a.rendered em{ font-style:italic; }
.dash-live-view .ai-msg.a.rendered ul, .dash-live-view .ai-msg.a.rendered ol{ margin:0 0 9px; padding-left:20px; }
.dash-live-view .ai-msg.a.rendered li{ margin:3px 0; }
.dash-live-view .ai-msg.a.rendered li::marker{ color:var(--gold); }
.dash-live-view .ai-msg.a.rendered a{ color:var(--gold); text-decoration:underline; text-underline-offset:2px; }
.dash-live-view .ai-msg.a.rendered code{
  font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size:12.5px;
  background:rgba(255,255,255,0.08); border:1px solid rgba(212,180,131,0.16);
  border-radius:5px; padding:1px 5px;
}
.dash-live-view .ai-msg.a.rendered pre{
  margin:0 0 10px; padding:11px 13px; border-radius:9px; overflow-x:auto;
  background:rgba(0,0,0,0.28); border:1px solid rgba(212,180,131,0.14);
}
.dash-live-view .ai-msg.a.rendered pre code{ background:none; border:none; padding:0; font-size:12px; line-height:1.55; }
.dash-live-view .ai-msg.a.rendered blockquote{
  margin:0 0 10px; padding:2px 0 2px 12px;
  border-left:2px solid var(--gold); color:rgba(244,241,234,0.72);
}
.dash-live-view .ai-msg.a.rendered hr{ border:none; border-top:1px solid rgba(212,180,131,0.18); margin:14px 0; }
.dash-live-view .ai-msg.a.rendered .md-tw{ overflow-x:auto; margin:0 0 10px; }
.dash-live-view .ai-msg.a.rendered table{ border-collapse:collapse; font-size:12.5px; min-width:100%; }
.dash-live-view .ai-msg.a.rendered th, .dash-live-view .ai-msg.a.rendered td{
  text-align:left; padding:7px 10px; border:1px solid rgba(212,180,131,0.16); vertical-align:top;
}
.dash-live-view .ai-msg.a.rendered th{ background:rgba(255,255,255,0.05); color:#fff; font-weight:600; white-space:nowrap; }
.dash-live-view .ai-head{ flex-wrap:wrap; }
.dash-live-view .ai-convs{ display:flex; align-items:center; gap:6px; margin-left:auto; }
.dash-live-view .ai-convs select{
  max-width:210px; font-family:inherit; font-size:12px; padding:6px 9px;
  border-radius:8px; border:1px solid rgba(212,180,131,0.24);
  background:rgba(255,255,255,0.06); color:var(--cream);
  text-overflow:ellipsis; cursor:pointer;
}
.dash-live-view .ai-convs select:focus{ outline:none; border-color:var(--gold); }
.dash-live-view .ai-convs button{
  width:29px; height:29px; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  border-radius:8px; border:1px solid rgba(212,180,131,0.24); cursor:pointer;
  background:rgba(255,255,255,0.06); color:var(--gold);
}
.dash-live-view .ai-convs button:hover:not(:disabled){ background:rgba(212,180,131,0.16); }
.dash-live-view .ai-convs button:disabled{ opacity:.35; cursor:default; }
.dash-live-view .ai-convs button svg{ width:14px; height:14px; }
@media (max-width:560px){
.dash-live-view .ai-convs{ margin-left:0; width:100%; margin-top:8px; }
.dash-live-view .ai-convs select{ flex:1; max-width:none; }
}
.dash-live-view a.veille-item{ text-decoration:none; color:inherit; transition:background .2s ease; border-radius:8px; }
.dash-live-view a.veille-item:hover{ background:rgba(11,33,39,0.035); }
.dash-live-view a.veille-item:hover .info b{ text-decoration:underline; text-underline-offset:2px; }
.dash-live-view [hidden]{ display:none !important; }
.dash-live-view .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;
}

/* Reprend l'allure de l'ancien <h1> de la maquette, devenu <p> :
   deux <h1> sur la page d'accueil brouillaient son sujet. */
.dash-live-view .dash-title{ font-family:var(--sans); font-size:30px; font-weight:700;
  letter-spacing:-0.025em; margin:0; color:var(--ink); }

/* Téléphone : le bandeau tenait la largeur d'un écran d'ordinateur. Le bouton
   se cassait sur trois lignes, le nom du cabinet aussi, et la maquette —
   premier contact avec le produit — paraissait négligée. */
@media (max-width:560px){
  .dash-live-view .main{ padding:18px 14px 40px; }
  .dash-live-view .dash-title{ font-size:22px; }
  .dash-live-view .topbar{ margin-bottom:18px; gap:10px; }
  .dash-live-view .topbar .welcome{ font-size:13px; }
  .dash-live-view .topbar-r{ width:100%; justify-content:space-between; gap:10px; }
  .dash-live-view .topbar-r .btn-gold{
    white-space:nowrap; padding:10px 14px; font-size:13.5px; flex-shrink:0;
  }
  .dash-live-view .user-chip{ padding:4px 10px 4px 4px; gap:8px; min-width:0; }
  .dash-live-view .user-chip .ava{ width:28px; height:28px; }
  .dash-live-view .user-chip .nm{
    font-size:12.5px; white-space:nowrap; overflow:hidden;
    text-overflow:ellipsis; max-width:34vw;
  }
  .dash-live-view .stat-row{ gap:10px; }
  .dash-live-view .stat{ padding:14px; border-radius:14px; }
  .dash-live-view .stat .ic{ width:34px; height:34px; margin-bottom:10px; }
  .dash-live-view .stat .val{ font-size:24px; }
  .dash-live-view .stat .lbl{ font-size:12px; margin-top:4px; }
  .dash-live-view .stat .delta{ font-size:11px; }
}

/* ================================================================
   Le tableau de bord se manipule : vues, éditeur fictif, sources
   ================================================================ */
/* La scène en perspective : le cadre s'y redresse au défilement. */
.dash-scene{ perspective:1100px; }
.dash-live{ transform-origin:50% 18%; will-change:transform; }

/* La barre latérale est cliquable : le curseur le dit. */
.dash-live-view .side nav a{ cursor:pointer; }

/* Ce que chaque vue montre. Par défaut (bord) : tout, sauf l'éditeur
   fictif et le panneau des sources. */
.dash-live-view .ms-editeur{ display:none; }
.dash-live-view .p-sources{ display:none; }

.dash-live-view .main[data-vue="statistiques"] .cols{ display:none; }
.dash-live-view .main[data-vue="statistiques"] .p-sources{ display:block; }

.dash-live-view .main[data-vue="veille"] .stat-row,
.dash-live-view .main[data-vue="veille"] .p-graph,
.dash-live-view .main[data-vue="veille"] .p-articles,
.dash-live-view .main[data-vue="veille"] .ai-panel,
.dash-live-view .main[data-vue="veille"] .p-note,
.dash-live-view .main[data-vue="veille"] .p-monsite{ display:none; }
.dash-live-view .main[data-vue="veille"] .cols{ grid-template-columns:1fr; }

.dash-live-view .main[data-vue="assistant"] .stat-row,
.dash-live-view .main[data-vue="assistant"] .p-graph,
.dash-live-view .main[data-vue="assistant"] .p-veille,
.dash-live-view .main[data-vue="assistant"] .p-articles,
.dash-live-view .main[data-vue="assistant"] .p-note,
.dash-live-view .main[data-vue="assistant"] .p-monsite{ display:none; }
.dash-live-view .main[data-vue="assistant"] .cols{ grid-template-columns:1fr; }

.dash-live-view .main[data-vue="articles"] .stat-row,
.dash-live-view .main[data-vue="articles"] .p-graph,
.dash-live-view .main[data-vue="articles"] .p-veille,
.dash-live-view .main[data-vue="articles"] .ai-panel,
.dash-live-view .main[data-vue="articles"] .p-note,
.dash-live-view .main[data-vue="articles"] .p-monsite{ display:none; }
.dash-live-view .main[data-vue="articles"] .cols{ grid-template-columns:1fr; }

.dash-live-view .main[data-vue="mon-site"] .stat-row,
.dash-live-view .main[data-vue="mon-site"] .p-graph,
.dash-live-view .main[data-vue="mon-site"] .p-veille,
.dash-live-view .main[data-vue="mon-site"] .p-articles,
.dash-live-view .main[data-vue="mon-site"] .ai-panel,
.dash-live-view .main[data-vue="mon-site"] .p-note{ display:none; }
.dash-live-view .main[data-vue="mon-site"] .cols{ grid-template-columns:1fr; }
.dash-live-view .main[data-vue="mon-site"] .ms-editeur{ display:block; }

/* Les chiffres ne tremblent pas en comptant. */
.dash-live-view .stat .val{ font-variant-numeric:tabular-nums; }

/* L'éditeur fictif de « Mon site ». */
.dash-live-view .ms-note{ margin:14px 0 10px; font-size:13px; color:var(--muted); }
.dash-live-view .ms-champ{
  display:flex; align-items:center; gap:12px;
  padding:11px 14px; margin-bottom:8px;
  background:#F6F8F6; border:1px solid rgba(19,32,36,.08); border-radius:10px;
}
.dash-live-view .ms-lbl{
  flex:none; width:150px; font-size:11.5px; font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; color:var(--muted);
}
.dash-live-view .ms-val{
  flex:1; min-width:0; font-size:13.5px; color:#1E3238;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.dash-live-view .ms-champ svg{ flex:none; width:15px; height:15px; color:#5C6E28; }

/* Les sources de visite : quatre barres à la charte. */
.dash-live-view .src-barres{ display:flex; flex-direction:column; gap:12px; margin-top:6px; }
.dash-live-view .src-ligne{ display:flex; align-items:center; gap:12px; }
.dash-live-view .src-nom{ flex:none; width:190px; font-size:13px; color:#1E3238; }
.dash-live-view .src-piste{
  flex:1; height:10px; border-radius:6px; background:rgba(19,32,36,.07);
  overflow:hidden;
}
.dash-live-view .src-piste i{
  display:block; height:100%; width:var(--part);
  border-radius:6px;
  background:linear-gradient(90deg,#1C4D56,#5C6E28);
}
.dash-live-view .src-ligne b{
  flex:none; width:42px; text-align:right;
  font-size:13px; font-variant-numeric:tabular-nums; color:#0B2127;
}
@media (max-width:700px){
  .dash-live-view .src-nom{ width:120px; font-size:12px; }
  .dash-live-view .ms-lbl{ width:104px; }
}
/* Le panneau Abonnement n'appartient qu'à la vue d'ensemble. */
.dash-live-view .main[data-vue="statistiques"] .p-abo,
.dash-live-view .main[data-vue="veille"] .p-abo,
.dash-live-view .main[data-vue="assistant"] .p-abo,
.dash-live-view .main[data-vue="articles"] .p-abo,
.dash-live-view .main[data-vue="mon-site"] .p-abo{ display:none; }
/* Statistiques : le graphique et les sources, sans la rangée de tuiles,
   pour que les deux tiennent dans le cadre. */
.dash-live-view .main[data-vue="statistiques"] .stat-row{ display:none; }
