/* Rafinex360 1.71.0 — listes et tableaux de toute l'application, panneau Pompes compact.
   Couche visuelle seulement (aucune donnée ni calcul) : lisibilité en salle de contrôle et sur tablette — en-têtes de
   tableaux collants, lignes alternées, chiffres alignés, survol, défilement horizontal propre, groupes collants. */

/* ── Pompes (Opérations) ── */
#pmGrid{display:block!important}
.pm-chips{display:flex;gap:6px;flex-wrap:wrap;margin:2px 0 12px}
.pm-chip{all:unset;cursor:pointer;padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:650;border:1px solid var(--lg-stroke,rgba(255,255,255,.12));background:var(--lg-fill,rgba(255,255,255,.04));transition:all .2s}
.pm-chip b{margin-left:4px;font-variant-numeric:tabular-nums;opacity:.85}
.pm-chip.on{background:var(--lg-on,rgba(124,131,255,.22));border-color:var(--lg-accent,#7c83ff);color:var(--lg-accent,#7c83ff)}
.pm-grid2{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.pm-c{position:relative;display:grid;gap:8px;padding:12px;border-radius:18px;background:var(--lg-card,rgba(255,255,255,.05));border:1px solid var(--lg-stroke,rgba(255,255,255,.1));
  box-shadow:var(--lg-hi,none);transition:transform .22s cubic-bezier(.2,.9,.3,1.2),border-color .2s}
.pm-c:hover{transform:translateY(-2px);border-color:var(--lg-stroke-hi,rgba(255,255,255,.2))}
.pm-c::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--pmc,#94a3b8)}
.pm-c.pm-run{--pmc:#22c55e}.pm-c.pm-sus{--pmc:#f59e0b}.pm-c.pm-maint{--pmc:#f59e0b}.pm-c.pm-off,.pm-c.pm-def{--pmc:#ef4444}.pm-c.pm-unk{--pmc:#64748b}
.pm-c-h{display:flex;gap:10px;align-items:center;min-width:0}
.pm-c-h .rxp{width:58px}
.pm-c-t{min-width:0;display:grid;gap:3px}
.pm-c-t b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-c .pm-st{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--pmc)}
.pm-c .pm-st i{width:8px;height:8px;border-radius:50%;background:var(--pmc)}
.pm-c.pm-run .pm-st i{box-shadow:0 0 0 3px color-mix(in srgb,var(--pmc) 25%,transparent)}
.pm-line{font-size:13px;line-height:1.4}.pm-line.dim{opacity:.65}
.pm-c .pm-al{font-size:12px;padding:6px 9px;border-radius:10px;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.35);color:#fca5a5}
html.rx-clair .pm-c .pm-al{color:#b91c1c}
.pm-more summary{cursor:pointer;font-size:12.5px;font-weight:650;opacity:.8;list-style:none}
.pm-more summary::-webkit-details-marker{display:none}
.pm-more summary::before{content:'▸ ';display:inline-block;transition:transform .2s}
.pm-more[open] summary::before{transform:rotate(90deg)}
.pm-more>*:not(summary){margin-top:8px}
.pm-c .pm-f{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--lg-stroke,rgba(255,255,255,.08));padding-top:8px}
.pm-c .pm-f small{opacity:.65;font-size:11.5px}
.pm-c .pm-f span{display:flex;gap:10px}

/* ── Tableaux (stocks, tanker, douane, IGP, environnement, HSE, rapports) ── */
.tbl-wrap,.tkr-wrap,.igp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px}
table.tk-tab,table.tkr-t,table.igp-tab,table.lx-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}
table.tk-tab th,table.tkr-t th,table.igp-tab th,table.lx-table th{position:sticky;top:0;z-index:1;text-align:left;font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;
  padding:9px 10px;background:var(--lg-glass-strong,rgba(22,26,40,.92));color:var(--text-dim,inherit);border-bottom:1px solid var(--lg-stroke,rgba(255,255,255,.12));white-space:nowrap}
table.tk-tab td,table.tkr-t td,table.igp-tab td,table.lx-table td{padding:8px 10px;border-bottom:1px solid var(--lg-stroke,rgba(255,255,255,.06));vertical-align:top}
table.tk-tab tbody tr:nth-child(even) td,table.tkr-t tbody tr:nth-child(even) td,table.igp-tab tbody tr:nth-child(even) td,table.lx-table tbody tr:nth-child(even) td{background:var(--lg-fill,rgba(255,255,255,.025))}
table.tk-tab tbody tr:hover td,table.tkr-t tbody tr:hover td,table.igp-tab tbody tr:hover td{background:var(--lg-on,rgba(124,131,255,.10))}
table td.num,table th.num,table .mono.num{text-align:right;font-variant-numeric:tabular-nums}

/* ── Listes de lignes (comptes, relevés, journaux) ── */
.row-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 6px;border-bottom:1px solid var(--lg-stroke,rgba(255,255,255,.06));transition:background .2s;border-radius:10px}
.row-item:last-child{border-bottom:0}
.row-item:hover{background:var(--lg-fill,rgba(255,255,255,.035))}
.rel-list{display:grid;gap:2px}
.rel-row{padding:8px 10px;border-radius:10px;font-size:13px;line-height:1.45}
.rel-row:nth-child(even){background:var(--lg-fill,rgba(255,255,255,.03))}
.rel-row small{display:block;opacity:.7;font-size:11.5px}
/* en-têtes de groupes collants dans les longues listes (Opérations par heure d'arrêt, par type…) */
.grp-h.grp-sec{position:sticky;top:0;z-index:2;padding:8px 10px;margin:14px 0 8px;border-radius:12px;background:var(--lg-glass,rgba(22,26,40,.75));
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--lg-stroke,rgba(255,255,255,.08));display:flex;justify-content:space-between;align-items:center;gap:8px}
html.lg-lite .grp-h.grp-sec{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--lg-glass-solid,#161a28)}
/* cartes d'opération : respiration régulière entre cartes */
#supList .fx-card+.fx-card{margin-top:10px}
.fx-card{transition:border-color .2s,box-shadow .2s}
.fx-card:hover{border-color:var(--lg-stroke-hi,rgba(255,255,255,.18))}
@media (max-width:520px){.pm-grid2{grid-template-columns:1fr}table.tk-tab,table.tkr-t,table.igp-tab,table.lx-table{font-size:12.5px}}
@media (prefers-reduced-motion:reduce){.pm-c,.pm-chip,.row-item{transition:none!important}}
/* 1.71.1 : bandeau « compte non relié au serveur » */
.cloud-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:12px 14px;border-radius:16px;
  background:linear-gradient(135deg,rgba(239,68,68,.16),rgba(249,115,22,.12));border:1px solid rgba(239,68,68,.45)}
.cloud-banner b{display:block;color:#f87171;font-size:14px}.cloud-banner span{font-size:12.5px;opacity:.9}
html.rx-clair .cloud-banner b{color:#b91c1c}
/* 1.71.2 : Terrain — planning IGP par réservoir, inspections de pompes, anomalies */
.pl2-tools{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:12px}
.pl2-q{flex:1 1 220px;min-width:0;max-width:360px;padding:9px 14px;border-radius:999px;background:var(--lg-input,rgba(255,255,255,.06));border:1px solid var(--lg-stroke,rgba(255,255,255,.12));color:inherit;font:inherit;font-size:13.5px}
#anomQ.pl2-q{display:block;width:100%;max-width:none;margin:8px 0 12px}
.pl2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.pl2{position:relative;display:grid;gap:6px;align-content:start;padding:12px;border-radius:16px;background:var(--lg-fill,rgba(255,255,255,.045));border:1px solid var(--lg-stroke,rgba(255,255,255,.1));transition:transform .2s,border-color .2s}
.pl2:hover{transform:translateY(-2px);border-color:var(--lg-stroke-hi,rgba(255,255,255,.2))}
.pl2::before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:var(--plc,#64748b)}
.pl2-late{--plc:#ef4444}.pl2-never{--plc:#f59e0b}.pl2-open{--plc:#38bdf8}.pl2-soon{--plc:#fbbf24}.pl2-ok{--plc:#22c55e}
.pl2-h{display:flex;justify-content:space-between;align-items:center;gap:6px}.pl2-h b{font-size:15px}
.pl2-s{font-size:11.5px;opacity:.72;line-height:1.35}
.pl2-w{font-size:13px;font-weight:650;color:var(--plc)}
.pl2-ok .pl2-w{color:inherit;opacity:.85}
.pl2-bar{height:6px;border-radius:999px;background:var(--lg-fill-2,rgba(255,255,255,.08));overflow:hidden}
.pl2-bar i{display:block;height:100%;border-radius:inherit;background:var(--plc);transition:width .8s cubic-bezier(.2,.8,.2,1)}
.pl2 .btn{justify-self:start;margin-top:2px}
.pi-f{margin:10px 0}
.pi-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.anom-card .anom-desc{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.anom-card:focus-within .anom-desc,.anom-card:hover .anom-desc{-webkit-line-clamp:unset}
@media (max-width:520px){.pl2-grid{grid-template-columns:1fr 1fr}.pl2-q{max-width:none}}
@media (max-width:380px){.pl2-grid{grid-template-columns:1fr}}

/* 1.73.11 : coulée en groupe — ligne à 3 champs (destination, produit, hauteur d'arrêt). Feuille non liée à un thème,
   sélecteur à double classe (.fx-line.fx-line-3) pour primer la règle .fx-line du thème actif (apple clair / nocturne nuit). */
.fx-line.fx-line-3{grid-template-columns:24px minmax(0,1fr) 72px 36px;grid-template-areas:"num dst dst del" "num prd h del";row-gap:6px}
.fx-line.fx-line-3>.fx-line-n{grid-area:num}
.fx-line.fx-line-3>[data-nlf="d"]{grid-area:dst}
.fx-line.fx-line-3>[data-nlf="p"]{grid-area:prd}
.fx-line.fx-line-3>[data-nlf="h"]{grid-area:h}
.fx-line.fx-line-3>.fx-line-x{grid-area:del}

/* 1.73.12 : bouton « Modifier l'arrêt » dans les tableaux Accueil / Quart */
.tm-oprow{display:flex;align-items:stretch;gap:6px}
.tm-oprow .tm-op{flex:1 1 auto;min-width:0}
.tm-opedit{flex:0 0 auto;width:42px;border:1px solid var(--border,rgba(255,255,255,.18));border-radius:10px;background:transparent;color:var(--cyan,#22b8cf);font-size:15px;cursor:pointer;line-height:1}
.tm-opedit:hover{background:rgba(34,184,207,.12)}
.db-go.db-edit{color:var(--cyan,#22b8cf)}

/* 1.74.0 — Connectivité SNCC */
.sncc-status{font-size:13px;line-height:1.5;opacity:.9;margin:4px 0 12px}
.sncc-card .tag.ok{color:#34d399}
.sncc-card .tag.danger{color:#f87171}
.needs-cfg-hint{opacity:.6;font-weight:400;font-size:12px}
.sncc-map{display:flex;flex-direction:column;gap:10px}
.sncc-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;border:1px solid var(--border,rgba(255,255,255,.14));border-radius:12px;background:rgba(127,127,127,.05)}
.sncc-row input{min-width:0;box-sizing:border-box}
.sncc-row input[data-sf=tank]{grid-column:1 / -1;font-weight:600}
.sncc-row .sncc-del{grid-column:1 / -1;justify-self:end;padding-block:4px}
@media(max-width:380px){.sncc-row{grid-template-columns:1fr}}

/* 1.75.0 — SNCC : équipements, journal, indicateur accueil */
.sncc-erow{display:grid;grid-template-columns:1fr auto;gap:6px;padding:8px;border:1px solid var(--border,rgba(255,255,255,.14));border-radius:12px;background:rgba(127,127,127,.05)}
.sncc-erow input[data-ef=name]{grid-column:1 / -1;font-weight:600}
.sncc-erow select[data-ef=kind]{min-width:0}
.sncc-erow input[data-ef=tag]{min-width:0}
.sncc-erow .sncc-del{grid-column:1 / -1;justify-self:end;padding-block:4px}
.sncc-log{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow:auto}
.sncc-logrow{font-size:12.5px;line-height:1.5;padding:4px 8px;border-radius:8px;background:rgba(127,127,127,.06)}
.sncc-bad{color:#f87171}
.sncc-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--border,rgba(255,255,255,.14));background:rgba(127,127,127,.08);color:var(--muted,#9aa);white-space:nowrap}
.sncc-chip .dot{width:7px;height:7px;border-radius:50%;background:#9aa;flex:0 0 auto}
.sncc-chip.ok{color:#34d399}.sncc-chip.ok .dot{background:#34d399}
.sncc-chip.bad{color:#f87171}.sncc-chip.bad .dot{background:#f87171}
.db-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}

/* 1.75.0 — note de partage dans l'Administration */
.adm-share-note{margin:0 0 12px;padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.5;border:1px solid var(--border,rgba(255,255,255,.14));background:rgba(52,211,153,.08);color:var(--text,inherit)}

/* 1.75.0 — correction mise en page de la configuration SNCC : une colonne (les nombres restent en paires via .grid2) */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid2>.field{min-width:0}
#snccCfg .fields{grid-template-columns:1fr}
html[data-density="compact"] #snccCfg .fields{grid-template-columns:1fr}
#snccCfg .section-label{margin-top:10px}
/* 2.4.0 — bilan : tendance 14 jours et prévision des niveaux */
.bm-tr td.num{font-size:12px;white-space:nowrap}
.bm-tr td.neg{color:#f59e0b}.bm-tr td.pos{color:#22c55e}.bm-tr td.bad{color:#ef4444;font-weight:700}
.bm-t b.warn{color:#f59e0b}
.bm-alert{margin:6px 0 8px;padding:10px 12px;border-radius:12px;border:1px solid rgba(239,68,68,.35);background:rgba(239,68,68,.08);font-size:13px;line-height:1.45}
/* 2.6.0 — matrice des compétences */
.ac-mx td{text-align:center;white-space:nowrap}.ac-mx td:first-child{text-align:left}
.ac-mx td small{display:block;font-size:10.5px;opacity:.7}
.ac-mx .mx-ok{color:#22c55e;font-weight:700}.ac-mx .mx-soon{color:#f59e0b;font-weight:700}.ac-mx .mx-late{color:#ef4444;font-weight:700}.ac-mx .mx-todo{opacity:.5}
/* 2.8.0 — escale du navire */
.tkr-esc summary small{display:block;font-weight:500;opacity:.75;font-size:12px}
.tkr-esc-k{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:6px 0 10px}
.tkr-esc-k>div{padding:10px 12px;border-radius:12px;background:rgba(127,127,127,.08);display:grid;gap:2px}
.tkr-esc-k b{font-size:18px}.tkr-esc-k small{font-size:11.5px;opacity:.75}
.tkr-esc-k .bad{background:rgba(239,68,68,.12)}.tkr-esc-k .bad b{color:#ef4444}.tkr-esc-k .ok b{color:#22c55e}
.tkr-esc-w{margin:6px 0;padding:9px 11px;border-radius:10px;background:rgba(245,158,11,.12);font-size:13px}
.tkr-ssc{display:grid;gap:6px;margin:6px 0}.tkr-ssc label{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;line-height:1.4;min-height:32px}
.tkr-ssc input{margin-top:3px;width:18px;height:18px;flex:none}
/* 2.10.0 — taux de fréquence et de gravité */
.inc-tf summary small{display:block;font-weight:500;opacity:.75;font-size:12px}
.inc-h{width:110px;text-align:right;padding:5px 8px;border-radius:8px;border:1px solid rgba(127,127,127,.35);background:transparent;color:inherit;font:inherit}
/* 2.11.0 — journal d'audit complet */
#audFull summary small{display:block;font-weight:500;opacity:.75;font-size:12px}
.aud-f{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.aud-f input[type=search]{flex:1 1 220px;min-width:0;padding:8px 10px;border-radius:10px;border:1px solid rgba(127,127,127,.35);background:transparent;color:inherit;font:inherit}
.aud-f label{display:flex;gap:6px;align-items:center;font-size:13px}.aud-f input[type=date]{padding:6px 8px;border-radius:8px;border:1px solid rgba(127,127,127,.35);background:transparent;color:inherit;font:inherit}
/* 2.11.0 — accueil : à surveiller selon le rôle */
.rw-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.rw-h small{opacity:.7}
.rw-l{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px}
.rw-i{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:center;text-align:left;padding:9px 11px;min-height:44px;border-radius:12px;border:1px solid rgba(127,127,127,.25);background:rgba(127,127,127,.06);color:inherit;font:inherit;cursor:pointer}
.rw-i b{font-size:18px}.rw-i em{font-style:normal;font-size:12.5px;line-height:1.3}.rw-i.hot{border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.08)}.rw-i.hot b{color:#ef4444}
.rw-ok{margin:0;color:#22c55e;font-weight:600;font-size:13.5px}
/* 3.1.0 — rappel ATEX */
.atex-card{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;border:1px solid rgba(255,204,0,.55);background:linear-gradient(135deg,rgba(255,204,0,.14),rgba(255,204,0,.04))}
.atex-card p{margin:4px 0 8px;font-size:13.5px;line-height:1.45}
.atex-ex{display:grid;place-items:center;width:52px;height:46px;clip-path:polygon(50% 0,100% 100%,0 100%);background:#ffcc00;color:#111;font:900 15px/1 var(--font,system-ui);padding-top:14px;box-sizing:border-box}
.atex-in.lx-help{display:block;padding:0;margin:0;background:none;border:0}
