/* Gestion de crise cyber — compléments de l'interface de crise : lisible sous stress (contrastes, tailles ≥ 16 px sur les
   actions critiques), barre d'action permanente, bandeau d'exercice, impressions (main courante, kit papier). */
/* la crise porte le rouge de marque (#FF2E22 pour le texte sur fond sombre) ; l'exercice garde son violet distinct */
:root { --crisis: #e10600; --exercise: #6d28d9; }
:root[data-theme="dark"] { --crisis: #ff2e22; --exercise: #a78bfa; }
@media (prefers-color-scheme: dark) { :root[data-theme="auto"] { --crisis: #ff2e22; --exercise: #a78bfa; } }

.big { font-size: 1.15rem; }
.mono { font-family: var(--mono); }
.wrap { word-break: break-all; white-space: normal; }
.linklike { border: 0; background: none; color: inherit; text-decoration: underline; cursor: pointer; padding: 0; font: inherit; }
.compact { margin: 4px 0 8px; padding-left: 18px; }
.input-sm { height: 30px; padding: 2px 8px; font-size: .82rem; width: auto; }

/* étiquettes */
.lvl-pill { display: inline-flex; align-items: center; gap: 6px; padding: 2px 9px; border-radius: 999px; font-size: .76rem; font-weight: 600;
  background: color-mix(in srgb, var(--lv) 16%, transparent); color: var(--lv); border: 1px solid color-mix(in srgb, var(--lv) 45%, transparent); white-space: nowrap; }
.lvl-pill::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--lv); }
.role-pill { display: inline-flex; padding: 1px 8px; border-radius: 999px; font-size: .74rem; font-weight: 600; margin-right: 3px;
  background: color-mix(in srgb, var(--rc) 14%, transparent); color: var(--rc); border: 1px solid color-mix(in srgb, var(--rc) 40%, transparent); }
.ex-flag { display: inline-block; padding: 1px 8px; border-radius: 4px; font-size: .72rem; font-weight: 700; letter-spacing: .06em; color: #fff; background: var(--exercise); }
.crisis-flag { display: inline-flex; align-items: center; gap: 4px; font-size: .72rem; font-weight: 700; letter-spacing: .06em; color: var(--crisis); }
.crisis-flag svg { width: 14px; height: 14px; }
.ex-banner { background: repeating-linear-gradient(45deg, var(--exercise), var(--exercise) 14px, color-mix(in srgb, var(--exercise) 80%, #000) 14px, color-mix(in srgb, var(--exercise) 80%, #000) 28px);
  color: #fff; font-weight: 700; text-align: center; padding: 6px 12px; border-radius: var(--radius-sm); margin-bottom: 14px; letter-spacing: .03em; }

/* accueil */
.org-block { margin-bottom: 18px; }
.org-block .card-head { flex-wrap: wrap; gap: 8px; }
.ev-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; margin-bottom: 14px; }
.ev-card { display: block; text-decoration: none; color: inherit; border: 1px solid var(--line); border-left: 4px solid var(--line2); border-radius: var(--radius-sm); padding: 10px 12px; background: var(--panel); }
.ev-card:hover { border-color: var(--accline); }
.ev-card.crise.live { border-left-color: var(--crisis); }
.ev-card.exercice { border-left-color: var(--exercise); }
.ev-k { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-bottom: 6px; }
.ev-t { font-weight: 500; }
.big-btn { min-height: 44px; font-size: .95rem; padding: 0 16px; }

/* déclenchement */
.declare .card { margin-bottom: 14px; }
.crit-grid { display: grid; gap: 10px; }
.crit { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line); }
.seg-o { position: relative; display: inline-flex; align-items: center; }
.seg-o input { position: absolute; opacity: 0; pointer-events: none; }
.seg-o span, a.seg-o { padding: 6px 12px; border-radius: 6px; font-size: .82rem; font-weight: 500; color: var(--txm); cursor: pointer; text-decoration: none; }
.seg-o input:checked + span, a.seg-o.on { background: var(--panel); color: var(--tx); box-shadow: 0 1px 2px rgb(var(--shade) / .12), 0 0 0 1px var(--line); }
.seg-o input:focus-visible + span { outline: 2px solid var(--focus); }
.computed { margin-top: 12px; font-size: 1rem; }
.decide-row { margin-top: 12px; }
@media (max-width: 720px) { .crit { grid-template-columns: 1fr; } .form-grid { grid-template-columns: 1fr; } .seg { flex-wrap: wrap; } }

/* annuaire */
.mean { display: flex; gap: 6px; align-items: baseline; flex-wrap: wrap; font-size: .86rem; }
.mean.offsite a, .mean.offsite span:last-child { font-weight: 600; }
.mean-row { margin-bottom: 6px; }
.mean-row .m-v { flex: 1; min-width: 160px; }
.pick-list { max-height: 300px; overflow: auto; display: flex; flex-direction: column; gap: 4px; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 8px; }

/* barre d'action permanente (3 clics) */
.ev-body { padding-bottom: 90px; }
.action-bar { position: fixed; z-index: 40; right: 20px; bottom: 20px; display: flex; gap: 8px; background: var(--panel); border: 1px solid var(--line);
  border-radius: 14px; padding: 6px; box-shadow: var(--shadow-pop); }
.ab-btn { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; min-width: 92px; padding: 8px 12px; border: 1px solid transparent; border-radius: 10px;
  background: var(--soft); color: var(--tx); font: inherit; font-size: .82rem; font-weight: 500; cursor: pointer; }
.ab-btn svg { width: 20px; height: 20px; }
.ab-btn:hover { border-color: var(--accline); }
.ab-btn.ab-alert { background: var(--nc-bg); color: var(--nc-tx); }
.ab-btn.ab-alert:hover { border-color: var(--nc-line); }
@media (max-width: 720px) { .action-bar { left: 8px; right: 8px; bottom: 8px; justify-content: space-between; } .ab-btn { flex: 1; min-width: 0; } }

/* pilotage */
.steer { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 14px; }
.st-i { display: flex; flex-direction: column; gap: 4px; }
.st-i.late b { color: var(--nc); }
.kpi b { display: block; font-family: var(--display); font-stretch: var(--display-stretch); font-size: 1.6rem; font-weight: 400; line-height: 1.15; font-variant-numeric: tabular-nums; }
.kpi span { font-size: .78rem; color: var(--txm); }
.kpi.bad b { color: var(--nc); }
.ro { white-space: pre-wrap; padding: 6px 0; }
.mini-log { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: .84rem; }
.mini-log li { border-left: 3px solid var(--line2); padding-left: 8px; }
.mini-list { margin: 0; padding-left: 18px; font-size: .86rem; }
.kind-dot { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--txm); }
.k-decision { --kc: var(--c-blue); } .k-action { --kc: var(--c-green); } .k-information { --kc: var(--c-slate); } .k-logistique { --kc: var(--c-amber); } .k-systeme { --kc: var(--line2); }
.mini-log li[class^="k-"], .mini-log li[class*=" k-"] { border-left-color: var(--kc); }
.mc-tbl tr[class^="k-"] td:first-child { box-shadow: inset 4px 0 0 var(--kc); }
.mc-tbl .k-decision .kind-dot { color: var(--c-blue); } .mc-tbl .k-action .kind-dot { color: var(--c-green); }
.mc-tbl .k-systeme { color: var(--txm); }
.mc-text { max-width: 640px; }
.kind-seg { margin-bottom: 12px; }
.kind-seg .seg-o span { font-size: .9rem; padding: 8px 14px; }
.toolbar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 10px 0; }

/* actions et décisions */
.kanban.kanban { grid-template-columns: repeat(4, minmax(220px, 1fr)); }
.kcol h3 { display: flex; justify-content: space-between; margin: 2px 4px 10px; font-size: .9rem; font-weight: 600; color: var(--txm); }
.kcard { cursor: default; }
.kcard.late { border-color: var(--nc-line); box-shadow: inset 3px 0 0 var(--nc); }
.kc-t { font-weight: 600; margin: 6px 0 4px; }
.lib { max-height: 55vh; overflow: auto; margin-top: 8px; }
.lib details { border-bottom: 1px solid var(--line); padding: 6px 0; }
.lib-g { font-weight: 600; margin: 8px 0 2px; font-size: .84rem; }
.lib-i { display: flex; padding: 3px 0 3px 8px; align-items: flex-start; }
.dec { border-left: 4px solid var(--c-blue); margin-bottom: 10px; }
.dec-s { font-size: 1.05rem; font-weight: 500; margin: 6px 0; }
.ack-accuse, .ack-joint { background: var(--ok-bg); }
.ack-non_joint, .ack-indisponible { background: var(--nc-bg); }
.ack-message { background: var(--part-bg); }
.card-head .progress { width: 120px; }
.chk-row { display: flex; align-items: flex-start; padding: 5px 0; border-bottom: 1px dashed var(--line); width: 100%; }
.chk-row.done span { color: var(--txm); }
.dl-late td { background: var(--nc-bg); }

/* exercice */
.clock { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; border-left: 4px solid var(--exercise); }
.clk-t { display: flex; align-items: center; gap: 10px; }
.clk-t .big { font-size: 2rem; font-variant-numeric: tabular-nums; }
.stim-list .cat-h { margin-top: 18px; }
.stim { margin-bottom: 8px; border-left: 4px solid var(--line2); padding: 10px 14px; }
.stim.st-envoye { border-left-color: var(--ok); }
.stim.st-annule { opacity: .55; }
.stim.major { box-shadow: inset 0 0 0 1px var(--exercise); }
.stim-h { gap: 8px; }
.stim-c { white-space: pre-wrap; margin: 8px 0; font-size: .9rem; }
.stim.inbox.unread { border-left-color: var(--nc); }
.files { display: flex; gap: 10px; flex-wrap: wrap; }
.file-a { display: inline-flex; gap: 4px; align-items: center; font-size: .82rem; }
.msg-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.msg-list li { border: 1px solid var(--line); border-radius: var(--radius-sm); padding: 8px 10px; font-size: .86rem; }
.msg-list li.in { border-left: 3px solid var(--exercise); }
.grid-theme { border-bottom: 1px solid var(--line); padding: 8px 0; display: grid; gap: 6px; }
.prev { max-height: 300px; overflow: auto; }

/* impression */
body.print-view #top, body.print-view #side { display: none; }
body.print-view #app { display: block; }
.print-bar { display: flex; gap: 8px; margin-bottom: 14px; }
.print-doc { background: #fff; color: #000; padding: 24px; max-width: 1100px; margin: 0 auto; font-size: 11pt; }
.print-doc h1 { font-size: 18pt; margin: 6px 0 10px; } .print-doc h2 { font-size: 14pt; margin: 16px 0 8px; } .print-doc h3 { font-size: 12pt; margin: 12px 0 6px; }
.pd-meta, .pd-tbl { width: 100%; border-collapse: collapse; margin-bottom: 10px; }
.pd-meta th, .pd-meta td, .pd-tbl th, .pd-tbl td { border: 1px solid #555; padding: 4px 6px; vertical-align: top; text-align: left; font-size: 9.5pt; }
.pd-meta th, .pd-tbl th { background: #eee; }
.pd-tbl.blank td { height: 30px; }
.pd-tbl.form td.tall { height: 36px; width: 60%; }
.pd-tbl.form th { width: 34%; }
.pd-todo { color: #9a3412; font-style: italic; }
.pd-draft { border: 2px solid #9a3412; color: #7c2d12; background: #fff7ed; padding: 6px 8px; font-size: 9.5pt; }
.pd-tbl td.box { text-align: center; width: 60px; }
.pd-stim { border: 1px solid #555; padding: 10px; margin-bottom: 14px; page-break-inside: avoid; }
.pd-stim .ex-banner { background: #444; }
.pd-stim-c { white-space: pre-wrap; }
.pd-cover { text-align: left; }
@media print {
  @page { size: A4; margin: 12mm; }
  .no-print, .print-bar, .action-bar, #top, #side { display: none !important; }
  #app, #main { display: block !important; padding: 0 !important; margin: 0 !important; overflow: visible !important; }
  .print-doc { padding: 0; max-width: none; }
  .pd-page { page-break-before: always; }
  .pd-page:first-child { page-break-before: auto; }
  .pd-tbl tr { page-break-inside: avoid; }
  .ex-banner { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

.tbl a[href^="tel:"], .mean a { white-space: nowrap; }
.clock select.input, .clock .input-sm { width: auto; }

/* itération 2 : communication FACET, dérogations, reprise d'activité, envois d'alerte */
.facet { display: grid; gap: 4px; }
.facet-l { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; font-weight: 700; font-size: .8rem;
  background: var(--info-bg); color: var(--info-tx); border: 1px solid var(--info-line); margin-right: 4px; flex: none; }
.facet-v { display: flex; gap: 8px; align-items: flex-start; margin: 6px 0; }
.warn-list { list-style: none; padding: 0; margin: 8px 0; display: grid; gap: 4px; }
.warn-list li { display: flex; gap: 6px; align-items: flex-start; font-size: .86rem; padding: 4px 8px; border-radius: var(--radius-xs); }
.warn-list li svg { width: 16px; height: 16px; flex: none; margin-top: 2px; }
.warn-list .w-warn { background: var(--part-bg); color: var(--part-tx); border: 1px solid var(--part-line); }
.warn-list .w-info { background: var(--info-bg); color: var(--info-tx); }
.com-card .clamp { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; white-space: pre-line; margin: 4px 0; }
.wrap-row { flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.deliv { margin-top: 8px; }
.deliv summary { cursor: pointer; font-size: .86rem; }
.act-card.late { border-color: var(--nc-line); box-shadow: inset 4px 0 0 var(--nc); }
.act-card .card-head { flex-wrap: wrap; gap: 6px; }
.act-card h3 { margin: 0; font-size: 1rem; flex: 1 1 100%; }
.act-card select.input-sm { width: auto; flex: 0 0 auto; }
.act-card .row { flex-wrap: wrap; gap: 6px 14px; }
.txt-err { color: var(--nc-tx); font-weight: 600; }
