:root{--bg:#08101d;--panel:#111c2d;--panel2:#0d1726;--text:#f8fafc;--muted:#94a3b8;--line:#24334a;--accent:#2563eb;--green:#22c55e;--amber:#f59e0b;--red:#ef4444;--shadow:0 18px 50px #0007}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 50% -20%,#1c2c47 0,#0b1423 40%,#07101c 100%);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}.topbar{position:sticky;top:0;z-index:40;background:#08101def;backdrop-filter:blur(15px);border-bottom:1px solid #ffffff12;padding:13px max(16px,calc((100vw - 1120px)/2));display:flex;justify-content:space-between;align-items:center}.brand{font-weight:1000;font-size:26px;letter-spacing:.02em}.brand span{color:#fff}.brand b{color:#ef4444}.subtitle{font-size:11px;color:var(--muted)}.top-actions{display:flex;gap:9px;align-items:center}.badge{font-size:11px;padding:7px 10px;border-radius:999px;background:#263650;color:#cbd5e1;font-weight:800}.badge.online{background:#103c2a;color:#86efac}.badge.warn{background:#4a3210;color:#fde68a}.icon-btn,.btn{border:0;border-radius:11px;font-weight:900;cursor:pointer}.icon-btn{width:39px;height:39px;background:#ffffff12;color:white}.btn{padding:12px 16px}.btn-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;box-shadow:0 8px 22px #2563eb38}.btn-secondary{background:#243148;color:#e5e7eb}.btn-danger{background:#4b1820;color:#fecaca}.btn-small{padding:8px 10px;font-size:12px}.link-button{border:0;background:none;color:#93c5fd;font-weight:800;cursor:pointer}main{max-width:1120px;margin:auto;padding:18px 15px 95px}.hero{position:relative;min-height:255px;border-radius:24px;overflow:hidden;background:url('assets/caserne.jpeg') center/cover no-repeat;box-shadow:var(--shadow);border:1px solid #ffffff18}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#06101deF 0%,#071321c7 55%,#07101e42 100%)}.hero-content{position:relative;z-index:2;padding:28px;max-width:740px}.hero-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:#cbd5e1;font-weight:800}.hero h1{font-size:42px;margin:4px 0}.hero p{color:#d6deea;margin:0}.week-box{margin-top:20px;border-left:5px solid var(--week);background:#0d192bdd;border-radius:15px;padding:15px;display:grid;grid-template-columns:1fr 170px auto;align-items:center;gap:14px}.week-main small{color:var(--muted);display:block}.week-main strong{font-size:23px}.week-progress,.mini-progress,.dash-progress{height:7px;background:#263650;border-radius:999px;overflow:hidden}.week-progress span,.mini-progress span{display:block;height:100%;background:var(--week,#2563eb);border-radius:inherit}.section-head{display:flex;justify-content:space-between;align-items:end;margin:24px 2px 12px}.section-head h2{margin:0;font-size:20px}.section-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.vehicle-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.vehicle-card{position:relative;background:linear-gradient(145deg,#162238,#0e1726);border:1px solid var(--line);border-top:4px solid var(--c);border-radius:18px;padding:14px;min-height:155px;cursor:pointer;transition:.18s;overflow:hidden}.vehicle-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #0005}.vehicle-card.active{box-shadow:0 0 0 2px var(--c),0 12px 30px #0005}.vehicle-art{font-size:44px;height:62px;display:grid;place-items:center;filter:drop-shadow(0 5px 10px #0008)}.vehicle-photo{width:100%;height:70px;object-fit:contain;display:block;filter:drop-shadow(0 8px 10px #0009)}.vehicle-card h3{margin:8px 0 4px}.vehicle-card p{margin:0 0 10px;color:var(--muted);font-size:12px}.status-dot{position:absolute;top:12px;right:12px;width:11px;height:11px;border-radius:50%;background:#64748b}.status-dot.ok{background:var(--green);box-shadow:0 0 10px #22c55e}.status-dot.warn{background:var(--amber);box-shadow:0 0 10px #f59e0b}.mini-progress span{background:var(--c)}.home-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.summary-card{border:1px solid var(--line);background:#111c2d;color:#fff;border-radius:16px;padding:16px;text-align:left;cursor:pointer}.summary-card strong{display:block;font-size:28px}.summary-card span{color:var(--muted)}.summary-card.alert strong{color:#fca5a5}.motto{text-align:center;color:#718096;margin:22px 0 0;font-style:italic}.panel{background:linear-gradient(145deg,#141f32,#0f1827);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 24px #0002}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.metric strong{font-size:30px;display:block}.metric span{font-size:12px;color:var(--muted)}.metric.alert strong{color:#fca5a5}.back{display:inline-flex;margin:0 0 13px;color:#cbd5e1;font-weight:800;cursor:pointer}.vehicle-title{display:flex;align-items:center;gap:15px}.vehicle-title .vehicle-art{width:85px}.parts{display:grid;gap:10px;margin-top:16px}.part-btn{display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:12px;background:#172338;border:1px solid var(--line);color:#fff;text-align:left;border-radius:14px;padding:14px;cursor:pointer}.part-btn:hover{border-color:#4a6385}.part-btn strong,.part-btn small{display:block}.part-btn small{font-size:12px;color:var(--muted);margin-top:3px}.part-number{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#253650;font-weight:1000}.part-done{border-color:#236b4d;background:#0d2b20}.part-done .part-number{background:#22c55e;color:#052e16}.form-head{display:flex;justify-content:space-between;gap:15px}.progress{background:#243148;border-radius:10px;padding:9px 12px;text-align:center;min-width:90px}.progress strong{display:block}.progress span{font-size:10px;color:var(--muted)}.fields{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin:15px 0}.field label{display:block;font-size:10px;font-weight:900;letter-spacing:.08em;color:#aebbd0;margin-bottom:5px}.field input,.field select,.field textarea,.filter-grid input,.filter-grid select{width:100%;background:#0f1726;color:#fff;border:1px solid #33435f;border-radius:10px;padding:12px;font:inherit}.toolbar{display:flex;justify-content:flex-end;gap:8px;margin:10px 0;flex-wrap:wrap}.checklist{display:grid;gap:9px}.material-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;background:#111b2c;border:1px solid var(--line);border-radius:13px;padding:13px;transition:.15s}.material-row.ok{background:#0c2a20;border-color:#23784f}.material-row.missing{background:#34260e;border-color:#a16207}.material-row.broken{background:#3a171d;border-color:#9f2435}.material-info small{display:block;color:var(--muted);margin-top:4px}.status-actions{display:flex;gap:6px}.status-actions button{width:68px;min-height:52px;border:1px solid #33435f;border-radius:10px;background:#172338;color:#cbd5e1;font-size:20px;font-weight:1000;cursor:pointer}.status-actions button span{display:block;font-size:8px;margin-top:2px}.status-actions button.selected{color:#fff;transform:translateY(-1px)}.status-actions button:nth-child(1).selected{background:#15803d;border-color:#22c55e}.status-actions button:nth-child(2).selected{background:#a16207;border-color:#f59e0b}.status-actions button:nth-child(3).selected{background:#b91c1c;border-color:#ef4444}.sticky{position:sticky;bottom:76px;display:flex;justify-content:flex-end;margin-top:14px}.bottom-nav{position:fixed;z-index:50;bottom:0;left:0;right:0;background:#08101def;backdrop-filter:blur(15px);border-top:1px solid #ffffff15;display:flex;justify-content:center;padding:8px max(7px,calc((100vw - 660px)/2)) calc(8px + env(safe-area-inset-bottom))}.bottom-nav button{flex:1;background:transparent;border:0;color:#8493a9;font-weight:800;font-size:18px;cursor:pointer}.bottom-nav span{display:block;font-size:9px;margin-top:2px}.bottom-nav button.active{color:#fff}.dashboard-vehicles{display:grid;gap:9px}.dash-vehicle{display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;background:#111b2c;border:1px solid var(--line);border-radius:14px;padding:12px;cursor:pointer}.dash-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 25%,#111b2c);font-size:25px}.dash-main span,.dash-last small{display:block;color:var(--muted);font-size:12px}.dash-progress{margin-top:7px}.dash-progress i{display:block;height:100%;border-radius:999px}.dash-last{text-align:right}.timeline{display:grid;gap:9px}.timeline-card{display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:12px;background:#111b2c;border:1px solid var(--line);border-radius:14px;padding:12px}.timeline-card.has-alert{border-left:4px solid var(--red)}.timeline-date b,.timeline-date small,.timeline-content strong,.timeline-content span,.timeline-content small{display:block}.timeline-date small,.timeline-content span{color:var(--muted);font-size:12px}.timeline-content .issue{color:#fca5a5;margin-top:4px}.timeline-content .success{color:#86efac;margin-top:4px}.pill{display:inline-block;border-radius:999px;padding:5px 8px;font-weight:900;font-size:11px}.pill-ok{background:#123d2a;color:#86efac}.pill-bad{background:#4b1820;color:#fecaca}.filter-panel{margin-bottom:12px}.filter-grid{display:grid;grid-template-columns:1fr 1fr 2fr;gap:9px}.anomaly-list{display:grid;gap:10px}.anomaly-card{border:1px solid #5c2931;border-left:5px solid var(--red);background:#21151b;border-radius:14px;padding:15px}.anomaly-card h3{margin:10px 0 5px}.anomaly-card p{color:#fecaca}.anomaly-card small{color:var(--muted)}.admin-tabs{display:flex;gap:7px;overflow:auto;margin-bottom:13px}.admin-tabs button{white-space:nowrap}.admin-help{background:#10233d;border:1px solid #244469;border-radius:12px;padding:12px;color:#bfdbfe;margin-bottom:14px}.admin-list{display:grid;gap:8px}.admin-row{display:grid;grid-template-columns:1fr 120px auto;gap:8px;align-items:center;background:#111b2c;border:1px solid var(--line);border-radius:11px;padding:10px}.admin-row input{width:100%;background:#0f1726;color:#fff;border:1px solid #33435f;border-radius:8px;padding:9px}.admin-row span{color:var(--muted);font-size:12px}.admin-vehicle{background:#111b2c;border:1px solid var(--line);border-radius:14px;padding:13px}.vehicle-admin-list{gap:12px}#toast{display:none;position:fixed;z-index:99;left:50%;bottom:88px;transform:translateX(-50%);background:#fff;color:#111827;padding:12px 17px;border-radius:10px;box-shadow:var(--shadow);font-weight:800}.empty{text-align:center;color:var(--muted);padding:30px}.loading{margin-top:18px;text-align:center;color:#cbd5e1}@media(max-width:900px){.vehicle-grid{grid-template-columns:repeat(3,1fr)}.week-box{grid-template-columns:1fr auto}.week-progress{grid-column:1/-1}.grid-3{grid-template-columns:1fr 1fr}.hero{min-height:235px}.hero-content{padding:22px}.hero h1{font-size:34px}}@media(max-width:650px){main{padding:12px 10px 90px}.topbar{padding:11px 12px}.subtitle{display:none}.hero{min-height:230px}.hero-content{padding:17px}.hero h1{font-size:30px}.week-box{grid-template-columns:1fr}.week-box .btn{width:100%}.vehicle-grid{grid-template-columns:1fr 1fr}.vehicle-card{min-height:145px;padding:12px}.fields,.grid-2,.grid-3,.filter-grid,.home-summary{grid-template-columns:1fr}.material-row{grid-template-columns:1fr}.status-actions{display:grid;grid-template-columns:repeat(3,1fr)}.status-actions button{width:100%}.dash-vehicle{grid-template-columns:46px 1fr}.dash-last{grid-column:2;text-align:left}.timeline-card{grid-template-columns:65px 1fr}.timeline-card>.pill{grid-column:2;justify-self:start}.admin-row{grid-template-columns:1fr 85px auto}.sticky .btn{width:100%}.part-btn{grid-template-columns:40px 1fr}.part-btn>b{grid-column:2}}@media(max-width:390px){.vehicle-grid{grid-template-columns:1fr}.vehicle-card{min-height:125px}.vehicle-photo{height:60px}}

/* ===== MatOp V2.2 — finition visuelle ===== */
:root{
  --bg:#070b12;
  --panel:#111722;
  --panel2:#0c121c;
  --text:#f8fafc;
  --muted:#93a0b3;
  --line:#263041;
  --accent:#2f6fed;
  --accent-soft:#8fb3ff;
  --green:#25c26e;
  --amber:#f4b740;
  --red:#f04b55;
  --radius-xl:24px;
  --radius-lg:18px;
  --shadow:0 18px 55px rgba(0,0,0,.38);
}
html{scroll-behavior:smooth}
body{
  background:
    radial-gradient(circle at 12% -10%,rgba(47,111,237,.14),transparent 28%),
    radial-gradient(circle at 90% 2%,rgba(240,75,85,.10),transparent 22%),
    linear-gradient(180deg,#090e16 0%,#070b12 100%);
  letter-spacing:.005em;
}
body:before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.14;
  background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:34px 34px;
}
.topbar{
  background:rgba(8,13,21,.82);
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 8px 28px rgba(0,0,0,.22);
}
.brand{font-size:28px;letter-spacing:-.035em;line-height:1}
.brand b{color:#ff535f;text-shadow:0 0 18px rgba(255,83,95,.28)}
.subtitle{margin-top:5px;letter-spacing:.025em}
.badge{border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px rgba(255,255,255,.05)}
.icon-btn{border:1px solid rgba(255,255,255,.09);transition:.2s ease}
.icon-btn:hover{background:rgba(255,255,255,.18);transform:translateY(-1px)}
.btn{transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
.btn:hover{transform:translateY(-1px);filter:brightness(1.06)}
.btn-primary{background:linear-gradient(135deg,#3578f6,#245bd7);box-shadow:0 10px 26px rgba(47,111,237,.30)}
.btn-secondary{background:linear-gradient(180deg,#273247,#202a3b);border:1px solid rgba(255,255,255,.06)}
main{padding-top:22px}
.hero{
  min-height:285px;border-radius:28px;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 24px 70px rgba(0,0,0,.42);
}
.hero:before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 35%);
}
.hero:after{background:linear-gradient(90deg,rgba(5,10,17,.96) 0%,rgba(8,15,25,.86) 48%,rgba(8,15,25,.26) 100%)}
.hero-content{padding:34px 34px 30px}
.hero-kicker{color:#d7dfeb;font-size:11px}
.hero h1{font-size:48px;letter-spacing:-.04em;line-height:1.02;margin:8px 0 7px}
.hero p{font-size:15px;color:#dbe4f0}
.week-box{
  margin-top:24px;border-left:0;border-top:1px solid color-mix(in srgb,var(--week) 72%,white 6%);
  background:linear-gradient(135deg,rgba(14,23,38,.88),rgba(10,17,29,.82));
  box-shadow:inset 0 1px rgba(255,255,255,.045),0 16px 32px rgba(0,0,0,.18);
  padding:17px 18px;border-radius:18px;position:relative;overflow:hidden;
}
.week-box:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--week);box-shadow:0 0 18px var(--week)}
.week-main strong{letter-spacing:-.02em}
.week-progress{height:8px;background:#1b2638}
.section-head{margin-top:28px}
.section-head h2{font-size:22px;letter-spacing:-.02em}
.vehicle-grid{gap:14px}
.vehicle-card{
  min-height:170px;padding:16px;border-radius:20px;border-top:0;
  background:linear-gradient(160deg,rgba(24,33,48,.96),rgba(12,18,28,.98));
  box-shadow:inset 0 1px rgba(255,255,255,.045),0 10px 28px rgba(0,0,0,.18);
}
.vehicle-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 35%,transparent));}
.vehicle-card:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-45px;bottom:-45px;background:color-mix(in srgb,var(--c) 14%,transparent);filter:blur(2px)}
.vehicle-card:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--c) 42%,var(--line));box-shadow:0 18px 38px rgba(0,0,0,.30)}
.vehicle-card.active{box-shadow:0 0 0 1px var(--c),0 18px 40px rgba(0,0,0,.32)}
.vehicle-art{font-size:48px;height:68px}
.vehicle-card h3{font-size:18px;letter-spacing:-.02em}
.status-dot{width:10px;height:10px;border:2px solid rgba(255,255,255,.22)}
.summary-card,.panel,.dash-vehicle,.timeline-card,.admin-vehicle,.admin-row,.material-row,.part-btn{
  box-shadow:inset 0 1px rgba(255,255,255,.035),0 10px 25px rgba(0,0,0,.12);
}
.summary-card{background:linear-gradient(145deg,#151d2a,#0e151f);padding:18px;border-radius:18px}
.summary-card:hover{border-color:#3a4960}
.panel{border-radius:22px;background:linear-gradient(150deg,rgba(20,28,41,.98),rgba(12,18,28,.98));padding:20px}
.metric{position:relative;overflow:hidden}
.metric:after{content:"";position:absolute;right:-28px;top:-28px;width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.035)}
.part-btn{border-radius:16px;padding:16px;background:linear-gradient(145deg,#172135,#111927)}
.part-btn:hover{transform:translateX(2px);border-color:#4b5f7c}
.part-number{box-shadow:inset 0 1px rgba(255,255,255,.08)}
.field input,.field select,.field textarea,.filter-grid input,.filter-grid select,.admin-row input{
  background:#0b121d;border-color:#2d394c;box-shadow:inset 0 1px rgba(255,255,255,.025);outline:none;transition:.16s ease;
}
.field input:focus,.field select:focus,.field textarea:focus,.filter-grid input:focus,.filter-grid select:focus,.admin-row input:focus{
  border-color:#4f83ee;box-shadow:0 0 0 3px rgba(47,111,237,.14);
}
.material-row{border-radius:15px;padding:14px;background:linear-gradient(145deg,#121b29,#0d1520)}
.status-actions button{border-radius:12px;transition:.14s ease;box-shadow:inset 0 1px rgba(255,255,255,.035)}
.status-actions button:hover{transform:translateY(-2px);border-color:#52647f}
.bottom-nav{
  background:rgba(7,11,18,.88);border-top:1px solid rgba(255,255,255,.09);
  box-shadow:0 -12px 34px rgba(0,0,0,.30);
}
.bottom-nav button{transition:.16s ease;border-radius:12px;padding:4px 2px}
.bottom-nav button.active{color:#fff;background:linear-gradient(180deg,rgba(47,111,237,.16),rgba(47,111,237,.04))}
.timeline-card,.dash-vehicle{border-radius:16px;background:linear-gradient(145deg,#121b29,#0d1520)}
.dash-icon{border:1px solid color-mix(in srgb,var(--c) 35%,transparent)}
.admin-tabs{padding-bottom:4px}
.admin-tabs::-webkit-scrollbar{height:5px}.admin-tabs::-webkit-scrollbar-thumb{background:#33435b;border-radius:99px}
.admin-help{background:linear-gradient(145deg,#10243f,#0b1b31);border-color:#2d5686}
#toast{border:1px solid rgba(255,255,255,.15);box-shadow:0 16px 50px rgba(0,0,0,.38)}
@media(max-width:650px){
  .brand{font-size:25px}.hero{min-height:250px;border-radius:22px}.hero-content{padding:20px}.hero h1{font-size:34px}.week-box{margin-top:18px}.vehicle-card{min-height:154px}.vehicle-art{font-size:44px}.panel{padding:16px;border-radius:18px}.bottom-nav{padding-top:7px}.bottom-nav button{font-size:17px}.bottom-nav span{font-size:9px}}
@media(max-width:390px){.vehicle-card{min-height:132px}.hero h1{font-size:31px}}
.connection-error{max-width:540px;margin:12vh auto;text-align:center;padding:32px 24px;border-color:#7f1d1d;background:linear-gradient(145deg,#2b1419,#111827)}
.base-warning{margin:0 0 14px;padding:12px 14px;border-radius:13px;background:#4b1820;color:#fecaca;border:1px solid #7f2937;display:flex;align-items:center;justify-content:space-between;gap:12px}
.base-warning strong,.base-warning span{display:block}.base-warning span{margin-top:3px;font-size:12px;overflow-wrap:anywhere}
.error-icon{width:58px;height:58px;margin:0 auto 16px;display:grid;place-items:center;border-radius:50%;background:#7f1d1d;color:#fecaca;font-size:32px;font-weight:1000}
.muted{color:var(--muted)}
.btn:disabled{opacity:.55;cursor:wait}
.missing-quantity{grid-column:1/-1;padding:12px;border-top:1px solid #a1620755;background:#261b0c;border-radius:10px}
.missing-quantity[hidden]{display:none}
.missing-quantity label{display:block;font-size:10px;font-weight:900;letter-spacing:.08em;color:#fde68a;margin-bottom:6px}
.missing-quantity input{width:100%;max-width:180px;background:#0f1726;color:#fff;border:1px solid #a16207;border-radius:10px;padding:11px;font:inherit}
.existing-anomaly{grid-column:1/-1;display:flex;gap:6px;flex-direction:column;padding:10px 12px;border-radius:10px;border-left:4px solid var(--red);background:#3a171d;color:#fecaca}
.existing-anomaly.in-progress{border-color:var(--amber);background:#34260e;color:#fde68a}
.existing-anomaly span{font-size:12px}
.anomaly-card.in-progress{border-color:#a16207;border-left-color:var(--amber);background:#2d220f}
.pill-progress{background:#5b3b08;color:#fde68a}
.anomaly-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px}
.treatment-person{min-width:210px;background:#0f1726;color:#fff;border:1px solid #6b4a0e;border-radius:10px;padding:11px;font:inherit}
.handled-by{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;border-radius:10px;background:#4a3210;color:#fde68a}
.handled-by span,.handled-by small{font-size:12px}.handled-by strong{color:#fff}
.btn-warning{background:#b45309;color:#fff}
.btn-success{background:#15803d;color:#fff}

/* Identité 38e compagnie NRBC */
:root{--bg:#07110f;--panel:#101d1a;--panel2:#0b1714;--text:#f1f7f4;--muted:#91aaa2;--line:#263c36;--accent:#b7ee35;--green:#b7ee35;--shadow:0 18px 50px #0009}
body{background:radial-gradient(circle at 50% -20%,#24473e 0,#0b1b17 40%,#06100e 100%)}
.topbar,.bottom-nav{background:rgba(6,16,14,.9)}
.brand b{color:#b7ee35;text-shadow:0 0 18px rgba(183,238,53,.28)}
.btn-primary{background:linear-gradient(135deg,#c7f554,#9bd51d);color:#10200f;box-shadow:0 10px 26px rgba(183,238,53,.2)}
.btn-secondary{background:linear-gradient(180deg,#283b35,#1c2c27)}
.hero{background:radial-gradient(circle at 82% 12%,rgba(183,238,53,.18),transparent 28%),linear-gradient(125deg,#142923,#081411)}
.hero:before{background:repeating-linear-gradient(-35deg,rgba(183,238,53,.8) 0 8px,rgba(8,20,17,.9) 8px 16px);width:8px;right:auto}
.hero:after{background:linear-gradient(90deg,rgba(5,15,13,.96),rgba(8,23,19,.76) 68%,rgba(8,23,19,.18))}
.hero-kicker{color:#b7ee35}.hero p{color:#aec0ba}
.station-box{margin-top:24px;background:linear-gradient(135deg,rgba(18,38,32,.92),rgba(8,21,17,.9));border:1px solid #395249;border-left:5px solid #b7ee35;border-radius:18px;padding:16px 18px;max-width:690px}
.station-box>small{display:block;color:#91aaa2;font-size:10px;letter-spacing:.12em;font-weight:900}.station-box>strong{display:block;font-size:21px;margin:4px 0 14px}
.station-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.station-switch button{border:1px solid #355047;background:#0b1815;color:#92aaa3;border-radius:11px;padding:10px;text-align:left;cursor:pointer}.station-switch button b,.station-switch button span{display:block}.station-switch button b{color:#eef7f3;font-size:14px}.station-switch button span{font-size:9px;margin-top:2px}.station-switch button.active{border-color:#b7ee35;background:rgba(183,238,53,.1)}.station-switch button.active b{color:#b7ee35}
.vehicle-card,.summary-card,.panel,.dash-vehicle,.timeline-card,.admin-vehicle,.admin-row,.material-row,.part-btn{background:linear-gradient(150deg,#14241f,#0b1512)}
.vehicle-card{--c:#b7ee35}.part-btn:hover,.summary-card:hover{border-color:#526f65}.part-done{border-color:#6b9123;background:#15270f}.part-done .part-number{background:#b7ee35;color:#11200f}
.field input,.field select,.field textarea,.filter-grid input,.filter-grid select,.admin-row input{background:#081310;border-color:#30483f}.field input:focus,.field select:focus,.field textarea:focus,.filter-grid input:focus,.filter-grid select:focus,.admin-row input:focus{border-color:#b7ee35;box-shadow:0 0 0 3px rgba(183,238,53,.12)}
.bottom-nav button.active{color:#d6ff72;background:linear-gradient(180deg,rgba(183,238,53,.14),rgba(183,238,53,.03))}.admin-help{background:linear-gradient(145deg,#152d26,#0b201a);border-color:#315b4e;color:#c5eadf}.first-setup p{color:var(--muted)}
@media(max-width:650px){.station-box{margin-top:18px;padding:14px}.station-switch{grid-template-columns:1fr}.station-switch button{display:flex;align-items:center;justify-content:space-between}.station-switch button span{margin:0}.hero{min-height:330px}}

/* Identité visuelle et photos des engins — v2.0.2 */
.topbar{gap:18px}
.brand-lockup{display:flex;align-items:center;gap:11px;min-width:0}
.brand-copy{min-width:0}
.identity-logo{display:block;object-fit:contain;flex:0 0 auto}
.bspp-logo{width:47px;height:39px;padding:4px;background:#fff;border-radius:9px;border:1px solid rgba(255,255,255,.65);box-shadow:0 6px 15px rgba(0,0,0,.24)}
.brand{display:flex;align-items:baseline;gap:0}
.brand em{margin-left:7px;padding:3px 7px;border:1px solid rgba(183,238,53,.42);border-radius:7px;background:rgba(183,238,53,.1);color:#dfff91;font-size:12px;font-style:normal;letter-spacing:.04em}
.hero-content{padding-right:34px}
.vehicle-card{min-height:238px;padding:12px 12px 16px}
.vehicle-visual-frame{position:relative;height:116px;margin-bottom:13px;border-radius:14px;overflow:hidden;background:#07100e;border:1px solid rgba(255,255,255,.09);box-shadow:0 10px 20px rgba(0,0,0,.25)}
.vehicle-visual-frame:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 52%,rgba(4,11,9,.45));box-shadow:inset 0 1px rgba(255,255,255,.08)}
.vehicle-photo{width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:saturate(.98) contrast(1.04)}
.vehicle-photo-detail{width:150px;height:94px;object-fit:cover;border-radius:13px;border:1px solid rgba(255,255,255,.12);box-shadow:0 10px 24px rgba(0,0,0,.28)}
.vehicle-visual-frame .vehicle-art{height:100%}
.vehicle-card h3{position:relative;z-index:1;margin:0 0 5px}
.vehicle-card p{position:relative;z-index:1;margin-bottom:0}
.vehicle-title>div:first-child{flex:0 0 auto}
@media(max-width:900px){.hero-content{padding-right:22px}.vehicle-card{min-height:225px}.vehicle-visual-frame{height:105px}}
@media(max-width:650px){.topbar{gap:8px}.brand-lockup{gap:7px}.bspp-logo{width:39px;height:33px}.brand em{display:none}.hero-content{padding:20px}.vehicle-card{min-height:208px}.vehicle-visual-frame{height:94px}.vehicle-photo-detail{width:118px;height:78px}.vehicle-title{align-items:flex-start}.vehicle-title p{margin-bottom:0}}
@media(max-width:390px){.vehicle-card{min-height:215px}.vehicle-visual-frame{height:106px}}

/* Import NBCR, feuille À vos rangs et archives PDF - v2.1.0 */
.source-date{display:block;color:#91aaa2;margin-top:5px}
.material-location{color:#b7ee35!important;font-weight:800;letter-spacing:.01em}
.report-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}
.report-choice button{min-height:105px;border:1px solid #355047;border-radius:16px;background:linear-gradient(145deg,#14241f,#0b1512);color:#dbe9e4;font:inherit;font-size:25px;font-weight:1000;cursor:pointer;transition:.16s ease}
.report-choice button strong{display:block;margin-top:7px;font-size:15px}
.report-choice button:hover{transform:translateY(-2px);border-color:#6c8a80}
.report-choice #report-ras.selected{background:#123d2a;border-color:#b7ee35;color:#dfff91;box-shadow:0 0 0 2px rgba(183,238,53,.12)}
.report-choice #report-issue.selected{background:#4b1820;border-color:#f04b55;color:#fecaca;box-shadow:0 0 0 2px rgba(240,75,85,.12)}
.report-heading{align-items:flex-end}
.daily-report{padding:0;overflow:hidden}
.daily-table-wrap{overflow-x:auto}
.daily-table{width:100%;min-width:920px;border-collapse:collapse;font-size:12px}
.daily-table th{padding:12px 11px;background:#172820;color:#dfff91;text-align:left;font-size:10px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #3f5a50}
.daily-table td{padding:11px;border-bottom:1px solid #263c36;vertical-align:top;color:#dbe9e4}
.daily-table tr:last-child td{border-bottom:0}
.daily-table tr.is-ok td:nth-child(5){color:#b7ee35;font-weight:900}
.daily-table tr.has-issue{background:rgba(240,75,85,.08)}
.daily-table tr.has-issue td:nth-child(5){color:#fecaca;font-weight:800}
.daily-table tr.not-done{background:rgba(244,183,64,.06)}
.daily-table tr.not-done td:nth-child(5){color:#fcd88c;font-weight:800}
.archive-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;border-top:1px solid #334b43;background:#0a1713}
.archive-bar strong,.archive-bar small{display:block}
.archive-bar small{color:#91aaa2;margin-top:4px}
.archive-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.archive-actions input{background:#081310;border:1px solid #30483f;color:#fff;border-radius:10px;padding:11px;font:inherit}
.validation-recipient{flex-basis:100%;text-align:right;color:#91aaa2;font-size:10px;overflow-wrap:anywhere}
.pdf-success,.pdf-error{margin:0 18px 18px;padding:12px 14px;border-radius:11px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.pdf-success{background:#123d2a;color:#dfff91;border:1px solid #477326}
.pdf-success strong,.pdf-success small{display:block}.pdf-success small{margin-top:3px;color:#b9d5c7}
.pdf-manual-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.pdf-error{background:#4b1820;color:#fecaca;border:1px solid #7f2937}
@media(max-width:650px){
.base-warning{align-items:stretch;flex-direction:column}
  .report-choice{grid-template-columns:1fr}
  .report-choice button{min-height:82px}
  .archive-bar{align-items:stretch;flex-direction:column}
  .archive-actions{display:grid;grid-template-columns:1fr}
  .archive-actions .btn{width:100%}
  .pdf-success,.pdf-error{align-items:stretch;flex-direction:column}
  .pdf-manual-actions{display:grid;grid-template-columns:1fr}
  .pdf-manual-actions .btn{width:100%}
}

/* Comptes sécurisés et registre À vos rangs - v2.2.0 */
[hidden]{display:none!important}
.user-identity{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #315249;background:#0d211b;color:#dfffb0;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:850}
.logout-button{color:#fbd4d6;background:#3b1820}
.auth-shell{min-height:calc(100vh - 170px);display:grid;grid-template-columns:minmax(260px,.85fr) minmax(380px,1fr);align-items:stretch;max-width:900px;margin:32px auto;border:1px solid #315249;border-radius:28px;overflow:hidden;box-shadow:0 28px 80px rgba(0,0,0,.42)}
.auth-visual{display:flex;align-items:center;gap:18px;padding:42px 34px;background:radial-gradient(circle at 25% 25%,rgba(183,238,53,.2),transparent 38%),linear-gradient(145deg,#173d31,#07130f);border-right:1px solid #315249}
.auth-mark{width:84px;height:98px;flex:0 0 auto;display:grid;place-items:center;clip-path:polygon(50% 0,94% 20%,86% 78%,50% 100%,14% 78%,6% 20%);background:linear-gradient(155deg,#e9ff9a,#9dc929);color:#102219;font-size:34px;font-weight:1000;filter:drop-shadow(0 15px 22px rgba(0,0,0,.3))}
.auth-kicker,.eyebrow{color:#b7ee35;font-size:10px;font-weight:950;letter-spacing:.16em;text-transform:uppercase}
.auth-visual h1{margin:7px 0 8px;font-size:32px}.auth-visual p{margin:0;color:#a8beb6;line-height:1.5}
.auth-card{background:linear-gradient(155deg,#10241d,#08130f);padding:30px}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;background:#08130f;border:1px solid #2b453c;border-radius:14px;margin-bottom:20px}
.auth-tabs button{border:0;border-radius:10px;padding:12px 8px;background:transparent;color:#91aaa2;font:inherit;font-weight:900;cursor:pointer}.auth-tabs button.active{background:#1b3e33;color:#eaffba;box-shadow:0 5px 16px rgba(0,0,0,.25)}
.auth-form{display:grid;gap:13px}.auth-form label{display:grid;gap:6px;color:#c8dad4;font-size:11px;font-weight:850;letter-spacing:.02em}.auth-form input,.auth-form select,.account-actions select{width:100%;background:#07110e;color:#fff;border:1px solid #355047;border-radius:11px;padding:12px;font:inherit}.auth-form input:focus,.auth-form select:focus{outline:2px solid rgba(183,238,53,.4);border-color:#b7ee35}.auth-form input:disabled{color:#b7c9c3;background:#13241e}.auth-form small{color:#80978f;font-weight:600}.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-form .primary,.pending-card .primary{border:0;border-radius:11px;padding:13px 16px;background:linear-gradient(135deg,#b7ee35,#87b516);color:#102219;font:inherit;font-weight:1000;cursor:pointer}.auth-form .primary:disabled{opacity:.55}.auth-link{border:0;background:transparent;color:#b7ee35;font:inherit;font-size:12px;font-weight:850;cursor:pointer}.auth-note{color:#80978f;font-size:11px;line-height:1.5;text-align:center;margin:0}.auth-message{border-radius:10px;padding:10px 12px;margin-bottom:14px;font-size:12px;font-weight:800}.auth-message.success{background:#123d2a;color:#dfff91;border:1px solid #416a2a}.auth-message.error{background:#4b1820;color:#fecaca;border:1px solid #7f2937}
.pending-card{max-width:550px;margin:70px auto;text-align:center;border:1px solid #315249;border-radius:25px;padding:40px;background:linear-gradient(145deg,#122a22,#08130f);box-shadow:var(--shadow)}.pending-card h1{margin:8px 0}.pending-card p:not(.eyebrow){color:#a8beb6;line-height:1.55}.pending-icon{width:66px;height:66px;margin:0 auto 16px;display:grid;place-items:center;border-radius:50%;background:#263f25;color:#dfff91;font-size:28px;font-weight:1000}
.reports-callout{width:100%;display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:14px;margin-top:16px;padding:16px;text-align:left;color:#e7f6f0;background:linear-gradient(135deg,#173d31,#0a1b16);border:1px solid #477326;border-radius:17px;cursor:pointer}.reports-callout-icon{width:50px;height:50px;border-radius:13px;display:grid;place-items:center;background:#b7ee35;color:#102219;font-size:26px;font-weight:1000}.reports-callout strong,.reports-callout small{display:block}.reports-callout small{margin-top:4px;color:#91aaa2}.reports-callout>b{font-size:25px;color:#b7ee35}
.auto-archive-note{padding:9px 12px;border:1px solid #315249;border-radius:999px;color:#bed1cb;font-size:11px;font-weight:850}.archive-title{margin-top:28px}.archive-browser{padding:13px}.archive-loading{text-align:center;color:#91aaa2;padding:30px}.archive-tree{display:grid;gap:10px}.archive-year,.archive-month{border:1px solid #2d493f;border-radius:14px;background:#0a1713;overflow:hidden}.archive-year>summary,.archive-month>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:14px;cursor:pointer}.archive-year>summary::-webkit-details-marker,.archive-month>summary::-webkit-details-marker{display:none}.archive-year>summary{background:#142a22}.archive-year>summary span{color:#b7ee35}.archive-year>summary strong{font-size:18px}.archive-year>summary small,.archive-month>summary small{margin-left:auto;color:#91aaa2}.archive-months{display:grid;gap:9px;padding:10px}.archive-month>summary{background:#102019}.archive-days{display:grid;gap:7px;padding:9px}.archive-day{display:grid;grid-template-columns:65px 1fr auto;align-items:center;gap:12px;padding:11px;border:1px solid #263c36;border-radius:11px;background:#08130f}.archive-date{display:grid;place-items:center;border-right:1px solid #2c463d}.archive-date b{font-size:23px;color:#dfff91}.archive-date span,.archive-day small{display:block;color:#80978f;font-size:10px}.archive-day>div:nth-child(2)>strong{display:block}.archive-day .btn{text-decoration:none}
.account-list{display:grid;gap:9px}.account-card{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;padding:13px;border:1px solid #2d493f;border-radius:14px;background:#0a1713}.account-card.pending{border-left:4px solid #f4b740}.account-card.disabled{opacity:.65;border-left:4px solid #f04b55}.account-card.approved{border-left:4px solid #b7ee35}.account-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#254438;color:#dfff91;font-weight:1000}.account-main strong,.account-main span,.account-main small{display:block}.account-main span{color:#c4d8d1;font-size:12px;margin-top:3px}.account-main small{color:#80978f;margin-top:4px}.account-main .pill{display:inline-block;margin-left:8px}.account-actions{display:flex;align-items:center;gap:7px}.account-actions select{width:auto;padding:8px}.account-protected{font-size:11px;color:#91aaa2}
@media(max-width:850px){.user-identity{display:none!important}.auth-shell{grid-template-columns:1fr;max-width:560px}.auth-visual{border-right:0;border-bottom:1px solid #315249;padding:28px}.account-card{grid-template-columns:45px 1fr}.account-actions{grid-column:2;flex-wrap:wrap}}
.archive-day .archive-validation{color:#a7e765;margin-top:4px}
.install-button{color:#dfff91;background:#173d31;border-color:#477326}
@media(max-width:650px){.auth-shell{margin:12px auto;border-radius:20px;min-height:auto}.auth-visual{padding:21px}.auth-mark{width:61px;height:72px;font-size:25px}.auth-visual h1{font-size:25px}.auth-card{padding:18px}.auth-grid{grid-template-columns:1fr}.archive-day{grid-template-columns:52px 1fr}.archive-day .btn{grid-column:2;width:100%;text-align:center}.reports-callout{grid-template-columns:46px 1fr}.reports-callout-icon{width:42px;height:42px}.reports-callout>b{display:none}.account-card{grid-template-columns:40px 1fr}.account-actions{grid-column:1/-1}.account-actions>*{flex:1}.top-actions{gap:5px}.top-actions .icon-btn{width:36px;height:36px}.bottom-nav button{font-size:15px}}
