:root{
  --bg:#f5f7f8;
  --panel:#ffffff;
  --line:#e4e8eb;
  --text:#17212b;
  --muted:#697480;
  --green:#1f5c41;
  --green-dark:#154432;
  --green-soft:#edf5f0;
  --blue:#2f6fec;
  --orange:#e08b2c;
  --red:#d14c4c;
  --purple:#7d58d6;
  --shadow:0 12px 28px rgba(16,24,40,.08);
  --radius:18px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
h1,h2,h3,h4{margin:0 0 .45rem;font-weight:600;letter-spacing:-.02em}
p{margin:.2rem 0 1rem}
.container{width:min(1200px,92vw);margin:0 auto}
.eyebrow{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--green);margin:0 0 .65rem}
.lede,.muted,.note-inline,.field-note{color:var(--muted)}
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.88rem 1.15rem;border-radius:999px;border:1px solid transparent;font-weight:500;transition:.2s ease}
.btn-primary{background:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark)}
.btn-soft{background:#fff;color:var(--text);border-color:var(--line)}.btn-soft:hover{background:#f8fafb}
.full{width:100%;justify-content:center}
.public-header{background:#fff;border-bottom:1px solid var(--line)}
.nav-row,.brand-wrap,.header-actions,.hero-actions,.workflow-grid,.mini-grid,.feature-grid,.kpi-grid,.detail-grid,.gps-grid,.photo-grid,.cta-row{display:flex;gap:1rem}
.nav-row{justify-content:space-between;align-items:center;padding:1rem 0;flex-wrap:wrap}
.brand-wrap{align-items:center}.brand-wrap.compact{margin-bottom:1rem}.brand-logo{width:82px;height:auto}
.header-actions{flex-wrap:wrap}
.hero{display:grid;grid-template-columns:1.2fr .95fr;gap:1.4rem;align-items:center;padding:2.2rem 0 1.5rem}
.hero h2{font-size:2.45rem;max-width:14ch}.hero-text{max-width:70ch}.hero-panel,.feature-card,.workflow-step,.login-card,.spec-card,.info-card,.table-card,.intervention-card,.photo-card,.report-card,.fact-card,.zone-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero-panel{padding:1.2rem}.mini-grid{display:grid;grid-template-columns:repeat(2,1fr)}
.mini-card{background:#f8fafb;border:1px solid var(--line);border-radius:16px;padding:1rem}.mini-card small{display:block;color:var(--muted)}.mini-card strong{display:block;font-size:1.7rem;margin:.25rem 0 .2rem}
.section-title{margin:1rem 0}.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.feature-card{padding:1.1rem}.feature-card i{font-size:1.15rem;color:var(--green);margin-bottom:.7rem}
.workflow{padding:1rem 0 2.6rem}.workflow-grid{display:grid;grid-template-columns:repeat(5,1fr)}.workflow-step{padding:1rem}.workflow-step span{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--green-soft);color:var(--green);font-weight:600;margin-bottom:.8rem}
.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(180deg,#f5f7f8,#eef3f1)}
.login-shell{width:min(520px,94vw)}.login-card{padding:1.6rem}
.login-form{display:grid;gap:1rem}.login-form label,.role-box label{display:grid;gap:.45rem;font-size:.95rem}.login-form input,.login-form select,.role-box select,.toolbar select,.toolbar input,.form-select{width:100%;padding:.88rem 1rem;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--text);font:inherit;box-shadow:none}
.app-body{background:#eff3f1}.sidebar{background:#fff;border-right:1px solid var(--line);padding:1rem}.desktop-sidebar{min-height:100vh}
.sidebar-brand{display:flex;gap:1rem;align-items:center;margin-bottom:1rem}.sidebar-brand img{width:68px}.sidebar-brand p{margin:0;color:var(--muted)}
.role-box{background:#f8fafb;border:1px solid var(--line);padding:.85rem;border-radius:16px;margin:.9rem 0 1rem}.role-label{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.sidebar-menu{display:grid;gap:.35rem}
.side-link{display:flex;align-items:center;gap:.8rem;padding:.9rem 1rem;border-radius:14px;border:1px solid transparent;background:transparent;color:#334155;font-weight:400;cursor:pointer;transition:.2s ease;width:100%;text-align:left}.side-link i{width:18px;color:var(--green)}
.side-link:hover{background:var(--green-dark);color:#fff}.side-link:hover i,.side-link.active i,.side-link.active{color:#fff}.side-link.active{background:var(--green)}.side-link.soft{border-color:var(--line);background:#fff}
.sidebar-footer{display:grid;gap:.6rem}
.main-area{padding:1rem 1rem 1.4rem}.topbar-user{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--line);padding:.8rem 1rem;border-radius:16px}.topbar-user i{font-size:1.6rem;color:var(--green)}.topbar-user span{display:block;color:var(--muted)}
.content-stack{display:grid;gap:1rem}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr)}.info-card,.table-card,.intervention-card,.photo-card,.report-card,.fact-card,.zone-card{padding:1.1rem}.info-card small{display:block;color:var(--muted)}.info-card strong{display:block;font-size:1.85rem;margin:.25rem 0}
.section-split{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.9rem}.panel-head h3{font-size:1.15rem}
.simple-list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}.simple-list li{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid #edf1f4}
.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .7rem;border-radius:999px;font-size:.8rem;background:#f3f6f9;border:1px solid var(--line);color:#475569}
.badge.green{background:#edf8f0;color:#246946;border-color:#d7e9dd}.badge.blue{background:#edf4ff;color:#2557b8;border-color:#d6e4ff}.badge.orange{background:#fff5e9;color:#aa6414;border-color:#ffe1bc}.badge.red{background:#fff0f0;color:#a33d3d;border-color:#ffd4d4}.badge.purple{background:#f4f0ff;color:#6f4dc6;border-color:#e3d8ff}
.toolbar{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.toolbar .field{min-width:200px;flex:1}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px}.table-wrap table{width:100%;border-collapse:collapse;background:#fff}.table-wrap th,.table-wrap td{padding:.82rem .9rem;border-bottom:1px solid #edf1f4;text-align:left;font-size:.92rem}.table-wrap th{background:#fafbfd;font-weight:500;color:#475569}.table-wrap tr:hover td{background:#fbfcfd}
.action-btn{padding:.55rem .8rem;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer;font:inherit}.action-btn:hover{background:#f8fafb}
.status-pill,.action-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.42rem .72rem;border-radius:999px;font-size:.82rem;font-weight:500}
.status-planifiee{background:#eef4ff;color:#2c62c9}.status-encours{background:#fff4e8;color:#b26b11}.status-acontroler{background:#f4f1ff;color:#694dc2}.status-terminee{background:#eaf7ef;color:#287446}.status-reprisedemandee,.status-reprise{background:#fff0f0;color:#b13c3c}.status-brouillon{background:#f3f5f7;color:#54606c}.status-deposeesurchorus,.status-chorus{background:#eaf3ff;color:#2c62c9}.status-miseenpaiement,.status-paiement{background:#eaf7ef;color:#287446}.status-valide{background:#eaf7ef;color:#287446}
.week-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem}.day-col{background:#fff;border:1px solid var(--line);border-radius:16px;padding:.85rem}.day-col h4{font-size:.95rem}.day-col .mini-item{padding:.55rem .65rem;border-radius:12px;background:#f8fafb;border:1px solid var(--line);margin-top:.55rem;font-size:.82rem}
.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-bottom:1rem}.detail-box{background:#f8fafb;border:1px solid var(--line);border-radius:14px;padding:.8rem}.detail-box span{display:block;font-size:.8rem;color:var(--muted)}
.gps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:.9rem 0}.gps-point{background:#f8fafb;border:1px solid var(--line);border-radius:14px;padding:.8rem}.gps-point span{display:block;color:var(--muted);font-size:.82rem}
.checklist{display:grid;gap:.7rem;margin-top:1rem}.check-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 0;border-bottom:1px solid #edf1f4}.check-item input{margin-top:.2rem;width:16px;height:16px;accent-color:var(--green)}
.cta-row{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem}.cta-row .btn,.cta-row .action-pill{cursor:pointer}
.photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.photo-frame{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.photo-frame img{width:100%;height:220px;object-fit:cover}.photo-caption{padding:.8rem .9rem;border-top:1px solid var(--line)}
.report-sheet{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.2rem}.report-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1rem}.report-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1rem}.report-meta div,.note-box{background:#f8fafb;border:1px solid var(--line);border-radius:14px;padding:.8rem}.note-box h4{margin-bottom:.4rem}
.fact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.lot-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0}
.zone-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:1rem}.zone-map-wrap{position:relative}.zone-map-wrap img{border-radius:16px;border:1px solid var(--line)}.zone-btn{position:absolute;border:none;border-radius:999px;padding:.55rem .8rem;background:rgba(31,92,65,.18);color:#163a2c;cursor:pointer;font:inherit}.zone-btn:hover,.zone-btn.active{background:var(--green);color:#fff}.z1{left:11%;top:39%}.z2{left:49%;top:39%}.z3{left:47%;top:73%}
.mobile-sidebar{max-width:320px}
.specs-page{padding:0 0 2rem}.spec-card{padding:1.4rem}
@media print{
  body{background:#fff}.sidebar,.topbar,.no-print,.offcanvas-backdrop{display:none !important}.main-area{padding:0}.report-sheet{border:none;box-shadow:none}.photo-frame img{height:190px}
}
@media (max-width:1199px){
  .feature-grid{grid-template-columns:repeat(2,1fr)}
  .workflow-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:1100px){
  .kpi-grid,.detail-grid,.gps-grid,.photo-grid,.fact-grid,.lot-summary,.week-grid,.report-meta{grid-template-columns:repeat(2,1fr)}
  .section-split,.zone-layout,.hero{grid-template-columns:1fr}
}
@media (max-width:767px){
  .feature-grid,.workflow-grid,.kpi-grid,.detail-grid,.gps-grid,.photo-grid,.fact-grid,.lot-summary,.week-grid,.report-meta{grid-template-columns:1fr}
  .hero h2{font-size:1.9rem}
  .brand-logo{width:64px}
  .photo-frame img{height:190px}
  .table-wrap th,.table-wrap td{font-size:.86rem;padding:.72rem}
}

/* V12 corrections : espacements et lisibilité */
.content-stack{gap:1.35rem!important;align-items:start}.content-stack>section{margin-bottom:.35rem}.table-card,.intervention-card,.photo-card,.report-card,.fact-card,.zone-card,.info-card{overflow:hidden}.section-split,.zone-layout,.fact-grid,.kpi-grid,.detail-grid,.gps-grid,.photo-grid,.lot-summary,.week-grid,.report-meta{gap:1.15rem!important}.simple-list li{align-items:flex-start}.badge,.status-pill{white-space:normal;line-height:1.25}.table-wrap td,.table-wrap th{vertical-align:top}.table-wrap td{min-width:110px}.report-sheet{overflow:visible}.report-meta div strong,.detail-box strong,.gps-point strong{word-break:break-word}.materials-grid,.voucher-grid,.mobile-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.15rem}.material-card,.voucher-card,.timeline-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;box-shadow:var(--shadow);min-height:100%}.material-card small,.voucher-card small{display:block;color:var(--muted);margin-bottom:.3rem}.material-card h4,.voucher-card h4{font-size:1rem;line-height:1.35;margin-bottom:.45rem}.maintenance-row{display:grid;grid-template-columns:1.2fr .8fr .8fr .8fr;gap:.8rem;align-items:start;border-bottom:1px solid #edf1f4;padding:.85rem 0}.report-block-title{margin:1.3rem 0 .7rem}.full-report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-bottom:1rem}.full-report-grid div{background:#f8fafb;border:1px solid var(--line);border-radius:14px;padding:.8rem}.full-report-grid span{display:block;color:var(--muted);font-size:.8rem}.signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.signature-box{height:105px;border:1px dashed #cbd5dc;border-radius:14px;padding:.8rem;color:var(--muted)}
@media(max-width:991px){.materials-grid,.voucher-grid,.mobile-card-grid{grid-template-columns:repeat(2,1fr)}.maintenance-row{grid-template-columns:1fr 1fr}.full-report-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:767px){.materials-grid,.voucher-grid,.mobile-card-grid,.maintenance-row,.full-report-grid,.signature-grid{grid-template-columns:1fr}.table-wrap.responsive-cards{border:none;overflow:visible}.table-wrap.responsive-cards table,.table-wrap.responsive-cards thead,.table-wrap.responsive-cards tbody,.table-wrap.responsive-cards tr,.table-wrap.responsive-cards th,.table-wrap.responsive-cards td{display:block;width:100%}.table-wrap.responsive-cards thead{display:none}.table-wrap.responsive-cards tr{background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:1rem;box-shadow:var(--shadow);overflow:hidden}.table-wrap.responsive-cards td{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid #edf1f4;min-width:0}.table-wrap.responsive-cards td::before{content:attr(data-label);font-weight:600;color:#697480;min-width:115px}.table-wrap.responsive-cards td:last-child{border-bottom:none}.report-header{flex-direction:column}.photo-frame img{height:175px}.btn{width:100%;justify-content:center}.panel-head{align-items:flex-start;flex-direction:column}.hero-actions,.header-actions{width:100%}}
