/* ============================================================================
 * WAS IN EINER LISTE STEHT — Aufstellung und Builder-Links (#781, 25.09.2026)
 * ----------------------------------------------------------------------------
 * Gezeichnet von js/ui/oldworld-lists.js (`_aufstellungHtml`, `_builderLinks`)
 * an zwei Orten: auf der Listenseite (Listenkarte und Kampfansage) und im
 * Terminfenster des Dashboards (Kampfansage, js/ui/kampfansage.js).
 *
 * ⚠️ WARUM EINE EIGENE DATEI UND NICHT army-lists.css AUFS DASHBOARD.
 * Dieselbe Abwägung wie bei css/list-submit.css (#649): army-lists.css trägt
 * die ganze Listenseite, das Dashboard braucht davon diese zwei Blöcke. Sie
 * standen bis zum 25.09.2026 dort; unverändert umgezogen.
 *
 * Seit #785 (26.09.2026) zeichnet js/ui/aos-lists.js dieselbe Aufstellung
 * für Age of Sigmar (`_aufstellungHtml`, gelesen mit TcListen.aosAufstellung):
 * Regimenter statt Kategorien, dazu „Reinforced“ und die Verbesserungen.
 *
 * Geladen von: oldworld-lists.html, aos-lists.html und dashboard.html.
 * Kein Library-Baustein (deshalb css/ und nicht css/components/) — geteiltes
 * Seiten-CSS wie list-submit.css.
 * ============================================================================ */

/* --- Old World Builder (21.08.2026) ---------------------------------------
   Zwei Ansichten derselben Liste, aus EINER gespeicherten Adresse abgeleitet.
   Sie stehen als Links nebeneinander, nicht als Knopfreihe — es sind Verweise
   nach draußen, und die sollen nicht wie Aktionen dieser Seite aussehen.
   Hit-Target trotzdem >= 36px (CLAUDE.md §3, Heuristik 5). */
.al-builder { display: flex; flex-wrap: wrap; gap: var(--tc-space-2, 8px); margin-top: 10px; }
.al-builder__link {
  display: inline-flex; align-items: center; gap: 5px;
  min-height: 36px; padding: 6px 12px;
  border: 1px solid rgba(var(--tc-accent-rgb), 0.45);
  border-radius: 999px;
  background: rgba(var(--tc-accent-rgb), 0.1);
  color: var(--tc-text-default);
  font-size: 0.79rem; text-decoration: none; white-space: nowrap;
  transition: background var(--tc-motion-fast), border-color var(--tc-motion-fast);
}
.al-builder__link:hover,
.al-builder__link:focus-visible {
  background: rgba(var(--tc-accent-rgb), 0.22);
  border-color: var(--tc-highlight);
}

/* ============================================================================
 * DIE AUFSTELLUNG — was in der Liste steht (21.08.2026)
 * ============================================================================
 * Gelesen wird der Text-Export mit TcListen.inhalt(). Die Tabelle ist bewusst
 * schmal: Sie steht im aufgeklappten Teil einer Karte, nicht auf einer eigenen
 * Seite. Zahlen rechtsbündig und gleich breit — man vergleicht sie.
 * ========================================================================== */
.al-auf {
  margin: 10px 0 12px;
  border: 1px solid var(--tc-border-default);
  border-radius: var(--tc-radius-md, 10px);
  background: var(--tc-bg-surface-2);
  overflow: hidden;
}
.al-auf__kopf {
  display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
  flex-wrap: wrap; padding: 9px 12px;
  border-bottom: 1px solid var(--tc-border-default);
  background: rgba(var(--tc-accent-rgb), 0.08);
}
.al-auf__titel { font-family: Cinzel, serif; font-size: 0.92rem; color: var(--tc-text-strong); }
.al-auf__format { font-size: 0.74rem; color: var(--tc-text-muted); }
/* Die Kopfangaben des AoS-Exports, wörtlich (#861): GHB, Drops, Lores,
   Battle Tactics. Bis dahin standen sie nur im Rohtext darunter — seit der
   Rohtext ins Bearbeitungsfenster gewandert ist, trägt sie die Aufstellung. */
.al-auf__angaben {
  margin: 0;
  padding: var(--tc-space-2) var(--tc-space-3);
  list-style: none;
  border-bottom: 1px solid var(--tc-border-default);
  font-size: var(--tc-text-xs);
  line-height: var(--tc-leading-snug);
  color: var(--tc-text-muted);
  overflow-wrap: anywhere;
}
.al-auf__angaben li + li { margin-top: calc(var(--tc-space-1) / 2); }
/* Spickzettel und Warscrolls zu einer AoS-Liste (#817): zwei Knöpfe unter dem
   Kopf, daneben der Hinweis auf die Einheiten-Knöpfe. Fehlen Regeldaten für
   die Armee, steht hier nur der Grund. */
.al-auf__aktionen {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--tc-space-2);
  padding: var(--tc-space-2) var(--tc-space-3);
  border-bottom: 1px solid var(--tc-border-default);
}
.al-auf__aktionen-text { font-size: var(--tc-text-xs); color: var(--tc-text-muted); }
/* Eine Einheit als Knopf auf ihre Warscroll (#817). Der Knopf füllt die ganze
   Namenszelle samt ihrem Innenabstand (negativer Rand), damit die Trefferfläche
   mindestens --tc-touch-min hoch ist, ohne die Tabelle anders aussehen zu lassen.
   Er enthält nur Inline-Elemente; __zusatz ist ein <span> mit display:block.
   Ein Knopf zentriert seinen Inhalt senkrecht — das Raster mit EINER Hülle
   (__einheit-inhalt) setzt den Namen nach oben, bündig mit den Punkten. */
.al-auf__einheit {
  appearance: none; -webkit-appearance: none;
  display: grid; align-content: start; box-sizing: border-box;
  width: calc(100% + 16px); min-height: var(--tc-touch-min);
  margin: -5px -8px; padding: 5px 8px;
  border: 0; border-radius: 0; background: transparent;
  font: inherit; color: inherit; text-align: left; line-height: inherit;
  cursor: pointer;
}
.al-auf__einheit .al-auf__einheit-name {
  text-decoration: underline dotted var(--tc-border-strong);
  text-underline-offset: 3px;
}
.al-auf__einheit:hover { background: rgba(var(--tc-accent-rgb), 0.08); }
.al-auf__einheit .al-auf__zusatz-teil {
  text-decoration: underline dotted var(--tc-border-strong);
  text-underline-offset: 2px;
}
.al-auf__einheit .al-auf__zusatz-teil:hover { color: var(--tc-text-default); text-decoration-color: currentColor; }
.al-auf__einheit:hover .al-auf__einheit-name { text-decoration-color: currentColor; }
.al-auf__einheit:focus-visible { outline: 2px solid var(--tc-accent); outline-offset: -2px; }
.al-auf__einheit[aria-busy="true"] { cursor: progress; opacity: 0.6; }
.al-auf__tab { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
.al-auf__tab td { padding: 5px 8px; vertical-align: top; }
.al-auf__kat td {
  padding-top: 10px; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--tc-text-muted);
}
.al-auf__zahl { width: 2.6em; text-align: right; color: var(--tc-text-muted); font-variant-numeric: tabular-nums; }
.al-auf__name { color: var(--tc-text-default); }
.al-auf__pkt {
  width: 4.5em; text-align: right; font-variant-numeric: tabular-nums;
  color: var(--tc-text-default);
}
.al-auf__mark { font-size: 0.82em; cursor: help; }
.al-auf__mark--leise { opacity: 0.5; }
/* Truppentyp-Kürzel aus dem Regelindex (RI, HCa, MCr …). Bewusst dezent und
   in Ziffernbreite: Es ist eine Fachangabe zum Nachschlagen, keine Aussage
   über die Einheit. Der `title` trägt das Profil. */
.al-auf__tt {
  display: inline-block;
  margin-left: 4px;
  padding: 0 4px;
  border-radius: var(--tc-radius-sm, 4px);
  background: rgba(var(--tc-accent-rgb), 0.14);
  color: var(--tc-text-muted);
  font-size: 0.68rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  cursor: help;
}
/* Age of Sigmar (#785): „Reinforced“ als kleine Marke hinter dem Namen, die
   Verbesserungen (Artefakt, Heroic Trait, Champion …) klein darunter — wie im
   Export, wörtlich und ohne Übersetzung. Sie stehen so, wie sie die App nennt. */
.al-auf__tag {
  display: inline-block;
  margin-left: 4px;
  padding: 0 5px;
  border: 1px solid rgba(var(--tc-accent-rgb), 0.35);
  border-radius: var(--tc-radius-sm, 4px);
  color: var(--tc-text-muted);
  font-size: 0.66rem;
  letter-spacing: 0.02em;
  vertical-align: 1px;
}
.al-auf__zusatz {
  display: block;
  margin-top: 1px;
  font-size: 0.74rem;
  line-height: 1.4;
  color: var(--tc-text-muted);
}
.al-auf__tab tfoot td {
  border-top: 1px solid var(--tc-border-default);
  padding-top: 8px; padding-bottom: 9px;
  color: var(--tc-text-muted); font-size: 0.76rem;
}
.al-auf__tab tfoot .al-auf__pkt { color: var(--tc-highlight); font-size: 0.88rem; }
.al-auf__hinweis {
  padding: 7px 12px; font-size: 0.76rem; line-height: 1.45;
  color: var(--tc-text-muted);
  border-top: 1px solid var(--tc-border-default);
}
.al-auf__hinweis--warn { color: var(--tc-attention); }
