/* InSerein — charte Insight Smart Technologies */
:root{
  --nuit:#0f172a; --bleu:#2563eb; --cyan:#06b6d4; --orange:#ff7a00; --encre:#06121f; --brume:#f5f9ff;
  --texte:#1b2a3d; --texte-2:#4d5f75; --texte-3:#8394a8; --trait:#e3ebf5; --blanc:#fff;
  --vert:#13955f; --rouge:#d43c3c; --ambre:#c27a00;
  --degrade:linear-gradient(100deg,#2563eb,#06b6d4);
  --ombre:0 6px 24px rgba(15,23,42,.08);
}
*{box-sizing:border-box}
body{margin:0;font:400 14.5px/1.5 Inter,system-ui,sans-serif;color:var(--texte);background:var(--brume)}
h1,h2,h3{font-family:'Space Grotesk',Inter,sans-serif;color:var(--encre);margin:0}
h1{font-size:26px;font-weight:600;margin-bottom:22px}
h2{font-size:16px;font-weight:600;margin-bottom:14px}
a{color:var(--bleu);text-decoration:none}
code{font:500 12.5px ui-monospace,Consolas,monospace;background:var(--brume);padding:1px 5px;border-radius:5px;color:var(--nuit)}

.cadre{display:flex;min-height:100vh}
.lateral{width:240px;flex-shrink:0;background:var(--blanc);border-right:1px solid var(--trait);display:flex;flex-direction:column;padding:22px 14px;position:sticky;top:0;height:100vh}
.marque{font:700 24px 'Space Grotesk',sans-serif;color:var(--nuit);letter-spacing:-.5px;padding:0 10px}
.marque.grande{font-size:36px;text-align:center;margin-bottom:22px}
.marque-in{background:var(--degrade);-webkit-background-clip:text;background-clip:text;color:transparent}
.cabinet{font-size:12.5px;color:var(--texte-3);padding:2px 10px 18px;border-bottom:1px solid var(--trait);margin-bottom:12px}
.lateral nav{display:flex;flex-direction:column;gap:2px;flex:1}
.lateral nav a,.lien-sortie{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:10px;color:var(--texte-2);font-weight:500}
.lateral nav a svg,.lien-sortie svg{width:19px;height:19px;flex-shrink:0}
.lateral nav a:hover{background:var(--brume);color:var(--nuit)}
.lateral nav a.actif{background:linear-gradient(100deg,rgba(37,99,235,.12),rgba(6,182,212,.08));color:var(--nuit);font-weight:600}
.lateral-pied{border-top:1px solid var(--trait);padding-top:12px}
.qui{padding:0 11px 8px}.qui b{display:block;font-size:13.5px}.qui span{font-size:12px;color:var(--texte-3)}
.lien-sortie{background:none;border:0;width:100%;cursor:pointer;font:inherit;font-weight:500}
.lien-sortie:hover{background:#fdf0f0;color:var(--rouge)}
.editeur{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--texte-3);padding:12px 11px 0}
.editeur img{width:18px;height:18px}
.editeur.centre{justify-content:center;padding-top:22px}

.contenu{flex:1;padding:32px 38px;min-width:0}
.seul{min-height:100vh}
.connexion{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 10%,rgba(6,182,212,.16),transparent 45%),radial-gradient(circle at 85% 90%,rgba(255,122,0,.10),transparent 40%)}
.connexion-carte{width:100%;max-width:400px;background:rgba(255,255,255,.85);backdrop-filter:blur(12px);border:1px solid var(--trait);border-radius:26px;padding:38px 32px;box-shadow:var(--ombre)}

.carte{background:var(--blanc);border:1px solid var(--trait);border-radius:16px;padding:22px;box-shadow:var(--ombre);margin-bottom:18px}
.grille-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.grille-2.large-gauche{grid-template-columns:1.7fr 1fr}
.barre-actions{display:flex;justify-content:flex-end;gap:10px;margin:-56px 0 22px}

.tuiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.tuile{background:var(--blanc);border:1px solid var(--trait);border-radius:16px;padding:20px 22px;box-shadow:var(--ombre);color:inherit;position:relative;overflow:hidden}
.tuile::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--degrade)}
.tuile b{display:block;font:600 32px 'Space Grotesk',sans-serif;color:var(--nuit)}
.tuile span{color:var(--texte-2);font-size:13.5px}
a.tuile:hover{border-color:var(--cyan)}

.tableau{width:100%;border-collapse:collapse}
.tableau th{text-align:left;font-size:12px;font-weight:600;color:var(--texte-3);text-transform:uppercase;letter-spacing:.04em;padding:0 10px 10px;border-bottom:1px solid var(--trait)}
.tableau td{padding:12px 10px;border-bottom:1px solid var(--trait);vertical-align:middle}
.tableau tr:last-child td{border-bottom:0}
.tableau.serre td{padding:8px 10px;font-size:13.5px}
.discret{color:var(--texte-3);font-size:12.5px}
.droite{text-align:right}.nowrap{white-space:nowrap}
.vide{text-align:center;color:var(--texte-3);padding:30px}

.formulaire label{display:block;font-size:13px;font-weight:600;color:var(--texte-2);margin-bottom:14px}
.formulaire input,.formulaire select,.formulaire textarea{display:block;width:100%;margin-top:6px;font:inherit;font-weight:400;color:var(--texte);padding:10px 12px;border:1px solid #d4dfec;border-radius:10px;background:var(--blanc)}
.formulaire input:focus,.formulaire select:focus,.formulaire textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(6,182,212,.18)}
.ligne-champs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.formulaire h2:not(:first-of-type){margin-top:10px;padding-top:16px;border-top:1px solid var(--trait)}
.actions{display:flex;gap:10px;margin-top:6px}
.connexion-carte .bouton.plein{width:100%;justify-content:center}

.bouton{display:inline-flex;align-items:center;gap:6px;padding:8px 15px;border-radius:10px;border:1px solid #d4dfec;background:var(--blanc);color:var(--nuit);font:600 13.5px Inter,sans-serif;cursor:pointer}
.bouton:hover{border-color:var(--bleu)}
.bouton.plein{background:var(--bleu);border-color:var(--bleu);color:#fff}
.bouton.plein:hover{background:var(--nuit)}
.bouton.danger{color:var(--rouge);border-color:#f0c9c9}
.bouton.danger:hover{background:#fdf0f0}
form.enligne{display:inline}

.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}
.badge.vert{background:#e3f6ee;color:var(--vert)}.badge.rouge{background:#fdeaea;color:var(--rouge)}
.badge.ambre{background:#fff3df;color:var(--ambre)}.badge.bleu{background:#e5f1fb;color:var(--bleu)}
.badge.neutre{background:var(--brume);color:var(--texte-2)}

.alerte{padding:12px 16px;border-radius:12px;margin-bottom:16px;font-weight:500}
.alerte.succes{background:#e3f6ee;color:#0c6b44}.alerte.erreur{background:#fdeaea;color:#a42626}
.alerte.info{background:#e5f1fb;color:var(--nuit)}

.fiche{display:grid;grid-template-columns:120px 1fr;gap:8px 14px;margin:0}
.fiche dt{color:var(--texte-3);font-size:13px}.fiche dd{margin:0;font-weight:500}
.pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:16px}

@media (max-width:900px){
  .cadre{flex-direction:column}
  .lateral{width:auto;height:auto;position:static;padding:14px}
  .lateral nav{flex-direction:row;flex-wrap:wrap}
  .lateral-pied{display:flex;align-items:center;gap:10px}
  .contenu{padding:22px 16px}
  .grille-2,.grille-2.large-gauche,.ligne-champs{grid-template-columns:1fr}
  .barre-actions{margin:0 0 16px}
  .carte{overflow-x:auto}
}

.filtres{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.onglets{display:flex;gap:4px;background:var(--blanc);border:1px solid var(--trait);border-radius:12px;padding:4px}
.onglets a{padding:7px 14px;border-radius:9px;color:var(--texte-2);font-weight:500;font-size:13.5px}
.onglets a span{display:inline-block;min-width:20px;padding:0 6px;margin-left:4px;border-radius:10px;background:var(--brume);font-size:11.5px;text-align:center}
.onglets a.actif{background:var(--bleu);color:#fff}.onglets a.actif span{background:rgba(255,255,255,.22)}
.recherche input{font:inherit;padding:9px 14px;border:1px solid #d4dfec;border-radius:10px;width:290px;background:var(--blanc)}
.ligne-ajout{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--trait)}
.ligne-ajout input{flex:1;min-width:120px;margin:0}
.bloc-sep{margin-top:16px;padding-top:16px;border-top:1px solid var(--trait)}
.ligne-champs.trois{grid-template-columns:1fr 1fr 1fr}
.texte-ambre{color:var(--ambre);font-weight:600}
@media (max-width:900px){.ligne-champs.trois{grid-template-columns:1fr}.recherche input{width:100%}}

.espace-haut{margin-top:22px}
.champ-court{font:inherit;padding:7px 10px;border:1px solid #d4dfec;border-radius:10px;margin-right:6px}
.tuile.alerte-tuile b{color:var(--rouge)}
.imprimable{background:#fff}
.facture-doc{max-width:760px;margin:30px auto;padding:0 20px}
.fd-tete{display:flex;gap:14px;align-items:center;font-size:12.5px;color:var(--texte-2);border-bottom:3px solid var(--cyan);padding-bottom:16px;margin-bottom:26px}
.fd-tete img{width:46px;height:46px}.fd-tete b{color:var(--nuit);font-size:15px}
.fd-parties{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;line-height:1.7}
.fd-parties span{display:inline-block;width:90px;color:var(--texte-3);font-size:12.5px}
.fd-total{display:flex;justify-content:flex-end;gap:30px;padding:6px 10px}.fd-total b{font-size:17px;color:var(--nuit)}
@media print{.facture-doc{margin:0}}

.graphes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:18px}
.camembert{margin:0}
.cam-corps{display:flex;align-items:center;gap:18px}
.cam-corps svg{width:150px;height:150px;flex-shrink:0}
.cam-total{font:600 26px 'Space Grotesk',sans-serif;fill:var(--nuit)}
.cam-unite{font:500 10px Inter,sans-serif;fill:var(--texte-3)}
.cam-legende{list-style:none;margin:0;padding:0;flex:1;font-size:13px}
.cam-legende li{display:grid;grid-template-columns:12px 1fr auto 42px;gap:8px;align-items:center;padding:4px 0;border-bottom:1px dashed var(--trait)}
.cam-legende li:last-child{border-bottom:0}
.cam-legende i{width:12px;height:12px;border-radius:4px}
.cam-legende b{color:var(--nuit)}.cam-legende em{font-style:normal;color:var(--texte-3);text-align:right}
.jauge{position:relative;width:220px;height:34px;border:1px solid var(--trait);border-radius:10px;background:var(--blanc);overflow:hidden;display:flex;align-items:center}
.jauge i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,rgba(37,99,235,.16),rgba(6,182,212,.22))}
.jauge.haute i{background:rgba(224,161,0,.25)}.jauge.pleine i{background:rgba(212,60,60,.22)}
.jauge span{position:relative;padding:0 12px;font-weight:600;font-size:13px;color:var(--nuit)}
.alerte.quota{background:#fff3df;color:#7a4b00;border-left:4px solid var(--orange)}
.offres{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:18px}
.offre{background:var(--blanc);border:1px solid var(--trait);border-radius:16px;padding:20px;box-shadow:var(--ombre);display:flex;flex-direction:column;position:relative;overflow:hidden}
.offre::before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--degrade)}
.offre.retiree{opacity:.6}
.offre-tete{display:flex;justify-content:space-between;align-items:center;font:600 17px 'Space Grotesk',sans-serif;color:var(--encre)}
.offre-prix{font:700 28px 'Space Grotesk',sans-serif;color:var(--nuit);margin:10px 0}.offre-prix span{font:500 12.5px Inter,sans-serif;color:var(--texte-3)}
.offre ul{list-style:none;padding:0;margin:0 0 10px;font-size:13.5px}.offre li{padding:3px 0}
.offre-cond{font-size:12.5px;color:var(--texte-2);background:var(--brume);border-radius:10px;padding:8px 10px;margin:0 0 10px}
.offre-pied{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--texte-3)}
.graphes{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.cam-corps{flex-wrap:wrap}
.cam-corps svg{width:130px;height:130px}
.cam-legende{min-width:160px}
.cam-legende li{grid-template-columns:10px minmax(0,1fr) auto 38px}
.cam-legende span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cam-legende em{white-space:nowrap}.cam-legende li{grid-template-columns:10px minmax(0,1fr) auto 44px}

.bandeau-client{display:flex;flex-wrap:wrap;gap:10px 30px;align-items:center;background:var(--blanc);border:1px solid var(--trait);border-radius:16px;padding:14px 20px;margin:-6px 0 14px;box-shadow:var(--ombre)}
.bandeau-client span{display:block;font-size:11.5px;color:var(--texte-3);text-transform:uppercase;letter-spacing:.04em}
.bandeau-client b{font:600 15px 'Space Grotesk',sans-serif;color:var(--nuit)}
.texte-rouge{color:var(--rouge) !important}
.onglets-fiche{display:inline-flex;margin-bottom:18px;flex-wrap:wrap}
tr.inactif td{opacity:.55}

.frise{display:flex;list-style:none;padding:0;margin:0 0 18px;counter-reset:e}
.frise li{flex:1;position:relative;text-align:center;font-size:12.5px;color:var(--texte-3);padding-top:30px;counter-increment:e}
.frise li::before{content:counter(e);position:absolute;top:0;left:50%;transform:translateX(-50%);width:24px;height:24px;border-radius:50%;background:var(--blanc);border:2px solid var(--trait);display:grid;place-items:center;font-weight:600;font-size:11.5px;z-index:1}
.frise li::after{content:"";position:absolute;top:11px;left:-50%;width:100%;height:2px;background:var(--trait)}
.frise li:first-child::after{display:none}
.frise li.faite{color:var(--nuit)}.frise li.faite::before{background:var(--bleu);border-color:var(--bleu);color:#fff;content:"✓"}
.frise li.faite::after,.frise li.courante::after{background:var(--bleu)}
.frise li.courante{color:var(--nuit);font-weight:600}.frise li.courante::before{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 0 4px rgba(6,182,212,.15)}
.frise.refusee li.courante::before{border-color:var(--rouge);color:var(--rouge)}
.histo{list-style:none;padding:0;margin:0;max-height:360px;overflow:auto}
.histo li{display:grid;grid-template-columns:118px 110px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--trait);font-size:13px}
.h-date{color:var(--texte-3)}.h-qui{font-weight:600;color:var(--nuit)}
.bouton.large{width:100%;justify-content:center;padding:11px}
.bouton[disabled]{opacity:.5;cursor:not-allowed}
.formulaire.etroit{max-width:720px}
.ligne-ajout select{flex:0 0 auto;width:auto;margin:0}
@media (max-width:900px){.histo li{grid-template-columns:1fr}.frise li{font-size:10.5px}}
.ligne-ajout.sans-bord{margin:0;padding:0;border:0;flex-wrap:nowrap}.ligne-ajout.sans-bord input{min-width:0;width:130px;flex:0 0 auto}
.bac-a-sable{background:repeating-linear-gradient(135deg,#fff3df,#fff3df 12px,#ffe9c4 12px,#ffe9c4 24px);color:#7a4b00;text-align:center;font:600 12.5px Inter,sans-serif;padding:6px;letter-spacing:.04em;position:sticky;top:0;z-index:5}

.alerte-rouge{margin:-8px 0 18px;display:flex;flex-direction:column;gap:6px}
.alerte-rouge a{display:flex;align-items:center;gap:12px;background:#dc2626;color:#fff;border-radius:12px;padding:12px 16px;font-weight:600;box-shadow:0 6px 18px rgba(220,38,38,.3)}
.alerte-rouge a b{margin-left:auto;background:rgba(255,255,255,.2);padding:3px 12px;border-radius:8px}
.alerte-rouge .point{width:10px;height:10px;border-radius:50%;background:#fff;animation:clignote 1s infinite}
@keyframes clignote{50%{opacity:.2}}
.pastille-menu{margin-left:auto;font-style:normal;background:#dc2626;color:#fff;border-radius:10px;padding:0 7px;font-size:11.5px;font-weight:700}
.piece-ligne{display:flex;gap:12px;align-items:center}
.vignette{width:64px;height:48px;object-fit:cover;border-radius:8px;border:1px solid var(--trait);display:block}
.vignette.pdf{display:grid;place-items:center;font-weight:700;font-size:12px;color:var(--rouge);background:#fef2f2}

.messagerie{grid-template-columns:340px 1fr}
.conv{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:10px;border-radius:10px;color:inherit;border-bottom:1px solid var(--trait)}
.conv span{grid-column:1/-1;color:var(--texte-2);font-size:13px}.conv small{grid-column:1/-1;color:var(--texte-3);font-size:11.5px}
.conv.actif,.conv:hover{background:var(--brume)}
.fil .bulles{height:52vh;overflow:auto;display:flex;flex-direction:column;gap:8px;padding:6px;background:var(--brume);border-radius:12px}
.bulle{max-width:70%;padding:10px 12px;border-radius:14px}.bulle small{display:block;font-size:11px;opacity:.7;margin-top:4px}
.bulle.courtier{align-self:flex-end;background:var(--bleu);color:#fff}.bulle.client{align-self:flex-start;background:#fff;border:1px solid var(--trait)}
.annonce{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--trait)}.annonce img{width:120px;height:90px;object-fit:cover;border-radius:10px}
.annonce p{margin:6px 0}.annonce.perturbation{border-left:4px solid var(--orange);padding-left:12px}
@media (max-width:900px){.messagerie{grid-template-columns:1fr}}
