/* ============================================================
   FOURMILIÈRE — terrarium nocturne bioluminescent
   LEGACY : ancien styles.css, déplacé tel quel (bloc :root retiré →
   styles/01-tokens.css). En lecture-décroissante : on n'y ajoute rien,
   on n'en retire que ce qui a été migré. Cf. sim-ui-design-system.md §1.
   ============================================================ */

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body {
  height: 100%;
  overflow: hidden;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-m);
  font-size: 12px;
  -webkit-font-smoothing: antialiased;
}

#canvas {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  cursor: crosshair;
}

/* ---------- HUD scaffolding ---------- */

#hud { position: fixed; inset: 0; pointer-events: none; z-index: 10; zoom: var(--ui-scale); }
#hud > *:not(#announce) { pointer-events: auto; }
#topbar { min-width: 0; }

/* mode zen : l'UI s'efface quand la caméra reste immobile (les toasts restent) */
#hud > *:not(#announce), #announce > *:not(#toasts) { transition: opacity 0.22s ease; }
#hud.zen > *:not(#announce), #hud.zen #announce > *:not(#toasts) { opacity: 0; pointer-events: none; transition: opacity 1.1s ease; }

.hidden { display: none !important; }

button {
  font-family: var(--font-m);
  color: var(--ink);
  background: none;
  border: none;
  cursor: pointer;
}
button:focus-visible { outline: 1px solid var(--accent); outline-offset: 2px; }

/* ---------- Topbar ---------- */

#topbar {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 0 13px;
  animation: drop-in 0.6s cubic-bezier(0.2, 0.9, 0.25, 1) backwards;
}

#brand {
  font-family: var(--font-d);
  font-weight: 800;
  font-size: 17px;
  letter-spacing: 0.12em;
  color: var(--ink);
  white-space: nowrap;
}
#brand::first-letter { color: var(--accent); }
#brand span {
  display: block;
  font-family: var(--font-m);
  font-weight: 400;
  font-size: 8.5px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-top: 1px;
}

.stat { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.25; }
.stat label {
  font-size: 8px; letter-spacing: 0.25em; text-transform: uppercase;
  color: var(--ink-faint);
}
.stat span { font-size: 13px; font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }

.icon-btn {
  width: 32px; height: 32px;
  display: grid; place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 9px;
  color: var(--accent);
  background: var(--accent-soft);
  transition: transform 0.12s, box-shadow 0.2s;
}
.icon-btn:hover { transform: translateY(-1px); box-shadow: 0 0 14px rgba(168, 232, 76, 0.25); }

.txt-btn {
  padding: 6px 11px;
  font-size: 11px;
  letter-spacing: 0.06em;
  border: 1px solid var(--line);
  border-radius: 9px;
  color: var(--ink-dim);
  transition: all 0.15s;
}
.txt-btn:hover { color: var(--ink); border-color: var(--line-strong); background: rgba(190, 255, 150, 0.05); }
.txt-btn.warn:hover { color: var(--danger); border-color: rgba(255, 93, 73, 0.4); background: rgba(255, 93, 73, 0.07); }

/* ---------- Toolbar (éditeur) ---------- */

.tool-btn { display: flex; }

.field { margin: 9px 0 2px; }
.field label {
  display: flex; justify-content: space-between;
  font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink-faint);
  margin-bottom: 5px;
}
.field label span { color: var(--accent); }

input[type="range"] {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 16px;
  background: transparent;
  cursor: pointer;
}
input[type="range"]::-webkit-slider-runnable-track {
  height: 3px; border-radius: 2px;
  background: linear-gradient(90deg, rgba(168, 232, 76, 0.5), rgba(168, 232, 76, 0.12));
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 11px; height: 11px;
  margin-top: -4px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid #1a240e;
  box-shadow: 0 0 8px rgba(168, 232, 76, 0.5);
}
input[type="range"]::-moz-range-track {
  height: 3px; border-radius: 2px;
  background: rgba(168, 232, 76, 0.25);
}
input[type="range"]::-moz-range-thumb {
  width: 9px; height: 9px; border: 2px solid #1a240e;
  border-radius: 50%; background: var(--accent);
}

#tool-params { border-top: 1px dashed var(--line); margin-top: 10px; padding-top: 4px; }
#tool-params .hint-text { font-size: 10px; color: var(--ink-faint); line-height: 1.5; padding: 6px 0; }
#tool-params .nest-preview { display: flex; align-items: center; gap: 7px; padding: 7px 0 3px; font-size: 10px; color: var(--ink-dim); }
#tool-params .nest-preview i {
  width: 12px; height: 12px; border-radius: 50%;
  box-shadow: 0 0 9px currentColor;
}

/* ---------- Colonies ---------- */

#colonies {
  pointer-events: auto;
  overflow-y: auto;
  overflow-x: hidden;
  display: flex; flex-direction: column; gap: var(--gap);
  padding-bottom: 4px;
  scrollbar-width: thin;
  scrollbar-color: var(--ink-faint) transparent;
}
#colonies::-webkit-scrollbar { width: 4px; }
#colonies::-webkit-scrollbar-thumb { background: var(--ink-faint); border-radius: 2px; }

.empire-group {
  position: relative;
  border-left: 3px solid var(--c, #a8e84c);
  padding: 0 0 2px 6px;
  margin-bottom: 6px;
}
.empire-group::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--c, #a8e84c);
  opacity: 0.04;
  pointer-events: none;
}
.empire-hdr {
  padding: 4px 0 3px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c, #a8e84c);
  opacity: 0.8;
}
.cc-dot {
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--c);
  box-shadow: 0 0 10px var(--c);
  align-self: center;
  flex: none;
}

.cc-roles { display: flex; gap: 9px; font-size: 10px; color: var(--ink-dim); margin-bottom: 5px; }
.cc-roles b { color: var(--ink); font-weight: 500; }

.gauge { display: flex; align-items: center; gap: 7px; margin: 3px 0; }
.gauge label {
  width: 62px; flex: none;
  font-size: 8.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-faint);
}
.gauge .bar {
  flex: 1; height: 4px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 2px;
  overflow: hidden;
}
.gauge .bar i {
  display: block; height: 100%;
  width: 0%;
  background: var(--c);
  border-radius: 2px;
  box-shadow: 0 0 6px var(--c);
  transition: width 0.4s ease;
}
.gauge .g-val { width: 38px; flex: none; text-align: right; font-size: 10px; color: var(--ink-dim); font-variant-numeric: tabular-nums; }

.cc-spark { width: 100%; height: 30px; margin: 6px 0 2px; display: block; opacity: 0.95; }

.cc-counters {
  display: flex; gap: 9px;
  font-size: 9px; color: var(--ink-faint);
  margin: 2px 0 4px;
  font-variant-numeric: tabular-nums;
}
.cc-counters b { color: var(--ink-dim); font-weight: 500; }

.cc-adv summary {
  cursor: pointer;
  list-style: none;
  font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ink-faint);
  padding: 5px 0 2px;
  border-top: 1px dashed var(--line);
  transition: color 0.15s;
}
.cc-adv summary:hover { color: var(--accent); }
.cc-adv summary::before { content: "▸ "; }
.cc-adv[open] summary::before { content: "▾ "; }

.cc-adv .field { margin: 6px 0 0; }
.cc-adv .field label { margin-bottom: 2px; }

/* bloc « Détails de la colonie » (réutilise le style summary de cc-adv) */
.cc-det summary {
  cursor: pointer; list-style: none;
  font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--ink-faint);
  padding: 5px 0 2px;
  border-top: 1px dashed var(--line);
  transition: color 0.15s;
}
.cc-det summary:hover { color: var(--accent); }
.cc-det summary::before { content: "▸ "; }
.cc-det[open] summary::before { content: "▾ "; }
.cd-rows { display: grid; grid-template-columns: auto 1fr; gap: 1px 9px; margin: 4px 0 1px; font-size: 9.5px; }
.cd-rows dt { color: var(--ink-faint); white-space: nowrap; }
.cd-rows dd { text-align: right; color: var(--ink); font-variant-numeric: tabular-nums; }
.cd-species { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 5px; padding-top: 5px; border-top: 1px dashed var(--line); }
.cd-species span { font-size: 8.5px; color: var(--ink); padding: 1px 6px; border: 1px solid var(--line); border-radius: 10px; }
.cd-species em { color: var(--ink-faint); font-style: normal; }

.cc-rel { margin-top: 9px; }
.cc-rel > label {
  display: block;
  font-size: 8.5px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--ink-faint); margin-bottom: 5px;
}
.rel-row { display: flex; flex-wrap: wrap; gap: 4px; }
.rel-chip {
  display: flex; align-items: center; gap: 5px;
  padding: 3px 8px;
  font-size: 10px;
  border: 1px solid var(--line);
  border-radius: 20px;
  color: var(--ink-dim);
  transition: all 0.15s;
}
.rel-chip i { width: 7px; height: 7px; border-radius: 50%; background: var(--rc); box-shadow: 0 0 6px var(--rc); }
.rel-chip.hostile { border-color: rgba(255, 93, 73, 0.35); }
.rel-chip.allied { border-color: rgba(168, 232, 76, 0.4); color: var(--accent); }
.rel-chip:hover { transform: translateY(-1px); }

/* ---------- Layers ----------
   Le bloc #layers/.chip legacy est purgé (R6) : la zone Carte (R3d)
   possède ses lignes .fm-layer ; reste l'état .on des txt-btn (#btn-zen). */

.txt-btn.on { color: var(--accent); border-color: rgba(168, 232, 76, 0.4); background: var(--accent-soft); }

/* ---------- Écosystème (tableau de bord global) ---------- */

#ecopanel {
  display: flex; flex-direction: column;
}
.eco-head { display: flex; align-items: center; gap: 7px; padding-right: 8px; margin-bottom: 6px; }
.eco-head h3 { margin: 0; }
.eco-head .in-close { margin-left: auto; }
#eco-body {
  overflow-y: auto; overflow-x: hidden;
  padding-right: 8px;
  scrollbar-width: thin;
  scrollbar-color: var(--ink-faint) transparent;
}
#eco-body::-webkit-scrollbar { width: 4px; }
#eco-body::-webkit-scrollbar-thumb { background: var(--ink-faint); border-radius: 2px; }

.eco-sec {
  display: flex; align-items: baseline; justify-content: space-between;
  font-family: var(--font-d); font-weight: 800;
  font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--accent);
  margin: 8px 0 3px;
  padding-bottom: 2px;
  border-bottom: 1px solid var(--line);
}
.eco-sec:first-child { margin-top: 0; }
.eco-sec .eco-h { font-family: var(--font-m); font-weight: 400; font-size: 9px; letter-spacing: 0.04em; text-transform: none; color: var(--ink-faint); }

.eco-row {
  display: flex; align-items: baseline; gap: 6px;
  font-size: 10px; padding: 1px 0;
}
.eco-row > span { color: var(--ink-dim); }
.eco-row > b { margin-left: auto; color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.eco-row > em { color: var(--ink-faint); font-style: normal; font-size: 9px; }

.eco-brow {
  display: flex; align-items: center; gap: 6px;
  font-size: 9.5px; padding: 1px 0;
}
.eco-brow > span {
  flex: 0 0 78px; min-width: 0;
  display: flex; align-items: center; gap: 5px;
  color: var(--ink-dim);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.eco-brow.dead > span { color: var(--ink-faint); text-decoration: line-through; }
.eco-brow .eco-dot { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.eco-bar {
  flex: 1 1 auto; min-width: 18px; height: 4px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 2px; overflow: hidden;
}
.eco-bar i { display: block; height: 100%; width: 0; background: var(--accent); border-radius: 2px; box-shadow: 0 0 5px currentColor; transition: width 0.4s ease; }
.eco-brow > b { flex: 0 0 auto; min-width: 22px; text-align: right; color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.eco-brow > b em { color: var(--ink-faint); font-style: normal; font-size: 8.5px; }
.eco-empty { font-size: 9px; color: var(--ink-faint); padding: 1px 0 3px; }
.eco-subt { font-size: 8px; letter-spacing: 0.13em; text-transform: uppercase; color: var(--ink-faint); margin: 4px 0 1px; }

/* ---------- panneau Stats & équilibrage ---------- */
#statspanel {
  display: flex; flex-direction: column;
}
.sp-head { display: flex; align-items: center; gap: 7px; padding-right: 8px; margin-bottom: 5px; }
.sp-head h3 { margin: 0; }
.sp-head #stats-reset { margin-left: auto; padding: 2px 7px; font-size: 9.5px; }
.sp-note {
  font-size: 9px; line-height: 1.4; color: var(--ink-faint);
  padding: 5px 8px 6px 0; margin-bottom: 4px;
  border-bottom: 1px solid var(--line);
}
.sp-note b { color: var(--ink-dim); font-weight: 600; }
#stats-body {
  overflow-y: auto; overflow-x: hidden;
  padding-right: 8px;
  scrollbar-width: thin; scrollbar-color: var(--ink-faint) transparent;
}
#stats-body::-webkit-scrollbar { width: 4px; }
#stats-body::-webkit-scrollbar-thumb { background: var(--ink-faint); border-radius: 2px; }
.sp-zone {
  display: flex; align-items: baseline; gap: 6px;
  font-family: var(--font-d); font-weight: 800;
  font-size: 9px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--accent);
  margin: 9px 0 4px; padding-bottom: 2px;
  border-bottom: 1px solid var(--line);
}
.sp-zone em { font-family: var(--font-m); font-weight: 400; font-size: 8.5px; letter-spacing: 0.03em; text-transform: none; color: var(--ink-faint); font-style: normal; }

/* cartes du tableau comparatif */
.st-card { margin-bottom: 7px; }
.st-card-h { display: flex; align-items: center; gap: 6px; font-size: 10px; margin-bottom: 2px; }
.st-card-h .st-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.st-card-h b { color: var(--ink); font-weight: 700; }
.st-card-h em { margin-left: auto; font-style: normal; font-size: 8.5px; color: var(--ink-faint); }

/* tables (comparatif + édition) */
.st-tbl { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.st-tbl th {
  font-family: var(--font-m); font-weight: 500; font-size: 8px;
  letter-spacing: 0.05em; text-transform: uppercase; color: var(--ink-faint);
  text-align: right; padding: 1px 3px; border-bottom: 1px solid var(--line);
}
.st-tbl th:first-child { text-align: left; }
.st-tbl td { font-size: 9.5px; color: var(--ink-dim); text-align: right; padding: 1px 3px; }
.st-tbl td.st-caste { text-align: left; color: var(--ink-dim); white-space: nowrap; }
.st-tbl tbody tr:nth-child(even) { background: rgba(255, 255, 255, 0.018); }
.st-tbl td.mod { color: var(--accent); font-weight: 700; }

/* champs numériques éditables */
.st-edit td { padding: 2px 2px; }
.st-in {
  width: 100%; min-width: 40px; box-sizing: border-box;
  font-family: var(--font-m); font-size: 9.5px; text-align: right;
  color: var(--ink); background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--line); border-radius: 3px; padding: 2px 4px;
  -moz-appearance: textfield;
}
.st-in:focus { outline: none; border-color: var(--accent); background: var(--accent-soft); }
.st-in.mod { border-color: rgba(168, 232, 76, 0.55); color: var(--accent); font-weight: 600; }

.sp-pick { margin: 5px 0 6px; }
.sp-pick button { flex: 1 1 30%; }
.sp-apply { display: flex; align-items: center; gap: 6px; font-size: 9.5px; color: var(--ink-dim); margin: 7px 0 2px; cursor: pointer; }
.sp-apply b { color: var(--ink); font-weight: 600; }
.sp-base { margin-top: 8px; }
.sp-base > summary { font-size: 9.5px; color: var(--ink-dim); cursor: pointer; padding: 3px 0; }
.sp-base > summary em { font-style: normal; color: var(--ink-faint); font-size: 8.5px; }

/* ---------- détail du dépérissement (inspecteur plante) ---------- */
.in-wither:not(:empty) {
  margin-top: 6px; padding-top: 5px;
  border-top: 1px dashed var(--line);
}
.iw-rows { display: grid; gap: 2px; }
.iw-rows > div { display: flex; align-items: baseline; gap: 8px; font-size: 9.5px; }
.iw-rows > div > span { color: var(--ink-faint); }
.iw-rows > div > b { margin-left: auto; font-weight: 600; font-variant-numeric: tabular-nums; }
.iw-eta { margin-top: 5px; font-size: 9.5px; letter-spacing: 0.04em; }

/* ---------- profil d'espèce (inspecteur faune) ---------- */
.in-fap:not(:empty) { margin-top: 6px; padding-top: 5px; border-top: 1px dashed var(--line); }
.fap-title { font-size: 8.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 5px; }
.fap-chips { display: flex; flex-wrap: wrap; gap: 4px; }
.fap-chips span {
  font-size: 9px; color: var(--ink);
  padding: 1px 6px;
  border: 1px solid var(--line); border-radius: 10px;
  font-variant-numeric: tabular-nums;
}
.fap-chips em { color: var(--ink-faint); font-style: normal; }

/* ---------- Inspecteur ---------- */

.in-head { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.in-head .cc-dot { width: 8px; height: 8px; }
.in-title { font-family: var(--font-d); font-weight: 800; font-size: 12px; letter-spacing: 0.05em; }
.in-sub { font-size: 9.5px; color: var(--ink-faint); margin-left: 2px; }
.in-close { margin-left: auto; color: var(--ink-faint); font-size: 14px; padding: 2px 5px; }
.in-close:hover { color: var(--danger); }

.in-rows { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; font-size: 10px; }
.in-rows dt { color: var(--ink-faint); }
.in-rows dd { text-align: right; color: var(--ink); font-variant-numeric: tabular-nums; }

.in-hp { height: 4px; background: rgba(255,255,255,0.07); border-radius: 2px; margin: 5px 0 7px; overflow: hidden; }
.in-hp i { display: block; height: 100%; background: linear-gradient(90deg, var(--danger), var(--accent)); border-radius: 2px; transition: width 0.25s; }

.in-actions { display: flex; gap: 6px; margin-top: 8px; align-items: center; }
.in-actions label { display: flex; align-items: center; gap: 5px; font-size: 10px; color: var(--ink-dim); cursor: pointer; }
.in-actions input[type="checkbox"] { accent-color: var(--accent); }
.in-actions .txt-btn { margin-left: auto; padding: 4px 9px; font-size: 10px; }

/* ---------- Toasts ---------- */

#toasts {
  display: flex; flex-direction: column-reverse; align-items: flex-start; gap: 6px;
  pointer-events: none;
}
.toast {
  background: var(--panel-2);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid var(--line);
  border-left: 3px solid var(--tc, var(--accent));
  border-radius: 9px;
  padding: 7px 14px;
  font-size: 11px;
  color: var(--ink);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.45);
  animation: toast-in 0.35s cubic-bezier(0.2, 0.9, 0.25, 1) both;
  white-space: nowrap;
}
.toast.out { animation: toast-out 0.4s ease both; }

/* ---------- Animations ---------- */

@keyframes drop-in { from { opacity: 0; transform: translateY(-14px); } to { opacity: 1; transform: none; } }
@keyframes rise-plain { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes toast-in { from { opacity: 0; transform: translateY(-10px) scale(0.96); } to { opacity: 1; transform: none; } }
@keyframes toast-out { to { opacity: 0; transform: translateY(-8px); } }

/* ---------- vitesse (slider) ---------- */

/* ---------- pickers (types / espèces) ---------- */
.param-pick { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0 2px; }
.param-pick button {
  flex: 1 1 44%;
  display: flex; align-items: center; gap: 6px;
  padding: 5px 7px;
  font-size: 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink-dim);
  transition: all 0.14s;
}
.param-pick button i { width: 8px; height: 8px; border-radius: 2px; background: var(--pc, var(--accent)); flex: none; box-shadow: 0 0 6px var(--pc, var(--accent)); }
.param-pick button:hover { color: var(--ink); border-color: var(--line-strong); }
.param-pick button.sel { color: var(--ink); border-color: rgba(168,232,76,0.45); background: var(--accent-soft); }
.param-pick.species button { flex-basis: 100%; flex-direction: column; align-items: flex-start; gap: 1px; }
.param-pick.species .ps-latin { font-size: 8.5px; color: var(--ink-faint); font-style: italic; }

/* ---------- timeline (rewind) ----------
   Le bloc #timebar legacy est purgé (R6) : la chronique R3c possède sa tête. */

/* ---------- vue du nid (coupe) ---------- */
#nestpanel {
  animation: rise-plain 0.3s backwards;
}
.np-head .txt-btn { margin-left: auto; padding: 3px 7px; font-size: 11px; }
.np-head .in-close { margin-left: 0; }

/* ---------- modale nouvelle carte ----------
   #newmap est un <dialog class="fm-sheet"> (R5) : le patron div .modal/.modal-card
   est purgé (R6). Les classes de contenu (modal-lbl/check/actions, pick-row) vivent. */
.modal-lbl { display: block; font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-faint); margin: 14px 0 7px; }
.pick-row { display: flex; flex-wrap: wrap; gap: 6px; }
.pick-row button {
  flex: 1 1 0; min-width: max-content;
  padding: 9px 8px; font-size: 11px;
  border: 1px solid var(--line); border-radius: 9px;
  color: var(--ink-dim); transition: all 0.15s; white-space: nowrap;
}
.pick-row button:hover { color: var(--ink); border-color: var(--line-strong); }
.pick-row button.sel { color: var(--accent); border-color: rgba(168,232,76,0.5); background: var(--accent-soft); }
.modal-check {
  display: flex; align-items: center; gap: 8px;
  margin: 18px 0 2px;
  font-size: 11px; color: var(--ink-dim); cursor: pointer;
}
.modal-check input[type="checkbox"] { accent-color: var(--accent); width: 14px; height: 14px; cursor: pointer; }
.modal-check span { color: var(--ink-faint); font-size: 10px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }
.modal-actions .go { color: var(--accent); border-color: rgba(168,232,76,0.5); background: var(--accent-soft); }
.modal-actions .go:hover { box-shadow: 0 0 14px rgba(168,232,76,0.25); }

/* ---------- bannière vol nuptial ---------- */
#nuptial-banner {
  padding: 7px 16px;
  font-size: 12px; letter-spacing: 0.02em;
  color: #2a1c06;
  background: linear-gradient(100deg, #ffd9a0, #ffc46a);
  border: 1px solid rgba(255,220,150,0.8);
  border-radius: 20px;
  box-shadow: 0 6px 22px rgba(255,190,90,0.3), inset 0 1px 0 rgba(255,255,255,0.4);
  pointer-events: none;
  text-align: center;
  animation: nuptial-pulse 2.4s ease-in-out infinite;
}
#nuptial-banner b { font-weight: 700; }
@keyframes nuptial-pulse {
  0%, 100% { box-shadow: 0 6px 22px rgba(255,190,90,0.25), inset 0 1px 0 rgba(255,255,255,0.4); }
  50% { box-shadow: 0 6px 30px rgba(255,205,110,0.55), inset 0 1px 0 rgba(255,255,255,0.5); }
}

/* ---------- mini-carte ---------- */
#minimap {
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  background: #0a0d07;
  box-shadow: 0 8px 24px rgba(0,0,0,0.5);
  cursor: crosshair;
  image-rendering: pixelated;
  animation: rise-plain 0.5s 0.25s backwards;
}
