:root{
  --encre:#16211f; --encre-2:#4a5c59; --bord:#d8e0dd; --fond:#eef1f0; --blanc:#fff;
  --nuit:#0f2a26; --nuit-2:#17423a; --or:#c9a227;
  --bleu:#e7f0f9; --bleu-fort:#1c4e80; --vert:#e6f3e9; --vert-fort:#1f6b3a;
  --orange:#fdf0dc; --orange-fort:#8a5a00; --rouge:#a01f1f; --rouge-fond:#fbeaea;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--fond);color:var(--encre);font:13px/1.4 "Segoe UI",system-ui,sans-serif}
a{color:var(--bleu-fort)}
.cache{display:none!important}

/* ---------- Barre superieure et menu horizontal ---------- */
.bandeau{background:var(--nuit);color:#e8efec;padding:0 20px;display:flex;align-items:center;gap:18px;height:56px;position:sticky;top:0;z-index:30}
.marque{display:flex;align-items:center;gap:10px}
.marque .logo{width:34px;height:34px}
.marque b{font-size:17px;letter-spacing:.3px;display:block;line-height:1}
.marque span{font-size:10.5px;opacity:.7}
.recherche{position:relative;margin-left:auto}
.recherche input{width:280px;padding:7px 10px;border-radius:4px;border:1px solid #2c4f48;background:#0b211d;color:#e8efec;font:inherit}
.recherche input::placeholder{color:#7d9791}
.suggestions{position:absolute;top:38px;left:0;right:0;background:#fff;color:var(--encre);border:1px solid var(--bord);border-radius:4px;box-shadow:0 8px 24px rgba(0,0,0,.18);max-height:300px;overflow:auto;z-index:40}
.suggestions div{padding:7px 10px;cursor:pointer;border-bottom:1px solid var(--bord)}
.suggestions div:hover{background:var(--fond)}
.compte{display:flex;align-items:center;gap:10px;font-size:12px}
.menu{background:var(--nuit-2);padding:0 20px;display:flex;gap:2px;position:sticky;top:56px;z-index:29;overflow-x:auto}
.menu button{background:none;border:0;color:#cfdcd8;font:inherit;padding:9px 16px;cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap}
.menu button:hover{color:#fff}
.menu button.actif{color:#fff;border-bottom-color:var(--or);font-weight:600}
main{padding:18px 20px 60px;max-width:1500px;margin:0 auto}

/* ---------- Blocs ---------- */
.bloc{background:var(--blanc);border:1px solid var(--bord);border-radius:6px;margin-bottom:16px}
.bloc>h2{margin:0;padding:10px 14px;font-size:13px;border-bottom:1px solid var(--bord);background:#f7f9f8;border-radius:6px 6px 0 0;display:flex;justify-content:space-between;align-items:center;gap:10px}
.bloc>h2 small{font-weight:400;color:var(--encre-2)}
.bloc .corps{padding:12px 14px}
.grille{display:grid;gap:16px}
.g2{grid-template-columns:1fr 1fr}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.indic{background:var(--blanc);border:1px solid var(--bord);border-radius:6px;padding:12px 14px}
.indic small{display:block;color:var(--encre-2);font-size:11.5px}
.indic b{font-size:21px;font-variant-numeric:tabular-nums}
button.indic{color:var(--encre);text-align:left;cursor:pointer}
button.indic:hover,button.indic:focus-visible{outline:2px solid var(--encre-2);outline-offset:2px;background:var(--blanc)}

/* ---------- Tableaux ---------- */
.tableau{overflow:auto;max-height:70vh}
table{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}
th,td{padding:5px 8px;border-bottom:1px solid var(--bord);text-align:left;white-space:nowrap}
thead th{position:sticky;top:0;background:#f2f5f4;z-index:2;font-size:11.5px;color:var(--encre-2);cursor:pointer;border-bottom:1px solid #c5d0cd}
thead th.nt{cursor:default}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
tbody tr:hover{background:#f6f9f8}
tr.clic{cursor:pointer}
.tot td{font-weight:600;background:#f2f5f4}
.filtres td{padding:2px 4px;background:#fafbfb}
.filtres input,.filtres select{width:100%;font:inherit;font-size:11.5px;padding:3px 4px;border:1px solid var(--bord);border-radius:3px}

/* ---------- Codes couleur metier ---------- */
.est{background:var(--orange)}
.def{background:var(--bleu)}
.fiscal{background:var(--bleu)}
.cotis{background:var(--vert)}
.apayer{color:var(--rouge);font-weight:600}
.arecup{color:var(--vert-fort);font-weight:600}
.provisoire{color:var(--encre-2)}
.etiq{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px;background:#e9edec;color:var(--encre-2)}
.etiq.ok{background:var(--vert);color:var(--vert-fort)}
.etiq.att{background:var(--orange);color:var(--orange-fort)}
.etiq.err{background:var(--rouge-fond);color:var(--rouge)}
.col-envois{width:76px;min-width:76px;text-align:center}
.col-notes{width:52px;min-width:52px;text-align:center}
button.note-n{color:#b42318;background:#fff0ee;border:1px solid #efbbb5;font-weight:700;min-width:26px}
button.note-n:hover,button.note-n:focus-visible{color:#8e1b12;background:#ffe0dc}
tr[hidden]{display:none}
.sigles-envois{display:inline-grid;grid-template-columns:24px 24px;gap:4px;vertical-align:middle}
.sigles-envois .etiq{padding:1px 0;text-align:center}
.etiq.email-s{background:#fff0da;color:#b65b00;font-weight:700}
.etiq.email-r{background:#e4f3e6;color:#28763b;font-weight:700}
.avis{background:var(--orange);border-left:3px solid var(--orange-fort);padding:8px 12px;margin:10px 0;font-size:12.5px;border-radius:0 4px 4px 0}
.avis.err{background:var(--rouge-fond);border-left-color:var(--rouge)}

/* ---------- Formulaires ---------- */
.champs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 14px}
.champs label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--encre-2)}
.champs label.l2{grid-column:span 2}.champs label.l4{grid-column:span 4}
input,select,textarea{font:inherit;font-size:12.5px;padding:6px 8px;border:1px solid var(--bord);border-radius:4px;background:#fff;color:var(--encre)}
input[readonly]{background:#f4f6f5;color:var(--encre-2)}
input.n{text-align:right;font-variant-numeric:tabular-nums}
textarea{min-height:60px;resize:vertical}
button{font:inherit;font-size:12.5px;padding:6px 12px;border-radius:4px;border:1px solid var(--nuit);background:var(--nuit);color:#fff;cursor:pointer}
button.sec{background:#fff;color:var(--nuit)}
button.sec:hover{background:#eef2f1}
button.mini{padding:3px 8px;font-size:11.5px}
button.danger{border-color:var(--rouge);color:var(--rouge);background:#fff}
button:disabled{opacity:.45;cursor:not-allowed}
.barre{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.barre .nom-dossier{margin:0;font-size:19px;line-height:1.3;font-weight:700}
.barre .droite{margin-left:auto;display:flex;gap:8px}

/* ---------- Fenetres modales ---------- */
dialog{border:0;border-radius:8px;padding:0;width:min(900px,95vw);box-shadow:0 24px 70px rgba(0,0,0,.3)}
dialog::backdrop{background:rgba(15,42,38,.5)}
dialog header{padding:14px 18px;border-bottom:1px solid var(--bord);display:flex;justify-content:space-between;align-items:center}
dialog header h3{margin:0;font-size:15px}
dialog .contenu{padding:16px 18px;max-height:70vh;overflow:auto}
dialog footer{padding:12px 18px;border-top:1px solid var(--bord);display:flex;justify-content:flex-end;gap:8px}

/* ---------- Connexion ---------- */
.connexion{min-height:100vh;display:grid;place-items:center;background:linear-gradient(160deg,#0f2a26,#1d4d43)}
.carte-connexion{background:#fff;border-radius:10px;padding:28px 30px;width:min(400px,92vw);box-shadow:0 20px 60px rgba(0,0,0,.3)}
.carte-connexion .logo{width:52px;height:52px;display:block;margin-bottom:10px}
.carte-connexion h1{font-size:19px;margin:0 0 4px}
.carte-connexion p.sst{color:var(--encre-2);margin:0 0 18px;font-size:12.5px}
.carte-connexion label{display:block;font-size:11.5px;color:var(--encre-2);margin-bottom:10px}
.carte-connexion input{width:100%;margin-top:3px}
.carte-connexion button{width:100%;margin-top:6px}
.lien{background:none;border:0;color:var(--bleu-fort);text-decoration:underline;padding:6px 0;cursor:pointer;font-size:12px;width:100%}
.erreur{color:var(--rouge);font-size:12px;min-height:16px}
.info{color:var(--vert-fort);font-size:12px}

.notif{position:fixed;right:18px;bottom:18px;background:var(--nuit);color:#fff;padding:9px 14px;border-radius:5px;opacity:0;transition:.2s;z-index:60;max-width:420px}
.notif.vu{opacity:1}
.notif.err{background:var(--rouge)}

@media print{
  .bandeau,.menu,.barre,.noimp{display:none!important}
  body{background:#fff}
  main{padding:0;max-width:none}
  .bloc{border:0;break-inside:avoid}
  .tableau{max-height:none;overflow:visible}
  @page{
    size:A4;margin:12mm 12mm 18mm;
    @bottom-center{
      content:"CotFisc - Un produit développé par la fiduciaire BCMG";
      font:9pt Arial,sans-serif;color:#333;
    }
  }
}
@media(max-width:900px){
  .champs{grid-template-columns:1fr 1fr}.champs label.l4{grid-column:span 2}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .recherche input{width:150px}
}
/* Dossier PLCI : reuse CotFisc's controls and keep long conditions readable. */
.plci-chiffres { margin-bottom: 20px; }
.plci-onglets { flex-wrap: wrap; margin-bottom: 20px; }
.plci .bloc { margin-bottom: 20px; }
.plci-details { display: grid; grid-template-columns: minmax(170px, 1fr) 3fr; gap: 8px 20px; }
.plci-details dt { font-weight: 600; color: #506364; }
.plci-details dd { margin: 0; overflow-wrap: anywhere; white-space: normal; }
.plci-offre { border-top: 1px solid #dce3e1; padding: 16px 20px; }
.plci summary { cursor: pointer; line-height: 1.7; }
.plci-alertes { margin-bottom: 20px; }
.plci-alertes li { margin: 6px 0; }
.plci-form .champs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.plci-form label { display: flex; flex-direction: column; gap: 6px; }
.plci-form .l2 { grid-column: span 2; }
.plci-form textarea { width: 100%; resize: vertical; }
dialog:has(.plci-form) { width: min(1000px, 95vw); max-width: 1000px; }
.plci .tableau td { vertical-align: top; }
@media(max-width:700px) {
  .plci-form .champs { grid-template-columns: 1fr; }
  .plci-form .l2 { grid-column: span 1; }
  .plci-details { grid-template-columns: 1fr; }
  .plci-details dd { margin-bottom: 12px; }
}
@media print {
  .plci .grille { display: block; }
  .plci .tableau { overflow: visible; }
  .plci details > * { display: block; }
  .plci .bloc { break-inside: auto; }
  .plci tr, .plci dt, .plci dd { break-inside: avoid; }
  .plci button, .plci-onglets { display: none !important; }
}
