/* /Components/Admin/ApiKeysAdmin.razor.rz.scp.css */
/* API-Schlüssel-Verwaltung — eingebettet im Einstellungen-Detail (wie Broker-Verbindung).
   KEINE eigene Breite/max-width: fluid, folgt dem Detailbereich (Sidebars ein-/ausklappbar).
   Nur Tokens (kein Hex/rgb). Liste nutzt global fn-list; hier nur Rahmen/Leiste/Dialog. */
.ak[b-pr3tjpjgw8] { display:flex; flex-direction:column; gap:14px; }
.ak[b-pr3tjpjgw8]  svg { width:15px; height:15px; stroke-width:2; vertical-align:middle; }

.ak-deny[b-pr3tjpjgw8] { color:var(--fn-warning); font-size:13px; padding:14px; }

.ak-metrics[b-pr3tjpjgw8] { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; }
.ak-metric[b-pr3tjpjgw8] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); padding:11px 14px; }
.ak-metric span[b-pr3tjpjgw8] { display:block; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--fn-text-tertiary); }
.ak-metric b[b-pr3tjpjgw8] { display:block; margin-top:4px; font-family:var(--fn-font-mono); font-size:15px; color:var(--fn-text); }
.ak-metric.warn b[b-pr3tjpjgw8] { color:var(--fn-warning); }

.ak-bar[b-pr3tjpjgw8] { display:flex; gap:10px; align-items:center; }
.ak-search[b-pr3tjpjgw8] { flex:1; display:flex; align-items:center; gap:8px; background:var(--fn-input-bg); border:1px solid var(--fn-input-border); border-radius:9px; padding:7px 11px; color:var(--fn-text-tertiary); }
.ak-search input[b-pr3tjpjgw8] { flex:1; min-width:0; border:none; background:transparent; outline:none; color:var(--fn-text); font:inherit; font-size:12.5px; }

.ak-card[b-pr3tjpjgw8] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); overflow:hidden; }
.ak-use[b-pr3tjpjgw8] { font-size:11.5px; color:var(--fn-text-tertiary); margin-top:2px; }
.ak-src[b-pr3tjpjgw8] { font-family:var(--fn-font-mono); font-size:11px; color:var(--fn-text-secondary); }
.ak-mask[b-pr3tjpjgw8] { font-family:var(--fn-font-mono); font-size:12.5px; color:var(--fn-text-secondary); letter-spacing:.08em; }
.ak-chg[b-pr3tjpjgw8] { font-size:11.5px; color:var(--fn-text-secondary); }
.ak-chg small[b-pr3tjpjgw8] { color:var(--fn-text-tertiary); }

.ak-pill[b-pr3tjpjgw8] { font-size:10px; font-weight:700; border-radius:999px; padding:2px 9px; letter-spacing:.03em; white-space:nowrap; }
.ak-pill.set[b-pr3tjpjgw8] { color:var(--fn-success); background:var(--fn-success-soft); }
.ak-pill.env[b-pr3tjpjgw8] { color:var(--fn-warning); background:var(--fn-warning-soft); }
.ak-pill.miss[b-pr3tjpjgw8] { color:var(--fn-warning); background:var(--fn-warning-soft); }

.ak-actions-h[b-pr3tjpjgw8] { text-align:right; }
.ak-actions[b-pr3tjpjgw8] { display:flex; gap:4px; justify-content:flex-end; }
.ak-ic[b-pr3tjpjgw8] { display:inline-flex; align-items:center; background:none; border:none; color:var(--fn-text-tertiary); padding:3px 5px; cursor:pointer; border-radius:6px; }
.ak-ic:hover[b-pr3tjpjgw8] { color:var(--fn-primary); }
.ak-ic.ak-disabled[b-pr3tjpjgw8], .ak-ic:disabled[b-pr3tjpjgw8] { opacity:.35; cursor:not-allowed; }

.ak-hint[b-pr3tjpjgw8] { display:flex; align-items:center; gap:7px; font-size:11.5px; color:var(--fn-text-tertiary); margin:0; }

/* Bearbeiten-Dialog: Huelle, Kopf und Fusszeile kommen seit dem 09.09.2026 aus FnDialogScaffold (Vorgabe 3c, Nachtrag 1.14) -
   hier nur noch der Koerper. */
.ak-edit[b-pr3tjpjgw8] { display:flex; flex-direction:column; gap:10px; }
.ak-field-label[b-pr3tjpjgw8] { font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--fn-text-tertiary); display:flex; gap:8px; align-items:center; margin-top:4px; }
.ak-input-row[b-pr3tjpjgw8] { display:flex; gap:7px; align-items:center; }
.ak-input[b-pr3tjpjgw8] { flex:1; background:var(--fn-input-bg); border:1px solid var(--fn-input-border); border-radius:8px; color:var(--fn-text); font-family:var(--fn-font-mono); font-size:12.5px; padding:8px 11px; }
.ak-dialog-hint[b-pr3tjpjgw8] { font-size:11px; color:var(--fn-text-tertiary); margin:0; }
.ak-status[b-pr3tjpjgw8] { font-size:12px; color:var(--fn-success); }
/* /Components/Admin/CurrencyConverterAdmin.razor.rz.scp.css */
/* FX-Referenzkurse (Administrations-Slice) — token-only, 1:1 zur abgenommenen VORSCHAU.
   Farben/Schrift/Geometrie ausschließlich über --fn-*-Tokens (kein Hex). */

/* Luft unter dem Formular-Footer (Nikos Befund 22.07.2026: Speichern/Zurücksetzen waren am
   Seitenende von der unteren Log-Leiste halb verdeckt). */
.fx[b-093xl9ifui] { padding-bottom: 48px; }

.fx-deny[b-093xl9ifui], .fx-loading[b-093xl9ifui] { padding: 6px 2px; color: var(--fn-text-secondary); font-size: 13px; }

.fx-hint[b-093xl9ifui] {
    margin: 0 0 20px; font-size: 12.5px; color: var(--fn-text-tertiary); line-height: 1.5;
    padding: 11px 13px; background: var(--fn-bg-muted); border-radius: var(--fn-radius-sm);
    border: var(--fn-border-width) solid var(--fn-border);
}

/* Status-Kacheln */
.fx-tiles[b-093xl9ifui] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 20px; }
.fx-tile[b-093xl9ifui] {
    border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius);
    background: var(--fn-bg-alt); padding: 13px 15px; min-width: 0;
}
.fx-tile .k[b-093xl9ifui] {
    color: var(--fn-text-tertiary); font-size: 11px; font-weight: var(--fn-font-weight-bold);
    letter-spacing: .06em; text-transform: uppercase; margin-bottom: 6px;
}
.fx-tile .v[b-093xl9ifui] {
    font-size: 17px; font-weight: var(--fn-font-weight-bold);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fx-tile .n[b-093xl9ifui] { color: var(--fn-text-secondary); font-size: 12px; margin-top: 5px; line-height: 1.4; }
.fx-tile.rule .v[b-093xl9ifui] { color: var(--fn-success); }

/* Filter-Chips */
/* In der Toolbar-Zeile (Leading): kein eigener Abstand mehr — die Toolbar setzt das Raster. */
.fx-filterbar[b-093xl9ifui] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fx-chip[b-093xl9ifui] {
    display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px; cursor: pointer;
    border-radius: var(--fn-radius-pill); border: var(--fn-border-width) solid var(--fn-border);
    background: var(--fn-bg-muted); color: var(--fn-text-secondary);
    font-size: 12.5px; font-weight: var(--fn-font-weight-medium);
}
.fx-chip .c[b-093xl9ifui] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-tertiary); }
.fx-chip.active[b-093xl9ifui] { background: var(--fn-accent-soft); border-color: var(--fn-accent-line); color: var(--fn-text); }
.fx-chip.active .c[b-093xl9ifui] { color: var(--fn-primary); }

/* „Währung hinzufügen"-Inline */
.fx-add[b-093xl9ifui] {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 12px 0;
    padding: 10px 12px; border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm); background: var(--fn-bg-muted);
}
.fx-add-code[b-093xl9ifui] { width: 130px; text-transform: uppercase; }
.fx-add-note[b-093xl9ifui] { color: var(--fn-text-tertiary); font-size: 11.5px; }

/* Import der EZB-Kurshistorie in die eigene Datenbank (Niko 12.08.2026).
   Dieselbe Fläche wie „Währung hinzufügen" — es ist dieselbe Art Handlung: etwas Echtes von
   außen holen, einmalig, auf ausdrücklichen Klick. */
.fx-import[b-093xl9ifui] {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 12px 0;
    padding: 10px 12px; border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm); background: var(--fn-bg-muted);
}

/* Was der Import tatsächlich getan hat — bleibt stehen, statt mit der Einblendung zu verschwinden.
   Ein Import, der nur „fertig" meldet, verbirgt die übersprungenen Währungen und die großen
   Kurssprünge, die ein Mensch sehen muss. */
.fx-import-result[b-093xl9ifui] {
    margin: 8px 0 0; font-size: 12px; color: var(--fn-text-secondary);
    border-left: 2px solid var(--fn-primary); padding-left: 10px;
}

.fx-import-result .fx-import-note[b-093xl9ifui] {
    display: block; margin-top: 4px; font-size: 11.5px; color: var(--fn-warning);
}

/* Tabelle */
.fx-tablewrap[b-093xl9ifui] {
    border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius);
    overflow: hidden; margin-top: 4px;
}
.fx-tablewrap table.fn-list tbody tr.sel td[b-093xl9ifui] { background: var(--fn-accent-soft); }
.fx-miss[b-093xl9ifui] { color: var(--fn-warning); }

/* Badges */
.fx-badge[b-093xl9ifui] {
    display: inline-flex; align-items: center; min-height: 22px; padding: 0 9px; white-space: nowrap;
    border-radius: var(--fn-radius-pill); font-size: 11.5px; font-weight: var(--fn-font-weight-bold);
    border: var(--fn-border-width) solid var(--fn-border);
}
.fx-badge.ok[b-093xl9ifui] { color: var(--fn-success); background: var(--fn-success-soft); border-color: var(--fn-success); }
.fx-badge.norm[b-093xl9ifui] { color: var(--fn-primary); background: var(--fn-accent-soft); border-color: var(--fn-accent-line); }
.fx-badge.warn[b-093xl9ifui] { color: var(--fn-warning); background: var(--fn-warning-soft); border-color: var(--fn-warning); }
.fx-badge.info[b-093xl9ifui] { color: var(--fn-info); background: var(--fn-info-soft); border-color: var(--fn-info); }
.fx-badge.mute[b-093xl9ifui] { color: var(--fn-text-tertiary); background: transparent; }

/* Detail + Historie */
.fx-split[b-093xl9ifui] { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 16px; margin-top: 22px; }
.fx-card[b-093xl9ifui] { border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius); background: var(--fn-bg-alt); }
.fx-card > .h[b-093xl9ifui] {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 12px 15px; border-bottom: var(--fn-border-width) solid var(--fn-border);
}
.fx-card > .h .t strong[b-093xl9ifui] { display: block; font-size: 13.5px; color: var(--fn-text); }
.fx-card > .h .t span[b-093xl9ifui] { display: block; color: var(--fn-text-tertiary); font-size: 11.5px; margin-top: 2px; }
.fx-card > .b[b-093xl9ifui] { padding: 15px; display: grid; gap: 13px; }

.fx-empty[b-093xl9ifui] { padding: 18px 15px; color: var(--fn-text-tertiary); font-size: 12.5px; }

.fx-eff[b-093xl9ifui] {
    border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-sm);
    background: var(--fn-bg); padding: 12px 14px;
}
.fx-eff .lbl[b-093xl9ifui] {
    color: var(--fn-text-tertiary); font-size: 11px; font-weight: var(--fn-font-weight-bold);
    text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px;
}
.fx-eff .val[b-093xl9ifui] { font-family: var(--fn-font-mono); font-size: 18px; font-weight: var(--fn-font-weight-bold); color: var(--fn-text); }
.fx-eff .note[b-093xl9ifui] { color: var(--fn-text-secondary); font-size: 12px; margin-top: 6px; line-height: 1.4; }

.fx-grid2[b-093xl9ifui] { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.fx-kv[b-093xl9ifui] {
    border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-sm);
    background: var(--fn-bg); padding: 9px 11px; min-width: 0;
}
.fx-kv .k[b-093xl9ifui] {
    display: block; color: var(--fn-text-tertiary); font-size: 10.5px; font-weight: var(--fn-font-weight-bold);
    text-transform: uppercase; letter-spacing: .05em; margin-bottom: 4px;
}
.fx-kv .v[b-093xl9ifui] {
    display: block; font-family: var(--fn-font-mono); font-size: 12.5px; color: var(--fn-text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.fx-ovr[b-093xl9ifui] { display: grid; gap: 6px; }
.fx-ovr label[b-093xl9ifui] { color: var(--fn-text-secondary); font-size: 12px; font-weight: var(--fn-font-weight-medium); }
.fx-subnote[b-093xl9ifui] { color: var(--fn-text-tertiary); font-size: 11.5px; line-height: 1.45; }

.fx-audit[b-093xl9ifui] { border-top: var(--fn-border-width) solid var(--fn-border); padding-top: 12px; }
.fx-audit .cap[b-093xl9ifui] {
    color: var(--fn-text-tertiary); font-size: 10.5px; font-weight: var(--fn-font-weight-bold);
    text-transform: uppercase; letter-spacing: .06em; margin-bottom: 8px;
}
.fx-audit .arow[b-093xl9ifui] {
    display: flex; align-items: baseline; gap: 8px; font-size: 11.5px; padding: 3px 0;
    font-family: var(--fn-font-mono); color: var(--fn-text-secondary);
}
.fx-audit .arow .a[b-093xl9ifui] { color: var(--fn-text); }

.fx-run[b-093xl9ifui] { border-top: var(--fn-border-width) solid var(--fn-border); padding: 11px 15px; }
.fx-run:first-child[b-093xl9ifui] { border-top: none; }
.fx-run .top[b-093xl9ifui] { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.fx-run .when[b-093xl9ifui] { font-family: var(--fn-font-mono); font-size: 12px; color: var(--fn-text); }
.fx-run .meta[b-093xl9ifui] { color: var(--fn-text-tertiary); font-size: 11.5px; margin-top: 4px; font-family: var(--fn-font-mono); }
.fx-run .err[b-093xl9ifui] {
    margin-top: 7px; font-size: 11.5px; color: var(--fn-danger);
    background: var(--fn-danger-soft); border: var(--fn-border-width) solid var(--fn-danger);
    border-radius: var(--fn-radius-sm); padding: 6px 9px; line-height: 1.4;
}
.fx-run .err .tok[b-093xl9ifui] { font-family: var(--fn-font-mono); }

.fx-foot-status[b-093xl9ifui] { color: var(--fn-text-secondary); }

@media (max-width: 900px) {
    .fx-tiles[b-093xl9ifui] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fx-split[b-093xl9ifui] { grid-template-columns: 1fr; }
}
/* /Components/Admin/DailySyncRunControl.razor.rz.scp.css */
/* Heutiger Laufzustand im Torwaechter. Farben aus den Tokens, keine erfundenen Werte;
   die Ampel folgt der Vorgabe vom 02.09.2026 (gruen = geliefert, gelb = wartet, orange = steckt). */
.dsr[b-olqnui88rq] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.dsr-state[b-olqnui88rq] {
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-medium);
}

.dsr-state.dsr-ok[b-olqnui88rq]      { color: var(--fn-success); }
.dsr-state.dsr-pending[b-olqnui88rq] { color: var(--fn-warning); }
.dsr-state.dsr-stuck[b-olqnui88rq]   { color: var(--fn-caution); }
.dsr-state.dsr-idle[b-olqnui88rq]    { color: var(--fn-neutral); }

.dsr-meta[b-olqnui88rq] {
    font-family: var(--fn-font-mono, ui-monospace, monospace);
    font-size: 11px;
    color: var(--fn-text-secondary);
}

.dsr-result[b-olqnui88rq] {
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    flex-basis: 100%;
}
/* /Components/Admin/DataCascadeAdmin.razor.rz.scp.css */
/* Daten-Kaskade (Administration) — 1:1 nach VORSCHAU-Daten-Kaskade-Administration.html (Niko 19.07.2026).
   Nur --fn-*-Tokens; Maße nach design.md (Toolbar 30px, Footer über FnFormFooter 42px). */

/* Breite exakt wie die Vorschau (.frame max-width 1060px); Abstand unten, damit der
   Footer (Zurücksetzen/Speichern) nie am Viewport-Rand abgeschnitten wird (Niko 19.07.2026). */
.dc[b-3iffhxin20] {
    max-width: 1060px;
    padding-bottom: 28px;
}

/* Dezenter beschrifteter Aktualisieren-Button — exakt wie in der abgenommenen Vorschau: transparent,
   schmale Umrandung, Sekundär-Textfarbe (nicht leuchtend); Farbe erst im Hover. */
.dc-refreshall[b-3iffhxin20] {
    height: 30px;
    padding: 0 12px;
    border: 1px solid var(--fn-border-strong);
    background: transparent;
    border-radius: 9px;
    color: var(--fn-text-secondary);
    font-size: 13px;
    font-weight: var(--fn-font-weight-medium);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    cursor: pointer;
}

.dc-refreshall:hover:not(:disabled)[b-3iffhxin20] {
    color: var(--fn-primary);
    border-color: var(--fn-primary);
}

.dc-refreshall:disabled[b-3iffhxin20] {
    opacity: .5;
    cursor: default;
}

.dc-refreshall :deep(svg)[b-3iffhxin20] {
    width: 15px;
    height: 15px;
}

.dc-hint[b-3iffhxin20] {
    color: var(--fn-text-secondary);
    font-size: 13px;
    line-height: 1.5;
    margin: 0 0 16px;
    max-width: 760px;
}

.dc-hint :deep(b)[b-3iffhxin20] {
    color: var(--fn-text);
    font-weight: 600;
}

.dc-toolbar[b-3iffhxin20] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

/* Sektionskarte je Kaskade (abgenommene Erweiterung, Vorschau .seccard/.sechead).
   overflow sichtbar (S2): das „Gilt für"-Flyout darf nicht an der Kartenkante abgeschnitten werden —
   die obere Rundung übernimmt stattdessen .dc-sechead selbst. */
.dc-seccard[b-3iffhxin20] {
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    margin-bottom: 18px;
    overflow: visible;
}

.dc-sechead[b-3iffhxin20] {
    border-radius: calc(var(--fn-radius) - 1px) calc(var(--fn-radius) - 1px) 0 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 14px;
    background: var(--fn-bg-muted);
    border-bottom: 1px solid var(--fn-border);
}

.dc-sectitle[b-3iffhxin20] {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--fn-text);
}

.dc-secdesc[b-3iffhxin20] {
    font-size: 11.5px;
    color: var(--fn-text-tertiary);
    margin-top: 1px;
}

.dc-secacts[b-3iffhxin20] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: none;
}

.dc-plus[b-3iffhxin20] {
    font-size: 13px;
}

.dc-grid[b-3iffhxin20] {
    margin: 0;
    width: 100%;
}

/* Zeileninhalt mittig wie in der Vorschau (fn-list setzt sonst vertical-align: top). */
.dc-grid :deep(td)[b-3iffhxin20] {
    vertical-align: middle;
}

/* Icon-Buttons exakt wie die Vorschau: transparent, schmale Umrandung, Sekundär-Farbe;
   Primary-Umschlag erst im Hover; disabled Opacity .3 (fn-btn-secondary wäre gefüllt). */
.dc-icon[b-3iffhxin20] {
    background: transparent;
    border: 1px solid var(--fn-border-strong);
    color: var(--fn-text-secondary);
}

.dc-icon:hover:not(:disabled)[b-3iffhxin20] {
    background: transparent;
    color: var(--fn-primary);
    border-color: var(--fn-primary);
}

.dc-icon:disabled[b-3iffhxin20] {
    opacity: .3;
}

.dc-rank[b-3iffhxin20] {
    width: 52px;
    text-align: center;
}

.dc-rankbadge[b-3iffhxin20] {
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
    font-family: var(--fn-font-mono);
    font-size: 13px;
    font-weight: 700;
}

.dc-prov[b-3iffhxin20] {
    width: 230px;
}

.dc-cov[b-3iffhxin20] {
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
}

.dc-status[b-3iffhxin20] {
    width: 190px;
}

/* Approved V5 checkbox multi-select, built exclusively from shared design tokens. */
.dc-kinds[b-3iffhxin20] {
    min-width: 150px;
    max-width: 250px;
}

.dc-scope[b-3iffhxin20] {
    position: relative;
}

.dc-scope-trigger[b-3iffhxin20] {
    width: 100%;
    height: 34px;
    min-width: 0;
    padding: 0 10px 0 11px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border: var(--fn-border-width) solid var(--fn-input-border);
    border-radius: 8px;
    background: var(--fn-input-bg);
    color: var(--fn-text);
    font-size: 12.5px;
    text-align: left;
    cursor: pointer;
}

.dc-scope-trigger span[b-3iffhxin20] {
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.dc-scope-trigger :deep(svg)[b-3iffhxin20] {
    width: 15px;
    height: 15px;
    flex: none;
    color: var(--fn-text-secondary);
}

.dc-scope-trigger:hover:not(:disabled)[b-3iffhxin20],
.dc-scope-trigger[aria-expanded="true"][b-3iffhxin20] {
    background: var(--fn-hover);
    border-color: var(--fn-primary);
}

.dc-scope-trigger:focus-visible[b-3iffhxin20],
.dc-scope-close:focus-visible[b-3iffhxin20],
.dc-scope-all:focus-visible[b-3iffhxin20] {
    outline: none;
    box-shadow: var(--fn-focus-ring);
}

.dc-scope-menu[b-3iffhxin20] {
    position: fixed;
    top: calc(100% + 6px);
    left: 0;
    z-index: 40;
    width: min(370px, calc(100vw - 32px));
    max-height: calc(100vh - 32px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 10px;
    background: var(--fn-surface);
    color: var(--fn-text);
    border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: var(--fn-radius-sm);
    box-shadow: var(--fn-elevation-3);
}

.dc-scope-head[b-3iffhxin20] {
    min-height: 30px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 8px;
}

.dc-scope-head strong[b-3iffhxin20] {
    color: var(--fn-text);
    font-size: 13px;
    font-weight: var(--fn-font-weight-bold);
}

.dc-scope-head > span[b-3iffhxin20] {
    color: var(--fn-text-secondary);
    font-size: 11.5px;
}

.dc-scope-close[b-3iffhxin20] {
    width: 28px;
    height: 28px;
    padding: 0;
    display: inline-grid;
    place-items: center;
    border: var(--fn-border-width) solid transparent;
    border-radius: 8px;
    background: transparent;
    color: var(--fn-text-secondary);
    cursor: pointer;
}

.dc-scope-close:hover[b-3iffhxin20] {
    background: var(--fn-hover);
    color: var(--fn-primary);
}

.dc-scope-close :deep(svg)[b-3iffhxin20] {
    width: 15px;
    height: 15px;
}

.dc-scope-options[b-3iffhxin20] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2px 10px;
    padding: 8px 0;
    border-top: var(--fn-border-width) solid var(--fn-border);
    border-bottom: var(--fn-border-width) solid var(--fn-border);
}

.dc-scope-option[b-3iffhxin20] {
    min-height: 34px;
    padding: 5px 6px;
    border-radius: 6px;
    color: var(--fn-text-secondary);
    font-size: 12px;
    cursor: pointer;
}

.dc-scope-option:hover[b-3iffhxin20] {
    background: var(--fn-hover);
    color: var(--fn-text);
}

.dc-scope-option input[type="checkbox"][b-3iffhxin20] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: var(--fn-primary);
    flex: none;
}

.dc-scope-option:has(input:disabled)[b-3iffhxin20] {
    cursor: default;
}

.dc-scope-option input:disabled + span[b-3iffhxin20] {
    color: var(--fn-text-tertiary);
}

.dc-scope-legacy[b-3iffhxin20] {
    grid-column: 1 / -1;
    margin: 4px 6px 0;
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
    line-height: 1.4;
}

.dc-scope-hint[b-3iffhxin20] {
    min-height: 28px;
    display: flex;
    align-items: center;
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
}

.dc-scope-all[b-3iffhxin20] {
    min-height: 28px;
    padding: 0 2px;
    border: 0;
    background: transparent;
    color: var(--fn-primary);
    font-size: 12px;
    cursor: pointer;
}

.dc-scope-all:hover[b-3iffhxin20] {
    color: var(--fn-primary-hover);
}

.dc-coverbox[b-3iffhxin20] {
    margin: 14px 0 4px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-alt);
    padding: 10px 14px;
    font-size: 12px;
}

.dc-covtitle[b-3iffhxin20] {
    margin-bottom: 5px;
    color: var(--fn-text-tertiary);
    font-family: var(--fn-font-mono);
    font-size: 10.5px;
    font-weight: var(--fn-font-weight-bold);
    text-transform: uppercase;
    letter-spacing: .5px;
}

.dc-covsub[b-3iffhxin20] {
    margin-left: 8px;
    font-weight: var(--fn-font-weight-regular);
    text-transform: none;
    letter-spacing: 0;
}

.dc-covrow[b-3iffhxin20] {
    padding: 2px 0;
    color: var(--fn-text-secondary);
}

.dc-covrow b[b-3iffhxin20] {
    display: inline-block;
    min-width: 150px;
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    font-weight: 600;
    color: var(--fn-text);
}

.dc-covok[b-3iffhxin20] {
    color: var(--fn-success);
}

.dc-covwarn[b-3iffhxin20] {
    color: var(--fn-warning);
}

@media (max-width: 520px) {
    .dc-scope-options[b-3iffhxin20] {
        grid-template-columns: 1fr;
    }
}

.dc-active[b-3iffhxin20] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--fn-success);
    font-size: 12px;
}

.dc-active :deep(svg)[b-3iffhxin20] {
    width: 14px;
    height: 14px;
}

.dc-inactive[b-3iffhxin20] {
    color: var(--fn-text-tertiary);
    font-size: 12px;
}

.dc-warn[b-3iffhxin20] {
    display: inline-block;
    color: var(--fn-warning);
    font-family: var(--fn-font-mono);
    font-size: 10.5px;
}

/* Anbieter-Schalter (Aktiv/Inaktiv) — abgenommene VORSCHAU-Daten-Kaskade-Anbieter-Schalter.html (Niko 27.07.2026).
   Nur --fn-*-Tokens; EIN = accent-soft/primary, AUS = text-tertiary, Key fehlt = disabled/opacity. */
.dc-switchcell[b-3iffhxin20] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}

.dc-switch[b-3iffhxin20] {
    position: relative;
    display: inline-block;
    width: 38px;
    height: 20px;
    flex: none;
    cursor: pointer;
}

.dc-switch input[b-3iffhxin20] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.dc-track[b-3iffhxin20] {
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border-strong);
    transition: background .15s, border-color .15s;
}

.dc-knob[b-3iffhxin20] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--fn-text-tertiary);
    transition: transform .15s, background .15s;
}

.dc-switch input:checked ~ .dc-track[b-3iffhxin20] {
    background: var(--fn-accent-soft);
    border-color: var(--fn-primary);
}

.dc-switch input:checked ~ .dc-knob[b-3iffhxin20] {
    transform: translateX(18px);
    background: var(--fn-primary);
}

.dc-switch input:focus-visible ~ .dc-track[b-3iffhxin20] {
    outline: 2px solid var(--fn-primary);
    outline-offset: 2px;
}

.dc-switch.disabled[b-3iffhxin20] {
    cursor: not-allowed;
    opacity: .5;
}

/* WICHTIG: die Zelle bleibt table-cell — Flex NUR auf dem inneren Wrapper,
   sonst bricht die Aktionsgruppe aus dem Tabellen-Layout aus (Fehlerbild 19.07.2026). */
.dc-act[b-3iffhxin20] {
    width: 160px;
    text-align: right;
    white-space: nowrap;
}

.dc-actwrap[b-3iffhxin20] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    justify-content: flex-end;
}

.dc-grip[b-3iffhxin20] {
    display: inline-grid;
    place-items: center;
    width: 22px;
    color: var(--fn-text-tertiary);
    cursor: grab;
}

.dc-grip :deep(svg)[b-3iffhxin20] {
    width: 14px;
    height: 14px;
}

/* Papierkorb: neutral, Danger erst im Hover (design.md / LLM-Kaskade-Muster) */
.dc-del:hover:not(:disabled)[b-3iffhxin20] {
    color: var(--fn-danger);
    border-color: var(--fn-danger);
}

.dc-empty[b-3iffhxin20] {
    color: var(--fn-text-tertiary);
    text-align: center;
    padding: 13px 10px;
    font-size: 12px;
}

.dc-foothint[b-3iffhxin20] {
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
    line-height: 1.5;
    margin: 12px 0 0;
    max-width: 760px;
}

.dc-msg-ok[b-3iffhxin20] {
    color: var(--fn-success);
}

.dc-deny[b-3iffhxin20] {
    color: var(--fn-text-secondary);
    padding: 16px;
}

/* /Components/Admin/DataRequirementRegistrationSection.razor.rz.scp.css */
/* Rahmen, Kopf, Titel und Unterzeile bringt jetzt die Standard-Kachel FnGridCard mit (Niko
   09.09.2026: "da fehlt der Doppel-Pfeil fuers einklappen!"). Die frueheren Regeln .drr-card,
   .drr-head, .drr-head h3 und .drr-head p sind damit ERSATZLOS entfallen - sie waeren sonst
   totes CSS: syntaktisch gueltig, von keinem Element mehr getroffen, und kein Test und kein Gate
   schlaegt darauf an (R5). Eine eigene Regel auf die Kachel waere ausserdem eine lokale
   Nachdefinition eines geteilten Bauteils und damit verboten (Vorgabe 0/2f). */

/* Die Regeln fuer .drr-scroll und .drr-table sind mit den beiden von Hand gebauten Tabellen
   entfallen (Niko 08.09.2026: "da ist kein einziges Grid richtig"). Breite, Scrollen und
   Zellenausrichtung bringt jetzt das Standard-Grid mit; eine Modul-Regel darauf waere eine
   lokale Nachdefinition eines geteilten Bauteils und damit verboten (Vorgabe 0/2f).

   Die zweite Zeile in einer Zelle bleibt dagegen Sache des Moduls: sie steht in dessen
   CellTemplate und traegt deshalb dessen Bereichskennung - eine Regel ohne ::deep erreicht sie. */
/* Der Anker .drr-card ist mit der selbstgebauten Kachel entfallen. Die zweite Zeile steht in den
   CellTemplates DIESER Komponente und traegt deshalb deren Bereichskennung: Blazor macht daraus
   `small[b-xxxxx]`, was genau diese und keine fremden <small> trifft. Ein Ersatz-Anker waere eine
   Klasse ohne Zweck - die Bereichskennung ist der Anker. */
small[b-tnklnm48on] {
    display: block;
    margin-top: 2px;
    color: var(--fn-text-tertiary);
    font-size: 10px;
}

/* Laden, Fehlschlag, Leerstand - neben dem Grid, nicht als Zeile darin. */
.drr-state[b-tnklnm48on] {
    margin: 0;
    padding: 12px 2px;
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.drr-finding.is-ok[b-tnklnm48on] {
    color: var(--fn-success);
}

.drr-finding.is-warning[b-tnklnm48on] {
    color: var(--fn-warning);
}

.drr-finding.is-error[b-tnklnm48on] {
    color: var(--fn-danger);
}
/* /Components/Admin/FuturesContractMarginAdmin.razor.rz.scp.css */
/* Layout-only styles (keine Primitive-Klassen): Tabelle/Felder/Buttons kommen aus den geteilten
   fn-list/fn-forms/fn-buttons. Hier nur Abstaende, Spaltenbreiten und Statusfarben — alles ueber --fn-*-Tokens. */
.fcm[b-lkbwlqu6ze] {
    display: flex;
    flex-direction: column;
    gap: var(--fn-space-4, 16px);
}

.fcm-hint[b-lkbwlqu6ze] {
    color: var(--fn-text-secondary);
    font-size: 13px;
    line-height: 1.5;
    margin: 0;
    max-width: 80ch;
}

.fcm-rule[b-lkbwlqu6ze] {
    display: flex;
    align-items: flex-start;
    gap: var(--fn-space-2, 8px);
    color: var(--fn-text);
    font-size: 13px;
    line-height: 1.5;
    padding: var(--fn-space-3, 12px);
    border: 1px solid var(--fn-border);
    border-left: 3px solid var(--fn-warning);
    border-radius: var(--fn-radius-md, 8px);
    background: var(--fn-bg-alt);
    max-width: 80ch;
}

.fcm-rule .fn-icon[b-lkbwlqu6ze] {
    color: var(--fn-warning);
    flex: 0 0 auto;
}

.fcm-deny[b-lkbwlqu6ze] {
    color: var(--fn-warning);
    font-size: 14px;
    padding: var(--fn-space-4, 16px);
}

.fcm-loading[b-lkbwlqu6ze] {
    color: var(--fn-text-secondary);
    font-size: 13px;
    padding: var(--fn-space-4, 16px);
}

.fcm-table[b-lkbwlqu6ze] {
    overflow-x: auto;
}

.fcm tbody input[b-lkbwlqu6ze],
.fcm tbody select[b-lkbwlqu6ze] {
    width: 100%;
    box-sizing: border-box;
}

.fcm-num[b-lkbwlqu6ze] {
    width: 9rem;
    text-align: right;
}

.fcm-name[b-lkbwlqu6ze] {
    color: var(--fn-text);
    font-size: 13px;
}

.fcm-meta[b-lkbwlqu6ze] {
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 11px;
}

.fcm-ramp[b-lkbwlqu6ze] {
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    white-space: nowrap;
}

.fcm-row-unknown .fcm-ramp[b-lkbwlqu6ze] {
    color: var(--fn-warning);
}

.fcm-audit-row td[b-lkbwlqu6ze] {
    padding-top: 0;
    border-bottom: 1px solid var(--fn-border);
}

.fcm-msg-warn[b-lkbwlqu6ze] {
    color: var(--fn-warning);
}
/* /Components/Admin/GatekeeperAdminPage.razor.rz.scp.css */
.tw-deny[b-xwqcz9ub31]{color:var(--fn-text-secondary);padding:14px}
/* Breite wie LLM-/Daten-Kaskade (.llmc max-width 980px) — nicht über die volle Fläche laufen
   lassen (Nikos Befund 20.07.). */
.tw[b-xwqcz9ub31]{display:flex;flex-direction:column;gap:14px;max-width:980px}

/* KPI-Leiste */
.tw-kpis[b-xwqcz9ub31]{display:flex;gap:12px;flex-wrap:wrap}
.tw-kpi[b-xwqcz9ub31]{background:var(--fn-bg-muted);border:1px solid var(--fn-border);border-radius:var(--fn-radius);padding:10px 14px;min-width:128px}
.tw-kpi .k[b-xwqcz9ub31]{font:600 10.5px var(--fn-font-mono);color:var(--fn-text-tertiary);text-transform:uppercase;letter-spacing:.5px}
.tw-kpi .v[b-xwqcz9ub31]{font:700 20px var(--fn-font-mono);color:var(--fn-text);margin-top:2px}
.tw-kpi .v.ok[b-xwqcz9ub31]{color:var(--fn-success)}
.tw-kpi .v.warn[b-xwqcz9ub31]{color:var(--fn-warning)}

/* Toolbar */
/* Suche+Refresh der geteilten FnListToolbar stehen rechts hinter den Filter-Segmenten: das Bauteil setzt
   margin-left:auto selbst (FnListToolbar.razor.css) - die frühere lokale Nachdefinition ist seit dem
   09.09.2026 entfernt (Gate DESIGN001-REDEFINE, offener Punkt 7). */
.tw-seg[b-xwqcz9ub31]{display:inline-flex;background:var(--fn-bg-muted);border:1px solid var(--fn-border);border-radius:10px;padding:3px;gap:2px}
.tw-seg button[b-xwqcz9ub31]{border:0;background:none;color:var(--fn-text-secondary);font:var(--fn-font-weight-medium) 12.5px var(--fn-font);padding:6px 13px;border-radius:8px;cursor:pointer}
.tw-seg button.on[b-xwqcz9ub31]{background:var(--fn-surface-alt);color:var(--fn-text)}
.tw-seg button:hover:not(.on)[b-xwqcz9ub31]{color:var(--fn-text)}

/* Tabelle */
/* S4: overflow sichtbar, sonst schneidet der Scroll-Kontext das Provider-⊕-Flyout ab (gleiche Falle
   wie die Kaskaden-Karte in S2); bei sehr schmalem Fenster scrollt stattdessen die Seite. */
.tw-wrap[b-xwqcz9ub31]{overflow:visible}
.tw-grid[b-xwqcz9ub31]{min-width:980px}
.tw-grid td[b-xwqcz9ub31]{vertical-align:middle}
.tw-mod[b-xwqcz9ub31]{display:flex;flex-direction:column;line-height:1.35}
.tw-mod b[b-xwqcz9ub31]{font-weight:600;color:var(--fn-text)}
.tw-mod .tw-id[b-xwqcz9ub31]{font:11px var(--fn-font-mono);color:var(--fn-text-tertiary)}
.tw-grp[b-xwqcz9ub31]{display:inline-flex;align-items:center;font:600 11px var(--fn-font-mono);border-radius:20px;padding:2px 10px}
.tw-grp.def[b-xwqcz9ub31]{color:var(--fn-primary);background:var(--fn-accent-soft)}
.tw-grp.daily[b-xwqcz9ub31]{color:var(--fn-success);background:var(--fn-success-soft)}
.tw-grp.analysis[b-xwqcz9ub31]{color:var(--fn-warning);background:var(--fn-warning-soft)}
.tw-tok[b-xwqcz9ub31]{display:inline-flex;align-items:center;gap:7px;font:11.5px var(--fn-font-mono);color:var(--fn-text-secondary)}
.tw-muted[b-xwqcz9ub31]{color:var(--fn-text-tertiary);font-family:var(--fn-font-mono);font-size:11.5px}
.tw-calls[b-xwqcz9ub31]{font:700 13px var(--fn-font-mono);color:var(--fn-text)}
.tw-off td[b-xwqcz9ub31]{opacity:.55}

/* Slider (Ja/Nein) */
.tw-active[b-xwqcz9ub31]{white-space:nowrap}
.tw-sw[b-xwqcz9ub31]{position:relative;display:inline-block;width:38px;height:22px;vertical-align:middle}
.tw-sw input[b-xwqcz9ub31]{opacity:0;width:0;height:0}
/* Rahmen in BEIDEN Zuständen (transparent im Aus) — sonst wächst der Track beim Einschalten um
   1px und die Zeile zuckt (Nikos Befund 20.07.). Ja/Nein-Text entfernt: der Slider sagt es selbst. */
.tw-sw .tr[b-xwqcz9ub31]{position:absolute;inset:0;background:var(--fn-border-strong);border:1px solid transparent;border-radius:20px;transition:.15s;cursor:pointer}
.tw-sw .tr[b-xwqcz9ub31]::before{content:"";position:absolute;height:16px;width:16px;left:2px;top:2px;background:var(--fn-text-secondary);border-radius:50%;transition:.15s}
.tw-sw input:checked + .tr[b-xwqcz9ub31]{background:var(--fn-success-soft);border-color:var(--fn-success)}
.tw-sw input:checked + .tr[b-xwqcz9ub31]::before{transform:translateX(15px);background:var(--fn-success)}
.tw-del:hover[b-xwqcz9ub31]{color:var(--fn-danger)}

/* ── Routing S4: Provider-Scope-Chips + Flyout + Kontingent-Kacheln (Vorschau §2, nur --fn-*) ── */
.tw-kpi-prov[b-xwqcz9ub31]{border-color:var(--fn-cat-teal)}
/* Chip + Schild + ⊕ in EINER Zeile wie die abgenommene Vorschau (S2-Lehre aus PR 319: ohne
   Mindestbreite bricht das Schild unter den Chip); mehrere Chips brechen weiterhin sauber um. */
.tw-prov[b-xwqcz9ub31]{min-width:235px;max-width:280px}
.tw-pchip[b-xwqcz9ub31]{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 8px;margin:1px 3px 1px 0;border-radius:999px;font-size:10.5px;font-weight:600;border:1px solid var(--fn-primary);background:var(--fn-accent-soft);color:var(--fn-primary);white-space:nowrap}
.tw-pall[b-xwqcz9ub31]{color:var(--fn-cat-teal);border-color:var(--fn-cat-teal);background:transparent}
.tw-px[b-xwqcz9ub31]{background:transparent;border:none;padding:0;color:inherit;font-size:10px;line-height:1;cursor:pointer;opacity:.75}
.tw-px:hover:not(:disabled)[b-xwqcz9ub31]{opacity:1;color:var(--fn-danger)}
/* S5: Schild-Schalter Beobachtung/Erzwungen — nur bei gesetztem Scope gerendert (Vorschau 1:1). */
.tw-enf[b-xwqcz9ub31]{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 8px;margin-left:6px;border-radius:999px;font-family:var(--fn-font-mono);font-size:10.5px;font-weight:600;cursor:pointer;vertical-align:middle;white-space:nowrap}
.tw-enf[b-xwqcz9ub31]  svg{width:11px;height:11px}
.tw-enf-off[b-xwqcz9ub31]{color:var(--fn-text-tertiary);border:1px dashed var(--fn-border-strong);background:transparent}
.tw-enf-off:hover:not(:disabled)[b-xwqcz9ub31]{color:var(--fn-warning);border-color:var(--fn-warning)}
.tw-enf-on[b-xwqcz9ub31]{color:var(--fn-warning);border:1px solid var(--fn-warning);background:var(--fn-warning-soft)}
.tw-enf-on:hover:not(:disabled)[b-xwqcz9ub31]{color:var(--fn-text-secondary);border-color:var(--fn-border-strong);background:transparent}
.tw-enf:disabled[b-xwqcz9ub31]{opacity:.5;cursor:default}

.tw-paddwrap[b-xwqcz9ub31]{position:relative;display:inline-block;vertical-align:middle}
.tw-padd[b-xwqcz9ub31]{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;border:1px dashed var(--fn-border-strong);background:transparent;color:var(--fn-text-tertiary);font-size:12px;line-height:1;cursor:pointer}
.tw-padd:hover:not(:disabled)[b-xwqcz9ub31]{color:var(--fn-primary);border-color:var(--fn-primary)}
.tw-pmenu[b-xwqcz9ub31]{position:absolute;top:24px;left:0;z-index:30;display:flex;flex-direction:column;min-width:180px;max-height:260px;overflow-y:auto;padding:4px;background:var(--fn-bg-alt);border:1px solid var(--fn-border-strong);border-radius:9px;box-shadow:var(--fn-shadow-hover)}
.tw-pmenuitem[b-xwqcz9ub31]{text-align:left;background:transparent;border:none;color:var(--fn-text-secondary);font-size:12px;padding:5px 8px;border-radius:6px;cursor:pointer}
.tw-pmenuitem:hover[b-xwqcz9ub31]{background:var(--fn-bg-muted);color:var(--fn-primary)}
.tw-pmenusep[b-xwqcz9ub31]{height:1px;background:var(--fn-border);margin:3px 4px}

.tw-empty[b-xwqcz9ub31]{padding:14px;text-align:center;color:var(--fn-text-tertiary);font-size:12px}
.tw-hint[b-xwqcz9ub31]{font-size:11.5px;color:var(--fn-text-tertiary);max-width:820px;margin:0}
/* /Components/Admin/InstrumentTypeLabelsAdmin.razor.rz.scp.css */
/* Layout-only styles (keine Primitive-Klassen): Tabelle/Felder/Buttons kommen aus den geteilten
   fn-list/fn-forms/fn-buttons. Hier nur Abstände, Spaltenbreiten und Statusfarben — Felder werden
   über Element-Selektoren (input) auf volle Zellenbreite gebracht, nicht über die Primitiv-Klasse. */
.itl[b-prlf20hrki] {
    display: flex;
    flex-direction: column;
    gap: var(--fn-space-4, 16px);
}

.itl-hint[b-prlf20hrki] {
    color: var(--fn-text-secondary);
    font-size: 13px;
    line-height: 1.5;
    margin: 0;
    max-width: 70ch;
}

.itl-deny[b-prlf20hrki] {
    color: var(--fn-warning);
    font-size: 14px;
    padding: var(--fn-space-4, 16px);
}

.itl tbody input[b-prlf20hrki] {
    width: 100%;
    box-sizing: border-box;
}

.itl-num[b-prlf20hrki] {
    width: 8rem;
}

.itl-act[b-prlf20hrki] {
    width: 7rem;
    text-align: right;
    white-space: nowrap;
}

.itl-add td[b-prlf20hrki] {
    border-top: 1px solid var(--fn-border);
}

.itl-msg-ok[b-prlf20hrki] {
    color: var(--fn-success);
}

.itl-msg-err[b-prlf20hrki] {
    color: var(--fn-danger, var(--fn-warning));
}
/* /Components/Admin/LlmCascadeAdmin.razor.rz.scp.css */
/* LLM-Kaskade (Administrations-Slice) — token-only, 1:1 zur abgenommenen
   VORSCHAU-LLM-Kaskade-Administration.html. Farben/Geometrie ausschließlich über --fn-*-Tokens. */

.llmc[b-ob3sgiehvy] { max-width: 980px; }

.llmc-hint[b-ob3sgiehvy] {
    color: var(--fn-text-secondary);
    font-size: 12.5px;
    line-height: 1.5;
    margin: 0 0 16px;
    max-width: 720px;
}

.llmc-toolbar[b-ob3sgiehvy] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}

/* Das ➕-Emoji (U+2795) rendert farbig — Standard wie FnListToolbar (.fn-toolbar-plus ist dort scoped). */
.llmc-toolbar[b-ob3sgiehvy]  .fn-toolbar-plus,
.llmc-toolbar .fn-toolbar-plus[b-ob3sgiehvy] {
    font-size: 13px;
    line-height: 1;
}

/* Modell-Eingabe mono wie in der abgenommenen Vorschau. */
.llmc-model[b-ob3sgiehvy] {
    font-family: var(--fn-font-mono);
}

/* Der Anbieter-Select-Pfeil kommt jetzt ZENTRAL aus fn-forms.css (select.fn-field) — hier nicht mehr nachbauen. */

/* Panel rahmt das Grid ein, damit es NICHT seitenbreit läuft (Vorschau: Panel-Box). */
.llmc-panel[b-ob3sgiehvy] {
    border: var(--fn-border-width, 1px) solid var(--fn-border);
    border-radius: var(--fn-radius);
    overflow: hidden;
}

.llmc table.fn-list[b-ob3sgiehvy] {
    width: 100%;
    table-layout: fixed;
}

.llmc-rank[b-ob3sgiehvy] { width: 56px; text-align: center; }
.llmc-type[b-ob3sgiehvy] { width: 240px; }
/* Breite + nowrap wie Daten-Kaskade (Niko 19.07.2026): vorher 150px → Icons gequetscht. */
.llmc-act[b-ob3sgiehvy]  { width: 170px; text-align: right; white-space: nowrap; }
/* Modell-Spalte nimmt den Rest — kein Ausufern mehr. */

.llmc-badge[b-ob3sgiehvy] {
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: var(--fn-radius-sm, 8px);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
    font-family: var(--fn-font-mono);
    font-weight: 700;
    font-size: 13px;
}

/* Flex NUR auf dem inneren Wrapper (Tabellen-Layout-Falle, siehe Daten-Kaskade 19.07.2026);
   Abstände nach AI-Trading-Referenz — Icons stehen frei, nichts gequetscht. */
.llmc-acts[b-ob3sgiehvy] {
    display: inline-flex;
    gap: 6px;
    align-items: center;
    justify-content: flex-end;
}

/* Icon-Buttons 1:1 wie Daten-Kaskade: transparent, schmale Umrandung, Sekundär-Farbe;
   Primary-Umschlag erst im Hover; disabled Opacity .3 (fn-btn-secondary wäre gefüllt). */
.llmc-icon[b-ob3sgiehvy] {
    background: transparent;
    border: 1px solid var(--fn-border-strong);
    color: var(--fn-text-secondary);
}

.llmc-icon:hover:not(:disabled)[b-ob3sgiehvy] {
    background: transparent;
    color: var(--fn-primary);
    border-color: var(--fn-primary);
}

.llmc-icon:disabled[b-ob3sgiehvy] {
    opacity: .3;
}

/* Papierkorb: neutral, Danger erst im Hover (1:1 Daten-Kaskade). */
.llmc-del:hover:not(:disabled)[b-ob3sgiehvy] {
    color: var(--fn-danger);
    border-color: var(--fn-danger);
}

.llmc-grip[b-ob3sgiehvy] {
    display: grid;
    place-items: center;
    width: 22px;
    color: var(--fn-text-tertiary);
    cursor: grab;
}
.llmc-grip:active[b-ob3sgiehvy] { cursor: grabbing; }

.llmc-row-dragover td[b-ob3sgiehvy] { background: var(--fn-accent-soft); }

.llmc-empty[b-ob3sgiehvy] {
    color: var(--fn-text-tertiary);
    text-align: center;
    padding: 16px 10px;
}

/* Erklärungsblock unter der Tabelle (Vorschau: .hint). */
.llmc-note[b-ob3sgiehvy] {
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
    line-height: 1.5;
    margin: 12px 0 0;
    max-width: 720px;
}

.llmc-msg-ok[b-ob3sgiehvy] { color: var(--fn-success); }
.llmc-msg-err[b-ob3sgiehvy] { color: var(--fn-danger); }

.llmc-deny[b-ob3sgiehvy] {
    color: var(--fn-text-secondary);
    padding: 16px;
}
/* /Components/Admin/LoginSecurityAdmin.razor.rz.scp.css */
/* Login-Sicherheit — tokens only. Tabellen = geteilte fn-list, Buttons = FnButton (FINCOMP001);
   hier nur Seiten-/Karten-Layout (Karten-Muster wie SMTP/Stammdaten). */
.ls[b-ytogvuc75s] { width: 100%; padding: 22px 28px 80px; color: var(--fn-text); max-width: 1100px; display: flex; flex-direction: column; gap: 14px; }
.ls[b-ytogvuc75s]  .lucide { width: 16px; height: 16px; }
.ls-deny[b-ytogvuc75s] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 18px 20px; color: var(--fn-text-secondary); margin: 22px 28px; }

.ls-head[b-ytogvuc75s] { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ls-head h1[b-ytogvuc75s] { font-size: 20px; font-weight: 600; color: var(--fn-text); margin: 0; }
.ls-sub[b-ytogvuc75s] { color: var(--fn-text-secondary); font-size: 12.5px; margin: 4px 0 0; max-width: 640px; }

.ls-badge[b-ytogvuc75s] { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-family: var(--fn-font-mono); padding: 3px 10px; border-radius: var(--fn-radius-pill); border: 1px solid var(--fn-border-strong); white-space: nowrap; }
.ls-badge[b-ytogvuc75s]  .lucide { width: 12px; height: 12px; }
.ls-badge.ok[b-ytogvuc75s] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.ls-badge.warn[b-ytogvuc75s] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }

.ls-card[b-ytogvuc75s] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg); padding: 18px 22px;
    display: flex; flex-direction: column; gap: 12px;
}
.ls-card h4[b-ytogvuc75s] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.ls-card h4[b-ytogvuc75s]  .lucide { color: var(--fn-primary); }

.ls-scroll[b-ytogvuc75s] { overflow-x: auto; }
.ls-mono[b-ytogvuc75s] { font-family: var(--fn-font-mono); }
.ls-ok[b-ytogvuc75s] { color: var(--fn-success); }
.ls-fail[b-ytogvuc75s] { color: var(--fn-danger); font-weight: 600; }
.ls-row-action[b-ytogvuc75s] { width: 1%; white-space: nowrap; text-align: right; }
/* /Components/Admin/MarketDataExclusionList.razor.rz.scp.css */
/* Assets ohne Kursaktualisierung — Torwaechter (Niko 02.09.2026).
   Nur --fn-*-Tokens, keine erfundenen Farben. Der neutrale Grauton --fn-neutral und der
   Orangeton --fn-caution stammen aus der Ergaenzung der Design-Vorgabe vom selben Tag. */

.mex[b-hscppcvvy8] {
    margin-top: 18px;
    border-top: 1px solid var(--fn-border);
    padding-top: 14px;
}

.mex-head[b-hscppcvvy8] {
    display: flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    color: var(--fn-text);
}

.mex-title[b-hscppcvvy8] {
    font-size: 13px;
    font-weight: var(--fn-font-weight-medium);
}

.mex-count[b-hscppcvvy8] {
    font-family: var(--fn-font-mono, ui-monospace, monospace);
    font-size: 11px;
    color: var(--fn-text-secondary);
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: 10px;
    padding: 1px 7px;
}

.mex-lead[b-hscppcvvy8],
.mex-empty[b-hscppcvvy8] {
    margin: 6px 0 0;
    font-size: 11.5px;
    line-height: 1.55;
    color: var(--fn-text-secondary);
    max-width: 78ch;
}

.mex-chips[b-hscppcvvy8] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 12px 0 8px;
}

.mex-chip[b-hscppcvvy8] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: 12px;
    padding: 3px 9px;
    cursor: pointer;
}

.mex-chip:hover[b-hscppcvvy8] {
    border-color: var(--fn-border-strong);
    color: var(--fn-text);
}

.mex-chip.on[b-hscppcvvy8] {
    border-color: var(--fn-primary);
    color: var(--fn-text);
}

.mex-chip .n[b-hscppcvvy8] {
    font-family: var(--fn-font-mono, ui-monospace, monospace);
    font-size: 11px;
    color: var(--fn-neutral);
}

/* Breite Inhalte scrollen in ihrem eigenen Kasten - die Seite selbst scrollt nie seitwaerts. */
.mex-tablewrap[b-hscppcvvy8] {
    max-height: 340px;
    overflow: auto;
    border: 1px solid var(--fn-border);
    border-radius: 6px;
}

/* Aussehen kommt aus dem geteilten fn-list (Bauplan 3). Hier steht NUR, was diese Liste
   zusaetzlich braucht: ein mitlaufender Kopf beim Rollen und abgeschnittene lange Namen. */
.mex-table th[b-hscppcvvy8] {
    position: sticky;
    top: 0;
    z-index: 1;
}

.mex-table td[b-hscppcvvy8] {
    max-width: 32ch;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mex-table .mono[b-hscppcvvy8] {
    font-family: var(--fn-font-mono, ui-monospace, monospace);
}

.mex-table .muted[b-hscppcvvy8] {
    color: var(--fn-text-secondary);
}

/* --- Pflege: anlegen, Grund aendern, loeschen (Niko 02.09.2026) --- */

.mex-add[b-hscppcvvy8] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 10px 0 14px;
    padding: 12px;
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border);
    border-radius: 6px;
    max-width: 62ch;
}

.mex-hits[b-hscppcvvy8] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: 190px;
    overflow: auto;
    border: 1px solid var(--fn-border);
    border-radius: 4px;
}

.mex-hit[b-hscppcvvy8] {
    text-align: left;
    background: none;
    border: 0;
    border-bottom: 1px solid var(--fn-border);
    padding: 6px 9px;
    font-size: 11.5px;
    color: var(--fn-text);
    cursor: pointer;
}

.mex-hit:last-child[b-hscppcvvy8] { border-bottom: 0; }
.mex-hit:hover[b-hscppcvvy8] { background: var(--fn-bg-muted); }
.mex-hit.on[b-hscppcvvy8] { background: var(--fn-bg-muted); border-left: 2px solid var(--fn-primary); }
.mex-hit .mono[b-hscppcvvy8] { font-family: var(--fn-font-mono, ui-monospace, monospace); }
.mex-hit .muted[b-hscppcvvy8] { color: var(--fn-text-secondary); margin-left: 6px; }

.mex-actions[b-hscppcvvy8] {
    display: flex;
    gap: 8px;
}

/* Der Grund darf beim Bearbeiten breit sein - er traegt einen ganzen Satz, nicht ein Wort. */
.mex-inline[b-hscppcvvy8] { width: 100%; min-width: 22ch; }

.mex-origin[b-hscppcvvy8] { white-space: nowrap; }
.mex-own[b-hscppcvvy8]   { font-size: 11px; color: var(--fn-primary); }
.mex-fixed[b-hscppcvvy8] { font-size: 11px; color: var(--fn-neutral); }

.mex-act[b-hscppcvvy8] {
    display: flex;
    gap: 4px;
    white-space: nowrap;
}
/* /Components/Admin/MarketDataProviderDetail.razor.rz.scp.css */
.mdp-detail[b-7qnjmvnpo4] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--fn-border);
    border-radius: 11px;
    background: var(--fn-bg-alt);
    overflow: hidden;
}

.mdp-detail-head[b-7qnjmvnpo4] {
    padding: 13px 14px;
    background: var(--fn-bg-muted);
    border-bottom: 1px solid var(--fn-border);
}

.mdp-detail-label[b-7qnjmvnpo4] {
    font-family: var(--fn-font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}

.mdp-detail-name[b-7qnjmvnpo4] {
    margin: 4px 0 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--fn-text);
}

.mdp-detail-body[b-7qnjmvnpo4] {
    padding: 14px;
    overflow: auto;
}

.mdp-detail-row[b-7qnjmvnpo4] {
    margin-bottom: 13px;
}

.mdp-detail-row > label[b-7qnjmvnpo4] {
    display: block;
    margin-bottom: 5px;
    font-family: var(--fn-font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}

.mdp-readonly[b-7qnjmvnpo4] {
    min-height: 33px;
    padding: 7px 9px;
    border: 1px solid var(--fn-border);
    border-radius: 8px;
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.mdp-mono[b-7qnjmvnpo4] {
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
}

.mdp-rule[b-7qnjmvnpo4] {
    line-height: 1.45;
}

.mdp-capabilities-head[b-7qnjmvnpo4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 7px;
}

.mdp-capabilities-head > label[b-7qnjmvnpo4] {
    margin: 0;
}

.mdp-plus[b-7qnjmvnpo4] {
    font-size: 13px;
    line-height: 1;
}

.mdp-empty[b-7qnjmvnpo4] {
    padding: 14px;
    text-align: center;
    color: var(--fn-text-tertiary);
    font-size: 12.5px;
}
/* /Components/Admin/MarketDataProviders.razor.rz.scp.css */
.mdp[b-75h561h44h] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    padding-bottom: 28px;
}

/* Vier Kennzahlen der abgenommenen Vorschau: Providerstamm, Aktiv, kritische Faehigkeiten, Inaktiv. */
[b-75h561h44h] .mdp-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

[b-75h561h44h] .mdp-kpi {
    border: 1px solid var(--fn-border);
    border-radius: 11px;
    background: var(--fn-bg-alt);
    padding: 12px 13px;
}

[b-75h561h44h] .mdp-kpi-k {
    font-family: var(--fn-font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}

[b-75h561h44h] .mdp-kpi-v {
    margin-top: 5px;
    font-size: 25px;
    font-weight: 600;
    line-height: 1.1;
    color: var(--fn-text);
}

[b-75h561h44h] .mdp-kpi-d {
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.35;
    color: var(--fn-text-secondary);
}

@media (max-width: 980px) {
    [b-75h561h44h] .mdp-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.mdp-workspace[b-75h561h44h] {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(520px, 1fr);
    gap: 12px;
    align-items: start;
}

.mdp-card[b-75h561h44h] {
    overflow: hidden;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
}

.mdp-card-head[b-75h561h44h],
.mdp-capabilities-head[b-75h561h44h] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-muted);
}

.mdp-capabilities-head[b-75h561h44h] {
    border-top: 1px solid var(--fn-border);
}

.mdp-title[b-75h561h44h] {
    color: var(--fn-text);
    font-size: 14px;
    font-weight: var(--fn-font-weight-bold);
}

.mdp-desc[b-75h561h44h] {
    margin-top: 2px;
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.mdp-count[b-75h561h44h] {
    color: var(--fn-text-tertiary);
    font-size: 12px;
}

.mdp-table-wrap[b-75h561h44h] {
    overflow-x: auto;
}

.mdp-grid[b-75h561h44h] {
    min-width: 640px;
}

.mdp-grid tr.mdp-row-current td[b-75h561h44h] {
    background: var(--fn-accent-soft);
}

.mdp-number[b-75h561h44h] {
    width: 54px;
    text-align: center;
}

.mdp-number-badge[b-75h561h44h] {
    min-width: 27px;
    height: 27px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    border-radius: 8px;
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
    font-family: var(--fn-font-mono);
    font-size: 12px;
    font-weight: 700;
}

.mdp-provider-name[b-75h561h44h] {
    color: var(--fn-text);
    font-weight: 600;
}

.mdp-guid[b-75h561h44h] {
    display: block;
    margin-top: 3px;
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
}

.mdp-capability-chips[b-75h561h44h] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.mdp-capability-chips span[b-75h561h44h] {
    padding: 2px 6px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-pill);
    color: var(--fn-text-secondary);
    font-size: 10.5px;
}

.mdp-state[b-75h561h44h] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--fn-text-tertiary);
    font-size: 12px;
}

.mdp-state span[b-75h561h44h] {
    width: 7px;
    height: 7px;
    border-radius: var(--fn-radius-round);
    background: var(--fn-text-tertiary);
}

.mdp-state-active[b-75h561h44h] {
    color: var(--fn-success);
}

.mdp-state-active span[b-75h561h44h] {
    background: var(--fn-success);
}

/* Nur noch die Loeschaktion: der Aenderungsstift ist entfallen, weil die Auswahl der Zeile
   bereits der Aenderungsmodus ist (Niko 01.08.2026). */
.mdp-table-actions[b-75h561h44h] {
    width: 52px;
    text-align: right;
    white-space: nowrap;
}

.mdp-editor-grid[b-75h561h44h] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 16px;
}

.mdp-editor-grid > label[b-75h561h44h] {
    display: grid;
    gap: 5px;
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.mdp-status-control[b-75h561h44h] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 30px;
}

.mdp-switch[b-75h561h44h] {
    position: relative;
    width: 34px;
    height: 19px;
    display: inline-block;
}

.mdp-switch input[b-75h561h44h] {
    position: absolute;
    opacity: 0;
}

.mdp-track[b-75h561h44h] {
    position: absolute;
    inset: 0;
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-pill);
    background: var(--fn-bg);
}

.mdp-knob[b-75h561h44h] {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 13px;
    height: 13px;
    border-radius: var(--fn-radius-round);
    background: var(--fn-text-tertiary);
    transition: transform .15s ease;
}

.mdp-switch input:checked ~ .mdp-track[b-75h561h44h] {
    border-color: var(--fn-primary);
    background: var(--fn-accent-soft);
}

.mdp-switch input:checked ~ .mdp-knob[b-75h561h44h] {
    transform: translateX(15px);
    background: var(--fn-primary);
}

.mdp-switch input:disabled ~ span[b-75h561h44h] {
    opacity: .45;
}

.mdp-capability-list[b-75h561h44h] {
    display: grid;
    gap: 8px;
    max-height: 560px;
    overflow-y: auto;
    padding: 12px 14px;
}

.mdp-capability-card[b-75h561h44h] {
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
    padding: 10px;
}

.mdp-capability-disabled[b-75h561h44h] {
    opacity: .62;
}

.mdp-capability-card-head[b-75h561h44h],
.mdp-capability-actions[b-75h561h44h] {
    display: flex;
    align-items: center;
}

.mdp-capability-card-head[b-75h561h44h] {
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 9px;
}

.mdp-capability-actions[b-75h561h44h] {
    gap: 7px;
}

.mdp-capability-name[b-75h561h44h] {
    color: var(--fn-text);
    font-size: 12px;
    font-weight: var(--fn-font-weight-bold);
}

/* Belastbarer Status als Pille (Vorschau, Abnahmepunkt 20) - nicht das rohe Zugriffs-Enum als Text. */
.mdp-capability-state[b-75h561h44h] {
    display: inline-flex;
    align-items: center;
    margin-top: 3px;
    padding: 2px 7px;
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-pill);
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 8.5px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.mdp-capability-state.mdp-state-verified[b-75h561h44h] {
    border-color: var(--fn-success);
    background: var(--fn-success-soft);
    color: var(--fn-success);
}

.mdp-capability-state.mdp-state-warning[b-75h561h44h] {
    border-color: var(--fn-warning);
    background: var(--fn-warning-soft);
    color: var(--fn-warning);
}

.mdp-capability-state.mdp-state-blocked[b-75h561h44h] {
    border-color: var(--fn-danger);
    background: var(--fn-danger-soft);
    color: var(--fn-danger);
}

.mdp-capability-editor-grid[b-75h561h44h] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}

.mdp-capability-editor-grid > label[b-75h561h44h] {
    display: grid;
    min-width: 0;
    gap: 4px;
    color: var(--fn-text-tertiary);
    font-size: 9px;
}

.mdp-capability-evidence[b-75h561h44h] {
    grid-column: 1 / -1;
}

.mdp-empty[b-75h561h44h] {
    padding: 24px !important;
    text-align: center;
    color: var(--fn-text-tertiary);
}


.mdp-message[b-75h561h44h] {
    color: var(--fn-success);
}

.mdp-deny[b-75h561h44h] {
    padding: 16px;
    color: var(--fn-text-secondary);
}

@media (max-width: 980px) {
    .mdp-workspace[b-75h561h44h] {
        grid-template-columns: 1fr;
    }

    .mdp-editor-grid[b-75h561h44h] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .mdp-capability-editor-grid[b-75h561h44h],
    .mdp-editor-grid[b-75h561h44h] {
        grid-template-columns: 1fr;
    }
}

/* K3: Die Fussleiste steht auf Modulebene unter dem Workspace - links Hinweis, rechts die Aktionen.
   Vorher lag sie in der Editor-Karte und klebte ohne Innenabstand an deren Kante. */
[b-75h561h44h] .fn-form-foot {
    padding: 14px 2px 0;
}

.mdp-footer-hint[b-75h561h44h] {
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
}

.mdp-cap-none[b-75h561h44h] {
    color: var(--fn-text-tertiary);
}

/* Prüfzeitpunkt: Kalendertag und Uhrzeit stehen nebeneinander, weil es laut Vorgabe §5h kein Control
   für „Datum + Uhrzeit in einem Feld" gibt.
   Die Breite kommt aus den Spalten dieses Rasters, NICHT aus einer Regel auf die Klassennamen der
   beiden geteilten Controls — die gehören dem Vendor bzw. der geteilten Komponente und werden von
   einem Modul nie überschrieben (Vorgabe §0/§5h, Gate DESIGN001-REDEFINE). Beide Controls sind
   von sich aus width:100% und füllen deshalb genau ihre Spalte. */
.mdp-verified-at[b-75h561h44h] {
    display: grid;
    grid-template-columns: minmax(120px, 1fr) 92px;
    gap: 6px;
    align-items: center;
}
/* /Components/Admin/OcrRecognitionAdmin.razor.rz.scp.css */
/* OCR Belegerkennung — 1:1 zur abgenommenen VORSCHAU-OCR-Administration.html; tokens-only (FINLIST003),
   Karte auf --fn-bg-alt (FINLIST004). Maße der Fn*-Controls kommen aus fn-forms.css/fn-buttons.css. */

.ocr[b-c0iotnyejf] {
    max-width: 840px;
}

.ocr-deny[b-c0iotnyejf] {
    padding: 18px 0;
    color: var(--fn-text-secondary);
    font-size: 13px;
}

.ocr-card[b-c0iotnyejf] {
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    padding: 20px 22px;
}

.ocr-card-title[b-c0iotnyejf] {
    font-size: 15px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 4px;
}

.ocr-card-desc[b-c0iotnyejf] {
    font-size: 12.5px;
    color: var(--fn-text-secondary);
    margin: 0 0 16px;
}

.ocr-row[b-c0iotnyejf] {
    margin-bottom: 16px;
}

.ocr-label[b-c0iotnyejf] {
    display: block;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--fn-text);
    margin-bottom: 6px;
}

.ocr-label-hint[b-c0iotnyejf] {
    font-weight: 400;
    color: var(--fn-text-tertiary);
}

.ocr-help[b-c0iotnyejf] {
    font-size: 11.5px;
    color: var(--fn-text-tertiary);
    margin-top: 6px;
}

.ocr-help[b-c0iotnyejf]  b,
.ocr-help b[b-c0iotnyejf] {
    color: var(--fn-text-secondary);
}

.ocr-help code[b-c0iotnyejf] {
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: 4px;
    padding: 1px 5px;
}

/* extern-/lokal-Badge (Vorschau: gelb = Cloud/extern, grün = lokal) */
.ocr-badge[b-c0iotnyejf] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font: 600 10px var(--fn-font-mono);
    letter-spacing: .4px;
    padding: 2px 8px;
    border-radius: var(--fn-radius-pill);
    margin-left: 6px;
    vertical-align: middle;
}

.ocr-badge-external[b-c0iotnyejf] {
    background: var(--fn-warning-soft);
    border: 1px solid var(--fn-warning);
    color: var(--fn-warning);
}

.ocr-badge-local[b-c0iotnyejf] {
    background: var(--fn-success-soft);
    border: 1px solid var(--fn-success);
    color: var(--fn-success);
}

.ocr-dot[b-c0iotnyejf] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.ocr-dot-success[b-c0iotnyejf] { background: var(--fn-success); }
.ocr-dot-warning[b-c0iotnyejf] { background: var(--fn-warning); }
.ocr-dot-danger[b-c0iotnyejf] { background: var(--fn-danger); }

/* Key-Status (zentraler Anthropic-Key — kein eigenes Key-Feld) */
.ocr-keystatus[b-c0iotnyejf] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 38px;
    padding: 0 12px;
    background: var(--fn-input-bg);
    border: 1px solid var(--fn-input-border);
    border-radius: var(--fn-radius-sm);
    font-size: 12.5px;
    color: var(--fn-text-secondary);
}

.ocr-keystatus[b-c0iotnyejf]  b,
.ocr-keystatus b[b-c0iotnyejf] {
    color: var(--fn-text);
}

.ocr-keylink[b-c0iotnyejf] {
    color: var(--fn-primary);
    cursor: pointer;
    margin-left: 4px;
    text-decoration: none;
}

.ocr-keylink:hover[b-c0iotnyejf] {
    text-decoration: underline;
}

/* Verbindungstest-Zeile (echtes Ergebnis: grün/rot + Zeitstempel) */
.ocr-testrow[b-c0iotnyejf] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 8px;
}

[b-c0iotnyejf] .ocr-probe {
    height: 34px;
    padding: 0 13px;
    font-size: 12.5px;
    font-weight: 400;
    border: 1px solid var(--fn-border-strong);
    background: transparent;
    color: var(--fn-text-secondary);
    border-radius: var(--fn-radius-sm);
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

[b-c0iotnyejf] .ocr-probe:hover {
    color: var(--fn-primary);
    border-color: var(--fn-accent-line);
    background: transparent;
}

[b-c0iotnyejf] .ocr-probe svg {
    width: 14px;
    height: 14px;
}

.ocr-teststatus[b-c0iotnyejf] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-family: var(--fn-font-mono);
}

.ocr-teststatus.ok[b-c0iotnyejf] { color: var(--fn-success); }
.ocr-teststatus.fail[b-c0iotnyejf] { color: var(--fn-danger); }

.ocr-teststamp[b-c0iotnyejf] {
    color: var(--fn-text-tertiary);
}

/* Eingabefeld für den tessdata-Pfad in Mono (Vorschau .field.mono) */
[b-c0iotnyejf] .ocr-mono {
    font-family: var(--fn-font-mono);
    font-size: 12.5px;
}

.ocr-saved[b-c0iotnyejf] {
    margin-top: 12px;
    font-size: 12.5px;
    color: var(--fn-success);
    display: flex;
    align-items: center;
    gap: 7px;
}

.ocr-savefail[b-c0iotnyejf] {
    font-size: 12.5px;
    color: var(--fn-danger);
}
/* /Components/Admin/PerformanceMonitorPage.razor.rz.scp.css */
/* Performance-Monitor — tokens-only. Karten/Panels = --fn-bg-alt (Rollen-Regel Flächen). */
.pm[b-24syw09t17] { padding: 20px 24px 48px; color: var(--fn-text); }
.pm-deny[b-24syw09t17] { padding: 48px 24px; color: var(--fn-text-secondary); font-size: 14px; }

.pm-head[b-24syw09t17] { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.pm-head h1[b-24syw09t17] { font-size: 21px; font-weight: var(--fn-font-weight-bold); margin: 0; display: flex; align-items: center; gap: 10px; }
.pm-head h1[b-24syw09t17]  svg { width: 20px; height: 20px; color: var(--fn-primary); }

.pm-period[b-24syw09t17], .pm-tabs[b-24syw09t17] { display: inline-flex; }
.pm-period[b-24syw09t17] { margin-left: auto; background: var(--fn-bg-alt); border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-sm); overflow: hidden; }
.pm-period button[b-24syw09t17] { font: inherit; font-size: 12.5px; font-weight: var(--fn-font-weight-medium); color: var(--fn-text-secondary); background: none; border: 0; padding: 7px 14px; cursor: pointer; }
.pm-period button.on[b-24syw09t17] { background: var(--fn-primary); color: var(--fn-on-primary); font-weight: var(--fn-font-weight-bold); }

.pm-tabs[b-24syw09t17] { display: flex; gap: 0; border-bottom: var(--fn-border-width) solid var(--fn-border); margin-bottom: 18px; overflow-x: auto; }
.pm-tabs button[b-24syw09t17] { background: none; border: 0; border-bottom: 2px solid transparent; color: var(--fn-text-secondary); font: inherit; font-size: 13px; font-weight: var(--fn-font-weight-medium); padding: 10px 15px; cursor: pointer; white-space: nowrap; margin-bottom: -1px; }
.pm-tabs button.on[b-24syw09t17] { color: var(--fn-primary); border-bottom-color: var(--fn-primary); font-weight: var(--fn-font-weight-bold); }

.pm-muted[b-24syw09t17] { color: var(--fn-text-tertiary); font-size: 13px; }

/* verdict */
.pm-verdict[b-24syw09t17] { display: flex; gap: 0; border: var(--fn-border-width) solid var(--fn-border); border-left-width: 3px; border-radius: var(--fn-radius-sm); background: var(--fn-bg-alt); overflow: hidden; margin-bottom: 16px; }
.pm-verdict.is-good[b-24syw09t17] { border-left-color: var(--fn-success); }
.pm-verdict.is-warn[b-24syw09t17] { border-left-color: var(--fn-warning); }
.pm-verdict.is-bad[b-24syw09t17]  { border-left-color: var(--fn-danger); }
.pm-verdict .v-flag[b-24syw09t17] { display: flex; flex-direction: column; gap: 3px; padding: 16px 20px; min-width: 230px; border-right: var(--fn-border-width) solid var(--fn-border); }
.pm-verdict .v-flag .lbl[b-24syw09t17] { font-size: 11px; font-weight: var(--fn-font-weight-bold); letter-spacing: .12em; text-transform: uppercase; color: var(--fn-text-tertiary); }
.pm-verdict .v-flag .val[b-24syw09t17] { font-size: 20px; font-weight: var(--fn-font-weight-bold); }
.pm-verdict.is-good .v-flag .val[b-24syw09t17] { color: var(--fn-success); }
.pm-verdict.is-warn .v-flag .val[b-24syw09t17] { color: var(--fn-warning); }
.pm-verdict.is-bad  .v-flag .val[b-24syw09t17] { color: var(--fn-danger); }
.pm-verdict .v-flag .sub[b-24syw09t17] { font-size: 12px; color: var(--fn-text-secondary); }
.pm-verdict .v-body[b-24syw09t17] { flex: 1; padding: 16px 20px; display: flex; flex-direction: column; justify-content: center; gap: 10px; font-size: 14px; }
.pm-verdict .v-body .v-line[b-24syw09t17] { font-size: 14px; }

/* two-lens classification (Last vs. Regression) */
.pm-lenses[b-24syw09t17] { display: flex; gap: 10px; }
.pm-lens[b-24syw09t17] { flex: 1; border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-sm); padding: 9px 12px; background: var(--fn-bg); }
.pm-lens .lh[b-24syw09t17] { font-size: 11.5px; color: var(--fn-text-tertiary); display: flex; align-items: center; gap: 7px; }
.pm-lens .lh[b-24syw09t17]  svg { width: 14px; height: 14px; }
.pm-lens .lv[b-24syw09t17] { font-size: 13px; color: var(--fn-text); margin-top: 3px; font-weight: var(--fn-font-weight-medium); }
.pm-lens.muted .lv[b-24syw09t17] { color: var(--fn-text-secondary); font-weight: normal; }
.pm-lens.active[b-24syw09t17] { border-color: var(--fn-danger); }
.pm-lens.active .lv[b-24syw09t17] { color: var(--fn-danger); }

/* KPIs */
.pm-kpis[b-24syw09t17] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.pm-kpi[b-24syw09t17] { background: var(--fn-bg-alt); border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-sm); padding: 14px 16px; }
.pm-kpi .k-l[b-24syw09t17] { font-size: 11px; color: var(--fn-text-tertiary); text-transform: uppercase; letter-spacing: .5px; }
.pm-kpi .k-v[b-24syw09t17] { font-size: 23px; font-weight: var(--fn-font-weight-bold); letter-spacing: -.5px; margin-top: 6px; font-family: ui-monospace, monospace; }
.pm-kpi .k-d[b-24syw09t17] { font-size: 12px; margin-top: 5px; }
.pm-kpi .k-d.up[b-24syw09t17] { color: var(--fn-danger); } .pm-kpi .k-d.down[b-24syw09t17] { color: var(--fn-success); } .pm-kpi .k-d.flat[b-24syw09t17] { color: var(--fn-text-tertiary); }
.pm-kpi .k-b[b-24syw09t17] { font-size: 11px; color: var(--fn-text-tertiary); margin-top: 2px; }

/* cards + tables */
.pm-card[b-24syw09t17] { background: var(--fn-bg-alt); border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-sm); padding: 16px 18px; margin-bottom: 16px; }
.pm-card .c-head[b-24syw09t17] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.pm-card .c-head h3[b-24syw09t17] { font-size: 14px; font-weight: var(--fn-font-weight-bold); margin: 0; display: flex; align-items: center; gap: 8px; }
.pm-card .c-head h3[b-24syw09t17]  svg { width: 15px; height: 15px; color: var(--fn-text-secondary); }

.pm-tbl .num[b-24syw09t17] { text-align: right; font-family: ui-monospace, monospace; }
.pm-tbl .ver[b-24syw09t17] { font-family: ui-monospace, monospace; font-size: 11px; color: var(--fn-text-tertiary); }
.pm-tbl .pm-note[b-24syw09t17] { color: var(--fn-text-secondary); font-size: 12.5px; }
.badge[b-24syw09t17] { font-size: 11px; font-family: ui-monospace, monospace; padding: 2px 7px; border-radius: var(--fn-radius-sm); border: var(--fn-border-width) solid var(--fn-border); }
.badge.bad[b-24syw09t17] { color: var(--fn-danger); border-color: var(--fn-danger); }
.badge.warn[b-24syw09t17] { color: var(--fn-warning); border-color: var(--fn-warning); }
.badge.good[b-24syw09t17] { color: var(--fn-success); border-color: var(--fn-success); }

/* live + chart */
.pm-live[b-24syw09t17] { display: grid; grid-template-columns: 70px 1fr auto; align-items: center; gap: 10px; padding: 5px 2px; border-bottom: var(--fn-border-width) solid var(--fn-border); font-size: 12.5px; }
.pm-live:last-child[b-24syw09t17] { border-bottom: 0; }
.pm-live .t[b-24syw09t17] { font-family: ui-monospace, monospace; color: var(--fn-text-tertiary); font-size: 11px; }
.pm-live .ms[b-24syw09t17] { font-family: ui-monospace, monospace; font-weight: var(--fn-font-weight-bold); }
.pm-live .ms.bad[b-24syw09t17] { color: var(--fn-danger); }
.pm-chart[b-24syw09t17] { width: 100%; height: 200px; display: block; }
.pm-trend-meta[b-24syw09t17] { font-size: 11.5px; color: var(--fn-text-tertiary); margin-top: 8px; }
.pm-legend[b-24syw09t17] { display: flex; gap: 16px; font-size: 11.5px; color: var(--fn-text-tertiary); margin-top: 8px; }
.pm-legend .sw[b-24syw09t17] { display: inline-block; width: 16px; height: 3px; border-radius: 2px; vertical-align: middle; margin-right: 6px; }
.pm-legend .sw-p95[b-24syw09t17] { background: var(--fn-danger); }
.pm-legend .sw-avg[b-24syw09t17] { background: var(--fn-primary); }
.pm-legend .sw-base[b-24syw09t17] { background: var(--fn-text-tertiary); }
/* /Components/Admin/SessionPolicyAdmin.razor.rz.scp.css */
/* Session-Richtlinie (Shared-Login v2 §10) — 1:1 zur abgenommenen VORSCHAU. Nur --fn-*-Tokens,
   keine Hex-Farben. Seiten-/Karten-Layout scoped; Buttons kommen aus FnButton/FnFormFooter,
   Crumb/Back aus den geteilten settings-det-*/fn-back-Klassen (global). */
.sp[b-crrs0le6kr] { width: 100%; padding: 22px 28px 40px; color: var(--fn-text); max-width: 980px; display: flex; flex-direction: column; gap: 14px; }
.sp-deny[b-crrs0le6kr] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 18px 20px; color: var(--fn-text-secondary); }

/* Kategorie-Kacheln (wie LLM-/Data-Kaskade) */
.sp-tiles[b-crrs0le6kr] { display: flex; gap: 12px; flex-wrap: wrap; }
.sp-tile[b-crrs0le6kr] { width: 230px; padding: 14px; background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); display: flex; gap: 10px; align-items: flex-start; }
.sp-tile.active[b-crrs0le6kr] { border-color: var(--fn-primary); }
.sp-tile-soon[b-crrs0le6kr] { opacity: .6; }
.sp-ic[b-crrs0le6kr] { width: 30px; height: 30px; border-radius: 8px; background: var(--fn-accent-soft); color: var(--fn-primary); display: grid; place-items: center; flex: none; }
.sp-ic svg[b-crrs0le6kr] { width: 16px; height: 16px; }
.sp-tt[b-crrs0le6kr] { font-size: 13px; color: var(--fn-text); font-weight: var(--fn-font-weight-medium); }
.sp-td[b-crrs0le6kr] { font-size: 11px; color: var(--fn-text-secondary); margin-top: 2px; }

.sp-panel[b-crrs0le6kr] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius-lg); overflow: hidden; }
.sp-body[b-crrs0le6kr] { padding: 20px 22px; }
.sp-lead[b-crrs0le6kr] { color: var(--fn-text-secondary); font-size: 13px; margin: 0 0 18px; max-width: 760px; }
.sp-lead b[b-crrs0le6kr] { color: var(--fn-text); }

.sp-section[b-crrs0le6kr] { margin: 0 0 20px; }
.sp-section > h2[b-crrs0le6kr] { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--fn-text-tertiary); margin: 0 0 4px; display: flex; align-items: center; gap: 8px; font-weight: 700; }
.sp-section > h2 svg[b-crrs0le6kr] { width: 14px; height: 14px; color: var(--fn-primary); }
.sp-sub[b-crrs0le6kr] { margin: 0 0 12px; font-size: 12px; color: var(--fn-text-secondary); line-height: 1.5; max-width: 760px; }

.sp-grid[b-crrs0le6kr] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sp-cell[b-crrs0le6kr] { background: var(--fn-bg-muted); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 13px 14px; }
.sp-lab[b-crrs0le6kr] { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; color: var(--fn-text-tertiary); }
.sp-rec[b-crrs0le6kr] { margin-left: auto; font-size: 9.5px; font-weight: 700; letter-spacing: .3px; color: var(--fn-primary); background: var(--fn-accent-soft); border-radius: 999px; padding: 2px 8px; text-transform: none; }
.sp-inp[b-crrs0le6kr] { display: flex; align-items: center; margin-top: 9px; border: 1px solid var(--fn-input-border); background: var(--fn-input-bg); border-radius: 9px; overflow: hidden; }
.sp-inp:focus-within[b-crrs0le6kr] { border-color: var(--fn-primary); }
.sp-inp input[b-crrs0le6kr] { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--fn-text); font: 15px/1 var(--fn-font-mono); padding: 11px 12px; outline: none; }
.sp-unit[b-crrs0le6kr] { flex: none; padding: 0 13px; display: flex; align-items: center; align-self: stretch; color: var(--fn-text-secondary); font-size: 12px; font-weight: 600; background: var(--fn-input-bg); border-left: 1px solid var(--fn-input-border); }
.sp-selwrap[b-crrs0le6kr] { margin-top: 9px; }
.sp-sel[b-crrs0le6kr] { appearance: none; height: 42px; width: 100%; background: var(--fn-input-bg); border: 1px solid var(--fn-input-border); border-radius: 9px; color: var(--fn-text); font: 13.5px var(--fn-font); padding: 0 34px 0 12px; cursor: pointer; }
.sp-sel:focus[b-crrs0le6kr] { outline: none; border-color: var(--fn-primary); }
.sp-hint[b-crrs0le6kr] { margin: 9px 0 0; font-size: 11px; color: var(--fn-text-tertiary); line-height: 1.45; }
.sp-hint b[b-crrs0le6kr] { color: var(--fn-text-secondary); font-weight: 600; }

/* Remember-Me-Schalter */
.sp-toggle-row[b-crrs0le6kr] { display: flex; align-items: center; gap: 12px; margin-top: 11px; cursor: pointer; }
.sp-toggle-cb[b-crrs0le6kr] { position: absolute; opacity: 0; width: 0; height: 0; }
.sp-switch[b-crrs0le6kr] { flex: none; width: 40px; height: 23px; border-radius: 999px; background: var(--fn-input-bg); border: 1px solid var(--fn-border-strong); position: relative; transition: background .15s, border-color .15s; }
.sp-switch[b-crrs0le6kr]::after { content: ""; position: absolute; top: 2px; left: 2px; width: 17px; height: 17px; border-radius: 50%; background: var(--fn-text-tertiary); transition: left .15s, background .15s; }
.sp-toggle-cb:checked + .sp-switch[b-crrs0le6kr] { background: var(--fn-accent-soft); border-color: var(--fn-primary); }
.sp-toggle-cb:checked + .sp-switch[b-crrs0le6kr]::after { left: 19px; background: var(--fn-primary); }
.sp-tl[b-crrs0le6kr] { font-size: 12.5px; color: var(--fn-text-secondary); }
.sp-tl b[b-crrs0le6kr] { color: var(--fn-text); font-weight: 600; }

/* Auswirkungs-Box */
.sp-impact[b-crrs0le6kr] { margin: 6px 0 18px; border: 1px solid var(--fn-border-strong); background: var(--fn-bg-muted); border-radius: var(--fn-radius); padding: 14px 16px; }
.sp-impact h3[b-crrs0le6kr] { margin: 0 0 10px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--fn-primary); }
.sp-impact ul[b-crrs0le6kr] { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.sp-impact li[b-crrs0le6kr] { display: flex; gap: 9px; font-size: 12.5px; color: var(--fn-text-secondary); line-height: 1.45; }
.sp-check[b-crrs0le6kr] { flex: none; width: 15px; height: 15px; color: var(--fn-success); margin-top: 1px; }
.sp-impact li b[b-crrs0le6kr] { color: var(--fn-text); font-weight: 600; }
.sp-mono[b-crrs0le6kr] { font-family: var(--fn-font-mono); color: var(--fn-text); }

.sp-propose[b-crrs0le6kr] { max-width: 760px; padding: 11px 14px; border-left: 3px solid var(--fn-warning); background: var(--fn-accent-soft); border-radius: 0 var(--fn-radius) var(--fn-radius) 0; font-size: 12px; color: var(--fn-text); line-height: 1.5; }
.sp-propose b[b-crrs0le6kr] { color: var(--fn-warning); }
.sp-meta[b-crrs0le6kr] { font-size: 11px; color: var(--fn-text-tertiary); }
.sp-meta b[b-crrs0le6kr] { color: var(--fn-text-secondary); font-weight: 600; }

@media (max-width: 720px) { .sp-grid[b-crrs0le6kr] { grid-template-columns: 1fr; } }
/* /Components/Admin/SmtpSettingsAdmin.razor.rz.scp.css */
/* E-Mail-Einstellungen (SMTP) — tokens only. Buttons/Felder kommen aus den Fn*-Primitiven
   (FINCOMP001); hier nur Seiten-/Karten-Layout (Karten-Muster wie Verwaltung › Stammdaten). */
/* Eingebettet im DetailPanel: volle Breite, kein eigenes max-width/Seiten-Padding
   (der Slice liegt bereits im gepolsterten main-body — Niko 08.07.). */
.smtp[b-9hkca3i3g1] { width: 100%; color: var(--fn-text); display: flex; flex-direction: column; gap: 14px; }
.smtp[b-9hkca3i3g1]  .lucide { width: 16px; height: 16px; }
.smtp-deny[b-9hkca3i3g1] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 18px 20px; color: var(--fn-text-secondary); }

/* Karten-Kopf: Titel + Icon links, Status-Pill rechts (Muster wie „Datenexport — …"). */
.smtp-cardhead[b-9hkca3i3g1] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.smtp-cardhead h4[b-9hkca3i3g1] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.smtp-cardhead h4[b-9hkca3i3g1]  .lucide { color: var(--fn-primary); }

.smtp-badge[b-9hkca3i3g1] { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-family: var(--fn-font-mono); padding: 3px 10px; border-radius: var(--fn-radius-pill); border: 1px solid var(--fn-border-strong); white-space: nowrap; }
.smtp-badge[b-9hkca3i3g1]  .lucide { width: 12px; height: 12px; }
.smtp-badge.smtp-on[b-9hkca3i3g1] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.smtp-badge.smtp-fb[b-9hkca3i3g1] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.smtp-badge.smtp-off[b-9hkca3i3g1] { color: var(--fn-text-tertiary); }

/* Quelle-Hinweis: die angezeigten Werte stammen aus der Server-Umgebung (Fallback). */
.smtp-note[b-9hkca3i3g1] {
    display: flex; align-items: flex-start; gap: 9px; font-size: 12.5px;
    color: var(--fn-text-secondary); background: var(--fn-accent-soft);
    border: 1px solid var(--fn-primary); border-radius: var(--fn-radius-sm); padding: 10px 13px;
}
.smtp-note[b-9hkca3i3g1]  .lucide { width: 14px; height: 14px; color: var(--fn-primary); flex: none; margin-top: 2px; }

.smtp-card[b-9hkca3i3g1] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg); padding: 18px 22px;
    display: flex; flex-direction: column; gap: 14px;
}

.smtp-check[b-9hkca3i3g1] { display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--fn-text); cursor: pointer; }
.smtp-check input[b-9hkca3i3g1] { width: 15px; height: 15px; accent-color: var(--fn-primary); cursor: pointer; }

.smtp-grid[b-9hkca3i3g1] { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px 18px; align-items: start; }

.smtp-pw[b-9hkca3i3g1] { display: flex; align-items: center; gap: 8px; }
.smtp-pw[b-9hkca3i3g1]  input { flex: 1; min-width: 0; }
.smtp-eye[b-9hkca3i3g1] { background: var(--fn-input-bg); border: 1px solid var(--fn-input-border); border-radius: var(--fn-radius-sm); color: var(--fn-text-secondary); cursor: pointer; padding: 8px 10px; line-height: 0; }
.smtp-eye:hover[b-9hkca3i3g1] { color: var(--fn-text); }

.smtp-missing[b-9hkca3i3g1] { font-size: 12px; color: var(--fn-warning); }
.smtp-status-ok[b-9hkca3i3g1] { font-size: 12px; color: var(--fn-success); }
.smtp-status-error[b-9hkca3i3g1] { font-size: 12px; color: var(--fn-danger); }
/* /Components/Admin/SystemHealthPage.razor.rz.scp.css */
/* System Health — tokens-only. Karten = --fn-bg-alt (Rollen-Regel Flächen). */
.sh[b-mfemib9dqk] { padding: 20px 24px 48px; color: var(--fn-text); }
.sh-deny[b-mfemib9dqk] { padding: 48px 24px; color: var(--fn-text-secondary); font-size: 14px; }
.sh-muted[b-mfemib9dqk] { color: var(--fn-text-tertiary); font-size: 13px; }

.sh-head[b-mfemib9dqk] { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.sh-head h1[b-mfemib9dqk] { font-size: 21px; font-weight: var(--fn-font-weight-bold); margin: 0; display: flex; align-items: center; gap: 10px; }
.sh-head h1[b-mfemib9dqk]  svg { width: 20px; height: 20px; color: var(--fn-primary); }
.sh-host[b-mfemib9dqk] { margin-left: auto; display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--fn-text-secondary); font-family: ui-monospace, monospace; }
.sh-host[b-mfemib9dqk]  svg { width: 14px; height: 14px; color: var(--fn-text-tertiary); }

/* verdict */
.sh-verdict[b-mfemib9dqk] { display: flex; align-items: center; border: var(--fn-border-width) solid var(--fn-border); border-left-width: 3px; border-radius: var(--fn-radius-sm); background: var(--fn-bg-alt); overflow: hidden; margin-bottom: 18px; }
.sh-verdict.is-good[b-mfemib9dqk] { border-left-color: var(--fn-success); }
.sh-verdict.is-warn[b-mfemib9dqk] { border-left-color: var(--fn-warning); }
.sh-verdict.is-bad[b-mfemib9dqk]  { border-left-color: var(--fn-danger); }
.sh-verdict .v-flag[b-mfemib9dqk] { display: flex; flex-direction: column; gap: 3px; padding: 16px 20px; min-width: 230px; border-right: var(--fn-border-width) solid var(--fn-border); }
.sh-verdict .v-flag .lbl[b-mfemib9dqk] { font-size: 11px; font-weight: var(--fn-font-weight-bold); letter-spacing: .12em; text-transform: uppercase; color: var(--fn-text-tertiary); }
.sh-verdict .v-flag .val[b-mfemib9dqk] { font-size: 22px; font-weight: var(--fn-font-weight-bold); }
.sh-verdict.is-good .v-flag .val[b-mfemib9dqk] { color: var(--fn-success); }
.sh-verdict.is-warn .v-flag .val[b-mfemib9dqk] { color: var(--fn-warning); }
.sh-verdict.is-bad  .v-flag .val[b-mfemib9dqk] { color: var(--fn-danger); }
.sh-verdict .v-body[b-mfemib9dqk] { flex: 1; padding: 16px 20px; font-size: 14px; }

/* gauges */
.sh-gauges[b-mfemib9dqk] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.sh-card[b-mfemib9dqk] { background: var(--fn-bg-alt); border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-sm); padding: 16px 18px; margin-bottom: 14px; }
.sh-card .c-head[b-mfemib9dqk] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.sh-card .c-head h3[b-mfemib9dqk] { font-size: 13px; margin: 0; font-weight: var(--fn-font-weight-bold); display: flex; align-items: center; gap: 8px; text-transform: uppercase; letter-spacing: .06em; color: var(--fn-text-secondary); }
.sh-card .c-head h3[b-mfemib9dqk]  svg { width: 14px; height: 14px; }
.sh-card .gsub[b-mfemib9dqk] { font-size: 11.5px; color: var(--fn-text-tertiary); }
.gauge[b-mfemib9dqk] { display: flex; align-items: center; gap: 16px; }
.gauge .ring[b-mfemib9dqk] { width: 96px; height: 96px; flex: 0 0 96px; }
.gv[b-mfemib9dqk] { font-size: 24px; font-weight: var(--fn-font-weight-bold); letter-spacing: -.5px; font-family: ui-monospace, monospace; }
.good-c[b-mfemib9dqk] { color: var(--fn-success); } .warn-c[b-mfemib9dqk] { color: var(--fn-warning); } .bad-c[b-mfemib9dqk] { color: var(--fn-danger); }
.bar[b-mfemib9dqk] { height: 12px; border-radius: 6px; background: var(--fn-bg-muted); overflow: hidden; margin: 10px 0 6px; }
.bar > span[b-mfemib9dqk] { display: block; height: 100%; border-radius: 6px; }
.sh-spark[b-mfemib9dqk] { margin-top: 12px; } .sh-spark svg[b-mfemib9dqk] { width: 100%; height: 34px; display: block; }

/* process + db */
.sh-grid2[b-mfemib9dqk] { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sh-kv[b-mfemib9dqk] { width: 100%; border-collapse: collapse; font-size: 13px; }
.sh-kv td[b-mfemib9dqk] { padding: 7px 6px; border-bottom: var(--fn-border-width) solid var(--fn-border); color: var(--fn-text-secondary); }
.sh-kv tr:last-child td[b-mfemib9dqk] { border-bottom: 0; }
.sh-kv td.v[b-mfemib9dqk] { text-align: right; font-family: ui-monospace, monospace; color: var(--fn-text); }
.sh code[b-mfemib9dqk] { font-family: ui-monospace, monospace; background: var(--fn-bg-muted); border: var(--fn-border-width) solid var(--fn-border); padding: 1px 6px; border-radius: var(--fn-radius-sm); font-size: 11.5px; }
/* /Components/AiTrading/AiTradingPage.razor.rz.scp.css */
/* AI Trading cockpit — ported 1:1 from VORSCHAU-AI-Trading-V2.html (tokens only; shared fn-btn/fn-field for
   buttons/inputs; no primitive class names). */
.at[b-uvyhhl9gdx] { display: flex; flex-direction: column; color: var(--fn-text); }
/* Gemeinsamer horizontaler Einzug: obere Bänder teilen dieselbe linke UND rechte Kante wie die
   Positionskacheln (Niko 17.07.2026). Der Wrapper trägt den 18px-Einzug; die Bänder verlieren ihren Bleed. */
.at-shell[b-uvyhhl9gdx] { padding: 0 18px; display: flex; flex-direction: column; flex: 1; min-width: 0; }

.at-topbar[b-uvyhhl9gdx] { min-height: 56px; display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--fn-border-strong); background: var(--fn-bg-alt); flex-wrap: wrap; }
.at-title[b-uvyhhl9gdx] { display: flex; align-items: center; gap: 9px; min-width: 0; }
.at-title h1[b-uvyhhl9gdx] { font-size: 18px; margin: 0; white-space: nowrap; }
.at-crumb[b-uvyhhl9gdx] { color: var(--fn-text-tertiary); font-weight: 500; }
.at-spacer[b-uvyhhl9gdx] { flex: 1; }
.at-cluster[b-uvyhhl9gdx] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.chip[b-uvyhhl9gdx] { display: inline-flex; align-items: center; gap: 5px; height: 25px; padding: 0 9px; border: 1px solid var(--fn-border-strong); border-radius: 999px; background: var(--fn-bg-muted); color: var(--fn-text-secondary); font-size: 10.5px; font-weight: 600; white-space: nowrap; }
.chip.ok[b-uvyhhl9gdx] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.chip.warn[b-uvyhhl9gdx] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.chip.live[b-uvyhhl9gdx] { color: var(--fn-danger); border-color: var(--fn-danger); background: var(--fn-danger-soft); }
.chip.teal[b-uvyhhl9gdx] { color: var(--fn-cat-teal); border-color: var(--fn-cat-teal); background: var(--fn-cat-teal-soft); }
.chip.purple[b-uvyhhl9gdx] { color: var(--fn-cat-purple); border-color: var(--fn-cat-purple); background: var(--fn-cat-purple-soft); }
.status-dot[b-uvyhhl9gdx] { width: 7px; height: 7px; border-radius: 50%; background: var(--fn-success); }

.at-toolbar[b-uvyhhl9gdx] { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; padding: 12px 0 18px; border-bottom: 1px solid var(--fn-border); background: var(--fn-panel); }
.at-fld[b-uvyhhl9gdx] { display: flex; flex-direction: column; gap: 4px; }
.at-toolbar input.at-narrow[b-uvyhhl9gdx] { width: 132px; }
.at-fld > .lbl[b-uvyhhl9gdx] { font-size: 9.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--fn-text-tertiary); font-weight: 700; display: flex; align-items: center; gap: 5px; }
.at-fld.grow[b-uvyhhl9gdx] { min-width: 180px; }
.at-fld.conn[b-uvyhhl9gdx] { min-width: 230px; }
/* Segment-Schalter auf Watchlist-Gruppierungsgröße (font 12px / padding 6px 11px, keine feste Höhe). */
.at-seg[b-uvyhhl9gdx] {display: inline-flex; border: 1px solid var(--fn-border-strong); border-radius: 7px; overflow: hidden; background: var(--fn-input-bg); }
.at-seg button[b-uvyhhl9gdx] { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-width: 36px; padding: 6px 11px; border: 0; border-right: 1px solid var(--fn-border); background: transparent; color: var(--fn-text-secondary); cursor: pointer; white-space: nowrap; font: inherit; font-size: 12px; }
.at-seg button:last-child[b-uvyhhl9gdx] { border-right: 0; }
/* Auswahl NUR über Hintergrund/Farbe — kein font-weight-Wechsel, sonst verschieben sich die Nachbar-Buttons. */
.at-seg button.on[b-uvyhhl9gdx] { background: var(--fn-primary); color: var(--fn-on-primary); }
.at-seg.mode button.on[data-mode="Paper"][b-uvyhhl9gdx] { background: var(--fn-cat-purple); color: var(--fn-on-primary); }
.at-seg.mode button.on[data-mode="Live"][b-uvyhhl9gdx] { background: var(--fn-danger); color: var(--fn-on-primary); }
.at-tools[b-uvyhhl9gdx] { display: flex; align-items: center; gap: 6px; margin-left: auto; flex-wrap: wrap; }

/* Farbcodierter Laufzustand — grün aktiv · gelb pausiert · rot abgebrochen · grau bereit. */
.at-state[b-uvyhhl9gdx] { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--fn-border-strong); background: var(--fn-bg-muted); color: var(--fn-text-secondary); font-size: 11px; font-weight: 700; white-space: nowrap; margin-right: 2px; }
.at-state .dot[b-uvyhhl9gdx] { width: 8px; height: 8px; border-radius: 50%; background: var(--fn-text-tertiary); }
.at-state.st-run[b-uvyhhl9gdx] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.at-state.st-run .dot[b-uvyhhl9gdx] { background: var(--fn-success); box-shadow: 0 0 0 3px var(--fn-success-soft); }
.at-state.st-pause[b-uvyhhl9gdx] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.at-state.st-pause .dot[b-uvyhhl9gdx] { background: var(--fn-warning); }
.at-state.st-stop[b-uvyhhl9gdx] { color: var(--fn-danger); border-color: var(--fn-danger); background: var(--fn-danger-soft); }
.at-state.st-stop .dot[b-uvyhhl9gdx] { background: var(--fn-danger); }

/* Feste gleiche Breite, damit sich die rechten Buttons bei Textwechsel (Pause↔Fortsetzen) nicht verschieben. */
.at-tools .at-act[b-uvyhhl9gdx] { min-width: 104px; justify-content: center; height: 32px; border-radius: var(--fn-radius-sm); }
.at-tools .at-act :deep(svg)[b-uvyhhl9gdx] { width: 14px; height: 14px; }
.at-tools .at-wide[b-uvyhhl9gdx] { min-width: 190px; }
.at-tools .at-ring-warn[b-uvyhhl9gdx] { box-shadow: 0 0 0 2px var(--fn-warning); }
.at-tools .at-ring-danger[b-uvyhhl9gdx] { box-shadow: 0 0 0 2px var(--fn-danger); }

/* Steuerleiste-Neuordnung (Niko-Abnahme 19.07.2026): Trennstrich zwischen Status/Lauf-Gruppe und
   Gefahrenzone; Danger-Buttons neutral umrandet mit rotem Text — rote Fläche erst im Hover. */
.at-toolsep[b-uvyhhl9gdx] { width: 1px; height: 22px; background: var(--fn-border-strong); margin: 0 8px; }
.at-tools .at-danger[b-uvyhhl9gdx] { background: transparent; border: 1px solid var(--fn-border-strong); color: var(--fn-danger); }
.at-tools .at-danger:hover:not(:disabled)[b-uvyhhl9gdx] { background: var(--fn-danger-soft); border-color: var(--fn-danger); color: var(--fn-danger); }
.at-tools .at-danger:disabled[b-uvyhhl9gdx] { opacity: .35; }

/* Positionsrisiko/Trailing mit Auto-Chip (Niko 19.07.2026). */
.at-riskrow[b-uvyhhl9gdx] { display: inline-flex; gap: 6px; align-items: center; }
.at-toolbar input.at-xnarrow[b-uvyhhl9gdx] { width: 84px; }
.at-autochip[b-uvyhhl9gdx] { font-size: 11px; font-weight: 600; padding: 0 10px; height: 28px; border-radius: var(--fn-radius-pill);
    border: 1px solid var(--fn-border-strong); background: transparent; color: var(--fn-text-secondary);
    cursor: pointer; font-family: inherit; }
.at-autochip:hover[b-uvyhhl9gdx] { border-color: var(--fn-primary); color: var(--fn-primary); }
.at-autochip.on[b-uvyhhl9gdx] { border-color: var(--fn-primary); color: var(--fn-primary); background: var(--fn-accent-soft); }

/* ===== Status-Dialog (VORSCHAU-AI-Trading-Status-Dialog, Niko-Abnahme 19.07.2026) ===== */
.st-modal[b-uvyhhl9gdx] { width: min(980px, 100%); }
.st-head[b-uvyhhl9gdx] { gap: 14px; }
.st-sec .line1[b-uvyhhl9gdx] { display: flex; align-items: center; gap: 8px; }
.st-px[b-uvyhhl9gdx] { font-family: var(--fn-font-mono); font-size: 14px; font-weight: 700; color: var(--fn-text); white-space: nowrap; }
/* Export-Icons §7a: 8px-Rhythmus, Trenner exakt mittig zwischen HTML- und Schließen-Icon. */
.st-exp[b-uvyhhl9gdx] { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; }
.st-expsep[b-uvyhhl9gdx] { width: 1px; height: 20px; background: var(--fn-border-strong); }
.st-loading[b-uvyhhl9gdx] { padding: 34px 10px; text-align: center; color: var(--fn-text-secondary); font-size: 13px; }
/* Hintergrund-Aktualisierung: unbestimmter Balken (die Dauer der LLM-Kaskade ist nicht vorhersagbar —
   ein Prozentwert wäre erfunden) + Klartext, was gerade passiert. */
.st-progress[b-uvyhhl9gdx] { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.st-progress-bar[b-uvyhhl9gdx] { height: 4px; border-radius: 999px; background: var(--fn-bg-muted); overflow: hidden; }
.st-progress-bar span[b-uvyhhl9gdx] { display: block; width: 38%; height: 100%; border-radius: 999px; background: var(--fn-primary); animation: st-progress-slide-b-uvyhhl9gdx 1.25s ease-in-out infinite; }
.st-progress-txt[b-uvyhhl9gdx] { font-size: 10.5px; color: var(--fn-text-tertiary); }
@keyframes st-progress-slide-b-uvyhhl9gdx { 0% { margin-left: -38%; } 100% { margin-left: 100%; } }
.st-verdict[b-uvyhhl9gdx] { display: flex; gap: 12px; align-items: flex-start; padding: 13px 16px; border-radius: var(--fn-radius-sm);
    border: 1px solid var(--fn-border-strong); background: var(--fn-bg-muted); margin-bottom: 12px; }
.st-verdict .dot[b-uvyhhl9gdx] { flex: 0 0 12px; height: 12px; border-radius: 50%; background: var(--fn-text-tertiary); margin-top: 3px; }
.st-verdict b[b-uvyhhl9gdx] { display: block; font-size: 14px; margin-bottom: 2px; }
.st-verdict p[b-uvyhhl9gdx] { margin: 0; font-size: 12.5px; color: var(--fn-text-secondary); line-height: 1.5; }
.st-verdict.negative[b-uvyhhl9gdx] { background: var(--fn-danger-soft); border-color: var(--fn-danger); }
.st-verdict.negative .dot[b-uvyhhl9gdx] { background: var(--fn-danger); box-shadow: 0 0 8px var(--fn-danger); }
.st-verdict.positive[b-uvyhhl9gdx] { background: var(--fn-success-soft); border-color: var(--fn-success); }
.st-verdict.positive .dot[b-uvyhhl9gdx] { background: var(--fn-success); box-shadow: 0 0 8px var(--fn-success); }
.st-verdict.warning[b-uvyhhl9gdx] { background: var(--fn-warning-soft); border-color: var(--fn-warning); }
.st-verdict.warning .dot[b-uvyhhl9gdx] { background: var(--fn-warning); }
.st-chips[b-uvyhhl9gdx] { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.st-chip[b-uvyhhl9gdx] { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 600;
    padding: 4px 11px; border-radius: var(--fn-radius-pill); color: var(--fn-text-secondary); background: var(--fn-bg-muted); }
.st-chip[b-uvyhhl9gdx]::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.st-chip.negative[b-uvyhhl9gdx] { color: var(--fn-danger); background: var(--fn-danger-soft); }
.st-chip.positive[b-uvyhhl9gdx] { color: var(--fn-success); background: var(--fn-success-soft); }
.st-chip.warning[b-uvyhhl9gdx] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.st-chip.info[b-uvyhhl9gdx] { color: var(--fn-primary); background: var(--fn-accent-soft); }
.st-grid[b-uvyhhl9gdx] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.st-card[b-uvyhhl9gdx] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius-sm); padding: 12px 14px; }
.st-card h3[b-uvyhhl9gdx] { margin: 0 0 8px; font-size: 12px; text-transform: uppercase; letter-spacing: .6px;
    color: var(--fn-text-tertiary); display: flex; align-items: center; gap: 7px; }
.st-card h3 .n[b-uvyhhl9gdx] { margin-left: auto; font-family: var(--fn-font-mono); font-size: 10.5px; color: var(--fn-text-tertiary);
    background: var(--fn-bg-alt); border-radius: var(--fn-radius-pill); padding: 1px 8px; }
.st-item[b-uvyhhl9gdx] { display: flex; gap: 9px; padding: 6px 0; border-top: 1px solid var(--fn-border); font-size: 12.5px; }
.st-item:first-of-type[b-uvyhhl9gdx] { border-top: 0; }
.st-item .tone[b-uvyhhl9gdx] { flex: 0 0 8px; height: 8px; border-radius: 50%; margin-top: 5px; background: var(--fn-text-tertiary); }
.st-item .tone.positive[b-uvyhhl9gdx] { background: var(--fn-success); }
.st-item .tone.negative[b-uvyhhl9gdx] { background: var(--fn-danger); }
.st-item .tone.warning[b-uvyhhl9gdx] { background: var(--fn-warning); }
.st-item .tone.info[b-uvyhhl9gdx] { background: var(--fn-primary); }
.st-item .t[b-uvyhhl9gdx] { color: var(--fn-text-secondary); line-height: 1.45; }
.st-item .t .src[b-uvyhhl9gdx] { display: block; font-family: var(--fn-font-mono); font-size: 10px; color: var(--fn-text-tertiary); margin-top: 2px; }
.st-empty[b-uvyhhl9gdx] { font-size: 12.5px; color: var(--fn-text-tertiary); font-style: italic; }
.st-foot[b-uvyhhl9gdx] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 11px; color: var(--fn-text-tertiary); }
.st-llm[b-uvyhhl9gdx] { display: inline-flex; align-items: center; gap: 6px; font-family: var(--fn-font-mono); font-size: 10.5px;
    color: var(--fn-cat-purple); background: var(--fn-cat-purple-soft); border-radius: var(--fn-radius-pill); padding: 2px 10px; }
.st-meta[b-uvyhhl9gdx] { font-size: 11px; }
.st-actions[b-uvyhhl9gdx] { margin-left: auto; display: flex; gap: 8px; }

/* Positions-Status-Bubble (Niko 19.07.2026): grün Läuft · gelb Pausiert · rot Not-Aus. */
.pos-state[b-uvyhhl9gdx] { display: inline-flex; align-items: center; gap: 6px; padding: 3px 11px; border-radius: var(--fn-radius-pill);
    font-size: 11.5px; font-weight: 700; white-space: nowrap; }
.pos-state[b-uvyhhl9gdx]::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.pos-state.running[b-uvyhhl9gdx] { color: var(--fn-success); background: var(--fn-success-soft); }
.pos-state.paused[b-uvyhhl9gdx] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.pos-state.stopped[b-uvyhhl9gdx] { color: var(--fn-danger); background: var(--fn-danger-soft); }

.at-runband[b-uvyhhl9gdx] { display: flex; align-items: center; gap: 12px; padding: 7px 0; border-bottom: 1px solid var(--fn-border); background: var(--fn-bg-alt); min-height: 38px; flex-wrap: wrap; }
.run-state[b-uvyhhl9gdx] { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; }
.run-state .pulse[b-uvyhhl9gdx] { width: 8px; height: 8px; border-radius: 50%; background: var(--fn-text-tertiary); }
.run-state.running .pulse[b-uvyhhl9gdx] { background: var(--fn-success); box-shadow: 0 0 0 3px var(--fn-success-soft); }
.run-state.paused .pulse[b-uvyhhl9gdx] { background: var(--fn-warning); }
.run-meta[b-uvyhhl9gdx] { color: var(--fn-text-tertiary); font: 10.5px var(--fn-font-mono, monospace); }
.at-sep[b-uvyhhl9gdx] { width: 1px; height: 17px; background: var(--fn-border); }
.run-alert[b-uvyhhl9gdx] { margin-left: auto; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.switch[b-uvyhhl9gdx] { display: inline-flex; align-items: center; gap: 7px; color: var(--fn-text-secondary); font-size: 11px; }

.at-kpis[b-uvyhhl9gdx] { display: grid; grid-template-columns: repeat(8, minmax(105px, 1fr)); border-bottom: 1px solid var(--fn-border); background: var(--fn-bg-alt); }
.kpi[b-uvyhhl9gdx] { min-height: 66px; padding: 10px 12px; border-right: 1px solid var(--fn-border); }
.kpi:last-child[b-uvyhhl9gdx] { border-right: 0; }
.kpi .k[b-uvyhhl9gdx] { font-size: 9.5px; text-transform: uppercase; color: var(--fn-text-tertiary); font-weight: 700; letter-spacing: .04em; display: flex; align-items: center; gap: 4px; }
.kpi .v[b-uvyhhl9gdx] { font: 700 16px/1.3 var(--fn-font-mono, monospace); margin-top: 4px; white-space: nowrap; }
.kpi .s[b-uvyhhl9gdx] { font-size: 10px; color: var(--fn-text-tertiary); margin-top: 2px; white-space: nowrap; }
.up[b-uvyhhl9gdx] { color: var(--fn-success) !important; }
.down[b-uvyhhl9gdx] { color: var(--fn-danger) !important; }
.warning[b-uvyhhl9gdx] { color: var(--fn-warning) !important; }
.teal[b-uvyhhl9gdx] { color: var(--fn-cat-teal) !important; }
.spark[b-uvyhhl9gdx] { display: flex; align-items: flex-end; gap: 2px; height: 22px; margin-top: 5px; }
.spark i[b-uvyhhl9gdx] { width: 5px; background: var(--fn-cat-teal); border-radius: 1px; opacity: .85; }
.spark i.dd[b-uvyhhl9gdx] { background: var(--fn-warning); }

.at-workspace[b-uvyhhl9gdx] { padding: 14px 0 24px; flex: 1; min-width: 0; }
/* Reiter im Stil des Deployment Radars (Macro Gate/Scanner/…): 13px, tertiär → primär, Unterstrich 2px. */
.tabs-row[b-uvyhhl9gdx] { display: flex; align-items: center; border-bottom: 1px solid var(--fn-border); min-height: 37px; flex-wrap: wrap; margin-bottom: 18px; }
.tabs[b-uvyhhl9gdx] { display: flex; align-self: stretch; gap: 6px; }
.tab[b-uvyhhl9gdx] { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; padding: 8px 14px; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--fn-text-tertiary); cursor: pointer; font-family: inherit; }
.tab:hover[b-uvyhhl9gdx] { color: var(--fn-text-secondary); }
/* Kein Fokus-Kasten/Rahmen — nur der aria-selected-Unterstrich markiert aktiv (wie .mi-tab in Markt-Intelligenz). */
.tab:focus[b-uvyhhl9gdx] { outline: none; }
.tab:focus-visible[b-uvyhhl9gdx] { outline: none; border-bottom-color: var(--fn-primary); }
/* Aktiver Reiter = Nikos abgenommene Spec vom 17.07.2026
   (docs/concepts/VORSCHAU-AiTrading-UI-Korrekturen.html, Punkt 2): „Reiter wie Übersicht /
   Markt-Intelligenz — UNTERSTRICH STATT KASTEN". Prüfpunkt dort: „aktiver Reiter zeigt nur den
   Primary-Unterstrich, keinen Kasten/Rahmen". Vorbild .mi-tab (market-intelligence.css:235) und
   .rsn-tab (ReasoningPage.razor.css:19) — beide: aktiv = var(--fn-text) + Primary-Unterstrich.
   Die mit PR 241 nachtraeglich eingefuegte Kachel-Optik (accent-soft + border-radius oben) war eine
   Abweichung von dieser Abnahme und ist entfernt (29.07.2026). */
.tab[aria-selected="true"][b-uvyhhl9gdx] { color: var(--fn-text); border-bottom-color: var(--fn-primary); font-weight: 600; }
.count[b-uvyhhl9gdx] { min-width: 18px; height: 16px; padding: 0 5px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--fn-bg-muted); font: 9.5px var(--fn-font-mono, monospace); color: var(--fn-text-tertiary); }
.tab[aria-selected="true"] .count[b-uvyhhl9gdx] { color: var(--fn-text); }
.table-actions[b-uvyhhl9gdx] { margin-left: auto; display: flex; align-items: center; gap: 6px; padding-bottom: 5px; }
.table-actions .at-searchbox[b-uvyhhl9gdx] {
    width: 220px;
    height: 30px;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 11px;
    border: 1px solid var(--fn-border);
    border-radius: 8px;
    background: var(--fn-input-bg);
    color: var(--fn-text-tertiary);
}
.table-actions .at-searchbox:focus-within[b-uvyhhl9gdx] { border-color: var(--fn-primary); }
/* Icon-Ausrichtung (Niko 28.07.2026): lucide-interop befüllt das <i> mit einem <svg class="lucide">.
   Dieses SVG trägt KEIN Scope-Attribut — ein `i`-Selektor allein sizet nur den Host, das SVG bleibt bei
   seinen 24px und sitzt schief im Feld. Host als Flex-Box + Größe über ::deep auf das erzeugte SVG. */
.table-actions .at-searchbox i[b-uvyhhl9gdx] { width: 14px; height: 14px; flex: none; display: inline-flex; align-items: center; justify-content: center; }
.table-actions .at-searchbox[b-uvyhhl9gdx]  .lucide { width: 14px; height: 14px; display: block; flex: none; }
.table-actions .at-iconact[b-uvyhhl9gdx]  .lucide { width: 15px; height: 15px; display: block; flex: none; }
.table-actions .at-searchbox input[b-uvyhhl9gdx] {
    min-width: 0;
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--fn-text);
    font: 12.5px var(--fn-font, inherit);
}
.table-actions .at-searchbox input[b-uvyhhl9gdx]::placeholder { color: var(--fn-text-tertiary); }
.table-actions .at-iconact[b-uvyhhl9gdx] { width: 30px; height: 30px; min-width: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.table-actions .at-iconact i[b-uvyhhl9gdx] { width: 15px; height: 15px; display: inline-flex; align-items: center; justify-content: center; }
.table-actions .at-create[b-uvyhhl9gdx] { height: 30px; padding: 0 16px; }
.at-refresh-note[b-uvyhhl9gdx] { width: 100%; display: flex; align-items: center; justify-content: flex-end; gap: 5px; font-size: 10px; color: var(--fn-text-tertiary); margin-top: 2px; }
.at-refresh-note .live-dot[b-uvyhhl9gdx] { width: 6px; height: 6px; border-radius: 50%; background: var(--fn-success); box-shadow: 0 0 0 2px var(--fn-success-soft); }
/* Grün nur, wenn wirklich alle offenen Positionen einen Kurs haben — sonst Warnton (Niko 28.07.2026). */
.at-refresh-note .live-dot.warn[b-uvyhhl9gdx] { background: var(--fn-warning); box-shadow: 0 0 0 2px var(--fn-warning-soft); }

.tab-panel[hidden][b-uvyhhl9gdx] { display: none; }
.callout[b-uvyhhl9gdx] { border: 1px solid var(--fn-border); border-left: 3px solid var(--fn-primary); background: var(--fn-bg-alt); border-radius: 7px; padding: 10px 12px; color: var(--fn-text-secondary); font-size: 10.5px; margin-top: 10px; }
.callout.teal[b-uvyhhl9gdx] { border-left-color: var(--fn-cat-teal); background: var(--fn-cat-teal-soft); }
.callout.purple[b-uvyhhl9gdx] { border-left-color: var(--fn-cat-purple); background: var(--fn-cat-purple-soft); }
.callout strong[b-uvyhhl9gdx] { color: var(--fn-text); }

.protect-explainer[b-uvyhhl9gdx] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 10px; }
.pe-step[b-uvyhhl9gdx] { border: 1px solid var(--fn-border); border-radius: 8px; padding: 10px; background: var(--fn-bg-alt); }
.pe-step .pe-h[b-uvyhhl9gdx] { display: flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 700; color: var(--fn-cat-teal); }
.pe-step .pe-h .n[b-uvyhhl9gdx] { width: 16px; height: 16px; border-radius: 50%; background: var(--fn-cat-teal-soft); color: var(--fn-cat-teal); display: flex; align-items: center; justify-content: center; font: 700 9px var(--fn-font-mono, monospace); flex: none; }
.pe-step p[b-uvyhhl9gdx] { margin: 6px 0 0; font-size: 10px; color: var(--fn-text-tertiary); line-height: 1.45; }

.table-section[b-uvyhhl9gdx] { margin-top: 10px; border: 1px solid var(--fn-border); border-radius: 10px; background: var(--fn-bg-alt); overflow: hidden; }
.section-head[b-uvyhhl9gdx] { min-height: 38px; display: flex; align-items: center; gap: 8px; padding: 6px 11px; border-bottom: 1px solid var(--fn-border); background: var(--fn-panel); flex-wrap: wrap; }
.section-head h2[b-uvyhhl9gdx] { font-size: 12px; margin: 0; }
.section-head .sub[b-uvyhhl9gdx] { color: var(--fn-text-tertiary); font-size: 10.5px; }
.section-head .right[b-uvyhhl9gdx] { margin-left: auto; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.table-wrap[b-uvyhhl9gdx] { overflow-x: auto; max-width: 100%; }

.dir[b-uvyhhl9gdx] { font: 700 10px var(--fn-font-mono, monospace); }
.dir.long[b-uvyhhl9gdx] { color: var(--fn-success); }
.dir.short[b-uvyhhl9gdx] { color: var(--fn-danger); }
.mode-tag[b-uvyhhl9gdx] { display: inline-flex; border-radius: 4px; padding: 2px 5px; font: 700 9px var(--fn-font-mono, monospace); background: var(--fn-cat-purple-soft); color: var(--fn-cat-purple); }
.mode-tag.live[b-uvyhhl9gdx] { background: var(--fn-danger-soft); color: var(--fn-danger); }
.cell-stack b[b-uvyhhl9gdx], .cell-stack span[b-uvyhhl9gdx], .cell-stack small[b-uvyhhl9gdx] { display: block; }
.cell-stack b[b-uvyhhl9gdx] { font: 600 10.5px var(--fn-font-mono, monospace); }
.cell-stack small[b-uvyhhl9gdx] { font-size: 9px; color: var(--fn-text-tertiary); margin-top: 1px; }
.cell-stack small.quote-stamp[b-uvyhhl9gdx] { font: 8.5px var(--fn-font-mono, monospace); margin-top: 2px; }
.cell-stack small.quote-stamp.teal[b-uvyhhl9gdx] { color: var(--fn-cat-teal); }
.cell-stack small.quote-stamp.warning[b-uvyhhl9gdx] { color: var(--fn-warning); }
.fresh-dot[b-uvyhhl9gdx] { display: inline-block; width: 7px; height: 7px; border-radius: 50%; vertical-align: middle; margin-right: 2px; background: var(--fn-text-tertiary); }
.fresh-dot.fresh-green[b-uvyhhl9gdx] { background: var(--fn-success); box-shadow: 0 0 0 2px var(--fn-success-soft); }
.fresh-dot.fresh-yellow[b-uvyhhl9gdx] { background: var(--fn-warning); box-shadow: 0 0 0 2px var(--fn-warning-soft); }
.fresh-dot.fresh-red[b-uvyhhl9gdx] { background: var(--fn-danger); box-shadow: 0 0 0 2px var(--fn-danger-soft); }

.stopcell[b-uvyhhl9gdx] { display: flex; flex-direction: column; gap: 4px; }
.stop-venue[b-uvyhhl9gdx] { display: inline-flex; align-items: center; gap: 5px; font: 700 9.5px var(--fn-font-mono, monospace); color: var(--fn-cat-teal); }
.stop-venue.fin[b-uvyhhl9gdx] { color: var(--fn-warning); }
.stop-venue .dot[b-uvyhhl9gdx] { width: 6px; height: 6px; border-radius: 50%; background: var(--fn-cat-teal); }
.stop-venue.fin .dot[b-uvyhhl9gdx] { background: var(--fn-warning); }
.stop-venue.miss[b-uvyhhl9gdx] { color: var(--fn-danger); }
.stop-venue.miss .dot[b-uvyhhl9gdx] { background: var(--fn-danger); }
.lifecycle[b-uvyhhl9gdx] { display: flex; align-items: center; gap: 3px; max-width: 160px; }
.lc[b-uvyhhl9gdx] { flex: 1; height: 4px; border-radius: 2px; background: var(--fn-border-strong); }
.lc.done[b-uvyhhl9gdx] { background: var(--fn-cat-teal); }
.lc.now[b-uvyhhl9gdx] { background: var(--fn-cat-teal); box-shadow: 0 0 0 2px var(--fn-cat-teal-soft); }
.stop-meta[b-uvyhhl9gdx] { font: 9px var(--fn-font-mono, monospace); color: var(--fn-text-tertiary); }
.stop-meta b[b-uvyhhl9gdx] { color: var(--fn-text); font-weight: 600; }
.trail-live[b-uvyhhl9gdx] { color: var(--fn-cat-teal) !important; }

.reason-list[b-uvyhhl9gdx] { display: flex; flex-direction: column; }
.reason-row[b-uvyhhl9gdx] { display: grid; grid-template-columns: 150px 1fr; gap: 12px; padding: 9px 11px; border-bottom: 1px solid var(--fn-border); align-items: center; }
.reason-row:last-child[b-uvyhhl9gdx] { border: 0; }
.reason-row .kind[b-uvyhhl9gdx] { font: 700 10px var(--fn-font-mono, monospace); color: var(--fn-cat-teal); text-transform: uppercase; }
.reason-row .why[b-uvyhhl9gdx] { color: var(--fn-text-secondary); font-size: 10.5px; }
.empty-note[b-uvyhhl9gdx] { padding: 20px; text-align: center; color: var(--fn-text-tertiary); }
.at-foot[b-uvyhhl9gdx] { display: flex; align-items: flex-start; gap: 8px; margin-top: 9px; color: var(--fn-text-tertiary); font-size: 10px; }

.at-modal-layer[b-uvyhhl9gdx] { position: fixed; inset: 0; z-index: 20; background: var(--fn-shadow-hover); display: none; align-items: center; justify-content: center; padding: 18px; }
.at-modal-layer.open[b-uvyhhl9gdx] { display: flex; }
/* display:block + position:static sind PFLICHT: das globale bootstrap.min.css setzt
   .at-modal { display:none; position:fixed; top/left 0 } — ohne Override sind ALLE Dialoge dieser Seite
   unsichtbar bzw. kleben oben links statt zentriert im Flex-Layer (Fehlerbild 19.07.2026). */
.at-modal[b-uvyhhl9gdx] { display: block; position: static; height: auto; width: min(900px, 100%); max-height: 90vh; overflow: auto; border: 1px solid var(--fn-border-strong); border-radius: 10px; background: var(--fn-bg-alt); box-shadow: var(--fn-elevation-3); }
.at-modal-head[b-uvyhhl9gdx] { min-height: 48px; display: flex; align-items: center; gap: 8px; padding: 6px 14px; border-bottom: 1px solid var(--fn-border); background: var(--fn-bg-alt); }
.at-modal-head h2[b-uvyhhl9gdx] { font-size: 14px; margin: 0; flex: 1; }
.at-modal-body[b-uvyhhl9gdx] { padding: 15px; }
.confirm-body[b-uvyhhl9gdx] { margin: 0; color: var(--fn-text-secondary); font-size: 12px; line-height: 1.5; }
.at-modal-foot[b-uvyhhl9gdx] { display: flex; align-items: center; justify-content: flex-end; gap: 7px; padding: 10px 14px; border-top: 1px solid var(--fn-border); background: var(--fn-bg-alt); }
.detail-grid[b-uvyhhl9gdx] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.detail-block[b-uvyhhl9gdx] { border: 1px solid var(--fn-border); border-radius: 7px; background: var(--fn-bg-alt); padding: 11px; }
.detail-block h3[b-uvyhhl9gdx] { margin: 0 0 8px; font-size: 11px; display: flex; align-items: center; gap: 6px; }
.kv[b-uvyhhl9gdx] { display: grid; grid-template-columns: 1fr auto; gap: 5px 12px; font-size: 10.5px; }
.kv span:nth-child(odd)[b-uvyhhl9gdx] { color: var(--fn-text-tertiary); }
.kv span:nth-child(even)[b-uvyhhl9gdx] { text-align: right; font-family: var(--fn-font-mono, monospace); }
.guard-box[b-uvyhhl9gdx] { border: 1px solid var(--fn-cat-teal); background: var(--fn-cat-teal-soft); border-radius: 7px; padding: 10px; color: var(--fn-text-secondary); }
.guard-box strong[b-uvyhhl9gdx] { color: var(--fn-cat-teal); }

/* Position-eröffnen-Dialog (Halbautomatik). Felder/Selects nutzen die geteilten fn-* Primitive; Layout via Element-Selektoren (kein Primitive-Klassenname im scoped CSS). */
.op-preview[b-uvyhhl9gdx] { margin: 10px 0 0; padding: 8px 10px; border: 1px solid var(--fn-border); border-radius: 7px; background: var(--fn-bg-alt); }
.op-grid[b-uvyhhl9gdx] { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 16px; margin-top: 12px; }
.op-fld[b-uvyhhl9gdx] { display: flex; flex-direction: column; gap: 5px; }
.op-fld > span[b-uvyhhl9gdx] { font-size: 9.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--fn-text-tertiary); font-weight: 700; }
.op-inline[b-uvyhhl9gdx] { display: flex; gap: 6px; align-items: center; }
.op-inline input[b-uvyhhl9gdx] { flex: 1; min-width: 0; }
.op-inline select[b-uvyhhl9gdx] { flex: 0 0 96px; }
.op-msg[b-uvyhhl9gdx] { margin-top: 12px; padding: 9px 11px; border-radius: 7px; border: 1px solid var(--fn-border); background: var(--fn-bg-muted); color: var(--fn-text-secondary); font-size: 11px; }

/* Wertpapier-Suche im Dialog — Trefferliste im Muster des Chart-Studios (cw-search/cw-hits). */
.op-search[b-uvyhhl9gdx] { position: relative; margin-top: 12px; }
.op-search-box[b-uvyhhl9gdx] { display: flex; align-items: center; gap: 8px; }
/* Die Lupe liegt IM Feld: das <i> ist nur der Icon-Host, das SVG bekommt die Groesse (siehe ::deep unten). */
.op-search-box > i[b-uvyhhl9gdx] { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--fn-text-tertiary); display: inline-flex; width: 14px; height: 14px; }
.op-search-box[b-uvyhhl9gdx]  .lucide { width: 14px; height: 14px; display: block; }
.op-search-box input[b-uvyhhl9gdx] { width: 100%; padding-left: 31px; }
.op-hits[b-uvyhhl9gdx] { position: absolute; z-index: 5; left: 0; right: 0; top: calc(100% + 4px); max-height: 260px; overflow: auto; border: 1px solid var(--fn-border-strong); border-radius: 8px; background: var(--fn-bg-alt); box-shadow: var(--fn-elevation-3); }
.op-hit[b-uvyhhl9gdx] { display: flex; flex-direction: column; gap: 2px; width: 100%; padding: 7px 11px; border: 0; border-bottom: 1px solid var(--fn-border); background: none; text-align: left; cursor: pointer; color: var(--fn-text); font-family: inherit; }
.op-hit:last-child[b-uvyhhl9gdx] { border-bottom: 0; }
.op-hit:hover[b-uvyhhl9gdx] { background: var(--fn-bg-muted); }
.op-hit-meta[b-uvyhhl9gdx] { font-family: var(--fn-font-mono, monospace); font-size: 11px; color: var(--fn-text-secondary); }
.op-search-note[b-uvyhhl9gdx] { margin-top: 6px; font-size: 10.5px; color: var(--fn-text-tertiary); }

@media (max-width: 640px) { .op-grid[b-uvyhhl9gdx] { grid-template-columns: 1fr; } }
@media (max-width: 1180px) { .at-kpis[b-uvyhhl9gdx] { grid-template-columns: repeat(4, 1fr); } .protect-explainer[b-uvyhhl9gdx] { grid-template-columns: 1fr 1fr; } }
@media (max-width: 850px) { .at-kpis[b-uvyhhl9gdx] { grid-template-columns: repeat(2, 1fr); } .detail-grid[b-uvyhhl9gdx] { grid-template-columns: 1fr; } .reason-row[b-uvyhhl9gdx] { grid-template-columns: 1fr; gap: 4px; } }
/* /Components/Charting/ChartAnalysisAreas.razor.rz.scp.css */
/* Vier Bereiche 1:1 aus der abgenommenen Vorschau (.areas/.area/.rows/.row/.lv/.sc/.copy/.foot). */
.cw-areas[b-bjfwvpgrcz] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)); /* Niko 22.08.2026: symmetrisch wie die vier Werte */
    gap: 10px;
    padding-top: 10px;
}
.cw-rows[b-bjfwvpgrcz] { display: grid; gap: 7px; margin: 0; }
.cw-row[b-bjfwvpgrcz] {
    display: grid;
    grid-template-columns: minmax(100px, 1.3fr) minmax(64px, .7fr) minmax(60px, .6fr);
    gap: 8px;
    padding-top: 7px;
    border-top: var(--fn-border-width) solid var(--fn-border);
    font-size: 11.5px;
}
.cw-row:first-child[b-bjfwvpgrcz] { padding-top: 0; border-top: 0; }
.cw-row span[b-bjfwvpgrcz] { color: var(--fn-text-secondary); }
.cw-row b[b-bjfwvpgrcz] { font-family: var(--fn-font-mono); font-weight: var(--fn-font-weight-medium); color: var(--fn-text); }
.cw-row .long[b-bjfwvpgrcz], .cw-lv .long[b-bjfwvpgrcz], .cw-sc .long[b-bjfwvpgrcz] { color: var(--tc-long, var(--fn-success)); }
.cw-row .short[b-bjfwvpgrcz], .cw-lv .short[b-bjfwvpgrcz], .cw-sc .short[b-bjfwvpgrcz] { color: var(--tc-short, var(--fn-danger)); }
.cw-row .neutral[b-bjfwvpgrcz], .cw-sc .neutral[b-bjfwvpgrcz] { color: var(--fn-warning); }
.cw-sc .dim[b-bjfwvpgrcz] { color: var(--fn-text-tertiary); }
.cw-lv[b-bjfwvpgrcz], .cw-sc[b-bjfwvpgrcz] { display: grid; gap: 7px; margin: 0; }
.cw-lv div[b-bjfwvpgrcz], .cw-sc div[b-bjfwvpgrcz] { display: flex; justify-content: space-between; gap: 9px; font-size: 11.5px; }
.cw-lv dt[b-bjfwvpgrcz], .cw-sc dt[b-bjfwvpgrcz] { color: var(--fn-text-secondary); }
.cw-lv dd[b-bjfwvpgrcz], .cw-sc dd[b-bjfwvpgrcz] { margin: 0; text-align: right; font-family: var(--fn-font-mono); color: var(--fn-text); }
.cw-copy[b-bjfwvpgrcz] { color: var(--fn-text-secondary); font-size: 11.5px; line-height: 1.5; }
.cw-copy p[b-bjfwvpgrcz] { margin: 0 0 8px; font-size: 11.5px; line-height: 1.5; color: var(--fn-text-secondary); }
.cw-copy strong[b-bjfwvpgrcz] { color: var(--fn-text); }

@media (max-width: 1100px) {
    .cw-areas[b-bjfwvpgrcz] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .cw-areas[b-bjfwvpgrcz] { grid-template-columns: 1fr; }
    .cw-row[b-bjfwvpgrcz] { grid-template-columns: 1fr 1fr; }
    .cw-row span:first-child[b-bjfwvpgrcz] { grid-column: 1 / -1; }
}
/* /Components/Charting/ChartAnalysisMetrics.razor.rz.scp.css */
/* Vier Summenwerte 1:1 aus der abgenommenen Vorschau (.tiles-4/.metric). */
.cw-metrics[b-4ufl035ihe] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    padding-top: 12px;
}
.cw-metric[b-4ufl035ihe] {
    position: relative;
    min-width: 0;
    padding: 10px 12px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
}
.cw-metric .k[b-4ufl035ihe] { display: block; color: var(--fn-text-secondary); font-size: 11px; }
.cw-metric .v[b-4ufl035ihe] { display: block; margin: 3px 0; font: 600 18px var(--fn-font-mono); color: var(--fn-text); }
.cw-metric .v.long[b-4ufl035ihe] { color: var(--tc-long, var(--fn-success)); }
.cw-metric .v.short[b-4ufl035ihe] { color: var(--tc-short, var(--fn-danger)); }
.cw-metric .v.neutral[b-4ufl035ihe] { color: var(--fn-warning); }
.cw-metric .v.dim[b-4ufl035ihe] { color: var(--fn-text-tertiary); font-size: 14px; }
.cw-metric small[b-4ufl035ihe] { display: block; color: var(--fn-text-secondary); font-size: 11px; }
.cw-metric[b-4ufl035ihe]  .fn-help-link { position: absolute; top: 6px; right: 6px; }

@media (max-width: 1100px) {
    .cw-metrics[b-4ufl035ihe] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .cw-metrics[b-4ufl035ihe] { grid-template-columns: 1fr; }
}
/* /Components/Charting/ChartCanvas.razor.rz.scp.css */
.cw-chart-loading[b-jqtll3l8la] { position: absolute; inset: 0; display: grid; place-items: center; z-index: 20; background: var(--fn-bg-alt); }
.cw-chart-description[b-jqtll3l8la] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
/* /Components/Charting/ChartComparisonGroup.razor.rz.scp.css */
/* Vergleichskacheln — 1:1 zur Vorschau (.tiles-cmp/.cmp): Raster aus 210-px-Kacheln, linke Akzentkante in
   der Serienfarbe des Charts, aktive Serie mit Primaerrahmen und OHNE Badge (Niko 21.08.2026). */
.cw-cmp-tiles[b-v9r94ddn0v] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 10px;
    padding-top: 12px;
}

.cw-cmp[b-v9r94ddn0v] {
    position: relative;
    min-width: 0;
    padding: 10px 12px 11px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-left: 3px solid var(--tile-accent, var(--fn-border-strong));
    border-radius: var(--fn-radius);
    background: var(--fn-bg-muted);
}

.cw-cmp.active[b-v9r94ddn0v] {
    border-color: var(--fn-primary);
    border-left-color: var(--tile-accent);
    box-shadow: inset 0 0 0 1px var(--fn-primary);
}

.cw-cmp .cw-tile-name[b-v9r94ddn0v] {
    padding-right: 30px;
    font-size: 14px;
    font-weight: var(--fn-font-weight-bold);
    line-height: 1.2;
    color: var(--fn-text);
}

.cw-cmp .cw-tile-sym[b-v9r94ddn0v] {
    margin: 3px 0 9px;
    font-family: var(--fn-font-mono);
    font-size: 10.5px;
    color: var(--fn-text-tertiary);
}

.cw-cmp .cw-tile-sym .sep[b-v9r94ddn0v] { color: var(--fn-text-tertiary); }

.cw-cmp-actions[b-v9r94ddn0v] {
    position: absolute;
    top: 8px;
    right: 8px;
    display: flex;
    gap: 2px;
}

.cw-cmp .cw-tile-kv[b-v9r94ddn0v] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 14px;
    margin: 0;
}

.cw-cmp .cw-tile-kv > div[b-v9r94ddn0v] { display: flex; flex-direction: column; min-width: 0; }

.cw-cmp .cw-tile-kv dt[b-v9r94ddn0v] {
    font-size: 10px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}

.cw-cmp .cw-tile-kv dd[b-v9r94ddn0v] {
    margin: 0;
    font-family: var(--fn-font-mono);
    font-size: 12.5px;
    color: var(--fn-text);
    white-space: nowrap;
}

.cw-cmp .cw-tile-kv dd.pos[b-v9r94ddn0v] { color: var(--fn-success); }
.cw-cmp .cw-tile-kv dd.neg[b-v9r94ddn0v] { color: var(--fn-danger); }
/* Vergleich zugeschaltet, Serie fehlt: Warnton statt erfundener Werte (FAKE001). */
.cw-cmp .cw-tile-kv dd.miss[b-v9r94ddn0v] { color: var(--fn-warning); }

.cw-cmp-empty[b-v9r94ddn0v] {
    margin: 0;
    padding: 12px 0 0;
    color: var(--fn-text-tertiary);
    font-size: 12px;
}
/* /Components/Charting/ChartConsensusTile.razor.rz.scp.css */
/* Zwei-Spalten-Raster der Kachel „Analyst-Konsens & Fundamentaldaten" (Niko 22.08.2026: „aufteilen in
   zwei Spalten wie Aktueller Wert & Vergleich"). Masse 1:1 aus ChartCurrentValueTile.razor.css.

   WARUM EIGENE DATEI und keine Wiederverwendung von .cw-current-grid: Bereichsbezogenes CSS bindet nur
   an das Markup DER Komponente, in der es liegt. Ein .cw-current-grid aus ChartCurrentValueTile.razor.css
   traegt dort das Bereichs-Attribut und wuerde hier NICHTS treffen — genau der Fehler, der am 22.08.2026
   den Chart-Studio-Kopf ungestylt liess. */
.cw-consensus-grid[b-c1xmg2jqe0] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cw-consensus-group[b-c1xmg2jqe0] {
    min-width: 0;
    padding: 12px 13px 10px;
}

/* Trennlinie zwischen den Spalten (Niko 24.08.2026: „bei den zweispaltigen Kacheln bitte eine
   Trennlinie zwischen den Spalten"). Die Regel gab es schon — sie war nur nicht zu SEHEN:
   gemessen war der Rahmen-Token auf dem Kachelgrund ein Unterschied, den das Auge nicht aufloest.
   Jetzt --fn-border-strong; die Linie bleibt neutral, weil sie Spalten trennt und keinen Zustand
   meint (die 3px-Akzentlinie der Kursspanne traegt dort eine Aussage: Auf- oder Abwaerts). */
.cw-consensus-group + .cw-consensus-group[b-c1xmg2jqe0] {
    border-left: var(--fn-border-width) solid var(--fn-border-strong);
}

/* Spaltenueberschrift nach der abgenommenen Vorschau (Niko 28.08.2026): 11 px, 600,
   --fn-text-secondary. Sie ERSETZT die frueheren 10-px-Versalien mit letter-spacing .08em -
   10 px, 10.5 px und 12.5 px entfallen in dieser Gruppe ersatzlos, es bleiben vier Groessen:
   12 (Kacheltitel) - 11 (jede Label-Rolle) - 11.5 (Wert/Fliesstext) - 18 (EIN Grosswert). */
.cw-consensus-group h6[b-c1xmg2jqe0] {
    margin: 0 0 8px;
    color: var(--fn-text-secondary);
    font-size: 11px;
    font-weight: var(--fn-font-weight-bold);
}

/* Die Zeilen bringen ihren Innenabstand sonst aus .cw-kv-flat mit; in der Spalte sitzt er am Container. */
.cw-consensus-group[b-c1xmg2jqe0]  .cw-kv,
.cw-consensus-group .cw-kv[b-c1xmg2jqe0] {
    padding: 0;
}

/* Schmaler Wirt (geteilter Chart, Vollbild-Spalte): Spalten untereinander statt gequetscht. */
@media (max-width: 720px) {
    .cw-consensus-grid[b-c1xmg2jqe0] {
        grid-template-columns: minmax(0, 1fr);
    }

    .cw-consensus-group + .cw-consensus-group[b-c1xmg2jqe0] {
        border-left: 0;
        border-top: var(--fn-border-width) solid var(--fn-border);
    }
}

/* Schmale Spalte: Beschriftung UEBER den Wert statt Umbruch MITTEN IM WERT (Niko 23.08.2026).
   Gemessen auf fin-test: Kachel 407px -> Spalte 203px -> Wertspalte nur 69px, waehrend
   „163,85 – 236,26 $" rund 118px braucht. Der Wert brach dadurch in zwei Zeilen auseinander
   („163,85 –" / „236,26 $") und „5,20 Bio." / „$". Ein Kurswert darf nie zerrissen dargestellt
   werden — er ist eine Zahl, kein Fliesstext.

   Bezugsgroesse ist die SPALTE, nicht das Fenster: die Kachel ist im geteilten Chart, im Vollbild
   und in der Seitenleiste unterschiedlich breit, das Fenster sagt darueber nichts. */
.cw-consensus-group[b-c1xmg2jqe0] { container-type: inline-size; }

@container (max-width: 300px) {
    .cw-consensus-group[b-c1xmg2jqe0]  .cw-kv,
    .cw-consensus-group .cw-kv[b-c1xmg2jqe0] {
        grid-template-columns: minmax(0, 1fr);
        row-gap: 0;
    }

    .cw-consensus-group[b-c1xmg2jqe0]  .cw-kv dd,
    .cw-consensus-group .cw-kv dd[b-c1xmg2jqe0] {
        margin-bottom: 6px;
        white-space: nowrap;
    }
}
/* /Components/Charting/ChartCurrentValueTile.razor.rz.scp.css */
/* Aktueller Wert & Vergleich — Masse unveraendert aus der abgenommenen Fassung (vorher ChartInfoArea.razor.css). */
.cw-current-grid[b-2u52oy56w5] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cw-current-group[b-2u52oy56w5] {
    min-width: 0;
    padding: 12px 13px 10px;
}

/* Trennlinie zwischen den Spalten (Niko 24.08.2026: „bei den zweispaltigen Kacheln bitte eine
   Trennlinie zwischen den Spalten"). Die Regel gab es schon — sie war nur nicht zu SEHEN:
   gemessen war der Rahmen-Token auf dem Kachelgrund ein Unterschied, den das Auge nicht aufloest.
   Jetzt --fn-border-strong; die Linie bleibt neutral, weil sie Spalten trennt und keinen Zustand
   meint (die 3px-Akzentlinie der Kursspanne traegt dort eine Aussage: Auf- oder Abwaerts). */
.cw-current-group + .cw-current-group[b-2u52oy56w5] {
    border-left: var(--fn-border-width) solid var(--fn-border-strong);
}

/* Spaltenueberschrift nach der abgenommenen Vorschau (Niko 28.08.2026): 11 px, 600,
   --fn-text-secondary. Sie ERSETZT die frueheren 10-px-Versalien mit letter-spacing .08em -
   10 px, 10.5 px und 12.5 px entfallen in dieser Gruppe ersatzlos, es bleiben vier Groessen:
   12 (Kacheltitel) - 11 (jede Label-Rolle) - 11.5 (Wert/Fliesstext) - 18 (EIN Grosswert). */
.cw-current-group h6[b-2u52oy56w5],
.cw-comparison-series h6[b-2u52oy56w5] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 11px;
    font-weight: var(--fn-font-weight-bold);
}

.cw-current-group .cw-kv-flat[b-2u52oy56w5] {
    padding: 8px 0 0;
}

.cw-current-group dd[b-2u52oy56w5] {
    min-width: 0;
    overflow-wrap: anywhere;
    font-family: var(--fn-font-mono);
}

.cw-comparison-series[b-2u52oy56w5] {
    min-width: 0;
    padding: 10px 13px 13px;
    border-top: var(--fn-border-width) solid var(--fn-border);
}

.cw-comparison-rows[b-2u52oy56w5] {
    display: flex;
    flex-direction: column;
    gap: var(--cw-info-row-gap, 7px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.cw-comparison-rows li[b-2u52oy56w5] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 6px;
    align-items: baseline;
    min-width: 0;
}

.cw-comparison-idx[b-2u52oy56w5] {
    font-size: 11px;
    color: var(--fn-text-tertiary);
    text-transform: uppercase;
    letter-spacing: .05em;
    white-space: nowrap;
}

.cw-comparison-name[b-2u52oy56w5] {
    font-size: 11.5px;
    color: var(--fn-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cw-comparison-name .sym[b-2u52oy56w5] {
    font-family: var(--fn-font-mono);
    color: var(--fn-text-tertiary);
    font-size: 11px;
    margin-left: 5px;
}

.cw-comparison-val[b-2u52oy56w5] {
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    color: var(--fn-text);
    text-align: right;
    white-space: nowrap;
}

.cw-comparison-val.miss[b-2u52oy56w5] { color: var(--fn-warning); }
.cw-comparison-chg.miss[b-2u52oy56w5] { color: var(--fn-warning); }

.cw-comparison-chg[b-2u52oy56w5] {
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    text-align: right;
    white-space: nowrap;
    min-width: 64px;
}

.cw-comparison-chg.pos[b-2u52oy56w5] { color: var(--fn-success); }
.cw-comparison-chg.neg[b-2u52oy56w5] { color: var(--fn-danger); }

.cw-comparison-empty[b-2u52oy56w5] {
    margin: 0;
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
}

.cw-comparison-value[b-2u52oy56w5] { min-width: 0; }

@media (max-width: 700px) {
    .cw-current-grid[b-2u52oy56w5] {
        grid-template-columns: 1fr;
    }

    .cw-current-group + .cw-current-group[b-2u52oy56w5] {
        border-top: var(--fn-border-width) solid var(--fn-border);
        border-left: 0;
    }
}
/* /Components/Charting/ChartDirectionQuality.razor.rz.scp.css */
/* Long-/Short-Qualität 1:1 aus der abgenommenen Vorschau (.quality/.qrating/.stars/.qbar), Sterne nach
   Design-Vorgabe 1.6 §5c.1 (gefüllt gold, leer tertiär, 15 px, Abstand 2 px). */
.cw-quality[b-zcgycer4wq] {
    margin-top: 10px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-muted);
    overflow: hidden;
}
.cw-quality-body[b-zcgycer4wq] { padding: 13px 13px 12px; }
.cw-quality-grid[b-zcgycer4wq] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.cw-qrating[b-zcgycer4wq] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 4px 12px;
    align-items: center;
    padding: 10px 12px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-alt);
}
.cw-qrating > span[b-zcgycer4wq] { color: var(--fn-text-secondary); font-size: 11.5px; }
.cw-qval[b-zcgycer4wq] { display: flex; justify-content: flex-end; align-items: center; gap: 10px; min-width: 0; }
.cw-qval strong[b-zcgycer4wq] { font: 600 20px var(--fn-font-mono); font-variant-numeric: tabular-nums; }
.cw-qrating.long .cw-qval strong[b-zcgycer4wq] { color: var(--tc-long, var(--fn-success)); }
.cw-qrating.short .cw-qval strong[b-zcgycer4wq] { color: var(--tc-short, var(--fn-danger)); }
.cw-qrating.na .cw-qval strong[b-zcgycer4wq] { color: var(--fn-warning); font-size: 13px; }
.cw-stars[b-zcgycer4wq] { display: inline-flex; gap: 2px; }
.cw-star[b-zcgycer4wq] { display: inline-grid; place-items: center; }
.cw-star[b-zcgycer4wq]  .fn-icon, .cw-star[b-zcgycer4wq]  svg { width: 15px; height: 15px; }
.cw-star.filled[b-zcgycer4wq]  svg { stroke: var(--fn-cat-gold); fill: var(--fn-cat-gold); }
.cw-star.empty[b-zcgycer4wq]  svg { stroke: var(--fn-text-tertiary); fill: none; }
.cw-qrating small[b-zcgycer4wq] { grid-column: 1 / -1; color: var(--fn-text-secondary); font-size: 10.5px; }
.cw-qbar[b-zcgycer4wq] { grid-column: 1 / -1; height: 6px; border-radius: var(--fn-radius-pill); background: var(--fn-border); overflow: hidden; }
.cw-qbar i[b-zcgycer4wq] { display: block; height: 100%; border-radius: inherit; background: currentColor; }
.cw-qrating.long .cw-qbar i[b-zcgycer4wq] { color: var(--tc-long, var(--fn-success)); }
.cw-qrating.short .cw-qbar i[b-zcgycer4wq] { color: var(--tc-short, var(--fn-danger)); }
.cw-qnote[b-zcgycer4wq] { margin: 8px 0 0; color: var(--fn-text-secondary); font-size: 10.5px; line-height: 1.45; }
/* .sr-only ist global (fn-chart.css) — Befund 25.08.2026, gescopte Duplikate treffen andere Kacheln nicht. */

@media (max-width: 700px) {
    .cw-quality-grid[b-zcgycer4wq] { grid-template-columns: 1fr; }
}
/* /Components/Charting/ChartExplanationFan.razor.rz.scp.css */
/* Trendfächer-Kachel 1:1 aus der abgenommenen Vorschau (.fan-card/.roles/.role/.fan-demo/.fan-svg/.schem). */
.cw-fan-head-right[b-5u2ydj6nyu] { display: flex; gap: 6px; align-items: center; }
.cw-fan-controls[b-5u2ydj6nyu] { display: flex; border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-pill); overflow: hidden; }
.cw-fan-button[b-5u2ydj6nyu] { min-height: 28px; border: 0; border-right: var(--fn-border-width) solid var(--fn-border); background: transparent; color: var(--fn-text-secondary); padding: 0 10px; font-size: 11px; cursor: pointer; }
.cw-fan-button:last-child[b-5u2ydj6nyu] { border-right: 0; }
.cw-fan-button[aria-pressed="true"][b-5u2ydj6nyu] { background: var(--fn-primary); color: var(--fn-on-primary); }
.cw-roles[b-5u2ydj6nyu] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 0; }
.cw-role[b-5u2ydj6nyu] { padding: 9px; border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-sm); background: var(--fn-bg-alt); }
.cw-role i[b-5u2ydj6nyu] { display: block; width: 42px; margin-bottom: 7px; border-top: 2px solid var(--fan, var(--fn-success)); }
.cw-role i.base[b-5u2ydj6nyu] { border-top-style: dashed; opacity: .55; }
.cw-role i.structure[b-5u2ydj6nyu] { border-top-width: 3px; }
.cw-role i.accel[b-5u2ydj6nyu] { border-top-style: dotted; }
.cw-role strong[b-5u2ydj6nyu], .cw-role span[b-5u2ydj6nyu] { display: block; }
.cw-role strong[b-5u2ydj6nyu] { font-size: 11px; color: var(--fn-text); }
.cw-role span[b-5u2ydj6nyu] { margin-top: 4px; color: var(--fn-text-secondary); font-size: 11px; line-height: 1.4; }
.cw-fan-demo[b-5u2ydj6nyu] {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 14px;
    align-items: start;
    margin-top: 10px;
    padding-top: 10px;
    border-top: var(--fn-border-width) solid var(--fn-border);
}
.cw-fan-demo p[b-5u2ydj6nyu] { margin: 0; color: var(--fn-text-secondary); font-size: 11px; line-height: 1.45; }
.cw-fan-demo p strong[b-5u2ydj6nyu] { color: var(--fn-text); }
.cw-fan-demo p br[b-5u2ydj6nyu] { display: block; content: ""; margin-top: 6px; }
.cw-fan-svg[b-5u2ydj6nyu] { width: 220px; height: 72px; border: var(--fn-border-width) solid var(--fn-border); border-radius: 7px; background: var(--fn-bg-alt); }
.cw-fan-svg path[b-5u2ydj6nyu] { fill: none; stroke: var(--fan, var(--fn-success)); }
.cw-fan-svg path.counter[b-5u2ydj6nyu] { stroke: var(--fn-text-tertiary); }
.cw-schem[b-5u2ydj6nyu] { color: var(--fn-text-secondary); font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; margin: 6px 0 0; }

@media (max-width: 700px) {
    .cw-roles[b-5u2ydj6nyu] { grid-template-columns: 1fr; }
    .cw-fan-demo[b-5u2ydj6nyu] { grid-template-columns: 1fr; }
    .cw-fan-svg[b-5u2ydj6nyu] { width: 100%; }
}
@media (pointer: coarse) {
    .cw-fan-button[b-5u2ydj6nyu] { min-height: 44px; }
}
/* /Components/Charting/ChartExplanationPattern.razor.rz.scp.css */
/* Pattern-Kachel 1:1 aus der abgenommenen Vorschau (.timeline/.confirm). */
.cw-timeline[b-4bqzvdicld] { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.cw-timeline li[b-4bqzvdicld] { display: grid; grid-template-columns: 74px 1fr auto; gap: 8px; align-items: center; font-size: 11px; }
.cw-timeline time[b-4bqzvdicld] { color: var(--fn-text-secondary); font-family: var(--fn-font-mono); }
.cw-timeline span[b-4bqzvdicld] { color: var(--fn-text-secondary); }
.cw-timeline b[b-4bqzvdicld] { font-family: var(--fn-font-mono); font-weight: var(--fn-font-weight-medium); color: var(--fn-text); }
.cw-timeline b.long[b-4bqzvdicld] { color: var(--tc-long, var(--fn-success)); }
.cw-timeline b.short[b-4bqzvdicld] { color: var(--tc-short, var(--fn-danger)); }
.cw-timeline b.neutral[b-4bqzvdicld] { color: var(--fn-warning); }
.cw-confirm[b-4bqzvdicld] {
    display: grid;
    gap: 7px;
    margin-top: 10px;
    padding-top: 8px;
    border-top: var(--fn-border-width) solid var(--fn-border);
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--fn-text-secondary);
}
.cw-confirm div[b-4bqzvdicld] { display: grid; grid-template-columns: 92px 1fr; gap: 8px; }
.cw-confirm div > b[b-4bqzvdicld] { font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--fn-text-secondary); padding-top: 2px; }
.cw-confirm em[b-4bqzvdicld] { color: var(--fn-text); font-style: normal; font-weight: var(--fn-font-weight-medium); }

@media (max-width: 700px) {
    .cw-timeline li[b-4bqzvdicld] { grid-template-columns: 1fr auto; gap: 3px 8px; }
    .cw-timeline time[b-4bqzvdicld] { grid-column: 1 / -1; }
    .cw-confirm div[b-4bqzvdicld] { grid-template-columns: 1fr; }
}
/* /Components/Charting/ChartExplanationReason.razor.rz.scp.css */
/* Warum-Kachel 1:1 aus der abgenommenen Vorschau (.decision/.score/.why/.ev-cols/.ev). */
.cw-decision[b-lutbbb8mam] { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; }
.cw-score[b-lutbbb8mam] { font: 600 26px var(--fn-font-mono); color: var(--tc-long, var(--fn-success)); }
.cw-score small[b-lutbbb8mam] { display: block; color: var(--fn-text-secondary); font: 10px var(--fn-font); text-transform: uppercase; letter-spacing: .05em; }
.cw-score.short[b-lutbbb8mam] { color: var(--tc-short, var(--fn-danger)); }
.cw-score.neutral[b-lutbbb8mam] { color: var(--fn-warning); }
.cw-why[b-lutbbb8mam] { color: var(--fn-text-secondary); font-size: 11.5px; line-height: 1.5; }
.cw-why strong[b-lutbbb8mam] { color: var(--fn-text); }
.cw-ev-cols[b-lutbbb8mam] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.cw-ev[b-lutbbb8mam] { display: flex; justify-content: space-between; gap: 8px; padding: 5px 0; border-bottom: var(--fn-border-width) solid var(--fn-border); font-size: 11.5px; }
.cw-ev span[b-lutbbb8mam] { color: var(--fn-text-secondary); }
.cw-ev b[b-lutbbb8mam] { font-family: var(--fn-font-mono); font-weight: var(--fn-font-weight-medium); color: var(--fn-text); }
.cw-ev b.long[b-lutbbb8mam] { color: var(--tc-long, var(--fn-success)); }
.cw-ev b.short[b-lutbbb8mam] { color: var(--tc-short, var(--fn-danger)); }
.cw-ev b.neutral[b-lutbbb8mam] { color: var(--fn-warning); }
.cw-ev.disabled span[b-lutbbb8mam], .cw-ev.disabled b[b-lutbbb8mam] { color: var(--fn-text-tertiary); }

@media (max-width: 700px) {
    .cw-ev-cols[b-lutbbb8mam] { grid-template-columns: 1fr; }
}
/* /Components/Charting/ChartExplanationSignalHistory.razor.rz.scp.css */
/* Signalherkunft 1:1 aus der abgenommenen Vorschau (.sig-detail); Tabelle global .cw-tc-table (fn-chart.css). */
.cw-sig-detail[b-2hqdinsja5] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    padding: 10px;
    margin-bottom: 10px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 8px; /* Vorschau .sig-detail */
    background: var(--fn-bg-alt);
    font-size: 11.5px;
}
.cw-sig-detail:focus-visible[b-2hqdinsja5] { outline: none; box-shadow: var(--fn-focus-ring); }
.cw-sig-detail b[b-2hqdinsja5] { color: var(--fn-text); }
.cw-sig-detail span[b-2hqdinsja5] { color: var(--fn-text-secondary); }
/* .sr-only ist global (fn-chart.css) — Befund 25.08.2026, gescopte Duplikate treffen andere Kacheln nicht. */
/* /Components/Charting/ChartGroupDisclosure.razor.rz.scp.css */
/* The shared FnDisclosureGroup owns the container geometry. Only the Chart-specific directional
   marker remains in this compatibility adapter. */
.cw-grp-direction[b-ccitu8oo6b] { display: block; }
.cw-grp-direction.long[b-ccitu8oo6b] {
    width: 0;
    height: 0;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-bottom: 12px solid var(--fn-success);
}
.cw-grp-direction.short[b-ccitu8oo6b] {
    width: 0;
    height: 0;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-top: 12px solid var(--fn-danger);
}
.cw-grp-direction.neutral[b-ccitu8oo6b] {
    width: 14px;
    height: 3px;
    background: var(--fn-warning);
}
/* /Components/Charting/ChartInfoArea.razor.rz.scp.css */
/* Kachel-Kopf mit Kontexthilfe rechts (Muster Trend-Kompass, Niko 21.08.2026). */
.cw-tile-head-help[b-afasxj25ef] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
}

.cw-tile-head-help .cw-tile-head-text[b-afasxj25ef] {
    min-width: 0;
}

.cw-current-grid[b-afasxj25ef] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.cw-current-group[b-afasxj25ef] {
    min-width: 0;
    padding: 12px 13px 10px;
}

.cw-current-group + .cw-current-group[b-afasxj25ef] {
    border-left: var(--fn-border-width) solid var(--fn-border);
}

.cw-current-group h6[b-afasxj25ef],
/* Spaltenueberschrift nach der abgenommenen Vorschau (Niko 28.08.2026): 11 px, 600,
   --fn-text-secondary - ersetzt die 10-px-Versalien mit letter-spacing .08em. */
.cw-comparison-series h6[b-afasxj25ef] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 11px;
    font-weight: var(--fn-font-weight-bold);
}

.cw-current-group .cw-kv-flat[b-afasxj25ef] {
    padding: 8px 0 0;
}

.cw-current-group dd[b-afasxj25ef] {
    min-width: 0;
    overflow-wrap: anywhere;
    font-family: var(--fn-font-mono);
}

.cw-comparison-series[b-afasxj25ef] {
    min-width: 0;
    padding: 10px 13px 13px;
    border-top: var(--fn-border-width) solid var(--fn-border);
}

.cw-comparison-rows[b-afasxj25ef] {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
}

.cw-comparison-rows li[b-afasxj25ef] {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    gap: 10px;
    align-items: baseline;
    min-width: 0;
}

.cw-comparison-idx[b-afasxj25ef] {
    font-size: 11px;
    color: var(--fn-text-tertiary);
    text-transform: uppercase;
    letter-spacing: .05em;
    white-space: nowrap;
}

.cw-comparison-name[b-afasxj25ef] {
    font-size: 11.5px;
    color: var(--fn-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cw-comparison-name .sym[b-afasxj25ef] {
    font-family: var(--fn-font-mono);
    color: var(--fn-text-tertiary);
    font-size: 11px;
    margin-left: 5px;
}

.cw-comparison-val[b-afasxj25ef] {
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    color: var(--fn-text);
    text-align: right;
    white-space: nowrap;
}

.cw-comparison-val.miss[b-afasxj25ef] { color: var(--fn-warning); }

.cw-comparison-chg.miss[b-afasxj25ef] { color: var(--fn-warning); }

.cw-comparison-chg[b-afasxj25ef] {
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    text-align: right;
    white-space: nowrap;
    min-width: 64px;
}

.cw-comparison-chg.pos[b-afasxj25ef] { color: var(--fn-success); }
.cw-comparison-chg.neg[b-afasxj25ef] { color: var(--fn-danger); }

.cw-comparison-empty[b-afasxj25ef] {
    margin: 7px 0 0;
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
}

@media (max-width: 700px) {
    .cw-current-grid[b-afasxj25ef] {
        grid-template-columns: 1fr;
    }

    .cw-current-group + .cw-current-group[b-afasxj25ef] {
        border-top: var(--fn-border-width) solid var(--fn-border);
        border-left: 0;
    }
}
/* /Components/Charting/ChartPatternChannelAnalysis.razor.rz.scp.css */
.tc-pattern-metrics[b-y094ez7wid] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    padding-top: 12px;
}

.cw-metric[b-y094ez7wid] {
    min-width: 0;
    padding: 10px 12px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
}

.cw-metric .k[b-y094ez7wid] { display: block; color: var(--fn-text-secondary); font-size: 11px; }
.cw-metric .v[b-y094ez7wid] { display: block; margin: 3px 0; font: 600 18px var(--fn-font-mono); color: var(--fn-text); }
.cw-metric .v.long[b-y094ez7wid] { color: var(--tc-long, var(--fn-success)); }
.cw-metric .v.short[b-y094ez7wid] { color: var(--tc-short, var(--fn-danger)); }
.cw-metric .v.neutral[b-y094ez7wid] { color: var(--fn-warning); }

@media (max-width: 1100px) {
    .tc-pattern-metrics[b-y094ez7wid] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    .tc-pattern-metrics[b-y094ez7wid] { grid-template-columns: 1fr; }
}
/* /Components/Charting/ChartPatternChannelExplanation.razor.rz.scp.css */
.cw-explain-grid[b-gvwqymzvc0] {
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    gap: 12px;
    padding-top: 12px;
    align-items: start;
}

@media (max-width: 1100px) {
    .cw-explain-grid[b-gvwqymzvc0] { grid-template-columns: 1fr; }
}
/* /Components/Charting/ChartPatternGridDialog.razor.rz.scp.css */
/* Gitter-Dialog „Muster". Nur Anordnung — Liste, Chips, Suchleiste, Auswahl und Fensterhülle bringen
   ihr Aussehen selbst mit (fn-list.css, fn-forms.css, FnFilterChips, FnListToolbar, FnFloatingWindow). */

/* Volle Höhe des Fensterkörpers.

   WARUM `height: 100%` (Befund 25.08.2026): Ohne Höhenschranke wächst die Hülle mit der Tabelle, der
   innere Scrollbereich bekommt nie einen Grund zu scrollen — und stattdessen scrollt der Fensterkörper.
   Sichtbare Folge: Trefferzeile, „Gruppieren", Suchfeld und die Richtungs-Chips wandern beim Blättern
   nach oben aus dem Fenster. Genau das behauptete der Kommentar hier vorher NICHT zu tun. */
.pgd[b-r85inwumfr] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    height: 100%;
    min-height: 0;
}

.pgd-meta[b-r85inwumfr] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
}

/* Eine Zeile: Richtungs-Chips, Gruppierung, Zeitraum (Niko 25.08.2026 — Gruppierung/Zeitraum von der
   Werkzeugleiste hierher gezogen, auf Hoehe der Filter). */
.pgd-filter-row[b-r85inwumfr] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

/* Gleiche Masse wie der Gruppen-Trenner der Watchlisten (.wl-grp-divider, watchlists.css) — ein
   Bauteil, keine zweite Erfindung (R9). */
.pgd-vsep[b-r85inwumfr] {
    width: 1px;
    height: 24px;
    background: var(--fn-border-strong);
    flex: none;
}

.pgd-group[b-r85inwumfr] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--fn-text-secondary);
    font-size: 12px;
    white-space: nowrap;
}

/* Nur die Breite — Aussehen, Pfeil und Zustaende bringt das geteilte Auswahlfeld selbst mit.
   Ueber den Elementnamen statt ueber eine eigene Klasse: Eine modul-eigene *-select-Klasse waere ein
   Nachbau des Primitivs (Gate FINCOMP001). */
.pgd-group[b-r85inwumfr]  select { width: auto; min-width: 110px; }

/* Nur DIESER Bereich scrollt: Kopfzeile, Suche und Filter bleiben stehen. Die Bemerkungskachel
   scrollt bewusst mit — sie steht unter der Liste, nicht neben ihr. */
.pgd-scroll[b-r85inwumfr] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

.pgd-grid[b-r85inwumfr] { width: 100%; }

.pgd-grid thead th[b-r85inwumfr] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--fn-bg-alt);
}

/* Die Gruppenüberschrift ist ein <th> und erbt damit aus fn-list.css `text-transform: uppercase`
   und `letter-spacing` — gedacht für Spaltenköpfe, nicht für Namen. Ohne das Zurücksetzen stand dort
   „H A M M E R · 1 2 T R E F F E R" statt „Hammer · 12 Treffer" (Befund 25.08.2026). */
.pgd-group-row th[b-r85inwumfr] {
    text-align: left;
    padding: 8px;
    background: var(--fn-bg-muted);
    color: var(--fn-text);
    font-size: 12px;
    text-transform: none;
    letter-spacing: 0;
}

.pgd-group-count[b-r85inwumfr] {
    color: var(--fn-text-tertiary);
    font-weight: var(--fn-font-weight-regular, 400);
}

/* „Im Chart": markiert = normal, davor = gedämpft. Kein Warnton — der Treffer ist echt, er liegt nur
   außerhalb des gezeigten Ausschnitts. */
.pgd-marked[b-r85inwumfr] { color: var(--fn-text-secondary); }
.pgd-offscreen[b-r85inwumfr] { color: var(--fn-text-tertiary); font-style: italic; }

.pgd-empty[b-r85inwumfr] {
    margin: 0;
    padding: 14px 2px;
    color: var(--fn-text-tertiary);
    font-size: 12px;
}

/* Bemerkung als Kachel unter der Liste (Niko 25.08.2026). Kachelhülle und Kopfzeile kommen aus
   fn-chart.css (.cw-info-panel/.cw-tile-head) — hier steht nur, was diese Kachel eigen hat. */
.pgd-note[b-r85inwumfr] { margin-top: 12px; }

.pgd-note-body[b-r85inwumfr] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0 13px 13px;
}

.pgd-note-actions[b-r85inwumfr] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

@media (max-width: 700px) {
    /* Sechs Spalten passen auf einem schmalen Fenster nicht nebeneinander. Kartenansicht mit
       Beschriftung je Wert — dasselbe Muster wie die Kachel, kein Horizontal-Scroller. */
    .pgd-grid[b-r85inwumfr], .pgd-grid tbody[b-r85inwumfr], .pgd-grid tr[b-r85inwumfr], .pgd-grid td[b-r85inwumfr] { display: block; width: 100%; }
    .pgd-grid thead[b-r85inwumfr] { display: none; }
    .pgd-grid tbody[b-r85inwumfr] { display: grid; gap: 6px; }
    .pgd-grid tr[b-r85inwumfr] {
        padding: 7px 9px;
        border: var(--fn-border-width) solid var(--fn-border);
        border-radius: var(--fn-radius-sm);
        background: var(--fn-bg-muted);
    }
    .pgd-grid td[b-r85inwumfr] {
        display: grid;
        grid-template-columns: minmax(80px, .45fr) minmax(0, 1fr);
        gap: 8px;
        padding: 3px 0;
        border: 0;
    }
    .pgd-grid td[b-r85inwumfr]::before { content: attr(data-label); color: var(--fn-text-tertiary); font-family: var(--fn-font); }
    .pgd-group-row th[b-r85inwumfr] { display: block; }
}
/* /Components/Charting/ChartPatternTile.razor.rz.scp.css */
/* Kachel „Muster" — nur die Anordnung DIESER Kachel.

   Farbe, Symbolgroesse und Ausrichtung der Musterzeilen stehen bewusst GLOBAL in fn-chart.css: Der
   Gitter-Dialog rendert dieselben Zeilen und traegt eine andere Bereichskennung; bereichsbezogene
   Regeln haetten ihn nie erreicht. */
.cw-detail-patterns[b-h3mcwj6zsw] { padding: 10px 13px 13px; }
.pat-grid[b-h3mcwj6zsw] { width: 100%; table-layout: fixed; }
.pat-grid th:nth-child(1)[b-h3mcwj6zsw] { width: 42%; }
.pat-grid th:nth-child(2)[b-h3mcwj6zsw] { width: 36%; }
.pat-grid th:nth-child(3)[b-h3mcwj6zsw] { width: 22%; }
.pat-grid td[b-h3mcwj6zsw] { color: var(--fn-text-secondary); font: 11px var(--fn-font-mono); }
@media (max-width: 700px) {
    .pat-grid[b-h3mcwj6zsw],.pat-grid tbody[b-h3mcwj6zsw],.pat-grid tr[b-h3mcwj6zsw],.pat-grid td[b-h3mcwj6zsw] { display: block; width: 100%; }
    .pat-grid thead[b-h3mcwj6zsw] { display: table; width: 100%; table-layout: fixed; }
    .pat-grid tbody[b-h3mcwj6zsw] { display: grid; gap: 6px; margin-top: 8px; }
    .pat-grid tr[b-h3mcwj6zsw] { padding: 7px 9px; border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-sm); background: var(--fn-bg-muted); }
    .pat-grid thead tr[b-h3mcwj6zsw] { display: table-row; padding: 0; border: 0; background: transparent; }
    .pat-grid td[b-h3mcwj6zsw] { display: grid; grid-template-columns: minmax(80px,.45fr) minmax(0,1fr); gap: 8px; padding: 3px 0; border: 0; }
    .pat-grid td[b-h3mcwj6zsw]::before { content: attr(data-label); color: var(--fn-text-tertiary); font-family: var(--fn-font); }
}

/* Aktionen in der Kachelkopfzeile: das Gitter-Icon und die Kontexthilfe als Paar.

   Der Knopf selbst ist der geteilte Primitive FnButton (Ghost + fn-btn-icon) — dieses Modul definiert
   KEINE eigene Knopf-Klasse (Gate FINCOMP001). Hier steht nur, wie die beiden nebeneinander sitzen. */
.cw-tile-head-actions[b-h3mcwj6zsw] {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    flex: 0 0 auto;
}

/* Der sichtbare Zaehler unter den fuenf Zeilen. Er stand vorher als Knopf „Mehr ..." dort; jetzt ist
   er reine Auskunft, weil der Weg zu allen Treffern oben im Kopf liegt. */
.pat-count[b-h3mcwj6zsw] {
    margin: 6px 13px 10px;
    color: var(--fn-text-tertiary);
    font-size: 11px;
}
/* /Components/Charting/ChartRangePositionTile.razor.rz.scp.css */
/* Kachel „Position in der Spanne": Balken und Lesehilfe.

   Diese Regeln standen bis zum 24.08.2026 in ChartRangeTile.razor.css. Beim Herausloesen der Kachel
   ist das Markup mitgewandert - die Regeln nicht. Bereichsbezogenes CSS haengt am b-...-Merkmal der
   Komponente, der das Markup GEHOERT; die Regeln waeren hier still gestorben (gueltige Syntax, kein
   Compilerfehler, kein Test schlaegt an). Nachweis am kompilierten Buendel, nicht am Quelltext. */
/* Sechs abgenommene Aussagen aus EINEM in sich konsistenten Tageskerzen-Datensatz. Die beiden Gruppen
   bleiben auch bei langen Uebersetzungen als gleichmaessige 3er-Listen lesbar. */
.cw-position-groups[b-q41qysh4iy] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 12px 13px 8px;
}

.cw-position-group[b-q41qysh4iy] {
    min-width: 0;
    padding-right: 13px;
    border-right: var(--fn-border-width) solid var(--fn-border);
}

.cw-position-group + .cw-position-group[b-q41qysh4iy] {
    padding-right: 0;
    padding-left: 13px;
    border-right: 0;
}

/* Spaltenueberschrift nach der abgenommenen Vorschau (Niko 28.08.2026): 11 px, 600,
   --fn-text-secondary. Sie ERSETZT die frueheren 10-px-Versalien mit letter-spacing .08em -
   10 px, 10.5 px und 12.5 px entfallen in dieser Gruppe ersatzlos, es bleiben vier Groessen:
   12 (Kacheltitel) - 11 (jede Label-Rolle) - 11.5 (Wert/Fliesstext) - 18 (EIN Grosswert). */
.cw-position-group h6[b-q41qysh4iy] {
    margin: 0 0 5px;
    color: var(--fn-text-tertiary);
    font-size: 11px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .05em;
}

.cw-position-stat[b-q41qysh4iy] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 10px;
    min-height: 24px;
    padding: 3px 0;
}

.cw-position-stat span[b-q41qysh4iy] {
    color: var(--fn-text-tertiary);
    font-size: 11px;
    font-weight: var(--fn-font-weight-semibold);
}

.cw-position-stat b[b-q41qysh4iy] {
    overflow: hidden;
    color: var(--fn-text);
    font: var(--fn-font-weight-bold) 11.5px var(--fn-font-mono);
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cw-range-bar-slot[b-q41qysh4iy] {
    margin: 4px 13px 0;
    padding: 8px 9px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-alt);
}

.cw-position-footer[b-q41qysh4iy] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 13px 11px;
}

.cw-position-signal[b-q41qysh4iy] {
    min-width: 0;
    color: var(--fn-text-secondary);
    font-size: 11px;
    white-space: normal;
}

.cw-position-signal b[b-q41qysh4iy] {
    color: var(--fn-text);
}

.cw-reading-toggle[b-q41qysh4iy] {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 4px 7px;
    border: var(--fn-border-width) solid transparent;
    border-radius: var(--fn-radius-sm);
    background: transparent;
    color: var(--fn-primary);
    font-size: 11px;
    cursor: pointer;
}

.cw-reading-toggle:hover[b-q41qysh4iy] {
    border-color: var(--fn-border);
    background: var(--fn-hover);
}

.cw-reading-toggle:focus-visible[b-q41qysh4iy] {
    outline: 2px solid var(--fn-primary);
    outline-offset: 2px;
}

@container disclosure-group (max-width: 1139px) {
    .cw-position-footer[b-q41qysh4iy] {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .cw-position-signal[b-q41qysh4iy] {
        white-space: normal;
    }

    .cw-reading-toggle[b-q41qysh4iy] {
        width: 100%;
    }
}

@container disclosure-group (max-width: 420px) {
    .cw-position-groups[b-q41qysh4iy] {
        grid-template-columns: minmax(0, 1fr);
    }

    .cw-position-group[b-q41qysh4iy] {
        padding-right: 0;
        padding-bottom: 7px;
        border-right: 0;
        border-bottom: var(--fn-border-width) solid var(--fn-border);
    }

    .cw-position-group + .cw-position-group[b-q41qysh4iy] {
        padding-top: 7px;
        padding-left: 0;
        padding-bottom: 0;
        border-bottom: 0;
    }
}
/* /Components/Charting/ChartRangeReadingRow.razor.rz.scp.css */
/* order:0 ist ein bewusster, FESTER Wert statt eines abgeleiteten Zaehlwerts (Audit-Befund B6,
   abgenommene Vorschau .read): Die Kachel "Position in der Spanne" traegt implizit ebenfalls
   order:0, sodass beide ueber die Dokumentreihenfolge zuverlaessig zusammenbleiben - unabhaengig
   davon, welche Kacheln in den drei Versorgungslagen erscheinen oder entfallen. */
.cw-range-reading-row[b-hm8mlgslii] {
    grid-column: 1 / -1;
    order: 0;
    min-width: 0;
    padding: 10px 12px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-left: 3px solid var(--fn-text-tertiary);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
    font-size: 11.5px;
    line-height: 1.5;
}

.cw-range-reading-row b[b-hm8mlgslii] { color: var(--fn-text); }
.cw-range-reading-row.up[b-hm8mlgslii] { border-left-color: var(--fn-chart-up, var(--fn-success)); }
.cw-range-reading-row.down[b-hm8mlgslii] { border-left-color: var(--fn-chart-down, var(--fn-danger)); }
/* /Components/Charting/ChartRangeTile.razor.rz.scp.css */
/* Kursspanne: Kachel als Spalte, zweite Wertezeile direkt unter der ersten.

   Balken und Lesehilfe sind am 24.08.2026 in ChartRangePositionTile gewandert - ihre Regeln stehen
   deshalb dort und nicht mehr hier (bereichsbezogenes CSS gilt nur fuer das eigene Markup). */
.cw-range-tile[b-qsalfra7kz] {
    display: flex;
    flex-direction: column;
}

.cw-range-stats-second[b-qsalfra7kz] { margin-top: 10px; }
.cw-range-stats-second .v.pos[b-qsalfra7kz] { color: var(--fn-success); }
.cw-range-stats-second .v.neg[b-qsalfra7kz] { color: var(--fn-danger); }
/* /Components/Charting/ChartSelectionGroups.razor.rz.scp.css */
.cw-deep-controls[b-kl8sfhup3t] {
    display: grid;
    gap: 8px;
    padding: 12px 13px 0;
}

.cw-deep-progress-heading[b-kl8sfhup3t],
.cw-deep-progress-detail[b-kl8sfhup3t],
.cw-deep-choice-row[b-kl8sfhup3t],
.cw-deep-horizon[b-kl8sfhup3t] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.cw-deep-progress-heading[b-kl8sfhup3t],
.cw-deep-progress-detail[b-kl8sfhup3t],
.cw-deep-horizon[b-kl8sfhup3t],
.cw-deep-context-note[b-kl8sfhup3t] {
    color: var(--fn-text-secondary);
    font-size: var(--fn-font-size-sm);
}

.cw-deep-progress-heading strong[b-kl8sfhup3t] {
    color: var(--fn-primary);
    font-family: var(--fn-font-mono);
}

.cw-deep-progress[b-kl8sfhup3t] {
    width: 100%;
    height: 6px;
    accent-color: var(--fn-primary);
}

.cw-deep-choice-row[b-kl8sfhup3t] {
    flex-wrap: wrap;
    padding-top: 3px;
}

.cw-deep-horizon[b-kl8sfhup3t] {
    justify-content: flex-end;
}

.cw-deep-horizon :deep(select)[b-kl8sfhup3t] {
    width: auto;
    min-width: 170px;
}

.cw-deep-context-note[b-kl8sfhup3t] {
    margin: 0;
}

@media (max-width: 700px) {
    .cw-deep-choice-row[b-kl8sfhup3t],
    .cw-deep-horizon[b-kl8sfhup3t] {
        align-items: stretch;
        flex-direction: column;
    }

    .cw-deep-horizon :deep(select)[b-kl8sfhup3t] {
        width: 100%;
    }
}
/* /Components/Charting/ChartStrategySignalGroups.razor.rz.scp.css */
/* Kachelgruppe „Strategie-Signale" - Masse 1:1 aus der abgenommenen Vorschau
   VORSCHAU-Chart-Studio-Strategie-Signale-ORB-TurtleSoup.html (.grp-body/.grp-consensus/.tiles).
   Die Kachel selbst bringt ihr eigenes Blatt mit: Bereichsbezogenes CSS wirkt nicht in eine
   Kindkomponente hinein. */

.cw-sig-body[b-74mayq2am8] {
    padding: 14px;
}

/* Konsensblock im Warnton - er meldet einen Widerspruch, keinen Fehler. */
.cw-sig-consensus[b-74mayq2am8] {
    margin: 0 0 14px;
    padding: 10px 12px;
    border: var(--fn-border-width) solid var(--fn-warning);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-warning-soft);
    color: var(--fn-text);
    font-size: 12px;
    line-height: 1.55;
}

.cw-sig-consensus b[b-74mayq2am8] {
    color: var(--fn-warning);
    margin-right: 6px;
}

/* Drei nebeneinander; darunter zwei, dann eine - dieselben Umbruchpunkte wie in der Vorschau. */
.cw-sig-tiles[b-74mayq2am8] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 14px;
}

@media (max-width: 1180px) {
    .cw-sig-tiles[b-74mayq2am8] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .cw-sig-tiles[b-74mayq2am8] { grid-template-columns: 1fr; }
}

/* Die Kacheln sind Kindkomponenten - ihre Hoehe wird von hier aus gestreckt. */
.cw-sig-tiles[b-74mayq2am8]  .cw-sig-tile {
    height: 100%;
}
/* /Components/Charting/ChartStrategySignalTile.razor.rz.scp.css */
/* EINE Strategie-Kachel - Masse 1:1 aus der abgenommenen Vorschau
   VORSCHAU-Chart-Studio-Strategie-Signale-ORB-TurtleSoup.html
   (.tile/.tile-head/.tile-body/.cw-decision/.cw-score/.cw-ev-cols/.pos-hint). */

.cw-sig-tile[b-lsfje86dxm] {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    overflow: hidden;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-muted);
}

.cw-sig-tile-head[b-lsfje86dxm] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    padding: 11px 14px 10px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
    background: color-mix(in srgb, var(--fn-cat-blue) 7%, var(--fn-bg-muted));
}

.cw-sig-tile-text[b-lsfje86dxm] {
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 9px;
    flex-wrap: wrap;
}

.cw-sig-tile-text h5[b-lsfje86dxm] {
    margin: 0;
    color: var(--fn-text);
    font-size: 14px;
    line-height: 1.3;
    font-weight: var(--fn-font-weight-bold);
}

.cw-sig-tile-text p[b-lsfje86dxm] {
    margin: 2px 0 0;
    width: 100%;
    color: var(--fn-text-tertiary);
    font-family: var(--fn-font-mono);
    font-size: var(--fs-label);
    line-height: var(--lh-label);
}

.cw-sig-tile-body[b-lsfje86dxm] {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
    padding: 13px 14px 14px;
}

/* Entscheidung: die Zahl gross, die Begruendung daneben. */
.cw-sig-decision[b-lsfje86dxm] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: center;
    margin-bottom: 12px;
}

.cw-sig-score[b-lsfje86dxm] {
    font: 600 26px var(--fn-font-mono);
    color: var(--fn-success);
    text-align: center;
}

.cw-sig-score.short[b-lsfje86dxm] { color: var(--fn-danger); }

.cw-sig-score small[b-lsfje86dxm] {
    display: block;
    color: var(--fn-text-secondary);
    font: 10px var(--fn-font);
    text-transform: uppercase;
    letter-spacing: .05em;
}

.cw-sig-why[b-lsfje86dxm] {
    color: var(--fn-text-secondary);
    font-size: 11.5px;
    line-height: 1.5;
}

.cw-sig-why strong[b-lsfje86dxm] { color: var(--fn-text); }

/* Vier Belege nebeneinander, auf schmalen Flaechen zwei. */
.cw-sig-facts[b-lsfje86dxm] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px 14px;
    margin-bottom: 12px;
}

@media (max-width: 520px) {
    .cw-sig-facts[b-lsfje86dxm] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.cw-sig-fact[b-lsfje86dxm] {
    padding: 7px 0;
    border-top: var(--fn-border-width) solid var(--fn-border);
}

.cw-sig-fact .k[b-lsfje86dxm] {
    display: block;
    color: var(--fn-text-tertiary);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.cw-sig-fact .v[b-lsfje86dxm] {
    display: block;
    margin-top: 3px;
    font-family: var(--fn-font-mono);
    font-weight: var(--fn-font-weight-medium);
    font-size: 13px;
    color: var(--fn-text);
}

.cw-sig-fact .v.ok[b-lsfje86dxm] { color: var(--fn-success); }
.cw-sig-fact .v.warn[b-lsfje86dxm] { color: var(--fn-warning); }

/* Positionierung - Nikos Auftrag: „wie ich mich positionieren koennte". Sitzt unten in der Kachel,
   damit die Kacheln trotz unterschiedlich langer Begruendungen buendig abschliessen. */
.cw-sig-position[b-lsfje86dxm] {
    margin-top: auto;
    padding: 11px 12px;
    border: var(--fn-border-width) solid var(--fn-accent-line);
    border-left: 3px solid var(--fn-primary);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-accent-soft);
}

.cw-sig-position b[b-lsfje86dxm] {
    display: block;
    margin-bottom: 4px;
    color: var(--fn-primary);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.cw-sig-position p[b-lsfje86dxm] {
    margin: 0;
    color: var(--fn-text);
    font-size: 12px;
    line-height: 1.55;
}

.cw-sig-horizon[b-lsfje86dxm] {
    display: inline-block;
    margin-top: 7px;
    padding: 2px 8px;
    border-radius: var(--fn-radius-pill);
    border: var(--fn-border-width) solid var(--fn-border-strong);
    color: var(--fn-text-secondary);
    font-size: 10.5px;
    font-family: var(--fn-font-mono);
}

/* Hilfe-Knopf im Kachelkopf - Masse 1:1 aus der Vorschau (.ico-btn). */
.cw-sig-help[b-lsfje86dxm] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    padding: 0;
    border: var(--fn-border-width) solid transparent;
    border-radius: var(--fn-radius-sm);
    background: transparent;
    color: var(--fn-text-tertiary);
    cursor: pointer;
}

.cw-sig-help:hover[b-lsfje86dxm] {
    border-color: var(--fn-border);
    background: var(--fn-hover);
    color: var(--fn-primary);
}

.cw-sig-help:focus-visible[b-lsfje86dxm] {
    outline: none;
    box-shadow: var(--fn-focus-ring);
}

.cw-sig-help[b-lsfje86dxm]  .fn-icon,
.cw-sig-help[b-lsfje86dxm]  svg {
    width: 15px;
    height: 15px;
}
/* /Components/Charting/ChartStudioHeader.razor.rz.scp.css */
/* Trennstrich zwischen den Gruppen der Kopf-Aktionen (Bericht | Ausdocken | Groesse) - dieselbe
   Optik wie im schwebenden Fenster, damit beide Kopfleisten gleich gelesen werden.

   Diese Regel gehoert HIERHER und nicht in ChartStudioWorkspace.razor.css: bereichsbezogenes CSS
   trifft nur das Markup der eigenen Komponente. Im Workspace waere sie still wirkungslos gewesen -
   syntaktisch gueltig, ohne Compilerfehler, ohne sichtbaren Trennstrich (R5). */
.cs-control-sep[b-c922eevorj] {
    width: 1px;
    height: 20px;
    background: var(--fn-border-strong);
    margin: 0 5px;
    flex: 0 0 auto;
}
/* /Components/Charting/ChartStudioPage.razor.rz.scp.css */
/* Ladezustand der Chart-Studio-Seite. Liegt hier und NICHT in ChartStudioWorkspace.razor.css:
   Blazor bindet bereichsbezogenes CSS an das Markup DER Komponente — eine Regel der Arbeitsflaeche
   erreicht das Markup dieser Seite nicht (Befund 22.08.2026). */
.cs-empty[b-6dbqq7r689] {
    display: flex; align-items: center; justify-content: center; gap: 10px;
    min-height: calc(100vh - 200px);
    color: var(--fn-text-tertiary); font-size: 14px;
}

/* Text neben dem Fortschrittszeichen — kein eigener Absatzabstand, damit beides auf einer Linie sitzt. */
.cs-empty p[b-6dbqq7r689] { margin: 0; }
/* /Components/Charting/ChartStudioWorkspace.razor.rz.scp.css */
/* Chart-Studio = dünner Host des ChartPanel (Preset FullWorkspace). Nur noch Seitenkopf, Vollbild-Umschalter
   und „Mehr sehen"; Raster/Toolbar/Suche/Kontextmenü liegen im ChartPanel (fn-chart.css). Nur var(--fn-*). */
.cs-shell[b-yjj6eg2ixa] {
    /* Im normalen Seitenmodus muss die Hoehe aus dem realen Dokumentfluss entstehen. Als
       begrenzter Flex-Container schrumpfte .cs-body auf Viewporthoehe; dessen sichtbarer Inhalt
       lief dann ueber das Flex-Element hinaus und der Safe-Area-Spacer landete rund 2.000 px vor
       dem tatsaechlichen Seitenende. */
    display: block;
    min-height: 0;
    /* Platz fuer die fest am unteren Rand liegende Log-Leiste (Niko 24.08.2026, Bildschirmfoto
       „Chart-Studio-Unten"): Seit der innere Scrollbereich der Buehne entfallen ist, scrollt die
       SEITE — und ihr Ende rutschte unter die Leiste. Gemessen waren 20 px der letzten Zeile der
       Positionsgruppe verdeckt. Das Mass kommt aus log-panel.css, damit hier keine 32 stehen,
       die dort spaeter jemand aendert. */
}

/* Nur die beiden ueberlagernden Groessenstufen sind bewusst begrenzte, intern scrollende
   Flex-Container. Der normale Seitenmodus bleibt davon unberuehrt. */
.cs-shell.cs-workspace-expanded[b-yjj6eg2ixa],
.cs-shell.cs-viewport-expanded[b-yjj6eg2ixa] {
    display: flex;
    flex-direction: column;
    scroll-padding-block-end: calc(var(--fn-log-panel-height, 0px) + 12px);
}

.cs-log-safe-area[b-yjj6eg2ixa] {
    flex: 0 0 calc(var(--fn-log-panel-height, 32px) + 12px);
    height: calc(var(--fn-log-panel-height, 32px) + 12px);
    pointer-events: none;
}

/* Die feste Log-Leiste verkleinert die sichtbare Scrollflaeche, nicht aber den geometrischen
   Viewport. scrollIntoView und Tastaturfokus hielten deshalb eine Kachel bzw. ihren letzten
   Schalter fuer sichtbar, obwohl die Leiste darueberlag. Der Aussenabstand gilt im normalen
   Dokument-Scroll; scroll-padding oben greift in den beiden intern scrollenden Groessenstufen. */
.cs-shell[b-yjj6eg2ixa]  .cw-detail-tile,
.cs-shell[b-yjj6eg2ixa]  .cw-reading-toggle {
    scroll-margin-block-end: calc(var(--fn-log-panel-height, 0px) + 12px);
}

/* Kopf: Titel (Icon + Modulname + Identität des aktiven Wertpapiers) links, Vollbild-Umschalter rechts. */
.cs-shell[b-yjj6eg2ixa]  .cs-head {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 12px 16px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
    background: var(--fn-bg-alt);
}
.cs-shell[b-yjj6eg2ixa]  .cs-title { display: flex; align-items: center; gap: 11px; }
.cs-shell[b-yjj6eg2ixa]  .cs-ico {
    width: 34px; height: 34px; flex: 0 0 34px; border-radius: 9px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--fn-accent-soft); color: var(--fn-primary);
    border: var(--fn-border-width) solid var(--fn-accent-line);
}
.cs-shell[b-yjj6eg2ixa]  .cs-ico svg { width: 18px; height: 18px; }
.cs-shell[b-yjj6eg2ixa]  .cs-title h1 { margin: 0; font-size: 18px; }

/* Fensterknoepfe der Kopfzeile (Standardgroesse / Maximieren). Das Aussehen bringt
   FnHeaderActionButton selbst mit (.fn-window-control, global) — hier nur die Anordnung.
   Die frueheren .cs-fs-btn-Regeln sind mit dem Textknopf entfallen; sie waeren sonst tot. */
/* 8 px Abstand statt 4 (Niko 23.08.2026: „die Icons sind zu eng beieinander"). Dieselbe Weite
   wie in der Kopfzeile der Kachelgruppen — zwei Knoepfe, die verschiedene Dinge tun, duerfen
   nicht wie ein Block wirken. */
.cs-shell[b-yjj6eg2ixa]  .cs-window-controls { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; }

/* Der ChartPanel-Host wächst mit Chart und Kachelgruppen. Die Seite ist der einzige vertikale
   Scroll-Eigentümer; kein Chart-/Detailbereich schneidet Inhalte in einer Innenfläche ab. */
.cs-panel-host[b-yjj6eg2ixa] { flex: 1 1 auto; min-height: 0; }
/* fnChart.fitHeight setzt die Hoehe inline. Im normalen Seitenmodus darf diese Inline-Hoehe den
   Dokumentfluss nicht auf die Viewporthoehe begrenzen; sonst laufen mehrere tausend Pixel Inhalt
   ueber .cw-body hinaus und der nachfolgende Log-Spacer bleibt wirkungslos. In den beiden
   vergroesserten Stufen greift diese Ausnahme bewusst nicht, dort ist fitHeight erforderlich. */
.cs-shell:not(.cs-workspace-expanded):not(.cs-viewport-expanded) .cs-panel-host[b-yjj6eg2ixa]  .cw-body {
    height: auto !important;
    overflow: visible;
}
.cs-panel-host[b-yjj6eg2ixa]  .cw-stage,
.cs-panel-host[b-yjj6eg2ixa]  .cw-main { overflow: visible; }
.cs-panel-host[b-yjj6eg2ixa]  .cw-controls {
    scrollbar-width: none;
}
.cs-panel-host[b-yjj6eg2ixa]  .cw-controls::-webkit-scrollbar { display: none; }
.cs-panel-host[b-yjj6eg2ixa]  .cw-series-bar,
.cs-panel-host[b-yjj6eg2ixa]  .cw-series-tiles {
    flex-wrap: wrap;
    overflow: visible;
}

/* Kachelbereich unter dem Chart (Niko 21.08.2026: „Kacheln dürfen beim Vergrößern nicht hinter einem
   inneren Scrollbalken verschwinden"): Im Chart-Studio bekommt die Detail-Kette KEINEN eigenen
   Scrollbalken mehr — derselbe Schnitt wie im Schwebefenster (.fn-window-body, Niko 26.07.2026), nur
   als Host-Regel dieser Seite. Der Stapel wächst mit seinem Inhalt (72vh bleibt Mindesthöhe, damit ein
   eingeklapptes Detail die Chart-Zeile weiter füllt). Chart und Kacheln bleiben als EINE Einheit im
   äußeren Seitenfluss. Der Höhen-Splitter (.cw-vsplit-detail)
   setzt weiter nur die flex-basis der Chart-Zeile und bleibt unverändert. ChartPanel selbst unangetastet. */
.cs-panel-host[b-yjj6eg2ixa]  .cw-vstack { height: auto; min-height: 72vh; }
.cs-panel-host[b-yjj6eg2ixa]  .cw-vdetail { overflow: visible; }
.cs-panel-host[b-yjj6eg2ixa]  .cw-vdetail-body { overflow: visible; }

/* ... und auch .cw-stage bekommt hier KEINEN eigenen Scrollbalken (Niko 23.08.2026: „ich will keinen
   einzigen Scrollbalken mehr im Chart-Panel haben"). Gemessen auf fin-test: Der Kasten war 938 px hoch
   und trug 3954 px Inhalt — ein Scroller IM Scroller, der genau die Kacheln abschnitt, die gelesen
   werden sollen. Jetzt waechst die Buehne mit ihrem Inhalt und es scrollt die SEITE, einmal.
   Gilt nur fuer diesen Wirt; ChartPanel selbst und alle anderen Wirte bleiben unveraendert. */
/* ACHTUNG, CSS-Eigenheit (gemessen 23.08.2026): „overflow-y: visible" allein wirkt NICHT, solange
   daneben „overflow-x: hidden" steht — der Browser rechnet das visible dann zu „auto" zurueck, und der
   innere Scrollbalken bleibt. Mit „clip" statt „hidden" gilt die Ausnahme nicht mehr: waagerecht wird
   weiter abgeschnitten, senkrecht wird nicht mehr gescrollt. Zusaetzlich muss der Elternkasten .cw-body
   sein „overflow: hidden" abgeben, sonst schneidet ER die gewachsene Buehne ab. */
.cs-panel-host[b-yjj6eg2ixa]  .cw-body { overflow: visible; }
.cs-panel-host[b-yjj6eg2ixa]  .cw-stage { overflow-x: clip; overflow-y: visible; }

/* Die geschützte Positionsliste behält bei schmalen Breiten ihren horizontalen Wheel-/Touch-/
   Tastaturzugang. Im Chart-Studio wird dafür keine zweite sichtbare Scrollleiste eingeblendet. */
.cs-panel-host[b-yjj6eg2ixa]  .fps .tblwrap { scrollbar-width: none; }
.cs-panel-host[b-yjj6eg2ixa]  .fps .tblwrap::-webkit-scrollbar { display: none; }

/* Vollbild: überdeckt den gesamten Bildschirm (inkl. Fenster/News-Spalte). ChartPanel.refit zieht die Höhe nach. */
/* Vergroessern fuellt die ARBEITSFLAECHE — nicht den ganzen Bildschirm (Niko 23.08.2026).
   Gemessen wurde vorher 0/0/1920/1080: die Navigation links verschwand mit. „absolute" statt „fixed"
   bezieht sich auf .fn-app-main (traegt unter der Koerperklasse fn-studio-fullscreen position:
   relative), also genau auf den Bereich rechts neben der Navigation und unter der Kopfzeile. */
.cs-shell.cs-workspace-expanded[b-yjj6eg2ixa] {
    position: absolute;
    inset: 0;
    z-index: var(--fn-layer-workspace);
    background: var(--fn-bg);
    overflow-y: auto;
    scrollbar-width: none;
}
.cs-shell.cs-workspace-expanded[b-yjj6eg2ixa]::-webkit-scrollbar { display: none; }

/* Stufe 2 fuellt den kompletten Viewport. Nur die position:fixed-Variante verdeckt auch beide
   Shell-Sidebars und die Shell-Kopfzeile; Stufe 1 bleibt bewusst innerhalb dieser Grenzen. */
.cs-shell.cs-viewport-expanded[b-yjj6eg2ixa] {
    position: fixed;
    inset: 0;
    z-index: var(--fn-layer-viewport);
    background: var(--fn-bg);
    overflow-y: auto;
    scrollbar-width: none;
}
.cs-shell.cs-viewport-expanded[b-yjj6eg2ixa]::-webkit-scrollbar { display: none; }

/* Zeile aus Zusatz-Sidebar (nur COT) und Chart-Wirt. Ohne Sidebar ist sie exakt der bisherige
   Chart-Studio-Aufbau: der Wirt nimmt die volle Breite (Niko 22.08.2026, „COT = Chart + Sidebar"). */
.cs-body[b-yjj6eg2ixa] { flex: 1 1 auto; min-height: 0; display: flex; }
.cs-body > .cs-panel-host[b-yjj6eg2ixa] { flex: 1 1 auto; min-width: 0; }

/* Zusaetzliche Kachelgruppen unter dem Chart (COT: „COT-Positionierung") — derselbe Einzug wie die
   Gruppen im Panel, damit die Kette buendig bleibt. */
.cs-extra-groups[b-yjj6eg2ixa] { flex: 0 0 auto; padding: 0 16px; }

/* Kachelgruppe „Positionen" (Niko 22.08.2026: „Sie geht über den ganzen Bildschirm - das ist falsch!
   Sie muss wie die anderen auch unter der Erklärung einfinden mit der gleichen Breite!").

   Ursache: Der Abschnitt haengt direkt unter .cs-shell und hatte KEINE eigene Regel — er lief deshalb
   randbuendig ueber die volle Breite, waehrend die Kachelgruppen im Panel 16 px eingerueckt stehen
   (fn-chart.css: .cw-vstack-single .cw-vdetail-body). Derselbe Einzug wie bei .cs-extra-groups stellt
   die Bündigkeit her: Chartkarte, Kachelgruppen und Positionen fluchten. */
/* Die Gruppe sitzt seit dem 23.08.2026 IM Kachelstapel und ist damit eine Kachelgruppe wie jede
   andere — sie bekommt ihre Breite vom Stapel. Der frueher noetige Wirt-Einzug (padding 0 16px 16px)
   ist entfallen: Er stammte aus der Zeit, als die Gruppe als eigener Kasten am Seitenende hing, und
   machte sie im Stapel schmaler als ihre Nachbarn. */
.cs-positions[b-yjj6eg2ixa] {
    /* flex-Angabe aus der fremden Fassung erhalten (Kollision 23.08.2026): Sie greift, solange der
       Abschnitt ein Flex-Kind ist. Seit dem Umzug IN den Kachelstapel ist sie wirkungslos, aber
       harmlos — und sie bleibt richtig, falls der Abschnitt je wieder direkt unter .cs-shell haengt. */
    flex: 0 0 auto;
    display: block;
    width: 100%;
    min-width: 0;
}

/* Die Positionsgruppe kennt seit dem 01.09.2026 DIESELBEN drei Groessen wie der Chart (Niko: „Auch
   die muss die gleiche Logik bekommen wie der Chart. 2xVergroesserung, 2xVerkleinerung").

   Zuvor gab es nur .cs-positions-fullscreen mit position: absolute - das war in Wahrheit Stufe 1,
   also "innerhalb der Sidebars". Der Name versprach den ganzen Bildschirm, verdeckte aber weder
   Navigation noch Kopfzeile. Stufe 2 fehlte ganz.

   Die Werte sind bewusst identisch zu .cs-workspace-expanded und .cs-viewport-expanded des Charts:
   nur die position-Angabe unterscheidet beide Stufen. */
.cs-positions.cs-positions-workspace[b-yjj6eg2ixa],
.cs-positions.cs-positions-viewport[b-yjj6eg2ixa] {
    inset: 0;
    background: var(--fn-bg);
    overflow-y: auto;
    scrollbar-width: none;
    padding: 16px;
}
.cs-positions.cs-positions-workspace[b-yjj6eg2ixa]::-webkit-scrollbar,
.cs-positions.cs-positions-viewport[b-yjj6eg2ixa]::-webkit-scrollbar { display: none; }

/* Stufe 1 - innerhalb der Sidebars: bleibt in den Grenzen von .fn-app-main. */
.cs-positions.cs-positions-workspace[b-yjj6eg2ixa] {
    position: absolute;
    z-index: var(--fn-layer-workspace);
}

/* Stufe 2 - ganzer Bildschirm: verdeckt zusaetzlich Navigation und Shell-Kopfzeile. */
.cs-positions.cs-positions-viewport[b-yjj6eg2ixa] {
    position: fixed;
    z-index: var(--fn-layer-viewport);
}
/* /Components/Charting/ChartTrendCompassGroups.razor.rz.scp.css */
/* Analyse- und Erklärungs-Gruppe des Trend-Kompasses — Gruppenkopf-Badges und Körperraster 1:1 aus der
   abgenommenen Vorschau (.v-badge/.status/.explain-grid); Kachelmaße bleiben die von fn-chart.css. */
.cw-tc-live[b-0274fi4h87] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* .cw-v-badge / .cw-status stehen GLOBAL in fn-chart.css: Sie werden im Gruppenkopf von ChartGroupDisclosure
   gerendert, den komponenten-isoliertes CSS dieser Komponente nicht erreicht (UX-Abgleich 22.08.2026). */

.cw-tc-body[b-0274fi4h87] { display: block; position: relative; }

.cw-tc-refresh-hint[b-0274fi4h87] {
    position: absolute;
    z-index: 2;
    top: 8px;
    right: 10px;
    max-width: calc(100% - 20px);
    padding: 4px 7px;
    border: 1px solid var(--fn-border-subtle);
    border-radius: var(--fn-radius-sm);
    background: color-mix(in srgb, var(--fn-bg-alt) 92%, transparent);
    box-shadow: var(--fn-shadow-xs);
    pointer-events: none;
}

.cw-explain-grid[b-0274fi4h87] {
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    gap: 12px;
    padding-top: 12px;
    /* Niko 25.08.2026 (loest die gegenteilige Entscheidung vom 22.08.2026 ab, Screenshot
       Kachel-Größen.png): "Pattern vor der Bestätigung" soll dieselbe Höhe wie "Warum Neutral?"
       haben. Grid-Standard "stretch" genuegt - .cw-explain ist bereits eine Flex-Spalte mit
       .cw-tile-body{flex:1}, die die gewonnene Hoehe von selbst auffuellt. */
}

@media (max-width: 1100px) {
    .cw-explain-grid[b-0274fi4h87] { grid-template-columns: 1fr; }
}

/* Die Richtungs-Sprache (.cw-dir-chip/.cw-dir-bar) steht seit dem 02.09.2026 GLOBAL in
   wwwroot/css/fn-chart.css: Sie wird jetzt auch von den Strategie-Signal-Kacheln gebraucht, und
   bereichsbezogenes CSS wirkt dort nicht (es traegt das [b-...] dieser Komponente). Zwei Kopien
   waeren beim naechsten Designwechsel auseinandergelaufen. */
/* /Components/Charting/FnPrismParameterForm.razor.rz.scp.css */
/* „Parameter anpassen" — schwebendes Formular an der Split-Einheit.
   Masse aus der Design-Vorgabe §2d/§2c: Eingaben 34px, Fusszeile 42px (FnFormFooter).
   Farben ausschliesslich als --fn-*-Token; die Flaeche folgt dem Verwaltungsmenue
   (--fn-bg-alt), damit beide Einblendungen derselben Einheit gleich aussehen. */

.cw-parms[b-whdbdxiual] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 41;
    display: flex;
    flex-direction: column;
    gap: 9px;
    min-width: 320px;
    max-width: 380px;
    padding: 9px 11px 4px;
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius);
    box-shadow: var(--fn-elevation-3);
    text-align: left;
    cursor: default;
}

.cw-parms__head[b-whdbdxiual] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding-bottom: 7px;
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    border-bottom: 1px solid var(--fn-border);
}

.cw-parms__head i[b-whdbdxiual] {
    width: 12px;
    height: 3px;
    border-radius: 2px;
    background: currentColor;
    flex: 0 0 12px;
}

.cw-parms__head b[b-whdbdxiual] {
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text);
}

.cw-parms__none[b-whdbdxiual] {
    font-size: 12px;
    color: var(--fn-text-tertiary);
}

.cw-parms__rows[b-whdbdxiual] {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.cw-parm[b-whdbdxiual] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cw-parm__text[b-whdbdxiual] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1 1 auto;
    min-width: 0;
}

.cw-parm__text b[b-whdbdxiual] {
    font-family: var(--fn-font-mono);
    font-size: 12px;
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text);
}

/* Die Erklaerung darf umbrechen — sie ist der eigentliche Grund fuer dieses Formular. */
.cw-parm__text em[b-whdbdxiual] {
    font-style: normal;
    font-size: 11px;
    line-height: 1.35;
    color: var(--fn-text-secondary);
}

/* Das Feld selbst ist das geteilte Primitiv (FnInput/.fn-field). Hier steht NUR die Geometrie
   dieser Stelle: feste Breite und die 34px der Design-Vorgabe §2d. */
.cw-parm[b-whdbdxiual]  .cw-parm__num {
    flex: 0 0 88px;
    width: 88px;
    height: 34px;
    font-family: var(--fn-font-mono);
    font-variant-numeric: tabular-nums;
    text-align: right;
}

/* --- Geltungsbereich und Ebenen-Marke (Konzept 8, Niko 12.08.2026) ----------------------------
   Die Marke am Feld beantwortet "warum steht der RSI hier auf 7 und dort auf 14". Sie steht NUR,
   wo etwas abweicht -- an jedem Feld waere sie Rauschen. Farben ausschliesslich als Token. */
.cw-parm__scope[b-whdbdxiual] {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border: 1px solid var(--fn-border-strong);
    border-radius: 999px;
    background: var(--fn-bg-muted);
    color: var(--fn-cat-gold);
    font-size: 10.5px;
    font-weight: var(--fn-font-weight-medium);
    white-space: nowrap;
}

.cw-parm__reset[b-whdbdxiual] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin-left: 4px;
    border: 1px solid var(--fn-border);
    border-radius: 6px;
    background: transparent;
    color: var(--fn-text-secondary);
    cursor: pointer;
}

.cw-parm__reset:hover[b-whdbdxiual] {
    border-color: var(--fn-border-strong);
    color: var(--fn-text);
}

.cw-parms__scope[b-whdbdxiual] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-top: 1px solid var(--fn-border);
}

.cw-parms__scope-label[b-whdbdxiual] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--fn-text-secondary);
    font-size: 12px;
}

/* /Components/Charting/FnTrendCompassPopup.razor.rz.scp.css */
/* KEINE feste Mindesthoehe mehr (Niko 24.08.2026: „die Texte ragen im oberen Bereich teilweise
   ueber den Dialograhmen hinaus"). min-height:668px zwang den Dialog auf eine Hoehe, die in
   kleineren Fenstern gar nicht zur Verfuegung stand — der Inhalt lief oben heraus.

   Die Mindesthoehe hat zusaetzlich die POSITIONSBERECHNUNG vergiftet: placePopup misst
   dialog.scrollHeight und bekam dadurch immer mindestens 668 px gemeldet, egal wie kurz der
   Inhalt war. Die Entscheidung „passt oben / passt unten / inline" fiel also auf einer
   erfundenen Hoehe. Ohne die Mindesthoehe ist die gemeldete Hoehe die echte.

   Weder eine Hoehenbegrenzung noch ein eigener Rollbereich gehoeren hierher: Der Vertrag dieses
   Dialogs lautet, bei zu wenig Platz in den Fliesstext-Modus (.tc-popup-inline) zu wechseln statt
   zu rollen — festgehalten in TrendCompassPopupPlacementTests, das genau diese beiden
   Eigenschaften hier verbietet. */
.tc-popup[b-bu237ecohs] { position: fixed; z-index: var(--fn-layer-chart-popup); top: var(--tc-popup-top); right: auto; left: var(--tc-popup-left); width: var(--tc-popup-width,min(420px,calc(100vw - 32px))); max-width: none; padding: 0; overflow: visible; background: var(--fn-surface); border-color: var(--fn-border-strong); border-radius: var(--fn-radius); }
.tc-popup[data-positioned="false"][b-bu237ecohs] { visibility: hidden; pointer-events: none; }
.tc-popup.tc-popup-inline[b-bu237ecohs] { position: static; grid-column: 1 / -1; width: min(420px,calc(100% - 24px)); margin: 6px auto 0; }
.tc-popup-head[b-bu237ecohs] { display: flex; align-items: center; gap: 9px; min-height: 45px; padding: 8px 12px; border-bottom: 1px solid var(--fn-border); }
.tc-popup-head i[b-bu237ecohs] { width: 20px; height: 3px; border-radius: var(--fn-radius-pill); background: var(--tc-popup-color,var(--fn-warning)); }
.tc-popup-head b[b-bu237ecohs] { font-size: 13px; color: var(--fn-text); }
/* Masse 1:1 aus dem Indikator-Menue (.cw-menu-head): 12.5px in --fn-text. Der Zusatz rechts
   („eingebaut") war 10px in --fn-text-secondary und damit kaum lesbar. */
.tc-popup-head small[b-bu237ecohs] { margin-left: auto; color: var(--fn-text-secondary); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
/* Schmale Einspaltenfassung aus der abgenommenen Gesamtvorschau. Reicht die Hoehe nicht, wird der
   Dialog vom Platzierungsskript in den Fliesstext gesetzt; ein eigener Scrollbereich bleibt verboten. */
.tc-section[b-bu237ecohs] { padding: 10px 12px; border-bottom: 1px solid var(--fn-border); }
.tc-section-compact[b-bu237ecohs] { padding-block: 8px; }
.tc-section-label[b-bu237ecohs] { display: block; margin-bottom: 8px; color: var(--fn-text-secondary); font: 600 11px var(--fn-font); text-transform: uppercase; letter-spacing: .08em; }
.tc-model-list[b-bu237ecohs] { display: grid; gap: 7px; }.tc-setting-list[b-bu237ecohs] { display: grid; gap: 2px; }
.tc-model-choice[b-bu237ecohs] { display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 9px; min-width: 0; min-height: 58px; padding: 7px; border: 1px solid var(--fn-border); border-radius: var(--fn-radius-sm); background: var(--fn-bg-muted); color: var(--fn-text); text-align: left; white-space: normal; cursor: pointer; }
.tc-model-choice[aria-checked="true"][b-bu237ecohs] { border-color: var(--fn-primary); background: var(--fn-accent-soft); }
.tc-model-choice:focus-visible[b-bu237ecohs],.tc-setting-row:focus-visible[b-bu237ecohs],.tc-direction-color:has(input:focus-visible)[b-bu237ecohs] { outline: none; box-shadow: var(--fn-focus-ring); }
/* Variante I und II waren schwer zu erkennen (Niko 24.08.2026): Ziffer in --fn-text-secondary,
   Beschreibung 10.5px, Zustand 9.5px in --fn-text-tertiary — der dunkelsten Textfarbe. Alle
   drei eine Stufe heller und groesser, auf dem Mass des Indikator-Menues (12.5px). */
.tc-model-roman[b-bu237ecohs] { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--fn-border-strong); border-radius: var(--fn-radius-sm); color: var(--fn-text); font: 700 13px var(--fn-font-mono); }
.tc-model-choice[aria-checked="true"] .tc-model-roman[b-bu237ecohs] { border-color: var(--fn-primary); color: var(--fn-primary); }
.tc-model-copy[b-bu237ecohs] { min-width: 0; }
.tc-model-copy b[b-bu237ecohs],.tc-model-copy small[b-bu237ecohs] { display: block; overflow-wrap: anywhere; }
.tc-model-copy b[b-bu237ecohs] { font-size: 12.5px; }
.tc-model-copy small[b-bu237ecohs] { margin-top: 3px; color: var(--fn-text-secondary); font-size: 11.5px; line-height: 1.4; }
.tc-model-state[b-bu237ecohs] { min-width: 60px; color: var(--fn-text-secondary); font: 600 10.5px var(--fn-font-mono); letter-spacing: .04em; text-align: right; text-transform: uppercase; }
.tc-model-choice[aria-checked="true"] .tc-model-state[b-bu237ecohs] { color: var(--fn-primary); }
.tc-setting-row[b-bu237ecohs] { display: grid; grid-template-columns: 20px minmax(0,1fr) auto; align-items: center; gap: 8px; min-height: 34px; padding: 5px 6px; border: 0; border-radius: var(--fn-radius-sm); background: transparent; color: var(--fn-text-secondary); font: 12.5px var(--fn-font); text-align: left; }
button.tc-setting-row[b-bu237ecohs] { width: 100%; cursor: pointer; }
.tc-setting-row:hover[b-bu237ecohs] { background: var(--fn-hover); color: var(--fn-text); }
.tc-setting-row > svg[b-bu237ecohs] { width: 15px; height: 15px; color: var(--fn-text-secondary); }
.tc-setting-row select[b-bu237ecohs] { min-width: 160px; min-height: 28px; }
.tc-check[b-bu237ecohs] { display: grid; place-items: center; width: 16px; height: 16px; border: 1px solid var(--fn-border-strong); border-radius: 4px; color: var(--fn-primary); }
.tc-check svg[b-bu237ecohs] { width: 12px; height: 12px; }
.tc-setting-hint[b-bu237ecohs] { color: var(--fn-text-secondary); font: 11px var(--fn-font); }
.tc-model-scope[b-bu237ecohs],.tc-contract-list[b-bu237ecohs] { display: grid; gap: 2px; }
/* EIN Raster fuer alle Zeilen (Niko 24.08.2026: „Geltungsbereich zu hoch positioniert — oder der
   Info-Button zu niedrig"). Diese Zeilen hatten zwei Spalten, die Einstellungszeilen daneben drei
   (Icon, Text, Wert). Dadurch standen Text und Knopf auf verschiedenen Achsen. Jetzt tragen sie
   dieselbe Icon-Spalte und dieselbe Zeilenhoehe. */
.tc-scope-row[b-bu237ecohs],.tc-contract-row[b-bu237ecohs] { display: grid; grid-template-columns: 20px minmax(0,1fr) auto; align-items: center; gap: 8px; min-height: 34px; padding: 4px 5px; color: var(--fn-text-secondary); font-size: 12.5px; }
.tc-scope-row > svg[b-bu237ecohs],.tc-contract-row > svg[b-bu237ecohs] { width: 15px; height: 15px; color: var(--fn-text-secondary); }
.tc-scope-row .tc-setting-hint[b-bu237ecohs] { text-align: right; }
.tc-contract-row strong[b-bu237ecohs] { color: var(--fn-text); font: 600 11.5px var(--fn-font-mono); }
.tc-contract-row .tc-contract-state[b-bu237ecohs] { color: var(--fn-warning); }
.tc-direction-row[b-bu237ecohs] { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--fn-text-secondary); font-size: 11.5px; }
.tc-direction-grid[b-bu237ecohs] { display: flex; gap: 6px; }
.tc-direction-color[b-bu237ecohs] { position: relative; display: grid; grid-template-columns: 18px auto; gap: 6px; align-items: center; min-height: 30px; padding: 3px 7px; border: 1px solid var(--fn-border); border-left: 3px solid var(--tc-choice-color); border-radius: var(--fn-radius-sm); background: var(--fn-bg-muted); color: var(--fn-text); text-align: left; cursor: pointer; }
.tc-direction-color > input[b-bu237ecohs] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.tc-direction-color:hover[b-bu237ecohs] { border-color: var(--fn-border-strong); border-left-color: var(--tc-choice-color); background: var(--fn-hover); }
.tc-direction-sample[b-bu237ecohs] { display: grid; place-items: center; width: 17px; height: 17px; border-radius: 4px; background: var(--tc-choice-color); color: var(--fn-contrast-dark); font: 700 8px var(--fn-font-mono); }
.tc-direction-color b[b-bu237ecohs] { font-size: 11px; white-space: nowrap; }
.tc-source-lock[b-bu237ecohs] { display: flex; align-items: center; gap: 8px; min-height: 36px; padding: 7px 12px; color: var(--fn-text-secondary); font-size: 11.5px; }
.tc-source-lock svg[b-bu237ecohs] { width: 14px; height: 14px; }
.tc-color-success[b-bu237ecohs] { --tc-choice-color: var(--fn-success); }.tc-color-danger[b-bu237ecohs] { --tc-choice-color: var(--fn-danger); }.tc-color-primary[b-bu237ecohs] { --tc-choice-color: var(--fn-primary); }.tc-color-warning[b-bu237ecohs] { --tc-choice-color: var(--fn-warning); }.tc-color-teal[b-bu237ecohs] { --tc-choice-color: var(--fn-cat-teal); }.tc-color-orange[b-bu237ecohs] { --tc-choice-color: var(--fn-cat-orange); }.tc-color-purple[b-bu237ecohs] { --tc-choice-color: var(--fn-cat-purple); }.tc-color-pink[b-bu237ecohs] { --tc-choice-color: var(--fn-cat-pink); }
.tc-direction-color.tc-color-custom-dark .tc-direction-sample[b-bu237ecohs] { color: var(--fn-contrast-light); }
[data-design="finnavigator"]:not(.dark-mode) .tc-direction-color.tc-color-danger .tc-direction-sample[b-bu237ecohs],
[data-design="finnavigator"]:not(.dark-mode) .tc-direction-color.tc-color-pink .tc-direction-sample[b-bu237ecohs] { color: var(--fn-contrast-light); }
@media (max-width:760px),(pointer:coarse) { .tc-model-choice[b-bu237ecohs] { min-height: 66px; }.tc-setting-row[b-bu237ecohs],.tc-setting-row select[b-bu237ecohs],.tc-direction-color[b-bu237ecohs],.tc-scope-row[b-bu237ecohs],.tc-contract-row[b-bu237ecohs] { min-height: 44px; } }
@media (max-width:380px) { .tc-direction-row[b-bu237ecohs] { display: grid; grid-template-columns: 1fr; }.tc-setting-row[b-bu237ecohs] { grid-template-columns: 20px minmax(0,1fr); }.tc-setting-row select[b-bu237ecohs],.tc-setting-hint[b-bu237ecohs] { grid-column: 2; min-width: 0; width: 100%; } }
@media (forced-colors:active) { .tc-model-choice[aria-checked="true"][b-bu237ecohs] { outline: 2px solid Highlight; }.tc-direction-sample[b-bu237ecohs] { forced-color-adjust: none; } }

/* Fuss mit „Schliessen" — Aussehen und Verhalten wie der gleichnamige Eintrag im
   Indikator-Menue (.cw-mi): 12.5px, Icon 14px, heller beim Ueberfahren. Der Dialog
   hatte vorher keinen sichtbaren Ausgang. */
.tc-foot[b-bu237ecohs] { padding: 5px 6px 7px; border-top: 1px solid var(--fn-border); }
.tc-close[b-bu237ecohs] { width: 100%; justify-content: flex-start; }
/* /Components/Charting/FnTrendCompassUnit.razor.rz.scp.css */
.tc-unit > .cw-lgs__main > i[b-qfucsuey7g] { background: var(--tc-unit-color); }

@media (max-width:760px), (pointer:coarse) {
    .tc-unit > .cw-lgs__main[b-qfucsuey7g],
    .tc-unit > .cw-lgs__menu[b-qfucsuey7g] { min-height: 44px; }
    .tc-unit > .cw-lgs__menu[b-qfucsuey7g] { min-width: 44px; }
}
/* /Components/Charting/PositionGuardDialog.razor.rz.scp.css */
/* Wächter-Dialog — Maße und Farben 1:1 aus der abgenommenen Vorschau (Szene 2).

   ACHTUNG R5: Fast alles, was hier gestaltet wird, steht im Markup der KINDKOMPONENTEN
   (PositionGuardRuleList, PositionGuardRuleEditor, PositionGuardTriggerList). Ohne ::deep wären diese
   Regeln STILL wirkungslos — syntaktisch gültig, kein Test schlägt an, und der Dialog stünde in der
   laufenden App unformatiert da. Deshalb trägt jede Regel, die ein Kind trifft, ::deep. */

.pg-title[b-n77i9z8dvr] { display: flex; align-items: center; gap: 9px; min-width: 0; }
/* Die Glocke im Titel ist eine BESCHRIFTUNG, kein Zustand. Sie war bis zum 07.09.2026 gelb — so stand
   es in der abgenommenen Vorschau. Gelb bedeutet in diesem Modul seit dem 04.09.2026 aber „Pause";
   ein dauerhaft gelber Titel behauptet damit einen Zustand, den er gar nicht kennt.
   Niko 07.09.2026: „keine gelbe Glocke mehr!" */
.pg-title[b-n77i9z8dvr]  svg { width: 15px; height: 15px; flex: none; color: var(--fn-text-secondary); }
.pg-title .tx[b-n77i9z8dvr] { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pg-title .tx b[b-n77i9z8dvr] { font-size: 13px; font-weight: var(--fn-font-weight-medium); }

/* Eigener Rahmen fuer Koerper + Fusszeile: .fn-window-body ist eine schlichte Box mit overflow.
   Ohne diese Spalte haette .pg-body nichts, wogegen es `flex: 1` rechnen koennte. */
.pg-shell[b-n77i9z8dvr] { display: flex; flex-direction: column; height: 100%; min-height: 0; }

/* Zwei Spalten: links die Regeln (fest), rechts der Editor (wächst mit). */
.pg-body[b-n77i9z8dvr] {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 0;
    /* Der Koerper nimmt den Platz ueber der Fusszeile ein. Keine feste Zahl: FnFormFooter bringt
       seine eigene Hoehe mit, und eine hier eingetragene waere beim naechsten Feinschliff falsch. */
    flex: 1;
    min-height: 0;
}

.pg-empty[b-n77i9z8dvr] {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 10px; padding: 30px; text-align: center;
}
.pg-empty[b-n77i9z8dvr]  svg { width: 26px; height: 26px; color: var(--fn-text-tertiary); }
.pg-empty p[b-n77i9z8dvr] { margin: 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

/* ---- linke Spalte ------------------------------------------------------------------------ */

.pg-body[b-n77i9z8dvr]  .gl {
    display: flex; flex-direction: column; min-height: 0;
    border-right: 1px solid var(--fn-border);
}

/* Die Werkzeugleiste der Liste ist FnListToolbar (.fn-list-toolbar) — sie bringt Maße und Abstände
   selbst mit. Hier stand bis zum 06.09.2026 eine Regel auf `.gl-bar`; diese Klasse kam im Markup
   nirgends vor, die Regel war also still tot (R5). */
/* Werkzeugleiste der linken Spalte — Maße 1:1 aus dem Nachrichten-Dialog abgemessen (07.09.2026,
   Niko: „Messe die Abstände des Dialoges und baue das nach"): Körper-Innenabstand dort 16px 18px.

   Suchfeld und Primärknopf schließen links UND rechts bündig ab (Niko: „Achte darauf dass Button und
   Suche bündig links abschließen … in der Breite bündig mit dem Suchfeld"). Dafür wird der
   `margin-left:auto` des Suchfelds hier aufgehoben — es steht in dieser Spalte links, nicht rechts —
   und der Knopf nimmt die volle Zeilenbreite. Seine Höhe bleibt die vorgeschriebene 30px (§2b). */
.pg-body[b-n77i9z8dvr]  .fn-list-toolbar {
    padding: 14px 18px 16px; row-gap: 14px;
    border-bottom: 1px solid var(--fn-border);
}

.pg-body[b-n77i9z8dvr]  .fn-toolbar-search { margin-left: 0; flex: 1 1 auto; }

/* Die Linie zwischen Suchzeile und Knopf; volle Breite erzwingt zugleich den Umbruch. */
.pg-body[b-n77i9z8dvr]  .gl-bar-line {
    flex: 1 0 100%;
    margin: 0; border: 0; border-top: 1px solid var(--fn-border);
}

/* Der Knopf endet GENAU dort, wo das Suchfeld endet — nicht erst am Aktualisieren-Knopf daneben
   (Niko 07.09.2026: „in der Breite/Länge bündig mit dem Suchfeld links und rechts"). Gemessen war er
   37 px zu breit. Abgezogen werden die 30 px des Aktualisieren-Knopfes und die 10 px Abstand der
   Leiste; `flex-basis:100%` erzwingt weiterhin den Umbruch in die zweite Zeile. */
.pg-body[b-n77i9z8dvr]  .fn-toolbar-create {
    /* Die BASIS traegt das Mass, nicht `width`: bei einem Flex-Element schlaegt `flex-basis` die
       Breite. Mit `flex-basis:100%` plus `width:calc(...)` blieb der Knopf am 07.09.2026 voll breit —
       live nachgemessen: er endete bei x=279 statt bei 242 wie das Suchfeld. */
    flex: 0 0 calc(100% - 40px);
    max-width: calc(100% - 40px);
}

.pg-body[b-n77i9z8dvr]  .gl-list { flex: 1; min-height: 0; overflow-y: auto; padding: 6px; }

.pg-body[b-n77i9z8dvr]  .gl-row { display: flex; align-items: center; border-radius: 8px; }
.pg-body[b-n77i9z8dvr]  .gl-row:hover { background: var(--fn-hover); }
.pg-body[b-n77i9z8dvr]  .gl-row.sel { background: var(--fn-accent-soft); }

/* Die Zeile IST eine Schaltflaeche - damit ist sie ohne Zutun per Tabulator und Eingabetaste
   bedienbar. Ein div mit @onclick waere es nicht. */
.pg-body[b-n77i9z8dvr]  .gl-main {
    display: flex; align-items: center; gap: 9px; flex: 1; min-width: 0;
    padding: 8px 9px; border: none; background: transparent; cursor: pointer;
    color: var(--fn-text); font: inherit; text-align: left;
}
.pg-body[b-n77i9z8dvr]  .gl-main:focus-visible { outline: none; box-shadow: var(--fn-focus-ring); border-radius: 8px; }
.pg-body[b-n77i9z8dvr]  .gl-state { padding: 12px 10px; }

/* Der Punkt sagt, was die Regel TUT. Ampel-Token, nicht Textfarben (Vorgabe 1b). */
.pg-body[b-n77i9z8dvr]  .gl-dot {
    flex: none; width: 8px; height: 8px; border-radius: 50%;
    background: var(--fn-neutral);
}
.pg-body[b-n77i9z8dvr]  .gl-dot.on { background: var(--fn-success); }
.pg-body[b-n77i9z8dvr]  .gl-dot.armed { background: var(--fn-warning); }
.pg-body[b-n77i9z8dvr]  .gl-dot.fired { background: var(--fn-danger); }

.pg-body[b-n77i9z8dvr]  .gl-txt { flex: 1; min-width: 0; }
.pg-body[b-n77i9z8dvr]  .gl-txt b {
    display: block; font-size: 12.5px; font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pg-body[b-n77i9z8dvr]  .gl-txt small {
    display: block; margin-top: 1px; font-size: 10.5px; color: var(--fn-text-tertiary);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* Die schaerfste Aktion der Regel — schliessen ist optisch klar von melden getrennt. */
.pg-body[b-n77i9z8dvr]  .gl-act {
    flex: none; font-family: var(--fn-font-mono); font-size: 9.5px; letter-spacing: .04em;
    color: var(--fn-text-tertiary);
}
.pg-body[b-n77i9z8dvr]  .gl-act.close { color: var(--fn-danger); }
.pg-body[b-n77i9z8dvr]  .gl-act.notify { color: var(--fn-info); }

.pg-body[b-n77i9z8dvr]  .gl-del {
    flex: none; border: none; background: transparent; cursor: pointer; padding: 2px;
    color: var(--fn-text-tertiary); opacity: 0;
}
.pg-body[b-n77i9z8dvr]  .gl-row:hover .gl-del { opacity: 1; }
.pg-body[b-n77i9z8dvr]  .gl-del:hover { color: var(--fn-danger); }
.pg-body[b-n77i9z8dvr]  .gl-del:focus-visible { opacity: 1; outline: none; box-shadow: var(--fn-focus-ring); }
.pg-body[b-n77i9z8dvr]  .gl-del svg { width: 13px; height: 13px; }

.pg-body[b-n77i9z8dvr]  .gl-none { margin: 10px; font-size: 11.5px; color: var(--fn-text-tertiary); }

.pg-body[b-n77i9z8dvr]  .gl-hist {
    border-top: 1px solid var(--fn-border); padding: 8px 10px 10px;
    max-height: 168px; overflow-y: auto;
}
.pg-body[b-n77i9z8dvr]  .gl-hist .hd {
    font-size: 10.5px; color: var(--fn-text-tertiary); margin-bottom: 6px;
    text-transform: uppercase; letter-spacing: .05em;
}
.pg-body[b-n77i9z8dvr]  .hrow {
    display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap;
    font-size: 11px; color: var(--fn-text-secondary); margin-bottom: 4px;
}
.pg-body[b-n77i9z8dvr]  .hrow time { font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); }
.pg-body[b-n77i9z8dvr]  .hrow .warn { color: var(--fn-warning); }
.pg-body[b-n77i9z8dvr]  .hrow .bad { color: var(--fn-danger); }
.pg-body[b-n77i9z8dvr]  .hrow .ok { color: var(--fn-success); }
/* „Kein Urteil" ist neutral, nicht gruen: der Waechter hat sich zurueckgehalten (Vorgabe 1b). */
.pg-body[b-n77i9z8dvr]  .hrow .neutral { color: var(--fn-neutral); }
.pg-body[b-n77i9z8dvr]  .hrow .src { color: var(--fn-text-tertiary); font-size: 10.5px; }
.pg-body[b-n77i9z8dvr]  .hrow code { font-family: var(--fn-font-mono); font-size: 10.5px; color: var(--fn-text-tertiary); }

/* ---- rechte Spalte ------------------------------------------------------------------------ */

.pg-body[b-n77i9z8dvr]  .ge { min-height: 0; overflow-y: auto; padding: 12px 14px 16px; }

.pg-body[b-n77i9z8dvr]  .ge-grp {
    border: 1px solid var(--fn-border); border-radius: var(--fn-radius);
    padding: 10px 12px 12px; margin-bottom: 12px;
}
.pg-body[b-n77i9z8dvr]  .ge-hd {
    display: flex; align-items: center; gap: 7px; margin-bottom: 10px;
    font-size: 12px; font-weight: var(--fn-font-weight-medium); color: var(--fn-text);
}
.pg-body[b-n77i9z8dvr]  .ge-hd svg { width: 14px; height: 14px; color: var(--fn-text-tertiary); }

/* Der Kontexthilfe-Kreis sitzt am rechten Ende der Gruppenzeile, nicht mitten im Text.
   `margin-left: auto` statt `justify-content: space-between`, weil der Kopf aus Icon + Text
   besteht: space-between risse die beiden auseinander. Die Groessenregel eine Zeile darueber
   faerbt jedes SVG im Kopf grau — der Hilfe-Kreis bringt seine eigene Farbe mit und wird
   deshalb hier ausgenommen, sonst verloere er den Hover-Zustand von `FnHelpLink`. */
.pg-body[b-n77i9z8dvr]  .ge-hd > .fn-help-link { margin-left: auto; }
.pg-body[b-n77i9z8dvr]  .ge-hd > .fn-help-link svg { color: inherit; }

/* Dieselbe Stelle im Fenstertitel: die Ueberblickshilfe steht hinter der Wertpapier-Kennung,
   mit etwas Abstand, damit sie nicht an den Fenster-Knoepfen klebt. */
.pg-title[b-n77i9z8dvr]  .fn-help-link { margin-left: 8px; }
.pg-body[b-n77i9z8dvr]  .ge-note {
    margin: 8px 0 0; font-size: 11px; line-height: 1.5; color: var(--fn-warning);
}

.pg-body[b-n77i9z8dvr]  .comb {
    display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-bottom: 10px;
    font-size: 11.5px; color: var(--fn-text-secondary);
}
.pg-body[b-n77i9z8dvr]  .comb .hint { color: var(--fn-text-tertiary); }

.pg-body[b-n77i9z8dvr]  .trg {
    display: flex; align-items: center; gap: 9px; flex-wrap: nowrap;
    padding: 8px 9px; margin-bottom: 6px;
    background: var(--fn-bg-muted); border: 1px solid var(--fn-border);
    border-left: 3px solid var(--fn-border-strong); border-radius: 8px;
}
.pg-body[b-n77i9z8dvr]  .trg.is-loss { border-left-color: var(--fn-danger); }
.pg-body[b-n77i9z8dvr]  .trg.is-profit { border-left-color: var(--fn-success); }
.pg-body[b-n77i9z8dvr]  .trg.is-trend { border-left-color: var(--fn-info); }
.pg-body[b-n77i9z8dvr]  .trg > svg { width: 14px; height: 14px; flex: none; color: var(--fn-text-secondary); }
.pg-body[b-n77i9z8dvr]  .trg .lab { flex: none; font-size: 11.5px; color: var(--fn-text); min-width: 128px; }
.pg-body[b-n77i9z8dvr]  .trg .val { display: flex; align-items: center; gap: 7px; flex: 1; min-width: 0; }
.pg-body[b-n77i9z8dvr]  .trg .val.wrap { flex-wrap: wrap; }
.pg-body[b-n77i9z8dvr]  .trg .ref { font-size: 10.5px; color: var(--fn-text-tertiary); }
.pg-body[b-n77i9z8dvr]  .trg .del {
    flex: none; border: none; background: transparent; cursor: pointer; padding: 2px;
    color: var(--fn-text-tertiary);
}
.pg-body[b-n77i9z8dvr]  .trg .del:hover { color: var(--fn-danger); }
.pg-body[b-n77i9z8dvr]  .trg .del svg { width: 13px; height: 13px; }
.pg-body[b-n77i9z8dvr]  .trg-none { margin: 0 0 8px; font-size: 11.5px; color: var(--fn-text-tertiary); }

/* Eingabe mit angehaengter Einheit — die Einheit gehoert sichtbar zum Feld, nicht daneben.
   KEIN fn-Praefix: das steht projektweit fuer geteilte Primitiven, dies hier ist modul-eigen. */
.pg-body[b-n77i9z8dvr]  .pg-unit { display: inline-flex; align-items: center; gap: 4px; }
.pg-body[b-n77i9z8dvr]  .pg-unit .suf { font-size: 10.5px; color: var(--fn-text-tertiary); }

/* Schmale Zahlen- und Auswahlfelder. Die Geometrie der geteilten Primitive bleibt unangetastet -
   nur die Breite wird hier gesetzt, weil eine Prozentzahl keine volle Zeile braucht. */
.pg-body[b-n77i9z8dvr]  .pg-num { width: 74px; text-align: right; font-family: var(--fn-font-mono); }
.pg-body[b-n77i9z8dvr]  .pg-narrow { width: auto; min-width: 96px; }
.pg-body[b-n77i9z8dvr]  .pg-inline { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pg-body[b-n77i9z8dvr]  .pg-sep { color: var(--fn-text-tertiary); }
.pg-body[b-n77i9z8dvr]  .pg-check {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 11.5px; color: var(--fn-text-secondary); cursor: pointer;
}

.pg-body[b-n77i9z8dvr]  .trg-add {
    display: flex; align-items: center; gap: 7px; width: 100%;
    padding: 8px 10px; margin-top: 2px;
    background: transparent; border: 1px dashed var(--fn-border-strong); border-radius: 8px;
    color: var(--fn-text-secondary); font-family: var(--fn-font); font-size: 11.5px;
    cursor: pointer; text-align: left;
}
.pg-body[b-n77i9z8dvr]  .trg-add:hover { border-color: var(--fn-primary); color: var(--fn-text); }
.pg-body[b-n77i9z8dvr]  .trg-add svg { width: 13px; height: 13px; }

.pg-body[b-n77i9z8dvr]  .trg-menu {
    display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-top: 6px;
}
.pg-body[b-n77i9z8dvr]  .trg-menu button {
    display: flex; align-items: flex-start; gap: 8px; padding: 8px 9px;
    background: var(--fn-bg-muted); border: 1px solid var(--fn-border); border-radius: 8px;
    cursor: pointer; text-align: left; color: var(--fn-text);
}
.pg-body[b-n77i9z8dvr]  .trg-menu button:hover { border-color: var(--fn-primary); }
.pg-body[b-n77i9z8dvr]  .trg-menu svg { width: 14px; height: 14px; flex: none; margin-top: 1px; color: var(--fn-text-tertiary); }
.pg-body[b-n77i9z8dvr]  .trg-menu .tx b { display: block; font-size: 11.5px; font-weight: var(--fn-font-weight-medium); }
.pg-body[b-n77i9z8dvr]  .trg-menu .tx small { display: block; margin-top: 1px; font-size: 10.5px; color: var(--fn-text-tertiary); }

/* ---- Aktionen ----------------------------------------------------------------------------- */

.pg-body[b-n77i9z8dvr]  .acts { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.pg-body[b-n77i9z8dvr]  .act {
    display: flex; align-items: flex-start; gap: 8px; padding: 8px 9px;
    background: transparent; border: 1px solid var(--fn-border); border-radius: 8px;
    cursor: pointer; text-align: left; color: var(--fn-text-secondary);
}
.pg-body[b-n77i9z8dvr]  .act:hover { border-color: var(--fn-border-strong); color: var(--fn-text); }
.pg-body[b-n77i9z8dvr]  .act.on { border-color: var(--fn-primary); background: var(--fn-accent-soft); color: var(--fn-text); }
/* Was eine Position bewegt, ist rot umrandet, sobald es AN ist — nie in derselben Farbe wie „melden". */
.pg-body[b-n77i9z8dvr]  .act.on.danger { border-color: var(--fn-danger); background: var(--fn-danger-soft); }
.pg-body[b-n77i9z8dvr]  .act svg { width: 14px; height: 14px; flex: none; margin-top: 1px; }
.pg-body[b-n77i9z8dvr]  .act .tx b { display: block; font-size: 11.5px; font-weight: var(--fn-font-weight-medium); }
.pg-body[b-n77i9z8dvr]  .act .tx small { display: block; margin-top: 1px; font-size: 10.5px; color: var(--fn-text-tertiary); }

/* ---- Fusszeile ---------------------------------------------------------------------------- */

/* Die Fusszeile selbst ist FnFormFooter (Masse, Reihenfolge, Zustaende kommen von dort). Hier steht
   nur noch der Satz, der sagt, WARUM Speichern gesperrt ist. */
.pg-why[b-n77i9z8dvr] { font-size: 11px; color: var(--fn-warning); }

/* Fußzeile — die Knöpfe klebten mit 1px am Fensterrand. Der Nachrichten-Dialog hält 19px rechts und
   17px unten (gemessen 07.09.2026); Größe und Radius der Knöpfe sind ohnehin identisch, es fehlte
   allein der Abstand. Der Dialog rendert seinen Körper randlos (FlushBody) — deshalb steht der
   Innenabstand hier an der Fußzeile und nicht am Fenster. */
.pg-shell[b-n77i9z8dvr]  .fn-form-foot {
    padding: 12px 19px 17px;
}
/* /Components/Charting/SetupScannerPanel.razor.rz.scp.css */
.ssc[b-h4bub5ryit] {
    display: flex;
    min-height: 0;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
    color: var(--fn-text);
}

.ssc-section[b-h4bub5ryit] {
    padding: 11px 14px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
}

.ssc-section-head[b-h4bub5ryit] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.ssc-label[b-h4bub5ryit] {
    color: var(--fn-text-tertiary);
    font-size: 10px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .1em;
    text-transform: uppercase;
}

.ssc[b-h4bub5ryit]  .ssc-edit,
.ssc[b-h4bub5ryit]  .ssc-reset,
.ssc[b-h4bub5ryit]  .ssc-details {
    min-height: auto;
    border: 0;
    padding: 2px 0;
    color: var(--fn-primary);
    background: transparent;
    box-shadow: none;
    font-size: 10px;
    font-weight: var(--fn-font-weight-bold);
}

.ssc-strategies[b-h4bub5ryit] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ssc-strategy[b-h4bub5ryit] {
    display: inline-flex;
    min-height: 23px;
    align-items: center;
    gap: 6px;
    padding: 3px 9px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 999px;
    color: var(--fn-text-secondary);
    background: var(--fn-bg-muted);
    font-size: 11px;
    white-space: nowrap;
}

.ssc-strategy-dot[b-h4bub5ryit] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--fn-success);
}

.ssc-strategy:nth-child(even) .ssc-strategy-dot[b-h4bub5ryit] {
    background: var(--fn-primary);
}

.ssc-picker[b-h4bub5ryit] {
    margin-top: 8px;
    padding: 8px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 8px;
    background: var(--fn-bg-muted);
}

.ssc-picker-head[b-h4bub5ryit] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 7px;
    color: var(--fn-text-tertiary);
    font-size: 10px;
}

.ssc-picker-list[b-h4bub5ryit] {
    display: flex;
    max-height: 190px;
    flex-wrap: wrap;
    gap: 4px;
    overflow-y: auto;
}

.ssc[b-h4bub5ryit]  .ssc-pick {
    min-height: 25px;
    border-color: var(--fn-border);
    padding: 3px 7px;
    color: var(--fn-text-secondary);
    background: transparent;
    font-size: 10px;
}

.ssc[b-h4bub5ryit]  .ssc-pick.is-active {
    border-color: var(--fn-primary);
    color: var(--fn-text);
    background: var(--fn-accent-soft);
}

.ssc-segments[b-h4bub5ryit] {
    display: grid;
    overflow: hidden;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 8px;
    background: var(--fn-bg);
}

.ssc-segments-two[b-h4bub5ryit] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ssc-segments-three[b-h4bub5ryit] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ssc-segments-four[b-h4bub5ryit] { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ssc-market-grid[b-h4bub5ryit]  .ssc-segment:nth-child(-n+3) {
    border-bottom: var(--fn-border-width) solid var(--fn-border);
}

.ssc-market-grid[b-h4bub5ryit]  .ssc-segment:nth-child(3),
.ssc-market-grid[b-h4bub5ryit]  .ssc-segment:nth-child(6) {
    border-right: 0;
}

.ssc[b-h4bub5ryit]  .ssc-segment {
    min-width: 0;
    min-height: 34px;
    border: 0;
    border-right: var(--fn-border-width) solid var(--fn-border);
    border-radius: 0;
    padding: 5px 4px;
    color: var(--fn-text-tertiary);
    background: transparent;
    box-shadow: none;
    font-size: 10px;
    font-weight: var(--fn-font-weight-regular);
    line-height: 1.15;
    white-space: normal;
}

.ssc[b-h4bub5ryit]  .ssc-segment:last-child { border-right: 0; }

.ssc[b-h4bub5ryit]  .ssc-segment:hover:not(:disabled) {
    color: var(--fn-text);
    background: var(--fn-bg-muted);
}

.ssc[b-h4bub5ryit]  .ssc-segment.is-active {
    color: var(--fn-text);
    background: var(--fn-accent-soft);
    font-weight: var(--fn-font-weight-bold);
}

.ssc[b-h4bub5ryit]  .ssc-segment-stacked {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ssc[b-h4bub5ryit]  .ssc-segment small {
    display: block;
    color: var(--fn-text-tertiary);
    font-size: 9px;
    font-weight: var(--fn-font-weight-regular);
}

.ssc[b-h4bub5ryit]  .ssc-segment.is-active small { color: var(--fn-text-secondary); }

.ssc-mark[b-h4bub5ryit] {
    display: inline-block;
    min-width: 9px;
    margin-right: 2px;
}

.ssc-watchlist[b-h4bub5ryit] {
    position: relative;
    width: 100%;
    margin-top: 7px;
    font-size: 11px;
    font-weight: var(--fn-font-weight-medium);
}

.ssc-watchlist-trigger[b-h4bub5ryit] {
    display: flex;
    width: 100%;
    min-height: 34px;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    text-align: left;
}

.ssc-watchlist-trigger span:first-child[b-h4bub5ryit] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ssc-watchlist-menu[b-h4bub5ryit] {
    position: absolute;
    z-index: 20;
    inset: calc(100% + 4px) 0 auto;
    max-height: 190px;
    margin: 0;
    overflow-y: auto;
    border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: var(--fn-radius-sm);
    padding: 5px;
    background: var(--fn-bg-alt);
    box-shadow: var(--fn-elevation-3);
}

.ssc-watchlist-menu legend[b-h4bub5ryit] {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.ssc-watchlist-option[b-h4bub5ryit] {
    display: flex;
    min-height: 32px;
    align-items: center;
    gap: 9px;
    border-radius: var(--fn-radius-sm);
    padding: 5px 7px;
    color: var(--fn-text);
    cursor: pointer;
}

.ssc-watchlist-option:hover[b-h4bub5ryit] {
    background: var(--fn-hover);
}

.ssc-watchlist-option input[b-h4bub5ryit] {
    flex: 0 0 auto;
    accent-color: var(--fn-primary);
}

.ssc-watchlist-option span[b-h4bub5ryit] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ssc-data[b-h4bub5ryit] {
    padding: 9px 10px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 8px;
    background: var(--fn-bg-muted);
}

.ssc-data-head[b-h4bub5ryit],
.ssc-coverage[b-h4bub5ryit] {
    display: flex;
    align-items: center;
}

.ssc-data-head[b-h4bub5ryit] {
    justify-content: space-between;
    gap: 10px;
}

.ssc-coverage[b-h4bub5ryit] {
    gap: 7px;
    font-size: 11px;
    font-weight: var(--fn-font-weight-bold);
}

.ssc-status[b-h4bub5ryit] {
    display: grid;
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    color: var(--fn-bg);
    background: var(--fn-warning);
    font-size: 10px;
    font-weight: var(--fn-font-weight-bold);
}

.ssc-status.is-good[b-h4bub5ryit] { background: var(--fn-success); }
.ssc-status.is-bad[b-h4bub5ryit] { background: var(--fn-danger); }
.ssc-status.is-loading[b-h4bub5ryit] { color: var(--fn-text); background: var(--fn-bg-raised); }

.ssc-data-meta[b-h4bub5ryit],
.ssc-message[b-h4bub5ryit],
.ssc-result[b-h4bub5ryit] {
    margin: 0;
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
    line-height: 1.4;
}

.ssc-data-meta[b-h4bub5ryit] { margin: 5px 0 0 24px; }

.ssc-data-details[b-h4bub5ryit] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px 12px;
    margin: 9px 0 0 24px;
    padding-top: 8px;
    border-top: var(--fn-border-width) solid var(--fn-border);
}

.ssc-data-details div[b-h4bub5ryit] {
    display: flex;
    justify-content: space-between;
    gap: 8px;
}

.ssc-data-details dt[b-h4bub5ryit] { color: var(--fn-text-tertiary); font-size: 9.5px; }
.ssc-data-details dd[b-h4bub5ryit] { margin: 0; color: var(--fn-text-secondary); font-family: var(--fn-font-mono); font-size: 10px; }

.ssc-action-section[b-h4bub5ryit] { border-bottom: 0; }

.ssc[b-h4bub5ryit]  .ssc-run {
    width: 100%;
    min-height: 40px;
    border-color: var(--fn-primary);
    border-radius: 9px;
    color: var(--fn-primary);
    background: var(--fn-accent-soft);
    font-size: 12px;
    font-weight: var(--fn-font-weight-bold);
}

.ssc[b-h4bub5ryit]  .ssc-run.is-running {
    border-color: var(--fn-warning);
    color: var(--fn-warning);
    background: transparent;
}

.ssc-progress[b-h4bub5ryit] {
    width: 100%;
    height: 4px;
    margin-top: 8px;
    accent-color: var(--fn-primary);
}

.ssc-result[b-h4bub5ryit] {
    display: flex;
    align-items: flex-start;
    gap: 6px;
    margin-top: 8px;
    font-family: var(--fn-font-mono);
}

.ssc-result.is-good[b-h4bub5ryit] { color: var(--fn-success); }
.ssc-result.is-warning[b-h4bub5ryit] { color: var(--fn-warning); }
.ssc-result.is-bad[b-h4bub5ryit] { color: var(--fn-danger); }

.ssc-results-section[b-h4bub5ryit] { border-top: var(--fn-border-width) solid var(--fn-border); border-bottom: 0; }
.ssc-hits[b-h4bub5ryit] { display: flex; flex-direction: column; gap: 2px; }

.ssc[b-h4bub5ryit]  .ssc-hit {
    display: flex;
    width: 100%;
    min-height: 34px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border-color: transparent;
    padding: 5px 7px;
    color: var(--fn-text);
    background: transparent;
    text-align: left;
}

.ssc[b-h4bub5ryit]  .ssc-hit:hover { border-color: var(--fn-border); background: var(--fn-bg-muted); }

.ssc-strength[b-h4bub5ryit] {
    flex: 0 0 auto;
    color: var(--fn-success);
    font-family: var(--fn-font-mono);
    font-size: 11px;
    font-weight: var(--fn-font-weight-bold);
}

.ssc[b-h4bub5ryit]  .ssc-show-all { width: 100%; margin-top: 7px; }

@media (max-width: 350px) {
    .ssc-section[b-h4bub5ryit] { padding-right: 10px; padding-left: 10px; }
    .ssc[b-h4bub5ryit]  .ssc-segment { font-size: 9px; }
}
/* /Components/Charting/TrendCompassSignalControls.razor.rz.scp.css */
.tc-chart-signals[b-h75iyet1l4] {
    position: absolute;
    z-index: 8;
    right: 8px;
    bottom: 8px;
    left: 8px;
    display: flex;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    gap: 8px;
}

.tc-chart-signals:focus-within[b-h75iyet1l4] {
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    flex-wrap: wrap;
    padding: 8px;
    border: 1px solid var(--fn-border);
    border-radius: 9px;
    background: var(--fn-bg-alt);
}

.tc-chart-signals button[b-h75iyet1l4] {
    min-width: 44px;
    min-height: 44px;
    border: 1px solid var(--fn-border-strong);
    border-radius: 8px;
    background: var(--fn-bg-muted);
    color: var(--fn-text);
    padding: 8px 10px;
}

.tc-chart-signals button:focus-visible[b-h75iyet1l4] {
    outline: 2px solid var(--fn-primary);
    outline-offset: 2px;
}

@media (forced-colors:active) {
    .tc-chart-signals button[b-h75iyet1l4] { border-color: ButtonText; }
}
/* /Components/Charting/TrendCompassStateCard.razor.rz.scp.css */
/* Zustandskarte 1:1 aus der abgenommenen Vorschau (.state-card). */
.cw-state-card[b-cftzdqjazn] {
    margin-top: 12px;
    padding: 12px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
    font-size: 12px;
}
.cw-state-card h4[b-cftzdqjazn] { margin: 0 0 6px; color: var(--fn-text); font-size: 12.5px; }
.cw-state-card p[b-cftzdqjazn] { margin: 0; line-height: 1.5; }
.cw-state-card button[b-cftzdqjazn],
.cw-state-card a[b-cftzdqjazn] {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    margin: 8px 8px 0 0;
    color: var(--fn-primary);
}
.cw-state-card button[b-cftzdqjazn] {
    border: var(--fn-border-width) solid var(--fn-primary);
    border-radius: var(--fn-radius-sm);
    background: transparent;
    padding: 0 12px;
}
.cw-state-card.concept h4[b-cftzdqjazn] { color: var(--fn-warning); }
.cw-state-card.error h4[b-cftzdqjazn] { color: var(--fn-danger); }

@media (pointer: coarse) {
    .cw-state-card button[b-cftzdqjazn], .cw-state-card a[b-cftzdqjazn] { min-height: 44px; }
}
/* /Components/DataProvisioning/DataProvisioningPage.razor.rz.scp.css */
/* Modul Datenversorgung — tokens-only (FINLIST003). */
.dp[b-a55dgh56v8] {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.dp-lead[b-a55dgh56v8] {
    margin: 0;
    font-size: 13px;
    color: var(--fn-text-secondary);
    line-height: 1.6;
    max-width: 104ch;
}
/* /Components/Design/DesignSystemPage.razor.rz.scp.css */
/* Design-System (T4, lebendes UI-Kit) — tokens-only. Nur Seiten-Layout; die Primitive
   bringen ihre Optik selbst mit (das ist der Punkt der Seite). */
.ds-page[b-oq9ptqqznv] { padding: 22px 26px 48px; display: flex; flex-direction: column; gap: 22px; max-width: 1100px; }

.ds-head h1[b-oq9ptqqznv] { font-size: 21px; display: flex; align-items: center; gap: 10px; margin: 0 0 4px; }
.ds-eyebrow[b-oq9ptqqznv] { font-size: 11px; font-weight: 700; border: 1px solid var(--fn-primary); color: var(--fn-primary);
    border-radius: var(--fn-radius-pill); padding: 2px 10px; }
.ds-lead[b-oq9ptqqznv] { color: var(--fn-text-secondary); font-size: 13px; margin: 0; max-width: 920px; line-height: 1.6; }
.ds-lead[b-oq9ptqqznv]  code, .ds-sec h2 code[b-oq9ptqqznv] { font-size: 11.5px; color: var(--fn-text-tertiary); }

.ds-sec[b-oq9ptqqznv] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius-lg);
    padding: 16px 20px 20px; display: flex; flex-direction: column; gap: 14px; }
.ds-sec h2[b-oq9ptqqznv] { font-size: 14px; margin: 0; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.ds-note[b-oq9ptqqznv] { font-size: 11.5px; font-weight: 400; color: var(--fn-text-tertiary); }
.ds-note-line[b-oq9ptqqznv] { font-size: 12px; color: var(--fn-text-tertiary); }

.ds-row[b-oq9ptqqznv] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ds-grid[b-oq9ptqqznv] { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px 18px; align-items: start; }
.ds-wide[b-oq9ptqqznv] { grid-column: 1 / -1; }

.ds-chip[b-oq9ptqqznv] { font-size: 11.5px; font-weight: 600; border-radius: var(--fn-radius-pill); padding: 3px 11px;
    border: 1px solid var(--fn-border-strong); color: var(--fn-text-secondary); }

.ds-avatar[b-oq9ptqqznv] { width: 52px; height: 52px; border-radius: 50%; background: var(--fn-accent-soft); color: var(--fn-primary);
    display: flex; align-items: center; justify-content: center; font-size: 16.5px; font-weight: 700; }
.ds-card-name[b-oq9ptqqznv] { font-size: 15px; font-weight: 600; color: var(--fn-text); }
.ds-card-sub[b-oq9ptqqznv] { font-size: 12.5px; font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); font-weight: 400; margin-left: 8px; }
.ds-card-line[b-oq9ptqqznv] { font-size: 12.5px; color: var(--fn-text-secondary); }

.ds-warn[b-oq9ptqqznv] { font-size: 12px; color: var(--fn-warning); }
.ds-plus[b-oq9ptqqznv] { font-size: 13px; line-height: 1; }
.ds-dialogfoot-demo[b-oq9ptqqznv] { display: flex; flex-direction: column; gap: 10px; }

/* Dock-Muster: die Seite scrollt selbst — das Dock ist hier nur Ausstellungsstück. */
.ds-dock[b-oq9ptqqznv] { position: static; }
/* /Components/Diagnostics/DataChannelStatusBar.razor.rz.scp.css */
/* Unterste Zeile im Sidebar-Footer, unter der Performance-Zeile (Niko 01.09.2026).
   Masse, Bildsprache und Popover 1:1 aus PerformanceStatusBar.razor.css uebernommen, damit sich
   die neue Zeile einfuegt und gleich bedient wird. Nur Tokens, kein Hex. */
.dc-bar[b-ofe2rwtc76] {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.dc-toggle[b-ofe2rwtc76] {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: none;
    border-radius: 8px;
    color: var(--fn-text-secondary);
    padding: 7px 14px;
    font-size: 11.5px;
    cursor: pointer;
    text-align: left;
}
.dc-toggle:hover[b-ofe2rwtc76] { color: var(--fn-text); background: var(--fn-hover); }
.dc-toggle .dc-name[b-ofe2rwtc76] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; }
.dc-toggle .dc-value[b-ofe2rwtc76] { flex: 0 0 auto; }

.dc-time[b-ofe2rwtc76] { font-family: ui-monospace, monospace; color: var(--fn-text-tertiary); font-size: 11px; }
.dc-name[b-ofe2rwtc76] { color: var(--fn-text); font-weight: var(--fn-font-weight-medium); }
.dc-value[b-ofe2rwtc76] {
    font-family: ui-monospace, monospace;
    font-weight: var(--fn-font-weight-bold);
    color: var(--fn-text);
}
.dc-value.is-partial[b-ofe2rwtc76] { color: var(--fn-caution); }
.dc-value.is-down[b-ofe2rwtc76]    { color: var(--fn-danger); }
.dc-value.is-degraded[b-ofe2rwtc76] { color: var(--fn-warning); }
.dc-value.is-unknown[b-ofe2rwtc76]  { color: var(--fn-neutral); }
.dc-rate.is-degraded[b-ofe2rwtc76] { color: var(--fn-warning); }
.dc-list-sub[b-ofe2rwtc76] { margin-top: 6px; border-top: 1px solid var(--fn-border); padding-top: 6px; }
.dc-row-note .dc-name[b-ofe2rwtc76] { color: var(--fn-neutral); }

/* Der Punkt traegt die Aussage: gruen alle, orange Teilstoerung, rot Totalausfall. */
.dc-dot[b-ofe2rwtc76] {
    width: 8px; height: 8px; border-radius: var(--fn-radius-round);
    background: var(--fn-neutral); flex: 0 0 8px;
}
.dc-dot.is-ok[b-ofe2rwtc76]      { background: var(--fn-success); }
.dc-dot.is-down[b-ofe2rwtc76]    { background: var(--fn-danger); }
/* Vierstufige Ampel plus grau (Design-Vorgabe 1c, Nachtrag Niko 02.09.2026):
   gelb --fn-warning = alles kommt an, aber mit Stoerungen · orange --fn-caution = etwas liefert
   nicht · rot --fn-danger = gar nichts · grau --fn-neutral = nicht gemessen. Der graue Punkt nutzt
   BEWUSST nicht --fn-text-tertiary: ein Ampelpunkt ist nicht deaktiviert, er ist eine Aussage. */
.dc-dot.is-degraded[b-ofe2rwtc76] { background: var(--fn-warning); }
.dc-dot.is-partial[b-ofe2rwtc76]  { background: var(--fn-caution); }
.dc-dot.is-unknown[b-ofe2rwtc76]  { background: var(--fn-neutral); }

/* Ausgeklappte Kanalliste — Popover ueber dem Schalter, wie bei der Performance-Zeile. */
.dc-list[b-ofe2rwtc76] {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 8px;
    right: 8px;
    width: auto;
    max-height: 280px;
    overflow-y: auto;
    background: var(--fn-bg-alt);
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    box-shadow: var(--fn-elevation-3);
    padding: 6px;
    z-index: 1300;
}
.dc-list-head[b-ofe2rwtc76] {
    display: flex; align-items: center; justify-content: space-between;
    font-size: 11px; color: var(--fn-text-tertiary);
    padding: 4px 8px 8px; border-bottom: var(--fn-border-width) solid var(--fn-border); margin-bottom: 4px;
}
.dc-when[b-ofe2rwtc76] { font-family: ui-monospace, monospace; }
.dc-row[b-ofe2rwtc76] {
    display: grid;
    grid-template-columns: 10px 40px 1fr auto;
    align-items: center;
    gap: 8px;
    padding: 5px 8px;
    border-radius: var(--fn-radius-sm);
    font-size: 12px;
}
.dc-row:hover[b-ofe2rwtc76] { background: var(--fn-hover); }
.dc-row .dc-name[b-ofe2rwtc76] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dc-rate[b-ofe2rwtc76] { font-family: ui-monospace, monospace; color: var(--fn-text-tertiary); font-size: 11px; text-align: right; }
.dc-rate.is-down[b-ofe2rwtc76] { color: var(--fn-danger); font-weight: var(--fn-font-weight-bold); }
.dc-count[b-ofe2rwtc76] { font-family: ui-monospace, monospace; color: var(--fn-text-secondary); font-size: 11px; }
/* /Components/Diagnostics/DataFeedAlertDialog.razor.rz.scp.css */
/* Nur die zwei Zeilen, die FnErrorDialog nicht kennt: die betroffenen Wertpapiere.
   Alles andere kommt aus fn-error-* - kein zweites Dialogdesign (Niko 02.09.2026). */
.dfa-affected[b-0ko3b3tckg] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 10px;
}

.dfa-named[b-0ko3b3tckg] {
    color: var(--fn-text-secondary);
    font-size: 12.5px;
    line-height: 1.5;
}
/* /Components/Diagnostics/DataSyncAlertDialog.razor.rz.scp.css */
/* Hinweis nach der Anmeldung zum naechtlichen Abgleich.

   ⛔ SEIT DEM 12.09.2026 EIN RESIZABLE STANDARD-FENSTER (Niko): Rahmen, Kopf, Standard-Icons,
   Beweglichkeit, Resize-Kante unten rechts und die je Benutzer gemerkte Groesse kommen aus
   FnDialogScaffold/FnFloatingWindow. Dieses Stilblatt gestaltet deshalb nur noch den KOERPER —
   Aussage, Faktenliste, Ursache und Fusszeile.

   ENTFALLEN (Inventar in der .razor): .dfa-backdrop, die eigene Huelle .dfa mit Rahmenfarbe und
   Hoehenbegrenzung, sowie der eigene Kopf .dfa-head. Ein eigener Dialogkopf ist nach Vorgabe 3c
   ausdruecklich verboten — genau den hatte diese Datei.

   EIGENE .dfa-Klassen, ausdruecklich NICHT die geliehenen fn-error-*: Diese gelten per
   CSS-Isolation nur in FnErrorDialog. Der Datenreihen-Hinweis hat sie sich geliehen, keine einzige
   Regel griff, und der Dialog rendert seither stillos.

   Alle Farben und Masse stammen aus den FIN-Tokens. */

/* Der Titel im Fensterkopf: Punkt + Text. Der Punkt traegt jetzt den Zustand — den Fensterrahmen
   faerbt niemand von aussen um. */
.dfa-title[b-aha50kpgmt] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.dfa-dot[b-aha50kpgmt] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--fn-caution);
    flex: 0 0 auto;
}

.dfa-dot.ok[b-aha50kpgmt] {
    background: var(--fn-success);
}

.dfa-dot.warn[b-aha50kpgmt] {
    background: var(--fn-warning);
}

/* .dfa-head h3 ist mit dem eigenen Kopf entfallen — die Ueberschrift stellt jetzt
   FnFloatingWindow. Eine Regel ohne Element ist totes CSS: syntaktisch gueltig, wirkungslos,
   und kein Test schlaegt an (Arbeitsregel R5). Deshalb geloescht statt stehen gelassen. */

.dfa-claim[b-aha50kpgmt] {
    padding: 16px 18px 0;
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--fn-text);
}

.dfa-impact[b-aha50kpgmt] {
    padding: 8px 18px 0;
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    color: var(--fn-text-secondary);
}

.dfa-facts[b-aha50kpgmt] {
    padding: 14px 18px 16px;
    display: grid;
    grid-template-columns: 128px 1fr;
    gap: 7px 14px;
    margin: 0;
}

.dfa-facts dt[b-aha50kpgmt] {
    font-size: 11.5px;
    color: var(--fn-text-tertiary);
    margin: 0;
}

.dfa-facts dd[b-aha50kpgmt] {
    margin: 0;
    font-size: 12.5px;
    color: var(--fn-text);
}

.dfa-facts .t[b-aha50kpgmt] {
    font-family: var(--fn-font-mono);
}

.dfa-facts .no[b-aha50kpgmt] {
    color: var(--fn-caution);
    font-weight: 600;
}

.dfa-facts .yes[b-aha50kpgmt] {
    color: var(--fn-success);
    font-weight: 600;
}

.dfa-cause[b-aha50kpgmt] {
    margin: 0 18px 16px;
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: 8px;
    padding: 10px 13px;
}

.dfa-cause .l[b-aha50kpgmt] {
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
    font-weight: 600;
    margin-bottom: 4px;
}

.dfa-cause .v[b-aha50kpgmt] {
    font-family: var(--fn-font-mono);
    font-size: 12px;
    color: var(--fn-text-secondary);
}

.dfa-foot[b-aha50kpgmt] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px;
    border-top: 1px solid var(--fn-border);
}

.dfa-foot .acts[b-aha50kpgmt] {
    margin-left: auto;
    display: flex;
    gap: 8px;
}

/* Die Knoepfe kommen aus den geteilten Primitiven (fn-buttons.css) — kein zweites Knopfmuster
   fuer dieselbe Handlung (R9, Gate FINCOMP001). Hier steht nur, wie sie in der Fusszeile liegen. */
/* /Components/Diagnostics/PerformanceStatusBar.razor.rz.scp.css */
/* Live performance status bar — inline at the bottom of the left sidebar footer (Niko 23.06.2026),
   under version/copyright. Tokens-only. The recent-measurements list opens as a popover above. */
.perf-bar[b-pbqrkomqaz] {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.perf-toggle[b-pbqrkomqaz] {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: none;
    border-radius: 8px;
    color: var(--fn-text-secondary);
    padding: 7px 14px;
    font-size: 11.5px;
    cursor: pointer;
    text-align: left;
}
.perf-toggle:hover[b-pbqrkomqaz] { color: var(--fn-text); background: var(--fn-hover); }
.perf-toggle .perf-name[b-pbqrkomqaz] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; }
.perf-toggle .perf-ms[b-pbqrkomqaz] { flex: 0 0 auto; }

.perf-time[b-pbqrkomqaz] { font-family: ui-monospace, monospace; color: var(--fn-text-tertiary); font-size: 11px; }
.perf-name[b-pbqrkomqaz] { color: var(--fn-text); font-weight: var(--fn-font-weight-medium); }
.perf-ms[b-pbqrkomqaz]   { font-family: ui-monospace, monospace; font-weight: var(--fn-font-weight-bold); color: var(--fn-text); }
.perf-ms.is-fail[b-pbqrkomqaz] { color: var(--fn-danger); }

.perf-dot[b-pbqrkomqaz] {
    width: 8px; height: 8px; border-radius: var(--fn-radius-round);
    background: var(--fn-text-tertiary); flex: 0 0 8px;
}
.perf-dot.cat-startup[b-pbqrkomqaz]   { background: var(--fn-primary); }
.perf-dot.cat-screen[b-pbqrkomqaz]    { background: var(--fn-success); }
.perf-dot.cat-component[b-pbqrkomqaz] { background: var(--fn-warning); }

/* Expanded recent list — popover above the toggle, sized to the sidebar width. */
.perf-list[b-pbqrkomqaz] {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 8px;
    right: 8px;
    width: auto;
    max-height: 280px;
    overflow-y: auto;
    background: var(--fn-bg-alt);
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    box-shadow: var(--fn-elevation-3);
    padding: 6px;
    z-index: 1300;
}
.perf-list-head[b-pbqrkomqaz] {
    display: flex; align-items: center; justify-content: space-between;
    font-size: 11px; color: var(--fn-text-tertiary);
    padding: 4px 8px 8px; border-bottom: var(--fn-border-width) solid var(--fn-border); margin-bottom: 4px;
}
.perf-host[b-pbqrkomqaz] { font-family: ui-monospace, monospace; }
.perf-row[b-pbqrkomqaz] {
    display: grid;
    grid-template-columns: 10px 60px 1fr auto;
    align-items: center;
    gap: 8px;
    padding: 5px 8px;
    border-radius: var(--fn-radius-sm);
    font-size: 12px;
}
.perf-row:hover[b-pbqrkomqaz] { background: var(--fn-hover); }
.perf-row.is-fail .perf-ms[b-pbqrkomqaz] { color: var(--fn-danger); }
.perf-row .perf-name[b-pbqrkomqaz] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.perf-empty[b-pbqrkomqaz] { padding: 14px 8px; color: var(--fn-text-tertiary); font-size: 12px; text-align: center; }
/* /Components/EventIntelligence/EventIntelligencePage.razor.rz.scp.css */
/* 1:1 aus VORSCHAU-Ereignis-Intelligence-Matrix.html — nur Tokens, Icons über ::deep. */
.wrap[b-2j5os8flrd] { width: 100%; padding: 20px 24px 48px; }

.crumb[b-2j5os8flrd] { display: flex; align-items: center; gap: 16px; font-size: 18px; color: var(--fn-text-secondary); font-weight: 500; margin: 4px 0 4px; }
.crumb .back[b-2j5os8flrd] { display: inline-flex; align-items: center; gap: 6px; color: var(--fn-text-secondary); background: none; border: none; font: inherit; cursor: pointer; padding: 0; }
.crumb .back[b-2j5os8flrd]  svg, .crumb .back[b-2j5os8flrd]  [data-lucide] { width: 18px; height: 18px; }
.crumb strong[b-2j5os8flrd] { color: var(--fn-text); font-weight: 700; }

.lead[b-2j5os8flrd] { color: var(--fn-text-secondary); font-size: 13px; margin: 0 0 16px; max-width: 820px; }
.note[b-2j5os8flrd] { background: var(--fn-accent-soft); border: 1px solid var(--fn-accent-line); border-radius: var(--fn-radius-sm); padding: 9px 13px; color: var(--fn-text-secondary); font-size: 12px; margin-bottom: 16px; }
.note b[b-2j5os8flrd] { color: var(--fn-text); }

/* Toolbar (Suche, Refresh, Neu) ist seit dem 09.09.2026 das geteilte FnListToolbar - keine lokalen
   .fn-toolbar-*-Regeln mehr (Gate DESIGN001-REDEFINE, offener Punkt 7). */
.ei-status[b-2j5os8flrd] { display: flex; align-items: center; gap: 8px; margin: -4px 0 14px; padding: 8px 12px; border: 1px solid var(--fn-border-strong); border-radius: var(--fn-radius-sm); background: var(--fn-accent-soft); color: var(--fn-text); font-size: 12.5px; font-weight: 600; }
.ei-status[b-2j5os8flrd]  svg, .ei-status[b-2j5os8flrd]  [data-lucide] { width: 15px; height: 15px; color: var(--fn-primary); flex: none; }

.eventbar[b-2j5os8flrd] { display: flex; align-items: center; gap: 6px; margin-bottom: 14px; }
.eventbar .seg[b-2j5os8flrd] { display: inline-flex; background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius-pill); padding: 3px; }
.eventbar .seg button[b-2j5os8flrd] { display: inline-flex; align-items: center; gap: 7px; border: none; background: transparent; color: var(--fn-text-secondary); font: inherit; font-size: 12.5px; font-weight: 600; padding: 7px 15px; border-radius: var(--fn-radius-pill); cursor: pointer; }
.eventbar .seg button.on[b-2j5os8flrd] { background: var(--fn-primary); color: var(--fn-on-primary); }
.eventbar .seg button[b-2j5os8flrd]  svg, .eventbar .seg button[b-2j5os8flrd]  [data-lucide] { width: 14px; height: 14px; }
.eventbar .hint[b-2j5os8flrd] { color: var(--fn-text-tertiary); font-size: 12px; margin-left: 6px; }

.filter-row[b-2j5os8flrd] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 10px 12px; margin-bottom: 14px; }
.ei-tag[b-2j5os8flrd] { display: flex; align-items: center; gap: 8px; background: var(--fn-input-bg); border: 1px solid var(--fn-input-border); border-radius: 9px; padding: 6px 10px; color: var(--fn-text-secondary); font-size: 12.5px; }
.ei-tag b[b-2j5os8flrd] { color: var(--fn-text); font-weight: 500; }
/* Export-Icons rechtsbündig in der Filterleiste (Niko 19.07.2026). */
.ei-export[b-2j5os8flrd] { margin-left: auto; display: inline-flex; gap: 8px; }

.panel[b-2j5os8flrd] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); box-shadow: var(--fn-elevation-1); margin-bottom: 16px; }
.panel h2[b-2j5os8flrd] { font-size: 13px; font-weight: 600; margin: 0; padding: 12px 14px; border-bottom: 1px solid var(--fn-border); display: flex; align-items: center; gap: 8px; }
.panel h2[b-2j5os8flrd]  svg, .panel h2[b-2j5os8flrd]  [data-lucide] { width: 15px; height: 15px; color: var(--fn-primary); }
.panel h2 .sub[b-2j5os8flrd] { color: var(--fn-text-tertiary); font-weight: 500; font-size: 11.5px; margin-left: auto; }

.table-wrap[b-2j5os8flrd] { overflow: auto; }
/* Grid erbt die Optik 1:1 von fn-list (wie die Watchliste). Hier NUR additiv: Breite, Zahl-Spalten, T0. */
table.matrix[b-2j5os8flrd] { min-width: 1180px; }
table.matrix th[b-2j5os8flrd], table.matrix td[b-2j5os8flrd] { white-space: nowrap; }
table.matrix thead th[b-2j5os8flrd] { position: sticky; top: 0; }
table.matrix th.num[b-2j5os8flrd], table.matrix td.num[b-2j5os8flrd] { text-align: right; font-family: var(--fn-font-mono); }
table.matrix th.lead-col[b-2j5os8flrd] { text-align: left; position: sticky; }
table.matrix th.lead-col:first-child[b-2j5os8flrd], table.matrix td.lead-col:first-child[b-2j5os8flrd] {
    width: var(--ei-company-width);
    min-width: var(--ei-company-width);
    max-width: var(--ei-company-width);
}
table.matrix td.lead-col:first-child[b-2j5os8flrd] { overflow: hidden; }
table.matrix th.event-col[b-2j5os8flrd], table.matrix td.event-col[b-2j5os8flrd] {
    width: var(--ei-event-width);
    min-width: var(--ei-event-width);
    max-width: var(--ei-event-width);
}
table.matrix td.event-col[b-2j5os8flrd] { overflow: hidden; text-overflow: ellipsis; }
.ei-column-resizer[b-2j5os8flrd] { position: absolute; top: 0; right: 0; width: 12px; height: 100%; cursor: col-resize; touch-action: none; z-index: 10; }
.ei-column-resizer[b-2j5os8flrd]::after { content: ""; position: absolute; top: 15%; bottom: 15%; right: 1px; width: 2px; border-radius: 2px; background: var(--fn-border-strong); }
.ei-column-resizer:hover[b-2j5os8flrd], .ei-column-resizer:focus-visible[b-2j5os8flrd] { background: var(--fn-accent-soft); outline: none; }
.ei-column-resizer:hover[b-2j5os8flrd]::after, .ei-column-resizer:focus-visible[b-2j5os8flrd]::after { background: var(--fn-primary); width: 3px; }
.ei-sort-head[b-2j5os8flrd] { width: 100%; display: inline-flex; align-items: center; gap: 6px; border: 0; background: transparent; color: inherit; padding: 0; font: inherit; font-weight: inherit; text-transform: inherit; letter-spacing: inherit; cursor: pointer; }
.ei-sort-head:hover[b-2j5os8flrd], .ei-sort-head.active[b-2j5os8flrd] { color: var(--fn-primary); }
.ei-sort-head[b-2j5os8flrd]  svg, .ei-sort-head[b-2j5os8flrd]  [data-lucide] { width: 13px; height: 13px; flex: none; }
table.matrix th.t0[b-2j5os8flrd], table.matrix td.t0[b-2j5os8flrd] { background: var(--fn-accent-soft); }
.up[b-2j5os8flrd] { color: var(--fn-success); }
.down[b-2j5os8flrd] { color: var(--fn-danger); }
.flat[b-2j5os8flrd] { color: var(--fn-text-secondary); }
.nd[b-2j5os8flrd] { color: var(--fn-warning); font-family: var(--fn-font-mono); font-size: 11px; }
tr.sec td[b-2j5os8flrd] { cursor: pointer; }
tr.sec:hover td[b-2j5os8flrd] { background: var(--fn-hover); }
tr.sec.sel td[b-2j5os8flrd] { background: var(--fn-accent-soft); }
.fn-stack .main[b-2j5os8flrd] { font-weight: 500; }
.fn-sym[b-2j5os8flrd] { font-family: var(--fn-font-mono); font-size: 12px; color: var(--fn-cat-blue); font-weight: 700; }
.sec-ids[b-2j5os8flrd] { font-family: var(--fn-font-mono); font-size: 10.5px; color: var(--fn-text-secondary); margin-top: 1px; }
.evdate[b-2j5os8flrd] { color: var(--fn-text-tertiary); font-size: 11px; }
.t0-bubble[b-2j5os8flrd] { display: block; margin-top: 3px; font-size: 9.5px; font-family: var(--fn-font-mono); color: var(--fn-warning); background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); border-radius: var(--fn-radius-pill); padding: 1px 6px; white-space: nowrap; }
/* Ereignis-Modus: das letzte T0-Datum ist keine Warnung -> grün (nur IPO-Daten-Rand bleibt warngelb). */
.t0-bubble.t0-ok[b-2j5os8flrd] { color: var(--fn-success); background: var(--fn-success-soft); border-color: var(--fn-success); }
/* Angekündigter ZUKUNFTS-Termin (Niko 19.07.2026): gelb = kommt noch. */
.t0-bubble.t0-upcoming[b-2j5os8flrd] { color: var(--fn-warning); background: var(--fn-warning-soft); border-color: var(--fn-warning); }
/* Vergleichs-Bubble (Niko 19.07.2026): Wert der Vor-Veröffentlichung dezent grün UNTER dem aktuellen Wert. */
.cmp-bubble[b-2j5os8flrd] { display: block; width: fit-content; margin: 4px 0 0 auto; font-family: var(--fn-font-mono); font-size: 9.5px; line-height: 1.2; color: var(--fn-warning); background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); border-radius: var(--fn-radius-pill); padding: 2px 7px; white-space: nowrap; }
.ipo-tag[b-2j5os8flrd] { color: var(--fn-success); font-size: 11px; }

.detail-head[b-2j5os8flrd] { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--fn-border); }
.detail-head .fn-sym[b-2j5os8flrd] { font-size: 13px; }
.detail-head .nm[b-2j5os8flrd] { font-weight: 600; }
.detail-head .chip[b-2j5os8flrd] { margin-left: auto; font-size: 11px; color: var(--fn-text-secondary); border: 1px solid var(--fn-border); background: var(--fn-bg-muted); border-radius: var(--fn-radius-pill); padding: 2px 9px; }
.summary[b-2j5os8flrd] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 12px; }
.metric[b-2j5os8flrd] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 10px; padding: 10px; }
.metric span[b-2j5os8flrd] { display: block; color: var(--fn-text-tertiary); font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; }
.metric b[b-2j5os8flrd] { display: block; margin-top: 3px; font-size: 14.5px; }
.metric small[b-2j5os8flrd] { display: block; color: var(--fn-text-secondary); font-size: 11px; margin-top: 2px; }
.reaction[b-2j5os8flrd] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 0 12px 12px; }
.reaction .metric b[b-2j5os8flrd] { font-family: var(--fn-font-mono); }
.dl-title[b-2j5os8flrd] { font-size: 12px; font-weight: 600; color: var(--fn-text-secondary); padding: 6px 12px 8px; }
.legend[b-2j5os8flrd] { display: flex; gap: 16px; flex-wrap: wrap; padding: 10px 14px; border-top: 1px solid var(--fn-border); color: var(--fn-text-tertiary); font-size: 11.5px; }
.legend span[b-2j5os8flrd] { display: inline-flex; align-items: center; gap: 6px; }
.dot[b-2j5os8flrd] { width: 9px; height: 9px; border-radius: 2px; display: inline-block; }
.dot.up[b-2j5os8flrd] { background: var(--fn-success); }
.dot.down[b-2j5os8flrd] { background: var(--fn-danger); }
.dot.warn[b-2j5os8flrd] { background: var(--fn-warning); }
/* Legenden-Punkte für die Bubble-Farben (rund = Bubble, eckig = Zellwert). */
.dot.cmp[b-2j5os8flrd] { background: var(--fn-warning); border-radius: 50%; }
.dot.next[b-2j5os8flrd] { background: var(--fn-warning); border-radius: 50%; }

.ei-group[b-2j5os8flrd] { max-width: 260px; }
tr.ei-grp td[b-2j5os8flrd] { background: var(--fn-bg-muted); color: var(--fn-text-secondary); font-weight: 600; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; padding: 7px 9px; }
.ei-grp-count[b-2j5os8flrd] { color: var(--fn-text-tertiary); font-weight: 500; margin-left: 6px; }

/* Master-Detail-Split: Matrix links (flex), Detail-Sidebar rechts PERMANENT stehend (fixe Breite, sticky,
   scrollt innen). Kein Overlay, kein Ein-/Ausblenden — die Sidebar bleibt immer sichtbar, nur ihr Inhalt wechselt. */
.ei-split[b-2j5os8flrd] { display: flex; gap: 16px; align-items: stretch; }
.ei-split.sidebar-collapsed[b-2j5os8flrd] { gap: 0; }
.ei-split > .panel[b-2j5os8flrd] { flex: 1; min-width: 0; margin-bottom: 0; }
.ei-sidebar[b-2j5os8flrd] { flex: 0 0 440px; max-width: 40vw; align-self: flex-start; position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow-y: auto; background: var(--fn-bg-alt); border: 1px solid var(--fn-border-strong); border-radius: var(--fn-radius); box-shadow: var(--fn-elevation-2); display: flex; flex-direction: column; }
.ei-sidebar.collapsed[b-2j5os8flrd] { flex: 0 0 44px; width: 44px; min-width: 44px; max-width: 44px; box-sizing: border-box; align-self: stretch; position: sticky; top: 0; height: 100vh; max-height: 100vh; min-height: 100vh; overflow: hidden; align-items: center; padding: 12px 0 0; border-top: 0; border-bottom: 0; border-radius: 0; box-shadow: none; }
.ei-sidebar-control[b-2j5os8flrd] { display: flex; flex: 0 0 26px; }
.ei-sidebar-reopen[b-2j5os8flrd] { margin: 0; }
.ei-sb-empty[b-2j5os8flrd] { padding: 28px 16px 28px 6px; color: var(--fn-text-tertiary); text-align: center; font-size: 12.5px; display: flex; align-items: center; justify-content: center; gap: 10px; flex-direction: column; }
.ei-sb-empty .ei-sidebar-control[b-2j5os8flrd] { align-self: flex-start; }
.ei-sb-head[b-2j5os8flrd] { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px 14px 6px; border-bottom: 1px solid var(--fn-border); }
.ei-sb-id .main[b-2j5os8flrd] { font-weight: 600; color: var(--fn-text); }
.ei-sb-close[b-2j5os8flrd] { margin-left: auto; width: 30px; height: 30px; flex: none; border: 1px solid var(--fn-border); background: transparent; color: var(--fn-text-secondary); border-radius: 7px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.ei-sb-close[b-2j5os8flrd]  svg, .ei-sb-close[b-2j5os8flrd]  [data-lucide] { width: 15px; height: 15px; }
.ei-sb-body[b-2j5os8flrd] { flex: 1; min-height: 0; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.ei-sb-event[b-2j5os8flrd] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; }
.ei-sb-hero[b-2j5os8flrd] { display: flex; flex-direction: column; gap: 2px; }
.ei-sb-hero-label[b-2j5os8flrd] { color: var(--fn-text-tertiary); font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; }
.ei-sb-hero-num[b-2j5os8flrd] { font-family: var(--fn-font-mono); font-size: 40px; font-weight: 700; line-height: 1.1; }
/* Heutiger absoluter Kurs (aus T0-Kurs × (1 + Drift)) — dezent unter der Drift-Kennzahl. */
.ei-sb-today[b-2j5os8flrd] { display: flex; align-items: baseline; gap: 8px; margin-top: 4px; }
.ei-sb-today .lbl[b-2j5os8flrd] { color: var(--fn-text-tertiary); font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; }
.ei-sb-today b[b-2j5os8flrd] { font-family: var(--fn-font-mono); font-size: 17px; font-weight: 700; color: var(--fn-text); }
.ei-sb-spark[b-2j5os8flrd] { background: var(--fn-bg-muted); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 10px; }
.ei-sb-react[b-2j5os8flrd] { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.ei-sb-react .metric[b-2j5os8flrd] { background: var(--fn-bg-muted); border: 1px solid var(--fn-border); border-radius: 10px; padding: 9px 10px; }
.ei-sb-react .metric span[b-2j5os8flrd] { display: block; color: var(--fn-text-tertiary); font-size: 10.5px; }
.ei-sb-react .metric b[b-2j5os8flrd] { display: block; margin-top: 2px; font-family: var(--fn-font-mono); font-size: 14px; }
.ei-sb-details summary[b-2j5os8flrd] { cursor: pointer; color: var(--fn-text-secondary); font-size: 12px; font-weight: 600; padding: 6px 0; }
table.ei-sb-table td[b-2j5os8flrd] { padding: 5px 7px; }
.ei-sb-funda[b-2j5os8flrd] { border: 1px dashed var(--fn-border-strong); border-radius: var(--fn-radius); padding: 12px; }
.ei-sb-funda-head[b-2j5os8flrd] { color: var(--fn-text-secondary); font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; display: flex; justify-content: space-between; margin-bottom: 8px; }
.ei-sb-funda-src[b-2j5os8flrd] { color: var(--fn-text-tertiary); font-weight: 500; }
.ei-sb-funda-empty[b-2j5os8flrd] { display: flex; flex-direction: column; align-items: center; gap: 4px; color: var(--fn-warning); text-align: center; padding: 8px; }
.ei-sb-funda-empty[b-2j5os8flrd]  svg { width: 18px; height: 18px; }
.ei-sb-funda-empty small[b-2j5os8flrd] { color: var(--fn-text-tertiary); }

/* Titelzeile (Icon + Modulname) statt „Zurück" — kein Back-Button auf dieser Menü-Ebene. */
.ei-title[b-2j5os8flrd] { display: flex; align-items: center; gap: 10px; margin: 4px 0 8px; }
.ei-title h1[b-2j5os8flrd] { font-size: 20px; font-weight: 700; margin: 0; color: var(--fn-text); }
.ei-title[b-2j5os8flrd]  svg, .ei-title[b-2j5os8flrd]  [data-lucide] { width: 22px; height: 22px; color: var(--fn-primary); }

/* Echter ChartPanel in der Sidebar (feste Fläche) + faktischer Kommentar. */
.ei-sb-chart[b-2j5os8flrd] { height: 46vh; min-height: 340px; border: 1px solid var(--fn-border); border-radius: var(--fn-radius); overflow: hidden; background: var(--fn-bg-muted); }
.ei-sb-comment[b-2j5os8flrd] { font-size: 12px; color: var(--fn-text-secondary); line-height: 1.55; }

/* ===== Universum verwalten: Herkunft, Zeilen-Aktionen, Dialoge (Toolbar-Primaeraktion kommt aus FnListToolbar) ===== */

.ei-origin-col[b-2j5os8flrd], .ei-act-col[b-2j5os8flrd] { text-align: center; }
.ei-origin[b-2j5os8flrd] { text-align: center; }
.src[b-2j5os8flrd] { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; padding: 2px 9px; border-radius: var(--fn-radius-pill); border: 1px solid var(--fn-border); white-space: nowrap; }
.src.fav[b-2j5os8flrd] { color: var(--fn-cat-gold); border-color: var(--fn-cat-gold); background: var(--fn-warning-soft); }
.src.man[b-2j5os8flrd] { color: var(--fn-text-secondary); }
.src[b-2j5os8flrd]  svg { width: 12px; height: 12px; }

.ei-act[b-2j5os8flrd] { text-align: center; white-space: nowrap; }
.ei-acts[b-2j5os8flrd] { display: inline-flex; gap: 6px; }
.ei-ic[b-2j5os8flrd] { width: 28px; height: 28px; border-radius: 7px; border: 1px solid var(--fn-border); background: transparent; color: var(--fn-text-secondary); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.ei-ic:hover[b-2j5os8flrd] { background: var(--fn-hover); color: var(--fn-text); }
.ei-ic.danger:hover[b-2j5os8flrd] { color: var(--fn-danger); border-color: var(--fn-danger); }
.ei-ic:disabled[b-2j5os8flrd] { opacity: .35; cursor: not-allowed; }
.ei-ic[b-2j5os8flrd]  svg { width: 15px; height: 15px; }

/* Dialog-Huelle, Kopf und Fusszeile kommen seit dem 09.09.2026 aus FnDialogScaffold (Vorgabe 3c, Nachtrag 1.14). */
.ei-modal-body[b-2j5os8flrd] { padding: 0; }

.ei-search-box[b-2j5os8flrd] { display: flex; align-items: center; gap: 8px; background: var(--fn-input-bg); border: 1px solid var(--fn-input-border); border-radius: 9px; padding: 9px 12px; }
.ei-search-box[b-2j5os8flrd]  svg { width: 15px; height: 15px; color: var(--fn-text-tertiary); }
.ei-search-box input[b-2j5os8flrd] { flex: 1; border: none; background: transparent; outline: none; color: var(--fn-text); font: inherit; font-size: 13px; }
.ei-hint[b-2j5os8flrd] { color: var(--fn-text-tertiary); font-size: 11.5px; margin: 8px 2px 0; display: flex; align-items: center; gap: 6px; }
.ei-hint[b-2j5os8flrd]  svg { width: 13px; height: 13px; flex: none; }
.ei-hits[b-2j5os8flrd] { margin-top: 12px; border: 1px solid var(--fn-border); border-radius: 10px; overflow: hidden; max-height: 320px; overflow-y: auto; }
.ei-hcount[b-2j5os8flrd] { font-size: 11px; color: var(--fn-text-tertiary); padding: 7px 12px; background: var(--fn-bg-muted); border-bottom: 1px solid var(--fn-border); }
.ei-hit[b-2j5os8flrd] { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-bottom: 1px solid var(--fn-border); cursor: pointer; }
.ei-hit:last-child[b-2j5os8flrd] { border-bottom: none; }
.ei-hit:hover[b-2j5os8flrd], .ei-hit.sel[b-2j5os8flrd] { background: var(--fn-accent-soft); }
.ei-hit-stk[b-2j5os8flrd] { flex: 1; min-width: 0; }
.ei-hit-check[b-2j5os8flrd] { color: var(--fn-primary); }
.ei-hit[b-2j5os8flrd]  svg { width: 16px; height: 16px; }

.ei-lbl[b-2j5os8flrd] { font-size: 11px; color: var(--fn-text-tertiary); text-transform: uppercase; letter-spacing: .06em; margin: 0 0 6px; }
.ei-mt[b-2j5os8flrd] { margin-top: 12px; }
.ei-ro[b-2j5os8flrd] { background: var(--fn-bg-muted); border: 1px solid var(--fn-border); border-radius: 9px; padding: 8px 11px; font-family: var(--fn-font-mono); font-size: 12px; color: var(--fn-text-secondary); }
.ei-inp[b-2j5os8flrd] { width: 100%; background: var(--fn-input-bg); border: 1px solid var(--fn-input-border); border-radius: 9px; padding: 9px 12px; color: var(--fn-text); font: inherit; font-size: 13px; }

.ei-warn[b-2j5os8flrd] { display: flex; align-items: flex-start; gap: 9px; background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); border-radius: 10px; padding: 11px 13px; font-size: 12.5px; color: var(--fn-text); }
.ei-warn[b-2j5os8flrd]  svg { width: 16px; height: 16px; color: var(--fn-danger); flex: none; margin-top: 1px; }

@media (max-width: 960px) {
    .summary[b-2j5os8flrd], .reaction[b-2j5os8flrd] { grid-template-columns: 1fr 1fr; }
}
/* /Components/EventRadar/EventOrdersPanel.razor.rz.scp.css */
/* NL-Aufträge (P3-Split) — tokens only. Buttons/Textarea = Fn*-Primitive (FINCOMP001);
   hier nur Panel-Layout, Badges und Status. Umgezogen aus wwwroot/css/event-radar.css. */

.ord-card[b-w41yba2j8i] { padding: 18px; }
.ord-lead[b-w41yba2j8i] { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--fn-text-secondary); margin-bottom: 10px; }
.ord-lead[b-w41yba2j8i]  .lucide { width: 16px; height: 16px; color: var(--fn-primary); }

/* Freitext: geteilte fn-textarea-Geometrie, hier nur die Orders-spezifische Größe. */
[b-w41yba2j8i] .ord-text { min-height: 78px; font-size: 14px; padding: 12px 14px; }

.ord-foot[b-w41yba2j8i] { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; flex-wrap: wrap; }
.ord-foot-end[b-w41yba2j8i] { justify-content: flex-end; }
.ord-note[b-w41yba2j8i] { margin: 0 0 12px; }
.ord-empty[b-w41yba2j8i] { margin: 0; }

.ord-badge[b-w41yba2j8i] { display: inline-flex; align-items: center; gap: 5px; font-family: var(--fn-font-mono); font-size: 10.5px; font-weight: 600; letter-spacing: .03em; padding: 2px 9px; border-radius: var(--fn-radius-pill); border: 1px solid transparent; white-space: nowrap; }
.ord-badge[b-w41yba2j8i]  .lucide { width: 12px; height: 12px; }
.ord-badge.t-fixed[b-w41yba2j8i] { color: var(--fn-info); background: var(--fn-info-soft); border-color: var(--fn-info); }
.ord-badge.t-relative[b-w41yba2j8i] { color: var(--fn-cat-teal); background: var(--fn-cat-teal-soft); border-color: var(--fn-cat-teal); }
.ord-badge.t-group[b-w41yba2j8i] { color: var(--fn-cat-purple); background: var(--fn-cat-purple-soft); border-color: var(--fn-cat-purple); }
.ord-badge.t-intent[b-w41yba2j8i] { color: var(--fn-cat-gold); background: var(--fn-warning-soft); border-color: var(--fn-cat-gold); }

.ord-status[b-w41yba2j8i] { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 500; }
.ord-status .dot[b-w41yba2j8i] { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; }
.ord-status.s-active[b-w41yba2j8i] { color: var(--fn-success); }
.ord-status.s-active .dot[b-w41yba2j8i] { background: var(--fn-success); }
.ord-status.s-paused[b-w41yba2j8i] { color: var(--fn-text-tertiary); }
.ord-status.s-paused .dot[b-w41yba2j8i] { background: var(--fn-text-tertiary); }

.ord-reason[b-w41yba2j8i] { color: var(--fn-text-tertiary); font-size: 11px; font-style: italic; }
.ord-confirm[b-w41yba2j8i] { border-left: 3px solid var(--fn-cat-gold); }
.ord-cell-warn[b-w41yba2j8i] { color: var(--fn-warning); background: var(--fn-warning-soft); border: 1px solid var(--fn-cat-gold); border-radius: 6px; padding: 2px 7px; display: inline-flex; align-items: center; gap: 5px; }
.ord-cell-warn[b-w41yba2j8i]  .lucide { width: 12px; height: 12px; }
.ord-conf[b-w41yba2j8i] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-tertiary); }
/* /Components/EventRadar/EventRadarPage.razor.rz.scp.css */
/* Event-Radar Kopfleiste — abgenommene Vorschau 02.08.2026 (Niko):
   Die Modul-Button-Gruppe (Import/Export · Spalten · Protokoll) sitzt in der MITTELZONE des
   wl-head-Grids (echte Bildschirmmitte), leicht (~70px) nach links versetzt, und auf Höhe der
   KPI-Zeile (unten am Kopfblock statt vertikal zentriert). */
.er-modbar[b-0flc0v8bil] {
    grid-column: 2;
    justify-self: center;
    align-self: end;
    margin-bottom: 2px;
    transform: translateX(-70px);
    display: flex;
    gap: 8px;
}

/* Panel-Kopf: Titel · Abgleich-Leiste · §2b-Toolbar in EINER Zeile — die Toolbar bricht nie um
   und bleibt vollständig im Panel; die Abgleich-Leiste (msync) gibt Platz ab. */
.wl-panel-h[b-0flc0v8bil]  .fn-list-toolbar {
    margin-left: auto;
    flex-wrap: nowrap;
    flex-shrink: 0;
}

.wl-panel-h[b-0flc0v8bil]  .msync {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
}

/* §2b: das Suchfeld darf bis 180px schrumpfen, bevor irgendetwas anderes leidet. */
.wl-panel-h[b-0flc0v8bil]  .fn-toolbar-search {
    min-width: 180px;
    flex-shrink: 1;
}

/* /Components/IndicatorStudio/IndicatorStudioBacktestPanel.razor.rz.scp.css */
/* Backtest-Panel — Maße 1:1 aus der abgenommenen Vorschau, nur --fn-*-Tokens. */

.is-panel[b-y0c8707bbq] {
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-alt);
    overflow: hidden;
}

.is-panel > header[b-y0c8707bbq] {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 36px;
    padding: 0 11px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
    background: var(--fn-bg-muted);
    color: var(--fn-text-tertiary);
    font-size: 8.5px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .35px;
    text-transform: uppercase;
}

.is-panel > header svg[b-y0c8707bbq] {
    width: 13px;
    height: 13px;
    color: var(--fn-primary);
}

.is-panel > header .right[b-y0c8707bbq] {
    margin-left: auto;
    text-transform: none;
    letter-spacing: 0;
    font-size: 9.5px;
    font-weight: var(--fn-font-weight-regular);
}

.is-panel-body[b-y0c8707bbq] {
    display: flex;
    flex-direction: column;
    gap: 11px;
    padding: 11px;
}

.bt-empty[b-y0c8707bbq] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 150px;
    padding: 20px;
    text-align: center;
    color: var(--fn-text-secondary);
    line-height: 1.55;
}

.bt-empty svg[b-y0c8707bbq] {
    width: 26px;
    height: 26px;
    color: var(--fn-primary);
}

.bt-empty strong[b-y0c8707bbq] {
    color: var(--fn-text);
    font-size: 12px;
}

.bt-empty span[b-y0c8707bbq] {
    max-width: 460px;
    color: var(--fn-text-tertiary);
    font-size: 11px;
}

/* Die zwei Fälle stehen nebeneinander; der geltende ist hervorgehoben. */
.bt-cases[b-y0c8707bbq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 10px;
}

.bt-case[b-y0c8707bbq] {
    padding: 9px 10px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-left: 3px solid var(--fn-border-strong);
    border-radius: 8px;
    background: var(--fn-bg-muted);
    opacity: .6;
}

.bt-case.on[b-y0c8707bbq] {
    border-left-color: var(--fn-primary);
    opacity: 1;
}

.bt-case h4[b-y0c8707bbq] {
    margin: 0 0 3px;
    color: var(--fn-text-secondary);
    font-size: 10px;
    font-weight: var(--fn-font-weight-bold);
}

.bt-case p[b-y0c8707bbq] {
    margin: 0;
    color: var(--fn-text-tertiary);
    font-size: 10px;
    line-height: 1.55;
}

.bt-engine[b-y0c8707bbq] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 8px 10px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 8px;
    background: var(--fn-info-soft);
    color: var(--fn-text-secondary);
    font-size: 10px;
    line-height: 1.55;
}

.bt-engine svg[b-y0c8707bbq] {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    margin-top: 1px;
    color: var(--fn-info);
}

/* Datengrundlage — steht VOR den Zahlen (Konzept §6). Sie ist kein Beiwerk: eine Kennzahl ohne
   ihre Grundlage ist nicht einzuordnen. */
.bt-basis[b-y0c8707bbq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 8px;
    margin: 0 0 12px;
    padding: 10px 12px;
    background: var(--fn-bg-muted);
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
}

.bt-basis dt[b-y0c8707bbq] {
    font-size: 9px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}

.bt-basis dd[b-y0c8707bbq] {
    margin: 2px 0 0;
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    color: var(--fn-text);
}

.bt-metrics[b-y0c8707bbq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 7px;
    margin: 0 0 12px;
}

.bt-metrics > div[b-y0c8707bbq] {
    min-width: 0;
    padding: 8px 9px;
    background: var(--fn-bg-muted);
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
}

.bt-metrics dt[b-y0c8707bbq] {
    margin: 0 0 3px;
    font-size: 9.5px;
    color: var(--fn-text-tertiary);
}

.bt-metrics dd[b-y0c8707bbq] {
    margin: 0;
    font-family: var(--fn-font-mono);
    font-size: 14.5px;
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text);
}

/* Dieselben Farbstufen wie auf der Kachel — eine Regel, zwei Anzeigeorte (Konzept §2.4). */
.bt-metrics dd.positive[b-y0c8707bbq] { color: var(--fn-success); }
.bt-metrics dd.warning[b-y0c8707bbq] { color: var(--fn-warning); }
.bt-metrics dd.negative[b-y0c8707bbq] { color: var(--fn-danger); }

/* Eine zu kleine Stichprobe wird beschriftet, nicht verschwiegen. */
.bt-warn[b-y0c8707bbq] {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin: 0 0 12px;
    padding: 9px 11px;
    background: var(--fn-warning-soft);
    border: var(--fn-border-width) solid var(--fn-warning);
    border-radius: var(--fn-radius-sm);
    color: var(--fn-warning);
    font-size: 11.5px;
}

.bt-warn svg[b-y0c8707bbq] { width: 13px; height: 13px; flex: none; margin-top: 1px; }

/* Die Grenzen gehören in den Bericht, nicht nur ins Konzept. */
.bt-limits[b-y0c8707bbq] {
    margin: 0;
    padding-left: 18px;
    color: var(--fn-text-tertiary);
    font-size: 11px;
    line-height: 1.55;
}

/* Fall B: die fehlenden Trades sind eine Aussage, kein Loch. */
.bt-note[b-y0c8707bbq] {
    margin: 0 0 12px;
    padding: 10px 12px;
    background: var(--fn-cat-teal-soft);
    border-left: 3px solid var(--fn-cat-teal);
    border-radius: 0 var(--fn-radius-sm) var(--fn-radius-sm) 0;
    color: var(--fn-text-secondary);
    font-size: 11.5px;
}

.bt-note b[b-y0c8707bbq] {
    display: block;
    margin-bottom: 3px;
    color: var(--fn-cat-teal);
    font-weight: var(--fn-font-weight-medium);
}

.bt-sub[b-y0c8707bbq] {
    margin: 0 0 6px;
    color: var(--fn-text-tertiary);
    font-size: 9.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
}

/* Protokoll — Handelsprotokoll bzw. Zustandswechsel. */
.bt-log[b-y0c8707bbq] {
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
    font-family: var(--fn-font-mono);
    font-size: 11px;
}

.bt-log li[b-y0c8707bbq] {
    padding: 4px 0;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
    color: var(--fn-text-secondary);
}

.bt-log li:last-child[b-y0c8707bbq] { border-bottom: 0; }
.bt-log li.positive[b-y0c8707bbq] { color: var(--fn-success); }
.bt-log li.negative[b-y0c8707bbq] { color: var(--fn-danger); }
/* /Components/IndicatorStudio/IndicatorStudioCard.razor.rz.scp.css */
/* Kachel des IndicatorStudios — 1:1 aus der abgenommenen Vorschau
   (docs/concepts/VORSCHAU-IndicatorStudio.html). Ausschließlich --fn-*-Tokens. */

/* Rahmen, Akzentkante, Zustand und Fokus liegen in FnStudioTile — hier steht nur, was DIESE
   Kachel zusätzlich braucht. Die Klasse .is-card reicht das Modul als CssClass durch. */

.is-card-head[b-ca277ff45d] {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    padding: 14px 14px 0;
}

.is-avatar[b-ca277ff45d] {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border-radius: 8px;
    background: var(--fn-cat-teal-soft);
    color: var(--fn-cat-teal);
    font-family: var(--fn-font-mono);
    font-size: 10.5px;
    font-weight: var(--fn-font-weight-medium);
}

.is-avatar.kind-signal[b-ca277ff45d] {
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
}

.is-identity[b-ca277ff45d] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
}

.is-identity strong[b-ca277ff45d] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--fn-text);
    font-size: 12.5px;
    font-weight: var(--fn-font-weight-bold);
}

.is-identity small[b-ca277ff45d] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--fn-text-tertiary);
    font-family: var(--fn-font-mono);
    font-size: 9.5px;
}

.is-card-actions[b-ca277ff45d] {
    display: flex;
    gap: 3px;
    flex: 0 0 auto;
}

.is-card-actions[b-ca277ff45d]  .is-square-action {
    display: grid;
    place-items: center;
    width: 26px;
    min-width: 26px;
    height: 26px;
    padding: 0;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 7px;
    background: var(--fn-input-bg);
    color: var(--fn-text-secondary);
}

.is-card-actions[b-ca277ff45d]  .is-square-action:hover:not(:disabled) {
    color: var(--fn-primary);
    border-color: var(--fn-border-strong);
}

.is-card-actions[b-ca277ff45d]  .is-danger-action:hover:not(:disabled) { color: var(--fn-danger); }
.is-card-actions[b-ca277ff45d]  .is-square-action svg { width: 13px; height: 13px; }

.is-badges[b-ca277ff45d] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    padding: 10px 14px 0;
}

.is-badges > span[b-ca277ff45d] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 19px;
    padding: 0 8px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-pill);
    background: var(--fn-surface-alt);
    color: var(--fn-text-secondary);
    font-size: 9.5px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .045em;
    white-space: nowrap;
}

.is-badges > span.signal[b-ca277ff45d] {
    border-color: var(--fn-accent-line);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
}

.is-badges > span.curve[b-ca277ff45d] {
    border-color: var(--fn-cat-teal);
    background: var(--fn-cat-teal-soft);
    color: var(--fn-cat-teal);
}

.is-badges > span.on[b-ca277ff45d] {
    border-color: var(--fn-success);
    background: var(--fn-success-soft);
    color: var(--fn-success);
}

.is-badges > span.off[b-ca277ff45d] {
    border-color: var(--fn-border-strong);
    color: var(--fn-text-tertiary);
}

/* Eingebaut: gedaempft, nicht alarmierend. Es ist kein Fehler, dass dieser Indikator kein
   Prism-Programm hat — es ist eine Eigenschaft, und der Grund steht darunter. */
.is-badges > span.builtin[b-ca277ff45d] {
    border-color: var(--fn-border-strong);
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
}

.is-badges > span svg[b-ca277ff45d] { width: 10px; height: 10px; }

.is-locked[b-ca277ff45d] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    color: var(--fn-text-tertiary);
}

.is-locked[b-ca277ff45d]  svg { width: 13px; height: 13px; }

.is-builtin-reason[b-ca277ff45d] {
    text-align: left;
    line-height: 1.45;
    padding: 0 var(--fn-space-2);
}

.is-metrics[b-ca277ff45d] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin: 0;
    padding: 10px 14px 0;
}

/* Die Kennzahlen sind das inhaltliche Zentrum der Kachel — eigene Zelle je Wert. */
.is-metrics > div[b-ca277ff45d] {
    min-width: 0;
    padding: 8px 9px;
    background: var(--fn-bg-muted);
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
}

.is-metrics dt[b-ca277ff45d] {
    margin: 0 0 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--fn-text-tertiary);
    font-size: 9.5px;
}

.is-metrics dd[b-ca277ff45d] {
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-size: 14.5px;
    font-weight: var(--fn-font-weight-medium);
}

.is-metrics dd.pending[b-ca277ff45d] { color: var(--fn-text-tertiary); }

/* Farbstufen nach Konzept §2.4 — die Schwellen stehen im Code (IndicatorStudioMetrics.ToneFor),
   die Farben hier. Nie Hex, immer Token. */
.is-metrics dd.positive[b-ca277ff45d] { color: var(--fn-success); }
.is-metrics dd.warning[b-ca277ff45d] { color: var(--fn-warning); }
.is-metrics dd.negative[b-ca277ff45d] { color: var(--fn-danger); }

/* Verlaufsfläche (Variante A, Niko 06.08.2026) — grobe Darstellung des letzten Backtest-Laufs.
   Ohne Lauf: gestrichelter Rahmen, play-Icon und Klartext samt Handlungshinweis. Keine erfundene
   Linie, kein erfundener Wert (Fake-Daten-Verbot). */
.is-trend[b-ca277ff45d] {
    margin: 10px 14px 0;
    background: var(--fn-bg-muted);
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    overflow: hidden;
}

.is-trend-cap[b-ca277ff45d] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 5px 9px 0;
    overflow: hidden;
    white-space: nowrap;
    color: var(--fn-text-tertiary);
    font-size: 9.5px;
}

.is-trend-cap b[b-ca277ff45d] {
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-weight: var(--fn-font-weight-medium);
}

.is-trend-plot[b-ca277ff45d] { height: 38px; }
.is-trend-plot svg[b-ca277ff45d] { display: block; width: 100%; height: 100%; }

.is-trend.blank[b-ca277ff45d] {
    border-style: dashed;
    border-color: var(--fn-border-strong);
}

.is-trend-empty[b-ca277ff45d] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 56px;
    padding: 0 10px;
    text-align: center;
    color: var(--fn-text-tertiary);
    font-size: 11px;
}

.is-trend-empty svg[b-ca277ff45d] {
    width: 13px;
    height: 13px;
    flex: none;
}

/* Änderungsnachweis (1C) — das geteilte Bauteil bekommt hier nur seinen Platz, keine eigenen Farben. */
/* ::deep ist Pflicht: das Wurzelelement gehoert FnAuditTrail und traegt die Scope-Kennung
   DIESER Komponente nicht — ohne ::deep bliebe die Regel wirkungslos. */
[b-ca277ff45d] .is-card-audit {
    margin: 10px 14px 0;
}

/* Zulassung je Wirt (2C) — festes Raster 3 × 2: derselbe Wirt sitzt auf jeder Kachel an derselben
   Stelle. Das macht den Vergleich zweier Kacheln nebeneinander schnell. */
.is-hosts-head[b-ca277ff45d] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding: 10px 14px 5px;
}

.is-hosts-head .lbl[b-ca277ff45d] {
    color: var(--fn-text-tertiary);
    font-size: 9px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .3px;
    text-transform: uppercase;
}

.is-hosts-head .cnt[b-ca277ff45d] {
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 9.5px;
}

/* Nirgends zugelassen ist kein Normalzustand — der Zähler sagt es in Warnfarbe. */
.is-hosts-head.none .cnt[b-ca277ff45d] { color: var(--fn-warning); }

.is-hostgrid[b-ca277ff45d] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
    padding: 0 14px 14px;
}

.is-hg[b-ca277ff45d] {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    padding: 4px 6px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 7px;
    background: none;
    color: var(--fn-text-tertiary);
    font-family: inherit;
    font-size: 9.5px;
    text-align: left;
    cursor: pointer;
    transition: border-color .12s ease, background .12s ease, opacity .12s ease;
}

.is-hg svg[b-ca277ff45d] { width: 11px; height: 11px; flex: none; }

.is-hg .nm[b-ca277ff45d] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.is-hg .mark[b-ca277ff45d] { width: 9px; height: 9px; flex: none; }

.is-hg.on[b-ca277ff45d] {
    border-color: var(--fn-accent-line);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
}

.is-hg.no[b-ca277ff45d] { opacity: .5; }

/* Zugelassen, aber im Zielmodul gibt es noch keine Fläche — gestrichelt statt stillschweigend grün. */
.is-hg.pending[b-ca277ff45d] {
    border-style: dashed;
    border-color: var(--fn-warning);
    background: var(--fn-warning-soft);
    color: var(--fn-warning);
}

.is-hg:hover[b-ca277ff45d] { border-color: var(--fn-border-strong); }
.is-hg.no:hover[b-ca277ff45d] { opacity: .8; }

.is-hg:focus-visible[b-ca277ff45d] {
    outline: none;
    border-color: var(--fn-primary);
    box-shadow: var(--fn-focus-ring);
}

.is-card-foot[b-ca277ff45d] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    min-height: 36px;
    margin-top: auto;
    padding: 6px 14px;
    border-top: var(--fn-border-width) solid var(--fn-border);
    color: var(--fn-text-tertiary);
    font-size: 9px;
}

.is-switch-row[b-ca277ff45d] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.is-switch-row .lbl[b-ca277ff45d] {
    color: var(--fn-text-secondary);
    font-size: 10px;
    font-weight: var(--fn-font-weight-medium);
}
/* /Components/IndicatorStudio/IndicatorStudioEditor.razor.rz.scp.css */
/* Editor-Ansicht — Maße 1:1 aus der abgenommenen Vorschau, nur --fn-*-Tokens. */

.is-editor-stage[b-34tjrwyske] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 328px;
    gap: 12px;
    align-items: start;
}

.is-col[b-34tjrwyske] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.is-ed-toolbar[b-34tjrwyske] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 8px 10px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-bottom: 0;
    border-radius: var(--fn-radius-sm) var(--fn-radius-sm) 0 0;
    background: var(--fn-bg-muted);
}

.is-spacer[b-34tjrwyske] { flex: 1 1 auto; }

.kind-pill[b-34tjrwyske] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 24px;
    padding: 0 10px;
    border: var(--fn-border-width) solid var(--fn-cat-teal);
    border-radius: var(--fn-radius-pill);
    background: var(--fn-cat-teal-soft);
    color: var(--fn-cat-teal);
    font-size: 10.5px;
    font-weight: var(--fn-font-weight-bold);
}

.kind-pill.signal[b-34tjrwyske] {
    border-color: var(--fn-primary);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
}

.kind-pill svg[b-34tjrwyske] {
    width: 13px;
    height: 13px;
}

.is-ed-toolbar[b-34tjrwyske]  .is-tool-action {
    height: 30px;
    min-height: 30px;
    padding: 0 12px;
    font-size: 12px;
}

.is-ed-toolbar[b-34tjrwyske]  .is-tool-action svg {
    width: 15px;
    height: 15px;
}

/* Der geteilte Editor sitzt direkt unter der Toolbar — die Rundung führt die Toolbar fort. */
.is-col[b-34tjrwyske]  .fn-prism {
    border-radius: 0 0 var(--fn-radius-sm) var(--fn-radius-sm);
}



.is-saved[b-34tjrwyske] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--fn-success);
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-medium);
}

.is-saved svg[b-34tjrwyske] {
    width: 14px;
    height: 14px;
}

@media (max-width: 1180px) {
    .is-editor-stage[b-34tjrwyske] { grid-template-columns: minmax(0, 1fr); }
}
/* /Components/IndicatorStudio/IndicatorStudioInspector.razor.rz.scp.css */
/* Inspector rechts — Maße 1:1 aus der abgenommenen Vorschau, nur --fn-*-Tokens. */

.is-side-section[b-5hov2dq55q] {
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-alt);
    overflow: hidden;
}

.is-side-section > header[b-5hov2dq55q] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 33px;
    padding: 0 10px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
    background: var(--fn-bg-muted);
    color: var(--fn-text-tertiary);
    font-size: 8px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .35px;
    text-transform: uppercase;
}

.is-side-section > header svg[b-5hov2dq55q] {
    width: 12px;
    height: 12px;
    color: var(--fn-primary);
}

.is-side-body[b-5hov2dq55q] {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 10px;
}

.is-form-row[b-5hov2dq55q] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.is-form-row > label[b-5hov2dq55q] {
    color: var(--fn-text-secondary);
    font-size: 10px;
    font-weight: var(--fn-font-weight-medium);
}

.is-active-row[b-5hov2dq55q] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 8px;
    background: var(--fn-bg-muted);
}

.is-active-row .txt[b-5hov2dq55q],
.is-host-row .txt[b-5hov2dq55q] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1;
}

.is-active-row strong[b-5hov2dq55q] {
    color: var(--fn-text);
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-bold);
}

.is-active-row small[b-5hov2dq55q] {
    color: var(--fn-text-tertiary);
    font-size: 9.5px;
}

.is-host-row[b-5hov2dq55q] {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 38px;
    padding: 5px 0;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
}

.is-host-row:last-child[b-5hov2dq55q] { border-bottom: 0; }

.is-host-row > svg[b-5hov2dq55q] {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    color: var(--fn-text-tertiary);
}

.is-host-row.on > svg[b-5hov2dq55q] { color: var(--fn-primary); }

.is-host-row .txt strong[b-5hov2dq55q] {
    color: var(--fn-text);
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-medium);
}

.is-host-row .txt small[b-5hov2dq55q] {
    display: flex;
    align-items: center;
    gap: 4px;
    color: var(--fn-text-tertiary);
    font-size: 9px;
}

.is-host-row .txt small.pending[b-5hov2dq55q] { color: var(--fn-warning); }

.is-host-row .txt small svg[b-5hov2dq55q] {
    width: 10px;
    height: 10px;
}

.is-help-card[b-5hov2dq55q] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.is-help-card .hd[b-5hov2dq55q] {
    color: var(--fn-primary);
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-bold);
    word-break: break-word;
}

.is-help-card .bd[b-5hov2dq55q] {
    color: var(--fn-text-secondary);
    font-size: 10.5px;
    line-height: 1.55;
}

.is-help-card .ex-label[b-5hov2dq55q] {
    color: var(--fn-text-tertiary);
    font-size: 8px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .3px;
    text-transform: uppercase;
}

.is-help-card pre[b-5hov2dq55q] {
    margin: 0;
    padding: 7px 9px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 7px;
    overflow-x: auto;
    background: var(--fn-bg-muted);
    color: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-size: 10px;
}

.is-kind-explain[b-5hov2dq55q] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.is-kind-explain p[b-5hov2dq55q] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 10.5px;
    line-height: 1.55;
}
/* /Components/IndicatorStudio/IndicatorStudioOverview.razor.rz.scp.css */
/* Kachel-Raster der Übersicht — 1:1 aus der abgenommenen Vorschau. */

/* Schiebt die Aktionsgruppe (Suchen · Aktualisieren · ➕) an den rechten Rand. Konzept §2.2:
   „Links die Filter-Chips, rechts die Aktionsgruppe — der einzige Punkt, an dem die Vorschau von
   der Standard-Toolbar abweicht, und zwar bewusst." Der Abstandhalter steht hier statt in
   FnListToolbar, damit die geteilte Toolbar für alle anderen Module unverändert bleibt. */
.is-toolbar-spacer[b-fabqtr9yh0] {
    flex: 1 1 auto;
}

.is-grid[b-fabqtr9yh0] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(346px, 1fr));
    gap: 12px;
    margin-top: 12px;
}
/* /Components/IndicatorStudio/IndicatorStudioPage.razor.rz.scp.css */
/* Seitenrahmen des Indikator-Studios — Kopfzeile und Fläche. Nur --fn-*-Tokens.

   Vollbereichs-Modul: volle Breite, kein max-width, Höhe über Flex — derselbe Aufbau wie
   Chart-Studio (.cs-shell), Behavioral Lab (.bl-page, dort als „kein 100vh-Deckel" begründet),
   Handels-Buchungsjournal (.tj-page: max-width:none) und AI Trading (.at-shell). Eine
   Breitenbegrenzung tragen in FIN nur schmale Formularseiten. */
.is-page[b-2h5mohb1ra] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%;
    padding: 14px 22px 40px;
}

/* Die geteilte Kopfzeile sitzt hier ohne den Seitenabstand der Einstellungen — die Fläche
   bringt ihren eigenen mit (Vorschau: .is-det-bar). */
.settings-det-bar[b-2h5mohb1ra] {
    padding: 0;
    margin-bottom: 10px;
}

.is-spacer[b-2h5mohb1ra] { flex: 1 1 auto; }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-9v2dzw12gb] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-9v2dzw12gb] {
    flex: 1;
}

.sidebar[b-9v2dzw12gb] {
    /* DesignTokens: keine Gradienten — flache Token-Fläche */
    background: var(--fn-bg-alt);
}

.top-row[b-9v2dzw12gb] {
    background-color: var(--fn-bg-muted);
    border-bottom: var(--fn-border-width) solid var(--fn-border);
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-9v2dzw12gb]  a, .top-row[b-9v2dzw12gb]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-9v2dzw12gb]  a:hover, .top-row[b-9v2dzw12gb]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-9v2dzw12gb]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-9v2dzw12gb] {
        justify-content: space-between;
    }

    .top-row[b-9v2dzw12gb]  a, .top-row[b-9v2dzw12gb]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-9v2dzw12gb] {
        flex-direction: row;
    }

    .sidebar[b-9v2dzw12gb] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-9v2dzw12gb] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-9v2dzw12gb]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-9v2dzw12gb], article[b-9v2dzw12gb] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-9v2dzw12gb] {
    background: var(--fn-warning);
    color: var(--fn-on-primary);
    bottom: 0;
    box-shadow: 0 -1px 2px var(--fn-shadow);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-9v2dzw12gb] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

/* App-weite Render-Absturz-Absicherung (FnErrorBoundary): freundliche Inline-Meldung im Inhaltsbereich,
   statt gelbem Circuit-Tod-Banner. Der eigentliche Fehler + Token erscheint zusätzlich im zentralen Dialog. */
.fn-view-error[b-9v2dzw12gb] { display: flex; align-items: center; gap: 12px; margin: 24px; padding: 18px 20px; border: 1px solid var(--fn-danger); border-radius: var(--fn-radius); background: var(--fn-danger-soft); color: var(--fn-text); font-size: 14px; }
.fn-view-error[b-9v2dzw12gb]  .lucide { width: 20px; height: 20px; color: var(--fn-danger); flex: 0 0 auto; }
.fn-view-error .fn-view-error-token[b-9v2dzw12gb] { font-family: var(--fn-font-mono); font-size: 12px; color: var(--fn-text-secondary); white-space: nowrap; }
.fn-view-error .reload[b-9v2dzw12gb] { margin-left: auto; color: var(--fn-primary); font-weight: 600; text-decoration: none; white-space: nowrap; }
.fn-view-error .reload:hover[b-9v2dzw12gb] { text-decoration: underline; }
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-9f1lpvob4f],
.components-reconnect-repeated-attempt-visible[b-9f1lpvob4f],
.components-reconnect-failed-visible[b-9f1lpvob4f],
.components-pause-visible[b-9f1lpvob4f],
.components-resume-failed-visible[b-9f1lpvob4f],
.components-rejoining-animation[b-9f1lpvob4f] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-9f1lpvob4f],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-9f1lpvob4f],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-9f1lpvob4f],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-9f1lpvob4f],
#components-reconnect-modal.components-reconnect-retrying[b-9f1lpvob4f],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-9f1lpvob4f],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-9f1lpvob4f],
#components-reconnect-modal.components-reconnect-failed[b-9f1lpvob4f],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-9f1lpvob4f] {
    display: block;
}


#components-reconnect-modal[b-9f1lpvob4f] {
    background-color: var(--fn-surface);
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: var(--fn-radius);
    box-shadow: var(--fn-elevation-3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-9f1lpvob4f 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-9f1lpvob4f 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-9f1lpvob4f 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-9f1lpvob4f]::backdrop {
    background-color: var(--fn-shadow-hover);
    animation: components-reconnect-modal-fadeInOpacity-b-9f1lpvob4f 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-9f1lpvob4f {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-9f1lpvob4f {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-9f1lpvob4f {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-9f1lpvob4f] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-9f1lpvob4f] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-9f1lpvob4f] {
    border: 0;
    background-color: var(--fn-primary);
    color: var(--fn-on-primary);
    padding: 4px 24px;
    border-radius: var(--fn-radius-sm);
}

    #components-reconnect-modal button:hover[b-9f1lpvob4f] {
        background-color: var(--fn-primary-hover);
    }

    #components-reconnect-modal button:active[b-9f1lpvob4f] {
        background-color: var(--fn-primary);
    }

.components-rejoining-animation[b-9f1lpvob4f] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-9f1lpvob4f] {
        position: absolute;
        border: 3px solid var(--fn-primary);
        opacity: 1;
        border-radius: var(--fn-radius-round);
        animation: components-rejoining-animation-b-9f1lpvob4f 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-9f1lpvob4f] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-9f1lpvob4f {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Localization/LanguageSelector.razor.rz.scp.css */
.language-selector[b-0398mhy340] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--fn-font);
    color: var(--fn-text);
}

.language-selector__label[b-0398mhy340] {
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text-secondary);
}

.language-selector__select[b-0398mhy340] {
    padding: 0.4rem 0.6rem;
    border-radius: var(--fn-radius-sm);
    border: var(--fn-border-width) solid var(--fn-input-border);
    background: var(--fn-input-bg);
    color: var(--fn-text);
    font-family: inherit;
}

.language-selector__select:focus-visible[b-0398mhy340] {
    outline: none;
    box-shadow: var(--fn-focus-ring);
    border-color: var(--fn-primary);
}
/* /Components/MarketData/MarketSyncBar.razor.rz.scp.css */
.msync[b-4e69xliph0] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 280px;
    font-size: 12px;
    color: var(--fn-text-dim, #9fb0c0);
}

.msync-line[b-4e69xliph0] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.msync-status[b-4e69xliph0] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.msync-status b[b-4e69xliph0] {
    color: var(--fn-text, #e7edf3);
    font-weight: 600;
}

.msync-dot[b-4e69xliph0] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.msync-dot.live[b-4e69xliph0] {
    background: var(--fn-success, #36c98d);
    box-shadow: 0 0 0 0 rgba(54, 201, 141, .55);
    animation: msync-pulse-b-4e69xliph0 2s infinite;
}

.msync-dot.delayed[b-4e69xliph0] {
    background: var(--fn-warning, #f5b942);
}

@keyframes msync-pulse-b-4e69xliph0 {
    0% { box-shadow: 0 0 0 0 rgba(54, 201, 141, .5); }
    70% { box-shadow: 0 0 0 6px rgba(54, 201, 141, 0); }
    100% { box-shadow: 0 0 0 0 rgba(54, 201, 141, 0); }
}

.msync-btn[b-4e69xliph0] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--fn-surface, #161d27);
    border: 1px solid var(--fn-border, #2a3645);
    color: var(--fn-text, #e7edf3);
    border-radius: 7px;
    padding: 5px 11px;
    font-size: 12px;
    cursor: pointer;
    white-space: nowrap;
}

.msync-btn:hover:not(:disabled)[b-4e69xliph0] {
    border-color: var(--fn-accent, #3da9fc);
    color: #fff;
}

.msync-btn:disabled[b-4e69xliph0] {
    opacity: .6;
    cursor: default;
}

.msync-btn .spin[b-4e69xliph0] {
    animation: msync-spin-b-4e69xliph0 1s linear infinite;
}

@keyframes msync-spin-b-4e69xliph0 {
    to { transform: rotate(360deg); }
}

.msync-prog[b-4e69xliph0] {
    height: 4px;
    background: var(--fn-surface, #161d27);
    border-radius: 3px;
    overflow: hidden;
}

.msync-prog > i[b-4e69xliph0] {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--fn-accent, #3da9fc), var(--fn-success, #36c98d));
    transition: width .6s ease;
}

.msync-sub[b-4e69xliph0] {
    font-size: 11px;
    color: var(--fn-text-faint, #6b7c8d);
}

.msync-src[b-4e69xliph0] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.msync-badge[b-4e69xliph0] {
    display: inline-block;
    min-width: 20px;
    text-align: center;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 5px;
    padding: 1px 6px;
    font-family: var(--fn-font-mono);
    font-weight: var(--fn-font-weight-bold);
    font-size: 11px;
    color: var(--fn-text-secondary);
}

.msync-badge.delayed[b-4e69xliph0] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.msync-badge.live[b-4e69xliph0] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.msync-delayed[b-4e69xliph0] { color: var(--fn-warning); }
.msync-live[b-4e69xliph0] { color: var(--fn-success); }
/* /Components/MarketData/ProviderQuotaWarning.razor.rz.scp.css */
.pqw-line[b-a5kulctu3g] {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--fn-warning);
    font-size: 11.5px;
    line-height: 1.4;
}

.pqw-line i[b-a5kulctu3g],
.pqw-line svg[b-a5kulctu3g] {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
}
/* /Components/MarketIntelligence/MiMarkovRegimePanel.razor.rz.scp.css */
/* Markov-Regime indicator cards — tokens only (Ruhig=success, Neutral=warning, Gestresst=danger). */
.mr-eyebrow[b-lazarh3uqu] { margin-left: 8px; }
.mr-empty[b-lazarh3uqu] { padding: 20px 16px; color: var(--fn-text-tertiary); font-size: 13px; }

.mr-grid[b-lazarh3uqu] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; padding: 14px 16px; }
@media (max-width: 900px) { .mr-grid[b-lazarh3uqu] { grid-template-columns: 1fr; } }

.mr-card[b-lazarh3uqu] { background: var(--fn-bg); border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-md); padding: 14px; }
.mr-card.mr-calm[b-lazarh3uqu] { border-top: 2px solid var(--fn-success); }
.mr-card.mr-neutral[b-lazarh3uqu] { border-top: 2px solid var(--fn-warning); }
.mr-card.mr-stressed[b-lazarh3uqu] { border-top: 2px solid var(--fn-danger); }

.mr-head[b-lazarh3uqu] { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; gap: 8px; }
.mr-name[b-lazarh3uqu] { font-weight: 600; font-size: 14px; color: var(--fn-text); }
.mr-tick[b-lazarh3uqu] { font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); font-size: 11px; margin-left: 6px; }

.mr-badge[b-lazarh3uqu] { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; border-radius: 999px; padding: 3px 11px; white-space: nowrap; }
.mr-badge[b-lazarh3uqu]::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.mr-b-calm[b-lazarh3uqu] { color: var(--fn-success); background: var(--fn-success-soft); }
.mr-b-neutral[b-lazarh3uqu] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.mr-b-stressed[b-lazarh3uqu] { color: var(--fn-danger); background: var(--fn-danger-soft); }

.mr-stay[b-lazarh3uqu] { font-size: 12px; color: var(--fn-text-secondary); margin: 4px 0 12px; }
.mr-stay b[b-lazarh3uqu] { color: var(--fn-text); }

.mr-lbl[b-lazarh3uqu] { font-size: 9.5px; text-transform: uppercase; letter-spacing: .6px; color: var(--fn-text-tertiary); margin: 10px 0 5px; }

.mr-bar[b-lazarh3uqu] { display: grid; grid-template-columns: 70px 1fr 44px; align-items: center; gap: 8px; margin: 4px 0; font-size: 11.5px; }
.mr-nm[b-lazarh3uqu] { color: var(--fn-text-secondary); }
.mr-val[b-lazarh3uqu] { font-family: var(--fn-font-mono); color: var(--fn-text); text-align: right; }
.mr-track[b-lazarh3uqu] { height: 7px; border-radius: 4px; background: var(--fn-bg-muted); overflow: hidden; display: block; }
.mr-fill[b-lazarh3uqu] { height: 100%; border-radius: 4px; display: block; }
.mr-f-calm[b-lazarh3uqu] { background: var(--fn-success); }
.mr-f-neutral[b-lazarh3uqu] { background: var(--fn-warning); }
.mr-f-stressed[b-lazarh3uqu] { background: var(--fn-danger); }

.mr-hist[b-lazarh3uqu] { display: flex; gap: 2px; }
.mr-hist i[b-lazarh3uqu] { flex: 1; height: 16px; border-radius: 2px; display: block; }
.mr-h-calm[b-lazarh3uqu] { background: var(--fn-success); }
.mr-h-neutral[b-lazarh3uqu] { background: var(--fn-warning); }
.mr-h-stressed[b-lazarh3uqu] { background: var(--fn-danger); }

.mr-detail[b-lazarh3uqu] { margin-top: 12px; }
.mr-detail summary[b-lazarh3uqu] { font-size: 11.5px; color: var(--fn-primary); cursor: pointer; }
.mr-matrix[b-lazarh3uqu] { display: grid; grid-template-columns: auto repeat(3, 1fr); gap: 1px; margin: 8px 0 4px; font-size: 11px;
             background: var(--fn-border); border: var(--fn-border-width) solid var(--fn-border); border-radius: 6px; overflow: hidden; }
.mr-matrix > div[b-lazarh3uqu] { background: var(--fn-bg); padding: 5px 7px; text-align: center; }
.mr-mh[b-lazarh3uqu] { color: var(--fn-text-tertiary); font-size: 9px; text-transform: uppercase; letter-spacing: .4px; }
.mr-corner[b-lazarh3uqu] { font-size: 8.5px; text-align: left; }
.mr-rh[b-lazarh3uqu] { text-align: left; color: var(--fn-text-secondary); }
.mr-cell[b-lazarh3uqu] { font-family: var(--fn-font-mono); color: var(--fn-text-secondary); }
.mr-cell.mr-diag[b-lazarh3uqu] { color: var(--fn-text); font-weight: 700; background: var(--fn-accent-soft); }
.mr-longrun[b-lazarh3uqu] { font-size: 11.5px; color: var(--fn-text-secondary); display: flex; gap: 14px; flex-wrap: wrap; margin-top: 4px; }
.mr-longrun b[b-lazarh3uqu] { color: var(--fn-text); }

.mr-disclaimer[b-lazarh3uqu] { padding: 8px 16px 14px; color: var(--fn-text-tertiary); font-size: 11.5px; line-height: 1.5; }
/* /Components/Modules/ModuleHostPage.razor.rz.scp.css */
/* Optik der generischen Modul-Hostseite. Aus den style-Attributen und dem <style>-Block von
   ModuleHostPage.razor herausgelöst; Komponenten-CSS ist tokens-only (FINCOMP001), die
   Hex-Rückfallwerte entfallen daher.
   ZWEI davon waren keine Rückfallwerte, sondern die eigentliche Farbe: --fn-accent und
   --fn-surface-2 sind in tokens.css NICHT definiert, es galt jeweils der eingebaute Ersatzwert.
   Ersetzt durch die echten Tokens --fn-primary (Akzent) und --fn-bg-muted (Panel) — minimal andere
   Töne, dafür ohne erfundene Farbe. Bei --fn-text-secondary/-tertiary und --fn-border existierten
   die Tokens, deren Rückfallwerte waren also ohnehin wirkungslos. */

.mod-page[b-ua6renb1dx] { padding: 22px 28px; }

.mod-title[b-ua6renb1dx] { font-size: 20px; margin: 0 0 6px; }

.mod-head[b-ua6renb1dx] { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.mod-head .mod-title[b-ua6renb1dx] { margin: 0; }

.mod-icon[b-ua6renb1dx] { width: 26px; height: 26px; color: var(--fn-primary); }

.mod-badge[b-ua6renb1dx] {
    font-size: 11px;
    padding: 2px 8px;
    border: 1px solid var(--fn-border);
    border-radius: 999px;
    color: var(--fn-text-tertiary);
}

.mod-note[b-ua6renb1dx] { color: var(--fn-text-secondary); font-size: 13px; }
.mod-note-quiet[b-ua6renb1dx] { color: var(--fn-text-tertiary); }
.mod-subtitle[b-ua6renb1dx] { margin: 0 0 16px; }

/* Diagnose-Beleg (1A): nur Superuser; blendet nach 5 s automatisch aus — ein Bruch (z. B. fehlende
   Dienste) bleibt kurz sichtbar, im Normalbetrieb steht nichts über der eigentlichen Modul-UI.
   In der .razor stand Razors @@-Escape, hier steht das echte @keyframes. */
.mod-diag[b-ua6renb1dx] {
    max-height: 240px;
    overflow: hidden;
    animation: mod-diag-hide-b-ua6renb1dx .5s ease 5s forwards;
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 12.5px;
    margin-bottom: 18px;
}

.mod-diag-label[b-ua6renb1dx] {
    color: var(--fn-text-tertiary);
    text-transform: uppercase;
    font-size: 10.5px;
    letter-spacing: .4px;
    margin-bottom: 6px;
}

.mod-diag-services[b-ua6renb1dx] { color: var(--fn-text-tertiary); margin-top: 4px; }

@keyframes mod-diag-hide-b-ua6renb1dx {
    to { opacity: 0; max-height: 0; padding-top: 0; padding-bottom: 0; margin: 0; border-width: 0; }
}
/* /Components/News/MarketNewsSidebar.razor.rz.scp.css */
.ns[b-l8czldpnwa] {
    width: 340px;
    flex: 0 0 auto;
    background: var(--fn-bg-alt, #161d27);
    border-left: 1px solid var(--fn-border, #2a3645);
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    height: 100vh;
    color: var(--fn-text, #e7edf3);
}

.ns-collapsed[b-l8czldpnwa] {
    width: 44px;
    align-items: center;
    padding-top: 12px;
}

/* Seitenleisten-Doppelpfeil (22.08.2026, Niko E5): Look, Groesse (26x26, Icon 14px) und 180-Grad-Drehung
   liegen in Components/Shared/SidebarToggle.razor.css; der Host positioniert nur (Kopfzeile: erstes
   Flex-Kind = linke Kante; eingeklappter Rail: zentriert ueber .ns-collapsed align-items). Die frueheren
   .ns-reopen/.ns-collapse-Regeln (mit Hex-Fallbacks) sind damit entfallen. */

/* header */
.ns-h[b-l8czldpnwa] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 13px 14px;
    border-bottom: 1px solid var(--fn-border, #2a3645);
}
.ns-t[b-l8czldpnwa] { font-weight: 700; font-size: 14px; display: inline-flex; align-items: center; gap: 7px; }
/* Datum heller (war text-tertiary, kaum lesbar) und vom rechten Rand eingerückt (mehr nach links). */
.ns-date[b-l8czldpnwa] { color: var(--fn-text-secondary, #9fb0c0); font-size: 11.5px; margin-left: auto; margin-right: 10px; }

/* tabs */
.ns-tabs[b-l8czldpnwa] { display: flex; gap: 4px; padding: 10px 12px 0; }
.ns-tab[b-l8czldpnwa] {
    flex: 1;
    background: none;
    border: 1px solid transparent;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    color: var(--fn-text-secondary, #9fb0c0);
    cursor: pointer;
    padding: 8px 6px;
    font-size: 13px;
}
.ns-tab.on[b-l8czldpnwa] {
    background: var(--fn-bg, #0f141b);
    color: var(--fn-text, #e7edf3);
    border-color: var(--fn-border, #2a3645);
    font-weight: 600;
}
.ns-badge[b-l8czldpnwa] { font-size: 10px; background: var(--fn-accent, #3da9fc); color: #04121e; border-radius: 10px; padding: 0 6px; margin-left: 5px; font-weight: 700; }

/* filter chips — positioned a bit lower (Niko 09.06.2026): extra top spacing + divider */
.ns-filter[b-l8czldpnwa] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 16px 12px 12px;
    margin-top: 4px;
    border-top: 1px solid var(--fn-border, #2a3645);
}
.ns-chip[b-l8czldpnwa] {
    font-size: 11px;
    color: var(--fn-text-secondary, #9fb0c0);
    background: none;
    border: 1px solid var(--fn-border, #2a3645);
    border-radius: 14px;
    padding: 4px 11px;
    cursor: pointer;
}
.ns-chip.on[b-l8czldpnwa] { background: var(--fn-accent, #3da9fc); color: #04121e; border-color: var(--fn-accent, #3da9fc); font-weight: 600; }

/* body */
.ns-body[b-l8czldpnwa] { flex: 1; overflow-y: auto; padding: 10px 12px 16px; }
.ns-group[b-l8czldpnwa] { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--fn-text-tertiary, #6b7c8d); margin: 8px 2px 8px; }
.ns-empty[b-l8czldpnwa] { color: var(--fn-text-tertiary, #6b7c8d); font-size: 13px; padding: 22px 6px; text-align: center; }

/* feed item */
.ns-item[b-l8czldpnwa] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    background: var(--fn-bg, #0f141b);
    border: 1px solid var(--fn-border, #2a3645);
    border-left: 4px solid transparent;
    border-radius: 8px;
    padding: 10px 11px;
    margin-bottom: 8px;
    cursor: pointer;
}
.ns-item:focus-visible[b-l8czldpnwa] { outline: 2px solid var(--fn-accent, #3da9fc); outline-offset: 2px; }
.ns-item.event[b-l8czldpnwa] { border-left-color: var(--fn-warning, #f5b942); }
.ns-item.pinned[b-l8czldpnwa] { border-left-color: var(--fn-accent, #3da9fc); }
.ns-ico[b-l8czldpnwa] { flex: 0 0 auto; font-size: 15px; line-height: 1.3; }
.ns-main[b-l8czldpnwa] { flex: 1; min-width: 0; }
.ns-title[b-l8czldpnwa] { display: block; font-size: 13px; font-weight: 600; color: var(--fn-text, #e7edf3); text-decoration: none; margin-bottom: 4px; }
.ns-title:hover[b-l8czldpnwa] { color: var(--fn-accent, #3da9fc); }
.ns-title-button[b-l8czldpnwa] {
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    font-family: inherit;
    line-height: inherit;
    text-align: left;
    cursor: pointer;
}

/* summary teaser (Variante B — auf Klick ausklappen, Niko-Abnahme 12.06.2026) */
.ns-sum[b-l8czldpnwa] {
    font-size: 11.5px;
    line-height: 1.45;
    color: var(--fn-text-secondary, #9fb0c0);
    margin: 2px 0 6px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
    -webkit-line-clamp: 2;
}
.ns-more[b-l8czldpnwa] {
    background: none;
    border: none;
    color: var(--fn-accent, #3da9fc);
    cursor: pointer;
    font-size: 11px;
    padding: 0;
    margin: 0 0 5px;
    display: inline-flex;
    align-items: center;
    gap: 3px;
}
.ns-more:hover[b-l8czldpnwa] { text-decoration: underline; }
.ns-item .ns-sum.collapsible[b-l8czldpnwa] { display: none; }
.ns-item.open .ns-sum.collapsible[b-l8czldpnwa] { display: -webkit-box; }
.ns-item.open .ns-more .chev[b-l8czldpnwa] { transform: rotate(180deg); }
.chev[b-l8czldpnwa] { display: inline-block; transition: transform .15s; }
.ns-meta[b-l8czldpnwa] { display: flex; gap: 7px; align-items: center; flex-wrap: wrap; font-size: 11px; color: var(--fn-text-tertiary, #6b7c8d); }
.ns-src[b-l8czldpnwa] { color: var(--fn-text-secondary, #9fb0c0); }
.ns-tkr[b-l8czldpnwa] { font-size: 10px; border: 1px solid var(--fn-border, #2a3645); border-radius: 4px; padding: 1px 5px; color: var(--fn-text-secondary, #9fb0c0); }
.ns-tkr.mine[b-l8czldpnwa] { color: var(--fn-success, #36c98d); border-color: rgba(54,201,141,.4); }
.ns-impact[b-l8czldpnwa] { font-size: 10px; border-radius: 4px; padding: 1px 5px; background: rgba(245,185,66,.15); color: var(--fn-warning, #f5b942); border: 1px solid rgba(245,185,66,.35); }
.ns-impact.high[b-l8czldpnwa] { background: rgba(239,107,115,.15); color: var(--fn-danger, #ef6b73); border-color: rgba(239,107,115,.35); }
.ns-pin[b-l8czldpnwa] {
    flex: 0 0 auto;
    background: none;
    border: 1px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    padding: 3px 5px;
    opacity: .4;
}
.ns-item:hover .ns-pin[b-l8czldpnwa] { opacity: .85; }
.ns-pin.on[b-l8czldpnwa] { opacity: 1; border-color: var(--fn-border, #2a3645); }

/* News-Erweiterung (KONZEPT-News-Email): "Details" neben "Vorschau" + Mail-Icon unter der Pinnadel. */
.ns-links[b-l8czldpnwa] { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.ns-more.det[b-l8czldpnwa] { color: var(--fn-cat-teal); }
.ns-det[b-l8czldpnwa] {
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--fn-text-secondary);
    margin: 2px 0 6px;
    border-top: 1px dashed var(--fn-border);
    padding-top: 6px;
}
.ns-det p[b-l8czldpnwa] { margin: 0 0 6px; }
.ns-det-load[b-l8czldpnwa] { color: var(--fn-text-tertiary); font-size: 11px; }
.ns-event-det[b-l8czldpnwa] { display: grid; gap: 5px; }
.ns-event-row[b-l8czldpnwa] { display: flex; justify-content: space-between; gap: 10px; }
.ns-event-row span[b-l8czldpnwa] { color: var(--fn-text-tertiary); }
.ns-event-row strong[b-l8czldpnwa] { color: var(--fn-text); font-weight: 600; text-align: right; }
.ns-actions[b-l8czldpnwa] { flex: 0 0 auto; display: flex; flex-direction: column; gap: 6px; align-items: center; }
.ns-mail[b-l8czldpnwa] {
    background: none;
    border: 1px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    padding: 3px 5px;
    opacity: .4;
    color: var(--fn-text-secondary);
    line-height: 0;
}
.ns-item:hover .ns-mail[b-l8czldpnwa] { opacity: .85; }
.ns-mail:hover[b-l8czldpnwa] { color: var(--fn-primary); }
.ns-mail svg[b-l8czldpnwa] { width: 16px; height: 16px; }

.ns-detail-window[b-l8czldpnwa] {
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: var(--fn-bg-alt);
    color: var(--fn-text);
}

.ns-detail-head[b-l8czldpnwa] {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px 14px;
    border-bottom: 1px solid var(--fn-border);
}

.ns-detail-head h2[b-l8czldpnwa] {
    margin: 4px 0 0;
    font-size: 22px;
    line-height: 1.25;
    font-weight: 700;
}

.ns-detail-source[b-l8czldpnwa] {
    color: var(--fn-text-tertiary);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.ns-detail-meta[b-l8czldpnwa] {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    justify-content: flex-end;
    color: var(--fn-text-secondary);
    font-size: 12px;
    white-space: nowrap;
}

.ns-detail-body[b-l8czldpnwa] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 18px 20px;
    font-size: 15px;
    line-height: 1.65;
}

.ns-detail-body p[b-l8czldpnwa] {
    margin: 0 0 14px;
}

.ns-detail-muted[b-l8czldpnwa] {
    color: var(--fn-text-secondary);
}

.ns-detail-error[b-l8czldpnwa] {
    color: var(--fn-warning);
    border: 1px solid var(--fn-warning);
    background: var(--fn-warning-soft);
    border-radius: var(--fn-radius-sm);
    padding: 10px 12px;
}

.ns-detail-foot[b-l8czldpnwa] {
    display: flex;
    justify-content: flex-start;
    padding: 12px 20px 16px;
    border-top: 1px solid var(--fn-border);
}

.ns-detail-original[b-l8czldpnwa] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--fn-primary);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.ns-detail-original:hover[b-l8czldpnwa] {
    color: var(--fn-primary-hover);
    text-decoration: underline;
}

.ns-detail-original[b-l8czldpnwa]  svg,
.ns-detail-original[b-l8czldpnwa]  [data-lucide] {
    width: 15px;
    height: 15px;
}

/* Unterhalb der Desktop-Arbeitsbreite hat der primaere Modulinhalt Vorrang. Die Marktfeed-Spalte
   wuerde zusammen mit Navigation und Chart-Docks mehr als die Haelfte des Viewports belegen. */
@media (max-width: 1200px) {
    .ns[b-l8czldpnwa] {
        display: none;
    }
}
/* /Components/Notifications/PostkorbComposeDialog.razor.rz.scp.css */
/* Compose-Dialog — tokens only. Eingabefelder/Buttons kommen aus den Fn*-Primitiven (FINCOMP001);
   hier nur Compose-spezifisches Layout. position:relative = Anker für das Undo-Overlay. */
.pk-compose[b-ksi8pn8yg4] { display: flex; flex-direction: column; gap: 12px; height: 100%; min-height: 0; position: relative; }

.pk-compose-inline[b-ksi8pn8yg4] { display: flex; align-items: center; }
.pk-compose-toggle[b-ksi8pn8yg4] { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--fn-text); cursor: pointer; }
.pk-compose-toggle input[b-ksi8pn8yg4] { accent-color: var(--fn-primary); }

.pk-compose-channels[b-ksi8pn8yg4] { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 4px; }
.pk-compose-channel[b-ksi8pn8yg4] { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--fn-text); cursor: pointer; }
.pk-compose-channel input[b-ksi8pn8yg4] { accent-color: var(--fn-primary); }
.pk-compose-channel input:disabled[b-ksi8pn8yg4] { cursor: default; }

.pk-compose-editor[b-ksi8pn8yg4] {
    flex: 1; min-height: 160px; display: flex; flex-direction: column;
    border: 1px solid var(--fn-border); border-radius: var(--fn-radius-sm); overflow: hidden;
}
.pk-compose-editor[b-ksi8pn8yg4]  .fn-richtext { flex: 1; min-height: 160px; }

.pk-compose-attachments[b-ksi8pn8yg4] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }

/* Upload-„Button" ist ein <label> in der geteilten fn-btn-Optik; das InputFile liegt unsichtbar darüber.
   InputFile ist eine KOMPONENTE — ihr <input> trägt das Scope-Attribut NICHT → ::deep (Projektgedächtnis). */
.pk-compose-upload[b-ksi8pn8yg4] { position: relative; overflow: hidden; }
.pk-compose-upload[b-ksi8pn8yg4]  input[type="file"] {
    position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%;
}

/* --- E-Mail-Felder (FlowDesk 1:1): Kopfzeile mit CC/BCC-Toggles, Undo-Overlay. --- */
.pk-compose-email-head[b-ksi8pn8yg4] { display: flex; align-items: center; justify-content: space-between; }
.pk-compose-cc-toggles[b-ksi8pn8yg4] { display: inline-flex; gap: 6px; }
.pk-compose-cctoggle[b-ksi8pn8yg4] {
    background: none; border: 1px solid var(--fn-border-strong); border-radius: var(--fn-radius-pill);
    color: var(--fn-text-secondary); font: inherit; font-size: 11px; padding: 1px 10px; cursor: pointer;
}
.pk-compose-cctoggle:hover[b-ksi8pn8yg4], .pk-compose-cctoggle.pk-on[b-ksi8pn8yg4] {
    color: var(--fn-primary); border-color: var(--fn-accent-line); background: var(--fn-accent-soft);
}

.pk-compose-undo[b-ksi8pn8yg4] {
    position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; gap: 12px;
    align-items: center; justify-content: center;
    background: color-mix(in srgb, var(--fn-bg) 82%, transparent);
}
.pk-compose-undo-count[b-ksi8pn8yg4] { font-size: 26px; font-weight: 600; color: var(--fn-primary); }

.pk-compose-attach-list[b-ksi8pn8yg4] { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
.pk-compose-chip[b-ksi8pn8yg4] { align-self: auto; }
.pk-compose-chip-del[b-ksi8pn8yg4] {
    display: inline-flex; align-items: center; justify-content: center;
    border: none; background: transparent; color: var(--fn-text-tertiary); cursor: pointer; padding: 0; margin-left: 2px;
}
.pk-compose-chip-del:hover[b-ksi8pn8yg4] { color: var(--fn-danger); }
.pk-compose-chip-del[b-ksi8pn8yg4]  .lucide { width: 13px; height: 13px; }

.pk-compose-status[b-ksi8pn8yg4] { font-size: 12.5px; color: var(--fn-text-secondary); margin: 0; }
.pk-compose-status-err[b-ksi8pn8yg4] { color: var(--fn-danger); }

/* Sichtbare Begründung, warum Versenden gesperrt ist (fehlender Titel/Empfänger/gültige Adressen). */
.pk-compose-missing[b-ksi8pn8yg4] { font-size: 12px; color: var(--fn-warning); }
/* /Components/Notifications/PostkorbExportActions.razor.rz.scp.css */
/* Postkorb export action row (Slice 5) — tokens only, no hex. Buttons = geteilte FnButton-Optik
   (fn-buttons.css, FINCOMP001); hier nur noch das Zeilen-Layout. */

.pk-export[b-tzfbws8l8l] {
    display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px 12px;
    padding-top: 12px; margin-top: 4px; border-top: 1px solid var(--fn-border);
}
.pk-export-actions[b-tzfbws8l8l] { display: inline-flex; flex-wrap: wrap; gap: 6px; }
/* Linksbündiger Block (Blätterpfeile) — margin-right:auto schiebt den Rest nach rechts. */
.pk-export-leading[b-tzfbws8l8l] { display: inline-flex; align-items: center; gap: 6px; margin-right: auto; }
/* Vertikaler Trenner zwischen Export-Icons und TrailingActions (Antworten/Öffnen). */
.pk-export-sep[b-tzfbws8l8l] { width: 1px; align-self: stretch; background: var(--fn-border-strong); }
.pk-export-trailing[b-tzfbws8l8l] { display: inline-flex; align-items: center; gap: 6px; }
.pk-export-error[b-tzfbws8l8l] { flex-basis: 100%; font-size: 12px; color: var(--fn-danger); }
/* /Components/Notifications/PostkorbWidget.razor.rz.scp.css */
/* Postkorb shell widget — tokens only, no hex. Lucide-SVGs werden per JS injiziert →
   für sie ::deep, damit die scoped CSS die <svg class="lucide"> erreicht (Falle aus dem Projektgedächtnis).
   P1-Split: Lese-/Compose-/Gesendet-/Confirm-Styles leben bei den Dialog-Komponenten bzw. in
   css/postkorb.css (geteiltes Lese-Layout); hier nur Badge, Dropdown und Kontextmenü. */

.pk-wrap[b-6itp4l4mvm] { position: relative; display: inline-flex; }

/* --- Mailbox-Trigger + Badge (eigenes Icon-Element, bewusst KEINE generische Button-Optik) --- */
.pk-mailbox-trigger[b-6itp4l4mvm] {
    position: relative; display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; padding: 0; border-radius: var(--fn-radius-sm);
    border: 1px solid var(--fn-border); background: transparent; color: var(--fn-text-secondary);
    cursor: pointer; transition: color .14s ease, border-color .14s ease, background .14s ease;
}
.pk-mailbox-trigger:hover[b-6itp4l4mvm] { color: var(--fn-primary); border-color: var(--fn-primary); }
.pk-mailbox-trigger.pk-has-mail[b-6itp4l4mvm] { color: var(--fn-warning); }
.pk-mailbox-trigger[b-6itp4l4mvm]  .lucide { width: 16px; height: 16px; }

.pk-badge[b-6itp4l4mvm] {
    position: absolute; top: -6px; right: -6px;
    min-width: 16px; height: 16px; padding: 0 4px;
    display: inline-flex; align-items: center; justify-content: center;
    font-family: var(--fn-font-mono); font-size: 9.5px; font-weight: 700; line-height: 1;
    color: var(--fn-on-primary); background: var(--fn-danger);
    border-radius: var(--fn-radius-pill);
}

/* Puls: zentrale .fn-pulse-Utility (1:1 FlowDesk) — angewandt am Trigger, wenn _unreadCount > 0. */

/* --- Portal-Wrapper: wird per JS (pkPortal.toBody) nach <body> verschoben, damit Menü/Dropdown
   nicht im position:sticky-Stacking-Context der Sidebar gefangen bleiben (fixed allein reicht nicht).
   display: contents → der Wrapper selbst erzeugt keine Box, nur seine Kinder zählen. --- */
.pk-portal[b-6itp4l4mvm] { display: contents; }

/* --- Overlay (fängt Außen-Klicks für Dropdown + Kontextmenü) --- */
.pk-overlay[b-6itp4l4mvm] { position: fixed; inset: 0; z-index: var(--fn-layer-popover-backdrop); }

/* --- Quick-Dropdown --- */
/* position: fixed (anchored via inline left/bottom from the mailbox-click coords) escapes the
   sidebar's stacking context. Ebene --fn-layer-popover: ein vom Nutzer geoeffnetes Popover liegt IMMER ueber
   Fenstern, Modalen und Studio-Flaechen - vorher fest 941 und damit unter dem Chart-Fenster (Niko 07.09.2026). */
.pk-dropdown[b-6itp4l4mvm] {
    position: fixed; z-index: var(--fn-layer-popover);
    width: 340px; max-height: 460px; display: flex; flex-direction: column;
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg); box-shadow: 0 12px 32px var(--fn-shadow-hover); overflow: hidden;
}
.pk-dd-head[b-6itp4l4mvm] {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 14px; border-bottom: 1px solid var(--fn-border);
}
.pk-dd-title[b-6itp4l4mvm] { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--fn-text); }
.pk-dd-title[b-6itp4l4mvm]  .lucide { width: 16px; height: 16px; color: var(--fn-primary); }
.pk-dd-allread[b-6itp4l4mvm] {
    border: none; background: transparent; color: var(--fn-primary);
    font: inherit; font-size: 12.5px; cursor: pointer; padding: 2px 4px; border-radius: var(--fn-radius-sm);
}
.pk-dd-allread:hover[b-6itp4l4mvm] { text-decoration: underline; }

.pk-dd-list[b-6itp4l4mvm] { overflow-y: auto; }
.pk-dd-item[b-6itp4l4mvm] {
    display: flex; align-items: flex-start; gap: 10px; width: 100%; text-align: left;
    padding: 10px 14px; border: none; background: transparent; cursor: pointer;
    border-bottom: 1px solid var(--fn-border);
}
.pk-dd-item:last-child[b-6itp4l4mvm] { border-bottom: none; }
.pk-dd-item:hover[b-6itp4l4mvm] { background: var(--fn-hover); }
.pk-dd-icon[b-6itp4l4mvm] { flex: 0 0 auto; margin-top: 1px; display: inline-flex; }
.pk-dd-icon[b-6itp4l4mvm]  .lucide { width: 18px; height: 18px; }
.pk-icon-unread[b-6itp4l4mvm]  .lucide { color: var(--fn-danger); }
.pk-icon-read[b-6itp4l4mvm]  .lucide { color: var(--fn-text-tertiary); }
.pk-dd-text[b-6itp4l4mvm] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pk-dd-item-title[b-6itp4l4mvm] { font-size: 13px; color: var(--fn-text); overflow: hidden; text-overflow: ellipsis; }
.pk-dd-item-title.pk-strong[b-6itp4l4mvm] { font-weight: 700; }
.pk-dd-item.pk-read .pk-dd-item-title[b-6itp4l4mvm] { color: var(--fn-text-secondary); }
.pk-dd-item-time[b-6itp4l4mvm] { font-size: 11px; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); }

.pk-dd-empty[b-6itp4l4mvm] { padding: 24px 14px; text-align: center; color: var(--fn-text-tertiary); font-size: 12.5px; }

/* --- Kontextmenü --- */
.pk-ctx[b-6itp4l4mvm] {
    position: fixed; z-index: var(--fn-layer-popover); min-width: 216px; padding: 5px;
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg); box-shadow: 0 12px 32px var(--fn-shadow-hover);
}
.pk-mailbox-svg[b-6itp4l4mvm] { width: 18px; height: 18px; }
.pk-mailbox-flag-wobble[b-6itp4l4mvm] { animation: pk-flag-wobble-b-6itp4l4mvm 0.6s ease-in-out; transform-origin: 15px 10px; }
@keyframes pk-flag-wobble-b-6itp4l4mvm { 0%,100% { transform: rotate(0); } 25% { transform: rotate(-18deg); } 75% { transform: rotate(12deg); } }
.pk-ctx-item[b-6itp4l4mvm] {
    display: flex; align-items: center; gap: 11px; width: 100%;
    padding: 9px 11px; border: none; background: transparent; cursor: pointer;
    color: var(--fn-text-secondary); font: inherit; font-size: 13px; text-align: left;
    border-radius: var(--fn-radius-sm);
}
.pk-ctx-item:hover[b-6itp4l4mvm] { background: var(--fn-hover); color: var(--fn-text); }
/* Deaktivierte Menüitems: deutlich gegraut + not-allowed, KEIN Hover-Hintergrund. */
.pk-ctx-item:disabled[b-6itp4l4mvm],
.pk-ctx-item.pk-ctx-disabled[b-6itp4l4mvm] {
    color: var(--fn-text-tertiary); opacity: .5; cursor: not-allowed; pointer-events: none;
}
.pk-ctx-item:disabled:hover[b-6itp4l4mvm],
.pk-ctx-item.pk-ctx-disabled:hover[b-6itp4l4mvm] { background: transparent; color: var(--fn-text-tertiary); }
.pk-ctx-item:disabled .pk-ctx-icon[b-6itp4l4mvm]  .lucide,
.pk-ctx-item.pk-ctx-disabled .pk-ctx-icon[b-6itp4l4mvm]  .lucide { color: var(--fn-text-tertiary); }
.pk-ctx-icon[b-6itp4l4mvm] { flex: 0 0 auto; display: inline-flex; width: 16px; }
.pk-ctx-icon[b-6itp4l4mvm]  .lucide { width: 15px; height: 15px; color: var(--fn-text-tertiary); }
.pk-ctx-sep[b-6itp4l4mvm] { height: 1px; margin: 5px 6px; background: var(--fn-border); }
.pk-ctx-danger[b-6itp4l4mvm] { color: var(--fn-danger); }
.pk-ctx-danger:hover[b-6itp4l4mvm] { background: var(--fn-danger-soft); color: var(--fn-danger); }
.pk-ctx-danger .pk-ctx-icon[b-6itp4l4mvm]  .lucide { color: var(--fn-danger); }
/* /Components/OptionSuitabilityCockpit/OptionSuitabilityCockpitPage.razor.rz.scp.css */
.osc[b-8vs14lbgcm] { display: flex; flex-direction: column; gap: 16px; padding: 4px 2px 40px; }
.osc-deny[b-8vs14lbgcm] { padding: 40px; color: var(--fn-warning); font-size: 14px; }

.osc-head[b-8vs14lbgcm] { display: flex; align-items: center; gap: 12px; }
.osc-head h1[b-8vs14lbgcm] { font-size: 20px; font-weight: 600; margin: 0; color: var(--fn-text); }
.osc-sub[b-8vs14lbgcm] { color: var(--fn-text-secondary); font-size: 12.5px; margin-top: 2px; }
.osc-pills[b-8vs14lbgcm] { margin-left: auto; display: flex; gap: 8px; }
.osc-pill[b-8vs14lbgcm] { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 600;
    padding: 3px 9px; border-radius: 999px; border: 1px solid var(--fn-border-strong); color: var(--fn-text-secondary); }
.osc-pill.niko[b-8vs14lbgcm] { color: var(--fn-primary); border-color: var(--fn-accent-line); background: var(--fn-accent-soft); }

.osc-empty[b-8vs14lbgcm] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius);
    padding: 18px; color: var(--fn-text-secondary); font-size: 13px; }

.osc-card[b-8vs14lbgcm] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius-lg);
    padding: 16px 18px; box-shadow: var(--fn-elevation-1); }
.osc-card > h2[b-8vs14lbgcm] { font-size: 12px; text-transform: uppercase; letter-spacing: .6px; color: var(--fn-text-tertiary);
    font-weight: 600; margin: 0 0 12px; }

.osc-hero[b-8vs14lbgcm] { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; justify-content: space-between; }
.osc-thesis[b-8vs14lbgcm] { display: flex; flex-direction: column; gap: 4px; text-align: right; }
.osc-thesis-big[b-8vs14lbgcm] { font-size: 16px; font-weight: 600; color: var(--fn-chart-up); }
.osc-thesis-src[b-8vs14lbgcm] { font-size: 11px; color: var(--fn-text-tertiary); }
.osc-nodata[b-8vs14lbgcm] { color: var(--fn-warning); font-weight: 600; font-size: 14px; }
.osc-nodata-sm[b-8vs14lbgcm] { color: var(--fn-warning); }
.osc-nodata-big[b-8vs14lbgcm] { color: var(--fn-warning); font-size: 18px; font-weight: 600; }

.osc-metrics[b-8vs14lbgcm] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.osc-metric[b-8vs14lbgcm] { background: var(--fn-bg-muted); border: 1px solid var(--fn-border); border-radius: 8px; padding: 7px 11px; font-size: 12px; }
.osc-metric b[b-8vs14lbgcm] { display: block; font-size: 14px; color: var(--fn-text); font-family: var(--fn-font-mono); }
.osc-metric span[b-8vs14lbgcm] { color: var(--fn-text-tertiary); font-size: 10.5px; text-transform: uppercase; letter-spacing: .4px; }

.osc-table[b-8vs14lbgcm] { width: 100%; border-collapse: collapse; font-size: 13px; }
.osc-table th[b-8vs14lbgcm] { text-align: left; color: var(--fn-text-tertiary); font-size: 10.5px; text-transform: uppercase;
    letter-spacing: .5px; font-weight: 600; padding: 6px 10px; border-bottom: 1px solid var(--fn-border); }
.osc-table td[b-8vs14lbgcm] { padding: 10px; border-bottom: 1px solid var(--fn-border); vertical-align: middle; }
.osc-table tr:last-child td[b-8vs14lbgcm] { border-bottom: 0; }
.osc-table tr.sel[b-8vs14lbgcm] { background: var(--fn-accent-soft); }
.osc-rowclick[b-8vs14lbgcm] { cursor: pointer; }
.osc-rowclick:hover[b-8vs14lbgcm] { background: var(--fn-hover); }
.osc-linkbtn[b-8vs14lbgcm] { font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 6px;
    border: 1px solid var(--fn-border-strong); background: transparent; color: var(--fn-text-secondary); cursor: pointer; }
.osc-linkbtn:hover[b-8vs14lbgcm] { color: var(--fn-primary); border-color: var(--fn-accent-line); }
.osc-inst[b-8vs14lbgcm] { display: flex; flex-direction: column; gap: 1px; }
.osc-inst b[b-8vs14lbgcm] { font-size: 13px; color: var(--fn-text); font-weight: 600; }
.osc-inst small[b-8vs14lbgcm] { color: var(--fn-text-secondary); font-size: 12px; }
.osc-line2[b-8vs14lbgcm] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-tertiary); }
.mono[b-8vs14lbgcm] { font-family: var(--fn-font-mono); font-size: 12px; }

.osc-badge[b-8vs14lbgcm] { font-family: var(--fn-font-mono); font-size: 10.5px; font-weight: 700; padding: 2px 7px; border-radius: 5px;
    border: 1px solid var(--fn-border-strong); }
.osc-badge.ibkr[b-8vs14lbgcm] { color: var(--fn-primary); border-color: var(--fn-accent-line); background: var(--fn-accent-soft); }
.osc-badge.scalable[b-8vs14lbgcm] { color: var(--fn-cat-purple); border-color: var(--fn-accent-line); background: var(--fn-accent-soft); }

.osc-chip[b-8vs14lbgcm] { font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 999px; }
.osc-chip.hi[b-8vs14lbgcm] { color: var(--fn-success); background: var(--fn-success-soft); }
.osc-chip.mid[b-8vs14lbgcm] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.osc-chip.lo[b-8vs14lbgcm] { color: var(--fn-text-tertiary); background: var(--fn-bg-muted); }

.osc-why[b-8vs14lbgcm] { color: var(--fn-text-secondary); font-size: 12px; margin-top: 10px; }
.osc-note[b-8vs14lbgcm] { margin-top: 12px; padding: 10px 14px; border-radius: 0 var(--fn-radius) var(--fn-radius) 0; font-size: 12.5px; }
.osc-note.warn[b-8vs14lbgcm] { border-left: 3px solid var(--fn-warning); background: var(--fn-warning-soft); color: var(--fn-text-secondary); }

.osc-twocol[b-8vs14lbgcm] { display: grid; grid-template-columns: 1.3fr 1fr; gap: 16px; }
.osc-wf[b-8vs14lbgcm] { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.osc-wf th[b-8vs14lbgcm], .osc-wf td[b-8vs14lbgcm] { padding: 6px 8px; border-bottom: 1px solid var(--fn-border); text-align: right; font-family: var(--fn-font-mono); }
.osc-wf th:first-child[b-8vs14lbgcm], .osc-wf td:first-child[b-8vs14lbgcm] { text-align: left; }
.osc-wf th[b-8vs14lbgcm] { color: var(--fn-text-tertiary); font-size: 10.5px; text-transform: uppercase; font-family: var(--fn-font); }
.osc-up[b-8vs14lbgcm] { color: var(--fn-chart-up); }
.osc-down[b-8vs14lbgcm] { color: var(--fn-chart-down); }

.osc-reason[b-8vs14lbgcm] { background: var(--fn-bg-muted); border-left: 2px solid var(--fn-accent-line); padding: 10px 14px;
    border-radius: 0 8px 8px 0; font-size: 12.5px; color: var(--fn-text-secondary); margin-top: 12px; }

.osc-kv[b-8vs14lbgcm] { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px solid var(--fn-border); font-size: 13px; }
.osc-kv:last-of-type[b-8vs14lbgcm] { border-bottom: 0; }
.osc-kv .k[b-8vs14lbgcm] { color: var(--fn-text-secondary); }
.osc-kv .v[b-8vs14lbgcm] { font-family: var(--fn-font-mono); }
.osc-exec[b-8vs14lbgcm] { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--fn-border); }
.osc-route[b-8vs14lbgcm] { font-size: 12px; color: var(--fn-text-secondary); }

.osc-foot[b-8vs14lbgcm] { color: var(--fn-text-tertiary); font-size: 11.5px; line-height: 1.6; }

@media (max-width: 900px) { .osc-twocol[b-8vs14lbgcm] { grid-template-columns: 1fr; } }
/* /Components/Pages/LocalizationDemo.razor.rz.scp.css */
.localization-demo[b-lphkhawsu6] {
    max-width: 42rem;
    margin: 2rem 0;
    padding: 1.5rem;
    border-radius: var(--fn-radius);
    border: var(--fn-border-width) solid var(--fn-border);
    background: var(--fn-surface);
    box-shadow: var(--fn-elevation-1);
    color: var(--fn-text);
    font-family: var(--fn-font);
}

.localization-demo__title[b-lphkhawsu6] {
    margin-top: 0;
    color: var(--fn-text);
}

.localization-demo__intro[b-lphkhawsu6] {
    color: var(--fn-text-secondary);
}

.localization-demo__facts[b-lphkhawsu6] {
    display: grid;
    grid-template-columns: max-content 1fr;
    gap: 0.5rem 1.5rem;
    margin: 1.5rem 0;
    padding: 1rem;
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
}

.localization-demo__facts dt[b-lphkhawsu6] {
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text-secondary);
}

.localization-demo__facts dd[b-lphkhawsu6] {
    margin: 0;
    color: var(--fn-text);
}

.localization-demo__greeting[b-lphkhawsu6] {
    font-weight: var(--fn-font-weight-bold);
    color: var(--fn-primary);
}

.localization-demo__hint[b-lphkhawsu6] {
    color: var(--fn-text-tertiary);
    font-size: 0.9rem;
}
/* /Components/Pages/TokenTest.razor.rz.scp.css */
/* Scoped CSS der Token-Testseite — ausschließlich var(--fn-*), keine rohen Hex. */

.tok[b-5b64ldkitk] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 28px;
    font-family: var(--fn-font);
    color: var(--fn-text);
}

.tok__eyebrow[b-5b64ldkitk] {
    margin: 0 0 6px;
    color: var(--fn-primary);
    font-size: 12px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.tok__title[b-5b64ldkitk] {
    margin: 0 0 6px;
    font-size: 26px;
    font-weight: var(--fn-font-weight-bold);
}

.tok__hint[b-5b64ldkitk] {
    margin: 0 0 8px;
    color: var(--fn-text-secondary);
}

.tok__hint code[b-5b64ldkitk] {
    font-family: var(--fn-font-mono);
    color: var(--fn-primary);
}

.tok__group[b-5b64ldkitk] {
    margin: 26px 0 12px;
    font-size: 13px;
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text-secondary);
    text-transform: uppercase;
    letter-spacing: .06em;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
    padding-bottom: 6px;
}

.tok__grid[b-5b64ldkitk] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
}

.tok__item[b-5b64ldkitk] {
    margin: 0;
}

.tok__item figcaption[b-5b64ldkitk] {
    margin-top: 6px;
    font-family: var(--fn-font-mono);
    font-size: 12px;
    color: var(--fn-text-secondary);
}

.tok__sw[b-5b64ldkitk] {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 60px;
    border-radius: var(--fn-radius);
    border: var(--fn-border-width) solid var(--fn-border);
    font-weight: var(--fn-font-weight-bold);
}

/* Hintergrund */
.tok__sw--bg[b-5b64ldkitk]          { background: var(--fn-bg); }
.tok__sw--bg-alt[b-5b64ldkitk]      { background: var(--fn-bg-alt); }
.tok__sw--bg-muted[b-5b64ldkitk]    { background: var(--fn-bg-muted); }
.tok__sw--surface[b-5b64ldkitk]     { background: var(--fn-surface); }
.tok__sw--surface-alt[b-5b64ldkitk] { background: var(--fn-surface-alt); }
.tok__sw--hover[b-5b64ldkitk]       { background: var(--fn-hover); }

/* Marke & Text */
.tok__sw--primary[b-5b64ldkitk]       { background: var(--fn-primary); }
.tok__sw--primary-hover[b-5b64ldkitk] { background: var(--fn-primary-hover); }
.tok__on-primary[b-5b64ldkitk]        { color: var(--fn-on-primary); }
.tok__sw--text-sample[b-5b64ldkitk]   { background: var(--fn-bg-alt); color: var(--fn-text); }
.tok__sw--text-secondary[b-5b64ldkitk] { color: var(--fn-text-secondary); }
.tok__sw--text-tertiary[b-5b64ldkitk]  { color: var(--fn-text-tertiary); }

/* Semantisch */
.tok__sw--success[b-5b64ldkitk] { background: var(--fn-success); }
.tok__sw--warning[b-5b64ldkitk] { background: var(--fn-warning); }
.tok__sw--danger[b-5b64ldkitk]  { background: var(--fn-danger); }
.tok__sw--info[b-5b64ldkitk]    { background: var(--fn-info); }

/* Funktionale Akzent-Palette */
.tok__sw--cat-blue[b-5b64ldkitk]   { background: var(--fn-cat-blue); }
.tok__sw--cat-purple[b-5b64ldkitk] { background: var(--fn-cat-purple); }
.tok__sw--cat-pink[b-5b64ldkitk]   { background: var(--fn-cat-pink); }
.tok__sw--cat-orange[b-5b64ldkitk] { background: var(--fn-cat-orange); }
.tok__sw--cat-gold[b-5b64ldkitk]   { background: var(--fn-cat-gold); }
.tok__sw--cat-teal[b-5b64ldkitk]   { background: var(--fn-cat-teal); }

/* Geometrie & Typografie */
.tok__radius-sm[b-5b64ldkitk] { border-radius: var(--fn-radius-sm); }
.tok__radius-lg[b-5b64ldkitk] { border-radius: var(--fn-radius-lg); }
.tok__mono[b-5b64ldkitk]      { font-family: var(--fn-font-mono); color: var(--fn-text); }
/* /Components/Pages/TradingJournalColumnsButton.razor.rz.scp.css */
.tj-columns-pill[b-ff5ge9tjgg] {
    min-height: 27px;
    padding: 4px 14px;
    border: var(--fn-border-width) solid var(--fn-primary);
    border-radius: 999px;
    background: var(--fn-cat-blue-soft);
    color: var(--fn-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font: 600 11.5px var(--fn-font);
    cursor: pointer;
}

.tj-columns-pill[b-ff5ge9tjgg]  .fn-icon {
    width: 14px;
    height: 14px;
    flex: none;
}

.tj-columns-pill:hover[b-ff5ge9tjgg] {
    border-color: var(--fn-primary-hover);
    color: var(--fn-primary-hover);
}

.tj-columns-pill:focus-visible[b-ff5ge9tjgg] {
    outline: none;
    box-shadow: var(--fn-focus-ring);
}
/* /Components/Pages/TradingJournalDailyTable.razor.rz.scp.css */
/* Handelsergebnis — Stil der Ansicht.
   Liegt BEI DER KOMPONENTE, nicht bei der Elternseite: Blazor bindet isoliertes CSS an ein
   Attribut, das nur Elemente der eigenen Komponente tragen. Stand das CSS in der Datei der
   Seite, traf es kein einziges Element hier — die Ansicht blieb ohne Ebenen, ohne Farben,
   ohne Einrückung (Befund der UX-Prüfung, 12.08.2026). Nur Tokens, kein Hex. */

.tj-scroll[b-50ub16ykzz] {
    overflow-x: auto;
}

table.tj-daily[b-50ub16ykzz] {
    width: 100%;
}

/* Kürzel wie in jeder FIN-Liste: mono, blauer Akzent. */
table.tj-daily td.tj-daily-sym[b-50ub16ykzz],
table.tj-daily th.tj-daily-sym[b-50ub16ykzz] {
    font-family: var(--fn-font-mono);
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-cat-blue);
}

/* Geldzelle zweizeilig wie in der Watchliste: EUR trägt die Aussage, die Ursprungswährung
   steht klein darunter (Niko 12.08.2026: „da ich in EUR rechne, interessiert mich auch nur
   EUR — der USD-Wert kann kleiner unter dem EUR-Wert eingeblendet werden"). */
table.tj-daily .tj-eur[b-50ub16ykzz] {
    display: block;
    font-family: var(--fn-font-mono);
}

table.tj-daily .tj-orig[b-50ub16ykzz] {
    display: block;
    margin-top: 1px;
    font-family: var(--fn-font-mono);
    font-size: 10.5px;
    color: var(--fn-text-tertiary);
}

/* Ebenen: Jahr · Monat · Kalenderwoche · Tag · Strategie · Produkt.
   Jede Gruppenebene trägt ihre eigene Summe; Tiefe zeigt sich in Fläche und Einrückung.
   Die :hover-Regel der geteilten fn-list.css hat höhere Spezifität — deshalb hier ebenfalls
   mit :hover qualifiziert, sonst verlöre eine Gruppenzeile beim Überfahren ihre Kennung. */
table.tj-daily tr.tj-yearrow td[b-50ub16ykzz],
table.tj-daily tbody tr.tj-yearrow:hover td[b-50ub16ykzz] {
    background: var(--fn-surface-alt);
    color: var(--fn-text);
    font-weight: var(--fn-font-weight-medium);
    border-top: var(--fn-border-width) solid var(--fn-border-strong);
}

table.tj-daily tr.tj-monthrow td[b-50ub16ykzz],
table.tj-daily tbody tr.tj-monthrow:hover td[b-50ub16ykzz] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
    border-top: var(--fn-border-width) solid var(--fn-border-strong);
}

table.tj-daily tr.tj-weekrow td[b-50ub16ykzz],
table.tj-daily tbody tr.tj-weekrow:hover td[b-50ub16ykzz] {
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
}

table.tj-daily tr.tj-dayrow td[b-50ub16ykzz],
table.tj-daily tbody tr.tj-dayrow:hover td[b-50ub16ykzz] {
    background: var(--fn-bg-alt);
    color: var(--fn-text);
    font-weight: var(--fn-font-weight-medium);
}

table.tj-daily tr.tj-strategyrow td[b-50ub16ykzz],
table.tj-daily tbody tr.tj-strategyrow:hover td[b-50ub16ykzz] {
    background: var(--fn-bg-alt);
    color: var(--fn-text-secondary);
}

table.tj-daily tr.tj-totalrow td[b-50ub16ykzz],
table.tj-daily tbody tr.tj-totalrow:hover td[b-50ub16ykzz] {
    background: var(--fn-surface-alt);
    color: var(--fn-text);
    font-weight: var(--fn-font-weight-medium);
    border-top: 2px solid var(--fn-border-strong);
}

/* Einrückung zeigt die Tiefe — zusätzlich zur Fläche, damit sie auch ohne Farbe erkennbar ist. */
table.tj-daily tr.tj-monthrow td:first-child[b-50ub16ykzz] { padding-left: 18px; }
table.tj-daily tr.tj-weekrow td:first-child[b-50ub16ykzz] { padding-left: 30px; }
table.tj-daily tr.tj-dayrow td:first-child[b-50ub16ykzz] { padding-left: 42px; }
table.tj-daily tr.tj-strategyrow td:first-child[b-50ub16ykzz] { padding-left: 54px; }
table.tj-daily tr.tj-productrow td:first-child[b-50ub16ykzz] { padding-left: 66px; }

/* Ergebnisfarben — die Tokens der Design-Vorgabe für Gewinn und Verlust. */
table.tj-daily .tj-pos[b-50ub16ykzz] { color: var(--fn-success); }
table.tj-daily .tj-neg[b-50ub16ykzz] { color: var(--fn-danger); }
table.tj-daily .tj-cost[b-50ub16ykzz] { color: var(--fn-warning); }

table.tj-daily .tj-empty[b-50ub16ykzz] {
    text-align: center;
    color: var(--fn-text-tertiary);
    padding: 18px 8px;
}

/* Aufklapp-Schalter — Optik der Watchliste (fn-list.css trägt die Grundform). */
.tj-grp-toggle[b-50ub16ykzz] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: inherit;
    font: inherit;
}

.tj-grp-toggle .chev[b-50ub16ykzz] {
    display: inline-flex;
    color: var(--fn-text-secondary);
}

.tj-grp-toggle:hover .chev[b-50ub16ykzz] { color: var(--fn-text); }

/* Hinweiszeile unter der Tabelle — erklärt jedes „—" in der Liste. */
.tj-daily-hint[b-50ub16ykzz] {
    margin: 8px 0 0;
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    border-left: 2px solid var(--fn-warning);
    padding-left: 10px;
}

/* Beschriftung der Gruppenzeile — dieselbe Optik wie die Gruppen der Watchliste. Muss HIER stehen:
   die Regel der Elternseite ist auf deren Scope gebunden und trifft dieses Element nicht. */
.tj-grp-toggle .gl[b-50ub16ykzz] {
    font-weight: var(--fn-font-weight-bold);
    font-size: 12.5px;
}

/* Leiste der Sammelschalter über der Tabelle. */
.tj-viewrow[b-50ub16ykzz] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 0 0 12px;
}

/* Fehlende Werte in Warnton — „—" muss sich von einer echten Null unterscheiden
   (FIN-Regel: Fehlend → — in Warnton). */
table.tj-daily .tj-miss[b-50ub16ykzz] {
    color: var(--fn-warning);
}
/* /Components/Pages/TradingJournalEvidenceCard.razor.rz.scp.css */
.tje-card[b-fw8vugegsl] {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 11px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-input-bg);
    font-size: 10px;
    line-height: 1.3;
}

.tje-head[b-fw8vugegsl],
.tje-foot[b-fw8vugegsl],
.tje-dialog-summary[b-fw8vugegsl],
.tje-dialog-head[b-fw8vugegsl] {
    display: flex;
    align-items: center;
}

.tje-head[b-fw8vugegsl] {
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.tje-identity[b-fw8vugegsl] {
    min-width: 0;
}

.tje-identity strong[b-fw8vugegsl],
.tje-identity span[b-fw8vugegsl] {
    display: block;
}

.tje-identity strong[b-fw8vugegsl] {
    color: var(--fn-text);
    font-size: 12.5px;
    line-height: 1.25;
}

.tje-identity span[b-fw8vugegsl] {
    margin-top: 2px;
    overflow-wrap: anywhere;
    color: var(--fn-text-secondary);
    font: 9.5px/1.25 var(--fn-font-mono);
}

.tje-decision[b-fw8vugegsl] {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 7px;
    border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: 999px;
    padding: 4px 8px;
    font: 700 8.5px/1.25 var(--fn-font-mono);
    white-space: nowrap;
}

.tje-decision.positive[b-fw8vugegsl],
.tje-dialog-summary.positive[b-fw8vugegsl] {
    color: var(--fn-success);
    border-color: color-mix(in srgb, var(--fn-success) 55%, var(--fn-border));
}

.tje-decision.warning[b-fw8vugegsl],
.tje-dialog-summary.warning[b-fw8vugegsl] {
    color: var(--fn-warning);
    border-color: color-mix(in srgb, var(--fn-warning) 55%, var(--fn-border));
}

.tje-decision.negative[b-fw8vugegsl],
.tje-dialog-summary.negative[b-fw8vugegsl] {
    color: var(--fn-danger);
    border-color: color-mix(in srgb, var(--fn-danger) 55%, var(--fn-border));
}

.tje-signal[b-fw8vugegsl] {
    display: inline-flex;
    gap: 3px;
}

.tje-signal i[b-fw8vugegsl] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--fn-border-strong);
}

.positive .tje-signal i.positive[b-fw8vugegsl],
.warning .tje-signal i.warning[b-fw8vugegsl],
.negative .tje-signal i.negative[b-fw8vugegsl] {
    background: currentColor;
    box-shadow: 0 0 8px currentColor;
}

.tje-health[b-fw8vugegsl] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    margin: 9px 0 0;
}

.tje-health-item[b-fw8vugegsl] {
    min-width: 0;
    padding: 6px 8px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 6px;
    background: var(--fn-bg-muted);
}

.tje-health-item.warning[b-fw8vugegsl] {
    border-color: color-mix(in srgb, var(--fn-warning) 38%, var(--fn-border));
    background: color-mix(in srgb, var(--fn-warning) 6%, var(--fn-bg-muted));
    box-shadow: inset 3px 0 0 color-mix(in srgb, var(--fn-warning) 78%, transparent);
}

.tje-health-item.negative[b-fw8vugegsl] {
    border-color: color-mix(in srgb, var(--fn-danger) 38%, var(--fn-border));
    background: color-mix(in srgb, var(--fn-danger) 6%, var(--fn-bg-muted));
    box-shadow: inset 3px 0 0 color-mix(in srgb, var(--fn-danger) 78%, transparent);
}

.tje-health-item.positive[b-fw8vugegsl] {
    border-color: color-mix(in srgb, var(--fn-success) 38%, var(--fn-border));
    background: color-mix(in srgb, var(--fn-success) 6%, var(--fn-bg-muted));
    box-shadow: inset 3px 0 0 color-mix(in srgb, var(--fn-success) 78%, transparent);
}

.tje-health dt[b-fw8vugegsl],
.tje-metric dt[b-fw8vugegsl],
.tje-range small[b-fw8vugegsl] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 8.5px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .03em;
    text-transform: uppercase;
}

.tje-health dd[b-fw8vugegsl] {
    margin: 2px 0 0;
    overflow: hidden;
    color: var(--fn-text-secondary);
    font-size: 9px;
    font-weight: var(--fn-font-weight-bold);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tje-health-item.warning dd[b-fw8vugegsl] { color: var(--fn-warning); }
.tje-health-item.negative dd[b-fw8vugegsl] { color: var(--fn-danger); }
.tje-health-item.positive dd[b-fw8vugegsl] { color: var(--fn-success); }

.tje-metrics[b-fw8vugegsl] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    margin: 8px 0 0;
}

.tje-metric[b-fw8vugegsl] {
    display: grid;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 7px;
    padding: 6px 7px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 6px;
    background: var(--fn-bg-alt);
}

.tje-metric dd[b-fw8vugegsl],
.tje-range strong[b-fw8vugegsl] {
    margin: 0;
    color: var(--fn-text);
    font: 700 10px/1.25 var(--fn-font-mono);
    font-variant-numeric: tabular-nums;
    text-align: right;
    white-space: nowrap;
}

.tje-metric .positive[b-fw8vugegsl],
.tje-range .positive[b-fw8vugegsl] { color: var(--fn-success); }
.tje-metric .negative[b-fw8vugegsl],
.tje-range .negative[b-fw8vugegsl] { color: var(--fn-danger); }

.tje-interval[b-fw8vugegsl] {
    display: block;
    grid-column: 1 / -1;
}

.tje-interval > dt[b-fw8vugegsl] {
    margin-bottom: 5px;
}

.tje-range[b-fw8vugegsl] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.tje-range > span[b-fw8vugegsl] {
    display: grid;
    min-width: 0;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 6px;
}

.tje-foot[b-fw8vugegsl] {
    gap: 8px;
    margin-top: auto;
    padding-top: 8px;
}

.tje-lineage[b-fw8vugegsl] {
    min-width: 0;
    flex: 1;
    overflow: hidden;
    color: var(--fn-text-secondary);
    font: 8.5px/1.3 var(--fn-font-mono);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tje-details[b-fw8vugegsl],
.tje-close[b-fw8vugegsl] {
    min-height: 28px;
    border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: 999px;
    background: transparent;
    color: var(--fn-primary);
    padding: 4px 11px;
    font: 700 9.5px var(--fn-font);
    cursor: pointer;
}

.tje-close[b-fw8vugegsl] {
    display: inline-grid;
    width: 32px;
    min-width: 32px;
    min-height: 32px;
    place-items: center;
    padding: 0;
    border-radius: 50%;
    background: var(--fn-input-bg);
    color: var(--fn-text);
    font-size: 17px;
    line-height: 1;
}

.tje-details:hover[b-fw8vugegsl],
.tje-close:hover[b-fw8vugegsl] {
    border-color: var(--fn-primary);
    background: var(--fn-cat-blue-soft);
}

.tje-details:focus-visible[b-fw8vugegsl],
.tje-close:focus-visible[b-fw8vugegsl] {
    outline: 2px solid var(--fn-primary);
    outline-offset: 2px;
}

.tje-overlay[b-fw8vugegsl] {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 24px 16px;
    background: color-mix(in srgb, var(--fn-bg) 76%, transparent);
    backdrop-filter: blur(3px);
}

.tje-dialog[b-fw8vugegsl] {
    width: min(720px, 100%);
    max-height: 100%;
    overflow: auto;
    border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: 12px;
    background: var(--fn-bg-alt);
    box-shadow: 0 24px 90px var(--fn-shadow-hover);
}

.tje-dialog-head[b-fw8vugegsl] {
    align-items: flex-start;
    gap: 16px;
    padding: 16px 18px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
}

.tje-dialog-head > div[b-fw8vugegsl] {
    min-width: 0;
    flex: 1;
}

.tje-dialog-head span[b-fw8vugegsl] {
    color: var(--fn-primary);
    font-size: 9.5px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.tje-dialog-head h2[b-fw8vugegsl] {
    margin: 2px 0 0;
    color: var(--fn-text);
    font-size: 17px;
}

.tje-dialog-head p[b-fw8vugegsl] {
    margin: 3px 0 0;
    color: var(--fn-text-secondary);
    font: 9.5px var(--fn-font-mono);
}

.tje-dialog-body[b-fw8vugegsl] {
    padding: 16px 18px 18px;
}

.tje-dialog-summary[b-fw8vugegsl] {
    gap: 10px;
    border: var(--fn-border-width) solid currentColor;
    border-radius: 8px;
    padding: 10px 12px;
    background: var(--fn-bg-muted);
}

.tje-dialog-summary strong[b-fw8vugegsl],
.tje-dialog-summary span[b-fw8vugegsl] {
    display: block;
}

.tje-dialog-summary strong[b-fw8vugegsl] {
    font-size: 12px;
}

.tje-dialog-summary div > span[b-fw8vugegsl] {
    margin-top: 2px;
    color: var(--fn-text-secondary);
    font-size: 10px;
}

.tje-dialog-body h3[b-fw8vugegsl] {
    margin: 16px 0 8px;
    color: var(--fn-text);
    font-size: 11px;
}

.tje-criteria[b-fw8vugegsl] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tje-criteria li[b-fw8vugegsl] {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 6px;
    padding: 7px 8px;
    background: var(--fn-input-bg);
    color: var(--fn-text-secondary);
    font-size: 9.5px;
    line-height: 1.35;
}

.tje-criteria li[b-fw8vugegsl]::before {
    flex: none;
    color: var(--fn-danger);
    content: "×";
    font-weight: var(--fn-font-weight-bold);
}

.tje-original-reason[b-fw8vugegsl] {
    margin: 0;
    border-left: 2px solid var(--fn-border-strong);
    padding: 8px 10px;
    color: var(--fn-text-secondary);
    font-size: 10px;
    line-height: 1.55;
}

@media (max-width: 720px) {
    .tje-decision[b-fw8vugegsl] { white-space: normal; }
    .tje-health[b-fw8vugegsl], .tje-range[b-fw8vugegsl], .tje-criteria[b-fw8vugegsl] { grid-template-columns: 1fr; }
    .tje-metric[b-fw8vugegsl] { grid-template-columns: 1fr; }
    .tje-metric dd[b-fw8vugegsl] { text-align: left; }
    .tje-dialog-head[b-fw8vugegsl], .tje-dialog-body[b-fw8vugegsl] { padding: 14px; }
}
/* /Components/Pages/TradingJournalPage.razor.rz.scp.css */
/* Handels-Buchungsjournal — 1:1 zur VORSCHAU-Handels-Buchungsjournal.html, Tokens statt Hex.
   Grid-Optik geerbt von fn-list (global); hier nur Filterleiste, KPI-Karten, Gruppieren-Reihe,
   Pills und die journalspezifischen Spaltenfarben. */

.tj-page[b-8pc0txs8mv] { width: 100%; max-width: none; margin: 0; padding: 22px; color: var(--fn-text); }
.tj-eyebrow[b-8pc0txs8mv] { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--fn-primary); font-weight: var(--fn-font-weight-bold); }
.tj-page h1[b-8pc0txs8mv] { font-size: 22px; margin: 5px 0 3px; }
.tj-sub[b-8pc0txs8mv] { color: var(--fn-text-secondary); font-size: 13px; margin: 0 0 16px; }

.tj-shell[b-8pc0txs8mv] { border: var(--fn-border-width) solid var(--fn-border-strong); border-radius: 14px; background: var(--fn-bg-alt); overflow: hidden; }

/* ---- Filter-Leiste (ZeitraumFilter-Muster) ---- */
.tj-bar[b-8pc0txs8mv] { display: grid; grid-template-columns: minmax(270px, 310px) minmax(300px, 340px) 140px minmax(180px, 220px) minmax(220px, 1fr) auto;
          align-items: end; gap: 18px; padding: 12px 14px;
          border-bottom: var(--fn-border-width) solid var(--fn-border); background: var(--fn-bg-alt); }
.tj-lbl[b-8pc0txs8mv] { font-size: 10px; text-align: center; text-transform: uppercase; letter-spacing: .5px; color: var(--fn-text-tertiary); }
.tj-filter-group[b-8pc0txs8mv] { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: 5px; }
.tj-filter-group > .tj-seg[b-8pc0txs8mv], .tj-filter-group > .tj-range[b-8pc0txs8mv], .tj-filter-group > .tj-sel[b-8pc0txs8mv], .tj-filter-group > .tj-ynav[b-8pc0txs8mv] { width: 100%; }
.tj-filter-group .tj-seg[b-8pc0txs8mv] { display: flex; }
.tj-filter-group .tj-seg button[b-8pc0txs8mv] { flex: 1; }
.tj-range-group[b-8pc0txs8mv]  .fdrc-wrap { width: 100%; }
.tj-range-group[b-8pc0txs8mv]  .fdrc-feld { flex: 1; }

.tj-seg[b-8pc0txs8mv] { border: var(--fn-border-width) solid var(--fn-border); border-radius: 8px; overflow: hidden; }
.tj-seg button[b-8pc0txs8mv] { border: 0; background: var(--fn-input-bg); color: var(--fn-text-secondary);
                 padding: 5px 11px; font: 600 11.5px var(--fn-font); cursor: pointer; }
.tj-seg button + button[b-8pc0txs8mv] { border-left: var(--fn-border-width) solid var(--fn-border); }
.tj-seg button.on[b-8pc0txs8mv] { background: var(--fn-primary); color: var(--fn-on-primary); }

.tj-ynav[b-8pc0txs8mv] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-left: 0; }
.tj-ynav button[b-8pc0txs8mv] { border: var(--fn-border-width) solid var(--fn-border-strong); background: var(--fn-input-bg);
                  color: var(--fn-text-secondary); border-radius: 7px; width: 26px; height: 26px; cursor: pointer; }
.tj-ynav b[b-8pc0txs8mv] { font: 700 12px var(--fn-font-mono); color: var(--fn-text); }

.tj-sel[b-8pc0txs8mv] { background: var(--fn-input-bg); border: var(--fn-border-width) solid var(--fn-border-strong);
          border-radius: 8px; color: var(--fn-text); font: 600 12px var(--fn-font); padding: 6px 10px; cursor: pointer; }
.tj-user-group[b-8pc0txs8mv] { min-width: 200px; }
.tj-family-group[b-8pc0txs8mv] { min-width: 180px; }
.tj-cntlbl[b-8pc0txs8mv] { grid-column: -2 / -1; align-self: end; font: 11px var(--fn-font-mono); color: var(--fn-text-tertiary); white-space: nowrap; }

/* ---- KPI-Karten ---- */
.tj-kpis[b-8pc0txs8mv] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; padding: 12px 14px;
           border-bottom: var(--fn-border-width) solid var(--fn-border); background: var(--fn-bg-muted); }
.tj-kpi[b-8pc0txs8mv] { border: var(--fn-border-width) solid var(--fn-border); border-radius: 10px; padding: 10px 12px; background: var(--fn-input-bg); }
.tj-kpi .k[b-8pc0txs8mv] { font-size: 10px; text-transform: uppercase; letter-spacing: .5px; color: var(--fn-text-tertiary); font-weight: var(--fn-font-weight-bold); }
.tj-kpi .v[b-8pc0txs8mv] { font: 700 18px var(--fn-font-mono); color: var(--fn-text); margin-top: 4px; }
.tj-kpi .v.up[b-8pc0txs8mv] { color: var(--fn-chart-up); }
.tj-kpi .v.down[b-8pc0txs8mv] { color: var(--fn-chart-down); }
.tj-kpi .v.tj-warn[b-8pc0txs8mv] { color: var(--fn-warning); }
.tj-kpi .s[b-8pc0txs8mv] { font-size: 10.5px; color: var(--fn-text-tertiary); margin-top: 2px; }

/* ---- Persistierte Strategieanalyse ---- */
.tj-analysis[b-8pc0txs8mv] { padding: 14px; border-bottom: var(--fn-border-width) solid var(--fn-border);
               background: var(--fn-bg-alt); }
.tj-analysis > header[b-8pc0txs8mv] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.tj-analysis h2[b-8pc0txs8mv] { margin: 2px 0 0; font-size: 15px; }
.tj-analysis > p[b-8pc0txs8mv] { margin: 6px 0 12px; color: var(--fn-text-secondary); font-size: 11.5px; }
.tj-analysis-eyebrow[b-8pc0txs8mv] { color: var(--fn-primary); font-size: 9.5px; font-weight: var(--fn-font-weight-bold);
                       letter-spacing: .08em; text-transform: uppercase; }
.tj-analysis-proof[b-8pc0txs8mv] { color: var(--fn-chart-up); border: var(--fn-border-width) solid var(--fn-chart-up);
                     border-radius: 999px; padding: 3px 9px; font: 600 10px var(--fn-font-mono); }
.tj-analysis-grid[b-8pc0txs8mv] { display: grid;
                    grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr)); gap: 9px; }

/* ---- Ansicht, Gruppierung und Spalten auf einer gemeinsamen Grundlinie ---- */
.tj-controlbar[b-8pc0txs8mv] { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: end;
                 gap: 22px; padding: 9px 14px; border-bottom: var(--fn-border-width) solid var(--fn-border);
                 background: var(--fn-bg-alt); }
.tj-controlbar.daily[b-8pc0txs8mv] { grid-template-columns: auto 1fr auto; }
.tj-control[b-8pc0txs8mv] { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: 3px; }
.tj-view-control[b-8pc0txs8mv] { justify-self: start; }
.tj-group-control[b-8pc0txs8mv] { justify-self: center; }
.tj-glbl[b-8pc0txs8mv] { font-size: 10px; text-transform: uppercase; letter-spacing: .5px; color: var(--fn-text-tertiary); font-weight: var(--fn-font-weight-bold); }
.tj-gseg[b-8pc0txs8mv] { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.tj-gseg button[b-8pc0txs8mv] { border: var(--fn-border-width) solid var(--fn-border); background: var(--fn-input-bg);
                  color: var(--fn-text-secondary); border-radius: 999px; padding: 4px 12px; font: 600 11.5px var(--fn-font); cursor: pointer; }
.tj-gseg button.on[b-8pc0txs8mv] { background: var(--fn-cat-blue-soft); border-color: var(--fn-primary); color: var(--fn-primary); }
.tj-group-line[b-8pc0txs8mv] { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: 4px; }
.tj-ghint[b-8pc0txs8mv] { font: 10px/1.3 var(--fn-font-mono); color: var(--fn-text-tertiary); text-align: center; }
.tj-columns-control[b-8pc0txs8mv] { justify-self: end; align-self: end; }

/* ---- Grid (fn-list erbt Grundoptik; hier Gruppen-/Zellenspezifika) ---- */
.tj-grid-wrap[b-8pc0txs8mv] { overflow-x: auto; overflow-y: hidden; }
.tj-grid[b-8pc0txs8mv] { min-width: 1720px; table-layout: fixed; }
.tj-grid .tj-col-security[b-8pc0txs8mv] { width: 15%; }
.tj-grid .tj-col-strategy[b-8pc0txs8mv] { width: 13%; }
.tj-grid .tj-col-execution[b-8pc0txs8mv] { width: 11%; }
.tj-grid .tj-col-broker[b-8pc0txs8mv] { width: 8%; }
.tj-grid .tj-col-side[b-8pc0txs8mv] { width: 5%; }
.tj-grid .tj-col-shares[b-8pc0txs8mv] { width: 5%; }
.tj-grid .tj-col-price[b-8pc0txs8mv] { width: 7%; }
.tj-grid .tj-col-date[b-8pc0txs8mv] { width: 8%; }
.tj-grid .tj-col-net[b-8pc0txs8mv] { width: 9%; }
.tj-grid .tj-col-status[b-8pc0txs8mv] { width: 8%; }
.tj-grid th[b-8pc0txs8mv], .tj-grid td[b-8pc0txs8mv] { overflow: hidden; text-overflow: ellipsis; }
.tj-grid th[b-8pc0txs8mv] { vertical-align: bottom; }
.tj-grid td[b-8pc0txs8mv] { vertical-align: middle; }
.tj-grid td:first-child[b-8pc0txs8mv] { overflow: visible; }
.tj-grid .fn-sort[b-8pc0txs8mv] { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; }
.tj-grid .fn-stack[b-8pc0txs8mv], .tj-grid .sec-ids[b-8pc0txs8mv] { min-width: 0; }
.tj-grid .tj-pill + .tj-pill[b-8pc0txs8mv] { margin-left: 4px; }
.tj-grid .tj-dir[b-8pc0txs8mv] { font-weight: var(--fn-font-weight-medium); }
.tj-grid .tj-empty[b-8pc0txs8mv] { text-align: center; color: var(--fn-text-tertiary); padding: 26px 14px; }

.tj-grp td[b-8pc0txs8mv] { padding: 0; background: var(--fn-bg-alt); }
.tj-subgrp td[b-8pc0txs8mv] { padding: 0; background: var(--fn-bg-muted); }
.tj-grp-toggle[b-8pc0txs8mv] { display: flex; align-items: center; gap: 10px; width: 100%; background: none; border: 0;
                 cursor: pointer; text-align: left; padding: 8px 14px; color: var(--fn-text); font: inherit; }
.tj-subgrp .tj-grp-toggle[b-8pc0txs8mv] { padding-left: 34px; }
.tj-grp-toggle .chev[b-8pc0txs8mv] { color: var(--fn-text-tertiary); }
.tj-grp-toggle .gl[b-8pc0txs8mv] { font-weight: var(--fn-font-weight-bold); font-size: 12.5px; }
.tj-subgrp .tj-grp-toggle .gl[b-8pc0txs8mv] { font-weight: var(--fn-font-weight-medium); font-size: 11.5px; color: var(--fn-text-secondary); }
.tj-grp-toggle .gl.tj-sim-label[b-8pc0txs8mv] { color: var(--fn-cat-purple); }
.tj-grp-toggle .cnt[b-8pc0txs8mv] { margin-left: auto; font: 11px var(--fn-font-mono); color: var(--fn-text-tertiary); }
.tj-grp-toggle .cnt b[b-8pc0txs8mv] { font-family: var(--fn-font-mono); }
.tj-grp-toggle .cnt b.up[b-8pc0txs8mv] { color: var(--fn-chart-up); }
.tj-grp-toggle .cnt b.down[b-8pc0txs8mv] { color: var(--fn-chart-down); }

/* Pills / Bubbles */
.tj-pill[b-8pc0txs8mv] { display: inline-block; font: 600 10.5px var(--fn-font-mono); border-radius: 999px; padding: 2px 8px;
           border: var(--fn-border-width) solid var(--fn-border-strong); color: var(--fn-text-secondary); }
.tj-pill.cap[b-8pc0txs8mv] { color: var(--fn-cat-blue); border-color: var(--fn-cat-blue); }
.tj-pill.scal[b-8pc0txs8mv] { color: var(--fn-cat-teal); border-color: var(--fn-cat-teal); }
.tj-pill.paper[b-8pc0txs8mv] { color: var(--fn-text-secondary); }
.tj-pill.live[b-8pc0txs8mv] { color: var(--fn-warning); border-color: var(--fn-warning); }
.tj-pill.sim[b-8pc0txs8mv] { color: var(--fn-cat-purple); border-color: var(--fn-cat-purple); }
.tj-pill.origin[b-8pc0txs8mv] { color: var(--fn-cat-blue); border-color: var(--fn-cat-blue); }
.tj-pill.automation[b-8pc0txs8mv] { color: var(--fn-cat-teal); border-color: var(--fn-cat-teal); }
.tj-pill.open[b-8pc0txs8mv] { color: var(--fn-warning); border-color: var(--fn-warning); }
.tj-pill.closed[b-8pc0txs8mv] { color: var(--fn-chart-up); border-color: var(--fn-chart-up); }
.tj-pill.cancelled[b-8pc0txs8mv] { color: var(--fn-text-tertiary); }

.tj-dir.long[b-8pc0txs8mv] { color: var(--fn-chart-up); }
.tj-dir.short[b-8pc0txs8mv] { color: var(--fn-chart-down); }
.tj-pnl[b-8pc0txs8mv] { font-family: var(--fn-font-mono); }
.tj-pnl.up[b-8pc0txs8mv] { color: var(--fn-chart-up); font-weight: var(--fn-font-weight-bold); }
.tj-pnl.down[b-8pc0txs8mv] { color: var(--fn-chart-down); font-weight: var(--fn-font-weight-bold); }
  .tj-pnl.na[b-8pc0txs8mv] { color: var(--fn-warning); }
  .tj-cost-warning[b-8pc0txs8mv] { display: flex; gap: 10px; align-items: baseline; margin: 10px 0; padding: 9px 11px;
                     border: var(--fn-border-width) solid var(--fn-warning); border-radius: 8px;
                     background: var(--fn-bg-muted); color: var(--fn-text-secondary); font-size: 11px; }
  .tj-cost-warning strong[b-8pc0txs8mv] { color: var(--fn-warning); white-space: nowrap; }
  .tj-cost-warning.compact[b-8pc0txs8mv] { margin: 0 0 10px; }
.tj-small[b-8pc0txs8mv] { font: 11px var(--fn-font-mono); color: var(--fn-text-tertiary); }
.tj-orders[b-8pc0txs8mv] { white-space: nowrap; }
.tj-order-id[b-8pc0txs8mv] { display: block; font: 11px var(--fn-font-mono); color: var(--fn-text-secondary); }
.tj-order-id.external[b-8pc0txs8mv] { color: var(--fn-text); }
.tj-order-id.missing[b-8pc0txs8mv] { color: var(--fn-warning); }
.tj-strategy[b-8pc0txs8mv] { display: block; color: var(--fn-text); font-size: 12px; line-height: 1.35; }
.tj-return[b-8pc0txs8mv] { display: block; margin-top: 2px; color: var(--fn-text-tertiary); font: 10.5px var(--fn-font-mono); }
.tj-detail-button[b-8pc0txs8mv] { display: block; margin-top: 5px; padding: 0; border: 0; background: none;
                    color: var(--fn-primary); font: 600 10.5px var(--fn-font); cursor: pointer; }

.tj-detail-row td[b-8pc0txs8mv] { padding: 14px 18px 16px; background: var(--fn-bg-muted); border-bottom-color: var(--fn-border-strong); }
.tj-detail-grid[b-8pc0txs8mv] { display: grid; grid-template-columns: repeat(5, minmax(180px, 1fr)); gap: 10px; }
.tj-detail-item[b-8pc0txs8mv] { min-width: 0; padding: 9px 10px; border: var(--fn-border-width) solid var(--fn-border);
                  border-radius: 8px; background: var(--fn-input-bg); }
.tj-detail-item span[b-8pc0txs8mv] { display: block; color: var(--fn-text-tertiary); font-size: 9.5px; font-weight: var(--fn-font-weight-bold);
                       letter-spacing: .05em; text-transform: uppercase; }
.tj-detail-item strong[b-8pc0txs8mv] { display: block; margin-top: 4px; color: var(--fn-text-secondary); font: 10.5px/1.45 var(--fn-font-mono);
                         overflow-wrap: anywhere; }
.tj-event-title[b-8pc0txs8mv] { margin-top: 14px; color: var(--fn-text); font-size: 11px; font-weight: var(--fn-font-weight-bold); }
.tj-event-empty[b-8pc0txs8mv] { margin-top: 7px; color: var(--fn-text-tertiary); font-size: 11px; }
.tj-events[b-8pc0txs8mv] { display: grid; gap: 5px; margin: 7px 0 0; padding: 0; list-style: none; }
.tj-events li[b-8pc0txs8mv] { display: grid; grid-template-columns: 110px 150px minmax(180px, 1fr) minmax(100px, auto);
                gap: 10px; align-items: center; padding: 6px 9px; border-left: 2px solid var(--fn-primary);
                background: var(--fn-bg-alt); color: var(--fn-text-secondary); font: 10.5px var(--fn-font-mono); }
.tj-events time[b-8pc0txs8mv] { color: var(--fn-text-tertiary); }
.tj-events strong[b-8pc0txs8mv] { color: var(--fn-primary); }
.tj-events code[b-8pc0txs8mv] { color: var(--fn-text-secondary); overflow-wrap: anywhere; }

@media (max-width: 1200px) {
    .tj-bar[b-8pc0txs8mv] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tj-cntlbl[b-8pc0txs8mv] { grid-column: 1 / -1; justify-self: start; }
    .tj-detail-grid[b-8pc0txs8mv] { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
    .tj-controlbar[b-8pc0txs8mv] { grid-template-columns: auto auto; gap: 10px 16px; }
    .tj-group-control[b-8pc0txs8mv] { grid-column: 1 / -1; grid-row: 2; justify-self: center; }
    .tj-columns-control[b-8pc0txs8mv] { grid-column: 2; grid-row: 1; }
}

@media (max-width: 720px) {
    .tj-bar[b-8pc0txs8mv] { grid-template-columns: minmax(0, 1fr); }
    .tj-controlbar[b-8pc0txs8mv], .tj-controlbar.daily[b-8pc0txs8mv] { grid-template-columns: minmax(0, 1fr) auto; }
    .tj-view-control[b-8pc0txs8mv] { align-items: flex-start; }
    .tj-group-control[b-8pc0txs8mv] { align-items: stretch; justify-self: stretch; }
    .tj-group-line[b-8pc0txs8mv] { align-items: flex-start; }
    .tj-group-control .tj-glbl[b-8pc0txs8mv] { align-self: center; }
}

/* Legende */
.tj-legend[b-8pc0txs8mv] { display: flex; gap: 16px; margin-top: 12px; font-size: 11.5px; color: var(--fn-text-secondary); flex-wrap: wrap; }
.tj-legend i[b-8pc0txs8mv] { display: inline-block; width: 10px; height: 10px; border-radius: 50%; vertical-align: middle; margin-right: 6px; }

/* Legendenpunkte - Farbe gehoert ins Stylesheet, nicht als Inline-Style ins Markup. */
.tj-legend .tj-legend-gain[b-8pc0txs8mv] { background: var(--fn-success); }
.tj-legend .tj-legend-loss[b-8pc0txs8mv] { background: var(--fn-danger); }
.tj-legend .tj-legend-open[b-8pc0txs8mv] { background: var(--fn-warning); }
.tj-legend .tj-legend-sim[b-8pc0txs8mv] { background: var(--fn-cat-purple); }
/* /Components/Pages/TradingJournalPeriodFilter.razor.rz.scp.css */
/* Vorauswahl Jahr / Monat / KW — nur die Geometrie der Leiste.

   Die Felder selbst kommen aus den geteilten Primitiven (`fn-field fn-select`); hier steht
   ausdrücklich KEINE Feld- oder Button-Regel. Und die Datei liegt BEI der Komponente: Blazor
   bindet isoliertes CSS an ein Attribut, das nur Elemente der eigenen Komponente tragen — eine
   Regel in der Datei der Elternseite träfe hier kein einziges Element (Befund der UX-Prüfung
   12.08.2026). Nur Tokens, kein Hex. */

.tj-period[b-57hhywofel] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 0 0 12px;
}
/* /Components/Portfolio/PortfolioPage.razor.rz.scp.css */
/* Portfolio-Seite (KONZEPT-Portfolio-Steuer-Gewinnsimulation). Tokens-only (FINLIST003);
   die Positionstabelle nutzt die geteilte fn-list-Identität (FINLIST005). */

.pp-page[b-gv4ftihxfm] { padding: 20px 22px 40px; }
.pp-loading[b-gv4ftihxfm] { color: var(--fn-text-tertiary); padding: 40px 0; text-align: center; }

.pp-head[b-gv4ftihxfm] { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; }
.pp-head h1[b-gv4ftihxfm] { margin: 0; font-size: 23px; }
.pp-sub[b-gv4ftihxfm] { color: var(--fn-text-secondary); font-size: 13px; margin-top: 3px; }

.pp-empty[b-gv4ftihxfm] {
    background: var(--fn-bg-alt); border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius); padding: 28px; color: var(--fn-text-secondary);
    font-size: 14px; line-height: 1.5;
}

/* Modus-Umschalter (Signatur-Interaktion) */
.pp-modebar[b-gv4ftihxfm] { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 6px 0 14px; }
.pp-seg[b-gv4ftihxfm] {
    display: inline-flex; border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: var(--fn-radius-pill); overflow: hidden; background: var(--fn-bg-muted);
}
.pp-seg button[b-gv4ftihxfm] {
    border: none; background: transparent; color: var(--fn-text-secondary);
    font-weight: var(--fn-font-weight-bold); font-size: 13px; padding: 8px 18px; cursor: pointer;
    display: flex; flex-direction: column; align-items: center; line-height: 1.2; font-family: var(--fn-font);
}
.pp-seg button small[b-gv4ftihxfm] { font-weight: var(--fn-font-weight-medium); font-size: 10px; color: var(--fn-text-tertiary); margin-top: 2px; }
.pp-seg button + button[b-gv4ftihxfm] { border-left: var(--fn-border-width) solid var(--fn-border); }
.pp-seg button.on[b-gv4ftihxfm] { background: var(--fn-cat-gold-soft); color: var(--fn-cat-gold); }
.pp-seg button.on small[b-gv4ftihxfm] { color: var(--fn-cat-gold); opacity: .8; }
.pp-modehint[b-gv4ftihxfm] { font-size: 12px; color: var(--fn-text-secondary); }
.pp-disclaimer[b-gv4ftihxfm] {
    margin-left: auto; display: inline-flex; align-items: center; gap: 7px; font-size: 11.5px;
    color: var(--fn-text-tertiary); border: var(--fn-border-width) solid var(--fn-border);
    background: var(--fn-bg-alt); border-radius: var(--fn-radius-pill); padding: 5px 12px;
}
.pp-disclaimer .dot[b-gv4ftihxfm] { width: 7px; height: 7px; border-radius: var(--fn-radius-round); background: var(--fn-warning); }

/* Hero — die eine Aussage groß */
.pp-hero[b-gv4ftihxfm] {
    position: relative; overflow: hidden; background: var(--fn-bg-alt);
    border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-lg);
    padding: 18px 24px 20px; border-left: 3px solid var(--fn-cat-gold);
}
.pp-hero-gross[b-gv4ftihxfm] { border-left-color: var(--fn-primary); }
.pp-hero-net[b-gv4ftihxfm] { border-left-color: var(--fn-success); }
.pp-hero .pp-k[b-gv4ftihxfm] { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--fn-text-tertiary); }
.pp-hero .pp-big[b-gv4ftihxfm] {
    font-size: 50px; font-weight: 800; font-family: var(--fn-font-mono);
    letter-spacing: -1.5px; margin-top: 4px; color: var(--fn-text); line-height: 1.04;
}
.pp-hero .pp-subline[b-gv4ftihxfm] { font-size: 12.5px; color: var(--fn-text-secondary); margin-top: 6px; }

/* KPI-Streifen */
.pp-kpis[b-gv4ftihxfm] { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-top: 12px; }
@media (max-width: 1080px) { .pp-kpis[b-gv4ftihxfm] { grid-template-columns: repeat(3, 1fr); } }
.pp-kpi[b-gv4ftihxfm] { background: var(--fn-bg-alt); border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius); padding: 11px 13px; }
.pp-kpi .k[b-gv4ftihxfm] { font-size: 10px; letter-spacing: .07em; text-transform: uppercase; color: var(--fn-text-tertiary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pp-kpi .v[b-gv4ftihxfm] { font-size: 17px; font-weight: var(--fn-font-weight-bold); font-family: var(--fn-font-mono); margin-top: 4px; white-space: nowrap; }
.pp-kpi .vs[b-gv4ftihxfm] { font-size: 11px; color: var(--fn-text-secondary); margin-top: 2px; }
.pp-jump[b-gv4ftihxfm] { display: inline-block; margin-top: 5px; font-size: 10.5px; color: var(--fn-primary); cursor: pointer; }
.pp-jump:hover[b-gv4ftihxfm] { text-decoration: underline; }

.pp-pos[b-gv4ftihxfm] { color: var(--fn-success); }
.pp-neg[b-gv4ftihxfm] { color: var(--fn-danger); }

/* Hauptbereich */
.pp-cols[b-gv4ftihxfm] { display: grid; grid-template-columns: 1.7fr 1fr; gap: 14px; margin-top: 16px; align-items: start; }
@media (max-width: 1080px) { .pp-cols[b-gv4ftihxfm] { grid-template-columns: 1fr; } }
.pp-side[b-gv4ftihxfm] { display: grid; gap: 14px; }

.pp-card[b-gv4ftihxfm] {
    min-width: 0; background: var(--fn-bg-alt);
    border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius);
}
.pp-card-h[b-gv4ftihxfm] { display: flex; align-items: center; gap: 10px; padding: 12px 15px; border-bottom: var(--fn-border-width) solid var(--fn-border); }
.pp-card-h h3[b-gv4ftihxfm] { margin: 0; font-size: 13.5px; }
.pp-pill[b-gv4ftihxfm] {
    font-size: 10.5px; font-weight: var(--fn-font-weight-bold); letter-spacing: .05em; text-transform: uppercase;
    color: var(--fn-text-secondary); background: var(--fn-bg-muted); border-radius: var(--fn-radius-pill); padding: 3px 9px;
}
.pp-note[b-gv4ftihxfm] { font-size: 10.5px; color: var(--fn-text-tertiary); line-height: 1.4; padding: 8px 15px 0; }
.pp-foot[b-gv4ftihxfm] { font-size: 10.5px; color: var(--fn-text-tertiary); padding: 8px 15px 14px; line-height: 1.5; }

/* Positionstabelle — auf fn-list-Basis, hier nur Feinheiten */
.fn-list[b-gv4ftihxfm] { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.fn-list th.num[b-gv4ftihxfm], .fn-list td.num[b-gv4ftihxfm] { text-align: right; font-family: var(--fn-font-mono); }
.fn-stack .n[b-gv4ftihxfm] { display: block; }
.fn-stack .s[b-gv4ftihxfm] { display: block; margin-top: 1px; }
tr.selrow td[b-gv4ftihxfm] { background: var(--fn-accent-soft); }

/* Die Verkaufssimulation ist eine Zeilen-Aktion (fn-markers/fn-marker, Icon 'scale') — der frühere
   eigene Button .pp-simbtn entfällt; Optik und Zustände kommen aus dem geteilten fn-markers.css. */

/* Verkaufssimulation (Drawer) */
.pp-simrow td[b-gv4ftihxfm] { padding: 0; }
.pp-sim[b-gv4ftihxfm] { margin: 0 12px 10px; border: var(--fn-border-width) solid var(--fn-accent-line); background: var(--fn-bg-muted); border-radius: var(--fn-radius); padding: 14px 16px; }
.pp-sim .sh[b-gv4ftihxfm] { display: flex; align-items: center; gap: 9px; margin-bottom: 10px; }
.pp-sim .sh h4[b-gv4ftihxfm] { margin: 0; font-size: 13px; }
.pp-sim .sh .q[b-gv4ftihxfm] { font-family: var(--fn-font-mono); color: var(--fn-text-secondary); font-size: 12px; }
.pp-sim .grid[b-gv4ftihxfm] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
@media (max-width: 760px) { .pp-sim .grid[b-gv4ftihxfm] { grid-template-columns: repeat(2, 1fr); } }
.pp-sim .cell[b-gv4ftihxfm] { background: var(--fn-bg-alt); border: var(--fn-border-width) solid var(--fn-border); border-radius: 10px; padding: 9px 11px; }
.pp-sim .cell .k[b-gv4ftihxfm] { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--fn-text-tertiary); }
.pp-sim .cell .v[b-gv4ftihxfm] { font-family: var(--fn-font-mono); font-size: 16px; font-weight: var(--fn-font-weight-bold); margin-top: 3px; }
.pp-sim .cell.flow[b-gv4ftihxfm] { border-color: var(--fn-success); background: var(--fn-success-soft); }
.pp-sim .cell.flow .v[b-gv4ftihxfm] { color: var(--fn-success); }
.pp-sim .qty[b-gv4ftihxfm] { display: flex; align-items: center; gap: 10px; margin-top: 11px; font-size: 12px; color: var(--fn-text-secondary); }
.pp-sim .qty input[type=range][b-gv4ftihxfm] { flex: 1; accent-color: var(--fn-primary); }

/* Liquidations- / Realisiert-Panel */
.pp-liq[b-gv4ftihxfm] { padding: 6px 16px 8px; }
.pp-liq .row[b-gv4ftihxfm] { display: flex; align-items: center; justify-content: space-between; padding: 9px 0; border-bottom: var(--fn-border-width) solid var(--fn-border); font-size: 13px; }
.pp-liq .row:last-child[b-gv4ftihxfm] { border-bottom: none; }
.pp-liq .row .lab[b-gv4ftihxfm] { color: var(--fn-text-secondary); }
.pp-liq .row .val[b-gv4ftihxfm] { font-family: var(--fn-font-mono); color: var(--fn-text); }
.pp-liq .row.minus .val[b-gv4ftihxfm] { color: var(--fn-danger); }
.pp-liq .row.total[b-gv4ftihxfm] { margin-top: 4px; padding-top: 13px; border-top: 2px solid var(--fn-border-strong); border-bottom: none; }
.pp-liq .row.total .lab[b-gv4ftihxfm] { color: var(--fn-text); font-weight: var(--fn-font-weight-bold); font-size: 14px; }
.pp-liq .row.total .val[b-gv4ftihxfm] { color: var(--fn-cat-gold); font-weight: 800; font-size: 19px; }

.pp-pos[b-gv4ftihxfm] { color: var(--fn-success); }
.pp-neg[b-gv4ftihxfm] { color: var(--fn-danger); }

/* ===== Gruppierung / Filter / Sortierung / Suche (KONZEPT-Portfolio-Liste-Gruppierung-Filter) ===== */
/* Suche separat oben rechts (fn-search-Standard, fester Platz). */
.pp-head .fn-search[b-gv4ftihxfm] { flex: 0 0 320px; max-width: 320px; margin-left: auto; }

/* 3-Zonen-Kopf nur für die Positionsliste: Titel links · Werkzeuge mittig · Pille rechts. */
.pp-card-h-grouped[b-gv4ftihxfm] { display: grid; grid-template-columns: 1fr auto 1fr; }
.pp-card-h-grouped h3[b-gv4ftihxfm] { justify-self: start; }
.pp-card-h-grouped .pp-pill[b-gv4ftihxfm] { justify-self: end; }
.pp-grpbar[b-gv4ftihxfm] {
    min-width: 0; max-width: 100%; justify-self: center;
    display: flex; gap: 30px; align-items: flex-start;
}
.wl-grp-ctl[b-gv4ftihxfm] { display: inline-flex; flex-direction: column; align-items: center; gap: 3px; }
.wl-grp-lbl[b-gv4ftihxfm] { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--fn-text-tertiary); }
.pp-control-seg[b-gv4ftihxfm] { max-width: 100%; }

/* Wie in der Watchliste ist die Tabellenkopfzeile zugleich der Gruppenkopf. Die Tabelle scrollt
   innerhalb der Karte, statt die komplette Portfolio-Seite über den Viewport hinaus zu verbreitern. */
.pp-items-scroll[b-gv4ftihxfm] { width: 100%; }
.pp-items-scroll .fn-list.wl-items[b-gv4ftihxfm] { min-width: 880px; table-layout: fixed; }
.pp-group-title[b-gv4ftihxfm] { display: flex; align-items: center; gap: 7px; min-width: 0; }
.pp-group-title .fn-sort[b-gv4ftihxfm] {
    min-width: 0; flex: 1 1 auto;
    overflow: hidden; text-overflow: ellipsis;
}
.pp-group-toggle[b-gv4ftihxfm] {
    flex: 0 0 18px; width: 18px; height: 18px;
    border-radius: var(--fn-radius-sm);
}
.pp-group-toggle:focus-visible[b-gv4ftihxfm] {
    outline: 2px solid var(--fn-primary); outline-offset: 2px;
}
.pp-group-head .pp-group-metric[b-gv4ftihxfm] { font-family: var(--fn-font-mono); }
.pp-group-head .pp-group-metric.pp-pos[b-gv4ftihxfm] { color: var(--fn-success); opacity: 1; }
.pp-group-head .pp-group-metric.pp-neg[b-gv4ftihxfm] { color: var(--fn-danger); opacity: 1; }

@media (max-width: 1280px) {
    .pp-card-h-grouped[b-gv4ftihxfm] { grid-template-columns: 1fr auto; row-gap: 10px; }
    .pp-card-h-grouped .pp-pill[b-gv4ftihxfm] { grid-column: 2; grid-row: 1; }
    .pp-grpbar[b-gv4ftihxfm] {
        grid-column: 1 / -1; grid-row: 2; justify-self: stretch;
        justify-content: center; overflow-x: auto; padding-bottom: 2px;
    }
}

@media (max-width: 760px) {
    .pp-card-h-grouped[b-gv4ftihxfm] { grid-template-columns: 1fr; align-items: start; }
    .pp-card-h-grouped .pp-pill[b-gv4ftihxfm] { grid-column: 1; grid-row: 2; justify-self: start; }
    .pp-grpbar[b-gv4ftihxfm] {
        grid-column: 1; grid-row: 3; width: 100%;
        flex-direction: column; align-items: stretch; gap: 10px; overflow: visible;
    }
    .pp-grpbar .wl-grp-ctl[b-gv4ftihxfm] { min-width: 0; align-items: stretch; }
    .pp-grpbar .wl-grp-lbl[b-gv4ftihxfm] { text-align: left; }
    .pp-control-seg[b-gv4ftihxfm] {
        display: flex; width: 100%; overflow-x: auto; overflow-y: hidden;
    }
    .pp-control-seg .wl-mode-tab[b-gv4ftihxfm] { flex: 0 0 auto; white-space: nowrap; }
}

/* Untere Zusammenfassungs-Karten: gleiche Breite + Höhe, Summen-Linie auf gleicher Höhe. */
.pp-cols-summary[b-gv4ftihxfm] { grid-template-columns: 1fr 1fr; align-items: stretch; }
.pp-cols-summary .pp-card[b-gv4ftihxfm] { display: flex; flex-direction: column; }
.pp-cols-summary .pp-liq[b-gv4ftihxfm] { display: flex; flex-direction: column; flex: 1; }
.pp-cols-summary .pp-liq-rows[b-gv4ftihxfm] { min-height: 112px; }
.pp-cols-summary .pp-foot[b-gv4ftihxfm] { margin-top: auto; }

.pp-unavailable[b-gv4ftihxfm] {
    color: var(--fn-text-tertiary) !important;
}

.pp-depot-source[b-gv4ftihxfm] {
    display: block;
    margin-top: 2px;
    color: var(--fn-text-tertiary);
    font-size: 11px;
}

.pp-fee-warning[b-gv4ftihxfm] {
    margin: 8px 12px;
    color: var(--fn-warning);
    font-size: 12px;
}

.pp-sim-loading[b-gv4ftihxfm] {
    padding: 12px;
    color: var(--fn-text-secondary);
}
/* /Components/Positions/FnPositionsKpiBand.razor.rz.scp.css */
/* KPI-Kacheln (Zone B) — Maße 1:1 aus dem KPI-Karten-Standard der App
   (`wwwroot/css/security-detail.css`, .sd-kpi-grid / .sd-kpi).

   Warum der Umbau (Niko 01.08.2026: „warum sehen die hier so hässlich aus?"): dieses Band hatte
   eigene, deutlich kleinere Maße — SECHS bzw. ACHT Kacheln in einer Reihe, 8 px Abstand, 7/9 px
   Innenabstand, 14-px-Zahl. Überall sonst in der App stehen VIER Kacheln pro Reihe mit 12 px
   Abstand, 14/16 px Innenabstand und einer 22-px-Zahl. Nebeneinander wirkte dieselbe Kennzahl
   hier gequetscht und dort ruhig. Kennzahlen sind das, was man auf einen Blick liest — sie werden
   nicht verkleinert, um eine Kopfzone flach zu halten.

   Token-only. Bleibt scoped: kein globales Stylesheet, damit keine fremde Fläche überschrieben wird
   (Lehre aus dem Rückbau vom 28.07.2026). */

/* Vier Kacheln pro Reihe wie im Standard. Sechs (Studio) bzw. acht (mit Lauf-Kennzahlen) brechen
   damit in zwei Reihen um — das ist gewollt: lieber eine zweite Reihe als acht gequetschte Kästen. */
.fps-kpis[b-3cpfbixnq9] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }

@media (max-width: 1100px) {
  .fps-kpis[b-3cpfbixnq9] { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .fps-kpis[b-3cpfbixnq9] { grid-template-columns: repeat(2, 1fr); }
}

/* Kachel-Optik aus dem Kachel-Standard der App (`wwwroot/css/fn-tiles.css`, .fn-tile — dort als
   „DIE eine Optik" für Kacheln ausgewiesen, Referenz Trading Simulation / Quant Studio):
   weicher Radius 11 px, abgesetzte Fläche, ruhige Kante oben. Die Positions-Kacheln waren flache
   Kästchen mit kleinem Radius und ohne Oberkante — dieselbe Kennzahl sah dadurch in jedem anderen
   Modul weicher aus als hier (Niko 01.08.2026). */
.fps-kpis .kpi[b-3cpfbixnq9] {
  background: var(--fn-bg-alt);
  border: var(--fn-border-width) solid var(--fn-border);
  border-top: 3px solid var(--fn-border-strong);
  border-radius: 11px;
  padding: 13px 15px;
  min-width: 0;
}

/* Die Oberkante trägt die Aussage der Kachel: Gewinn grün, Verlust rot, Schutz im Teal-Akzent —
   dieselbe Zuordnung wie .fn-tile-win / .fn-tile-fail im Standard. */
.fps-kpis .kpi.up[b-3cpfbixnq9] { border-top-color: var(--fn-success); }
.fps-kpis .kpi.down[b-3cpfbixnq9] { border-top-color: var(--fn-danger); }
.fps-kpis .kpi.teal[b-3cpfbixnq9] { border-top-color: var(--fn-cat-teal); }

.fps-kpis .kpi .k[b-3cpfbixnq9] {
  font-size: 11px; color: var(--fn-text-tertiary);
  text-transform: uppercase; letter-spacing: .5px;
  margin-bottom: 6px;
  /* Eine lange Beschriftung sprengt die Kachel nicht — sie wird abgeschnitten. */
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* Zahlen in Mono: sonst fluchten die Geldwerte ziffernweise nicht. Größe und Laufweite aus dem
   Standard (22 px / −0.5 px), damit dieselbe Kennzahl in jedem Modul gleich groß dasteht. */
.fps-kpis .kpi .v[b-3cpfbixnq9] {
  font-size: 22px; font-weight: var(--fn-font-weight-bold); letter-spacing: -.5px;
  color: var(--fn-text); font-family: var(--fn-font-mono);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.fps-kpis .kpi .s[b-3cpfbixnq9] { font-size: 12px; margin-top: 4px; color: var(--fn-text-secondary); }

.fps-kpis .kpi .v.up[b-3cpfbixnq9] { color: var(--fn-success); }
.fps-kpis .kpi .v.down[b-3cpfbixnq9] { color: var(--fn-danger); }

/* Schutz-Kachel im Teal-Akzent (Zielbild): derselbe Ton wie Venue-Punkt und Lebenszyklus in der Zeile,
   damit „Geschützt" oben und der Balken unten sichtbar zusammengehören. */
.fps-kpis .kpi .k.teal[b-3cpfbixnq9] { color: var(--fn-cat-teal); }
.fps-kpis .kpi .v.teal[b-3cpfbixnq9] { color: var(--fn-cat-teal); }
/* /Components/Positions/FnPositionsOriginChips.razor.rz.scp.css */
/* Herkunfts-Chips (Zone A) — token-only, 1:1 aus FnPositionsPanel.razor.css übernommen.
   Bleibt scoped: kein globales Stylesheet (Lehre aus dem Rückbau vom 28.07.2026). */
.fps-zoneA[b-k71f3skibb] { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

.ochip[b-k71f3skibb] { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; border-radius: var(--fn-radius-pill);
  border: 1px solid var(--fn-border-strong); background: var(--fn-bg-alt); color: var(--fn-text-secondary);
  font-size: 12.5px; font-weight: 600; cursor: pointer; }
.ochip .ic[b-k71f3skibb] { display: inline-flex; align-items: center; line-height: 1; }
/* ::deep ist Pflicht: das <svg> entsteht erst zur Laufzeit (lucide-interop) und traegt die
   Isolationskennung der Komponente NICHT. Ohne ::deep griff die Regel nie und die fuenf
   Chip-Icons standen auf Lucides Vorgabe 24px — die Kopfzone wuchs sichtbar ueber das Zielbild. */
.ochip .ic[b-k71f3skibb]  .lucide { width: 15px; height: 15px; flex: none; }
/* Herkunftsfarbe auf dem Lucide-Icon (svg erbt currentColor) — hält die fünf Chips auseinander. */
.ochip.man .ic[b-k71f3skibb] { color: var(--fn-primary); }
.ochip.ai .ic[b-k71f3skibb] { color: var(--fn-cat-purple); }
.ochip.signal .ic[b-k71f3skibb] { color: var(--fn-cat-teal); }
.ochip.strat .ic[b-k71f3skibb] { color: var(--fn-cat-pink); }
.ochip.auto .ic[b-k71f3skibb] { color: var(--fn-cat-orange); }
/* Mono wie im Zielbild: die Zahlen der fuenf Chips fluchten sonst nicht untereinander. */
.ochip .cnt[b-k71f3skibb] { font-family: var(--fn-font-mono); font-weight: 700; color: var(--fn-text); }
.ochip .pnl[b-k71f3skibb] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.ochip.on[b-k71f3skibb] { background: var(--fn-accent-soft); border-color: var(--fn-primary); color: var(--fn-text); }
/* Huelle traegt den Hinweistext; sie muss Zeiger-Ereignisse empfangen, der Button darunter nicht. */
.ochip-gate[b-k71f3skibb] { display: inline-flex; }
/* Zielbild: 0-Chips gestrichelt und nicht klickbar — die Optik sagt es, bevor der Text es sagt. */
.ochip.zero[b-k71f3skibb] { opacity: .5; border-style: dashed; cursor: not-allowed; }
.pnl.up[b-k71f3skibb] { color: var(--fn-success); }
.pnl.down[b-k71f3skibb] { color: var(--fn-danger); }
/* /Components/Positions/FnPositionsPanel.razor.rz.scp.css */
/* Gemeinsame Positionsverwaltung — NUR die Regeln fuer Markup, das in DIESER Komponente steht.
   Alles, was in den Kindkomponenten gerendert wird (Tabelle, Reiter, Takt-Zeile, Erklaerband,
   Dialoge), steht global in wwwroot/css/fn-positions.css: Blazor-CSS-Isolation endet an der
   Komponentengrenze, scoped Regeln fuer fremdes Markup greifen auf nichts.
   Token-only (nur var(--fn-*), kein Hex/rgb). */
.fps[b-uoy6w5zx5d] { border: 1px solid var(--fn-border-strong); border-radius: var(--fn-radius); background: var(--fn-bg-alt); overflow: hidden; }

/* Zurueck-Leiste (geteilte fn-back-bar; innerhalb der Karte oben). */
.fps-backbar[b-uoy6w5zx5d] { padding: 12px 16px 0; margin: 0; }

/* --- Kopf: drei Zonen (A Herkunfts-Chips · B KPI-Band · C Takt-Zeile) ---
   Die drei Zonen selbst sind eigene Komponenten mit eigenem scoped CSS bzw. fn-positions.css. */
.fps-hdr[b-uoy6w5zx5d] { display: flex; flex-direction: column; gap: 12px; padding: 12px 16px 6px; }

/* --- Filterzeile: Gruppierung und Konto, Aufbau 1:1 wie in der Watchliste (Niko 31.07.2026) ---
   Beschriftung ZENTRIERT oben, Segment ZENTRIERT darunter. Werte 1:1 aus watchlists.css
   (.wl-grp-ctl / .wl-grp-lbl / .wl-grp-row) — hier wiederholt, weil scoped CSS die globalen
   Watchlist-Regeln in dieser Komponente nicht erbt. */
/* Gruppierung und Konto stehen in DERSELBEN Zeile wie der Button „Neue Position“ (Niko 01.08.2026):
   zentriert zwischen den Reitern links und der Toolbar rechts, unten bündig mit dem Button.
   Sie standen vorher in einer eigenen Zeile darueber. */
/* Gruppierung und Konto: LINKSBUENDIG mit Abstand zu den Reitern, nicht mittig (Niko 01.08.2026).
   Am Screenshot gemessen (Gruppierung.png, 3320 px): die Gruppen sassen exakt mittig mit je rund
   530 px Luft - und die Konto-Knoepfe standen damit SENKRECHT UNTER "Schutz pruefen" und der
   Gefahrenzone, keine 80 px darunter. Genau das meinte "zu nah an den oberen Buttons".
   Linksbuendig mit 44 px Abstand zu den Reitern: die Zeile rueckt rund 500 px nach links, unter
   den freien Bereich, und waechst nach rechts statt in beide Nachbarn zu druecken. */
.fps-filterrow[b-uoy6w5zx5d] { flex: 1; display: flex; justify-content: flex-start; align-items: flex-end;
  gap: 22px; flex-wrap: wrap; padding-bottom: 5px; padding-left: 44px; min-width: 0; }
.wl-grp-ctl[b-uoy6w5zx5d] { display: inline-flex; flex-direction: column; align-items: center; gap: 3px; }
.wl-grp-lbl[b-uoy6w5zx5d] { font-size: 10px; text-transform: uppercase; letter-spacing: .06em;
  color: var(--fn-text-tertiary); text-align: center; }
.wl-grp-row[b-uoy6w5zx5d] { display: inline-flex; align-items: center; gap: 8px; }
.wl-grp-seg .wl-mode-tab[b-uoy6w5zx5d] { padding: 6px 11px; font-size: 12px; }
.wl-mode[b-uoy6w5zx5d] { display: inline-flex; border: 1px solid var(--fn-border-strong); border-radius: 8px; overflow: hidden; }
.wl-mode-tab[b-uoy6w5zx5d] { padding: 6px 11px; font-size: 12px; background: var(--fn-bg-alt); color: var(--fn-text-secondary);
  border: 0; border-right: 1px solid var(--fn-border); cursor: pointer; }
.wl-mode-tab:last-child[b-uoy6w5zx5d] { border-right: 0; }
.wl-mode-tab.on[b-uoy6w5zx5d] { background: var(--fn-primary); color: var(--fn-on-primary); font-weight: 700; }

/* --- Gruppen-Koepfe --- */
.fps-grp[b-uoy6w5zx5d] { border-top: 1px solid var(--fn-border); }
.fps-grp-head[b-uoy6w5zx5d] { display: flex; align-items: center; gap: 11px; padding: 11px 16px; background: var(--fn-bg-muted); }
.fps-grp-head .bar[b-uoy6w5zx5d] { width: 4px; height: 16px; border-radius: 2px; background: var(--fn-primary); }
.fps-grp-head .bar.man[b-uoy6w5zx5d] { background: var(--fn-primary); }
.fps-grp-head .bar.ai[b-uoy6w5zx5d] { background: var(--fn-cat-purple); }
.fps-grp-head .bar.signal[b-uoy6w5zx5d] { background: var(--fn-cat-teal); }
.fps-grp-head .bar.strat[b-uoy6w5zx5d] { background: var(--fn-cat-pink); }
.fps-grp-head .bar.auto[b-uoy6w5zx5d] { background: var(--fn-cat-orange); }
.fps-grp-head .lbl[b-uoy6w5zx5d] { font-weight: 600; font-size: 13px; color: var(--fn-text-secondary); }
.fps-grp-head .cnt[b-uoy6w5zx5d] { font-size: 10.5px; color: var(--fn-text-tertiary); border: 1px solid var(--fn-border); border-radius: var(--fn-radius-pill); padding: 1px 8px; }

/* --- Reiter-Zeile: Reiter links, Toolbar rechts (Suchen · Refresh · Neue Position) --- */
/* Die Grundlinie gehoert an die ZEILE, nicht an die Reiter (Zielbild .tabsrow): sie lief sonst nur
   bis zum letzten Reiter und der Streifen unter der Toolbar blieb ohne Trennlinie. */
.fps-tabrow[b-uoy6w5zx5d] { display: flex; align-items: flex-end; gap: 12px; flex-wrap: wrap; padding: 0 16px;
  border-bottom: 1px solid var(--fn-border); }
/* Die Toolbar steht RECHTS (Zielbild: .tbactions{margin-left:auto}). Vorher sollte das erste Kind
   wachsen — das ist aber die Reiter-Komponente, und eine scoped Regel ohne ::deep erreicht deren
   Wurzelelement nicht: Suchfeld und „Neue Position" klebten dicht hinter dem letzten Reiter. */
.fps-tbactions[b-uoy6w5zx5d] { margin-left: auto; padding-bottom: 5px; }

/* --- Fusszeile --- */
.fps-foot[b-uoy6w5zx5d] { padding: 12px 16px 14px; margin-top: 8px; border-top: 1px solid var(--fn-border);
  font-size: 11.5px; color: var(--fn-text-tertiary); }
/* /Components/Positions/FnPositionsTabs.razor.rz.scp.css */
/* Reiter = 1:1 .mi-tab (Markt-Intelligenz) / .rsn-tab (Erkenntnisse).
   Nikos abgenommene Spec 17.07.2026: „Unterstrich statt Kasten" — keine Flaeche, kein Rahmen, kein
   Radius; aktiv nur var(--fn-text) + Primary-Unterstrich. Token-only. */
/* KEINE eigene Grundlinie: die traegt die Reiter-Zeile ueber die volle Breite (.fps-tabrow) — hier
   endete sie am letzten Reiter, der Streifen unter der Toolbar blieb ohne Trennlinie. */
.fps-tabs[b-valbczvdbe] { display: flex; gap: 4px; }

.fps-tab[b-valbczvdbe] {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 18px; font-size: 13.5px; font-weight: var(--fn-font-weight-bold);
  font-family: inherit; color: var(--fn-text-tertiary);
  background: none; border: none; border-bottom: 2px solid transparent; cursor: pointer;
}
.fps-tab:hover:not(.on)[b-valbczvdbe] { color: var(--fn-text-secondary); }
/* Kein Fokus-Kasten — nur der Unterstrich markiert aktiv (wie .mi-tab). */
.fps-tab:focus[b-valbczvdbe] { outline: none; }
.fps-tab:focus-visible[b-valbczvdbe] { outline: none; border-bottom-color: var(--fn-primary); }
.fps-tab.on[b-valbczvdbe] { color: var(--fn-text); border-bottom-color: var(--fn-primary); }

.fps-tab .count[b-valbczvdbe] {
  min-width: 18px; height: 16px; padding: 0 5px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--fn-radius-pill); background: var(--fn-bg-muted);
  font-family: var(--fn-font-mono); font-size: 9.5px; color: var(--fn-text-tertiary);
}
.fps-tab.on .count[b-valbczvdbe] { color: var(--fn-text); }
/* /Components/PositionStudio/PositionStudioPage.razor.rz.scp.css */
/* Position-Studio-Seite — token-only. */
/* Volle Breite wie jedes andere Modul (Referenz: .at-shell im AI-Trading, Niko 28.07.2026).
   min-width: 0 ist Pflicht — ohne das kann der Inhalt in der Flex-Spalte nicht schrumpfen und
   druckt die Seite ueber den sichtbaren Bereich hinaus (gemessen: 1189px statt 1076px). */
.ps-page[b-20rdan5r1j] { display: flex; flex-direction: column; flex: 1; min-width: 0; padding: 0 18px 24px; }
/* /Components/QuantDeploymentFunnel/DeploymentFunnelPage.razor.rz.scp.css */
.qdf-page[b-r01fttt8cg] { width: 100%; padding: 22px 28px 80px; color: var(--fn-text); }

.qdf-layer[b-r01fttt8cg] { display: flex; align-items: baseline; gap: 12px; }
.qdf-layer .qdf-lab[b-r01fttt8cg] { font-size: 11px; font-weight: 600; letter-spacing: 0.8px; text-transform: uppercase; color: var(--fn-primary); background: var(--fn-accent-soft); padding: 3px 9px; border-radius: var(--fn-radius-pill); }
.qdf-layer h1[b-r01fttt8cg] { font-size: 20px; font-weight: 600; }
.qdf-sub[b-r01fttt8cg] { color: var(--fn-text-secondary); font-size: 12.5px; }

.qdf-tabs[b-r01fttt8cg] { display: flex; gap: 6px; margin: 16px 0 20px; border-bottom: 1px solid var(--fn-border); }
.qdf-tab[b-r01fttt8cg] { font-size: 13px; padding: 8px 14px; color: var(--fn-text-tertiary); border: none; border-bottom: 2px solid transparent; background: none; cursor: pointer; font-family: inherit; }
.qdf-tab:hover[b-r01fttt8cg] { color: var(--fn-text-secondary); }
.qdf-tab.qdf-active[b-r01fttt8cg] { color: var(--fn-primary); border-bottom-color: var(--fn-primary); font-weight: 600; }

.qdf-empty[b-r01fttt8cg] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 18px 20px; color: var(--fn-text-secondary); font-size: 13.5px; }

.qdf-card[b-r01fttt8cg] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius-lg); box-shadow: var(--fn-elevation-1); }
.qdf-grid[b-r01fttt8cg] { display: grid; grid-template-columns: 1fr 1.4fr 1.2fr; gap: 14px; }
.qdf-tile[b-r01fttt8cg] { padding: 18px 20px; }
.qdf-k[b-r01fttt8cg] { font-size: 11px; letter-spacing: 0.7px; text-transform: uppercase; color: var(--fn-text-tertiary); }

.qdf-score[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 58px; font-weight: 700; line-height: 1.05; margin-top: 6px; }
.qdf-score.qdf-hi[b-r01fttt8cg] { color: var(--fn-success); }
.qdf-score.qdf-mid[b-r01fttt8cg] { color: var(--fn-warning); }
.qdf-score.qdf-lo[b-r01fttt8cg] { color: var(--fn-danger); }
.qdf-score .qdf-den[b-r01fttt8cg] { font-size: 18px; color: var(--fn-text-tertiary); }
.qdf-nodata-big[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 22px; color: var(--fn-text-tertiary); margin-top: 14px; }
.qdf-nodata[b-r01fttt8cg] { color: var(--fn-text-tertiary); font-size: 13px; margin-top: 10px; }

.qdf-posture[b-r01fttt8cg] { margin-top: 8px; }
.qdf-pill[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 12.5px; font-weight: 700; letter-spacing: 0.4px; padding: 6px 14px; border-radius: var(--fn-radius-pill); border: 1px solid; }
.qdf-pill.qdf-z-full[b-r01fttt8cg] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.qdf-pill.qdf-z-red[b-r01fttt8cg] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.qdf-pill.qdf-z-def[b-r01fttt8cg] { color: var(--fn-danger); border-color: var(--fn-danger); background: var(--fn-danger-soft); }
.qdf-posture-lead[b-r01fttt8cg] { font-size: 15px; margin-top: 12px; color: var(--fn-text); }
.qdf-posture-note[b-r01fttt8cg] { color: var(--fn-text-tertiary); font-size: 12px; margin-top: 6px; }

.qdf-mix-k[b-r01fttt8cg] { margin-bottom: 8px; }
.qdf-mix .qdf-row[b-r01fttt8cg] { display: grid; grid-template-columns: 1fr 90px 34px; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--fn-border); }
.qdf-mix .qdf-row:last-child[b-r01fttt8cg] { border-bottom: none; }
.qdf-name[b-r01fttt8cg] { font-size: 12.5px; color: var(--fn-text-secondary); }
[b-r01fttt8cg] .qdf-bar { height: 7px; border-radius: var(--fn-radius-pill); background: var(--fn-input-bg); overflow: hidden; }
[b-r01fttt8cg] .qdf-bar > span { display: block; height: 100%; border-radius: var(--fn-radius-pill); }
[b-r01fttt8cg] .qdf-bar .qdf-hi { background: var(--fn-success); }
[b-r01fttt8cg] .qdf-bar .qdf-mid { background: var(--fn-warning); }
[b-r01fttt8cg] .qdf-bar .qdf-lo { background: var(--fn-danger); }
.qdf-bar-empty[b-r01fttt8cg] { border: 1px dashed var(--fn-border-strong); }
.qdf-val[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 13px; text-align: right; }
.qdf-t-hi[b-r01fttt8cg] { color: var(--fn-success); }
.qdf-t-mid[b-r01fttt8cg] { color: var(--fn-warning); }
.qdf-t-lo[b-r01fttt8cg] { color: var(--fn-danger); }
[b-r01fttt8cg] .qdf-miss { color: var(--fn-warning); }

.qdf-sig-cards[b-r01fttt8cg] { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-top: 14px; }
.qdf-sig[b-r01fttt8cg] { padding: 12px 12px 14px; text-align: center; }
.qdf-sig-t[b-r01fttt8cg] { font-size: 12px; font-weight: 600; color: var(--fn-text); }
.qdf-sig-v[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-tertiary); margin-top: 6px; line-height: 1.4; }
.qdf-sig-v.qdf-sig-miss[b-r01fttt8cg] { color: var(--fn-warning); }

.qdf-zone[b-r01fttt8cg] { margin-top: 16px; padding: 14px 16px; }
.qdf-zone-h[b-r01fttt8cg] { font-size: 11px; letter-spacing: 0.8px; text-transform: uppercase; color: var(--fn-text-tertiary); margin-bottom: 10px; }
.qdf-zone-empty[b-r01fttt8cg] { background: var(--fn-bg-alt); border: 1px dashed var(--fn-border-strong); border-radius: var(--fn-radius); padding: 22px 18px; color: var(--fn-text-secondary); font-size: 12.5px; line-height: 1.5; }

.qdf-coverage[b-r01fttt8cg] { margin-top: 16px; font-size: 12.5px; color: var(--fn-text-secondary); }
.qdf-note[b-r01fttt8cg] { margin-top: 10px; font-size: 12px; color: var(--fn-text-tertiary); max-width: 900px; line-height: 1.5; }

/* ---------- Shared (buttons, corr, hint, flash) ---------- */
.qdf-btns[b-r01fttt8cg] { display: flex; gap: 12px; margin: 4px 0 18px; }
.qdf-btn[b-r01fttt8cg] { padding: 10px 18px; border-radius: var(--fn-radius); font-size: 13px; font-weight: 600; border: 1px solid transparent; cursor: pointer; font-family: inherit; }
.qdf-btn:disabled[b-r01fttt8cg] { opacity: 0.6; cursor: default; }
.qdf-btn.qdf-primary[b-r01fttt8cg] { background: var(--fn-primary); color: var(--fn-on-primary); }
.qdf-btn.qdf-ghost[b-r01fttt8cg] { background: var(--fn-input-bg); color: var(--fn-text); border-color: var(--fn-input-border); }
.qdf-corr[b-r01fttt8cg] { border-left: 3px solid var(--fn-cat-purple); background: var(--fn-accent-soft); padding: 9px 13px; border-radius: 0 var(--fn-radius) var(--fn-radius) 0; font-size: 11.5px; color: var(--fn-text-secondary); margin-top: 12px; }
.qdf-corr code[b-r01fttt8cg] { font-family: var(--fn-font-mono); color: var(--fn-primary); }
.qdf-hint[b-r01fttt8cg] { font-size: 11px; color: var(--fn-text-tertiary); margin-top: 8px; }
.qdf-hint code[b-r01fttt8cg] { font-family: var(--fn-font-mono); color: var(--fn-text-secondary); }
.qdf-note-warn[b-r01fttt8cg] { color: var(--fn-warning); }
.qdf-flash[b-r01fttt8cg] { background: var(--fn-success-soft); border: 1px solid var(--fn-success); border-radius: var(--fn-radius); padding: 10px 14px; font-size: 12.5px; color: var(--fn-text); margin-bottom: 14px; }
.qdf-provenance[b-r01fttt8cg] { display: block; font-family: var(--fn-font-mono); font-size: 10.5px; color: var(--fn-text-tertiary); margin-top: 4px; }

/* ---------- Scanner (gatebar + table) ---------- */
.qdf-gatebar[b-r01fttt8cg] { display: flex; align-items: center; gap: 22px; padding: 14px 18px; margin-bottom: 16px; }
.qdf-gb-k[b-r01fttt8cg] { font-size: 10.5px; letter-spacing: 0.7px; text-transform: uppercase; color: var(--fn-text-tertiary); }
.qdf-gb-sc[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 30px; font-weight: 700; }
.qdf-gb-sz[b-r01fttt8cg] { font-size: 15px; font-weight: 600; color: var(--fn-text); }
.qdf-gb-ts[b-r01fttt8cg] { margin-left: auto; font-family: var(--fn-font-mono); font-size: 12px; color: var(--fn-text-tertiary); }
.qdf-tablewrap[b-r01fttt8cg] { padding: 16px 18px; }
.qdf-table-k[b-r01fttt8cg] { margin-bottom: 6px; }
.qdf-fn[b-r01fttt8cg] { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-top: 6px; }
.qdf-fn th[b-r01fttt8cg] { text-align: left; color: var(--fn-text-tertiary); font-weight: 500; font-size: 11px; text-transform: uppercase; letter-spacing: 0.6px; padding: 8px 10px; border-bottom: 1px solid var(--fn-border-strong); }
[b-r01fttt8cg] .qdf-fn td { padding: 11px 10px; border-bottom: 1px solid var(--fn-border); vertical-align: middle; }
[b-r01fttt8cg] .qdf-fn tr:last-child td { border-bottom: none; }
.qdf-mono[b-r01fttt8cg] { font-family: var(--fn-font-mono); }
.qdf-tk[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-weight: 700; color: var(--fn-text); }
.qdf-comp[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-weight: 700; color: var(--fn-success); }
.qdf-fam[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 9.5px; color: var(--fn-text-tertiary); }
[b-r01fttt8cg] .qdf-fac { display: flex; flex-direction: column; gap: 3px; min-width: 74px; }
[b-r01fttt8cg] .qdf-fac .qdf-bar { width: 74px; }
[b-r01fttt8cg] .qdf-fv { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-secondary); }

/* ---------- Analyst (blend rows) ---------- */
.qdf-blend[b-r01fttt8cg] { display: flex; flex-direction: column; gap: 12px; }
.qdf-brow[b-r01fttt8cg] { display: grid; grid-template-columns: 40px minmax(64px, 1fr) repeat(3, 58px) 48px 58px minmax(150px, 1.9fr); align-items: center; gap: 10px; padding: 14px 16px; }
.qdf-brow > *[b-r01fttt8cg] { min-width: 0; }
.qdf-brow.qdf-top[b-r01fttt8cg] { border: 1px solid var(--fn-success); box-shadow: 0 0 0 1px var(--fn-success-soft); }
.qdf-rk[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 20px; font-weight: 700; color: var(--fn-text-secondary); }
.qdf-brow.qdf-top .qdf-rk[b-r01fttt8cg] { color: var(--fn-success); }
.qdf-nm[b-r01fttt8cg] { font-weight: 700; color: var(--fn-text); }
.qdf-nm small[b-r01fttt8cg] { display: block; font-family: var(--fn-font-mono); font-weight: 400; color: var(--fn-text-tertiary); font-size: 11px; }
.qdf-cell[b-r01fttt8cg] { text-align: center; }
.qdf-ck[b-r01fttt8cg] { font-size: 10px; letter-spacing: 0.6px; text-transform: uppercase; color: var(--fn-text-tertiary); }
.qdf-chip[b-r01fttt8cg] { display: inline-block; margin-top: 5px; font-family: var(--fn-font-mono); font-weight: 700; font-size: 15px; padding: 5px 0; border-radius: var(--fn-radius-sm); width: 54px; background: var(--fn-input-bg); }
.qdf-chip.qdf-q[b-r01fttt8cg] { color: var(--fn-success); }
.qdf-chip.qdf-c[b-r01fttt8cg] { color: var(--fn-warning); }
.qdf-chip.qdf-bl[b-r01fttt8cg] { color: var(--fn-text); background: var(--fn-surface-alt); }
[b-r01fttt8cg] .qdf-delta { font-weight: 700; font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); }
[b-r01fttt8cg] .qdf-delta.qdf-up { color: var(--fn-success); }
[b-r01fttt8cg] .qdf-delta.qdf-down { color: var(--fn-danger); }
.qdf-qr[b-r01fttt8cg] { font-family: var(--fn-font-mono); color: var(--fn-text-secondary); text-align: center; }
.qdf-anote[b-r01fttt8cg] { font-size: 11px; color: var(--fn-text-secondary); line-height: 1.4; overflow-wrap: anywhere; }
.qdf-chip[b-r01fttt8cg] { width: 100%; max-width: 58px; }

/* ---------- Monte Carlo ---------- */
.qdf-mc[b-r01fttt8cg] { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.qdf-m[b-r01fttt8cg] { padding: 14px 14px; border-top: 2px solid var(--fn-border); }
.qdf-m.qdf-ok[b-r01fttt8cg] { border-top-color: var(--fn-success); }
.qdf-m.qdf-warn[b-r01fttt8cg] { border-top-color: var(--fn-warning); }
.qdf-m.qdf-info[b-r01fttt8cg] { border-top-color: var(--fn-info); }
.qdf-m-k[b-r01fttt8cg] { font-size: 10.5px; color: var(--fn-text-tertiary); }
.qdf-m-b[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 26px; font-weight: 700; margin-top: 4px; color: var(--fn-text); }
.qdf-m.qdf-ok .qdf-m-b[b-r01fttt8cg] { color: var(--fn-success); }
.qdf-m.qdf-warn .qdf-m-b[b-r01fttt8cg] { color: var(--fn-warning); }
.qdf-m.qdf-info .qdf-m-b[b-r01fttt8cg] { color: var(--fn-info); }
.qdf-m-n[b-r01fttt8cg] { font-size: 10.5px; color: var(--fn-text-tertiary); margin-top: 4px; }
.qdf-flag[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 9px; letter-spacing: 0.4px; text-transform: uppercase; color: var(--fn-text-tertiary); border: 1px solid var(--fn-border-strong); border-radius: var(--fn-radius-pill); padding: 1px 6px; display: inline-block; margin-top: 6px; }
.qdf-cloud[b-r01fttt8cg] { margin-top: 14px; height: 140px; padding: 8px; }
[b-r01fttt8cg] .qdf-cloud-svg { width: 100%; height: 100%; }
[b-r01fttt8cg] .qdf-cloud-band { fill: var(--fn-info-soft); stroke: none; }
[b-r01fttt8cg] .qdf-cloud-median { fill: none; stroke: var(--fn-info); stroke-width: 0.6; }

/* ---------- Output seam ---------- */
.qdf-seam[b-r01fttt8cg] { margin: 30px 0 0; }
.qdf-seam h3[b-r01fttt8cg] { font-size: 13px; font-weight: 600; color: var(--fn-text-secondary); text-transform: uppercase; letter-spacing: 0.6px; margin-bottom: 12px; }
.qdf-flow[b-r01fttt8cg] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; font-size: 12.5px; }
.qdf-step[b-r01fttt8cg] { padding: 8px 14px; border-radius: var(--fn-radius); border: 1px solid var(--fn-border-strong); background: var(--fn-bg-alt); color: var(--fn-text); }
.qdf-step small[b-r01fttt8cg] { color: var(--fn-text-tertiary); }
.qdf-arr[b-r01fttt8cg] { color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); }
.qdf-step.qdf-gate[b-r01fttt8cg] { border-color: var(--fn-warning); color: var(--fn-warning); }

/* ---------- Fusion tab: FusedDeploymentDecision cards (Slice F4) ---------- */
.qfus[b-r01fttt8cg] { padding: 0; overflow: hidden; margin-bottom: 16px; }
.qfus-top[b-r01fttt8cg] { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 14px 18px; border-bottom: 1px solid var(--fn-border); }
.qfus-sym[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-weight: 700; color: var(--fn-cat-blue); font-size: 14px; }
.qfus-isin[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-secondary); margin-left: 8px; }
/* Flat, compact ISIN/WKN copy inside the fusion identity (override the boxed detail look, only here) */
.qfus-id[b-r01fttt8cg]  .isin-copy { background: none; border: none; border-radius: 0; padding: 0; gap: 3px; font-size: 11px; }
.qfus-id[b-r01fttt8cg]  .isin-val { font-size: 11px; }
.qfus-id[b-r01fttt8cg]  .copy-mini { width: 16px; height: 16px; border: none; border-radius: 4px; }
.qfus-id[b-r01fttt8cg]  .copy-mini svg, .qfus-id[b-r01fttt8cg]  .copy-mini [data-lucide] { width: 12px; height: 12px; }
.qfus-hero[b-r01fttt8cg] { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; background: var(--fn-accent-soft); }
.qfus-hk[b-r01fttt8cg] { font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--fn-text-tertiary); }
.qfus-hv[b-r01fttt8cg] { font-size: 18px; font-weight: 600; margin-top: 3px; }
.qfus-hv.qfus-paper[b-r01fttt8cg] { color: var(--fn-warning); }
.qfus-hv.qfus-defensive[b-r01fttt8cg] { color: var(--fn-warning); }
.qfus-hv.qfus-notrade[b-r01fttt8cg] { color: var(--fn-danger); }
.qfus-hv.qfus-live[b-r01fttt8cg] { color: var(--fn-success); }
.qfus-hero-tags[b-r01fttt8cg] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.qfus-pill[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: var(--fn-radius-pill); white-space: nowrap; }
.qfus-calib[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: var(--fn-radius-pill); border: 1px solid var(--fn-border-strong); color: var(--fn-text-secondary); white-space: nowrap; }
.qfus-calib-on[b-r01fttt8cg] { border-color: var(--fn-accent-line); color: var(--fn-primary); }
.qfus-pill.qfus-paper[b-r01fttt8cg] { background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); color: var(--fn-warning); }
.qfus-pill.qfus-defensive[b-r01fttt8cg] { background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); color: var(--fn-warning); }
.qfus-pill.qfus-notrade[b-r01fttt8cg] { background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); color: var(--fn-danger); }
.qfus-pill.qfus-live[b-r01fttt8cg] { background: var(--fn-success-soft); border: 1px solid var(--fn-success); color: var(--fn-success); }
.qfus-metrics[b-r01fttt8cg] { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--fn-border); }
.qfus-m[b-r01fttt8cg] { padding: 12px 16px; border-right: 1px solid var(--fn-border); }
.qfus-m:last-child[b-r01fttt8cg] { border-right: none; }
.qfus-mk[b-r01fttt8cg] { font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--fn-text-tertiary); }
.qfus-mv[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 17px; font-weight: 600; margin-top: 4px; }
.qfus-mv.qfus-muted[b-r01fttt8cg] { color: var(--fn-text-tertiary); font-size: 13px; }
.qfus-mv.qfus-zero[b-r01fttt8cg] { color: var(--fn-danger); }
.qfus-mv .qdf-den[b-r01fttt8cg] { font-size: 12px; color: var(--fn-text-tertiary); font-weight: 400; }
.qfus-panels[b-r01fttt8cg] { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--fn-border); border-top: 1px solid var(--fn-border); }
.qfus-panel[b-r01fttt8cg] { background: var(--fn-bg-alt); padding: 14px 16px; }
.qfus-ph[b-r01fttt8cg] { font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--fn-text-tertiary); margin-bottom: 10px; display: flex; justify-content: space-between; }
.qfus-cold-tag[b-r01fttt8cg] { font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); text-transform: none; letter-spacing: 0; }
.qfus-kv[b-r01fttt8cg] { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; font-size: 12.5px; color: var(--fn-text-secondary); border-bottom: 1px dashed var(--fn-border); }
.qfus-kv:last-child[b-r01fttt8cg] { border-bottom: none; }
.qfus-kv span:last-child[b-r01fttt8cg] { font-family: var(--fn-font-mono); color: var(--fn-text); }
.qfus-edge[b-r01fttt8cg] { margin: 8px 0; }
.qfus-erow[b-r01fttt8cg] { display: flex; justify-content: space-between; font-size: 12.5px; margin-bottom: 4px; color: var(--fn-text-secondary); }
.qfus-ew[b-r01fttt8cg] { font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); }
.qfus-bar[b-r01fttt8cg] { height: 7px; border-radius: var(--fn-radius-pill); background: var(--fn-input-bg); overflow: hidden; }
.qfus-bar > span[b-r01fttt8cg] { display: block; height: 100%; border-radius: var(--fn-radius-pill); background: var(--fn-primary); }
.qfus-bar.qfus-cold > span[b-r01fttt8cg] { background: var(--fn-text-tertiary); }
.qfus-formula[b-r01fttt8cg] { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 18px; border-top: 1px solid var(--fn-border); background: var(--fn-bg-muted); font-family: var(--fn-font-mono); font-size: 12.5px; flex-wrap: wrap; }
.qfus-fx[b-r01fttt8cg] { color: var(--fn-text-secondary); }
.qfus-fr[b-r01fttt8cg] { color: var(--fn-primary); font-weight: 600; font-size: 15px; }
.qfus-fr.qfus-zero[b-r01fttt8cg] { color: var(--fn-danger); }
.qfus-prov[b-r01fttt8cg] { padding: 12px 18px; border-top: 1px solid var(--fn-border); font-size: 12.5px; color: var(--fn-text-secondary); }
.qfus-provl[b-r01fttt8cg] { text-transform: uppercase; letter-spacing: 0.5px; color: var(--fn-text-tertiary); font-size: 11px; margin-right: 8px; }
@media (max-width: 760px) {
    .qfus-metrics[b-r01fttt8cg] { grid-template-columns: repeat(2, 1fr); }
    .qfus-panels[b-r01fttt8cg] { grid-template-columns: 1fr; }
}

/* ---------- F6: live arm banner + per-candidate order controls ---------- */
.qfus-arm[b-r01fttt8cg] { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 16px; border-radius: var(--fn-radius); border: 1px solid var(--fn-border-strong); margin-bottom: 12px; flex-wrap: wrap; }
.qfus-arm-off[b-r01fttt8cg] { background: var(--fn-bg-alt); }
.qfus-arm-on[b-r01fttt8cg] { background: var(--fn-danger-soft); border-color: var(--fn-danger); }
.qfus-arm-state[b-r01fttt8cg] { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.qfus-arm-dot[b-r01fttt8cg] { width: 10px; height: 10px; border-radius: var(--fn-radius-pill); background: var(--fn-text-tertiary); }
.qfus-arm-on .qfus-arm-dot[b-r01fttt8cg] { background: var(--fn-danger); }
.qfus-arm-label[b-r01fttt8cg] { color: var(--fn-text); }
.qfus-arm-meta[b-r01fttt8cg] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-secondary); }
.qfus-btn-arm[b-r01fttt8cg] { background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); color: var(--fn-warning); }
.qfus-btn-stop[b-r01fttt8cg] { background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); color: var(--fn-danger); }
.qfus-order[b-r01fttt8cg] { display: flex; align-items: center; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--fn-border); flex-wrap: wrap; }
.qfus-order-input[b-r01fttt8cg] { max-width: 260px; }
.qfus-btn-buy[b-r01fttt8cg] { background: var(--fn-success-soft); border: 1px solid var(--fn-success); color: var(--fn-success); }
.qfus-btn-sell[b-r01fttt8cg] { background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); color: var(--fn-danger); }
.qfus-order-msg[b-r01fttt8cg] { font-size: 12.5px; font-family: var(--fn-font-mono); }
.qfus-order-msg.qfus-ok[b-r01fttt8cg] { color: var(--fn-success); }
.qfus-order-msg.qfus-blocked[b-r01fttt8cg] { color: var(--fn-warning); }

/* Output seam: candidate flow left, confirm action right-aligned on the same row */
.qdf-seam-row[b-r01fttt8cg] { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-top: 8px; }
.qdf-seam-row .qdf-flow[b-r01fttt8cg] { flex: 1 1 auto; margin-top: 0; }
.qdf-seam-btn[b-r01fttt8cg] { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; align-self: center; }
.qdf-seam-btn svg[b-r01fttt8cg] { width: 16px; height: 16px; }
/* /Components/QuantSimulation/QuantSimulationBoardPage.razor.rz.scp.css */
/* Behavioral Lab board — tokens-only. Page = --fn-bg, tiles = --fn-bg-alt, header band = --fn-bg-muted. */
.bl-page[b-f0zb5fk8a4] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    color: var(--fn-text);
    /* Boden über dem LogPanel — wie .sim-page (Referenz Trading Simulation). */
    padding-bottom: 32px;
}

.bl-scroll[b-f0zb5fk8a4] {
    /* Flex-Spalte, damit .bl-frame den Platz bis zum Dock füllen kann (kein 100vh-Deckel). */
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 22px 26px 24px;
}

.bl-plus-ico[b-f0zb5fk8a4] { font-size: 14px; }

.bl-head h1[b-f0zb5fk8a4] {
    font-size: 22px;
    margin: 0 0 4px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.bl-eyebrow[b-f0zb5fk8a4] {
    font-size: 12px;
    font-weight: 600;
    color: var(--fn-text-secondary);
    text-transform: uppercase;
    letter-spacing: .6px;
}

.bl-lead[b-f0zb5fk8a4] {
    margin: 0 0 18px;
    max-width: 760px;
    font-size: 13.5px;
    color: var(--fn-text-secondary);
}

/* Header-Aktion „Alle löschen" + Bestätigungs-Modal (additiv, tokens-only). */
.bl-head[b-f0zb5fk8a4] { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.bl-head-l[b-f0zb5fk8a4] { min-width: 0; }
.bl-clear[b-f0zb5fk8a4] {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; gap: 7px;
    font: inherit; font-size: 12.5px; font-weight: var(--fn-font-weight-medium);
    color: var(--fn-danger);
    background: var(--fn-danger-soft);
    border: var(--fn-border-width) solid var(--fn-danger);
    border-radius: 9px; padding: 8px 13px; cursor: pointer;
    transition: background .14s, color .14s;
}
.bl-clear:hover[b-f0zb5fk8a4] { background: var(--fn-danger); color: var(--fn-on-primary); }
.bl-clear .lucide[b-f0zb5fk8a4] { width: 15px; height: 15px; }

.bl-scrim[b-f0zb5fk8a4] {
    position: fixed; inset: 0; z-index: 1000;
    display: flex; align-items: center; justify-content: center; padding: 20px;
    background: var(--fn-shadow-hover);
}
.bl-dialog[b-f0zb5fk8a4] {
    width: 430px; max-width: 100%;
    background: var(--fn-bg-alt);
    border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: 14px; overflow: hidden;
    box-shadow: var(--fn-elevation-3);
}
.bl-dh[b-f0zb5fk8a4] { display: flex; align-items: center; gap: 11px; padding: 16px 18px; border-bottom: var(--fn-border-width) solid var(--fn-border); }
.bl-dic[b-f0zb5fk8a4] {
    width: 34px; height: 34px; flex: 0 0 34px; border-radius: 9px;
    background: var(--fn-danger-soft); color: var(--fn-danger);
    display: flex; align-items: center; justify-content: center;
}
.bl-dic .lucide[b-f0zb5fk8a4] { width: 18px; height: 18px; }
.bl-dh h3[b-f0zb5fk8a4] { margin: 0; font-size: 15px; color: var(--fn-text); }
.bl-db[b-f0zb5fk8a4] { padding: 16px 18px; font-size: 13px; color: var(--fn-text-secondary); }
.bl-db b[b-f0zb5fk8a4] { color: var(--fn-text); }
.bl-dwarn[b-f0zb5fk8a4] { margin-top: 10px; font-size: 12px; color: var(--fn-danger); display: inline-flex; align-items: center; gap: 7px; }
.bl-dwarn .lucide[b-f0zb5fk8a4] { width: 14px; height: 14px; }
.bl-df[b-f0zb5fk8a4] { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 18px; border-top: var(--fn-border-width) solid var(--fn-border); }
.bl-dcancel[b-f0zb5fk8a4] {
    background: var(--fn-bg-muted); border: var(--fn-border-width) solid var(--fn-border-strong); color: var(--fn-text);
    border-radius: 8px; padding: 8px 14px; font: inherit; font-size: 12.5px; cursor: pointer;
}
.bl-dconfirm[b-f0zb5fk8a4] {
    background: var(--fn-danger); border: 0; color: var(--fn-on-primary); font-weight: var(--fn-font-weight-bold);
    border-radius: 8px; padding: 8px 14px; font: inherit; font-size: 12.5px; cursor: pointer;
    display: inline-flex; align-items: center; gap: 7px;
}
.bl-dconfirm .lucide[b-f0zb5fk8a4] { width: 15px; height: 15px; }

/* Tile delete (trash) — own runs only; inline confirm to avoid accidental loss. Tokens-only. */
.bl-del[b-f0zb5fk8a4] {
    position: absolute;
    top: 8px;
    right: 8px;
    display: inline-flex;
    border: none;
    background: transparent;
    color: var(--fn-text-tertiary);
    padding: 3px;
    border-radius: 6px;
    cursor: pointer;
    line-height: 0;
}
.bl-del:hover[b-f0zb5fk8a4] { color: var(--fn-danger); background: var(--fn-danger-soft); }
.bl-del svg[b-f0zb5fk8a4] { width: 15px; height: 15px; }

.bl-del-confirm[b-f0zb5fk8a4] {
    position: absolute;
    top: 6px;
    right: 6px;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border-strong);
    border-radius: 8px;
    padding: 3px 5px;
}
.bl-del-q[b-f0zb5fk8a4] { font-size: 10.5px; color: var(--fn-text-secondary); }
.bl-del-yes[b-f0zb5fk8a4],
.bl-del-no[b-f0zb5fk8a4] {
    display: inline-flex;
    border: none;
    background: transparent;
    padding: 2px;
    border-radius: 5px;
    cursor: pointer;
    line-height: 0;
}
.bl-del-yes[b-f0zb5fk8a4] { color: var(--fn-danger); }
.bl-del-no[b-f0zb5fk8a4] { color: var(--fn-text-secondary); }
.bl-del-yes:hover[b-f0zb5fk8a4] { background: var(--fn-danger-soft); }
.bl-del-no:hover[b-f0zb5fk8a4] { background: var(--fn-bg-alt); color: var(--fn-text); }
.bl-del-yes svg[b-f0zb5fk8a4],
.bl-del-no svg[b-f0zb5fk8a4] { width: 14px; height: 14px; }

.bl-ttl[b-f0zb5fk8a4] {
    font-weight: 700;
    font-size: 14px;
    padding-right: 22px;
}

.bl-tk[b-f0zb5fk8a4] {
    font-family: var(--mono, ui-monospace), monospace;
    font-size: 11px;
    color: var(--fn-text-tertiary);
    font-weight: 400;
}

.bl-st[b-f0zb5fk8a4] {
    font-size: 11.5px;
    display: flex;
    align-items: center;
    gap: 7px;
}

.bl-dot[b-f0zb5fk8a4] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
}

.bl-st-queued[b-f0zb5fk8a4] { color: var(--fn-text-tertiary); }
.bl-st-running[b-f0zb5fk8a4] { color: var(--fn-primary); }
.bl-st-done[b-f0zb5fk8a4] { color: var(--fn-success); }
.bl-st-failed[b-f0zb5fk8a4] { color: var(--fn-danger); }
.bl-st-running .bl-dot[b-f0zb5fk8a4] { animation: bl-pulse-b-f0zb5fk8a4 1s infinite; }

@keyframes bl-pulse-b-f0zb5fk8a4 { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }

.bl-bar[b-f0zb5fk8a4] {
    height: 7px;
    border-radius: 99px;
    background: var(--fn-bg-muted);
    overflow: hidden;
}

.bl-bar > i[b-f0zb5fk8a4] {
    display: block;
    height: 100%;
    background: var(--fn-primary);
    border-radius: 99px;
    transition: width .4s ease;
}

.bl-pct[b-f0zb5fk8a4] {
    font-size: 11px;
    color: var(--fn-text-secondary);
    font-variant-numeric: tabular-nums;
}

.bl-fail[b-f0zb5fk8a4] {
    font-size: 11.5px;
    color: var(--fn-danger);
}

.bl-retry[b-f0zb5fk8a4] {
    align-self: flex-start;
    margin-top: auto;
    border: 1px solid var(--fn-border);
    background: var(--fn-bg-muted);
    color: var(--fn-text);
    border-radius: 8px;
    padding: 4px 10px;
    font-size: 11.5px;
    cursor: pointer;
}

.bl-up[b-f0zb5fk8a4] { color: var(--fn-success) !important; }
.bl-down[b-f0zb5fk8a4] { color: var(--fn-danger) !important; }

/* + New analysis tile */

.bl-empty[b-f0zb5fk8a4] {
    color: var(--fn-text-tertiary);
    font-size: 13px;
    padding: 16px 4px;
}

.bl-disclaimer[b-f0zb5fk8a4] {
    margin-top: 18px;
    padding: 11px 14px;
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: 10px;
    font-size: 11.5px;
    color: var(--fn-text-secondary);
}

/* ===== Master-Detail: Detail im festen Rahmen, Leiste unten angedockt (kein Springen) ===== */
.bl-det-bar[b-f0zb5fk8a4] { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.bl-det-crumb[b-f0zb5fk8a4] { font-size: 13px; color: var(--fn-text-secondary); }
.bl-det-crumb b[b-f0zb5fk8a4] { color: var(--fn-text); }

.bl-frame[b-f0zb5fk8a4] {
    display: flex;
    flex-direction: column;
    /* KEIN 100vh-Deckel mehr (Niko-Befund 06.07.: Dock rutschte unter die Bildschirmkante):
       das Detail füllt flexibel den Platz ZWISCHEN Detail-Leiste und Kachel-Dock;
       Inhalt scrollt in .bl-det-main. Boden für sehr kurze Schirme via min-height. */
    /* Basis 0 (nicht auto): der Rahmen nimmt den VERFÜGBAREN Platz, nicht die Inhaltshöhe —
       sonst wächst er mit dem Chart/Log über den Viewport und schiebt das Dock nach unten. */
    flex: 1 1 0;
    min-height: 320px;
    overflow: hidden;
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border);
    border-radius: 14px;
}
.bl-det-main[b-f0zb5fk8a4] { flex: 1 1 auto; overflow-y: auto; padding: 18px 20px; }

.bl-det-status[b-f0zb5fk8a4] { display: flex; flex-direction: column; gap: 12px; max-width: 420px; }
.bl-bar-lg[b-f0zb5fk8a4] { height: 10px; }

.bl-scard.done[b-f0zb5fk8a4] { border-left-color: var(--fn-success); }
.bl-scard.running[b-f0zb5fk8a4] { border-left-color: var(--fn-primary); }
.bl-scard.queued[b-f0zb5fk8a4] { border-left-color: var(--fn-text-tertiary); }
.bl-scard.failed[b-f0zb5fk8a4] { border-left-color: var(--fn-danger); }
/* /Components/QuantSimulation/QuantSimulationPage.razor.rz.scp.css */
/* Quant Simulation builder — tokens-only, surface roles: page = --fn-bg, cards = --fn-bg-alt,
   header band = --fn-bg-muted. The result panel lives in QuantSimulationResult. No raw hex/rgb. */
.qs-page[b-o8pine3cjp] {
    padding: 22px 26px 40px;
    color: var(--fn-text);
}

.qs-head h1[b-o8pine3cjp] {
    font-size: 22px;
    margin: 0 0 4px;
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.qs-eyebrow[b-o8pine3cjp] {
    font-size: 12px;
    font-weight: 600;
    color: var(--fn-text-secondary);
    text-transform: uppercase;
    letter-spacing: .6px;
}

.qs-lead[b-o8pine3cjp] {
    margin: 0 0 18px;
    max-width: 760px;
    font-size: 13.5px;
    color: var(--fn-text-secondary);
    line-height: 1.55;
}

.qs-grid[b-o8pine3cjp] {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 18px;
    align-items: start;
}

.qs-card[b-o8pine3cjp] {
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border);
    border-radius: 12px;
    padding: 16px 18px;
}

.qs-card h2[b-o8pine3cjp] {
    font-size: 14px;
    margin: 0 0 14px;
    color: var(--fn-text);
}

/* ---- Builder ---- */
.qs-field[b-o8pine3cjp] {
    display: block;
    margin-bottom: 14px;
}

.qs-field > span[b-o8pine3cjp] {
    display: block;
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    margin-bottom: 5px;
}

.qs-field input[type="text"][b-o8pine3cjp],
.qs-field input[type="number"][b-o8pine3cjp],
.qs-field select[b-o8pine3cjp] {
    width: 100%;
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: 8px;
    color: var(--fn-text);
    padding: 8px 10px;
    font-size: 13px;
}

.qs-field-years input[b-o8pine3cjp] {
    width: 90px;
}

.qs-exposure[b-o8pine3cjp] {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.qs-exp-row[b-o8pine3cjp] {
    display: grid;
    grid-template-columns: 84px 1fr 48px;
    align-items: center;
    gap: 10px;
}

.qs-exp-row input[type="range"][b-o8pine3cjp] {
    width: 100%;
    accent-color: var(--fn-primary);
}

.qs-exp-val[b-o8pine3cjp] {
    font-size: 12px;
    color: var(--fn-text);
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.qs-pill[b-o8pine3cjp] {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 700;
    border-radius: 999px;
    padding: 2px 9px;
    white-space: nowrap;
}

.qs-calm[b-o8pine3cjp] { color: var(--fn-success); background: var(--fn-success-soft); }
.qs-neutral[b-o8pine3cjp] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.qs-stressed[b-o8pine3cjp] { color: var(--fn-danger); background: var(--fn-danger-soft); }

.qs-run[b-o8pine3cjp] {
    width: 100%;
    margin-top: 4px;
    background: var(--fn-primary);
    color: var(--fn-on-primary);
    border: none;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.qs-run:hover[b-o8pine3cjp] { background: var(--fn-primary-hover); }
.qs-run:disabled[b-o8pine3cjp] { opacity: .6; cursor: default; }

.qs-batch[b-o8pine3cjp] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    font-size: 12.5px;
    color: var(--fn-text-secondary);
    cursor: pointer;
}

.qs-batch input[b-o8pine3cjp] { accent-color: var(--fn-primary); }

/* ---- Misc ---- */
.qs-empty[b-o8pine3cjp] {
    color: var(--fn-text-tertiary);
    font-size: 12.5px;
    padding: 14px 4px;
}

.qs-disclaimer[b-o8pine3cjp] {
    margin-top: 18px;
    padding: 11px 14px;
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: 10px;
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    line-height: 1.5;
}

@media (max-width: 900px) {
    .qs-grid[b-o8pine3cjp] { grid-template-columns: 1fr; }
}
/* /Components/QuantSimulation/QuantSimulationResult.razor.rz.scp.css */
/* Quant Simulation result panel — tokens-only. Shared by the builder (?run=) and the board detail. */
.qs-result-head[b-h6l7rs8v7a] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.qs-result-head h2[b-h6l7rs8v7a] { margin: 0; font-size: 16px; color: var(--fn-text); }

.qs-result-meta[b-h6l7rs8v7a] {
    font-size: 11.5px;
    color: var(--fn-text-tertiary);
    font-variant-numeric: tabular-nums;
}

.qs-metrics[b-h6l7rs8v7a] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}

.qs-metric[b-h6l7rs8v7a] {
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: 10px;
    padding: 10px 12px;
}

.qs-m-l[b-h6l7rs8v7a] {
    display: block;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--fn-text-tertiary);
    margin-bottom: 4px;
}

.qs-m-v[b-h6l7rs8v7a] {
    display: block;
    font-size: 18px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.qs-m-b[b-h6l7rs8v7a] {
    display: block;
    font-size: 11px;
    color: var(--fn-text-secondary);
    margin-top: 2px;
}

.qs-up[b-h6l7rs8v7a] { color: var(--fn-success); }
.qs-down[b-h6l7rs8v7a] { color: var(--fn-danger); }

/* ---- NAV chart ---- */
.qs-nav-head[b-h6l7rs8v7a] {
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    margin-bottom: 6px;
}

.qs-chart[b-h6l7rs8v7a] {
    width: 100%;
    height: 240px;
    display: block;
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: 10px;
}

.qs-line[b-h6l7rs8v7a] {
    fill: none;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.qs-line-strategy[b-h6l7rs8v7a] { stroke: var(--fn-primary); }
.qs-line-benchmark[b-h6l7rs8v7a] { stroke: var(--fn-text-tertiary); stroke-dasharray: 4 3; }
.qs-stress[b-h6l7rs8v7a] { fill: var(--fn-danger); opacity: .08; }

.qs-legend[b-h6l7rs8v7a] {
    display: flex;
    gap: 18px;
    margin-top: 8px;
    font-size: 11.5px;
    color: var(--fn-text-secondary);
}

.qs-legend span[b-h6l7rs8v7a] { display: inline-flex; align-items: center; gap: 6px; }

.qs-sw[b-h6l7rs8v7a] { width: 16px; height: 3px; border-radius: 2px; display: inline-block; }
.qs-sw-strategy[b-h6l7rs8v7a] { background: var(--fn-primary); }
.qs-sw-benchmark[b-h6l7rs8v7a] { background: var(--fn-text-tertiary); height: 0; border-top: 2px dashed var(--fn-text-tertiary); }
.qs-sw-stress[b-h6l7rs8v7a] { background: var(--fn-danger); opacity: .35; height: 12px; width: 12px; }

/* ---- Regime change log (div-based list) ---- */
.qs-log[b-h6l7rs8v7a] { margin-top: 16px; }

.qs-log-title[b-h6l7rs8v7a] {
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    margin-bottom: 6px;
}

.qs-log-row[b-h6l7rs8v7a] {
    display: grid;
    grid-template-columns: 110px 1fr 90px;
    align-items: center;
    gap: 10px;
    padding: 6px 8px;
    border-bottom: 1px solid var(--fn-border);
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
}

.qs-log-headrow[b-h6l7rs8v7a] {
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: .5px;
    border-bottom: 1px solid var(--fn-border-strong);
}

.qs-change[b-h6l7rs8v7a] { display: inline-flex; align-items: center; gap: 8px; }
.qs-arrow[b-h6l7rs8v7a] { color: var(--fn-text-tertiary); }

/* ---- Pills (regime) ---- */
.qs-pill[b-h6l7rs8v7a] {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 700;
    border-radius: 999px;
    padding: 2px 9px;
    white-space: nowrap;
}

.qs-calm[b-h6l7rs8v7a] { color: var(--fn-success); background: var(--fn-success-soft); }
.qs-neutral[b-h6l7rs8v7a] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.qs-stressed[b-h6l7rs8v7a] { color: var(--fn-danger); background: var(--fn-danger-soft); }

.qs-empty[b-h6l7rs8v7a] {
    color: var(--fn-text-tertiary);
    font-size: 12.5px;
    padding: 14px 4px;
}

@media (max-width: 760px) {
    .qs-metrics[b-h6l7rs8v7a] { grid-template-columns: repeat(2, 1fr); }
}
/* /Components/Reasoning/ReasoningPage.razor.rz.scp.css */
/* Erkenntnisse (Reasoning) — tokens-only (keine Hex/rgb), 1:1 zur VORSCHAU-Reasoning-Erkenntnisse. */
/* Module rendern Vollbreite (keine max-width) — STANDARD-Listen-Bauplan / Modul-Flächen. */
.rsn-page[b-8wcfb46f43] { width: 100%; padding: 24px 28px 80px; color: var(--fn-text); }

.rsn-head h1[b-8wcfb46f43] { font-size: 26px; font-weight: 600; margin: 0; letter-spacing: -.01em; }
.rsn-lead[b-8wcfb46f43] { color: var(--fn-text-secondary); font-size: 13.5px; margin: 4px 0 0; }
.rsn-b3[b-8wcfb46f43] {
    display: inline-block; margin-top: 10px; font-size: 11.5px; color: var(--fn-warning);
    background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); border-radius: var(--fn-radius-pill);
    padding: 2px 10px;
}

.rsn-tabs[b-8wcfb46f43] { display: flex; gap: 4px; margin: 22px 0 18px; border-bottom: 1px solid var(--fn-border); }
.rsn-tab[b-8wcfb46f43] {
    padding: 9px 16px; font-size: 14px; color: var(--fn-text-secondary); background: transparent;
    border: none; border-bottom: 2px solid transparent; cursor: pointer; font-family: var(--fn-font);
}
.rsn-tab:hover[b-8wcfb46f43] { color: var(--fn-text); }
.rsn-tab.active[b-8wcfb46f43] { color: var(--fn-text); border-bottom-color: var(--fn-primary); font-weight: 600; }

.rsn-h2[b-8wcfb46f43] { font-size: 16px; font-weight: 600; margin: 22px 0 12px; }
.rsn-count[b-8wcfb46f43] { color: var(--fn-text-tertiary); font-weight: 400; font-size: 13px; }

.rsn-empty[b-8wcfb46f43] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius);
    padding: 18px 20px; color: var(--fn-text-secondary); font-size: 13.5px; margin-bottom: 18px;
}

.rsn-card[b-8wcfb46f43] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius);
    padding: 18px 20px; margin-bottom: 18px; box-shadow: var(--fn-elevation-1);
}
.rsn-card-top[b-8wcfb46f43] { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.rsn-chip[b-8wcfb46f43] {
    font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-secondary);
    background: var(--fn-surface-alt); border: 1px solid var(--fn-border); border-radius: 6px; padding: 2px 8px;
}
.rsn-badge[b-8wcfb46f43] { font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: var(--fn-radius-pill); }
.b-uncal[b-8wcfb46f43] { color: var(--fn-warning); background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); }
.b-prereg[b-8wcfb46f43] { color: var(--fn-primary); background: var(--fn-accent-soft); border: 1px solid var(--fn-accent-line); }
.b-sig[b-8wcfb46f43] { color: var(--fn-success); background: var(--fn-success-soft); border: 1px solid var(--fn-success); }

.rsn-claim[b-8wcfb46f43] { font-size: 15px; font-weight: 600; color: var(--fn-text); margin-bottom: 8px; }
.rsn-isin[b-8wcfb46f43] { font-family: var(--fn-font-mono); font-size: 12px; color: var(--fn-text-tertiary); font-weight: 400; }
.rsn-note[b-8wcfb46f43] { color: var(--fn-text-secondary); font-size: 13.5px; line-height: 1.55; }

.rsn-row[b-8wcfb46f43] { display: grid; grid-template-columns: 150px 1fr; gap: 12px; padding: 8px 0; border-top: 1px solid var(--fn-border); margin-top: 10px; }
.rsn-row .k[b-8wcfb46f43] { color: var(--fn-text-tertiary); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.rsn-row .v[b-8wcfb46f43] { color: var(--fn-text); font-size: 13.5px; }
.rsn-row .v.falsify[b-8wcfb46f43] { color: var(--fn-warning); }

.rsn-ev[b-8wcfb46f43] { margin: 0; padding-left: 18px; }
.rsn-ev li[b-8wcfb46f43] { font-size: 13px; color: var(--fn-text-secondary); margin: 2px 0; }

.rsn-win[b-8wcfb46f43] { font-size: 12.5px; font-family: var(--fn-font-mono); }
.rsn-winrow[b-8wcfb46f43] { display: grid; grid-template-columns: 130px 80px 70px 90px; gap: 12px; padding: 3px 0; color: var(--fn-text-secondary); }
.rsn-winrow .num[b-8wcfb46f43] { text-align: right; }
.rsn-winrow.sig[b-8wcfb46f43] { color: var(--fn-success); }

.rsn-foot[b-8wcfb46f43] {
    display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap;
    margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--fn-border);
    font-size: 11.5px; color: var(--fn-text-tertiary);
}
/* /Components/Seasonality/SeasonalityPage.razor.rz.scp.css */
/* Standalone seasonality area (③). Additive, tokens-only — no raw hex, no inline colors. */
/* padding-bottom reserviert Platz für die fixe Log-Leiste (log-panel.css) — sonst verdeckt sie den
   untersten Seiteninhalt bei ausgeklapptem Zustand, siehe log-panel.css Zeile 7-10. */
.sea-page[b-uc7tflaatu] { padding: 18px 22px; padding-bottom: calc(18px + var(--fn-log-panel-height, 0px) + 12px); }

/* Kopfzeile: Titel links, Suche + Sync rechts — dasselbe Zwei-Zonen-Muster wie
   WatchlistsPage.razor.wl-head/wl-head-l/wl-head-r (Suche ist IMMER am rechten Rand, nie links). */
.sea-head[b-uc7tflaatu] { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.sea-head-l[b-uc7tflaatu] { min-width: 0; }
.sea-head-r[b-uc7tflaatu] { display: flex; align-items: center; gap: 10px; }
.sea-head-r .sea-head-search[b-uc7tflaatu] { flex: 0 1 240px; margin: 0; }
.sea-head h1[b-uc7tflaatu] {
    display: flex; align-items: center; gap: 10px;
    font-size: 20px; margin: 0 0 4px; color: var(--fn-text);
}
.sea-head h1[b-uc7tflaatu]  svg { width: 19px; height: 19px; color: var(--fn-primary); }
.sea-sub[b-uc7tflaatu] { color: var(--fn-text-secondary); font-size: 13px; }

.sea-toolbar[b-uc7tflaatu] { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 14px 0 6px; }
.sea-seg[b-uc7tflaatu] { display: inline-flex; border: 1px solid var(--fn-border); border-radius: 8px; overflow: hidden; }
.sea-seg button[b-uc7tflaatu] {
    font-size: 12px; padding: 6px 12px; border: none; cursor: pointer;
    background: var(--fn-bg-muted); color: var(--fn-text-secondary);
}
.sea-seg button.on[b-uc7tflaatu] { background: var(--fn-accent-soft); color: var(--fn-primary); }
.sea-btn[b-uc7tflaatu] {
    display: inline-flex; align-items: center; gap: 6px; font-size: 12px; padding: 6px 12px;
    border-radius: 8px; border: 1px solid var(--fn-border); background: var(--fn-bg-muted);
    color: var(--fn-text); cursor: pointer;
}
.sea-btn.on[b-uc7tflaatu] { border-color: var(--fn-primary); color: var(--fn-primary); background: var(--fn-accent-soft); }
.sea-btn[b-uc7tflaatu]  svg { width: 13px; height: 13px; }

.sea-section[b-uc7tflaatu] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: 14px; padding: 14px 16px; margin-top: 14px;
}
.sea-section-head[b-uc7tflaatu] { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.sea-section-head h2[b-uc7tflaatu] { font-size: 14px; margin: 0; color: var(--fn-text); }
.sea-section-sub[b-uc7tflaatu] { font-size: 12px; color: var(--fn-text-tertiary); }
.sea-section-tools[b-uc7tflaatu] { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.sea-select[b-uc7tflaatu] {
    font-size: 12px; padding: 5px 10px; border-radius: 8px;
    border: 1px solid var(--fn-border); background: var(--fn-input-bg); color: var(--fn-text);
}
.sea-loading[b-uc7tflaatu], .sea-empty[b-uc7tflaatu] { color: var(--fn-text-secondary); font-size: 13px; padding: 10px 2px; }
.sea-disclaimer[b-uc7tflaatu] {
    font-size: 11px; color: var(--fn-text-tertiary); margin-top: 16px;
    border-top: 1px solid var(--fn-border); padding-top: 10px;
}

.sea-sym[b-uc7tflaatu] { font-weight: 500; color: var(--fn-text); }
.sea-mut[b-uc7tflaatu] { color: var(--fn-text-tertiary); }

.sea-cat[b-uc7tflaatu] {
    display: inline-flex; align-items: center; gap: 6px; padding: 1px 9px; border-radius: 999px;
    font-size: 10.5px; font-weight: 600;
    color: var(--fn-text-secondary); background: var(--fn-bg-muted); border: 1px solid var(--fn-border-strong);
}
.sea-dir[b-uc7tflaatu] { font-size: 11.5px; }
.sea-dir.long[b-uc7tflaatu] { color: var(--fn-success); }
.sea-dir.short[b-uc7tflaatu] { color: var(--fn-danger); }

.sea-soon[b-uc7tflaatu] {
    display: inline-flex; align-items: center; gap: 5px; font-size: 11px;
    color: var(--fn-warning); background: var(--fn-warning-soft); border: 1px solid var(--fn-warning);
    border-radius: 999px; padding: 1px 9px;
}
.sea-new[b-uc7tflaatu] {
    display: inline-flex; align-items: center; gap: 4px; font-size: 10.5px; font-weight: 600;
    color: var(--fn-cat-teal); background: var(--fn-cat-teal-soft); border: 1px solid var(--fn-cat-teal);
    border-radius: 999px; padding: 1px 8px; margin-left: 6px;
}
.sea-new[b-uc7tflaatu]  svg { width: 11px; height: 11px; }

.sea-rel[b-uc7tflaatu] {
    display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: 11px; font-weight: 600;
}
.sea-rel.ok[b-uc7tflaatu] { color: var(--fn-success); background: var(--fn-success-soft); border: 1px solid var(--fn-success); }
.sea-rel.weak[b-uc7tflaatu] { color: var(--fn-warning); background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); }
.sea-rel.noise[b-uc7tflaatu] { color: var(--fn-text-secondary); background: var(--fn-bg-muted); border: 1px solid var(--fn-border); }

/* "+ Watchlist" action + list-picker popover (point 3). Floating menu: border + shadow + z-index. */
.sea-add-cell[b-uc7tflaatu] { position: relative; overflow: visible; }
.sea-add[b-uc7tflaatu] { font-size: 11.5px; padding: 4px 10px; }
.sea-added[b-uc7tflaatu] {
    display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600;
    color: var(--fn-success);
}
.sea-added[b-uc7tflaatu]  svg { width: 13px; height: 13px; }
.sea-picker[b-uc7tflaatu] {
    position: absolute; right: 0; top: calc(100% + 4px); z-index: 30; min-width: 180px;
    display: flex; flex-direction: column; gap: 2px; padding: 6px;
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border-strong);
    border-radius: 10px; box-shadow: 0 8px 24px var(--fn-shadow);
}
.sea-picker-item[b-uc7tflaatu] {
    display: flex; align-items: center; gap: 8px; text-align: left; width: 100%;
    font-size: 12px; padding: 6px 9px; border: none; border-radius: 7px;
    background: transparent; color: var(--fn-text); cursor: pointer;
}
.sea-picker-item:hover[b-uc7tflaatu] { background: var(--fn-bg-muted); }
.sea-picker-item[b-uc7tflaatu]  svg { width: 13px; height: 13px; color: var(--fn-text-secondary); }
.sea-picker-empty[b-uc7tflaatu] { font-size: 11.5px; color: var(--fn-text-tertiary); padding: 6px 9px; }

/* ===== ③ Discovery-Redesign (KONZEPT-Saisonalitaet-Discovery-UX) ===== */

/* Kategorie-Farbe je Kategorie (eine Quelle, durchgängig: Chips, Karten-Akzent, Tabellen-Punkt) */
.sea-c-calendar[b-uc7tflaatu] { --c: var(--fn-primary); }
.sea-c-rebalancing[b-uc7tflaatu] { --c: var(--fn-cat-purple); }
.sea-c-tax[b-uc7tflaatu] { --c: var(--fn-cat-gold); }
.sea-c-holiday[b-uc7tflaatu] { --c: var(--fn-success); }
.sea-c-commodity[b-uc7tflaatu] { --c: var(--fn-cat-orange); }
.sea-c-fomc[b-uc7tflaatu] { --c: var(--fn-cat-pink); }
.sea-c-custom[b-uc7tflaatu] { --c: var(--fn-cat-teal); }

/* Filter-Leiste mit Kategorie-Chips (ersetzt die Listbox) */
.sea-bar[b-uc7tflaatu] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 14px; padding: 12px 14px; margin: 14px 0 6px; }
.sea-chips[b-uc7tflaatu] { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.sea-chip[b-uc7tflaatu] {
    display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; padding: 6px 12px; border-radius: 999px;
    border: 1px solid var(--fn-border-strong); background: var(--fn-bg-muted); color: var(--fn-text-secondary); cursor: pointer;
}
.sea-chip:hover[b-uc7tflaatu] { color: var(--fn-text); }
.sea-chip.on[b-uc7tflaatu] { color: var(--fn-text); border-color: var(--fn-primary); background: var(--fn-accent-soft); }
.sea-chip-dot[b-uc7tflaatu] { width: 8px; height: 8px; border-radius: 50%; background: var(--c, var(--fn-text-tertiary)); }
.sea-chip-n[b-uc7tflaatu] {
    font-family: var(--fn-font-mono, monospace); font-size: 11px; color: var(--fn-text-tertiary);
    background: var(--fn-bg); border: 1px solid var(--fn-border); border-radius: 999px; padding: 0 6px;
}
.sea-bar-row[b-uc7tflaatu] { display: flex; gap: 8px; align-items: center; margin-top: 10px; flex-wrap: wrap; }
.sea-toggle[b-uc7tflaatu] {
    display: inline-flex; align-items: center; gap: 6px; font-size: 12px; padding: 6px 11px; border-radius: 9px;
    border: 1px solid var(--fn-border-strong); background: var(--fn-bg-muted); color: var(--fn-text-secondary); cursor: pointer;
}
.sea-toggle.on[b-uc7tflaatu] { border-color: var(--fn-success); color: var(--fn-success); background: var(--fn-success-soft); }
.sea-toggle[b-uc7tflaatu]  svg { width: 13px; height: 13px; }

/* „Bald relevant" — Opportunity-Karten */
.sea-cards[b-uc7tflaatu] { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.sea-card[b-uc7tflaatu] { position: relative; overflow: visible; background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 14px; padding: 14px 14px 14px 16px; }
.sea-card-acc[b-uc7tflaatu] { position: absolute; left: 0; top: 0; bottom: 0; width: 3px; border-radius: 14px 0 0 14px; background: var(--c, var(--fn-text-tertiary)); }
.sea-card-nm[b-uc7tflaatu] { font-size: 15px; font-weight: 700; margin: 8px 0 2px; color: var(--fn-text); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sea-card-sub[b-uc7tflaatu] { font-size: 11.5px; color: var(--fn-text-secondary); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.sea-card-cat[b-uc7tflaatu] { display: inline-flex; align-items: center; gap: 5px; }
.sea-card-kpis[b-uc7tflaatu] { display: flex; gap: 18px; margin-top: 11px; }
.sea-card-kpi .k[b-uc7tflaatu] { font-size: 9.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--fn-text-tertiary); }
.sea-card-kpi .v[b-uc7tflaatu] { font-family: var(--fn-font-mono, monospace); font-size: 15px; font-weight: 600; color: var(--fn-text); }
.sea-card-kpi .v.pos[b-uc7tflaatu] { color: var(--fn-success); }
.sea-card-cta[b-uc7tflaatu] { margin-top: 12px; }
.sea-card-owned[b-uc7tflaatu] { font-size: 11.5px; color: var(--fn-text-tertiary); }
.sea-add.primary[b-uc7tflaatu] { border-color: var(--fn-primary); color: var(--fn-primary); background: var(--fn-accent-soft); }
.sea-card .sea-soon[b-uc7tflaatu]  svg { width: 12px; height: 12px; }
.sea-more[b-uc7tflaatu] { font-size: 12px; color: var(--fn-text-tertiary); margin-top: 10px; }

/* Bestenliste — Edge-Balken */
.sea-edge[b-uc7tflaatu] { display: inline-flex; align-items: center; gap: 8px; justify-content: flex-end; }
.sea-edge-track[b-uc7tflaatu] { width: 90px; height: 7px; border-radius: 4px; background: var(--fn-bg-muted); overflow: hidden; }
.sea-edge-bar[b-uc7tflaatu] { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--fn-primary), var(--fn-cat-purple)); }
.sea-edge-val[b-uc7tflaatu] { font-family: var(--fn-font-mono, monospace); font-weight: 700; min-width: 30px; text-align: right; color: var(--fn-text); }
/* /Components/Seasonality/SeasonalitySyncButton.razor.rz.scp.css */
/* 1:1 Vorbild WatchlistSyncButton.razor.css (fn-iconbtn-Optik, Tokens-only). Eigenständig gestylt,
   weil Blazor-Scoped-CSS nie aus der Elternseite in diese Kindkomponente hineinreicht. */

.sea-sync-trigger[b-i3fwzev832] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex: none;
    border-radius: var(--fn-radius-sm);
    border: 1px solid var(--fn-border-strong);
    background: transparent;
    color: var(--fn-text-secondary);
    cursor: pointer;
}

.sea-sync-trigger:hover:not(:disabled)[b-i3fwzev832] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
}

.sea-sync-trigger:disabled[b-i3fwzev832] {
    cursor: default;
}

.sea-sync-trigger[b-i3fwzev832]  .fn-icon {
    width: 15px;
    height: 15px;
}

/* Während des Scans dreht der Kreispfeil. */
.sea-sync-run[b-i3fwzev832] {
    color: var(--fn-primary);
    border-color: var(--fn-accent-line);
}

.sea-sync-run[b-i3fwzev832]  .fn-icon {
    animation: sea-sync-rotate-b-i3fwzev832 1s linear infinite;
}

@keyframes sea-sync-rotate-b-i3fwzev832 {
    to { transform: rotate(360deg); }
}
/* /Components/Seasonality/SeasonalityYearSeasonsPanel.razor.rz.scp.css */
.sea-seasons[b-4vg4zup5ko] { margin-bottom: 14px; }

.sea-seasons-grid[b-4vg4zup5ko] {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px;
  margin-bottom: 12px;
}

.sea-seasons-tile[b-4vg4zup5ko] {
  background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius);
  border-left: 3px solid var(--c, var(--fn-text-tertiary)); padding: 12px 14px;
}

.sea-seasons-tile header[b-4vg4zup5ko] { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.sea-seasons-dot[b-4vg4zup5ko] { width: 8px; height: 8px; border-radius: 50%; background: var(--c, var(--fn-text-tertiary)); flex: none; }
.sea-seasons-tile h3[b-4vg4zup5ko] { margin: 0; font-size: 13px; font-weight: var(--fn-font-weight-bold); color: var(--fn-text); }

.sea-seasons-tile.s-spring[b-4vg4zup5ko] { --c: var(--fn-success); }
.sea-seasons-tile.s-summer[b-4vg4zup5ko] { --c: var(--fn-cat-gold); }
.sea-seasons-tile.s-autumn[b-4vg4zup5ko] { --c: var(--fn-cat-orange); }
.sea-seasons-tile.s-winter[b-4vg4zup5ko] { --c: var(--fn-info); }

.sea-seasons-empty[b-4vg4zup5ko] { margin: 0; font-size: 12px; color: var(--fn-text-tertiary); }

.sea-seasons-metrics[b-4vg4zup5ko] { margin: 0; display: flex; flex-direction: column; gap: 5px; }
.sea-seasons-metrics div[b-4vg4zup5ko] { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.sea-seasons-metrics dt[b-4vg4zup5ko] { margin: 0; font-size: 11px; color: var(--fn-text-tertiary); }
.sea-seasons-metrics dd[b-4vg4zup5ko] { margin: 0; font-size: 13px; font-weight: var(--fn-font-weight-bold); color: var(--fn-text); }
.sea-seasons-metrics dd.pos[b-4vg4zup5ko] { color: var(--fn-success); }
.sea-seasons-metrics dd.neg[b-4vg4zup5ko] { color: var(--fn-danger); }
.sea-seasons-n[b-4vg4zup5ko] { margin-left: 5px; font-size: 10.5px; font-weight: 400; color: var(--fn-text-tertiary); }

.sea-seasons-scope[b-4vg4zup5ko] { margin: 0 0 4px; font-size: 11px; color: var(--fn-text-tertiary); }
.sea-seasons-scan[b-4vg4zup5ko] { margin: 0 0 12px; font-size: 11px; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); }

.sea-note-card[b-4vg4zup5ko] {
  position: relative; /* Anker für den schwebenden Bearbeiten-Stift, unten rechts */
  background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius);
  padding: 14px 16px; font-size: 12.5px; color: var(--fn-text-secondary); line-height: 1.6;
}
.sea-note-card h4[b-4vg4zup5ko] {
  font-size: 11px; font-weight: var(--fn-font-weight-bold); letter-spacing: .10em; text-transform: uppercase;
  color: var(--fn-text-tertiary); margin: 0 0 8px; display: flex; align-items: center; gap: 7px;
}
.sea-note-card b[b-4vg4zup5ko], .sea-note-card strong[b-4vg4zup5ko] { color: var(--fn-text); }
.sea-note-card p[b-4vg4zup5ko] { margin: 0 0 8px; }

/* Bemerkungs-Stift (Niko 30.08.2026, endgültige Korrektur): IMMER sichtbar — nur der Rahmen/Hintergrund
   ändert sich, wenn die Maus im Bemerkungsbereich ist. Design-Vorgabe §4a/§4c: "Bearbeiten" ist
   exklusiv pencil/--fn-cat-orange, nie tertiary/primary. */
.sea-note-edit[b-4vg4zup5ko] {
  position: absolute; bottom: 8px; right: 8px; width: 26px; height: 26px;
  display: flex; align-items: center; justify-content: center;
  background: transparent; border: var(--fn-border-width) solid transparent; border-radius: 6px;
  color: var(--fn-cat-orange); cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}
.sea-note-card:hover .sea-note-edit[b-4vg4zup5ko] { border-color: var(--fn-border-strong); background: var(--fn-cat-orange-soft); }
.sea-note-edit[b-4vg4zup5ko]  .fn-icon { width: 14px; height: 14px; }

/* Inline Bearbeiten-Bereich (Vorbild ChartPatternGridDialog .pgd-note-body/.pgd-note-actions). */
.sea-note-edit-body[b-4vg4zup5ko] { display: flex; flex-direction: column; gap: 10px; }
.sea-note-edit-actions[b-4vg4zup5ko] { display: flex; justify-content: flex-end; gap: 8px; }
.sea-note-card p:last-child[b-4vg4zup5ko] { margin-bottom: 0; }
.sea-note-card ul[b-4vg4zup5ko] { margin: 0 0 8px; padding-left: 18px; }
.sea-note-card li[b-4vg4zup5ko] { margin: 3px 0; }
/* /Components/SecurityDetail/FactorProfile.razor.rz.scp.css */
/* Faktor-Profil — proportionale, farbnuancierte Balken. Nur --fn-* Tokens (keine rohen Hex). Die
   Tabelle erbt die geteilte fn-list-Optik; hier nur die Balken/Skala-spezifischen Ergänzungen. */

.fp-axis[b-8znhxwbkas] { color: var(--fn-text); }

.fp-soon[b-8znhxwbkas] {
    font-size: 10px; color: var(--fn-text-tertiary);
    border: var(--fn-border-width) solid var(--fn-border-strong); border-radius: 999px;
    padding: 0 6px; margin-left: 6px; white-space: nowrap;
}

/* Spur (volle Skala 0–100) + proportionale Füllung */
.fp-track[b-8znhxwbkas] {
    position: relative; height: 20px; min-width: 78px;
    background: var(--fn-accent-soft); border-radius: 6px;
}
.fp-fill[b-8znhxwbkas] {
    height: 100%; min-width: 30px; border-radius: 6px;
    display: flex; align-items: center; justify-content: flex-end; padding-right: 7px;
    color: var(--fn-on-primary); font-weight: var(--fn-font-weight-bold);
    font-family: var(--fn-font-mono); font-size: 11px;
}
/* 5-stufige Farbnuance je Rang (zusätzlich zur Länge) */
.fp-fill.s5[b-8znhxwbkas] { background: var(--fn-success); }
.fp-fill.s4[b-8znhxwbkas] { background: var(--fn-primary); }
.fp-fill.s3[b-8znhxwbkas] { background: var(--fn-info); }
.fp-fill.s2[b-8znhxwbkas] { background: var(--fn-warning); }
.fp-fill.s1[b-8znhxwbkas] { background: var(--fn-danger); }

.fp-na[b-8znhxwbkas] { color: var(--fn-text-tertiary); }

.fp-scale[b-8znhxwbkas] {
    display: flex; align-items: center; gap: 5px; margin-top: 10px;
    font-size: 11px; color: var(--fn-text-tertiary);
}
.fp-scale i[b-8znhxwbkas] { width: 22px; height: 9px; border-radius: 3px; display: inline-block; }
.fp-scale i.s1[b-8znhxwbkas] { background: var(--fn-danger); }
.fp-scale i.s2[b-8znhxwbkas] { background: var(--fn-warning); }
.fp-scale i.s3[b-8znhxwbkas] { background: var(--fn-info); }
.fp-scale i.s4[b-8znhxwbkas] { background: var(--fn-primary); }
.fp-scale i.s5[b-8znhxwbkas] { background: var(--fn-success); }
.fp-scale-note[b-8znhxwbkas] { margin-left: 6px; }

.fp-note[b-8znhxwbkas] { margin-top: 8px; font-size: 11.5px; color: var(--fn-text-tertiary); }
/* /Components/SecurityDetail/PriceHistoryTab.razor.rz.scp.css */
/* Kurshistorie-Tab — nur --fn-*-Tokens; das Grundraster kommt aus der globalen fn-list.css. */

.ph-empty[b-wysn7zqhyg] {
    padding: 26px 4px;
    color: var(--fn-text-tertiary);
    font-size: 13px;
}

.ph-toolbar[b-wysn7zqhyg] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.ph-titles[b-wysn7zqhyg] {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
}

.ph-titles h2[b-wysn7zqhyg] {
    margin: 0;
    font-size: 15px;
    font-weight: var(--fn-font-weight-medium);
}

.ph-range[b-wysn7zqhyg] {
    color: var(--fn-text-tertiary);
    font-size: 12px;
    font-family: var(--fn-font-mono);
}

.ph-spacer[b-wysn7zqhyg] {
    flex: 1 1 auto;
}

.grid-card[b-wysn7zqhyg] {
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    overflow: hidden;
}

.foot[b-wysn7zqhyg] {
    padding: 9px 14px;
    font-size: 11.5px;
    color: var(--fn-text-tertiary);
    display: flex;
    justify-content: space-between;
    border-top: 1px solid var(--fn-border);
}

/* Zellen-Feinheiten (das Grundraster + .num/.fn-delta liefert fn-list.css) */
table.fn-list td.date[b-wysn7zqhyg] {
    font-family: var(--fn-font-mono);
    color: var(--fn-text);
}

table.fn-list td.close[b-wysn7zqhyg] {
    font-weight: var(--fn-font-weight-bold);
}

table.fn-list td.src[b-wysn7zqhyg] {
    font-size: 11px;
    color: var(--fn-text-tertiary);
}

table.fn-list td .fn-delta[b-wysn7zqhyg],
table.fn-list td.fn-delta[b-wysn7zqhyg] {
    font-family: var(--fn-font-mono);
}

table.fn-list td.pos[b-wysn7zqhyg],
table.fn-list td .pos[b-wysn7zqhyg] {
    color: var(--fn-success);
}

table.fn-list td.neg[b-wysn7zqhyg],
table.fn-list td .neg[b-wysn7zqhyg] {
    color: var(--fn-danger);
}

/* Gruppierung Jahr → Monat */
tr.grp-year[b-wysn7zqhyg] {
    cursor: pointer;
}

    tr.grp-year td[b-wysn7zqhyg] {
        background: var(--fn-bg-alt);
        border-bottom: 1px solid var(--fn-border-strong);
        padding: 9px 14px;
        font-size: 13px;
        color: var(--fn-text);
    }

    tr.grp-year .yr-meta[b-wysn7zqhyg] {
        color: var(--fn-text-tertiary);
        font-weight: var(--fn-font-weight-regular);
        font-family: var(--fn-font-mono);
        font-size: 11px;
        margin-left: 8px;
    }

    tr.grp-year .yr-chev[b-wysn7zqhyg] {
        float: right;
        color: var(--fn-text-tertiary);
    }

    tr.grp-year .yr-chev svg[b-wysn7zqhyg] {
        width: 13px;
        height: 13px;
    }

tr.grp-month[b-wysn7zqhyg] {
    cursor: pointer;
}

    tr.grp-month td[b-wysn7zqhyg] {
        background: var(--fn-bg-muted);
        padding: 7px 14px 7px 26px;
    }

.grp-month-inner[b-wysn7zqhyg] {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 12px;
}

    .grp-month-inner .chev[b-wysn7zqhyg] {
        display: inline-flex;
        color: var(--fn-text-tertiary);
        flex: 0 0 13px;
    }

        .grp-month-inner .chev svg[b-wysn7zqhyg] {
            width: 13px;
            height: 13px;
        }

    .grp-month-inner .m-name[b-wysn7zqhyg] {
        font-weight: var(--fn-font-weight-medium);
        color: var(--fn-text);
    }

    .grp-month-inner .m-meta[b-wysn7zqhyg] {
        color: var(--fn-text-tertiary);
        font-family: var(--fn-font-mono);
        font-size: 11px;
    }

    .grp-month-inner .m-chg[b-wysn7zqhyg] {
        margin-left: auto;
        font-family: var(--fn-font-mono);
        font-size: 11.5px;
    }

        .grp-month-inner .m-chg.pos[b-wysn7zqhyg] {
            color: var(--fn-success);
        }

        .grp-month-inner .m-chg.neg[b-wysn7zqhyg] {
            color: var(--fn-danger);
        }

tr.data td:first-child[b-wysn7zqhyg] {
    padding-left: 26px;
}

/* Basis-Info (Statistik-Kopf): 52W / Jahr / Monat / Extrem-Zeiten */
.ph-stats[b-wysn7zqhyg] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 1px;
    background: var(--fn-border);
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    overflow: hidden;
    margin-bottom: 12px;
}

.ph-stat[b-wysn7zqhyg] {
    background: var(--fn-bg-alt);
    padding: 12px 15px;
}

    .ph-stat .k[b-wysn7zqhyg] {
        font-family: var(--fn-font-mono);
        font-size: 10px;
        text-transform: uppercase;
        letter-spacing: .5px;
        color: var(--fn-text-tertiary);
    }

    .ph-stat .v[b-wysn7zqhyg] {
        font-family: var(--fn-font-mono);
        font-weight: var(--fn-font-weight-bold);
        font-size: 16px;
        margin-top: 3px;
        color: var(--fn-text);
    }

        .ph-stat .v.tv[b-wysn7zqhyg] {
            font-size: 14px;
        }

        .ph-stat .v.hi[b-wysn7zqhyg],
        .ph-stat .v .hi[b-wysn7zqhyg] {
            color: var(--fn-success);
        }

        .ph-stat .v.lo[b-wysn7zqhyg],
        .ph-stat .v .lo[b-wysn7zqhyg] {
            color: var(--fn-danger);
        }

    .ph-stat .d[b-wysn7zqhyg] {
        font-family: var(--fn-font-mono);
        font-size: 11px;
        color: var(--fn-text-tertiary);
        margin-top: 2px;
    }

/* Gruppier-Leiste — die wl-*-Klassen kommen aus der globalen watchlists.css; hier nur zentriert positionieren. */
.ph-grpbar[b-wysn7zqhyg] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 4px 14px;
}

/* Sortierbare Spaltenköpfe */
table.fn-list th.sortable[b-wysn7zqhyg] {
    cursor: pointer;
    user-select: none;
}

table.fn-list th .th-sort[b-wysn7zqhyg] {
    font-size: 9px;
    margin-left: 5px;
    color: var(--fn-text-tertiary);
}

table.fn-list th.sorted[b-wysn7zqhyg] {
    color: var(--fn-primary);
}

    table.fn-list th.sorted .th-sort[b-wysn7zqhyg] {
        color: var(--fn-primary);
    }

/* Extrem-Zeiten (aus Intraday) */
table.fn-list td.tm[b-wysn7zqhyg] {
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    color: var(--fn-cat-teal);
}
/* /Components/SecurityDetail/SeasonalityTab.razor.rz.scp.css */
/* ① seasonality detail tab. Additive, tokens-only; heatmap intensity via color-mix on --fn tokens. */
.sea-tab[b-4a2yr4om8g] { display: flex; flex-direction: column; gap: 14px; }

.sea-tab-toolbar[b-4a2yr4om8g] { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.sea-tab-toolbar[b-4a2yr4om8g]  .sea-tab-actions { margin-left: auto; }
.sea-seg[b-4a2yr4om8g] { display: inline-flex; border: 1px solid var(--fn-border); border-radius: 8px; overflow: hidden; }
.sea-seg button[b-4a2yr4om8g] {
    font-size: 12px; padding: 6px 12px; border: none; cursor: pointer;
    background: var(--fn-bg-muted); color: var(--fn-text-secondary);
}
.sea-seg button.on[b-4a2yr4om8g] { background: var(--fn-accent-soft); color: var(--fn-primary); }

.sea-t-msg[b-4a2yr4om8g] { color: var(--fn-text-secondary); font-size: 13px; padding: 8px 2px; }
.sea-t-disclaimer[b-4a2yr4om8g] {
    font-size: 11px; color: var(--fn-text-tertiary);
    border-top: 1px solid var(--fn-border); padding-top: 10px; margin: 4px 0 0;
}
.sea-mut[b-4a2yr4om8g] { color: var(--fn-text-tertiary); }

/* Verdict hero */
.sea-verdict[b-4a2yr4om8g] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-left: 3px solid var(--fn-text-tertiary); border-radius: 14px; padding: 14px 16px;
}
.sea-verdict.good[b-4a2yr4om8g] { border-left-color: var(--fn-success); }
.sea-verdict.bad[b-4a2yr4om8g] { border-left-color: var(--fn-danger); }
.sea-v-cap[b-4a2yr4om8g] { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--fn-text-tertiary); margin-bottom: 3px; }
.sea-v-main[b-4a2yr4om8g] { font-size: 19px; font-weight: 700; color: var(--fn-text); }
.sea-verdict.good .sea-v-main[b-4a2yr4om8g] { color: var(--fn-success); }
.sea-verdict.bad .sea-v-main[b-4a2yr4om8g] { color: var(--fn-danger); }
.sea-v-sub[b-4a2yr4om8g] { font-size: 12px; color: var(--fn-text-secondary); margin-top: 2px; }

/* KPI row */
.sea-kpis[b-4a2yr4om8g] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
@media (max-width: 900px) { .sea-kpis[b-4a2yr4om8g] { grid-template-columns: 1fr 1fr; } }
.sea-kpi[b-4a2yr4om8g] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 12px; padding: 12px 14px; }
.sea-kpi-v[b-4a2yr4om8g] { font-size: 18px; font-weight: 600; color: var(--fn-text); }
.sea-kpi-l[b-4a2yr4om8g] { font-size: 11px; color: var(--fn-text-secondary); margin-top: 2px; }

/* Section cards */
.sea-card[b-4a2yr4om8g] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 14px; padding: 14px 16px; }
.sea-card-head h3[b-4a2yr4om8g] { font-size: 13px; margin: 0 0 8px; color: var(--fn-text); }

/* Heatmap = CSS grid (matrix visualization, not a record list → no <table>) */
.sea-hm-scroll[b-4a2yr4om8g] { overflow-x: auto; }
.sea-hm[b-4a2yr4om8g] { display: inline-grid; grid-template-columns: auto repeat(12, minmax(46px, 1fr)); gap: 3px; font-size: 11px; }
.sea-hm-row[b-4a2yr4om8g] { display: contents; }
.sea-hm-mh[b-4a2yr4om8g] {
    font-size: 10px; letter-spacing: .04em; text-transform: uppercase; color: var(--fn-text-tertiary);
    font-weight: 600; padding: 3px 2px; text-align: center; white-space: nowrap; border-radius: 6px;
}
.sea-hm-lead[b-4a2yr4om8g], .sea-hm-yr[b-4a2yr4om8g] {
    display: flex; align-items: center; justify-content: flex-end;
    padding-right: 8px; color: var(--fn-text-secondary); white-space: nowrap;
}
.sea-hm-cell[b-4a2yr4om8g] { text-align: center; padding: 7px 5px; border-radius: 6px; color: var(--fn-text); min-width: 46px; }
.sea-hm-mean .sea-hm-cell[b-4a2yr4om8g] { font-weight: 600; }
.sea-hm .now[b-4a2yr4om8g] { box-shadow: inset 0 0 0 2px var(--fn-primary); }

.sea-hm .he[b-4a2yr4om8g] { background: var(--fn-bg-muted); color: var(--fn-text-tertiary); border: 1px dashed var(--fn-border); }
.sea-hm .hp1[b-4a2yr4om8g] { background: color-mix(in srgb, var(--fn-success) 16%, transparent); }
.sea-hm .hp2[b-4a2yr4om8g] { background: color-mix(in srgb, var(--fn-success) 34%, transparent); }
.sea-hm .hp3[b-4a2yr4om8g] { background: color-mix(in srgb, var(--fn-success) 56%, transparent); }
.sea-hm .hp4[b-4a2yr4om8g] { background: color-mix(in srgb, var(--fn-success) 80%, transparent); color: var(--fn-on-primary); }
.sea-hm .hn1[b-4a2yr4om8g] { background: color-mix(in srgb, var(--fn-danger) 16%, transparent); }
.sea-hm .hn2[b-4a2yr4om8g] { background: color-mix(in srgb, var(--fn-danger) 34%, transparent); }
.sea-hm .hn3[b-4a2yr4om8g] { background: color-mix(in srgb, var(--fn-danger) 56%, transparent); }
.sea-hm .hn4[b-4a2yr4om8g] { background: color-mix(in srgb, var(--fn-danger) 82%, transparent); color: var(--fn-on-primary); }

/* one-sided dividend scale (gold) */
.sea-hm .hd0[b-4a2yr4om8g] { background: var(--fn-bg-muted); color: var(--fn-text-tertiary); border: 1px dashed var(--fn-border); }
.sea-hm .hd1[b-4a2yr4om8g] { background: color-mix(in srgb, var(--fn-cat-gold) 18%, transparent); }
.sea-hm .hd2[b-4a2yr4om8g] { background: color-mix(in srgb, var(--fn-cat-gold) 38%, transparent); }
.sea-hm .hd3[b-4a2yr4om8g] { background: color-mix(in srgb, var(--fn-cat-gold) 62%, transparent); }
.sea-hm .hd4[b-4a2yr4om8g] { background: color-mix(in srgb, var(--fn-cat-gold) 85%, transparent); color: var(--fn-on-primary); }

/* shared pills */
.sea-cat[b-4a2yr4om8g] {
    display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: 10.5px; font-weight: 600;
    color: var(--fn-info); background: var(--fn-info-soft); border: 1px solid var(--fn-info);
}
.sea-dir[b-4a2yr4om8g] { font-size: 11.5px; }
.sea-dir.long[b-4a2yr4om8g] { color: var(--fn-success); }
.sea-dir.short[b-4a2yr4om8g] { color: var(--fn-danger); }

/* SVG-Chart-Stile (Monats-Mittel + Spaghetti) liegen in css/security-detail.css (global) —
   die SVGs werden als MarkupString injiziert, scoped CSS würde dort NICHT greifen. */
.sea-t-sub[b-4a2yr4om8g] { font-size: 11px; color: var(--fn-text-tertiary); margin: 6px 0 0; }
/* /Components/Settings/AddChannelDialog.razor.rz.scp.css */
/* Der Dialog sitzt seit dem 14.09.2026 in FnDialogScaffold (Design-Vorgabe 3c, Nachtrag 1.14).
   Kopf, Hintergrund, Koerper-Abstaende und Fusszeile kommen von dort — hier bleibt nur, was der
   Inhalt selbst braucht.

   Entfernt wurden die Regeln des frueheren Eigenbaus. Inventar, damit nachvollziehbar ist, wohin
   jede Zustaendigkeit gewandert ist:

     .acd-overlay  -> FnFloatingWindow (Hintergrund, ohne schliessenden Handler)
     .acd          -> FnFloatingWindow (Fensterrahmen, Groesse je Nutzer persistiert)
     .acd-head     -> FnFloatingWindow (Titelzeile)
     .acd-x        -> FnHeaderActionButton mit FnHeaderActionIcon.Close
     .acd-body     -> .fn-dialog-scaffold-body (fn-window.css, 16px 18px)
     .acd-actions  -> FnFormFooter (exakt 42px, rechts)
     .acd-secondary / .acd-primary -> FnFormFooter (Zuruecksetzen / Speichern)

   Geblieben ist allein .acd-type: die Zeile "Webhook" mit Symbol im Formularkoerper. Sie ist
   Inhalt, kein Fensterteil, und hat in keiner geteilten Komponente eine Entsprechung. */

.acd-type[b-nmr4mh0e0m] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 34px;
    padding: 0 12px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
    color: var(--fn-text);
    font-size: 13px;
}

.acd-type[b-nmr4mh0e0m]  .lucide { width: 15px; height: 15px; color: var(--fn-primary); }
/* /Components/Settings/AuditHistoryForm.razor.rz.scp.css */
/* Audit & Historie — tokens only. Reiter = FnTabs, Tabelle = fn-list, Toolbar = FnListToolbar
   (FINCOMP001); hier nur Layout + Chips. */
/* Volle Breite wie die übrigen Verwaltungs-Flächen (Niko 07.07.: keine eigene max-width). */
.ah[b-w30njeot80] { display: flex; flex-direction: column; gap: 14px; }

/* Gruppenkopf-Zeilen (Gruppierung Datum/Typ/Status bzw. Datum/Kategorie). */
.ah-group td[b-w30njeot80] { background: var(--fn-bg-muted); font-size: 11.5px; font-weight: 700; color: var(--fn-text-secondary); text-transform: uppercase; letter-spacing: .05em; }
.ah-group-count[b-w30njeot80] { color: var(--fn-text-tertiary); font-weight: 400; text-transform: none; letter-spacing: 0; }

.ah-filter[b-w30njeot80] { flex: 0 0 auto; width: auto; min-width: 150px; }

.ah-scroll[b-w30njeot80] { overflow-x: auto; }
.ah-mono[b-w30njeot80] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.ah-chev[b-w30njeot80] { width: 1%; white-space: nowrap; color: var(--fn-text-tertiary); font-size: 11px; }
.ah-eye[b-w30njeot80] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-right: 6px;
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg);
    color: var(--fn-primary);
    cursor: pointer;
}
.ah-eye:hover[b-w30njeot80] { border-color: var(--fn-primary); background: var(--fn-accent-soft); }
.ah-eye svg[b-w30njeot80] { width: 15px; height: 15px; stroke-width: 2.2; }
.ah-row[b-w30njeot80] { cursor: pointer; }
.ah-row:hover td[b-w30njeot80] { background: var(--fn-bg-muted); }

.ah-as[b-w30njeot80] { display: inline-block; margin-left: 6px; font-size: 10.5px; color: var(--fn-warning); border: 1px solid var(--fn-warning); border-radius: var(--fn-radius-pill); padding: 1px 7px; }

.ah-cat[b-w30njeot80] { display: inline-flex; align-items: center; border-radius: var(--fn-radius-pill); border: 1px solid var(--fn-border-strong); padding: 2px 9px; font-size: 10.5px; font-weight: 700; white-space: nowrap; color: var(--fn-text-secondary); }
.ah-cat.identity[b-w30njeot80] { color: var(--fn-info); border-color: var(--fn-info); background: var(--fn-accent-soft); }
.ah-cat.access[b-w30njeot80] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.ah-cat.configuration[b-w30njeot80] { color: var(--fn-primary); border-color: var(--fn-primary); background: var(--fn-accent-soft); }
.ah-cat.data[b-w30njeot80] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.ah-cat.operations[b-w30njeot80] { color: var(--fn-text-secondary); }

.ah-detrow td[b-w30njeot80] { background: var(--fn-bg-muted); }
.ah-detrow pre[b-w30njeot80] { margin: 0; font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-secondary); white-space: pre-wrap; }

/* ===== Journal-Reiter (J1) ===== */
.ah-preview[b-w30njeot80] { display: block; margin-top: 2px; font-size: 11.5px; color: var(--fn-text-tertiary); }

.ah-rel-y[b-w30njeot80] { color: var(--fn-success); font-weight: 700; font-size: 11.5px; white-space: nowrap; }
.ah-rel-n[b-w30njeot80] { color: var(--fn-danger); font-weight: 700; font-size: 11.5px; white-space: nowrap; }
.ah-rel-why[b-w30njeot80] { display: block; font-size: 10.5px; color: var(--fn-text-tertiary); }

.ah-ch[b-w30njeot80] { display: inline-flex; align-items: center; border-radius: var(--fn-radius-pill); border: 1px solid var(--fn-border-strong); padding: 1px 8px; font-size: 10px; font-weight: 700; margin: 1px 2px 1px 0; color: var(--fn-text-tertiary); white-space: nowrap; }
.ah-ch.sent[b-w30njeot80] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.ah-ch.blk[b-w30njeot80] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.ah-ch.fail[b-w30njeot80] { color: var(--fn-danger); border-color: var(--fn-danger); background: var(--fn-danger-soft); }

.ah-st[b-w30njeot80] { display: inline-flex; border-radius: var(--fn-radius-pill); border: 1px solid var(--fn-border-strong); padding: 2px 9px; font-size: 10.5px; font-weight: 700; white-space: nowrap; color: var(--fn-text-secondary); }
.ah-st.sent[b-w30njeot80] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.ah-st.blocked[b-w30njeot80] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.ah-st.failed[b-w30njeot80] { color: var(--fn-danger); border-color: var(--fn-danger); background: var(--fn-danger-soft); }
.ah-st.created[b-w30njeot80] { color: var(--fn-info); border-color: var(--fn-info); background: var(--fn-accent-soft); }

.ah-detgrid[b-w30njeot80] { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 6px 18px; font-size: 11.5px; color: var(--fn-text-secondary); }
.ah-detgrid > div[b-w30njeot80] { min-width: 0; }
.ah-detk[b-w30njeot80] { color: var(--fn-text-tertiary); font-weight: 700; margin-right: 6px; }
.ah-deterr[b-w30njeot80] { grid-column: 1 / -1; color: var(--fn-danger); }
.ah-link[b-w30njeot80] { color: var(--fn-primary); text-decoration: none; word-break: break-all; }
.ah-link:hover[b-w30njeot80] { text-decoration: underline; }
.ah-message[b-w30njeot80] {
    margin-top: 14px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-md);
    background: var(--fn-bg);
    overflow: hidden;
}
.ah-message-head[b-w30njeot80] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-bottom: 1px solid var(--fn-border);
    color: var(--fn-text);
    font-weight: 800;
}
.ah-message-quality[b-w30njeot80] {
    display: inline-flex;
    align-items: center;
    border-radius: var(--fn-radius-pill);
    border: 1px solid currentColor;
    padding: 2px 9px;
    font-size: 10.5px;
    white-space: nowrap;
}
.ah-message-quality.ok[b-w30njeot80] { color: var(--fn-success); background: var(--fn-success-soft); }
.ah-message-quality.no[b-w30njeot80] { color: var(--fn-danger); background: var(--fn-danger-soft); }
.ah-message-body[b-w30njeot80] {
    padding: 14px;
    color: var(--fn-text);
    background: var(--fn-bg-alt);
    overflow-x: auto;
}
.ah-message-body :is(h1,h2,h3,p,ul,ol,table)[b-w30njeot80] { max-width: 100%; }
.ah-message-body table[b-w30njeot80] { border-collapse: collapse; }
.ah-message-body a[b-w30njeot80] { color: var(--fn-primary); }
.ah-message-plain[b-w30njeot80] {
    margin: 0;
    padding: 14px;
    white-space: pre-wrap;
    color: var(--fn-text);
    background: var(--fn-bg-alt);
    font-family: var(--fn-font);
    font-size: 13px;
}
.ah-message-missing[b-w30njeot80] {
    padding: 14px;
    color: var(--fn-warning);
    background: var(--fn-warning-soft);
}
/* /Components/Settings/BrokerFeeEditor.razor.rz.scp.css */
/* Editor-Spalte der Gebühren-Verwaltung — tokens only. Felder = geteilte .fn-field-Geometrie
   (fn-forms.css), Buttons = FnButton, Fußzeile = FnDialogActions (FINCOMP001); hier nur
   Container-/Grid-Layout. Eigenes scoped CSS, weil das Form-CSS nicht auf Kind-Komponenten
   wirkt (Niko-Befund 07.07.2026: Editor stand nach dem P7-Split nackt da). */
.bfe[b-fesoe34rwo] {
    background: var(--fn-bg);
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius);
    overflow: hidden;
    box-shadow: var(--fn-elevation-2);
    display: flex;
    flex-direction: column;
}

.bfe-head[b-fesoe34rwo] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding: 13px 14px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-muted);
}

.bfe-head h3[b-fesoe34rwo] { margin: 0; font-size: 13.5px; font-weight: 600; color: var(--fn-text); }
.bfe-head p[b-fesoe34rwo] { margin: 3px 0 0; font-size: 12px; color: var(--fn-text-secondary); line-height: 1.45; }

.bfe-chip[b-fesoe34rwo] {
    display: inline-flex;
    align-items: center;
    border-radius: var(--fn-radius-pill);
    border: 1px solid var(--fn-warning);
    background: var(--fn-warning-soft);
    color: var(--fn-warning);
    padding: 3px 9px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.bfe-body[b-fesoe34rwo] { display: flex; flex-direction: column; gap: 12px; padding: 13px 14px; }

.bfe-grid[b-fesoe34rwo] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
    align-items: start;
}

.bfe-wide[b-fesoe34rwo] { grid-column: 1 / -1; min-width: 0; }

.bfe-cap[b-fesoe34rwo] {
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-top: 4px;
}

.bfe-check[b-fesoe34rwo] {
    display: grid;
    grid-template-columns: 16px 1fr;
    align-items: center;
    column-gap: 8px;
    align-self: end;
    padding: 9px 10px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
    cursor: pointer;
}

.bfe-check input[b-fesoe34rwo] { width: 16px; height: 16px; padding: 0; accent-color: var(--fn-primary); cursor: pointer; }
.bfe-check span[b-fesoe34rwo] { color: var(--fn-text); font-size: 12px; }

.bfe-note[b-fesoe34rwo] {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 10px 12px;
    border: 1px solid var(--fn-accent-line);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-info-soft);
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.bfe-note[b-fesoe34rwo]  svg { color: var(--fn-info); width: 15px; height: 15px; margin-top: 1px; flex: none; }
.bfe-note.ok[b-fesoe34rwo] { border-color: var(--fn-success); background: var(--fn-success-soft); }
.bfe-note.ok[b-fesoe34rwo]  svg { color: var(--fn-success); }

.bfe-history[b-fesoe34rwo] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 11px 12px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
}

.bfe-history div[b-fesoe34rwo] { display: flex; flex-direction: column; gap: 2px; }
.bfe-history span[b-fesoe34rwo] { color: var(--fn-text-tertiary); font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.bfe-history b[b-fesoe34rwo] { color: var(--fn-text); font-size: 12px; }
.bfe-history small[b-fesoe34rwo] { color: var(--fn-text-secondary); font-size: 11.5px; }

.bfe-foot[b-fesoe34rwo] { border-top: 1px solid var(--fn-border); background: var(--fn-bg-alt); padding: 4px 14px 12px; }
.bfe-existing[b-fesoe34rwo] { color: var(--fn-text-tertiary); font-size: 11px; }

@media (max-width: 720px) {
    .bfe-grid[b-fesoe34rwo] { grid-template-columns: 1fr; }
    .bfe-history[b-fesoe34rwo] { grid-template-columns: 1fr; }
}
/* /Components/Settings/BrokerFeeSchedulesForm.razor.rz.scp.css */
.bf[b-x8waijmpf9] { display:flex; flex-direction:column; gap:16px; }
.bf[b-x8waijmpf9]  svg { width:16px; height:16px; }

.mg-bar[b-x8waijmpf9] { display:flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:space-between; }
.mg-action-group[b-x8waijmpf9] { display:inline-flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:flex-end; margin-left:auto; }
.mg-search[b-x8waijmpf9] { display:inline-flex; align-items:center; gap:7px; flex:0 0 240px; padding:6px 11px; border-radius:8px; border:1px solid var(--fn-border); background:var(--fn-input-bg); }
.mg-search[b-x8waijmpf9]  svg { width:14px; height:14px; color:var(--fn-text-tertiary); }
.mg-search input[b-x8waijmpf9] { flex:1; min-width:0; border:none; background:transparent; outline:none; color:var(--fn-text); font:inherit; font-size:12.5px; }
.mg-btn-primary[b-x8waijmpf9] { display:inline-flex; align-items:center; gap:7px; font:inherit; font-size:12.5px; font-weight:600; color:var(--fn-on-primary); background:var(--fn-primary); border:1px solid var(--fn-primary); border-radius:8px; padding:8px 13px; cursor:pointer; }
.mg-btn-primary:disabled[b-x8waijmpf9] { opacity:.5; cursor:not-allowed; }
.mg-btn-primary[b-x8waijmpf9]  svg { width:14px; height:14px; }
.mg-btn-secondary[b-x8waijmpf9] { display:inline-flex; align-items:center; gap:7px; font:inherit; font-size:12.5px; font-weight:600; color:var(--fn-text); background:var(--fn-bg-muted); border:1px solid var(--fn-border-strong); border-radius:8px; padding:8px 13px; cursor:pointer; }
.mg-btn-secondary:disabled[b-x8waijmpf9] { opacity:.5; cursor:not-allowed; }
.mg-btn-secondary[b-x8waijmpf9]  svg { width:14px; height:14px; color:var(--fn-primary); }
.mg-ic[b-x8waijmpf9] { background:transparent; border:1px solid var(--fn-border); border-radius:7px; color:var(--fn-text-secondary); cursor:pointer; padding:4px 7px; display:inline-flex; }
.mg-ic[b-x8waijmpf9]  svg { width:14px; height:14px; }
.mg-ic.ok[b-x8waijmpf9] { color:var(--fn-on-primary); background:var(--fn-primary); border-color:var(--fn-primary); }
.mg-ic.refresh[b-x8waijmpf9] { align-items:center; justify-content:center; width:35px; height:35px; color:var(--fn-primary); background:var(--fn-bg-muted); border-color:var(--fn-border-strong); }
.mg-ic.refresh:disabled[b-x8waijmpf9] { opacity:.5; cursor:not-allowed; }
.mg-empty[b-x8waijmpf9] { padding:22px; color:var(--fn-text-secondary); }

.bf-filter[b-x8waijmpf9] { min-width:210px; color:var(--fn-text); background:var(--fn-input-bg); border:1px solid var(--fn-input-border); border-radius:8px; padding:8px 10px; font:inherit; font-size:12.5px; }
.bf-status[b-x8waijmpf9] { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px; }
.bf-metric[b-x8waijmpf9] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); padding:11px 13px; }
.bf-metric span[b-x8waijmpf9] { display:block; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--fn-text-tertiary); }
.bf-metric b[b-x8waijmpf9] { display:block; margin-top:4px; font-family:var(--fn-font-mono); font-size:12.5px; color:var(--fn-text); }
.bf-metric.warn b[b-x8waijmpf9] { color:var(--fn-warning); }

.bf-card[b-x8waijmpf9] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); overflow:hidden; }
.bf-card-head[b-x8waijmpf9] { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 15px; border-bottom:1px solid var(--fn-border); background:var(--fn-bg); }
.bf-card-head h3[b-x8waijmpf9] { margin:0; font-size:13.5px; font-weight:600; color:var(--fn-text); }
.bf-card-head p[b-x8waijmpf9] { margin:3px 0 0; font-size:12px; color:var(--fn-text-secondary); line-height:1.45; }
.bf-grid[b-x8waijmpf9] { display:grid; grid-template-columns:minmax(0, 1fr) 430px; gap:14px; padding:13px; align-items:start; }
.bf-list[b-x8waijmpf9] { min-width:0; overflow:auto; border:1px solid var(--fn-border); border-radius:var(--fn-radius-sm); background:var(--fn-bg); }
.bf-table[b-x8waijmpf9] { width:100%; border-collapse:collapse; font-size:12.5px; }
.bf-table th[b-x8waijmpf9] { text-align:left; color:var(--fn-text-tertiary); font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:10px 13px; border-bottom:1px solid var(--fn-border); }
.bf-table td[b-x8waijmpf9] { padding:11px 13px; border-bottom:1px solid var(--fn-border); color:var(--fn-text-secondary); vertical-align:middle; }
.bf-table tr:last-child td[b-x8waijmpf9] { border-bottom:0; }
.bf-table tr[b-x8waijmpf9] { cursor:pointer; }
.bf-table tr.selected[b-x8waijmpf9] { background:var(--fn-accent-soft); }
.bf-table td b[b-x8waijmpf9] { display:block; color:var(--fn-text); font-size:12.5px; }
.bf-table td small[b-x8waijmpf9] { display:block; margin-top:2px; color:var(--fn-text-tertiary); font-size:11px; }
.bf-actions[b-x8waijmpf9] { width:1%; white-space:nowrap; text-align:right; }

.bf-pill[b-x8waijmpf9], .bf-chip[b-x8waijmpf9] { display:inline-flex; align-items:center; border-radius:var(--fn-radius-pill); border:1px solid var(--fn-border-strong); padding:3px 9px; font-size:11px; font-weight:700; white-space:nowrap; }
.bf-pill[b-x8waijmpf9] { color:var(--fn-primary); border-color:var(--fn-accent-line); background:var(--fn-accent-soft); }
.bf-chip.active[b-x8waijmpf9] { color:var(--fn-success); border-color:var(--fn-success); background:var(--fn-success-soft); }
.bf-chip.inactive[b-x8waijmpf9] { color:var(--fn-warning); border-color:var(--fn-warning); background:var(--fn-warning-soft); }

/* Editor-Spalte: eigenes scoped CSS in BrokerFeeEditor.razor.css — das Form-CSS wirkt nicht
   auf Kind-Komponenten (Niko-Befund 07.07.2026: Editor stand nach dem P7-Split nackt da). */

@media (max-width: 1180px) {
    .bf-status[b-x8waijmpf9] { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .bf-grid[b-x8waijmpf9] { grid-template-columns:1fr; }
}

@media (max-width: 720px) {
    .mg-bar[b-x8waijmpf9] { justify-content:flex-start; }
    .mg-action-group[b-x8waijmpf9] { flex:1 1 100%; }
    .mg-search[b-x8waijmpf9] { flex:1 1 100%; }
    .bf-status[b-x8waijmpf9] { grid-template-columns:1fr; }
    .bf-table[b-x8waijmpf9] { min-width:760px; }
}
/* /Components/Settings/BrokerOrderApprovalForm.razor.rz.scp.css */
/* Broker-Order-Freigabe: Button/Icon-Hooks aus ModuleGroupsForm.razor.css uebernommen. */
.oa[b-3gpiljx9bu] { display:flex; flex-direction:column; gap:16px; }
.oa[b-3gpiljx9bu]  svg { width:16px; height:16px; }

.mg-bar[b-3gpiljx9bu] { display:flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:flex-end; }
.mg-search[b-3gpiljx9bu] { display:inline-flex; align-items:center; gap:7px; flex:0 0 240px; padding:6px 11px; border-radius:8px; border:1px solid var(--fn-border); background:var(--fn-input-bg); }
.mg-search[b-3gpiljx9bu]  svg { width:14px; height:14px; color:var(--fn-text-tertiary); }
.mg-search input[b-3gpiljx9bu] { flex:1; min-width:0; border:none; background:transparent; outline:none; color:var(--fn-text); font:inherit; font-size:12.5px; }
.mg-new[b-3gpiljx9bu] { display:inline-flex; align-items:center; gap:8px; }
.mg-new input[b-3gpiljx9bu] { padding:7px 11px; border-radius:8px; border:1px solid var(--fn-input-border); background:var(--fn-input-bg); color:var(--fn-text); font:inherit; font-size:12.5px; min-width:200px; }
.mg-new input[b-3gpiljx9bu] { padding:7px 11px; border-radius:8px; border:1px solid var(--fn-input-border); background:var(--fn-input-bg); color:var(--fn-text); font:inherit; font-size:12.5px; min-width:180px; }
.mg-btn-primary[b-3gpiljx9bu] { display:inline-flex; align-items:center; gap:7px; font:inherit; font-size:12.5px; font-weight:600; color:var(--fn-on-primary); background:var(--fn-primary); border:1px solid var(--fn-primary); border-radius:8px; padding:8px 13px; cursor:pointer; }
.mg-btn-primary:disabled[b-3gpiljx9bu] { opacity:.5; cursor:not-allowed; }
.mg-btn-primary[b-3gpiljx9bu]  svg { width:14px; height:14px; }

.mg-ic[b-3gpiljx9bu] { background:transparent; border:1px solid var(--fn-border); border-radius:7px; color:var(--fn-text-secondary); cursor:pointer; padding:4px 7px; display:inline-flex; }
.mg-ic[b-3gpiljx9bu]  svg { width:14px; height:14px; }
.mg-ic.ok[b-3gpiljx9bu] { color:var(--fn-on-primary); background:var(--fn-primary); border-color:var(--fn-primary); }

.gear[b-3gpiljx9bu] { width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--fn-border-strong); border-radius:4px; color:var(--fn-text-secondary); cursor:pointer; flex:none; }
.gear.on[b-3gpiljx9bu] { color:var(--fn-primary); border-color:var(--fn-accent-line); background:var(--fn-accent-soft); }


.oa-status[b-3gpiljx9bu] { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px; }
.oa-metric[b-3gpiljx9bu] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); padding:11px 13px; }
.oa-metric span[b-3gpiljx9bu] { display:block; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--fn-text-tertiary); }
.oa-metric b[b-3gpiljx9bu] { display:block; margin-top:4px; font-family:var(--fn-font-mono); font-size:12.5px; color:var(--fn-text); }
.oa-metric.warn b[b-3gpiljx9bu] { color:var(--fn-warning); }

.oa-card[b-3gpiljx9bu] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); overflow:hidden; }
.oa-card-head[b-3gpiljx9bu] { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 15px; border-bottom:1px solid var(--fn-border); background:var(--fn-bg); }
.oa-card-head h3[b-3gpiljx9bu] { margin:0; font-size:13.5px; font-weight:600; color:var(--fn-text); }
.oa-card-head p[b-3gpiljx9bu] { margin:3px 0 0; font-size:12px; color:var(--fn-text-secondary); line-height:1.45; }

.oa-table[b-3gpiljx9bu] { width:100%; border-collapse:collapse; font-size:12.5px; }
.oa-table th[b-3gpiljx9bu] { text-align:left; color:var(--fn-text-tertiary); font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:10px 13px; border-bottom:1px solid var(--fn-border); }
.oa-table td[b-3gpiljx9bu] { padding:11px 13px; border-bottom:1px solid var(--fn-border); color:var(--fn-text-secondary); vertical-align:middle; }
.oa-table tr:last-child td[b-3gpiljx9bu] { border-bottom:0; }
.oa-table tr.selected[b-3gpiljx9bu] { background:var(--fn-accent-soft); }
.oa-table tr.group td[b-3gpiljx9bu] { background:var(--fn-bg-muted); }
.oa-table tr.child td:first-child[b-3gpiljx9bu] { padding-left:28px; }
.oa-table td b[b-3gpiljx9bu] { display:block; color:var(--fn-text); font-size:12.5px; }
.oa-table td small[b-3gpiljx9bu] { display:block; margin-top:2px; color:var(--fn-text-tertiary); font-size:11px; }
.oa-actions[b-3gpiljx9bu] { width:1%; white-space:nowrap; text-align:right; }
.oa-asset-name[b-3gpiljx9bu] { display:inline-flex !important; align-items:center; gap:7px; }
.oa-expand[b-3gpiljx9bu] { width:15px; height:15px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--fn-border-strong); border-radius:4px; color:var(--fn-text-secondary); font-family:var(--fn-font-mono); font-size:10px; }
.oa-expand.child[b-3gpiljx9bu] { border-color:transparent; color:var(--fn-text-tertiary); }

.oa-pill[b-3gpiljx9bu] { display:inline-flex; align-items:center; border-radius:var(--fn-radius-pill); border:1px solid var(--fn-border-strong); color:var(--fn-text-secondary); padding:2px 9px; font-size:10.5px; font-weight:700; white-space:nowrap; }
.oa-pill.ok[b-3gpiljx9bu] { color:var(--fn-success); border-color:var(--fn-success); background:var(--fn-success-soft); }
.oa-pill.warn[b-3gpiljx9bu] { color:var(--fn-warning); border-color:var(--fn-warning); background:var(--fn-warning-soft); }

.oa-chip[b-3gpiljx9bu] { display:inline-flex; align-items:center; border-radius:var(--fn-radius-pill); border:1px solid var(--fn-border-strong); padding:3px 9px; font-size:11px; font-weight:700; white-space:nowrap; }
.oa-chip.position[b-3gpiljx9bu], .oa-chip.blocked[b-3gpiljx9bu] { color:var(--fn-warning); border-color:var(--fn-warning); background:var(--fn-warning-soft); }
.oa-chip.session[b-3gpiljx9bu], .oa-chip.paper[b-3gpiljx9bu] { color:var(--fn-info); border-color:var(--fn-info); background:var(--fn-info-soft); }
.oa-chip.permanent[b-3gpiljx9bu], .oa-chip.readonly[b-3gpiljx9bu] { color:var(--fn-success); border-color:var(--fn-success); background:var(--fn-success-soft); }
.oa-chip.broker[b-3gpiljx9bu] { color:var(--fn-primary); border-color:var(--fn-accent-line); background:var(--fn-accent-soft); }
.oa-chip.later[b-3gpiljx9bu] { color:var(--fn-text-secondary); border-color:var(--fn-border-strong); background:var(--fn-bg-muted); }
.oa-chip.opposite[b-3gpiljx9bu] { color:var(--fn-info); border-color:var(--fn-info); background:var(--fn-info-soft); }

.oa-note[b-3gpiljx9bu] { display:flex; align-items:flex-start; gap:9px; margin:12px 13px 13px; padding:10px 12px; border:1px solid var(--fn-accent-line); border-radius:var(--fn-radius-sm); background:var(--fn-info-soft); color:var(--fn-text-secondary); font-size:12px; }
.oa-note[b-3gpiljx9bu]  svg { color:var(--fn-info); width:15px; height:15px; margin-top:1px; }
.oa-note.live[b-3gpiljx9bu] { border-color:var(--fn-warning); background:var(--fn-warning-soft); }
.oa-note.live[b-3gpiljx9bu]  svg { color:var(--fn-warning); }

.oa-tabs[b-3gpiljx9bu] { display:flex; gap:6px; flex-wrap:wrap; padding:13px 13px 0; }
.oa-tab[b-3gpiljx9bu] { border:1px dashed var(--fn-border-strong); background:var(--fn-bg-muted); color:var(--fn-text-secondary); border-radius:8px 8px 0 0; padding:8px 12px; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }
.oa-tab.on[b-3gpiljx9bu] { border-style:solid; border-color:var(--fn-primary); background:var(--fn-primary); color:var(--fn-on-primary); }

.oa-policy-grid[b-3gpiljx9bu] { display:grid; grid-template-columns:minmax(0, 1fr) 390px; gap:14px; padding:13px; align-items:start; }
.oa-dialog[b-3gpiljx9bu] { background:var(--fn-bg-alt); border:1px solid var(--fn-border-strong); border-radius:var(--fn-radius); overflow:hidden; box-shadow:var(--fn-elevation-2); }
.oa-dialog-head[b-3gpiljx9bu] { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:13px 14px; border-bottom:1px solid var(--fn-border); background:var(--fn-bg-muted); }
.oa-dialog-head h3[b-3gpiljx9bu] { margin:0; font-size:13.5px; font-weight:700; }
.oa-dialog-head p[b-3gpiljx9bu] { margin:3px 0 0; font-size:11.5px; color:var(--fn-text-secondary); }
.oa-dialog-head .mg-ic[b-3gpiljx9bu] { width:28px; height:28px; padding:0; justify-content:center; align-items:center; border-color:var(--fn-border-strong); }
.oa-fields[b-3gpiljx9bu] { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; padding:13px 14px; border-bottom:1px solid var(--fn-border); }
.oa-fields label[b-3gpiljx9bu] { display:flex; flex-direction:column; gap:4px; min-width:0; }
.oa-fields label.wide[b-3gpiljx9bu] { grid-column:1 / -1; }
.oa-fields .wide[b-3gpiljx9bu] { grid-column:1 / -1; }
.oa-fields span[b-3gpiljx9bu] { color:var(--fn-text-tertiary); font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.oa-fields input[b-3gpiljx9bu], .oa-fields select[b-3gpiljx9bu] { min-width:0; width:100%; box-sizing:border-box; color:var(--fn-text); background:var(--fn-input-bg); border:1px solid var(--fn-input-border); border-radius:8px; padding:7px 9px; font:inherit; font-size:12.5px; }
.oa-fields label.oa-check[b-3gpiljx9bu] { display:grid; grid-template-columns:16px 1fr; align-items:start; column-gap:8px; row-gap:2px; padding:9px 10px; border:1px solid var(--fn-border); border-radius:var(--fn-radius-sm); background:var(--fn-bg-muted); }
.oa-fields label.oa-check input[b-3gpiljx9bu] { width:16px; height:16px; margin-top:2px; accent-color:var(--fn-primary); }
.oa-fields label.oa-check span[b-3gpiljx9bu] { grid-column:2; color:var(--fn-text); letter-spacing:0; text-transform:none; font-size:12px; }
.oa-fields label.oa-check small[b-3gpiljx9bu] { grid-column:2; color:var(--fn-text-secondary); font-size:11.5px; line-height:1.35; }
.oa-brokers[b-3gpiljx9bu] { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
.oa-broker[b-3gpiljx9bu] { text-align:left; color:var(--fn-text); background:var(--fn-bg-muted); border:1px solid var(--fn-border); border-radius:var(--fn-radius-sm); padding:9px 10px; cursor:pointer; }
.oa-broker.active[b-3gpiljx9bu] { border-color:var(--fn-primary); box-shadow:inset 0 0 0 1px var(--fn-primary); background:var(--fn-accent-soft); }
.oa-broker b[b-3gpiljx9bu] { display:block; font-size:12px; }
.oa-broker small[b-3gpiljx9bu] { display:block; margin-top:3px; color:var(--fn-text-secondary); font-size:11px; line-height:1.35; }
.oa-current[b-3gpiljx9bu] { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:12px 14px; border-bottom:1px solid var(--fn-border); }
.oa-current b[b-3gpiljx9bu] { font-size:13px; }
.oa-current small[b-3gpiljx9bu] { color:var(--fn-text-tertiary); font-size:11px; }

.oa-option-title[b-3gpiljx9bu] { padding:12px 14px 0; color:var(--fn-text-tertiary); font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.oa-options[b-3gpiljx9bu] { display:grid; gap:8px; padding:13px 14px; }
.oa-option[b-3gpiljx9bu] { display:grid; grid-template-columns:22px 1fr auto; gap:9px; align-items:start; text-align:left; background:var(--fn-bg-muted); border:1px solid var(--fn-border); border-radius:var(--fn-radius-sm); color:var(--fn-text); padding:11px; cursor:pointer; }
.oa-option.active[b-3gpiljx9bu] { border-color:var(--fn-primary); box-shadow:inset 0 0 0 1px var(--fn-primary); background:var(--fn-accent-soft); }
.oa-radio[b-3gpiljx9bu] { width:17px; height:17px; border-radius:50%; border:2px solid var(--fn-border-strong); margin-top:1px; position:relative; }
.oa-option.active .oa-radio[b-3gpiljx9bu] { border-color:var(--fn-primary); }
.oa-option.active .oa-radio[b-3gpiljx9bu]::after { content:""; position:absolute; inset:3px; border-radius:50%; background:var(--fn-primary); }
.oa-option b[b-3gpiljx9bu] { display:block; font-size:12.5px; }
.oa-option small[b-3gpiljx9bu] { display:block; margin-top:2px; color:var(--fn-text-secondary); font-size:11.5px; line-height:1.35; }
.oa-option em[b-3gpiljx9bu] { align-self:start; border:1px solid var(--fn-border-strong); border-radius:var(--fn-radius-pill); padding:2px 8px; color:var(--fn-text-secondary); font-size:10px; font-style:normal; font-weight:700; white-space:nowrap; }

.oa-reversal-grid[b-3gpiljx9bu] { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; padding:0 14px 13px; border-bottom:1px solid var(--fn-border); }
.oa-reversal-grid label[b-3gpiljx9bu] { display:flex; flex-direction:column; gap:4px; min-width:0; }
.oa-reversal-grid label.oa-check[b-3gpiljx9bu] { flex-direction:row; align-items:center; gap:8px; padding:8px 10px; border:1px solid var(--fn-border); border-radius:var(--fn-radius-sm); background:var(--fn-bg-muted); }
.oa-reversal-grid span[b-3gpiljx9bu] { color:var(--fn-text-tertiary); font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.oa-reversal-grid input:not([type="checkbox"])[b-3gpiljx9bu] { min-width:0; width:100%; box-sizing:border-box; color:var(--fn-text); background:var(--fn-input-bg); border:1px solid var(--fn-input-border); border-radius:8px; padding:7px 9px; font:inherit; font-size:12.5px; }
.oa-reversal-grid input[type="checkbox"][b-3gpiljx9bu] { width:16px; height:16px; accent-color:var(--fn-primary); }

.oa-dialog-foot[b-3gpiljx9bu] { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 14px; border-top:1px solid var(--fn-border); background:var(--fn-bg-alt); }
.oa-dialog-foot small[b-3gpiljx9bu] { color:var(--fn-text-tertiary); font-size:11px; }

.oa-audit[b-3gpiljx9bu] { display:grid; gap:7px; margin:0 13px 13px; padding:11px 12px; border:1px solid var(--fn-border); border-radius:var(--fn-radius-sm); background:var(--fn-bg-muted); }
.oa-audit div[b-3gpiljx9bu] { display:flex; flex-direction:column; gap:2px; }
.oa-audit b[b-3gpiljx9bu] { color:var(--fn-text); font-size:12px; }
.oa-audit span[b-3gpiljx9bu] { color:var(--fn-text-secondary); font-size:11.5px; }

@media (max-width: 1180px) {
    .oa-status[b-3gpiljx9bu] { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .oa-policy-grid[b-3gpiljx9bu] { grid-template-columns:1fr; }
}

@media (max-width: 720px) {
    .mg-bar[b-3gpiljx9bu] { justify-content:flex-start; }
    .mg-search[b-3gpiljx9bu] { flex:1 1 100%; }
    .oa-status[b-3gpiljx9bu] { grid-template-columns:1fr; }
    .oa-table[b-3gpiljx9bu] { min-width:680px; }
    .oa-card[b-3gpiljx9bu] { overflow:auto; }
    .oa-fields[b-3gpiljx9bu] { grid-template-columns:1fr; }
    .oa-brokers[b-3gpiljx9bu] { grid-template-columns:1fr; }
    .oa-reversal-grid[b-3gpiljx9bu] { grid-template-columns:1fr; }
    .oa-option[b-3gpiljx9bu] { grid-template-columns:22px 1fr; }
    .oa-option em[b-3gpiljx9bu] { justify-self:start; grid-column:2; }
}
/* /Components/Settings/CompanyMasterDataForm.razor.rz.scp.css */
/* Verwaltung › Stammdaten — tokens only. Buttons/Felder kommen aus den Fn*-Primitiven
   (FINCOMP001); hier nur Seiten-/Karten-Layout. */
.cmd[b-rvy1j8cn3j] { display: flex; flex-direction: column; gap: 18px; max-width: 980px; }
.cmd[b-rvy1j8cn3j]  .lucide { width: 16px; height: 16px; }

.cmd-card[b-rvy1j8cn3j] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg); padding: 18px 22px;
    display: flex; flex-direction: column; gap: 12px;
}
.cmd-card h4[b-rvy1j8cn3j] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.cmd-card h4[b-rvy1j8cn3j]  .lucide { color: var(--fn-primary); }
.cmd-sub[b-rvy1j8cn3j] { margin: -6px 0 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

.cmd-grid[b-rvy1j8cn3j] { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px 18px; align-items: start; }
.cmd-zip-city[b-rvy1j8cn3j] { display: grid; grid-template-columns: 110px 1fr; gap: 12px; }

.cmd-resp-info[b-rvy1j8cn3j] { display: flex; align-items: center; gap: 12px; }
.cmd-resp-name[b-rvy1j8cn3j] { font-size: 14px; font-weight: 600; color: var(--fn-text); }
.cmd-resp-meta[b-rvy1j8cn3j] { font-size: 12px; font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); }

.cmd-missing[b-rvy1j8cn3j] { font-size: 12px; color: var(--fn-warning); }
.cmd-saved[b-rvy1j8cn3j] { font-size: 12px; color: var(--fn-success); }

.cmd-bank-ico[b-rvy1j8cn3j] {
    width: 52px; height: 52px; border-radius: 50%; background: var(--fn-accent-soft);
    color: var(--fn-primary); display: flex; align-items: center; justify-content: center;
}
.cmd-bank-ico[b-rvy1j8cn3j]  .lucide { width: 22px; height: 22px; }
.cmd-bank-name[b-rvy1j8cn3j] { font-size: 15px; font-weight: 600; color: var(--fn-text); }
.cmd-bank-sub[b-rvy1j8cn3j] { font-size: 12.5px; font-weight: 400; color: var(--fn-text-tertiary); margin-left: 8px; }
.cmd-bank-line[b-rvy1j8cn3j] { font-size: 12.5px; color: var(--fn-text-secondary); }
.cmd-mono[b-rvy1j8cn3j] { font-family: var(--fn-font-mono); }

.cmd-bankdlg[b-rvy1j8cn3j] { display: flex; flex-direction: column; gap: 12px; height: 100%; min-height: 0; overflow-y: auto; padding-right: 4px; }
.cmd-dlg-cap[b-rvy1j8cn3j] {
    font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
    color: var(--fn-text-tertiary); margin-top: 6px;
}
/* /Components/Settings/DialogLayoutDefaultsForm.razor.rz.scp.css */
/* Dialog-Standards (Administration) — tokens-only; Buttons kommen aus der geteilten fn-buttons.css. */

.dlg-defaults[b-srxgodjabg] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    max-width: 640px;
}

.dlg-defaults-hint[b-srxgodjabg] {
    font-size: 13px;
    color: var(--fn-text-secondary);
    line-height: 1.55;
    margin: 0;
}

.dlg-defaults-message[b-srxgodjabg] {
    font-size: 13px;
    border-radius: var(--fn-radius-sm);
    padding: 8px 12px;
}

.dlg-defaults-ok[b-srxgodjabg] {
    color: var(--fn-success);
    background: var(--fn-success-soft);
}

.dlg-defaults-failed[b-srxgodjabg] {
    color: var(--fn-danger);
    background: var(--fn-danger-soft);
}
/* /Components/Settings/EventWindowForm.razor.rz.scp.css */
/* Ereignis-Betrachtungsfenster (Administration → Ereignisse). Nur --fn-*-Tokens. */
.ew[b-cjeg6bgszt] {
    max-width: 640px;
    padding-bottom: 24px;
}

.ew-desc[b-cjeg6bgszt] {
    color: var(--fn-text-secondary);
    font-size: 13px;
    line-height: 1.5;
    margin: 0 0 18px;
    max-width: 560px;
}

.ew-row[b-cjeg6bgszt] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 8px;
}

.ew-label[b-cjeg6bgszt] {
    font-size: 12.5px;
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text);
}

.ew-num[b-cjeg6bgszt] {
    max-width: 140px;
}

.ew-hint[b-cjeg6bgszt] {
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
    line-height: 1.4;
    max-width: 520px;
}

.ew-ok[b-cjeg6bgszt] {
    color: var(--fn-success);
}
/* /Components/Settings/InboundWebhookKeysSection.razor.rz.scp.css */
/* Eingehende Webhooks — Layout und Abstände. Farben ausschliesslich ueber --fn-*-Tokens
   (Design-Vorgabe 1); keine Primitiv-Klassen, keine eigenen Button-/Feld-Nachbauten. */

.iwk[b-z2pqj9pg2b] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 22px;
}

.iwk-title[b-z2pqj9pg2b] {
    margin: 0;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--fn-text-secondary);
}

.iwk-card[b-z2pqj9pg2b] {
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    padding: 15px 16px;
}

/* Der einmalige Klartext-Moment hebt sich ab, ohne eine eigene Farbe zu erfinden. */
.iwk-fresh[b-z2pqj9pg2b] {
    border-color: var(--fn-accent-line);
    background: var(--fn-accent-soft);
}

.iwk-head[b-z2pqj9pg2b] {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 4px;
    font-size: 13.5px;
}

.iwk-hint[b-z2pqj9pg2b] {
    margin: 0 0 10px;
    font-size: 12.5px;
    color: var(--fn-text-secondary);
}

.iwk-hint:last-child[b-z2pqj9pg2b] {
    margin-bottom: 0;
}

.iwk-warn[b-z2pqj9pg2b] {
    margin: 10px 0 0;
    font-size: 12.5px;
    color: var(--fn-warning);
}

.iwk-url-row[b-z2pqj9pg2b] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.iwk-url[b-z2pqj9pg2b] {
    flex: 1;
    min-width: 0;
    height: 34px;
    display: flex;
    align-items: center;
    padding: 8px 11px;
    background: var(--fn-input-bg);
    border: 1px solid var(--fn-input-border);
    border-radius: var(--fn-radius-sm);
    font-family: var(--fn-font-mono);
    font-size: 12.5px;
    color: var(--fn-text-secondary);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.iwk-url-full[b-z2pqj9pg2b] {
    color: var(--fn-text);
}

.iwk-actions[b-z2pqj9pg2b] {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
}

.iwk-consent[b-z2pqj9pg2b] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.iwk-consent-text[b-z2pqj9pg2b] {
    flex: 1;
    min-width: 0;
}

/* Deaktiviert bis Phase II — die Vorgabe verlangt opacity .45 fuer disabled (2e). */
.iwk-consent input[disabled][b-z2pqj9pg2b] {
    opacity: .45;
}

/* Aktionen zentriert - Kopf und Zelle (Niko 10.09.2026). ::deep ist noetig, weil
   bereichsbezogenes CSS die Kindkomponente FnDataGrid sonst NICHT erreicht: die Regel
   waere syntaktisch gueltig und trotzdem tot (R5). Die globale .fn-markers bleibt
   unangetastet - sonst wanderte die Zentrierung in die Watchliste. */
.iwk[b-z2pqj9pg2b]  table th:last-child,
.iwk[b-z2pqj9pg2b]  table td:last-child {
    text-align: center;
}

.iwk[b-z2pqj9pg2b]  table td:last-child .fn-markers {
    justify-content: center;
}
/* /Components/Settings/MaintenanceExportForm.razor.rz.scp.css */
/* Wartung › Datenexport — tokens only, VOLLE Breite (keine eigene max-width; Muster
   BrokerFeeSchedulesForm). Buttons/Felder aus den Fn*-Primitiven (FINCOMP001). */
.mex[b-fdbl4wuzqt] { display: flex; flex-direction: column; gap: 16px; }
.mex[b-fdbl4wuzqt]  .lucide { width: 16px; height: 16px; }
.mex-deny[b-fdbl4wuzqt] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 18px 20px; color: var(--fn-text-secondary); }

.mex-card[b-fdbl4wuzqt] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg); padding: 18px 22px;
    display: flex; flex-direction: column; gap: 12px;
}
.mex-card h4[b-fdbl4wuzqt] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.mex-card h4[b-fdbl4wuzqt]  .lucide { color: var(--fn-primary); }
.mex-stage[b-fdbl4wuzqt] { font-weight: 400; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12.5px; }
.mex-sub[b-fdbl4wuzqt] { margin: -6px 0 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

/* Aktionszeile (Vorschau): Primaeraktion links, Aktualisieren rechts. */
.mex-actions[b-fdbl4wuzqt] { display: flex; align-items: center; gap: 10px; }
.mex-spacer[b-fdbl4wuzqt] { flex: 1 1 auto; }
.mex-refresh[b-fdbl4wuzqt] { width: 34px; height: 34px; flex: none; border-radius: 8px; border: 1px solid var(--fn-border-strong); background: var(--fn-bg-muted); color: var(--fn-text-secondary); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.mex-refresh:hover:not(:disabled)[b-fdbl4wuzqt] { color: var(--fn-text); border-color: var(--fn-primary); }
.mex-refresh:disabled[b-fdbl4wuzqt] { opacity: .5; cursor: not-allowed; }
.mex-refresh[b-fdbl4wuzqt]  .lucide { width: 15px; height: 15px; }
.mex-refresh.spin[b-fdbl4wuzqt]  .lucide { animation: mex-spin-b-fdbl4wuzqt 1s linear infinite; }
@keyframes mex-spin-b-fdbl4wuzqt { to { transform: rotate(360deg); } }

.mex[b-fdbl4wuzqt]  .mex-filter { flex: 0 0 auto; width: auto; min-width: 150px; }
.mex-group td[b-fdbl4wuzqt] { background: var(--fn-bg-muted); font-size: 11.5px; font-weight: 700; color: var(--fn-text-secondary); text-transform: uppercase; letter-spacing: .05em; }
.mex-group-count[b-fdbl4wuzqt] { color: var(--fn-text-tertiary); font-weight: 400; text-transform: none; letter-spacing: 0; }

.mex-scroll[b-fdbl4wuzqt] { overflow-x: auto; }
.mex-mono[b-fdbl4wuzqt] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.mex-ok[b-fdbl4wuzqt] { color: var(--fn-success); font-weight: 600; }
.mex-err[b-fdbl4wuzqt] { color: var(--fn-danger); font-weight: 600; }
.mex-row-action[b-fdbl4wuzqt] { width: 1%; white-space: nowrap; text-align: right; }
.mex-status-ok[b-fdbl4wuzqt] { font-size: 12.5px; color: var(--fn-success); }
.mex-status-err[b-fdbl4wuzqt] { font-size: 12.5px; color: var(--fn-danger); }

.mex-note[b-fdbl4wuzqt] { display: flex; align-items: flex-start; gap: 9px; font-size: 12px; color: var(--fn-text-secondary); background: var(--fn-accent-soft); border: 1px solid var(--fn-primary); border-radius: var(--fn-radius-sm); padding: 10px 13px; }
.mex-note[b-fdbl4wuzqt]  .lucide { width: 14px; height: 14px; color: var(--fn-primary); flex: none; margin-top: 2px; }
/* /Components/Settings/MaintenanceJobRunsForm.razor.rz.scp.css */
/* Wartung › Job-Läufe + Datenbestand — token-only, 1:1 zur abgenommenen VORSCHAU-Wartung-Job-Laeufe.html. */

.mjr[b-xmrgvnybxp] { padding-bottom: 48px; display: grid; gap: 14px; }
.mjr-deny[b-xmrgvnybxp] { padding: 6px 2px; color: var(--fn-text-secondary); font-size: 13px; }

.mjr-card[b-xmrgvnybxp] {
    border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius);
    background: var(--fn-bg-alt); overflow: hidden;
}
.mjr-card > h4[b-xmrgvnybxp] {
    display: flex; align-items: center; gap: 9px; margin: 0; padding: 11px 16px;
    background: var(--fn-bg-muted); border-bottom: var(--fn-border-width) solid var(--fn-border);
    font-size: 14px; font-weight: var(--fn-font-weight-bold);
}
.mjr-card > h4[b-xmrgvnybxp]  svg { width: 15px; height: 15px; flex: none; color: var(--fn-primary); }
.mjr-hint[b-xmrgvnybxp] { margin-left: auto; color: var(--fn-text-tertiary); font-size: 11.5px; font-weight: var(--fn-font-weight-regular); }

/* Status-Übersicht je Job */
.mjr-overview[b-xmrgvnybxp] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 14px 16px 4px; }
.mjr-job[b-xmrgvnybxp] { background: var(--fn-bg); border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius-sm); padding: 11px 13px; min-width: 0; }
.mjr-job .name[b-xmrgvnybxp] { display: flex; align-items: center; gap: 8px; font-weight: var(--fn-font-weight-medium); font-size: 12.5px; }
.mjr-job .name i[b-xmrgvnybxp] { width: 15px; height: 15px; color: var(--fn-text-secondary); }
.mjr-job .meta[b-xmrgvnybxp] { margin-top: 6px; font-size: 11.5px; color: var(--fn-text-secondary); }
.mjr-empty[b-xmrgvnybxp] { padding: 12px 16px; color: var(--fn-text-tertiary); font-size: 12.5px; }

/* Ergebnis-Badges */
.mjr-badge[b-xmrgvnybxp] {
    display: inline-flex; align-items: center; gap: 5px; border-radius: var(--fn-radius-pill);
    padding: 2px 9px 2px 6px; font-size: 11.5px; font-weight: var(--fn-font-weight-medium);
    border: var(--fn-border-width) solid var(--fn-border-strong);
}
/* Lucide ersetzt <i data-lucide> zur Laufzeit durch <svg> ohne Scope-Attribut — eine Regel auf `i` griff nie,
   das Symbol lief in voller Größe über den Badge-Rand und klebte am Text (fin-test 16.09.2026). */
.mjr-badge[b-xmrgvnybxp]  svg { width: 14px; height: 14px; flex: none; }
.mjr-badge.run[b-xmrgvnybxp] { color: var(--fn-primary); background: var(--fn-accent-soft); }
.mjr-badge.ok[b-xmrgvnybxp] { color: var(--fn-success); background: var(--fn-success-soft); }
.mjr-badge.inc[b-xmrgvnybxp] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.mjr-badge.fail[b-xmrgvnybxp] { color: var(--fn-danger); background: var(--fn-danger-soft); }

/* Filter-Chips (Muster FX-Referenzkurse) in der Toolbar-Zeile */
.mjr-filterbar[b-xmrgvnybxp] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* Innenabstand der Leiste exakt nach Vorschau `.jr-toolbar{padding:12px 16px}` — ohne ihn klebten Chips an der
   Tabelle und das Suchfeld am rechten Kartenrand (Niko 16.09.2026, Screenshot Job-Fehler.png). */
.mjr[b-xmrgvnybxp]  .mjr-toolbar { padding: 12px 16px; gap: 8px; }
.mjr[b-xmrgvnybxp]  .fn-toolbar-search { margin-left: auto; }
.fx-chip[b-xmrgvnybxp] {
    display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px; cursor: pointer;
    border-radius: var(--fn-radius-pill); border: var(--fn-border-width) solid var(--fn-border);
    background: var(--fn-bg-muted); color: var(--fn-text-secondary);
    font-size: 12.5px; font-weight: var(--fn-font-weight-medium);
}
.fx-chip.active[b-xmrgvnybxp] { background: var(--fn-accent-soft); border-color: var(--fn-accent-line); color: var(--fn-text); }
.fx-chip .c[b-xmrgvnybxp] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-tertiary); }
.fx-chip.active .c[b-xmrgvnybxp] { color: var(--fn-primary); }
/* Vorschau `.jr-filter{height:30px}`: die globale `.fn-field`-Mindesthöhe (34px) hob die Felder über die Chips;
   rechts bleibt Platz für den app-weiten Combobox-Pfeil aus `select.fn-field` (Auditor 16.09.2026). */
.mjr-jobfilter[b-xmrgvnybxp] { height: 30px; min-height: 30px; padding: 0 28px 0 10px; border-radius: var(--fn-radius-sm); font-size: 12.5px; width: auto; }

/* Lauf-Historie */
/* Auditor/UX fin-test 16.09.2026: Kopf und Filterleiste scrollten mit weg, und die Spalten richteten sich nach dem
   Inhalt — beim Filterwechsel verschob sich jede Spalte. Die Tabelle rollt jetzt in ihrer Karte (Filterleiste bleibt
   darüber stehen, der Kopf klebt oben), und jede Spalte hat einen festen Anteil. Umbrechen dürfen Jobname und
   Zeitstempel weiter — so zeigt es die abgenommene Vorschau, `nowrap` wurde dort am 16.09.2026 abgelehnt. */
.mjr-tablewrap[b-xmrgvnybxp] { border-top: var(--fn-border-width) solid var(--fn-border); overflow: auto; max-height: 640px; }
.mjr-tablewrap table.mjr-runs[b-xmrgvnybxp] { table-layout: fixed; min-width: 900px; }
.mjr-tablewrap table.mjr-runs thead th[b-xmrgvnybxp] { position: sticky; top: 0; z-index: 1; }
.mjr-tablewrap table.mjr-runs col.c-job[b-xmrgvnybxp] { width: 18%; }
.mjr-tablewrap table.mjr-runs col.c-time[b-xmrgvnybxp] { width: 12%; }
.mjr-tablewrap table.mjr-runs col.c-dur[b-xmrgvnybxp] { width: 7%; }
.mjr-tablewrap table.mjr-runs col.c-out[b-xmrgvnybxp] { width: 16%; }
/* fin-test 16.09.2026 21:43: `anywhere` an jeder Zelle brach auch die Ergebnis-Markierung mitten im Wort
   („fehlgeschl|agen“). Umbrechen dürfen nur Jobname, Zeiten und Zusammenfassung; die Markierung bleibt ganz. */
.mjr-tablewrap table.mjr-runs td.mono[b-xmrgvnybxp], .mjr-tablewrap table.mjr-runs td.mjr-sum[b-xmrgvnybxp] { overflow-wrap: anywhere; }
.mjr-tablewrap table.mjr-runs .mjr-badge[b-xmrgvnybxp] { white-space: nowrap; }
.mjr-tablewrap .mono[b-xmrgvnybxp] { font-family: var(--fn-font-mono); font-size: 12px; }
.mjr-tablewrap .dim[b-xmrgvnybxp] { color: var(--fn-text-secondary); }
.mjr-sum[b-xmrgvnybxp] { color: var(--fn-text-secondary); font-size: 12px; max-width: 420px; }
.mjr-foot[b-xmrgvnybxp] { padding: 10px 16px; color: var(--fn-text-tertiary); font-size: 11.5px; border-top: var(--fn-border-width) solid var(--fn-border); }

/* Datenbestand-Öffner */
.mjr-openrow[b-xmrgvnybxp] { display: flex; align-items: center; gap: 10px; }
.mjr-open[b-xmrgvnybxp] {
    display: inline-flex; align-items: center; gap: 8px; height: 30px; padding: 0 14px; cursor: pointer;
    background: transparent; border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: var(--fn-radius-sm); color: var(--fn-text);
    font-size: 12.5px; font-weight: var(--fn-font-weight-medium);
}
.mjr-open:hover[b-xmrgvnybxp] { background: var(--fn-hover); }
.mjr-open[b-xmrgvnybxp]  svg { width: 15px; height: 15px; flex: none; color: var(--fn-text-secondary); }

/* Dialog „Datenbestand" — schwebende Fläche (fn-surface) */
.mjr-dlg[b-xmrgvnybxp] {
    max-width: 720px; background: var(--fn-bg-alt); border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: var(--fn-radius); box-shadow: var(--fn-elevation-3); overflow: hidden;
}
.mjr-dlghead[b-xmrgvnybxp] {
    display: flex; align-items: center; justify-content: space-between; padding: 11px 16px;
    background: var(--fn-bg-muted); border-bottom: var(--fn-border-width) solid var(--fn-border);
}
.mjr-dlgtitle[b-xmrgvnybxp] { display: flex; align-items: center; gap: 9px; font-size: 14px; font-weight: var(--fn-font-weight-bold); }
.mjr-dlgtitle[b-xmrgvnybxp]  svg { width: 15px; height: 15px; flex: none; color: var(--fn-primary); }
.mjr-dlgx[b-xmrgvnybxp] { background: none; border: none; color: var(--fn-text-tertiary); cursor: pointer; padding: 2px; }
.mjr-dlgx[b-xmrgvnybxp]  svg { width: 15px; height: 15px; }
.mjr-dlgx:hover[b-xmrgvnybxp] { color: var(--fn-text); }
.mjr-dlgbody[b-xmrgvnybxp] { padding: 14px 16px; }
.mjr-dlghint[b-xmrgvnybxp] { margin: 0 0 12px; color: var(--fn-text-secondary); font-size: 12px; line-height: 1.5; }

/* Batterie-Zeilen */
.mjr-invrow[b-xmrgvnybxp] {
    display: grid; grid-template-columns: minmax(200px, 1.2fr) 1fr 90px 56px; align-items: center;
    gap: 12px; padding: 7px 0; border-bottom: var(--fn-border-width) solid var(--fn-border);
}
.mjr-invrow:last-of-type[b-xmrgvnybxp] { border-bottom: none; }
.mjr-invname[b-xmrgvnybxp] { font-size: 12.5px; font-weight: var(--fn-font-weight-medium); }
.mjr-invsub[b-xmrgvnybxp] { color: var(--fn-text-tertiary); font-weight: var(--fn-font-weight-regular); font-size: 11.5px; margin-left: 6px; }
.mjr-batt[b-xmrgvnybxp] {
    position: relative; display: block; height: 16px;
    border: var(--fn-border-width) solid var(--fn-border-strong); border-radius: 4px; background: var(--fn-input-bg);
}
.mjr-batt[b-xmrgvnybxp]::after {
    content: ""; position: absolute; right: -4px; top: 4px; width: 3px; height: 8px;
    background: var(--fn-border-strong); border-radius: 0 2px 2px 0;
}
.mjr-fill[b-xmrgvnybxp] { display: block; height: 100%; border-radius: 3px; min-width: 2px; }
.mjr-fill.ok[b-xmrgvnybxp] { background: var(--fn-success); }
.mjr-fill.mid[b-xmrgvnybxp] { background: var(--fn-warning); }
.mjr-fill.low[b-xmrgvnybxp] { background: var(--fn-danger); }
.mjr-invval[b-xmrgvnybxp] { text-align: right; color: var(--fn-text); font-family: var(--fn-font-mono); font-size: 12px; }
.mjr-invpct[b-xmrgvnybxp] { text-align: right; color: var(--fn-text-secondary); font-family: var(--fn-font-mono); font-size: 12px; }

@media (max-width: 900px) {
    .mjr-overview[b-xmrgvnybxp] { grid-template-columns: 1fr; }
}
/* /Components/Settings/MaintenanceRebuildForm.razor.rz.scp.css */
/* Wartung › Neuaufbau & Import — tokens only, VOLLE Breite (Muster MaintenanceExportForm),
   rote Gefahren-Karte nach VORSCHAU-Wartung.html. Buttons/Felder aus Fn*-Primitiven (FINCOMP001). */
.mrb[b-0i3ihd8zwo] { display: flex; flex-direction: column; gap: 16px; }
.mrb[b-0i3ihd8zwo]  .lucide { width: 16px; height: 16px; }
.mrb-deny[b-0i3ihd8zwo] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 18px 20px; color: var(--fn-text-secondary); }

.mrb-card[b-0i3ihd8zwo] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-danger);
    border-radius: var(--fn-radius-lg); padding: 18px 22px;
    display: flex; flex-direction: column; gap: 12px;
}
.mrb-card h4[b-0i3ihd8zwo] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.mrb-card h4[b-0i3ihd8zwo]  .lucide { color: var(--fn-danger); }

/* Neutrale Verlaufs-Karte (gemeinsame „Letzte Läufe" beider Bereiche). */
.mrb-card-plain[b-0i3ihd8zwo] { border-color: var(--fn-border); }
.mrb-card-plain h4[b-0i3ihd8zwo]  .lucide { color: var(--fn-primary); }
.mrb-stage[b-0i3ihd8zwo] { font-weight: 400; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12.5px; }

.mrb-warn[b-0i3ihd8zwo] { display: flex; align-items: flex-start; gap: 9px; font-size: 12px; color: var(--fn-text); background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); border-radius: var(--fn-radius-sm); padding: 10px 13px; }
.mrb-warn[b-0i3ihd8zwo]  .lucide { width: 15px; height: 15px; color: var(--fn-danger); flex: none; margin-top: 1px; }

.mrb-kv[b-0i3ihd8zwo] { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px 18px; }
.mrb-kv label[b-0i3ihd8zwo] { display: block; font-size: 11px; font-weight: 700; color: var(--fn-text-tertiary); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 5px; }
.mrb-value[b-0i3ihd8zwo] { display: flex; align-items: center; gap: 8px; min-height: 34px; font-size: 12.5px; color: var(--fn-text); flex-wrap: wrap; }

.mrb-confirm[b-0i3ihd8zwo] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mrb-confirm-hint[b-0i3ihd8zwo] { font-size: 12px; color: var(--fn-text-secondary); }
.mrb[b-0i3ihd8zwo]  .mrb-confirm-name { max-width: 220px; font-family: var(--fn-font-mono); }

.mrb-steps[b-0i3ihd8zwo] { font-size: 11.5px; color: var(--fn-text-tertiary); }
.mrb-steps b[b-0i3ihd8zwo] { color: var(--fn-text-secondary); }

.mrb-progress[b-0i3ihd8zwo] { list-style: none; margin: 0; padding: 10px 13px; background: var(--fn-bg-muted); border-radius: var(--fn-radius-sm); display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; }
.mrb-progress li.ok[b-0i3ihd8zwo] { color: var(--fn-text-secondary); }
.mrb-progress li.running[b-0i3ihd8zwo] { color: var(--fn-text); }
.mrb-progress li.failed[b-0i3ihd8zwo] { color: var(--fn-danger); }
.mrb-step-mark[b-0i3ihd8zwo] { display: inline-block; width: 18px; font-weight: 700; }
.mrb-progress li.ok .mrb-step-mark[b-0i3ihd8zwo] { color: var(--fn-success); }
.mrb-step-detail[b-0i3ihd8zwo] { color: var(--fn-text-tertiary); }

.mrb-scroll[b-0i3ihd8zwo] { overflow-x: auto; }
.mrb-mono[b-0i3ihd8zwo] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.mrb-ok[b-0i3ihd8zwo] { color: var(--fn-success); font-weight: 600; }
.mrb-err[b-0i3ihd8zwo] { color: var(--fn-danger); font-weight: 600; }
.mrb-status-ok[b-0i3ihd8zwo] { font-size: 12.5px; color: var(--fn-success); }
.mrb-status-err[b-0i3ihd8zwo] { font-size: 12.5px; color: var(--fn-danger); }
/* /Components/Settings/MaintenanceSchedulesForm.razor.rz.scp.css */
/* Wartung › Sicherungs-Zeitpläne — tokens only, VOLLE Breite (Muster MaintenanceExportForm).
   Buttons/Felder aus den Fn*-Primitiven (FINCOMP001). */
.msc[b-ojhpei2ogs] { display: flex; flex-direction: column; gap: 16px; }
.msc[b-ojhpei2ogs]  .lucide { width: 16px; height: 16px; }
.msc-deny[b-ojhpei2ogs] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 18px 20px; color: var(--fn-text-secondary); }

.msc-card[b-ojhpei2ogs] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg); padding: 18px 22px;
    display: flex; flex-direction: column; gap: 12px;
}
.msc-card h4[b-ojhpei2ogs] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.msc-card h4[b-ojhpei2ogs]  .lucide { color: var(--fn-primary); }
.msc-stage[b-ojhpei2ogs] { font-weight: 400; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12px; word-break: break-all; }

/* kv-Grid nach Vorschau (label über Wert). */
.msc-kv[b-ojhpei2ogs] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px 18px; }
.msc-kv label[b-ojhpei2ogs] { display: block; font-size: 11px; font-weight: 700; color: var(--fn-text-tertiary); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 5px; }
.msc-value[b-ojhpei2ogs] { display: flex; align-items: center; gap: 8px; min-height: 34px; font-size: 12.5px; color: var(--fn-text); }
.msc-mono[b-ojhpei2ogs] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.msc[b-ojhpei2ogs]  .msc-time { max-width: 130px; }
.msc-retention[b-ojhpei2ogs]  .msc-weekly { width: 64px; }

.msc-toggle[b-ojhpei2ogs] { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; margin: 0; }
.msc-toggle input[type="checkbox"][b-ojhpei2ogs] { width: 15px; height: 15px; accent-color: var(--fn-primary); cursor: pointer; }
.msc-pill[b-ojhpei2ogs] { display: inline-flex; border-radius: var(--fn-radius-pill); border: 1px solid var(--fn-border-strong); padding: 1px 9px; font-size: 10.5px; font-weight: 700; color: var(--fn-text-tertiary); }
.msc-pill.on[b-ojhpei2ogs] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }

/* Aktionszeile (Vorschau): rechtsbündig Testen + Speichern. */
.msc-actions[b-ojhpei2ogs] { display: flex; align-items: center; gap: 10px; }
.msc-spacer[b-ojhpei2ogs] { flex: 1 1 auto; }

.msc-scroll[b-ojhpei2ogs] { overflow-x: auto; }
.msc-ok[b-ojhpei2ogs] { color: var(--fn-success); font-weight: 600; }
.msc-err[b-ojhpei2ogs] { color: var(--fn-danger); font-weight: 600; }
.msc-status-ok[b-ojhpei2ogs] { font-size: 12.5px; color: var(--fn-success); }
.msc-status-err[b-ojhpei2ogs] { font-size: 12.5px; color: var(--fn-danger); }

.msc-note[b-ojhpei2ogs] { display: flex; align-items: flex-start; gap: 9px; font-size: 12px; color: var(--fn-text-secondary); background: var(--fn-accent-soft); border: 1px solid var(--fn-primary); border-radius: var(--fn-radius-sm); padding: 10px 13px; }
.msc-note[b-ojhpei2ogs]  .lucide { width: 14px; height: 14px; color: var(--fn-primary); flex: none; margin-top: 2px; }
/* /Components/Settings/MaintenanceWatchlistImportForm.razor.rz.scp.css */
/* Wartung › Watchlisten-Import — tokens only, VOLLE Breite (Muster MaintenanceWatchlistsForm).
   Buttons/Felder aus den Fn*-Primitiven (FINCOMP001). */
.mwi[b-n39947a0u8] { display: flex; flex-direction: column; gap: 16px; }
.mwi[b-n39947a0u8]  .lucide { width: 16px; height: 16px; }
.mwi-deny[b-n39947a0u8] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 18px 20px; color: var(--fn-text-secondary); }

.mwi-card[b-n39947a0u8] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg); padding: 18px 22px;
    display: flex; flex-direction: column; gap: 12px;
}
.mwi-card h4[b-n39947a0u8] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.mwi-card h4[b-n39947a0u8]  .lucide { color: var(--fn-primary); }
.mwi-stage[b-n39947a0u8] { font-weight: 400; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12.5px; }
.mwi-sub[b-n39947a0u8] { margin: -6px 0 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

.mwi-import[b-n39947a0u8] { display: flex; flex-direction: column; gap: 9px; background: var(--fn-bg-muted); border: 1px dashed var(--fn-border-strong); border-radius: var(--fn-radius-sm); padding: 12px 14px; }
.mwi-file[b-n39947a0u8] { position: relative; display: inline-flex; align-items: center; gap: 9px; cursor: pointer; font-size: 12.5px; color: var(--fn-text-secondary); }
.mwi-file:hover[b-n39947a0u8] { color: var(--fn-text); }
.mwi-file[b-n39947a0u8]  input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.mwi-file[b-n39947a0u8]  .lucide { color: var(--fn-primary); }
.mwi-preview[b-n39947a0u8] { font-size: 12.5px; color: var(--fn-text); }
.mwi-import-run[b-n39947a0u8] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mwi[b-n39947a0u8]  .mwi-mode { flex: 0 0 auto; width: auto; min-width: 220px; }

.mwi-scroll[b-n39947a0u8] { overflow-x: auto; }
.mwi-mono[b-n39947a0u8] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.mwi-ok[b-n39947a0u8] { color: var(--fn-success); font-weight: 600; }
.mwi-err[b-n39947a0u8] { color: var(--fn-danger); font-weight: 600; }
.mwi-status-ok[b-n39947a0u8] { font-size: 12.5px; color: var(--fn-success); }
.mwi-status-err[b-n39947a0u8] { font-size: 12.5px; color: var(--fn-danger); }

.mwi-note[b-n39947a0u8] { display: flex; align-items: flex-start; gap: 9px; font-size: 12px; color: var(--fn-text-secondary); background: var(--fn-accent-soft); border: 1px solid var(--fn-primary); border-radius: var(--fn-radius-sm); padding: 10px 13px; }
.mwi-note[b-n39947a0u8]  .lucide { width: 14px; height: 14px; color: var(--fn-primary); flex: none; margin-top: 2px; }
/* /Components/Settings/MaintenanceWatchlistRebuildForm.razor.rz.scp.css */
/* Wartung › Watchlisten Neuaufbau & Import — tokens only, VOLLE Breite
   (Muster MaintenanceRebuildForm/MaintenanceWatchlistsForm). Fn*-Primitive (FINCOMP001). */
.mwr[b-6hcwb1mhho] { display: flex; flex-direction: column; gap: 16px; }
.mwr[b-6hcwb1mhho]  .lucide { width: 16px; height: 16px; }
.mwr-deny[b-6hcwb1mhho] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 18px 20px; color: var(--fn-text-secondary); }

.mwr-card[b-6hcwb1mhho] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg); padding: 18px 22px;
    display: flex; flex-direction: column; gap: 12px;
}
.mwr-card h4[b-6hcwb1mhho] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.mwr-card h4[b-6hcwb1mhho]  .lucide { color: var(--fn-primary); }
.mwr-card-danger[b-6hcwb1mhho] { border-color: var(--fn-danger); }
.mwr-card-danger h4[b-6hcwb1mhho]  .lucide { color: var(--fn-danger); }
.mwr-stage[b-6hcwb1mhho] { font-weight: 400; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12.5px; }
.mwr-sub[b-6hcwb1mhho] { margin: -6px 0 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

.mwr-warn[b-6hcwb1mhho] { display: flex; align-items: flex-start; gap: 9px; font-size: 12px; color: var(--fn-text); background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); border-radius: var(--fn-radius-sm); padding: 10px 13px; }
.mwr-warn[b-6hcwb1mhho]  .lucide { width: 15px; height: 15px; color: var(--fn-danger); flex: none; margin-top: 1px; }

.mwr-kv[b-6hcwb1mhho] { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px 18px; }
.mwr-kv label[b-6hcwb1mhho] { display: block; font-size: 11px; font-weight: 700; color: var(--fn-text-tertiary); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 5px; }
.mwr-value[b-6hcwb1mhho] { display: flex; align-items: center; gap: 8px; min-height: 34px; font-size: 12.5px; color: var(--fn-text); flex-wrap: wrap; }

.mwr-confirm[b-6hcwb1mhho] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mwr-confirm-hint[b-6hcwb1mhho] { font-size: 12px; color: var(--fn-text-secondary); }
.mwr[b-6hcwb1mhho]  .mwr-confirm-name { max-width: 220px; font-family: var(--fn-font-mono); }

.mwr-import[b-6hcwb1mhho] { display: flex; flex-direction: column; gap: 9px; background: var(--fn-bg-muted); border: 1px dashed var(--fn-border-strong); border-radius: var(--fn-radius-sm); padding: 12px 14px; }
.mwr-file[b-6hcwb1mhho] { position: relative; display: inline-flex; align-items: center; gap: 9px; cursor: pointer; font-size: 12.5px; color: var(--fn-text-secondary); }
.mwr-file:hover[b-6hcwb1mhho] { color: var(--fn-text); }
.mwr-file[b-6hcwb1mhho]  input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.mwr-file[b-6hcwb1mhho]  .lucide { color: var(--fn-primary); }
.mwr-preview[b-6hcwb1mhho] { font-size: 12.5px; color: var(--fn-text); }
.mwr-import-run[b-6hcwb1mhho] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mwr[b-6hcwb1mhho]  .mwr-mode { flex: 0 0 auto; width: auto; min-width: 220px; }

.mwr-scroll[b-6hcwb1mhho] { overflow-x: auto; }
.mwr-mono[b-6hcwb1mhho] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.mwr-ok[b-6hcwb1mhho] { color: var(--fn-success); font-weight: 600; }
.mwr-err[b-6hcwb1mhho] { color: var(--fn-danger); font-weight: 600; }
.mwr-status-ok[b-6hcwb1mhho] { font-size: 12.5px; color: var(--fn-success); }
.mwr-status-err[b-6hcwb1mhho] { font-size: 12.5px; color: var(--fn-danger); }
/* /Components/Settings/MaintenanceWatchlistsForm.razor.rz.scp.css */
/* Wartung › Watchlisten-Sicherung — tokens only, VOLLE Breite (Muster MaintenanceExportForm).
   Buttons/Felder aus den Fn*-Primitiven (FINCOMP001). */
.mwl[b-27lbraedn0] { display: flex; flex-direction: column; gap: 16px; }
.mwl[b-27lbraedn0]  .lucide { width: 16px; height: 16px; }
.mwl-deny[b-27lbraedn0] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 18px 20px; color: var(--fn-text-secondary); }

.mwl-card[b-27lbraedn0] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg); padding: 18px 22px;
    display: flex; flex-direction: column; gap: 12px;
}
.mwl-card h4[b-27lbraedn0] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.mwl-card h4[b-27lbraedn0]  .lucide { color: var(--fn-primary); }
.mwl-stage[b-27lbraedn0] { font-weight: 400; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12.5px; }
.mwl-sub[b-27lbraedn0] { margin: -6px 0 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

.mwl-actions[b-27lbraedn0] { display: flex; align-items: center; gap: 10px; }
.mwl-spacer[b-27lbraedn0] { flex: 1 1 auto; }
.mwl-refresh[b-27lbraedn0] { width: 34px; height: 34px; flex: none; border-radius: 8px; border: 1px solid var(--fn-border-strong); background: var(--fn-bg-muted); color: var(--fn-text-secondary); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.mwl-refresh:hover:not(:disabled)[b-27lbraedn0] { color: var(--fn-text); border-color: var(--fn-primary); }
.mwl-refresh:disabled[b-27lbraedn0] { opacity: .5; cursor: not-allowed; }
.mwl-refresh[b-27lbraedn0]  .lucide { width: 15px; height: 15px; }
.mwl-refresh.spin[b-27lbraedn0]  .lucide { animation: mwl-spin-b-27lbraedn0 1s linear infinite; }
@keyframes mwl-spin-b-27lbraedn0 { to { transform: rotate(360deg); } }

/* Import-Bereich: Datei-Auswahl als Karte, danach Vorschau + Strategie. */
.mwl-import[b-27lbraedn0] { display: flex; flex-direction: column; gap: 9px; background: var(--fn-bg-muted); border: 1px dashed var(--fn-border-strong); border-radius: var(--fn-radius-sm); padding: 12px 14px; }
.mwl-file[b-27lbraedn0] { position: relative; display: inline-flex; align-items: center; gap: 9px; cursor: pointer; font-size: 12.5px; color: var(--fn-text-secondary); }
.mwl-file:hover[b-27lbraedn0] { color: var(--fn-text); }
.mwl-file[b-27lbraedn0]  input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.mwl-file[b-27lbraedn0]  .lucide { color: var(--fn-primary); }
.mwl-preview[b-27lbraedn0] { font-size: 12.5px; color: var(--fn-text); }
.mwl-import-run[b-27lbraedn0] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mwl[b-27lbraedn0]  .mwl-mode { flex: 0 0 auto; width: auto; min-width: 220px; }

.mwl-scroll[b-27lbraedn0] { overflow-x: auto; }
.mwl-mono[b-27lbraedn0] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.mwl-ok[b-27lbraedn0] { color: var(--fn-success); font-weight: 600; }
.mwl-err[b-27lbraedn0] { color: var(--fn-danger); font-weight: 600; }
.mwl-row-action[b-27lbraedn0] { width: 1%; white-space: nowrap; text-align: right; }
.mwl-status-ok[b-27lbraedn0] { font-size: 12.5px; color: var(--fn-success); }
.mwl-status-err[b-27lbraedn0] { font-size: 12.5px; color: var(--fn-danger); }

.mwl-note[b-27lbraedn0] { display: flex; align-items: flex-start; gap: 9px; font-size: 12px; color: var(--fn-text-secondary); background: var(--fn-accent-soft); border: 1px solid var(--fn-primary); border-radius: var(--fn-radius-sm); padding: 10px 13px; }
.mwl-note[b-27lbraedn0]  .lucide { width: 14px; height: 14px; color: var(--fn-primary); flex: none; margin-top: 2px; }
/* /Components/Settings/ModuleGroupsForm.razor.rz.scp.css */
/* Modulgruppen-Verwaltung (KONZEPT-Modulberechtigungen) — nur --fn-*-Tokens, Toggles statt Checkboxen. */
.mg[b-i5x9qa5t2p] { display:flex; flex-direction:column; gap:16px; }
.mg[b-i5x9qa5t2p]  svg { width:16px; height:16px; }

/* Kopfzeile: geteilte FnListToolbar (Suchen + Aktualisieren + „➕ Neue Gruppe") — Konzept T1. */

.mg-empty[b-i5x9qa5t2p] { color:var(--fn-text-tertiary); font-size:13px; padding:14px 2px; }
.mg-msg[b-i5x9qa5t2p] { font-size:12.5px; border-radius:var(--fn-radius-sm); padding:8px 12px; }
.mg-msg.err[b-i5x9qa5t2p] { color:var(--fn-danger); background:var(--fn-danger-soft); border:1px solid var(--fn-danger); }
.mg-msg.ok[b-i5x9qa5t2p] { color:var(--fn-success); background:var(--fn-success-soft); border:1px solid var(--fn-success); }

/* Karten-Raster 1:1 FlowDesk (KONZEPT-Modulverwaltung-…-FlowDesk-Neubau): volle Breite, mehrspaltig. */
.mg-grid[b-i5x9qa5t2p] { display:grid; grid-template-columns:repeat(auto-fill, minmax(420px, 1fr)); gap:16px; }
.mg-card[b-i5x9qa5t2p] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); overflow:hidden; }
.mg-h[b-i5x9qa5t2p] { display:flex; align-items:center; gap:10px; padding:12px 14px; background:var(--fn-bg); border-bottom:1px solid var(--fn-border); }
/* Gruppen-Avatar 1:1 FlowDesk: 36px Kreis, primary-Fläche, Icon in on-primary. */
.mg-ico[b-i5x9qa5t2p] { width:36px; height:36px; border-radius:50%; background:var(--fn-primary); color:var(--fn-on-primary); display:flex; align-items:center; justify-content:center; flex:none; }
.mg-name[b-i5x9qa5t2p] { font-size:13.5px; font-weight:600; flex:1; color:var(--fn-text); }
.mg-rename[b-i5x9qa5t2p] { flex:1; font:inherit; font-size:13px; color:var(--fn-text); background:var(--fn-input-bg); border:1px solid var(--fn-primary); border-radius:7px; padding:5px 9px; }
.mg-act[b-i5x9qa5t2p] { display:flex; gap:8px; color:var(--fn-text-tertiary); }
.mg-act[b-i5x9qa5t2p]  svg { cursor:pointer; }
.mg-act[b-i5x9qa5t2p]  svg:hover { color:var(--fn-text); }
.mg-ic[b-i5x9qa5t2p] { background:transparent; border:1px solid var(--fn-border); border-radius:7px; color:var(--fn-text-secondary); cursor:pointer; padding:4px 7px; display:inline-flex; }
.mg-ic[b-i5x9qa5t2p]  svg { width:14px; height:14px; }
.mg-ic.ok[b-i5x9qa5t2p] { color:var(--fn-on-primary); background:var(--fn-primary); border-color:var(--fn-primary); }
.mg-name-in[b-i5x9qa5t2p] { flex:1 1 0; min-width:0; font:inherit; font-size:12.5px; color:var(--fn-text); background:var(--fn-input-bg); border:1px solid var(--fn-input-border); border-radius:7px; padding:5px 9px; }

.mg-rows[b-i5x9qa5t2p] { padding:8px 0; }
/* Modulzeile 1:1 FlowDesk benutzer-modul-zeile: padding .35rem 1rem, voller Breite, Hover bg-muted. */
.mg-row[b-i5x9qa5t2p] { display:flex; align-items:center; gap:9px; padding:6px 16px; font-size:12.5px; }
.mg-row:hover[b-i5x9qa5t2p] { background:var(--fn-bg-muted); }
/* Modulzeile = Checkbox (wie FlowDesk-Referenz), nicht Toggle */
.mg-check[b-i5x9qa5t2p] { width:18px; height:18px; border-radius:4px; border:1.5px solid var(--fn-border-strong); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; flex:none; color:var(--fn-on-primary); }
.mg-check.on[b-i5x9qa5t2p] { background:var(--fn-primary); border-color:var(--fn-primary); }
.mg-check[b-i5x9qa5t2p]  svg { width:13px; height:13px; }
.mg-row.off[b-i5x9qa5t2p] { opacity:.5; }
.mg-row .mi[b-i5x9qa5t2p] { color:var(--fn-text-secondary); flex:none; }
.mg-row .mn[b-i5x9qa5t2p] { flex:1; color:var(--fn-text); }
.mg-row.off .mn[b-i5x9qa5t2p] { color:var(--fn-text-tertiary); }

/* Stufen-Badge 1:1 wie FlowDesk: dezente Akzent-Pille (accent-soft + primary), KEIN Grün/Teal. */
.lvl[b-i5x9qa5t2p] { font-size:11px; font-family:var(--fn-font-mono); border-radius:8px; padding:1px 8px; background:var(--fn-accent-soft); color:var(--fn-primary); white-space:nowrap; }
.lvl.full[b-i5x9qa5t2p], .lvl.part[b-i5x9qa5t2p] { background:var(--fn-accent-soft); color:var(--fn-primary); }

.gear[b-i5x9qa5t2p] { width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--fn-border-strong); border-radius:4px; color:var(--fn-text-secondary); cursor:pointer; flex:none; }
.gear.on[b-i5x9qa5t2p] { color:var(--fn-primary); border-color:var(--fn-accent-line); background:var(--fn-accent-soft); }

.mini-toggle[b-i5x9qa5t2p] { width:34px; height:20px; border-radius:var(--fn-radius-pill); background:var(--fn-primary); position:relative; flex:none; cursor:pointer; }
.mini-toggle .k[b-i5x9qa5t2p] { position:absolute; top:2px; left:16px; width:16px; height:16px; border-radius:50%; background:var(--fn-text); transition:left .15s; }
.mini-toggle.off[b-i5x9qa5t2p] { background:var(--fn-border-strong); }
.mini-toggle.off .k[b-i5x9qa5t2p] { left:2px; }

.fnpanel[b-i5x9qa5t2p] { background:var(--fn-surface-alt); border:1px solid var(--fn-border); border-radius:6px; padding:10px 14px; margin:6px 16px 8px 42px; }
.fnp-all[b-i5x9qa5t2p] { display:flex; align-items:center; gap:14px; }
.fnp-all .t[b-i5x9qa5t2p] { flex:1; }
.fnp-all .t b[b-i5x9qa5t2p] { color:var(--fn-primary); font-size:12.5px; }
.fnp-all .t small[b-i5x9qa5t2p] { display:block; color:var(--fn-text-tertiary); font-size:10.5px; }
.sel[b-i5x9qa5t2p] { font:inherit; font-size:12px; color:var(--fn-text); background:var(--fn-input-bg); border:1px solid var(--fn-input-border); border-radius:var(--fn-radius-sm); padding:6px 9px; min-width:120px; }
.sel:disabled[b-i5x9qa5t2p] { opacity:.5; }
.fnp-label[b-i5x9qa5t2p] { font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--fn-text-tertiary); margin:13px 0 2px; }
.fnp-list.off[b-i5x9qa5t2p] { opacity:.45; }
.fnp-fn[b-i5x9qa5t2p] { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:7px 0; border-top:1px solid var(--fn-border); }
.fnp-fn .fname[b-i5x9qa5t2p] { font-size:12.5px; color:var(--fn-text); }
.fnp-note[b-i5x9qa5t2p] { font-size:11.5px; color:var(--fn-text-tertiary); margin-top:10px; }
/* /Components/Settings/NotificationJobsForm.razor.rz.scp.css */
/* Volle Breite wie alle Slices (Niko 08.07.: kein eigenes max-width). Die Feld-Grids
   behalten ihre min/max-Spalten (Ultrawide-Schutz, UX-Auflage). */
.nj[b-6u0oe69ze1] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.nj-hint[b-6u0oe69ze1] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 13px;
    line-height: 1.55;
}

.nj-card[b-6u0oe69ze1] {
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-md);
    background: var(--fn-bg-alt);
    padding: 16px;
}

.nj-head[b-6u0oe69ze1] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.nj-head h4[b-6u0oe69ze1] {
    margin: 0 0 4px;
    font-size: 14px;
    font-weight: 700;
    color: var(--fn-text);
    display: flex;
    align-items: center;
    gap: 9px;
}

.nj-head h4[b-6u0oe69ze1]  .lucide { width: 16px; height: 16px; color: var(--fn-primary); }

.nj-head p[b-6u0oe69ze1] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 12.5px;
    line-height: 1.45;
}

.nj-grid[b-6u0oe69ze1] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 12px;
}

.nj-grid label[b-6u0oe69ze1] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: var(--fn-text-secondary);
    font-size: 12px;
}

/* Felder nutzen die geteilte fn-field/fn-input-Optik (fn-forms.css, FINCOMP001). */
/* Toggle nach dem etablierten Checkbox+Pill-Muster (wie Sicherungs-Zeitplaene). */
.nj-toggle[b-6u0oe69ze1] { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; cursor: pointer; margin: 0; }
.nj-toggle input[type="checkbox"][b-6u0oe69ze1] { width: 15px; height: 15px; accent-color: var(--fn-primary); cursor: pointer; }
.nj-pill[b-6u0oe69ze1] { display: inline-flex; border-radius: var(--fn-radius-pill); border: 1px solid var(--fn-border-strong); padding: 1px 9px; font-size: 10.5px; font-weight: 700; color: var(--fn-text-tertiary); }
.nj-pill.on[b-6u0oe69ze1] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }

.nj-real[b-6u0oe69ze1] {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-top: 14px;
    padding: 12px;
    border: 1px solid var(--fn-warning);
    border-radius: var(--fn-radius-md);
    background: var(--fn-warning-soft);
}

.nj-real b[b-6u0oe69ze1] {
    display: block;
    color: var(--fn-text);
    margin-bottom: 3px;
}

.nj-real p[b-6u0oe69ze1] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 12.5px;
    line-height: 1.45;
}

.nj-runs[b-6u0oe69ze1] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 10px;
}

.nj-run[b-6u0oe69ze1] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg);
    padding: 10px 12px;
    font-size: 12px;
    color: var(--fn-text-secondary);
}

.nj-run b[b-6u0oe69ze1] { color: var(--fn-text); font-size: 13px; }
.nj-run .ok[b-6u0oe69ze1] { color: var(--fn-success); }
.nj-run .bad[b-6u0oe69ze1] { color: var(--fn-danger); }

/* Probelauf-Aktionszeile in der Verlaufs-Karte: rechtsbündig. Der Speichern-Footer
   kommt aus FnFormFooter (Panel-Ende). */
.nj-actions[b-6u0oe69ze1] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.nj-msg[b-6u0oe69ze1] { font-size: 12.5px; }
.nj-msg.ok[b-6u0oe69ze1] { color: var(--fn-success); }
.nj-msg.err[b-6u0oe69ze1] { color: var(--fn-danger); }
/* /Components/Settings/OpenPositionNotificationPreferencesForm.razor.rz.scp.css */
/* Aufbau 1:1 wie Trading Simulation (.sim-page/.sim-scroll + geteiltes .fn-tiles-dock, Niko 11.07.2026):
   Flex-Spalte, die die Flaeche fuellt; der Inhalt scrollt in .opn-scroll, das Kachel-Dock ist unten
   angedockt (flex:0 0 auto) und bewegt sich beim Kanalwechsel NICHT. */
.opn[b-ku1j58bd89] {
    display:flex;
    flex-direction:column;
    height:100%;
    min-height:0;
    color:var(--fn-text);
}
.opn-scroll[b-ku1j58bd89] { flex:1 1 auto; min-height:0; overflow-y:auto; display:flex; flex-direction:column; gap:14px; padding-bottom:6px; }
.opn[b-ku1j58bd89]  svg { width:15px; height:15px; }

.opn-empty[b-ku1j58bd89], .opn-global[b-ku1j58bd89], .opn-detail[b-ku1j58bd89], .opn-rail[b-ku1j58bd89] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:8px; }
.opn-empty[b-ku1j58bd89] { padding:16px; color:var(--fn-text-secondary); }

.opn-global[b-ku1j58bd89] { display:grid; grid-template-columns:minmax(320px, .9fr) minmax(320px, 1fr); gap:12px; padding:14px; }
.opn-master[b-ku1j58bd89] { display:flex; align-items:center; gap:12px; min-width:0; padding:8px 0; cursor:pointer; }
.opn-master input[b-ku1j58bd89] { position:absolute; opacity:0; pointer-events:none; }
.opn-switch[b-ku1j58bd89] { width:48px; height:24px; flex:0 0 auto; border-radius:999px; background:var(--fn-border-strong); border:1px solid var(--fn-border-strong); position:relative; }
.opn-switch[b-ku1j58bd89]::after { content:""; position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:var(--fn-text-secondary); transition:transform .16s ease, background .16s ease; }
.opn-master input:checked + .opn-switch[b-ku1j58bd89] { background:var(--fn-success-soft); border-color:var(--fn-success); }
.opn-master input:checked + .opn-switch[b-ku1j58bd89]::after { transform:translateX(23px); background:var(--fn-success); }
.opn-master span:last-child[b-ku1j58bd89] { display:flex; flex-direction:column; gap:4px; min-width:0; }
.opn-master b[b-ku1j58bd89] { font-size:14px; font-weight:700; color:var(--fn-text); }
.opn-master small[b-ku1j58bd89], .opn-privacy span[b-ku1j58bd89] { color:var(--fn-text-secondary); font-size:12px; line-height:1.45; }
.opn-privacy[b-ku1j58bd89] { display:flex; flex-direction:column; justify-content:center; gap:5px; padding:10px 12px; background:var(--fn-bg); border:1px solid var(--fn-border); border-radius:8px; }
.opn-privacy b[b-ku1j58bd89], .opn-section-title[b-ku1j58bd89] { color:var(--fn-text-tertiary); font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }

.opn-detail[b-ku1j58bd89] { display:flex; flex-direction:column; }
.opn-detail-head[b-ku1j58bd89] { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px; background:var(--fn-bg); border-bottom:1px solid var(--fn-border); }
.opn-title[b-ku1j58bd89] { display:flex; align-items:center; gap:10px; min-width:0; }
.opn-title > span:last-child[b-ku1j58bd89] { display:flex; flex-direction:column; gap:3px; min-width:0; }
.opn-title b[b-ku1j58bd89] { color:var(--fn-text); font-size:14px; font-weight:700; }
.opn-title small[b-ku1j58bd89] { color:var(--fn-text-secondary); font-size:12px; font-family:var(--fn-font-mono); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.opn-icon[b-ku1j58bd89] { display:inline-flex; align-items:center; justify-content:center; width:31px; height:31px; flex:0 0 auto; border-radius:7px; color:var(--fn-primary); background:var(--fn-accent-soft); border:1px solid var(--fn-accent-line); font-size:11px; font-weight:800; font-family:var(--fn-font-mono); }
.opn-badges[b-ku1j58bd89] { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.opn-badge[b-ku1j58bd89] { display:inline-flex; align-items:center; min-height:22px; border-radius:999px; padding:3px 8px; border:1px solid var(--fn-border); color:var(--fn-text-secondary); background:var(--fn-bg-alt); font-size:10.5px; font-weight:800; text-transform:uppercase; }
.opn-badge.ok[b-ku1j58bd89] { border-color:var(--fn-success); color:var(--fn-success); background:var(--fn-success-soft); }
.opn-badge.warn[b-ku1j58bd89] { border-color:var(--fn-warning); color:var(--fn-warning); background:var(--fn-warning-soft); }

.opn-detail-body[b-ku1j58bd89] { display:grid; grid-template-columns:minmax(300px, .78fr) minmax(420px, 1fr); }
.opn-config[b-ku1j58bd89], .opn-routing[b-ku1j58bd89] { display:flex; flex-direction:column; gap:12px; min-height:0; padding:16px; }
.opn-config[b-ku1j58bd89] { border-right:1px solid var(--fn-border); }
.opn-section-title[b-ku1j58bd89] { margin:0 0 2px; }
.opn-readonly[b-ku1j58bd89], .opn-external[b-ku1j58bd89], .opn-short-option[b-ku1j58bd89] { display:flex; flex-direction:column; gap:6px; padding:10px 12px; background:var(--fn-bg); border:1px solid var(--fn-border); border-radius:8px; }
.opn-target-value[b-ku1j58bd89] { color:var(--fn-text); font-size:12.5px; font-family:var(--fn-font-mono); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.opn-readonly > span[b-ku1j58bd89] { color:var(--fn-text-tertiary); font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.opn-readonly b[b-ku1j58bd89] { color:var(--fn-text); font-size:12.5px; font-family:var(--fn-font-mono); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.opn-readonly small[b-ku1j58bd89], .opn-external small[b-ku1j58bd89], .opn-cost span[b-ku1j58bd89] { color:var(--fn-text-secondary); font-size:11.5px; line-height:1.4; }
.opn-readonly select[b-ku1j58bd89], .opn-readonly input[type="email"][b-ku1j58bd89] { width:100%; color:var(--fn-text); background:var(--fn-input-bg); border:1px solid var(--fn-input-border); border-radius:7px; padding:8px 10px; font:inherit; font-size:12px; }
.opn-readonly input[type="email"][b-ku1j58bd89] { font-family:var(--fn-font-mono); }
.opn-readonly input[type="email"]:focus[b-ku1j58bd89] { outline:none; border-color:var(--fn-primary); box-shadow:0 0 0 1px var(--fn-primary) inset; }
.opn-external[b-ku1j58bd89] { position:relative; padding-left:40px; }
.opn-external input[b-ku1j58bd89] { position:absolute; left:13px; top:14px; width:16px; height:16px; accent-color:var(--fn-success); }
.opn-external.disabled[b-ku1j58bd89] { opacity:.6; }
.opn-external b[b-ku1j58bd89], .opn-cost b[b-ku1j58bd89], .opn-short-option b[b-ku1j58bd89] { color:var(--fn-text); font-size:12.5px; }
.opn-cost[b-ku1j58bd89] { display:flex; flex-direction:column; gap:4px; padding:10px 12px; color:var(--fn-warning); background:var(--fn-warning-soft); border:1px solid var(--fn-warning); border-radius:8px; }
.opn-short-option[b-ku1j58bd89] { display:grid; grid-template-columns:auto minmax(0, 1fr) auto; align-items:center; gap:10px; cursor:pointer; }
.opn-short-option input[b-ku1j58bd89] { position:absolute; opacity:0; pointer-events:none; }
.opn-short-option.disabled[b-ku1j58bd89] { opacity:.6; cursor:default; }
.opn-short-option span:nth-child(3)[b-ku1j58bd89] { display:flex; flex-direction:column; gap:4px; min-width:0; }
.opn-short-option small[b-ku1j58bd89] { color:var(--fn-text-secondary); font-size:11.5px; line-height:1.35; }
.opn-short-option strong[b-ku1j58bd89] { color:var(--fn-primary); font-size:11px; font-weight:800; text-transform:uppercase; }
.opn-mini-switch[b-ku1j58bd89] { width:42px; height:22px; flex:0 0 auto; border-radius:999px; background:var(--fn-border-strong); border:1px solid var(--fn-border-strong); position:relative; }
.opn-mini-switch[b-ku1j58bd89]::after { content:""; position:absolute; top:3px; left:3px; width:14px; height:14px; border-radius:50%; background:var(--fn-text-secondary); transition:transform .16s ease, background .16s ease; }
.opn-short-option input:checked + .opn-mini-switch[b-ku1j58bd89] { background:var(--fn-success-soft); border-color:var(--fn-success); }
.opn-short-option input:checked + .opn-mini-switch[b-ku1j58bd89]::after { transform:translateX(20px); background:var(--fn-success); }
.opn-actions[b-ku1j58bd89] { display:flex; gap:8px; flex-wrap:wrap; }
.opn-secondary[b-ku1j58bd89] { color:var(--fn-text); background:var(--fn-bg); border:1px solid var(--fn-border); border-radius:7px; padding:8px 10px; font:inherit; font-size:12px; font-weight:700; }
.opn-secondary:disabled[b-ku1j58bd89] { opacity:.55; cursor:not-allowed; }
.opn-verification[b-ku1j58bd89] { display:flex; flex-direction:column; gap:5px; padding:9px 11px; border:1px solid var(--fn-border); border-radius:7px; background:var(--fn-bg); }
.opn-verification span[b-ku1j58bd89] { color:var(--fn-text-tertiary); font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.opn-verification input[b-ku1j58bd89] { width:180px; max-width:100%; color:var(--fn-text); background:var(--fn-input-bg); border:1px solid var(--fn-input-border); border-radius:7px; padding:8px 10px; font:inherit; font-size:12px; font-family:var(--fn-font-mono); }
.opn-verification input:focus[b-ku1j58bd89] { outline:none; border-color:var(--fn-primary); box-shadow:0 0 0 1px var(--fn-primary) inset; }
.opn-verification input:disabled[b-ku1j58bd89] { opacity:.55; cursor:not-allowed; }
.opn-verify-row[b-ku1j58bd89] { display:flex; align-items:center; gap:8px; }
/* ✓-Bestaetigen-Button neben dem Code-Feld (Niko 11.07.2026): bestaetigt den Code, danach Feld read-only. */
.opn-verify-save[b-ku1j58bd89] { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; flex:0 0 auto;
    border-radius:8px; border:1px solid var(--fn-primary); background:var(--fn-accent-soft); color:var(--fn-primary); cursor:pointer; }
.opn-verify-save:hover:not(:disabled)[b-ku1j58bd89] { background:var(--fn-primary); color:var(--fn-on-primary); }
.opn-verify-save:disabled[b-ku1j58bd89] { opacity:.5; cursor:not-allowed; }
.opn-verify-save.done[b-ku1j58bd89] { border-color:var(--fn-success); background:var(--fn-success-soft); color:var(--fn-success); opacity:1; }
.opn-verify-save[b-ku1j58bd89]  .lucide { width:16px; height:16px; }
.opn-verification small.ok[b-ku1j58bd89] { color:var(--fn-success); font-weight:700; }
.opn-action-status[b-ku1j58bd89] { padding:8px 10px; border:1px solid var(--fn-success); border-radius:7px; background:var(--fn-success-soft); color:var(--fn-success); font-size:11.5px; font-weight:700; }
.opn-action-hint[b-ku1j58bd89] { padding:9px 11px; border:1px solid var(--fn-accent-line); border-radius:7px; background:var(--fn-accent-soft); color:var(--fn-text-secondary); font-size:11.5px; line-height:1.4; }
.opn-action-hint.warn[b-ku1j58bd89] { border-color:var(--fn-warning); background:var(--fn-warning-soft); color:var(--fn-warning); font-weight:700; }

.opn-routes[b-ku1j58bd89] { display:flex; flex-direction:column; gap:8px; }
.opn-route[b-ku1j58bd89] { display:grid; grid-template-columns:minmax(0, 1fr) auto auto; align-items:center; gap:12px; min-height:54px; padding:10px 12px; background:var(--fn-bg); border:1px solid var(--fn-border); border-radius:8px; cursor:pointer; }
.opn-route.disabled[b-ku1j58bd89] { opacity:.55; cursor:default; }
.opn-route span:first-child[b-ku1j58bd89] { display:flex; flex-direction:column; gap:4px; min-width:0; }
.opn-route b[b-ku1j58bd89] { color:var(--fn-text); font-size:12.5px; }
.opn-route small[b-ku1j58bd89] { color:var(--fn-text-secondary); font-size:11px; line-height:1.35; }
.opn-route input[b-ku1j58bd89] { position:absolute; opacity:0; pointer-events:none; }
.opn-route-switch[b-ku1j58bd89] { width:36px; height:18px; border-radius:999px; border:1px solid var(--fn-border-strong); background:var(--fn-bg-alt); position:relative; }
.opn-route-switch[b-ku1j58bd89]::after { content:""; position:absolute; top:2px; left:2px; width:12px; height:12px; border-radius:50%; background:var(--fn-text-tertiary); transition:transform .16s ease, background .16s ease; }
.opn-route input:checked + .opn-route-switch[b-ku1j58bd89] { border-color:var(--fn-success); background:var(--fn-success-soft); }
.opn-route input:checked + .opn-route-switch[b-ku1j58bd89]::after { transform:translateX(17px); background:var(--fn-success); }

/* Handelsart je Positionsereignis (Niko 10.09.2026). Sie steht EINGERUECKT unter ihrer Regel,
   damit die Zuordnung ohne Erklaerung sichtbar ist: die drei Felder gehoeren zu der Zeile
   darueber, nicht zur naechsten. Kein neues Bedienelement - dasselbe Kaestchen wie sonst. */
.opn-route-modes[b-ku1j58bd89] { display:flex; flex-wrap:wrap; gap:8px; margin:-4px 0 2px 12px; padding:0 12px 8px; }
.opn-mode[b-ku1j58bd89] { display:inline-flex; align-items:center; gap:6px; height:26px; padding:0 10px; background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius-pill); color:var(--fn-text-secondary); font-size:11.5px; cursor:pointer; }
.opn-mode.disabled[b-ku1j58bd89] { opacity:.55; cursor:default; }
.opn-mode input[b-ku1j58bd89] { width:13px; height:13px; margin:0; accent-color:var(--fn-primary); }
.opn-mode:has(input:checked)[b-ku1j58bd89] { border-color:var(--fn-accent-line); background:var(--fn-accent-soft); color:var(--fn-primary); }

/* Kachel-Leiste unten angedockt (flex:0 0 auto) - Inhalt scrollt in .opn-scroll darueber, die Leiste bleibt
   fest am unteren Rand und springt beim Wechsel des Benachrichtigungstyps nicht (Niko 11.07.2026). */
.opn-rail[b-ku1j58bd89] { flex:0 0 auto; overflow:hidden; padding:10px 10px 12px; }
.opn-tiles[b-ku1j58bd89] { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(260px, 310px); gap:10px; overflow-x:auto; padding:2px 2px 8px; scroll-snap-type:x proximity; scrollbar-color:var(--fn-border-strong) transparent; }
.opn-tile[b-ku1j58bd89] { display:flex; flex-direction:column; align-items:flex-start; gap:7px; min-height:104px; text-align:left; color:var(--fn-text); background:var(--fn-bg); border:1px solid var(--fn-border); border-radius:8px; padding:12px 14px; cursor:pointer; }
.opn-tile[b-ku1j58bd89] { scroll-snap-align:start; }
.opn-tile.active[b-ku1j58bd89] { border-color:var(--fn-primary); box-shadow:0 0 0 1px var(--fn-primary) inset; }
.opn-tile.add[b-ku1j58bd89] { border-style:dashed; cursor:not-allowed; opacity:.8; }
.opn-tile-title[b-ku1j58bd89] { color:var(--fn-text); font-size:12.5px; font-weight:700; }
.opn-tile-title b[b-ku1j58bd89] { color:var(--fn-primary); font-family:var(--fn-font-mono); }
.opn-tile-address[b-ku1j58bd89] { color:var(--fn-text-secondary); font-size:11.5px; font-family:var(--fn-font-mono); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
.opn-tile-state[b-ku1j58bd89] { color:var(--fn-warning); font-size:11px; font-weight:700; }
.opn-tile-state.ok[b-ku1j58bd89] { color:var(--fn-success); }
.opn-open[b-ku1j58bd89] { margin-top:auto; color:var(--fn-primary); font-size:12px; font-weight:700; }

.opn-detail-actions[b-ku1j58bd89] { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 16px; border-top:1px solid var(--fn-border); background:var(--fn-bg); }
.opn-detail-actions small[b-ku1j58bd89] { color:var(--fn-text-tertiary); font-size:11px; line-height:1.35; }
.opn-save[b-ku1j58bd89] { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:34px; color:var(--fn-on-primary); background:var(--fn-primary); border:1px solid var(--fn-primary); border-radius:7px; padding:8px 13px; font:inherit; font-size:12.5px; font-weight:700; cursor:pointer; }
.opn-save:disabled[b-ku1j58bd89] { opacity:.5; cursor:not-allowed; }
.opn-save[b-ku1j58bd89]  svg { width:14px; height:14px; }

@media (max-width: 980px) {
    .opn[b-ku1j58bd89] { min-height:620px; }
    .opn-detail[b-ku1j58bd89] { min-height:520px; }
    .opn-global[b-ku1j58bd89], .opn-detail-body[b-ku1j58bd89] { grid-template-columns:1fr; }
    .opn-config[b-ku1j58bd89] { border-right:0; border-bottom:1px solid var(--fn-border); }
}

@media (max-width: 680px) {
    .opn[b-ku1j58bd89] { display:flex; flex-direction:column; height:auto; min-height:0; }
    .opn-detail[b-ku1j58bd89] { min-height:0; overflow:visible; }
    .opn-detail-body[b-ku1j58bd89] { overflow:visible; }
    .opn-detail-head[b-ku1j58bd89], .opn-detail-actions[b-ku1j58bd89] { flex-direction:column; align-items:stretch; }
    .opn-badges[b-ku1j58bd89] { justify-content:flex-start; }
    .opn-tiles[b-ku1j58bd89] { grid-auto-columns:minmax(230px, 82vw); }
}
/* /Components/Settings/OpenPositionNotificationTextsForm.razor.rz.scp.css */
.nt[b-v3rx41b9s3] { display:flex; flex-direction:column; gap:16px; }
.nt[b-v3rx41b9s3]  svg { width:16px; height:16px; }

.nt-bar[b-v3rx41b9s3] { display:flex; align-items:center; gap:12px; justify-content:flex-end; flex-wrap:wrap; }
.nt-search[b-v3rx41b9s3] { display:inline-flex; align-items:center; gap:7px; flex:0 0 300px; padding:6px 11px; border-radius:8px; border:1px solid var(--fn-border); background:var(--fn-input-bg); }
.nt-search[b-v3rx41b9s3]  svg { width:14px; height:14px; color:var(--fn-text-tertiary); }
.nt-search input[b-v3rx41b9s3] { flex:1; min-width:0; border:none; background:transparent; outline:none; color:var(--fn-text); font:inherit; font-size:12.5px; }

.nt-card[b-v3rx41b9s3] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); overflow:hidden; }
.nt-card-head[b-v3rx41b9s3] { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:13px 15px; border-bottom:1px solid var(--fn-border); background:var(--fn-bg); }
.nt-card-head h3[b-v3rx41b9s3] { margin:0; font-size:13.5px; font-weight:600; color:var(--fn-text); }
.nt-card-head p[b-v3rx41b9s3] { margin:3px 0 0; font-size:12px; color:var(--fn-text-secondary); line-height:1.45; }
.nt-pill[b-v3rx41b9s3], .nt-chip[b-v3rx41b9s3] { display:inline-flex; align-items:center; border-radius:var(--fn-radius-pill); border:1px solid var(--fn-accent-line); padding:3px 9px; font-size:11px; font-weight:700; white-space:nowrap; color:var(--fn-primary); background:var(--fn-accent-soft); }

.nt-grid[b-v3rx41b9s3] { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; padding:13px; }
.nt-row[b-v3rx41b9s3] { display:flex; flex-direction:column; gap:8px; min-width:0; padding:12px; border:1px solid var(--fn-border); border-radius:var(--fn-radius-sm); background:var(--fn-bg); }
.nt-key[b-v3rx41b9s3] { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.nt-key b[b-v3rx41b9s3] { color:var(--fn-text); font-family:var(--fn-font-mono); font-size:12px; }
.nt-key span[b-v3rx41b9s3] { color:var(--fn-warning); border:1px solid var(--fn-warning); background:var(--fn-warning-soft); border-radius:var(--fn-radius-pill); padding:2px 8px; font-size:10.5px; font-weight:700; }
.nt-key span.custom[b-v3rx41b9s3] { color:var(--fn-success); border-color:var(--fn-success); background:var(--fn-success-soft); }
.nt-row label[b-v3rx41b9s3] { display:flex; flex-direction:column; gap:4px; }
.nt-row label span[b-v3rx41b9s3] { color:var(--fn-text-tertiary); font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.nt-row textarea[b-v3rx41b9s3] { width:100%; min-height:86px; resize:vertical; box-sizing:border-box; color:var(--fn-text); background:var(--fn-input-bg); border:1px solid var(--fn-input-border); border-radius:8px; padding:8px 10px; font:inherit; font-size:12.5px; line-height:1.45; }
.nt-row small[b-v3rx41b9s3] { color:var(--fn-text-secondary); font-size:11.5px; line-height:1.35; }
.nt-empty[b-v3rx41b9s3] { padding:22px; color:var(--fn-text-secondary); }
.nt-deny[b-v3rx41b9s3] { padding:18px; color:var(--fn-warning); border:1px solid var(--fn-warning); border-radius:var(--fn-radius); background:var(--fn-warning-soft); }

.nt-note[b-v3rx41b9s3] { display:flex; align-items:flex-start; gap:9px; margin:0 13px 13px; padding:10px 12px; border:1px solid var(--fn-accent-line); border-radius:var(--fn-radius-sm); background:var(--fn-info-soft); color:var(--fn-text-secondary); font-size:12px; }
.nt-note[b-v3rx41b9s3]  svg { color:var(--fn-info); width:15px; height:15px; margin-top:1px; }
.nt-foot[b-v3rx41b9s3] { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 14px; border-top:1px solid var(--fn-border); background:var(--fn-bg); }
.nt-foot small[b-v3rx41b9s3] { color:var(--fn-text-tertiary); font-size:11px; }
.nt-actions[b-v3rx41b9s3] { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.nt-btn-primary[b-v3rx41b9s3], .nt-btn-secondary[b-v3rx41b9s3] { display:inline-flex; align-items:center; gap:7px; font:inherit; font-size:12.5px; font-weight:600; border-radius:8px; padding:8px 13px; cursor:pointer; }
.nt-btn-primary[b-v3rx41b9s3] { color:var(--fn-on-primary); background:var(--fn-primary); border:1px solid var(--fn-primary); }
.nt-btn-secondary[b-v3rx41b9s3] { color:var(--fn-text); background:var(--fn-bg-muted); border:1px solid var(--fn-border-strong); }
.nt-btn-primary:disabled[b-v3rx41b9s3], .nt-btn-secondary:disabled[b-v3rx41b9s3] { opacity:.5; cursor:not-allowed; }
.nt-btn-primary[b-v3rx41b9s3]  svg, .nt-btn-secondary[b-v3rx41b9s3]  svg { width:14px; height:14px; }
.nt-btn-secondary[b-v3rx41b9s3]  svg { color:var(--fn-primary); }

@media (max-width: 860px) {
    .nt-grid[b-v3rx41b9s3] { grid-template-columns:1fr; }
    .nt-search[b-v3rx41b9s3] { flex:1 1 100%; }
    .nt-foot[b-v3rx41b9s3] { flex-direction:column; align-items:stretch; }
    .nt-actions[b-v3rx41b9s3] { justify-content:flex-start; }
}
/* /Components/Settings/QuoteRefreshForm.razor.rz.scp.css */
/* Kurs-Synchronisation (Administration) — tokens-only; Buttons aus der geteilten fn-buttons.css. */

.qr[b-grgcd4v4zd] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 720px;
    padding-bottom: 28px;
}

.qr-hint[b-grgcd4v4zd] {
    font-size: 13px;
    color: var(--fn-text-secondary);
    line-height: 1.55;
    margin: 0 0 6px;
}

.qr-row[b-grgcd4v4zd] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 8px 12px;
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
}

.qr-default[b-grgcd4v4zd] {
    border-color: var(--fn-accent-line);
    background: var(--fn-accent-soft);
}

.qr-label[b-grgcd4v4zd] {
    flex: 0 0 240px;
    font-size: 13px;
    color: var(--fn-text);
}

.qr-input[b-grgcd4v4zd] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* 90px schnitten den Platzhalter „Default (15 Min)" auf „Default (" ab (Niko 17.07.2026). */
.qr-input input[b-grgcd4v4zd] {
    width: 150px;
    font: inherit;
    font-size: 13px;
    color: var(--fn-text);
    background: var(--fn-input-bg);
    border: 1px solid var(--fn-input-border);
    border-radius: var(--fn-radius-sm);
    padding: 7px 10px;
}

.qr-input input:focus[b-grgcd4v4zd] {
    outline: none;
    border-color: var(--fn-primary);
}

/* Uhrzeit-Felder (Zeitfenster, Währungs-Abruf) brauchen keine Platzhalter-Breite. */
.qr-input input.qr-time[b-grgcd4v4zd] {
    width: 110px;
}

.qr-sep[b-grgcd4v4zd] {
    font-size: 13px;
    color: var(--fn-text-tertiary);
}

/* „Durchgängig" je Produktzeile: rechts in der Kachel, Label vor dem Slider. */
.qr-switch-trailing[b-grgcd4v4zd] {
    margin-left: auto;
    flex: none;
}

/* Aktive Wochentage — 1:1 aus der abgenommenen VORSCHAU-QuoteRefresh-Wochentage.html. */
.qr-days-tile[b-grgcd4v4zd] {
    align-items: flex-start;
}

.qr-days-body[b-grgcd4v4zd] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
}

.qr-days[b-grgcd4v4zd] {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    align-items: center;
}

.qr-day[b-grgcd4v4zd] {
    min-width: 46px;
    height: 36px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-input-bg);
    color: var(--fn-text-tertiary);
    font-size: 12.5px;
    font-weight: var(--fn-font-weight-bold);
    cursor: pointer;
    user-select: none;
}

.qr-day.on[b-grgcd4v4zd] {
    background: var(--fn-accent-soft);
    border-color: var(--fn-primary);
    color: var(--fn-primary);
}

.qr-day-dot[b-grgcd4v4zd] {
    width: 6px;
    height: 6px;
    border-radius: var(--fn-radius-round);
    background: currentColor;
    margin-right: 6px;
    opacity: 0;
}

.qr-day.on .qr-day-dot[b-grgcd4v4zd] {
    opacity: 1;
}

.qr-days-quick[b-grgcd4v4zd] {
    display: inline-flex;
    gap: 8px;
    margin-left: 6px;
}

.qr-chip[b-grgcd4v4zd] {
    height: 26px;
    padding: 0 11px;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-pill);
    background: transparent;
    color: var(--fn-text-secondary);
    font-size: 11.5px;
    cursor: pointer;
}

.qr-chip:hover[b-grgcd4v4zd] {
    color: var(--fn-primary);
    border-color: var(--fn-primary);
}

.qr-days-note[b-grgcd4v4zd] {
    font-size: 11.5px;
    color: var(--fn-text-tertiary);
    line-height: 1.5;
}

.qr-unit[b-grgcd4v4zd] {
    font-size: 12px;
    color: var(--fn-text-tertiary);
}

.qr-note[b-grgcd4v4zd] {
    font-size: 12px;
    color: var(--fn-text-tertiary);
}

.qr-warn[b-grgcd4v4zd] {
    font-size: 12px;
    color: var(--fn-warning);
}

.qr-section[b-grgcd4v4zd] {
    margin-top: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}

.qr-actions[b-grgcd4v4zd] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
}

.qr-msg[b-grgcd4v4zd] {
    font-size: 12.5px;
    border-radius: var(--fn-radius-sm);
    padding: 6px 12px;
}

.qr-msg-ok[b-grgcd4v4zd] {
    color: var(--fn-success);
    background: var(--fn-success-soft);
}

.qr-msg-err[b-grgcd4v4zd] {
    color: var(--fn-danger);
    background: var(--fn-danger-soft);
}

/* Einheit-Umschalter (Minuten/Stunden). */
.qr-unit-select[b-grgcd4v4zd] {
    font: inherit;
    font-size: 12.5px;
    color: var(--fn-text);
    background: var(--fn-input-bg);
    border: 1px solid var(--fn-input-border);
    border-radius: var(--fn-radius-sm);
    padding: 7px 10px;
}

/* Echter Toggle-Slider (kein Checkbox) — CSS-gestylte Checkbox. */
.qr-switch[b-grgcd4v4zd] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-size: 13px;
    color: var(--fn-text);
}

.qr-switch input[b-grgcd4v4zd] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.qr-toggle[b-grgcd4v4zd] {
    position: relative;
    flex: none;
    width: 40px;
    height: 22px;
    border-radius: var(--fn-radius-pill);
    background: var(--fn-input-bg);
    border: 1px solid var(--fn-border);
    transition: background .15s, border-color .15s;
}

.qr-toggle[b-grgcd4v4zd]::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--fn-text-secondary);
    transition: transform .15s, background .15s;
}

.qr-switch input:checked + .qr-toggle[b-grgcd4v4zd] {
    background: var(--fn-primary);
    border-color: var(--fn-primary);
}

.qr-switch input:checked + .qr-toggle[b-grgcd4v4zd]::after {
    transform: translateX(18px);
    background: var(--fn-on-primary);
}

.qr-switch input:focus-visible + .qr-toggle[b-grgcd4v4zd] {
    box-shadow: 0 0 0 2px var(--fn-accent-line);
}

.qr-switch-label[b-grgcd4v4zd] {
    font-weight: var(--fn-font-weight-medium);
}

/* Traegt ein geteiltes Control (TimeCombobox) statt eines rohen Feldes. Gleiche Geometrie wie
   .qr-input, aber ohne dessen input-Regeln: die gehoeren einer Kindkomponente und wuerden deren
   eigene Masse (38px, Vorgabe 5h) ueberschreiben wollen - scoped CSS erreicht sie ohnehin nicht. */
.qr-control[b-grgcd4v4zd] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
/* /Components/Settings/TaxProfileForm.razor.rz.scp.css */
/* Steuerprofil-Formular (KONZEPT-Portfolio-Steuer-Gewinnsimulation). Tokens-only (FINLIST003). */

.tp-owner[b-0x2bsi521l] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-bold);
    color: var(--fn-success);
    background: var(--fn-success-soft);
    border: var(--fn-border-width) solid var(--fn-success);
    border-radius: var(--fn-radius-pill);
    padding: 4px 11px;
    margin-bottom: 14px;
}

.tp-grid[b-0x2bsi521l] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 18px;
    margin-top: 6px;
}

@media (max-width: 680px) {
    .tp-grid[b-0x2bsi521l] { grid-template-columns: 1fr; }
}

.tp-field[b-0x2bsi521l] { display: flex; flex-direction: column; }

.tp-field > span[b-0x2bsi521l] {
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    margin-bottom: 5px;
}

.tp-field input[b-0x2bsi521l],
.tp-field select[b-0x2bsi521l] {
    width: 100%;
    background: var(--fn-input-bg);
    border: var(--fn-border-width) solid var(--fn-input-border);
    border-radius: 9px;
    color: var(--fn-text);
    padding: 9px 11px;
    font-size: 13px;
    font-family: var(--fn-font);
}

.tp-unit[b-0x2bsi521l] { position: relative; }
.tp-unit input[b-0x2bsi521l] { padding-right: 34px; }
.tp-unit .u[b-0x2bsi521l] {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--fn-text-tertiary);
    font-size: 12px;
}

.tp-hint[b-0x2bsi521l] {
    font-size: 10.5px;
    color: var(--fn-text-tertiary);
    margin-top: 4px;
    line-height: 1.4;
}

.tp-foot[b-0x2bsi521l] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.tp-save[b-0x2bsi521l] {
    background: var(--fn-primary);
    color: var(--fn-on-primary);
    border: none;
    border-radius: 9px;
    font-weight: var(--fn-font-weight-bold);
    font-size: 13px;
    padding: 9px 18px;
    cursor: pointer;
}

.tp-save:disabled[b-0x2bsi521l] {
    opacity: .55;
    cursor: not-allowed;
}

.tp-reset[b-0x2bsi521l] {
    background: transparent;
    color: var(--fn-text-secondary);
    border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: 9px;
    font-size: 13px;
    padding: 9px 16px;
    cursor: pointer;
}

.tp-disclaimer[b-0x2bsi521l] {
    margin-left: auto;
    font-size: 11px;
    color: var(--fn-text-tertiary);
}

.tp-status[b-0x2bsi521l] {
    font-size: 12px;
    border-radius: var(--fn-radius-pill);
    padding: 4px 11px;
    border: var(--fn-border-width) solid var(--fn-border-strong);
}

.tp-status.ok[b-0x2bsi521l] {
    color: var(--fn-success);
    background: var(--fn-success-soft);
    border-color: var(--fn-success);
}

.tp-status.err[b-0x2bsi521l] {
    color: var(--fn-danger);
    background: var(--fn-danger-soft);
    border-color: var(--fn-danger);
}
/* /Components/Settings/TestAsForm.razor.rz.scp.css */
/* „Testen als…" — tokens only. Felder/Buttons aus den Fn*-Primitiven (FINCOMP001);
   hier nur Karten-Layout (Muster Verwaltung › Stammdaten). */
.ta[b-2vxm0zq78i] { display: flex; flex-direction: column; gap: 18px; max-width: 760px; }
.ta[b-2vxm0zq78i]  .lucide { width: 16px; height: 16px; }
.ta-deny[b-2vxm0zq78i] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 18px 20px; color: var(--fn-text-secondary); }

.ta-card[b-2vxm0zq78i] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg); padding: 18px 22px;
    display: flex; flex-direction: column; gap: 12px;
}
.ta-card h4[b-2vxm0zq78i] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.ta-card h4[b-2vxm0zq78i]  .lucide { color: var(--fn-primary); }
.ta-sub[b-2vxm0zq78i] { margin: -6px 0 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

.ta-grid[b-2vxm0zq78i] { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px 18px; align-items: center; }
.ta-info[b-2vxm0zq78i] { display: flex; align-items: center; gap: 12px; }
.ta-name[b-2vxm0zq78i] { font-size: 14px; font-weight: 600; color: var(--fn-text); }
.ta-meta[b-2vxm0zq78i] { font-size: 12px; font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); }

.ta-note[b-2vxm0zq78i] {
    display: flex; align-items: flex-start; gap: 9px; font-size: 12.5px;
    color: var(--fn-text-secondary); background: var(--fn-warning-soft);
    border: 1px solid var(--fn-warning); border-radius: var(--fn-radius-sm); padding: 10px 13px;
}
.ta-note[b-2vxm0zq78i]  .lucide { width: 14px; height: 14px; color: var(--fn-warning); flex: none; margin-top: 2px; }

.ta-hint[b-2vxm0zq78i] { font-size: 12px; color: var(--fn-text-tertiary); }
/* /Components/Settings/UserEditDialog.razor.rz.scp.css */
/* Gemeinsamer Benutzer-Dialog (KONZEPT-Modulverwaltung-…-FlowDesk-Neubau) — nur --fn-*-Tokens.
   Kopf mit Profilbild + Tabs: Aufbau 1:1 FlowDesk (KONZEPT-Benutzer-Avatar-Dialog-FlowDesk T2/T3). */

/* --- Kopf: Profilbild (Klick = ändern, ✕ = entfernen) + Name + Rollen-Badge --- */
.ue-head[b-byh3v10lot] { display:flex; align-items:flex-start; gap:16px; margin-bottom:16px; }
.ue-avatar-wrap[b-byh3v10lot] { position:relative; width:76px; height:76px; flex:none; cursor:pointer; }
.ue-avatar-img[b-byh3v10lot] { width:76px; height:76px; border-radius:50%; object-fit:cover; border:2px solid var(--fn-border-strong); }
.ue-avatar-initials[b-byh3v10lot] {
    width:76px; height:76px; border-radius:50%; background:var(--fn-accent-soft); color:var(--fn-primary);
    display:flex; align-items:center; justify-content:center; font-size:24px; font-weight:700;
    border:2px solid var(--fn-border-strong);
}
.ue-avatar-cam[b-byh3v10lot] {
    position:absolute; right:-2px; bottom:-2px; width:26px; height:26px; border-radius:50%;
    background:var(--fn-bg-muted); border:1px solid var(--fn-border-strong);
    display:flex; align-items:center; justify-content:center; font-size:13px; pointer-events:none;
}
/* Verstecktes InputFile deckt den Avatar ab (Muster pk-compose-uploadbtn: InputFile bekommt kein Scope-Attribut). */
.ue-avatar-wrap[b-byh3v10lot]  input[type="file"] { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.ue-avatar-x[b-byh3v10lot] {
    position:absolute; left:-6px; top:-6px; width:22px; height:22px; border-radius:50%; z-index:1;
    background:var(--fn-danger); color:var(--fn-on-primary); border:none; font-size:11px; font-weight:700;
    cursor:pointer; display:flex; align-items:center; justify-content:center;
}
.ue-head-id[b-byh3v10lot] { display:flex; flex-direction:column; gap:8px; padding-top:6px; }
.ue-head-name[b-byh3v10lot] { font-size:18px; font-weight:600; color:var(--fn-text); }
.ue-head-badge[b-byh3v10lot] {
    display:inline-flex; align-items:center; gap:5px; align-self:flex-start;
    font-size:11px; font-weight:700; border-radius:var(--fn-radius-pill); padding:4px 12px;
}
.ue-head-badge[b-byh3v10lot]  svg { width:12px; height:12px; }
.ue-head-badge.owner[b-byh3v10lot] { color:var(--fn-on-primary); background:var(--fn-warning); }
.ue-head-badge.super[b-byh3v10lot] { color:var(--fn-primary); background:var(--fn-accent-soft); border:1px solid var(--fn-primary); }
.ue-head-badge.admin[b-byh3v10lot] { color:var(--fn-on-primary); background:var(--fn-primary); }

/* --- Tabs: geteilte FnTabs-Primitive (fn-tabs.css) — hier kein eigenes Tab-CSS mehr. --- */

/* --- Telefon/Mobil nebeneinander --- */
.ue-pair[b-byh3v10lot] { display:flex; gap:8px; }
.ue-pair input[b-byh3v10lot] { flex:1; min-width:0; }

/* --- Berechtigungen-Hinweis (FlowDesk-Muster) --- */
.ue-permhint[b-byh3v10lot] {
    display:flex; align-items:flex-start; gap:9px; margin-top:16px; font-size:12.5px;
    color:var(--fn-text-secondary); background:var(--fn-warning-soft); border:1px solid var(--fn-warning);
    border-radius:var(--fn-radius-sm); padding:10px 13px;
}
.ue-permhint[b-byh3v10lot]  svg { width:14px; height:14px; color:var(--fn-warning); flex:none; margin-top:2px; }

.ue-grid[b-byh3v10lot] { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ue-f[b-byh3v10lot] { display:flex; flex-direction:column; gap:5px; }
.ue-full[b-byh3v10lot] { grid-column:1 / -1; }
.ue-f label[b-byh3v10lot] { font-size:11.5px; color:var(--fn-text-secondary); }
.ue-req[b-byh3v10lot] { color:var(--fn-danger); }
.ue-f input[b-byh3v10lot], .ue-f select[b-byh3v10lot] {
    font:inherit; font-size:13px; color:var(--fn-text);
    background:var(--fn-input-bg); border:1px solid var(--fn-input-border);
    border-radius:8px; padding:8px 11px; outline:none;
}
.ue-f input[readonly][b-byh3v10lot] { color:var(--fn-text-secondary); }
.ue-f input:focus[b-byh3v10lot], .ue-f select:focus[b-byh3v10lot] { border-color:var(--fn-primary); box-shadow:var(--fn-focus-ring); }
.ue-hint[b-byh3v10lot] { display:inline-flex; align-items:center; gap:5px; font-size:11px; }
.ue-hint.ok[b-byh3v10lot] { color:var(--fn-success); }
.ue-hint.err[b-byh3v10lot] { color:var(--fn-danger); }
.ue-hint[b-byh3v10lot]  svg { width:12px; height:12px; }

.ue-error[b-byh3v10lot] {
    margin-top:12px; font-size:12.5px; color:var(--fn-danger);
    background:var(--fn-danger-soft); border:1px solid var(--fn-danger);
    border-radius:var(--fn-radius-sm); padding:8px 12px;
}

.ue-foot[b-byh3v10lot] { display:flex; align-items:center; gap:10px; margin-top:16px; }
.ue-spacer[b-byh3v10lot] { flex:1; }
.ue-btn[b-byh3v10lot] {
    font:inherit; font-size:12.5px; font-weight:600; color:var(--fn-text);
    background:var(--fn-surface-alt); border:1px solid var(--fn-border-strong);
    border-radius:8px; padding:8px 14px; cursor:pointer;
}
.ue-btn-primary[b-byh3v10lot] { color:var(--fn-on-primary); background:var(--fn-primary); border-color:var(--fn-primary); display:inline-flex; align-items:center; gap:7px; }
.ue-btn-primary:disabled[b-byh3v10lot] { opacity:.5; cursor:not-allowed; }
.ue-btn-primary[b-byh3v10lot]  svg { width:14px; height:14px; }
.ue-loading[b-byh3v10lot] { color:var(--fn-text-tertiary); font-size:13px; padding:14px 2px; }
/* /Components/Settings/UserManagementForm.razor.rz.scp.css */
/* Benutzerverwaltung (KONZEPT-Modulberechtigungen, Slice 3) — FlowDesk-Parität, nur --fn-*-Tokens.
   Dichte-Skala nach FlowDesk-Rhythmus (Niko-Befund 06.07.2026: FIN wirkte "eng bedruckt"):
   Karte 18×22, Zeilen-gap 12, Karten-gap 16, Avatar 52, Name 15, Chips ≥28px hoch —
   verbindlich im KONZEPT-Design-Komponenten-Standard (FnEntityCard). */
.uv[b-fuvt5he5ef] { display:flex; flex-direction:column; }
.uv[b-fuvt5he5ef]  svg { width:16px; height:16px; }

/* Kopfzeile: geteilte FnListToolbar; Karten: geteilte FnEntityCard (Dichte-Skala) — Konzept T1.
   Karten-gap kommt aus .fn-entity-list (fn-cards.css). */
.uv-stat[b-fuvt5he5ef] { font-size:11.5px; font-weight:600; border-radius:var(--fn-radius-pill); padding:3px 11px; border:1px solid var(--fn-border-strong); color:var(--fn-text-secondary); }
.uv-stat.super[b-fuvt5he5ef] { color:var(--fn-warning); border-color:var(--fn-warning); background:var(--fn-warning-soft); }

.uv-msg[b-fuvt5he5ef] { font-size:12.5px; border-radius:var(--fn-radius-sm); padding:8px 12px; }
.uv-msg.err[b-fuvt5he5ef] { color:var(--fn-danger); background:var(--fn-danger-soft); border:1px solid var(--fn-danger); }
.uv-msg.ok[b-fuvt5he5ef] { color:var(--fn-success); background:var(--fn-success-soft); border:1px solid var(--fn-success); }

.uv-section-label[b-fuvt5he5ef] { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--fn-text-tertiary); margin:18px 0 4px; }
.uv-section-label[b-fuvt5he5ef]  svg { width:14px; height:14px; }

.uv-head[b-fuvt5he5ef] { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.uv-name[b-fuvt5he5ef] { font-size:15px; font-weight:600; color:var(--fn-text); }
.uv-mail[b-fuvt5he5ef] { font-size:12.5px; font-family:var(--fn-font-mono); color:var(--fn-text-tertiary); }
.uv-badge[b-fuvt5he5ef] { display:inline-flex; align-items:center; gap:5px; font-size:10.5px; font-weight:700; border-radius:var(--fn-radius-pill); padding:3px 10px; }
.uv-badge[b-fuvt5he5ef]  svg { width:12px; height:12px; }
.uv-badge.owner[b-fuvt5he5ef] { color:var(--fn-on-primary); background:var(--fn-warning); }
.uv-badge.super[b-fuvt5he5ef] { color:var(--fn-primary); background:var(--fn-accent-soft); border:1px solid var(--fn-primary); }
.uv-badge.admin[b-fuvt5he5ef] { color:var(--fn-on-primary); background:var(--fn-primary); }
.uv-badge.muted[b-fuvt5he5ef] { color:var(--fn-text-tertiary); background:var(--fn-bg-muted); }

.uv-groups[b-fuvt5he5ef] { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.uv-fullaccess[b-fuvt5he5ef] { font-size:12.5px; font-style:italic; color:var(--fn-text-tertiary); }
.uv-chip[b-fuvt5he5ef] { display:inline-flex; align-items:center; gap:7px; font-size:12.5px; color:var(--fn-text); background:var(--fn-accent-soft); border:1px solid var(--fn-accent-line); border-radius:var(--fn-radius-pill); padding:5px 6px 5px 12px; }
.uv-chip[b-fuvt5he5ef]  svg { width:14px; height:14px; color:var(--fn-primary); }
.uv-chip-x[b-fuvt5he5ef] { display:inline-flex; align-items:center; justify-content:center; border:none; background:transparent; color:var(--fn-text-tertiary); cursor:pointer; padding:2px; border-radius:50%; }
.uv-chip-x:hover[b-fuvt5he5ef] { color:var(--fn-danger); background:var(--fn-danger-soft); }
.uv-chip-x[b-fuvt5he5ef]  svg { width:12px; height:12px; }
.uv-nogroup[b-fuvt5he5ef] { font-size:12.5px; font-style:italic; color:var(--fn-warning); }
.uv-add[b-fuvt5he5ef] { font:inherit; font-size:12.5px; color:var(--fn-text); background:var(--fn-input-bg); border:1px dashed var(--fn-border-strong); border-radius:var(--fn-radius-pill); padding:6px 12px; cursor:pointer; }
.uv-eff-btn[b-fuvt5he5ef] { display:inline-flex; align-items:center; gap:6px; font:inherit; font-size:12px; font-weight:600; color:var(--fn-text-secondary); background:transparent; border:1px solid var(--fn-border-strong); border-radius:var(--fn-radius-pill); padding:6px 12px; cursor:pointer; }
.uv-eff-btn.on[b-fuvt5he5ef], .uv-eff-btn:hover[b-fuvt5he5ef] { color:var(--fn-primary); border-color:var(--fn-accent-line); background:var(--fn-accent-soft); }
.uv-eff-btn[b-fuvt5he5ef]  svg { width:13px; height:13px; }

.uv-eff-panel[b-fuvt5he5ef] { background:var(--fn-bg-muted); border:1px solid var(--fn-border-strong); border-radius:var(--fn-radius-sm); padding:11px 13px; margin-top:2px; }
.uv-eff-title[b-fuvt5he5ef] { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--fn-text-tertiary); margin-bottom:7px; }
.uv-eff-empty[b-fuvt5he5ef] { font-size:12px; font-style:italic; color:var(--fn-text-tertiary); }
.uv-eff-mod[b-fuvt5he5ef] { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:5px 0; border-top:1px solid var(--fn-border); }
.uv-eff-mod:first-of-type[b-fuvt5he5ef] { border-top:none; }
.uv-em-name[b-fuvt5he5ef] { font-size:12.5px; color:var(--fn-text); }
.uv-em-lvl[b-fuvt5he5ef] { font-size:10.5px; font-family:var(--fn-font-mono); border-radius:var(--fn-radius-pill); padding:1px 9px; border:1px solid var(--fn-border-strong); color:var(--fn-text-secondary); }
.uv-em-lvl.full[b-fuvt5he5ef], .uv-em-lvl.part[b-fuvt5he5ef] { color:var(--fn-primary); border-color:var(--fn-accent-line); background:var(--fn-accent-soft); }
.uv-em-lvl.none[b-fuvt5he5ef] { color:var(--fn-text-tertiary); }

.uv-toggles[b-fuvt5he5ef] { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:2px; }
.uv-tl[b-fuvt5he5ef] { font-size:12px; color:var(--fn-text-secondary); }
.uv-sep[b-fuvt5he5ef] { width:1px; height:16px; background:var(--fn-border); }
.uv-sw[b-fuvt5he5ef] { width:34px; height:20px; border-radius:var(--fn-radius-pill); background:var(--fn-border-strong); position:relative; flex:none; cursor:pointer; }
.uv-sw .k[b-fuvt5he5ef] { position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:var(--fn-text); transition:left .15s; }
.uv-sw.on[b-fuvt5he5ef] { background:var(--fn-primary); }
.uv-sw.on .k[b-fuvt5he5ef] { left:16px; }
.uv-sw.lock[b-fuvt5he5ef] { opacity:.4; cursor:not-allowed; }

.uv-hint[b-fuvt5he5ef] { display:flex; gap:10px; align-items:flex-start; font-size:12px; color:var(--fn-text-secondary); background:var(--fn-info-soft); border:1px solid var(--fn-accent-line); border-radius:var(--fn-radius-sm); padding:11px 13px; margin-top:6px; }
.uv-hint[b-fuvt5he5ef]  svg { width:16px; height:16px; color:var(--fn-info); flex:none; margin-top:1px; }
/* /Components/Shared/EmailTemplateDialog.razor.rz.scp.css */
/* E-Mail-Vorlage-Dialog (Niko 13.06.2026): Betreff + Nachricht + Platzhalter-Chips. Nur --fn-*-Tokens. */

.tpl-form[b-9h0k963nit] {
    gap: 4px;
}

.tpl-scope[b-9h0k963nit] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 4px;
    font-size: 12.5px;
    color: var(--fn-text-secondary);
}

.tpl-badge[b-9h0k963nit] {
    font-size: 9.5px;
    font-weight: var(--fn-font-weight-bold);
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--fn-primary);
    border: var(--fn-border-width) solid var(--fn-primary);
    border-radius: 5px;
    padding: 1px 6px;
}

.tpl-chips[b-9h0k963nit] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 8px;
}

.tpl-chip-group[b-9h0k963nit] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.tpl-chip-label[b-9h0k963nit] {
    flex: 0 0 84px;
    font-size: 10px;
    font-weight: var(--fn-font-weight-bold);
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--fn-text-tertiary);
}

.tpl-chip[b-9h0k963nit] {
    border: var(--fn-border-width) solid var(--fn-border);
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
    border-radius: 999px;
    padding: 3px 10px;
    font-size: 11.5px;
    font-family: var(--fn-font);
    cursor: pointer;
    transition: background .14s, color .14s, border-color .14s;
}

.tpl-chip:hover[b-9h0k963nit] {
    background: var(--fn-primary);
    color: var(--fn-on-primary);
    border-color: var(--fn-primary);
}

.tpl-spacer[b-9h0k963nit] {
    flex: 1 1 auto;
}

.tpl-reset[b-9h0k963nit] {
    color: var(--fn-danger);
}
/* /Components/Shared/FlatDateRangeControl.razor.rz.scp.css */
/* =========================================================================
   Layout-Wrapper für FlatDateRangeControl — 1:1 aus FlowDesk übernommen,
   Tokens auf FINs --fn-* umgestellt (kein Hex). Optik/Spacing einheitlich.
   ========================================================================= */

.fdrc-wrap[b-k4lsp3ctzi] {
    display: flex;
    align-items: flex-end;
    gap: 8px;
}
.fdrc-wrap.vertical[b-k4lsp3ctzi] {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
}
.fdrc-wrap.vertical .fdrc-feld[b-k4lsp3ctzi] { width: 100%; }
.fdrc-wrap.vertical .fdrc-sep[b-k4lsp3ctzi]  { display: none; }

.fdrc-feld[b-k4lsp3ctzi] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;   /* damit der Inner-Picker in schmalen Spalten nicht über den Container hinausragt */
}

.fdrc-label[b-k4lsp3ctzi] {
    font-size: 11px;
    font-weight: var(--fn-font-weight-bold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--fn-text-tertiary);
}

.fdrc-sep[b-k4lsp3ctzi] {
    flex: 0 0 auto;
    align-self: center;
    padding: 0 4px;
    color: var(--fn-text-tertiary);
    font-size: 16px;
    line-height: 1;
    /* nimmt den Label-Höhenunterschied auf, damit der Trenner auf Input-Höhe sitzt */
    margin-bottom: 11px;
}

/* =========================================================================
   FLACHE Form fuer die Werkzeugzeile — E4, Niko 11.09.2026: "Zu 1. eine
   flache Variante 30px erstellen".

   Das Standard-Datumsfeld ist 38 px hoch (Design-Vorgabe 5h) und traegt eine
   Label-Zeile darueber; in der Leiste des Grids sitzen alle Bedienelemente
   auf 30 px. Ohne diese Form ragte das Datum 8 px ueber die Linie und die
   ganze Zeile wuerde hoeher.

   ADDITIV: Die Grundform bleibt unveraendert, nur mit .flach greift sie.
   Das ist eine Massangabe an einem GETEILTEN Control und damit
   vorlagepflichtig - Nachtrag zur Design-Vorgabe 5h nach Nikos Abnahme.
   ========================================================================= */

.fdrc-wrap.flach[b-k4lsp3ctzi] {
    align-items: center;
    gap: 8px;
}

/* Breite 150 px je Feld wie in der Vorschau, Abschnitt D (.fdc-wrap) - live gemessen standen 196 px,
   weil der Vendor 100 % der Zelle nimmt (Live-Befund 13.09.2026). */
.fdrc-wrap.flach .fdrc-feld[b-k4lsp3ctzi] {
    gap: 0;
    width: 150px;
}

.fdrc-wrap.flach .fdrc-label[b-k4lsp3ctzi] {
    display: none;
}

.fdrc-wrap.flach .fdrc-sep[b-k4lsp3ctzi] {
    margin-bottom: 0;
}

/* Die Masse der flachen Form 1:1 aus der abgenommenen Vorschau, Abschnitt D (c):
   Feld 30 px, Schrift 12,5 px, rechts 36 px frei, Kalenderknopf 24 x 24 mit 13-px-Zeichen,
   3 px vom Rand. Farben, Rahmen, Radius und Popup bleiben die des Vendors - nur die Masse
   aendern sich, und nur innerhalb der flachen Form. */
.fdrc-wrap.flach[b-k4lsp3ctzi]  .fdc-input {
    height: 30px;
    font-size: 12.5px;
    padding-right: 36px;
}

.fdrc-wrap.flach[b-k4lsp3ctzi]  .fdc-trigger {
    width: 24px;
    height: 24px;
    right: 3px;
}

.fdrc-wrap.flach[b-k4lsp3ctzi]  .fdc-trigger svg {
    width: 13px;
    height: 13px;
}
/* /Components/Shared/FnAuditTrail.razor.rz.scp.css */
/* Änderungsnachweis — beschriftete Stammleiste (abgenommene Vorschau, Variante 1C).
   Nur --fn-*-Token, kein Hex (Design-Vorgabe §1). */

.fn-audit[b-50a7tbgfdx] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin: 0;
    padding: 9px 10px;
    background: var(--fn-bg-muted);
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
}

.fn-audit-fact[b-50a7tbgfdx] {
    min-width: 0;
}

.fn-audit-fact dt[b-50a7tbgfdx] {
    font-size: 9px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}

.fn-audit-fact dd[b-50a7tbgfdx] {
    margin: 1px 0 0;
    font-family: var(--fn-font-mono);
    font-size: 10.5px;
    color: var(--fn-text-tertiary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fn-audit-fact dd b[b-50a7tbgfdx] {
    color: var(--fn-text);
    font-weight: var(--fn-font-weight-medium);
}

.fn-audit-fact dd:first-of-type[b-50a7tbgfdx] {
    color: var(--fn-text-secondary);
}

/* Hält die Spaltenhöhe gleich, wenn unter der Fassung kein Benutzer steht. */
.fn-audit-spacer[b-50a7tbgfdx] {
    visibility: hidden;
}
/* /Components/Shared/FnBackButton.razor.rz.scp.css */
.fn-back[b-tp0g73mbjc] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: max-content;
    min-height: 28px;
    background: transparent;
    border: 1px solid transparent;
    color: var(--fn-text-secondary);
    border-radius: 6px;
    padding: 3px 2px;
    font-size: 12.5px;
    font-weight: var(--fn-font-weight-medium);
    cursor: pointer;
    line-height: 1;
}

.fn-back:hover[b-tp0g73mbjc] {
    background: transparent;
    border-color: transparent;
    color: var(--fn-primary);
}
/* /Components/Shared/FnComponentInfo.razor.rz.scp.css */
/* (i)-Button der Komponenten-Info — hierher umgezogen aus watchlists.css (P5, FINCOMP001):
   der Button wird von FnComponentInfo selbst gerendert, also scoped. Panel/Sections (.fci-sec …)
   bleiben global, weil sie im ChildContent der AUFRUFER gerendert werden (deren Scope). */
.fci-btn[b-i557q1zal6] {
    width: 26px; height: 26px; border-radius: var(--fn-radius-round); flex: 0 0 auto;
    border: var(--fn-border-width) solid var(--fn-border-strong); background: var(--fn-accent-soft);
    color: var(--fn-primary); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0;
}
.fci-btn[b-i557q1zal6]  .lucide { width: 15px; height: 15px; }
.fci-btn:hover[b-i557q1zal6], .fci-btn.fci-on[b-i557q1zal6] { background: var(--fn-primary); color: var(--fn-on-primary); }

/* Short desktop viewports need a screen-bound panel; otherwise an expanded help panel
   can start below the mode tabs and extend beyond the lower viewport edge. */
@media (max-height: 820px) {
    .fci-panel[b-i557q1zal6] {
        position: fixed;
        top: 12px;
        right: 12px;
        bottom: 12px;
        width: 430px;
        max-width: calc(100vw - 24px);
        max-height: none;
        display: flex;
        flex-direction: column;
    }

    .fci-body[b-i557q1zal6] {
        min-height: 0;
        max-height: none;
        flex: 1;
    }
}
/* /Components/Shared/FnConfirmDialog.razor.rz.scp.css */
/* Geteilte Sicherheitsabfrage — tokens only. Overlay 959 / Karte 960: ÜBER FnFloatingWindow (950). */
.fn-confirm-portal[b-bs6f1wnono] { display: contents; }

.fn-confirm-overlay[b-bs6f1wnono] {
    position: fixed; inset: 0; z-index: 959;
    background: color-mix(in srgb, var(--fn-bg) 60%, transparent);
}

.fn-confirm[b-bs6f1wnono] {
    position: fixed; z-index: 960; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: 360px; max-width: calc(100vw - 32px); padding: 20px 20px 16px;
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg); box-shadow: 0 16px 40px var(--fn-shadow-hover);
}

.fn-confirm-msg[b-bs6f1wnono] { margin: 0 0 18px; font-size: 13.5px; line-height: 1.55; color: var(--fn-text); }
.fn-confirm-actions[b-bs6f1wnono] { display: flex; justify-content: flex-end; gap: 8px; }
/* /Components/Shared/FnDialogActions.razor.rz.scp.css */
/* Dialog-Aktionszeile — tokens-only (FINLIST003). */
.fn-dialog-foot[b-l1448xxein] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--fn-border);
}

.fn-dialog-foot-status[b-l1448xxein] {
    font-size: 12px;
    color: var(--fn-text-tertiary);
    min-width: 0;
}

.fn-dialog-foot-actions[b-l1448xxein] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-left: auto;
    flex: none;
}
/* /Components/Shared/FnDialogScaffold.razor.rz.scp.css */
/* FnDialogScaffold: nur Anordnung, keine Optik — Maße, Farben, Icons kommen aus FnFloatingWindow,
   fn-window.css (Körper 16px 18px), fn-forms.css (Eingaben) und FnFormFooter (2c). */
.fn-dialog-scaffold[b-qa1v5zymif] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.fn-dialog-scaffold-body[b-qa1v5zymif] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
}

/* Eigene Fußzeile eines Wirtes — dieselbe Lage wie FnFormFooter: AUSSERHALB des rollenden Körpers,
   am unteren Rand des Fensters. Die Maße der Knöpfe folgen Vorgabe 2c (42px, 0 18px, 14px, Icons
   16px, Abstand 16px, rechts) und stehen hier an EINER Stelle statt in jedem Wirt erneut. */
.fn-dialog-scaffold-foot[b-qa1v5zymif] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
    flex: 0 0 auto;
    /* ⛔ NUR OBEN POLSTERN - die Raender gehoeren dem Fensterkoerper (Niko 16.09.2026: "der
       Schliessen-Button ist etwas zu hoch! Bitte etwas runterstellen!" plus das Vorbild
       external/Transfer/Buttion-Position.png).

       GEMESSEN am 16.09.2026 auf fin-test: Mit eigenem Polster 14px/18px sass der Knopf 31px ueber
       der Fensterunterkante und 37px vor dem rechten Rand - denn .fn-window-body polstert bereits
       mit 16px 18px, und beides addierte sich.

       Die Standard-Fusszeile FnFormFooter macht es richtig: nur padding-top, sonst nichts. Damit
       steht der Knopf 17px ueber der Unterkante und 19px vor dem rechten Rand - genau wie in jedem
       anderen Dialog. Zwei Polster fuer denselben Rand sind ein Fehler, keine Gestaltung. */
    padding: 14px 0 0;
    border-top: var(--fn-border-width) solid var(--fn-border);
}

.fn-dialog-scaffold-foot[b-qa1v5zymif]  .fn-btn {
    height: 42px;
    padding: 0 18px;
    font-size: 14px;
}

.fn-dialog-scaffold-foot[b-qa1v5zymif]  .fn-btn svg,
.fn-dialog-scaffold-foot[b-qa1v5zymif]  .fn-btn .lucide {
    width: 16px;
    height: 16px;
}
/* /Components/Shared/FnDisabledExportButton.razor.rz.scp.css */
button.fn-disabled-export[b-opkhm2ydqx] {
    display: flex;
    flex: 1;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 30px;
    padding: 0 9px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-input-bg);
    color: var(--fn-text-tertiary);
    font-size: 11px;
    font-weight: var(--fn-font-weight-medium);
    cursor: not-allowed;
    opacity: .7;
}

button.fn-disabled-export[b-opkhm2ydqx]  i {
    width: 13px;
    height: 13px;
}
/* /Components/Shared/FnDisclosureGroup.razor.rz.scp.css */
.fn-disclosure[b-cywy1v20z6] {
    border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
    overflow: visible;
    margin-top: 10px;
}

.fn-disclosure-headrow[b-cywy1v20z6] {
    display: flex;
    align-items: center;
    gap: 8px;
    /* Bezugspunkt fuer die absolut liegende Stecknadel. */
    position: relative;
    /* Abstand der Nadel vom RECHTEN RAND DER KOPFZEILE.
       12 (Kopf-Padding) + 26 (Doppelpfeil) + 8 (Luecke) = 46. */
    --fn-disclosure-pin-right: 46px;
}

/* Seit dem 08.09.2026 gilt der Basiswert ueberall: Das leere HeaderRight-Element, das den
   Kopf-Button im Chart-Studio um 20 px verkuerzte, wird nicht mehr gerendert. Die frueher noetige
   Sonderregel (66 px) ist damit weggefallen - eine Ausnahme weniger, die eine spaetere Session
   missverstehen koennte. */
/* Stecknadel — abgenommene Vorschau vom 08.09.2026
   (docs/concepts/VORSCHAU-Chart-Trend-Analyse-Gruppe-anpinnen.html).

   Masze GEMESSEN am Doppelpfeil dieser Datei, nicht geschaetzt: 26x26, Pille, Rand --fn-border,
   Flaeche --fn-bg-alt. Eine Sprache fuer beide Zeichen.

   Absolut positioniert bei 12 (Rand) + 26 (Doppelpfeil) + 8 (Luecke) = 46px. Dadurch bleibt der
   Doppelpfeil exakt dort, wo er ohne Nadel sitzt. */
/* ❗ 1:1 die Huelle der Watchliste (.fn-marker in fn-markers.css), nicht die des Doppelpfeils.
   Niko am 08.09.2026: „der Kasten hat nicht die Stecknadel aus der Watchliste — ich verstehe das
   Problem nicht, da man das Ding ja nur kopieren muss!" Genau das war der Fehler: Uebernommen war
   das Zeichen, die HUELLE aber vom Doppelpfeil daneben (Rand plus gefuellte Flaeche). Dadurch sass
   die Nadel in einem Kasten, den sie in der Watchliste nie hat.

   Dort ist der Knopf durchsichtig und randlos; ein Rand erscheint erst beim Ueberfahren. Diese
   vier Zeilen stehen deshalb wortgleich in fn-markers.css. */
.fn-disclosure-pin[b-cywy1v20z6] {
    position: absolute;
    top: 50%;
    right: var(--fn-disclosure-pin-right);
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    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;
}

/* Das Zeichen 1:1 aus der Watchliste (.wl-pin in fn-markers.css): 14px, Zustand in der DECKKRAFT —
   gedimmt = nicht angepinnt, voll = angepinnt.

   Dazu die LAGE der Nadel (Niko 08.09.2026: „die Pinnadel kennt damit zwei Positionen, eine gerade
   steckt drin und eine seitliche steckt nicht drin"): Sie steht aufrecht, wenn sie steckt, und liegt
   schräg, wenn nicht. Das ist ohne Farbsehen und ohne feinen Deckkraft-Vergleich erkennbar — zwei
   Merkmale für denselben Zustand, nicht eines. */
.fn-disclosure-pin-mark[b-cywy1v20z6] {
    font-size: 14px;
    line-height: 1;
    opacity: .4;
    display: inline-block;
    /* QUER = steckt nicht: Kopf und Nadel liegen nebeneinander, die ganze Nadel ist zu sehen. */
    transform: rotate(45deg);
    transition: transform .15s ease, opacity .15s ease;
}

.fn-disclosure-pin-mark.on[b-cywy1v20z6] {
    opacity: 1;
    /* AUFRECHT = steckt: der Kopf steht oben, die Nadel zeigt senkrecht ins Material.
       Die Winkel sind an gerenderten Proben abgelesen, nicht geschätzt — 📌 liegt bei 45° quer und
       steht bei 135° frontal (artifacts/nadel-varianten/proben.png). */
    transform: rotate(135deg);
}

/* KEINE Aktiv-Huelle. Die Watchliste hat sie nicht, und Niko hat das Kopieren ausdruecklich
   verlangt. Den Zustand tragen die beiden Merkmale, die er selbst benannt hat: die LAGE (steckt /
   steckt nicht) und die DECKKRAFT (.4 gegen 1) — beide unten am Zeichen. */
.fn-disclosure-pin:hover[b-cywy1v20z6],
.fn-disclosure-pin:focus-visible[b-cywy1v20z6] {
    color: var(--fn-text);
    border-color: var(--fn-border);
}

/* Platz bekommt der TEXT, nicht der Kopf: Ein padding-right am Kopf schoebe den Doppelpfeil nach
   links - genau unter die Nadel. 26px Nadel + 8px Luecke = 34px. */
.fn-disclosure-head.has-pin .fn-disclosure-text[b-cywy1v20z6] {
    padding-right: 34px;
}

.fn-disclosure-headrow > .fn-disclosure-head[b-cywy1v20z6] {
    flex: 1 1 auto;
    min-width: 0;
}

.fn-disclosure-head[b-cywy1v20z6] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    width: 100%;
    min-height: 48px;
    padding: 8px 12px;
    border: 0;
    background: transparent;
    color: var(--fn-text);
    font-family: var(--fn-font);
    text-align: left;
    border-radius: var(--fn-radius);
    cursor: pointer;
}

.fn-disclosure-head.has-button-right[b-cywy1v20z6] {
    grid-template-columns: auto minmax(0, 1fr) auto auto;
}

.fn-disclosure-head:hover[b-cywy1v20z6] { background: var(--fn-hover); }
.fn-disclosure-head:focus-visible[b-cywy1v20z6] { outline: none; box-shadow: var(--fn-focus-ring); }

.fn-disclosure-marker[b-cywy1v20z6],
/* Klappzeichen Variante 5 (Niko 28.08.2026, abgenommene Vorschau
   VORSCHAU-Chart-Studio-Informationskacheln-Neuordnung.html, .grp-knob): Doppelpfeil auf rundem
   Teller, Masse 1:1 - 26x26, Pillenradius, Hover-Flaeche. Fuellung --fn-bg-alt, weil der
   Gruppenkopf selbst --fn-bg-muted traegt und der Teller sich sonst nicht abheben wuerde. */
.fn-disclosure-caret[b-cywy1v20z6] {
    flex: 0 0 auto;
    margin-left: auto;
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-pill);
    background: var(--fn-bg-alt);
    color: var(--fn-primary);
}

.fn-disclosure-head:hover .fn-disclosure-caret[b-cywy1v20z6] {
    border-color: var(--fn-primary);
    background: var(--fn-hover);
}

.fn-disclosure-marker[b-cywy1v20z6] {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    border-radius: 7px;
    background: var(--fn-accent-soft);
    border: var(--fn-border-width) solid var(--fn-accent-line);
}

.fn-disclosure-marker[b-cywy1v20z6]  .fn-icon,
.fn-disclosure-marker[b-cywy1v20z6]  svg,
/* .grp-knob .chev der abgenommenen Vorschau: 14px im 26px-Teller. */
.fn-disclosure-caret[b-cywy1v20z6]  .fn-icon,
.fn-disclosure-caret[b-cywy1v20z6]  svg {
    width: 14px;
    height: 14px;
}

.fn-disclosure-text[b-cywy1v20z6] {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.fn-disclosure-title[b-cywy1v20z6] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0;
    font-size: 12.5px;
    font-weight: var(--fn-font-weight-bold);
    color: var(--fn-text);
}

.fn-disclosure-count[b-cywy1v20z6] {
    border: var(--fn-border-width) solid var(--fn-accent-line);
    border-radius: var(--fn-radius-pill);
    padding: 2px 8px;
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
    font: 600 10.5px var(--fn-font-mono);
}

.fn-disclosure-subtitle[b-cywy1v20z6] {
    margin-top: 3px;
    color: var(--fn-text-secondary);
    font: 10.5px var(--fn-font-mono);
    white-space: normal;
}

.fn-disclosure-button-right[b-cywy1v20z6] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    min-width: 0;
}

.fn-disclosure-right[b-cywy1v20z6] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    padding-right: 12px;
}

.fn-disclosure-body[b-cywy1v20z6] {
    padding: 0 12px 12px;
    border-top: var(--fn-border-width) solid var(--fn-border);
    container: disclosure-group / inline-size;
}

@media (max-width: 700px) {
    .fn-disclosure-head.has-button-right[b-cywy1v20z6] {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .fn-disclosure-button-right[b-cywy1v20z6] {
        grid-column: 2 / -1;
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}

@media (pointer: coarse) {
    .fn-disclosure-head[b-cywy1v20z6] { min-height: 44px; }
}
/* /Components/Shared/FnDocumentViewer.razor.rz.scp.css */
/* FnDocumentViewer — 1:1 zur abgenommenen Vorschau (VORSCHAU-Dokument-Viewer-Hub.html).
   Ausschliesslich --fn-*-Tokens (tokens-only). Die Dokument-Arbeitsfläche verwendet dieselbe
   FIN-Seitenfläche wie die umgebende Anwendung. */

.fnv[b-podgo5om0b] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

/* Kopf-Trenner zwischen Aktionsgruppen */
.fnv-sep[b-podgo5om0b] {
    width: 1px;
    height: 20px;
    background: var(--fn-border);
    margin: 0 5px;
    align-self: center;
}

/* Körper 60/40: Dokument · Splitter · OCR-Seitenleiste. Die Spaltenbreite kommt aus der
   CSS-Variable --fnv-doc-col (Default 60%), die der Drag-Splitter (30–70 %) verschiebt. */
.fnv-body[b-podgo5om0b] {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: var(--fnv-doc-col, 60%) 4px calc(100% - var(--fnv-doc-col, 60%) - 4px);
}

.fnv-doc[b-podgo5om0b] {
    position: relative;
    background: var(--fn-bg);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 20px;
    overflow: auto;
}

.fnv-html .fnv-body[b-podgo5om0b],
.fnv-html .fnv-footer[b-podgo5om0b] {
    grid-template-columns: minmax(0, 1fr);
}

.fnv-html .fnv-doc[b-podgo5om0b] {
    min-width: 0;
    min-height: 0;
    padding: 0;
    overflow: hidden;
    align-items: stretch;
    justify-content: stretch;
}

.fnv-html .fnv-foot-doc[b-podgo5om0b] {
    justify-content: flex-end;
}

.fnv-canvas[b-podgo5om0b] {
    max-width: none;
    flex: 0 0 auto;
    border-radius: 3px;
    box-shadow: 0 8px 26px var(--fn-shadow-hover);
}

/* Bild-Modus (PNG/JPEG/WebP): Zoom über width:%, Drehung über transform (Inline-Style). */
.fnv-img[b-podgo5om0b] {
    max-width: none;
    border-radius: 3px;
    box-shadow: 0 8px 26px var(--fn-shadow-hover);
}

/* Region-OCR-Rechteck (fn-pdfviewer-region.js zeichnet dieses Overlay) — tokens-only. */
.fnv-doc[b-podgo5om0b]  .fnv-region-overlay,
.fnv-doc .fnv-region-overlay[b-podgo5om0b] {
    position: absolute;
    border: 2px dashed var(--fn-primary);
    background: var(--fn-accent-soft);
    pointer-events: none;
    z-index: 50;
    box-sizing: border-box;
    border-radius: 3px;
}

.fnv-overlay[b-podgo5om0b] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--fn-text-secondary);
    font-size: 13px;
}

.fnv-overlay-msg[b-podgo5om0b] {
    color: var(--fn-danger);
    padding: 0 24px;
    text-align: center;
}

.fnv-splitter[b-podgo5om0b] {
    background: var(--fn-border);
    cursor: col-resize;
}

.fnv-splitter:hover[b-podgo5om0b] {
    background: var(--fn-primary);
}

/* Footer — Spalten decken sich mit dem Body (PDF · Splitter · OCR, gleiche Variable) */
.fnv-footer[b-podgo5om0b] {
    display: grid;
    grid-template-columns: var(--fnv-doc-col, 60%) 4px calc(100% - var(--fnv-doc-col, 60%) - 4px);
    align-items: stretch;
    border-top: 1px solid var(--fn-border);
    background: var(--fn-bg-muted);
}

.fnv-foot-doc[b-podgo5om0b] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 9px 16px;
    min-width: 0;
}

.fnv-foot-ocr[b-podgo5om0b] {
    padding: 9px 16px;
}

.fnv-foot-spacer[b-podgo5om0b] {
    flex: 1;
}

.fnv-pgnav[b-podgo5om0b] {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--fn-text-secondary);
    font-size: 12px;
    font-family: var(--fn-font-mono);
}

.fnv-nav[b-podgo5om0b] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 0;
    color: var(--fn-text-secondary);
    cursor: pointer;
    padding: 0;
}

.fnv-nav:hover:not(:disabled)[b-podgo5om0b] {
    color: var(--fn-primary);
}

.fnv-nav:disabled[b-podgo5om0b] {
    opacity: .4;
    cursor: default;
}

.fnv-nav svg[b-podgo5om0b] {
    width: 14px;
    height: 14px;
}

/* Zoom-Slider */
.fnv-zoom[b-podgo5om0b] {
    display: flex;
    align-items: center;
    gap: 11px;
    color: var(--fn-text-secondary);
    font-size: 12px;
    font-family: var(--fn-font-mono);
}

.fnv-zbtn[b-podgo5om0b] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: 0;
    color: var(--fn-text-tertiary);
    cursor: pointer;
    padding: 0;
}

.fnv-zbtn:hover[b-podgo5om0b] {
    color: var(--fn-primary);
}

.fnv-zbtn svg[b-podgo5om0b] {
    width: 14px;
    height: 14px;
}

.fnv-zslider[b-podgo5om0b] {
    -webkit-appearance: none;
    appearance: none;
    width: 132px;
    height: 5px;
    border-radius: 999px;
    background: var(--fn-border-strong);
    cursor: pointer;
    outline: none;
}

.fnv-zslider[b-podgo5om0b]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--fn-primary);
    box-shadow: 0 0 0 3px var(--fn-accent-soft);
    cursor: pointer;
}

.fnv-zslider[b-podgo5om0b]::-moz-range-thumb {
    width: 14px;
    height: 14px;
    border: 0;
    border-radius: 50%;
    background: var(--fn-primary);
    box-shadow: 0 0 0 3px var(--fn-accent-soft);
    cursor: pointer;
}

.fnv-zval[b-podgo5om0b] {
    min-width: 40px;
    text-align: right;
}

.fnv-fit[b-podgo5om0b] {
    padding: 2px 9px;
    border: 1px solid var(--fn-border-strong);
    border-radius: 7px;
    background: transparent;
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 12px;
    cursor: pointer;
}

.fnv-fit:hover[b-podgo5om0b] {
    color: var(--fn-primary);
    border-color: var(--fn-accent-line);
}

/* OCR-Schalter — bündig am rechten PDF-Rand, vor der OCR-Textleiste */
.fnv-toggle[b-podgo5om0b] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--fn-text-secondary);
    background: transparent;
    border: 0;
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

/* Ohne konfigurierten OCR-Provider ist der Schalter ehrlich gesperrt (Niko 02.08.2026). */
.fnv-toggle:disabled[b-podgo5om0b] {
    opacity: .45;
    cursor: default;
}

.fnv-sw[b-podgo5om0b] {
    width: 34px;
    height: 19px;
    border-radius: 999px;
    background: var(--fn-accent-soft);
    border: 1px solid var(--fn-accent-line);
    position: relative;
    transition: background .15s;
}

.fnv-sw[b-podgo5om0b]::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 16px;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--fn-primary);
    transition: left .15s;
}

.fnv-sw.off[b-podgo5om0b] {
    background: var(--fn-bg-alt);
    border-color: var(--fn-border-strong);
}

.fnv-sw.off[b-podgo5om0b]::after {
    left: 2px;
    background: var(--fn-text-tertiary);
}

.fnv-ocr-state[b-podgo5om0b] {
    font-weight: 600;
    color: var(--fn-primary);
}

/* OCR AUS: Text-Seitenleiste + Splitter weg, Dokument volle Breite */
.fnv-no-ocr .fnv-body[b-podgo5om0b] {
    grid-template-columns: 1fr;
}

.fnv-no-ocr .fnv-splitter[b-podgo5om0b],
.fnv-no-ocr[b-podgo5om0b]  .fnv-ocr {
    display: none;
}

.fnv-no-ocr .fnv-footer[b-podgo5om0b] {
    grid-template-columns: 1fr;
}

.fnv-no-ocr .fnv-foot-mid[b-podgo5om0b],
.fnv-no-ocr .fnv-foot-ocr[b-podgo5om0b] {
    display: none;
}

.fnv-no-ocr .fnv-ocr-state[b-podgo5om0b] {
    color: var(--fn-text-tertiary);
}


/* /Components/Shared/FnDocumentViewerOcrSidebar.razor.rz.scp.css */
/* OCR-Seitenleiste des Dokument-Viewers (FINSIZE001-Schnitt 03.08.2026) — Stile 1:1 aus
   FnDocumentViewer.razor.css uebernommen; Fortschritt nach dem Positions-Studio-Muster. */

.fnv-ocr[b-4hkkacxvp7] {
    background: var(--fn-bg-alt);
    padding: 15px 16px;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.fnv-ocr-head[b-4hkkacxvp7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 11px;
}

.fnv-ocr-title[b-4hkkacxvp7] {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13px;
    font-weight: 600;
    color: var(--fn-text);
}

.fnv-dot[b-4hkkacxvp7] {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    flex: 0 0 auto;
    cursor: help;
}

.fnv-dot.local[b-4hkkacxvp7] {
    background: var(--fn-success);
    box-shadow: 0 0 0 3px var(--fn-success-soft);
}

.fnv-dot.ext[b-4hkkacxvp7] {
    background: var(--fn-warning);
    box-shadow: 0 0 0 3px var(--fn-warning-soft);
}

.fnv-ocr-acts[b-4hkkacxvp7] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.fnv-ic[b-4hkkacxvp7] {
    width: 28px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--fn-text-secondary);
    cursor: pointer;
}

.fnv-ic:hover:not(:disabled)[b-4hkkacxvp7] {
    color: var(--fn-primary);
    background: var(--fn-accent-soft);
    border-color: var(--fn-accent-line);
}

.fnv-ic:disabled[b-4hkkacxvp7] {
    opacity: .45;
    cursor: default;
}

.fnv-ic svg[b-4hkkacxvp7] {
    width: 15px;
    height: 15px;
}

.fnv-ocr-text[b-4hkkacxvp7] {
    flex: 1;
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    background: var(--fn-input-bg);
    border: 1px solid var(--fn-input-border);
    border-radius: var(--fn-radius-sm);
    padding: 11px;
    line-height: 1.65;
    white-space: pre-wrap;
    overflow-y: auto;
}

/* OCR-Fortschritt — 1:1 Muster aus dem Positions-Studio-Status (Nikos Referenz 02.08.2026):
   3px-Balken auf --fn-bg-muted; deterministisch (echte Quelle: Seite X von Y) oder Lauflicht. */
.fnv-scan-loading[b-4hkkacxvp7] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px 12px 6px;
    border-bottom: 1px solid var(--fn-border);
}

.fnv-scan-loading small[b-4hkkacxvp7] {
    color: var(--fn-text-secondary);
    font-size: 11.5px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.fnv-scan-progress[b-4hkkacxvp7] {
    height: 3px;
    background: var(--fn-bg-muted);
    border-radius: 2px;
    overflow: hidden;
}

.fnv-scan-progress .det[b-4hkkacxvp7] {
    display: block;
    height: 100%;
    background: var(--fn-primary);
    transition: width .3s ease;
}

.fnv-scan-progress .slide[b-4hkkacxvp7] {
    display: block;
    height: 100%;
    width: 40%;
    background: var(--fn-primary);
    animation: fnv-scan-slide-b-4hkkacxvp7 1.1s ease-in-out infinite;
}

@keyframes fnv-scan-slide-b-4hkkacxvp7 {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(250%); }
}

.fnv-scan-cancel[b-4hkkacxvp7] {
    margin-left: auto;
}
/* /Components/Shared/FnEmptyState.razor.rz.scp.css */
/* Leerzustand — tokens-only (FINLIST003). */
.fn-empty-state[b-mp4g5oup85] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 34px 22px;
    text-align: center;
    color: var(--fn-text-secondary);
    background: var(--fn-bg-alt);
    border: 1px dashed var(--fn-border-strong);
    border-radius: var(--fn-radius);
}

.fn-empty-ico[b-mp4g5oup85] {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--fn-bg-muted);
    color: var(--fn-text-tertiary);
}

.fn-empty-ico[b-mp4g5oup85]  svg {
    width: 20px;
    height: 20px;
}

.fn-empty-title[b-mp4g5oup85] {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--fn-text);
}

.fn-empty-hint[b-mp4g5oup85] {
    font-size: 12px;
    color: var(--fn-text-tertiary);
    max-width: 46ch;
}

.fn-empty-action[b-mp4g5oup85] {
    margin-top: 6px;
}
/* /Components/Shared/FnEntityCard.razor.rz.scp.css */
/* Dichte-Skala (verbindlich, KONZEPT-Design-Komponenten-Standard):
   Karte 18×22 · Inhaltszeilen 12 · Karten-gap 16 (fn-entity-list) · Media 52 · Aktionen bei Hover.
   Tokens-only (FINLIST003). */
.fn-entity-card[b-pdzpgsx3i5] {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 18px 22px;
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
}

.fn-entity-accent[b-pdzpgsx3i5] {
    border-left: 3px solid var(--fn-cat-purple);
}

.fn-entity-media[b-pdzpgsx3i5] {
    flex: none;
    width: 52px;
}

.fn-entity-body[b-pdzpgsx3i5] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.fn-entity-actions[b-pdzpgsx3i5] {
    display: flex;
    gap: 4px;
    flex: none;
    align-self: flex-start;
    opacity: 0;
    transition: opacity .15s;
}

.fn-entity-card:hover .fn-entity-actions[b-pdzpgsx3i5] {
    opacity: 1;
}

/* Hover-Aktions-Buttons: Module bringen nur Icon + title mit (FlowDesk-Muster, Löschen zuletzt). */
.fn-entity-actions[b-pdzpgsx3i5]  button {
    width: 30px;
    height: 30px;
    border-radius: 7px;
    border: 1px solid var(--fn-border);
    background: transparent;
    color: var(--fn-text-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.fn-entity-actions[b-pdzpgsx3i5]  button:hover {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
    border-color: var(--fn-border-strong);
}

.fn-entity-actions[b-pdzpgsx3i5]  button.fn-danger:hover {
    color: var(--fn-danger);
    border-color: var(--fn-danger);
    background: var(--fn-danger-soft);
}

.fn-entity-actions[b-pdzpgsx3i5]  svg {
    width: 15px;
    height: 15px;
}
/* /Components/Shared/FnErrorDialog.razor.rz.scp.css */
.fn-error-backdrop[b-2odfks048u] {
    position: fixed;
    inset: 0;
    z-index: 4000;
    display: grid;
    place-items: center;
    padding: 20px;
    background: var(--fn-shadow-hover);
}

.fn-error-dialog[b-2odfks048u] {
    width: min(560px, 100%);
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-danger);
    border-radius: var(--fn-radius);
    box-shadow: var(--fn-elevation-2);
    overflow: hidden;
}

.fn-error-head[b-2odfks048u] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 15px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-muted);
}

.fn-error-head h3[b-2odfks048u] {
    margin: 0;
    color: var(--fn-text);
    font-size: 14px;
    font-weight: 700;
}

.fn-error-head p[b-2odfks048u] {
    margin: 3px 0 0;
    color: var(--fn-text-secondary);
    font-size: 12px;
    line-height: 1.4;
}

.fn-error-icon[b-2odfks048u] {
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-alt);
    color: var(--fn-text-secondary);
}

.fn-error-icon svg[b-2odfks048u] {
    width: 16px;
    height: 16px;
}

.fn-error-body[b-2odfks048u] {
    display: grid;
    gap: 13px;
    padding: 15px;
}

.fn-error-body p[b-2odfks048u] {
    margin: 0;
    color: var(--fn-text);
    font-size: 13px;
    line-height: 1.5;
}

.fn-error-detail[b-2odfks048u] {
    padding: 10px 11px;
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
    font-size: 12px;
    line-height: 1.45;
}

.fn-error-token[b-2odfks048u] {
    display: grid;
    gap: 6px;
    padding: 11px;
    border: 1px solid var(--fn-warning);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
}

.fn-error-token span[b-2odfks048u] {
    color: var(--fn-text-secondary);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.fn-error-token code[b-2odfks048u] {
    color: var(--fn-warning);
    font-family: var(--fn-font-mono);
    font-size: 12px;
}

.fn-error-foot[b-2odfks048u] {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding: 12px 15px;
    border-top: 1px solid var(--fn-border);
    background: var(--fn-bg-alt);
}

.fn-error-action[b-2odfks048u] {
    min-height: 36px;
    border: 1px solid var(--fn-primary);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-alt);
    color: var(--fn-primary);
    font-weight: 700;
    padding: 8px 14px;
}

.fn-error-primary[b-2odfks048u] {
    border: 0;
    border-radius: var(--fn-radius-sm);
    background: var(--fn-primary);
    color: var(--fn-on-primary);
    font-weight: 700;
    padding: 9px 14px;
}
/* /Components/Shared/FnFileUploadButton.razor.rz.scp.css */
.fn-file-upload[b-3c48mfaibn] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 0;
}

.fn-file-upload-trigger[b-3c48mfaibn] {
    position: relative;
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    cursor: pointer;
}

.fn-file-upload-trigger.disabled[b-3c48mfaibn] {
    cursor: not-allowed;
    opacity: .55;
}

.fn-file-upload-trigger[b-3c48mfaibn]  input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: inherit;
}

.fn-file-upload-button[b-3c48mfaibn] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 34px;
    padding: 0 14px;
    border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-alt);
    color: var(--fn-text);
    font-family: var(--fn-font);
    font-size: 13px;
    font-weight: var(--fn-font-weight-medium);
    white-space: nowrap;
}

.fn-file-upload-trigger:hover .fn-file-upload-button[b-3c48mfaibn] {
    background: var(--fn-hover);
}

.fn-file-upload-button svg[b-3c48mfaibn],
.fn-file-upload-chip svg[b-3c48mfaibn] {
    width: 15px;
    height: 15px;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.fn-file-upload-button svg[b-3c48mfaibn] {
    color: var(--fn-primary);
}

.fn-file-upload-hint[b-3c48mfaibn] {
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
}

.fn-file-upload-chips[b-3c48mfaibn] {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.fn-file-upload-chip[b-3c48mfaibn] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    max-width: 100%;
    padding: 4px 7px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-pill);
    background: var(--fn-surface-alt);
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.fn-file-upload-chip > span:first-of-type[b-3c48mfaibn] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fn-file-upload-size[b-3c48mfaibn] {
    color: var(--fn-text-tertiary);
    font-family: var(--fn-font-mono);
    font-size: 11px;
}

.fn-file-upload-remove[b-3c48mfaibn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    border-radius: var(--fn-radius-round);
    background: transparent;
    color: var(--fn-text-tertiary);
    cursor: pointer;
}

.fn-file-upload-remove:hover[b-3c48mfaibn] {
    background: var(--fn-hover);
    color: var(--fn-danger);
}

.fn-file-upload-remove svg[b-3c48mfaibn] {
    width: 14px;
    height: 14px;
}
/* /Components/Shared/FnFilterChips.razor.rz.scp.css */
.fn-chips[b-5uq242hbuh] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.fn-chip[b-5uq242hbuh] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 11px;
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-pill);
    background: transparent;
    color: var(--fn-text-secondary);
    font-family: var(--fn-font);
    font-size: 12.5px;
    font-weight: var(--fn-font-weight-medium);
    white-space: nowrap;
    cursor: pointer;
}

.fn-chip:hover:not(:disabled)[b-5uq242hbuh] {
    color: var(--fn-text);
    border-color: var(--fn-primary);
}

.fn-chip-on[b-5uq242hbuh] {
    background: var(--fn-accent-soft);
    border-color: var(--fn-primary);
    color: var(--fn-primary);
}

.fn-chip-count[b-5uq242hbuh] {
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    font-weight: 600;
    color: var(--fn-text-tertiary);
}

.fn-chip-on .fn-chip-count[b-5uq242hbuh] {
    color: var(--fn-primary);
}

.fn-chip:disabled[b-5uq242hbuh] {
    opacity: .5;
    cursor: not-allowed;
}

.fn-chip:focus-visible[b-5uq242hbuh] {
    outline: 2px solid var(--fn-primary);
    outline-offset: 2px;
}
/* /Components/Shared/FnFormFooter.razor.rz.scp.css */
/* Standard-Formular-Footer: Trennlinie oben, links Status/Zusatz-Aktionen, rechts Reset/Save.
   Tokens only (FINLIST003). */
.fn-form-foot[b-2w32au5uaq] {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 4px;
    padding-top: 14px;
    border-top: 1px solid var(--fn-border);
}

.fn-form-foot-left[b-2w32au5uaq] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1 1 auto;
    min-width: 0;
    flex-wrap: wrap;
}

.fn-form-foot-status[b-2w32au5uaq] {
    font-size: 12.5px;
    color: var(--fn-text-secondary);
    min-width: 0;
}

.fn-form-foot-actions[b-2w32au5uaq] {
    display: flex;
    align-items: center;
    /* Vorgabe 2c: "Abstand 16px" - gemessen am 09.09.2026 in der gerenderten Design-Vorgabe
       (.ft-row, gap 16px). Hier standen 10px. */
    gap: 16px;
    flex: 0 0 auto;
    margin-left: auto;
}

/* Vorgabe 2c: Footer-Aktionen exakt 42px hoch, Padding 0 18px, Schrift 14px, Icons 16px - rechts, nie Vollbreite.
   Gilt nur hier; .fn-btn allgemein bleibt die kompakte Button-Optik (Niko-Entscheidung 07.09.2026). */
.fn-form-foot-actions[b-2w32au5uaq]  .fn-btn {
    height: 42px;
    padding: 0 18px;
    font-size: 14px;
}
.fn-form-foot-actions[b-2w32au5uaq]  .fn-btn svg {
    width: 16px;
    height: 16px;
}

/* Icon in den Footer-Buttons (save / rotate-ccw) — 16px, wie Vorgabe 2c und die Regel für
   `svg` zwei Zeilen darüber. 15px war ein Widerspruch in derselben Datei. */
.fn-form-foot-actions[b-2w32au5uaq]  .lucide {
    width: 16px;
    height: 16px;
}
/* /Components/Shared/FnHelpLink.razor.rz.scp.css */
/* Dezenter Kontexthilfe-Link — nur bestehende Token, kein eigenes Farbschema. */
.fn-help-link[b-6w6fja0bi6] {
    display: inline-flex;
    align-items: center;
    color: var(--fn-text-tertiary);
    line-height: 1;
    text-decoration: none;
    transition: color .12s;
    /* Als <button> (Kontexthilfe-Fenster) darf keine Browser-Standardoptik durchschlagen
       (Niko 22.08.2026: graue Kaestchen statt Fragezeichen). */
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
    font: inherit;
    cursor: pointer;
}
.fn-help-link[b-6w6fja0bi6] {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    border-radius: 6px;

    /* Ein geteiltes Bauteil muss ueberall gleich sitzen — es darf seine Lage nicht vom Umfeld erben
       (Niko 22.08.2026: „mal oben, mal mittig — wird die Positionierung per Zufall ermittelt?").
       Gemessen auf Prod: in der Board-Navigation sass der Kreis 8,5 px zu hoch, in den Kachel-Aktionen
       mittig. Ursache: `display: grid` ist BLOCKARTIG und ueberschrieb das `inline-flex` darueber; in
       einem Flex-Eltern mit `align-items: normal` wird die Huelle gestreckt und der Knopf klebt oben.
       Drei Zeilen stellen die Lage sicher, unabhaengig vom Container. */
    display: inline-grid;
    place-items: center;
    align-self: center;
    vertical-align: middle;
}
.fn-help-link:hover[b-6w6fja0bi6] { background: var(--fn-accent-soft); }
/* Das Symbol kommt aus der Kindkomponente FnIcon — ohne ::deep erreicht isoliertes CSS es nicht. */
.fn-help-link[b-6w6fja0bi6]  .fn-icon,
.fn-help-link[b-6w6fja0bi6]  svg { width: 16px; height: 16px; }

.fn-help-link:hover[b-6w6fja0bi6],
.fn-help-link:focus-visible[b-6w6fja0bi6] {
    color: var(--fn-primary);
}
/* /Components/Shared/FnHtmlDocumentView.razor.rz.scp.css */
.fnhv-surface[b-sbuuv5n6if] {
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background: var(--fn-bg-surface);
}

.fnhv-frame[b-sbuuv5n6if] {
    display: block;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
    border: 0;
    background: var(--fn-bg-surface);
}
/* /Components/Shared/FnIcon.razor.rz.scp.css */
i.fn-icon[b-jzln1ktzr7] {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    color: currentColor;
}
/* /Components/Shared/FnLabelEditDialog.razor.rz.scp.css */
/* Kachel-Text-Editor — tokens-only. Panel frei ziehbar (Niko 20.07.: resizable) über CSS resize;
   Inhalt scrollt innen, dunkle Scrollbalken (keine weißen Hintergründe). */
.lted-portal[b-u32blp9uth] { display: contents; }

.lted-backdrop[b-u32blp9uth] {
    position: fixed; inset: 0; z-index: 1050;
    background: color-mix(in srgb, var(--fn-bg) 62%, transparent);
    display: flex; align-items: center; justify-content: center;
}

.lted-modal[b-u32blp9uth] {
    display: flex; flex-direction: column;
    width: 680px; min-width: 560px; max-width: 92vw;
    height: 520px; min-height: 430px; max-height: 90vh;
    resize: both; overflow: hidden;
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-lg); box-shadow: 0 16px 40px var(--fn-shadow-hover);
}

.lted-head[b-u32blp9uth] {
    display: flex; align-items: center; gap: 10px;
    padding: 13px 18px; border-bottom: 1px solid var(--fn-border); flex: none;
}

.lted-head h3[b-u32blp9uth] { margin: 0; font-size: 15px; display: flex; align-items: center; gap: 9px; color: var(--fn-text); }
.lted-head[b-u32blp9uth]  svg { width: 15px; height: 15px; color: var(--fn-primary); }
.lted-ctx[b-u32blp9uth] { color: var(--fn-text-secondary); font-weight: 500; }

/* Fenster-Steuerung (FnHeaderActionButton, Design-Standard wie FnFloatingWindow) */
.lted-controls[b-u32blp9uth] { margin-left: auto; display: flex; align-items: center; gap: 4px; }

/* Maximiert: nahezu Vollbild, Resize-Ecke deaktiviert (Rückweg über Standardgröße/Maximieren-Toggle) */
.lted-modal.max[b-u32blp9uth] { width: 96vw; height: 92vh; max-width: 96vw; max-height: 92vh; resize: none; }

.lted-body[b-u32blp9uth] {
    padding: 16px 18px; flex: 1 1 auto; overflow: auto;
    scrollbar-width: thin; scrollbar-color: var(--fn-border-strong) var(--fn-bg-muted);
}

.lted-grid[b-u32blp9uth] { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.lted-col[b-u32blp9uth] {
    border: 1px solid var(--fn-border); border-radius: 10px;
    background: var(--fn-bg-muted); padding: 13px;
    display: flex; flex-direction: column; min-width: 0;
}

.lted-flag[b-u32blp9uth] {
    display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
    font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
    color: var(--fn-text-secondary);
}

.lted-flag .dot[b-u32blp9uth] { width: 8px; height: 8px; border-radius: 50%; }
.lted-flag .dot.de[b-u32blp9uth] { background: var(--fn-primary); }
.lted-flag .dot.en[b-u32blp9uth] { background: var(--fn-success); }

.lted-col label[b-u32blp9uth] { font-size: 11.5px; color: var(--fn-text-tertiary); margin: 9px 0 4px; }

.lted-inp[b-u32blp9uth], .lted-area[b-u32blp9uth] {
    width: 100%; background: var(--fn-bg); border: 1px solid var(--fn-border); border-radius: 8px;
    color: var(--fn-text); font: 13px/1.5 var(--fn-font); padding: 8px 10px; outline: none;
}

.lted-inp:focus[b-u32blp9uth], .lted-area:focus[b-u32blp9uth] { border-color: var(--fn-primary); }

.lted-area[b-u32blp9uth] {
    resize: vertical; min-height: 64px; flex: 1 1 auto;
    scrollbar-width: thin; scrollbar-color: var(--fn-border-strong) var(--fn-bg-muted);
}

.lted-area[b-u32blp9uth]::-webkit-scrollbar, .lted-body[b-u32blp9uth]::-webkit-scrollbar { width: 10px; height: 10px; }
.lted-area[b-u32blp9uth]::-webkit-scrollbar-track, .lted-body[b-u32blp9uth]::-webkit-scrollbar-track { background: var(--fn-bg-muted); border-radius: 6px; }
.lted-area[b-u32blp9uth]::-webkit-scrollbar-thumb, .lted-body[b-u32blp9uth]::-webkit-scrollbar-thumb {
    background: var(--fn-border-strong); border-radius: 6px; border: 2px solid var(--fn-bg-muted);
}
.lted-area[b-u32blp9uth]::-webkit-scrollbar-thumb:hover, .lted-body[b-u32blp9uth]::-webkit-scrollbar-thumb:hover { background: var(--fn-primary); }

.lted-std[b-u32blp9uth] { margin-top: 10px; font-size: 11.5px; color: var(--fn-text-tertiary); }
.lted-std b[b-u32blp9uth] { color: var(--fn-text-secondary); font-weight: 600; }

.lted-note[b-u32blp9uth] { margin: 14px 0 0; font-size: 12px; color: var(--fn-text-secondary); }

/* FnFormFooter sitzt als flex-none unten im Panel; Innenabstand wie der Body. */
.lted-modal[b-u32blp9uth]  .fn-form-foot { flex: none; padding: 12px 18px 14px; margin-top: 0; }

@media (max-width: 760px) { .lted-grid[b-u32blp9uth] { grid-template-columns: 1fr; } }
/* /Components/Shared/FnListToolbar.razor.rz.scp.css */
/* Listen-Kopfzeile — tokens-only (FINLIST003). Geometrie geeicht an Benutzerverwaltung/FlowDesk. */
.fn-list-toolbar[b-7xgxbf28o3] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.fn-toolbar-search[b-7xgxbf28o3] {
    /* Höhe EXAKT 30px (Design-Vorgabe §2b). Bis zum 06.09.2026 stand hier keine Höhe: sie entstand
       aus Padding + Rand + Browser-Eigenhöhe des <input> und lag bei 35px — also nicht einmal
       stabil, sondern browserabhängig. */
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 220px;
    height: 30px;
    padding: 0 11px;
    border-radius: 8px;
    border: 1px solid var(--fn-border);
    background: var(--fn-input-bg);
    margin-left: auto;
}

.fn-toolbar-search:focus-within[b-7xgxbf28o3] {
    border-color: var(--fn-primary);
}

.fn-toolbar-search[b-7xgxbf28o3]  svg {
    width: 14px;
    height: 14px;
    color: var(--fn-text-tertiary);
    flex: none;
}

.fn-toolbar-search input[b-7xgxbf28o3] {
    flex: 1;
    height: 100%;
    padding: 0;
    min-width: 0;
    border: none;
    background: transparent;
    outline: none;
    color: var(--fn-text);
    font: inherit;
    font-size: 12.5px;
}

.fn-toolbar-refresh[b-7xgxbf28o3] {
    /* Radius 10 statt 7 (Niko 09.09.2026: "2:10"). Er war der einzige Knopf der Leiste mit einer
       anderen Rundung; nebeneinander mit Spalten, Breiten, PDF, CSV und dem Verwalter-Menue fiel
       das auf. Die Aenderung steht HIER, weil dieses Bauteil den Knopf besitzt - ein Modul darf
       ein geteiltes Control nicht nachdefinieren (Gate DESIGN001-REDEFINE). */
    width: 30px;
    height: 30px;
    flex: none;
    border-radius: var(--fn-radius-sm);
    border: 1px solid var(--fn-border);
    background: transparent;
    color: var(--fn-text-secondary);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.fn-toolbar-refresh:hover:not(:disabled)[b-7xgxbf28o3] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
    border-color: var(--fn-border-strong);
}

.fn-toolbar-refresh:disabled[b-7xgxbf28o3] {
    opacity: .45;
    cursor: not-allowed;
}

.fn-toolbar-refresh[b-7xgxbf28o3]  svg {
    width: 15px;
    height: 15px;
}

.fn-toolbar-refresh.fn-spinning[b-7xgxbf28o3]  svg {
    animation: fn-toolbar-spin-b-7xgxbf28o3 1s linear infinite;
}

@keyframes fn-toolbar-spin-b-7xgxbf28o3 {
    to { transform: rotate(360deg); }
}

/* Das ➕-Emoji (U+2795) rendert farbig — bewusst KEIN einfaches "+"-Textzeichen (Nutzer-Vorgabe). */
.fn-toolbar-plus[b-7xgxbf28o3] {
    font-size: 13px;
    line-height: 1;
}

/* Primaerknopf „Neue …" — Hoehe EXAKT 30px, Padding 0 18px, max 260px (Design-Vorgabe §2b).
   Bis zum 06.09.2026 gab es zu dieser Klasse UEBERHAUPT keine Regel: der Knopf erbte `.fn-btn`
   (padding 9px 18px) und wurde 40px hoch — die Vorgabe nennt die Klasse beim Namen und die Zahl 30.

   `::deep`, weil das Element von FnButton gerendert wird und damit dessen Bereichskennung traegt.
   Ohne `::deep` waere die Regel still tot (R5) — genau die Falle, die dieses Bauteil hier hatte. */
.fn-list-toolbar[b-7xgxbf28o3]  .fn-toolbar-create {
    height: 30px;
    padding: 0 18px;
    max-width: 260px;
    font-size: 13px;
    white-space: nowrap;
}
/* /Components/Shared/FnLoadingIndicator.razor.rz.scp.css */
.fn-loading[b-smqte1ocfx] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 56px 0;
    color: var(--fn-text-secondary);
    font-size: 13px;
}

.fn-loading-slot[b-smqte1ocfx] {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    display: grid;
    place-items: center;
    color: var(--fn-primary);
}

.fn-loading-hourglass[b-smqte1ocfx] {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    transform-origin: center;
    animation: fn-hourglass-turn-b-smqte1ocfx 2.1s ease-in-out infinite;
}

.fn-loading-copy strong[b-smqte1ocfx],
.fn-loading-copy span[b-smqte1ocfx] {
    display: block;
}

.fn-loading-copy strong[b-smqte1ocfx] {
    color: var(--fn-text);
    font-size: 13px;
    font-weight: var(--fn-font-weight-medium);
}

.fn-loading-copy span[b-smqte1ocfx] {
    margin-top: 1px;
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
}

.fn-loading-compact[b-smqte1ocfx] {
    display: inline-flex;
    justify-content: flex-start;
    gap: 6px;
    padding: 0;
    color: var(--fn-text-tertiary);
    font-size: 12px;
}

.fn-loading-compact .fn-loading-slot[b-smqte1ocfx] {
    width: 16px;
    height: 16px;
    flex-basis: 16px;
}

.fn-loading-compact .fn-loading-hourglass[b-smqte1ocfx] {
    width: 14px;
    height: 14px;
}

.fn-loading-compact .fn-loading-copy strong[b-smqte1ocfx] {
    color: var(--fn-text-tertiary);
    font-size: 12px;
    font-weight: var(--fn-font-weight-regular);
}

.fn-loading-icon-only[b-smqte1ocfx] {
    width: 16px;
    height: 16px;
    padding: 0;
}

@keyframes fn-hourglass-turn-b-smqte1ocfx {
    0%, 20% { transform: rotate(0deg); }
    60%, 100% { transform: rotate(180deg); }
}

@keyframes fn-hourglass-breathe-b-smqte1ocfx {
    0%, 100% { opacity: .55; }
    50% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .fn-loading-hourglass[b-smqte1ocfx] {
        animation: fn-hourglass-breathe-b-smqte1ocfx 1.8s ease-in-out infinite;
    }
}
/* /Components/Shared/FnNoticeDialog.razor.rz.scp.css */
.fn-notice-backdrop[b-guv10ylh05] {
    position: fixed;
    inset: 0;
    z-index: 4000;
    display: grid;
    place-items: center;
    padding: 20px;
    background: var(--fn-shadow-hover);
}

.fn-notice-dialog[b-guv10ylh05] {
    width: min(560px, 100%);
    overflow: hidden;
    border: 1px solid var(--fn-info);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
    box-shadow: var(--fn-elevation-2);
    outline: none;
}

.fn-notice-head[b-guv10ylh05] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 15px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-muted);
}

.fn-notice-title[b-guv10ylh05] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.fn-notice-title[b-guv10ylh05]  > svg {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    margin-top: 1px;
    color: var(--fn-info);
}

.fn-notice-title h3[b-guv10ylh05] {
    margin: 0;
    color: var(--fn-text);
    font-size: 14px;
    font-weight: 600;
}

.fn-notice-title p[b-guv10ylh05] {
    margin: 3px 0 0;
    color: var(--fn-text-secondary);
    font-size: 12px;
    line-height: 1.4;
}

.fn-notice-body[b-guv10ylh05] {
    display: grid;
    gap: 12px;
    padding: 15px;
}

.fn-notice-body > p[b-guv10ylh05] {
    margin: 0;
    color: var(--fn-text);
    font-size: 13px;
    line-height: 1.5;
}

.fn-notice-detail[b-guv10ylh05] {
    padding: 10px 11px;
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
    font-size: 12px;
    line-height: 1.45;
}

.fn-notice-detail strong[b-guv10ylh05] {
    color: var(--fn-text);
    font-weight: 500;
}

.fn-notice-footnote[b-guv10ylh05] {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.fn-notice-footnote[b-guv10ylh05]  svg {
    width: 15px;
    height: 15px;
    color: var(--fn-success);
}

.fn-notice-foot[b-guv10ylh05] {
    display: flex;
    justify-content: flex-end;
    padding: 12px 15px;
    border-top: 1px solid var(--fn-border);
}
/* /Components/Shared/FnNotifyChannelMenu.razor.rz.scp.css */
/* Kanalauswahl — Design-Vorgabe 5a inkl. Nachtrag 1.9, abgenommene Vorschau Szene 3.
   Nur Token, kein rohes Hex (Vorgabe 1g).

   ACHTUNG R5: Die Kanalzeilen liegen in der Kindkomponente FnNotifyChannelRow. Ohne ::deep waeren
   alle `.ch`-Regeln hier STILL wirkungslos — syntaktisch gueltig, kein Test schlaegt an, und in der
   laufenden App stuende die Liste unformatiert da. Deshalb traegt jede Zeilenregel ::deep. */

.notify[b-e9y1qachus] { position: relative; display: inline-block; width: 100%; }

/* Kopf — Hoehe wie eine Eingabe (Vorgabe 2d: 34px). */
.notify-head[b-e9y1qachus] {
  display: flex; align-items: center; gap: 9px;
  width: 100%; height: 34px; padding: 0 11px;
  background: var(--fn-input-bg);
  border: 1px solid var(--fn-input-border);
  border-radius: 8px;
  color: var(--fn-text);
  font-family: var(--fn-font); font-size: 12.5px;
  cursor: pointer; text-align: left;
}
.notify-head:focus-visible[b-e9y1qachus] { outline: none; border-color: var(--fn-primary); box-shadow: var(--fn-focus-ring); }
.notify-head:disabled[b-e9y1qachus] { opacity: .45; cursor: default; }
/* Auch hier ist die Glocke eine Beschriftung, kein Zustand (Niko 07.09.2026: „keine gelbe Glocke
   mehr!"). Die Design-Vorgabe §5a nennt für diesen Kopf noch `--fn-warning`; die jüngere
   ausdrückliche Entscheidung geht vor und wird dort als datierter Nachtrag geführt. */
.notify-head[b-e9y1qachus]  svg:first-child { width: 15px; height: 15px; flex: none; color: var(--fn-text-secondary); }
.notify-head[b-e9y1qachus]  svg:last-child { width: 14px; height: 14px; flex: none; color: var(--fn-text-tertiary); }
.notify-head .sum[b-e9y1qachus] { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.notify-head .cnt[b-e9y1qachus] { flex: none; font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-tertiary); }

/* Aufgeklappte Liste — schwebende Flaeche, deshalb --fn-surface (Vorgabe 1a). */
.notify-pop[b-e9y1qachus] {
  margin-top: 5px; width: 100%;
  background: var(--fn-surface);
  border: 1px solid var(--fn-border-strong);
  border-radius: var(--fn-radius);
  box-shadow: var(--fn-elevation-2);
  padding: 5px; overflow: hidden;
}

/* Zeilen — gemeinsame Optik fuer die feste Zeile hier UND die Kanalzeilen der Kindkomponente. */
.notify-pop[b-e9y1qachus]  .ch,
.notify-pop .ch[b-e9y1qachus] {
  display: flex; align-items: center; gap: 10px;
  width: 100%; padding: 8px 10px;
  background: transparent; border: none; border-radius: 8px;
  color: var(--fn-text); font-family: var(--fn-font); font-size: 12.5px;
  text-align: left; cursor: pointer;
}
.notify-pop[b-e9y1qachus]  .ch:hover { background: var(--fn-hover); }
.notify-pop[b-e9y1qachus]  .ch:focus-visible { outline: none; box-shadow: var(--fn-focus-ring); }
.notify-pop[b-e9y1qachus]  .ch > svg { width: 15px; height: 15px; flex: none; }
.notify-pop[b-e9y1qachus]  .ch .tx { flex: 1; min-width: 0; }
.notify-pop[b-e9y1qachus]  .ch .tx b { display: block; font-size: 12.5px; font-weight: var(--fn-font-weight-medium); }
.notify-pop[b-e9y1qachus]  .ch .tx small {
  display: block; margin-top: 1px;
  font-family: var(--fn-font-mono); font-size: 10.5px; color: var(--fn-text-tertiary);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Kanalfarben — je Kanal eine feste Farbe (Vorgabe 4c, Nachtrag 1.9). */
.notify-pop[b-e9y1qachus]  .ch.mail > svg { color: var(--fn-text-secondary); }
.notify-pop[b-e9y1qachus]  .ch.msg > svg { color: var(--fn-text-secondary); }
.notify-pop[b-e9y1qachus]  .ch.tg > svg { color: var(--fn-cat-teal); }
.notify-pop[b-e9y1qachus]  .ch.hook > svg { color: var(--fn-cat-purple); }
.notify-pop .ch.box > svg[b-e9y1qachus],
.notify-pop[b-e9y1qachus]  .ch.box > svg { color: var(--fn-primary); }

/* Nicht bestaetigt: sichtbar, aber nicht waehlbar. Der Umschalter BLEIBT stehen — ihn auszublenden
   wuerde den Grund verschleiern (UX-Vorgabe V11/V14). */
.notify-pop[b-e9y1qachus]  .ch.disabled { opacity: .45; }
.notify-pop[b-e9y1qachus]  .ch.disabled:hover { background: transparent; }

/* Die feste Zeile ist keine Schaltflaeche: kein Hover, kein Zeiger — sonst sieht sie aus wie ein
   Schalter, der nicht reagiert (UX-Vorgabe V16). */
.notify-pop .ch.fixed-row[b-e9y1qachus] { cursor: default; }
.notify-pop .ch.fixed-row:hover[b-e9y1qachus] { background: transparent; }
.notify-pop .ch .fixed[b-e9y1qachus] { flex: none; font-size: 10.5px; color: var(--fn-text-tertiary); }

/* Zustandszeilen: laedt, Fehler, leer. */
.notify-pop .ch.state[b-e9y1qachus] { cursor: default; }
.notify-pop .ch.state:hover[b-e9y1qachus] { background: transparent; }
.notify-pop .ch.state.empty[b-e9y1qachus] {
  display: block; padding: 10px;
  font-size: 11.5px; line-height: 1.5; color: var(--fn-text-tertiary);
}
.notify-pop .ch.state.warn[b-e9y1qachus]  svg { color: var(--fn-warning); }
.notify-pop .ch.state .retry[b-e9y1qachus] {
  flex: none; height: 24px; padding: 0 10px;
  background: transparent; border: 1px solid var(--fn-border-strong); border-radius: 8px;
  color: var(--fn-text-secondary); font-family: var(--fn-font); font-size: 11.5px; cursor: pointer;
}
.notify-pop .ch.state .retry:hover[b-e9y1qachus] { background: var(--fn-hover); color: var(--fn-text); }

/* Umschalter .tog — die in 5a festgelegte Form; kein zweites Schalter-Primitiv (Vorgabe 3c). */
.notify-pop[b-e9y1qachus]  .tog {
  width: 32px; height: 18px; flex: none; position: relative;
  background: var(--fn-surface-alt);
  border: 1px solid var(--fn-border-strong);
  border-radius: var(--fn-radius-pill);
}
.notify-pop[b-e9y1qachus]  .tog::after {
  content: ""; position: absolute; top: 2px; left: 2px;
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--fn-text-tertiary);
}
.notify-pop[b-e9y1qachus]  .tog.on { background: var(--fn-primary); border-color: var(--fn-primary); }
.notify-pop[b-e9y1qachus]  .tog.on::after { left: 16px; background: var(--fn-on-primary); }

/* Fusszeile — Weg zur Einrichtung. */
.notify-foot[b-e9y1qachus] {
  display: flex; align-items: center; gap: 6px;
  margin-top: 4px; padding: 8px 10px 5px;
  border-top: 1px solid var(--fn-border);
  font-size: 11px; color: var(--fn-text-tertiary);
}
.notify-foot[b-e9y1qachus]  svg { width: 13px; height: 13px; flex: none; }
.notify-foot a[b-e9y1qachus] { color: var(--fn-primary); text-decoration: none; }
.notify-foot a:hover[b-e9y1qachus] { text-decoration: underline; }
/* /Components/Shared/FnPrismEditor.razor.rz.scp.css */
/* Der geteilte Prism-Editor.
   Farben ausschliesslich als --fn-*-Token; kein Hex, keine erfundene Farbe.
   Die pr-*-Klassen erzeugt der PrismHighlighter im Dienst — hier bekommen sie ihre Farbe.
   Gleiche Faehigkeit an jedem Ort; .compact aendert NUR Masse, nie Funktion. */

.fn-prism[b-gcry5qbpyu] {
    display: flex;
    position: relative;
    background: var(--fn-input-bg);
    border: 1px solid var(--fn-input-border);
    border-radius: var(--fn-radius-sm);
    overflow: hidden;
    font-family: var(--fn-font-mono);
    font-size: 12.5px;
    line-height: 1.55;
}

.fn-prism.readonly[b-gcry5qbpyu] {
    background: var(--fn-bg-muted);
}

/* --- Zeilennummern ------------------------------------------------------- */

.fn-prism-gutter[b-gcry5qbpyu] {
    flex: 0 0 auto;
    padding: 10px 8px 10px 10px;
    text-align: right;
    color: var(--fn-text-tertiary);
    background: var(--fn-bg-muted);
    border-right: 1px solid var(--fn-border);
    user-select: none;
    font-variant-numeric: tabular-nums;
}

.fn-prism-gutter .ln[b-gcry5qbpyu] {
    min-width: 18px;
}

/* --- Textflaeche und Einfaerbung liegen deckungsgleich uebereinander ------ */

.fn-prism-area[b-gcry5qbpyu] {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

.fn-prism-view[b-gcry5qbpyu],
.fn-prism-input[b-gcry5qbpyu] {
    margin: 0;
    padding: 10px 12px;
    font-family: var(--fn-font-mono);
    font-size: inherit;
    line-height: inherit;
    white-space: pre;
    overflow-wrap: normal;
    tab-size: 2;
}

.fn-prism-view[b-gcry5qbpyu] {
    position: absolute;
    inset: 0;
    overflow: auto;
    pointer-events: none;
    color: var(--fn-text);
}

.fn-prism-input[b-gcry5qbpyu] {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 120px;
    background: transparent;
    border: none;
    outline: none;
    resize: none;
    /* Der Text selbst bleibt unsichtbar — sichtbar ist die eingefaerbte Schicht darunter.
       Der Cursor muss sichtbar bleiben, deshalb caret-color getrennt setzen. */
    color: transparent;
    caret-color: var(--fn-primary);
    overflow: auto;
}

.fn-prism-input[b-gcry5qbpyu]::selection {
    background: var(--fn-accent-soft);
}

/* --- Einfaerbung nach Rolle ----------------------------------------------
   ::deep ist hier Pflicht, nicht Geschmack: die pr-*-Spans kommen als MarkupString aus dem
   PrismHighlighter und tragen deshalb KEIN Isolations-Attribut. Ohne ::deep greift keine
   einzige Regel und der Quelltext bleibt einfarbig (gemessen im Browser am 03.08.2026). */

.fn-prism-view[b-gcry5qbpyu]  .pr-kw  { color: var(--fn-primary); font-weight: var(--fn-font-weight-medium); }
.fn-prism-view[b-gcry5qbpyu]  .pr-sig { color: var(--fn-success); font-weight: var(--fn-font-weight-medium); }
.fn-prism-view[b-gcry5qbpyu]  .pr-cmt { color: var(--fn-text-tertiary); font-style: italic; }
.fn-prism-view[b-gcry5qbpyu]  .pr-fn  { color: var(--fn-cat-purple); }
.fn-prism-view[b-gcry5qbpyu]  .pr-sr  { color: var(--fn-cat-teal); }
.fn-prism-view[b-gcry5qbpyu]  .pr-num { color: var(--fn-text-secondary); }
/* Gold heisst ziehbar (§5e Regel 1) — und im geoeffneten Quelltext laesst sich nicht ziehen:
   Die Einfaerbungsschicht liegt mit `pointer-events:none` UNTER der Textflaeche, und
   fn-prism-scrub.js hoert ausschliesslich auf `.cw-num` in der Einheit. Dieselben Zahlen sahen hier
   also aus wie dort und reagierten nicht — nach der Vorgabe ausdruecklich ein FEHLER (Befund 9).
   Deshalb tragen Parameter im Editor die Zahlenfarbe, nicht das Gold. Das Versprechen bleibt dort,
   wo es eingeloest wird: an der Split-Einheit. */
.fn-prism-view[b-gcry5qbpyu]  .pr-par { color: var(--fn-text-secondary); font-weight: var(--fn-font-weight-medium); }
.fn-prism-view[b-gcry5qbpyu]  .pr-txt { color: var(--fn-cat-orange); }
.fn-prism-view[b-gcry5qbpyu]  .pr-op  { color: var(--fn-text-secondary); }
.fn-prism-view[b-gcry5qbpyu]  .pr-pct { color: var(--fn-text-tertiary); }
.fn-prism-view[b-gcry5qbpyu]  .pr-id  { color: var(--fn-text); }

/* --- Vorschlagsliste ------------------------------------------------------ */

/* Die Liste liegt INNERHALB der Editorflaeche an deren Unterkante: `.fn-prism` klippt
   (overflow:hidden), eine Liste unter der Flaeche (top:100%) waere unsichtbar — gemessen im
   Browser am 03.08.2026. Eine Ausrichtung genau am Cursor braucht Pixelmasse aus dem Browser
   und bleibt einem spaeteren Schritt vorbehalten. */
.fn-prism-ac[b-gcry5qbpyu] {
    position: absolute;
    top: auto;
    bottom: 8px;
    left: 12px;
    z-index: 40;
    display: flex;
    min-width: 460px;
    max-width: 640px;
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius);
    box-shadow: var(--fn-elevation-3);
    overflow: hidden;
}

.fn-prism-ac .ac-list[b-gcry5qbpyu] {
    flex: 0 0 190px;
    max-height: 260px;
    overflow-y: auto;
    border-right: 1px solid var(--fn-border);
    padding: 4px;
}

.fn-prism-ac .ac-item[b-gcry5qbpyu] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 5px 8px;
    background: transparent;
    border: none;
    border-radius: 6px;
    color: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-size: 12px;
    text-align: left;
    cursor: pointer;
}

.fn-prism-ac .ac-item:hover[b-gcry5qbpyu] {
    background: var(--fn-hover);
}

.fn-prism-ac .ac-item.sel[b-gcry5qbpyu] {
    background: var(--fn-accent-soft);
}

.fn-prism-ac .ac-kind[b-gcry5qbpyu] {
    flex: 0 0 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 600;
}

.fn-prism-ac .ac-kw[b-gcry5qbpyu]  { background: var(--fn-accent-soft);      color: var(--fn-primary); }
.fn-prism-ac .ac-fn[b-gcry5qbpyu]  { background: var(--fn-cat-purple-soft);  color: var(--fn-cat-purple); }
.fn-prism-ac .ac-sr[b-gcry5qbpyu]  { background: var(--fn-cat-teal-soft);    color: var(--fn-cat-teal); }
.fn-prism-ac .ac-snd[b-gcry5qbpyu] { background: var(--fn-warning-soft);     color: var(--fn-warning); }

/* --- Hilfe zum gewaehlten Eintrag ---------------------------------------- */

.fn-prism-ac .ac-help[b-gcry5qbpyu] {
    flex: 1 1 auto;
    padding: 10px 12px;
    min-width: 0;
}

.fn-prism-ac .ac-sig[b-gcry5qbpyu] {
    font-family: var(--fn-font-mono);
    font-size: 12px;
    color: var(--fn-primary);
    margin-bottom: 6px;
}

.fn-prism-ac .ac-desc[b-gcry5qbpyu] {
    font-family: var(--fn-font);
    font-size: 12.5px;
    color: var(--fn-text-secondary);
    line-height: 1.5;
}

.fn-prism-ac .ac-example-label[b-gcry5qbpyu] {
    font-family: var(--fn-font);
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--fn-text-tertiary);
    margin: 9px 0 3px;
}

.fn-prism-ac .ac-example[b-gcry5qbpyu] {
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    color: var(--fn-text);
    background: var(--fn-bg-muted);
    border-radius: 5px;
    padding: 5px 7px;
    overflow-x: auto;
    white-space: pre;
}

/* --- Statuszeile ---------------------------------------------------------- */

.fn-prism-status[b-gcry5qbpyu] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 5px 2px 0;
    font-family: var(--fn-font);
    font-size: 11.5px;
}

.fn-prism-status .ok[b-gcry5qbpyu]   { color: var(--fn-success); }
.fn-prism-status .bad[b-gcry5qbpyu]  { color: var(--fn-danger); }
/* Zeile/Spalte ist eine Messangabe, keine Wertung — sekundaer und mono, damit die Ziffern beim
   Bewegen des Cursors nicht springen (Befund 13: die Formatregel fehlte ganz). */
.fn-prism-status .pos[b-gcry5qbpyu] {
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-variant-numeric: tabular-nums;
}

.fn-prism-status .hint[b-gcry5qbpyu] { color: var(--fn-text-tertiary); margin-left: auto; }

/* --- Kompakt: NUR Masse, keine Faehigkeit --------------------------------- */

.fn-prism.compact[b-gcry5qbpyu] {
    font-size: 11.5px;
}

.fn-prism.compact .fn-prism-view[b-gcry5qbpyu],
.fn-prism.compact .fn-prism-input[b-gcry5qbpyu] {
    padding: 7px 9px;
}

.fn-prism.compact .fn-prism-gutter[b-gcry5qbpyu] {
    padding: 7px 6px 7px 8px;
}

.fn-prism.compact .fn-prism-input[b-gcry5qbpyu] {
    min-height: 76px;
}
/* /Components/Shared/FnReportEmailComposer.razor.rz.scp.css */
/* E-Mail-Composer (Niko 13.06.2026): Empfänger-Block (An/Cc/Bcc), Signatur-Dropdown, ⋮-Menü.
   Ausschließlich --fn-*-Tokens (tokens.css ist die einzige Hex-Quelle). */

.em-compose[b-hh0w7g2yhl] {
    gap: 4px;
}

.em-recipients[b-hh0w7g2yhl] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.em-row[b-hh0w7g2yhl] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.em-row > label[b-hh0w7g2yhl] {
    flex: 0 0 38px;
    margin-top: 0;
}

.em-row > input[b-hh0w7g2yhl] {
    flex: 1 1 auto;
}

.em-row-toggles[b-hh0w7g2yhl] {
    display: flex;
    gap: 4px;
}

.em-toggle[b-hh0w7g2yhl] {
    border: var(--fn-border-width) solid var(--fn-border);
    background: transparent;
    color: var(--fn-text-tertiary);
    border-radius: 6px;
    padding: 5px 9px;
    font-size: 11px;
    font-weight: var(--fn-font-weight-medium);
    text-transform: uppercase;
    letter-spacing: .06em;
    cursor: pointer;
    font-family: var(--fn-font);
    transition: background .14s, color .14s, border-color .14s;
}

.em-toggle:hover[b-hh0w7g2yhl] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
}

.em-toggle-on[b-hh0w7g2yhl] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
    border-color: var(--fn-border-strong);
}

.em-row-x[b-hh0w7g2yhl] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: var(--fn-border-width) solid var(--fn-border);
    background: transparent;
    color: var(--fn-text-tertiary);
    border-radius: 6px;
    cursor: pointer;
    transition: background .14s, color .14s;
}

.em-row-x:hover[b-hh0w7g2yhl] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
}

.em-row-x[b-hh0w7g2yhl]  .lucide,
.em-row-x svg[b-hh0w7g2yhl] {
    width: 14px;
    height: 14px;
}

.em-hint[b-hh0w7g2yhl] {
    margin: 0 0 2px 46px;
    font-size: 11.5px;
}

.em-msg-head[b-hh0w7g2yhl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.em-msg-tools[b-hh0w7g2yhl] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 6px;
}

.em-sig-select[b-hh0w7g2yhl] {
    max-width: 200px;
}

.em-kebab[b-hh0w7g2yhl] {
    padding: 6px 8px;
}

.em-kebab[b-hh0w7g2yhl]  .lucide,
.em-kebab svg[b-hh0w7g2yhl] {
    width: 15px;
    height: 15px;
}

.em-menu[b-hh0w7g2yhl] {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    z-index: 20;
    min-width: 220px;
    display: flex;
    flex-direction: column;
    padding: 4px;
    background: var(--fn-bg-alt);
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 10px;
    box-shadow: 0 8px 24px var(--fn-shadow);
}

.em-menu-item[b-hh0w7g2yhl] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 8px 10px;
    background: transparent;
    border: 0;
    border-radius: 7px;
    color: var(--fn-text-secondary);
    font-size: 12.5px;
    font-family: var(--fn-font);
    text-align: left;
    cursor: pointer;
    transition: background .14s, color .14s;
}

.em-menu-item:hover[b-hh0w7g2yhl] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
}

.em-menu-item svg[b-hh0w7g2yhl] {
    width: 14px;
    height: 14px;
}

/* Sende-Verzögerung / Undo-Fenster (FlowDesk-Muster) */
.em-countdown[b-hh0w7g2yhl] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0.5rem 0;
    padding: 0.55rem 0.85rem;
    border: 1px solid var(--fn-accent-line);
    background: var(--fn-accent-soft);
    border-radius: 8px;
    font-size: 0.85rem;
    color: var(--fn-text);
}

.em-countdown-text[b-hh0w7g2yhl] {
    font-weight: 600;
}
/* /Components/Shared/FnRichTextContent.razor.rz.scp.css */
.fn-richtext-content[b-r8t3jbrqhv] {
    color: var(--fn-text);
    font-family: var(--fn-font);
    font-size: 14px;
    line-height: 1.7;
    max-width: 72ch;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.fn-richtext-content[b-r8t3jbrqhv]  p,
.fn-richtext-content[b-r8t3jbrqhv]  h1,
.fn-richtext-content[b-r8t3jbrqhv]  h2,
.fn-richtext-content[b-r8t3jbrqhv]  h3,
.fn-richtext-content[b-r8t3jbrqhv]  ul,
.fn-richtext-content[b-r8t3jbrqhv]  ol { margin-block: 0 0.9em; }

.fn-richtext-content[b-r8t3jbrqhv]  p:last-child,
.fn-richtext-content[b-r8t3jbrqhv]  ul:last-child,
.fn-richtext-content[b-r8t3jbrqhv]  ol:last-child { margin-bottom: 0; }

.fn-richtext-content[b-r8t3jbrqhv]  h1,
.fn-richtext-content[b-r8t3jbrqhv]  h2,
.fn-richtext-content[b-r8t3jbrqhv]  h3 {
    color: var(--fn-text);
    line-height: 1.35;
}

.fn-richtext-content[b-r8t3jbrqhv]  h3 {
    margin-top: 1.4em;
    font-size: 15px;
    font-weight: var(--fn-font-weight-bold);
}

.fn-richtext-content[b-r8t3jbrqhv]  ul,
.fn-richtext-content[b-r8t3jbrqhv]  ol { padding-inline-start: 1.5rem; }

.fn-richtext-content[b-r8t3jbrqhv]  li + li { margin-top: 0.45em; }
.fn-richtext-content[b-r8t3jbrqhv]  strong { color: var(--fn-text); }

.fn-richtext-content[b-r8t3jbrqhv]  a {
    color: var(--fn-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.fn-richtext-content[b-r8t3jbrqhv]  a:focus-visible {
    border-radius: var(--fn-radius-sm);
    outline: none;
    box-shadow: var(--fn-focus-ring);
}
/* /Components/Shared/FnRowAction.razor.rz.scp.css */
.fn-row-action-delete:hover:not(:disabled)[b-bh5k9wfeb0] {
    color: var(--fn-danger);
    border-color: var(--fn-danger);
}

.fn-row-action-active[b-bh5k9wfeb0] {
    color: var(--fn-primary);
    border-color: var(--fn-accent-line);
    background: var(--fn-accent-soft);
    box-shadow: inset 0 0 0 1px var(--fn-accent-line);
}

/* Kursversorgung ausgeschaltet: nur das Symbol wird rot — KEIN Rahmen/Hintergrund. Einen Rand
   bekommt ein Row-Action-Icon (wie alle anderen Marker) ausschliesslich im AKTIVEN Zustand
   (Niko 14.09.2026). Die deutliche Aus-Kennzeichnung tragen das "Kurse aus"-Etikett und die Ampel. */
.fn-row-action-alert[b-bh5k9wfeb0] {
    color: var(--fn-danger);
}
/* /Components/Shared/FnStatusTilePanel.razor.rz.scp.css */
/* FnStatusTilePanel — Maße und Anordnung. Die Farben der Kachel stehen hier NICHT: Der Balken links
   und die Fläche kommen aus FnStudioTile. Würde diese Datei sie nachdefinieren, gäbe es zwei
   Wahrheiten (R9, Gate FINCOMP001). Ausschließlich --fn-*-Token, kein Hex. */

.fst-split[b-p6jws13zqp] {
    display: flex;
    align-items: stretch;
    min-height: 0;
    /* Jede Spalte rollt für sich — die Kacheln links, die Meldung rechts. Würde die ganze Fläche
       rollen, wanderte der Detailbereich mit nach oben weg, und „rechts über die ganze Höhe" wäre
       nicht mehr wahr. */
    overflow: hidden;
}

/* 3–4 Kacheln nebeneinander; die Fläche wird breiter statt länger. auto-fill statt fester
   Spaltenzahl: Die Kacheln ordnen sich von selbst neu, sobald der Detailbereich aufgeht oder der
   Trenner gezogen wird. */
.fst-grid[b-p6jws13zqp] {
    flex: 1 1 auto;
    min-width: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
    align-content: start;
    gap: 10px;
    padding: 14px 18px;
    overflow-y: auto;
}

.fst-group[b-p6jws13zqp] {
    grid-column: 1 / -1;
    margin: 4px 0 0;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--fn-text-tertiary);
}

.fst-group:first-child[b-p6jws13zqp] {
    margin-top: 0;
}

/* Nur Maße — Rahmen, Farbe und Radius gehören FnStudioTile. */
.fst-split[b-p6jws13zqp]  .fst-card {
    padding: 10px 12px;
    border-radius: var(--fn-radius-sm);
    gap: 0;
}

.fst-top[b-p6jws13zqp] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.fst-name[b-p6jws13zqp] {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--fn-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fst-note[b-p6jws13zqp] {
    flex: 0 0 auto;
    font-family: var(--fn-font-mono);
    font-size: 11px;
    color: var(--fn-text-tertiary);
}

.fst-why[b-p6jws13zqp] {
    display: block;
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.45;
    color: var(--fn-text-secondary);
}

.fst-fig[b-p6jws13zqp] {
    display: block;
    margin-top: 6px;
    font-family: var(--fn-font-mono);
    font-size: 11px;
    color: var(--fn-text-tertiary);
}

/* Der Trenner folgt dem Muster des ChartPanels. Er ist bewusst schmal, aber greifbar. */
.fst-grip[b-p6jws13zqp] {
    flex: 0 0 auto;
    width: 7px;
    cursor: col-resize;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--fn-bg-muted);
    border-left: var(--fn-border-width) solid var(--fn-border);
    border-right: var(--fn-border-width) solid var(--fn-border);
}

.fst-grip span[b-p6jws13zqp] {
    display: block;
    width: 1px;
    height: 40px;
    background: var(--fn-border-strong);
}

.fst-grip:focus-visible[b-p6jws13zqp] {
    outline: 2px solid var(--fn-primary);
    outline-offset: -2px;
}

.fst-det[b-p6jws13zqp] {
    flex: 0 0 auto;
    min-width: 0;
    padding: 14px 18px;
    overflow-y: auto;
    background: var(--fn-bg-alt);
}

.fst-det-name[b-p6jws13zqp] {
    margin: 0 0 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--fn-text);
}

.fst-det-sub[b-p6jws13zqp] {
    margin: 0 0 14px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--fn-text-secondary);
    overflow-wrap: anywhere;
}

.fst-det-facts[b-p6jws13zqp] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 6px 14px;
    margin: 0 0 14px;
    font-size: 12.5px;
}

.fst-det-facts dt[b-p6jws13zqp] {
    color: var(--fn-text-tertiary);
}

.fst-det-facts dd[b-p6jws13zqp] {
    margin: 0;
    font-family: var(--fn-font-mono);
    color: var(--fn-text);
}

.fst-det-facts dd.bad[b-p6jws13zqp] { color: var(--fn-danger); }
.fst-det-facts dd.good[b-p6jws13zqp] { color: var(--fn-success); }
.fst-det-facts dd.warn[b-p6jws13zqp] { color: var(--fn-warning); }

.fst-det-log-label[b-p6jws13zqp] {
    margin-bottom: 5px;
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--fn-text-tertiary);
}

/* Der Protokolltext bleibt so, wie der Lauf ihn geschrieben hat — Umbrüche erhalten, nichts
   gekürzt, nichts umformuliert. */
.fst-det-log-text[b-p6jws13zqp] {
    padding: 9px 11px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-alt);
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    line-height: 1.55;
    color: var(--fn-text);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* Die Kennung steht ganz unten und zurückhaltend: Sie ist kein Inhalt, sondern ein Werkzeug. */
.fst-det-token[b-p6jws13zqp] {
    margin-top: 24px;
    padding-top: 16px;
    border-top: var(--fn-border-width) solid var(--fn-border);
}

.fst-det-token-label[b-p6jws13zqp] {
    margin-bottom: 8px;
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--fn-text-tertiary);
}

/* Nur die Lage. Schrift, Farbe und das Kopier-Zeichen kommen aus IsinCopy. */
.fst-det-token-value[b-p6jws13zqp] {
    display: flex;
    align-items: center;
    overflow-wrap: anywhere;
}

/* Leer, lädt, Quelle fällt aus — alle drei gehören dem Baustein, nicht dem Modul. */
.fst-state[b-p6jws13zqp] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 34px 18px;
    text-align: center;
}

.fst-state-head[b-p6jws13zqp] {
    font-size: 13px;
    font-weight: 600;
    color: var(--fn-text);
}

.fst-state-text[b-p6jws13zqp] {
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--fn-text-secondary);
    max-width: 62ch;
}

.fst-state-bad .fst-state-head[b-p6jws13zqp] {
    color: var(--fn-danger);
}

/* ⛔ KOPFLEISTE - Suchfeld, Lupe und Refresh kommen aus FnListToolbar (Vorgabe 2b, Variante B).
   Hier steht NUR die Lage und die Trennlinie; Maße und Optik der Toolbar werden nicht
   nachdefiniert (R9, DESIGN001-REDEFINE).

   Die Trennlinie ist Nikos ausdrückliche Vorgabe vom 15.09.2026: "bei 3 hätte ich gerne eine
   horizontale Trennlinie wie der untere Bereich in dem der Schließen-Button drin ist" - deshalb
   derselbe Token wie die Oberkante der Fußzeile: --fn-border-width solid --fn-border. */
.fst-bar[b-p6jws13zqp] {
    flex: 0 0 auto;
    padding: 12px 18px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
}

/* Die Zustands-Chips sitzen im Leading-Platz der Toolbar, vor dem Suchfeld. */
.fst-chips[b-p6jws13zqp] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    min-width: 0;
}

/* Ein Chip ist ein Schalter: Ausgeschaltet nimmt er seinen Zustand aus der Anzeige. Deshalb sichtbar
   gedämpft statt versteckt - wer nichts sieht, soll erkennen, dass er selbst gefiltert hat. */
.fst-chip[b-p6jws13zqp] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 30px;
    padding: 0 11px;
    border-radius: var(--fn-radius-pill, 999px);
    border: var(--fn-border-width) solid var(--fn-border);
    background: var(--fn-bg-muted);
    color: var(--fn-text-tertiary);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color .12s ease, color .12s ease, opacity .12s ease;
}

.fst-chip:hover[b-p6jws13zqp] {
    border-color: var(--fn-border-strong);
    color: var(--fn-text-secondary);
}

.fst-chip.on[b-p6jws13zqp] {
    color: var(--fn-text);
    border-color: var(--fn-border-strong);
}

.fst-chip:not(.on)[b-p6jws13zqp] {
    opacity: .55;
}

.fst-chip:focus-visible[b-p6jws13zqp] {
    outline: 2px solid var(--fn-primary);
    outline-offset: 1px;
}

/* Der Punkt traegt die Zustandsfarbe - dieselbe Zuordnung wie der Balken links an der Kachel. */
.fst-chip-pip[b-p6jws13zqp] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 auto;
    background: var(--fn-text-tertiary);
}

.fst-chip.bad .fst-chip-pip[b-p6jws13zqp] { background: var(--fn-danger); }
.fst-chip.good .fst-chip-pip[b-p6jws13zqp] { background: var(--fn-success); }
.fst-chip.warn .fst-chip-pip[b-p6jws13zqp] { background: var(--fn-warning); }

.fst-chip-n[b-p6jws13zqp] {
    font-family: var(--fn-font-mono);
    font-size: 11px;
    color: var(--fn-text-tertiary);
}

.fst-chip.on .fst-chip-n[b-p6jws13zqp] {
    color: var(--fn-text-secondary);
}
/* /Components/Shared/FnStudioTile.razor.rz.scp.css */
/* Geteilte Studio-Kachel — nur Rahmen, Kante, Zustand und Fokus. Der Inhalt gehört dem Modul.
   Ausschließlich --fn-*-Token, kein Hex (Design-Vorgabe §1). */

.fn-studio-tile[b-q2u2nzks3g] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: var(--fn-border-width) solid var(--fn-border);
    border-left: 3px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-lg);
    background: var(--fn-bg-alt);
    color: var(--fn-text);
    cursor: pointer;
    text-align: left;
    transition: border-color .12s ease, background .12s ease;
}

/* Die Kante codiert die ART des Inhalts … */
.fn-studio-tile.accent-primary[b-q2u2nzks3g] { border-left-color: var(--fn-primary); }
.fn-studio-tile.accent-teal[b-q2u2nzks3g] { border-left-color: var(--fn-cat-teal); }
.fn-studio-tile.accent-purple[b-q2u2nzks3g] { border-left-color: var(--fn-cat-purple); }
.fn-studio-tile.accent-gold[b-q2u2nzks3g] { border-left-color: var(--fn-cat-gold); }

/* … oder seinen ZUSTAND (Niko 12.09.2026, „Der Farbcode befindet sich links an der Kachel").
   Nie beides zugleich — es gibt nur eine linke Kante. Die Flaeche nimmt die Soft-Variante
   desselben Tokens, damit der Zustand auch ohne den schmalen Balken lesbar bleibt. */
.fn-studio-tile.accent-danger[b-q2u2nzks3g] {
    border-left-color: var(--fn-danger);
    background: var(--fn-danger-soft);
}

.fn-studio-tile.accent-success[b-q2u2nzks3g] {
    border-left-color: var(--fn-success);
    background: var(--fn-success-soft);
}

.fn-studio-tile.accent-warning[b-q2u2nzks3g] {
    border-left-color: var(--fn-warning);
    background: var(--fn-warning-soft);
}

/* Laeuft gerade (15.09.2026) - eigene Flaeche waere zu laut fuer einen Zwischenstand, deshalb nur
   die Kante. */
.fn-studio-tile.accent-info[b-q2u2nzks3g] {
    border-left-color: var(--fn-info);
}

/* Uebersprungen oder reine Angabe - sichtbar, aber ohne Wertung. */
.fn-studio-tile.accent-neutral[b-q2u2nzks3g] {
    border-left-color: var(--fn-text-tertiary);
}

.fn-studio-tile:hover[b-q2u2nzks3g] {
    border-color: var(--fn-border-strong);
}

/* Ausgewaehlt: nur die drei uebrigen Kanten. Die linke Kante gehoert dem Zustand und bleibt,
   wie sie ist — sonst verloere ausgerechnet die angeklickte Kachel ihre Aussage. */
.fn-studio-tile.selected[b-q2u2nzks3g] {
    border-top-color: var(--fn-primary);
    border-right-color: var(--fn-primary);
    border-bottom-color: var(--fn-primary);
}

/* Ausgegraut, nicht versteckt — dieselbe Regel wie im ChartPanel. */
.fn-studio-tile.inactive[b-q2u2nzks3g] {
    opacity: .72;
}

/* Die Kachel ist mit der Tastatur erreichbar — dann muss der Fokus auch sichtbar sein.
   Genau das wurde im Indikator-Studio zunächst vergessen. */
.fn-studio-tile:focus-visible[b-q2u2nzks3g] {
    outline: none;
    border-color: var(--fn-primary);
    box-shadow: var(--fn-focus-ring);
}
/* /Components/Shared/FnSyncToast.razor.rz.scp.css */
/* FnSyncToast — sanft ein-/ausblendende Statusmeldung (Standardkomponente). Tokens-only. */

.fn-toast[b-ngim1s50d7] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    color: var(--fn-text-secondary);
    background: var(--fn-accent-soft);
    border: 1px solid var(--fn-accent-line);
    border-radius: var(--fn-radius-pill);
    padding: 6px 14px;
    opacity: 0;
    transition: opacity .3s ease;
    pointer-events: none;
}

.fn-toast-on[b-ngim1s50d7] {
    opacity: 1;
}

.fn-toast-err[b-ngim1s50d7] {
    color: var(--fn-danger);
    background: var(--fn-danger-soft);
    border-color: var(--fn-danger);
}
/* /Components/Shared/FnToastHost.razor.rz.scp.css */
/* FnToastHost — globaler Toast-Stack unten rechts (Muster Dashboard, Tokens-only).
   Sanftes Ein-/Ausblenden über die .on-Klasse; Dauer/Entfernen steuert die Komponente. */

.fn-toast-stack[b-kwmy3t0ium] {
    position: fixed;
    bottom: 24px;
    right: 24px;
    display: flex;
    flex-direction: column-reverse;
    gap: 10px;
    z-index: 9999;
    pointer-events: none;
}

.fn-toast-card[b-kwmy3t0ium] {
    min-width: 280px;
    max-width: 420px;
    padding: 12px 16px;
    border-radius: var(--fn-radius-sm);
    border: 1px solid var(--fn-border);
    border-left: 3px solid var(--fn-primary);
    background: var(--fn-bg-alt);
    box-shadow: 0 8px 24px var(--fn-shadow);
    font-size: 13px;
    opacity: 0;
    transform: translateX(16px);
    transition: opacity .25s ease, transform .25s ease;
}

.fn-toast-card:has(.fn-toast-action)[b-kwmy3t0ium] {
    pointer-events: auto;
}

.fn-toast-card.on[b-kwmy3t0ium] {
    opacity: 1;
    transform: translateX(0);
}

.fn-toast-card.success[b-kwmy3t0ium] { border-left-color: var(--fn-success); }
.fn-toast-card.warning[b-kwmy3t0ium] { border-left-color: var(--fn-warning); }
.fn-toast-card.error[b-kwmy3t0ium] { border-left-color: var(--fn-danger); }

.fn-toast-card .title[b-kwmy3t0ium] {
    font-weight: var(--fn-font-weight-bold);
    color: var(--fn-text);
    margin-bottom: 2px;
}

.fn-toast-card .msg[b-kwmy3t0ium] {
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.fn-toast-card .fn-toast-action[b-kwmy3t0ium] {
    margin-top: 8px;
}
/* /Components/Shared/FnUserAvatar.razor.rz.scp.css */
/* FnUserAvatar — 1:1 FlowDesk PersonAvatar (Bild klickbar → Lightbox in Originalgröße). Tokens-only. */

.fn-user-avatar[b-ha5q9hqc9c] {
    flex: none;
    border-radius: 50%;
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.fn-user-avatar-img[b-ha5q9hqc9c] {
    flex: none;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid var(--fn-border-strong);
    cursor: pointer;
}

/* Lightbox: Bild in Originalgröße (max. 90vw/85vh), Overlay-Klick oder ✕ schließt. */
.fn-avatar-lightbox[b-ha5q9hqc9c] {
    position: fixed;
    inset: 0;
    z-index: 10000;
    background: color-mix(in srgb, var(--fn-bg) 75%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.fn-avatar-lightbox-box[b-ha5q9hqc9c] {
    position: relative;
    cursor: default;
}

.fn-avatar-lightbox-box img[b-ha5q9hqc9c] {
    max-width: 90vw;
    max-height: 85vh;
    object-fit: contain;
    border-radius: var(--fn-radius-sm);
}

.fn-avatar-lightbox-close[b-ha5q9hqc9c] {
    position: absolute;
    top: -12px;
    right: -12px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border-strong);
    color: var(--fn-text);
    font-size: 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.fn-avatar-lightbox-close:hover[b-ha5q9hqc9c] {
    background: var(--fn-danger-soft);
    color: var(--fn-danger);
    border-color: var(--fn-danger);
}
/* /Components/Shared/IsinCopy.razor.rz.scp.css */
/* Copy-Mini-Button für ISIN/WKN nach design/finnavigator_icons_controls_preview.html. */

.isin-copy[b-ujoz1npuy7] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--fn-font-mono, var(--fn-mono, ui-monospace, Consolas, monospace));
    font-size: 13px;
    color: var(--fn-text);
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm, var(--fn-r-sm, 10px));
    padding: 6px 8px 6px 12px;
    white-space: nowrap;
}

.isin-val[b-ujoz1npuy7] {
    color: var(--fn-text);
    line-height: 1;
}

.copy-mini[b-ujoz1npuy7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    border: 1px solid var(--fn-border);
    background: transparent;
    color: var(--fn-text-tertiary);
    cursor: pointer;
    transition: background .12s, color .12s;
    padding: 0;
}

.copy-mini:hover[b-ujoz1npuy7] {
    background: var(--fn-hover);
    color: var(--fn-primary);
}

.copy-mini.ok[b-ujoz1npuy7] {
    color: var(--fn-success);
}

.copy-mini[b-ujoz1npuy7]  svg,
.copy-mini[b-ujoz1npuy7]  [data-lucide] {
    width: 15px;
    height: 15px;
}

/* Flacher Modus (Niko 16.07.2026): kein Kasten, kein Button-Rahmen — nur flacher Mono-Wert (text-secondary)
   mit dezentem 13px-Inline-Copy-Icon. Für dichte Zeilen wie die Watchliste, keine zusätzliche Bauhöhe. */
.isin-copy.flat[b-ujoz1npuy7] {
    gap: 5px;
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    color: var(--fn-text-secondary);
}
.isin-copy.flat .copy-mini[b-ujoz1npuy7] {
    width: auto;
    height: auto;
    border: none;
    border-radius: 0;
}
.isin-copy.flat .copy-mini[b-ujoz1npuy7]  svg,
.isin-copy.flat .copy-mini[b-ujoz1npuy7]  [data-lucide] {
    width: 13px;
    height: 13px;
}
/* /Components/Shared/SidebarToggle.razor.rz.scp.css */
/* Seitenleisten-Doppelpfeil — one look for both outer sidebars (tokens only, Design-Vorgabe §1/§2e).
   Size = the former .sn-collapse-toggle / .ns-collapse (26×26, icon 14px). Host layout (margin-left:auto
   in the left brand row, position in the collapsed right rail) stays with the host. */
.sidebar-toggle[b-g8pnq1etzu] {
    width: 26px;
    height: 26px;
    padding: 0;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* The full hit target remains available without drawing a rounded backing surface. */
    background: transparent;
    border: var(--fn-border-width) solid transparent;
    border-radius: 0;
    color: var(--fn-text-secondary);
    cursor: pointer;
    transition: color 0.2s ease, border-color 0.2s ease;
}
.sidebar-toggle:hover[b-g8pnq1etzu],
.sidebar-toggle:focus-visible[b-g8pnq1etzu] {
    color: var(--fn-text);
    background: transparent;
    border-color: transparent;
    outline: none;
    box-shadow: var(--fn-focus-ring);
}
.sidebar-toggle:disabled[b-g8pnq1etzu] {
    color: var(--fn-text-tertiary);
    cursor: not-allowed;
    opacity: .55;
}
/* The Blazor-owned icon host persists across state changes, so it carries the rotation. The Lucide SVG is
   injected later and only receives its size here. Rotating that transient SVG made the state feedback unreliable. */
.sidebar-toggle[b-g8pnq1etzu]  [data-lucide] {
    transform: rotate(0deg);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.sidebar-toggle[b-g8pnq1etzu]  .lucide {
    width: 14px;
    height: 14px;
}
.sidebar-toggle.is-collapsed[b-g8pnq1etzu]  [data-lucide] { transform: rotate(180deg); }

@media (prefers-reduced-motion: reduce) {
    .sidebar-toggle[b-g8pnq1etzu]  [data-lucide] { transition: none; }
}
/* /Components/Shared/SignatureManagerDialog.razor.rz.scp.css */
/* Signaturen-Manager (Niko 13.06.2026): Liste links, Editor rechts. Nur --fn-*-Tokens. */

.sig-layout[b-ys9i08be3h] {
    display: flex;
    gap: 14px;
    height: 100%;
}

.sig-list[b-ys9i08be3h] {
    flex: 0 0 220px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    overflow-y: auto;
    border-right: var(--fn-border-width) solid var(--fn-border);
    padding-right: 12px;
}

.sig-new[b-ys9i08be3h] {
    justify-content: flex-start;
    margin-bottom: 6px;
}

.sig-new svg[b-ys9i08be3h] {
    width: 14px;
    height: 14px;
}

.sig-empty[b-ys9i08be3h] {
    font-size: 12px;
    color: var(--fn-text-tertiary);
    margin: 4px 2px;
}

.sig-item[b-ys9i08be3h] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 8px;
    border-radius: 7px;
    cursor: pointer;
    transition: background .14s;
}

.sig-item:hover[b-ys9i08be3h] {
    background: var(--fn-bg-muted);
}

.sig-item-active[b-ys9i08be3h] {
    background: var(--fn-bg-muted);
}

.sig-item-name[b-ys9i08be3h] {
    flex: 1 1 auto;
    font-size: 13px;
    color: var(--fn-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sig-badge[b-ys9i08be3h] {
    font-size: 9.5px;
    font-weight: var(--fn-font-weight-bold);
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--fn-primary);
    border: var(--fn-border-width) solid var(--fn-primary);
    border-radius: 5px;
    padding: 1px 5px;
}

.sig-del[b-ys9i08be3h] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 0;
    background: transparent;
    color: var(--fn-text-tertiary);
    border-radius: 5px;
    cursor: pointer;
    transition: background .14s, color .14s;
}

.sig-del:hover[b-ys9i08be3h] {
    background: var(--fn-bg-muted);
    color: var(--fn-danger);
}

.sig-del svg[b-ys9i08be3h] {
    width: 14px;
    height: 14px;
}

.sig-editor[b-ys9i08be3h] {
    flex: 1 1 auto;
    min-width: 0;
}

.sig-default-toggle[b-ys9i08be3h] {
    display: flex;
    align-items: center;
    gap: 8px;
    text-transform: none;
    letter-spacing: normal;
    font-size: 12.5px;
    color: var(--fn-text-secondary);
    margin-top: 8px;
}

.sig-default-toggle input[b-ys9i08be3h] {
    width: auto;
    flex: 0 0 auto;
}
/* /Components/Shared/StartupInitializationDialog.razor.rz.scp.css */
.startup-dialog-backdrop[b-x6pwla4a47] {
    position: fixed;
    inset: 0;
    z-index: 2600;
    display: grid;
    place-items: center;
    padding: 24px;
    background: color-mix(in srgb, var(--fn-bg) 68%, transparent);
    backdrop-filter: blur(3px);
}

.startup-dialog[b-x6pwla4a47] {
    width: min(460px, calc(100vw - 32px));
    max-height: calc(100vh - 48px);
    overflow: auto;
    display: grid;
    gap: 12px;
    padding: 18px 20px;
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
    box-shadow: var(--fn-elevation-3);
}

.startup-dialog-content[b-x6pwla4a47] {
    display: grid;
    justify-items: center;
    gap: 8px;
    text-align: center;
}

.startup-dialog-text[b-x6pwla4a47] {
    display: grid;
    gap: 6px;
    justify-items: center;
    text-align: center;
    width: 100%;
}

.startup-dialog-text h3[b-x6pwla4a47] {
    margin: 0;
    color: var(--fn-text);
    font-size: 16px;
    font-weight: 700;
}

.startup-dialog-text p[b-x6pwla4a47] {
    margin: 0;
    color: var(--fn-text);
    font-size: 13px;
    line-height: 1.45;
}

.startup-dialog-rule[b-x6pwla4a47] {
    width: 100%;
    height: 1px;
    background: var(--fn-border);
}

.startup-phase-list[b-x6pwla4a47] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
    width: 100%;
}

.startup-phase[b-x6pwla4a47] {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    align-items: start;
    gap: 10px;
    color: var(--fn-text-secondary);
    font-size: 14px;
    line-height: 1.3;
}

.startup-phase-icon[b-x6pwla4a47] {
    display: inline-grid;
    place-items: center;
    width: 20px;
    color: var(--fn-text-muted);
    font-weight: 700;
}

.startup-phase-body[b-x6pwla4a47] {
    display: grid;
    gap: 1px;
}

.startup-phase-label[b-x6pwla4a47] {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.startup-phase-substep[b-x6pwla4a47] {
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.startup-phase.is-pending .startup-phase-label[b-x6pwla4a47] {
    color: var(--fn-text-tertiary);
    font-weight: 400;
}

.startup-phase.is-active .startup-phase-label[b-x6pwla4a47] {
    color: var(--fn-primary);
}

.startup-phase.is-active .startup-phase-icon[b-x6pwla4a47] {
    color: var(--fn-primary);
    animation: startup-active-pulse-b-x6pwla4a47 1s ease-in-out infinite;
}

.startup-phase.is-completed[b-x6pwla4a47] {
    color: var(--fn-text);
}

.startup-phase.is-completed .startup-phase-icon[b-x6pwla4a47] {
    color: var(--fn-success);
}

.startup-phase.is-failed .startup-phase-label[b-x6pwla4a47],
.startup-phase.is-failed .startup-phase-icon[b-x6pwla4a47],
.startup-phase.is-failed .startup-phase-substep[b-x6pwla4a47] {
    color: var(--fn-danger);
}

.startup-details-toggle[b-x6pwla4a47] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    justify-self: start;
    margin: 0;
    padding: 4px 8px;
    border: 0;
    border-radius: var(--fn-radius-sm);
    background: none;
    color: var(--fn-text-secondary);
    font-family: inherit;
    font-size: 12px;
    cursor: pointer;
}

.startup-details-toggle:hover[b-x6pwla4a47] {
    color: var(--fn-primary);
    background: var(--fn-accent-soft);
}

.startup-details-chevron[b-x6pwla4a47] {
    display: inline-block;
    transition: transform .15s;
}

.startup-details-toggle.is-open .startup-details-chevron[b-x6pwla4a47] {
    transform: rotate(90deg);
}

.startup-step-list[b-x6pwla4a47] {
    list-style: none;
    margin: 0;
    padding: 6px 0 0;
    border-top: 1px solid var(--fn-border);
    display: grid;
    gap: 5px;
    width: 100%;
    max-height: 260px;
    overflow-y: auto;
    /* Tokens-only Scrollbalken (Befund Niko 05.07.) — nie der Browser-Default mit weißem Track. */
    scrollbar-width: thin;
    scrollbar-color: var(--fn-border-strong) transparent;
}

.startup-step-list[b-x6pwla4a47]::-webkit-scrollbar {
    width: 8px;
}

.startup-step-list[b-x6pwla4a47]::-webkit-scrollbar-track {
    background: transparent;
}

.startup-step-list[b-x6pwla4a47]::-webkit-scrollbar-thumb {
    background: var(--fn-border-strong);
    border-radius: var(--fn-radius-pill);
}

.startup-step-list[b-x6pwla4a47]::-webkit-scrollbar-thumb:hover {
    background: var(--fn-accent-line);
}

.startup-step[b-x6pwla4a47] {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) auto;
    align-items: start;
    gap: 8px;
    color: var(--fn-text-secondary);
    font-size: 12.5px;
    line-height: 1.25;
}

.startup-step-icon[b-x6pwla4a47] {
    display: inline-grid;
    place-items: center;
    width: 18px;
    color: var(--fn-text-muted);
    font-weight: 700;
}

.startup-step-label[b-x6pwla4a47] {
    overflow-wrap: anywhere;
}

.startup-step-elapsed[b-x6pwla4a47] {
    color: var(--fn-text-muted);
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.startup-step.is-completed[b-x6pwla4a47] {
    color: var(--fn-text);
}

.startup-step.is-completed .startup-step-icon[b-x6pwla4a47] {
    color: var(--fn-success);
}

.startup-step.is-active[b-x6pwla4a47] {
    color: var(--fn-primary);
    font-weight: 700;
}

.startup-step.is-active .startup-step-icon[b-x6pwla4a47] {
    animation: startup-active-pulse-b-x6pwla4a47 1s ease-in-out infinite;
}

.startup-step.is-failed[b-x6pwla4a47] {
    color: var(--fn-danger);
}

.startup-step.is-failed .startup-step-icon[b-x6pwla4a47] {
    color: var(--fn-danger);
}

.startup-step-error[b-x6pwla4a47] {
    grid-column: 2 / 4;
    color: var(--fn-danger);
    font-size: 11px;
    font-weight: 500;
}

.startup-debug[b-x6pwla4a47] {
    width: 100%;
    display: grid;
    gap: 8px;
    text-align: left;
}

.startup-debug h4[b-x6pwla4a47] {
    margin: 0;
    color: var(--fn-text);
    font-size: 12px;
    font-weight: 700;
}

.startup-debug h5[b-x6pwla4a47] {
    margin: 4px 0 0;
    color: var(--fn-text-secondary);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.startup-debug dl[b-x6pwla4a47] {
    margin: 0;
    display: grid;
    gap: 6px;
}

.startup-debug dl div[b-x6pwla4a47] {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 8px;
}

.startup-debug dt[b-x6pwla4a47] {
    color: var(--fn-text-muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.startup-debug dd[b-x6pwla4a47] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 11.5px;
    overflow-wrap: anywhere;
}

.startup-debug-list[b-x6pwla4a47] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 4px;
}

.startup-debug-list li[b-x6pwla4a47] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: start;
    color: var(--fn-text-secondary);
    font-size: 11.5px;
}

.startup-debug-list li.is-failed[b-x6pwla4a47] {
    color: var(--fn-danger);
}

.startup-debug-list span[b-x6pwla4a47] {
    overflow-wrap: anywhere;
}

.startup-debug-list strong[b-x6pwla4a47] {
    color: var(--fn-text-muted);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.startup-dialog-elapsed[b-x6pwla4a47] {
    display: flex;
    justify-content: center;
    margin-top: 2px;
    padding-top: 12px;
    border-top: 1px solid var(--fn-border);
    color: var(--fn-text-secondary);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    text-align: center;
}

@keyframes startup-active-pulse-b-x6pwla4a47 {
    0%, 100% {
        opacity: .45;
    }

    50% {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .startup-step.is-active .startup-step-icon[b-x6pwla4a47] {
        animation: none;
    }
}
/* /Components/Shell/TestModeBanner.razor.rz.scp.css */
/* Testmodus-Banner — tokens only; bewusst laut (Warnfläche), damit der Testmodus nie
   unbemerkt weiterläuft. */
.tmb[b-kpkbtdwweq] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    background: var(--fn-warning-soft);
    border-bottom: 2px solid var(--fn-warning);
    color: var(--fn-text);
    font-size: 12.5px;
}

.tmb[b-kpkbtdwweq]  .lucide { width: 15px; height: 15px; color: var(--fn-warning); flex: none; }
.tmb-text[b-kpkbtdwweq] { flex: 1; min-width: 0; }
.tmb-mail[b-kpkbtdwweq] { color: var(--fn-text-secondary); font-family: var(--fn-font-mono); font-size: 11.5px; }
/* /Components/SignalStudio/SignalStudioPage.razor.rz.scp.css */
/* Signal-Studio V10 — Board (Kaufen/Halten/Verkaufen) + einklappbare Reiter-Sidebar + Vollbild.
   Konvergenz-Bewertung Krone/Sterne + zwei Analyse-Leitern (Signal-Studio + Agent).
   Tokens-only (kein Hex/rgb). Flächen-Rollen: Spalten/Sidebar = --fn-bg-muted, Karten/Panels = --fn-bg-alt,
   Buttons/Wells = --fn-input-bg. Agent = --fn-cat-purple, Bewertung = --fn-cat-gold.
   Icons: lucide ersetzt <i data-lucide> durch <svg class="lucide"> -> ::deep .lucide. */

.sm-wrap[b-snfv64yd7w] { position: relative; display: flex; flex-direction: column; height: calc(100vh - 52px); min-height: 0; padding: 16px 20px; }
.sm-title[b-snfv64yd7w] { display: flex; align-items: center; gap: 10px; }
.sm-title h1[b-snfv64yd7w] { font-size: 20px; font-weight: 700; margin: 0; }
.sm-title[b-snfv64yd7w]  .lucide { width: 22px; height: 22px; color: var(--fn-primary); }
.lead[b-snfv64yd7w] { color: var(--fn-text-secondary); margin: 2px 0 12px; font-size: 13px; }

/* Toolbar */
.sm-toolbar[b-snfv64yd7w] { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex: 0 0 auto; }
.sm-src[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: var(--fn-success); font-weight: 600; }
.sm-src.closed[b-snfv64yd7w] { color: var(--fn-warning); }
.sm-src[b-snfv64yd7w]  .lucide { width: 15px; height: 15px; }
.sm-sp2[b-snfv64yd7w] { font-size: 11.5px; color: var(--fn-text-tertiary); }
.sm-sp[b-snfv64yd7w] { flex: 1; }
.sm-search[b-snfv64yd7w] { width: 240px; }
.sm-refresh[b-snfv64yd7w] { width: 36px; height: 36px; border-radius: 10px; background: var(--fn-input-bg); border: 1px solid var(--fn-border); color: var(--fn-text-secondary); cursor: pointer; display: grid; place-items: center; }
.sm-refresh:hover[b-snfv64yd7w] { background: var(--fn-hover); color: var(--fn-text); }
.sm-refresh[b-snfv64yd7w]  .lucide { width: 17px; height: 17px; }
.sm-empty[b-snfv64yd7w] { padding: 40px; text-align: center; color: var(--fn-text-tertiary); }
.sm-empty[b-snfv64yd7w]  .lucide { width: 18px; height: 18px; }

/* Stage: board + collapsible sidebar (grid animates -> cards shift & shrink) */
/* Variante C: Board bleibt voll breit; die Detail-Sidebar schwebt beim Öffnen über den rechten Rand
   (Overlay), statt die Spalten zu stauchen. Eingeklappt = schmale Leiste am rechten Rand. */
.sm-stage[b-snfv64yd7w] { flex: 1; min-height: 0; position: relative; }

/* Board */
.sm-board[b-snfv64yd7w] { height: 100%; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; min-height: 0; padding-right: 58px; }
.sm-col[b-snfv64yd7w] { min-height: 0; display: flex; flex-direction: column; background: var(--fn-bg-muted); border: 1px solid var(--fn-border); border-radius: 14px; overflow: hidden; }
.sm-col-hdr[b-snfv64yd7w] { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; padding: 12px 15px; border-bottom: 1px solid var(--fn-border); font-size: 13px; font-weight: 700; letter-spacing: .3px; }
.sm-col-hdr .bar[b-snfv64yd7w] { width: 4px; height: 20px; border-radius: 3px; }
.sm-col-hdr[b-snfv64yd7w]  .lucide { width: 15px; height: 15px; }
.sm-col-hdr .cnt[b-snfv64yd7w] { margin-left: auto; font-family: var(--fn-font-mono); font-size: 12px; font-weight: 600; padding: 2px 10px; border-radius: var(--fn-radius-pill); background: var(--fn-bg-alt); color: var(--fn-text-secondary); }
.sm-col.buy .sm-col-hdr[b-snfv64yd7w] { color: var(--fn-success); } .sm-col.buy .bar[b-snfv64yd7w] { background: var(--fn-success); }
.sm-col.hold .sm-col-hdr[b-snfv64yd7w] { color: var(--fn-warning); } .sm-col.hold .bar[b-snfv64yd7w] { background: var(--fn-warning); }
.sm-col.sell .sm-col-hdr[b-snfv64yd7w] { color: var(--fn-danger); } .sm-col.sell .bar[b-snfv64yd7w] { background: var(--fn-danger); }
.sm-cards[b-snfv64yd7w] { flex: 1; min-height: 0; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 11px; }
.sm-cards[b-snfv64yd7w]::-webkit-scrollbar { width: 9px; }
.sm-cards[b-snfv64yd7w]::-webkit-scrollbar-track { background: var(--fn-input-bg); border-radius: 8px; }
.sm-cards[b-snfv64yd7w]::-webkit-scrollbar-thumb { background: var(--fn-primary); border-radius: 8px; border: 2px solid var(--fn-bg-muted); }
.sm-col-empty[b-snfv64yd7w] { color: var(--fn-text-tertiary); font-size: 12px; font-style: italic; padding: 8px 4px; }

/* Card */
.sm-card[b-snfv64yd7w] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 12px; padding: 12px 13px; cursor: pointer; transition: border-color .12s, box-shadow .12s; position: relative; }
.sm-card:hover[b-snfv64yd7w] { background: var(--fn-hover); border-color: var(--fn-border-strong); }
.sm-card.buy[b-snfv64yd7w] { border-left: 3px solid var(--fn-success); }
.sm-card.hold[b-snfv64yd7w] { border-left: 3px solid var(--fn-warning); }
.sm-card.sell[b-snfv64yd7w] { border-left: 3px solid var(--fn-danger); }
.sm-card.nodata[b-snfv64yd7w] { border-left: 3px solid var(--fn-border-strong); }
.sm-card.sm-sel[b-snfv64yd7w] { border-color: var(--fn-primary); box-shadow: 0 0 0 1px var(--fn-primary), var(--fn-shadow-hover); }
.sm-card.crown[b-snfv64yd7w] { box-shadow: 0 0 0 1px var(--fn-cat-gold), 0 0 16px var(--fn-cat-gold-soft); }
.sm-card.crown.sm-sel[b-snfv64yd7w] { box-shadow: 0 0 0 1px var(--fn-primary), 0 0 16px var(--fn-cat-gold-soft); }
.sm-card.pinned[b-snfv64yd7w] { border-top: 1px solid var(--fn-accent-line); }

.sm-c-top[b-snfv64yd7w] { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }
.sm-pill[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px 3px 8px; border-radius: var(--fn-radius-pill); font-size: 11px; font-weight: 700; letter-spacing: .4px; white-space: nowrap; }
.sm-pill[b-snfv64yd7w]  .lucide { width: 12px; height: 12px; }
.sm-pill.buy[b-snfv64yd7w] { background: var(--fn-success-soft); color: var(--fn-success); }
.sm-pill.hold[b-snfv64yd7w] { background: var(--fn-warning-soft); color: var(--fn-warning); }
.sm-pill.sell[b-snfv64yd7w] { background: var(--fn-danger-soft); color: var(--fn-danger); }
.sm-pill.nodata[b-snfv64yd7w] { background: var(--fn-input-bg); color: var(--fn-text-tertiary); }
.sm-c-rate[b-snfv64yd7w] { margin-left: auto; display: inline-flex; align-items: center; }

/* rating (Krone/Sterne) */
.rate[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 2px; }
.rate .st[b-snfv64yd7w] { color: var(--fn-text-tertiary); display: inline-flex; }
.rate .st.on[b-snfv64yd7w] { color: var(--fn-cat-gold); }
.rate.crown[b-snfv64yd7w] { color: var(--fn-cat-gold); }
.rate.crown.big[b-snfv64yd7w] { filter: drop-shadow(0 0 4px var(--fn-cat-gold-soft)); }
.rate.none[b-snfv64yd7w] { color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12px; }

.sm-c-id[b-snfv64yd7w] { display: flex; align-items: baseline; gap: 6px; white-space: nowrap; overflow: hidden; }
.sm-c-id .pin-ind[b-snfv64yd7w] { display: inline-flex; align-items: center; color: var(--fn-primary); flex: 0 0 auto; }
.sm-c-id .pin-ind[b-snfv64yd7w]  .lucide { width: 12px; height: 12px; }
.sm-astat[b-snfv64yd7w] { display: flex; align-items: center; gap: 7px; margin-top: 10px; padding: 7px 9px; border-radius: 9px; font-size: 11px; font-weight: 600; background: var(--fn-input-bg); border: 1px solid var(--fn-border); }
.sm-astat[b-snfv64yd7w]  .lucide { width: 13px; height: 13px; flex: 0 0 auto; }
.sm-astat .al[b-snfv64yd7w] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sm-astat.confirmed[b-snfv64yd7w] { color: var(--fn-success); border-color: var(--fn-success-soft); background: var(--fn-success-soft); }
.sm-astat.rejected[b-snfv64yd7w] { color: var(--fn-danger); border-color: var(--fn-danger-soft); background: var(--fn-danger-soft); }
.sm-astat.running[b-snfv64yd7w] { color: var(--fn-cat-purple); border-color: var(--fn-cat-purple); background: var(--fn-cat-purple-soft); }
.sm-astat.partial[b-snfv64yd7w] { color: var(--fn-warning); border-color: var(--fn-warning-soft); background: var(--fn-warning-soft); }
.sm-astat.pending[b-snfv64yd7w] { color: var(--fn-text-tertiary); }
.sm-astat .livedot[b-snfv64yd7w] { width: 7px; height: 7px; border-radius: 50%; background: currentColor; margin-left: auto; flex: 0 0 auto; }

.sm-c-foot[b-snfv64yd7w] { display: flex; align-items: center; gap: 12px; margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--fn-border); }
.sm-hv[b-snfv64yd7w] { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--fn-text-secondary); }
.sm-hv .k[b-snfv64yd7w] { color: var(--fn-text-tertiary); font-weight: 600; }
.sm-hv .v[b-snfv64yd7w] { font-family: var(--fn-font-mono); font-weight: 600; }
.pos[b-snfv64yd7w] { color: var(--fn-success); } .neg[b-snfv64yd7w] { color: var(--fn-danger); } .mut[b-snfv64yd7w] { color: var(--fn-text-secondary); }
.sm-c-right[b-snfv64yd7w] { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.sm-cact[b-snfv64yd7w] { display: grid; place-items: center; width: 25px; height: 25px; border-radius: 7px; background: var(--fn-input-bg); border: 1px solid var(--fn-border); color: var(--fn-text-secondary); cursor: pointer; }
.sm-cact:hover[b-snfv64yd7w] { background: var(--fn-hover); color: var(--fn-primary); border-color: var(--fn-accent-line); }
.sm-cact.on[b-snfv64yd7w] { background: var(--fn-accent-soft); border-color: var(--fn-accent-line); color: var(--fn-primary); }
.sm-cact[b-snfv64yd7w]  .lucide { width: 13px; height: 13px; }

/* Sidebar */
.sm-side[b-snfv64yd7w] { position: absolute; top: 0; right: 0; bottom: 0; width: 46px; background: var(--fn-bg-muted); border: 1px solid var(--fn-border); border-radius: 14px; display: flex; flex-direction: column; min-height: 0; overflow: hidden; transition: width .22s ease; z-index: 20; }
.sm-stage:not(.collapsed) .sm-side[b-snfv64yd7w] { width: 384px; box-shadow: -14px 0 34px var(--fn-shadow-hover); }
.sm-side-controls[b-snfv64yd7w] { flex: 0 0 38px; display: grid; grid-template-columns: 26px minmax(0, 1fr) 26px; align-items: center; gap: 8px; padding: 0 6px; }
.sm-side-controls[b-snfv64yd7w] >  .sidebar-toggle { grid-column: 1; }
.sm-stage.collapsed .sm-side-controls[b-snfv64yd7w] { grid-template-columns: 26px; justify-content: center; gap: 0; padding: 0; }
/* Stecknadel oben in der Sidebar (Niko 13.07.2026): anpinnen -> Push-Layout + fester Zustand. */
.sm-pin[b-snfv64yd7w] { grid-column: 3; width: 26px; height: 26px; border-radius: 8px; background: var(--fn-input-bg); border: 1px solid var(--fn-border); color: var(--fn-text-secondary); display: grid; place-items: center; cursor: pointer; }
.sm-pin:hover[b-snfv64yd7w] { color: var(--fn-text); background: var(--fn-hover); }
.sm-pin.on[b-snfv64yd7w] { background: var(--fn-accent-soft); border-color: var(--fn-accent-line); color: var(--fn-primary); }
.sm-pin[b-snfv64yd7w]  .lucide { width: 14px; height: 14px; }
.sm-stage.collapsed .sm-pin[b-snfv64yd7w] { display: none; }

/* Angepinnt: Push-Layout — Board + Sidebar teilen sich die Reihe (kein Overlay); Board rückt/schrumpft nach
   links. Ungepinnt bleibt es Overlay (position:absolute darüber, Board voll breit). */
.sm-stage.pinned[b-snfv64yd7w] { display: flex; gap: 14px; }
.sm-stage.pinned .sm-board[b-snfv64yd7w] { padding-right: 0; flex: 1; min-width: 0; }
.sm-stage.pinned .sm-side[b-snfv64yd7w] { position: static; box-shadow: none; flex: 0 0 auto; }
.sm-stage.pinned.collapsed .sm-side[b-snfv64yd7w] { width: 46px; }
.sm-stage.pinned:not(.collapsed) .sm-side[b-snfv64yd7w] { width: 384px; box-shadow: none; }
.sm-side-full[b-snfv64yd7w] { display: flex; flex-direction: column; min-height: 0; flex: 1; }
.sm-stage.collapsed .sm-side-full[b-snfv64yd7w] { display: none; }
.sm-side-rail[b-snfv64yd7w] { display: none; flex-direction: column; align-items: center; gap: 16px; padding-top: 18px; color: var(--fn-text-tertiary); }
.sm-stage.collapsed .sm-side-rail[b-snfv64yd7w] { display: flex; }
.sm-side-rail[b-snfv64yd7w]  .lucide { width: 18px; height: 18px; }
.sm-side-rail .vlabel[b-snfv64yd7w] { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 11px; letter-spacing: 1.5px; color: var(--fn-text-secondary); text-transform: uppercase; }
.sm-side-rail .rdir[b-snfv64yd7w] { margin-top: 4px; font-family: var(--fn-font-mono); font-weight: 700; }
.sm-side-empty[b-snfv64yd7w] { padding: 30px 18px; color: var(--fn-text-tertiary); font-size: 12.5px; text-align: center; }

.sm-sh[b-snfv64yd7w] { flex: 0 0 auto; padding: 15px 18px 13px; border-bottom: 1px solid var(--fn-border); }
.sm-sh .pillbig[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 7px; padding: 6px 13px; border-radius: var(--fn-radius-pill); font-size: 13.5px; font-weight: 700; letter-spacing: .4px; margin-bottom: 10px; }
.sm-sh .pillbig[b-snfv64yd7w]  .lucide { width: 14px; height: 14px; }
.sm-sh .pillbig.buy[b-snfv64yd7w] { background: var(--fn-success-soft); color: var(--fn-success); border: 1px solid var(--fn-success-soft); }
.sm-sh .pillbig.hold[b-snfv64yd7w] { background: var(--fn-warning-soft); color: var(--fn-warning); border: 1px solid var(--fn-warning-soft); }
.sm-sh .pillbig.sell[b-snfv64yd7w] { background: var(--fn-danger-soft); color: var(--fn-danger); border: 1px solid var(--fn-danger-soft); }
.sm-sh .pillbig.nodata[b-snfv64yd7w] { background: var(--fn-input-bg); color: var(--fn-text-tertiary); border: 1px solid var(--fn-border-strong); }
.sm-sh .idl[b-snfv64yd7w] { display: flex; align-items: baseline; gap: 9px; }
.sm-sh .idl .sym[b-snfv64yd7w] { font-family: var(--fn-font-mono); font-size: 18px; font-weight: 700; color: var(--fn-primary); }
.sm-sh .idl .name[b-snfv64yd7w] { font-size: 14px; color: var(--fn-text); }
.sm-sh .idsl[b-snfv64yd7w] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-secondary); margin-top: 5px; }

/* Analyse-Grundlage banner */
.sm-abanner[b-snfv64yd7w] { flex: 0 0 auto; padding: 13px 18px 15px; border-bottom: 1px solid var(--fn-border); background: linear-gradient(180deg, var(--fn-cat-purple-soft), transparent); }
.sm-abanner-h[b-snfv64yd7w] { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 11px; }
.sm-abanner-h .lb[b-snfv64yd7w] { display: flex; align-items: center; gap: 7px; font-size: 10.5px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--fn-text-secondary); }
.sm-abanner-h .lb[b-snfv64yd7w]  .lucide { width: 14px; height: 14px; color: var(--fn-cat-purple); }
.thesis[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: var(--fn-radius-pill); font-size: 11px; font-weight: 700; }
.thesis[b-snfv64yd7w]  .lucide { width: 12px; height: 12px; }
.thesis.confirmed[b-snfv64yd7w] { background: var(--fn-success-soft); color: var(--fn-success); border: 1px solid var(--fn-success-soft); }
.thesis.rejected[b-snfv64yd7w] { background: var(--fn-danger-soft); color: var(--fn-danger); border: 1px solid var(--fn-danger-soft); }
.thesis.partial[b-snfv64yd7w] { background: var(--fn-warning-soft); color: var(--fn-warning); border: 1px solid var(--fn-warning-soft); }
.thesis.none[b-snfv64yd7w] { background: var(--fn-input-bg); color: var(--fn-text-tertiary); border: 1px solid var(--fn-border-strong); }
.arate[b-snfv64yd7w] { display: flex; align-items: center; gap: 10px; margin: 0 0 2px; padding: 9px 11px; border-radius: 9px; background: var(--fn-input-bg); border: 1px solid var(--fn-border); }
.arate.crownrow[b-snfv64yd7w] { background: var(--fn-cat-gold-soft); border-color: var(--fn-cat-gold); }
.arate .rbig[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 3px; flex: 0 0 auto; }
.arate.crownrow .rbig[b-snfv64yd7w] { color: var(--fn-cat-gold); }
.arate .rcol[b-snfv64yd7w] { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.arate .rtx[b-snfv64yd7w] { font-size: 11.5px; font-weight: 600; color: var(--fn-text); }
.arate .rwhy[b-snfv64yd7w] { font-size: 10.5px; color: var(--fn-text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Reiter */
.sm-tabs[b-snfv64yd7w] { flex: 0 0 auto; display: flex; gap: 2px; padding: 0 12px; border-bottom: 1px solid var(--fn-border); }
.sm-tab[b-snfv64yd7w] { flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 11px 4px; font-size: 11.5px; font-weight: 600; color: var(--fn-text-secondary); border-bottom: 2px solid transparent; cursor: pointer; }
.sm-tab:hover[b-snfv64yd7w] { color: var(--fn-text); }
.sm-tab.active[b-snfv64yd7w] { color: var(--fn-primary); border-bottom-color: var(--fn-primary); }
.sm-tab[b-snfv64yd7w]  .lucide { width: 14px; height: 14px; }
.sm-sb[b-snfv64yd7w] { flex: 1; min-height: 0; overflow-y: auto; padding: 15px 18px; }
.sm-sb[b-snfv64yd7w]::-webkit-scrollbar { width: 9px; }
.sm-sb[b-snfv64yd7w]::-webkit-scrollbar-track { background: var(--fn-input-bg); border-radius: 8px; }
.sm-sb[b-snfv64yd7w]::-webkit-scrollbar-thumb { background: var(--fn-primary); border-radius: 8px; border: 2px solid var(--fn-bg-muted); }
.sm-pane[b-snfv64yd7w] { display: flex; flex-direction: column; gap: 14px; }
.sect[b-snfv64yd7w] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 12px; padding: 14px; }
.sect.agentpanel[b-snfv64yd7w] { border-color: var(--fn-cat-purple); }
.sect-t[b-snfv64yd7w] { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--fn-text-secondary); margin-bottom: 12px; }
.sect-t[b-snfv64yd7w]  .lucide { width: 14px; height: 14px; color: var(--fn-primary); }
.sect-t.agent[b-snfv64yd7w] { color: var(--fn-cat-purple); } .sect-t.agent[b-snfv64yd7w]  .lucide { color: var(--fn-cat-purple); }
/* Klappbarer Kachel-Kopf (Niko 13.07.2026): identische .sect-t-Optik, aber klickbarer Button. Button erbt
   keine Textfarbe -> explizit setzen. Caret rechtsbündig. */
.sect-toggle[b-snfv64yd7w] { width: 100%; background: none; border: none; padding: 0; cursor: pointer; font-family: inherit; color: var(--fn-text-secondary); }
.sect-toggle:hover[b-snfv64yd7w] { color: var(--fn-text); }
.sect-toggle[b-snfv64yd7w]  .sect-caret { margin-left: auto; }
.agsub[b-snfv64yd7w] { font-size: 11px; color: var(--fn-text-tertiary); margin: -2px 0 13px; line-height: 1.45; }

.prices[b-snfv64yd7w] { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 16px; }
.prices .c[b-snfv64yd7w] { display: flex; flex-direction: column; gap: 2px; }
.prices .c .k[b-snfv64yd7w] { font-size: 9.5px; letter-spacing: .5px; text-transform: uppercase; color: var(--fn-text-tertiary); }
.prices .c .v[b-snfv64yd7w] { font-family: var(--fn-font-mono); font-size: 15px; font-weight: 600; }

.verdict[b-snfv64yd7w] { display: flex; align-items: flex-start; gap: 11px; }
.verdict .vi[b-snfv64yd7w] { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--fn-cat-purple-soft); border: 1px solid var(--fn-cat-purple); color: var(--fn-cat-purple); flex: 0 0 auto; }
.verdict .vi[b-snfv64yd7w]  .lucide { width: 18px; height: 18px; }
.verdict .vt[b-snfv64yd7w] { font-size: 13px; font-weight: 600; color: var(--fn-text); }
.verdict .vc[b-snfv64yd7w] { font-size: 11.5px; color: var(--fn-text-secondary); margin-top: 3px; line-height: 1.5; }
.verdict .conf[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 5px; margin-top: 8px; padding: 3px 9px; border-radius: var(--fn-radius-pill); background: var(--fn-cat-purple-soft); color: var(--fn-cat-purple); font-size: 11px; font-weight: 600; font-family: var(--fn-font-mono); }
.pending-note[b-snfv64yd7w] { color: var(--fn-text-tertiary); font-size: 12px; font-style: italic; }

/* channels */
.chans[b-snfv64yd7w] { display: flex; flex-wrap: wrap; gap: 7px; }
.chchip[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: var(--fn-radius-pill); font-size: 11px; font-weight: 600; background: var(--fn-input-bg); border: 1px solid var(--fn-border); color: var(--fn-text-tertiary); }
.chchip[b-snfv64yd7w]  .lucide { width: 12px; height: 12px; }
.chchip.on[b-snfv64yd7w] { background: var(--fn-accent-soft); border-color: var(--fn-accent-line); color: var(--fn-primary); }

/* ladders (Freigabe-Leiter + Agent-Leiter) */
.lad-h[b-snfv64yd7w] { display: flex; align-items: center; gap: 7px; font-size: 10.5px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase; color: var(--fn-text-secondary); margin-bottom: 12px; }
.lad-h[b-snfv64yd7w]  .lucide { width: 13px; height: 13px; color: var(--fn-primary); }
.lad-h.agent[b-snfv64yd7w] { color: var(--fn-cat-purple); } .lad-h.agent[b-snfv64yd7w]  .lucide { color: var(--fn-cat-purple); }
.ladder[b-snfv64yd7w] { display: flex; align-items: center; gap: 4px; }
.step[b-snfv64yd7w] { display: flex; flex-direction: column; align-items: center; gap: 6px; flex: 0 0 auto; width: 74px; }
.bubble[b-snfv64yd7w] { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; font-weight: 700; font-size: 14px; border: 2px solid var(--fn-border-strong); }
.bubble[b-snfv64yd7w]  .lucide { width: 15px; height: 15px; }
.bubble.done[b-snfv64yd7w] { background: var(--fn-success-soft); border-color: var(--fn-success); color: var(--fn-success); }
.bubble.open[b-snfv64yd7w] { background: var(--fn-input-bg); border-color: var(--fn-border-strong); color: var(--fn-text-tertiary); }
.step .cap[b-snfv64yd7w] { font-size: 10px; color: var(--fn-text-secondary); text-align: center; line-height: 1.25; }
.step .cap b[b-snfv64yd7w] { display: block; color: var(--fn-text); font-size: 11px; }
.conn[b-snfv64yd7w] { flex: 1; height: 2px; border-radius: 2px; margin-bottom: 26px; background: var(--fn-border-strong); }
.conn.done[b-snfv64yd7w] { background: var(--fn-success); }
.aladder .bubble.done[b-snfv64yd7w] { background: var(--fn-cat-purple-soft); border-color: var(--fn-cat-purple); color: var(--fn-cat-purple); }
.aladder .bubble.run[b-snfv64yd7w] { background: var(--fn-cat-purple-soft); border-color: var(--fn-cat-purple); color: var(--fn-cat-purple); box-shadow: 0 0 0 4px var(--fn-cat-purple-soft); }
.aladder .conn.done[b-snfv64yd7w] { background: var(--fn-cat-purple); }
.averdict[b-snfv64yd7w] { margin-top: 12px; font-size: 11.5px; color: var(--fn-text-secondary); }
.averdict b[b-snfv64yd7w] { color: var(--fn-cat-purple); }
.averdict .vd[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 5px; font-weight: 700; }
.averdict .vd.buy[b-snfv64yd7w] { color: var(--fn-success); } .averdict .vd.sell[b-snfv64yd7w] { color: var(--fn-danger); } .averdict .vd.hold[b-snfv64yd7w] { color: var(--fn-warning); }

/* probability */
.prob-head[b-snfv64yd7w] { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 9px; }
.prob-head .big[b-snfv64yd7w] { font-family: var(--fn-font-mono); font-size: 24px; font-weight: 600; color: var(--fn-success); }
.prob-head .big.sell[b-snfv64yd7w] { color: var(--fn-danger); }
.prob-head .n[b-snfv64yd7w] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-secondary); }
.prob-bar[b-snfv64yd7w] { height: 9px; border-radius: 5px; background: var(--fn-input-bg); overflow: hidden; }
.prob-bar i[b-snfv64yd7w] { display: block; height: 100%; border-radius: 5px; background: var(--fn-success); }
.prob-bar i.sell[b-snfv64yd7w] { background: var(--fn-danger); }
.prob-none[b-snfv64yd7w] { color: var(--fn-text-tertiary); font-size: 12px; font-style: italic; display: flex; align-items: center; gap: 7px; }
.prob-none[b-snfv64yd7w]  .lucide { width: 14px; height: 14px; }

/* notify + export */
.toggles[b-snfv64yd7w] { display: flex; flex-direction: column; gap: 9px; }
.tg[b-snfv64yd7w] { display: flex; align-items: center; gap: 10px; }
.tg .ti[b-snfv64yd7w] { width: 28px; height: 28px; border-radius: 8px; display: grid; place-items: center; background: var(--fn-input-bg); border: 1px solid var(--fn-border); color: var(--fn-text-secondary); flex: 0 0 auto; }
.tg .ti[b-snfv64yd7w]  .lucide { width: 15px; height: 15px; }
.tg .tl[b-snfv64yd7w] { font-size: 12.5px; color: var(--fn-text); }
.sw-toggle[b-snfv64yd7w] { margin-left: auto; width: 38px; height: 22px; border-radius: var(--fn-radius-pill); background: var(--fn-input-bg); border: 1px solid var(--fn-border); position: relative; }
.sw-toggle i[b-snfv64yd7w] { position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--fn-text-tertiary); }
.sw-toggle.on[b-snfv64yd7w] { background: var(--fn-success-soft); border-color: var(--fn-success); }
.sw-toggle.on i[b-snfv64yd7w] { left: 18px; background: var(--fn-success); }
.sm-exports[b-snfv64yd7w] { display: flex; gap: 8px; margin-top: 2px; }
.sm-exp[b-snfv64yd7w] { flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 8px 10px; border-radius: 10px; background: var(--fn-input-bg); border: 1px solid var(--fn-border); color: var(--fn-text-secondary); font-size: 11.5px; font-weight: 600; cursor: pointer; }
.sm-exp:hover[b-snfv64yd7w] { background: var(--fn-hover); color: var(--fn-text); }
.sm-exp[b-snfv64yd7w]  .lucide { width: 14px; height: 14px; }
.sm-remove[b-snfv64yd7w] { width: 100%; display: flex; align-items: center; justify-content: center; gap: 7px; padding: 9px; border-radius: 10px; background: var(--fn-danger-soft); border: 1px solid var(--fn-danger-soft); color: var(--fn-danger); font-size: 12px; font-weight: 600; cursor: pointer; margin-top: 10px; }
.sm-remove:hover[b-snfv64yd7w] { background: var(--fn-danger-soft); color: var(--fn-danger); }
.sm-remove[b-snfv64yd7w]  .lucide { width: 14px; height: 14px; }

/* Full-screen — füllt den Inhaltsbereich (nicht den Viewport), damit der globale Rechts-Dock
   (Markt-Feed) nicht überlagert und nichts abgeschnitten wird. */
.sm-full[b-snfv64yd7w] { position: absolute; inset: 0; background: var(--fn-bg); display: none; grid-template-rows: auto auto 1fr; z-index: 30; border-radius: 14px; overflow: hidden; }
.sm-full.open[b-snfv64yd7w] { display: grid; }
.sm-full-top[b-snfv64yd7w] { display: flex; align-items: center; gap: 16px; padding: 15px 24px; border-bottom: 1px solid var(--fn-border); background: var(--fn-bg-muted); }
.f-back[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; border-radius: var(--fn-radius-pill); background: var(--fn-input-bg); border: 1px solid var(--fn-border); color: var(--fn-text-secondary); font-size: 13px; font-weight: 600; cursor: pointer; }
.f-back:hover[b-snfv64yd7w] { color: var(--fn-text); background: var(--fn-hover); }
.f-back[b-snfv64yd7w]  .lucide { width: 15px; height: 15px; }
.f-stbig[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 9px; padding: 9px 18px; border-radius: var(--fn-radius-pill); font-size: 16px; font-weight: 700; letter-spacing: .5px; }
.f-stbig[b-snfv64yd7w]  .lucide { width: 18px; height: 18px; }
.f-stbig.buy[b-snfv64yd7w] { background: var(--fn-success-soft); color: var(--fn-success); border: 1px solid var(--fn-success-soft); }
.f-stbig.hold[b-snfv64yd7w] { background: var(--fn-warning-soft); color: var(--fn-warning); border: 1px solid var(--fn-warning-soft); }
.f-stbig.sell[b-snfv64yd7w] { background: var(--fn-danger-soft); color: var(--fn-danger); border: 1px solid var(--fn-danger-soft); }
.f-stbig.nodata[b-snfv64yd7w] { background: var(--fn-input-bg); color: var(--fn-text-tertiary); border: 1px solid var(--fn-border-strong); }
.f-id .sym2[b-snfv64yd7w] { font-family: var(--fn-font-mono); font-size: 19px; font-weight: 700; color: var(--fn-primary); }
.f-id .nm2[b-snfv64yd7w] { font-size: 16px; color: var(--fn-text); margin-left: 9px; }
.f-id .ids2[b-snfv64yd7w] { font-family: var(--fn-font-mono); font-size: 11.5px; color: var(--fn-text-secondary); margin-top: 4px; }
.f-thesis-wrap[b-snfv64yd7w] { margin-left: auto; }
.sm-full-conv[b-snfv64yd7w] { padding: 14px 24px 16px; border-bottom: 1px solid var(--fn-border); background: linear-gradient(180deg, var(--fn-cat-purple-soft), transparent); }
.fc-lbl[b-snfv64yd7w] { font-size: 10px; letter-spacing: .6px; text-transform: uppercase; color: var(--fn-text-tertiary); margin-bottom: 11px; }
.rexplain[b-snfv64yd7w] { display: flex; align-items: center; gap: 14px; }
.rexplain .rbig2[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.rexplain.crownbig .rbig2[b-snfv64yd7w] { color: var(--fn-cat-gold); filter: drop-shadow(0 0 6px var(--fn-cat-gold-soft)); }
.rexplain .rtitle[b-snfv64yd7w] { font-size: 15px; font-weight: 700; color: var(--fn-text); }
.rexplain .rsub[b-snfv64yd7w] { font-size: 12px; color: var(--fn-text-secondary); margin-top: 2px; line-height: 1.5; }
.fc-mode[b-snfv64yd7w] { margin-top: 11px; font-size: 11px; color: var(--fn-text-tertiary); }
.fc-mode .fc-mode-v[b-snfv64yd7w] { font-weight: 700; }
.fc-mode .fc-mode-v.good[b-snfv64yd7w] { color: var(--fn-success); }
.fc-mode .fc-mode-v.warn[b-snfv64yd7w] { color: var(--fn-warning); }
.fc-mode .fc-mode-v.mut[b-snfv64yd7w] { color: var(--fn-text-secondary); }
.sm-full-body[b-snfv64yd7w] { display: grid; grid-template-columns: 1.32fr 1fr; gap: 18px; padding: 18px 24px; min-height: 0; overflow: hidden; }
.f-left[b-snfv64yd7w], .f-right[b-snfv64yd7w] { display: flex; flex-direction: column; gap: 16px; min-height: 0; overflow-y: auto; }
.sm-full .panel[b-snfv64yd7w] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 12px; padding: 16px; }
.sm-full .panel.agentpanel[b-snfv64yd7w] { border-color: var(--fn-cat-purple); }
/* Kursverlauf-Kachel: klappt als GANZE Kachel (Niko 13.07.2026). Eingeklappt bleibt nur der Kopf. */
.f-chartpanel[b-snfv64yd7w] { flex: 0 0 auto; }
.f-chartwrap[b-snfv64yd7w] { height: 150px; margin-top: 10px; border-radius: var(--fn-radius-sm); overflow: hidden; border: 1px solid var(--fn-border); background: var(--fn-bg-muted); }
/* Kompakter, kanonischer SecurityMicroChart klein einfassen (Niko 13.07.2026): der bare MicroChart-Host hat
   sonst 52vh/min-360px und sprengt die Kachel -> hier fixe kleine Höhe erzwingen. */
.f-chartwrap[b-snfv64yd7w]  .sm-microchart { height: 100%; display: block; }
.f-chartwrap[b-snfv64yd7w]  .cw-chart-host { height: 150px !important; min-height: 0 !important; }
.f-chartwrap[b-snfv64yd7w]  .cw-main { overflow: hidden; }
.f-facts[b-snfv64yd7w] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 14px; }
.f-facts .c[b-snfv64yd7w] { display: flex; flex-direction: column; gap: 2px; }
.f-facts .c .k[b-snfv64yd7w] { font-size: 9.5px; letter-spacing: .5px; text-transform: uppercase; color: var(--fn-text-tertiary); }
.f-facts .c .v[b-snfv64yd7w] { font-family: var(--fn-font-mono); font-size: 15px; font-weight: 600; }
.f-verdict-txt[b-snfv64yd7w] { font-size: 14px; line-height: 1.75; color: var(--fn-text-secondary); margin-top: 12px; }
.f-conf[b-snfv64yd7w] { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; padding: 6px 13px; border-radius: var(--fn-radius-pill); background: var(--fn-cat-purple-soft); color: var(--fn-cat-purple); font-size: 13px; font-weight: 600; font-family: var(--fn-font-mono); }
.sm-market-status[b-snfv64yd7w] { margin-top: 8px; font-size: 11.5px; color: var(--fn-text-tertiary); display: flex; align-items: center; gap: 7px; }
.sm-market-status[b-snfv64yd7w]  .lucide { width: 14px; height: 14px; }
.sm-market-status.open[b-snfv64yd7w] { color: var(--fn-success); }
.sm-warn[b-snfv64yd7w] { display: flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--fn-warning); margin-top: 10px; }
.sm-warn[b-snfv64yd7w]  .lucide { width: 14px; height: 14px; }

.sm-foot[b-snfv64yd7w] { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--fn-border); font-size: 11px; color: var(--fn-text-tertiary); }
.sm-foot[b-snfv64yd7w]  .lucide { width: 14px; height: 14px; }

@media (max-width: 760px) {
  .sm-wrap[b-snfv64yd7w] {
    height: auto;
    min-height: 100vh;
    padding: 12px 10px 48px;
    overflow: visible;
  }

  .sm-toolbar[b-snfv64yd7w] { flex-wrap: wrap; gap: 8px; }
  .sm-src[b-snfv64yd7w] { width: 100%; }
  .sm-sp[b-snfv64yd7w], .sm-sp2[b-snfv64yd7w] { display: none; }
  .sm-search[b-snfv64yd7w] { flex: 1 1 180px; width: auto; min-width: 0; }
  .sm-stage[b-snfv64yd7w] { min-height: 0; }
  .sm-stage.pinned[b-snfv64yd7w] { display: block; }
  .sm-board[b-snfv64yd7w] {
    height: auto;
    grid-template-columns: minmax(0, 1fr);
    padding-right: 0;
  }
  .sm-col[b-snfv64yd7w] { min-height: 260px; }
  .sm-cards[b-snfv64yd7w] { overflow: visible; }

  .sm-side[b-snfv64yd7w],
  .sm-stage.pinned .sm-side[b-snfv64yd7w],
  .sm-stage:not(.collapsed) .sm-side[b-snfv64yd7w],
  .sm-stage.pinned:not(.collapsed) .sm-side[b-snfv64yd7w] {
    position: static;
    width: 100%;
    max-width: 100%;
    height: auto;
    min-height: 0;
    margin-top: 12px;
    overflow: visible;
    box-shadow: none;
  }
  .sm-stage.collapsed .sm-side[b-snfv64yd7w] { display: none; }
  .sm-side-controls[b-snfv64yd7w], .sm-side-rail[b-snfv64yd7w] { display: none; }
  .sm-side-full[b-snfv64yd7w], .sm-sb[b-snfv64yd7w] { min-height: 0; overflow: visible; }

  .sm-full[b-snfv64yd7w] { position: fixed; inset: 0; overflow: auto; border-radius: 0; }
  .sm-full.open[b-snfv64yd7w] { display: block; }
  .sm-full-top[b-snfv64yd7w] { flex-wrap: wrap; gap: 10px; padding: 12px; }
  .f-thesis-wrap[b-snfv64yd7w] { width: 100%; margin-left: 0; }
  .sm-full-conv[b-snfv64yd7w] { padding: 12px; }
  .rexplain[b-snfv64yd7w] { align-items: flex-start; }
  .sm-full-body[b-snfv64yd7w] {
    grid-template-columns: minmax(0, 1fr);
    padding: 12px;
    overflow: visible;
  }
  .f-left[b-snfv64yd7w], .f-right[b-snfv64yd7w] { overflow: visible; }
  .f-facts[b-snfv64yd7w] { grid-template-columns: minmax(0, 1fr); }
  .ladder[b-snfv64yd7w] { overflow-x: auto; padding-bottom: 6px; }
}
/* /Components/SignalStudio/SignalStudioPassPanel.razor.rz.scp.css */
/* Freigabe-/Qualitäts-Pass im Sidebar-Kopf. Optik 1:1 aus der abgenommenen Vorschau (decision-pass),
   Tokens-only (kein Hex/rgb). Flächen: Panel = --fn-bg-alt, Trennlinien = --fn-border. */

.pass[b-0guj6b5x97] { border: 1px solid var(--fn-border-strong); border-radius: 10px; overflow: hidden; background: var(--fn-bg-alt); margin-bottom: 12px; }

.pass-main[b-0guj6b5x97] { display: grid; grid-template-columns: 1.2fr .9fr .9fr; gap: 1px; background: var(--fn-border); }
.pass-times[b-0guj6b5x97] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--fn-border); border-top: 1px solid var(--fn-border); }

.pass-cell[b-0guj6b5x97] { padding: 9px 10px; background: var(--fn-bg-alt); }
.pass-times .pass-cell[b-0guj6b5x97] { padding: 7px 10px; }

.pass-label[b-0guj6b5x97] { font-size: 9px; text-transform: uppercase; letter-spacing: .5px; color: var(--fn-text-tertiary); }
.pass-value[b-0guj6b5x97] { margin-top: 3px; font-size: 12px; font-weight: 600; }
.pass-value.mono[b-0guj6b5x97] { font-family: var(--fn-font-mono); }
.pass-value.good[b-0guj6b5x97] { color: var(--fn-success); }
.pass-value.warn[b-0guj6b5x97] { color: var(--fn-warning); }
.pass-value .mut[b-0guj6b5x97], .pass-value.mut[b-0guj6b5x97] { color: var(--fn-text-tertiary); font-weight: 500; }

.crown[b-0guj6b5x97] { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: var(--fn-radius-pill); font: 600 10px var(--fn-font-mono); color: var(--fn-text-secondary); background: var(--fn-input-bg); border: 1px solid var(--fn-border-strong); }
.crown.gold[b-0guj6b5x97] { color: var(--fn-cat-gold); background: var(--fn-cat-gold-soft); border-color: var(--fn-cat-gold); }
/* /Components/SignalStudio/SignalStudioProcessPanel.razor.rz.scp.css */
.ssp[b-qc5wcemkro] { border-top: 1px solid var(--fn-border); padding: 12px 0 4px; }
.ssp-head[b-qc5wcemkro], .ssp-line[b-qc5wcemkro] { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ssp-title[b-qc5wcemkro] { display: inline-flex; align-items: center; gap: 7px; color: var(--fn-text); font-weight: 650; font-size: 13px; }
.ssp-title :deep(svg)[b-qc5wcemkro] { width: 15px; height: 15px; color: var(--fn-primary); }
.ssp-count[b-qc5wcemkro], .ssp-meta[b-qc5wcemkro], .ssp-strategy[b-qc5wcemkro], .ssp-percent[b-qc5wcemkro] { color: var(--fn-text-tertiary); font-size: 11px; }
.ssp-progress[b-qc5wcemkro] { height: 4px; margin-top: 9px; overflow: hidden; background: var(--fn-bg-muted); }
.ssp-progress span[b-qc5wcemkro] { display: block; height: 100%; background: var(--fn-primary); transition: width .2s ease; }
.ssp-meta[b-qc5wcemkro] { margin: 5px 0 8px; }
.ssp-list[b-qc5wcemkro] { display: grid; gap: 5px; }
.ssp-job[b-qc5wcemkro] { display: grid; grid-template-columns: 22px minmax(0,1fr) 32px; gap: 7px; align-items: start; padding: 8px; border: 1px solid var(--fn-border); border-radius: 4px; background: var(--fn-bg-alt); }
.ssp-state[b-qc5wcemkro] { display: grid; place-items: center; width: 22px; height: 22px; color: var(--fn-text-tertiary); }
.ssp-state :deep(svg)[b-qc5wcemkro] { width: 15px; height: 15px; }
.ssp-job.done .ssp-state[b-qc5wcemkro] { color: var(--fn-success); }
.ssp-job.running .ssp-state[b-qc5wcemkro] { color: var(--fn-primary); }
.ssp-job.failed .ssp-state[b-qc5wcemkro] { color: var(--fn-danger); }
.ssp-job.na .ssp-state[b-qc5wcemkro], .ssp-job.cancelled .ssp-state[b-qc5wcemkro] { color: var(--fn-text-tertiary); }
.ssp-name[b-qc5wcemkro] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--fn-text); font-size: 12px; font-weight: 600; }
.ssp-status[b-qc5wcemkro] { flex: none; color: var(--fn-text-secondary); font-size: 10px; }
.ssp-strategy[b-qc5wcemkro] { margin-top: 2px; overflow-wrap: anywhere; }
.ssp-summary[b-qc5wcemkro] { margin-top: 5px; color: var(--fn-text-secondary); font-size: 11px; line-height: 1.35; }
.ssp-summary.error[b-qc5wcemkro] { color: var(--fn-danger); }
.ssp-verdict[b-qc5wcemkro] { display: inline-block; margin-top: 5px; color: var(--fn-primary); font-size: 10px; font-weight: 650; }
.ssp-percent[b-qc5wcemkro] { padding-top: 3px; text-align: right; font-variant-numeric: tabular-nums; }
.ssp-empty[b-qc5wcemkro] { display: flex; align-items: center; gap: 7px; padding: 10px 0; color: var(--fn-text-secondary); font-size: 12px; }
.ssp-empty :deep(svg)[b-qc5wcemkro] { width: 14px; height: 14px; }
/* /Components/SignalStudio/SignalStudioRisksTab.razor.rz.scp.css */
/* Reiter „Risiken & Zeit". Tokens-only (kein Hex/rgb), identische Flächen-Rollen wie die Sidebar-Panels
   der SignalStudioPage: Panels = --fn-bg-alt, Wells/Zeilen = --fn-input-bg. */

.risks-pane[b-ona1qxevq1] { display: flex; flex-direction: column; gap: 14px; }

.sect[b-ona1qxevq1] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 12px; padding: 14px; }
.sect-t[b-ona1qxevq1] { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: var(--fn-text-secondary); margin-bottom: 12px; }
.sect-t[b-ona1qxevq1]  .lucide { width: 14px; height: 14px; color: var(--fn-primary); }

.risk-list[b-ona1qxevq1] { display: grid; gap: 7px; }
.risk[b-ona1qxevq1] { padding: 9px 11px; border-radius: 8px; background: var(--fn-input-bg); display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 11px; }
.risk b[b-ona1qxevq1] { font-weight: 500; color: var(--fn-text); }
.risk .st[b-ona1qxevq1] { font-family: var(--fn-font-mono); font-size: 10.5px; font-weight: 600; white-space: nowrap; }

.risk .st.fresh[b-ona1qxevq1], .risk .st.ok[b-ona1qxevq1] { color: var(--fn-success); }
.risk .st.partial[b-ona1qxevq1], .risk .st.warn[b-ona1qxevq1] { color: var(--fn-warning); }
.risk .st.stale[b-ona1qxevq1], .risk .st.bad[b-ona1qxevq1] { color: var(--fn-danger); }
.risk .st.mut[b-ona1qxevq1] { color: var(--fn-text-tertiary); }

.guard-txt[b-ona1qxevq1] { margin: 0; font-size: 12px; line-height: 1.5; color: var(--fn-text-secondary); }
/* /Components/StrategyStudio/AssetStrategyDiscoveryPage.razor.rz.scp.css */
.asset-discovery-page[b-ej2sifl3u1] {
    min-height: calc(100vh - 82px);
    padding: 14px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg);
    background: var(--fn-bg);
    color: var(--fn-text);
    font-family: var(--fn-font);
}

.asset-discovery-page *[b-ej2sifl3u1] { box-sizing: border-box; }

.asset-discovery-hero[b-ej2sifl3u1],
.asset-discovery-panel-head[b-ej2sifl3u1],
.asset-discovery-choice-card[b-ej2sifl3u1],
.asset-discovery-launch[b-ej2sifl3u1],
.asset-discovery-success[b-ej2sifl3u1] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.asset-discovery-hero[b-ej2sifl3u1] { padding: 20px 2px 16px; }
.asset-discovery-hero h1[b-ej2sifl3u1] { margin: 4px 0; font-size: 24px; }
.asset-discovery-hero p[b-ej2sifl3u1] { max-width: 760px; margin: 0; color: var(--fn-text-secondary); }

.asset-discovery-kicker[b-ej2sifl3u1],
.asset-discovery-stage[b-ej2sifl3u1],
.asset-discovery-launch span[b-ej2sifl3u1] {
    color: var(--fn-primary);
    font-size: 11px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.asset-discovery-stage[b-ej2sifl3u1] {
    padding: 5px 9px;
    border: 1px solid var(--fn-primary);
    border-radius: var(--fn-radius-pill);
}

.asset-discovery-steps[b-ej2sifl3u1] {
    display: grid;
    margin: 0 0 12px;
    padding: 0;
    grid-template-columns: repeat(4, 1fr);
    list-style: none;
}

.asset-discovery-steps li[b-ej2sifl3u1] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 46px;
    padding: 8px 12px;
    border: 1px solid var(--fn-border);
    border-left: 0;
    color: var(--fn-text-tertiary);
    font-size: 12px;
}

.asset-discovery-steps li:first-child[b-ej2sifl3u1] {
    border-left: 1px solid var(--fn-border);
    border-radius: var(--fn-radius) 0 0 var(--fn-radius);
}

.asset-discovery-steps li:last-child[b-ej2sifl3u1] { border-radius: 0 var(--fn-radius) var(--fn-radius) 0; }
.asset-discovery-steps li.active[b-ej2sifl3u1] { border-color: var(--fn-primary); color: var(--fn-primary); background: var(--fn-accent-soft); }
.asset-discovery-steps li.complete[b-ej2sifl3u1] { color: var(--fn-success); background: var(--fn-success-soft); }
.asset-discovery-steps li span[b-ej2sifl3u1] { font-family: var(--fn-font-mono); }

.asset-discovery-status[b-ej2sifl3u1] {
    min-height: 24px;
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.asset-discovery-panel[b-ej2sifl3u1],
.asset-discovery-empty[b-ej2sifl3u1],
.asset-discovery-launch[b-ej2sifl3u1],
.asset-discovery-success[b-ej2sifl3u1] {
    margin-top: 10px;
    padding: 16px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
}

.asset-discovery-panel-head[b-ej2sifl3u1] { justify-content: flex-start; }
.asset-discovery-panel-head > span[b-ej2sifl3u1] { color: var(--fn-primary); font-family: var(--fn-font-mono); font-size: 18px; }
.asset-discovery-panel-head h2[b-ej2sifl3u1] { margin: 0; font-size: 16px; }
.asset-discovery-panel-head p[b-ej2sifl3u1] { margin: 2px 0 0; color: var(--fn-text-secondary); font-size: 12px; }

.asset-discovery-search[b-ej2sifl3u1] { margin-top: 14px; }
.asset-discovery-search label[b-ej2sifl3u1] { display: block; margin-bottom: 5px; color: var(--fn-text-secondary); font-size: 11px; }
.asset-discovery-search-row[b-ej2sifl3u1] { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.asset-discovery-search input[b-ej2sifl3u1] {
    min-height: 36px;
    padding: 0 11px;
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-sm);
    outline: none;
    background: var(--fn-input-bg);
    color: var(--fn-text);
}
.asset-discovery-search input:focus[b-ej2sifl3u1] { box-shadow: var(--fn-focus-ring); border-color: var(--fn-primary); }

.asset-discovery-results[b-ej2sifl3u1] { margin: 8px 0 0; padding: 4px; border: 1px solid var(--fn-border); border-radius: var(--fn-radius-sm); list-style: none; }
.asset-discovery-results li + li[b-ej2sifl3u1] { border-top: 1px solid var(--fn-border); }
.asset-discovery-result[b-ej2sifl3u1] { width: 100%; padding: 9px 11px; cursor: pointer; }
.asset-discovery-result:hover[b-ej2sifl3u1],
.asset-discovery-result.active[b-ej2sifl3u1] { background: var(--fn-accent-soft); }
.asset-discovery-result:focus[b-ej2sifl3u1] { outline: none; box-shadow: var(--fn-focus-ring); }
.asset-discovery-result div[b-ej2sifl3u1] { display: flex; align-items: flex-start; flex-direction: column; }
.asset-discovery-result span[b-ej2sifl3u1] { color: var(--fn-text-tertiary); font-size: 10px; }

.asset-discovery-choice-card[b-ej2sifl3u1] { margin-top: 12px; padding: 12px; border-left: 3px solid var(--fn-primary); background: var(--fn-accent-soft); }
.asset-discovery-choice-card div[b-ej2sifl3u1] { display: grid; gap: 3px; }
.asset-discovery-choice-card small[b-ej2sifl3u1],
.asset-discovery-choice-card span[b-ej2sifl3u1] { color: var(--fn-text-secondary); }

.asset-discovery-launch div[b-ej2sifl3u1] { display: grid; gap: 3px; }
.asset-discovery-launch small[b-ej2sifl3u1] { color: var(--fn-warning); }
.asset-discovery-success[b-ej2sifl3u1] { justify-content: flex-start; border-color: var(--fn-success); background: var(--fn-success-soft); color: var(--fn-success); }
.asset-discovery-success div[b-ej2sifl3u1] { display: grid; gap: 2px; }
.asset-discovery-empty[b-ej2sifl3u1] { display: grid; justify-items: center; gap: 6px; color: var(--fn-text-secondary); }

@media (max-width: 760px) {
    .asset-discovery-hero[b-ej2sifl3u1],
    .asset-discovery-choice-card[b-ej2sifl3u1],
    .asset-discovery-launch[b-ej2sifl3u1] { align-items: stretch; flex-direction: column; }
    .asset-discovery-steps[b-ej2sifl3u1] { grid-template-columns: 1fr 1fr; }
    .asset-discovery-steps li[b-ej2sifl3u1] { border: 1px solid var(--fn-border); border-radius: 0; }
    .asset-discovery-search-row[b-ej2sifl3u1] { grid-template-columns: 1fr; }
    .asset-discovery-search input[b-ej2sifl3u1] { min-height: 44px; font-size: 16px; }
}
/* /Components/StrategyStudio/AssetStrategyDiscoveryProfile.razor.rz.scp.css */
.asset-profile-panel[b-69pbhobtkd] { margin-top: 10px; padding: 16px; border: 1px solid var(--fn-border); border-radius: var(--fn-radius); background: var(--fn-bg-alt); }
.asset-profile-head[b-69pbhobtkd],
.asset-profile-recommendations > header[b-69pbhobtkd] { display: flex; align-items: center; gap: 12px; }
.asset-profile-head > span:first-child[b-69pbhobtkd],
.asset-profile-recommendations > header > span[b-69pbhobtkd] { color: var(--fn-primary); font-family: var(--fn-font-mono); font-size: 18px; }
.asset-profile-head h2[b-69pbhobtkd],
.asset-profile-recommendations h2[b-69pbhobtkd] { margin: 0; font-size: 16px; }
.asset-profile-head p[b-69pbhobtkd],
.asset-profile-recommendations p[b-69pbhobtkd] { margin: 2px 0 0; color: var(--fn-text-secondary); font-size: 12px; }
.asset-profile-version[b-69pbhobtkd] { margin-left: auto; color: var(--fn-text-tertiary); font-size: 11px; }

.asset-profile-evidence[b-69pbhobtkd],
.asset-profile-metrics[b-69pbhobtkd] { display: grid; gap: 8px; margin-top: 14px; grid-template-columns: repeat(3, 1fr); }
.asset-profile-evidence > div[b-69pbhobtkd],
.asset-profile-metrics > div[b-69pbhobtkd] { display: grid; gap: 3px; padding: 10px; border: 1px solid var(--fn-border); border-radius: var(--fn-radius-sm); background: var(--fn-bg); }
.asset-profile-evidence small[b-69pbhobtkd],
.asset-profile-metrics small[b-69pbhobtkd] { color: var(--fn-text-tertiary); font-size: 10px; text-transform: uppercase; }
.asset-profile-evidence span[b-69pbhobtkd] { color: var(--fn-text-secondary); font-size: 10px; }
.asset-profile-metrics[b-69pbhobtkd] { grid-template-columns: repeat(6, 1fr); }
.asset-profile-metrics strong[b-69pbhobtkd] { color: var(--fn-primary); font-family: var(--fn-font-mono); font-size: 16px; }

.asset-profile-badges[b-69pbhobtkd] { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.asset-profile-badges span[b-69pbhobtkd] { display: flex; align-items: center; gap: 4px; padding: 4px 7px; border-radius: var(--fn-radius-pill); background: var(--fn-bg-muted); color: var(--fn-text-secondary); font-size: 10px; }
.asset-profile-badges .ok[b-69pbhobtkd] { background: var(--fn-success-soft); color: var(--fn-success); }
.asset-profile-badges .warning[b-69pbhobtkd] { background: var(--fn-warning-soft); color: var(--fn-warning); }

.asset-profile-recommendations[b-69pbhobtkd] { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--fn-border); }
.asset-strategy-group[b-69pbhobtkd] { margin-top: 10px; padding: 12px; border: 1px solid var(--fn-border); border-radius: var(--fn-radius-sm); }
.asset-strategy-group.recommended[b-69pbhobtkd] { border-left: 3px solid var(--fn-success); }
.asset-strategy-group.blocked[b-69pbhobtkd] { opacity: .78; }
.asset-strategy-group legend[b-69pbhobtkd] { padding: 0 7px; font-weight: var(--fn-font-weight-bold); }
.asset-strategy-group legend > span[b-69pbhobtkd] { margin-right: 6px; color: var(--fn-primary); font-family: var(--fn-font-mono); }
.asset-strategy-group legend em[b-69pbhobtkd] { margin-left: 7px; color: var(--fn-text-tertiary); font-size: 10px; font-style: normal; }
.asset-strategy-contract[b-69pbhobtkd] { display: flex; flex-wrap: wrap; gap: 12px; color: var(--fn-text-tertiary); font-size: 10px; }
.asset-strategy-contract strong[b-69pbhobtkd] { color: var(--fn-text-secondary); }
.asset-strategy-arguments[b-69pbhobtkd] { display: grid; gap: 8px; margin: 10px 0; grid-template-columns: 1fr 1fr; }
.asset-strategy-arguments p[b-69pbhobtkd] { display: flex; gap: 6px; margin: 0; padding: 8px; border-radius: var(--fn-radius-sm); font-size: 11px; }
.asset-strategy-arguments .positive[b-69pbhobtkd] { background: var(--fn-success-soft); color: var(--fn-success); }
.asset-strategy-arguments .counter[b-69pbhobtkd] { background: var(--fn-warning-soft); color: var(--fn-warning); }
.asset-strategy-options[b-69pbhobtkd] { display: grid; gap: 5px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.asset-strategy-options label[b-69pbhobtkd] { display: flex; align-items: center; gap: 8px; padding: 7px; border: 1px solid var(--fn-border); border-radius: var(--fn-radius-sm); background: var(--fn-bg); cursor: pointer; }
.asset-strategy-options label:has(input:disabled)[b-69pbhobtkd] { cursor: not-allowed; }
.asset-strategy-options span[b-69pbhobtkd] { display: grid; min-width: 0; }
.asset-strategy-options small[b-69pbhobtkd] { overflow: hidden; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 9px; text-overflow: ellipsis; }
.asset-profile-failure[b-69pbhobtkd] { display: flex; align-items: center; gap: 8px; margin-top: 12px; padding: 12px; background: var(--fn-danger-soft); color: var(--fn-danger); }

@media (max-width: 900px) {
    .asset-profile-metrics[b-69pbhobtkd] { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 620px) {
    .asset-profile-evidence[b-69pbhobtkd],
    .asset-profile-metrics[b-69pbhobtkd],
    .asset-strategy-arguments[b-69pbhobtkd],
    .asset-strategy-options[b-69pbhobtkd] { grid-template-columns: 1fr; }
    .asset-profile-version[b-69pbhobtkd] { display: none; }
}
/* /Components/StrategyStudio/InstrumentInspectionPage.razor.rz.scp.css */
.inspection-page[b-znvjpfhcyo] { min-width: 0; background: var(--fn-bg); }
.inspection-head[b-znvjpfhcyo] { padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; border-bottom: 1px solid var(--fn-border); }
.inspection-head h1[b-znvjpfhcyo] { margin: 0; font-size: 21px; font-weight: 600; }
.inspection-head p[b-znvjpfhcyo] { margin: 4px 0 0; color: var(--fn-text-secondary); }
.inspection-content[b-znvjpfhcyo] { padding: 22px 28px; }
.inspection-tabs[b-znvjpfhcyo] { display: flex; gap: 6px; margin-bottom: 18px; }
.inspection-tag[b-znvjpfhcyo] { padding: 3px 9px; border: 1px solid var(--fn-border); border-radius: var(--fn-radius-pill); color: var(--fn-text-secondary); }
.inspection-notice[b-znvjpfhcyo] { color: var(--fn-text-secondary); margin: 0 0 18px; }
.inspection-explanation[b-znvjpfhcyo] { margin-top: 18px; padding: 18px; border: 1px solid var(--fn-border); border-radius: var(--fn-radius); background: var(--fn-bg-alt); }
.inspection-explanation h2[b-znvjpfhcyo] { font-size: 15px; font-weight: 600; }
.inspection-explanation p[b-znvjpfhcyo] { color: var(--fn-text-secondary); }
/* /Components/StrategyStudio/InstrumentInspectionProfileDialog.razor.rz.scp.css */
.inspection-form[b-o49a759epl] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
.inspection-form[b-o49a759epl]  .inspection-wide { grid-column: 1 / -1; }
fieldset[b-o49a759epl] { border: 0; border-top: 1px solid var(--fn-border); padding: 14px 0 0; margin: 6px 0; min-width: 0; }
legend[b-o49a759epl] { color: var(--fn-text); padding-right: 10px; }
p[b-o49a759epl] { color: var(--fn-text-secondary); margin: 6px 0 12px; }
.inspection-choice[b-o49a759epl] { display: flex; align-items: center; gap: 8px; padding: 6px 0; }
@media (max-width: 600px) { .inspection-form[b-o49a759epl] { grid-template-columns: minmax(0, 1fr); } }
/* /Components/StrategyStudio/InstrumentInspectionRunDetail.razor.rz.scp.css */
.inspection-detail[b-60is9vx9n7] { margin-top: 18px; padding: 18px; background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); }
.inspection-detail-heading[b-60is9vx9n7] { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.inspection-run-actions[b-60is9vx9n7] { display: flex; gap: 8px; flex-wrap: wrap; }
.inspection-metrics[b-60is9vx9n7] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 18px 0; }
.inspection-metrics > div[b-60is9vx9n7] { padding: 16px; border: 1px solid var(--fn-border); border-radius: var(--fn-radius); }
.inspection-metrics span[b-60is9vx9n7] { display: block; margin-bottom: 8px; color: var(--fn-text-secondary); }
.inspection-metrics strong[b-60is9vx9n7] { color: var(--fn-neutral); font-weight: 500; }
h2[b-60is9vx9n7], h3[b-60is9vx9n7] { font-size: 15px; font-weight: 600; }
p[b-60is9vx9n7] { color: var(--fn-text-secondary); }
@media (max-width: 980px) { .inspection-metrics[b-60is9vx9n7] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .inspection-metrics[b-60is9vx9n7] { grid-template-columns: minmax(0, 1fr); } }
/* /Components/StrategyStudio/InstrumentInspectionSnapshot.razor.rz.scp.css */
.inspection-facts[b-3fi443dtr2] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
dt[b-3fi443dtr2], p[b-3fi443dtr2] { color: var(--fn-text-secondary); }
dd[b-3fi443dtr2] { margin: 4px 0 0; overflow-wrap: anywhere; }
@media (max-width: 600px) { .inspection-facts[b-3fi443dtr2] { grid-template-columns: minmax(0, 1fr); } }
/* /Components/StrategyStudio/InstrumentInspectionTile.razor.rz.scp.css */
.inspection-entry[b-sicgy3o8xf] { padding: 14px 18px; max-width: 520px; }
.inspection-entry-content[b-sicgy3o8xf] { padding: 14px; }
.inspection-entry-title[b-sicgy3o8xf] { display: flex; align-items: center; gap: 8px; color: var(--fn-text); }
p[b-sicgy3o8xf] { color: var(--fn-text-secondary); }
span[b-sicgy3o8xf] { color: var(--fn-primary); }
/* /Components/StrategyStudio/StrategyFamilyEvidenceLine.razor.rz.scp.css */
/* Familien-Evidenz-Zeile — Quellenzeile der Kandidaten-Kachel (.src-line), nur Tokens. */
.src-line[b-1dijm90jk6] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 6px;
    padding: 6px 8px;
    border-radius: 7px;
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 11px;
}

.src-line.ok[b-1dijm90jk6] {
    color: var(--fn-success);
}

.src-line.bad[b-1dijm90jk6] {
    color: var(--fn-danger);
}

.src-line[b-1dijm90jk6]  i {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
}
/* /Components/StrategyStudio/StrategyOptimizationCampaignPanel.razor.rz.scp.css */
.optimization-campaign[b-f0zv02l4nz] { margin: 10px 0; padding: 14px; border: 1px solid var(--fn-border); border-radius: 12px; background: var(--fn-bg-alt); }
.optimization-campaign > header[b-f0zv02l4nz] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.optimization-campaign header span[b-f0zv02l4nz] { color: var(--fn-text-tertiary); font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }
.optimization-campaign h2[b-f0zv02l4nz] { margin: 2px 0; font-size: 15px; }
.optimization-actions[b-f0zv02l4nz] { display: flex; align-items: center; gap: 8px; }
.optimization-actions[b-f0zv02l4nz]  .optimization-toggle { width: 30px; min-width: 30px; padding: 0; }
.optimization-details[b-f0zv02l4nz] { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--fn-border); }
.optimization-intro[b-f0zv02l4nz] { margin: 0; color: var(--fn-text-secondary); font-size: 12px; }
.optimization-empty[b-f0zv02l4nz] { margin-top: 12px; padding: 12px; border: 1px dashed var(--fn-border-strong); border-radius: 8px; color: var(--fn-text-secondary); }
.optimization-summary[b-f0zv02l4nz] { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 12px; color: var(--fn-text-secondary); font-size: 11px; }
.optimization-summary strong[b-f0zv02l4nz] { color: var(--fn-text); }
.optimization-table-wrap[b-f0zv02l4nz] { margin-top: 10px; overflow-x: auto; }
.optimization-campaign table[b-f0zv02l4nz] { width: 100%; border-collapse: collapse; font-size: 11px; }
.optimization-campaign th[b-f0zv02l4nz], .optimization-campaign td[b-f0zv02l4nz] { padding: 8px; border-bottom: 1px solid var(--fn-border); text-align: left; vertical-align: top; white-space: nowrap; }
.optimization-campaign th[b-f0zv02l4nz] { color: var(--fn-text-tertiary); font-size: 9px; text-transform: uppercase; }
.optimization-campaign td:nth-child(2)[b-f0zv02l4nz], .optimization-campaign td:last-child[b-f0zv02l4nz] { white-space: normal; }
.optimization-campaign td:last-child small[b-f0zv02l4nz] { display: block; max-width: 270px; margin-top: 3px; color: var(--fn-text-secondary); }
.improved[b-f0zv02l4nz] { color: var(--fn-success); } .pending[b-f0zv02l4nz] { color: var(--fn-warning); } .rejected[b-f0zv02l4nz] { color: var(--fn-danger); }
.optimization-warning[b-f0zv02l4nz] { display: flex; gap: 6px; margin: 10px 0 0; color: var(--fn-warning); font-size: 11px; }
.optimization-gates[b-f0zv02l4nz] { display: flex; flex-wrap: wrap; gap: 3px; min-width: 190px; }
.optimization-gates span[b-f0zv02l4nz] { padding: 1px 4px; border: 1px solid var(--fn-border); border-radius: 3px; font-size: 9px; }
.optimization-gates .passed[b-f0zv02l4nz] { color: var(--fn-success); border-color: var(--fn-success); }
.optimization-gates .failed[b-f0zv02l4nz] { color: var(--fn-danger); border-color: var(--fn-danger); }
.optimization-gates .pending[b-f0zv02l4nz] { color: var(--fn-text-tertiary); border-color: var(--fn-border-strong); }
@media (max-width: 760px) { .optimization-campaign > header[b-f0zv02l4nz] { align-items: flex-start; flex-direction: column; } .optimization-actions[b-f0zv02l4nz] { width: 100%; flex-wrap: wrap; } }
/* /Components/StrategyStudio/StrategyProofAccountBar.razor.rz.scp.css */
/* Rückgang-gegen-Konto Balken — 1:1 nach VORSCHAU-Trading-Hub-Strategie-Erfolgsanalyse.html (.dd), nur Tokens. */
.dd[b-e5o6n938fc] {
    margin: 0 0 8px;
}

.dd .lbl[b-e5o6n938fc] {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-family: var(--fn-font-mono);
    font-size: 11px;
    color: var(--fn-text-secondary);
    margin-bottom: 4px;
}

.dd .bar[b-e5o6n938fc] {
    height: 6px;
    border-radius: var(--fn-radius-pill);
    background: var(--fn-border);
    position: relative;
    overflow: hidden;
}

.dd .bar i[b-e5o6n938fc] {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    border-radius: var(--fn-radius-pill);
}

.dd .bar i.bad[b-e5o6n938fc] {
    background: var(--fn-danger);
}

.dd .bar i.ok[b-e5o6n938fc] {
    background: var(--fn-success);
}

.dd .bar em[b-e5o6n938fc] {
    position: absolute;
    left: 50%;
    top: -2px;
    bottom: -2px;
    width: 1px;
    background: var(--fn-text);
}
/* /Components/StrategyStudio/StrategyProofGateList.razor.rz.scp.css */
/* Tor-Liste (acht Tore) — 1:1 nach VORSCHAU-Trading-Hub-Strategie-Erfolgsanalyse.html (.gates/.gate), nur Tokens. */
.gates[b-e3ijly8ono] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px 12px;
    margin: 0 0 8px;
    padding: 8px 10px;
    border: 1px solid var(--fn-border);
    border-radius: 8px;
    background: var(--fn-bg-muted);
}

.gate[b-e3ijly8ono] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    font-family: var(--fn-font-mono);
    font-size: 11px;
    color: var(--fn-text-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gate b[b-e3ijly8ono] {
    font-weight: var(--fn-font-weight-bold);
    color: var(--fn-text);
    min-width: 70px;
}

.gate.ok[b-e3ijly8ono]  i {
    color: var(--fn-success);
}

.gate.bad[b-e3ijly8ono]  i {
    color: var(--fn-danger);
}

.gate[b-e3ijly8ono]  i {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
}
/* /Components/StrategyStudio/StrategyProofPassBar.razor.rz.scp.css */
/* Neuberechnung-Zeile (Niko 22.08.2026) — eigene Zeile unter der Board-Navigation.
   Die Reiterzeile bleibt reine Navigation; eine seltene, teure Stapelaktion bekommt keine Signalfarbe.
   Nur Token, keine Hex-Werte. */

.pp-strip[b-grvhxiiqxb] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 12px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-alt);
    position: relative;
    min-height: 38px;
}

.pp-spacer[b-grvhxiiqxb] { flex: 1 1 auto; }

.pp-label[b-grvhxiiqxb] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    color: var(--fn-text-secondary);
    font-size: 11.5px;
}

.pp-label .k[b-grvhxiiqxb] {
    color: var(--fn-text-tertiary);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .4px;
    font-weight: var(--fn-font-weight-bold);
}

.pp-label b[b-grvhxiiqxb] {
    color: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-medium);
}

.pp-label .sep[b-grvhxiiqxb] { color: var(--fn-text-tertiary); }
.pp-failed[b-grvhxiiqxb] { color: var(--fn-danger); }
.pp-hint[b-grvhxiiqxb] { color: var(--fn-text-tertiary); font-size: 11px; white-space: nowrap; }

.pp-strip.running .pp-label b[b-grvhxiiqxb],
.pp-strip.running .pp-label .k[b-grvhxiiqxb] { color: var(--fn-primary); }

/* Der Fortschritt sitzt als 2px-Band auf der Trennlinie: er informiert, ohne zu blinken. */
.pp-bar[b-grvhxiiqxb] {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 2px;
}

.pp-bar i[b-grvhxiiqxb] {
    display: block;
    height: 2px;
    border-radius: 2px;
    background: var(--fn-primary);
    transition: width .3s ease;
}

[b-grvhxiiqxb] .pp-action {
    border: 1px solid var(--fn-border-strong);
    color: var(--fn-text-secondary);
    white-space: nowrap;
}

[b-grvhxiiqxb] .pp-action:hover {
    color: var(--fn-primary);
    border-color: var(--fn-accent-line);
}
/* /Components/StrategyStudio/StrategyProofWalkForwardStrip.razor.rz.scp.css */
/* Walk-Forward-Fenster + Quellenzeile — 1:1 nach VORSCHAU-Trading-Hub-Strategie-Erfolgsanalyse.html (.wf/.src-line), nur Tokens. */
.wf[b-o161qx72fo] {
    display: flex;
    gap: 3px;
    margin: 0 0 8px;
    align-items: flex-end;
}

.wf span[b-o161qx72fo] {
    flex: 1;
    min-width: 0;
    height: 24px;
    border: 1px dashed var(--fn-border-strong);
    border-radius: 4px;
    display: grid;
    place-items: center;
    font-family: var(--fn-font-mono);
    font-size: 9px;
    color: var(--fn-text-tertiary);
}

.wf span.ok[b-o161qx72fo] {
    border-style: solid;
    border-color: var(--fn-success);
    color: var(--fn-success);
}

.wf span.bad[b-o161qx72fo] {
    border-style: solid;
    border-color: var(--fn-danger);
    color: var(--fn-danger);
}

.src-line[b-o161qx72fo] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 6px;
    padding: 6px 8px;
    border-radius: 7px;
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 11px;
}

.src-line.ok[b-o161qx72fo] {
    color: var(--fn-success);
}

.src-line[b-o161qx72fo]  i {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
}
/* /Components/StrategyStudio/StrategyQualityRating.razor.rz.scp.css */
.strategy-quality-rating[b-jqjb98kqxq] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    align-items: center;
    margin: 0 9px 7px;
    padding: 7px 8px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-alt);
}

.strategy-quality-label[b-jqjb98kqxq] {
    grid-column: 1 / -1;
    color: var(--fn-text-secondary);
    font-size: 9px;
    letter-spacing: .05em;
    text-transform: uppercase;
    white-space: nowrap;
}

.strategy-quality-scope[b-jqjb98kqxq] {
    grid-column: 1 / -1;
    min-width: 0;
    overflow: hidden;
    color: var(--fn-text-tertiary);
    font: 500 9px var(--fn-font-mono);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.strategy-quality-stars[b-jqjb98kqxq] {
    display: inline-flex;
    gap: 2px;
    align-items: center;
    min-width: 86px;
}

.strategy-quality-star[b-jqjb98kqxq] {
    display: inline-grid;
    place-items: center;
}

.strategy-quality-star[b-jqjb98kqxq]  .fn-icon,
.strategy-quality-star[b-jqjb98kqxq]  svg {
    width: 15px;
    height: 15px;
}

.strategy-quality-star.filled[b-jqjb98kqxq]  svg {
    fill: var(--fn-cat-gold);
    stroke: var(--fn-cat-gold);
}

.strategy-quality-star.empty[b-jqjb98kqxq]  svg {
    fill: none;
    stroke: var(--fn-text-tertiary);
}

.strategy-quality-counter[b-jqjb98kqxq] {
    color: var(--fn-text);
    font: 600 10px var(--fn-font-mono);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.strategy-quality-unrated[b-jqjb98kqxq] {
    grid-column: 1 / -1;
    color: var(--fn-text-tertiary);
    font-size: 10px;
}
/* /Components/StrategyStudio/StrategyRunHardeningPanel.razor.rz.scp.css */
.sp-hardening[b-0ty87o5gjg] {
    margin: 10px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
    color: var(--fn-text);
}

.sp-header[b-0ty87o5gjg],
.sp-title[b-0ty87o5gjg],
.sp-status-line[b-0ty87o5gjg],
.sp-empty[b-0ty87o5gjg],
.sp-runtime footer[b-0ty87o5gjg],
.sp-activity[b-0ty87o5gjg],
.sp-distribution span[b-0ty87o5gjg],
.sp-decision-actions[b-0ty87o5gjg],
.sp-custom-extension[b-0ty87o5gjg] {
    display: flex;
    align-items: center;
}

.sp-header[b-0ty87o5gjg] {
    min-height: 46px;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--fn-border);
}

.sp-title[b-0ty87o5gjg] {
    gap: 9px;
}

.sp-title > span[b-0ty87o5gjg],
.sp-strategies article > span[b-0ty87o5gjg],
.sp-activity > span:last-child[b-0ty87o5gjg],
.sp-decision > div:first-child[b-0ty87o5gjg] {
    display: grid;
    gap: 2px;
}

.sp-title small[b-0ty87o5gjg],
.sp-strategies small[b-0ty87o5gjg],
.sp-status-line span[b-0ty87o5gjg],
.sp-timeline b[b-0ty87o5gjg],
.sp-metrics b[b-0ty87o5gjg],
.sp-runtime footer > span[b-0ty87o5gjg],
.sp-decision small[b-0ty87o5gjg] {
    color: var(--fn-text-secondary);
}

.sp-safety[b-0ty87o5gjg] {
    padding: 3px 8px;
    border: 1px solid var(--fn-success);
    border-radius: var(--fn-radius-pill);
    color: var(--fn-success);
    white-space: nowrap;
}

.sp-empty[b-0ty87o5gjg] {
    min-height: 62px;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
}

.sp-runtime[b-0ty87o5gjg] {
    padding: 9px 12px 10px;
}

.sp-status-line[b-0ty87o5gjg] {
    flex-wrap: wrap;
    gap: 10px;
}

.sp-status-line strong[b-0ty87o5gjg] {
    text-transform: uppercase;
}

.sp-status-line .running[b-0ty87o5gjg],
.sp-status-line .completed[b-0ty87o5gjg] {
    color: var(--fn-success);
}

.sp-status-line .blocked[b-0ty87o5gjg] {
    color: var(--fn-danger);
}

.sp-status-line .paused[b-0ty87o5gjg] {
    color: var(--fn-warning);
}

.sp-status-line .preflight[b-0ty87o5gjg] {
    color: var(--fn-warning);
}

.sp-status-line .stopped[b-0ty87o5gjg] {
    color: var(--fn-text-tertiary);
}

.sp-activity[b-0ty87o5gjg] {
    gap: 9px;
    margin-top: 8px;
    padding: 7px 9px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
}

.sp-activity-dot[b-0ty87o5gjg] {
    width: 9px;
    height: 9px;
    border-radius: var(--fn-radius-round);
    background: var(--fn-text-tertiary);
}

.sp-activity.trading[b-0ty87o5gjg] {
    border-color: var(--fn-success);
}

.sp-activity.trading .sp-activity-dot[b-0ty87o5gjg] {
    background: var(--fn-success);
    animation: sp-runtime-pulse-b-0ty87o5gjg 1.4s ease-in-out infinite;
}

.sp-activity.waiting[b-0ty87o5gjg] {
    border-color: var(--fn-warning);
}

.sp-activity.waiting .sp-activity-dot[b-0ty87o5gjg],
.sp-activity.decision .sp-activity-dot[b-0ty87o5gjg] {
    background: var(--fn-warning);
}

.sp-activity.blocked[b-0ty87o5gjg] {
    border-color: var(--fn-danger);
}

.sp-activity.blocked .sp-activity-dot[b-0ty87o5gjg] {
    background: var(--fn-danger);
}

.sp-progress[b-0ty87o5gjg],
.sp-distribution progress[b-0ty87o5gjg] {
    appearance: none;
    width: 100%;
    border: 0;
    overflow: hidden;
    background: var(--fn-bg-muted);
}

.sp-progress[b-0ty87o5gjg] {
    height: 7px;
    margin: 8px 0;
    border-radius: var(--fn-radius-pill);
}

.sp-progress[b-0ty87o5gjg]::-webkit-progress-bar,
.sp-distribution progress[b-0ty87o5gjg]::-webkit-progress-bar {
    background: var(--fn-bg-muted);
}

.sp-progress[b-0ty87o5gjg]::-webkit-progress-value {
    border-radius: var(--fn-radius-pill);
    background: var(--fn-primary);
}

.sp-progress[b-0ty87o5gjg]::-moz-progress-bar {
    border-radius: var(--fn-radius-pill);
    background: var(--fn-primary);
}

.sp-progress.active[b-0ty87o5gjg] {
    animation: sp-runtime-pulse-b-0ty87o5gjg 1.4s ease-in-out infinite;
}

.sp-timeline[b-0ty87o5gjg],
.sp-metrics[b-0ty87o5gjg] {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    gap: 7px;
}

.sp-timeline span[b-0ty87o5gjg],
.sp-metrics span[b-0ty87o5gjg] {
    display: grid;
    gap: 2px;
    min-width: 0;
    padding: 6px 8px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
}

.sp-timeline b[b-0ty87o5gjg],
.sp-metrics b[b-0ty87o5gjg],
.sp-strategies dt[b-0ty87o5gjg] {
    font-size: 10px;
    font-weight: var(--fn-font-weight-medium);
    text-transform: uppercase;
}

.sp-metrics[b-0ty87o5gjg] {
    margin-top: 8px;
}

.positive[b-0ty87o5gjg] {
    color: var(--fn-success);
}

.negative[b-0ty87o5gjg],
.sp-validation[b-0ty87o5gjg] {
    color: var(--fn-danger);
}

.neutral[b-0ty87o5gjg] {
    color: var(--fn-text);
}

.sp-distribution[b-0ty87o5gjg] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 8px;
}

.sp-distribution > div[b-0ty87o5gjg] {
    padding: 7px 8px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
}

.sp-distribution span[b-0ty87o5gjg] {
    justify-content: space-between;
}

.sp-distribution progress[b-0ty87o5gjg] {
    height: 5px;
    margin-top: 5px;
    border-radius: var(--fn-radius-pill);
}

.sp-distribution .winning[b-0ty87o5gjg]::-webkit-progress-value {
    background: var(--fn-success);
}

.sp-distribution .winning[b-0ty87o5gjg]::-moz-progress-bar {
    background: var(--fn-success);
}

.sp-distribution .losing[b-0ty87o5gjg]::-webkit-progress-value {
    background: var(--fn-danger);
}

.sp-distribution .losing[b-0ty87o5gjg]::-moz-progress-bar {
    background: var(--fn-danger);
}

.sp-strategies[b-0ty87o5gjg] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 9px;
}

.sp-strategies article[b-0ty87o5gjg] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px 10px;
    padding: 9px 10px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg);
}

.sp-strategies article > span:nth-child(2)[b-0ty87o5gjg] {
    justify-items: end;
    text-align: right;
}

.sp-strategies dl[b-0ty87o5gjg] {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 5px;
    margin: 0;
}

.sp-strategies dl div[b-0ty87o5gjg] {
    display: grid;
    gap: 2px;
    padding-top: 6px;
    border-top: 1px solid var(--fn-border);
}

.sp-strategies dt[b-0ty87o5gjg],
.sp-strategies dd[b-0ty87o5gjg] {
    margin: 0;
}

.sp-strategy-action[b-0ty87o5gjg] {
    display: flex;
    grid-column: 1 / -1;
    justify-content: flex-end;
}

.sp-decision[b-0ty87o5gjg] {
    display: grid;
    gap: 8px;
    margin-top: 9px;
    padding: 9px 10px;
    border: 1px solid var(--fn-warning);
    border-radius: var(--fn-radius);
    background: var(--fn-warning-soft);
}

.sp-decision-actions[b-0ty87o5gjg] {
    flex-wrap: wrap;
    gap: 7px;
}

.sp-custom-extension[b-0ty87o5gjg] {
    display: grid;
    grid-template-columns: 76px auto;
    gap: 7px;
}

.sp-runtime footer[b-0ty87o5gjg] {
    min-height: 38px;
    justify-content: space-between;
    gap: 10px;
    margin-top: 7px;
    border-top: 1px solid var(--fn-border);
    padding-top: 7px;
}

@keyframes sp-runtime-pulse-b-0ty87o5gjg {
    0%,
    100% {
        opacity: .55;
    }

    50% {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sp-progress.active[b-0ty87o5gjg],
    .sp-activity.trading .sp-activity-dot[b-0ty87o5gjg] {
        animation: none;
    }
}

@media (max-width: 900px) {
    .sp-timeline[b-0ty87o5gjg],
    .sp-metrics[b-0ty87o5gjg] {
        grid-template-columns: repeat(2, minmax(120px, 1fr));
    }
}

@media (max-width: 760px) {
    .sp-strategies[b-0ty87o5gjg],
    .sp-distribution[b-0ty87o5gjg] {
        grid-template-columns: 1fr;
    }

    .sp-header[b-0ty87o5gjg],
    .sp-runtime footer[b-0ty87o5gjg] {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 520px) {
    .sp-timeline[b-0ty87o5gjg],
    .sp-metrics[b-0ty87o5gjg] {
        grid-template-columns: 1fr;
    }

    .sp-strategies dl[b-0ty87o5gjg] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* /Components/StrategyStudio/StrategyRunModeBadge.razor.rz.scp.css */
/* Handelsart der Testfahrt: 1. Simulation, 2. Paper, 3. Real.
   Je naeher an echtem Geld, desto lauter - Real ist nie zu uebersehen. */
.ss-account-mode[b-okbvya7boq] {
    margin: 0 0 8px;
    padding: 5px 10px;
    border-radius: 6px;
    border: 1px solid var(--fn-border-strong);
    font-family: var(--fn-font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .6px;
    text-transform: uppercase;
}

.ss-account-mode.mode-simulation[b-okbvya7boq] {
    color: var(--fn-info);
    border-color: color-mix(in srgb, var(--fn-info) 45%, transparent);
    background: color-mix(in srgb, var(--fn-info) 12%, transparent);
}

.ss-account-mode.mode-paper[b-okbvya7boq] {
    color: var(--fn-warning);
    border-color: color-mix(in srgb, var(--fn-warning) 55%, transparent);
    background: color-mix(in srgb, var(--fn-warning) 14%, transparent);
}

.ss-account-mode.mode-real[b-okbvya7boq] {
    color: var(--fn-danger);
    border-color: var(--fn-danger);
    background: color-mix(in srgb, var(--fn-danger) 18%, transparent);
}
/* /Components/StrategyStudio/StrategyStudioActivityProgress.razor.rz.scp.css */
.ss-activity-progress[b-h03h0dl5mv] {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.ss-activity-copy[b-h03h0dl5mv] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}

.ss-activity-copy strong[b-h03h0dl5mv] {
    color: var(--fn-text);
    font-size: 11px;
    font-weight: var(--fn-font-weight-bold);
}

.ss-activity-copy span[b-h03h0dl5mv] {
    overflow: hidden;
    color: var(--fn-text-secondary);
    font-size: 10px;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ss-activity-track[b-h03h0dl5mv],
.ss-activity-meter[b-h03h0dl5mv] {
    width: 100%;
    height: 7px;
    overflow: hidden;
    border: 0;
    border-radius: var(--fn-radius-pill);
    background: var(--fn-bg-muted);
    box-shadow: inset 0 0 0 1px var(--ss-activity-color);
}

.ss-activity-meter[b-h03h0dl5mv] {
    display: block;
    appearance: none;
}

.ss-activity-meter-shell[b-h03h0dl5mv] {
    position: relative;
    width: 100%;
    height: 7px;
    overflow: hidden;
    border-radius: var(--fn-radius-pill);
}

.ss-activity-signal[b-h03h0dl5mv] {
    position: absolute;
    inset-block: 0;
    left: 0;
    width: 22%;
    border-radius: var(--fn-radius-pill);
    background: var(--fn-text);
    opacity: .28;
    animation: ss-activity-scan-b-h03h0dl5mv 1.4s ease-in-out infinite;
    pointer-events: none;
}

.ss-activity-meter[b-h03h0dl5mv]::-webkit-progress-bar {
    border-radius: var(--fn-radius-pill);
    background: var(--fn-bg-muted);
}

.ss-activity-meter[b-h03h0dl5mv]::-webkit-progress-value {
    border-radius: var(--fn-radius-pill);
    background: var(--ss-activity-color);
}

.ss-activity-meter[b-h03h0dl5mv]::-moz-progress-bar {
    border-radius: var(--fn-radius-pill);
    background: var(--ss-activity-color);
}

.running[b-h03h0dl5mv] {
    --ss-activity-color: var(--fn-success);
}

.paused[b-h03h0dl5mv] {
    --ss-activity-color: var(--fn-warning);
}

.not-started[b-h03h0dl5mv] {
    --ss-activity-color: var(--fn-text-tertiary);
}

.evidence-only[b-h03h0dl5mv] {
    --ss-activity-color: var(--fn-info);
}

.faulted[b-h03h0dl5mv] {
    --ss-activity-color: var(--fn-danger);
}

.running .ss-activity-copy strong[b-h03h0dl5mv] {
    color: var(--fn-success);
}

.paused .ss-activity-copy strong[b-h03h0dl5mv] {
    color: var(--fn-warning);
}

.not-started .ss-activity-copy strong[b-h03h0dl5mv] {
    color: var(--fn-text-tertiary);
}

.evidence-only .ss-activity-copy strong[b-h03h0dl5mv] {
    color: var(--fn-info);
}

.faulted .ss-activity-copy strong[b-h03h0dl5mv] {
    color: var(--fn-danger);
}

.ss-activity-moving[b-h03h0dl5mv] {
    display: block;
    width: 38%;
    height: 100%;
    border-radius: var(--fn-radius-pill);
    background: var(--ss-activity-color);
    animation: ss-activity-scan-b-h03h0dl5mv 1.4s ease-in-out infinite;
}

.compact[b-h03h0dl5mv] {
    margin-top: 2px;
}

@keyframes ss-activity-scan-b-h03h0dl5mv {
    from {
        transform: translateX(-105%);
    }

    to {
        transform: translateX(365%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ss-activity-moving[b-h03h0dl5mv],
    .ss-activity-signal[b-h03h0dl5mv] {
        width: 100%;
        animation: none;
        opacity: .72;
        transform: none;
    }

    .ss-activity-signal[b-h03h0dl5mv] {
        display: none;
    }
}
/* /Components/StrategyStudio/StrategyStudioAttemptTile.razor.rz.scp.css */
/* Fahrten-Kachel — Ergänzungen 22.08.2026 (Vorschau Trading-Hub-Strategie-Erfolgsanalyse 1:1):
   Phasen-Plakette, Quellenzeile. Grundstil der Kachel bleibt in StrategyStudioCatalogPage.razor.css (::deep). */

.ss-strategy-badges > span.phase[b-u2rso5a7lu] {
    border-color: var(--fn-primary);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
    letter-spacing: .2px;
}

.ss-src-line[b-u2rso5a7lu] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 9px 6px;
    padding: 5px 8px;
    border-radius: 7px;
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 8.5px;
    min-width: 0;
}

.ss-src-line > span[b-u2rso5a7lu] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ss-src-line[b-u2rso5a7lu]  .fn-icon { width: 13px; height: 13px; flex: 0 0 auto; }
.ss-src-line.ok[b-u2rso5a7lu] { color: var(--fn-success); }
.ss-src-line.warn[b-u2rso5a7lu] { color: var(--fn-warning); }
.ss-src-line.bad[b-u2rso5a7lu] { color: var(--fn-danger); }

.ss-card-actions[b-u2rso5a7lu]  .fn-help-link { align-self: center; }
/* /Components/StrategyStudio/StrategyStudioCatalogPage.razor.rz.scp.css */
/* ::deep ist ab dem 10.08.2026 Pflicht fuer die Kachel-Regeln: Die Laufzeit-Kachel liegt in
   StrategyStudioAttemptTile und traegt damit DEREN Scope-Kennung, nicht die dieser Seite. Ohne
   ::deep greift keine einzige dieser Regeln mehr - die Kachel wuerde unformatiert rendern, ohne
   Compilerfehler und ohne Testausschlag. Fuer die noch eingebettete Gruppen-Kachel gilt dasselbe
   Selektorergebnis, weil sie denselben von der Seite gehaltenen Vorfahren hat. */

.ss-board-page[b-tsukm7yihu] {
    min-height: calc(100vh - 82px);
    overflow: hidden;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg);
    background: var(--fn-bg);
    color: var(--fn-text);
    font-family: var(--fn-font);
    font-size: 12.5px;
}

.ss-board-page *[b-tsukm7yihu],
.ss-board-page *[b-tsukm7yihu]::before,
.ss-board-page *[b-tsukm7yihu]::after {
    box-sizing: border-box;
}

.ss-board-nav[b-tsukm7yihu] {
    display: flex;
    min-height: 42px;
    align-items: stretch;
    gap: 2px;
    padding: 0 10px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-alt);
}

.ss-board-nav > span[b-tsukm7yihu],
.ss-sideboard-tabs > span[b-tsukm7yihu] {
    display: flex;
    position: relative;
}

.ss-board-nav > span.active[b-tsukm7yihu]::after,
.ss-sideboard-tabs > span.active[b-tsukm7yihu]::after {
    position: absolute;
    right: 5px;
    bottom: 0;
    left: 5px;
    height: 2px;
    background: var(--fn-primary);
    content: "";
}

.ss-board-nav[b-tsukm7yihu]  .ss-board-nav-button {
    min-height: 41px;
    padding: 0 10px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--fn-text-secondary);
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-medium);
}

.ss-board-nav[b-tsukm7yihu]  .ss-board-nav-button:hover,
.ss-board-nav > span.active[b-tsukm7yihu]  .ss-board-nav-button {
    background: transparent;
    color: var(--fn-primary);
}

.ss-board-stage[b-tsukm7yihu] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 332px;
    min-height: calc(100vh - 125px);
    transition: grid-template-columns .16s ease;
}

.sideboard-closed .ss-board-stage[b-tsukm7yihu] {
    grid-template-columns: minmax(0, 1fr) 42px;
}

.ss-paper-runtime-detail-header[b-tsukm7yihu] {
    padding: 10px 10px 0;
}

.ss-board-columns[b-tsukm7yihu] {
    display: grid;
    min-width: 0;
    grid-template-columns: repeat(3, minmax(270px, 1fr));
    gap: 10px;
    padding: 10px;
    overflow-x: auto;
}

.ss-board-lane[b-tsukm7yihu] {
    display: flex;
    min-width: 0;
    min-height: 610px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg);
    flex-direction: column;
    overflow: hidden;
}

.ss-lane-header[b-tsukm7yihu] {
    display: flex;
    min-height: 40px;
    align-items: center;
    gap: 8px;
    padding: 0 10px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-alt);
    color: var(--fn-text);
    font-size: 10.5px;
    letter-spacing: .35px;
    text-transform: uppercase;
}

.ss-lane-mark[b-tsukm7yihu] {
    width: 3px;
    height: 18px;
    border-radius: var(--fn-radius-pill);
    background: var(--fn-primary);
}

.ss-board-lane.running .ss-lane-mark[b-tsukm7yihu] {
    background: var(--fn-success);
}

.ss-board-lane.review .ss-lane-mark[b-tsukm7yihu] {
    background: var(--fn-warning);
}

.ss-lane-count[b-tsukm7yihu] {
    display: grid;
    min-width: 24px;
    height: 20px;
    margin-left: auto;
    padding: 0 7px;
    place-items: center;
    border-radius: var(--fn-radius-pill);
    background: var(--fn-surface-alt);
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 10px;
}

.ss-lane-cards[b-tsukm7yihu] {
    display: flex;
    min-height: 0;
    padding: 8px;
    flex: 1;
    flex-direction: column;
    gap: 8px;
    overflow-y: auto;
}

.ss-lane-empty[b-tsukm7yihu] {
    display: grid;
    min-height: 92px;
    padding: 14px;
    place-items: center;
    border: 1px dashed var(--fn-border);
    border-radius: var(--fn-radius-sm);
    color: var(--fn-text-tertiary);
    font-size: 11px;
    line-height: 1.45;
    text-align: center;
}

/* Rahmen, Hintergrund, Radius, Zeiger, Uebergang und Fokus liegen seit dem 10.08.2026 in
   FnStudioTile — hier steht nur noch, was DIESE Kachel zusaetzlich braucht. Doppelt gefuehrte
   Rahmenregeln haetten sich bei gleicher Spezifitaet gegenseitig ueberschrieben, und welche
   gewinnt, haette allein die Reihenfolge der Stylesheets entschieden.

   Die Kante codiert hier den ZUSTAND, nicht die Art des Inhalts. FnStudioTile reserviert seine
   Accent-Kante ausdruecklich fuer die Art — deshalb bleibt Accent auf None und der Zustand kommt
   ueber diese Klassen. Bewusste Abweichung, zur Abnahme vorgelegt. */
[b-tsukm7yihu] .ss-strategy-card {
    border-left: 3px solid var(--fn-warning);
    border-radius: var(--fn-radius-sm);
}

[b-tsukm7yihu] .ss-strategy-card.prepared {
    border-left-color: var(--fn-primary);
}

[b-tsukm7yihu] .ss-strategy-card.runtime {
    border-left-color: var(--fn-success);
}

[b-tsukm7yihu] .ss-strategy-card.runtime.paused {
    border-left-color: var(--fn-warning);
}

[b-tsukm7yihu] .ss-strategy-card.runtime.faulted {
    border-left-color: var(--fn-danger);
}

[b-tsukm7yihu] .ss-strategy-card.ss-current-card {
    border-color: var(--fn-primary);
    box-shadow: var(--fn-focus-ring);
}

[b-tsukm7yihu] .ss-strategy-card.pinned {
    border-top-color: var(--fn-accent-line);
}

[b-tsukm7yihu] .ss-strategy-head {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
    padding: 9px 9px 6px;
}

[b-tsukm7yihu] .ss-card-identity-slot {
    display: flex;
    min-width: 0;
    flex: 1;
}

[b-tsukm7yihu] .ss-card-identity-slot .ss-card-identity-control {
    display: flex;
    width: 100%;
    min-width: 0;
    height: auto;
    min-height: 30px;
    justify-content: flex-start;
    gap: 8px;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
}

[b-tsukm7yihu] .ss-card-identity-slot .ss-card-identity-control:hover {
    background: transparent;
}

[b-tsukm7yihu] .ss-strategy-avatar {
    display: grid;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    place-items: center;
    border-radius: 8px;
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
    font-family: var(--fn-font-mono);
    font-size: 9px;
    font-weight: var(--fn-font-weight-bold);
}

[b-tsukm7yihu] .ss-strategy-identity {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 2px;
}

[b-tsukm7yihu] .ss-strategy-family {
    width: max-content;
    max-width: 100%;
    overflow: hidden;
    padding: 2px 6px;
    border-radius: var(--fn-radius-pill);
    background: var(--fn-cat-purple-soft);
    color: var(--fn-cat-purple);
    font-family: var(--fn-font-mono);
    font-size: 8px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .45px;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

[b-tsukm7yihu] .ss-strategy-identity strong {
    overflow: hidden;
    color: var(--fn-text);
    font-size: 12.5px;
    font-weight: var(--fn-font-weight-bold);
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-tsukm7yihu] .ss-strategy-identity small {
    overflow: hidden;
    color: var(--fn-text-tertiary);
    font-family: var(--fn-font-mono);
    font-size: 9.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-tsukm7yihu] .ss-card-actions {
    display: flex;
    flex: 0 0 auto;
    gap: 3px;
}

[b-tsukm7yihu] .ss-card-actions .ss-square-action,
.ss-sideboard-head[b-tsukm7yihu]  .ss-square-action {
    display: grid;
    width: 26px;
    min-width: 26px;
    height: 26px;
    min-height: 26px;
    padding: 0;
    place-items: center;
    border: 1px solid var(--fn-border);
    border-radius: 7px;
    background: var(--fn-input-bg);
    color: var(--fn-text-secondary);
}

[b-tsukm7yihu] .ss-card-actions .ss-square-action:hover,
.ss-sideboard-head[b-tsukm7yihu]  .ss-square-action:hover {
    color: var(--fn-primary);
}

[b-tsukm7yihu] .ss-card-actions .fn-icon,
.ss-sideboard-head[b-tsukm7yihu]  .fn-icon {
    width: 13px;
    height: 13px;
}

.ss-strategy-badges[b-tsukm7yihu],
.ss-sideboard-badges[b-tsukm7yihu] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    padding: 0 9px 7px;
}

[b-tsukm7yihu] .ss-strategy-badges > span,
.ss-sideboard-badges > span[b-tsukm7yihu] {
    display: inline-flex;
    min-height: 20px;
    align-items: center;
    padding: 0 7px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-pill);
    background: var(--fn-surface-alt);
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 8.5px;
    font-weight: var(--fn-font-weight-bold);
}

[b-tsukm7yihu] .ss-strategy-badges > span.automation,
.ss-sideboard-badges > span.automation[b-tsukm7yihu] {
    border-color: var(--fn-accent-line);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
}

[b-tsukm7yihu] .ss-strategy-badges > span.review,
.ss-sideboard-badges > span.review[b-tsukm7yihu] {
    border-color: var(--fn-warning);
    background: var(--fn-warning-soft);
    color: var(--fn-warning);
}

[b-tsukm7yihu] .ss-strategy-badges > span.prepared,
.ss-sideboard-badges > span.prepared[b-tsukm7yihu] {
    border-color: var(--fn-primary);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
}

[b-tsukm7yihu] .ss-strategy-badges > span.running {
    border-color: var(--fn-success);
    background: var(--fn-success-soft);
    color: var(--fn-success);
}

[b-tsukm7yihu] .ss-strategy-badges > span.paused {
    border-color: var(--fn-warning);
    background: var(--fn-warning-soft);
    color: var(--fn-warning);
}

[b-tsukm7yihu] .ss-strategy-badges > span.faulted {
    border-color: var(--fn-danger);
    background: var(--fn-danger-soft);
    color: var(--fn-danger);
}

[b-tsukm7yihu] .ss-market-chips {
    display: flex;
    min-height: 24px;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    padding: 0 9px 7px;
}

[b-tsukm7yihu] .ss-market-chips > span,
.root[b-tsukm7yihu] {
    display: inline-flex;
    min-width: 31px;
    min-height: 20px;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    border: 1px solid var(--fn-border-strong);
    border-radius: 7px;
    background: var(--fn-input-bg);
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 9px;
    font-weight: var(--fn-font-weight-bold);
}

[b-tsukm7yihu] .ss-market-chips > span.positive {
    color: var(--fn-success);
}

[b-tsukm7yihu] .ss-market-chips > span.warning {
    color: var(--fn-warning);
}

[b-tsukm7yihu] .ss-market-chips > span.negative {
    color: var(--fn-danger);
}

[b-tsukm7yihu] .ss-strategy-health {
    display: grid;
    margin: 0 9px;
    padding: 7px 8px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border: 1px solid var(--fn-border);
    border-radius: 8px;
    background: var(--fn-bg-muted);
}

[b-tsukm7yihu] .ss-strategy-health > div {
    min-width: 0;
    text-align: center;
}

[b-tsukm7yihu] .ss-strategy-health dt,
[b-tsukm7yihu] .ss-strategy-metrics dt,
.ss-side-facts dt[b-tsukm7yihu] {
    margin: 0;
    color: var(--fn-text-tertiary);
    font-size: 7.5px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .3px;
    text-transform: uppercase;
}

[b-tsukm7yihu] .ss-strategy-health dd {
    margin: 3px 0 0;
    overflow: hidden;
    color: var(--fn-text-secondary);
    font-size: 8.5px;
    font-weight: var(--fn-font-weight-bold);
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-tsukm7yihu] .ss-strategy-metrics {
    display: grid;
    margin: 0;
    padding: 8px 9px 7px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

[b-tsukm7yihu] .ss-strategy-metrics dd {
    margin: 3px 0 0;
    overflow: hidden;
    color: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-size: 10px;
    font-weight: var(--fn-font-weight-bold);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.positive[b-tsukm7yihu] {
    color: var(--fn-success) !important;
}

.warning[b-tsukm7yihu] {
    color: var(--fn-warning) !important;
}

.negative[b-tsukm7yihu] {
    color: var(--fn-danger) !important;
}

[b-tsukm7yihu] .ss-strategy-foot {
    display: flex;
    min-height: 38px;
    align-items: center;
    gap: 8px;
    padding: 6px 7px 6px 9px;
    border-top: 1px solid var(--fn-border);
    color: var(--fn-text-tertiary);
    font-size: 8.5px;
}

[b-tsukm7yihu] .ss-strategy-foot > span:first-child {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 1px;
}

[b-tsukm7yihu] .ss-strategy-foot strong {
    color: var(--fn-text-secondary);
    font-weight: var(--fn-font-weight-medium);
}

[b-tsukm7yihu] .ss-card-chart .ss-card-chart-action {
    min-height: 26px;
    padding: 0 8px;
    border-color: var(--fn-border);
    background: var(--fn-input-bg);
    color: var(--fn-text-secondary);
    font-size: 9px;
}

[b-tsukm7yihu] .ss-card-chart .fn-icon {
    width: 12px;
    height: 12px;
}

.ss-sideboard[b-tsukm7yihu] {
    position: relative;
    min-width: 0;
    border-left: 1px solid var(--fn-border);
    background: var(--fn-bg-alt);
    transition: width .16s ease;
}

.ss-sideboard-toggle[b-tsukm7yihu] {
    position: absolute;
    top: 12px;
    left: 6px;
    z-index: 3;
}

.ss-sideboard-rail[b-tsukm7yihu] {
    display: flex;
    height: 100%;
    align-items: center;
    gap: 12px;
    padding-top: 48px;
    color: var(--fn-text-secondary);
    flex-direction: column;
}

.ss-sideboard-rail[b-tsukm7yihu]  .fn-icon {
    width: 15px;
    height: 15px;
    color: var(--fn-primary);
}

.ss-sideboard-rail span[b-tsukm7yihu] {
    font-size: 9px;
    letter-spacing: .5px;
    text-transform: uppercase;
    writing-mode: vertical-rl;
}

.ss-sideboard-head[b-tsukm7yihu] {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    gap: 8px;
    padding: 14px 12px 7px 40px;
}

.ss-sideboard-head > div[b-tsukm7yihu] {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 3px;
}

.ss-sideboard-head strong[b-tsukm7yihu] {
    overflow: hidden;
    color: var(--fn-primary);
    font-size: 13px;
    font-weight: var(--fn-font-weight-bold);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ss-sideboard-head small[b-tsukm7yihu] {
    color: var(--fn-text-tertiary);
    font-family: var(--fn-font-mono);
    font-size: 9px;
}

.ss-sideboard-badges[b-tsukm7yihu] {
    padding: 0 12px 8px;
}

.ss-sideboard-tabs[b-tsukm7yihu] {
    display: flex;
    min-height: 38px;
    align-items: stretch;
    padding: 0 7px;
    border-bottom: 1px solid var(--fn-border);
    overflow-x: auto;
}

.ss-sideboard-tabs[b-tsukm7yihu]  .ss-sideboard-tab-action {
    min-height: 37px;
    padding: 0 7px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--fn-text-secondary);
    font-size: 9px;
}

.ss-sideboard-tabs > span.active[b-tsukm7yihu]  .ss-sideboard-tab-action {
    color: var(--fn-primary);
}

.ss-sideboard-body[b-tsukm7yihu] {
    display: flex;
    padding: 10px;
    flex-direction: column;
    gap: 9px;
}

.ss-side-section[b-tsukm7yihu],
.ss-side-list[b-tsukm7yihu],
.ss-side-empty[b-tsukm7yihu] {
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-alt);
    overflow: hidden;
}

.ss-side-section > header[b-tsukm7yihu],
.ss-side-list > header[b-tsukm7yihu] {
    display: flex;
    min-height: 33px;
    align-items: center;
    gap: 8px;
    padding: 0 9px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-muted);
    color: var(--fn-text-tertiary);
    font-size: 8px;
    letter-spacing: .3px;
    text-transform: uppercase;
}

.ss-side-section > header > span[b-tsukm7yihu],
.ss-side-list > header > span[b-tsukm7yihu] {
    margin-left: auto;
}

.ss-side-section > header > span.review[b-tsukm7yihu] {
    color: var(--fn-warning);
}

.ss-side-section > header > span.prepared[b-tsukm7yihu] {
    color: var(--fn-primary);
}

.ss-side-facts[b-tsukm7yihu] {
    display: grid;
    margin: 0;
    padding: 9px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 8px;
}

.ss-side-facts dd[b-tsukm7yihu] {
    margin: 3px 0 0;
    overflow: hidden;
    color: var(--fn-text);
    font-size: 10px;
    font-weight: var(--fn-font-weight-bold);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ss-truth-steps[b-tsukm7yihu] {
    display: flex;
    padding: 7px 9px;
    flex-direction: column;
}

.ss-truth-steps > div[b-tsukm7yihu] {
    display: grid;
    min-height: 37px;
    align-items: center;
    grid-template-columns: 20px minmax(0, 1fr) auto;
    gap: 7px;
    border-bottom: 1px solid var(--fn-border);
}

.ss-truth-steps > div:last-child[b-tsukm7yihu] {
    border-bottom: 0;
}

.ss-truth-steps .node[b-tsukm7yihu] {
    display: grid;
    width: 17px;
    height: 17px;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: var(--fn-radius-round);
}

.ss-truth-steps .node[b-tsukm7yihu]  .fn-icon {
    width: 10px;
    height: 10px;
}

.ss-truth-steps > div > span:nth-child(2)[b-tsukm7yihu] {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.ss-truth-steps strong[b-tsukm7yihu] {
    color: var(--fn-text-secondary);
    font-size: 9px;
    font-weight: var(--fn-font-weight-medium);
}

.ss-truth-steps small[b-tsukm7yihu],
.ss-truth-steps time[b-tsukm7yihu] {
    color: var(--fn-text-tertiary);
    font-size: 8px;
}

.ss-truth-steps time[b-tsukm7yihu] {
    font-family: var(--fn-font-mono);
}

.ss-safe-actions > div[b-tsukm7yihu] {
    display: grid;
    padding: 9px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.ss-safe-actions[b-tsukm7yihu]  .ss-safe-action {
    min-width: 0;
    min-height: 30px;
    justify-content: center;
    padding: 0 8px;
    font-size: 9px;
}

.ss-safe-actions[b-tsukm7yihu]  .fn-icon {
    width: 12px;
    height: 12px;
}

.ss-safe-actions p[b-tsukm7yihu] {
    margin: 0;
    padding: 0 9px 9px;
    color: var(--fn-text-tertiary);
    font-size: 8px;
    line-height: 1.45;
}

.ss-side-empty[b-tsukm7yihu] {
    display: flex;
    min-height: 180px;
    align-items: center;
    justify-content: center;
    padding: 22px;
    color: var(--fn-text-secondary);
    flex-direction: column;
    gap: 7px;
    line-height: 1.45;
    text-align: center;
}

.ss-side-empty[b-tsukm7yihu]  .fn-icon {
    width: 25px;
    height: 25px;
    color: var(--fn-primary);
}

.ss-side-empty strong[b-tsukm7yihu] {
    color: var(--fn-text);
    font-size: 11px;
}

.ss-journal-rows[b-tsukm7yihu],
.ss-version-rows[b-tsukm7yihu] {
    display: flex;
    flex-direction: column;
}

.ss-journal-rows > div[b-tsukm7yihu],
.ss-version-rows > div[b-tsukm7yihu] {
    display: grid;
    min-height: 43px;
    align-items: center;
    padding: 5px 8px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 7px;
    border-bottom: 1px solid var(--fn-border);
}

.ss-journal-rows > div:last-child[b-tsukm7yihu],
.ss-version-rows > div:last-child[b-tsukm7yihu] {
    border-bottom: 0;
}

.ss-journal-rows span:nth-child(2)[b-tsukm7yihu],
.ss-version-rows span:nth-child(2)[b-tsukm7yihu] {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.ss-journal-rows strong[b-tsukm7yihu],
.ss-version-rows strong[b-tsukm7yihu] {
    color: var(--fn-text-secondary);
    font-size: 9px;
    font-weight: var(--fn-font-weight-medium);
}

.ss-journal-rows small[b-tsukm7yihu],
.ss-version-rows small[b-tsukm7yihu] {
    color: var(--fn-text-tertiary);
    font-size: 8px;
}

.ss-journal-rows b[b-tsukm7yihu],
.ss-version-rows b[b-tsukm7yihu] {
    max-width: 104px;
    overflow: hidden;
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 8.5px;
    font-weight: var(--fn-font-weight-medium);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ss-board-loading[b-tsukm7yihu],
.ss-board-empty-page[b-tsukm7yihu] {
    display: flex;
    min-height: 520px;
    align-items: center;
    justify-content: center;
    padding: 20px;
    color: var(--fn-text-secondary);
    flex-direction: column;
    gap: 9px;
    text-align: center;
}

.ss-board-empty-page[b-tsukm7yihu]  .fn-icon {
    width: 30px;
    height: 30px;
    color: var(--fn-primary);
}

@media (max-width: 1240px) {
    .ss-board-stage[b-tsukm7yihu],
    .sideboard-closed .ss-board-stage[b-tsukm7yihu] {
        grid-template-columns: minmax(0, 1fr);
    }

    .ss-board-columns[b-tsukm7yihu] {
        grid-template-columns: repeat(3, minmax(300px, 1fr));
    }

    .ss-sideboard[b-tsukm7yihu] {
        min-height: 420px;
        border-top: 1px solid var(--fn-border);
        border-left: 0;
    }

    .ss-sideboard.closed[b-tsukm7yihu] {
        min-height: 42px;
    }

    .ss-sideboard-toggle[b-tsukm7yihu] {
        top: 6px;
        right: 6px;
        left: auto;
    }

    .ss-sideboard-head[b-tsukm7yihu] {
        padding: 14px 40px 7px 12px;
    }

    .ss-sideboard-rail[b-tsukm7yihu] {
        height: 42px;
        padding: 0 40px 0 14px;
        flex-direction: row;
    }

    .ss-sideboard-rail span[b-tsukm7yihu] {
        writing-mode: initial;
    }
}

@media (max-width: 850px) {
    .ss-board-page[b-tsukm7yihu] {
        border-radius: 0;
    }

    .ss-board-nav[b-tsukm7yihu] {
        overflow-x: auto;
    }

    .ss-board-columns[b-tsukm7yihu] {
        grid-template-columns: 1fr;
    }

    .ss-board-lane[b-tsukm7yihu] {
        min-height: 260px;
    }

    .ss-side-facts[b-tsukm7yihu],
    .ss-safe-actions > div[b-tsukm7yihu] {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ss-board-stage[b-tsukm7yihu],
    .ss-strategy-card[b-tsukm7yihu],
    .ss-sideboard[b-tsukm7yihu] {
        transition: none;
    }
}
/* /Components/StrategyStudio/StrategyStudioEvaluationPage.razor.rz.scp.css */
.ss-page[b-oe8fwq3es7] {
    min-height: 100%;
    overflow: hidden;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg);
    background: var(--fn-bg);
    color: var(--fn-text);
    font-size: 13px;
}

.ss-page *[b-oe8fwq3es7],
.ss-page *[b-oe8fwq3es7]::before,
.ss-page *[b-oe8fwq3es7]::after {
    box-sizing: border-box;
}

.ss-top[b-oe8fwq3es7] {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding: 9px 16px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-alt);
}

.ss-crumb[b-oe8fwq3es7] {
    color: var(--fn-text-secondary);
}

.ss-crumb b[b-oe8fwq3es7] {
    color: var(--fn-text);
}

.ss-spacer[b-oe8fwq3es7] {
    flex: 1;
}

.ss-run-state[b-oe8fwq3es7] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--fn-success);
    font-weight: var(--fn-font-weight-medium);
    white-space: nowrap;
}

.ss-run-dot[b-oe8fwq3es7] {
    width: 7px;
    height: 7px;
    border-radius: var(--fn-radius-round);
    background: var(--fn-success);
    box-shadow: 0 0 0 3px var(--fn-success-soft);
}

.ss-body[b-oe8fwq3es7] {
    padding: 14px 16px 16px;
}

.ss-title[b-oe8fwq3es7] {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 2px;
}

.ss-title[b-oe8fwq3es7]  i {
    width: 17px;
    height: 17px;
    color: var(--fn-primary);
}

.ss-title h1[b-oe8fwq3es7] {
    margin: 0;
    color: var(--fn-text);
    font-size: 20px;
    font-weight: var(--fn-font-weight-bold);
}

.ss-lead[b-oe8fwq3es7] {
    margin: 0 0 13px 30px;
    color: var(--fn-text-secondary);
}

.ss-toolbar[b-oe8fwq3es7] {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    margin-bottom: 12px;
}

.ss-toolbar-status[b-oe8fwq3es7] {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    color: var(--fn-text-secondary);
    font-size: 11.5px;
}

.ss-toolbar-status[b-oe8fwq3es7]  i {
    width: 15px;
    height: 15px;
    color: var(--fn-success);
}

.ss-toolbar-status strong[b-oe8fwq3es7] {
    color: var(--fn-text);
    font-weight: var(--fn-font-weight-medium);
}

.ss-toolbar-controls[b-oe8fwq3es7] {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    margin-left: auto;
}

.ss-control[b-oe8fwq3es7] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ss-control > span[b-oe8fwq3es7] {
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
    font-weight: var(--fn-font-weight-medium);
    letter-spacing: .3px;
    text-transform: uppercase;
}

.ss-control select[b-oe8fwq3es7] {
    width: 250px;
    height: 34px;
    min-height: 30px;
    max-height: 38px;
    padding: 0 31px 0 11px;
    border: var(--fn-border-width) solid var(--fn-input-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-input-bg);
    color: var(--fn-text);
    font-size: 12.5px;
}

.ss-control-compact select[b-oe8fwq3es7] {
    width: 152px;
}

.ss-control select:focus-visible[b-oe8fwq3es7] {
    outline: none;
    box-shadow: var(--fn-focus-ring);
}

.ss-control select:disabled[b-oe8fwq3es7] {
    color: var(--fn-text-secondary);
    opacity: 1;
}

.ss-stage[b-oe8fwq3es7] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 14px;
    min-height: 595px;
}

.ss-workspace[b-oe8fwq3es7] {
    min-width: 0;
}

.ss-metrics[b-oe8fwq3es7] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 12px;
}

.ss-robustness[b-oe8fwq3es7] {
    display: grid;
    gap: 12px;
}

.ss-robust-metrics[b-oe8fwq3es7] {
    margin-bottom: 0;
}

.ss-robust-facts[b-oe8fwq3es7] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0;
}

.ss-metric[b-oe8fwq3es7] {
    min-width: 0;
    padding: 12px 13px;
    border: 1px solid var(--fn-border);
    border-left: 3px solid var(--fn-primary);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
}

.ss-metric.positive[b-oe8fwq3es7] {
    border-left-color: var(--fn-success);
}

.ss-metric.negative[b-oe8fwq3es7] {
    border-left-color: var(--fn-danger);
}

.ss-metric > span[b-oe8fwq3es7] {
    color: var(--fn-text-tertiary);
    font-size: 10px;
    font-weight: var(--fn-font-weight-medium);
    text-transform: uppercase;
    letter-spacing: .35px;
}

.ss-metric strong[b-oe8fwq3es7] {
    display: block;
    margin-top: 5px;
    overflow: hidden;
    color: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-size: 20px;
    font-weight: var(--fn-font-weight-bold);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ss-metric strong.positive[b-oe8fwq3es7],
.positive[b-oe8fwq3es7] {
    color: var(--fn-success);
}

.ss-metric strong.negative[b-oe8fwq3es7],
.negative[b-oe8fwq3es7] {
    color: var(--fn-danger);
}

.ss-metric small[b-oe8fwq3es7] {
    display: block;
    margin-top: 2px;
    overflow: hidden;
    color: var(--fn-text-secondary);
    font-size: 10.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ss-result[b-oe8fwq3es7] {
    overflow: hidden;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg);
    background: var(--fn-bg-muted);
}

.ss-integrity-warning[b-oe8fwq3es7] {
    padding: 10px 14px;
    border-bottom: 1px solid var(--fn-warning);
    color: var(--fn-warning);
    background: var(--fn-warning-soft);
    font-size: 11px;
    font-weight: var(--fn-font-weight-semibold);
    line-height: 1.45;
}

.ss-tabs[b-oe8fwq3es7] {
    display: flex;
    gap: 2px;
    padding: 0 12px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-muted);
}

.ss-tabs[b-oe8fwq3es7]  .fn-tab {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 42px;
    padding: 0 13px;
    border: 0;
    border-bottom: 2px solid transparent;
    background: transparent;
    color: var(--fn-text-secondary);
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-bold);
    cursor: pointer;
}

.ss-tabs[b-oe8fwq3es7]  .fn-tab i {
    width: 14px;
    height: 14px;
}

.ss-tabs[b-oe8fwq3es7]  .fn-tab:hover {
    color: var(--fn-text);
}

.ss-tabs[b-oe8fwq3es7]  .fn-tab:focus-visible {
    outline: none;
    box-shadow: var(--fn-focus-ring);
}

.ss-tabs[b-oe8fwq3es7]  .fn-tab.active {
    border-bottom-color: var(--fn-primary);
    color: var(--fn-primary);
}

.ss-tab-content[b-oe8fwq3es7] {
    min-height: 460px;
    padding: 13px;
}

.ss-chart-grid[b-oe8fwq3es7] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
}

.ss-card[b-oe8fwq3es7],
.ss-equity-card[b-oe8fwq3es7] {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
}

[b-oe8fwq3es7] .ss-card-head {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 45px;
    padding: 9px 12px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-muted);
}

[b-oe8fwq3es7] .ss-card-head i {
    width: 14px;
    height: 14px;
    color: var(--fn-primary);
}

[b-oe8fwq3es7] .ss-card-head > div {
    display: grid;
    flex: 1;
    min-width: 0;
}

[b-oe8fwq3es7] .ss-card-head strong {
    color: var(--fn-text);
    font-size: 11px;
    letter-spacing: .45px;
    text-transform: uppercase;
}

[b-oe8fwq3es7] .ss-card-head span {
    overflow: hidden;
    color: var(--fn-text-tertiary);
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-oe8fwq3es7] .ss-card-head > b {
    font-family: var(--fn-font-mono);
    font-size: 12px;
    font-weight: var(--fn-font-weight-bold);
    white-space: nowrap;
}

[b-oe8fwq3es7] .ss-card-head > b.positive {
    color: var(--fn-success);
}

[b-oe8fwq3es7] .ss-card-head > b.negative {
    color: var(--fn-danger);
}

[b-oe8fwq3es7] .ss-chart-body {
    min-height: 174px;
    padding: 9px 11px 8px;
}

[b-oe8fwq3es7] .ss-chart-body svg {
    display: block;
    width: 100%;
    height: 165px;
}

.ss-donut circle[b-oe8fwq3es7] {
    fill: none;
    stroke-width: 18;
    transition: stroke-dasharray .2s ease, stroke-dashoffset .2s ease;
}

.ss-donut .track[b-oe8fwq3es7] {
    stroke: var(--fn-input-bg);
}

.ss-donut .win[b-oe8fwq3es7] {
    stroke: var(--fn-success);
}

.ss-donut .loss[b-oe8fwq3es7] {
    stroke: var(--fn-danger);
}

.ss-donut .flat[b-oe8fwq3es7] {
    stroke: var(--fn-text-tertiary);
}

.ss-donut text[b-oe8fwq3es7] {
    fill: var(--fn-text-secondary);
    font-family: var(--fn-font);
}

.ss-donut .center[b-oe8fwq3es7] {
    fill: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-size: 18px;
    font-weight: var(--fn-font-weight-bold);
}

.ss-donut .label[b-oe8fwq3es7] {
    font-size: 10px;
}

.ss-legend[b-oe8fwq3es7] {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 7px;
    margin-top: -4px;
    color: var(--fn-text-secondary);
    font-size: 10.5px;
}

.ss-legend-dot[b-oe8fwq3es7] {
    width: 7px;
    height: 7px;
    border-radius: var(--fn-radius-round);
}

.ss-legend-dot.win[b-oe8fwq3es7] {
    background: var(--fn-success);
}

.ss-legend-dot.loss[b-oe8fwq3es7] {
    margin-left: 9px;
    background: var(--fn-danger);
}

.ss-legend-dot.flat[b-oe8fwq3es7] {
    margin-left: 9px;
    background: var(--fn-text-tertiary);
}

[b-oe8fwq3es7] .ss-bars text {
    fill: var(--fn-text-secondary);
    font-family: var(--fn-font);
    font-size: 10px;
}

[b-oe8fwq3es7] .ss-bars text.value {
    fill: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-weight: var(--fn-font-weight-bold);
}

[b-oe8fwq3es7] .ss-bars rect.track {
    fill: var(--fn-input-bg);
}

[b-oe8fwq3es7] .ss-bars rect.bar {
    fill: var(--fn-primary);
}

[b-oe8fwq3es7] .ss-bars.positive rect.bar {
    fill: var(--fn-success);
}

[b-oe8fwq3es7] .ss-bars.negative rect.bar {
    fill: var(--fn-danger);
}

.ss-equity-wrap[b-oe8fwq3es7] {
    padding: 12px;
}

.ss-equity[b-oe8fwq3es7] {
    display: block;
    width: 100%;
    height: 290px;
}

.ss-equity line.grid[b-oe8fwq3es7] {
    stroke: var(--fn-border);
    stroke-width: 1;
}

.ss-equity line.zero[b-oe8fwq3es7] {
    stroke: var(--fn-text-tertiary);
    stroke-width: 1;
}

.ss-equity polyline.line[b-oe8fwq3es7] {
    fill: none;
    stroke: var(--fn-primary);
    stroke-width: 2.3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ss-equity text[b-oe8fwq3es7] {
    fill: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 10px;
}

.ss-evidence-grid[b-oe8fwq3es7] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 11px;
}

.ss-evidence-grid[b-oe8fwq3es7]  .ss-evidence-item {
    padding: 11px 12px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-input-bg);
}

.ss-evidence-grid[b-oe8fwq3es7]  .ss-evidence-item span {
    color: var(--fn-text-tertiary);
    font-size: 9.5px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .4px;
    text-transform: uppercase;
}

.ss-evidence-grid[b-oe8fwq3es7]  .ss-evidence-item strong {
    display: block;
    margin-top: 3px;
    color: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-size: 11px;
    font-weight: var(--fn-font-weight-regular);
}

.ss-journal-wrap[b-oe8fwq3es7] {
    max-height: 460px;
    overflow: auto;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
}

.ss-journal[b-oe8fwq3es7] {
    width: 100%;
    border-collapse: collapse;
    min-width: 880px;
    background: var(--fn-bg-alt);
}

.ss-journal th[b-oe8fwq3es7],
.ss-journal td[b-oe8fwq3es7] {
    padding: 10px 11px;
    border-bottom: 1px solid var(--fn-border);
    text-align: left;
    white-space: nowrap;
}

.ss-journal th[b-oe8fwq3es7] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
    font-size: 10px;
    text-transform: uppercase;
}

.ss-journal td[b-oe8fwq3es7] {
    color: var(--fn-text);
    font-size: 11.5px;
}

.ss-journal .number[b-oe8fwq3es7] {
    text-align: right;
}

.ss-journal .mono[b-oe8fwq3es7] {
    font-family: var(--fn-font-mono);
}

.ss-chart-placeholder[b-oe8fwq3es7],
.ss-empty[b-oe8fwq3es7] {
    display: flex;
    min-height: 360px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 9px;
    color: var(--fn-text-secondary);
    text-align: center;
}

.ss-chart-placeholder[b-oe8fwq3es7]  i,
.ss-empty[b-oe8fwq3es7]  i {
    width: 32px;
    height: 32px;
    color: var(--fn-primary);
}

.ss-chart-placeholder strong[b-oe8fwq3es7],
.ss-empty strong[b-oe8fwq3es7] {
    color: var(--fn-text);
    font-size: 15px;
}

.ss-actions[b-oe8fwq3es7] {
    display: flex;
    gap: 8px;
    margin-top: 6px;
}

.ss-chart-trades[b-oe8fwq3es7] {
    display: grid;
    gap: 11px;
}

.ss-chart-panel[b-oe8fwq3es7] {
    min-height: 460px;
    overflow: hidden;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
}

.ss-chart-summary[b-oe8fwq3es7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-input-bg);
    color: var(--fn-text-secondary);
}

.ss-side[b-oe8fwq3es7] {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg);
    background: var(--fn-bg-muted);
}

.ss-identity[b-oe8fwq3es7] {
    padding: 15px 17px 13px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-alt);
}

.ss-state[b-oe8fwq3es7] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    padding: 5px 11px;
    border: 1px solid var(--fn-warning);
    border-radius: var(--fn-radius-pill);
    color: var(--fn-warning);
    background: var(--fn-warning-soft);
    font-size: 11px;
    font-weight: var(--fn-font-weight-bold);
}

.ss-state[b-oe8fwq3es7]  i {
    width: 12px;
    height: 12px;
}

.ss-state.done[b-oe8fwq3es7] {
    border-color: var(--fn-success);
    color: var(--fn-success);
}

.ss-state.danger[b-oe8fwq3es7] {
    border-color: var(--fn-danger);
    color: var(--fn-danger);
}

.ss-symbol-row[b-oe8fwq3es7] {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.ss-symbol-row strong[b-oe8fwq3es7] {
    color: var(--fn-primary);
    font-family: var(--fn-font-mono);
    font-size: 18px;
}

.ss-symbol-row span[b-oe8fwq3es7] {
    color: var(--fn-text-secondary);
    font-weight: var(--fn-font-weight-medium);
}

.ss-side-meta[b-oe8fwq3es7] {
    margin-top: 2px;
    color: var(--fn-text-tertiary);
    font-family: var(--fn-font-mono);
    font-size: 10px;
}

.ss-side-block[b-oe8fwq3es7] {
    padding: 13px 16px;
    border-bottom: 1px solid var(--fn-border);
}

.ss-side-block:last-child[b-oe8fwq3es7] {
    border-bottom: 0;
}

.ss-side-block h2[b-oe8fwq3es7] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 10px;
    color: var(--fn-text-secondary);
    font-size: 10.5px;
    font-weight: var(--fn-font-weight-bold);
    text-transform: uppercase;
    letter-spacing: .45px;
}

.ss-side-block h2[b-oe8fwq3es7]  i {
    width: 14px;
    height: 14px;
    color: var(--fn-primary);
}

.ss-side-block h2 > span[b-oe8fwq3es7] {
    margin-left: auto;
    padding: 2px 8px;
    border: 0;
    border-radius: var(--fn-radius-pill);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
    font-family: var(--fn-font-mono);
    font-size: 9px;
    font-weight: var(--fn-font-weight-bold);
}

.ss-proof-ladder[b-oe8fwq3es7] {
    display: flex;
    align-items: flex-start;
}

.ss-proof-ladder[b-oe8fwq3es7]  .ss-proof-step {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    min-width: 0;
    color: var(--fn-text-secondary);
    font-size: 9.5px;
    text-align: center;
}

.ss-proof-ladder[b-oe8fwq3es7]  .ss-proof-node {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 2px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-round);
    color: var(--fn-text-tertiary);
    background: var(--fn-input-bg);
}

.ss-proof-ladder[b-oe8fwq3es7]  .ss-proof-node.active {
    border-color: var(--fn-warning);
    color: var(--fn-warning);
    background: var(--fn-warning-soft);
}

.ss-proof-ladder[b-oe8fwq3es7]  .ss-proof-node.done {
    border-color: var(--fn-success);
    color: var(--fn-success);
    background: var(--fn-success-soft);
}

.ss-proof-ladder[b-oe8fwq3es7]  .ss-proof-node.danger {
    border-color: var(--fn-danger);
    color: var(--fn-danger);
    background: var(--fn-danger-soft);
}

.ss-proof-ladder[b-oe8fwq3es7]  .ss-proof-node i {
    width: 14px;
    height: 14px;
}

.ss-proof-line[b-oe8fwq3es7] {
    flex: 1;
    height: 2px;
    margin-top: 16px;
    background: var(--fn-success);
}

.ss-proof-line.open[b-oe8fwq3es7] {
    background: var(--fn-border-strong);
}

.ss-facts[b-oe8fwq3es7] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
}

.ss-facts[b-oe8fwq3es7]  > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.ss-facts[b-oe8fwq3es7]  dt {
    color: var(--fn-text-secondary);
    font-size: 10.5px;
}

.ss-facts[b-oe8fwq3es7]  dd {
    margin: 0;
    color: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-size: 10.5px;
    font-weight: var(--fn-font-weight-medium);
    text-align: right;
}

.ss-note[b-oe8fwq3es7] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 11px;
    line-height: 1.5;
}

.ss-note strong[b-oe8fwq3es7] {
    color: var(--fn-text);
    font-weight: var(--fn-font-weight-medium);
}

.ss-exports[b-oe8fwq3es7] {
    display: flex;
    gap: 7px;
}

.ss-foot[b-oe8fwq3es7] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
}

.ss-foot[b-oe8fwq3es7]  i {
    width: 13px;
    height: 13px;
    color: inherit;
}

@media (max-width: 1180px) {
    .ss-stage[b-oe8fwq3es7] {
        grid-template-columns: 1fr;
    }

    .ss-side[b-oe8fwq3es7] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ss-identity[b-oe8fwq3es7] {
        grid-column: 1 / -1;
    }

    .ss-side-block[b-oe8fwq3es7] {
        border-right: 1px solid var(--fn-border);
    }
}

@media (max-width: 860px) {
    .ss-toolbar[b-oe8fwq3es7] {
        align-items: stretch;
        flex-direction: column;
    }

    .ss-toolbar-controls[b-oe8fwq3es7] {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
    }

    .ss-control[b-oe8fwq3es7],
    .ss-control-compact[b-oe8fwq3es7] {
        width: 100%;
        min-width: 0;
    }

    .ss-metrics[b-oe8fwq3es7],
    .ss-chart-grid[b-oe8fwq3es7],
    .ss-evidence-grid[b-oe8fwq3es7] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ss-tabs[b-oe8fwq3es7] {
        overflow-x: auto;
    }

    .ss-tabs[b-oe8fwq3es7]  .fn-tab {
        white-space: nowrap;
    }
}

@media (max-width: 600px) {
    .ss-page[b-oe8fwq3es7] {
        border-radius: 0;
    }

    .ss-top[b-oe8fwq3es7] {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .ss-run-state[b-oe8fwq3es7] {
        width: 100%;
    }

    .ss-body[b-oe8fwq3es7] {
        padding: 12px 10px;
    }

    .ss-lead[b-oe8fwq3es7] {
        margin-left: 0;
    }

    .ss-actions[b-oe8fwq3es7] {
        align-items: stretch;
        flex-direction: column;
    }

    .ss-toolbar-controls[b-oe8fwq3es7],
    .ss-metrics[b-oe8fwq3es7],
    .ss-chart-grid[b-oe8fwq3es7],
    .ss-evidence-grid[b-oe8fwq3es7],
    .ss-side[b-oe8fwq3es7] {
        grid-template-columns: 1fr;
    }

    .ss-tabs[b-oe8fwq3es7] {
        overflow-x: auto;
    }

    .ss-tabs[b-oe8fwq3es7]  .fn-tab {
        flex: 0 0 auto;
    }

    .ss-tab-content[b-oe8fwq3es7] {
        min-height: 0;
        padding: 7px;
    }

    .ss-equity[b-oe8fwq3es7] {
        height: 220px;
    }

    .ss-side[b-oe8fwq3es7] {
        display: block;
    }

    .ss-identity[b-oe8fwq3es7],
    .ss-side-block[b-oe8fwq3es7] {
        border-right: 0;
    }

    .ss-chart-summary[b-oe8fwq3es7] {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ss-page *[b-oe8fwq3es7],
    .ss-page *[b-oe8fwq3es7]::before,
    .ss-page *[b-oe8fwq3es7]::after {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}
/* /Components/StrategyStudio/StrategyStudioZombieGroupTile.razor.rz.scp.css */
/* Zombie-Gruppe (Vorschau 1:1): warnfarbene Kante, leicht zurückgenommen; Stopp-Knopf rot. */

.ss-zombie-wrap[b-ucv7vhkvld] { display: contents; }

.ss-zombie-wrap[b-ucv7vhkvld]  .ss-strategy-card.zombie {
    border-left-color: var(--fn-warning);
    opacity: .85;
}

.ss-zombie-wrap[b-ucv7vhkvld]  .ss-strategy-card.zombie .ss-strategy-identity strong {
    color: var(--fn-text-secondary);
}

.ss-zombie-wrap[b-ucv7vhkvld]  .ss-zombie-stop { color: var(--fn-danger); }
.ss-zombie-wrap[b-ucv7vhkvld]  .ss-zombie-stop:hover { color: var(--fn-danger); background: var(--fn-danger-soft); }

.ss-src-line[b-ucv7vhkvld] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 9px 8px;
    padding: 5px 8px;
    border-radius: 7px;
    background: var(--fn-bg-muted);
    font-family: var(--fn-font-mono);
    font-size: 8.5px;
}

.ss-src-line.warn[b-ucv7vhkvld] { color: var(--fn-warning); }
.ss-src-line[b-ucv7vhkvld]  .fn-icon { width: 13px; height: 13px; flex: 0 0 auto; }
/* /Components/Watchlists/DeepTrendAnalysisRowStatus.razor.rz.scp.css */
.deep-trend-row[b-l0p8pqrfkr] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 10px;
    row-gap: 3px;
    margin-top: 6px;
    padding-top: 6px;
    border-top: var(--fn-border-width) solid var(--fn-border);
}

.deep-trend-row-label[b-l0p8pqrfkr] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    font-size: var(--fn-font-size-xs);
    color: var(--fn-text-secondary);
}

.deep-trend-row-label .fn-icon[b-l0p8pqrfkr] {
    width: 12px;
    height: 12px;
}

.deep-trend-row strong[b-l0p8pqrfkr] {
    font-family: var(--fn-font-mono);
    font-size: var(--fn-font-size-xs);
    font-weight: var(--fn-font-weight-bold);
    white-space: nowrap;
}

.deep-trend-row-active[b-l0p8pqrfkr] {
    color: var(--fn-primary);
}

.deep-trend-row-error[b-l0p8pqrfkr] {
    color: var(--fn-danger);
}

.deep-trend-row small[b-l0p8pqrfkr],
.deep-trend-row-progress[b-l0p8pqrfkr] {
    grid-column: 1 / -1;
}

.deep-trend-row small[b-l0p8pqrfkr] {
    color: var(--fn-text-tertiary);
    font-size: var(--fn-font-size-xs);
}

.deep-trend-row-progress[b-l0p8pqrfkr] {
    width: 100%;
    height: 4px;
    margin: 0;
    accent-color: var(--fn-primary);
}
/* /Components/Watchlists/DeepTrendAnalysisWatchlistControl.razor.rz.scp.css */
.deep-trend-policy[b-gz00l40agw] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    color: var(--fn-text-secondary);
    font-size: var(--fn-font-size-sm);
}

.deep-trend-policy input[b-gz00l40agw] {
    width: 16px;
    height: 16px;
    accent-color: var(--fn-primary);
}

.deep-trend-policy span[b-gz00l40agw] {
    color: var(--fn-text-tertiary);
}
/* /Components/Watchlists/DeepTrendAnalysisWatchlistSummary.razor.rz.scp.css */
/* 1:1 aus der abgenommenen Vorschau VORSCHAU-Deep-Analysis-Shared-Tiles.html (.preview-watch-summary,
   .preview-progress-heading, .preview-progress-foot). Bis 15.09.2026 stand hier var(--fn-font-size-sm) — ein
   Token, das tokens.css nicht definiert: die Schrift fiel dadurch auf die geerbte Groesse zurueck. */
.deep-trend-summary[b-uok2b01n0y] {
    padding: 9px 14px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
}

.deep-trend-summary-heading[b-uok2b01n0y],
.deep-trend-summary-detail[b-uok2b01n0y] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 11.5px;
}

.deep-trend-summary-heading[b-uok2b01n0y] {
    color: var(--fn-text);
}

.deep-trend-summary-heading strong[b-uok2b01n0y] {
    color: var(--fn-primary);
    font-family: var(--fn-font-mono);
    font-weight: var(--fn-font-weight-regular);
}

.deep-trend-summary progress[b-uok2b01n0y] {
    display: block;
    width: 100%;
    height: 6px;
    margin: 7px 0 0;
    border: 0;
    border-radius: var(--fn-radius-pill);
    overflow: hidden;
    background: var(--fn-border);
    accent-color: var(--fn-primary);
}

.deep-trend-summary progress[b-uok2b01n0y]::-webkit-progress-bar {
    background: var(--fn-border);
}

.deep-trend-summary progress[b-uok2b01n0y]::-webkit-progress-value {
    background: var(--fn-primary);
}

.deep-trend-summary progress[b-uok2b01n0y]::-moz-progress-bar {
    background: var(--fn-primary);
}

.deep-trend-summary-detail[b-uok2b01n0y] {
    margin-top: 5px;
    color: var(--fn-text-secondary);
    overflow-wrap: anywhere;
}
/* /Components/Watchlists/FnBasketDirectionBadge.razor.rz.scp.css */
/* Nur Tokens, kein Hex (Design-Vorgabe 1g). */
.dir[b-n6go5ee9kz] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: var(--fn-radius-pill);
    padding: 4px 11px;
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-bold);
    border: var(--fn-border-width) solid transparent;
    white-space: nowrap;
}

.dir-short[b-n6go5ee9kz] { background: var(--fn-danger-soft); color: var(--fn-danger); border-color: var(--fn-danger); }
.dir-long[b-n6go5ee9kz] { background: var(--fn-success-soft); color: var(--fn-success); border-color: var(--fn-success); }
.dir-mixed[b-n6go5ee9kz] { background: var(--fn-info-soft); color: var(--fn-info); border-color: var(--fn-info); }

.dir-label[b-n6go5ee9kz] { line-height: 1; }
/* /Components/Watchlists/WatchlistBasketNoteDialog.razor.rz.scp.css */
[b-iox58z9dit] .wl-basket-note-dialog-editor .ProseMirror {
    min-height: 280px;
}
/* /Components/Watchlists/WatchlistBasketPanel.razor.rz.scp.css */
/* Nur Tokens, kein Hex (Design-Vorgabe 1g). Aufbau wie der Kachel-Sektor im Chart-Studio. */
.basket[b-vvy7sulsq7] {
    background: var(--fn-bg-alt);
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-lg);
    overflow: hidden;
    display: grid;
}

.basket-head[b-vvy7sulsq7] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px 14px;
    background: var(--fn-bg-muted);
    border-bottom: var(--fn-border-width) solid var(--fn-border);
}

.basket-head h3[b-vvy7sulsq7] {
    margin: 0;
    font-size: 13px;
    font-weight: var(--fn-font-weight-bold);
    margin-right: auto;
}

.chip[b-vvy7sulsq7] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--fn-surface-alt);
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-pill);
    padding: 3px 10px;
    font-size: 11.5px;
    color: var(--fn-text-secondary);
}

.chip b[b-vvy7sulsq7] { color: var(--fn-text); font-weight: var(--fn-font-weight-medium); }

.basket-tiles[b-vvy7sulsq7] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--fn-space-3);
    padding: var(--fn-space-3);
}

.basket-tile[b-vvy7sulsq7] {
    min-width: 0;
    background: var(--fn-surface-alt);
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-md);
    overflow: hidden;
}

.basket-tile-head[b-vvy7sulsq7] {
    display: flex;
    align-items: center;
    gap: var(--fn-space-2);
    padding: var(--fn-space-3);
    background: var(--fn-bg-muted);
    border-bottom: var(--fn-border-width) solid var(--fn-border);
}

.basket-tile-head h4[b-vvy7sulsq7],
.basket-tile-head p[b-vvy7sulsq7] { margin: 0; }

.basket-tile-head h4[b-vvy7sulsq7] {
    color: var(--fn-text);
    font-size: var(--fn-font-size-sm);
}

.basket-tile-head p[b-vvy7sulsq7] {
    margin-top: 2px;
    color: var(--fn-text-tertiary);
    font-size: var(--fn-font-size-xs);
}

.basket-tile-grid[b-vvy7sulsq7],
.basket-periods[b-vvy7sulsq7] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.basket-tile .kv[b-vvy7sulsq7],
.basket-period[b-vvy7sulsq7] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 14px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
    border-right: var(--fn-border-width) solid var(--fn-border);
}

.basket-tile .k[b-vvy7sulsq7],
.basket-period .k[b-vvy7sulsq7] { color: var(--fn-text-secondary); font-size: 11.5px; }

.basket-tile .v[b-vvy7sulsq7],
.basket-period .v[b-vvy7sulsq7] {
    color: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-size: 12.5px;
    font-weight: var(--fn-font-weight-medium);
    text-align: right;
}

.basket-tile .v.pos[b-vvy7sulsq7],
.basket-period .v.pos[b-vvy7sulsq7] { color: var(--fn-success); }
.basket-tile .v.neg[b-vvy7sulsq7],
.basket-period .v.neg[b-vvy7sulsq7] { color: var(--fn-danger); }
.basket-tile .v.mut[b-vvy7sulsq7],
.basket-period .v.mut[b-vvy7sulsq7] { color: var(--fn-text-tertiary); }
.basket-tile .v.warn[b-vvy7sulsq7] { color: var(--fn-warning); }

.basket-empty[b-vvy7sulsq7] { margin: 0; padding: 14px; color: var(--fn-text-secondary); font-size: 12.5px; }

.basket-coverage[b-vvy7sulsq7] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    color: var(--fn-text-tertiary);
    font-size: 11px;
    background: var(--fn-bg-muted);
    border-top: var(--fn-border-width) solid var(--fn-border);
}

.basket-coverage b[b-vvy7sulsq7] { color: var(--fn-text-secondary); font-family: var(--fn-font-mono); }
.basket-coverage.gap b[b-vvy7sulsq7] { color: var(--fn-warning); }

.basket-note[b-vvy7sulsq7] {
    margin: 0;
    padding: 8px 14px;
    color: var(--fn-warning);
    font-size: 11.5px;
    background: var(--fn-warning-soft);
    border-top: var(--fn-border-width) solid var(--fn-border);
}

@media (max-width: 900px) {
    .basket-tiles[b-vvy7sulsq7] { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
    .basket-tile-grid[b-vvy7sulsq7],
    .basket-periods[b-vvy7sulsq7] { grid-template-columns: 1fr; }

    .basket-tile .kv[b-vvy7sulsq7],
    .basket-period[b-vvy7sulsq7] { border-right: 0; }
}


/* /Components/Watchlists/WatchlistBasketPanelContent.razor.rz.scp.css */
.basket-host[b-nqp8vxeop3] {
    min-width: 0;
}

.basket-host[b-nqp8vxeop3]  .basket-root.basket {
    margin-top: 0;
    border-radius: var(--fn-radius-lg);
    border-color: var(--fn-border);
    overflow: hidden;
}

.basket-host[b-nqp8vxeop3]  .basket-root-head {
    min-height: 58px;
    padding: 10px 14px;
}

.basket-host[b-nqp8vxeop3]  .basket-root-headrow {
    gap: 0;
    background: var(--fn-bg-muted);
}

.basket-host[b-nqp8vxeop3]  .basket-root-right {
    align-self: stretch;
    padding: 0 12px 0 6px;
    background: var(--fn-bg-muted);
}

.basket-header-action[b-nqp8vxeop3] {
    display: inline-grid;
    place-items: center;
    width: 24px;
    height: 24px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--fn-text-tertiary);
    font: inherit;
    cursor: pointer;
}

.basket-header-action:hover[b-nqp8vxeop3],
.basket-header-action:focus-visible[b-nqp8vxeop3],
.basket-note-action.has-note[b-nqp8vxeop3] {
    color: var(--fn-primary);
    background: var(--fn-accent-soft);
}

.basket-header-action:focus-visible[b-nqp8vxeop3] {
    outline: none;
    box-shadow: var(--fn-focus-ring);
}

.basket-header-action[b-nqp8vxeop3]  .fn-icon,
.basket-header-action[b-nqp8vxeop3]  svg {
    width: 16px;
    height: 16px;
}

.basket-host[b-nqp8vxeop3]  .basket-root-marker {
    width: 30px;
    height: 30px;
}

.basket-host[b-nqp8vxeop3]  .basket-root-title {
    font-size: 14px;
}

.basket-host[b-nqp8vxeop3]  .basket-root-body {
    padding: 12px;
}

.basket-meta[b-nqp8vxeop3] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
}

.basket-chip[b-nqp8vxeop3] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-pill);
    background: var(--fn-surface-alt);
    color: var(--fn-text-secondary);
    font-size: 11px;
    white-space: nowrap;
}

.basket-chip b[b-nqp8vxeop3] { color: var(--fn-text); }

.basket-empty[b-nqp8vxeop3],
.basket-note[b-nqp8vxeop3] {
    margin: 0 0 10px;
    padding: 9px 12px;
    border: var(--fn-border-width) solid var(--fn-warning);
    border-radius: var(--fn-radius-md);
    background: var(--fn-warning-soft);
    color: var(--fn-warning);
    font-size: 12px;
}

.basket-summary[b-nqp8vxeop3] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-md);
    background: var(--fn-surface-alt);
    overflow: hidden;
}

.basket-summary-item[b-nqp8vxeop3] {
    display: grid;
    gap: 3px;
    min-width: 0;
    padding: 11px 13px;
    border-right: var(--fn-border-width) solid var(--fn-border);
}

.basket-summary-item:last-child[b-nqp8vxeop3] { border-right: 0; }
.basket-summary-item span[b-nqp8vxeop3] { color: var(--fn-text-secondary); font-size: 11px; }
.basket-summary-item strong[b-nqp8vxeop3] { color: var(--fn-text); font: 700 17px var(--fn-font-mono); }
.basket-summary-item small[b-nqp8vxeop3] { color: var(--fn-text-tertiary); font-size: 10px; line-height: 1.35; }
.basket-summary-item.primary strong[b-nqp8vxeop3] { color: var(--fn-primary); }

.basket-tile[b-nqp8vxeop3] {
    min-width: 0;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-md);
    background: var(--fn-surface-alt);
    overflow: hidden;
}

.basket-direction-tile[b-nqp8vxeop3] { margin-top: 12px; }

.basket-tile-head[b-nqp8vxeop3] {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    min-height: 50px;
    padding: 9px 11px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
    background: var(--fn-bg-muted);
}

.basket-tile-head[b-nqp8vxeop3] >  .fn-icon,
.basket-tile-head[b-nqp8vxeop3] >  svg {
    width: 14px;
    height: 14px;
    color: var(--fn-primary);
}

.basket-tile-title[b-nqp8vxeop3] { min-width: 0; }
.basket-tile-title h2[b-nqp8vxeop3],
.basket-tile-title h3[b-nqp8vxeop3],
.basket-tile-title p[b-nqp8vxeop3] { margin: 0; }
.basket-tile-title h2[b-nqp8vxeop3],
.basket-tile-title h3[b-nqp8vxeop3] { color: var(--fn-text); font-size: 12.5px; line-height: 1.3; }
.basket-tile-title p[b-nqp8vxeop3] { margin-top: 2px; color: var(--fn-text-tertiary); font-size: 10.5px; line-height: 1.35; }

.basket-direction-body[b-nqp8vxeop3] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(220px, .7fr);
    gap: 10px;
    padding: 12px;
}

.basket-direction-side[b-nqp8vxeop3],
.basket-direction-result[b-nqp8vxeop3] {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 6px 10px;
    min-width: 0;
    padding: 10px 12px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-md);
    background: var(--fn-bg-alt);
}

.basket-direction-side span[b-nqp8vxeop3],
.basket-direction-result span[b-nqp8vxeop3] { color: var(--fn-text-secondary); font-size: 11px; }
.basket-direction-side strong[b-nqp8vxeop3],
.basket-direction-result strong[b-nqp8vxeop3] { color: var(--fn-text); font: 700 16px var(--fn-font-mono); }
.basket-direction-side small[b-nqp8vxeop3],
.basket-direction-result small[b-nqp8vxeop3] { grid-column: 1 / -1; color: var(--fn-text-tertiary); font-size: 10px; }
.basket-direction-track[b-nqp8vxeop3] { grid-column: 1 / -1; height: 6px; border-radius: var(--fn-radius-pill); background: var(--fn-bg-muted); }

.basket-groups[b-nqp8vxeop3] {
    display: grid;
    gap: 10px;
    margin-top: 10px;
}

.basket-groups[b-nqp8vxeop3]  .basket-group {
    margin-top: 0;
}

.basket-groups[b-nqp8vxeop3]  .basket-group-body {
    padding-top: 12px;
}

.basket-group-grid[b-nqp8vxeop3] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.basket-metrics[b-nqp8vxeop3],
.basket-method[b-nqp8vxeop3] { margin: 0; }
.basket-metrics > div[b-nqp8vxeop3],
.basket-method > div[b-nqp8vxeop3],
.basket-period[b-nqp8vxeop3] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    min-width: 0;
    padding: 9px 11px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
}
.basket-metrics > div:last-child[b-nqp8vxeop3] { border-bottom: 0; }
.basket-metrics dt[b-nqp8vxeop3],
.basket-method dt[b-nqp8vxeop3],
.basket-period span[b-nqp8vxeop3] { color: var(--fn-text-secondary); font-size: 11px; }
.basket-metrics dd[b-nqp8vxeop3],
.basket-method dd[b-nqp8vxeop3],
.basket-period strong[b-nqp8vxeop3] { margin: 0; color: var(--fn-text); font: 600 11.5px var(--fn-font-mono); text-align: right; }

.basket-periods[b-nqp8vxeop3],
.basket-method[b-nqp8vxeop3] { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.basket-period:nth-last-child(-n+2)[b-nqp8vxeop3],
.basket-method > div:nth-last-child(-n+2)[b-nqp8vxeop3] { border-bottom: 0; }
.basket-period:nth-child(odd)[b-nqp8vxeop3],
.basket-method > div:nth-child(odd)[b-nqp8vxeop3] { border-right: var(--fn-border-width) solid var(--fn-border); }

.basket-moves[b-nqp8vxeop3] { display: grid; }
.basket-moves > div[b-nqp8vxeop3] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 3px 10px;
    padding: 10px 11px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
}
.basket-moves > div:last-child[b-nqp8vxeop3] { border-bottom: 0; }
.basket-moves span[b-nqp8vxeop3] { grid-column: 1 / -1; color: var(--fn-text-secondary); font-size: 10.5px; }
.basket-moves b[b-nqp8vxeop3] { min-width: 0; color: var(--fn-text); font-size: 11.5px; overflow-wrap: anywhere; }
.basket-moves strong[b-nqp8vxeop3] { font: 600 11.5px var(--fn-font-mono); text-align: right; }

.basket-breadth[b-nqp8vxeop3] { display: grid; gap: 10px; padding: 11px; }
.basket-breadth-values[b-nqp8vxeop3] { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; font-size: 11px; }
.basket-breadth progress[b-nqp8vxeop3] { width: 100%; height: 7px; accent-color: var(--fn-success); }
.basket-breadth p[b-nqp8vxeop3] { margin: 0; color: var(--fn-text-secondary); font-size: 10.5px; }

.basket-coverage[b-nqp8vxeop3] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 10px;
    padding: 9px 12px;
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-md);
    background: var(--fn-bg-muted);
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
    line-height: 1.45;
}
.basket-coverage.gap[b-nqp8vxeop3] { border-color: var(--fn-warning); background: var(--fn-warning-soft); color: var(--fn-warning); }
.basket-coverage b[b-nqp8vxeop3] { color: var(--fn-text-secondary); }
.basket-note[b-nqp8vxeop3] { margin-top: 10px; margin-bottom: 0; }

.pos[b-nqp8vxeop3] { color: var(--fn-success) !important; }
.neg[b-nqp8vxeop3] { color: var(--fn-danger) !important; }
.warn[b-nqp8vxeop3] { color: var(--fn-warning) !important; }
.mut[b-nqp8vxeop3] { color: var(--fn-text-tertiary) !important; }

@media (max-width: 1279px) {
    .basket-group-grid[b-nqp8vxeop3] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .basket-direction-body[b-nqp8vxeop3] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .basket-direction-result[b-nqp8vxeop3] { grid-column: 1 / -1; }
}

@media (max-width: 759px) {
    .basket-summary[b-nqp8vxeop3] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .basket-summary-item:nth-child(2)[b-nqp8vxeop3] { border-right: 0; }
    .basket-summary-item:nth-child(-n+2)[b-nqp8vxeop3] { border-bottom: var(--fn-border-width) solid var(--fn-border); }
    .basket-group-grid[b-nqp8vxeop3],
    .basket-direction-body[b-nqp8vxeop3] { grid-template-columns: 1fr; }
    .basket-direction-result[b-nqp8vxeop3] { grid-column: auto; }
}

@media (max-width: 459px) {
    .basket-summary[b-nqp8vxeop3],
    .basket-periods[b-nqp8vxeop3],
    .basket-method[b-nqp8vxeop3] { grid-template-columns: 1fr; }
    .basket-summary-item[b-nqp8vxeop3],
    .basket-summary-item:nth-child(2)[b-nqp8vxeop3] { border-right: 0; border-bottom: var(--fn-border-width) solid var(--fn-border); }
    .basket-summary-item:last-child[b-nqp8vxeop3],
    .basket-period:last-child[b-nqp8vxeop3],
    .basket-method > div:last-child[b-nqp8vxeop3] { border-bottom: 0; }
    .basket-period:nth-child(odd)[b-nqp8vxeop3],
    .basket-method > div:nth-child(odd)[b-nqp8vxeop3] { border-right: 0; }
}
/* /Components/Watchlists/WatchlistBasketSettingsDialog.razor.rz.scp.css */
/* Nur Tokens, kein Hex (Design-Vorgabe 1g). */
.dir-choice[b-igjf4p5q0r] { display: flex; gap: 9px; flex-wrap: wrap; }

.dir-opt[b-igjf4p5q0r] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--fn-surface-alt);
    border: var(--fn-border-width) solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    padding: 7px 10px;
    cursor: pointer;
    font-family: var(--fn-font);
}

.dir-opt:hover[b-igjf4p5q0r] { background: var(--fn-hover); }
.dir-opt.active[b-igjf4p5q0r] { border-color: var(--fn-primary); background: var(--fn-accent-soft); }

.dir-default[b-igjf4p5q0r] {
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

[b-igjf4p5q0r] .wl-basket-note-editor .ProseMirror { min-height: 210px; }

/* /Components/Watchlists/WatchlistFreshnessDot.razor.rz.scp.css */
/* Stecknadelkopf-Ampel in Spalte 1 — Punkt 11px (wie die fruehere Event-Ampel .ev-dot), daneben
   die konkreten Tage klein und dezent. Farben NUR ueber Tokens (Design-Vorgabe: kein Hex).
   Stufen: gruen ≤1 · gelb 2 · orange 3–9 · rot 10–20 · rot blinkend >20/nie. */
/* Punkt oben, Tageszahl DARUNTER (gestapelt), Zahl etwas groesser (Niko 13.09.2026). */
.wl-fresh-cell[b-xgayto4q3c] {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    /* Mehr Luft zwischen Punkt und Tageszahl — die Zahl sitzt jetzt etwas tiefer (Niko 14.09.2026). */
    gap: 6px;
    line-height: 1;
    padding-block: 2px;
}

.wl-fresh[b-xgayto4q3c] {
    display: inline-block;
    width: 11px;
    height: 11px;
    border-radius: var(--fn-radius-round, 50%);
    flex: 0 0 auto;
}

.wl-fresh.green[b-xgayto4q3c]  { background: var(--fn-success); }
.wl-fresh.yellow[b-xgayto4q3c] { background: var(--fn-warning); }
.wl-fresh.orange[b-xgayto4q3c] { background: var(--fn-caution); }
.wl-fresh.red[b-xgayto4q3c]    { background: var(--fn-danger); }

/* Kursaktualisierung aus: ruhender Ring statt gefuelltem Punkt — die bewusste Pause, nicht Alter. */
.wl-fresh.paused[b-xgayto4q3c] { background: transparent; border: 2px solid var(--fn-text-tertiary); }
/* Referenz-Bezugsgroesse ohne eigene Kursreihe: neutraler grauer Punkt, kein Fehlalarm (Niko 14.09.2026). */
.wl-fresh.reference[b-xgayto4q3c] { background: var(--fn-text-tertiary); }
.wl-fresh-age.off[b-xgayto4q3c] { font-style: italic; }

/* Konkrete Tage unter dem Punkt — groesser und lesbarer (11.5px war kaum erkennbar, Niko 14.09.2026). */
.wl-fresh-age[b-xgayto4q3c] {
    font-size: 14px;
    font-weight: var(--fn-font-weight-medium, 500);
    color: var(--fn-text-secondary);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* Sehr alt (>20 Tage) oder nie versorgt: dezenter, expandierender Ring-Glow — dasselbe ruhige
   Muster wie am Postkorb (fn-pulse aus FlowDesk), NICHT aufdringlich. */
.wl-fresh.blink[b-xgayto4q3c] {
    animation: wl-fresh-pulse-b-xgayto4q3c 2s ease-in-out infinite;
}

@keyframes wl-fresh-pulse-b-xgayto4q3c {
    0%   { box-shadow: 0 0 0 0 color-mix(in srgb, var(--fn-danger) 60%, transparent); }
    70%  { box-shadow: 0 0 0 7px transparent; }
    100% { box-shadow: 0 0 0 0 transparent; }
}

/* Wer Bewegung abgeschaltet hat, bekommt sie auch hier nicht — die Aussage traegt die Farbe
   allein (Barrierefreiheit, design.md). */
@media (prefers-reduced-motion: reduce) {
    .wl-fresh.blink[b-xgayto4q3c] { animation: none; }
}
/* /Components/Watchlists/WatchlistItemsTable.razor.rz.scp.css */

/* Bezugsgroesse hinter einem Prozentwert (Befund 25.08.2026): Der Gruppenkopf zeigt den
   UNGEWICHTETEN Mittelwert je Titel (gainPercents.Average()), die GESAMT-Zeile die
   KAPITALGEWICHTETE Rendite (gain / purchase). Zwei verschiedene Groessen, bis dahin beide
   nur "%" genannt — am selben Eurobetrag standen +18,45 % und +97,77 %. Wer die Bezugsgroesse
   nicht anschreibt, laesst den Nutzer raten, welcher Zahl er glauben darf. */
.wl-basis[b-jzi0e1h72p] {
    margin-left: 4px;
    font-size: var(--fn-font-size-xs);
    color: var(--fn-text-tertiary);
    white-space: nowrap;
}

.wl-marker-separator[b-jzi0e1h72p] {
    width: var(--fn-border-width);
    height: 20px;
    margin: 0 3px;
    background: var(--fn-border);
}
/* /Components/Watchlists/WatchlistPriceCell.razor.rz.scp.css */
/* Ersatzanzeigen der Kursspalte (VORSCHAU-Watchliste-Kurs-Warum-leer, 28.07.2026).
   Ausschliesslich Design-Tokens, nie Hex: der Zustand soll ruhig wirken, nicht wie ein Fehler —
   nur der veraltete Stand bekommt den Warnton, weil er tatsaechlich Aufmerksamkeit verdient. */

.wl-px-state .main[b-ozbxk23l88] {
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
}

.wl-px-expired[b-ozbxk23l88] {
    color: var(--fn-text-tertiary);
}

.wl-px-stale[b-ozbxk23l88] {
    color: var(--fn-warning);
}

.wl-px-nosource[b-ozbxk23l88] {
    color: var(--fn-text-tertiary);
}

.wl-px-note[b-ozbxk23l88] {
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
    white-space: nowrap;
}
/* /Components/Watchlists/WatchlistRegimeView.razor.rz.scp.css */
/* Watchliste — dritte Sicht „Regime" (KONZEPT-Watchlist-Regime-Sicht). Die Tabelle trägt die geteilte
   fn-list-Optik (Header/Padding/Hover/fn-row-link); hier stehen NUR die additiven, regime-spezifischen
   Zellen (Hero-Band, Regime-Kante, Chip, Doppelbalken, Aufklapp-Mini-Sim). Tokens-only; Regime-Farben
   sparsam. calm=success · neutral=warning · stress=danger. */

.rg-loading[b-90lx4y5won] {
    color: var(--fn-text-tertiary);
    font-size: 13px;
    padding: 28px 6px;
}

/* ===== Hero — die eine Aussage ===== */
.rg-hero[b-90lx4y5won] {
    margin: 4px 0 10px;
    border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: 14px;
    overflow: hidden;
    background: var(--fn-bg-alt);
}
.rg-hero.rg-calm[b-90lx4y5won] { background: linear-gradient(90deg, var(--fn-success-soft), transparent 60%), var(--fn-bg-alt); }
.rg-hero.rg-neu[b-90lx4y5won] { background: linear-gradient(90deg, var(--fn-warning-soft), transparent 60%), var(--fn-bg-alt); }
.rg-hero.rg-stress[b-90lx4y5won] { background: linear-gradient(90deg, var(--fn-danger-soft), transparent 60%), var(--fn-bg-alt); }
.rg-hero-in[b-90lx4y5won] {
    display: flex;
    align-items: center;
    gap: 26px;
    padding: 18px 22px;
}
.rg-verdict[b-90lx4y5won] { min-width: 250px; }
.rg-lbl[b-90lx4y5won] {
    font-size: 10.5px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}
.rg-big[b-90lx4y5won] {
    font-size: 22px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: -.01em;
    margin-top: 3px;
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--fn-text);
}
.rg-dot[b-90lx4y5won] {
    width: 11px;
    height: 11px;
    border-radius: 50%;
}
.rg-say[b-90lx4y5won] {
    font-size: 12.5px;
    color: var(--fn-text-secondary);
    margin-top: 5px;
    max-width: 300px;
}

.rg-meter[b-90lx4y5won] { flex: 1; min-width: 160px; }
.rg-scale[b-90lx4y5won] {
    height: 8px;
    border-radius: 99px;
    position: relative;
    opacity: .9;
    background: linear-gradient(90deg, var(--fn-success), var(--fn-warning), var(--fn-danger));
}
.rg-mark[b-90lx4y5won] {
    position: absolute;
    top: 50%;
    width: 3px;
    height: 20px;
    background: var(--fn-text);
    border-radius: 2px;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 0 3px var(--fn-bg-alt);
}
.rg-ticks[b-90lx4y5won] {
    display: flex;
    justify-content: space-between;
    margin-top: 8px;
    font-size: 10.5px;
    color: var(--fn-text-tertiary);
    letter-spacing: .04em;
}

.rg-quota[b-90lx4y5won] { text-align: right; min-width: 160px; }
.rg-quota-v[b-90lx4y5won] {
    font-family: var(--fn-font-mono);
    font-size: 26px;
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text);
    margin-top: 2px;
}
.rg-quota-d[b-90lx4y5won] { font-size: 11.5px; color: var(--fn-text-secondary); margin-top: 2px; }
.rg-gap[b-90lx4y5won] { color: var(--fn-text-tertiary); }

/* ===== Regime colour helpers (sparse) ===== */
.rg-bg-calm[b-90lx4y5won] { background: var(--fn-success); }
.rg-bg-neu[b-90lx4y5won] { background: var(--fn-warning); }
.rg-bg-stress[b-90lx4y5won] { background: var(--fn-danger); }

/* ===== Table — only regime-specific layout on top of fn-list ===== */
.rg-tbl td[b-90lx4y5won] { vertical-align: middle; }
.rg-tbl th.rg-r[b-90lx4y5won], .rg-tbl td.rg-r[b-90lx4y5won] { text-align: right; }
.rg-muted[b-90lx4y5won] { opacity: .55; }

.rg-edge[b-90lx4y5won] {
    width: 3px;
    height: 30px;
    border-radius: 2px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 10px;
}
.rg-nm[b-90lx4y5won] { font-weight: var(--fn-font-weight-medium); color: var(--fn-text); }
.rg-tk[b-90lx4y5won] {
    color: var(--fn-text-tertiary);
    font-size: 11px;
    font-family: var(--fn-font-mono);
    margin-top: 2px;
    margin-left: 13px;
}
.rg-na[b-90lx4y5won] { color: var(--fn-text-tertiary); font-size: 12px; }

.rg-chip[b-90lx4y5won] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-medium);
    border-radius: 99px;
    padding: 3px 11px;
}
.rg-chip .rg-cdot[b-90lx4y5won] { width: 7px; height: 7px; border-radius: 50%; }
.rg-chip.rg-calm[b-90lx4y5won] { color: var(--fn-success); background: var(--fn-success-soft); }
.rg-chip.rg-calm .rg-cdot[b-90lx4y5won] { background: var(--fn-success); }
.rg-chip.rg-neu[b-90lx4y5won] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.rg-chip.rg-neu .rg-cdot[b-90lx4y5won] { background: var(--fn-warning); }
.rg-chip.rg-stress[b-90lx4y5won] { color: var(--fn-danger); background: var(--fn-danger-soft); }
.rg-chip.rg-stress .rg-cdot[b-90lx4y5won] { background: var(--fn-danger); }

/* discipline double bar — du vs Strategie */
.rg-disc[b-90lx4y5won] { width: 200px; }
.rg-track[b-90lx4y5won] {
    height: 6px;
    border-radius: 99px;
    background: var(--fn-bg-muted);
    position: relative;
}
.rg-you[b-90lx4y5won], .rg-strat[b-90lx4y5won] {
    position: absolute;
    left: 0;
    top: 0;
    height: 6px;
    border-radius: 99px;
}
.rg-you[b-90lx4y5won] { background: var(--fn-text-tertiary); }
.rg-strat[b-90lx4y5won] { background: var(--fn-primary); }
.rg-legend[b-90lx4y5won] {
    display: flex;
    justify-content: space-between;
    margin-top: 6px;
    font-size: 10.5px;
    color: var(--fn-text-tertiary);
    font-family: var(--fn-font-mono);
}
.rg-legend .rg-s[b-90lx4y5won] { color: var(--fn-primary); }
.rg-open[b-90lx4y5won] { color: var(--fn-text-tertiary); }
.rg-open .lucide[b-90lx4y5won] { width: 16px; height: 16px; }

/* ===== Expanded row — elegant inline mini-simulation ===== */
.rg-exp td[b-90lx4y5won] { background: var(--fn-bg-alt); padding: 0 !important; }
.rg-exp-in[b-90lx4y5won] {
    display: flex;
    gap: 30px;
    padding: 22px 24px;
    align-items: center;
}
.rg-chart[b-90lx4y5won] { flex: 0 0 360px; }
.rg-spark[b-90lx4y5won] { display: block; width: 360px; height: 118px; }
.rg-spark-strat[b-90lx4y5won] { stroke: var(--fn-primary); stroke-width: 2.2; }
.rg-spark-bench[b-90lx4y5won] { stroke: var(--fn-text-tertiary); stroke-width: 1.5; stroke-dasharray: 3 3; }
/* Gefüllte Fläche unter der Strategie-Kurve — tokens-only, Alpha über stop-opacity (kein rgba). */
.rg-spark-fill[b-90lx4y5won] { fill: url(#rg-grad); stroke: none; }
.rg-fill-top[b-90lx4y5won] { stop-color: var(--fn-primary); stop-opacity: .22; }
.rg-fill-bot[b-90lx4y5won] { stop-color: var(--fn-primary); stop-opacity: 0; }
.rg-legend2[b-90lx4y5won] {
    display: flex;
    gap: 18px;
    margin-top: 10px;
    font-size: 11.5px;
    color: var(--fn-text-secondary);
}
.rg-legend2 span[b-90lx4y5won] { display: inline-flex; align-items: center; gap: 7px; }
.rg-li[b-90lx4y5won] { width: 14px; height: 2px; border-radius: 2px; display: inline-block; }
.rg-li-strat[b-90lx4y5won] { background: var(--fn-primary); }
.rg-li-bench[b-90lx4y5won] { background: var(--fn-text-tertiary); }

.rg-meta[b-90lx4y5won] {
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: 16px 34px;
}
.rg-k[b-90lx4y5won] {
    font-size: 10px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}
.rg-val[b-90lx4y5won] {
    font-family: var(--fn-font-mono);
    font-size: 18px;
    color: var(--fn-text);
    margin-top: 3px;
}
.rg-val.rg-pos[b-90lx4y5won] { color: var(--fn-success); }
.rg-val.rg-neg[b-90lx4y5won] { color: var(--fn-danger); }

.rg-cta[b-90lx4y5won] {
    margin-top: 14px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font: inherit;
    font-size: 12.5px;
    color: var(--fn-primary);
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
}
.rg-cta .lucide[b-90lx4y5won] { width: 15px; height: 15px; }
.rg-cta:hover[b-90lx4y5won] { color: var(--fn-primary-hover); }
/* /Components/Watchlists/WatchlistSeasonalityView.razor.rz.scp.css */
/* ② Watchlist Saison-Ansicht. Additiv, tokens-only; Intensitäten via color-mix auf --fn-Tokens. */
.wls-msg[b-4t4xnhobn3] { color: var(--fn-text-secondary); font-size: 13px; padding: 12px 2px; }

.wls-hero[b-4t4xnhobn3] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-left: 3px solid var(--fn-text-tertiary); border-radius: 14px;
    padding: 14px 16px; margin-bottom: 14px;
}
.wls-hero-cap[b-4t4xnhobn3] { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--fn-text-tertiary); }
.wls-hero-main[b-4t4xnhobn3] { font-size: 18px; font-weight: 700; color: var(--fn-text); margin-top: 3px; display: flex; align-items: center; gap: 8px; }
.wls-hero-main.wls-good[b-4t4xnhobn3] { color: var(--fn-success); }
.wls-hero-main[b-4t4xnhobn3]  svg { width: 18px; height: 18px; }
.wls-hero-names[b-4t4xnhobn3] { font-size: 12px; color: var(--fn-text-secondary); margin-top: 3px; }
.wls-hero-sub[b-4t4xnhobn3] { font-size: 11px; color: var(--fn-text-tertiary); margin-top: 4px; }

/* toolbar: frei wählbare Gruppierung */
.wls-toolbar[b-4t4xnhobn3] { display: flex; align-items: center; gap: 8px; margin: 4px 0 8px; }
.wls-toolbar label[b-4t4xnhobn3], .wls-toolbar-lbl[b-4t4xnhobn3] { font-size: 12px; color: var(--fn-text-secondary); }

.wls-table[b-4t4xnhobn3] { margin-top: 4px; table-layout: fixed; }
.wls-foot[b-4t4xnhobn3] {
    font-size: 11px; color: var(--fn-text-tertiary);
    border-top: 1px solid var(--fn-border); padding-top: 10px; margin-top: 12px;
}

/* group separator row + collapse toggle */
.wls-grp td[b-4t4xnhobn3] { background: var(--fn-bg-muted); padding: 0; }
.wls-grp-toggle[b-4t4xnhobn3] {
    display: flex; align-items: center; gap: 8px; width: 100%; cursor: pointer;
    background: none; border: none; padding: 7px 12px; text-align: left;
    color: var(--fn-text-secondary); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
}
.wls-grp-toggle:hover[b-4t4xnhobn3] { color: var(--fn-text); }
.wls-grp-toggle[b-4t4xnhobn3]  svg { width: 14px; height: 14px; }
.wls-grp-nm[b-4t4xnhobn3] { flex: 0 0 auto; }
.wls-grp-n[b-4t4xnhobn3] {
    color: var(--fn-text-tertiary); font-weight: 600;
    background: var(--fn-bg); border: 1px solid var(--fn-border); border-radius: 999px; padding: 0 7px; font-size: 10.5px;
}

/* per-group header row (eigener Sortierzustand, gleiche Spaltenbreiten -> bündig) */
.wls-ghead td[b-4t4xnhobn3] {
    font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: var(--fn-text-tertiary);
    padding: 5px 12px; border-bottom: 1px solid var(--fn-border-strong); background: var(--fn-bg-alt);
}

/* four equal verdict pills */
.wls-sea[b-4t4xnhobn3] {
    display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: 11px; font-weight: 600;
}
.wls-sea.good[b-4t4xnhobn3] { color: var(--fn-success); background: var(--fn-success-soft); border: 1px solid var(--fn-success); }
.wls-sea.bad[b-4t4xnhobn3] { color: var(--fn-danger); background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); }
.wls-sea.neutral[b-4t4xnhobn3] { color: var(--fn-text); background: var(--fn-bg-muted); border: 1px solid var(--fn-border-strong); }
.wls-sea.na[b-4t4xnhobn3] { color: var(--fn-text-tertiary); background: var(--fn-bg-muted); border: 1px dashed var(--fn-border-strong); }

/* best (green) vs worst (red) month chips — distinct colours */
.wls-mon[b-4t4xnhobn3] { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.wls-mon.best[b-4t4xnhobn3] { color: var(--fn-success); background: var(--fn-success-soft); border: 1px solid var(--fn-success); }
.wls-mon.worst[b-4t4xnhobn3] { color: var(--fn-danger); background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); }
.wls-mon.none[b-4t4xnhobn3] { color: var(--fn-text-tertiary); }

/* Ø return — text colour graded by magnitude */
.wls-ret[b-4t4xnhobn3] { font-weight: 600; }
.wls-ret.z[b-4t4xnhobn3] { color: var(--fn-text-tertiary); }
.wls-ret.p1[b-4t4xnhobn3] { color: color-mix(in srgb, var(--fn-success) 55%, var(--fn-text-secondary)); }
.wls-ret.p2[b-4t4xnhobn3] { color: color-mix(in srgb, var(--fn-success) 75%, var(--fn-text-secondary)); }
.wls-ret.p3[b-4t4xnhobn3] { color: var(--fn-success); }
.wls-ret.p4[b-4t4xnhobn3] { color: var(--fn-success); font-weight: 700; }
.wls-ret.n1[b-4t4xnhobn3] { color: color-mix(in srgb, var(--fn-danger) 55%, var(--fn-text-secondary)); }
.wls-ret.n2[b-4t4xnhobn3] { color: color-mix(in srgb, var(--fn-danger) 75%, var(--fn-text-secondary)); }
.wls-ret.n3[b-4t4xnhobn3] { color: var(--fn-danger); }
.wls-ret.n4[b-4t4xnhobn3] { color: var(--fn-danger); font-weight: 700; }

/* 12-cell mini-heatmap (real markup → scoped CSS applies) */
.wls-mini[b-4t4xnhobn3] { display: inline-flex; gap: 2px; }
.wls-mini-cell[b-4t4xnhobn3] { width: 12px; height: 14px; border-radius: 3px; background: var(--fn-bg-muted); }
.wls-mini-cell.e[b-4t4xnhobn3] { border: 1px dashed var(--fn-border); }
.wls-mini-cell.z[b-4t4xnhobn3] { background: var(--fn-bg-muted); }
.wls-mini-cell.now[b-4t4xnhobn3] { box-shadow: inset 0 0 0 2px var(--fn-primary); }
.wls-mini-cell.p1[b-4t4xnhobn3] { background: color-mix(in srgb, var(--fn-success) 22%, transparent); }
.wls-mini-cell.p2[b-4t4xnhobn3] { background: color-mix(in srgb, var(--fn-success) 42%, transparent); }
.wls-mini-cell.p3[b-4t4xnhobn3] { background: color-mix(in srgb, var(--fn-success) 64%, transparent); }
.wls-mini-cell.p4[b-4t4xnhobn3] { background: color-mix(in srgb, var(--fn-success) 85%, transparent); }
.wls-mini-cell.n1[b-4t4xnhobn3] { background: color-mix(in srgb, var(--fn-danger) 22%, transparent); }
.wls-mini-cell.n2[b-4t4xnhobn3] { background: color-mix(in srgb, var(--fn-danger) 42%, transparent); }
.wls-mini-cell.n3[b-4t4xnhobn3] { background: color-mix(in srgb, var(--fn-danger) 64%, transparent); }
.wls-mini-cell.n4[b-4t4xnhobn3] { background: color-mix(in srgb, var(--fn-danger) 85%, transparent); }
/* /Components/Watchlists/WatchlistSyncButton.razor.rz.scp.css */
/* Sofort-Sync-Button (FnListToolbar-Muster: fn-iconbtn-Optik). Tokens-only. */

.wl-sync-trigger[b-ribmy6s5e6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex: none;
    border-radius: var(--fn-radius-sm);
    border: 1px solid var(--fn-border-strong);
    background: transparent;
    color: var(--fn-text-secondary);
    cursor: pointer;
}

.wl-sync-trigger:hover:not(:disabled)[b-ribmy6s5e6] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
}

.wl-sync-trigger:disabled[b-ribmy6s5e6] {
    cursor: default;
}

.wl-sync-trigger[b-ribmy6s5e6]  svg {
    width: 15px;
    height: 15px;
}

/* Während der Synchronisation dreht der Kreispfeil. */
.wl-sync-run[b-ribmy6s5e6] {
    color: var(--fn-primary);
    border-color: var(--fn-accent-line);
}

.wl-sync-run[b-ribmy6s5e6]  svg {
    animation: wl-sync-rotate-b-ribmy6s5e6 1s linear infinite;
}

@keyframes wl-sync-rotate-b-ribmy6s5e6 {
    to { transform: rotate(360deg); }
}
