:root{
  --blue:#0061AF; --blue-dark:#004B86; --yellow:#FDB913; --ink:#1A2330;
  --grey:#6B7280; --light:#F4F6F9; --border:#E3E8EF; --green:#15803D; --red:#B91C1C;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--light);font-size:15px;line-height:1.5}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}

/* Topbar */
.topbar{background:var(--blue);color:#fff;display:flex;align-items:center;gap:16px;
  padding:10px 18px;position:sticky;top:0;z-index:50;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.topbar img{height:34px;background:#fff;border-radius:6px;padding:3px 6px}
.topbar .brand{font-weight:700;font-size:15px;letter-spacing:.3px}
.topbar nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
.topbar nav a{color:#fff;padding:7px 13px;border-radius:8px;font-weight:600;font-size:14px}
.topbar nav a:hover{background:rgba(255,255,255,.15);text-decoration:none}
.topbar nav a.active{background:var(--yellow);color:var(--ink)}

.wrap{max-width:1080px;margin:22px auto;padding:0 16px}
h1{font-size:24px;margin:0 0 4px}
h2{font-size:18px;color:var(--blue-dark);margin:22px 0 10px}
.sub{color:var(--grey);margin:0 0 18px}

/* Cards / KPIs */
.grid{display:grid;gap:14px}
.kpis{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px 18px;
  box-shadow:0 1px 3px rgba(16,24,40,.05)}
.kpi .v{font-size:26px;font-weight:800;color:var(--blue)}
.kpi .l{color:var(--grey);font-size:13px;margin-top:2px}
.kpi.accent{background:linear-gradient(135deg,var(--blue),var(--blue-dark));color:#fff}
.kpi.accent .v,.kpi.accent .l{color:#fff}
.kpi.warn .v{color:var(--red)}
.kpi.good .v{color:var(--green)}

/* Tables */
table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}
.card table{box-shadow:none}
th,td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--border);font-size:14px}
th{background:var(--blue);color:#fff;font-weight:600}
tr:last-child td{border-bottom:none}
td.r,th.r{text-align:right}

/* Badges */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700}
.b-Brouillon{background:#E5E7EB;color:#374151}
.b-Envoyée{background:#DBEAFE;color:#1E40AF}
.b-Acceptée,.b-Contrat.signé,.b-Contrat{background:#DCFCE7;color:#166534}
.b-Refusée{background:#FEE2E2;color:#991B1B}
.b-Payée{background:#DCFCE7;color:#166534}
.b-Partielle{background:#FEF3C7;color:#92400E}
.b-Impayée{background:#FEE2E2;color:#991B1B}

/* Forms & buttons */
input,select,textarea{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:9px;
  font-size:14px;font-family:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue)}
label{font-size:13px;font-weight:600;color:var(--grey);display:block;margin:0 0 4px}
.field{margin-bottom:12px}
.row{display:flex;gap:12px;flex-wrap:wrap}
.row>.field{flex:1;min-width:160px}
.btn{display:inline-block;background:var(--blue);color:#fff;border:none;padding:10px 18px;
  border-radius:10px;font-weight:700;font-size:14px;cursor:pointer}
.btn:hover{background:var(--blue-dark);text-decoration:none}
.btn.yellow{background:var(--yellow);color:var(--ink)}
.btn.ghost{background:#fff;color:var(--blue);border:1.5px solid var(--blue)}
.btn.sm{padding:6px 12px;font-size:13px}
.btn.danger{background:#fff;color:var(--red);border:1.5px solid var(--red)}
.btn.full{width:100%;text-align:center}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0}
details.add{background:#fff;border:1px solid var(--border);border-radius:12px;padding:8px 16px;margin:12px 0}
details.add summary{cursor:pointer;font-weight:700;color:var(--blue);padding:6px 0}
.muted{color:var(--grey);font-size:13px}
.totals{margin-left:auto;max-width:340px}
.totals td{border:none;padding:5px 8px}
.totals .grand td{font-size:18px;font-weight:800;color:var(--blue);border-top:2px solid var(--blue)}

/* Client wizard */
.wiz{max-width:620px;margin:0 auto;padding:0 14px 60px}
.wiz-head{text-align:center;padding:22px 0}
.wiz-head img{height:54px}
.step{background:#fff;border:1px solid var(--border);border-radius:16px;padding:22px;margin-bottom:18px;
  box-shadow:0 2px 10px rgba(16,24,40,.06)}
.step.hidden{display:none}
.steps-dots{display:flex;justify-content:center;gap:8px;margin:6px 0 18px}
.dot{width:10px;height:10px;border-radius:50%;background:var(--border)}
.dot.on{background:var(--yellow)}
.check{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--light);cursor:pointer}
.check input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--blue)}
.check span{font-size:14px}
.clause-box{max-height:230px;overflow:auto;border:1px solid var(--border);border-radius:10px;padding:12px;background:var(--light);font-size:13px}
.clause-box h4{color:var(--blue-dark);margin:10px 0 3px;font-size:13.5px}
.clause-box p{margin:0 0 8px}
#pad{border:2px dashed var(--blue);border-radius:12px;width:100%;height:180px;touch-action:none;background:#fff}
.sig-row{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.priceline{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--light)}
.priceline.tot{font-weight:800;color:var(--blue);font-size:19px;border:none;padding-top:10px}
.flash{background:#FEF3C7;border:1px solid var(--yellow);color:#92400E;padding:10px 14px;border-radius:10px;font-size:14px;margin-bottom:14px}

@media(max-width:640px){
  .topbar{flex-wrap:wrap}
  .topbar nav{width:100%;margin-left:0;justify-content:flex-start}
  th,td{padding:9px 8px;font-size:13px}
  .hide-sm{display:none}
}
