/* ============================================================================
 * EINREICHEN-FENSTER DER ARMEELISTEN — eine Fassung (12.09.2026, #649)
 * ----------------------------------------------------------------------------
 * Das Fenster „Liste einreichen" (AosListManager.openSubmitModal) geht an zwei
 * Orten auf: auf den Listenseiten und auf dem Dashboard ueber den Spieltisch
 * (openGameTableListSubmit). Seine Regeln standen deshalb mehrfach — und die
 * Zaehlung war schlimmer als das Ticket dachte:
 *
 *   css/army-lists.css   Z. 374-412   der Hauptblock
 *   css/army-lists.css   Z. 463-474   `al-submit-locked` + `-missing` ZUM
 *                                     ZWEITEN MAL, in derselben Datei, mit
 *                                     anderen Werten (opacity .55 statt .62,
 *                                     `dashed !important`) — und wirkungslos,
 *                                     weil die spaetere Fassung gewinnt
 *   css/dashboard-events.css Z. 296-336  die Kopie fuers Dashboard, in Hex
 *
 * Drei Fassungen, zwei davon in derselben Datei. Genau daraus kam #618: Die
 * Dashboard-Kopie kannte die gesperrte Option nicht, sie stand dort mit voller
 * Deckkraft und Zeiger-Cursor da und tat beim Klick nichts.
 *
 * ⚠️ WARUM EINE EIGENE DATEI UND NICHT `army-lists.css` AUFS DASHBOARD.
 * Jene Datei ist 816 Zeilen fuer die Listenseiten; das Dashboard braucht davon
 * dieses eine Fenster. Sie dort einzubinden hiesse, 77 Klassenregeln fuer eine
 * Seite zu laden, die sie nie zeichnet — und `tools/reichweite.py` fuehrt
 * genau diese 77 als begruendete Ausnahme.
 *
 * ⚠️ UND ES IST KEINE LIBRARY-KOMPONENTE. Deshalb `css/` und nicht
 * `css/components/`: Dort stehen die `tc-*`-Bausteine, die in
 * `component-library.html` abgenommen sind (§3). Das hier ist geteiltes
 * Seiten-CSS, kein Baustein.
 *
 * Geladen von: aos-lists, oldworld-lists, aos, oldworld, aos-battle,
 * oldworld-battle, mordheim-hub (ueberall dort, wo army-lists.css liegt)
 * und dashboard.
 * ============================================================================ */

.al-submit-grid {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.al-submit-option {
  padding: 16px 20px;
  background: linear-gradient(135deg, rgba(0, 0, 0, 0.06) 0%, rgba(0, 0, 0, 0.15) 100%);
  border: 2px solid rgba(var(--tc-accent-rgb), 0.3);
  border-radius: 12px;
  cursor: pointer;
  transition: border-color var(--tc-motion-fast), background var(--tc-motion-fast);
}

/* ⚠️ `:where()` HAELT DIE WERTIGKEIT BEI (0,2,0) — aus der Dashboard-Fassung
   uebernommen, weil es der bessere Mechanismus ist. Die Listenseiten loesten
   dasselbe mit einer zweiten Regel `.al-submit-locked:hover`, die den Hover
   nachtraeglich zuruecknimmt; das ist eine Regel mehr und eine Reihenfolge,
   auf die man sich verlassen muss. Hier gewinnt `.current` (gruener Rand der
   eingereichten Liste) weiter gegen den Hover, weil beide bei (0,2,0) liegen
   und `.current` spaeter steht. */
.al-submit-option:where(:not(.al-submit-locked)):hover {
  border-color: var(--tc-highlight);
  background: rgba(var(--tc-accent-rgb), 0.05);
}

.al-submit-option.current {
  border-color: var(--tc-success);
  background: rgba(74, 222, 128, 0.05);
}

/* --- Die gesperrte Option: unvollstaendige Liste (#618) ------------------- */
.al-submit-option.al-submit-locked {
  opacity: 0.62;
  cursor: not-allowed;
  border-style: dashed;
}

.al-submit-missing {
  margin-top: 5px;
  font-size: 0.76rem;
  line-height: 1.35;
  color: var(--tc-attention);
}

/* --- Zeilen der Option --------------------------------------------------- */
.al-submit-name {
  font-family: 'Cinzel', Georgia, serif;
  font-size: 1rem;
  font-weight: 600;
  color: var(--tc-text-strong);
  margin-bottom: 4px;
}

.al-submit-meta {
  font-size: 0.82rem;
  color: var(--tc-text-muted);
  font-family: 'Lato', sans-serif;
}

.al-submit-current {
  font-size: 0.78rem;
  color: var(--tc-success);
  margin-top: 4px;
}

/* §9: Jede Bewegung braucht ihre Ausnahme. Hier sind es reine Ein- und
   Ausblendungen — der Endzustand ist das Ziel, also darf die Dauer
   kollabieren. */
@media (prefers-reduced-motion: reduce) {
  .al-submit-option { transition-duration: 0.01ms; }
}

/* --- Einleitung und Warnung (#781, 25.09.2026) ------------------------------
   Das Auswahlfenster ist seit #781 eins für Einreichen und Wechseln, auf der
   Listenseite und im Terminfenster (js/ui/kampfansage.js). Oben steht ein
   Satz, was passiert — oder, beim Wechsel nach dem Aufdecken, die Warnung
   (tc-callout, blocks.css). Beides ohne die Browser-Ränder eines <p>. */
.al-submit-intro {
  margin: 0 0 var(--tc-space-3, 12px);
  color: var(--tc-text-muted);
  font-size: var(--tc-text-sm);
  line-height: 1.5;
}
.al-submit-grid + .al-submit-intro {
  margin: var(--tc-space-3, 12px) 0 0;
  text-align: center;
}
.al-submit-intro a { color: var(--tc-highlight); }
.al-form > .tc-callout {
  margin: 0 0 var(--tc-space-3, 12px);
}

/* --- Was passt, was nicht (#784, 26.09.2026) --------------------------------
   Das Fenster sortiert die Listen in drei Gruppen: passt zur Anmeldung und
   zur Liste des Gegners · passt nicht (einreichbar, mit Grund) · unvollständig
   (gesperrt). Die Regel steht in js/ui/kampfansage.js (massstab, gruende);
   aufgedeckt wird weiter nur nach TcListen.passung().

   Eine Liste, die nicht passt, bleibt ein vollwertiger Knopf — Tim spielt
   manchmal 2000, obwohl die Anmeldung noch 1500 sagt, und fragt danach beim
   Einreichen, welche Zahl gilt (#633). Sie tritt nur leiser auf: schwächerer
   Rand, und der Grund steht als eigene Zeile darunter, nie nur als Farbe. */
.al-submit-gruppe {
  margin: var(--tc-space-2, 8px) 0 0;
  font-size: var(--tc-text-sm);
  font-weight: 700;
  line-height: 1.4;
  color: var(--tc-text-default);
}
/* Widersprechen sich Anmeldung und Gegnerliste, sagt ein Satz darunter,
   worin — sonst liest sich „Keine passt" wie ein Fehler der eigenen Listen. */
.al-submit-gruppe__satz {
  display: block;
  margin-top: 2px;
  font-weight: 400;
  color: var(--tc-text-muted);
}
/* Der Maßstab bricht nicht mitten in „2.000 Punkte" um. */
.al-submit-gruppe__wert {
  color: var(--tc-highlight);
  white-space: nowrap;
}
.al-submit-grid > .al-submit-gruppe:first-child { margin-top: 0; }

/* ⚠️ `:where()` HÄLT DIE WERTIGKEIT BEI (0,1,0): Sie schlägt die Grundregel
   (später geladen), verliert aber gegen Hover und `.current` (beide 0,2,0) —
   eine eingereichte Liste behält ihren grünen Rand, auch wenn sie nicht passt. */
.al-submit-option:where(.al-submit-anders) {
  border-color: rgba(var(--tc-accent-rgb), 0.15);
}

.al-submit-grund {
  margin-top: 5px;
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--tc-warning);
}
