/* L'amorçage : panneau de verre, journal, schéma de pile. */
#amorcage {
  position: fixed; inset: var(--haut) 0 0 0; z-index: 900;
  display: grid; place-items: center; padding: 16px;
  transition: opacity var(--am-duree, 250ms) ease;
}
#amorcage.am-replie, #amorcage.am-fondu { opacity: 0; pointer-events: none; }
#amorcage.am-replie .am-panneau { transition: none; }

.am-panneau {
  width: min(760px, 100%);
  display: grid; grid-template-areas: "titre" "corps" "pied";
  background: linear-gradient(180deg, rgba(20, 24, 66, .9), rgba(15, 18, 51, .92));
  -webkit-backdrop-filter: blur(10px) saturate(140%); backdrop-filter: blur(10px) saturate(140%);
  border: 1px solid var(--ligne); border-radius: 12px; box-shadow: var(--ombre), 0 0 0 1px rgba(255, 209, 102, .06), 0 0 80px rgba(185, 139, 255, .18);
  color: var(--texte); overflow: hidden;
}
.am-titre {
  grid-area: titre; display: flex; align-items: center; gap: 12px; padding: 10px 14px;
  font: 500 12px var(--police-mono); color: var(--terminal-2); letter-spacing: .04em;
  border-bottom: 1px solid var(--ligne); background: rgba(35, 42, 94, .55);
}
.am-feux { display: inline-flex; gap: 6px; }
.am-feux i { width: 10px; height: 10px; border-radius: 50%; background: #FF8A76; }
.am-feux i:nth-child(2) { background: #FFD166; }
.am-feux i:nth-child(3) { background: #6FCF8E; }

.am-corps { grid-area: corps; display: grid; grid-template-columns: 1fr 168px; gap: 18px; padding: 16px 18px 8px; }
.am-journal {
  order: 1; height: 356px; overflow: hidden;
  font: 500 13px/1.62 var(--police-mono); color: var(--texte);
}
.am-l { margin: 0; white-space: pre-wrap; word-break: break-word; min-height: 1.62em; }
.am-l.titre { font: 800 12px/1.62 var(--police-titre); font-stretch: 108%; letter-spacing: .05em; color: var(--or); }
.am-l.presentation { color: var(--data); margin-top: 6px; }
.am-l.invite { color: var(--texte); }
.am-b.ok { color: var(--ok); }
.am-b.sys, .am-l .sys { color: var(--terminal-2); }
.am-b.ko, .am-l .ko { color: var(--anomalie-texte); }
.am-b.attente { color: #FFB86B; }
.am-l.frappe::after, .am-l.curseur::after { content: "▌"; color: var(--or); margin-left: 2px; animation: am-clignote 1s steps(1) infinite; }
@keyframes am-clignote { 50% { opacity: 0; } }

.am-pile { order: 2; display: flex; flex-direction: column; gap: 6px; justify-content: center; }
.am-couche {
  display: flex; align-items: center; gap: 9px; height: 42px; padding: 0 12px; border-radius: 8px;
  font: 600 11px var(--police-mono); letter-spacing: .12em; text-transform: uppercase;
  color: #7C84BC; background: rgba(35, 42, 94, .45); border: 1px solid rgba(160, 170, 255, .16);
  transition: color .3s, background-color .3s, border-color .3s, box-shadow .3s;
}
.am-couche svg { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.am-couche.allumee {
  color: var(--texte); border-color: var(--teinte);
  background: linear-gradient(90deg, color-mix(in srgb, var(--teinte) 34%, transparent), rgba(35, 42, 94, .5));
  box-shadow: 0 0 22px color-mix(in srgb, var(--teinte) 35%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--teinte) 25%, transparent);
}
.am-couche.allumee svg { color: var(--teinte); }

.am-pied {
  grid-area: pied; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 14px 14px 18px; border-top: 1px solid rgba(160, 170, 255, .14);
}
.am-aide { font: 500 11px var(--police-mono); color: var(--terminal-2); letter-spacing: .04em; }
#am-passer { min-height: 40px; padding: 0 18px; border-color: var(--or); }
.am-attente #am-passer { opacity: .7; }

.am-echec { padding: 28px 24px; grid-column: 1 / -1; grid-row: 1 / -1; }
.am-echec p { margin: 0 0 14px; font-size: 15px; }
.am-liens { display: flex; gap: 10px; flex-wrap: wrap; }

@media (max-width: 900px) {
  .am-corps { grid-template-columns: 1fr; gap: 12px; padding: 12px 14px 6px; }
  .am-pile { order: 0; flex-direction: row; gap: 5px; }
  .am-couche { flex: 1; height: 36px; padding: 0; justify-content: center; }
  .am-couche span { display: none; }
  .am-journal { height: min(52vh, 380px); font-size: 11.5px; }
  .am-l.titre { font-size: 11px; letter-spacing: .1em; }
  .am-aide { display: none; }
  .am-pied { justify-content: flex-end; padding: 8px 12px 12px; }
}
@media (max-width: 480px) {
  #amorcage { padding: 12px; place-items: start center; padding-top: 18px; }
  .am-journal { font-size: 11px; height: min(56vh, 420px); }
}
