/* bilan.css — immobilisation, frises, pannes, préventif, données brutes. */

/* ── period control ── */
.pbar{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;box-shadow:var(--sh);margin-bottom:22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:3px;gap:2px}
.seg button{border:none;background:none;font-size:13px;font-weight:500;color:var(--ink-3);padding:7px 13px;border-radius:8px;transition:.15s}
.seg button.on{background:var(--ink);color:#fff}
.seg button:not(.on):hover{color:var(--ink)}
.stepper{display:inline-flex;align-items:center;gap:4px}
.stepper button{width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:8px;display:grid;place-items:center;color:var(--ink-2)}
.stepper button:hover{background:var(--surface-2);border-color:#c9d4e3}
.stepper .lbl{font-family:var(--disp);font-weight:600;color:var(--ink);min-width:120px;text-align:center;font-size:14px}
.dates{display:inline-flex;align-items:center;gap:8px}
.dates label{font-size:12px;color:var(--ink-3)}
.compare{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:13px;color:var(--ink-2);user-select:none;cursor:pointer}
.pbar .sep{width:1px;height:26px;background:var(--line)}
.raw-tbl{font-size:12px}
.raw-tbl th{position:sticky;top:0;background:#fff;z-index:2;white-space:nowrap}
.raw-tbl td{white-space:nowrap}
.raw-tbl td:first-child,.raw-tbl th:first-child{position:sticky;left:0;background:#fff;z-index:1;font-weight:600}
.raw-tbl tr:hover td:first-child{background:var(--surface-2)}
/* ── SIGNATURE immobilisation ── */
.immo{background:linear-gradient(135deg,#0E1F36,#1c3358);border-radius:var(--r-l);padding:18px 22px;color:#fff;box-shadow:var(--sh-l);position:relative;overflow:hidden;margin-bottom:14px}
.immo.hide{display:none}
.immo.click{cursor:pointer;transition:.15s}
.immo.click:hover{box-shadow:0 14px 40px rgba(16,32,60,.2)}
.immo-hint{font-family:var(--body);font-weight:500;font-size:10.5px;color:#9fb2cc;background:rgba(255,255,255,.08);padding:3px 9px;border-radius:20px;margin-left:8px}
.tl-label{font-size:11px;font-weight:600;color:#a9bad2;text-transform:uppercase;letter-spacing:.5px;margin:4px 0 9px}
.immo::after{content:'';position:absolute;top:-40px;right:-40px;width:220px;height:220px;background:radial-gradient(circle,#0fb5ae44,transparent 70%);pointer-events:none}
.immo-h{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;margin-bottom:22px;position:relative}
.immo-t{font-family:var(--disp);font-size:16px;font-weight:600;letter-spacing:-.3px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.immo-t svg{width:18px;height:18px;flex-shrink:0}
.immo-d{font-size:12px;color:#9fb2cc;margin-top:3px;max-width:480px}
.immo-total{text-align:right}
.immo-total .n{font-family:var(--disp);font-size:30px;font-weight:700;letter-spacing:-1.2px}
.immo-total .l{font-size:11px;color:#9fb2cc;text-transform:uppercase;letter-spacing:1px}
.tl-bar{display:flex;height:44px;border-radius:11px;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.25)}
.tl-seg{display:flex;flex-direction:column;justify-content:center;padding:0 12px;min-width:44px}
.tl-seg .sv{font-family:var(--mono);font-weight:600;font-size:14px;color:#fff}
.tl-seg .sl{font-size:9.5px;color:rgba(255,255,255,.85);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tl-seg.smf1{background:#0FB5AE}
.tl-seg.smf2{background:#12A0C4}
.tl-seg.smf3{background:#4F6BED}
.tl-seg.client{background:repeating-linear-gradient(45deg,#F97316,#F97316 7px,#e56606 7px,#e56606 14px)}
.tl-jalons{display:flex;justify-content:space-between;margin-top:12px}
.jalon{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1}
.jalon .jd{width:11px;height:11px;border-radius:50%;background:#fff;border:2px solid #0FB5AE;margin-bottom:8px}
.jalon .jt{font-size:10.5px;color:#c5d2e6;font-weight:500;line-height:1.3}
.immo-split{display:flex;gap:20px;margin-top:16px;flex-wrap:wrap}
.immo-note{margin-top:14px;background:rgba(249,115,22,.14);border:1px solid rgba(249,115,22,.35);border-radius:10px;padding:9px 14px;display:flex;gap:10px;align-items:center;font-size:12px;color:#ffd9b8}
.immo-note svg{width:17px;height:17px;flex-shrink:0;color:#F97316}
.immo-note b{color:#fff;font-weight:600}
.immo-cta{margin-top:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:12.5px;font-weight:600;padding:9px 15px;border-radius:9px;display:inline-flex;align-items:center;gap:7px}
.immo-cta:hover{background:rgba(255,255,255,.18)}
/* ── PANNES (big) ── */
.motif-legend{display:flex;flex-direction:column;gap:2px}
.ml-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-2)}
.ml-row:last-child{border:none}
.ml-dot{width:11px;height:11px;border-radius:4px;flex-shrink:0}
.ml-name{flex:1;font-size:13.5px;color:var(--ink);font-weight:500}
.ml-n{font-family:var(--mono);font-weight:600;color:var(--ink)}
.ml-pct{font-size:12px;color:var(--ink-3);width:44px;text-align:right}
.detail-table .bar-cell{display:flex;align-items:center;gap:8px}
.mini-bar{height:8px;border-radius:6px;background:var(--delai);min-width:4px}
.etat-strip{display:flex;height:40px;border-radius:10px;overflow:hidden;box-shadow:var(--sh)}
.etat-seg{display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--mono);font-weight:600;font-size:13px;min-width:30px}
/* preventif / coverage */
.prev-track{height:12px;background:var(--line-2);border-radius:8px;overflow:hidden;margin:14px 0 6px}
.prev-fill{height:100%;border-radius:8px;background:linear-gradient(90deg,#7A5AF8,#9d84fb)}
.prev-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-3)}
.prev-labels b{color:var(--ink)}
.cov{display:flex;flex-direction:column;gap:2px}
.cov-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-2);font-size:13px}
.cov-row:last-child{border:none}
.cov-ic{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;flex-shrink:0}
.cov-ic svg{width:13px;height:13px}
.cov-yes{background:var(--ok-b);color:var(--ok)}
.cov-no{background:var(--hs-b);color:var(--hs)}
.cov-txt{flex:1;color:var(--ink-2)}
.cov-tag{font-size:11px;font-weight:600;color:var(--ink-3)}

/* ── Blocs live : délais, faits, qualité ── */
.live-immo{cursor:default}.live-stage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}
.stage-card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:4px;transition:.15s}.stage-card:hover{border-color:var(--delai);box-shadow:var(--sh);transform:translateY(-1px)}.stage-card span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.35px;color:var(--ink-3)}.stage-card strong{font-family:var(--disp);font-size:23px;color:var(--ink)}.stage-card small{font-size:11.5px;color:var(--ink-3)}.stage-card em{font-size:10.5px;color:#0a8a85;font-style:normal;margin-top:3px}
.fact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.fact-grid>div{border:1px solid var(--line-2);border-radius:10px;padding:12px;background:var(--surface-2);display:flex;flex-direction:column;gap:4px}.fact-grid span{font-size:11px;color:var(--ink-3)}.fact-grid strong{font-family:var(--disp);font-size:22px;color:var(--ink)}
.quality-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.quality-row{display:grid;grid-template-columns:120px 1fr 52px 52px;align-items:center;gap:10px;border:1px solid var(--line-2);background:#fff;border-radius:10px;padding:10px 12px;text-align:left}.quality-row:hover{border-color:var(--delai)}.quality-row span{font-size:12px;color:var(--ink-2)}.quality-row strong{font-family:var(--mono);font-size:12px;color:var(--ink);text-align:right}.quality-row small{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);text-align:right}.quality-track{height:7px;background:var(--line-2);border-radius:10px;overflow:hidden}.quality-track i{display:block;height:100%;background:linear-gradient(90deg,var(--activite),var(--delai));border-radius:10px}.quality-note{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-2);font-size:12px;color:var(--ink-3)}
.json-btn{border:1px solid var(--line);background:#fff;color:var(--activite);font-size:11px;font-weight:600;border-radius:7px;padding:4px 8px}.json-btn:hover{background:var(--activite-b);border-color:#b8c5f6}.json-pre{white-space:pre-wrap;word-break:break-word;background:#0d1726;color:#dbe7f7;font-family:var(--mono);font-size:12px;line-height:1.55;padding:22px;min-height:320px;max-height:65vh;overflow:auto}
@media(max-width:1000px){.live-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quality-grid{grid-template-columns:1fr}}
@media(max-width:620px){.live-stage-grid,.fact-grid{grid-template-columns:1fr}.quality-row{grid-template-columns:100px 1fr 45px}.quality-row small{display:none}}

/* V3.2 — synthèse sur une ligne, jauges d'immobilisation et données conditionnelles. */
.synthesis-kpis{
  grid-template-columns:repeat(10,minmax(150px,1fr))!important;
  gap:10px;
  overflow-x:auto;
  padding:2px 1px 8px;
  scroll-snap-type:x proximity;
}
.synthesis-kpis .kpi{min-width:150px;min-height:118px;scroll-snap-align:start}
.synthesis-kpis .kpi-label{font-size:10px}
.synthesis-kpis .kpi-sub{font-size:10.5px;line-height:1.25}
.synthesis-kpis .kpi-val{font-size:25px}
.devis-kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.timeline-group{position:relative;margin-top:4px}
.timeline-group.no-quote{margin-top:20px;padding-top:17px;border-top:1px solid rgba(255,255,255,.12)}
.timeline-total{margin-top:6px;text-align:right;font-size:11px;color:#9fb2cc}
.timeline-total b{color:#fff;font-family:var(--mono);font-weight:600}
.tl-seg.missing{background:repeating-linear-gradient(45deg,#53657d,#53657d 7px,#485a72 7px,#485a72 14px)}
.tl-seg.missing .sv,.tl-seg.missing .sl{color:#dbe4ef}
.preventive-warning,.contract-warning{margin:14px -2px -2px}
.contract-warning{border-radius:0 0 12px 12px;margin:14px -20px -20px}
@media(max-width:1200px){
  .devis-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:680px){
  .synthesis-kpis{grid-template-columns:repeat(10,minmax(145px,145px))!important}
  .devis-kpis{grid-template-columns:1fr!important}
  .immo{padding:16px}
  .tl-seg{padding:0 7px}
  .tl-seg .sl{font-size:8px}
  .tl-seg .sv{font-size:11px}
  .jalon .jt{font-size:9px}
}
