*{box-sizing:border-box}body{margin:0;font-family:"Segoe UI",Arial,sans-serif;background:#f3f5f8;color:#1d2733;font-size:14px}
nav{background:#1f3a5f;display:flex;flex-wrap:wrap;align-items:center;padding:0 10px}nav a{color:#dfe8f3;text-decoration:none;padding:12px 9px}nav a:hover{background:#2c5282;color:#fff}
.brand{color:#fff;font-weight:700;margin-right:12px}.sp{flex:1}main{padding:18px 24px;max-width:1400px;margin:auto}
h1{font-size:22px;margin:4px 0 14px}h2{font-size:16px;margin:4px 0 10px}a{color:#1f5fa8}
.card{background:#fff;border-radius:8px;padding:14px 16px;margin-bottom:16px;box-shadow:0 1px 3px #0001}.login{max-width:360px;margin:80px auto}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 16px;margin-bottom:12px}.wide{grid-column:1/-1}
label{display:flex;flex-direction:column;font-size:12px;color:#556;gap:3px}input,select,textarea{font:inherit;padding:7px 8px;border:1px solid #c8d0da;border-radius:5px;background:#fff}textarea{min-height:60px}
button,.btn{background:#1f5fa8;color:#fff;border:0;border-radius:5px;padding:8px 13px;cursor:pointer;text-decoration:none;display:inline-block;font:inherit}button:hover,.btn:hover{background:#174a85}
.danger{background:#b83232}.small{padding:3px 8px;font-size:12px}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}.actions form{display:flex;gap:6px;align-items:center;margin:0}
table{width:100%;border-collapse:collapse}td,th{padding:6px 8px;border-bottom:1px solid #e6eaef;text-align:left;vertical-align:top}th{background:#eef2f7;font-size:12px;color:#445}.list{background:#fff}.r{text-align:right}
.tag{background:#e3ecf8;color:#1f3a5f;border-radius:10px;padding:2px 8px;font-size:12px}.late{color:#b83232;font-weight:600}.lowrow{background:#fff3f0}.muted{color:#778;font-size:12px}
.flash{padding:10px 14px;border-radius:6px;margin-bottom:12px}.ok{background:#e1f5e6}.err{background:#fde2e2}.warn{background:#fff4d6}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sub{display:flex;flex-direction:column;gap:6px;background:#f7f9fb;padding:10px;border-radius:6px}
.cal td{height:46px;width:15%;position:relative;background:#fff}.cal .hr{width:60px;color:#889}.appt{display:block;background:#dbe9fb;border-left:3px solid #1f5fa8;padding:3px 5px;margin:2px 0;border-radius:3px;text-decoration:none;color:#1d2733;font-size:12px}
.addc{position:absolute;right:4px;top:2px;color:#bbc;text-decoration:none}.todayc{background:#ffeeb5}
.kpis{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.kpi{background:#fff;padding:12px 16px;border-radius:8px;box-shadow:0 1px 3px #0001;min-width:170px}.kpi b{display:block;font-size:18px;margin-top:4px}
.chart{display:flex;align-items:flex-end;gap:10px;height:250px}.bar{flex:1;display:flex;flex-direction:column;align-items:center}.stack{display:flex;flex-direction:column-reverse;width:70%}
.stack .l,.lg.l{background:#1f5fa8}.stack .p,.lg.p{background:#f0a030}.stack .f,.lg.f{background:#3a9a5b}.lg{display:inline-block;width:12px;height:12px;margin-left:10px}pre{white-space:pre-wrap}
@media(max-width:800px){.cols{grid-template-columns:1fr}}

.ocr-ok input{border-color:#4a9d5b}.ocr-low input{border-color:#e0a100;background:#fff7dc}.ocr-miss input{border-color:#d0453b;background:#fdeceb}label small{color:#889}.ocr-legend span{padding:2px 8px;border-radius:4px;margin-right:6px;font-size:12px}.ocr-legend .ocr-ok{background:#e3f3e6}.ocr-legend .ocr-low{background:#fff7dc}.ocr-legend .ocr-miss{background:#fdeceb}

/* charte LJ Autotech : rouge, noir, blanc */
:root{--red:#c8102e;--red-dark:#9e0c24;--black:#111;--grey:#f4f4f4}
body{background:var(--grey);color:#1a1a1a}
nav{background:var(--black);border-bottom:3px solid var(--red)}nav a{color:#eee}nav a:hover{background:var(--red);color:#fff}
.brand{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;padding:6px 8px}.brand img{height:34px;background:#fff;border-radius:4px;padding:2px}.brand:hover{background:transparent!important}
h1{border-left:4px solid var(--red);padding-left:10px}h2{color:var(--black)}a{color:var(--red)}
button,.btn{background:var(--red)}button:hover,.btn:hover{background:var(--red-dark)}
.danger{background:#fff;color:var(--red);border:1px solid var(--red)}.danger:hover{background:var(--red);color:#fff}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 2px #c8102e22}
th{background:var(--black);color:#fff}.tag{background:#fbe5e8;color:var(--red-dark)}.late{color:var(--red)}.lowrow{background:#fdeef0}
.sub{background:#fafafa;border-top:3px solid var(--black)}.kpi{border-top:3px solid var(--red)}
.appt{background:#fbe5e8;border-left-color:var(--red)}.todayc{background:#fff1f3}
.stack .l,.lg.l{background:var(--red)}.stack .p,.lg.p{background:#222}.stack .f,.lg.f{background:#9a9a9a}
.login{border-top:4px solid var(--red)}.login-logo{text-align:center;margin-bottom:8px}.login-logo img{max-width:100%;max-height:110px}

.mfk-late{display:inline-block;width:18px;height:18px;line-height:18px;border-radius:50%;background:#d32f2f;color:#fff;text-align:center;font-weight:700;font-size:13px;margin-left:4px;cursor:help}
.mfk-banner{padding:12px 16px;border-radius:6px;margin:0 0 14px;font-weight:700;font-size:15px;border-left:6px solid}.mfk-banner.late{background:#fde2e2;color:#a01818;border-color:#d32f2f}.mfk-banner.soon{background:#fff4d6;color:#7a5600;border-color:#f0b400}
.permis-photos{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}.permis-photos figure{margin:0;background:#fff;border:1px solid #ddd;border-radius:6px;padding:6px}.permis-photos img{display:block;max-width:260px;max-height:180px}.permis-photos figcaption{font-size:12px;color:#555;margin-top:4px}button.link{background:none;border:0;color:var(--red,#b83232);padding:0;cursor:pointer;font-size:12px;text-decoration:underline}
.pair{display:grid;grid-template-columns:repeat(2,minmax(180px,260px));gap:10px 16px}
