/* ===== fn-markers — shared security marker control =====
   Single source of truth for the favorite / pin / note marker icons. Used by the watchlist
   table and any external module (e.g. market-ticker) so the markers always render identically.
   Ported 1:1 from the original .wl-marker rules in watchlists.css.

   IMPORTANT: the icon size targets the generated `.lucide` <svg>, NOT the `<i>` element —
   lucide.createIcons() replaces <i data-lucide> with <svg class="lucide …">, so an `i` selector
   would be dropped and the icon would fall back to lucide's 24px default. */
.fn-markers { display: inline-flex; gap: 4px; }
.fn-marker {
    width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center;
    background: transparent; border: var(--fn-border-width) solid transparent; border-radius: 6px;
    color: var(--fn-text-tertiary); cursor: pointer; transition: color .14s, border-color .14s;
}
.fn-marker:hover { color: var(--fn-text); border-color: var(--fn-border); }
.fn-marker .lucide { width: 14px; height: 14px; }
/* Die Watchliste setzt jedes Lucide-Zeichen ihrer Seite auf 18px (.wl-page .lucide, watchlists.css) - gleiche
   Spezifitaet, spaeter geladen, also verloren die Zeilen-Marker ihre 14px. Seit PR 2496 zeichnet FnRowAction
   (Tiefe Trendanalyse, Kursversorgung, Universum) in derselben Zeile 14px: zwei Groessen nebeneinander.
   Abgenommen sind 14px fuer ALLE Marker (Design-Vorgabe §4b, VORSCHAU-Watchlist-Universum-Marker-Zeile.html). */
.wl-page .fn-marker .lucide { width: 14px; height: 14px; }
/* Dasselbe fuer die fertigen Sprite-SVGs von FnIcon (Klasse fn-icon, NICHT lucide - z. B. Radar „Universum").
   Live gemessen am 25.09.2026 stand das Radar 12 x 14 neben 14 x 14: Die Hoehe kam an, die Breite SCHRUMPFTE im
   Flex-Knopf (Lucide-Zeichen der Seite tragen `flex:0 0 auto` aus .wl-page .lucide, das Sprite nicht). Wirksam
   ist `flex:none`; Breite und Hoehe stehen dabei, damit die Regel nicht von einer bereichsbezogenen abhaengt. */
.fn-marker svg.fn-icon { width: 14px; height: 14px; flex: none; }
/* Sprite-Zeichen (z. B. Radar) folgen der Marker-Farbe. Das Presentation-Attribut `stroke="currentColor"`
   am SVG greift nur, wenn die CSS-Kette ihm nicht zuvorkommt; diese Regel setzt es fest (Niko 01.10.2026:
   das Universum-Zeichen wechselte nicht zwischen aktiv/inaktiv). */
.fn-marker .fn-icon { stroke: currentColor; }
.fn-marker.on-fav { color: var(--fn-cat-gold); }
.fn-marker.on-note { color: var(--fn-cat-purple); }
.fn-marker.on-desk { color: var(--fn-primary); }
.fn-marker.on-signal { color: var(--fn-primary); }
.fn-marker.on-opp { color: var(--fn-success); }
.fn-marker.on-sim { color: var(--fn-primary); }
/* Pinnwand-Pinnadel (Niko 01.10.2026): EIN Zeichen (Lucide `pin`), Zustand NUR ueber Farbe -
   inaktiv `--fn-text-tertiary` (Basisregel oben), aktiv rot. Ersetzt das Emoji 📌 mit Deckkraft. */
.fn-marker.on-pin { color: var(--fn-danger); }
/* Watchlist-Pinnadel: dieselbe Regel, der Zustand sitzt am `.wl-pin`-Traeger im Knopf (der Knopf
   selbst bleibt unveraendert). Inaktiv farblos, angepinnt rot (Niko 01.10.2026). */
.wl-pin { display: inline-flex; color: var(--fn-text-tertiary); }
.wl-pin.on { color: var(--fn-danger); }
.fn-marker:disabled,
.fn-marker.is-disabled { cursor: not-allowed; opacity: .42; }

/* Senkrechter Gruppen-Trenner zwischen Zeilen-Symbolen. Bis zum 24.09.2026 gab es ihn nur
   bereichsbezogen in der Watchliste (.wl-marker-separator, WatchlistItemsTable.razor.css) - jede
   weitere Liste haette ihn nachbauen muessen. Masse 1:1 von dort uebernommen. */
.fn-markers-sep {
    width: var(--fn-border-width); height: 20px; margin: 0 3px;
    background: var(--fn-border); display: inline-block; vertical-align: middle; flex: 0 0 auto;
}
