/* devis.clinilac.com — v1.0 — palette Clinilac */
@font-face { font-family:'Champagne'; src:url('/static/fonts/Champagne.woff2') format('woff2'); font-display:swap; }
@font-face { font-family:'Afacad'; src:url('/static/fonts/Afacad.woff2') format('woff2'); font-display:swap; }

:root{
  --teal:#4C9A84; --mint:#B2EBC9; --creme:#F6F3E7; --taupe:#A7A194; --sable:#DAC78F;
  --bg:#14181B; --bg2:#1C2226; --bg3:#242C31; --border:#2E383E;
  --txt:#E8E5DC; --txt2:#A7A194;
  --ok:#4C9A84; --warn:#DAC78F; --err:#C96A5A; --info:#6FA8C9;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);font-family:'Afacad',system-ui,sans-serif;font-size:16px;line-height:1.5}
h1,h2,h3{font-family:'Champagne','Afacad',serif;font-weight:600;color:var(--creme)}
h1{font-size:1.9rem;margin:.2rem 0 1rem} h2{font-size:1.35rem} h3{font-size:1.1rem}
a{color:var(--mint);text-decoration:none} a:hover{text-decoration:underline}

.topbar{background:var(--bg2);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.topbar-inner{max-width:1800px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:.7rem 1.5rem}
.brand{display:flex;align-items:center;gap:.6rem;font-family:'Champagne',serif;font-size:1.25rem;color:var(--creme)}
.brand img{height:34px} .brand em{color:var(--teal);font-style:normal}
.topbar nav{display:flex;align-items:center;gap:1.2rem}
.topbar nav a{color:var(--txt)} .whoami{color:var(--taupe);font-size:.9rem}

.page{max-width:1800px;margin:0 auto;padding:1.5rem}

.flash{padding:.7rem 1rem;border-radius:8px;margin-bottom:1rem;border:1px solid}
.flash-ok{background:rgba(76,154,132,.12);border-color:var(--teal)}
.flash-error{background:rgba(201,106,90,.12);border-color:var(--err)}

.card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:1.2rem 1.4rem;margin-bottom:1.2rem}
.kpis{display:flex;gap:1rem;margin-bottom:1.4rem;flex-wrap:wrap}
.kpi{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:.9rem 1.4rem;min-width:200px}
.kpi .val{font-size:1.7rem;font-family:'Champagne',serif;color:var(--sable)}
.kpi .lbl{color:var(--taupe);font-size:.85rem}

table{width:100%;border-collapse:collapse;font-size:.94rem}
th{color:var(--taupe);text-align:left;font-weight:600;border-bottom:1px solid var(--border);padding:.5rem .6rem;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}
td{border-bottom:1px solid var(--border);padding:.55rem .6rem;vertical-align:top}
tr:hover td{background:rgba(178,235,201,.03)}
td.num, th.num{text-align:right;font-variant-numeric:tabular-nums}
tr.incoherent td{background:rgba(218,199,143,.10)}
tr.option td{color:var(--taupe);font-style:italic}

.pill{display:inline-block;padding:.15rem .65rem;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid transparent}
.pill-brouillon{background:#2E383E;color:var(--taupe)}
.pill-soumis{background:rgba(111,168,201,.18);color:var(--info);border-color:var(--info)}
.pill-en_discussion{background:rgba(218,199,143,.16);color:var(--sable);border-color:var(--sable)}
.pill-a_modifier{background:rgba(218,199,143,.16);color:var(--sable);border-color:var(--sable)}
.pill-valide{background:rgba(76,154,132,.18);color:var(--mint);border-color:var(--teal)}
.pill-refuse{background:rgba(201,106,90,.16);color:var(--err);border-color:var(--err)}
.pill-commande{background:rgba(178,235,201,.14);color:var(--mint);border-color:var(--mint)}
.pill-ok{background:rgba(76,154,132,.18);color:var(--mint)}
.pill-a_verifier{background:rgba(218,199,143,.16);color:var(--sable)}
.pill-erreur{background:rgba(201,106,90,.16);color:var(--err)}
.pill-en_attente{background:#2E383E;color:var(--taupe)}

form.stack{display:grid;gap:.9rem;max-width:640px}
label{display:block;color:var(--taupe);font-size:.85rem;margin-bottom:.25rem}
input,select,textarea{width:100%;background:var(--bg3);color:var(--txt);border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem;font-family:inherit;font-size:1rem}
input:focus,select:focus,textarea:focus{outline:2px solid var(--teal);border-color:var(--teal)}
textarea{min-height:110px;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}

.btn{display:inline-block;background:var(--teal);color:#0F1513;border:none;border-radius:8px;padding:.55rem 1.2rem;font-size:1rem;font-weight:600;cursor:pointer}
.btn:hover{filter:brightness(1.1)}
.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--txt);border-radius:8px;padding:.45rem 1rem;cursor:pointer}
.btn-warn{background:var(--sable);color:#1a1508}
.btn-danger{background:var(--err);color:#fff}
.btn-sm{padding:.3rem .8rem;font-size:.85rem}
.actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}

.dropzone{border:2px dashed var(--teal);border-radius:12px;padding:2.2rem;text-align:center;color:var(--taupe);cursor:pointer;transition:background .15s}
.dropzone.over{background:rgba(76,154,132,.10);color:var(--mint)}
.dropzone input{display:none}

.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:1.2rem;align-items:start}
@media(max-width:1100px){.detail-grid{grid-template-columns:1fr}}

.fil{display:flex;flex-direction:column;gap:.7rem;max-height:640px;overflow-y:auto;padding-right:.3rem}
.msg{background:var(--bg3);border:1px solid var(--border);border-radius:12px;padding:.7rem .9rem}
.msg.direction{border-left:3px solid var(--sable)}
.msg.resp_bloc{border-left:3px solid var(--teal)}
.msg .meta{color:var(--taupe);font-size:.78rem;margin-bottom:.25rem}

.reco{border:1px solid var(--sable);background:rgba(218,199,143,.07);border-radius:12px;padding:1rem 1.2rem;margin-bottom:1.2rem}
.reco h3{color:var(--sable);margin-top:0}

.devis-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.muted{color:var(--taupe)} .small{font-size:.85rem}
.note-extraction{color:var(--sable);font-size:.85rem;margin-top:.4rem}

.login-wrap{min-height:80vh;display:flex;align-items:center;justify-content:center}
.login-box{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:2.2rem;width:380px}
.login-box h1{text-align:center}

.compare{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,1fr);gap:1rem;overflow-x:auto;padding-bottom:.5rem}
.compare .card{margin:0}
.compare .best{border-color:var(--sable);box-shadow:0 0 0 1px var(--sable)}
