:root{
  --bg:#f5f6f7;--surface:#fff;--surface-2:#f8f9fa;--text:#111318;--muted:#6d7480;--border:#e3e6e8;
  --red:#b70707;--red-dark:#8e0000;--red-soft:#fff1f1;--black:#111;--shadow:0 12px 34px rgba(17,19,24,.07);
  --radius:22px;--radius-sm:14px;--sidebar:272px;
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.45}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--border);padding:22px 18px;display:flex;flex-direction:column;gap:18px;z-index:20}
.brand{display:flex;align-items:center;gap:12px;padding:4px 2px 18px;border-bottom:1px solid var(--border)}.brand img{width:86px;height:52px;object-fit:contain;object-position:left center}.brand-copy{display:flex;flex-direction:column}.brand-copy strong{font-size:18px}.brand-copy span{font-size:12px;color:var(--muted)}
.side-nav{display:grid;gap:8px}.side-nav a{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:14px;font-weight:700;color:#343840}.side-nav a:hover{background:var(--surface-2)}.side-nav a.active{background:var(--red-soft);color:var(--red-dark);box-shadow:inset 3px 0 0 var(--red)}.nav-ico{width:24px;text-align:center;color:var(--red)}
.new-visit{display:flex;gap:11px;align-items:center;padding:14px;border-radius:16px;background:#111;color:#fff;margin-top:4px}.new-visit>span{font-size:24px;color:#fff}.new-visit div{display:flex;flex-direction:column}.new-visit small{opacity:.65;margin-top:2px}
.sidebar-bottom{margin-top:auto;border-top:1px solid var(--border);padding-top:16px;display:grid;gap:12px}.account{display:flex;gap:10px;align-items:center}.avatar{width:38px;height:38px;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800}.account>div:last-child{min-width:0;display:flex;flex-direction:column}.account span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout{font-weight:700;color:var(--muted);font-size:14px;padding:8px 0}
.main-content{min-width:0;padding:30px 34px 18px}.content-wrap{max-width:1420px;margin:0 auto}.page-head{max-width:1420px;margin:0 auto 22px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.eyebrow{font-size:11px;font-weight:900;letter-spacing:.16em;color:var(--red);margin-bottom:4px}.page-head h1{font-size:34px;line-height:1.1;margin:0;letter-spacing:-.03em}.mobile-head{display:none}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin-bottom:20px}.search-card{padding:18px}.table-card{padding:0;overflow:hidden}.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}
.btn,button{border:0;border-radius:14px;padding:12px 18px;font-weight:800;background:#eef0f2;color:#1f252b;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.btn.primary,button.primary,.btn.ok{background:var(--red);color:#fff}.btn.primary:hover,.btn.ok:hover{background:var(--red-dark)}.btn.alt{background:#f0f2f3}.btn.full{width:100%}
input,select,textarea{width:100%;border:1px solid #d7dbe0;background:#fff;border-radius:13px;padding:12px 14px;outline:none;color:var(--text);min-height:46px}textarea{min-height:96px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#c54b4b;box-shadow:0 0 0 3px rgba(183,7,7,.09)}label{display:block;font-size:13px;font-weight:800;margin:14px 0 7px;color:#30353b}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stack-form{display:grid;gap:6px}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px 20px;box-shadow:var(--shadow);display:grid;gap:2px}.stat-card span{font-size:13px;font-weight:800;color:var(--muted)}.stat-card strong{font-size:30px;letter-spacing:-.03em}.stat-card small{color:var(--muted)}
.table{width:100%;border-collapse:collapse}.table th,.table td{padding:16px 20px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.table th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#707783;background:#fbfbfc}.table tbody tr:hover{background:#fffafa}.job-link{display:flex;flex-direction:column;gap:3px}.job-link strong{font-size:15px}.job-link span{font-size:12px;color:var(--muted)}
.status{display:inline-flex;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800;text-transform:capitalize;background:#eff1f3;color:#3b424a}.status-visite{background:#eef4ff;color:#255bb5}.status-a-chiffrer{background:#fff5dc;color:#8a5a00}.status-devis-envoye{background:#f5efff;color:#6f3db2}.status-accepte{background:#e9f8ef;color:#116438}.status-termine{background:#eef0f2;color:#28313a}.status-archive{background:#f3f3f3;color:#777}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.kpi{background:#111;color:#fff;border-radius:18px;padding:18px}.kpi strong{display:block;font-size:28px;margin-top:5px;color:#fff}.kpi:first-child{background:var(--red)}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.tab{padding:10px 14px;border-radius:12px;background:#edf0f2;font-weight:800}.tab.active{background:#111;color:#fff}
.flash,.err{padding:13px 15px;border-radius:13px;margin-bottom:16px;font-weight:700}.flash{background:#eef9f1;color:#17663a;border:1px solid #cfead7}.err{background:#fff0f0;color:#9a1414;border:1px solid #f0cccc}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.thumb{background:#fff;border:1px solid var(--border);border-radius:16px;overflow:hidden}.thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.thumb .p{padding:12px}
.empty-state{text-align:center;padding:56px 22px}.empty-state .empty-icon{width:58px;height:58px;border-radius:50%;background:var(--red-soft);color:var(--red);display:grid;place-items:center;margin:0 auto 12px;font-size:26px;font-weight:900}.empty-state h2{margin:0 0 8px}.empty-state p{color:var(--muted);margin:0 0 18px}.app-footer{max-width:1420px;margin:20px auto 0;color:#92979d;font-size:12px;padding:8px 2px 20px}
.login-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#f6f6f6,#eceeef)}.login-shell{width:min(980px,100%);display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border-radius:28px;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.12);border:1px solid var(--border)}.login-brand-panel{background:#111;color:#fff;padding:46px;display:flex;flex-direction:column;justify-content:space-between;min-height:520px}.login-brand-panel img{width:320px;max-width:100%;background:#fff;border-radius:16px;padding:12px}.login-brand-panel h1{font-size:42px;margin:8px 0 10px}.login-brand-panel p{max-width:430px;color:#c8cbd0}.login-kicker{font-size:11px;letter-spacing:.16em;color:#ef5252;font-weight:900}.login-card{padding:48px;display:flex;flex-direction:column;justify-content:center}.login-card h2{font-size:32px;margin:0 0 6px}
@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.main-content{padding:16px}.mobile-head{display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--border);border-radius:16px;padding:10px 12px;margin-bottom:16px;box-shadow:var(--shadow)}.mobile-brand{display:flex;align-items:center;gap:8px}.mobile-brand img{width:58px;height:38px;object-fit:contain}.mobile-new{background:var(--red);color:#fff;border-radius:11px;padding:10px 12px;font-weight:800}.page-head{align-items:center}.page-head h1{font-size:28px}.page-head>.btn{display:none}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}.login-shell{grid-template-columns:1fr}.login-brand-panel{min-height:auto;padding:28px}.login-brand-panel img{width:250px}.login-brand-panel>div{display:none}.login-card{padding:30px}}
@media(max-width:640px){.main-content{padding:10px}.content-wrap{width:100%}.page-head{margin:10px 4px 16px}.page-head h1{font-size:24px}.card{border-radius:16px;padding:16px}.search-row{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr;gap:8px}.stat-card{padding:14px}.stat-card strong{font-size:25px}.grid,.grid3,.kpis{grid-template-columns:1fr}.table th,.table td{padding:13px 12px}.hide-mobile{display:none}.table-scroll{overflow-x:auto}.tabs{display:grid;grid-template-columns:1fr 1fr}.tabs .tab,.tabs button{width:100%}.login-body{padding:10px}.login-shell{border-radius:20px}.login-card{padding:24px}.login-brand-panel{padding:18px}.login-brand-panel img{width:210px}}
@media print{body{background:#fff}.no-print,.sidebar,.mobile-head,.app-footer{display:none!important}.app-shell{display:block}.main-content{padding:0}.page-head{margin-bottom:10px}.card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}.kpi{background:#fff!important;color:#111!important;border:1px solid #ddd}.kpi strong{color:#111!important}}
