/* /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-t4w306cw2r] { display:flex; flex-direction:column; gap:14px; }
.ak[b-t4w306cw2r]  svg { width:15px; height:15px; stroke-width:2; vertical-align:middle; }

.ak-deny[b-t4w306cw2r] { color:var(--fn-warning); font-size:13px; padding:14px; }

.ak-metrics[b-t4w306cw2r] { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; }
.ak-metric[b-t4w306cw2r] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); padding:11px 14px; }
.ak-metric span[b-t4w306cw2r] { display:block; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--fn-text-tertiary); }
.ak-metric b[b-t4w306cw2r] { display:block; margin-top:4px; font-family:var(--fn-font-mono); font-size:15px; color:var(--fn-text); }
.ak-metric.warn b[b-t4w306cw2r] { color:var(--fn-warning); }

.ak-bar[b-t4w306cw2r] { display:flex; gap:10px; align-items:center; }
.ak-search[b-t4w306cw2r] { 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-t4w306cw2r] { flex:1; min-width:0; border:none; background:transparent; outline:none; color:var(--fn-text); font:inherit; font-size:12.5px; }
.ak-btn-primary[b-t4w306cw2r] { display:flex; align-items:center; gap:6px; background:var(--fn-primary); color:var(--fn-on-primary, var(--fn-bg)); border:none; border-radius:9px; padding:8px 14px; font-size:12.5px; font-weight:600; cursor:pointer; white-space:nowrap; }

.ak-card[b-t4w306cw2r] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); overflow:hidden; }
.ak-use[b-t4w306cw2r] { font-size:11.5px; color:var(--fn-text-tertiary); margin-top:2px; }
.ak-src[b-t4w306cw2r] { font-family:var(--fn-font-mono); font-size:11px; color:var(--fn-text-secondary); }
.ak-mask[b-t4w306cw2r] { font-family:var(--fn-font-mono); font-size:12.5px; color:var(--fn-text-secondary); letter-spacing:.08em; }
.ak-chg[b-t4w306cw2r] { font-size:11.5px; color:var(--fn-text-secondary); }
.ak-chg small[b-t4w306cw2r] { color:var(--fn-text-tertiary); }

.ak-pill[b-t4w306cw2r] { font-size:10px; font-weight:700; border-radius:999px; padding:2px 9px; letter-spacing:.03em; white-space:nowrap; }
.ak-pill.set[b-t4w306cw2r] { color:var(--fn-success); background:var(--fn-success-soft); }
.ak-pill.env[b-t4w306cw2r] { color:var(--fn-warning); background:var(--fn-warning-soft); }
.ak-pill.miss[b-t4w306cw2r] { color:var(--fn-warning); background:var(--fn-warning-soft); }

.ak-actions-h[b-t4w306cw2r] { text-align:right; }
.ak-actions[b-t4w306cw2r] { display:flex; gap:4px; justify-content:flex-end; }
.ak-ic[b-t4w306cw2r] { 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-t4w306cw2r] { color:var(--fn-primary); }
.ak-ic.ak-disabled[b-t4w306cw2r], .ak-ic:disabled[b-t4w306cw2r] { opacity:.35; cursor:not-allowed; }

.ak-hint[b-t4w306cw2r] { display:flex; align-items:center; gap:7px; font-size:11.5px; color:var(--fn-text-tertiary); margin:0; }

/* Bearbeiten-Dialog (modal, wie Broker oa-dialog) */
.ak-overlay[b-t4w306cw2r] { position:fixed; inset:0; background:color-mix(in srgb, var(--fn-bg) 74%, transparent); display:flex; align-items:center; justify-content:center; z-index:1000; padding:20px; }
.ak-dialog[b-t4w306cw2r] { width:100%; max-width:560px; background:var(--fn-bg-alt); border:1px solid var(--fn-border-strong); border-radius:var(--fn-radius); padding:18px 20px; display:flex; flex-direction:column; gap:10px; }
.ak-dialog-head[b-t4w306cw2r] { display:flex; align-items:center; justify-content:space-between; }
.ak-dialog-head h3[b-t4w306cw2r] { display:flex; align-items:center; gap:8px; margin:0; font-size:15px; color:var(--fn-text); }
.ak-field-label[b-t4w306cw2r] { 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-t4w306cw2r] { display:flex; gap:7px; align-items:center; }
.ak-input[b-t4w306cw2r] { 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-t4w306cw2r] { font-size:11px; color:var(--fn-text-tertiary); margin:0; }
.ak-status[b-t4w306cw2r] { font-size:12px; color:var(--fn-success); }
.ak-dialog-foot[b-t4w306cw2r] { display:flex; gap:8px; justify-content:flex-end; margin-top:6px; }
.ak-btn[b-t4w306cw2r] { border:none; border-radius:8px; padding:8px 15px; font-size:12.5px; font-weight:600; cursor:pointer; }
.ak-btn.primary[b-t4w306cw2r] { background:var(--fn-primary); color:var(--fn-on-primary, var(--fn-bg)); }
.ak-btn.primary:disabled[b-t4w306cw2r] { opacity:.4; cursor:not-allowed; }
.ak-btn.ghost[b-t4w306cw2r] { background:transparent; border:1px solid var(--fn-border-strong); color:var(--fn-text-secondary); }
/* /Components/Admin/FxReferenceRatesAdmin.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-ymx0wxl45o] { padding-bottom: 48px; }

.fx-deny[b-ymx0wxl45o], .fx-loading[b-ymx0wxl45o] { padding: 6px 2px; color: var(--fn-text-secondary); font-size: 13px; }

.fx-hint[b-ymx0wxl45o] {
    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-ymx0wxl45o] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 20px; }
.fx-tile[b-ymx0wxl45o] {
    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-ymx0wxl45o] {
    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-ymx0wxl45o] {
    font-size: 17px; font-weight: var(--fn-font-weight-bold);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fx-tile .n[b-ymx0wxl45o] { color: var(--fn-text-secondary); font-size: 12px; margin-top: 5px; line-height: 1.4; }
.fx-tile.rule .v[b-ymx0wxl45o] { color: var(--fn-success); }

/* Filter-Chips */
/* In der Toolbar-Zeile (Leading): kein eigener Abstand mehr — die Toolbar setzt das Raster. */
.fx-filterbar[b-ymx0wxl45o] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fx-chip[b-ymx0wxl45o] {
    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-ymx0wxl45o] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-tertiary); }
.fx-chip.active[b-ymx0wxl45o] { background: var(--fn-accent-soft); border-color: var(--fn-accent-line); color: var(--fn-text); }
.fx-chip.active .c[b-ymx0wxl45o] { color: var(--fn-primary); }

/* „Währung hinzufügen"-Inline */
.fx-add[b-ymx0wxl45o] {
    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-ymx0wxl45o] { width: 130px; text-transform: uppercase; }
.fx-add-note[b-ymx0wxl45o] { 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-ymx0wxl45o] {
    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-ymx0wxl45o] {
    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-ymx0wxl45o] {
    display: block; margin-top: 4px; font-size: 11.5px; color: var(--fn-warning);
}

/* Tabelle */
.fx-tablewrap[b-ymx0wxl45o] {
    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-ymx0wxl45o] { background: var(--fn-accent-soft); }
.fx-miss[b-ymx0wxl45o] { color: var(--fn-warning); }

/* Badges */
.fx-badge[b-ymx0wxl45o] {
    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-ymx0wxl45o] { color: var(--fn-success); background: var(--fn-success-soft); border-color: var(--fn-success); }
.fx-badge.norm[b-ymx0wxl45o] { color: var(--fn-primary); background: var(--fn-accent-soft); border-color: var(--fn-accent-line); }
.fx-badge.warn[b-ymx0wxl45o] { color: var(--fn-warning); background: var(--fn-warning-soft); border-color: var(--fn-warning); }
.fx-badge.info[b-ymx0wxl45o] { color: var(--fn-info); background: var(--fn-info-soft); border-color: var(--fn-info); }
.fx-badge.mute[b-ymx0wxl45o] { color: var(--fn-text-tertiary); background: transparent; }

/* Detail + Historie */
.fx-split[b-ymx0wxl45o] { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 16px; margin-top: 22px; }
.fx-card[b-ymx0wxl45o] { border: var(--fn-border-width) solid var(--fn-border); border-radius: var(--fn-radius); background: var(--fn-bg-alt); }
.fx-card > .h[b-ymx0wxl45o] {
    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-ymx0wxl45o] { display: block; font-size: 13.5px; color: var(--fn-text); }
.fx-card > .h .t span[b-ymx0wxl45o] { display: block; color: var(--fn-text-tertiary); font-size: 11.5px; margin-top: 2px; }
.fx-card > .b[b-ymx0wxl45o] { padding: 15px; display: grid; gap: 13px; }

.fx-empty[b-ymx0wxl45o] { padding: 18px 15px; color: var(--fn-text-tertiary); font-size: 12.5px; }

.fx-eff[b-ymx0wxl45o] {
    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-ymx0wxl45o] {
    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-ymx0wxl45o] { font-family: var(--fn-font-mono); font-size: 18px; font-weight: var(--fn-font-weight-bold); color: var(--fn-text); }
.fx-eff .note[b-ymx0wxl45o] { color: var(--fn-text-secondary); font-size: 12px; margin-top: 6px; line-height: 1.4; }

.fx-grid2[b-ymx0wxl45o] { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.fx-kv[b-ymx0wxl45o] {
    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-ymx0wxl45o] {
    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-ymx0wxl45o] {
    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-ymx0wxl45o] { display: grid; gap: 6px; }
.fx-ovr label[b-ymx0wxl45o] { color: var(--fn-text-secondary); font-size: 12px; font-weight: var(--fn-font-weight-medium); }
.fx-subnote[b-ymx0wxl45o] { color: var(--fn-text-tertiary); font-size: 11.5px; line-height: 1.45; }

.fx-audit[b-ymx0wxl45o] { border-top: var(--fn-border-width) solid var(--fn-border); padding-top: 12px; }
.fx-audit .cap[b-ymx0wxl45o] {
    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-ymx0wxl45o] {
    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-ymx0wxl45o] { color: var(--fn-text); }

.fx-run[b-ymx0wxl45o] { border-top: var(--fn-border-width) solid var(--fn-border); padding: 11px 15px; }
.fx-run:first-child[b-ymx0wxl45o] { border-top: none; }
.fx-run .top[b-ymx0wxl45o] { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.fx-run .when[b-ymx0wxl45o] { font-family: var(--fn-font-mono); font-size: 12px; color: var(--fn-text); }
.fx-run .meta[b-ymx0wxl45o] { color: var(--fn-text-tertiary); font-size: 11.5px; margin-top: 4px; font-family: var(--fn-font-mono); }
.fx-run .err[b-ymx0wxl45o] {
    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-ymx0wxl45o] { font-family: var(--fn-font-mono); }

.fx-foot-status[b-ymx0wxl45o] { color: var(--fn-text-secondary); }

@media (max-width: 900px) {
    .fx-tiles[b-ymx0wxl45o] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fx-split[b-ymx0wxl45o] { grid-template-columns: 1fr; }
}
/* /Components/Admin/GatekeeperAdminPage.razor.rz.scp.css */
.tw-deny[b-xbymzj2kx6]{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-xbymzj2kx6]{display:flex;flex-direction:column;gap:14px;max-width:980px}

/* KPI-Leiste */
.tw-kpis[b-xbymzj2kx6]{display:flex;gap:12px;flex-wrap:wrap}
.tw-kpi[b-xbymzj2kx6]{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-xbymzj2kx6]{font:600 10.5px var(--fn-font-mono);color:var(--fn-text-tertiary);text-transform:uppercase;letter-spacing:.5px}
.tw-kpi .v[b-xbymzj2kx6]{font:700 20px var(--fn-font-mono);color:var(--fn-text);margin-top:2px}
.tw-kpi .v.ok[b-xbymzj2kx6]{color:var(--fn-success)}
.tw-kpi .v.warn[b-xbymzj2kx6]{color:var(--fn-warning)}

/* Toolbar */
/* Suche+Refresh der geteilten FnListToolbar rechtsbündig hinter den Filter-Segmenten */
.tw[b-xbymzj2kx6]  .fn-toolbar-search{margin-left:auto}
.tw-seg[b-xbymzj2kx6]{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-xbymzj2kx6]{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-xbymzj2kx6]{background:var(--fn-surface-alt);color:var(--fn-text)}
.tw-seg button:hover:not(.on)[b-xbymzj2kx6]{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-xbymzj2kx6]{overflow:visible}
.tw-grid[b-xbymzj2kx6]{min-width:980px}
.tw-grid td[b-xbymzj2kx6]{vertical-align:middle}
.tw-mod[b-xbymzj2kx6]{display:flex;flex-direction:column;line-height:1.35}
.tw-mod b[b-xbymzj2kx6]{font-weight:600;color:var(--fn-text)}
.tw-mod .tw-id[b-xbymzj2kx6]{font:11px var(--fn-font-mono);color:var(--fn-text-tertiary)}
.tw-grp[b-xbymzj2kx6]{display:inline-flex;align-items:center;font:600 11px var(--fn-font-mono);border-radius:20px;padding:2px 10px}
.tw-grp.def[b-xbymzj2kx6]{color:var(--fn-primary);background:var(--fn-accent-soft)}
.tw-grp.daily[b-xbymzj2kx6]{color:var(--fn-success);background:var(--fn-success-soft)}
.tw-grp.analysis[b-xbymzj2kx6]{color:var(--fn-warning);background:var(--fn-warning-soft)}
.tw-tok[b-xbymzj2kx6]{display:inline-flex;align-items:center;gap:7px;font:11.5px var(--fn-font-mono);color:var(--fn-text-secondary)}
.tw-muted[b-xbymzj2kx6]{color:var(--fn-text-tertiary);font-family:var(--fn-font-mono);font-size:11.5px}
.tw-calls[b-xbymzj2kx6]{font:700 13px var(--fn-font-mono);color:var(--fn-text)}
.tw-off td[b-xbymzj2kx6]{opacity:.55}

/* Slider (Ja/Nein) */
.tw-active[b-xbymzj2kx6]{white-space:nowrap}
.tw-sw[b-xbymzj2kx6]{position:relative;display:inline-block;width:38px;height:22px;vertical-align:middle}
.tw-sw input[b-xbymzj2kx6]{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-xbymzj2kx6]{position:absolute;inset:0;background:var(--fn-border-strong);border:1px solid transparent;border-radius:20px;transition:.15s;cursor:pointer}
.tw-sw .tr[b-xbymzj2kx6]::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-xbymzj2kx6]{background:var(--fn-success-soft);border-color:var(--fn-success)}
.tw-sw input:checked + .tr[b-xbymzj2kx6]::before{transform:translateX(15px);background:var(--fn-success)}
.tw-del:hover[b-xbymzj2kx6]{color:var(--fn-danger)}

/* ── Routing S4: Provider-Scope-Chips + Flyout + Kontingent-Kacheln (Vorschau §2, nur --fn-*) ── */
.tw-kpi-prov[b-xbymzj2kx6]{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-xbymzj2kx6]{min-width:235px;max-width:280px}
.tw-pchip[b-xbymzj2kx6]{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-xbymzj2kx6]{color:var(--fn-cat-teal);border-color:var(--fn-cat-teal);background:transparent}
.tw-px[b-xbymzj2kx6]{background:transparent;border:none;padding:0;color:inherit;font-size:10px;line-height:1;cursor:pointer;opacity:.75}
.tw-px:hover:not(:disabled)[b-xbymzj2kx6]{opacity:1;color:var(--fn-danger)}
/* S5: Schild-Schalter Beobachtung/Erzwungen — nur bei gesetztem Scope gerendert (Vorschau 1:1). */
.tw-enf[b-xbymzj2kx6]{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-xbymzj2kx6]  svg{width:11px;height:11px}
.tw-enf-off[b-xbymzj2kx6]{color:var(--fn-text-tertiary);border:1px dashed var(--fn-border-strong);background:transparent}
.tw-enf-off:hover:not(:disabled)[b-xbymzj2kx6]{color:var(--fn-warning);border-color:var(--fn-warning)}
.tw-enf-on[b-xbymzj2kx6]{color:var(--fn-warning);border:1px solid var(--fn-warning);background:var(--fn-warning-soft)}
.tw-enf-on:hover:not(:disabled)[b-xbymzj2kx6]{color:var(--fn-text-secondary);border-color:var(--fn-border-strong);background:transparent}
.tw-enf:disabled[b-xbymzj2kx6]{opacity:.5;cursor:default}

.tw-paddwrap[b-xbymzj2kx6]{position:relative;display:inline-block;vertical-align:middle}
.tw-padd[b-xbymzj2kx6]{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-xbymzj2kx6]{color:var(--fn-primary);border-color:var(--fn-primary)}
.tw-pmenu[b-xbymzj2kx6]{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-xbymzj2kx6]{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-xbymzj2kx6]{background:var(--fn-bg-muted);color:var(--fn-primary)}
.tw-pmenusep[b-xbymzj2kx6]{height:1px;background:var(--fn-border);margin:3px 4px}

.tw-empty[b-xbymzj2kx6]{padding:14px;text-align:center;color:var(--fn-text-tertiary);font-size:12px}
.tw-hint[b-xbymzj2kx6]{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-tdzj5r3nat] {
    display: flex;
    flex-direction: column;
    gap: var(--fn-space-4, 16px);
}

.itl-hint[b-tdzj5r3nat] {
    color: var(--fn-text-secondary);
    font-size: 13px;
    line-height: 1.5;
    margin: 0;
    max-width: 70ch;
}

.itl-deny[b-tdzj5r3nat] {
    color: var(--fn-warning);
    font-size: 14px;
    padding: var(--fn-space-4, 16px);
}

.itl tbody input[b-tdzj5r3nat] {
    width: 100%;
    box-sizing: border-box;
}

.itl-num[b-tdzj5r3nat] {
    width: 8rem;
}

.itl-act[b-tdzj5r3nat] {
    width: 7rem;
    text-align: right;
    white-space: nowrap;
}

.itl-add td[b-tdzj5r3nat] {
    border-top: 1px solid var(--fn-border);
}

.itl-msg-ok[b-tdzj5r3nat] {
    color: var(--fn-success);
}

.itl-msg-err[b-tdzj5r3nat] {
    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-tar6q90dra] { max-width: 980px; }

.llmc-hint[b-tar6q90dra] {
    color: var(--fn-text-secondary);
    font-size: 12.5px;
    line-height: 1.5;
    margin: 0 0 16px;
    max-width: 720px;
}

.llmc-toolbar[b-tar6q90dra] {
    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-tar6q90dra]  .fn-toolbar-plus,
.llmc-toolbar .fn-toolbar-plus[b-tar6q90dra] {
    font-size: 13px;
    line-height: 1;
}

/* Modell-Eingabe mono wie in der abgenommenen Vorschau. */
.llmc-model[b-tar6q90dra] {
    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-tar6q90dra] {
    border: var(--fn-border-width, 1px) solid var(--fn-border);
    border-radius: var(--fn-radius);
    overflow: hidden;
}

.llmc table.fn-list[b-tar6q90dra] {
    width: 100%;
    table-layout: fixed;
}

.llmc-rank[b-tar6q90dra] { width: 56px; text-align: center; }
.llmc-type[b-tar6q90dra] { width: 240px; }
/* Breite + nowrap wie Daten-Kaskade (Niko 19.07.2026): vorher 150px → Icons gequetscht. */
.llmc-act[b-tar6q90dra]  { width: 170px; text-align: right; white-space: nowrap; }
/* Modell-Spalte nimmt den Rest — kein Ausufern mehr. */

.llmc-badge[b-tar6q90dra] {
    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-tar6q90dra] {
    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-tar6q90dra] {
    background: transparent;
    border: 1px solid var(--fn-border-strong);
    color: var(--fn-text-secondary);
}

.llmc-icon:hover:not(:disabled)[b-tar6q90dra] {
    background: transparent;
    color: var(--fn-primary);
    border-color: var(--fn-primary);
}

.llmc-icon:disabled[b-tar6q90dra] {
    opacity: .3;
}

/* Papierkorb: neutral, Danger erst im Hover (1:1 Daten-Kaskade). */
.llmc-del:hover:not(:disabled)[b-tar6q90dra] {
    color: var(--fn-danger);
    border-color: var(--fn-danger);
}

.llmc-grip[b-tar6q90dra] {
    display: grid;
    place-items: center;
    width: 22px;
    color: var(--fn-text-tertiary);
    cursor: grab;
}
.llmc-grip:active[b-tar6q90dra] { cursor: grabbing; }

.llmc-row-dragover td[b-tar6q90dra] { background: var(--fn-accent-soft); }

.llmc-empty[b-tar6q90dra] {
    color: var(--fn-text-tertiary);
    text-align: center;
    padding: 16px 10px;
}

/* Erklärungsblock unter der Tabelle (Vorschau: .hint). */
.llmc-note[b-tar6q90dra] {
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
    line-height: 1.5;
    margin: 12px 0 0;
    max-width: 720px;
}

.llmc-msg-ok[b-tar6q90dra] { color: var(--fn-success); }
.llmc-msg-err[b-tar6q90dra] { color: var(--fn-danger); }

.llmc-deny[b-tar6q90dra] {
    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-10f9u9zr23] { width: 100%; padding: 22px 28px 80px; color: var(--fn-text); max-width: 1100px; display: flex; flex-direction: column; gap: 14px; }
.ls[b-10f9u9zr23]  .lucide { width: 16px; height: 16px; }
.ls-deny[b-10f9u9zr23] { 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-10f9u9zr23] { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.ls-head h1[b-10f9u9zr23] { font-size: 20px; font-weight: 600; color: var(--fn-text); margin: 0; }
.ls-sub[b-10f9u9zr23] { color: var(--fn-text-secondary); font-size: 12.5px; margin: 4px 0 0; max-width: 640px; }

.ls-badge[b-10f9u9zr23] { 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-10f9u9zr23]  .lucide { width: 12px; height: 12px; }
.ls-badge.ok[b-10f9u9zr23] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.ls-badge.warn[b-10f9u9zr23] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }

.ls-card[b-10f9u9zr23] {
    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-10f9u9zr23] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.ls-card h4[b-10f9u9zr23]  .lucide { color: var(--fn-primary); }

.ls-scroll[b-10f9u9zr23] { overflow-x: auto; }
.ls-mono[b-10f9u9zr23] { font-family: var(--fn-font-mono); }
.ls-ok[b-10f9u9zr23] { color: var(--fn-success); }
.ls-fail[b-10f9u9zr23] { color: var(--fn-danger); font-weight: 600; }
.ls-row-action[b-10f9u9zr23] { width: 1%; white-space: nowrap; text-align: right; }
/* /Components/Admin/MarketDataProviderDetail.razor.rz.scp.css */
.mdp-detail[b-bfanx4y8vb] {
    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-bfanx4y8vb] {
    padding: 13px 14px;
    background: var(--fn-bg-muted);
    border-bottom: 1px solid var(--fn-border);
}

.mdp-detail-label[b-bfanx4y8vb] {
    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-bfanx4y8vb] {
    margin: 4px 0 0;
    font-size: 16px;
    font-weight: 600;
    color: var(--fn-text);
}

.mdp-detail-body[b-bfanx4y8vb] {
    padding: 14px;
    overflow: auto;
}

.mdp-detail-row[b-bfanx4y8vb] {
    margin-bottom: 13px;
}

.mdp-detail-row > label[b-bfanx4y8vb] {
    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-bfanx4y8vb] {
    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-bfanx4y8vb] {
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
}

.mdp-rule[b-bfanx4y8vb] {
    line-height: 1.45;
}

.mdp-capabilities-head[b-bfanx4y8vb] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 7px;
}

.mdp-capabilities-head > label[b-bfanx4y8vb] {
    margin: 0;
}

.mdp-plus[b-bfanx4y8vb] {
    font-size: 13px;
    line-height: 1;
}

.mdp-empty[b-bfanx4y8vb] {
    padding: 14px;
    text-align: center;
    color: var(--fn-text-tertiary);
    font-size: 12.5px;
}
/* /Components/Admin/MarketDataProviders.razor.rz.scp.css */
.mdp[b-njpo0mikpw] {
    display: flex;
    flex-direction: column;
    gap: 14px;
    width: 100%;
    padding-bottom: 28px;
}

/* Vier Kennzahlen der abgenommenen Vorschau: Providerstamm, Aktiv, kritische Faehigkeiten, Inaktiv. */
[b-njpo0mikpw] .mdp-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

[b-njpo0mikpw] .mdp-kpi {
    border: 1px solid var(--fn-border);
    border-radius: 11px;
    background: var(--fn-bg-alt);
    padding: 12px 13px;
}

[b-njpo0mikpw] .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-njpo0mikpw] .mdp-kpi-v {
    margin-top: 5px;
    font-size: 25px;
    font-weight: 600;
    line-height: 1.1;
    color: var(--fn-text);
}

[b-njpo0mikpw] .mdp-kpi-d {
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.35;
    color: var(--fn-text-secondary);
}

@media (max-width: 980px) {
    [b-njpo0mikpw] .mdp-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.mdp-workspace[b-njpo0mikpw] {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(520px, 1fr);
    gap: 12px;
    align-items: start;
}

.mdp-card[b-njpo0mikpw] {
    overflow: hidden;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
}

.mdp-card-head[b-njpo0mikpw],
.mdp-capabilities-head[b-njpo0mikpw] {
    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-njpo0mikpw] {
    border-top: 1px solid var(--fn-border);
}

.mdp-title[b-njpo0mikpw] {
    color: var(--fn-text);
    font-size: 14px;
    font-weight: var(--fn-font-weight-bold);
}

.mdp-desc[b-njpo0mikpw] {
    margin-top: 2px;
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.mdp-count[b-njpo0mikpw] {
    color: var(--fn-text-tertiary);
    font-size: 12px;
}

.mdp-table-wrap[b-njpo0mikpw] {
    overflow-x: auto;
}

.mdp-grid[b-njpo0mikpw] {
    min-width: 640px;
}

.mdp-grid tr.mdp-row-current td[b-njpo0mikpw] {
    background: var(--fn-accent-soft);
}

.mdp-number[b-njpo0mikpw] {
    width: 54px;
    text-align: center;
}

.mdp-number-badge[b-njpo0mikpw] {
    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-njpo0mikpw] {
    color: var(--fn-text);
    font-weight: 600;
}

.mdp-guid[b-njpo0mikpw] {
    display: block;
    margin-top: 3px;
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
}

.mdp-capability-chips[b-njpo0mikpw] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.mdp-capability-chips span[b-njpo0mikpw] {
    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-njpo0mikpw] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--fn-text-tertiary);
    font-size: 12px;
}

.mdp-state span[b-njpo0mikpw] {
    width: 7px;
    height: 7px;
    border-radius: var(--fn-radius-round);
    background: var(--fn-text-tertiary);
}

.mdp-state-active[b-njpo0mikpw] {
    color: var(--fn-success);
}

.mdp-state-active span[b-njpo0mikpw] {
    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-njpo0mikpw] {
    width: 52px;
    text-align: right;
    white-space: nowrap;
}

.mdp-editor-grid[b-njpo0mikpw] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 16px;
}

.mdp-editor-grid > label[b-njpo0mikpw] {
    display: grid;
    gap: 5px;
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.mdp-status-control[b-njpo0mikpw] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 30px;
}

.mdp-switch[b-njpo0mikpw] {
    position: relative;
    width: 34px;
    height: 19px;
    display: inline-block;
}

.mdp-switch input[b-njpo0mikpw] {
    position: absolute;
    opacity: 0;
}

.mdp-track[b-njpo0mikpw] {
    position: absolute;
    inset: 0;
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-radius-pill);
    background: var(--fn-bg);
}

.mdp-knob[b-njpo0mikpw] {
    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-njpo0mikpw] {
    border-color: var(--fn-primary);
    background: var(--fn-accent-soft);
}

.mdp-switch input:checked ~ .mdp-knob[b-njpo0mikpw] {
    transform: translateX(15px);
    background: var(--fn-primary);
}

.mdp-switch input:disabled ~ span[b-njpo0mikpw] {
    opacity: .45;
}

.mdp-capability-list[b-njpo0mikpw] {
    display: grid;
    gap: 8px;
    max-height: 560px;
    overflow-y: auto;
    padding: 12px 14px;
}

.mdp-capability-card[b-njpo0mikpw] {
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-muted);
    padding: 10px;
}

.mdp-capability-disabled[b-njpo0mikpw] {
    opacity: .62;
}

.mdp-capability-card-head[b-njpo0mikpw],
.mdp-capability-actions[b-njpo0mikpw] {
    display: flex;
    align-items: center;
}

.mdp-capability-card-head[b-njpo0mikpw] {
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 9px;
}

.mdp-capability-actions[b-njpo0mikpw] {
    gap: 7px;
}

.mdp-capability-name[b-njpo0mikpw] {
    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-njpo0mikpw] {
    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-njpo0mikpw] {
    border-color: var(--fn-success);
    background: var(--fn-success-soft);
    color: var(--fn-success);
}

.mdp-capability-state.mdp-state-warning[b-njpo0mikpw] {
    border-color: var(--fn-warning);
    background: var(--fn-warning-soft);
    color: var(--fn-warning);
}

.mdp-capability-state.mdp-state-blocked[b-njpo0mikpw] {
    border-color: var(--fn-danger);
    background: var(--fn-danger-soft);
    color: var(--fn-danger);
}

.mdp-capability-editor-grid[b-njpo0mikpw] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
}

.mdp-capability-editor-grid > label[b-njpo0mikpw] {
    display: grid;
    min-width: 0;
    gap: 4px;
    color: var(--fn-text-tertiary);
    font-size: 9px;
}

.mdp-capability-evidence[b-njpo0mikpw] {
    grid-column: 1 / -1;
}

.mdp-empty[b-njpo0mikpw] {
    padding: 24px !important;
    text-align: center;
    color: var(--fn-text-tertiary);
}


.mdp-message[b-njpo0mikpw] {
    color: var(--fn-success);
}

.mdp-deny[b-njpo0mikpw] {
    padding: 16px;
    color: var(--fn-text-secondary);
}

@media (max-width: 980px) {
    .mdp-workspace[b-njpo0mikpw] {
        grid-template-columns: 1fr;
    }

    .mdp-editor-grid[b-njpo0mikpw] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .mdp-capability-editor-grid[b-njpo0mikpw],
    .mdp-editor-grid[b-njpo0mikpw] {
        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-njpo0mikpw] .fn-form-foot {
    padding: 14px 2px 0;
}

.mdp-footer-hint[b-njpo0mikpw] {
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
}

.mdp-cap-none[b-njpo0mikpw] {
    color: var(--fn-text-tertiary);
}
/* /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-4q45x5wesk] {
    max-width: 840px;
}

.ocr-deny[b-4q45x5wesk] {
    padding: 18px 0;
    color: var(--fn-text-secondary);
    font-size: 13px;
}

.ocr-card[b-4q45x5wesk] {
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    padding: 20px 22px;
}

.ocr-card-title[b-4q45x5wesk] {
    font-size: 15px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 4px;
}

.ocr-card-desc[b-4q45x5wesk] {
    font-size: 12.5px;
    color: var(--fn-text-secondary);
    margin: 0 0 16px;
}

.ocr-row[b-4q45x5wesk] {
    margin-bottom: 16px;
}

.ocr-label[b-4q45x5wesk] {
    display: block;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--fn-text);
    margin-bottom: 6px;
}

.ocr-label-hint[b-4q45x5wesk] {
    font-weight: 400;
    color: var(--fn-text-tertiary);
}

.ocr-help[b-4q45x5wesk] {
    font-size: 11.5px;
    color: var(--fn-text-tertiary);
    margin-top: 6px;
}

.ocr-help[b-4q45x5wesk]  b,
.ocr-help b[b-4q45x5wesk] {
    color: var(--fn-text-secondary);
}

.ocr-help code[b-4q45x5wesk] {
    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-4q45x5wesk] {
    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-4q45x5wesk] {
    background: var(--fn-warning-soft);
    border: 1px solid var(--fn-warning);
    color: var(--fn-warning);
}

.ocr-badge-local[b-4q45x5wesk] {
    background: var(--fn-success-soft);
    border: 1px solid var(--fn-success);
    color: var(--fn-success);
}

.ocr-dot[b-4q45x5wesk] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.ocr-dot-success[b-4q45x5wesk] { background: var(--fn-success); }
.ocr-dot-warning[b-4q45x5wesk] { background: var(--fn-warning); }
.ocr-dot-danger[b-4q45x5wesk] { background: var(--fn-danger); }

/* Key-Status (zentraler Anthropic-Key — kein eigenes Key-Feld) */
.ocr-keystatus[b-4q45x5wesk] {
    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-4q45x5wesk]  b,
.ocr-keystatus b[b-4q45x5wesk] {
    color: var(--fn-text);
}

.ocr-keylink[b-4q45x5wesk] {
    color: var(--fn-primary);
    cursor: pointer;
    margin-left: 4px;
    text-decoration: none;
}

.ocr-keylink:hover[b-4q45x5wesk] {
    text-decoration: underline;
}

/* Verbindungstest-Zeile (echtes Ergebnis: grün/rot + Zeitstempel) */
.ocr-testrow[b-4q45x5wesk] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 8px;
}

[b-4q45x5wesk] .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-4q45x5wesk] .ocr-probe:hover {
    color: var(--fn-primary);
    border-color: var(--fn-accent-line);
    background: transparent;
}

[b-4q45x5wesk] .ocr-probe svg {
    width: 14px;
    height: 14px;
}

.ocr-teststatus[b-4q45x5wesk] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-family: var(--fn-font-mono);
}

.ocr-teststatus.ok[b-4q45x5wesk] { color: var(--fn-success); }
.ocr-teststatus.fail[b-4q45x5wesk] { color: var(--fn-danger); }

.ocr-teststamp[b-4q45x5wesk] {
    color: var(--fn-text-tertiary);
}

/* Eingabefeld für den tessdata-Pfad in Mono (Vorschau .field.mono) */
[b-4q45x5wesk] .ocr-mono {
    font-family: var(--fn-font-mono);
    font-size: 12.5px;
}

.ocr-saved[b-4q45x5wesk] {
    margin-top: 12px;
    font-size: 12.5px;
    color: var(--fn-success);
    display: flex;
    align-items: center;
    gap: 7px;
}

.ocr-savefail[b-4q45x5wesk] {
    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-r8abzofd0a] { padding: 20px 24px 48px; color: var(--fn-text); }
.pm-deny[b-r8abzofd0a] { padding: 48px 24px; color: var(--fn-text-secondary); font-size: 14px; }

.pm-head[b-r8abzofd0a] { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.pm-head h1[b-r8abzofd0a] { font-size: 21px; font-weight: var(--fn-font-weight-bold); margin: 0; display: flex; align-items: center; gap: 10px; }
.pm-head h1[b-r8abzofd0a]  svg { width: 20px; height: 20px; color: var(--fn-primary); }

.pm-period[b-r8abzofd0a], .pm-tabs[b-r8abzofd0a] { display: inline-flex; }
.pm-period[b-r8abzofd0a] { 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-r8abzofd0a] { 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-r8abzofd0a] { background: var(--fn-primary); color: var(--fn-on-primary); font-weight: var(--fn-font-weight-bold); }

.pm-tabs[b-r8abzofd0a] { display: flex; gap: 0; border-bottom: var(--fn-border-width) solid var(--fn-border); margin-bottom: 18px; overflow-x: auto; }
.pm-tabs button[b-r8abzofd0a] { 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-r8abzofd0a] { color: var(--fn-primary); border-bottom-color: var(--fn-primary); font-weight: var(--fn-font-weight-bold); }

.pm-muted[b-r8abzofd0a] { color: var(--fn-text-tertiary); font-size: 13px; }

/* verdict */
.pm-verdict[b-r8abzofd0a] { 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-r8abzofd0a] { border-left-color: var(--fn-success); }
.pm-verdict.is-warn[b-r8abzofd0a] { border-left-color: var(--fn-warning); }
.pm-verdict.is-bad[b-r8abzofd0a]  { border-left-color: var(--fn-danger); }
.pm-verdict .v-flag[b-r8abzofd0a] { 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-r8abzofd0a] { 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-r8abzofd0a] { font-size: 20px; font-weight: var(--fn-font-weight-bold); }
.pm-verdict.is-good .v-flag .val[b-r8abzofd0a] { color: var(--fn-success); }
.pm-verdict.is-warn .v-flag .val[b-r8abzofd0a] { color: var(--fn-warning); }
.pm-verdict.is-bad  .v-flag .val[b-r8abzofd0a] { color: var(--fn-danger); }
.pm-verdict .v-flag .sub[b-r8abzofd0a] { font-size: 12px; color: var(--fn-text-secondary); }
.pm-verdict .v-body[b-r8abzofd0a] { 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-r8abzofd0a] { font-size: 14px; }

/* two-lens classification (Last vs. Regression) */
.pm-lenses[b-r8abzofd0a] { display: flex; gap: 10px; }
.pm-lens[b-r8abzofd0a] { 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-r8abzofd0a] { font-size: 11.5px; color: var(--fn-text-tertiary); display: flex; align-items: center; gap: 7px; }
.pm-lens .lh[b-r8abzofd0a]  svg { width: 14px; height: 14px; }
.pm-lens .lv[b-r8abzofd0a] { font-size: 13px; color: var(--fn-text); margin-top: 3px; font-weight: var(--fn-font-weight-medium); }
.pm-lens.muted .lv[b-r8abzofd0a] { color: var(--fn-text-secondary); font-weight: normal; }
.pm-lens.active[b-r8abzofd0a] { border-color: var(--fn-danger); }
.pm-lens.active .lv[b-r8abzofd0a] { color: var(--fn-danger); }

/* KPIs */
.pm-kpis[b-r8abzofd0a] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 16px; }
.pm-kpi[b-r8abzofd0a] { 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-r8abzofd0a] { font-size: 11px; color: var(--fn-text-tertiary); text-transform: uppercase; letter-spacing: .5px; }
.pm-kpi .k-v[b-r8abzofd0a] { 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-r8abzofd0a] { font-size: 12px; margin-top: 5px; }
.pm-kpi .k-d.up[b-r8abzofd0a] { color: var(--fn-danger); } .pm-kpi .k-d.down[b-r8abzofd0a] { color: var(--fn-success); } .pm-kpi .k-d.flat[b-r8abzofd0a] { color: var(--fn-text-tertiary); }
.pm-kpi .k-b[b-r8abzofd0a] { font-size: 11px; color: var(--fn-text-tertiary); margin-top: 2px; }

/* cards + tables */
.pm-card[b-r8abzofd0a] { 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-r8abzofd0a] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.pm-card .c-head h3[b-r8abzofd0a] { 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-r8abzofd0a]  svg { width: 15px; height: 15px; color: var(--fn-text-secondary); }

.pm-tbl .num[b-r8abzofd0a] { text-align: right; font-family: ui-monospace, monospace; }
.pm-tbl .ver[b-r8abzofd0a] { font-family: ui-monospace, monospace; font-size: 11px; color: var(--fn-text-tertiary); }
.pm-tbl .pm-note[b-r8abzofd0a] { color: var(--fn-text-secondary); font-size: 12.5px; }
.badge[b-r8abzofd0a] { 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-r8abzofd0a] { color: var(--fn-danger); border-color: var(--fn-danger); }
.badge.warn[b-r8abzofd0a] { color: var(--fn-warning); border-color: var(--fn-warning); }
.badge.good[b-r8abzofd0a] { color: var(--fn-success); border-color: var(--fn-success); }

/* live + chart */
.pm-live[b-r8abzofd0a] { 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-r8abzofd0a] { border-bottom: 0; }
.pm-live .t[b-r8abzofd0a] { font-family: ui-monospace, monospace; color: var(--fn-text-tertiary); font-size: 11px; }
.pm-live .ms[b-r8abzofd0a] { font-family: ui-monospace, monospace; font-weight: var(--fn-font-weight-bold); }
.pm-live .ms.bad[b-r8abzofd0a] { color: var(--fn-danger); }
.pm-chart[b-r8abzofd0a] { width: 100%; height: 200px; display: block; }
.pm-trend-meta[b-r8abzofd0a] { font-size: 11.5px; color: var(--fn-text-tertiary); margin-top: 8px; }
.pm-legend[b-r8abzofd0a] { display: flex; gap: 16px; font-size: 11.5px; color: var(--fn-text-tertiary); margin-top: 8px; }
.pm-legend .sw[b-r8abzofd0a] { display: inline-block; width: 16px; height: 3px; border-radius: 2px; vertical-align: middle; margin-right: 6px; }
.pm-legend .sw-p95[b-r8abzofd0a] { background: var(--fn-danger); }
.pm-legend .sw-avg[b-r8abzofd0a] { background: var(--fn-primary); }
.pm-legend .sw-base[b-r8abzofd0a] { background: var(--fn-text-tertiary); }
/* /Components/Admin/QuoteProviderCascadeAdmin.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). */
.qpc[b-pkkk40ms5f] {
    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. */
.qpc-refreshall[b-pkkk40ms5f] {
    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;
}

.qpc-refreshall:hover:not(:disabled)[b-pkkk40ms5f] {
    color: var(--fn-primary);
    border-color: var(--fn-primary);
}

.qpc-refreshall:disabled[b-pkkk40ms5f] {
    opacity: .5;
    cursor: default;
}

.qpc-refreshall :deep(svg)[b-pkkk40ms5f] {
    width: 15px;
    height: 15px;
}

.qpc-hint[b-pkkk40ms5f] {
    color: var(--fn-text-secondary);
    font-size: 13px;
    line-height: 1.5;
    margin: 0 0 16px;
    max-width: 760px;
}

.qpc-hint :deep(b)[b-pkkk40ms5f] {
    color: var(--fn-text);
    font-weight: 600;
}

.qpc-toolbar[b-pkkk40ms5f] {
    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 .qpc-sechead selbst. */
.qpc-seccard[b-pkkk40ms5f] {
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    margin-bottom: 18px;
    overflow: visible;
}

.qpc-sechead[b-pkkk40ms5f] {
    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);
}

.qpc-sectitle[b-pkkk40ms5f] {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--fn-text);
}

.qpc-secdesc[b-pkkk40ms5f] {
    font-size: 11.5px;
    color: var(--fn-text-tertiary);
    margin-top: 1px;
}

.qpc-secacts[b-pkkk40ms5f] {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: none;
}

.qpc-plus[b-pkkk40ms5f] {
    font-size: 13px;
}

.qpc-grid[b-pkkk40ms5f] {
    margin: 0;
    width: 100%;
}

/* Zeileninhalt mittig wie in der Vorschau (fn-list setzt sonst vertical-align: top). */
.qpc-grid :deep(td)[b-pkkk40ms5f] {
    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). */
.qpc-icon[b-pkkk40ms5f] {
    background: transparent;
    border: 1px solid var(--fn-border-strong);
    color: var(--fn-text-secondary);
}

.qpc-icon:hover:not(:disabled)[b-pkkk40ms5f] {
    background: transparent;
    color: var(--fn-primary);
    border-color: var(--fn-primary);
}

.qpc-icon:disabled[b-pkkk40ms5f] {
    opacity: .3;
}

.qpc-rank[b-pkkk40ms5f] {
    width: 52px;
    text-align: center;
}

.qpc-rankbadge[b-pkkk40ms5f] {
    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;
}

.qpc-prov[b-pkkk40ms5f] {
    width: 230px;
}

.qpc-cov[b-pkkk40ms5f] {
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
}

.qpc-status[b-pkkk40ms5f] {
    width: 190px;
}

/* ── Routing S2: „Gilt für"-Chips + Flyout + Abdeckungs-Box (abgenommene Vorschau, nur --fn-*) ── */
.qpc-kinds[b-pkkk40ms5f] {
    /* Chip + ⊕ inline wie die abgenommene Vorschau — erst bei mehreren Chips umbrechen. */
    min-width: 150px;
    max-width: 250px;
}

.qpc-kchip[b-pkkk40ms5f] {
    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;
}

/* „Alle Arten" = teal wie die Vorschau; Fläche transparent (kein rgba/Hex — Token-Pflicht FINLIST). */
.qpc-kall[b-pkkk40ms5f] {
    color: var(--fn-cat-teal);
    border-color: var(--fn-cat-teal);
    background: transparent;
}

.qpc-kx[b-pkkk40ms5f] {
    background: transparent;
    border: none;
    padding: 0;
    color: inherit;
    font-size: 10px;
    line-height: 1;
    cursor: pointer;
    opacity: .75;
}

.qpc-kx:hover:not(:disabled)[b-pkkk40ms5f] {
    opacity: 1;
    color: var(--fn-danger);
}

.qpc-kaddwrap[b-pkkk40ms5f] {
    position: relative;
    display: inline-block;
    vertical-align: middle;
}

.qpc-kadd[b-pkkk40ms5f] {
    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;
}

.qpc-kadd:hover:not(:disabled)[b-pkkk40ms5f] {
    color: var(--fn-primary);
    border-color: var(--fn-primary);
}

.qpc-kmenu[b-pkkk40ms5f] {
    position: absolute;
    top: 24px;
    left: 0;
    z-index: 30;
    display: flex;
    flex-direction: column;
    min-width: 190px;
    padding: 4px;
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border-strong);
    border-radius: 9px;
    box-shadow: var(--fn-shadow-hover);
}

.qpc-kmenu.up[b-pkkk40ms5f] {
    top: auto;
    bottom: 24px;
}

.qpc-kmenuitem[b-pkkk40ms5f] {
    text-align: left;
    background: transparent;
    border: none;
    color: var(--fn-text-secondary);
    font-size: 12px;
    padding: 5px 8px;
    border-radius: 6px;
    cursor: pointer;
}

.qpc-kmenuitem:hover[b-pkkk40ms5f] {
    background: var(--fn-bg-muted);
    color: var(--fn-primary);
}

.qpc-kmenusep[b-pkkk40ms5f] {
    height: 1px;
    background: var(--fn-border);
    margin: 3px 4px;
}

.qpc-coverbox[b-pkkk40ms5f] {
    border: 1px solid var(--fn-border);
    border-radius: 10px;
    background: var(--fn-bg-alt);
    padding: 10px 14px;
    margin: 0 0 4px;
    font-size: 12px;
}

.qpc-covtitle[b-pkkk40ms5f] {
    font-family: var(--fn-font-mono);
    font-size: 10.5px;
    font-weight: 600;
    color: var(--fn-text-tertiary);
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: 5px;
}

.qpc-covsub[b-pkkk40ms5f] {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    margin-left: 8px;
}

.qpc-covrow[b-pkkk40ms5f] {
    padding: 2px 0;
    color: var(--fn-text-secondary);
}

.qpc-covrow b[b-pkkk40ms5f] {
    display: inline-block;
    min-width: 150px;
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    font-weight: 600;
    color: var(--fn-text);
}

.qpc-covok[b-pkkk40ms5f] {
    color: var(--fn-success);
}

.qpc-covwarn[b-pkkk40ms5f] {
    color: var(--fn-warning);
}

.qpc-active[b-pkkk40ms5f] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--fn-success);
    font-size: 12px;
}

.qpc-active :deep(svg)[b-pkkk40ms5f] {
    width: 14px;
    height: 14px;
}

.qpc-inactive[b-pkkk40ms5f] {
    color: var(--fn-text-tertiary);
    font-size: 12px;
}

.qpc-warn[b-pkkk40ms5f] {
    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. */
.qpc-switchcell[b-pkkk40ms5f] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}

.qpc-switch[b-pkkk40ms5f] {
    position: relative;
    display: inline-block;
    width: 38px;
    height: 20px;
    flex: none;
    cursor: pointer;
}

.qpc-switch input[b-pkkk40ms5f] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.qpc-track[b-pkkk40ms5f] {
    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;
}

.qpc-knob[b-pkkk40ms5f] {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--fn-text-tertiary);
    transition: transform .15s, background .15s;
}

.qpc-switch input:checked ~ .qpc-track[b-pkkk40ms5f] {
    background: var(--fn-accent-soft);
    border-color: var(--fn-primary);
}

.qpc-switch input:checked ~ .qpc-knob[b-pkkk40ms5f] {
    transform: translateX(18px);
    background: var(--fn-primary);
}

.qpc-switch input:focus-visible ~ .qpc-track[b-pkkk40ms5f] {
    outline: 2px solid var(--fn-primary);
    outline-offset: 2px;
}

.qpc-switch.disabled[b-pkkk40ms5f] {
    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). */
.qpc-act[b-pkkk40ms5f] {
    width: 160px;
    text-align: right;
    white-space: nowrap;
}

.qpc-actwrap[b-pkkk40ms5f] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    justify-content: flex-end;
}

.qpc-grip[b-pkkk40ms5f] {
    display: inline-grid;
    place-items: center;
    width: 22px;
    color: var(--fn-text-tertiary);
    cursor: grab;
}

.qpc-grip :deep(svg)[b-pkkk40ms5f] {
    width: 14px;
    height: 14px;
}

/* Papierkorb: neutral, Danger erst im Hover (design.md / LLM-Kaskade-Muster) */
.qpc-del:hover:not(:disabled)[b-pkkk40ms5f] {
    color: var(--fn-danger);
    border-color: var(--fn-danger);
}

.qpc-empty[b-pkkk40ms5f] {
    color: var(--fn-text-tertiary);
    text-align: center;
    padding: 13px 10px;
    font-size: 12px;
}

.qpc-foothint[b-pkkk40ms5f] {
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
    line-height: 1.5;
    margin: 12px 0 0;
    max-width: 760px;
}

.qpc-msg-ok[b-pkkk40ms5f] {
    color: var(--fn-success);
}

.qpc-deny[b-pkkk40ms5f] {
    color: var(--fn-text-secondary);
    padding: 16px;
}

/* /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-soefog6e1c] { width: 100%; padding: 22px 28px 40px; color: var(--fn-text); max-width: 980px; display: flex; flex-direction: column; gap: 14px; }
.sp-deny[b-soefog6e1c] { 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-soefog6e1c] { display: flex; gap: 12px; flex-wrap: wrap; }
.sp-tile[b-soefog6e1c] { 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-soefog6e1c] { border-color: var(--fn-primary); }
.sp-tile-soon[b-soefog6e1c] { opacity: .6; }
.sp-ic[b-soefog6e1c] { 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-soefog6e1c] { width: 16px; height: 16px; }
.sp-tt[b-soefog6e1c] { font-size: 13px; color: var(--fn-text); font-weight: var(--fn-font-weight-medium); }
.sp-td[b-soefog6e1c] { font-size: 11px; color: var(--fn-text-secondary); margin-top: 2px; }

.sp-panel[b-soefog6e1c] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius-lg); overflow: hidden; }
.sp-body[b-soefog6e1c] { padding: 20px 22px; }
.sp-lead[b-soefog6e1c] { color: var(--fn-text-secondary); font-size: 13px; margin: 0 0 18px; max-width: 760px; }
.sp-lead b[b-soefog6e1c] { color: var(--fn-text); }

.sp-section[b-soefog6e1c] { margin: 0 0 20px; }
.sp-section > h2[b-soefog6e1c] { 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-soefog6e1c] { width: 14px; height: 14px; color: var(--fn-primary); }
.sp-sub[b-soefog6e1c] { margin: 0 0 12px; font-size: 12px; color: var(--fn-text-secondary); line-height: 1.5; max-width: 760px; }

.sp-grid[b-soefog6e1c] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sp-cell[b-soefog6e1c] { background: var(--fn-bg-muted); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 13px 14px; }
.sp-lab[b-soefog6e1c] { 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-soefog6e1c] { 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-soefog6e1c] { 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-soefog6e1c] { border-color: var(--fn-primary); }
.sp-inp input[b-soefog6e1c] { 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-soefog6e1c] { 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-soefog6e1c] { margin-top: 9px; }
.sp-sel[b-soefog6e1c] { 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-soefog6e1c] { outline: none; border-color: var(--fn-primary); }
.sp-hint[b-soefog6e1c] { margin: 9px 0 0; font-size: 11px; color: var(--fn-text-tertiary); line-height: 1.45; }
.sp-hint b[b-soefog6e1c] { color: var(--fn-text-secondary); font-weight: 600; }

/* Remember-Me-Schalter */
.sp-toggle-row[b-soefog6e1c] { display: flex; align-items: center; gap: 12px; margin-top: 11px; cursor: pointer; }
.sp-toggle-cb[b-soefog6e1c] { position: absolute; opacity: 0; width: 0; height: 0; }
.sp-switch[b-soefog6e1c] { 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-soefog6e1c]::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-soefog6e1c] { background: var(--fn-accent-soft); border-color: var(--fn-primary); }
.sp-toggle-cb:checked + .sp-switch[b-soefog6e1c]::after { left: 19px; background: var(--fn-primary); }
.sp-tl[b-soefog6e1c] { font-size: 12.5px; color: var(--fn-text-secondary); }
.sp-tl b[b-soefog6e1c] { color: var(--fn-text); font-weight: 600; }

/* Auswirkungs-Box */
.sp-impact[b-soefog6e1c] { 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-soefog6e1c] { margin: 0 0 10px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--fn-primary); }
.sp-impact ul[b-soefog6e1c] { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.sp-impact li[b-soefog6e1c] { display: flex; gap: 9px; font-size: 12.5px; color: var(--fn-text-secondary); line-height: 1.45; }
.sp-check[b-soefog6e1c] { flex: none; width: 15px; height: 15px; color: var(--fn-success); margin-top: 1px; }
.sp-impact li b[b-soefog6e1c] { color: var(--fn-text); font-weight: 600; }
.sp-mono[b-soefog6e1c] { font-family: var(--fn-font-mono); color: var(--fn-text); }

.sp-propose[b-soefog6e1c] { 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-soefog6e1c] { color: var(--fn-warning); }
.sp-meta[b-soefog6e1c] { font-size: 11px; color: var(--fn-text-tertiary); }
.sp-meta b[b-soefog6e1c] { color: var(--fn-text-secondary); font-weight: 600; }

@media (max-width: 720px) { .sp-grid[b-soefog6e1c] { 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-mv66afsldp] { width: 100%; color: var(--fn-text); display: flex; flex-direction: column; gap: 14px; }
.smtp[b-mv66afsldp]  .lucide { width: 16px; height: 16px; }
.smtp-deny[b-mv66afsldp] { 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-mv66afsldp] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.smtp-cardhead h4[b-mv66afsldp] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.smtp-cardhead h4[b-mv66afsldp]  .lucide { color: var(--fn-primary); }

.smtp-badge[b-mv66afsldp] { 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-mv66afsldp]  .lucide { width: 12px; height: 12px; }
.smtp-badge.smtp-on[b-mv66afsldp] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.smtp-badge.smtp-fb[b-mv66afsldp] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.smtp-badge.smtp-off[b-mv66afsldp] { color: var(--fn-text-tertiary); }

/* Quelle-Hinweis: die angezeigten Werte stammen aus der Server-Umgebung (Fallback). */
.smtp-note[b-mv66afsldp] {
    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-mv66afsldp]  .lucide { width: 14px; height: 14px; color: var(--fn-primary); flex: none; margin-top: 2px; }

.smtp-card[b-mv66afsldp] {
    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-mv66afsldp] { display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--fn-text); cursor: pointer; }
.smtp-check input[b-mv66afsldp] { width: 15px; height: 15px; accent-color: var(--fn-primary); cursor: pointer; }

.smtp-grid[b-mv66afsldp] { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px 18px; align-items: start; }

.smtp-pw[b-mv66afsldp] { display: flex; align-items: center; gap: 8px; }
.smtp-pw[b-mv66afsldp]  input { flex: 1; min-width: 0; }
.smtp-eye[b-mv66afsldp] { 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-mv66afsldp] { color: var(--fn-text); }

.smtp-missing[b-mv66afsldp] { font-size: 12px; color: var(--fn-warning); }
.smtp-status-ok[b-mv66afsldp] { font-size: 12px; color: var(--fn-success); }
.smtp-status-error[b-mv66afsldp] { 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-gwmu9bqn1w] { padding: 20px 24px 48px; color: var(--fn-text); }
.sh-deny[b-gwmu9bqn1w] { padding: 48px 24px; color: var(--fn-text-secondary); font-size: 14px; }
.sh-muted[b-gwmu9bqn1w] { color: var(--fn-text-tertiary); font-size: 13px; }

.sh-head[b-gwmu9bqn1w] { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.sh-head h1[b-gwmu9bqn1w] { font-size: 21px; font-weight: var(--fn-font-weight-bold); margin: 0; display: flex; align-items: center; gap: 10px; }
.sh-head h1[b-gwmu9bqn1w]  svg { width: 20px; height: 20px; color: var(--fn-primary); }
.sh-host[b-gwmu9bqn1w] { 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-gwmu9bqn1w]  svg { width: 14px; height: 14px; color: var(--fn-text-tertiary); }

/* verdict */
.sh-verdict[b-gwmu9bqn1w] { 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-gwmu9bqn1w] { border-left-color: var(--fn-success); }
.sh-verdict.is-warn[b-gwmu9bqn1w] { border-left-color: var(--fn-warning); }
.sh-verdict.is-bad[b-gwmu9bqn1w]  { border-left-color: var(--fn-danger); }
.sh-verdict .v-flag[b-gwmu9bqn1w] { 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-gwmu9bqn1w] { 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-gwmu9bqn1w] { font-size: 22px; font-weight: var(--fn-font-weight-bold); }
.sh-verdict.is-good .v-flag .val[b-gwmu9bqn1w] { color: var(--fn-success); }
.sh-verdict.is-warn .v-flag .val[b-gwmu9bqn1w] { color: var(--fn-warning); }
.sh-verdict.is-bad  .v-flag .val[b-gwmu9bqn1w] { color: var(--fn-danger); }
.sh-verdict .v-body[b-gwmu9bqn1w] { flex: 1; padding: 16px 20px; font-size: 14px; }

/* gauges */
.sh-gauges[b-gwmu9bqn1w] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.sh-card[b-gwmu9bqn1w] { 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-gwmu9bqn1w] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.sh-card .c-head h3[b-gwmu9bqn1w] { 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-gwmu9bqn1w]  svg { width: 14px; height: 14px; }
.sh-card .gsub[b-gwmu9bqn1w] { font-size: 11.5px; color: var(--fn-text-tertiary); }
.gauge[b-gwmu9bqn1w] { display: flex; align-items: center; gap: 16px; }
.gauge .ring[b-gwmu9bqn1w] { width: 96px; height: 96px; flex: 0 0 96px; }
.gv[b-gwmu9bqn1w] { font-size: 24px; font-weight: var(--fn-font-weight-bold); letter-spacing: -.5px; font-family: ui-monospace, monospace; }
.good-c[b-gwmu9bqn1w] { color: var(--fn-success); } .warn-c[b-gwmu9bqn1w] { color: var(--fn-warning); } .bad-c[b-gwmu9bqn1w] { color: var(--fn-danger); }
.bar[b-gwmu9bqn1w] { height: 12px; border-radius: 6px; background: var(--fn-bg-muted); overflow: hidden; margin: 10px 0 6px; }
.bar > span[b-gwmu9bqn1w] { display: block; height: 100%; border-radius: 6px; }
.sh-spark[b-gwmu9bqn1w] { margin-top: 12px; } .sh-spark svg[b-gwmu9bqn1w] { width: 100%; height: 34px; display: block; }

/* process + db */
.sh-grid2[b-gwmu9bqn1w] { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.sh-kv[b-gwmu9bqn1w] { width: 100%; border-collapse: collapse; font-size: 13px; }
.sh-kv td[b-gwmu9bqn1w] { 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-gwmu9bqn1w] { border-bottom: 0; }
.sh-kv td.v[b-gwmu9bqn1w] { text-align: right; font-family: ui-monospace, monospace; color: var(--fn-text); }
.sh code[b-gwmu9bqn1w] { 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-txplhpgf2v] { 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-txplhpgf2v] { padding: 0 18px; display: flex; flex-direction: column; flex: 1; min-width: 0; }

.at-topbar[b-txplhpgf2v] { 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-txplhpgf2v] { display: flex; align-items: center; gap: 9px; min-width: 0; }
.at-title h1[b-txplhpgf2v] { font-size: 18px; margin: 0; white-space: nowrap; }
.at-crumb[b-txplhpgf2v] { color: var(--fn-text-tertiary); font-weight: 500; }
.at-spacer[b-txplhpgf2v] { flex: 1; }
.at-cluster[b-txplhpgf2v] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

.chip[b-txplhpgf2v] { 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-txplhpgf2v] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.chip.warn[b-txplhpgf2v] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.chip.live[b-txplhpgf2v] { color: var(--fn-danger); border-color: var(--fn-danger); background: var(--fn-danger-soft); }
.chip.teal[b-txplhpgf2v] { color: var(--fn-cat-teal); border-color: var(--fn-cat-teal); background: var(--fn-cat-teal-soft); }
.chip.purple[b-txplhpgf2v] { color: var(--fn-cat-purple); border-color: var(--fn-cat-purple); background: var(--fn-cat-purple-soft); }
.status-dot[b-txplhpgf2v] { width: 7px; height: 7px; border-radius: 50%; background: var(--fn-success); }

.at-toolbar[b-txplhpgf2v] { 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-txplhpgf2v] { display: flex; flex-direction: column; gap: 4px; }
.at-toolbar input.at-narrow[b-txplhpgf2v] { width: 132px; }
.at-fld > .lbl[b-txplhpgf2v] { 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-txplhpgf2v] { min-width: 180px; }
.at-fld.conn[b-txplhpgf2v] { min-width: 230px; }
/* Segment-Schalter auf Watchlist-Gruppierungsgröße (font 12px / padding 6px 11px, keine feste Höhe). */
.at-seg[b-txplhpgf2v] {display: inline-flex; border: 1px solid var(--fn-border-strong); border-radius: 7px; overflow: hidden; background: var(--fn-input-bg); }
.at-seg button[b-txplhpgf2v] { 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-txplhpgf2v] { border-right: 0; }
/* Auswahl NUR über Hintergrund/Farbe — kein font-weight-Wechsel, sonst verschieben sich die Nachbar-Buttons. */
.at-seg button.on[b-txplhpgf2v] { background: var(--fn-primary); color: var(--fn-on-primary); }
.at-seg.mode button.on[data-mode="Paper"][b-txplhpgf2v] { background: var(--fn-cat-purple); color: var(--fn-on-primary); }
.at-seg.mode button.on[data-mode="Live"][b-txplhpgf2v] { background: var(--fn-danger); color: var(--fn-on-primary); }
.at-tools[b-txplhpgf2v] { 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-txplhpgf2v] { 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-txplhpgf2v] { width: 8px; height: 8px; border-radius: 50%; background: var(--fn-text-tertiary); }
.at-state.st-run[b-txplhpgf2v] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.at-state.st-run .dot[b-txplhpgf2v] { background: var(--fn-success); box-shadow: 0 0 0 3px var(--fn-success-soft); }
.at-state.st-pause[b-txplhpgf2v] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.at-state.st-pause .dot[b-txplhpgf2v] { background: var(--fn-warning); }
.at-state.st-stop[b-txplhpgf2v] { color: var(--fn-danger); border-color: var(--fn-danger); background: var(--fn-danger-soft); }
.at-state.st-stop .dot[b-txplhpgf2v] { background: var(--fn-danger); }

/* Feste gleiche Breite, damit sich die rechten Buttons bei Textwechsel (Pause↔Fortsetzen) nicht verschieben. */
.at-tools .at-act[b-txplhpgf2v] { min-width: 104px; justify-content: center; height: 32px; border-radius: var(--fn-radius-sm); }
.at-tools .at-act :deep(svg)[b-txplhpgf2v] { width: 14px; height: 14px; }
.at-tools .at-wide[b-txplhpgf2v] { min-width: 190px; }
.at-tools .at-ring-warn[b-txplhpgf2v] { box-shadow: 0 0 0 2px var(--fn-warning); }
.at-tools .at-ring-danger[b-txplhpgf2v] { 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-txplhpgf2v] { width: 1px; height: 22px; background: var(--fn-border-strong); margin: 0 8px; }
.at-tools .at-danger[b-txplhpgf2v] { background: transparent; border: 1px solid var(--fn-border-strong); color: var(--fn-danger); }
.at-tools .at-danger:hover:not(:disabled)[b-txplhpgf2v] { background: var(--fn-danger-soft); border-color: var(--fn-danger); color: var(--fn-danger); }
.at-tools .at-danger:disabled[b-txplhpgf2v] { opacity: .35; }

/* Positionsrisiko/Trailing mit Auto-Chip (Niko 19.07.2026). */
.at-riskrow[b-txplhpgf2v] { display: inline-flex; gap: 6px; align-items: center; }
.at-toolbar input.at-xnarrow[b-txplhpgf2v] { width: 84px; }
.at-autochip[b-txplhpgf2v] { 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-txplhpgf2v] { border-color: var(--fn-primary); color: var(--fn-primary); }
.at-autochip.on[b-txplhpgf2v] { 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-txplhpgf2v] { width: min(980px, 100%); }
.st-head[b-txplhpgf2v] { gap: 14px; }
.st-sec .line1[b-txplhpgf2v] { display: flex; align-items: center; gap: 8px; }
.st-px[b-txplhpgf2v] { 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-txplhpgf2v] { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; }
.st-expsep[b-txplhpgf2v] { width: 1px; height: 20px; background: var(--fn-border-strong); }
.st-loading[b-txplhpgf2v] { 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-txplhpgf2v] { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.st-progress-bar[b-txplhpgf2v] { height: 4px; border-radius: 999px; background: var(--fn-bg-muted); overflow: hidden; }
.st-progress-bar span[b-txplhpgf2v] { display: block; width: 38%; height: 100%; border-radius: 999px; background: var(--fn-primary); animation: st-progress-slide-b-txplhpgf2v 1.25s ease-in-out infinite; }
.st-progress-txt[b-txplhpgf2v] { font-size: 10.5px; color: var(--fn-text-tertiary); }
@keyframes st-progress-slide-b-txplhpgf2v { 0% { margin-left: -38%; } 100% { margin-left: 100%; } }
.st-verdict[b-txplhpgf2v] { 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-txplhpgf2v] { flex: 0 0 12px; height: 12px; border-radius: 50%; background: var(--fn-text-tertiary); margin-top: 3px; }
.st-verdict b[b-txplhpgf2v] { display: block; font-size: 14px; margin-bottom: 2px; }
.st-verdict p[b-txplhpgf2v] { margin: 0; font-size: 12.5px; color: var(--fn-text-secondary); line-height: 1.5; }
.st-verdict.negative[b-txplhpgf2v] { background: var(--fn-danger-soft); border-color: var(--fn-danger); }
.st-verdict.negative .dot[b-txplhpgf2v] { background: var(--fn-danger); box-shadow: 0 0 8px var(--fn-danger); }
.st-verdict.positive[b-txplhpgf2v] { background: var(--fn-success-soft); border-color: var(--fn-success); }
.st-verdict.positive .dot[b-txplhpgf2v] { background: var(--fn-success); box-shadow: 0 0 8px var(--fn-success); }
.st-verdict.warning[b-txplhpgf2v] { background: var(--fn-warning-soft); border-color: var(--fn-warning); }
.st-verdict.warning .dot[b-txplhpgf2v] { background: var(--fn-warning); }
.st-chips[b-txplhpgf2v] { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.st-chip[b-txplhpgf2v] { 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-txplhpgf2v]::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.st-chip.negative[b-txplhpgf2v] { color: var(--fn-danger); background: var(--fn-danger-soft); }
.st-chip.positive[b-txplhpgf2v] { color: var(--fn-success); background: var(--fn-success-soft); }
.st-chip.warning[b-txplhpgf2v] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.st-chip.info[b-txplhpgf2v] { color: var(--fn-primary); background: var(--fn-accent-soft); }
.st-grid[b-txplhpgf2v] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.st-card[b-txplhpgf2v] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: var(--fn-radius-sm); padding: 12px 14px; }
.st-card h3[b-txplhpgf2v] { 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-txplhpgf2v] { 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-txplhpgf2v] { display: flex; gap: 9px; padding: 6px 0; border-top: 1px solid var(--fn-border); font-size: 12.5px; }
.st-item:first-of-type[b-txplhpgf2v] { border-top: 0; }
.st-item .tone[b-txplhpgf2v] { flex: 0 0 8px; height: 8px; border-radius: 50%; margin-top: 5px; background: var(--fn-text-tertiary); }
.st-item .tone.positive[b-txplhpgf2v] { background: var(--fn-success); }
.st-item .tone.negative[b-txplhpgf2v] { background: var(--fn-danger); }
.st-item .tone.warning[b-txplhpgf2v] { background: var(--fn-warning); }
.st-item .tone.info[b-txplhpgf2v] { background: var(--fn-primary); }
.st-item .t[b-txplhpgf2v] { color: var(--fn-text-secondary); line-height: 1.45; }
.st-item .t .src[b-txplhpgf2v] { display: block; font-family: var(--fn-font-mono); font-size: 10px; color: var(--fn-text-tertiary); margin-top: 2px; }
.st-empty[b-txplhpgf2v] { font-size: 12.5px; color: var(--fn-text-tertiary); font-style: italic; }
.st-foot[b-txplhpgf2v] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 11px; color: var(--fn-text-tertiary); }
.st-llm[b-txplhpgf2v] { 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-txplhpgf2v] { font-size: 11px; }
.st-actions[b-txplhpgf2v] { 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-txplhpgf2v] { 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-txplhpgf2v]::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.pos-state.running[b-txplhpgf2v] { color: var(--fn-success); background: var(--fn-success-soft); }
.pos-state.paused[b-txplhpgf2v] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.pos-state.stopped[b-txplhpgf2v] { color: var(--fn-danger); background: var(--fn-danger-soft); }

.at-runband[b-txplhpgf2v] { 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-txplhpgf2v] { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; }
.run-state .pulse[b-txplhpgf2v] { width: 8px; height: 8px; border-radius: 50%; background: var(--fn-text-tertiary); }
.run-state.running .pulse[b-txplhpgf2v] { background: var(--fn-success); box-shadow: 0 0 0 3px var(--fn-success-soft); }
.run-state.paused .pulse[b-txplhpgf2v] { background: var(--fn-warning); }
.run-meta[b-txplhpgf2v] { color: var(--fn-text-tertiary); font: 10.5px var(--fn-font-mono, monospace); }
.at-sep[b-txplhpgf2v] { width: 1px; height: 17px; background: var(--fn-border); }
.run-alert[b-txplhpgf2v] { margin-left: auto; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.switch[b-txplhpgf2v] { display: inline-flex; align-items: center; gap: 7px; color: var(--fn-text-secondary); font-size: 11px; }

.at-kpis[b-txplhpgf2v] { display: grid; grid-template-columns: repeat(8, minmax(105px, 1fr)); border-bottom: 1px solid var(--fn-border); background: var(--fn-bg-alt); }
.kpi[b-txplhpgf2v] { min-height: 66px; padding: 10px 12px; border-right: 1px solid var(--fn-border); }
.kpi:last-child[b-txplhpgf2v] { border-right: 0; }
.kpi .k[b-txplhpgf2v] { 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-txplhpgf2v] { font: 700 16px/1.3 var(--fn-font-mono, monospace); margin-top: 4px; white-space: nowrap; }
.kpi .s[b-txplhpgf2v] { font-size: 10px; color: var(--fn-text-tertiary); margin-top: 2px; white-space: nowrap; }
.up[b-txplhpgf2v] { color: var(--fn-success) !important; }
.down[b-txplhpgf2v] { color: var(--fn-danger) !important; }
.warning[b-txplhpgf2v] { color: var(--fn-warning) !important; }
.teal[b-txplhpgf2v] { color: var(--fn-cat-teal) !important; }
.spark[b-txplhpgf2v] { display: flex; align-items: flex-end; gap: 2px; height: 22px; margin-top: 5px; }
.spark i[b-txplhpgf2v] { width: 5px; background: var(--fn-cat-teal); border-radius: 1px; opacity: .85; }
.spark i.dd[b-txplhpgf2v] { background: var(--fn-warning); }

.at-workspace[b-txplhpgf2v] { 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-txplhpgf2v] { display: flex; align-items: center; border-bottom: 1px solid var(--fn-border); min-height: 37px; flex-wrap: wrap; margin-bottom: 18px; }
.tabs[b-txplhpgf2v] { display: flex; align-self: stretch; gap: 6px; }
.tab[b-txplhpgf2v] { 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-txplhpgf2v] { 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-txplhpgf2v] { outline: none; }
.tab:focus-visible[b-txplhpgf2v] { 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-txplhpgf2v] { color: var(--fn-text); border-bottom-color: var(--fn-primary); font-weight: 600; }
.count[b-txplhpgf2v] { 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-txplhpgf2v] { color: var(--fn-text); }
.table-actions[b-txplhpgf2v] { margin-left: auto; display: flex; align-items: center; gap: 6px; padding-bottom: 5px; }
.table-actions .at-searchbox[b-txplhpgf2v] {
    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-txplhpgf2v] { 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-txplhpgf2v] { width: 14px; height: 14px; flex: none; display: inline-flex; align-items: center; justify-content: center; }
.table-actions .at-searchbox[b-txplhpgf2v]  .lucide { width: 14px; height: 14px; display: block; flex: none; }
.table-actions .at-iconact[b-txplhpgf2v]  .lucide { width: 15px; height: 15px; display: block; flex: none; }
.table-actions .at-searchbox input[b-txplhpgf2v] {
    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-txplhpgf2v]::placeholder { color: var(--fn-text-tertiary); }
.table-actions .at-iconact[b-txplhpgf2v] { width: 30px; height: 30px; min-width: 30px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.table-actions .at-iconact i[b-txplhpgf2v] { width: 15px; height: 15px; display: inline-flex; align-items: center; justify-content: center; }
.table-actions .at-create[b-txplhpgf2v] { height: 30px; padding: 0 16px; }
.at-refresh-note[b-txplhpgf2v] { 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-txplhpgf2v] { 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-txplhpgf2v] { background: var(--fn-warning); box-shadow: 0 0 0 2px var(--fn-warning-soft); }

.tab-panel[hidden][b-txplhpgf2v] { display: none; }
.callout[b-txplhpgf2v] { 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-txplhpgf2v] { border-left-color: var(--fn-cat-teal); background: var(--fn-cat-teal-soft); }
.callout.purple[b-txplhpgf2v] { border-left-color: var(--fn-cat-purple); background: var(--fn-cat-purple-soft); }
.callout strong[b-txplhpgf2v] { color: var(--fn-text); }

.protect-explainer[b-txplhpgf2v] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 10px; }
.pe-step[b-txplhpgf2v] { border: 1px solid var(--fn-border); border-radius: 8px; padding: 10px; background: var(--fn-bg-alt); }
.pe-step .pe-h[b-txplhpgf2v] { display: flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 700; color: var(--fn-cat-teal); }
.pe-step .pe-h .n[b-txplhpgf2v] { 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-txplhpgf2v] { margin: 6px 0 0; font-size: 10px; color: var(--fn-text-tertiary); line-height: 1.45; }

.table-section[b-txplhpgf2v] { margin-top: 10px; border: 1px solid var(--fn-border); border-radius: 10px; background: var(--fn-bg-alt); overflow: hidden; }
.section-head[b-txplhpgf2v] { 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-txplhpgf2v] { font-size: 12px; margin: 0; }
.section-head .sub[b-txplhpgf2v] { color: var(--fn-text-tertiary); font-size: 10.5px; }
.section-head .right[b-txplhpgf2v] { margin-left: auto; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.table-wrap[b-txplhpgf2v] { overflow-x: auto; max-width: 100%; }

.dir[b-txplhpgf2v] { font: 700 10px var(--fn-font-mono, monospace); }
.dir.long[b-txplhpgf2v] { color: var(--fn-success); }
.dir.short[b-txplhpgf2v] { color: var(--fn-danger); }
.mode-tag[b-txplhpgf2v] { 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-txplhpgf2v] { background: var(--fn-danger-soft); color: var(--fn-danger); }
.cell-stack b[b-txplhpgf2v], .cell-stack span[b-txplhpgf2v], .cell-stack small[b-txplhpgf2v] { display: block; }
.cell-stack b[b-txplhpgf2v] { font: 600 10.5px var(--fn-font-mono, monospace); }
.cell-stack small[b-txplhpgf2v] { font-size: 9px; color: var(--fn-text-tertiary); margin-top: 1px; }
.cell-stack small.quote-stamp[b-txplhpgf2v] { font: 8.5px var(--fn-font-mono, monospace); margin-top: 2px; }
.cell-stack small.quote-stamp.teal[b-txplhpgf2v] { color: var(--fn-cat-teal); }
.cell-stack small.quote-stamp.warning[b-txplhpgf2v] { color: var(--fn-warning); }
.fresh-dot[b-txplhpgf2v] { 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-txplhpgf2v] { background: var(--fn-success); box-shadow: 0 0 0 2px var(--fn-success-soft); }
.fresh-dot.fresh-yellow[b-txplhpgf2v] { background: var(--fn-warning); box-shadow: 0 0 0 2px var(--fn-warning-soft); }
.fresh-dot.fresh-red[b-txplhpgf2v] { background: var(--fn-danger); box-shadow: 0 0 0 2px var(--fn-danger-soft); }

.stopcell[b-txplhpgf2v] { display: flex; flex-direction: column; gap: 4px; }
.stop-venue[b-txplhpgf2v] { 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-txplhpgf2v] { color: var(--fn-warning); }
.stop-venue .dot[b-txplhpgf2v] { width: 6px; height: 6px; border-radius: 50%; background: var(--fn-cat-teal); }
.stop-venue.fin .dot[b-txplhpgf2v] { background: var(--fn-warning); }
.stop-venue.miss[b-txplhpgf2v] { color: var(--fn-danger); }
.stop-venue.miss .dot[b-txplhpgf2v] { background: var(--fn-danger); }
.lifecycle[b-txplhpgf2v] { display: flex; align-items: center; gap: 3px; max-width: 160px; }
.lc[b-txplhpgf2v] { flex: 1; height: 4px; border-radius: 2px; background: var(--fn-border-strong); }
.lc.done[b-txplhpgf2v] { background: var(--fn-cat-teal); }
.lc.now[b-txplhpgf2v] { background: var(--fn-cat-teal); box-shadow: 0 0 0 2px var(--fn-cat-teal-soft); }
.stop-meta[b-txplhpgf2v] { font: 9px var(--fn-font-mono, monospace); color: var(--fn-text-tertiary); }
.stop-meta b[b-txplhpgf2v] { color: var(--fn-text); font-weight: 600; }
.trail-live[b-txplhpgf2v] { color: var(--fn-cat-teal) !important; }

.reason-list[b-txplhpgf2v] { display: flex; flex-direction: column; }
.reason-row[b-txplhpgf2v] { 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-txplhpgf2v] { border: 0; }
.reason-row .kind[b-txplhpgf2v] { font: 700 10px var(--fn-font-mono, monospace); color: var(--fn-cat-teal); text-transform: uppercase; }
.reason-row .why[b-txplhpgf2v] { color: var(--fn-text-secondary); font-size: 10.5px; }
.empty-note[b-txplhpgf2v] { padding: 20px; text-align: center; color: var(--fn-text-tertiary); }
.at-foot[b-txplhpgf2v] { display: flex; align-items: flex-start; gap: 8px; margin-top: 9px; color: var(--fn-text-tertiary); font-size: 10px; }

.at-modal-layer[b-txplhpgf2v] { 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-txplhpgf2v] { 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-txplhpgf2v] { 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-txplhpgf2v] { 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-txplhpgf2v] { font-size: 14px; margin: 0; flex: 1; }
.at-modal-body[b-txplhpgf2v] { padding: 15px; }
.at-modal.confirm[b-txplhpgf2v] { width: min(460px, 100%); }
.at-modal.confirm.danger .at-modal-head h2[b-txplhpgf2v] { color: var(--fn-danger); }
.confirm-body[b-txplhpgf2v] { margin: 0; color: var(--fn-text-secondary); font-size: 12px; line-height: 1.5; }
.at-modal-foot[b-txplhpgf2v] { 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-txplhpgf2v] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.detail-block[b-txplhpgf2v] { border: 1px solid var(--fn-border); border-radius: 7px; background: var(--fn-bg-alt); padding: 11px; }
.detail-block h3[b-txplhpgf2v] { margin: 0 0 8px; font-size: 11px; display: flex; align-items: center; gap: 6px; }
.kv[b-txplhpgf2v] { display: grid; grid-template-columns: 1fr auto; gap: 5px 12px; font-size: 10.5px; }
.kv span:nth-child(odd)[b-txplhpgf2v] { color: var(--fn-text-tertiary); }
.kv span:nth-child(even)[b-txplhpgf2v] { text-align: right; font-family: var(--fn-font-mono, monospace); }
.guard-box[b-txplhpgf2v] { 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-txplhpgf2v] { 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). */
.at-modal.openpos[b-txplhpgf2v] { width: min(720px, 100%); }
.op-preview[b-txplhpgf2v] { margin: 10px 0 0; padding: 8px 10px; border: 1px solid var(--fn-border); border-radius: 7px; background: var(--fn-bg-alt); }
.op-grid[b-txplhpgf2v] { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 16px; margin-top: 12px; }
.op-fld[b-txplhpgf2v] { display: flex; flex-direction: column; gap: 5px; }
.op-fld > span[b-txplhpgf2v] { font-size: 9.5px; text-transform: uppercase; letter-spacing: .05em; color: var(--fn-text-tertiary); font-weight: 700; }
.op-inline[b-txplhpgf2v] { display: flex; gap: 6px; align-items: center; }
.op-inline input[b-txplhpgf2v] { flex: 1; min-width: 0; }
.op-inline select[b-txplhpgf2v] { flex: 0 0 96px; }
.op-msg[b-txplhpgf2v] { 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-txplhpgf2v] { position: relative; margin-top: 12px; }
.op-search-box[b-txplhpgf2v] { 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-txplhpgf2v] { 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-txplhpgf2v]  .lucide { width: 14px; height: 14px; display: block; }
.op-search-box input[b-txplhpgf2v] { width: 100%; padding-left: 31px; }
.op-hits[b-txplhpgf2v] { 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-txplhpgf2v] { 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-txplhpgf2v] { border-bottom: 0; }
.op-hit:hover[b-txplhpgf2v] { background: var(--fn-bg-muted); }
.op-hit-meta[b-txplhpgf2v] { font-family: var(--fn-font-mono, monospace); font-size: 11px; color: var(--fn-text-secondary); }
.op-search-note[b-txplhpgf2v] { margin-top: 6px; font-size: 10.5px; color: var(--fn-text-tertiary); }

@media (max-width: 640px) { .op-grid[b-txplhpgf2v] { grid-template-columns: 1fr; } }
@media (max-width: 1180px) { .at-kpis[b-txplhpgf2v] { grid-template-columns: repeat(4, 1fr); } .protect-explainer[b-txplhpgf2v] { grid-template-columns: 1fr 1fr; } }
@media (max-width: 850px) { .at-kpis[b-txplhpgf2v] { grid-template-columns: repeat(2, 1fr); } .detail-grid[b-txplhpgf2v] { grid-template-columns: 1fr; } .reason-row[b-txplhpgf2v] { grid-template-columns: 1fr; gap: 4px; } }
/* /Components/Charting/ChartStudioPage.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-gqg4n8uqka] {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Kopf: Titel (Icon + Modulname + Identität des aktiven Wertpapiers) links, Vollbild-Umschalter rechts. */
.cs-head[b-gqg4n8uqka] {
    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-title[b-gqg4n8uqka] { display: flex; align-items: center; gap: 11px; }
.cs-ico[b-gqg4n8uqka] {
    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-ico[b-gqg4n8uqka]  svg { width: 18px; height: 18px; }
.cs-title h1[b-gqg4n8uqka] { margin: 0; font-size: 18px; }

/* Vollbild-Umschalter */
.cs-fs-btn[b-gqg4n8uqka] {
    display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto;
    background: var(--fn-bg-alt); border: var(--fn-border-width) solid var(--fn-border);
    border-radius: 9px; padding: 7px 12px; cursor: pointer;
    color: var(--fn-text-secondary); font-family: var(--fn-font); font-size: 12.5px;
    font-weight: var(--fn-font-weight-medium); transition: all .14s;
}
.cs-fs-btn:hover[b-gqg4n8uqka] { color: var(--fn-text); border-color: var(--fn-border-strong); }
.cs-fs-btn.on[b-gqg4n8uqka] { color: var(--fn-primary); border-color: var(--fn-accent-line); background: var(--fn-accent-soft); }
.cs-fs-btn[b-gqg4n8uqka]  svg { width: 15px; height: 15px; }

/* Der ChartPanel-Host: das Panel begrenzt sich per FillViewport selbst auf die Viewport-Resthöhe. */
.cs-panel-host[b-gqg4n8uqka] { flex: 1 1 auto; min-height: 0; }

/* Vollbild: überdeckt den gesamten Bildschirm (inkl. Fenster/News-Spalte). ChartPanel.refit zieht die Höhe nach. */
.cs-shell.cs-fullscreen[b-gqg4n8uqka] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: var(--fn-bg);
    overflow-y: auto;
}

/* „Mehr sehen" — ein-/ausklappbarer Info-Block zum aktiven Wertpapier. */
.cs-info[b-gqg4n8uqka] { flex: 0 0 auto; margin: 12px 16px; border: 1px solid var(--fn-border); border-radius: var(--fn-radius); background: var(--fn-bg-alt); overflow: hidden; }
.cs-info-toggle[b-gqg4n8uqka] { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; background: transparent; border: 0; cursor: pointer; color: var(--fn-text-secondary); font-size: 11px; font-weight: var(--fn-font-weight-bold); letter-spacing: .05em; text-transform: uppercase; }
.cs-info-toggle:hover[b-gqg4n8uqka] { color: var(--fn-text); }
.cs-info-toggle .chev[b-gqg4n8uqka] { color: var(--fn-text-tertiary); }
.cs-info-body[b-gqg4n8uqka] { padding: 6px 14px 14px; border-top: 1px solid var(--fn-border); }
.cs-info-empty[b-gqg4n8uqka] { padding: 14px 4px 2px; color: var(--fn-text-tertiary); font-size: 12.5px; }

.cs-empty[b-gqg4n8uqka] {
    display: flex; align-items: center; justify-content: center;
    min-height: calc(100vh - 200px);
    color: var(--fn-text-tertiary); font-size: 14px;
}
/* /Components/Charting/FnIndicatorUnit.razor.rz.scp.css */
/* Split-Einheit eines Indikators im Panel-Kopf.
   1:1 aus dem Design-Standard "Indikator-Splitmenue" (abgenommen 02.08.2026).
   Farben ausschliesslich als --fn-*-Token.

   KERNREGEL: Die Huelle traegt den Rahmen, nicht die Teile. */

.cw-lgs[b-vbhd2gez2o] {
    position: relative;
    display: inline-flex;
    align-items: stretch;
    flex: 0 0 auto;
    border: 1px solid transparent;
    border-radius: var(--fn-radius-pill);
    background: transparent;
    transition: border-color .14s, background .14s;
}

.cw-lgs:hover[b-vbhd2gez2o],
.cw-lgs:focus-within[b-vbhd2gez2o] {
    border-color: var(--fn-border-strong);
    background: var(--fn-bg-alt);
}

.cw-lgs.sel[b-vbhd2gez2o],
.cw-lgs.menu-open[b-vbhd2gez2o] {
    border-color: var(--fn-cat-purple);
    background: var(--fn-cat-purple-soft);
}

/* Verbunden mit der Steuerspalte. Zwei Wege fuehren hierher, ein Aussehen:
     .linked        -> Blazor (Pille angeschaltet) — bleibt stehen
     .linked-hover  -> JS (Pille ueberfahren) — reine Vorschau, endet mit dem Zeiger
   Getrennte Klassen, weil sonst JS und Blazor um dieselbe Klasse streiten wuerden. */
.cw-lgs.linked[b-vbhd2gez2o],
.cw-lgb.linked[b-vbhd2gez2o],
.cw-lgs.linked-hover[b-vbhd2gez2o],
.cw-lgb.linked-hover[b-vbhd2gez2o] {
    border-color: var(--fn-primary);
    background: var(--fn-accent-soft);
}

/* --- Hauptteil: Farbstrich, Name, ziehbare Zahlen, Wert ------------------- */

.cw-lgs__main[b-vbhd2gez2o] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 4px 3px 8px;
    background: transparent;
    border: none;
    border-radius: var(--fn-radius-pill) 0 0 var(--fn-radius-pill);
    color: inherit;
    font-family: var(--fn-font);
    font-size: 11.5px;
    cursor: pointer;
    white-space: nowrap;
}

.cw-lgs__main i[b-vbhd2gez2o] {
    width: 12px;
    height: 3px;
    border-radius: 2px;
    background: currentColor;
    display: inline-block;
    flex: 0 0 12px;
}

.cw-lgs__main b[b-vbhd2gez2o] {
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text);
}

.cw-lgs__nums[b-vbhd2gez2o] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 0 2px;
}

.cw-num[b-vbhd2gez2o] {
    font-family: var(--fn-font-mono);
    font-size: 10.5px;
    font-variant-numeric: tabular-nums;
    padding: 1px 5px;
    border-radius: 5px;
    background: var(--fn-cat-gold-soft);
    color: var(--fn-cat-gold);
    border: 1px solid transparent;
    cursor: ew-resize;
    user-select: none;
    /* „all", nicht nur border-color: beim Ziehen wechseln auch Flaeche und Schriftfarbe
       (.cw-num.scrub) — so wie in der abgenommenen Vorschau. */
    transition: all .12s;
}

.cw-num:hover[b-vbhd2gez2o],
.cw-num:focus-visible[b-vbhd2gez2o] {
    border-color: var(--fn-cat-gold);
}

/* Waehrend des Ziehens dreht sich der Kontrast um — die Zahl, an der die Hand haengt, ist
   unverwechselbar. 1:1 aus der abgenommenen Vorschau (VORSCHAU-Prism-B2-Indikator-Splitmenue). */
.cw-num.scrub[b-vbhd2gez2o] {
    background: var(--fn-cat-gold);
    color: var(--fn-on-primary);
    border-color: var(--fn-cat-gold);
}

/* Doppelklick tippt: dasselbe Feld wird zur Eingabe — Cursor und Rahmen sagen es. */
.cw-num[contenteditable="true"][b-vbhd2gez2o] {
    background: var(--fn-input-bg);
    color: var(--fn-text);
    border-color: var(--fn-primary);
    cursor: text;
}

.cw-lgs__val[b-vbhd2gez2o] {
    display: inline-flex;
    align-items: center;
    padding: 0 4px;
    font-family: var(--fn-font-mono);
    font-size: 11px;
    color: var(--fn-text-secondary);
    font-variant-numeric: tabular-nums;
    min-width: 40px;
    justify-content: flex-end;
}

/* --- Trenner und Menue: im Ruhezustand leise, bei Hover da ---------------- */

.cw-lgs__sep[b-vbhd2gez2o] {
    width: 1px;
    background: var(--fn-border-strong);
    align-self: stretch;
    margin: 5px 0;
    opacity: .30;
    transition: opacity .14s;
}

.cw-lgs__menu[b-vbhd2gez2o] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 19px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0 var(--fn-radius-pill) var(--fn-radius-pill) 0;
    color: var(--fn-text-tertiary);
    cursor: pointer;
    opacity: .30;
    transition: opacity .14s, color .14s, background .14s;
}

.cw-lgs__menu svg[b-vbhd2gez2o] {
    width: 12px;
    height: 12px;
}

.cw-lgs:hover .cw-lgs__sep[b-vbhd2gez2o],
.cw-lgs:focus-within .cw-lgs__sep[b-vbhd2gez2o],
.cw-lgs.menu-open .cw-lgs__sep[b-vbhd2gez2o] {
    opacity: 1;
}

.cw-lgs:hover .cw-lgs__menu[b-vbhd2gez2o],
.cw-lgs:focus-within .cw-lgs__menu[b-vbhd2gez2o] {
    opacity: 1;
}

.cw-lgs__menu:hover[b-vbhd2gez2o] {
    color: var(--fn-text);
    background: var(--fn-hover);
}

.cw-lgs.menu-open .cw-lgs__menu[b-vbhd2gez2o] {
    opacity: 1;
    color: var(--fn-cat-purple);
}

/* --- Marker: gefuellter Punkt = eigene Fassung, offener Ring = ungespeichert
       Drei Unterschiede (Farbe, Form, Groesse), damit sie nie verwechselt werden. --- */

.cw-lgs__dot[b-vbhd2gez2o] {
    position: absolute;
    top: -1px;
    right: 14px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--fn-cat-gold);
    pointer-events: none;
}

.cw-lgs__ring[b-vbhd2gez2o] {
    position: absolute;
    top: -2px;
    right: 13px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: transparent;
    border: 1.5px solid var(--fn-primary);
    pointer-events: none;
}

/* --- Einfacher Eintrag: eingebaut, KEIN Split ----------------------------- */

.cw-lgb[b-vbhd2gez2o] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 8px;
    border: 1px solid transparent;
    border-radius: var(--fn-radius-pill);
    font-size: 11.5px;
    background: transparent;
    transition: border-color .14s, background .14s;
}

.cw-lgb:hover[b-vbhd2gez2o] {
    border-color: var(--fn-border-strong);
    background: var(--fn-bg-alt);
}

.cw-lgb i[b-vbhd2gez2o] {
    width: 12px;
    height: 3px;
    border-radius: 2px;
    background: currentColor;
    flex: 0 0 12px;
}

.cw-lgb i.dashed[b-vbhd2gez2o] {
    height: 0;
    border-top: 2px dashed currentColor;
    background: transparent;
}

.cw-lgb b[b-vbhd2gez2o] {
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text);
}

.cw-lgb .lock[b-vbhd2gez2o] {
    color: var(--fn-text-tertiary);
    display: inline-flex;
    align-items: center;
}

.cw-lgb .lock svg[b-vbhd2gez2o] {
    width: 11px;
    height: 11px;
}

/* --- Verwaltungsmenue -----------------------------------------------------
   1:1 aus der abgenommenen Vorschau VORSCHAU-Prism-B2-Indikator-Splitmenue.html
   (Abschnitt „NEU (B2) — Das Verwaltungs-Menue hinter den drei Punkten").

   align-items/gap/line-height stehen hier AUSDRUECKLICH, obwohl sie Standardwerte
   wiederholen: Das Menue haengt im DOM unter .cw-legend, und fn-chart.css traegt dort
   die ungescopte Regel ".cw-legend span { display:inline-flex; align-items:center;
   gap:6px; }". Solange das Menue aus <span>-Elementen bestand, erbte es daraus
   6px Zeilenabstand, einen zentrierten Kopf und auf Breite 0 gestauchte Trenner —
   das waren die „merkwuerdigen Luecken" (Niko 03.08.2026). Das Markup nutzt jetzt
   <div>; die Angaben bleiben als Schutz gegen den naechsten Nachbarn stehen. */

/* Klick daneben schliesst das Menue. Die Flaeche liegt UNTER dem Menue (z-index 39 gegen 40) und
   ueber allem anderen — dasselbe Muster wie beim Handelsmenue im selben Canvas. Sie ist fest am
   Bildschirm verankert, weil die Einheit selbst in einem scrollenden Kopf sitzt. */
.cw-menu-backdrop[b-vbhd2gez2o] {
    position: fixed;
    inset: 0;
    z-index: 39;
}

.cw-menu[b-vbhd2gez2o] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 40;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    /* width:max-content, weil das Menue hier absolut IN der schmalen Einheit haengt: ohne
       das bekaeme es nur deren Breite als Angebot, und der laengste Eintrag braeche um.
       In der Vorschau steht das Menue fix am Fenster und misst sich von selbst so. */
    width: max-content;
    min-width: 252px;
    max-width: 300px;
    /* Die Vorschau nutzt hier --fn-surface (schwebende Flaeche). Das Gate FINLIST004 gibt
       diesen Token nur einer festen Dateiliste frei, und diese Liste aendert allein Niko —
       deshalb bleibt es beim bisherigen --fn-bg-alt. Einziger Unterschied zur Vorschau. */
    background: var(--fn-bg-alt);
    border: var(--fn-border-width) solid var(--fn-border-strong);
    border-radius: var(--fn-radius-sm);
    padding: 6px;
    box-shadow: var(--fn-elevation-3);
}

/* Farbreihe im Menue (§5d, fester Platz zwischen "Parameter anpassen" und "eigenes Panel").
   Die neun Felder tragen die Farbworte der Sprache — jedes als Token, nie als Hex. */
.cw-mi-colors[b-vbhd2gez2o] {
    display: flex;
    align-items: center;
    gap: 7px;
    cursor: default;
}

.cw-mi-colors__label[b-vbhd2gez2o] { flex: 0 0 auto; }

.cw-mi-colors__row[b-vbhd2gez2o] {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
}

.cw-swatch[b-vbhd2gez2o] {
    width: 13px;
    height: 13px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid var(--fn-border-strong);
    cursor: pointer;
}

.cw-swatch:hover[b-vbhd2gez2o],
.cw-swatch:focus-visible[b-vbhd2gez2o] {
    outline: 2px solid var(--fn-primary);
    outline-offset: 1px;
}

.cw-swatch.c-teal[b-vbhd2gez2o]   { background: var(--fn-cat-teal); }
.cw-swatch.c-blue[b-vbhd2gez2o]   { background: var(--fn-cat-blue); }
.cw-swatch.c-purple[b-vbhd2gez2o] { background: var(--fn-cat-purple); }
.cw-swatch.c-orange[b-vbhd2gez2o] { background: var(--fn-cat-orange); }
.cw-swatch.c-gold[b-vbhd2gez2o]   { background: var(--fn-cat-gold); }
.cw-swatch.c-pink[b-vbhd2gez2o]   { background: var(--fn-cat-pink); }
.cw-swatch.c-green[b-vbhd2gez2o]  { background: var(--fn-success); }
.cw-swatch.c-red[b-vbhd2gez2o]    { background: var(--fn-danger); }
.cw-swatch.c-gray[b-vbhd2gez2o]   { background: var(--fn-text-tertiary); }

.cw-menu-head[b-vbhd2gez2o] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 5px 8px 8px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
    margin-bottom: 5px;
}

.cw-menu-head i[b-vbhd2gez2o] {
    width: 12px;
    height: 3px;
    border-radius: 2px;
    background: currentColor;
    flex: 0 0 12px;
}

.cw-menu-head b[b-vbhd2gez2o] {
    font-size: 12.5px;
    font-weight: var(--fn-font-weight-bold);
    color: var(--fn-text);
}

/* --- Menueeintrag: Icon, Text, optionaler Hinweis rechts ------------------ */

.cw-mi[b-vbhd2gez2o] {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 7px 9px;
    background: transparent;
    border: var(--fn-border-width) solid transparent;
    border-radius: 7px;
    color: var(--fn-text-secondary);
    font-family: var(--fn-font);
    font-size: 12.5px;
    line-height: 1.25;
    text-align: left;
    cursor: pointer;
    transition: all .12s;
}

/* Kein Eintrag ohne Icon — die Groesse steht hier, nicht am einzelnen <svg>. */
.cw-mi svg[b-vbhd2gez2o] {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
}

.cw-mi:hover[b-vbhd2gez2o] {
    background: var(--fn-hover);
    color: var(--fn-text);
}

.cw-mi .tail[b-vbhd2gez2o] {
    margin-left: auto;
    font-family: var(--fn-font-mono);
    font-size: 10px;
    color: var(--fn-text-tertiary);
}

.cw-mi.warn:hover[b-vbhd2gez2o] {
    color: var(--fn-warning);
    background: var(--fn-warning-soft);
    border-color: var(--fn-warning);
}

.cw-mi.accent:hover[b-vbhd2gez2o] {
    color: var(--fn-primary);
    background: var(--fn-accent-soft);
    border-color: var(--fn-accent-line);
}

/* Der Trenner muss als LINIE zu sehen sein, nicht als Abstand: --fn-border liegt auf der
   Menueflaeche fast auf dem Untergrund (Delta unter 4 Helligkeitsstufen) — deshalb der
   kraeftigere Rahmen-Token (Niko 03.08.2026, am gerenderten Bild nachgemessen). */
.cw-menu-sep[b-vbhd2gez2o] {
    height: 1px;
    flex: 0 0 1px;
    background: var(--fn-border-strong);
    margin: 5px 3px;
}

/* --- Herkunft des Quelltexts, direkt ueber dem Zuruecksetzen -------------- */

.cw-menu-own[b-vbhd2gez2o] {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 6px 9px;
    margin: 4px 3px 2px;
    font-size: 11px;
    color: var(--fn-warning);
}

.cw-menu-own .dotmark[b-vbhd2gez2o] {
    width: 7px;
    height: 7px;
    border-radius: var(--fn-radius-round);
    background: var(--fn-cat-gold);
    flex: 0 0 7px;
}

.cw-menu-own.unsaved[b-vbhd2gez2o] {
    color: var(--fn-primary);
}

.cw-menu-own .ringmark[b-vbhd2gez2o] {
    width: 8px;
    height: 8px;
    border-radius: var(--fn-radius-round);
    border: 1.5px solid var(--fn-primary);
    flex: 0 0 8px;
}

/* --- Farbklassen der Kurven ---------------------------------------------- */

.k-teal[b-vbhd2gez2o]   { color: var(--fn-cat-teal); }
.k-blue[b-vbhd2gez2o]   { color: var(--fn-cat-blue); }
.k-gold[b-vbhd2gez2o]   { color: var(--fn-cat-gold); }
.k-purple[b-vbhd2gez2o] { color: var(--fn-cat-purple); }
.k-orange[b-vbhd2gez2o] { color: var(--fn-cat-orange); }
.k-pink[b-vbhd2gez2o]   { color: var(--fn-cat-pink); }

/* --- Kompakt: NUR Masse, keine Faehigkeit -------------------------------- */

.compact .cw-lgs__main[b-vbhd2gez2o] {
    padding: 1px 3px 1px 6px;
    font-size: 10.5px;
    gap: 5px;
}

.compact .cw-lgs__val[b-vbhd2gez2o] {
    display: none;
}

.compact .cw-lgs__menu[b-vbhd2gez2o] {
    width: 16px;
}
/* /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-xt6i7qs91b] {
    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-xt6i7qs91b] {
    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-xt6i7qs91b] {
    width: 12px;
    height: 3px;
    border-radius: 2px;
    background: currentColor;
    flex: 0 0 12px;
}

.cw-parms__head b[b-xt6i7qs91b] {
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text);
}

.cw-parms__none[b-xt6i7qs91b] {
    font-size: 12px;
    color: var(--fn-text-tertiary);
}

.cw-parms__rows[b-xt6i7qs91b] {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.cw-parm[b-xt6i7qs91b] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cw-parm__text[b-xt6i7qs91b] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    flex: 1 1 auto;
    min-width: 0;
}

.cw-parm__text b[b-xt6i7qs91b] {
    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-xt6i7qs91b] {
    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-xt6i7qs91b]  .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-xt6i7qs91b] {
    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-xt6i7qs91b] {
    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-xt6i7qs91b] {
    border-color: var(--fn-border-strong);
    color: var(--fn-text);
}

.cw-parms__scope[b-xt6i7qs91b] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-top: 1px solid var(--fn-border);
}

.cw-parms__scope-label[b-xt6i7qs91b] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--fn-text-secondary);
    font-size: 12px;
}

/* /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-lvetasn4t4] { padding: 22px 26px 48px; display: flex; flex-direction: column; gap: 22px; max-width: 1100px; }

.ds-head h1[b-lvetasn4t4] { font-size: 21px; display: flex; align-items: center; gap: 10px; margin: 0 0 4px; }
.ds-eyebrow[b-lvetasn4t4] { 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-lvetasn4t4] { color: var(--fn-text-secondary); font-size: 13px; margin: 0; max-width: 920px; line-height: 1.6; }
.ds-lead[b-lvetasn4t4]  code, .ds-sec h2 code[b-lvetasn4t4] { font-size: 11.5px; color: var(--fn-text-tertiary); }

.ds-sec[b-lvetasn4t4] { 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-lvetasn4t4] { font-size: 14px; margin: 0; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.ds-note[b-lvetasn4t4] { font-size: 11.5px; font-weight: 400; color: var(--fn-text-tertiary); }
.ds-note-line[b-lvetasn4t4] { font-size: 12px; color: var(--fn-text-tertiary); }

.ds-row[b-lvetasn4t4] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ds-grid[b-lvetasn4t4] { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px 18px; align-items: start; }
.ds-wide[b-lvetasn4t4] { grid-column: 1 / -1; }

.ds-chip[b-lvetasn4t4] { 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-lvetasn4t4] { 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-lvetasn4t4] { font-size: 15px; font-weight: 600; color: var(--fn-text); }
.ds-card-sub[b-lvetasn4t4] { 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-lvetasn4t4] { font-size: 12.5px; color: var(--fn-text-secondary); }

.ds-warn[b-lvetasn4t4] { font-size: 12px; color: var(--fn-warning); }
.ds-plus[b-lvetasn4t4] { font-size: 13px; line-height: 1; }
.ds-dialogfoot-demo[b-lvetasn4t4] { display: flex; flex-direction: column; gap: 10px; }

/* Dock-Muster: die Seite scrollt selbst — das Dock ist hier nur Ausstellungsstück. */
.ds-dock[b-lvetasn4t4] { position: static; }
/* /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-7gxjjwshti] {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.perf-toggle[b-7gxjjwshti] {
    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-7gxjjwshti] { color: var(--fn-text); background: var(--fn-hover); }
.perf-toggle .perf-name[b-7gxjjwshti] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; }
.perf-toggle .perf-ms[b-7gxjjwshti] { flex: 0 0 auto; }

.perf-time[b-7gxjjwshti] { font-family: ui-monospace, monospace; color: var(--fn-text-tertiary); font-size: 11px; }
.perf-name[b-7gxjjwshti] { color: var(--fn-text); font-weight: var(--fn-font-weight-medium); }
.perf-ms[b-7gxjjwshti]   { font-family: ui-monospace, monospace; font-weight: var(--fn-font-weight-bold); color: var(--fn-text); }
.perf-ms.is-fail[b-7gxjjwshti] { color: var(--fn-danger); }

.perf-dot[b-7gxjjwshti] {
    width: 8px; height: 8px; border-radius: var(--fn-radius-round);
    background: var(--fn-text-tertiary); flex: 0 0 8px;
}
.perf-dot.cat-startup[b-7gxjjwshti]   { background: var(--fn-primary); }
.perf-dot.cat-screen[b-7gxjjwshti]    { background: var(--fn-success); }
.perf-dot.cat-component[b-7gxjjwshti] { background: var(--fn-warning); }

/* Expanded recent list — popover above the toggle, sized to the sidebar width. */
.perf-list[b-7gxjjwshti] {
    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-7gxjjwshti] {
    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-7gxjjwshti] { font-family: ui-monospace, monospace; }
.perf-row[b-7gxjjwshti] {
    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-7gxjjwshti] { background: var(--fn-hover); }
.perf-row.is-fail .perf-ms[b-7gxjjwshti] { color: var(--fn-danger); }
.perf-row .perf-name[b-7gxjjwshti] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.perf-empty[b-7gxjjwshti] { 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-r4aixykht4] { width: 100%; padding: 20px 24px 48px; }

.crumb[b-r4aixykht4] { 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-r4aixykht4] { 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-r4aixykht4]  svg, .crumb .back[b-r4aixykht4]  [data-lucide] { width: 18px; height: 18px; }
.crumb strong[b-r4aixykht4] { color: var(--fn-text); font-weight: 700; }

.lead[b-r4aixykht4] { color: var(--fn-text-secondary); font-size: 13px; margin: 0 0 16px; max-width: 820px; }
.note[b-r4aixykht4] { 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-r4aixykht4] { color: var(--fn-text); }

.fn-list-toolbar[b-r4aixykht4] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.fn-toolbar-search[b-r4aixykht4] { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 220px; padding: 6px 11px; border-radius: 8px; border: 1px solid var(--fn-border); background: var(--fn-input-bg); margin-left: auto; }
.fn-toolbar-search[b-r4aixykht4]  svg, .fn-toolbar-search[b-r4aixykht4]  [data-lucide] { width: 14px; height: 14px; color: var(--fn-text-tertiary); flex: none; }
.fn-toolbar-search input[b-r4aixykht4] { flex: 1; min-width: 0; border: none; background: transparent; outline: none; color: var(--fn-text); font: inherit; font-size: 12.5px; }
.fn-toolbar-refresh[b-r4aixykht4] { width: 30px; height: 30px; flex: none; 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; }
.fn-toolbar-refresh[b-r4aixykht4]  svg, .fn-toolbar-refresh[b-r4aixykht4]  [data-lucide] { width: 15px; height: 15px; }
.fn-toolbar-create[b-r4aixykht4] { display: inline-flex; align-items: center; gap: 8px; font-family: var(--fn-font); font-size: 13px; font-weight: 600; padding: 9px 18px; border-radius: var(--fn-radius-sm); border: 1px solid transparent; background: var(--fn-primary); color: var(--fn-on-primary); white-space: nowrap; cursor: pointer; }
.ei-status[b-r4aixykht4] { 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-r4aixykht4]  svg, .ei-status[b-r4aixykht4]  [data-lucide] { width: 15px; height: 15px; color: var(--fn-primary); flex: none; }

.eventbar[b-r4aixykht4] { display: flex; align-items: center; gap: 6px; margin-bottom: 14px; }
.eventbar .seg[b-r4aixykht4] { 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-r4aixykht4] { 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-r4aixykht4] { background: var(--fn-primary); color: var(--fn-on-primary); }
.eventbar .seg button[b-r4aixykht4]  svg, .eventbar .seg button[b-r4aixykht4]  [data-lucide] { width: 14px; height: 14px; }
.eventbar .hint[b-r4aixykht4] { color: var(--fn-text-tertiary); font-size: 12px; margin-left: 6px; }

.filter-row[b-r4aixykht4] { 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-r4aixykht4] { 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-r4aixykht4] { color: var(--fn-text); font-weight: 500; }
/* Export-Icons rechtsbündig in der Filterleiste (Niko 19.07.2026). */
.ei-export[b-r4aixykht4] { margin-left: auto; display: inline-flex; gap: 8px; }

.panel[b-r4aixykht4] { 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-r4aixykht4] { 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-r4aixykht4]  svg, .panel h2[b-r4aixykht4]  [data-lucide] { width: 15px; height: 15px; color: var(--fn-primary); }
.panel h2 .sub[b-r4aixykht4] { color: var(--fn-text-tertiary); font-weight: 500; font-size: 11.5px; margin-left: auto; }

.table-wrap[b-r4aixykht4] { overflow: auto; }
/* Grid erbt die Optik 1:1 von fn-list (wie die Watchliste). Hier NUR additiv: Breite, Zahl-Spalten, T0. */
table.matrix[b-r4aixykht4] { min-width: 1180px; }
table.matrix th[b-r4aixykht4], table.matrix td[b-r4aixykht4] { white-space: nowrap; }
table.matrix thead th[b-r4aixykht4] { position: sticky; top: 0; }
table.matrix th.num[b-r4aixykht4], table.matrix td.num[b-r4aixykht4] { text-align: right; font-family: var(--fn-font-mono); }
table.matrix th.lead-col[b-r4aixykht4] { text-align: left; position: sticky; }
table.matrix th.lead-col:first-child[b-r4aixykht4], table.matrix td.lead-col:first-child[b-r4aixykht4] {
    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-r4aixykht4] { overflow: hidden; }
table.matrix th.event-col[b-r4aixykht4], table.matrix td.event-col[b-r4aixykht4] {
    width: var(--ei-event-width);
    min-width: var(--ei-event-width);
    max-width: var(--ei-event-width);
}
table.matrix td.event-col[b-r4aixykht4] { overflow: hidden; text-overflow: ellipsis; }
.ei-column-resizer[b-r4aixykht4] { position: absolute; top: 0; right: 0; width: 12px; height: 100%; cursor: col-resize; touch-action: none; z-index: 10; }
.ei-column-resizer[b-r4aixykht4]::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-r4aixykht4], .ei-column-resizer:focus-visible[b-r4aixykht4] { background: var(--fn-accent-soft); outline: none; }
.ei-column-resizer:hover[b-r4aixykht4]::after, .ei-column-resizer:focus-visible[b-r4aixykht4]::after { background: var(--fn-primary); width: 3px; }
.ei-sort-head[b-r4aixykht4] { 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-r4aixykht4], .ei-sort-head.active[b-r4aixykht4] { color: var(--fn-primary); }
.ei-sort-head[b-r4aixykht4]  svg, .ei-sort-head[b-r4aixykht4]  [data-lucide] { width: 13px; height: 13px; flex: none; }
table.matrix th.t0[b-r4aixykht4], table.matrix td.t0[b-r4aixykht4] { background: var(--fn-accent-soft); }
.up[b-r4aixykht4] { color: var(--fn-success); }
.down[b-r4aixykht4] { color: var(--fn-danger); }
.flat[b-r4aixykht4] { color: var(--fn-text-secondary); }
.nd[b-r4aixykht4] { color: var(--fn-warning); font-family: var(--fn-font-mono); font-size: 11px; }
tr.sec td[b-r4aixykht4] { cursor: pointer; }
tr.sec:hover td[b-r4aixykht4] { background: var(--fn-hover); }
tr.sec.sel td[b-r4aixykht4] { background: var(--fn-accent-soft); }
.fn-stack .main[b-r4aixykht4] { font-weight: 500; }
.fn-sym[b-r4aixykht4] { font-family: var(--fn-font-mono); font-size: 12px; color: var(--fn-cat-blue); font-weight: 700; }
.sec-ids[b-r4aixykht4] { font-family: var(--fn-font-mono); font-size: 10.5px; color: var(--fn-text-secondary); margin-top: 1px; }
.evdate[b-r4aixykht4] { color: var(--fn-text-tertiary); font-size: 11px; }
.t0-bubble[b-r4aixykht4] { 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-r4aixykht4] { 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-r4aixykht4] { 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-r4aixykht4] { 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-r4aixykht4] { color: var(--fn-success); font-size: 11px; }

.detail-head[b-r4aixykht4] { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--fn-border); }
.detail-head .fn-sym[b-r4aixykht4] { font-size: 13px; }
.detail-head .nm[b-r4aixykht4] { font-weight: 600; }
.detail-head .chip[b-r4aixykht4] { 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-r4aixykht4] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 12px; }
.metric[b-r4aixykht4] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 10px; padding: 10px; }
.metric span[b-r4aixykht4] { display: block; color: var(--fn-text-tertiary); font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; }
.metric b[b-r4aixykht4] { display: block; margin-top: 3px; font-size: 14.5px; }
.metric small[b-r4aixykht4] { display: block; color: var(--fn-text-secondary); font-size: 11px; margin-top: 2px; }
.reaction[b-r4aixykht4] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 0 12px 12px; }
.reaction .metric b[b-r4aixykht4] { font-family: var(--fn-font-mono); }
.dl-title[b-r4aixykht4] { font-size: 12px; font-weight: 600; color: var(--fn-text-secondary); padding: 6px 12px 8px; }
.legend[b-r4aixykht4] { 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-r4aixykht4] { display: inline-flex; align-items: center; gap: 6px; }
.dot[b-r4aixykht4] { width: 9px; height: 9px; border-radius: 2px; display: inline-block; }
.dot.up[b-r4aixykht4] { background: var(--fn-success); }
.dot.down[b-r4aixykht4] { background: var(--fn-danger); }
.dot.warn[b-r4aixykht4] { background: var(--fn-warning); }
/* Legenden-Punkte für die Bubble-Farben (rund = Bubble, eckig = Zellwert). */
.dot.cmp[b-r4aixykht4] { background: var(--fn-warning); border-radius: 50%; }
.dot.next[b-r4aixykht4] { background: var(--fn-warning); border-radius: 50%; }

.ei-group[b-r4aixykht4] { max-width: 260px; }
tr.ei-grp td[b-r4aixykht4] { 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-r4aixykht4] { 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-r4aixykht4] { display: flex; gap: 16px; align-items: stretch; }
.ei-split.sidebar-collapsed[b-r4aixykht4] { gap: 0; }
.ei-split > .panel[b-r4aixykht4] { flex: 1; min-width: 0; margin-bottom: 0; }
.ei-sidebar[b-r4aixykht4] { 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-r4aixykht4] { 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-toggle[b-r4aixykht4] { width: 26px; height: 26px; padding: 0; flex: 0 0 26px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--fn-border); border-radius: 6px; background: none; color: var(--fn-text-secondary); cursor: pointer; }
.ei-sidebar-toggle:hover[b-r4aixykht4] { color: var(--fn-text); border-color: var(--fn-primary); }
.ei-sidebar-toggle[b-r4aixykht4]  .lucide { width: 14px; height: 14px; }
.ei-sidebar-reopen[b-r4aixykht4] { margin: 0; }
.ei-sb-empty[b-r4aixykht4] { padding: 28px 16px; 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-head[b-r4aixykht4] { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--fn-border); }
.ei-sb-id .main[b-r4aixykht4] { font-weight: 600; color: var(--fn-text); }
.ei-sb-close[b-r4aixykht4] { 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-r4aixykht4]  svg, .ei-sb-close[b-r4aixykht4]  [data-lucide] { width: 15px; height: 15px; }
.ei-sb-body[b-r4aixykht4] { flex: 1; min-height: 0; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 14px; }
.ei-sb-event[b-r4aixykht4] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; }
.ei-sb-hero[b-r4aixykht4] { display: flex; flex-direction: column; gap: 2px; }
.ei-sb-hero-label[b-r4aixykht4] { color: var(--fn-text-tertiary); font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; }
.ei-sb-hero-num[b-r4aixykht4] { 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-r4aixykht4] { display: flex; align-items: baseline; gap: 8px; margin-top: 4px; }
.ei-sb-today .lbl[b-r4aixykht4] { color: var(--fn-text-tertiary); font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; }
.ei-sb-today b[b-r4aixykht4] { font-family: var(--fn-font-mono); font-size: 17px; font-weight: 700; color: var(--fn-text); }
.ei-sb-spark[b-r4aixykht4] { background: var(--fn-bg-muted); border: 1px solid var(--fn-border); border-radius: var(--fn-radius); padding: 10px; }
.ei-sb-react[b-r4aixykht4] { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.ei-sb-react .metric[b-r4aixykht4] { background: var(--fn-bg-muted); border: 1px solid var(--fn-border); border-radius: 10px; padding: 9px 10px; }
.ei-sb-react .metric span[b-r4aixykht4] { display: block; color: var(--fn-text-tertiary); font-size: 10.5px; }
.ei-sb-react .metric b[b-r4aixykht4] { display: block; margin-top: 2px; font-family: var(--fn-font-mono); font-size: 14px; }
.ei-sb-details summary[b-r4aixykht4] { cursor: pointer; color: var(--fn-text-secondary); font-size: 12px; font-weight: 600; padding: 6px 0; }
table.ei-sb-table td[b-r4aixykht4] { padding: 5px 7px; }
.ei-sb-funda[b-r4aixykht4] { border: 1px dashed var(--fn-border-strong); border-radius: var(--fn-radius); padding: 12px; }
.ei-sb-funda-head[b-r4aixykht4] { 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-r4aixykht4] { color: var(--fn-text-tertiary); font-weight: 500; }
.ei-sb-funda-empty[b-r4aixykht4] { display: flex; flex-direction: column; align-items: center; gap: 4px; color: var(--fn-warning); text-align: center; padding: 8px; }
.ei-sb-funda-empty[b-r4aixykht4]  svg { width: 18px; height: 18px; }
.ei-sb-funda-empty small[b-r4aixykht4] { color: var(--fn-text-tertiary); }

/* Titelzeile (Icon + Modulname) statt „Zurück" — kein Back-Button auf dieser Menü-Ebene. */
.ei-title[b-r4aixykht4] { display: flex; align-items: center; gap: 10px; margin: 4px 0 8px; }
.ei-title h1[b-r4aixykht4] { font-size: 20px; font-weight: 700; margin: 0; color: var(--fn-text); }
.ei-title[b-r4aixykht4]  svg, .ei-title[b-r4aixykht4]  [data-lucide] { width: 22px; height: 22px; color: var(--fn-primary); }

/* Echter ChartPanel in der Sidebar (feste Fläche) + faktischer Kommentar. */
.ei-sb-chart[b-r4aixykht4] { 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-r4aixykht4] { font-size: 12px; color: var(--fn-text-secondary); line-height: 1.55; }

/* ===== Universum verwalten: Toolbar-Primäraktion, Herkunft, Zeilen-Aktionen, Dialoge ===== */
.fn-toolbar-create[b-r4aixykht4] { display: inline-flex; align-items: center; gap: 8px; font-family: var(--fn-font); font-size: 13px; font-weight: 600; padding: 9px 18px; border-radius: var(--fn-radius-sm); border: 1px solid transparent; background: var(--fn-primary); color: var(--fn-on-primary); white-space: nowrap; cursor: pointer; }
.fn-toolbar-create:hover[b-r4aixykht4] { background: var(--fn-primary-hover); }

.ei-origin-col[b-r4aixykht4], .ei-act-col[b-r4aixykht4] { text-align: center; }
.ei-origin[b-r4aixykht4] { text-align: center; }
.src[b-r4aixykht4] { 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-r4aixykht4] { color: var(--fn-cat-gold); border-color: var(--fn-cat-gold); background: var(--fn-warning-soft); }
.src.man[b-r4aixykht4] { color: var(--fn-text-secondary); }
.src[b-r4aixykht4]  svg { width: 12px; height: 12px; }

.ei-act[b-r4aixykht4] { text-align: center; white-space: nowrap; }
.ei-acts[b-r4aixykht4] { display: inline-flex; gap: 6px; }
.ei-ic[b-r4aixykht4] { 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-r4aixykht4] { background: var(--fn-hover); color: var(--fn-text); }
.ei-ic.danger:hover[b-r4aixykht4] { color: var(--fn-danger); border-color: var(--fn-danger); }
.ei-ic:disabled[b-r4aixykht4] { opacity: .35; cursor: not-allowed; }
.ei-ic[b-r4aixykht4]  svg { width: 15px; height: 15px; }

.ei-modal-scrim[b-r4aixykht4] { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 24px; background: color-mix(in srgb, var(--fn-bg) 62%, transparent); }
.ei-modal[b-r4aixykht4] { width: 520px; max-width: 100%; background: var(--fn-bg-alt); border: 1px solid var(--fn-border-strong); border-radius: var(--fn-radius-lg); box-shadow: var(--fn-elevation-3); }
.ei-modal.narrow[b-r4aixykht4] { width: 440px; }
.ei-modal-head[b-r4aixykht4] { display: flex; align-items: center; gap: 9px; padding: 14px 16px; border-bottom: 1px solid var(--fn-border); }
.ei-modal-head h3[b-r4aixykht4] { font-size: 14px; font-weight: 600; margin: 0; display: flex; align-items: center; gap: 8px; color: var(--fn-text); }
.ei-modal-head h3[b-r4aixykht4]  svg { width: 17px; height: 17px; color: var(--fn-primary); }
.ei-modal-head .ei-ic[b-r4aixykht4] { margin-left: auto; }
.ei-modal-body[b-r4aixykht4] { padding: 14px 16px; }
.ei-modal-foot[b-r4aixykht4] { display: flex; justify-content: flex-end; gap: 9px; padding: 12px 16px; border-top: 1px solid var(--fn-border); }

.ei-search-box[b-r4aixykht4] { 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-r4aixykht4]  svg { width: 15px; height: 15px; color: var(--fn-text-tertiary); }
.ei-search-box input[b-r4aixykht4] { flex: 1; border: none; background: transparent; outline: none; color: var(--fn-text); font: inherit; font-size: 13px; }
.ei-hint[b-r4aixykht4] { color: var(--fn-text-tertiary); font-size: 11.5px; margin: 8px 2px 0; display: flex; align-items: center; gap: 6px; }
.ei-hint[b-r4aixykht4]  svg { width: 13px; height: 13px; flex: none; }
.ei-hits[b-r4aixykht4] { margin-top: 12px; border: 1px solid var(--fn-border); border-radius: 10px; overflow: hidden; max-height: 320px; overflow-y: auto; }
.ei-hcount[b-r4aixykht4] { 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-r4aixykht4] { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-bottom: 1px solid var(--fn-border); cursor: pointer; }
.ei-hit:last-child[b-r4aixykht4] { border-bottom: none; }
.ei-hit:hover[b-r4aixykht4], .ei-hit.sel[b-r4aixykht4] { background: var(--fn-accent-soft); }
.ei-hit-stk[b-r4aixykht4] { flex: 1; min-width: 0; }
.ei-hit-check[b-r4aixykht4] { color: var(--fn-primary); }
.ei-hit[b-r4aixykht4]  svg { width: 16px; height: 16px; }

.ei-lbl[b-r4aixykht4] { font-size: 11px; color: var(--fn-text-tertiary); text-transform: uppercase; letter-spacing: .06em; margin: 0 0 6px; }
.ei-mt[b-r4aixykht4] { margin-top: 12px; }
.ei-ro[b-r4aixykht4] { 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-r4aixykht4] { 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-cta[b-r4aixykht4] { font: inherit; font-size: 12.5px; font-weight: 600; padding: 8px 16px; border-radius: 9px; cursor: pointer; }
.ei-cta.ghost[b-r4aixykht4] { background: transparent; border: 1px solid var(--fn-border); color: var(--fn-text-secondary); }
.ei-cta.primary[b-r4aixykht4] { background: var(--fn-primary); border: 1px solid transparent; color: var(--fn-on-primary); }
.ei-cta.primary:disabled[b-r4aixykht4] { opacity: .5; cursor: not-allowed; }
.ei-cta.danger[b-r4aixykht4] { background: var(--fn-danger); border: 1px solid transparent; color: var(--fn-bg); }
.ei-warn[b-r4aixykht4] { 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-r4aixykht4]  svg { width: 16px; height: 16px; color: var(--fn-danger); flex: none; margin-top: 1px; }

@media (max-width: 960px) {
    .summary[b-r4aixykht4], .reaction[b-r4aixykht4] { 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-651yfl0onv] { padding: 18px; }
.ord-lead[b-651yfl0onv] { display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--fn-text-secondary); margin-bottom: 10px; }
.ord-lead[b-651yfl0onv]  .lucide { width: 16px; height: 16px; color: var(--fn-primary); }

/* Freitext: geteilte fn-textarea-Geometrie, hier nur die Orders-spezifische Größe. */
[b-651yfl0onv] .ord-text { min-height: 78px; font-size: 14px; padding: 12px 14px; }

.ord-foot[b-651yfl0onv] { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; flex-wrap: wrap; }
.ord-foot-end[b-651yfl0onv] { justify-content: flex-end; }
.ord-note[b-651yfl0onv] { margin: 0 0 12px; }
.ord-empty[b-651yfl0onv] { margin: 0; }

.ord-badge[b-651yfl0onv] { 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-651yfl0onv]  .lucide { width: 12px; height: 12px; }
.ord-badge.t-fixed[b-651yfl0onv] { color: var(--fn-info); background: var(--fn-info-soft); border-color: var(--fn-info); }
.ord-badge.t-relative[b-651yfl0onv] { color: var(--fn-cat-teal); background: var(--fn-cat-teal-soft); border-color: var(--fn-cat-teal); }
.ord-badge.t-group[b-651yfl0onv] { color: var(--fn-cat-purple); background: var(--fn-cat-purple-soft); border-color: var(--fn-cat-purple); }
.ord-badge.t-intent[b-651yfl0onv] { color: var(--fn-cat-gold); background: var(--fn-warning-soft); border-color: var(--fn-cat-gold); }

.ord-status[b-651yfl0onv] { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 500; }
.ord-status .dot[b-651yfl0onv] { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; }
.ord-status.s-active[b-651yfl0onv] { color: var(--fn-success); }
.ord-status.s-active .dot[b-651yfl0onv] { background: var(--fn-success); }
.ord-status.s-paused[b-651yfl0onv] { color: var(--fn-text-tertiary); }
.ord-status.s-paused .dot[b-651yfl0onv] { background: var(--fn-text-tertiary); }

.ord-reason[b-651yfl0onv] { color: var(--fn-text-tertiary); font-size: 11px; font-style: italic; }
.ord-confirm[b-651yfl0onv] { border-left: 3px solid var(--fn-cat-gold); }
.ord-cell-warn[b-651yfl0onv] { 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-651yfl0onv]  .lucide { width: 12px; height: 12px; }
.ord-conf[b-651yfl0onv] { 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-7whll7vxmp] {
    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-7whll7vxmp]  .fn-list-toolbar {
    margin-left: auto;
    flex-wrap: nowrap;
    flex-shrink: 0;
}

.wl-panel-h[b-7whll7vxmp]  .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-7whll7vxmp]  .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-amw4zsxonw] {
    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-amw4zsxonw] {
    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-amw4zsxonw] {
    width: 13px;
    height: 13px;
    color: var(--fn-primary);
}

.is-panel > header .right[b-amw4zsxonw] {
    margin-left: auto;
    text-transform: none;
    letter-spacing: 0;
    font-size: 9.5px;
    font-weight: var(--fn-font-weight-regular);
}

.is-panel-body[b-amw4zsxonw] {
    display: flex;
    flex-direction: column;
    gap: 11px;
    padding: 11px;
}

.bt-empty[b-amw4zsxonw] {
    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-amw4zsxonw] {
    width: 26px;
    height: 26px;
    color: var(--fn-primary);
}

.bt-empty strong[b-amw4zsxonw] {
    color: var(--fn-text);
    font-size: 12px;
}

.bt-empty span[b-amw4zsxonw] {
    max-width: 460px;
    color: var(--fn-text-tertiary);
    font-size: 11px;
}

/* Die zwei Fälle stehen nebeneinander; der geltende ist hervorgehoben. */
.bt-cases[b-amw4zsxonw] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 10px;
}

.bt-case[b-amw4zsxonw] {
    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-amw4zsxonw] {
    border-left-color: var(--fn-primary);
    opacity: 1;
}

.bt-case h4[b-amw4zsxonw] {
    margin: 0 0 3px;
    color: var(--fn-text-secondary);
    font-size: 10px;
    font-weight: var(--fn-font-weight-bold);
}

.bt-case p[b-amw4zsxonw] {
    margin: 0;
    color: var(--fn-text-tertiary);
    font-size: 10px;
    line-height: 1.55;
}

.bt-engine[b-amw4zsxonw] {
    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-amw4zsxonw] {
    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-amw4zsxonw] {
    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-amw4zsxonw] {
    font-size: 9px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}

.bt-basis dd[b-amw4zsxonw] {
    margin: 2px 0 0;
    font-family: var(--fn-font-mono);
    font-size: 11.5px;
    color: var(--fn-text);
}

.bt-metrics[b-amw4zsxonw] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 7px;
    margin: 0 0 12px;
}

.bt-metrics > div[b-amw4zsxonw] {
    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-amw4zsxonw] {
    margin: 0 0 3px;
    font-size: 9.5px;
    color: var(--fn-text-tertiary);
}

.bt-metrics dd[b-amw4zsxonw] {
    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-amw4zsxonw] { color: var(--fn-success); }
.bt-metrics dd.warning[b-amw4zsxonw] { color: var(--fn-warning); }
.bt-metrics dd.negative[b-amw4zsxonw] { color: var(--fn-danger); }

/* Eine zu kleine Stichprobe wird beschriftet, nicht verschwiegen. */
.bt-warn[b-amw4zsxonw] {
    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-amw4zsxonw] { width: 13px; height: 13px; flex: none; margin-top: 1px; }

/* Die Grenzen gehören in den Bericht, nicht nur ins Konzept. */
.bt-limits[b-amw4zsxonw] {
    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-amw4zsxonw] {
    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-amw4zsxonw] {
    display: block;
    margin-bottom: 3px;
    color: var(--fn-cat-teal);
    font-weight: var(--fn-font-weight-medium);
}

.bt-sub[b-amw4zsxonw] {
    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-amw4zsxonw] {
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
    font-family: var(--fn-font-mono);
    font-size: 11px;
}

.bt-log li[b-amw4zsxonw] {
    padding: 4px 0;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
    color: var(--fn-text-secondary);
}

.bt-log li:last-child[b-amw4zsxonw] { border-bottom: 0; }
.bt-log li.positive[b-amw4zsxonw] { color: var(--fn-success); }
.bt-log li.negative[b-amw4zsxonw] { 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-o6vsil2qr5] {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    padding: 14px 14px 0;
}

.is-avatar[b-o6vsil2qr5] {
    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-o6vsil2qr5] {
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
}

.is-identity[b-o6vsil2qr5] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
}

.is-identity strong[b-o6vsil2qr5] {
    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-o6vsil2qr5] {
    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-o6vsil2qr5] {
    display: flex;
    gap: 3px;
    flex: 0 0 auto;
}

.is-card-actions[b-o6vsil2qr5]  .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-o6vsil2qr5]  .is-square-action:hover:not(:disabled) {
    color: var(--fn-primary);
    border-color: var(--fn-border-strong);
}

.is-card-actions[b-o6vsil2qr5]  .is-danger-action:hover:not(:disabled) { color: var(--fn-danger); }
.is-card-actions[b-o6vsil2qr5]  .is-square-action svg { width: 13px; height: 13px; }

.is-badges[b-o6vsil2qr5] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    padding: 10px 14px 0;
}

.is-badges > span[b-o6vsil2qr5] {
    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-o6vsil2qr5] {
    border-color: var(--fn-accent-line);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
}

.is-badges > span.curve[b-o6vsil2qr5] {
    border-color: var(--fn-cat-teal);
    background: var(--fn-cat-teal-soft);
    color: var(--fn-cat-teal);
}

.is-badges > span.on[b-o6vsil2qr5] {
    border-color: var(--fn-success);
    background: var(--fn-success-soft);
    color: var(--fn-success);
}

.is-badges > span.off[b-o6vsil2qr5] {
    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-o6vsil2qr5] {
    border-color: var(--fn-border-strong);
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
}

.is-badges > span svg[b-o6vsil2qr5] { width: 10px; height: 10px; }

.is-locked[b-o6vsil2qr5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    color: var(--fn-text-tertiary);
}

.is-locked[b-o6vsil2qr5]  svg { width: 13px; height: 13px; }

.is-builtin-reason[b-o6vsil2qr5] {
    text-align: left;
    line-height: 1.45;
    padding: 0 var(--fn-space-2);
}

.is-metrics[b-o6vsil2qr5] {
    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-o6vsil2qr5] {
    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-o6vsil2qr5] {
    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-o6vsil2qr5] {
    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-o6vsil2qr5] { 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-o6vsil2qr5] { color: var(--fn-success); }
.is-metrics dd.warning[b-o6vsil2qr5] { color: var(--fn-warning); }
.is-metrics dd.negative[b-o6vsil2qr5] { 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-o6vsil2qr5] {
    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-o6vsil2qr5] {
    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-o6vsil2qr5] {
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-weight: var(--fn-font-weight-medium);
}

.is-trend-plot[b-o6vsil2qr5] { height: 38px; }
.is-trend-plot svg[b-o6vsil2qr5] { display: block; width: 100%; height: 100%; }

.is-trend.blank[b-o6vsil2qr5] {
    border-style: dashed;
    border-color: var(--fn-border-strong);
}

.is-trend-empty[b-o6vsil2qr5] {
    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-o6vsil2qr5] {
    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-o6vsil2qr5] .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-o6vsil2qr5] {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding: 10px 14px 5px;
}

.is-hosts-head .lbl[b-o6vsil2qr5] {
    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-o6vsil2qr5] {
    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-o6vsil2qr5] { color: var(--fn-warning); }

.is-hostgrid[b-o6vsil2qr5] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
    padding: 0 14px 14px;
}

.is-hg[b-o6vsil2qr5] {
    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-o6vsil2qr5] { width: 11px; height: 11px; flex: none; }

.is-hg .nm[b-o6vsil2qr5] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.is-hg .mark[b-o6vsil2qr5] { width: 9px; height: 9px; flex: none; }

.is-hg.on[b-o6vsil2qr5] {
    border-color: var(--fn-accent-line);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
}

.is-hg.no[b-o6vsil2qr5] { opacity: .5; }

/* Zugelassen, aber im Zielmodul gibt es noch keine Fläche — gestrichelt statt stillschweigend grün. */
.is-hg.pending[b-o6vsil2qr5] {
    border-style: dashed;
    border-color: var(--fn-warning);
    background: var(--fn-warning-soft);
    color: var(--fn-warning);
}

.is-hg:hover[b-o6vsil2qr5] { border-color: var(--fn-border-strong); }
.is-hg.no:hover[b-o6vsil2qr5] { opacity: .8; }

.is-hg:focus-visible[b-o6vsil2qr5] {
    outline: none;
    border-color: var(--fn-primary);
    box-shadow: var(--fn-focus-ring);
}

.is-card-foot[b-o6vsil2qr5] {
    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-o6vsil2qr5] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.is-switch-row .lbl[b-o6vsil2qr5] {
    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-3i3tajmrzr] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 328px;
    gap: 12px;
    align-items: start;
}

.is-col[b-3i3tajmrzr] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.is-ed-toolbar[b-3i3tajmrzr] {
    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-3i3tajmrzr] { flex: 1 1 auto; }

.kind-pill[b-3i3tajmrzr] {
    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-3i3tajmrzr] {
    border-color: var(--fn-primary);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
}

.kind-pill svg[b-3i3tajmrzr] {
    width: 13px;
    height: 13px;
}

.is-ed-toolbar[b-3i3tajmrzr]  .is-tool-action {
    height: 30px;
    min-height: 30px;
    padding: 0 12px;
    font-size: 12px;
}

.is-ed-toolbar[b-3i3tajmrzr]  .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-3i3tajmrzr]  .fn-prism {
    border-radius: 0 0 var(--fn-radius-sm) var(--fn-radius-sm);
}



.is-saved[b-3i3tajmrzr] {
    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-3i3tajmrzr] {
    width: 14px;
    height: 14px;
}

@media (max-width: 1180px) {
    .is-editor-stage[b-3i3tajmrzr] { 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-q9lcezmsdv] {
    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-q9lcezmsdv] {
    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-q9lcezmsdv] {
    width: 12px;
    height: 12px;
    color: var(--fn-primary);
}

.is-side-body[b-q9lcezmsdv] {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 10px;
}

.is-form-row[b-q9lcezmsdv] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.is-form-row > label[b-q9lcezmsdv] {
    color: var(--fn-text-secondary);
    font-size: 10px;
    font-weight: var(--fn-font-weight-medium);
}

.is-active-row[b-q9lcezmsdv] {
    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-q9lcezmsdv],
.is-host-row .txt[b-q9lcezmsdv] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1;
}

.is-active-row strong[b-q9lcezmsdv] {
    color: var(--fn-text);
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-bold);
}

.is-active-row small[b-q9lcezmsdv] {
    color: var(--fn-text-tertiary);
    font-size: 9.5px;
}

.is-host-row[b-q9lcezmsdv] {
    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-q9lcezmsdv] { border-bottom: 0; }

.is-host-row > svg[b-q9lcezmsdv] {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    color: var(--fn-text-tertiary);
}

.is-host-row.on > svg[b-q9lcezmsdv] { color: var(--fn-primary); }

.is-host-row .txt strong[b-q9lcezmsdv] {
    color: var(--fn-text);
    font-size: 11.5px;
    font-weight: var(--fn-font-weight-medium);
}

.is-host-row .txt small[b-q9lcezmsdv] {
    display: flex;
    align-items: center;
    gap: 4px;
    color: var(--fn-text-tertiary);
    font-size: 9px;
}

.is-host-row .txt small.pending[b-q9lcezmsdv] { color: var(--fn-warning); }

.is-host-row .txt small svg[b-q9lcezmsdv] {
    width: 10px;
    height: 10px;
}

.is-help-card[b-q9lcezmsdv] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.is-help-card .hd[b-q9lcezmsdv] {
    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-q9lcezmsdv] {
    color: var(--fn-text-secondary);
    font-size: 10.5px;
    line-height: 1.55;
}

.is-help-card .ex-label[b-q9lcezmsdv] {
    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-q9lcezmsdv] {
    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-q9lcezmsdv] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.is-kind-explain p[b-q9lcezmsdv] {
    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-6o0hpqgido] {
    flex: 1 1 auto;
}

.is-grid[b-6o0hpqgido] {
    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-fg23a5hs7s] {
    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-fg23a5hs7s] {
    padding: 0;
    margin-bottom: 10px;
}

.is-spacer[b-fg23a5hs7s] { flex: 1 1 auto; }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-j7fiwz1ldh] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-j7fiwz1ldh] {
    flex: 1;
}

.sidebar[b-j7fiwz1ldh] {
    /* DesignTokens: keine Gradienten — flache Token-Fläche */
    background: var(--fn-bg-alt);
}

.top-row[b-j7fiwz1ldh] {
    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-j7fiwz1ldh]  a, .top-row[b-j7fiwz1ldh]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-j7fiwz1ldh]  a:hover, .top-row[b-j7fiwz1ldh]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-j7fiwz1ldh]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-j7fiwz1ldh] {
        justify-content: space-between;
    }

    .top-row[b-j7fiwz1ldh]  a, .top-row[b-j7fiwz1ldh]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-j7fiwz1ldh] {
        flex-direction: row;
    }

    .sidebar[b-j7fiwz1ldh] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-j7fiwz1ldh] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-j7fiwz1ldh]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-j7fiwz1ldh], article[b-j7fiwz1ldh] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-j7fiwz1ldh] {
    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-j7fiwz1ldh] {
        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-j7fiwz1ldh] { 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-j7fiwz1ldh]  .lucide { width: 20px; height: 20px; color: var(--fn-danger); flex: 0 0 auto; }
.fn-view-error .reload[b-j7fiwz1ldh] { margin-left: auto; color: var(--fn-primary); font-weight: 600; text-decoration: none; white-space: nowrap; }
.fn-view-error .reload:hover[b-j7fiwz1ldh] { text-decoration: underline; }
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-6qyn8kyz12],
.components-reconnect-repeated-attempt-visible[b-6qyn8kyz12],
.components-reconnect-failed-visible[b-6qyn8kyz12],
.components-pause-visible[b-6qyn8kyz12],
.components-resume-failed-visible[b-6qyn8kyz12],
.components-rejoining-animation[b-6qyn8kyz12] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-6qyn8kyz12],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-6qyn8kyz12],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-6qyn8kyz12],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-6qyn8kyz12],
#components-reconnect-modal.components-reconnect-retrying[b-6qyn8kyz12],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-6qyn8kyz12],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-6qyn8kyz12],
#components-reconnect-modal.components-reconnect-failed[b-6qyn8kyz12],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-6qyn8kyz12] {
    display: block;
}


#components-reconnect-modal[b-6qyn8kyz12] {
    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-6qyn8kyz12 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-6qyn8kyz12 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-6qyn8kyz12 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-6qyn8kyz12]::backdrop {
    background-color: var(--fn-shadow-hover);
    animation: components-reconnect-modal-fadeInOpacity-b-6qyn8kyz12 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-6qyn8kyz12 {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-6qyn8kyz12 {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-6qyn8kyz12 {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-6qyn8kyz12] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-6qyn8kyz12] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-6qyn8kyz12] {
    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-6qyn8kyz12] {
        background-color: var(--fn-primary-hover);
    }

    #components-reconnect-modal button:active[b-6qyn8kyz12] {
        background-color: var(--fn-primary);
    }

.components-rejoining-animation[b-6qyn8kyz12] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-6qyn8kyz12] {
        position: absolute;
        border: 3px solid var(--fn-primary);
        opacity: 1;
        border-radius: var(--fn-radius-round);
        animation: components-rejoining-animation-b-6qyn8kyz12 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-6qyn8kyz12] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-6qyn8kyz12 {
    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-tybfx20oew] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--fn-font);
    color: var(--fn-text);
}

.language-selector__label[b-tybfx20oew] {
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text-secondary);
}

.language-selector__select[b-tybfx20oew] {
    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-tybfx20oew] {
    outline: none;
    box-shadow: var(--fn-focus-ring);
    border-color: var(--fn-primary);
}
/* /Components/MarketData/MarketSyncBar.razor.rz.scp.css */
.msync[b-npa5fmq6m6] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 280px;
    font-size: 12px;
    color: var(--fn-text-dim, #9fb0c0);
}

.msync-line[b-npa5fmq6m6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.msync-status[b-npa5fmq6m6] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.msync-status b[b-npa5fmq6m6] {
    color: var(--fn-text, #e7edf3);
    font-weight: 600;
}

.msync-dot[b-npa5fmq6m6] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.msync-dot.live[b-npa5fmq6m6] {
    background: var(--fn-success, #36c98d);
    box-shadow: 0 0 0 0 rgba(54, 201, 141, .55);
    animation: msync-pulse-b-npa5fmq6m6 2s infinite;
}

.msync-dot.delayed[b-npa5fmq6m6] {
    background: var(--fn-warning, #f5b942);
}

@keyframes msync-pulse-b-npa5fmq6m6 {
    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-npa5fmq6m6] {
    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-npa5fmq6m6] {
    border-color: var(--fn-accent, #3da9fc);
    color: #fff;
}

.msync-btn:disabled[b-npa5fmq6m6] {
    opacity: .6;
    cursor: default;
}

.msync-btn .spin[b-npa5fmq6m6] {
    animation: msync-spin-b-npa5fmq6m6 1s linear infinite;
}

@keyframes msync-spin-b-npa5fmq6m6 {
    to { transform: rotate(360deg); }
}

.msync-prog[b-npa5fmq6m6] {
    height: 4px;
    background: var(--fn-surface, #161d27);
    border-radius: 3px;
    overflow: hidden;
}

.msync-prog > i[b-npa5fmq6m6] {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--fn-accent, #3da9fc), var(--fn-success, #36c98d));
    transition: width .6s ease;
}

.msync-sub[b-npa5fmq6m6] {
    font-size: 11px;
    color: var(--fn-text-faint, #6b7c8d);
}

.msync-src[b-npa5fmq6m6] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.msync-badge[b-npa5fmq6m6] {
    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-npa5fmq6m6] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.msync-badge.live[b-npa5fmq6m6] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.msync-delayed[b-npa5fmq6m6] { color: var(--fn-warning); }
.msync-live[b-npa5fmq6m6] { color: var(--fn-success); }
/* /Components/MarketData/ProviderQuotaWarning.razor.rz.scp.css */
.pqw-line[b-v38mabo489] {
    display: flex;
    align-items: center;
    gap: 6px;
    color: var(--fn-warning);
    font-size: 11.5px;
    line-height: 1.4;
}

.pqw-line i[b-v38mabo489],
.pqw-line svg[b-v38mabo489] {
    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-rdkyctcmx9] { margin-left: 8px; }
.mr-empty[b-rdkyctcmx9] { padding: 20px 16px; color: var(--fn-text-tertiary); font-size: 13px; }

.mr-grid[b-rdkyctcmx9] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; padding: 14px 16px; }
@media (max-width: 900px) { .mr-grid[b-rdkyctcmx9] { grid-template-columns: 1fr; } }

.mr-card[b-rdkyctcmx9] { 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-rdkyctcmx9] { border-top: 2px solid var(--fn-success); }
.mr-card.mr-neutral[b-rdkyctcmx9] { border-top: 2px solid var(--fn-warning); }
.mr-card.mr-stressed[b-rdkyctcmx9] { border-top: 2px solid var(--fn-danger); }

.mr-head[b-rdkyctcmx9] { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; gap: 8px; }
.mr-name[b-rdkyctcmx9] { font-weight: 600; font-size: 14px; color: var(--fn-text); }
.mr-tick[b-rdkyctcmx9] { font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); font-size: 11px; margin-left: 6px; }

.mr-badge[b-rdkyctcmx9] { 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-rdkyctcmx9]::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.mr-b-calm[b-rdkyctcmx9] { color: var(--fn-success); background: var(--fn-success-soft); }
.mr-b-neutral[b-rdkyctcmx9] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.mr-b-stressed[b-rdkyctcmx9] { color: var(--fn-danger); background: var(--fn-danger-soft); }

.mr-stay[b-rdkyctcmx9] { font-size: 12px; color: var(--fn-text-secondary); margin: 4px 0 12px; }
.mr-stay b[b-rdkyctcmx9] { color: var(--fn-text); }

.mr-lbl[b-rdkyctcmx9] { font-size: 9.5px; text-transform: uppercase; letter-spacing: .6px; color: var(--fn-text-tertiary); margin: 10px 0 5px; }

.mr-bar[b-rdkyctcmx9] { display: grid; grid-template-columns: 70px 1fr 44px; align-items: center; gap: 8px; margin: 4px 0; font-size: 11.5px; }
.mr-nm[b-rdkyctcmx9] { color: var(--fn-text-secondary); }
.mr-val[b-rdkyctcmx9] { font-family: var(--fn-font-mono); color: var(--fn-text); text-align: right; }
.mr-track[b-rdkyctcmx9] { height: 7px; border-radius: 4px; background: var(--fn-bg-muted); overflow: hidden; display: block; }
.mr-fill[b-rdkyctcmx9] { height: 100%; border-radius: 4px; display: block; }
.mr-f-calm[b-rdkyctcmx9] { background: var(--fn-success); }
.mr-f-neutral[b-rdkyctcmx9] { background: var(--fn-warning); }
.mr-f-stressed[b-rdkyctcmx9] { background: var(--fn-danger); }

.mr-hist[b-rdkyctcmx9] { display: flex; gap: 2px; }
.mr-hist i[b-rdkyctcmx9] { flex: 1; height: 16px; border-radius: 2px; display: block; }
.mr-h-calm[b-rdkyctcmx9] { background: var(--fn-success); }
.mr-h-neutral[b-rdkyctcmx9] { background: var(--fn-warning); }
.mr-h-stressed[b-rdkyctcmx9] { background: var(--fn-danger); }

.mr-detail[b-rdkyctcmx9] { margin-top: 12px; }
.mr-detail summary[b-rdkyctcmx9] { font-size: 11.5px; color: var(--fn-primary); cursor: pointer; }
.mr-matrix[b-rdkyctcmx9] { 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-rdkyctcmx9] { background: var(--fn-bg); padding: 5px 7px; text-align: center; }
.mr-mh[b-rdkyctcmx9] { color: var(--fn-text-tertiary); font-size: 9px; text-transform: uppercase; letter-spacing: .4px; }
.mr-corner[b-rdkyctcmx9] { font-size: 8.5px; text-align: left; }
.mr-rh[b-rdkyctcmx9] { text-align: left; color: var(--fn-text-secondary); }
.mr-cell[b-rdkyctcmx9] { font-family: var(--fn-font-mono); color: var(--fn-text-secondary); }
.mr-cell.mr-diag[b-rdkyctcmx9] { color: var(--fn-text); font-weight: 700; background: var(--fn-accent-soft); }
.mr-longrun[b-rdkyctcmx9] { font-size: 11.5px; color: var(--fn-text-secondary); display: flex; gap: 14px; flex-wrap: wrap; margin-top: 4px; }
.mr-longrun b[b-rdkyctcmx9] { color: var(--fn-text); }

.mr-disclaimer[b-rdkyctcmx9] { 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-wf89nnew7w] { padding: 22px 28px; }

.mod-title[b-wf89nnew7w] { font-size: 20px; margin: 0 0 6px; }

.mod-head[b-wf89nnew7w] { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.mod-head .mod-title[b-wf89nnew7w] { margin: 0; }

.mod-icon[b-wf89nnew7w] { width: 26px; height: 26px; color: var(--fn-primary); }

.mod-badge[b-wf89nnew7w] {
    font-size: 11px;
    padding: 2px 8px;
    border: 1px solid var(--fn-border);
    border-radius: 999px;
    color: var(--fn-text-tertiary);
}

.mod-note[b-wf89nnew7w] { color: var(--fn-text-secondary); font-size: 13px; }
.mod-note-quiet[b-wf89nnew7w] { color: var(--fn-text-tertiary); }
.mod-subtitle[b-wf89nnew7w] { 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-wf89nnew7w] {
    max-height: 240px;
    overflow: hidden;
    animation: mod-diag-hide-b-wf89nnew7w .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-wf89nnew7w] {
    color: var(--fn-text-tertiary);
    text-transform: uppercase;
    font-size: 10.5px;
    letter-spacing: .4px;
    margin-bottom: 6px;
}

.mod-diag-services[b-wf89nnew7w] { color: var(--fn-text-tertiary); margin-top: 4px; }

@keyframes mod-diag-hide-b-wf89nnew7w {
    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-4t1hthkgmj] {
    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-4t1hthkgmj] {
    width: 44px;
    align-items: center;
    padding-top: 12px;
}

.ns-reopen[b-4t1hthkgmj], .ns-collapse[b-4t1hthkgmj] {
    background: none;
    border: 1px solid var(--fn-border, #2a3645);
    border-radius: 6px;
    color: var(--fn-text-secondary, #9fb0c0);
    cursor: pointer;
    /* gleiche Größe wie der linke Toggle (.sn-collapse-toggle): 26×26, Icon 14px. */
    width: 26px; height: 26px; padding: 0; flex: 0 0 auto;
    display: inline-flex; align-items: center; justify-content: center;
}
/* ::deep ist nötig, weil die Lucide-SVGs per JS injiziert werden und KEIN scoped-Attribut tragen —
   eine normale scoped Regel (.ns-collapse .lucide) greift daher nicht (Icon blieb auf 24px). */
.ns-reopen[b-4t1hthkgmj]  .lucide, .ns-collapse[b-4t1hthkgmj]  .lucide { width: 14px; height: 14px; }

.ns-reopen:hover[b-4t1hthkgmj], .ns-collapse:hover[b-4t1hthkgmj] { color: #fff; border-color: var(--fn-accent, #3da9fc); }

/* header */
.ns-h[b-4t1hthkgmj] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 13px 14px;
    border-bottom: 1px solid var(--fn-border, #2a3645);
}
.ns-t[b-4t1hthkgmj] { 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-4t1hthkgmj] { color: var(--fn-text-secondary, #9fb0c0); font-size: 11.5px; margin-left: auto; margin-right: 10px; }

/* tabs */
.ns-tabs[b-4t1hthkgmj] { display: flex; gap: 4px; padding: 10px 12px 0; }
.ns-tab[b-4t1hthkgmj] {
    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-4t1hthkgmj] {
    background: var(--fn-bg, #0f141b);
    color: var(--fn-text, #e7edf3);
    border-color: var(--fn-border, #2a3645);
    font-weight: 600;
}
.ns-badge[b-4t1hthkgmj] { 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-4t1hthkgmj] {
    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-4t1hthkgmj] {
    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-4t1hthkgmj] { background: var(--fn-accent, #3da9fc); color: #04121e; border-color: var(--fn-accent, #3da9fc); font-weight: 600; }

/* body */
.ns-body[b-4t1hthkgmj] { flex: 1; overflow-y: auto; padding: 10px 12px 16px; }
.ns-group[b-4t1hthkgmj] { font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--fn-text-tertiary, #6b7c8d); margin: 8px 2px 8px; }
.ns-empty[b-4t1hthkgmj] { color: var(--fn-text-tertiary, #6b7c8d); font-size: 13px; padding: 22px 6px; text-align: center; }

/* feed item */
.ns-item[b-4t1hthkgmj] {
    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-4t1hthkgmj] { outline: 2px solid var(--fn-accent, #3da9fc); outline-offset: 2px; }
.ns-item.event[b-4t1hthkgmj] { border-left-color: var(--fn-warning, #f5b942); }
.ns-item.pinned[b-4t1hthkgmj] { border-left-color: var(--fn-accent, #3da9fc); }
.ns-ico[b-4t1hthkgmj] { flex: 0 0 auto; font-size: 15px; line-height: 1.3; }
.ns-main[b-4t1hthkgmj] { flex: 1; min-width: 0; }
.ns-title[b-4t1hthkgmj] { display: block; font-size: 13px; font-weight: 600; color: var(--fn-text, #e7edf3); text-decoration: none; margin-bottom: 4px; }
.ns-title:hover[b-4t1hthkgmj] { color: var(--fn-accent, #3da9fc); }
.ns-title-button[b-4t1hthkgmj] {
    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-4t1hthkgmj] {
    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-4t1hthkgmj] {
    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-4t1hthkgmj] { text-decoration: underline; }
.ns-item .ns-sum.collapsible[b-4t1hthkgmj] { display: none; }
.ns-item.open .ns-sum.collapsible[b-4t1hthkgmj] { display: -webkit-box; }
.ns-item.open .ns-more .chev[b-4t1hthkgmj] { transform: rotate(180deg); }
.chev[b-4t1hthkgmj] { display: inline-block; transition: transform .15s; }
.ns-meta[b-4t1hthkgmj] { display: flex; gap: 7px; align-items: center; flex-wrap: wrap; font-size: 11px; color: var(--fn-text-tertiary, #6b7c8d); }
.ns-src[b-4t1hthkgmj] { color: var(--fn-text-secondary, #9fb0c0); }
.ns-tkr[b-4t1hthkgmj] { 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-4t1hthkgmj] { color: var(--fn-success, #36c98d); border-color: rgba(54,201,141,.4); }
.ns-impact[b-4t1hthkgmj] { 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-4t1hthkgmj] { background: rgba(239,107,115,.15); color: var(--fn-danger, #ef6b73); border-color: rgba(239,107,115,.35); }
.ns-pin[b-4t1hthkgmj] {
    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-4t1hthkgmj] { opacity: .85; }
.ns-pin.on[b-4t1hthkgmj] { opacity: 1; border-color: var(--fn-border, #2a3645); }

/* News-Erweiterung (KONZEPT-News-Email): "Details" neben "Vorschau" + Mail-Icon unter der Pinnadel. */
.ns-links[b-4t1hthkgmj] { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.ns-more.det[b-4t1hthkgmj] { color: var(--fn-cat-teal); }
.ns-det[b-4t1hthkgmj] {
    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-4t1hthkgmj] { margin: 0 0 6px; }
.ns-det-load[b-4t1hthkgmj] { color: var(--fn-text-tertiary); font-size: 11px; }
.ns-event-det[b-4t1hthkgmj] { display: grid; gap: 5px; }
.ns-event-row[b-4t1hthkgmj] { display: flex; justify-content: space-between; gap: 10px; }
.ns-event-row span[b-4t1hthkgmj] { color: var(--fn-text-tertiary); }
.ns-event-row strong[b-4t1hthkgmj] { color: var(--fn-text); font-weight: 600; text-align: right; }
.ns-actions[b-4t1hthkgmj] { flex: 0 0 auto; display: flex; flex-direction: column; gap: 6px; align-items: center; }
.ns-mail[b-4t1hthkgmj] {
    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-4t1hthkgmj] { opacity: .85; }
.ns-mail:hover[b-4t1hthkgmj] { color: var(--fn-primary); }
.ns-mail svg[b-4t1hthkgmj] { width: 16px; height: 16px; }

.ns-detail-window[b-4t1hthkgmj] {
    height: 100%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: var(--fn-bg-alt);
    color: var(--fn-text);
}

.ns-detail-head[b-4t1hthkgmj] {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px 14px;
    border-bottom: 1px solid var(--fn-border);
}

.ns-detail-head h2[b-4t1hthkgmj] {
    margin: 4px 0 0;
    font-size: 22px;
    line-height: 1.25;
    font-weight: 700;
}

.ns-detail-source[b-4t1hthkgmj] {
    color: var(--fn-text-tertiary);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.ns-detail-meta[b-4t1hthkgmj] {
    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-4t1hthkgmj] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 18px 20px;
    font-size: 15px;
    line-height: 1.65;
}

.ns-detail-body p[b-4t1hthkgmj] {
    margin: 0 0 14px;
}

.ns-detail-muted[b-4t1hthkgmj] {
    color: var(--fn-text-secondary);
}

.ns-detail-error[b-4t1hthkgmj] {
    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-4t1hthkgmj] {
    display: flex;
    justify-content: flex-start;
    padding: 12px 20px 16px;
    border-top: 1px solid var(--fn-border);
}

.ns-detail-original[b-4t1hthkgmj] {
    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-4t1hthkgmj] {
    color: var(--fn-primary-hover);
    text-decoration: underline;
}

.ns-detail-original[b-4t1hthkgmj]  svg,
.ns-detail-original[b-4t1hthkgmj]  [data-lucide] {
    width: 15px;
    height: 15px;
}

@media (max-width: 640px) {
    .ns[b-4t1hthkgmj] {
        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-96oobscgcu] { display: flex; flex-direction: column; gap: 12px; height: 100%; min-height: 0; position: relative; }

.pk-compose-inline[b-96oobscgcu] { display: flex; align-items: center; }
.pk-compose-toggle[b-96oobscgcu] { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--fn-text); cursor: pointer; }
.pk-compose-toggle input[b-96oobscgcu] { accent-color: var(--fn-primary); }

.pk-compose-channels[b-96oobscgcu] { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 4px; }
.pk-compose-channel[b-96oobscgcu] { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--fn-text); cursor: pointer; }
.pk-compose-channel input[b-96oobscgcu] { accent-color: var(--fn-primary); }
.pk-compose-channel input:disabled[b-96oobscgcu] { cursor: default; }

.pk-compose-editor[b-96oobscgcu] {
    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-96oobscgcu]  .fn-richtext { flex: 1; min-height: 160px; }

.pk-compose-attachments[b-96oobscgcu] { 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-96oobscgcu] { position: relative; overflow: hidden; }
.pk-compose-upload[b-96oobscgcu]  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-96oobscgcu] { display: flex; align-items: center; justify-content: space-between; }
.pk-compose-cc-toggles[b-96oobscgcu] { display: inline-flex; gap: 6px; }
.pk-compose-cctoggle[b-96oobscgcu] {
    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-96oobscgcu], .pk-compose-cctoggle.pk-on[b-96oobscgcu] {
    color: var(--fn-primary); border-color: var(--fn-accent-line); background: var(--fn-accent-soft);
}

.pk-compose-undo[b-96oobscgcu] {
    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-96oobscgcu] { font-size: 26px; font-weight: 600; color: var(--fn-primary); }

.pk-compose-attach-list[b-96oobscgcu] { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
.pk-compose-chip[b-96oobscgcu] { align-self: auto; }
.pk-compose-chip-del[b-96oobscgcu] {
    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-96oobscgcu] { color: var(--fn-danger); }
.pk-compose-chip-del[b-96oobscgcu]  .lucide { width: 13px; height: 13px; }

.pk-compose-status[b-96oobscgcu] { font-size: 12.5px; color: var(--fn-text-secondary); margin: 0; }
.pk-compose-status-err[b-96oobscgcu] { color: var(--fn-danger); }

/* Sichtbare Begründung, warum Versenden gesperrt ist (fehlender Titel/Empfänger/gültige Adressen). */
.pk-compose-missing[b-96oobscgcu] { 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-9kmsk2maea] {
    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-9kmsk2maea] { 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-9kmsk2maea] { display: inline-flex; align-items: center; gap: 6px; margin-right: auto; }
/* Vertikaler Trenner zwischen Export-Icons und TrailingActions (Antworten/Öffnen). */
.pk-export-sep[b-9kmsk2maea] { width: 1px; align-self: stretch; background: var(--fn-border-strong); }
.pk-export-trailing[b-9kmsk2maea] { display: inline-flex; align-items: center; gap: 6px; }
.pk-export-error[b-9kmsk2maea] { 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-ol9s3a9ajp] { position: relative; display: inline-flex; }

/* --- Mailbox-Trigger + Badge (eigenes Icon-Element, bewusst KEINE generische Button-Optik) --- */
.pk-mailbox-trigger[b-ol9s3a9ajp] {
    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-ol9s3a9ajp] { color: var(--fn-primary); border-color: var(--fn-primary); }
.pk-mailbox-trigger.pk-has-mail[b-ol9s3a9ajp] { color: var(--fn-warning); }
.pk-mailbox-trigger[b-ol9s3a9ajp]  .lucide { width: 16px; height: 16px; }

.pk-badge[b-ol9s3a9ajp] {
    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-ol9s3a9ajp] { display: contents; }

/* --- Overlay (fängt Außen-Klicks für Dropdown + Kontextmenü) --- */
.pk-overlay[b-ol9s3a9ajp] { position: fixed; inset: 0; z-index: 939; }

/* --- Quick-Dropdown --- */
/* position: fixed (anchored via inline left/bottom from the mailbox-click coords) escapes the
   sidebar's stacking context; z-index above the main content but below FnFloatingWindow (950). */
.pk-dropdown[b-ol9s3a9ajp] {
    position: fixed; z-index: 941;
    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-ol9s3a9ajp] {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 14px; border-bottom: 1px solid var(--fn-border);
}
.pk-dd-title[b-ol9s3a9ajp] { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--fn-text); }
.pk-dd-title[b-ol9s3a9ajp]  .lucide { width: 16px; height: 16px; color: var(--fn-primary); }
.pk-dd-allread[b-ol9s3a9ajp] {
    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-ol9s3a9ajp] { text-decoration: underline; }

.pk-dd-list[b-ol9s3a9ajp] { overflow-y: auto; }
.pk-dd-item[b-ol9s3a9ajp] {
    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-ol9s3a9ajp] { border-bottom: none; }
.pk-dd-item:hover[b-ol9s3a9ajp] { background: var(--fn-hover); }
.pk-dd-icon[b-ol9s3a9ajp] { flex: 0 0 auto; margin-top: 1px; display: inline-flex; }
.pk-dd-icon[b-ol9s3a9ajp]  .lucide { width: 18px; height: 18px; }
.pk-icon-unread[b-ol9s3a9ajp]  .lucide { color: var(--fn-danger); }
.pk-icon-read[b-ol9s3a9ajp]  .lucide { color: var(--fn-text-tertiary); }
.pk-dd-text[b-ol9s3a9ajp] { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pk-dd-item-title[b-ol9s3a9ajp] { font-size: 13px; color: var(--fn-text); overflow: hidden; text-overflow: ellipsis; }
.pk-dd-item-title.pk-strong[b-ol9s3a9ajp] { font-weight: 700; }
.pk-dd-item.pk-read .pk-dd-item-title[b-ol9s3a9ajp] { color: var(--fn-text-secondary); }
.pk-dd-item-time[b-ol9s3a9ajp] { font-size: 11px; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); }

.pk-dd-empty[b-ol9s3a9ajp] { padding: 24px 14px; text-align: center; color: var(--fn-text-tertiary); font-size: 12.5px; }

/* --- Kontextmenü --- */
.pk-ctx[b-ol9s3a9ajp] {
    position: fixed; z-index: 940; 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-ol9s3a9ajp] { width: 18px; height: 18px; }
.pk-mailbox-flag-wobble[b-ol9s3a9ajp] { animation: pk-flag-wobble-b-ol9s3a9ajp 0.6s ease-in-out; transform-origin: 15px 10px; }
@keyframes pk-flag-wobble-b-ol9s3a9ajp { 0%,100% { transform: rotate(0); } 25% { transform: rotate(-18deg); } 75% { transform: rotate(12deg); } }
.pk-ctx-item[b-ol9s3a9ajp] {
    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-ol9s3a9ajp] { background: var(--fn-hover); color: var(--fn-text); }
/* Deaktivierte Menüitems: deutlich gegraut + not-allowed, KEIN Hover-Hintergrund. */
.pk-ctx-item:disabled[b-ol9s3a9ajp],
.pk-ctx-item.pk-ctx-disabled[b-ol9s3a9ajp] {
    color: var(--fn-text-tertiary); opacity: .5; cursor: not-allowed; pointer-events: none;
}
.pk-ctx-item:disabled:hover[b-ol9s3a9ajp],
.pk-ctx-item.pk-ctx-disabled:hover[b-ol9s3a9ajp] { background: transparent; color: var(--fn-text-tertiary); }
.pk-ctx-item:disabled .pk-ctx-icon[b-ol9s3a9ajp]  .lucide,
.pk-ctx-item.pk-ctx-disabled .pk-ctx-icon[b-ol9s3a9ajp]  .lucide { color: var(--fn-text-tertiary); }
.pk-ctx-icon[b-ol9s3a9ajp] { flex: 0 0 auto; display: inline-flex; width: 16px; }
.pk-ctx-icon[b-ol9s3a9ajp]  .lucide { width: 15px; height: 15px; color: var(--fn-text-tertiary); }
.pk-ctx-sep[b-ol9s3a9ajp] { height: 1px; margin: 5px 6px; background: var(--fn-border); }
.pk-ctx-danger[b-ol9s3a9ajp] { color: var(--fn-danger); }
.pk-ctx-danger:hover[b-ol9s3a9ajp] { background: var(--fn-danger-soft); color: var(--fn-danger); }
.pk-ctx-danger .pk-ctx-icon[b-ol9s3a9ajp]  .lucide { color: var(--fn-danger); }
/* /Components/OptionSuitabilityCockpit/OptionSuitabilityCockpitPage.razor.rz.scp.css */
.osc[b-hgz5v3280u] { display: flex; flex-direction: column; gap: 16px; padding: 4px 2px 40px; }
.osc-deny[b-hgz5v3280u] { padding: 40px; color: var(--fn-warning); font-size: 14px; }

.osc-head[b-hgz5v3280u] { display: flex; align-items: center; gap: 12px; }
.osc-head h1[b-hgz5v3280u] { font-size: 20px; font-weight: 600; margin: 0; color: var(--fn-text); }
.osc-sub[b-hgz5v3280u] { color: var(--fn-text-secondary); font-size: 12.5px; margin-top: 2px; }
.osc-pills[b-hgz5v3280u] { margin-left: auto; display: flex; gap: 8px; }
.osc-pill[b-hgz5v3280u] { 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-hgz5v3280u] { color: var(--fn-primary); border-color: var(--fn-accent-line); background: var(--fn-accent-soft); }

.osc-empty[b-hgz5v3280u] { 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-hgz5v3280u] { 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-hgz5v3280u] { font-size: 12px; text-transform: uppercase; letter-spacing: .6px; color: var(--fn-text-tertiary);
    font-weight: 600; margin: 0 0 12px; }

.osc-hero[b-hgz5v3280u] { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; justify-content: space-between; }
.osc-thesis[b-hgz5v3280u] { display: flex; flex-direction: column; gap: 4px; text-align: right; }
.osc-thesis-big[b-hgz5v3280u] { font-size: 16px; font-weight: 600; color: var(--fn-chart-up); }
.osc-thesis-src[b-hgz5v3280u] { font-size: 11px; color: var(--fn-text-tertiary); }
.osc-nodata[b-hgz5v3280u] { color: var(--fn-warning); font-weight: 600; font-size: 14px; }
.osc-nodata-sm[b-hgz5v3280u] { color: var(--fn-warning); }
.osc-nodata-big[b-hgz5v3280u] { color: var(--fn-warning); font-size: 18px; font-weight: 600; }

.osc-metrics[b-hgz5v3280u] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.osc-metric[b-hgz5v3280u] { background: var(--fn-bg-muted); border: 1px solid var(--fn-border); border-radius: 8px; padding: 7px 11px; font-size: 12px; }
.osc-metric b[b-hgz5v3280u] { display: block; font-size: 14px; color: var(--fn-text); font-family: var(--fn-font-mono); }
.osc-metric span[b-hgz5v3280u] { color: var(--fn-text-tertiary); font-size: 10.5px; text-transform: uppercase; letter-spacing: .4px; }

.osc-table[b-hgz5v3280u] { width: 100%; border-collapse: collapse; font-size: 13px; }
.osc-table th[b-hgz5v3280u] { 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-hgz5v3280u] { padding: 10px; border-bottom: 1px solid var(--fn-border); vertical-align: middle; }
.osc-table tr:last-child td[b-hgz5v3280u] { border-bottom: 0; }
.osc-table tr.sel[b-hgz5v3280u] { background: var(--fn-accent-soft); }
.osc-rowclick[b-hgz5v3280u] { cursor: pointer; }
.osc-rowclick:hover[b-hgz5v3280u] { background: var(--fn-hover); }
.osc-linkbtn[b-hgz5v3280u] { 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-hgz5v3280u] { color: var(--fn-primary); border-color: var(--fn-accent-line); }
.osc-inst[b-hgz5v3280u] { display: flex; flex-direction: column; gap: 1px; }
.osc-inst b[b-hgz5v3280u] { font-size: 13px; color: var(--fn-text); font-weight: 600; }
.osc-inst small[b-hgz5v3280u] { color: var(--fn-text-secondary); font-size: 12px; }
.osc-line2[b-hgz5v3280u] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-tertiary); }
.mono[b-hgz5v3280u] { font-family: var(--fn-font-mono); font-size: 12px; }

.osc-badge[b-hgz5v3280u] { 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-hgz5v3280u] { color: var(--fn-primary); border-color: var(--fn-accent-line); background: var(--fn-accent-soft); }
.osc-badge.scalable[b-hgz5v3280u] { color: var(--fn-cat-purple); border-color: var(--fn-accent-line); background: var(--fn-accent-soft); }

.osc-chip[b-hgz5v3280u] { font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 999px; }
.osc-chip.hi[b-hgz5v3280u] { color: var(--fn-success); background: var(--fn-success-soft); }
.osc-chip.mid[b-hgz5v3280u] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.osc-chip.lo[b-hgz5v3280u] { color: var(--fn-text-tertiary); background: var(--fn-bg-muted); }

.osc-why[b-hgz5v3280u] { color: var(--fn-text-secondary); font-size: 12px; margin-top: 10px; }
.osc-note[b-hgz5v3280u] { margin-top: 12px; padding: 10px 14px; border-radius: 0 var(--fn-radius) var(--fn-radius) 0; font-size: 12.5px; }
.osc-note.warn[b-hgz5v3280u] { border-left: 3px solid var(--fn-warning); background: var(--fn-warning-soft); color: var(--fn-text-secondary); }

.osc-twocol[b-hgz5v3280u] { display: grid; grid-template-columns: 1.3fr 1fr; gap: 16px; }
.osc-wf[b-hgz5v3280u] { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.osc-wf th[b-hgz5v3280u], .osc-wf td[b-hgz5v3280u] { 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-hgz5v3280u], .osc-wf td:first-child[b-hgz5v3280u] { text-align: left; }
.osc-wf th[b-hgz5v3280u] { color: var(--fn-text-tertiary); font-size: 10.5px; text-transform: uppercase; font-family: var(--fn-font); }
.osc-up[b-hgz5v3280u] { color: var(--fn-chart-up); }
.osc-down[b-hgz5v3280u] { color: var(--fn-chart-down); }

.osc-reason[b-hgz5v3280u] { 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-hgz5v3280u] { 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-hgz5v3280u] { border-bottom: 0; }
.osc-kv .k[b-hgz5v3280u] { color: var(--fn-text-secondary); }
.osc-kv .v[b-hgz5v3280u] { font-family: var(--fn-font-mono); }
.osc-exec[b-hgz5v3280u] { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--fn-border); }
.osc-route[b-hgz5v3280u] { font-size: 12px; color: var(--fn-text-secondary); }

.osc-foot[b-hgz5v3280u] { color: var(--fn-text-tertiary); font-size: 11.5px; line-height: 1.6; }

@media (max-width: 900px) { .osc-twocol[b-hgz5v3280u] { grid-template-columns: 1fr; } }
/* /Components/Pages/LocalizationDemo.razor.rz.scp.css */
.localization-demo[b-yq6mzu7cep] {
    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-yq6mzu7cep] {
    margin-top: 0;
    color: var(--fn-text);
}

.localization-demo__intro[b-yq6mzu7cep] {
    color: var(--fn-text-secondary);
}

.localization-demo__facts[b-yq6mzu7cep] {
    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-yq6mzu7cep] {
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text-secondary);
}

.localization-demo__facts dd[b-yq6mzu7cep] {
    margin: 0;
    color: var(--fn-text);
}

.localization-demo__greeting[b-yq6mzu7cep] {
    font-weight: var(--fn-font-weight-bold);
    color: var(--fn-primary);
}

.localization-demo__hint[b-yq6mzu7cep] {
    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-e1m4za7s4g] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 28px;
    font-family: var(--fn-font);
    color: var(--fn-text);
}

.tok__eyebrow[b-e1m4za7s4g] {
    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-e1m4za7s4g] {
    margin: 0 0 6px;
    font-size: 26px;
    font-weight: var(--fn-font-weight-bold);
}

.tok__hint[b-e1m4za7s4g] {
    margin: 0 0 8px;
    color: var(--fn-text-secondary);
}

.tok__hint code[b-e1m4za7s4g] {
    font-family: var(--fn-font-mono);
    color: var(--fn-primary);
}

.tok__group[b-e1m4za7s4g] {
    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-e1m4za7s4g] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 12px;
}

.tok__item[b-e1m4za7s4g] {
    margin: 0;
}

.tok__item figcaption[b-e1m4za7s4g] {
    margin-top: 6px;
    font-family: var(--fn-font-mono);
    font-size: 12px;
    color: var(--fn-text-secondary);
}

.tok__sw[b-e1m4za7s4g] {
    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-e1m4za7s4g]          { background: var(--fn-bg); }
.tok__sw--bg-alt[b-e1m4za7s4g]      { background: var(--fn-bg-alt); }
.tok__sw--bg-muted[b-e1m4za7s4g]    { background: var(--fn-bg-muted); }
.tok__sw--surface[b-e1m4za7s4g]     { background: var(--fn-surface); }
.tok__sw--surface-alt[b-e1m4za7s4g] { background: var(--fn-surface-alt); }
.tok__sw--hover[b-e1m4za7s4g]       { background: var(--fn-hover); }

/* Marke & Text */
.tok__sw--primary[b-e1m4za7s4g]       { background: var(--fn-primary); }
.tok__sw--primary-hover[b-e1m4za7s4g] { background: var(--fn-primary-hover); }
.tok__on-primary[b-e1m4za7s4g]        { color: var(--fn-on-primary); }
.tok__sw--text-sample[b-e1m4za7s4g]   { background: var(--fn-bg-alt); color: var(--fn-text); }
.tok__sw--text-secondary[b-e1m4za7s4g] { color: var(--fn-text-secondary); }
.tok__sw--text-tertiary[b-e1m4za7s4g]  { color: var(--fn-text-tertiary); }

/* Semantisch */
.tok__sw--success[b-e1m4za7s4g] { background: var(--fn-success); }
.tok__sw--warning[b-e1m4za7s4g] { background: var(--fn-warning); }
.tok__sw--danger[b-e1m4za7s4g]  { background: var(--fn-danger); }
.tok__sw--info[b-e1m4za7s4g]    { background: var(--fn-info); }

/* Funktionale Akzent-Palette */
.tok__sw--cat-blue[b-e1m4za7s4g]   { background: var(--fn-cat-blue); }
.tok__sw--cat-purple[b-e1m4za7s4g] { background: var(--fn-cat-purple); }
.tok__sw--cat-pink[b-e1m4za7s4g]   { background: var(--fn-cat-pink); }
.tok__sw--cat-orange[b-e1m4za7s4g] { background: var(--fn-cat-orange); }
.tok__sw--cat-gold[b-e1m4za7s4g]   { background: var(--fn-cat-gold); }
.tok__sw--cat-teal[b-e1m4za7s4g]   { background: var(--fn-cat-teal); }

/* Geometrie & Typografie */
.tok__radius-sm[b-e1m4za7s4g] { border-radius: var(--fn-radius-sm); }
.tok__radius-lg[b-e1m4za7s4g] { border-radius: var(--fn-radius-lg); }
.tok__mono[b-e1m4za7s4g]      { font-family: var(--fn-font-mono); color: var(--fn-text); }
/* /Components/Pages/TradingJournalColumnsButton.razor.rz.scp.css */
.tj-columns-pill[b-h0oce1z1nt] {
    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-h0oce1z1nt]  .fn-icon {
    width: 14px;
    height: 14px;
    flex: none;
}

.tj-columns-pill:hover[b-h0oce1z1nt] {
    border-color: var(--fn-primary-hover);
    color: var(--fn-primary-hover);
}

.tj-columns-pill:focus-visible[b-h0oce1z1nt] {
    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-hwevwijam4] {
    overflow-x: auto;
}

table.tj-daily[b-hwevwijam4] {
    width: 100%;
}

/* Kürzel wie in jeder FIN-Liste: mono, blauer Akzent. */
table.tj-daily td.tj-daily-sym[b-hwevwijam4],
table.tj-daily th.tj-daily-sym[b-hwevwijam4] {
    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-hwevwijam4] {
    display: block;
    font-family: var(--fn-font-mono);
}

table.tj-daily .tj-orig[b-hwevwijam4] {
    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-hwevwijam4],
table.tj-daily tbody tr.tj-yearrow:hover td[b-hwevwijam4] {
    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-hwevwijam4],
table.tj-daily tbody tr.tj-monthrow:hover td[b-hwevwijam4] {
    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-hwevwijam4],
table.tj-daily tbody tr.tj-weekrow:hover td[b-hwevwijam4] {
    background: var(--fn-bg-muted);
    color: var(--fn-text-secondary);
}

table.tj-daily tr.tj-dayrow td[b-hwevwijam4],
table.tj-daily tbody tr.tj-dayrow:hover td[b-hwevwijam4] {
    background: var(--fn-bg-alt);
    color: var(--fn-text);
    font-weight: var(--fn-font-weight-medium);
}

table.tj-daily tr.tj-strategyrow td[b-hwevwijam4],
table.tj-daily tbody tr.tj-strategyrow:hover td[b-hwevwijam4] {
    background: var(--fn-bg-alt);
    color: var(--fn-text-secondary);
}

table.tj-daily tr.tj-totalrow td[b-hwevwijam4],
table.tj-daily tbody tr.tj-totalrow:hover td[b-hwevwijam4] {
    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-hwevwijam4] { padding-left: 18px; }
table.tj-daily tr.tj-weekrow td:first-child[b-hwevwijam4] { padding-left: 30px; }
table.tj-daily tr.tj-dayrow td:first-child[b-hwevwijam4] { padding-left: 42px; }
table.tj-daily tr.tj-strategyrow td:first-child[b-hwevwijam4] { padding-left: 54px; }
table.tj-daily tr.tj-productrow td:first-child[b-hwevwijam4] { padding-left: 66px; }

/* Ergebnisfarben — die Tokens der Design-Vorgabe für Gewinn und Verlust. */
table.tj-daily .tj-pos[b-hwevwijam4] { color: var(--fn-success); }
table.tj-daily .tj-neg[b-hwevwijam4] { color: var(--fn-danger); }
table.tj-daily .tj-cost[b-hwevwijam4] { color: var(--fn-warning); }

table.tj-daily .tj-empty[b-hwevwijam4] {
    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-hwevwijam4] {
    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-hwevwijam4] {
    display: inline-flex;
    color: var(--fn-text-secondary);
}

.tj-grp-toggle:hover .chev[b-hwevwijam4] { color: var(--fn-text); }

/* Hinweiszeile unter der Tabelle — erklärt jedes „—" in der Liste. */
.tj-daily-hint[b-hwevwijam4] {
    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-hwevwijam4] {
    font-weight: var(--fn-font-weight-bold);
    font-size: 12.5px;
}

/* Leiste der Sammelschalter über der Tabelle. */
.tj-viewrow[b-hwevwijam4] {
    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-hwevwijam4] {
    color: var(--fn-warning);
}
/* /Components/Pages/TradingJournalEvidenceCard.razor.rz.scp.css */
.tje-card[b-4e6nii1wia] {
    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-4e6nii1wia],
.tje-foot[b-4e6nii1wia],
.tje-dialog-summary[b-4e6nii1wia],
.tje-dialog-head[b-4e6nii1wia] {
    display: flex;
    align-items: center;
}

.tje-head[b-4e6nii1wia] {
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.tje-identity[b-4e6nii1wia] {
    min-width: 0;
}

.tje-identity strong[b-4e6nii1wia],
.tje-identity span[b-4e6nii1wia] {
    display: block;
}

.tje-identity strong[b-4e6nii1wia] {
    color: var(--fn-text);
    font-size: 12.5px;
    line-height: 1.25;
}

.tje-identity span[b-4e6nii1wia] {
    margin-top: 2px;
    overflow-wrap: anywhere;
    color: var(--fn-text-secondary);
    font: 9.5px/1.25 var(--fn-font-mono);
}

.tje-decision[b-4e6nii1wia] {
    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-4e6nii1wia],
.tje-dialog-summary.positive[b-4e6nii1wia] {
    color: var(--fn-success);
    border-color: color-mix(in srgb, var(--fn-success) 55%, var(--fn-border));
}

.tje-decision.warning[b-4e6nii1wia],
.tje-dialog-summary.warning[b-4e6nii1wia] {
    color: var(--fn-warning);
    border-color: color-mix(in srgb, var(--fn-warning) 55%, var(--fn-border));
}

.tje-decision.negative[b-4e6nii1wia],
.tje-dialog-summary.negative[b-4e6nii1wia] {
    color: var(--fn-danger);
    border-color: color-mix(in srgb, var(--fn-danger) 55%, var(--fn-border));
}

.tje-signal[b-4e6nii1wia] {
    display: inline-flex;
    gap: 3px;
}

.tje-signal i[b-4e6nii1wia] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--fn-border-strong);
}

.positive .tje-signal i.positive[b-4e6nii1wia],
.warning .tje-signal i.warning[b-4e6nii1wia],
.negative .tje-signal i.negative[b-4e6nii1wia] {
    background: currentColor;
    box-shadow: 0 0 8px currentColor;
}

.tje-health[b-4e6nii1wia] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    margin: 9px 0 0;
}

.tje-health-item[b-4e6nii1wia] {
    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-4e6nii1wia] {
    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-4e6nii1wia] {
    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-4e6nii1wia] {
    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-4e6nii1wia],
.tje-metric dt[b-4e6nii1wia],
.tje-range small[b-4e6nii1wia] {
    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-4e6nii1wia] {
    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-4e6nii1wia] { color: var(--fn-warning); }
.tje-health-item.negative dd[b-4e6nii1wia] { color: var(--fn-danger); }
.tje-health-item.positive dd[b-4e6nii1wia] { color: var(--fn-success); }

.tje-metrics[b-4e6nii1wia] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    margin: 8px 0 0;
}

.tje-metric[b-4e6nii1wia] {
    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-4e6nii1wia],
.tje-range strong[b-4e6nii1wia] {
    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-4e6nii1wia],
.tje-range .positive[b-4e6nii1wia] { color: var(--fn-success); }
.tje-metric .negative[b-4e6nii1wia],
.tje-range .negative[b-4e6nii1wia] { color: var(--fn-danger); }

.tje-interval[b-4e6nii1wia] {
    display: block;
    grid-column: 1 / -1;
}

.tje-interval > dt[b-4e6nii1wia] {
    margin-bottom: 5px;
}

.tje-range[b-4e6nii1wia] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.tje-range > span[b-4e6nii1wia] {
    display: grid;
    min-width: 0;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 6px;
}

.tje-foot[b-4e6nii1wia] {
    gap: 8px;
    margin-top: auto;
    padding-top: 8px;
}

.tje-lineage[b-4e6nii1wia] {
    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-4e6nii1wia],
.tje-close[b-4e6nii1wia] {
    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-4e6nii1wia] {
    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-4e6nii1wia],
.tje-close:hover[b-4e6nii1wia] {
    border-color: var(--fn-primary);
    background: var(--fn-cat-blue-soft);
}

.tje-details:focus-visible[b-4e6nii1wia],
.tje-close:focus-visible[b-4e6nii1wia] {
    outline: 2px solid var(--fn-primary);
    outline-offset: 2px;
}

.tje-overlay[b-4e6nii1wia] {
    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-4e6nii1wia] {
    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-4e6nii1wia] {
    align-items: flex-start;
    gap: 16px;
    padding: 16px 18px;
    border-bottom: var(--fn-border-width) solid var(--fn-border);
}

.tje-dialog-head > div[b-4e6nii1wia] {
    min-width: 0;
    flex: 1;
}

.tje-dialog-head span[b-4e6nii1wia] {
    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-4e6nii1wia] {
    margin: 2px 0 0;
    color: var(--fn-text);
    font-size: 17px;
}

.tje-dialog-head p[b-4e6nii1wia] {
    margin: 3px 0 0;
    color: var(--fn-text-secondary);
    font: 9.5px var(--fn-font-mono);
}

.tje-dialog-body[b-4e6nii1wia] {
    padding: 16px 18px 18px;
}

.tje-dialog-summary[b-4e6nii1wia] {
    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-4e6nii1wia],
.tje-dialog-summary span[b-4e6nii1wia] {
    display: block;
}

.tje-dialog-summary strong[b-4e6nii1wia] {
    font-size: 12px;
}

.tje-dialog-summary div > span[b-4e6nii1wia] {
    margin-top: 2px;
    color: var(--fn-text-secondary);
    font-size: 10px;
}

.tje-dialog-body h3[b-4e6nii1wia] {
    margin: 16px 0 8px;
    color: var(--fn-text);
    font-size: 11px;
}

.tje-criteria[b-4e6nii1wia] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tje-criteria li[b-4e6nii1wia] {
    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-4e6nii1wia]::before {
    flex: none;
    color: var(--fn-danger);
    content: "×";
    font-weight: var(--fn-font-weight-bold);
}

.tje-original-reason[b-4e6nii1wia] {
    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-4e6nii1wia] { white-space: normal; }
    .tje-health[b-4e6nii1wia], .tje-range[b-4e6nii1wia], .tje-criteria[b-4e6nii1wia] { grid-template-columns: 1fr; }
    .tje-metric[b-4e6nii1wia] { grid-template-columns: 1fr; }
    .tje-metric dd[b-4e6nii1wia] { text-align: left; }
    .tje-dialog-head[b-4e6nii1wia], .tje-dialog-body[b-4e6nii1wia] { 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-606fiwb0s4] { width: 100%; max-width: none; margin: 0; padding: 22px; color: var(--fn-text); }
.tj-eyebrow[b-606fiwb0s4] { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--fn-primary); font-weight: var(--fn-font-weight-bold); }
.tj-page h1[b-606fiwb0s4] { font-size: 22px; margin: 5px 0 3px; }
.tj-sub[b-606fiwb0s4] { color: var(--fn-text-secondary); font-size: 13px; margin: 0 0 16px; }

.tj-shell[b-606fiwb0s4] { 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-606fiwb0s4] { display: grid; grid-template-columns: minmax(270px, 310px) minmax(300px, 340px) 140px 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-606fiwb0s4] { font-size: 10px; text-align: center; text-transform: uppercase; letter-spacing: .5px; color: var(--fn-text-tertiary); }
.tj-filter-group[b-606fiwb0s4] { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: 5px; }
.tj-filter-group > .tj-seg[b-606fiwb0s4], .tj-filter-group > .tj-range[b-606fiwb0s4], .tj-filter-group > .tj-sel[b-606fiwb0s4], .tj-filter-group > .tj-ynav[b-606fiwb0s4] { width: 100%; }
.tj-filter-group .tj-seg[b-606fiwb0s4] { display: flex; }
.tj-filter-group .tj-seg button[b-606fiwb0s4] { flex: 1; }
.tj-range-group[b-606fiwb0s4]  .fdrc-wrap { width: 100%; }
.tj-range-group[b-606fiwb0s4]  .fdrc-feld { flex: 1; }

.tj-seg[b-606fiwb0s4] { border: var(--fn-border-width) solid var(--fn-border); border-radius: 8px; overflow: hidden; }
.tj-seg button[b-606fiwb0s4] { 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-606fiwb0s4] { border-left: var(--fn-border-width) solid var(--fn-border); }
.tj-seg button.on[b-606fiwb0s4] { background: var(--fn-primary); color: var(--fn-on-primary); }

.tj-ynav[b-606fiwb0s4] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin-left: 0; }
.tj-ynav button[b-606fiwb0s4] { 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-606fiwb0s4] { font: 700 12px var(--fn-font-mono); color: var(--fn-text); }

.tj-sel[b-606fiwb0s4] { 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-606fiwb0s4] { min-width: 200px; }
.tj-cntlbl[b-606fiwb0s4] { 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-606fiwb0s4] { 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-606fiwb0s4] { border: var(--fn-border-width) solid var(--fn-border); border-radius: 10px; padding: 10px 12px; background: var(--fn-input-bg); }
.tj-kpi .k[b-606fiwb0s4] { 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-606fiwb0s4] { font: 700 18px var(--fn-font-mono); color: var(--fn-text); margin-top: 4px; }
.tj-kpi .v.up[b-606fiwb0s4] { color: var(--fn-chart-up); }
.tj-kpi .v.down[b-606fiwb0s4] { color: var(--fn-chart-down); }
.tj-kpi .v.tj-warn[b-606fiwb0s4] { color: var(--fn-warning); }
.tj-kpi .s[b-606fiwb0s4] { font-size: 10.5px; color: var(--fn-text-tertiary); margin-top: 2px; }

/* ---- Persistierte Strategieanalyse ---- */
.tj-analysis[b-606fiwb0s4] { padding: 14px; border-bottom: var(--fn-border-width) solid var(--fn-border);
               background: var(--fn-bg-alt); }
.tj-analysis > header[b-606fiwb0s4] { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.tj-analysis h2[b-606fiwb0s4] { margin: 2px 0 0; font-size: 15px; }
.tj-analysis > p[b-606fiwb0s4] { margin: 6px 0 12px; color: var(--fn-text-secondary); font-size: 11.5px; }
.tj-analysis-eyebrow[b-606fiwb0s4] { 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-606fiwb0s4] { 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-606fiwb0s4] { 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-606fiwb0s4] { 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-606fiwb0s4] { grid-template-columns: auto 1fr auto; }
.tj-control[b-606fiwb0s4] { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: 3px; }
.tj-view-control[b-606fiwb0s4] { justify-self: start; }
.tj-group-control[b-606fiwb0s4] { justify-self: center; }
.tj-glbl[b-606fiwb0s4] { font-size: 10px; text-transform: uppercase; letter-spacing: .5px; color: var(--fn-text-tertiary); font-weight: var(--fn-font-weight-bold); }
.tj-gseg[b-606fiwb0s4] { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.tj-gseg button[b-606fiwb0s4] { 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-606fiwb0s4] { background: var(--fn-cat-blue-soft); border-color: var(--fn-primary); color: var(--fn-primary); }
.tj-group-line[b-606fiwb0s4] { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: 4px; }
.tj-ghint[b-606fiwb0s4] { font: 10px/1.3 var(--fn-font-mono); color: var(--fn-text-tertiary); text-align: center; }
.tj-columns-control[b-606fiwb0s4] { justify-self: end; align-self: end; }

/* ---- Grid (fn-list erbt Grundoptik; hier Gruppen-/Zellenspezifika) ---- */
.tj-grid-wrap[b-606fiwb0s4] { overflow-x: auto; overflow-y: hidden; }
.tj-grid[b-606fiwb0s4] { min-width: 1720px; table-layout: fixed; }
.tj-grid .tj-col-security[b-606fiwb0s4] { width: 15%; }
.tj-grid .tj-col-strategy[b-606fiwb0s4] { width: 13%; }
.tj-grid .tj-col-execution[b-606fiwb0s4] { width: 11%; }
.tj-grid .tj-col-broker[b-606fiwb0s4] { width: 8%; }
.tj-grid .tj-col-side[b-606fiwb0s4] { width: 5%; }
.tj-grid .tj-col-shares[b-606fiwb0s4] { width: 5%; }
.tj-grid .tj-col-price[b-606fiwb0s4] { width: 7%; }
.tj-grid .tj-col-date[b-606fiwb0s4] { width: 8%; }
.tj-grid .tj-col-net[b-606fiwb0s4] { width: 9%; }
.tj-grid .tj-col-status[b-606fiwb0s4] { width: 8%; }
.tj-grid th[b-606fiwb0s4], .tj-grid td[b-606fiwb0s4] { overflow: hidden; text-overflow: ellipsis; }
.tj-grid th[b-606fiwb0s4] { vertical-align: bottom; }
.tj-grid td[b-606fiwb0s4] { vertical-align: middle; }
.tj-grid td:first-child[b-606fiwb0s4] { overflow: visible; }
.tj-grid .fn-sort[b-606fiwb0s4] { display: inline-flex; align-items: center; gap: 4px; max-width: 100%; }
.tj-grid .fn-stack[b-606fiwb0s4], .tj-grid .sec-ids[b-606fiwb0s4] { min-width: 0; }
.tj-grid .tj-pill + .tj-pill[b-606fiwb0s4] { margin-left: 4px; }
.tj-grid .tj-dir[b-606fiwb0s4] { font-weight: var(--fn-font-weight-medium); }
.tj-grid .tj-empty[b-606fiwb0s4] { text-align: center; color: var(--fn-text-tertiary); padding: 26px 14px; }

.tj-grp td[b-606fiwb0s4] { padding: 0; background: var(--fn-bg-alt); }
.tj-subgrp td[b-606fiwb0s4] { padding: 0; background: var(--fn-bg-muted); }
.tj-grp-toggle[b-606fiwb0s4] { 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-606fiwb0s4] { padding-left: 34px; }
.tj-grp-toggle .chev[b-606fiwb0s4] { color: var(--fn-text-tertiary); }
.tj-grp-toggle .gl[b-606fiwb0s4] { font-weight: var(--fn-font-weight-bold); font-size: 12.5px; }
.tj-subgrp .tj-grp-toggle .gl[b-606fiwb0s4] { font-weight: var(--fn-font-weight-medium); font-size: 11.5px; color: var(--fn-text-secondary); }
.tj-grp-toggle .gl.tj-sim-label[b-606fiwb0s4] { color: var(--fn-cat-purple); }
.tj-grp-toggle .cnt[b-606fiwb0s4] { margin-left: auto; font: 11px var(--fn-font-mono); color: var(--fn-text-tertiary); }
.tj-grp-toggle .cnt b[b-606fiwb0s4] { font-family: var(--fn-font-mono); }
.tj-grp-toggle .cnt b.up[b-606fiwb0s4] { color: var(--fn-chart-up); }
.tj-grp-toggle .cnt b.down[b-606fiwb0s4] { color: var(--fn-chart-down); }

/* Pills / Bubbles */
.tj-pill[b-606fiwb0s4] { 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-606fiwb0s4] { color: var(--fn-cat-blue); border-color: var(--fn-cat-blue); }
.tj-pill.scal[b-606fiwb0s4] { color: var(--fn-cat-teal); border-color: var(--fn-cat-teal); }
.tj-pill.paper[b-606fiwb0s4] { color: var(--fn-text-secondary); }
.tj-pill.live[b-606fiwb0s4] { color: var(--fn-warning); border-color: var(--fn-warning); }
.tj-pill.sim[b-606fiwb0s4] { color: var(--fn-cat-purple); border-color: var(--fn-cat-purple); }
.tj-pill.origin[b-606fiwb0s4] { color: var(--fn-cat-blue); border-color: var(--fn-cat-blue); }
.tj-pill.automation[b-606fiwb0s4] { color: var(--fn-cat-teal); border-color: var(--fn-cat-teal); }
.tj-pill.open[b-606fiwb0s4] { color: var(--fn-warning); border-color: var(--fn-warning); }
.tj-pill.closed[b-606fiwb0s4] { color: var(--fn-chart-up); border-color: var(--fn-chart-up); }
.tj-pill.cancelled[b-606fiwb0s4] { color: var(--fn-text-tertiary); }

.tj-dir.long[b-606fiwb0s4] { color: var(--fn-chart-up); }
.tj-dir.short[b-606fiwb0s4] { color: var(--fn-chart-down); }
.tj-pnl[b-606fiwb0s4] { font-family: var(--fn-font-mono); }
.tj-pnl.up[b-606fiwb0s4] { color: var(--fn-chart-up); font-weight: var(--fn-font-weight-bold); }
.tj-pnl.down[b-606fiwb0s4] { color: var(--fn-chart-down); font-weight: var(--fn-font-weight-bold); }
  .tj-pnl.na[b-606fiwb0s4] { color: var(--fn-warning); }
  .tj-cost-warning[b-606fiwb0s4] { 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-606fiwb0s4] { color: var(--fn-warning); white-space: nowrap; }
  .tj-cost-warning.compact[b-606fiwb0s4] { margin: 0 0 10px; }
.tj-small[b-606fiwb0s4] { font: 11px var(--fn-font-mono); color: var(--fn-text-tertiary); }
.tj-strategy[b-606fiwb0s4] { display: block; color: var(--fn-text); font-size: 12px; line-height: 1.35; }
.tj-return[b-606fiwb0s4] { display: block; margin-top: 2px; color: var(--fn-text-tertiary); font: 10.5px var(--fn-font-mono); }
.tj-detail-button[b-606fiwb0s4] { 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-606fiwb0s4] { padding: 14px 18px 16px; background: var(--fn-bg-muted); border-bottom-color: var(--fn-border-strong); }
.tj-detail-grid[b-606fiwb0s4] { display: grid; grid-template-columns: repeat(5, minmax(180px, 1fr)); gap: 10px; }
.tj-detail-item[b-606fiwb0s4] { 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-606fiwb0s4] { 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-606fiwb0s4] { 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-606fiwb0s4] { margin-top: 14px; color: var(--fn-text); font-size: 11px; font-weight: var(--fn-font-weight-bold); }
.tj-event-empty[b-606fiwb0s4] { margin-top: 7px; color: var(--fn-text-tertiary); font-size: 11px; }
.tj-events[b-606fiwb0s4] { display: grid; gap: 5px; margin: 7px 0 0; padding: 0; list-style: none; }
.tj-events li[b-606fiwb0s4] { 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-606fiwb0s4] { color: var(--fn-text-tertiary); }
.tj-events strong[b-606fiwb0s4] { color: var(--fn-primary); }
.tj-events code[b-606fiwb0s4] { color: var(--fn-text-secondary); overflow-wrap: anywhere; }

@media (max-width: 1200px) {
    .tj-bar[b-606fiwb0s4] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tj-cntlbl[b-606fiwb0s4] { grid-column: 1 / -1; justify-self: start; }
    .tj-detail-grid[b-606fiwb0s4] { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
    .tj-controlbar[b-606fiwb0s4] { grid-template-columns: auto auto; gap: 10px 16px; }
    .tj-group-control[b-606fiwb0s4] { grid-column: 1 / -1; grid-row: 2; justify-self: center; }
    .tj-columns-control[b-606fiwb0s4] { grid-column: 2; grid-row: 1; }
}

@media (max-width: 720px) {
    .tj-bar[b-606fiwb0s4] { grid-template-columns: minmax(0, 1fr); }
    .tj-controlbar[b-606fiwb0s4], .tj-controlbar.daily[b-606fiwb0s4] { grid-template-columns: minmax(0, 1fr) auto; }
    .tj-view-control[b-606fiwb0s4] { align-items: flex-start; }
    .tj-group-control[b-606fiwb0s4] { align-items: stretch; justify-self: stretch; }
    .tj-group-line[b-606fiwb0s4] { align-items: flex-start; }
    .tj-group-control .tj-glbl[b-606fiwb0s4] { align-self: center; }
}

/* Legende */
.tj-legend[b-606fiwb0s4] { display: flex; gap: 16px; margin-top: 12px; font-size: 11.5px; color: var(--fn-text-secondary); flex-wrap: wrap; }
.tj-legend i[b-606fiwb0s4] { 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-606fiwb0s4] { background: var(--fn-success); }
.tj-legend .tj-legend-loss[b-606fiwb0s4] { background: var(--fn-danger); }
.tj-legend .tj-legend-open[b-606fiwb0s4] { background: var(--fn-warning); }
.tj-legend .tj-legend-sim[b-606fiwb0s4] { 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-r6d97gsupe] {
    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-k5ytlwvbgu] { padding: 20px 22px 40px; }
.pp-loading[b-k5ytlwvbgu] { color: var(--fn-text-tertiary); padding: 40px 0; text-align: center; }

.pp-head[b-k5ytlwvbgu] { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; }
.pp-head h1[b-k5ytlwvbgu] { margin: 0; font-size: 23px; }
.pp-sub[b-k5ytlwvbgu] { color: var(--fn-text-secondary); font-size: 13px; margin-top: 3px; }

.pp-empty[b-k5ytlwvbgu] {
    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-k5ytlwvbgu] { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 6px 0 14px; }
.pp-seg[b-k5ytlwvbgu] {
    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-k5ytlwvbgu] {
    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-k5ytlwvbgu] { font-weight: var(--fn-font-weight-medium); font-size: 10px; color: var(--fn-text-tertiary); margin-top: 2px; }
.pp-seg button + button[b-k5ytlwvbgu] { border-left: var(--fn-border-width) solid var(--fn-border); }
.pp-seg button.on[b-k5ytlwvbgu] { background: var(--fn-cat-gold-soft); color: var(--fn-cat-gold); }
.pp-seg button.on small[b-k5ytlwvbgu] { color: var(--fn-cat-gold); opacity: .8; }
.pp-modehint[b-k5ytlwvbgu] { font-size: 12px; color: var(--fn-text-secondary); }
.pp-disclaimer[b-k5ytlwvbgu] {
    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-k5ytlwvbgu] { width: 7px; height: 7px; border-radius: var(--fn-radius-round); background: var(--fn-warning); }

/* Hero — die eine Aussage groß */
.pp-hero[b-k5ytlwvbgu] {
    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-k5ytlwvbgu] { border-left-color: var(--fn-primary); }
.pp-hero-net[b-k5ytlwvbgu] { border-left-color: var(--fn-success); }
.pp-hero .pp-k[b-k5ytlwvbgu] { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--fn-text-tertiary); }
.pp-hero .pp-big[b-k5ytlwvbgu] {
    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-k5ytlwvbgu] { font-size: 12.5px; color: var(--fn-text-secondary); margin-top: 6px; }

/* KPI-Streifen */
.pp-kpis[b-k5ytlwvbgu] { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-top: 12px; }
@media (max-width: 1080px) { .pp-kpis[b-k5ytlwvbgu] { grid-template-columns: repeat(3, 1fr); } }
.pp-kpi[b-k5ytlwvbgu] { 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-k5ytlwvbgu] { 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-k5ytlwvbgu] { 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-k5ytlwvbgu] { font-size: 11px; color: var(--fn-text-secondary); margin-top: 2px; }
.pp-jump[b-k5ytlwvbgu] { display: inline-block; margin-top: 5px; font-size: 10.5px; color: var(--fn-primary); cursor: pointer; }
.pp-jump:hover[b-k5ytlwvbgu] { text-decoration: underline; }

.pp-pos[b-k5ytlwvbgu] { color: var(--fn-success); }
.pp-neg[b-k5ytlwvbgu] { color: var(--fn-danger); }

/* Hauptbereich */
.pp-cols[b-k5ytlwvbgu] { display: grid; grid-template-columns: 1.7fr 1fr; gap: 14px; margin-top: 16px; align-items: start; }
@media (max-width: 1080px) { .pp-cols[b-k5ytlwvbgu] { grid-template-columns: 1fr; } }
.pp-side[b-k5ytlwvbgu] { display: grid; gap: 14px; }

.pp-card[b-k5ytlwvbgu] {
    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-k5ytlwvbgu] { 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-k5ytlwvbgu] { margin: 0; font-size: 13.5px; }
.pp-pill[b-k5ytlwvbgu] {
    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-k5ytlwvbgu] { font-size: 10.5px; color: var(--fn-text-tertiary); line-height: 1.4; padding: 8px 15px 0; }
.pp-foot[b-k5ytlwvbgu] { 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-k5ytlwvbgu] { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.fn-list th.num[b-k5ytlwvbgu], .fn-list td.num[b-k5ytlwvbgu] { text-align: right; font-family: var(--fn-font-mono); }
.fn-stack .n[b-k5ytlwvbgu] { display: block; }
.fn-stack .s[b-k5ytlwvbgu] { display: block; margin-top: 1px; }
tr.selrow td[b-k5ytlwvbgu] { 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-k5ytlwvbgu] { padding: 0; }
.pp-sim[b-k5ytlwvbgu] { 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-k5ytlwvbgu] { display: flex; align-items: center; gap: 9px; margin-bottom: 10px; }
.pp-sim .sh h4[b-k5ytlwvbgu] { margin: 0; font-size: 13px; }
.pp-sim .sh .q[b-k5ytlwvbgu] { font-family: var(--fn-font-mono); color: var(--fn-text-secondary); font-size: 12px; }
.pp-sim .grid[b-k5ytlwvbgu] { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
@media (max-width: 760px) { .pp-sim .grid[b-k5ytlwvbgu] { grid-template-columns: repeat(2, 1fr); } }
.pp-sim .cell[b-k5ytlwvbgu] { 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-k5ytlwvbgu] { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--fn-text-tertiary); }
.pp-sim .cell .v[b-k5ytlwvbgu] { font-family: var(--fn-font-mono); font-size: 16px; font-weight: var(--fn-font-weight-bold); margin-top: 3px; }
.pp-sim .cell.flow[b-k5ytlwvbgu] { border-color: var(--fn-success); background: var(--fn-success-soft); }
.pp-sim .cell.flow .v[b-k5ytlwvbgu] { color: var(--fn-success); }
.pp-sim .qty[b-k5ytlwvbgu] { 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-k5ytlwvbgu] { flex: 1; accent-color: var(--fn-primary); }

/* Liquidations- / Realisiert-Panel */
.pp-liq[b-k5ytlwvbgu] { padding: 6px 16px 8px; }
.pp-liq .row[b-k5ytlwvbgu] { 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-k5ytlwvbgu] { border-bottom: none; }
.pp-liq .row .lab[b-k5ytlwvbgu] { color: var(--fn-text-secondary); }
.pp-liq .row .val[b-k5ytlwvbgu] { font-family: var(--fn-font-mono); color: var(--fn-text); }
.pp-liq .row.minus .val[b-k5ytlwvbgu] { color: var(--fn-danger); }
.pp-liq .row.total[b-k5ytlwvbgu] { margin-top: 4px; padding-top: 13px; border-top: 2px solid var(--fn-border-strong); border-bottom: none; }
.pp-liq .row.total .lab[b-k5ytlwvbgu] { color: var(--fn-text); font-weight: var(--fn-font-weight-bold); font-size: 14px; }
.pp-liq .row.total .val[b-k5ytlwvbgu] { color: var(--fn-cat-gold); font-weight: 800; font-size: 19px; }

.pp-pos[b-k5ytlwvbgu] { color: var(--fn-success); }
.pp-neg[b-k5ytlwvbgu] { 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-k5ytlwvbgu] { 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-k5ytlwvbgu] { display: grid; grid-template-columns: 1fr auto 1fr; }
.pp-card-h-grouped h3[b-k5ytlwvbgu] { justify-self: start; }
.pp-card-h-grouped .pp-pill[b-k5ytlwvbgu] { justify-self: end; }
.pp-grpbar[b-k5ytlwvbgu] {
    min-width: 0; max-width: 100%; justify-self: center;
    display: flex; gap: 30px; align-items: flex-start;
}
.wl-grp-ctl[b-k5ytlwvbgu] { display: inline-flex; flex-direction: column; align-items: center; gap: 3px; }
.wl-grp-lbl[b-k5ytlwvbgu] { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--fn-text-tertiary); }
.pp-control-seg[b-k5ytlwvbgu] { 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-k5ytlwvbgu] { width: 100%; }
.pp-items-scroll .fn-list.wl-items[b-k5ytlwvbgu] { min-width: 880px; table-layout: fixed; }
.pp-group-title[b-k5ytlwvbgu] { display: flex; align-items: center; gap: 7px; min-width: 0; }
.pp-group-title .fn-sort[b-k5ytlwvbgu] {
    min-width: 0; flex: 1 1 auto;
    overflow: hidden; text-overflow: ellipsis;
}
.pp-group-toggle[b-k5ytlwvbgu] {
    flex: 0 0 18px; width: 18px; height: 18px;
    border-radius: var(--fn-radius-sm);
}
.pp-group-toggle:focus-visible[b-k5ytlwvbgu] {
    outline: 2px solid var(--fn-primary); outline-offset: 2px;
}
.pp-group-head .pp-group-metric[b-k5ytlwvbgu] { font-family: var(--fn-font-mono); }
.pp-group-head .pp-group-metric.pp-pos[b-k5ytlwvbgu] { color: var(--fn-success); opacity: 1; }
.pp-group-head .pp-group-metric.pp-neg[b-k5ytlwvbgu] { color: var(--fn-danger); opacity: 1; }

@media (max-width: 1280px) {
    .pp-card-h-grouped[b-k5ytlwvbgu] { grid-template-columns: 1fr auto; row-gap: 10px; }
    .pp-card-h-grouped .pp-pill[b-k5ytlwvbgu] { grid-column: 2; grid-row: 1; }
    .pp-grpbar[b-k5ytlwvbgu] {
        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-k5ytlwvbgu] { grid-template-columns: 1fr; align-items: start; }
    .pp-card-h-grouped .pp-pill[b-k5ytlwvbgu] { grid-column: 1; grid-row: 2; justify-self: start; }
    .pp-grpbar[b-k5ytlwvbgu] {
        grid-column: 1; grid-row: 3; width: 100%;
        flex-direction: column; align-items: stretch; gap: 10px; overflow: visible;
    }
    .pp-grpbar .wl-grp-ctl[b-k5ytlwvbgu] { min-width: 0; align-items: stretch; }
    .pp-grpbar .wl-grp-lbl[b-k5ytlwvbgu] { text-align: left; }
    .pp-control-seg[b-k5ytlwvbgu] {
        display: flex; width: 100%; overflow-x: auto; overflow-y: hidden;
    }
    .pp-control-seg .wl-mode-tab[b-k5ytlwvbgu] { flex: 0 0 auto; white-space: nowrap; }
}

/* Untere Zusammenfassungs-Karten: gleiche Breite + Höhe, Summen-Linie auf gleicher Höhe. */
.pp-cols-summary[b-k5ytlwvbgu] { grid-template-columns: 1fr 1fr; align-items: stretch; }
.pp-cols-summary .pp-card[b-k5ytlwvbgu] { display: flex; flex-direction: column; }
.pp-cols-summary .pp-liq[b-k5ytlwvbgu] { display: flex; flex-direction: column; flex: 1; }
.pp-cols-summary .pp-liq-rows[b-k5ytlwvbgu] { min-height: 112px; }
.pp-cols-summary .pp-foot[b-k5ytlwvbgu] { margin-top: auto; }

.pp-unavailable[b-k5ytlwvbgu] {
    color: var(--fn-text-tertiary) !important;
}

.pp-depot-source[b-k5ytlwvbgu] {
    display: block;
    margin-top: 2px;
    color: var(--fn-text-tertiary);
    font-size: 11px;
}

.pp-fee-warning[b-k5ytlwvbgu] {
    margin: 8px 12px;
    color: var(--fn-warning);
    font-size: 12px;
}

.pp-sim-loading[b-k5ytlwvbgu] {
    padding: 12px;
    color: var(--fn-text-secondary);
}
/* /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-tswgj9rwyd] { display: flex; flex-direction: column; flex: 1; min-width: 0; padding: 0 18px 24px; }
/* /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-psej2xyv3h] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }

@media (max-width: 1100px) {
  .fps-kpis[b-psej2xyv3h] { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .fps-kpis[b-psej2xyv3h] { 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-psej2xyv3h] {
  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-psej2xyv3h] { border-top-color: var(--fn-success); }
.fps-kpis .kpi.down[b-psej2xyv3h] { border-top-color: var(--fn-danger); }
.fps-kpis .kpi.teal[b-psej2xyv3h] { border-top-color: var(--fn-cat-teal); }

.fps-kpis .kpi .k[b-psej2xyv3h] {
  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-psej2xyv3h] {
  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-psej2xyv3h] { font-size: 12px; margin-top: 4px; color: var(--fn-text-secondary); }

.fps-kpis .kpi .v.up[b-psej2xyv3h] { color: var(--fn-success); }
.fps-kpis .kpi .v.down[b-psej2xyv3h] { 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-psej2xyv3h] { color: var(--fn-cat-teal); }
.fps-kpis .kpi .v.teal[b-psej2xyv3h] { 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-45fwgv11tw] { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

.ochip[b-45fwgv11tw] { 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-45fwgv11tw] { 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-45fwgv11tw]  .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-45fwgv11tw] { color: var(--fn-primary); }
.ochip.ai .ic[b-45fwgv11tw] { color: var(--fn-cat-purple); }
.ochip.signal .ic[b-45fwgv11tw] { color: var(--fn-cat-teal); }
.ochip.strat .ic[b-45fwgv11tw] { color: var(--fn-cat-pink); }
.ochip.auto .ic[b-45fwgv11tw] { color: var(--fn-cat-orange); }
/* Mono wie im Zielbild: die Zahlen der fuenf Chips fluchten sonst nicht untereinander. */
.ochip .cnt[b-45fwgv11tw] { font-family: var(--fn-font-mono); font-weight: 700; color: var(--fn-text); }
.ochip .pnl[b-45fwgv11tw] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.ochip.on[b-45fwgv11tw] { 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-45fwgv11tw] { display: inline-flex; }
/* Zielbild: 0-Chips gestrichelt und nicht klickbar — die Optik sagt es, bevor der Text es sagt. */
.ochip.zero[b-45fwgv11tw] { opacity: .5; border-style: dashed; cursor: not-allowed; }
.pnl.up[b-45fwgv11tw] { color: var(--fn-success); }
.pnl.down[b-45fwgv11tw] { 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-jjhpcdvtws] { 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-jjhpcdvtws] { 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-jjhpcdvtws] { 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-jjhpcdvtws] { 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-jjhpcdvtws] { display: inline-flex; flex-direction: column; align-items: center; gap: 3px; }
.wl-grp-lbl[b-jjhpcdvtws] { font-size: 10px; text-transform: uppercase; letter-spacing: .06em;
  color: var(--fn-text-tertiary); text-align: center; }
.wl-grp-row[b-jjhpcdvtws] { display: inline-flex; align-items: center; gap: 8px; }
.wl-grp-seg .wl-mode-tab[b-jjhpcdvtws] { padding: 6px 11px; font-size: 12px; }
.wl-mode[b-jjhpcdvtws] { display: inline-flex; border: 1px solid var(--fn-border-strong); border-radius: 8px; overflow: hidden; }
.wl-mode-tab[b-jjhpcdvtws] { 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-jjhpcdvtws] { border-right: 0; }
.wl-mode-tab.on[b-jjhpcdvtws] { background: var(--fn-primary); color: var(--fn-on-primary); font-weight: 700; }

/* --- Gruppen-Koepfe --- */
.fps-grp[b-jjhpcdvtws] { border-top: 1px solid var(--fn-border); }
.fps-grp-head[b-jjhpcdvtws] { display: flex; align-items: center; gap: 11px; padding: 11px 16px; background: var(--fn-bg-muted); }
.fps-grp-head .bar[b-jjhpcdvtws] { width: 4px; height: 16px; border-radius: 2px; background: var(--fn-primary); }
.fps-grp-head .bar.man[b-jjhpcdvtws] { background: var(--fn-primary); }
.fps-grp-head .bar.ai[b-jjhpcdvtws] { background: var(--fn-cat-purple); }
.fps-grp-head .bar.signal[b-jjhpcdvtws] { background: var(--fn-cat-teal); }
.fps-grp-head .bar.strat[b-jjhpcdvtws] { background: var(--fn-cat-pink); }
.fps-grp-head .bar.auto[b-jjhpcdvtws] { background: var(--fn-cat-orange); }
.fps-grp-head .lbl[b-jjhpcdvtws] { font-weight: 600; font-size: 13px; color: var(--fn-text-secondary); }
.fps-grp-head .cnt[b-jjhpcdvtws] { 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-jjhpcdvtws] { 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-jjhpcdvtws] { margin-left: auto; padding-bottom: 5px; }

/* --- Fusszeile --- */
.fps-foot[b-jjhpcdvtws] { 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-62ah0htne7] { display: flex; gap: 4px; }

.fps-tab[b-62ah0htne7] {
  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-62ah0htne7] { color: var(--fn-text-secondary); }
/* Kein Fokus-Kasten — nur der Unterstrich markiert aktiv (wie .mi-tab). */
.fps-tab:focus[b-62ah0htne7] { outline: none; }
.fps-tab:focus-visible[b-62ah0htne7] { outline: none; border-bottom-color: var(--fn-primary); }
.fps-tab.on[b-62ah0htne7] { color: var(--fn-text); border-bottom-color: var(--fn-primary); }

.fps-tab .count[b-62ah0htne7] {
  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-62ah0htne7] { color: var(--fn-text); }
/* /Components/QuantDeploymentFunnel/DeploymentFunnelPage.razor.rz.scp.css */
.qdf-page[b-oj9to709z7] { width: 100%; padding: 22px 28px 80px; color: var(--fn-text); }

.qdf-layer[b-oj9to709z7] { display: flex; align-items: baseline; gap: 12px; }
.qdf-layer .qdf-lab[b-oj9to709z7] { 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-oj9to709z7] { font-size: 20px; font-weight: 600; }
.qdf-sub[b-oj9to709z7] { color: var(--fn-text-secondary); font-size: 12.5px; }

.qdf-tabs[b-oj9to709z7] { display: flex; gap: 6px; margin: 16px 0 20px; border-bottom: 1px solid var(--fn-border); }
.qdf-tab[b-oj9to709z7] { 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-oj9to709z7] { color: var(--fn-text-secondary); }
.qdf-tab.qdf-active[b-oj9to709z7] { color: var(--fn-primary); border-bottom-color: var(--fn-primary); font-weight: 600; }

.qdf-empty[b-oj9to709z7] { 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-oj9to709z7] { 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-oj9to709z7] { display: grid; grid-template-columns: 1fr 1.4fr 1.2fr; gap: 14px; }
.qdf-tile[b-oj9to709z7] { padding: 18px 20px; }
.qdf-k[b-oj9to709z7] { font-size: 11px; letter-spacing: 0.7px; text-transform: uppercase; color: var(--fn-text-tertiary); }

.qdf-score[b-oj9to709z7] { font-family: var(--fn-font-mono); font-size: 58px; font-weight: 700; line-height: 1.05; margin-top: 6px; }
.qdf-score.qdf-hi[b-oj9to709z7] { color: var(--fn-success); }
.qdf-score.qdf-mid[b-oj9to709z7] { color: var(--fn-warning); }
.qdf-score.qdf-lo[b-oj9to709z7] { color: var(--fn-danger); }
.qdf-score .qdf-den[b-oj9to709z7] { font-size: 18px; color: var(--fn-text-tertiary); }
.qdf-nodata-big[b-oj9to709z7] { font-family: var(--fn-font-mono); font-size: 22px; color: var(--fn-text-tertiary); margin-top: 14px; }
.qdf-nodata[b-oj9to709z7] { color: var(--fn-text-tertiary); font-size: 13px; margin-top: 10px; }

.qdf-posture[b-oj9to709z7] { margin-top: 8px; }
.qdf-pill[b-oj9to709z7] { 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-oj9to709z7] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.qdf-pill.qdf-z-red[b-oj9to709z7] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.qdf-pill.qdf-z-def[b-oj9to709z7] { color: var(--fn-danger); border-color: var(--fn-danger); background: var(--fn-danger-soft); }
.qdf-posture-lead[b-oj9to709z7] { font-size: 15px; margin-top: 12px; color: var(--fn-text); }
.qdf-posture-note[b-oj9to709z7] { color: var(--fn-text-tertiary); font-size: 12px; margin-top: 6px; }

.qdf-mix-k[b-oj9to709z7] { margin-bottom: 8px; }
.qdf-mix .qdf-row[b-oj9to709z7] { 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-oj9to709z7] { border-bottom: none; }
.qdf-name[b-oj9to709z7] { font-size: 12.5px; color: var(--fn-text-secondary); }
[b-oj9to709z7] .qdf-bar { height: 7px; border-radius: var(--fn-radius-pill); background: var(--fn-input-bg); overflow: hidden; }
[b-oj9to709z7] .qdf-bar > span { display: block; height: 100%; border-radius: var(--fn-radius-pill); }
[b-oj9to709z7] .qdf-bar .qdf-hi { background: var(--fn-success); }
[b-oj9to709z7] .qdf-bar .qdf-mid { background: var(--fn-warning); }
[b-oj9to709z7] .qdf-bar .qdf-lo { background: var(--fn-danger); }
.qdf-bar-empty[b-oj9to709z7] { border: 1px dashed var(--fn-border-strong); }
.qdf-val[b-oj9to709z7] { font-family: var(--fn-font-mono); font-size: 13px; text-align: right; }
.qdf-t-hi[b-oj9to709z7] { color: var(--fn-success); }
.qdf-t-mid[b-oj9to709z7] { color: var(--fn-warning); }
.qdf-t-lo[b-oj9to709z7] { color: var(--fn-danger); }
[b-oj9to709z7] .qdf-miss { color: var(--fn-warning); }

.qdf-sig-cards[b-oj9to709z7] { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-top: 14px; }
.qdf-sig[b-oj9to709z7] { padding: 12px 12px 14px; text-align: center; }
.qdf-sig-t[b-oj9to709z7] { font-size: 12px; font-weight: 600; color: var(--fn-text); }
.qdf-sig-v[b-oj9to709z7] { 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-oj9to709z7] { color: var(--fn-warning); }

.qdf-zone[b-oj9to709z7] { margin-top: 16px; padding: 14px 16px; }
.qdf-zone-h[b-oj9to709z7] { font-size: 11px; letter-spacing: 0.8px; text-transform: uppercase; color: var(--fn-text-tertiary); margin-bottom: 10px; }
.qdf-zone-empty[b-oj9to709z7] { 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-oj9to709z7] { margin-top: 16px; font-size: 12.5px; color: var(--fn-text-secondary); }
.qdf-note[b-oj9to709z7] { 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-oj9to709z7] { display: flex; gap: 12px; margin: 4px 0 18px; }
.qdf-btn[b-oj9to709z7] { 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-oj9to709z7] { opacity: 0.6; cursor: default; }
.qdf-btn.qdf-primary[b-oj9to709z7] { background: var(--fn-primary); color: var(--fn-on-primary); }
.qdf-btn.qdf-ghost[b-oj9to709z7] { background: var(--fn-input-bg); color: var(--fn-text); border-color: var(--fn-input-border); }
.qdf-corr[b-oj9to709z7] { 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-oj9to709z7] { font-family: var(--fn-font-mono); color: var(--fn-primary); }
.qdf-hint[b-oj9to709z7] { font-size: 11px; color: var(--fn-text-tertiary); margin-top: 8px; }
.qdf-hint code[b-oj9to709z7] { font-family: var(--fn-font-mono); color: var(--fn-text-secondary); }
.qdf-note-warn[b-oj9to709z7] { color: var(--fn-warning); }
.qdf-flash[b-oj9to709z7] { 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-oj9to709z7] { 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-oj9to709z7] { display: flex; align-items: center; gap: 22px; padding: 14px 18px; margin-bottom: 16px; }
.qdf-gb-k[b-oj9to709z7] { font-size: 10.5px; letter-spacing: 0.7px; text-transform: uppercase; color: var(--fn-text-tertiary); }
.qdf-gb-sc[b-oj9to709z7] { font-family: var(--fn-font-mono); font-size: 30px; font-weight: 700; }
.qdf-gb-sz[b-oj9to709z7] { font-size: 15px; font-weight: 600; color: var(--fn-text); }
.qdf-gb-ts[b-oj9to709z7] { margin-left: auto; font-family: var(--fn-font-mono); font-size: 12px; color: var(--fn-text-tertiary); }
.qdf-tablewrap[b-oj9to709z7] { padding: 16px 18px; }
.qdf-table-k[b-oj9to709z7] { margin-bottom: 6px; }
.qdf-fn[b-oj9to709z7] { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-top: 6px; }
.qdf-fn th[b-oj9to709z7] { 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-oj9to709z7] .qdf-fn td { padding: 11px 10px; border-bottom: 1px solid var(--fn-border); vertical-align: middle; }
[b-oj9to709z7] .qdf-fn tr:last-child td { border-bottom: none; }
.qdf-mono[b-oj9to709z7] { font-family: var(--fn-font-mono); }
.qdf-tk[b-oj9to709z7] { font-family: var(--fn-font-mono); font-weight: 700; color: var(--fn-text); }
.qdf-comp[b-oj9to709z7] { font-family: var(--fn-font-mono); font-weight: 700; color: var(--fn-success); }
.qdf-fam[b-oj9to709z7] { font-family: var(--fn-font-mono); font-size: 9.5px; color: var(--fn-text-tertiary); }
[b-oj9to709z7] .qdf-fac { display: flex; flex-direction: column; gap: 3px; min-width: 74px; }
[b-oj9to709z7] .qdf-fac .qdf-bar { width: 74px; }
[b-oj9to709z7] .qdf-fv { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-secondary); }

/* ---------- Analyst (blend rows) ---------- */
.qdf-blend[b-oj9to709z7] { display: flex; flex-direction: column; gap: 12px; }
.qdf-brow[b-oj9to709z7] { 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-oj9to709z7] { min-width: 0; }
.qdf-brow.qdf-top[b-oj9to709z7] { border: 1px solid var(--fn-success); box-shadow: 0 0 0 1px var(--fn-success-soft); }
.qdf-rk[b-oj9to709z7] { font-family: var(--fn-font-mono); font-size: 20px; font-weight: 700; color: var(--fn-text-secondary); }
.qdf-brow.qdf-top .qdf-rk[b-oj9to709z7] { color: var(--fn-success); }
.qdf-nm[b-oj9to709z7] { font-weight: 700; color: var(--fn-text); }
.qdf-nm small[b-oj9to709z7] { display: block; font-family: var(--fn-font-mono); font-weight: 400; color: var(--fn-text-tertiary); font-size: 11px; }
.qdf-cell[b-oj9to709z7] { text-align: center; }
.qdf-ck[b-oj9to709z7] { font-size: 10px; letter-spacing: 0.6px; text-transform: uppercase; color: var(--fn-text-tertiary); }
.qdf-chip[b-oj9to709z7] { 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-oj9to709z7] { color: var(--fn-success); }
.qdf-chip.qdf-c[b-oj9to709z7] { color: var(--fn-warning); }
.qdf-chip.qdf-bl[b-oj9to709z7] { color: var(--fn-text); background: var(--fn-surface-alt); }
[b-oj9to709z7] .qdf-delta { font-weight: 700; font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); }
[b-oj9to709z7] .qdf-delta.qdf-up { color: var(--fn-success); }
[b-oj9to709z7] .qdf-delta.qdf-down { color: var(--fn-danger); }
.qdf-qr[b-oj9to709z7] { font-family: var(--fn-font-mono); color: var(--fn-text-secondary); text-align: center; }
.qdf-anote[b-oj9to709z7] { font-size: 11px; color: var(--fn-text-secondary); line-height: 1.4; overflow-wrap: anywhere; }
.qdf-chip[b-oj9to709z7] { width: 100%; max-width: 58px; }

/* ---------- Monte Carlo ---------- */
.qdf-mc[b-oj9to709z7] { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.qdf-m[b-oj9to709z7] { padding: 14px 14px; border-top: 2px solid var(--fn-border); }
.qdf-m.qdf-ok[b-oj9to709z7] { border-top-color: var(--fn-success); }
.qdf-m.qdf-warn[b-oj9to709z7] { border-top-color: var(--fn-warning); }
.qdf-m.qdf-info[b-oj9to709z7] { border-top-color: var(--fn-info); }
.qdf-m-k[b-oj9to709z7] { font-size: 10.5px; color: var(--fn-text-tertiary); }
.qdf-m-b[b-oj9to709z7] { 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-oj9to709z7] { color: var(--fn-success); }
.qdf-m.qdf-warn .qdf-m-b[b-oj9to709z7] { color: var(--fn-warning); }
.qdf-m.qdf-info .qdf-m-b[b-oj9to709z7] { color: var(--fn-info); }
.qdf-m-n[b-oj9to709z7] { font-size: 10.5px; color: var(--fn-text-tertiary); margin-top: 4px; }
.qdf-flag[b-oj9to709z7] { 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-oj9to709z7] { margin-top: 14px; height: 140px; padding: 8px; }
[b-oj9to709z7] .qdf-cloud-svg { width: 100%; height: 100%; }
[b-oj9to709z7] .qdf-cloud-band { fill: var(--fn-info-soft); stroke: none; }
[b-oj9to709z7] .qdf-cloud-median { fill: none; stroke: var(--fn-info); stroke-width: 0.6; }

/* ---------- Output seam ---------- */
.qdf-seam[b-oj9to709z7] { margin: 30px 0 0; }
.qdf-seam h3[b-oj9to709z7] { font-size: 13px; font-weight: 600; color: var(--fn-text-secondary); text-transform: uppercase; letter-spacing: 0.6px; margin-bottom: 12px; }
.qdf-flow[b-oj9to709z7] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; font-size: 12.5px; }
.qdf-step[b-oj9to709z7] { 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-oj9to709z7] { color: var(--fn-text-tertiary); }
.qdf-arr[b-oj9to709z7] { color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); }
.qdf-step.qdf-gate[b-oj9to709z7] { border-color: var(--fn-warning); color: var(--fn-warning); }

/* ---------- Fusion tab: FusedDeploymentDecision cards (Slice F4) ---------- */
.qfus[b-oj9to709z7] { padding: 0; overflow: hidden; margin-bottom: 16px; }
.qfus-top[b-oj9to709z7] { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 14px 18px; border-bottom: 1px solid var(--fn-border); }
.qfus-sym[b-oj9to709z7] { font-family: var(--fn-font-mono); font-weight: 700; color: var(--fn-cat-blue); font-size: 14px; }
.qfus-isin[b-oj9to709z7] { 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-oj9to709z7]  .isin-copy { background: none; border: none; border-radius: 0; padding: 0; gap: 3px; font-size: 11px; }
.qfus-id[b-oj9to709z7]  .isin-val { font-size: 11px; }
.qfus-id[b-oj9to709z7]  .copy-mini { width: 16px; height: 16px; border: none; border-radius: 4px; }
.qfus-id[b-oj9to709z7]  .copy-mini svg, .qfus-id[b-oj9to709z7]  .copy-mini [data-lucide] { width: 12px; height: 12px; }
.qfus-hero[b-oj9to709z7] { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; background: var(--fn-accent-soft); }
.qfus-hk[b-oj9to709z7] { font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--fn-text-tertiary); }
.qfus-hv[b-oj9to709z7] { font-size: 18px; font-weight: 600; margin-top: 3px; }
.qfus-hv.qfus-paper[b-oj9to709z7] { color: var(--fn-warning); }
.qfus-hv.qfus-defensive[b-oj9to709z7] { color: var(--fn-warning); }
.qfus-hv.qfus-notrade[b-oj9to709z7] { color: var(--fn-danger); }
.qfus-hv.qfus-live[b-oj9to709z7] { color: var(--fn-success); }
.qfus-hero-tags[b-oj9to709z7] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.qfus-pill[b-oj9to709z7] { 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-oj9to709z7] { 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-oj9to709z7] { border-color: var(--fn-accent-line); color: var(--fn-primary); }
.qfus-pill.qfus-paper[b-oj9to709z7] { background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); color: var(--fn-warning); }
.qfus-pill.qfus-defensive[b-oj9to709z7] { background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); color: var(--fn-warning); }
.qfus-pill.qfus-notrade[b-oj9to709z7] { background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); color: var(--fn-danger); }
.qfus-pill.qfus-live[b-oj9to709z7] { background: var(--fn-success-soft); border: 1px solid var(--fn-success); color: var(--fn-success); }
.qfus-metrics[b-oj9to709z7] { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--fn-border); }
.qfus-m[b-oj9to709z7] { padding: 12px 16px; border-right: 1px solid var(--fn-border); }
.qfus-m:last-child[b-oj9to709z7] { border-right: none; }
.qfus-mk[b-oj9to709z7] { font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--fn-text-tertiary); }
.qfus-mv[b-oj9to709z7] { font-family: var(--fn-font-mono); font-size: 17px; font-weight: 600; margin-top: 4px; }
.qfus-mv.qfus-muted[b-oj9to709z7] { color: var(--fn-text-tertiary); font-size: 13px; }
.qfus-mv.qfus-zero[b-oj9to709z7] { color: var(--fn-danger); }
.qfus-mv .qdf-den[b-oj9to709z7] { font-size: 12px; color: var(--fn-text-tertiary); font-weight: 400; }
.qfus-panels[b-oj9to709z7] { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--fn-border); border-top: 1px solid var(--fn-border); }
.qfus-panel[b-oj9to709z7] { background: var(--fn-bg-alt); padding: 14px 16px; }
.qfus-ph[b-oj9to709z7] { 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-oj9to709z7] { font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); text-transform: none; letter-spacing: 0; }
.qfus-kv[b-oj9to709z7] { 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-oj9to709z7] { border-bottom: none; }
.qfus-kv span:last-child[b-oj9to709z7] { font-family: var(--fn-font-mono); color: var(--fn-text); }
.qfus-edge[b-oj9to709z7] { margin: 8px 0; }
.qfus-erow[b-oj9to709z7] { display: flex; justify-content: space-between; font-size: 12.5px; margin-bottom: 4px; color: var(--fn-text-secondary); }
.qfus-ew[b-oj9to709z7] { font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); }
.qfus-bar[b-oj9to709z7] { height: 7px; border-radius: var(--fn-radius-pill); background: var(--fn-input-bg); overflow: hidden; }
.qfus-bar > span[b-oj9to709z7] { display: block; height: 100%; border-radius: var(--fn-radius-pill); background: var(--fn-primary); }
.qfus-bar.qfus-cold > span[b-oj9to709z7] { background: var(--fn-text-tertiary); }
.qfus-formula[b-oj9to709z7] { 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-oj9to709z7] { color: var(--fn-text-secondary); }
.qfus-fr[b-oj9to709z7] { color: var(--fn-primary); font-weight: 600; font-size: 15px; }
.qfus-fr.qfus-zero[b-oj9to709z7] { color: var(--fn-danger); }
.qfus-prov[b-oj9to709z7] { padding: 12px 18px; border-top: 1px solid var(--fn-border); font-size: 12.5px; color: var(--fn-text-secondary); }
.qfus-provl[b-oj9to709z7] { 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-oj9to709z7] { grid-template-columns: repeat(2, 1fr); }
    .qfus-panels[b-oj9to709z7] { grid-template-columns: 1fr; }
}

/* ---------- F6: live arm banner + per-candidate order controls ---------- */
.qfus-arm[b-oj9to709z7] { 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-oj9to709z7] { background: var(--fn-bg-alt); }
.qfus-arm-on[b-oj9to709z7] { background: var(--fn-danger-soft); border-color: var(--fn-danger); }
.qfus-arm-state[b-oj9to709z7] { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.qfus-arm-dot[b-oj9to709z7] { width: 10px; height: 10px; border-radius: var(--fn-radius-pill); background: var(--fn-text-tertiary); }
.qfus-arm-on .qfus-arm-dot[b-oj9to709z7] { background: var(--fn-danger); }
.qfus-arm-label[b-oj9to709z7] { color: var(--fn-text); }
.qfus-arm-meta[b-oj9to709z7] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-secondary); }
.qfus-btn-arm[b-oj9to709z7] { background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); color: var(--fn-warning); }
.qfus-btn-stop[b-oj9to709z7] { background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); color: var(--fn-danger); }
.qfus-order[b-oj9to709z7] { display: flex; align-items: center; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--fn-border); flex-wrap: wrap; }
.qfus-order-input[b-oj9to709z7] { max-width: 260px; }
.qfus-btn-buy[b-oj9to709z7] { background: var(--fn-success-soft); border: 1px solid var(--fn-success); color: var(--fn-success); }
.qfus-btn-sell[b-oj9to709z7] { background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); color: var(--fn-danger); }
.qfus-order-msg[b-oj9to709z7] { font-size: 12.5px; font-family: var(--fn-font-mono); }
.qfus-order-msg.qfus-ok[b-oj9to709z7] { color: var(--fn-success); }
.qfus-order-msg.qfus-blocked[b-oj9to709z7] { color: var(--fn-warning); }

/* Output seam: candidate flow left, confirm action right-aligned on the same row */
.qdf-seam-row[b-oj9to709z7] { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-top: 8px; }
.qdf-seam-row .qdf-flow[b-oj9to709z7] { flex: 1 1 auto; margin-top: 0; }
.qdf-seam-btn[b-oj9to709z7] { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; align-self: center; }
.qdf-seam-btn svg[b-oj9to709z7] { 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-pfehvnw378] {
    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-pfehvnw378] {
    /* 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-pfehvnw378] { font-size: 14px; }

.bl-head h1[b-pfehvnw378] {
    font-size: 22px;
    margin: 0 0 4px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.bl-eyebrow[b-pfehvnw378] {
    font-size: 12px;
    font-weight: 600;
    color: var(--fn-text-secondary);
    text-transform: uppercase;
    letter-spacing: .6px;
}

.bl-lead[b-pfehvnw378] {
    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-pfehvnw378] { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.bl-head-l[b-pfehvnw378] { min-width: 0; }
.bl-clear[b-pfehvnw378] {
    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-pfehvnw378] { background: var(--fn-danger); color: var(--fn-on-primary); }
.bl-clear .lucide[b-pfehvnw378] { width: 15px; height: 15px; }

.bl-scrim[b-pfehvnw378] {
    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-pfehvnw378] {
    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-pfehvnw378] { display: flex; align-items: center; gap: 11px; padding: 16px 18px; border-bottom: var(--fn-border-width) solid var(--fn-border); }
.bl-dic[b-pfehvnw378] {
    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-pfehvnw378] { width: 18px; height: 18px; }
.bl-dh h3[b-pfehvnw378] { margin: 0; font-size: 15px; color: var(--fn-text); }
.bl-db[b-pfehvnw378] { padding: 16px 18px; font-size: 13px; color: var(--fn-text-secondary); }
.bl-db b[b-pfehvnw378] { color: var(--fn-text); }
.bl-dwarn[b-pfehvnw378] { margin-top: 10px; font-size: 12px; color: var(--fn-danger); display: inline-flex; align-items: center; gap: 7px; }
.bl-dwarn .lucide[b-pfehvnw378] { width: 14px; height: 14px; }
.bl-df[b-pfehvnw378] { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 18px; border-top: var(--fn-border-width) solid var(--fn-border); }
.bl-dcancel[b-pfehvnw378] {
    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-pfehvnw378] {
    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-pfehvnw378] { width: 15px; height: 15px; }

/* Tile delete (trash) — own runs only; inline confirm to avoid accidental loss. Tokens-only. */
.bl-del[b-pfehvnw378] {
    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-pfehvnw378] { color: var(--fn-danger); background: var(--fn-danger-soft); }
.bl-del svg[b-pfehvnw378] { width: 15px; height: 15px; }

.bl-del-confirm[b-pfehvnw378] {
    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-pfehvnw378] { font-size: 10.5px; color: var(--fn-text-secondary); }
.bl-del-yes[b-pfehvnw378],
.bl-del-no[b-pfehvnw378] {
    display: inline-flex;
    border: none;
    background: transparent;
    padding: 2px;
    border-radius: 5px;
    cursor: pointer;
    line-height: 0;
}
.bl-del-yes[b-pfehvnw378] { color: var(--fn-danger); }
.bl-del-no[b-pfehvnw378] { color: var(--fn-text-secondary); }
.bl-del-yes:hover[b-pfehvnw378] { background: var(--fn-danger-soft); }
.bl-del-no:hover[b-pfehvnw378] { background: var(--fn-bg-alt); color: var(--fn-text); }
.bl-del-yes svg[b-pfehvnw378],
.bl-del-no svg[b-pfehvnw378] { width: 14px; height: 14px; }

.bl-ttl[b-pfehvnw378] {
    font-weight: 700;
    font-size: 14px;
    padding-right: 22px;
}

.bl-tk[b-pfehvnw378] {
    font-family: var(--mono, ui-monospace), monospace;
    font-size: 11px;
    color: var(--fn-text-tertiary);
    font-weight: 400;
}

.bl-st[b-pfehvnw378] {
    font-size: 11.5px;
    display: flex;
    align-items: center;
    gap: 7px;
}

.bl-dot[b-pfehvnw378] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
}

.bl-st-queued[b-pfehvnw378] { color: var(--fn-text-tertiary); }
.bl-st-running[b-pfehvnw378] { color: var(--fn-primary); }
.bl-st-done[b-pfehvnw378] { color: var(--fn-success); }
.bl-st-failed[b-pfehvnw378] { color: var(--fn-danger); }
.bl-st-running .bl-dot[b-pfehvnw378] { animation: bl-pulse-b-pfehvnw378 1s infinite; }

@keyframes bl-pulse-b-pfehvnw378 { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }

.bl-bar[b-pfehvnw378] {
    height: 7px;
    border-radius: 99px;
    background: var(--fn-bg-muted);
    overflow: hidden;
}

.bl-bar > i[b-pfehvnw378] {
    display: block;
    height: 100%;
    background: var(--fn-primary);
    border-radius: 99px;
    transition: width .4s ease;
}

.bl-pct[b-pfehvnw378] {
    font-size: 11px;
    color: var(--fn-text-secondary);
    font-variant-numeric: tabular-nums;
}

.bl-fail[b-pfehvnw378] {
    font-size: 11.5px;
    color: var(--fn-danger);
}

.bl-retry[b-pfehvnw378] {
    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-pfehvnw378] { color: var(--fn-success) !important; }
.bl-down[b-pfehvnw378] { color: var(--fn-danger) !important; }

/* + New analysis tile */

.bl-empty[b-pfehvnw378] {
    color: var(--fn-text-tertiary);
    font-size: 13px;
    padding: 16px 4px;
}

.bl-disclaimer[b-pfehvnw378] {
    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-pfehvnw378] { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.bl-det-crumb[b-pfehvnw378] { font-size: 13px; color: var(--fn-text-secondary); }
.bl-det-crumb b[b-pfehvnw378] { color: var(--fn-text); }

.bl-frame[b-pfehvnw378] {
    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-pfehvnw378] { flex: 1 1 auto; overflow-y: auto; padding: 18px 20px; }

.bl-det-status[b-pfehvnw378] { display: flex; flex-direction: column; gap: 12px; max-width: 420px; }
.bl-bar-lg[b-pfehvnw378] { height: 10px; }

.bl-scard.done[b-pfehvnw378] { border-left-color: var(--fn-success); }
.bl-scard.running[b-pfehvnw378] { border-left-color: var(--fn-primary); }
.bl-scard.queued[b-pfehvnw378] { border-left-color: var(--fn-text-tertiary); }
.bl-scard.failed[b-pfehvnw378] { 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-mwa27qgqaq] {
    padding: 22px 26px 40px;
    color: var(--fn-text);
}

.qs-head h1[b-mwa27qgqaq] {
    font-size: 22px;
    margin: 0 0 4px;
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.qs-eyebrow[b-mwa27qgqaq] {
    font-size: 12px;
    font-weight: 600;
    color: var(--fn-text-secondary);
    text-transform: uppercase;
    letter-spacing: .6px;
}

.qs-lead[b-mwa27qgqaq] {
    margin: 0 0 18px;
    max-width: 760px;
    font-size: 13.5px;
    color: var(--fn-text-secondary);
    line-height: 1.55;
}

.qs-grid[b-mwa27qgqaq] {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 18px;
    align-items: start;
}

.qs-card[b-mwa27qgqaq] {
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border);
    border-radius: 12px;
    padding: 16px 18px;
}

.qs-card h2[b-mwa27qgqaq] {
    font-size: 14px;
    margin: 0 0 14px;
    color: var(--fn-text);
}

/* ---- Builder ---- */
.qs-field[b-mwa27qgqaq] {
    display: block;
    margin-bottom: 14px;
}

.qs-field > span[b-mwa27qgqaq] {
    display: block;
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    margin-bottom: 5px;
}

.qs-field input[type="text"][b-mwa27qgqaq],
.qs-field input[type="number"][b-mwa27qgqaq],
.qs-field select[b-mwa27qgqaq] {
    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-mwa27qgqaq] {
    width: 90px;
}

.qs-exposure[b-mwa27qgqaq] {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.qs-exp-row[b-mwa27qgqaq] {
    display: grid;
    grid-template-columns: 84px 1fr 48px;
    align-items: center;
    gap: 10px;
}

.qs-exp-row input[type="range"][b-mwa27qgqaq] {
    width: 100%;
    accent-color: var(--fn-primary);
}

.qs-exp-val[b-mwa27qgqaq] {
    font-size: 12px;
    color: var(--fn-text);
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.qs-pill[b-mwa27qgqaq] {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 700;
    border-radius: 999px;
    padding: 2px 9px;
    white-space: nowrap;
}

.qs-calm[b-mwa27qgqaq] { color: var(--fn-success); background: var(--fn-success-soft); }
.qs-neutral[b-mwa27qgqaq] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.qs-stressed[b-mwa27qgqaq] { color: var(--fn-danger); background: var(--fn-danger-soft); }

.qs-run[b-mwa27qgqaq] {
    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-mwa27qgqaq] { background: var(--fn-primary-hover); }
.qs-run:disabled[b-mwa27qgqaq] { opacity: .6; cursor: default; }

.qs-batch[b-mwa27qgqaq] {
    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-mwa27qgqaq] { accent-color: var(--fn-primary); }

/* ---- Misc ---- */
.qs-empty[b-mwa27qgqaq] {
    color: var(--fn-text-tertiary);
    font-size: 12.5px;
    padding: 14px 4px;
}

.qs-disclaimer[b-mwa27qgqaq] {
    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-mwa27qgqaq] { 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-m29n7w53yg] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.qs-result-head h2[b-m29n7w53yg] { margin: 0; font-size: 16px; color: var(--fn-text); }

.qs-result-meta[b-m29n7w53yg] {
    font-size: 11.5px;
    color: var(--fn-text-tertiary);
    font-variant-numeric: tabular-nums;
}

.qs-metrics[b-m29n7w53yg] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    margin-bottom: 16px;
}

.qs-metric[b-m29n7w53yg] {
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: 10px;
    padding: 10px 12px;
}

.qs-m-l[b-m29n7w53yg] {
    display: block;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--fn-text-tertiary);
    margin-bottom: 4px;
}

.qs-m-v[b-m29n7w53yg] {
    display: block;
    font-size: 18px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.qs-m-b[b-m29n7w53yg] {
    display: block;
    font-size: 11px;
    color: var(--fn-text-secondary);
    margin-top: 2px;
}

.qs-up[b-m29n7w53yg] { color: var(--fn-success); }
.qs-down[b-m29n7w53yg] { color: var(--fn-danger); }

/* ---- NAV chart ---- */
.qs-nav-head[b-m29n7w53yg] {
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    margin-bottom: 6px;
}

.qs-chart[b-m29n7w53yg] {
    width: 100%;
    height: 240px;
    display: block;
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: 10px;
}

.qs-line[b-m29n7w53yg] {
    fill: none;
    stroke-width: 2;
    vector-effect: non-scaling-stroke;
}

.qs-line-strategy[b-m29n7w53yg] { stroke: var(--fn-primary); }
.qs-line-benchmark[b-m29n7w53yg] { stroke: var(--fn-text-tertiary); stroke-dasharray: 4 3; }
.qs-stress[b-m29n7w53yg] { fill: var(--fn-danger); opacity: .08; }

.qs-legend[b-m29n7w53yg] {
    display: flex;
    gap: 18px;
    margin-top: 8px;
    font-size: 11.5px;
    color: var(--fn-text-secondary);
}

.qs-legend span[b-m29n7w53yg] { display: inline-flex; align-items: center; gap: 6px; }

.qs-sw[b-m29n7w53yg] { width: 16px; height: 3px; border-radius: 2px; display: inline-block; }
.qs-sw-strategy[b-m29n7w53yg] { background: var(--fn-primary); }
.qs-sw-benchmark[b-m29n7w53yg] { background: var(--fn-text-tertiary); height: 0; border-top: 2px dashed var(--fn-text-tertiary); }
.qs-sw-stress[b-m29n7w53yg] { background: var(--fn-danger); opacity: .35; height: 12px; width: 12px; }

/* ---- Regime change log (div-based list) ---- */
.qs-log[b-m29n7w53yg] { margin-top: 16px; }

.qs-log-title[b-m29n7w53yg] {
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    margin-bottom: 6px;
}

.qs-log-row[b-m29n7w53yg] {
    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-m29n7w53yg] {
    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-m29n7w53yg] { display: inline-flex; align-items: center; gap: 8px; }
.qs-arrow[b-m29n7w53yg] { color: var(--fn-text-tertiary); }

/* ---- Pills (regime) ---- */
.qs-pill[b-m29n7w53yg] {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 700;
    border-radius: 999px;
    padding: 2px 9px;
    white-space: nowrap;
}

.qs-calm[b-m29n7w53yg] { color: var(--fn-success); background: var(--fn-success-soft); }
.qs-neutral[b-m29n7w53yg] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.qs-stressed[b-m29n7w53yg] { color: var(--fn-danger); background: var(--fn-danger-soft); }

.qs-empty[b-m29n7w53yg] {
    color: var(--fn-text-tertiary);
    font-size: 12.5px;
    padding: 14px 4px;
}

@media (max-width: 760px) {
    .qs-metrics[b-m29n7w53yg] { 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-5va65un65i] { width: 100%; padding: 24px 28px 80px; color: var(--fn-text); }

.rsn-head h1[b-5va65un65i] { font-size: 26px; font-weight: 600; margin: 0; letter-spacing: -.01em; }
.rsn-lead[b-5va65un65i] { color: var(--fn-text-secondary); font-size: 13.5px; margin: 4px 0 0; }
.rsn-b3[b-5va65un65i] {
    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-5va65un65i] { display: flex; gap: 4px; margin: 22px 0 18px; border-bottom: 1px solid var(--fn-border); }
.rsn-tab[b-5va65un65i] {
    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-5va65un65i] { color: var(--fn-text); }
.rsn-tab.active[b-5va65un65i] { color: var(--fn-text); border-bottom-color: var(--fn-primary); font-weight: 600; }

.rsn-h2[b-5va65un65i] { font-size: 16px; font-weight: 600; margin: 22px 0 12px; }
.rsn-count[b-5va65un65i] { color: var(--fn-text-tertiary); font-weight: 400; font-size: 13px; }

.rsn-empty[b-5va65un65i] {
    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-5va65un65i] {
    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-5va65un65i] { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.rsn-chip[b-5va65un65i] {
    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-5va65un65i] { font-size: 11px; font-weight: 700; padding: 2px 9px; border-radius: var(--fn-radius-pill); }
.b-uncal[b-5va65un65i] { color: var(--fn-warning); background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); }
.b-prereg[b-5va65un65i] { color: var(--fn-primary); background: var(--fn-accent-soft); border: 1px solid var(--fn-accent-line); }
.b-sig[b-5va65un65i] { color: var(--fn-success); background: var(--fn-success-soft); border: 1px solid var(--fn-success); }

.rsn-claim[b-5va65un65i] { font-size: 15px; font-weight: 600; color: var(--fn-text); margin-bottom: 8px; }
.rsn-isin[b-5va65un65i] { font-family: var(--fn-font-mono); font-size: 12px; color: var(--fn-text-tertiary); font-weight: 400; }
.rsn-note[b-5va65un65i] { color: var(--fn-text-secondary); font-size: 13.5px; line-height: 1.55; }

.rsn-row[b-5va65un65i] { 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-5va65un65i] { color: var(--fn-text-tertiary); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.rsn-row .v[b-5va65un65i] { color: var(--fn-text); font-size: 13.5px; }
.rsn-row .v.falsify[b-5va65un65i] { color: var(--fn-warning); }

.rsn-ev[b-5va65un65i] { margin: 0; padding-left: 18px; }
.rsn-ev li[b-5va65un65i] { font-size: 13px; color: var(--fn-text-secondary); margin: 2px 0; }

.rsn-win[b-5va65un65i] { font-size: 12.5px; font-family: var(--fn-font-mono); }
.rsn-winrow[b-5va65un65i] { display: grid; grid-template-columns: 130px 80px 70px 90px; gap: 12px; padding: 3px 0; color: var(--fn-text-secondary); }
.rsn-winrow .num[b-5va65un65i] { text-align: right; }
.rsn-winrow.sig[b-5va65un65i] { color: var(--fn-success); }

.rsn-foot[b-5va65un65i] {
    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. */
.sea-page[b-zjew696587] { padding: 18px 22px; }

.sea-head h1[b-zjew696587] {
    display: flex; align-items: center; gap: 10px;
    font-size: 20px; margin: 0 0 4px; color: var(--fn-text);
}
.sea-head h1[b-zjew696587]  svg { width: 19px; height: 19px; color: var(--fn-primary); }
.sea-sub[b-zjew696587] { color: var(--fn-text-secondary); font-size: 13px; }

.sea-toolbar[b-zjew696587] { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 14px 0 6px; }
.sea-seg[b-zjew696587] { display: inline-flex; border: 1px solid var(--fn-border); border-radius: 8px; overflow: hidden; }
.sea-seg button[b-zjew696587] {
    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-zjew696587] { background: var(--fn-accent-soft); color: var(--fn-primary); }
.sea-btn[b-zjew696587] {
    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-zjew696587] { border-color: var(--fn-primary); color: var(--fn-primary); background: var(--fn-accent-soft); }
.sea-btn[b-zjew696587]  svg { width: 13px; height: 13px; }

.sea-section[b-zjew696587] {
    background: var(--fn-bg-alt); border: 1px solid var(--fn-border);
    border-radius: 14px; padding: 14px 16px; margin-top: 14px;
}
.sea-section-head[b-zjew696587] { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.sea-section-head h2[b-zjew696587] { font-size: 14px; margin: 0; color: var(--fn-text); }
.sea-section-sub[b-zjew696587] { font-size: 12px; color: var(--fn-text-tertiary); }
.sea-section-tools[b-zjew696587] { margin-left: auto; display: flex; gap: 8px; align-items: center; }
.sea-select[b-zjew696587] {
    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-search[b-zjew696587] {
    display: inline-flex; align-items: center; gap: 7px; padding: 5px 10px; border-radius: 8px;
    border: 1px solid var(--fn-border); background: var(--fn-input-bg); color: var(--fn-text-tertiary);
}
.sea-search[b-zjew696587]  svg { width: 13px; height: 13px; }
.sea-search input[b-zjew696587] { border: none; background: transparent; color: var(--fn-text); font-size: 12px; outline: none; min-width: 200px; }

.sea-loading[b-zjew696587], .sea-empty[b-zjew696587] { color: var(--fn-text-secondary); font-size: 13px; padding: 10px 2px; }
.sea-disclaimer[b-zjew696587] {
    font-size: 11px; color: var(--fn-text-tertiary); margin-top: 16px;
    border-top: 1px solid var(--fn-border); padding-top: 10px;
}

.sea-sym[b-zjew696587] { font-weight: 500; color: var(--fn-text); }
.sea-mut[b-zjew696587] { color: var(--fn-text-tertiary); }

.sea-cat[b-zjew696587] {
    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-zjew696587] { font-size: 11.5px; }
.sea-dir.long[b-zjew696587] { color: var(--fn-success); }
.sea-dir.short[b-zjew696587] { color: var(--fn-danger); }

.sea-soon[b-zjew696587] {
    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-zjew696587] {
    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-zjew696587]  svg { width: 11px; height: 11px; }

.sea-rel[b-zjew696587] {
    display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: 11px; font-weight: 600;
}
.sea-rel.ok[b-zjew696587] { color: var(--fn-success); background: var(--fn-success-soft); border: 1px solid var(--fn-success); }
.sea-rel.weak[b-zjew696587] { color: var(--fn-warning); background: var(--fn-warning-soft); border: 1px solid var(--fn-warning); }
.sea-rel.noise[b-zjew696587] { 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-zjew696587] { position: relative; overflow: visible; }
.sea-add[b-zjew696587] { font-size: 11.5px; padding: 4px 10px; }
.sea-added[b-zjew696587] {
    display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 600;
    color: var(--fn-success);
}
.sea-added[b-zjew696587]  svg { width: 13px; height: 13px; }
.sea-picker[b-zjew696587] {
    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-zjew696587] {
    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-zjew696587] { background: var(--fn-bg-muted); }
.sea-picker-item[b-zjew696587]  svg { width: 13px; height: 13px; color: var(--fn-text-secondary); }
.sea-picker-empty[b-zjew696587] { 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-zjew696587] { --c: var(--fn-primary); }
.sea-c-rebalancing[b-zjew696587] { --c: var(--fn-cat-purple); }
.sea-c-tax[b-zjew696587] { --c: var(--fn-cat-gold); }
.sea-c-holiday[b-zjew696587] { --c: var(--fn-success); }
.sea-c-commodity[b-zjew696587] { --c: var(--fn-cat-orange); }
.sea-c-fomc[b-zjew696587] { --c: var(--fn-cat-pink); }
.sea-c-custom[b-zjew696587] { --c: var(--fn-cat-teal); }

/* Filter-Leiste mit Kategorie-Chips (ersetzt die Listbox) */
.sea-bar[b-zjew696587] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 14px; padding: 12px 14px; margin: 14px 0 6px; }
.sea-chips[b-zjew696587] { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.sea-chip[b-zjew696587] {
    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-zjew696587] { color: var(--fn-text); }
.sea-chip.on[b-zjew696587] { color: var(--fn-text); border-color: var(--fn-primary); background: var(--fn-accent-soft); }
.sea-chip-dot[b-zjew696587] { width: 8px; height: 8px; border-radius: 50%; background: var(--c, var(--fn-text-tertiary)); }
.sea-chip-n[b-zjew696587] {
    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-zjew696587] { display: flex; gap: 8px; align-items: center; margin-top: 10px; flex-wrap: wrap; }
.sea-toggle[b-zjew696587] {
    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-zjew696587] { border-color: var(--fn-success); color: var(--fn-success); background: var(--fn-success-soft); }
.sea-toggle[b-zjew696587]  svg { width: 13px; height: 13px; }

/* „Bald relevant" — Opportunity-Karten */
.sea-cards[b-zjew696587] { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.sea-card[b-zjew696587] { 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-zjew696587] { 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-zjew696587] { 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-zjew696587] { font-size: 11.5px; color: var(--fn-text-secondary); display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.sea-card-cat[b-zjew696587] { display: inline-flex; align-items: center; gap: 5px; }
.sea-card-kpis[b-zjew696587] { display: flex; gap: 18px; margin-top: 11px; }
.sea-card-kpi .k[b-zjew696587] { font-size: 9.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--fn-text-tertiary); }
.sea-card-kpi .v[b-zjew696587] { font-family: var(--fn-font-mono, monospace); font-size: 15px; font-weight: 600; color: var(--fn-text); }
.sea-card-kpi .v.pos[b-zjew696587] { color: var(--fn-success); }
.sea-card-cta[b-zjew696587] { margin-top: 12px; }
.sea-card-owned[b-zjew696587] { font-size: 11.5px; color: var(--fn-text-tertiary); }
.sea-add.primary[b-zjew696587] { border-color: var(--fn-primary); color: var(--fn-primary); background: var(--fn-accent-soft); }
.sea-card .sea-soon[b-zjew696587]  svg { width: 12px; height: 12px; }
.sea-more[b-zjew696587] { font-size: 12px; color: var(--fn-text-tertiary); margin-top: 10px; }

/* Bestenliste — Edge-Balken */
.sea-edge[b-zjew696587] { display: inline-flex; align-items: center; gap: 8px; justify-content: flex-end; }
.sea-edge-track[b-zjew696587] { width: 90px; height: 7px; border-radius: 4px; background: var(--fn-bg-muted); overflow: hidden; }
.sea-edge-bar[b-zjew696587] { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--fn-primary), var(--fn-cat-purple)); }
.sea-edge-val[b-zjew696587] { font-family: var(--fn-font-mono, monospace); font-weight: 700; min-width: 30px; text-align: right; color: var(--fn-text); }
/* /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-5a2xl0m7q3] { color: var(--fn-text); }

.fp-soon[b-5a2xl0m7q3] {
    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-5a2xl0m7q3] {
    position: relative; height: 20px; min-width: 78px;
    background: var(--fn-accent-soft); border-radius: 6px;
}
.fp-fill[b-5a2xl0m7q3] {
    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-5a2xl0m7q3] { background: var(--fn-success); }
.fp-fill.s4[b-5a2xl0m7q3] { background: var(--fn-primary); }
.fp-fill.s3[b-5a2xl0m7q3] { background: var(--fn-info); }
.fp-fill.s2[b-5a2xl0m7q3] { background: var(--fn-warning); }
.fp-fill.s1[b-5a2xl0m7q3] { background: var(--fn-danger); }

.fp-na[b-5a2xl0m7q3] { color: var(--fn-text-tertiary); }

.fp-scale[b-5a2xl0m7q3] {
    display: flex; align-items: center; gap: 5px; margin-top: 10px;
    font-size: 11px; color: var(--fn-text-tertiary);
}
.fp-scale i[b-5a2xl0m7q3] { width: 22px; height: 9px; border-radius: 3px; display: inline-block; }
.fp-scale i.s1[b-5a2xl0m7q3] { background: var(--fn-danger); }
.fp-scale i.s2[b-5a2xl0m7q3] { background: var(--fn-warning); }
.fp-scale i.s3[b-5a2xl0m7q3] { background: var(--fn-info); }
.fp-scale i.s4[b-5a2xl0m7q3] { background: var(--fn-primary); }
.fp-scale i.s5[b-5a2xl0m7q3] { background: var(--fn-success); }
.fp-scale-note[b-5a2xl0m7q3] { margin-left: 6px; }

.fp-note[b-5a2xl0m7q3] { 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-j19wtqa6kx] {
    padding: 26px 4px;
    color: var(--fn-text-tertiary);
    font-size: 13px;
}

.ph-toolbar[b-j19wtqa6kx] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.ph-titles[b-j19wtqa6kx] {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
}

.ph-titles h2[b-j19wtqa6kx] {
    margin: 0;
    font-size: 15px;
    font-weight: var(--fn-font-weight-medium);
}

.ph-range[b-j19wtqa6kx] {
    color: var(--fn-text-tertiary);
    font-size: 12px;
    font-family: var(--fn-font-mono);
}

.ph-spacer[b-j19wtqa6kx] {
    flex: 1 1 auto;
}

.grid-card[b-j19wtqa6kx] {
    background: var(--fn-bg-alt);
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    overflow: hidden;
}

.foot[b-j19wtqa6kx] {
    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-j19wtqa6kx] {
    font-family: var(--fn-font-mono);
    color: var(--fn-text);
}

table.fn-list td.close[b-j19wtqa6kx] {
    font-weight: var(--fn-font-weight-bold);
}

table.fn-list td.src[b-j19wtqa6kx] {
    font-size: 11px;
    color: var(--fn-text-tertiary);
}

table.fn-list td .fn-delta[b-j19wtqa6kx],
table.fn-list td.fn-delta[b-j19wtqa6kx] {
    font-family: var(--fn-font-mono);
}

table.fn-list td.pos[b-j19wtqa6kx],
table.fn-list td .pos[b-j19wtqa6kx] {
    color: var(--fn-success);
}

table.fn-list td.neg[b-j19wtqa6kx],
table.fn-list td .neg[b-j19wtqa6kx] {
    color: var(--fn-danger);
}

/* Gruppierung Jahr → Monat */
tr.grp-year[b-j19wtqa6kx] {
    cursor: pointer;
}

    tr.grp-year td[b-j19wtqa6kx] {
        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-j19wtqa6kx] {
        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-j19wtqa6kx] {
        float: right;
        color: var(--fn-text-tertiary);
    }

    tr.grp-year .yr-chev svg[b-j19wtqa6kx] {
        width: 13px;
        height: 13px;
    }

tr.grp-month[b-j19wtqa6kx] {
    cursor: pointer;
}

    tr.grp-month td[b-j19wtqa6kx] {
        background: var(--fn-bg-muted);
        padding: 7px 14px 7px 26px;
    }

.grp-month-inner[b-j19wtqa6kx] {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 12px;
}

    .grp-month-inner .chev[b-j19wtqa6kx] {
        display: inline-flex;
        color: var(--fn-text-tertiary);
        flex: 0 0 13px;
    }

        .grp-month-inner .chev svg[b-j19wtqa6kx] {
            width: 13px;
            height: 13px;
        }

    .grp-month-inner .m-name[b-j19wtqa6kx] {
        font-weight: var(--fn-font-weight-medium);
        color: var(--fn-text);
    }

    .grp-month-inner .m-meta[b-j19wtqa6kx] {
        color: var(--fn-text-tertiary);
        font-family: var(--fn-font-mono);
        font-size: 11px;
    }

    .grp-month-inner .m-chg[b-j19wtqa6kx] {
        margin-left: auto;
        font-family: var(--fn-font-mono);
        font-size: 11.5px;
    }

        .grp-month-inner .m-chg.pos[b-j19wtqa6kx] {
            color: var(--fn-success);
        }

        .grp-month-inner .m-chg.neg[b-j19wtqa6kx] {
            color: var(--fn-danger);
        }

tr.data td:first-child[b-j19wtqa6kx] {
    padding-left: 26px;
}

/* Basis-Info (Statistik-Kopf): 52W / Jahr / Monat / Extrem-Zeiten */
.ph-stats[b-j19wtqa6kx] {
    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-j19wtqa6kx] {
    background: var(--fn-bg-alt);
    padding: 12px 15px;
}

    .ph-stat .k[b-j19wtqa6kx] {
        font-family: var(--fn-font-mono);
        font-size: 10px;
        text-transform: uppercase;
        letter-spacing: .5px;
        color: var(--fn-text-tertiary);
    }

    .ph-stat .v[b-j19wtqa6kx] {
        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-j19wtqa6kx] {
            font-size: 14px;
        }

        .ph-stat .v.hi[b-j19wtqa6kx],
        .ph-stat .v .hi[b-j19wtqa6kx] {
            color: var(--fn-success);
        }

        .ph-stat .v.lo[b-j19wtqa6kx],
        .ph-stat .v .lo[b-j19wtqa6kx] {
            color: var(--fn-danger);
        }

    .ph-stat .d[b-j19wtqa6kx] {
        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-j19wtqa6kx] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 8px 4px 14px;
}

/* Sortierbare Spaltenköpfe */
table.fn-list th.sortable[b-j19wtqa6kx] {
    cursor: pointer;
    user-select: none;
}

table.fn-list th .th-sort[b-j19wtqa6kx] {
    font-size: 9px;
    margin-left: 5px;
    color: var(--fn-text-tertiary);
}

table.fn-list th.sorted[b-j19wtqa6kx] {
    color: var(--fn-primary);
}

    table.fn-list th.sorted .th-sort[b-j19wtqa6kx] {
        color: var(--fn-primary);
    }

/* Extrem-Zeiten (aus Intraday) */
table.fn-list td.tm[b-j19wtqa6kx] {
    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-3gkufxv1yd] { display: flex; flex-direction: column; gap: 14px; }

.sea-tab-toolbar[b-3gkufxv1yd] { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.sea-tab-toolbar[b-3gkufxv1yd]  .sea-tab-actions { margin-left: auto; }
.sea-seg[b-3gkufxv1yd] { display: inline-flex; border: 1px solid var(--fn-border); border-radius: 8px; overflow: hidden; }
.sea-seg button[b-3gkufxv1yd] {
    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-3gkufxv1yd] { background: var(--fn-accent-soft); color: var(--fn-primary); }

.sea-t-msg[b-3gkufxv1yd] { color: var(--fn-text-secondary); font-size: 13px; padding: 8px 2px; }
.sea-t-disclaimer[b-3gkufxv1yd] {
    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-3gkufxv1yd] { color: var(--fn-text-tertiary); }

/* Verdict hero */
.sea-verdict[b-3gkufxv1yd] {
    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-3gkufxv1yd] { border-left-color: var(--fn-success); }
.sea-verdict.bad[b-3gkufxv1yd] { border-left-color: var(--fn-danger); }
.sea-v-cap[b-3gkufxv1yd] { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--fn-text-tertiary); margin-bottom: 3px; }
.sea-v-main[b-3gkufxv1yd] { font-size: 19px; font-weight: 700; color: var(--fn-text); }
.sea-verdict.good .sea-v-main[b-3gkufxv1yd] { color: var(--fn-success); }
.sea-verdict.bad .sea-v-main[b-3gkufxv1yd] { color: var(--fn-danger); }
.sea-v-sub[b-3gkufxv1yd] { font-size: 12px; color: var(--fn-text-secondary); margin-top: 2px; }

/* KPI row */
.sea-kpis[b-3gkufxv1yd] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
@media (max-width: 900px) { .sea-kpis[b-3gkufxv1yd] { grid-template-columns: 1fr 1fr; } }
.sea-kpi[b-3gkufxv1yd] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 12px; padding: 12px 14px; }
.sea-kpi-v[b-3gkufxv1yd] { font-size: 18px; font-weight: 600; color: var(--fn-text); }
.sea-kpi-l[b-3gkufxv1yd] { font-size: 11px; color: var(--fn-text-secondary); margin-top: 2px; }

/* Section cards */
.sea-card[b-3gkufxv1yd] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 14px; padding: 14px 16px; }
.sea-card-head h3[b-3gkufxv1yd] { 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-3gkufxv1yd] { overflow-x: auto; }
.sea-hm[b-3gkufxv1yd] { display: inline-grid; grid-template-columns: auto repeat(12, minmax(46px, 1fr)); gap: 3px; font-size: 11px; }
.sea-hm-row[b-3gkufxv1yd] { display: contents; }
.sea-hm-mh[b-3gkufxv1yd] {
    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-3gkufxv1yd], .sea-hm-yr[b-3gkufxv1yd] {
    display: flex; align-items: center; justify-content: flex-end;
    padding-right: 8px; color: var(--fn-text-secondary); white-space: nowrap;
}
.sea-hm-cell[b-3gkufxv1yd] { text-align: center; padding: 7px 5px; border-radius: 6px; color: var(--fn-text); min-width: 46px; }
.sea-hm-mean .sea-hm-cell[b-3gkufxv1yd] { font-weight: 600; }
.sea-hm .now[b-3gkufxv1yd] { box-shadow: inset 0 0 0 2px var(--fn-primary); }

.sea-hm .he[b-3gkufxv1yd] { background: var(--fn-bg-muted); color: var(--fn-text-tertiary); border: 1px dashed var(--fn-border); }
.sea-hm .hp1[b-3gkufxv1yd] { background: color-mix(in srgb, var(--fn-success) 16%, transparent); }
.sea-hm .hp2[b-3gkufxv1yd] { background: color-mix(in srgb, var(--fn-success) 34%, transparent); }
.sea-hm .hp3[b-3gkufxv1yd] { background: color-mix(in srgb, var(--fn-success) 56%, transparent); }
.sea-hm .hp4[b-3gkufxv1yd] { background: color-mix(in srgb, var(--fn-success) 80%, transparent); color: var(--fn-on-primary); }
.sea-hm .hn1[b-3gkufxv1yd] { background: color-mix(in srgb, var(--fn-danger) 16%, transparent); }
.sea-hm .hn2[b-3gkufxv1yd] { background: color-mix(in srgb, var(--fn-danger) 34%, transparent); }
.sea-hm .hn3[b-3gkufxv1yd] { background: color-mix(in srgb, var(--fn-danger) 56%, transparent); }
.sea-hm .hn4[b-3gkufxv1yd] { background: color-mix(in srgb, var(--fn-danger) 82%, transparent); color: var(--fn-on-primary); }

/* one-sided dividend scale (gold) */
.sea-hm .hd0[b-3gkufxv1yd] { background: var(--fn-bg-muted); color: var(--fn-text-tertiary); border: 1px dashed var(--fn-border); }
.sea-hm .hd1[b-3gkufxv1yd] { background: color-mix(in srgb, var(--fn-cat-gold) 18%, transparent); }
.sea-hm .hd2[b-3gkufxv1yd] { background: color-mix(in srgb, var(--fn-cat-gold) 38%, transparent); }
.sea-hm .hd3[b-3gkufxv1yd] { background: color-mix(in srgb, var(--fn-cat-gold) 62%, transparent); }
.sea-hm .hd4[b-3gkufxv1yd] { background: color-mix(in srgb, var(--fn-cat-gold) 85%, transparent); color: var(--fn-on-primary); }

/* shared pills */
.sea-cat[b-3gkufxv1yd] {
    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-3gkufxv1yd] { font-size: 11.5px; }
.sea-dir.long[b-3gkufxv1yd] { color: var(--fn-success); }
.sea-dir.short[b-3gkufxv1yd] { 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-3gkufxv1yd] { font-size: 11px; color: var(--fn-text-tertiary); margin: 6px 0 0; }
/* /Components/Settings/AddChannelDialog.razor.rz.scp.css */
.acd-overlay[b-p99fuhdgle] {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--fn-shadow-hover);
}

.acd[b-p99fuhdgle] {
    width: 440px;
    max-width: calc(100vw - 32px);
    background: var(--fn-surface-alt);
    border: 1px solid var(--fn-border-strong);
    border-radius: var(--fn-r);
    box-shadow: var(--fn-elevation-2);
    overflow: hidden;
}

.acd-head[b-p99fuhdgle] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--fn-border);
    font-size: 14px;
    font-weight: 700;
    color: var(--fn-text);
}

.acd-head span[b-p99fuhdgle] { display: inline-flex; align-items: center; gap: 9px; }
.acd-head[b-p99fuhdgle]  .lucide { width: 16px; height: 16px; color: var(--fn-primary); }

.acd-x[b-p99fuhdgle] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 7px;
    border: 1px solid var(--fn-border);
    background: transparent;
    color: var(--fn-text-tertiary);
    cursor: pointer;
}

.acd-x:hover[b-p99fuhdgle] { background: var(--fn-hover); color: var(--fn-text); }
.acd-x[b-p99fuhdgle]  .lucide { color: inherit; }

.acd-body[b-p99fuhdgle] { display: flex; flex-direction: column; gap: 14px; padding: 16px; }

.acd-type[b-p99fuhdgle] {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--fn-text);
    font-size: 13px;
    background: var(--fn-bg-muted);
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    padding: 8px 12px;
}

.acd-type[b-p99fuhdgle]  .lucide { width: 15px; height: 15px; color: var(--fn-primary); }

.acd-actions[b-p99fuhdgle] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 13px 16px;
    border-top: 1px solid var(--fn-border);
    background: var(--fn-bg);
}

.acd-secondary[b-p99fuhdgle],
.acd-primary[b-p99fuhdgle] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 34px;
    padding: 0 14px;
    border-radius: 9px;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.acd-secondary[b-p99fuhdgle] { color: var(--fn-text-secondary); background: transparent; border: 1px solid var(--fn-border); }
.acd-secondary:hover[b-p99fuhdgle] { background: var(--fn-bg-muted); color: var(--fn-text); }

.acd-primary[b-p99fuhdgle] { color: var(--fn-on-primary); background: var(--fn-primary); border: 1px solid var(--fn-primary); }
.acd-primary:hover[b-p99fuhdgle] { filter: brightness(1.05); }
.acd-primary:disabled[b-p99fuhdgle] { opacity: .55; cursor: not-allowed; }
.acd-primary[b-p99fuhdgle]  .lucide { width: 15px; height: 15px; }
/* /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-flenabm8hv] { display: flex; flex-direction: column; gap: 14px; }

/* Gruppenkopf-Zeilen (Gruppierung Datum/Typ/Status bzw. Datum/Kategorie). */
.ah-group td[b-flenabm8hv] { 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-flenabm8hv] { color: var(--fn-text-tertiary); font-weight: 400; text-transform: none; letter-spacing: 0; }

.ah-filter[b-flenabm8hv] { flex: 0 0 auto; width: auto; min-width: 150px; }

.ah-scroll[b-flenabm8hv] { overflow-x: auto; }
.ah-mono[b-flenabm8hv] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.ah-chev[b-flenabm8hv] { width: 1%; white-space: nowrap; color: var(--fn-text-tertiary); font-size: 11px; }
.ah-eye[b-flenabm8hv] {
    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-flenabm8hv] { border-color: var(--fn-primary); background: var(--fn-accent-soft); }
.ah-eye svg[b-flenabm8hv] { width: 15px; height: 15px; stroke-width: 2.2; }
.ah-row[b-flenabm8hv] { cursor: pointer; }
.ah-row:hover td[b-flenabm8hv] { background: var(--fn-bg-muted); }

.ah-as[b-flenabm8hv] { 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-flenabm8hv] { 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-flenabm8hv] { color: var(--fn-info); border-color: var(--fn-info); background: var(--fn-accent-soft); }
.ah-cat.access[b-flenabm8hv] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.ah-cat.configuration[b-flenabm8hv] { color: var(--fn-primary); border-color: var(--fn-primary); background: var(--fn-accent-soft); }
.ah-cat.data[b-flenabm8hv] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.ah-cat.operations[b-flenabm8hv] { color: var(--fn-text-secondary); }

.ah-detrow td[b-flenabm8hv] { background: var(--fn-bg-muted); }
.ah-detrow pre[b-flenabm8hv] { 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-flenabm8hv] { display: block; margin-top: 2px; font-size: 11.5px; color: var(--fn-text-tertiary); }

.ah-rel-y[b-flenabm8hv] { color: var(--fn-success); font-weight: 700; font-size: 11.5px; white-space: nowrap; }
.ah-rel-n[b-flenabm8hv] { color: var(--fn-danger); font-weight: 700; font-size: 11.5px; white-space: nowrap; }
.ah-rel-why[b-flenabm8hv] { display: block; font-size: 10.5px; color: var(--fn-text-tertiary); }

.ah-ch[b-flenabm8hv] { 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-flenabm8hv] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.ah-ch.blk[b-flenabm8hv] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.ah-ch.fail[b-flenabm8hv] { color: var(--fn-danger); border-color: var(--fn-danger); background: var(--fn-danger-soft); }

.ah-st[b-flenabm8hv] { 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-flenabm8hv] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }
.ah-st.blocked[b-flenabm8hv] { color: var(--fn-warning); border-color: var(--fn-warning); background: var(--fn-warning-soft); }
.ah-st.failed[b-flenabm8hv] { color: var(--fn-danger); border-color: var(--fn-danger); background: var(--fn-danger-soft); }
.ah-st.created[b-flenabm8hv] { color: var(--fn-info); border-color: var(--fn-info); background: var(--fn-accent-soft); }

.ah-detgrid[b-flenabm8hv] { 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-flenabm8hv] { min-width: 0; }
.ah-detk[b-flenabm8hv] { color: var(--fn-text-tertiary); font-weight: 700; margin-right: 6px; }
.ah-deterr[b-flenabm8hv] { grid-column: 1 / -1; color: var(--fn-danger); }
.ah-link[b-flenabm8hv] { color: var(--fn-primary); text-decoration: none; word-break: break-all; }
.ah-link:hover[b-flenabm8hv] { text-decoration: underline; }
.ah-message[b-flenabm8hv] {
    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-flenabm8hv] {
    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-flenabm8hv] {
    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-flenabm8hv] { color: var(--fn-success); background: var(--fn-success-soft); }
.ah-message-quality.no[b-flenabm8hv] { color: var(--fn-danger); background: var(--fn-danger-soft); }
.ah-message-body[b-flenabm8hv] {
    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-flenabm8hv] { max-width: 100%; }
.ah-message-body table[b-flenabm8hv] { border-collapse: collapse; }
.ah-message-body a[b-flenabm8hv] { color: var(--fn-primary); }
.ah-message-plain[b-flenabm8hv] {
    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-flenabm8hv] {
    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-8j67zzf5ie] {
    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-8j67zzf5ie] {
    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-8j67zzf5ie] { margin: 0; font-size: 13.5px; font-weight: 600; color: var(--fn-text); }
.bfe-head p[b-8j67zzf5ie] { margin: 3px 0 0; font-size: 12px; color: var(--fn-text-secondary); line-height: 1.45; }

.bfe-chip[b-8j67zzf5ie] {
    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-8j67zzf5ie] { display: flex; flex-direction: column; gap: 12px; padding: 13px 14px; }

.bfe-grid[b-8j67zzf5ie] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
    align-items: start;
}

.bfe-wide[b-8j67zzf5ie] { grid-column: 1 / -1; min-width: 0; }

.bfe-cap[b-8j67zzf5ie] {
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-top: 4px;
}

.bfe-check[b-8j67zzf5ie] {
    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-8j67zzf5ie] { width: 16px; height: 16px; padding: 0; accent-color: var(--fn-primary); cursor: pointer; }
.bfe-check span[b-8j67zzf5ie] { color: var(--fn-text); font-size: 12px; }

.bfe-note[b-8j67zzf5ie] {
    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-8j67zzf5ie]  svg { color: var(--fn-info); width: 15px; height: 15px; margin-top: 1px; flex: none; }
.bfe-note.ok[b-8j67zzf5ie] { border-color: var(--fn-success); background: var(--fn-success-soft); }
.bfe-note.ok[b-8j67zzf5ie]  svg { color: var(--fn-success); }

.bfe-history[b-8j67zzf5ie] {
    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-8j67zzf5ie] { display: flex; flex-direction: column; gap: 2px; }
.bfe-history span[b-8j67zzf5ie] { color: var(--fn-text-tertiary); font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.bfe-history b[b-8j67zzf5ie] { color: var(--fn-text); font-size: 12px; }
.bfe-history small[b-8j67zzf5ie] { color: var(--fn-text-secondary); font-size: 11.5px; }

.bfe-foot[b-8j67zzf5ie] { border-top: 1px solid var(--fn-border); background: var(--fn-bg-alt); padding: 4px 14px 12px; }
.bfe-existing[b-8j67zzf5ie] { color: var(--fn-text-tertiary); font-size: 11px; }

@media (max-width: 720px) {
    .bfe-grid[b-8j67zzf5ie] { grid-template-columns: 1fr; }
    .bfe-history[b-8j67zzf5ie] { grid-template-columns: 1fr; }
}
/* /Components/Settings/BrokerFeeSchedulesForm.razor.rz.scp.css */
.bf[b-q8lblfs8e8] { display:flex; flex-direction:column; gap:16px; }
.bf[b-q8lblfs8e8]  svg { width:16px; height:16px; }

.mg-bar[b-q8lblfs8e8] { display:flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:space-between; }
.mg-action-group[b-q8lblfs8e8] { display:inline-flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:flex-end; margin-left:auto; }
.mg-search[b-q8lblfs8e8] { 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-q8lblfs8e8]  svg { width:14px; height:14px; color:var(--fn-text-tertiary); }
.mg-search input[b-q8lblfs8e8] { 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-q8lblfs8e8] { 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-q8lblfs8e8] { opacity:.5; cursor:not-allowed; }
.mg-btn-primary[b-q8lblfs8e8]  svg { width:14px; height:14px; }
.mg-btn-secondary[b-q8lblfs8e8] { 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-q8lblfs8e8] { opacity:.5; cursor:not-allowed; }
.mg-btn-secondary[b-q8lblfs8e8]  svg { width:14px; height:14px; color:var(--fn-primary); }
.mg-ic[b-q8lblfs8e8] { 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-q8lblfs8e8]  svg { width:14px; height:14px; }
.mg-ic.ok[b-q8lblfs8e8] { color:var(--fn-on-primary); background:var(--fn-primary); border-color:var(--fn-primary); }
.mg-ic.refresh[b-q8lblfs8e8] { 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-q8lblfs8e8] { opacity:.5; cursor:not-allowed; }
.mg-empty[b-q8lblfs8e8] { padding:22px; color:var(--fn-text-secondary); }

.bf-filter[b-q8lblfs8e8] { 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-q8lblfs8e8] { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px; }
.bf-metric[b-q8lblfs8e8] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); padding:11px 13px; }
.bf-metric span[b-q8lblfs8e8] { display:block; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--fn-text-tertiary); }
.bf-metric b[b-q8lblfs8e8] { display:block; margin-top:4px; font-family:var(--fn-font-mono); font-size:12.5px; color:var(--fn-text); }
.bf-metric.warn b[b-q8lblfs8e8] { color:var(--fn-warning); }

.bf-card[b-q8lblfs8e8] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); overflow:hidden; }
.bf-card-head[b-q8lblfs8e8] { 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-q8lblfs8e8] { margin:0; font-size:13.5px; font-weight:600; color:var(--fn-text); }
.bf-card-head p[b-q8lblfs8e8] { margin:3px 0 0; font-size:12px; color:var(--fn-text-secondary); line-height:1.45; }
.bf-grid[b-q8lblfs8e8] { display:grid; grid-template-columns:minmax(0, 1fr) 430px; gap:14px; padding:13px; align-items:start; }
.bf-list[b-q8lblfs8e8] { min-width:0; overflow:auto; border:1px solid var(--fn-border); border-radius:var(--fn-radius-sm); background:var(--fn-bg); }
.bf-table[b-q8lblfs8e8] { width:100%; border-collapse:collapse; font-size:12.5px; }
.bf-table th[b-q8lblfs8e8] { 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-q8lblfs8e8] { 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-q8lblfs8e8] { border-bottom:0; }
.bf-table tr[b-q8lblfs8e8] { cursor:pointer; }
.bf-table tr.selected[b-q8lblfs8e8] { background:var(--fn-accent-soft); }
.bf-table td b[b-q8lblfs8e8] { display:block; color:var(--fn-text); font-size:12.5px; }
.bf-table td small[b-q8lblfs8e8] { display:block; margin-top:2px; color:var(--fn-text-tertiary); font-size:11px; }
.bf-actions[b-q8lblfs8e8] { width:1%; white-space:nowrap; text-align:right; }

.bf-pill[b-q8lblfs8e8], .bf-chip[b-q8lblfs8e8] { 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-q8lblfs8e8] { color:var(--fn-primary); border-color:var(--fn-accent-line); background:var(--fn-accent-soft); }
.bf-chip.active[b-q8lblfs8e8] { color:var(--fn-success); border-color:var(--fn-success); background:var(--fn-success-soft); }
.bf-chip.inactive[b-q8lblfs8e8] { 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-q8lblfs8e8] { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .bf-grid[b-q8lblfs8e8] { grid-template-columns:1fr; }
}

@media (max-width: 720px) {
    .mg-bar[b-q8lblfs8e8] { justify-content:flex-start; }
    .mg-action-group[b-q8lblfs8e8] { flex:1 1 100%; }
    .mg-search[b-q8lblfs8e8] { flex:1 1 100%; }
    .bf-status[b-q8lblfs8e8] { grid-template-columns:1fr; }
    .bf-table[b-q8lblfs8e8] { min-width:760px; }
}
/* /Components/Settings/BrokerOrderApprovalForm.razor.rz.scp.css */
/* Broker-Order-Freigabe: Button/Icon-Hooks aus ModuleGroupsForm.razor.css uebernommen. */
.oa[b-bcn1c0o51k] { display:flex; flex-direction:column; gap:16px; }
.oa[b-bcn1c0o51k]  svg { width:16px; height:16px; }

.mg-bar[b-bcn1c0o51k] { display:flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:flex-end; }
.mg-search[b-bcn1c0o51k] { 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-bcn1c0o51k]  svg { width:14px; height:14px; color:var(--fn-text-tertiary); }
.mg-search input[b-bcn1c0o51k] { flex:1; min-width:0; border:none; background:transparent; outline:none; color:var(--fn-text); font:inherit; font-size:12.5px; }
.mg-new[b-bcn1c0o51k] { display:inline-flex; align-items:center; gap:8px; }
.mg-new input[b-bcn1c0o51k] { 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-bcn1c0o51k] { 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-bcn1c0o51k] { 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-bcn1c0o51k] { opacity:.5; cursor:not-allowed; }
.mg-btn-primary[b-bcn1c0o51k]  svg { width:14px; height:14px; }

.mg-ic[b-bcn1c0o51k] { 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-bcn1c0o51k]  svg { width:14px; height:14px; }
.mg-ic.ok[b-bcn1c0o51k] { color:var(--fn-on-primary); background:var(--fn-primary); border-color:var(--fn-primary); }

.gear[b-bcn1c0o51k] { 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-bcn1c0o51k] { color:var(--fn-primary); border-color:var(--fn-accent-line); background:var(--fn-accent-soft); }


.oa-status[b-bcn1c0o51k] { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px; }
.oa-metric[b-bcn1c0o51k] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); padding:11px 13px; }
.oa-metric span[b-bcn1c0o51k] { display:block; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--fn-text-tertiary); }
.oa-metric b[b-bcn1c0o51k] { display:block; margin-top:4px; font-family:var(--fn-font-mono); font-size:12.5px; color:var(--fn-text); }
.oa-metric.warn b[b-bcn1c0o51k] { color:var(--fn-warning); }

.oa-card[b-bcn1c0o51k] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); overflow:hidden; }
.oa-card-head[b-bcn1c0o51k] { 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-bcn1c0o51k] { margin:0; font-size:13.5px; font-weight:600; color:var(--fn-text); }
.oa-card-head p[b-bcn1c0o51k] { margin:3px 0 0; font-size:12px; color:var(--fn-text-secondary); line-height:1.45; }

.oa-table[b-bcn1c0o51k] { width:100%; border-collapse:collapse; font-size:12.5px; }
.oa-table th[b-bcn1c0o51k] { 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-bcn1c0o51k] { 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-bcn1c0o51k] { border-bottom:0; }
.oa-table tr.selected[b-bcn1c0o51k] { background:var(--fn-accent-soft); }
.oa-table tr.group td[b-bcn1c0o51k] { background:var(--fn-bg-muted); }
.oa-table tr.child td:first-child[b-bcn1c0o51k] { padding-left:28px; }
.oa-table td b[b-bcn1c0o51k] { display:block; color:var(--fn-text); font-size:12.5px; }
.oa-table td small[b-bcn1c0o51k] { display:block; margin-top:2px; color:var(--fn-text-tertiary); font-size:11px; }
.oa-actions[b-bcn1c0o51k] { width:1%; white-space:nowrap; text-align:right; }
.oa-asset-name[b-bcn1c0o51k] { display:inline-flex !important; align-items:center; gap:7px; }
.oa-expand[b-bcn1c0o51k] { 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-bcn1c0o51k] { border-color:transparent; color:var(--fn-text-tertiary); }

.oa-pill[b-bcn1c0o51k] { 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-bcn1c0o51k] { color:var(--fn-success); border-color:var(--fn-success); background:var(--fn-success-soft); }
.oa-pill.warn[b-bcn1c0o51k] { color:var(--fn-warning); border-color:var(--fn-warning); background:var(--fn-warning-soft); }

.oa-chip[b-bcn1c0o51k] { 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-bcn1c0o51k], .oa-chip.blocked[b-bcn1c0o51k] { color:var(--fn-warning); border-color:var(--fn-warning); background:var(--fn-warning-soft); }
.oa-chip.session[b-bcn1c0o51k], .oa-chip.paper[b-bcn1c0o51k] { color:var(--fn-info); border-color:var(--fn-info); background:var(--fn-info-soft); }
.oa-chip.permanent[b-bcn1c0o51k], .oa-chip.readonly[b-bcn1c0o51k] { color:var(--fn-success); border-color:var(--fn-success); background:var(--fn-success-soft); }
.oa-chip.broker[b-bcn1c0o51k] { color:var(--fn-primary); border-color:var(--fn-accent-line); background:var(--fn-accent-soft); }
.oa-chip.later[b-bcn1c0o51k] { color:var(--fn-text-secondary); border-color:var(--fn-border-strong); background:var(--fn-bg-muted); }
.oa-chip.opposite[b-bcn1c0o51k] { color:var(--fn-info); border-color:var(--fn-info); background:var(--fn-info-soft); }

.oa-note[b-bcn1c0o51k] { 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-bcn1c0o51k]  svg { color:var(--fn-info); width:15px; height:15px; margin-top:1px; }
.oa-note.live[b-bcn1c0o51k] { border-color:var(--fn-warning); background:var(--fn-warning-soft); }
.oa-note.live[b-bcn1c0o51k]  svg { color:var(--fn-warning); }

.oa-tabs[b-bcn1c0o51k] { display:flex; gap:6px; flex-wrap:wrap; padding:13px 13px 0; }
.oa-tab[b-bcn1c0o51k] { 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-bcn1c0o51k] { border-style:solid; border-color:var(--fn-primary); background:var(--fn-primary); color:var(--fn-on-primary); }

.oa-policy-grid[b-bcn1c0o51k] { display:grid; grid-template-columns:minmax(0, 1fr) 390px; gap:14px; padding:13px; align-items:start; }
.oa-dialog[b-bcn1c0o51k] { 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-bcn1c0o51k] { 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-bcn1c0o51k] { margin:0; font-size:13.5px; font-weight:700; }
.oa-dialog-head p[b-bcn1c0o51k] { margin:3px 0 0; font-size:11.5px; color:var(--fn-text-secondary); }
.oa-dialog-head .mg-ic[b-bcn1c0o51k] { width:28px; height:28px; padding:0; justify-content:center; align-items:center; border-color:var(--fn-border-strong); }
.oa-fields[b-bcn1c0o51k] { 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-bcn1c0o51k] { display:flex; flex-direction:column; gap:4px; min-width:0; }
.oa-fields label.wide[b-bcn1c0o51k] { grid-column:1 / -1; }
.oa-fields .wide[b-bcn1c0o51k] { grid-column:1 / -1; }
.oa-fields span[b-bcn1c0o51k] { color:var(--fn-text-tertiary); font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.oa-fields input[b-bcn1c0o51k], .oa-fields select[b-bcn1c0o51k] { 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-bcn1c0o51k] { 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-bcn1c0o51k] { width:16px; height:16px; margin-top:2px; accent-color:var(--fn-primary); }
.oa-fields label.oa-check span[b-bcn1c0o51k] { grid-column:2; color:var(--fn-text); letter-spacing:0; text-transform:none; font-size:12px; }
.oa-fields label.oa-check small[b-bcn1c0o51k] { grid-column:2; color:var(--fn-text-secondary); font-size:11.5px; line-height:1.35; }
.oa-brokers[b-bcn1c0o51k] { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; }
.oa-broker[b-bcn1c0o51k] { 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-bcn1c0o51k] { border-color:var(--fn-primary); box-shadow:inset 0 0 0 1px var(--fn-primary); background:var(--fn-accent-soft); }
.oa-broker b[b-bcn1c0o51k] { display:block; font-size:12px; }
.oa-broker small[b-bcn1c0o51k] { display:block; margin-top:3px; color:var(--fn-text-secondary); font-size:11px; line-height:1.35; }
.oa-current[b-bcn1c0o51k] { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:12px 14px; border-bottom:1px solid var(--fn-border); }
.oa-current b[b-bcn1c0o51k] { font-size:13px; }
.oa-current small[b-bcn1c0o51k] { color:var(--fn-text-tertiary); font-size:11px; }

.oa-option-title[b-bcn1c0o51k] { 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-bcn1c0o51k] { display:grid; gap:8px; padding:13px 14px; }
.oa-option[b-bcn1c0o51k] { 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-bcn1c0o51k] { border-color:var(--fn-primary); box-shadow:inset 0 0 0 1px var(--fn-primary); background:var(--fn-accent-soft); }
.oa-radio[b-bcn1c0o51k] { 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-bcn1c0o51k] { border-color:var(--fn-primary); }
.oa-option.active .oa-radio[b-bcn1c0o51k]::after { content:""; position:absolute; inset:3px; border-radius:50%; background:var(--fn-primary); }
.oa-option b[b-bcn1c0o51k] { display:block; font-size:12.5px; }
.oa-option small[b-bcn1c0o51k] { display:block; margin-top:2px; color:var(--fn-text-secondary); font-size:11.5px; line-height:1.35; }
.oa-option em[b-bcn1c0o51k] { 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-bcn1c0o51k] { 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-bcn1c0o51k] { display:flex; flex-direction:column; gap:4px; min-width:0; }
.oa-reversal-grid label.oa-check[b-bcn1c0o51k] { 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-bcn1c0o51k] { 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-bcn1c0o51k] { 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-bcn1c0o51k] { width:16px; height:16px; accent-color:var(--fn-primary); }

.oa-dialog-foot[b-bcn1c0o51k] { 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-bcn1c0o51k] { color:var(--fn-text-tertiary); font-size:11px; }

.oa-audit[b-bcn1c0o51k] { 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-bcn1c0o51k] { display:flex; flex-direction:column; gap:2px; }
.oa-audit b[b-bcn1c0o51k] { color:var(--fn-text); font-size:12px; }
.oa-audit span[b-bcn1c0o51k] { color:var(--fn-text-secondary); font-size:11.5px; }

@media (max-width: 1180px) {
    .oa-status[b-bcn1c0o51k] { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .oa-policy-grid[b-bcn1c0o51k] { grid-template-columns:1fr; }
}

@media (max-width: 720px) {
    .mg-bar[b-bcn1c0o51k] { justify-content:flex-start; }
    .mg-search[b-bcn1c0o51k] { flex:1 1 100%; }
    .oa-status[b-bcn1c0o51k] { grid-template-columns:1fr; }
    .oa-table[b-bcn1c0o51k] { min-width:680px; }
    .oa-card[b-bcn1c0o51k] { overflow:auto; }
    .oa-fields[b-bcn1c0o51k] { grid-template-columns:1fr; }
    .oa-brokers[b-bcn1c0o51k] { grid-template-columns:1fr; }
    .oa-reversal-grid[b-bcn1c0o51k] { grid-template-columns:1fr; }
    .oa-option[b-bcn1c0o51k] { grid-template-columns:22px 1fr; }
    .oa-option em[b-bcn1c0o51k] { 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-jaxtpssk0e] { display: flex; flex-direction: column; gap: 18px; max-width: 980px; }
.cmd[b-jaxtpssk0e]  .lucide { width: 16px; height: 16px; }

.cmd-card[b-jaxtpssk0e] {
    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-jaxtpssk0e] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.cmd-card h4[b-jaxtpssk0e]  .lucide { color: var(--fn-primary); }
.cmd-sub[b-jaxtpssk0e] { margin: -6px 0 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

.cmd-grid[b-jaxtpssk0e] { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px 18px; align-items: start; }
.cmd-zip-city[b-jaxtpssk0e] { display: grid; grid-template-columns: 110px 1fr; gap: 12px; }

.cmd-resp-info[b-jaxtpssk0e] { display: flex; align-items: center; gap: 12px; }
.cmd-resp-name[b-jaxtpssk0e] { font-size: 14px; font-weight: 600; color: var(--fn-text); }
.cmd-resp-meta[b-jaxtpssk0e] { font-size: 12px; font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); }

.cmd-missing[b-jaxtpssk0e] { font-size: 12px; color: var(--fn-warning); }
.cmd-saved[b-jaxtpssk0e] { font-size: 12px; color: var(--fn-success); }

.cmd-bank-ico[b-jaxtpssk0e] {
    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-jaxtpssk0e]  .lucide { width: 22px; height: 22px; }
.cmd-bank-name[b-jaxtpssk0e] { font-size: 15px; font-weight: 600; color: var(--fn-text); }
.cmd-bank-sub[b-jaxtpssk0e] { font-size: 12.5px; font-weight: 400; color: var(--fn-text-tertiary); margin-left: 8px; }
.cmd-bank-line[b-jaxtpssk0e] { font-size: 12.5px; color: var(--fn-text-secondary); }
.cmd-mono[b-jaxtpssk0e] { font-family: var(--fn-font-mono); }

.cmd-bankdlg[b-jaxtpssk0e] { display: flex; flex-direction: column; gap: 12px; height: 100%; min-height: 0; overflow-y: auto; padding-right: 4px; }
.cmd-dlg-cap[b-jaxtpssk0e] {
    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-riggw99bja] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    max-width: 640px;
}

.dlg-defaults-hint[b-riggw99bja] {
    font-size: 13px;
    color: var(--fn-text-secondary);
    line-height: 1.55;
    margin: 0;
}

.dlg-defaults-message[b-riggw99bja] {
    font-size: 13px;
    border-radius: var(--fn-radius-sm);
    padding: 8px 12px;
}

.dlg-defaults-ok[b-riggw99bja] {
    color: var(--fn-success);
    background: var(--fn-success-soft);
}

.dlg-defaults-failed[b-riggw99bja] {
    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-xchuqry74q] {
    max-width: 640px;
    padding-bottom: 24px;
}

.ew-desc[b-xchuqry74q] {
    color: var(--fn-text-secondary);
    font-size: 13px;
    line-height: 1.5;
    margin: 0 0 18px;
    max-width: 560px;
}

.ew-row[b-xchuqry74q] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-bottom: 8px;
}

.ew-label[b-xchuqry74q] {
    font-size: 12.5px;
    font-weight: var(--fn-font-weight-medium);
    color: var(--fn-text);
}

.ew-num[b-xchuqry74q] {
    max-width: 140px;
}

.ew-hint[b-xchuqry74q] {
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
    line-height: 1.4;
    max-width: 520px;
}

.ew-ok[b-xchuqry74q] {
    color: var(--fn-success);
}
/* /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-kjm6br7xmi] { display: flex; flex-direction: column; gap: 16px; }
.mex[b-kjm6br7xmi]  .lucide { width: 16px; height: 16px; }
.mex-deny[b-kjm6br7xmi] { 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-kjm6br7xmi] {
    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-kjm6br7xmi] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.mex-card h4[b-kjm6br7xmi]  .lucide { color: var(--fn-primary); }
.mex-stage[b-kjm6br7xmi] { font-weight: 400; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12.5px; }
.mex-sub[b-kjm6br7xmi] { margin: -6px 0 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

/* Aktionszeile (Vorschau): Primaeraktion links, Aktualisieren rechts. */
.mex-actions[b-kjm6br7xmi] { display: flex; align-items: center; gap: 10px; }
.mex-spacer[b-kjm6br7xmi] { flex: 1 1 auto; }
.mex-refresh[b-kjm6br7xmi] { 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-kjm6br7xmi] { color: var(--fn-text); border-color: var(--fn-primary); }
.mex-refresh:disabled[b-kjm6br7xmi] { opacity: .5; cursor: not-allowed; }
.mex-refresh[b-kjm6br7xmi]  .lucide { width: 15px; height: 15px; }
.mex-refresh.spin[b-kjm6br7xmi]  .lucide { animation: mex-spin-b-kjm6br7xmi 1s linear infinite; }
@keyframes mex-spin-b-kjm6br7xmi { to { transform: rotate(360deg); } }

.mex[b-kjm6br7xmi]  .mex-filter { flex: 0 0 auto; width: auto; min-width: 150px; }
.mex-group td[b-kjm6br7xmi] { 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-kjm6br7xmi] { color: var(--fn-text-tertiary); font-weight: 400; text-transform: none; letter-spacing: 0; }

.mex-scroll[b-kjm6br7xmi] { overflow-x: auto; }
.mex-mono[b-kjm6br7xmi] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.mex-ok[b-kjm6br7xmi] { color: var(--fn-success); font-weight: 600; }
.mex-err[b-kjm6br7xmi] { color: var(--fn-danger); font-weight: 600; }
.mex-row-action[b-kjm6br7xmi] { width: 1%; white-space: nowrap; text-align: right; }
.mex-status-ok[b-kjm6br7xmi] { font-size: 12.5px; color: var(--fn-success); }
.mex-status-err[b-kjm6br7xmi] { font-size: 12.5px; color: var(--fn-danger); }

.mex-note[b-kjm6br7xmi] { 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-kjm6br7xmi]  .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-r7uuhp2xkk] { padding-bottom: 48px; display: grid; gap: 14px; }
.mjr-deny[b-r7uuhp2xkk] { padding: 6px 2px; color: var(--fn-text-secondary); font-size: 13px; }

.mjr-card[b-r7uuhp2xkk] {
    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-r7uuhp2xkk] {
    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 i[b-r7uuhp2xkk] { width: 15px; height: 15px; color: var(--fn-primary); }
.mjr-hint[b-r7uuhp2xkk] { 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-r7uuhp2xkk] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 14px 16px 4px; }
.mjr-job[b-r7uuhp2xkk] { 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-r7uuhp2xkk] { display: flex; align-items: center; gap: 8px; font-weight: var(--fn-font-weight-medium); font-size: 12.5px; }
.mjr-job .name i[b-r7uuhp2xkk] { width: 15px; height: 15px; color: var(--fn-text-secondary); }
.mjr-job .meta[b-r7uuhp2xkk] { margin-top: 6px; font-size: 11.5px; color: var(--fn-text-secondary); }
.mjr-empty[b-r7uuhp2xkk] { padding: 12px 16px; color: var(--fn-text-tertiary); font-size: 12.5px; }

/* Ergebnis-Badges */
.mjr-badge[b-r7uuhp2xkk] {
    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);
}
.mjr-badge i[b-r7uuhp2xkk] { width: 14px; height: 14px; }
.mjr-badge.run[b-r7uuhp2xkk] { color: var(--fn-primary); background: var(--fn-accent-soft); }
.mjr-badge.ok[b-r7uuhp2xkk] { color: var(--fn-success); background: var(--fn-success-soft); }
.mjr-badge.inc[b-r7uuhp2xkk] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.mjr-badge.fail[b-r7uuhp2xkk] { color: var(--fn-danger); background: var(--fn-danger-soft); }

/* Filter-Chips (Muster FX-Referenzkurse) in der Toolbar-Zeile */
.mjr-filterbar[b-r7uuhp2xkk] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mjr[b-r7uuhp2xkk]  .fn-toolbar-search { margin-left: auto; }
.fx-chip[b-r7uuhp2xkk] {
    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-r7uuhp2xkk] { background: var(--fn-accent-soft); border-color: var(--fn-accent-line); color: var(--fn-text); }
.mjr-jobfilter[b-r7uuhp2xkk] { height: 30px; padding: 0 10px; font-size: 12.5px; width: auto; }

/* Lauf-Historie */
.mjr-tablewrap[b-r7uuhp2xkk] { border-top: var(--fn-border-width) solid var(--fn-border); overflow-x: auto; }
.mjr-tablewrap .mono[b-r7uuhp2xkk] { font-family: var(--fn-font-mono); font-size: 12px; }
.mjr-tablewrap .dim[b-r7uuhp2xkk] { color: var(--fn-text-secondary); }
.mjr-sum[b-r7uuhp2xkk] { color: var(--fn-text-secondary); font-size: 12px; max-width: 420px; }

/* Datenbestand-Öffner */
.mjr-openrow[b-r7uuhp2xkk] { display: flex; align-items: center; gap: 10px; }
.mjr-open[b-r7uuhp2xkk] {
    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-r7uuhp2xkk] { background: var(--fn-hover); }
.mjr-open i[b-r7uuhp2xkk] { width: 15px; height: 15px; color: var(--fn-text-secondary); }

/* Dialog „Datenbestand" — schwebende Fläche (fn-surface) */
.mjr-dlg[b-r7uuhp2xkk] {
    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-r7uuhp2xkk] {
    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-r7uuhp2xkk] { display: flex; align-items: center; gap: 9px; font-size: 14px; font-weight: var(--fn-font-weight-bold); }
.mjr-dlgtitle i[b-r7uuhp2xkk] { width: 15px; height: 15px; color: var(--fn-primary); }
.mjr-dlgx[b-r7uuhp2xkk] { background: none; border: none; color: var(--fn-text-tertiary); cursor: pointer; padding: 2px; }
.mjr-dlgx i[b-r7uuhp2xkk] { width: 15px; height: 15px; }
.mjr-dlgx:hover[b-r7uuhp2xkk] { color: var(--fn-text); }
.mjr-dlgbody[b-r7uuhp2xkk] { padding: 14px 16px; }
.mjr-dlghint[b-r7uuhp2xkk] { margin: 0 0 12px; color: var(--fn-text-secondary); font-size: 12px; line-height: 1.5; }

/* Batterie-Zeilen */
.mjr-invrow[b-r7uuhp2xkk] {
    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-r7uuhp2xkk] { border-bottom: none; }
.mjr-invname[b-r7uuhp2xkk] { font-size: 12.5px; font-weight: var(--fn-font-weight-medium); }
.mjr-invsub[b-r7uuhp2xkk] { color: var(--fn-text-tertiary); font-weight: var(--fn-font-weight-regular); font-size: 11.5px; margin-left: 6px; }
.mjr-batt[b-r7uuhp2xkk] {
    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-r7uuhp2xkk]::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-r7uuhp2xkk] { display: block; height: 100%; border-radius: 3px; min-width: 2px; }
.mjr-fill.ok[b-r7uuhp2xkk] { background: var(--fn-success); }
.mjr-fill.mid[b-r7uuhp2xkk] { background: var(--fn-warning); }
.mjr-fill.low[b-r7uuhp2xkk] { background: var(--fn-danger); }
.mjr-invval[b-r7uuhp2xkk] { text-align: right; color: var(--fn-text); font-family: var(--fn-font-mono); font-size: 12px; }
.mjr-invpct[b-r7uuhp2xkk] { text-align: right; color: var(--fn-text-secondary); font-family: var(--fn-font-mono); font-size: 12px; }

@media (max-width: 900px) {
    .mjr-overview[b-r7uuhp2xkk] { 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-qi2cr9oet1] { display: flex; flex-direction: column; gap: 16px; }
.mrb[b-qi2cr9oet1]  .lucide { width: 16px; height: 16px; }
.mrb-deny[b-qi2cr9oet1] { 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-qi2cr9oet1] {
    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-qi2cr9oet1] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.mrb-card h4[b-qi2cr9oet1]  .lucide { color: var(--fn-danger); }

/* Neutrale Verlaufs-Karte (gemeinsame „Letzte Läufe" beider Bereiche). */
.mrb-card-plain[b-qi2cr9oet1] { border-color: var(--fn-border); }
.mrb-card-plain h4[b-qi2cr9oet1]  .lucide { color: var(--fn-primary); }
.mrb-stage[b-qi2cr9oet1] { font-weight: 400; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12.5px; }

.mrb-warn[b-qi2cr9oet1] { 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-qi2cr9oet1]  .lucide { width: 15px; height: 15px; color: var(--fn-danger); flex: none; margin-top: 1px; }

.mrb-kv[b-qi2cr9oet1] { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px 18px; }
.mrb-kv label[b-qi2cr9oet1] { 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-qi2cr9oet1] { display: flex; align-items: center; gap: 8px; min-height: 34px; font-size: 12.5px; color: var(--fn-text); flex-wrap: wrap; }

.mrb-confirm[b-qi2cr9oet1] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mrb-confirm-hint[b-qi2cr9oet1] { font-size: 12px; color: var(--fn-text-secondary); }
.mrb[b-qi2cr9oet1]  .mrb-confirm-name { max-width: 220px; font-family: var(--fn-font-mono); }

.mrb-steps[b-qi2cr9oet1] { font-size: 11.5px; color: var(--fn-text-tertiary); }
.mrb-steps b[b-qi2cr9oet1] { color: var(--fn-text-secondary); }

.mrb-progress[b-qi2cr9oet1] { 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-qi2cr9oet1] { color: var(--fn-text-secondary); }
.mrb-progress li.running[b-qi2cr9oet1] { color: var(--fn-text); }
.mrb-progress li.failed[b-qi2cr9oet1] { color: var(--fn-danger); }
.mrb-step-mark[b-qi2cr9oet1] { display: inline-block; width: 18px; font-weight: 700; }
.mrb-progress li.ok .mrb-step-mark[b-qi2cr9oet1] { color: var(--fn-success); }
.mrb-step-detail[b-qi2cr9oet1] { color: var(--fn-text-tertiary); }

.mrb-scroll[b-qi2cr9oet1] { overflow-x: auto; }
.mrb-mono[b-qi2cr9oet1] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.mrb-ok[b-qi2cr9oet1] { color: var(--fn-success); font-weight: 600; }
.mrb-err[b-qi2cr9oet1] { color: var(--fn-danger); font-weight: 600; }
.mrb-status-ok[b-qi2cr9oet1] { font-size: 12.5px; color: var(--fn-success); }
.mrb-status-err[b-qi2cr9oet1] { 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-8ysk4u2607] { display: flex; flex-direction: column; gap: 16px; }
.msc[b-8ysk4u2607]  .lucide { width: 16px; height: 16px; }
.msc-deny[b-8ysk4u2607] { 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-8ysk4u2607] {
    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-8ysk4u2607] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.msc-card h4[b-8ysk4u2607]  .lucide { color: var(--fn-primary); }
.msc-stage[b-8ysk4u2607] { 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-8ysk4u2607] { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px 18px; }
.msc-kv label[b-8ysk4u2607] { 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-8ysk4u2607] { display: flex; align-items: center; gap: 8px; min-height: 34px; font-size: 12.5px; color: var(--fn-text); }
.msc-mono[b-8ysk4u2607] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.msc[b-8ysk4u2607]  .msc-time { max-width: 130px; }
.msc-retention[b-8ysk4u2607]  .msc-weekly { width: 64px; }

.msc-toggle[b-8ysk4u2607] { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; margin: 0; }
.msc-toggle input[type="checkbox"][b-8ysk4u2607] { width: 15px; height: 15px; accent-color: var(--fn-primary); cursor: pointer; }
.msc-pill[b-8ysk4u2607] { 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-8ysk4u2607] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }

/* Aktionszeile (Vorschau): rechtsbündig Testen + Speichern. */
.msc-actions[b-8ysk4u2607] { display: flex; align-items: center; gap: 10px; }
.msc-spacer[b-8ysk4u2607] { flex: 1 1 auto; }

.msc-scroll[b-8ysk4u2607] { overflow-x: auto; }
.msc-ok[b-8ysk4u2607] { color: var(--fn-success); font-weight: 600; }
.msc-err[b-8ysk4u2607] { color: var(--fn-danger); font-weight: 600; }
.msc-status-ok[b-8ysk4u2607] { font-size: 12.5px; color: var(--fn-success); }
.msc-status-err[b-8ysk4u2607] { font-size: 12.5px; color: var(--fn-danger); }

.msc-note[b-8ysk4u2607] { 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-8ysk4u2607]  .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-4idevj7v8h] { display: flex; flex-direction: column; gap: 16px; }
.mwi[b-4idevj7v8h]  .lucide { width: 16px; height: 16px; }
.mwi-deny[b-4idevj7v8h] { 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-4idevj7v8h] {
    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-4idevj7v8h] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.mwi-card h4[b-4idevj7v8h]  .lucide { color: var(--fn-primary); }
.mwi-stage[b-4idevj7v8h] { font-weight: 400; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12.5px; }
.mwi-sub[b-4idevj7v8h] { margin: -6px 0 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

.mwi-import[b-4idevj7v8h] { 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-4idevj7v8h] { 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-4idevj7v8h] { color: var(--fn-text); }
.mwi-file[b-4idevj7v8h]  input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.mwi-file[b-4idevj7v8h]  .lucide { color: var(--fn-primary); }
.mwi-preview[b-4idevj7v8h] { font-size: 12.5px; color: var(--fn-text); }
.mwi-import-run[b-4idevj7v8h] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mwi[b-4idevj7v8h]  .mwi-mode { flex: 0 0 auto; width: auto; min-width: 220px; }

.mwi-scroll[b-4idevj7v8h] { overflow-x: auto; }
.mwi-mono[b-4idevj7v8h] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.mwi-ok[b-4idevj7v8h] { color: var(--fn-success); font-weight: 600; }
.mwi-err[b-4idevj7v8h] { color: var(--fn-danger); font-weight: 600; }
.mwi-status-ok[b-4idevj7v8h] { font-size: 12.5px; color: var(--fn-success); }
.mwi-status-err[b-4idevj7v8h] { font-size: 12.5px; color: var(--fn-danger); }

.mwi-note[b-4idevj7v8h] { 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-4idevj7v8h]  .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-qkaq4f0glf] { display: flex; flex-direction: column; gap: 16px; }
.mwr[b-qkaq4f0glf]  .lucide { width: 16px; height: 16px; }
.mwr-deny[b-qkaq4f0glf] { 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-qkaq4f0glf] {
    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-qkaq4f0glf] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.mwr-card h4[b-qkaq4f0glf]  .lucide { color: var(--fn-primary); }
.mwr-card-danger[b-qkaq4f0glf] { border-color: var(--fn-danger); }
.mwr-card-danger h4[b-qkaq4f0glf]  .lucide { color: var(--fn-danger); }
.mwr-stage[b-qkaq4f0glf] { font-weight: 400; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12.5px; }
.mwr-sub[b-qkaq4f0glf] { margin: -6px 0 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

.mwr-warn[b-qkaq4f0glf] { 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-qkaq4f0glf]  .lucide { width: 15px; height: 15px; color: var(--fn-danger); flex: none; margin-top: 1px; }

.mwr-kv[b-qkaq4f0glf] { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px 18px; }
.mwr-kv label[b-qkaq4f0glf] { 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-qkaq4f0glf] { display: flex; align-items: center; gap: 8px; min-height: 34px; font-size: 12.5px; color: var(--fn-text); flex-wrap: wrap; }

.mwr-confirm[b-qkaq4f0glf] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mwr-confirm-hint[b-qkaq4f0glf] { font-size: 12px; color: var(--fn-text-secondary); }
.mwr[b-qkaq4f0glf]  .mwr-confirm-name { max-width: 220px; font-family: var(--fn-font-mono); }

.mwr-import[b-qkaq4f0glf] { 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-qkaq4f0glf] { 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-qkaq4f0glf] { color: var(--fn-text); }
.mwr-file[b-qkaq4f0glf]  input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.mwr-file[b-qkaq4f0glf]  .lucide { color: var(--fn-primary); }
.mwr-preview[b-qkaq4f0glf] { font-size: 12.5px; color: var(--fn-text); }
.mwr-import-run[b-qkaq4f0glf] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mwr[b-qkaq4f0glf]  .mwr-mode { flex: 0 0 auto; width: auto; min-width: 220px; }

.mwr-scroll[b-qkaq4f0glf] { overflow-x: auto; }
.mwr-mono[b-qkaq4f0glf] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.mwr-ok[b-qkaq4f0glf] { color: var(--fn-success); font-weight: 600; }
.mwr-err[b-qkaq4f0glf] { color: var(--fn-danger); font-weight: 600; }
.mwr-status-ok[b-qkaq4f0glf] { font-size: 12.5px; color: var(--fn-success); }
.mwr-status-err[b-qkaq4f0glf] { 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-4ngimsj9ig] { display: flex; flex-direction: column; gap: 16px; }
.mwl[b-4ngimsj9ig]  .lucide { width: 16px; height: 16px; }
.mwl-deny[b-4ngimsj9ig] { 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-4ngimsj9ig] {
    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-4ngimsj9ig] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.mwl-card h4[b-4ngimsj9ig]  .lucide { color: var(--fn-primary); }
.mwl-stage[b-4ngimsj9ig] { font-weight: 400; color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12.5px; }
.mwl-sub[b-4ngimsj9ig] { margin: -6px 0 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

.mwl-actions[b-4ngimsj9ig] { display: flex; align-items: center; gap: 10px; }
.mwl-spacer[b-4ngimsj9ig] { flex: 1 1 auto; }
.mwl-refresh[b-4ngimsj9ig] { 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-4ngimsj9ig] { color: var(--fn-text); border-color: var(--fn-primary); }
.mwl-refresh:disabled[b-4ngimsj9ig] { opacity: .5; cursor: not-allowed; }
.mwl-refresh[b-4ngimsj9ig]  .lucide { width: 15px; height: 15px; }
.mwl-refresh.spin[b-4ngimsj9ig]  .lucide { animation: mwl-spin-b-4ngimsj9ig 1s linear infinite; }
@keyframes mwl-spin-b-4ngimsj9ig { to { transform: rotate(360deg); } }

/* Import-Bereich: Datei-Auswahl als Karte, danach Vorschau + Strategie. */
.mwl-import[b-4ngimsj9ig] { 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-4ngimsj9ig] { 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-4ngimsj9ig] { color: var(--fn-text); }
.mwl-file[b-4ngimsj9ig]  input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.mwl-file[b-4ngimsj9ig]  .lucide { color: var(--fn-primary); }
.mwl-preview[b-4ngimsj9ig] { font-size: 12.5px; color: var(--fn-text); }
.mwl-import-run[b-4ngimsj9ig] { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.mwl[b-4ngimsj9ig]  .mwl-mode { flex: 0 0 auto; width: auto; min-width: 220px; }

.mwl-scroll[b-4ngimsj9ig] { overflow-x: auto; }
.mwl-mono[b-4ngimsj9ig] { font-family: var(--fn-font-mono); font-size: 11.5px; }
.mwl-ok[b-4ngimsj9ig] { color: var(--fn-success); font-weight: 600; }
.mwl-err[b-4ngimsj9ig] { color: var(--fn-danger); font-weight: 600; }
.mwl-row-action[b-4ngimsj9ig] { width: 1%; white-space: nowrap; text-align: right; }
.mwl-status-ok[b-4ngimsj9ig] { font-size: 12.5px; color: var(--fn-success); }
.mwl-status-err[b-4ngimsj9ig] { font-size: 12.5px; color: var(--fn-danger); }

.mwl-note[b-4ngimsj9ig] { 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-4ngimsj9ig]  .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-4zhi9j2whj] { display:flex; flex-direction:column; gap:16px; }
.mg[b-4zhi9j2whj]  svg { width:16px; height:16px; }

/* Kopfzeile: geteilte FnListToolbar (Suchen + Aktualisieren + „➕ Neue Gruppe") — Konzept T1. */

.mg-empty[b-4zhi9j2whj] { color:var(--fn-text-tertiary); font-size:13px; padding:14px 2px; }
.mg-msg[b-4zhi9j2whj] { font-size:12.5px; border-radius:var(--fn-radius-sm); padding:8px 12px; }
.mg-msg.err[b-4zhi9j2whj] { color:var(--fn-danger); background:var(--fn-danger-soft); border:1px solid var(--fn-danger); }
.mg-msg.ok[b-4zhi9j2whj] { 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-4zhi9j2whj] { display:grid; grid-template-columns:repeat(auto-fill, minmax(420px, 1fr)); gap:16px; }
.mg-card[b-4zhi9j2whj] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); overflow:hidden; }
.mg-h[b-4zhi9j2whj] { 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-4zhi9j2whj] { 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-4zhi9j2whj] { font-size:13.5px; font-weight:600; flex:1; color:var(--fn-text); }
.mg-rename[b-4zhi9j2whj] { 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-4zhi9j2whj] { display:flex; gap:8px; color:var(--fn-text-tertiary); }
.mg-act[b-4zhi9j2whj]  svg { cursor:pointer; }
.mg-act[b-4zhi9j2whj]  svg:hover { color:var(--fn-text); }
.mg-ic[b-4zhi9j2whj] { 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-4zhi9j2whj]  svg { width:14px; height:14px; }
.mg-ic.ok[b-4zhi9j2whj] { color:var(--fn-on-primary); background:var(--fn-primary); border-color:var(--fn-primary); }
.mg-name-in[b-4zhi9j2whj] { 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-4zhi9j2whj] { padding:8px 0; }
/* Modulzeile 1:1 FlowDesk benutzer-modul-zeile: padding .35rem 1rem, voller Breite, Hover bg-muted. */
.mg-row[b-4zhi9j2whj] { display:flex; align-items:center; gap:9px; padding:6px 16px; font-size:12.5px; }
.mg-row:hover[b-4zhi9j2whj] { background:var(--fn-bg-muted); }
/* Modulzeile = Checkbox (wie FlowDesk-Referenz), nicht Toggle */
.mg-check[b-4zhi9j2whj] { 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-4zhi9j2whj] { background:var(--fn-primary); border-color:var(--fn-primary); }
.mg-check[b-4zhi9j2whj]  svg { width:13px; height:13px; }
.mg-row.off[b-4zhi9j2whj] { opacity:.5; }
.mg-row .mi[b-4zhi9j2whj] { color:var(--fn-text-secondary); flex:none; }
.mg-row .mn[b-4zhi9j2whj] { flex:1; color:var(--fn-text); }
.mg-row.off .mn[b-4zhi9j2whj] { color:var(--fn-text-tertiary); }

/* Stufen-Badge 1:1 wie FlowDesk: dezente Akzent-Pille (accent-soft + primary), KEIN Grün/Teal. */
.lvl[b-4zhi9j2whj] { 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-4zhi9j2whj], .lvl.part[b-4zhi9j2whj] { background:var(--fn-accent-soft); color:var(--fn-primary); }

.gear[b-4zhi9j2whj] { 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-4zhi9j2whj] { color:var(--fn-primary); border-color:var(--fn-accent-line); background:var(--fn-accent-soft); }

.mini-toggle[b-4zhi9j2whj] { width:34px; height:20px; border-radius:var(--fn-radius-pill); background:var(--fn-primary); position:relative; flex:none; cursor:pointer; }
.mini-toggle .k[b-4zhi9j2whj] { position:absolute; top:2px; left:16px; width:16px; height:16px; border-radius:50%; background:var(--fn-text); transition:left .15s; }
.mini-toggle.off[b-4zhi9j2whj] { background:var(--fn-border-strong); }
.mini-toggle.off .k[b-4zhi9j2whj] { left:2px; }

.fnpanel[b-4zhi9j2whj] { 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-4zhi9j2whj] { display:flex; align-items:center; gap:14px; }
.fnp-all .t[b-4zhi9j2whj] { flex:1; }
.fnp-all .t b[b-4zhi9j2whj] { color:var(--fn-primary); font-size:12.5px; }
.fnp-all .t small[b-4zhi9j2whj] { display:block; color:var(--fn-text-tertiary); font-size:10.5px; }
.sel[b-4zhi9j2whj] { 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-4zhi9j2whj] { opacity:.5; }
.fnp-label[b-4zhi9j2whj] { 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-4zhi9j2whj] { opacity:.45; }
.fnp-fn[b-4zhi9j2whj] { 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-4zhi9j2whj] { font-size:12.5px; color:var(--fn-text); }
.fnp-note[b-4zhi9j2whj] { 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-ycr1xukrq3] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.nj-hint[b-ycr1xukrq3] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 13px;
    line-height: 1.55;
}

.nj-card[b-ycr1xukrq3] {
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-md);
    background: var(--fn-bg-alt);
    padding: 16px;
}

.nj-head[b-ycr1xukrq3] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 14px;
}

.nj-head h4[b-ycr1xukrq3] {
    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-ycr1xukrq3]  .lucide { width: 16px; height: 16px; color: var(--fn-primary); }

.nj-head p[b-ycr1xukrq3] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 12.5px;
    line-height: 1.45;
}

.nj-grid[b-ycr1xukrq3] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 12px;
}

.nj-grid label[b-ycr1xukrq3] {
    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-ycr1xukrq3] { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; cursor: pointer; margin: 0; }
.nj-toggle input[type="checkbox"][b-ycr1xukrq3] { width: 15px; height: 15px; accent-color: var(--fn-primary); cursor: pointer; }
.nj-pill[b-ycr1xukrq3] { 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-ycr1xukrq3] { color: var(--fn-success); border-color: var(--fn-success); background: var(--fn-success-soft); }

.nj-real[b-ycr1xukrq3] {
    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-ycr1xukrq3] {
    display: block;
    color: var(--fn-text);
    margin-bottom: 3px;
}

.nj-real p[b-ycr1xukrq3] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 12.5px;
    line-height: 1.45;
}

.nj-runs[b-ycr1xukrq3] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 10px;
}

.nj-run[b-ycr1xukrq3] {
    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-ycr1xukrq3] { color: var(--fn-text); font-size: 13px; }
.nj-run .ok[b-ycr1xukrq3] { color: var(--fn-success); }
.nj-run .bad[b-ycr1xukrq3] { color: var(--fn-danger); }

/* Probelauf-Aktionszeile in der Verlaufs-Karte: rechtsbündig. Der Speichern-Footer
   kommt aus FnFormFooter (Panel-Ende). */
.nj-actions[b-ycr1xukrq3] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
}

.nj-msg[b-ycr1xukrq3] { font-size: 12.5px; }
.nj-msg.ok[b-ycr1xukrq3] { color: var(--fn-success); }
.nj-msg.err[b-ycr1xukrq3] { 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-x5fl3idg1v] {
    display:flex;
    flex-direction:column;
    height:100%;
    min-height:0;
    color:var(--fn-text);
}
.opn-scroll[b-x5fl3idg1v] { flex:1 1 auto; min-height:0; overflow-y:auto; display:flex; flex-direction:column; gap:14px; padding-bottom:6px; }
.opn[b-x5fl3idg1v]  svg { width:15px; height:15px; }

.opn-empty[b-x5fl3idg1v], .opn-global[b-x5fl3idg1v], .opn-detail[b-x5fl3idg1v], .opn-rail[b-x5fl3idg1v] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:8px; }
.opn-empty[b-x5fl3idg1v] { padding:16px; color:var(--fn-text-secondary); }

.opn-global[b-x5fl3idg1v] { display:grid; grid-template-columns:minmax(320px, .9fr) minmax(320px, 1fr); gap:12px; padding:14px; }
.opn-master[b-x5fl3idg1v] { display:flex; align-items:center; gap:12px; min-width:0; padding:8px 0; cursor:pointer; }
.opn-master input[b-x5fl3idg1v] { position:absolute; opacity:0; pointer-events:none; }
.opn-switch[b-x5fl3idg1v] { 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-x5fl3idg1v]::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-x5fl3idg1v] { background:var(--fn-success-soft); border-color:var(--fn-success); }
.opn-master input:checked + .opn-switch[b-x5fl3idg1v]::after { transform:translateX(23px); background:var(--fn-success); }
.opn-master span:last-child[b-x5fl3idg1v] { display:flex; flex-direction:column; gap:4px; min-width:0; }
.opn-master b[b-x5fl3idg1v] { font-size:14px; font-weight:700; color:var(--fn-text); }
.opn-master small[b-x5fl3idg1v], .opn-privacy span[b-x5fl3idg1v] { color:var(--fn-text-secondary); font-size:12px; line-height:1.45; }
.opn-privacy[b-x5fl3idg1v] { 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-x5fl3idg1v], .opn-section-title[b-x5fl3idg1v] { color:var(--fn-text-tertiary); font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }

.opn-detail[b-x5fl3idg1v] { display:flex; flex-direction:column; }
.opn-detail-head[b-x5fl3idg1v] { 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-x5fl3idg1v] { display:flex; align-items:center; gap:10px; min-width:0; }
.opn-title > span:last-child[b-x5fl3idg1v] { display:flex; flex-direction:column; gap:3px; min-width:0; }
.opn-title b[b-x5fl3idg1v] { color:var(--fn-text); font-size:14px; font-weight:700; }
.opn-title small[b-x5fl3idg1v] { 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-x5fl3idg1v] { 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-x5fl3idg1v] { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.opn-badge[b-x5fl3idg1v] { 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-x5fl3idg1v] { border-color:var(--fn-success); color:var(--fn-success); background:var(--fn-success-soft); }
.opn-badge.warn[b-x5fl3idg1v] { border-color:var(--fn-warning); color:var(--fn-warning); background:var(--fn-warning-soft); }

.opn-detail-body[b-x5fl3idg1v] { display:grid; grid-template-columns:minmax(300px, .78fr) minmax(420px, 1fr); }
.opn-config[b-x5fl3idg1v], .opn-routing[b-x5fl3idg1v] { display:flex; flex-direction:column; gap:12px; min-height:0; padding:16px; }
.opn-config[b-x5fl3idg1v] { border-right:1px solid var(--fn-border); }
.opn-section-title[b-x5fl3idg1v] { margin:0 0 2px; }
.opn-readonly[b-x5fl3idg1v], .opn-external[b-x5fl3idg1v], .opn-short-option[b-x5fl3idg1v] { 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-x5fl3idg1v] { 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-x5fl3idg1v] { color:var(--fn-text-tertiary); font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.opn-readonly b[b-x5fl3idg1v] { 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-x5fl3idg1v], .opn-external small[b-x5fl3idg1v], .opn-cost span[b-x5fl3idg1v] { color:var(--fn-text-secondary); font-size:11.5px; line-height:1.4; }
.opn-readonly select[b-x5fl3idg1v], .opn-readonly input[type="email"][b-x5fl3idg1v] { 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-x5fl3idg1v] { font-family:var(--fn-font-mono); }
.opn-readonly input[type="email"]:focus[b-x5fl3idg1v] { outline:none; border-color:var(--fn-primary); box-shadow:0 0 0 1px var(--fn-primary) inset; }
.opn-external[b-x5fl3idg1v] { position:relative; padding-left:40px; }
.opn-external input[b-x5fl3idg1v] { position:absolute; left:13px; top:14px; width:16px; height:16px; accent-color:var(--fn-success); }
.opn-external.disabled[b-x5fl3idg1v] { opacity:.6; }
.opn-external b[b-x5fl3idg1v], .opn-cost b[b-x5fl3idg1v], .opn-short-option b[b-x5fl3idg1v] { color:var(--fn-text); font-size:12.5px; }
.opn-cost[b-x5fl3idg1v] { 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-x5fl3idg1v] { display:grid; grid-template-columns:auto minmax(0, 1fr) auto; align-items:center; gap:10px; cursor:pointer; }
.opn-short-option input[b-x5fl3idg1v] { position:absolute; opacity:0; pointer-events:none; }
.opn-short-option.disabled[b-x5fl3idg1v] { opacity:.6; cursor:default; }
.opn-short-option span:nth-child(3)[b-x5fl3idg1v] { display:flex; flex-direction:column; gap:4px; min-width:0; }
.opn-short-option small[b-x5fl3idg1v] { color:var(--fn-text-secondary); font-size:11.5px; line-height:1.35; }
.opn-short-option strong[b-x5fl3idg1v] { color:var(--fn-primary); font-size:11px; font-weight:800; text-transform:uppercase; }
.opn-mini-switch[b-x5fl3idg1v] { 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-x5fl3idg1v]::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-x5fl3idg1v] { background:var(--fn-success-soft); border-color:var(--fn-success); }
.opn-short-option input:checked + .opn-mini-switch[b-x5fl3idg1v]::after { transform:translateX(20px); background:var(--fn-success); }
.opn-actions[b-x5fl3idg1v] { display:flex; gap:8px; flex-wrap:wrap; }
.opn-secondary[b-x5fl3idg1v] { 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-x5fl3idg1v] { opacity:.55; cursor:not-allowed; }
.opn-verification[b-x5fl3idg1v] { 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-x5fl3idg1v] { color:var(--fn-text-tertiary); font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.opn-verification input[b-x5fl3idg1v] { 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-x5fl3idg1v] { outline:none; border-color:var(--fn-primary); box-shadow:0 0 0 1px var(--fn-primary) inset; }
.opn-verification input:disabled[b-x5fl3idg1v] { opacity:.55; cursor:not-allowed; }
.opn-verify-row[b-x5fl3idg1v] { 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-x5fl3idg1v] { 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-x5fl3idg1v] { background:var(--fn-primary); color:var(--fn-on-primary); }
.opn-verify-save:disabled[b-x5fl3idg1v] { opacity:.5; cursor:not-allowed; }
.opn-verify-save.done[b-x5fl3idg1v] { border-color:var(--fn-success); background:var(--fn-success-soft); color:var(--fn-success); opacity:1; }
.opn-verify-save[b-x5fl3idg1v]  .lucide { width:16px; height:16px; }
.opn-verification small.ok[b-x5fl3idg1v] { color:var(--fn-success); font-weight:700; }
.opn-action-status[b-x5fl3idg1v] { 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-x5fl3idg1v] { 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-x5fl3idg1v] { border-color:var(--fn-warning); background:var(--fn-warning-soft); color:var(--fn-warning); font-weight:700; }

.opn-routes[b-x5fl3idg1v] { display:flex; flex-direction:column; gap:8px; }
.opn-route[b-x5fl3idg1v] { 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-x5fl3idg1v] { opacity:.55; cursor:default; }
.opn-route span:first-child[b-x5fl3idg1v] { display:flex; flex-direction:column; gap:4px; min-width:0; }
.opn-route b[b-x5fl3idg1v] { color:var(--fn-text); font-size:12.5px; }
.opn-route small[b-x5fl3idg1v] { color:var(--fn-text-secondary); font-size:11px; line-height:1.35; }
.opn-route input[b-x5fl3idg1v] { position:absolute; opacity:0; pointer-events:none; }
.opn-route-switch[b-x5fl3idg1v] { 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-x5fl3idg1v]::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-x5fl3idg1v] { border-color:var(--fn-success); background:var(--fn-success-soft); }
.opn-route input:checked + .opn-route-switch[b-x5fl3idg1v]::after { transform:translateX(17px); background:var(--fn-success); }

/* 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-x5fl3idg1v] { flex:0 0 auto; overflow:hidden; padding:10px 10px 12px; }
.opn-tiles[b-x5fl3idg1v] { 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-x5fl3idg1v] { 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-x5fl3idg1v] { scroll-snap-align:start; }
.opn-tile.active[b-x5fl3idg1v] { border-color:var(--fn-primary); box-shadow:0 0 0 1px var(--fn-primary) inset; }
.opn-tile.add[b-x5fl3idg1v] { border-style:dashed; cursor:not-allowed; opacity:.8; }
.opn-tile-title[b-x5fl3idg1v] { color:var(--fn-text); font-size:12.5px; font-weight:700; }
.opn-tile-title b[b-x5fl3idg1v] { color:var(--fn-primary); font-family:var(--fn-font-mono); }
.opn-tile-address[b-x5fl3idg1v] { 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-x5fl3idg1v] { color:var(--fn-warning); font-size:11px; font-weight:700; }
.opn-tile-state.ok[b-x5fl3idg1v] { color:var(--fn-success); }
.opn-open[b-x5fl3idg1v] { margin-top:auto; color:var(--fn-primary); font-size:12px; font-weight:700; }

.opn-detail-actions[b-x5fl3idg1v] { 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-x5fl3idg1v] { color:var(--fn-text-tertiary); font-size:11px; line-height:1.35; }
.opn-save[b-x5fl3idg1v] { 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-x5fl3idg1v] { opacity:.5; cursor:not-allowed; }
.opn-save[b-x5fl3idg1v]  svg { width:14px; height:14px; }

@media (max-width: 980px) {
    .opn[b-x5fl3idg1v] { min-height:620px; }
    .opn-detail[b-x5fl3idg1v] { min-height:520px; }
    .opn-global[b-x5fl3idg1v], .opn-detail-body[b-x5fl3idg1v] { grid-template-columns:1fr; }
    .opn-config[b-x5fl3idg1v] { border-right:0; border-bottom:1px solid var(--fn-border); }
}

@media (max-width: 680px) {
    .opn[b-x5fl3idg1v] { display:flex; flex-direction:column; height:auto; min-height:0; }
    .opn-detail[b-x5fl3idg1v] { min-height:0; overflow:visible; }
    .opn-detail-body[b-x5fl3idg1v] { overflow:visible; }
    .opn-detail-head[b-x5fl3idg1v], .opn-detail-actions[b-x5fl3idg1v] { flex-direction:column; align-items:stretch; }
    .opn-badges[b-x5fl3idg1v] { justify-content:flex-start; }
    .opn-tiles[b-x5fl3idg1v] { grid-auto-columns:minmax(230px, 82vw); }
}
/* /Components/Settings/OpenPositionNotificationTextsForm.razor.rz.scp.css */
.nt[b-xom223igb1] { display:flex; flex-direction:column; gap:16px; }
.nt[b-xom223igb1]  svg { width:16px; height:16px; }

.nt-bar[b-xom223igb1] { display:flex; align-items:center; gap:12px; justify-content:flex-end; flex-wrap:wrap; }
.nt-search[b-xom223igb1] { 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-xom223igb1]  svg { width:14px; height:14px; color:var(--fn-text-tertiary); }
.nt-search input[b-xom223igb1] { flex:1; min-width:0; border:none; background:transparent; outline:none; color:var(--fn-text); font:inherit; font-size:12.5px; }

.nt-card[b-xom223igb1] { background:var(--fn-bg-alt); border:1px solid var(--fn-border); border-radius:var(--fn-radius); overflow:hidden; }
.nt-card-head[b-xom223igb1] { 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-xom223igb1] { margin:0; font-size:13.5px; font-weight:600; color:var(--fn-text); }
.nt-card-head p[b-xom223igb1] { margin:3px 0 0; font-size:12px; color:var(--fn-text-secondary); line-height:1.45; }
.nt-pill[b-xom223igb1], .nt-chip[b-xom223igb1] { 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-xom223igb1] { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; padding:13px; }
.nt-row[b-xom223igb1] { 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-xom223igb1] { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.nt-key b[b-xom223igb1] { color:var(--fn-text); font-family:var(--fn-font-mono); font-size:12px; }
.nt-key span[b-xom223igb1] { 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-xom223igb1] { color:var(--fn-success); border-color:var(--fn-success); background:var(--fn-success-soft); }
.nt-row label[b-xom223igb1] { display:flex; flex-direction:column; gap:4px; }
.nt-row label span[b-xom223igb1] { color:var(--fn-text-tertiary); font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.nt-row textarea[b-xom223igb1] { 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-xom223igb1] { color:var(--fn-text-secondary); font-size:11.5px; line-height:1.35; }
.nt-empty[b-xom223igb1] { padding:22px; color:var(--fn-text-secondary); }
.nt-deny[b-xom223igb1] { 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-xom223igb1] { 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-xom223igb1]  svg { color:var(--fn-info); width:15px; height:15px; margin-top:1px; }
.nt-foot[b-xom223igb1] { 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-xom223igb1] { color:var(--fn-text-tertiary); font-size:11px; }
.nt-actions[b-xom223igb1] { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.nt-btn-primary[b-xom223igb1], .nt-btn-secondary[b-xom223igb1] { 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-xom223igb1] { color:var(--fn-on-primary); background:var(--fn-primary); border:1px solid var(--fn-primary); }
.nt-btn-secondary[b-xom223igb1] { color:var(--fn-text); background:var(--fn-bg-muted); border:1px solid var(--fn-border-strong); }
.nt-btn-primary:disabled[b-xom223igb1], .nt-btn-secondary:disabled[b-xom223igb1] { opacity:.5; cursor:not-allowed; }
.nt-btn-primary[b-xom223igb1]  svg, .nt-btn-secondary[b-xom223igb1]  svg { width:14px; height:14px; }
.nt-btn-secondary[b-xom223igb1]  svg { color:var(--fn-primary); }

@media (max-width: 860px) {
    .nt-grid[b-xom223igb1] { grid-template-columns:1fr; }
    .nt-search[b-xom223igb1] { flex:1 1 100%; }
    .nt-foot[b-xom223igb1] { flex-direction:column; align-items:stretch; }
    .nt-actions[b-xom223igb1] { 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-zllfx4c3ca] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    max-width: 720px;
    padding-bottom: 28px;
}

.qr-hint[b-zllfx4c3ca] {
    font-size: 13px;
    color: var(--fn-text-secondary);
    line-height: 1.55;
    margin: 0 0 6px;
}

.qr-row[b-zllfx4c3ca] {
    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-zllfx4c3ca] {
    border-color: var(--fn-accent-line);
    background: var(--fn-accent-soft);
}

.qr-label[b-zllfx4c3ca] {
    flex: 0 0 240px;
    font-size: 13px;
    color: var(--fn-text);
}

.qr-input[b-zllfx4c3ca] {
    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-zllfx4c3ca] {
    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-zllfx4c3ca] {
    outline: none;
    border-color: var(--fn-primary);
}

/* Uhrzeit-Felder (Zeitfenster, Währungs-Abruf) brauchen keine Platzhalter-Breite. */
.qr-input input.qr-time[b-zllfx4c3ca] {
    width: 110px;
}

.qr-sep[b-zllfx4c3ca] {
    font-size: 13px;
    color: var(--fn-text-tertiary);
}

/* „Durchgängig" je Produktzeile: rechts in der Kachel, Label vor dem Slider. */
.qr-switch-trailing[b-zllfx4c3ca] {
    margin-left: auto;
    flex: none;
}

/* Aktive Wochentage — 1:1 aus der abgenommenen VORSCHAU-QuoteRefresh-Wochentage.html. */
.qr-days-tile[b-zllfx4c3ca] {
    align-items: flex-start;
}

.qr-days-body[b-zllfx4c3ca] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
}

.qr-days[b-zllfx4c3ca] {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    align-items: center;
}

.qr-day[b-zllfx4c3ca] {
    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-zllfx4c3ca] {
    background: var(--fn-accent-soft);
    border-color: var(--fn-primary);
    color: var(--fn-primary);
}

.qr-day-dot[b-zllfx4c3ca] {
    width: 6px;
    height: 6px;
    border-radius: var(--fn-radius-round);
    background: currentColor;
    margin-right: 6px;
    opacity: 0;
}

.qr-day.on .qr-day-dot[b-zllfx4c3ca] {
    opacity: 1;
}

.qr-days-quick[b-zllfx4c3ca] {
    display: inline-flex;
    gap: 8px;
    margin-left: 6px;
}

.qr-chip[b-zllfx4c3ca] {
    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-zllfx4c3ca] {
    color: var(--fn-primary);
    border-color: var(--fn-primary);
}

.qr-days-note[b-zllfx4c3ca] {
    font-size: 11.5px;
    color: var(--fn-text-tertiary);
    line-height: 1.5;
}

.qr-unit[b-zllfx4c3ca] {
    font-size: 12px;
    color: var(--fn-text-tertiary);
}

.qr-note[b-zllfx4c3ca] {
    font-size: 12px;
    color: var(--fn-text-tertiary);
}

.qr-warn[b-zllfx4c3ca] {
    font-size: 12px;
    color: var(--fn-warning);
}

.qr-section[b-zllfx4c3ca] {
    margin-top: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}

.qr-actions[b-zllfx4c3ca] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 12px;
}

.qr-msg[b-zllfx4c3ca] {
    font-size: 12.5px;
    border-radius: var(--fn-radius-sm);
    padding: 6px 12px;
}

.qr-msg-ok[b-zllfx4c3ca] {
    color: var(--fn-success);
    background: var(--fn-success-soft);
}

.qr-msg-err[b-zllfx4c3ca] {
    color: var(--fn-danger);
    background: var(--fn-danger-soft);
}

/* Einheit-Umschalter (Minuten/Stunden). */
.qr-unit-select[b-zllfx4c3ca] {
    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-zllfx4c3ca] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-size: 13px;
    color: var(--fn-text);
}

.qr-switch input[b-zllfx4c3ca] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}

.qr-toggle[b-zllfx4c3ca] {
    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-zllfx4c3ca]::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-zllfx4c3ca] {
    background: var(--fn-primary);
    border-color: var(--fn-primary);
}

.qr-switch input:checked + .qr-toggle[b-zllfx4c3ca]::after {
    transform: translateX(18px);
    background: var(--fn-on-primary);
}

.qr-switch input:focus-visible + .qr-toggle[b-zllfx4c3ca] {
    box-shadow: 0 0 0 2px var(--fn-accent-line);
}

.qr-switch-label[b-zllfx4c3ca] {
    font-weight: var(--fn-font-weight-medium);
}
/* /Components/Settings/TaxProfileForm.razor.rz.scp.css */
/* Steuerprofil-Formular (KONZEPT-Portfolio-Steuer-Gewinnsimulation). Tokens-only (FINLIST003). */

.tp-owner[b-mz5lfub66e] {
    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-mz5lfub66e] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 18px;
    margin-top: 6px;
}

@media (max-width: 680px) {
    .tp-grid[b-mz5lfub66e] { grid-template-columns: 1fr; }
}

.tp-field[b-mz5lfub66e] { display: flex; flex-direction: column; }

.tp-field > span[b-mz5lfub66e] {
    font-size: 11.5px;
    color: var(--fn-text-secondary);
    margin-bottom: 5px;
}

.tp-field input[b-mz5lfub66e],
.tp-field select[b-mz5lfub66e] {
    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-mz5lfub66e] { position: relative; }
.tp-unit input[b-mz5lfub66e] { padding-right: 34px; }
.tp-unit .u[b-mz5lfub66e] {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--fn-text-tertiary);
    font-size: 12px;
}

.tp-hint[b-mz5lfub66e] {
    font-size: 10.5px;
    color: var(--fn-text-tertiary);
    margin-top: 4px;
    line-height: 1.4;
}

.tp-foot[b-mz5lfub66e] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.tp-save[b-mz5lfub66e] {
    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-mz5lfub66e] {
    opacity: .55;
    cursor: not-allowed;
}

.tp-reset[b-mz5lfub66e] {
    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-mz5lfub66e] {
    margin-left: auto;
    font-size: 11px;
    color: var(--fn-text-tertiary);
}

.tp-status[b-mz5lfub66e] {
    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-mz5lfub66e] {
    color: var(--fn-success);
    background: var(--fn-success-soft);
    border-color: var(--fn-success);
}

.tp-status.err[b-mz5lfub66e] {
    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-pgann3gqr4] { display: flex; flex-direction: column; gap: 18px; max-width: 760px; }
.ta[b-pgann3gqr4]  .lucide { width: 16px; height: 16px; }
.ta-deny[b-pgann3gqr4] { 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-pgann3gqr4] {
    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-pgann3gqr4] { margin: 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 9px; }
.ta-card h4[b-pgann3gqr4]  .lucide { color: var(--fn-primary); }
.ta-sub[b-pgann3gqr4] { margin: -6px 0 0; font-size: 12.5px; color: var(--fn-text-tertiary); }

.ta-grid[b-pgann3gqr4] { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px 18px; align-items: center; }
.ta-info[b-pgann3gqr4] { display: flex; align-items: center; gap: 12px; }
.ta-name[b-pgann3gqr4] { font-size: 14px; font-weight: 600; color: var(--fn-text); }
.ta-meta[b-pgann3gqr4] { font-size: 12px; font-family: var(--fn-font-mono); color: var(--fn-text-tertiary); }

.ta-note[b-pgann3gqr4] {
    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-pgann3gqr4]  .lucide { width: 14px; height: 14px; color: var(--fn-warning); flex: none; margin-top: 2px; }

.ta-hint[b-pgann3gqr4] { 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-qwsu5c9p3w] { display:flex; align-items:flex-start; gap:16px; margin-bottom:16px; }
.ue-avatar-wrap[b-qwsu5c9p3w] { position:relative; width:76px; height:76px; flex:none; cursor:pointer; }
.ue-avatar-img[b-qwsu5c9p3w] { width:76px; height:76px; border-radius:50%; object-fit:cover; border:2px solid var(--fn-border-strong); }
.ue-avatar-initials[b-qwsu5c9p3w] {
    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-qwsu5c9p3w] {
    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-qwsu5c9p3w]  input[type="file"] { position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
.ue-avatar-x[b-qwsu5c9p3w] {
    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-qwsu5c9p3w] { display:flex; flex-direction:column; gap:8px; padding-top:6px; }
.ue-head-name[b-qwsu5c9p3w] { font-size:18px; font-weight:600; color:var(--fn-text); }
.ue-head-badge[b-qwsu5c9p3w] {
    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-qwsu5c9p3w]  svg { width:12px; height:12px; }
.ue-head-badge.owner[b-qwsu5c9p3w] { color:var(--fn-on-primary); background:var(--fn-warning); }
.ue-head-badge.super[b-qwsu5c9p3w] { color:var(--fn-primary); background:var(--fn-accent-soft); border:1px solid var(--fn-primary); }
.ue-head-badge.admin[b-qwsu5c9p3w] { 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-qwsu5c9p3w] { display:flex; gap:8px; }
.ue-pair input[b-qwsu5c9p3w] { flex:1; min-width:0; }

/* --- Berechtigungen-Hinweis (FlowDesk-Muster) --- */
.ue-permhint[b-qwsu5c9p3w] {
    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-qwsu5c9p3w]  svg { width:14px; height:14px; color:var(--fn-warning); flex:none; margin-top:2px; }

.ue-grid[b-qwsu5c9p3w] { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ue-f[b-qwsu5c9p3w] { display:flex; flex-direction:column; gap:5px; }
.ue-full[b-qwsu5c9p3w] { grid-column:1 / -1; }
.ue-f label[b-qwsu5c9p3w] { font-size:11.5px; color:var(--fn-text-secondary); }
.ue-req[b-qwsu5c9p3w] { color:var(--fn-danger); }
.ue-f input[b-qwsu5c9p3w], .ue-f select[b-qwsu5c9p3w] {
    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-qwsu5c9p3w] { color:var(--fn-text-secondary); }
.ue-f input:focus[b-qwsu5c9p3w], .ue-f select:focus[b-qwsu5c9p3w] { border-color:var(--fn-primary); box-shadow:var(--fn-focus-ring); }
.ue-hint[b-qwsu5c9p3w] { display:inline-flex; align-items:center; gap:5px; font-size:11px; }
.ue-hint.ok[b-qwsu5c9p3w] { color:var(--fn-success); }
.ue-hint.err[b-qwsu5c9p3w] { color:var(--fn-danger); }
.ue-hint[b-qwsu5c9p3w]  svg { width:12px; height:12px; }

.ue-error[b-qwsu5c9p3w] {
    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-qwsu5c9p3w] { display:flex; align-items:center; gap:10px; margin-top:16px; }
.ue-spacer[b-qwsu5c9p3w] { flex:1; }
.ue-btn[b-qwsu5c9p3w] {
    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-qwsu5c9p3w] { 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-qwsu5c9p3w] { opacity:.5; cursor:not-allowed; }
.ue-btn-primary[b-qwsu5c9p3w]  svg { width:14px; height:14px; }
.ue-loading[b-qwsu5c9p3w] { 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-zozu48404g] { display:flex; flex-direction:column; }
.uv[b-zozu48404g]  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-zozu48404g] { 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-zozu48404g] { color:var(--fn-warning); border-color:var(--fn-warning); background:var(--fn-warning-soft); }

.uv-msg[b-zozu48404g] { font-size:12.5px; border-radius:var(--fn-radius-sm); padding:8px 12px; }
.uv-msg.err[b-zozu48404g] { color:var(--fn-danger); background:var(--fn-danger-soft); border:1px solid var(--fn-danger); }
.uv-msg.ok[b-zozu48404g] { color:var(--fn-success); background:var(--fn-success-soft); border:1px solid var(--fn-success); }

.uv-section-label[b-zozu48404g] { 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-zozu48404g]  svg { width:14px; height:14px; }

.uv-head[b-zozu48404g] { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.uv-name[b-zozu48404g] { font-size:15px; font-weight:600; color:var(--fn-text); }
.uv-mail[b-zozu48404g] { font-size:12.5px; font-family:var(--fn-font-mono); color:var(--fn-text-tertiary); }
.uv-badge[b-zozu48404g] { 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-zozu48404g]  svg { width:12px; height:12px; }
.uv-badge.owner[b-zozu48404g] { color:var(--fn-on-primary); background:var(--fn-warning); }
.uv-badge.super[b-zozu48404g] { color:var(--fn-primary); background:var(--fn-accent-soft); border:1px solid var(--fn-primary); }
.uv-badge.admin[b-zozu48404g] { color:var(--fn-on-primary); background:var(--fn-primary); }
.uv-badge.muted[b-zozu48404g] { color:var(--fn-text-tertiary); background:var(--fn-bg-muted); }

.uv-groups[b-zozu48404g] { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.uv-fullaccess[b-zozu48404g] { font-size:12.5px; font-style:italic; color:var(--fn-text-tertiary); }
.uv-chip[b-zozu48404g] { 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-zozu48404g]  svg { width:14px; height:14px; color:var(--fn-primary); }
.uv-chip-x[b-zozu48404g] { 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-zozu48404g] { color:var(--fn-danger); background:var(--fn-danger-soft); }
.uv-chip-x[b-zozu48404g]  svg { width:12px; height:12px; }
.uv-nogroup[b-zozu48404g] { font-size:12.5px; font-style:italic; color:var(--fn-warning); }
.uv-add[b-zozu48404g] { 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-zozu48404g] { 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-zozu48404g], .uv-eff-btn:hover[b-zozu48404g] { color:var(--fn-primary); border-color:var(--fn-accent-line); background:var(--fn-accent-soft); }
.uv-eff-btn[b-zozu48404g]  svg { width:13px; height:13px; }

.uv-eff-panel[b-zozu48404g] { 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-zozu48404g] { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--fn-text-tertiary); margin-bottom:7px; }
.uv-eff-empty[b-zozu48404g] { font-size:12px; font-style:italic; color:var(--fn-text-tertiary); }
.uv-eff-mod[b-zozu48404g] { 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-zozu48404g] { border-top:none; }
.uv-em-name[b-zozu48404g] { font-size:12.5px; color:var(--fn-text); }
.uv-em-lvl[b-zozu48404g] { 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-zozu48404g], .uv-em-lvl.part[b-zozu48404g] { color:var(--fn-primary); border-color:var(--fn-accent-line); background:var(--fn-accent-soft); }
.uv-em-lvl.none[b-zozu48404g] { color:var(--fn-text-tertiary); }

.uv-toggles[b-zozu48404g] { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:2px; }
.uv-tl[b-zozu48404g] { font-size:12px; color:var(--fn-text-secondary); }
.uv-sep[b-zozu48404g] { width:1px; height:16px; background:var(--fn-border); }
.uv-sw[b-zozu48404g] { 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-zozu48404g] { position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:var(--fn-text); transition:left .15s; }
.uv-sw.on[b-zozu48404g] { background:var(--fn-primary); }
.uv-sw.on .k[b-zozu48404g] { left:16px; }
.uv-sw.lock[b-zozu48404g] { opacity:.4; cursor:not-allowed; }

.uv-hint[b-zozu48404g] { 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-zozu48404g]  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-vj68s0f58k] {
    gap: 4px;
}

.tpl-scope[b-vj68s0f58k] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 4px;
    font-size: 12.5px;
    color: var(--fn-text-secondary);
}

.tpl-badge[b-vj68s0f58k] {
    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-vj68s0f58k] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 8px;
}

.tpl-chip-group[b-vj68s0f58k] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.tpl-chip-label[b-vj68s0f58k] {
    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-vj68s0f58k] {
    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-vj68s0f58k] {
    background: var(--fn-primary);
    color: var(--fn-on-primary);
    border-color: var(--fn-primary);
}

.tpl-spacer[b-vj68s0f58k] {
    flex: 1 1 auto;
}

.tpl-reset[b-vj68s0f58k] {
    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-sfhi0gsuqx] {
    display: flex;
    align-items: flex-end;
    gap: 8px;
}
.fdrc-wrap.vertical[b-sfhi0gsuqx] {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
}
.fdrc-wrap.vertical .fdrc-feld[b-sfhi0gsuqx] { width: 100%; }
.fdrc-wrap.vertical .fdrc-sep[b-sfhi0gsuqx]  { display: none; }

.fdrc-feld[b-sfhi0gsuqx] {
    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-sfhi0gsuqx] {
    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-sfhi0gsuqx] {
    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;
}
/* /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-vz9sfr2v0m] {
    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-vz9sfr2v0m] {
    min-width: 0;
}

.fn-audit-fact dt[b-vz9sfr2v0m] {
    font-size: 9px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}

.fn-audit-fact dd[b-vz9sfr2v0m] {
    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-vz9sfr2v0m] {
    color: var(--fn-text);
    font-weight: var(--fn-font-weight-medium);
}

.fn-audit-fact dd:first-of-type[b-vz9sfr2v0m] {
    color: var(--fn-text-secondary);
}

/* Hält die Spaltenhöhe gleich, wenn unter der Fassung kein Benutzer steht. */
.fn-audit-spacer[b-vz9sfr2v0m] {
    visibility: hidden;
}
/* /Components/Shared/FnBackButton.razor.rz.scp.css */
.fn-back[b-uu6a3oysi5] {
    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-uu6a3oysi5] {
    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-s2nfz0g0fi] {
    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-s2nfz0g0fi]  .lucide { width: 15px; height: 15px; }
.fci-btn:hover[b-s2nfz0g0fi], .fci-btn.fci-on[b-s2nfz0g0fi] { background: var(--fn-primary); color: var(--fn-on-primary); }
/* /Components/Shared/FnConfirmDialog.razor.rz.scp.css */
/* Geteilte Sicherheitsabfrage — tokens only. Overlay 959 / Karte 960: ÜBER FnFloatingWindow (950). */
.fn-confirm-portal[b-vh43vr46g6] { display: contents; }

.fn-confirm-overlay[b-vh43vr46g6] {
    position: fixed; inset: 0; z-index: 959;
    background: color-mix(in srgb, var(--fn-bg) 60%, transparent);
}

.fn-confirm[b-vh43vr46g6] {
    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-vh43vr46g6] { margin: 0 0 18px; font-size: 13.5px; line-height: 1.55; color: var(--fn-text); }
.fn-confirm-actions[b-vh43vr46g6] { display: flex; justify-content: flex-end; gap: 8px; }
/* /Components/Shared/FnDialogActions.razor.rz.scp.css */
/* Dialog-Aktionszeile — tokens-only (FINLIST003). */
.fn-dialog-foot[b-l7e027hzn1] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--fn-border);
}

.fn-dialog-foot-status[b-l7e027hzn1] {
    font-size: 12px;
    color: var(--fn-text-tertiary);
    min-width: 0;
}

.fn-dialog-foot-actions[b-l7e027hzn1] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-left: auto;
    flex: none;
}
/* /Components/Shared/FnDisabledExportButton.razor.rz.scp.css */
button.fn-disabled-export[b-ub9hnevhhw] {
    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-ub9hnevhhw]  i {
    width: 13px;
    height: 13px;
}
/* /Components/Shared/FnDocumentViewer.razor.rz.scp.css */
/* FnDocumentViewer — 1:1 zur abgenommenen Vorschau (VORSCHAU-Dokument-Viewer-Hub.html).
   Ausschliesslich --fn-*-Tokens (tokens-only). Der klassische PDF-Viewer-Canvas-Hintergrund
   kommt aus dem Token --fn-doc-canvas (definiert in tokens.css). */

.fnv[b-4wcd7zol1a] {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

/* Kopf-Trenner zwischen Aktionsgruppen */
.fnv-sep[b-4wcd7zol1a] {
    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-4wcd7zol1a] {
    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-4wcd7zol1a] {
    position: relative;
    background: var(--fn-doc-canvas);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 20px;
    overflow: auto;
}

.fnv-canvas[b-4wcd7zol1a] {
    max-width: 100%;
    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-4wcd7zol1a] {
    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-4wcd7zol1a]  .fnv-region-overlay,
.fnv-doc .fnv-region-overlay[b-4wcd7zol1a] {
    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-4wcd7zol1a] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--fn-text-secondary);
    font-size: 13px;
}

.fnv-overlay-msg[b-4wcd7zol1a] {
    color: var(--fn-danger);
    padding: 0 24px;
    text-align: center;
}

.fnv-splitter[b-4wcd7zol1a] {
    background: var(--fn-border);
    cursor: col-resize;
}

.fnv-splitter:hover[b-4wcd7zol1a] {
    background: var(--fn-primary);
}

/* Footer — Spalten decken sich mit dem Body (PDF · Splitter · OCR, gleiche Variable) */
.fnv-footer[b-4wcd7zol1a] {
    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-4wcd7zol1a] {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 9px 16px;
    min-width: 0;
}

.fnv-foot-ocr[b-4wcd7zol1a] {
    padding: 9px 16px;
}

.fnv-foot-spacer[b-4wcd7zol1a] {
    flex: 1;
}

.fnv-pgnav[b-4wcd7zol1a] {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--fn-text-secondary);
    font-size: 12px;
    font-family: var(--fn-font-mono);
}

.fnv-nav[b-4wcd7zol1a] {
    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-4wcd7zol1a] {
    color: var(--fn-primary);
}

.fnv-nav:disabled[b-4wcd7zol1a] {
    opacity: .4;
    cursor: default;
}

.fnv-nav svg[b-4wcd7zol1a] {
    width: 14px;
    height: 14px;
}

/* Zoom-Slider */
.fnv-zoom[b-4wcd7zol1a] {
    display: flex;
    align-items: center;
    gap: 11px;
    color: var(--fn-text-secondary);
    font-size: 12px;
    font-family: var(--fn-font-mono);
}

.fnv-zbtn[b-4wcd7zol1a] {
    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-4wcd7zol1a] {
    color: var(--fn-primary);
}

.fnv-zbtn svg[b-4wcd7zol1a] {
    width: 14px;
    height: 14px;
}

.fnv-zslider[b-4wcd7zol1a] {
    -webkit-appearance: none;
    appearance: none;
    width: 132px;
    height: 5px;
    border-radius: 999px;
    background: var(--fn-border-strong);
    cursor: pointer;
    outline: none;
}

.fnv-zslider[b-4wcd7zol1a]::-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-4wcd7zol1a]::-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-4wcd7zol1a] {
    min-width: 40px;
    text-align: right;
}

.fnv-fit[b-4wcd7zol1a] {
    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-4wcd7zol1a] {
    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-4wcd7zol1a] {
    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-4wcd7zol1a] {
    opacity: .45;
    cursor: default;
}

.fnv-sw[b-4wcd7zol1a] {
    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-4wcd7zol1a]::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-4wcd7zol1a] {
    background: var(--fn-bg-alt);
    border-color: var(--fn-border-strong);
}

.fnv-sw.off[b-4wcd7zol1a]::after {
    left: 2px;
    background: var(--fn-text-tertiary);
}

.fnv-ocr-state[b-4wcd7zol1a] {
    font-weight: 600;
    color: var(--fn-primary);
}

/* OCR AUS: Text-Seitenleiste + Splitter weg, Dokument volle Breite */
.fnv-no-ocr .fnv-body[b-4wcd7zol1a] {
    grid-template-columns: 1fr;
}

.fnv-no-ocr .fnv-splitter[b-4wcd7zol1a],
.fnv-no-ocr[b-4wcd7zol1a]  .fnv-ocr {
    display: none;
}

.fnv-no-ocr .fnv-footer[b-4wcd7zol1a] {
    grid-template-columns: 1fr;
}

.fnv-no-ocr .fnv-foot-mid[b-4wcd7zol1a],
.fnv-no-ocr .fnv-foot-ocr[b-4wcd7zol1a] {
    display: none;
}

.fnv-no-ocr .fnv-ocr-state[b-4wcd7zol1a] {
    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-8djet7tjaw] {
    background: var(--fn-bg-alt);
    padding: 15px 16px;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.fnv-ocr-head[b-8djet7tjaw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 11px;
}

.fnv-ocr-title[b-8djet7tjaw] {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13px;
    font-weight: 600;
    color: var(--fn-text);
}

.fnv-dot[b-8djet7tjaw] {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    flex: 0 0 auto;
    cursor: help;
}

.fnv-dot.local[b-8djet7tjaw] {
    background: var(--fn-success);
    box-shadow: 0 0 0 3px var(--fn-success-soft);
}

.fnv-dot.ext[b-8djet7tjaw] {
    background: var(--fn-warning);
    box-shadow: 0 0 0 3px var(--fn-warning-soft);
}

.fnv-ocr-acts[b-8djet7tjaw] {
    display: flex;
    align-items: center;
    gap: 4px;
}

.fnv-ic[b-8djet7tjaw] {
    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-8djet7tjaw] {
    color: var(--fn-primary);
    background: var(--fn-accent-soft);
    border-color: var(--fn-accent-line);
}

.fnv-ic:disabled[b-8djet7tjaw] {
    opacity: .45;
    cursor: default;
}

.fnv-ic svg[b-8djet7tjaw] {
    width: 15px;
    height: 15px;
}

.fnv-ocr-text[b-8djet7tjaw] {
    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-8djet7tjaw] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px 12px 6px;
    border-bottom: 1px solid var(--fn-border);
}

.fnv-scan-loading small[b-8djet7tjaw] {
    color: var(--fn-text-secondary);
    font-size: 11.5px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.fnv-scan-progress[b-8djet7tjaw] {
    height: 3px;
    background: var(--fn-bg-muted);
    border-radius: 2px;
    overflow: hidden;
}

.fnv-scan-progress .det[b-8djet7tjaw] {
    display: block;
    height: 100%;
    background: var(--fn-primary);
    transition: width .3s ease;
}

.fnv-scan-progress .slide[b-8djet7tjaw] {
    display: block;
    height: 100%;
    width: 40%;
    background: var(--fn-primary);
    animation: fnv-scan-slide-b-8djet7tjaw 1.1s ease-in-out infinite;
}

@keyframes fnv-scan-slide-b-8djet7tjaw {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(250%); }
}

.fnv-scan-cancel[b-8djet7tjaw] {
    margin-left: auto;
}
/* /Components/Shared/FnEmptyState.razor.rz.scp.css */
/* Leerzustand — tokens-only (FINLIST003). */
.fn-empty-state[b-4wufwmhw5m] {
    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-4wufwmhw5m] {
    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-4wufwmhw5m]  svg {
    width: 20px;
    height: 20px;
}

.fn-empty-title[b-4wufwmhw5m] {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--fn-text);
}

.fn-empty-hint[b-4wufwmhw5m] {
    font-size: 12px;
    color: var(--fn-text-tertiary);
    max-width: 46ch;
}

.fn-empty-action[b-4wufwmhw5m] {
    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-cy5wtny6vb] {
    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-cy5wtny6vb] {
    border-left: 3px solid var(--fn-cat-purple);
}

.fn-entity-media[b-cy5wtny6vb] {
    flex: none;
    width: 52px;
}

.fn-entity-body[b-cy5wtny6vb] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.fn-entity-actions[b-cy5wtny6vb] {
    display: flex;
    gap: 4px;
    flex: none;
    align-self: flex-start;
    opacity: 0;
    transition: opacity .15s;
}

.fn-entity-card:hover .fn-entity-actions[b-cy5wtny6vb] {
    opacity: 1;
}

/* Hover-Aktions-Buttons: Module bringen nur Icon + title mit (FlowDesk-Muster, Löschen zuletzt). */
.fn-entity-actions[b-cy5wtny6vb]  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-cy5wtny6vb]  button:hover {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
    border-color: var(--fn-border-strong);
}

.fn-entity-actions[b-cy5wtny6vb]  button.fn-danger:hover {
    color: var(--fn-danger);
    border-color: var(--fn-danger);
    background: var(--fn-danger-soft);
}

.fn-entity-actions[b-cy5wtny6vb]  svg {
    width: 15px;
    height: 15px;
}
/* /Components/Shared/FnErrorDialog.razor.rz.scp.css */
.fn-error-backdrop[b-a2hft5pq05] {
    position: fixed;
    inset: 0;
    z-index: 4000;
    display: grid;
    place-items: center;
    padding: 20px;
    background: var(--fn-shadow-hover);
}

.fn-error-dialog[b-a2hft5pq05] {
    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-a2hft5pq05] {
    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-a2hft5pq05] {
    margin: 0;
    color: var(--fn-text);
    font-size: 14px;
    font-weight: 700;
}

.fn-error-head p[b-a2hft5pq05] {
    margin: 3px 0 0;
    color: var(--fn-text-secondary);
    font-size: 12px;
    line-height: 1.4;
}

.fn-error-icon[b-a2hft5pq05] {
    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-a2hft5pq05] {
    width: 16px;
    height: 16px;
}

.fn-error-body[b-a2hft5pq05] {
    display: grid;
    gap: 13px;
    padding: 15px;
}

.fn-error-body p[b-a2hft5pq05] {
    margin: 0;
    color: var(--fn-text);
    font-size: 13px;
    line-height: 1.5;
}

.fn-error-detail[b-a2hft5pq05] {
    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-a2hft5pq05] {
    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-a2hft5pq05] {
    color: var(--fn-text-secondary);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.fn-error-token code[b-a2hft5pq05] {
    color: var(--fn-warning);
    font-family: var(--fn-font-mono);
    font-size: 12px;
}

.fn-error-foot[b-a2hft5pq05] {
    display: flex;
    justify-content: flex-end;
    padding: 12px 15px;
    border-top: 1px solid var(--fn-border);
    background: var(--fn-bg-alt);
}

.fn-error-primary[b-a2hft5pq05] {
    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-3yx6ns75fc] {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 0;
}

.fn-file-upload-trigger[b-3yx6ns75fc] {
    position: relative;
    display: inline-flex;
    width: max-content;
    max-width: 100%;
    cursor: pointer;
}

.fn-file-upload-trigger.disabled[b-3yx6ns75fc] {
    cursor: not-allowed;
    opacity: .55;
}

.fn-file-upload-trigger[b-3yx6ns75fc]  input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: inherit;
}

.fn-file-upload-button[b-3yx6ns75fc] {
    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-3yx6ns75fc] {
    background: var(--fn-hover);
}

.fn-file-upload-button svg[b-3yx6ns75fc],
.fn-file-upload-chip svg[b-3yx6ns75fc] {
    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-3yx6ns75fc] {
    color: var(--fn-primary);
}

.fn-file-upload-hint[b-3yx6ns75fc] {
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
}

.fn-file-upload-chips[b-3yx6ns75fc] {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.fn-file-upload-chip[b-3yx6ns75fc] {
    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-3yx6ns75fc] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fn-file-upload-size[b-3yx6ns75fc] {
    color: var(--fn-text-tertiary);
    font-family: var(--fn-font-mono);
    font-size: 11px;
}

.fn-file-upload-remove[b-3yx6ns75fc] {
    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-3yx6ns75fc] {
    background: var(--fn-hover);
    color: var(--fn-danger);
}

.fn-file-upload-remove svg[b-3yx6ns75fc] {
    width: 14px;
    height: 14px;
}
/* /Components/Shared/FnFilterChips.razor.rz.scp.css */
.fn-chips[b-s0riqeyy1y] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.fn-chip[b-s0riqeyy1y] {
    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-s0riqeyy1y] {
    color: var(--fn-text);
    border-color: var(--fn-primary);
}

.fn-chip-on[b-s0riqeyy1y] {
    background: var(--fn-accent-soft);
    border-color: var(--fn-primary);
    color: var(--fn-primary);
}

.fn-chip-count[b-s0riqeyy1y] {
    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-s0riqeyy1y] {
    color: var(--fn-primary);
}

.fn-chip:disabled[b-s0riqeyy1y] {
    opacity: .5;
    cursor: not-allowed;
}

.fn-chip:focus-visible[b-s0riqeyy1y] {
    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-5gn7rrb88q] {
    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-5gn7rrb88q] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1 1 auto;
    min-width: 0;
    flex-wrap: wrap;
}

.fn-form-foot-status[b-5gn7rrb88q] {
    font-size: 12.5px;
    color: var(--fn-text-secondary);
    min-width: 0;
}

.fn-form-foot-actions[b-5gn7rrb88q] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    margin-left: auto;
}

/* Icon in den Footer-Buttons (save / rotate-ccw) — konsistente Größe, wie im Referenz-Footer. */
.fn-form-foot-actions[b-5gn7rrb88q]  .lucide {
    width: 15px;
    height: 15px;
}
/* /Components/Shared/FnIcon.razor.rz.scp.css */
i.fn-icon[b-btx4mkbtf6] {
    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-je62vodsr3] { display: contents; }

.lted-backdrop[b-je62vodsr3] {
    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-je62vodsr3] {
    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-je62vodsr3] {
    display: flex; align-items: center; gap: 10px;
    padding: 13px 18px; border-bottom: 1px solid var(--fn-border); flex: none;
}

.lted-head h3[b-je62vodsr3] { margin: 0; font-size: 15px; display: flex; align-items: center; gap: 9px; color: var(--fn-text); }
.lted-head[b-je62vodsr3]  svg { width: 15px; height: 15px; color: var(--fn-primary); }
.lted-ctx[b-je62vodsr3] { color: var(--fn-text-secondary); font-weight: 500; }

/* Fenster-Steuerung (FnHeaderActionButton, Design-Standard wie FnFloatingWindow) */
.lted-controls[b-je62vodsr3] { 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-je62vodsr3] { width: 96vw; height: 92vh; max-width: 96vw; max-height: 92vh; resize: none; }

.lted-body[b-je62vodsr3] {
    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-je62vodsr3] { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.lted-col[b-je62vodsr3] {
    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-je62vodsr3] {
    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-je62vodsr3] { width: 8px; height: 8px; border-radius: 50%; }
.lted-flag .dot.de[b-je62vodsr3] { background: var(--fn-primary); }
.lted-flag .dot.en[b-je62vodsr3] { background: var(--fn-success); }

.lted-col label[b-je62vodsr3] { font-size: 11.5px; color: var(--fn-text-tertiary); margin: 9px 0 4px; }

.lted-inp[b-je62vodsr3], .lted-area[b-je62vodsr3] {
    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-je62vodsr3], .lted-area:focus[b-je62vodsr3] { border-color: var(--fn-primary); }

.lted-area[b-je62vodsr3] {
    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-je62vodsr3]::-webkit-scrollbar, .lted-body[b-je62vodsr3]::-webkit-scrollbar { width: 10px; height: 10px; }
.lted-area[b-je62vodsr3]::-webkit-scrollbar-track, .lted-body[b-je62vodsr3]::-webkit-scrollbar-track { background: var(--fn-bg-muted); border-radius: 6px; }
.lted-area[b-je62vodsr3]::-webkit-scrollbar-thumb, .lted-body[b-je62vodsr3]::-webkit-scrollbar-thumb {
    background: var(--fn-border-strong); border-radius: 6px; border: 2px solid var(--fn-bg-muted);
}
.lted-area[b-je62vodsr3]::-webkit-scrollbar-thumb:hover, .lted-body[b-je62vodsr3]::-webkit-scrollbar-thumb:hover { background: var(--fn-primary); }

.lted-std[b-je62vodsr3] { margin-top: 10px; font-size: 11.5px; color: var(--fn-text-tertiary); }
.lted-std b[b-je62vodsr3] { color: var(--fn-text-secondary); font-weight: 600; }

.lted-note[b-je62vodsr3] { 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-je62vodsr3]  .fn-form-foot { flex: none; padding: 12px 18px 14px; margin-top: 0; }

@media (max-width: 760px) { .lted-grid[b-je62vodsr3] { 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-2vh12cxmcv] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.fn-toolbar-search[b-2vh12cxmcv] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 220px;
    padding: 6px 11px;
    border-radius: 8px;
    border: 1px solid var(--fn-border);
    background: var(--fn-input-bg);
    margin-left: auto;
}

.fn-toolbar-search:focus-within[b-2vh12cxmcv] {
    border-color: var(--fn-primary);
}

.fn-toolbar-search[b-2vh12cxmcv]  svg {
    width: 14px;
    height: 14px;
    color: var(--fn-text-tertiary);
    flex: none;
}

.fn-toolbar-search input[b-2vh12cxmcv] {
    flex: 1;
    min-width: 0;
    border: none;
    background: transparent;
    outline: none;
    color: var(--fn-text);
    font: inherit;
    font-size: 12.5px;
}

.fn-toolbar-refresh[b-2vh12cxmcv] {
    width: 30px;
    height: 30px;
    flex: none;
    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-toolbar-refresh:hover:not(:disabled)[b-2vh12cxmcv] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
    border-color: var(--fn-border-strong);
}

.fn-toolbar-refresh:disabled[b-2vh12cxmcv] {
    opacity: .45;
    cursor: not-allowed;
}

.fn-toolbar-refresh[b-2vh12cxmcv]  svg {
    width: 15px;
    height: 15px;
}

.fn-toolbar-refresh.fn-spinning[b-2vh12cxmcv]  svg {
    animation: fn-toolbar-spin-b-2vh12cxmcv 1s linear infinite;
}

@keyframes fn-toolbar-spin-b-2vh12cxmcv {
    to { transform: rotate(360deg); }
}

/* Das ➕-Emoji (U+2795) rendert farbig — bewusst KEIN einfaches "+"-Textzeichen (Nutzer-Vorgabe). */
.fn-toolbar-plus[b-2vh12cxmcv] {
    font-size: 13px;
    line-height: 1;
}
/* /Components/Shared/FnLoadingIndicator.razor.rz.scp.css */
.fn-loading[b-6bxtlfli6w] {
    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-6bxtlfli6w] {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    display: grid;
    place-items: center;
    color: var(--fn-primary);
}

.fn-loading-hourglass[b-6bxtlfli6w] {
    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-6bxtlfli6w 2.1s ease-in-out infinite;
}

.fn-loading-copy strong[b-6bxtlfli6w],
.fn-loading-copy span[b-6bxtlfli6w] {
    display: block;
}

.fn-loading-copy strong[b-6bxtlfli6w] {
    color: var(--fn-text);
    font-size: 13px;
    font-weight: var(--fn-font-weight-medium);
}

.fn-loading-copy span[b-6bxtlfli6w] {
    margin-top: 1px;
    color: var(--fn-text-tertiary);
    font-size: 11.5px;
}

.fn-loading-compact[b-6bxtlfli6w] {
    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-6bxtlfli6w] {
    width: 16px;
    height: 16px;
    flex-basis: 16px;
}

.fn-loading-compact .fn-loading-hourglass[b-6bxtlfli6w] {
    width: 14px;
    height: 14px;
}

.fn-loading-compact .fn-loading-copy strong[b-6bxtlfli6w] {
    color: var(--fn-text-tertiary);
    font-size: 12px;
    font-weight: var(--fn-font-weight-regular);
}

.fn-loading-icon-only[b-6bxtlfli6w] {
    width: 16px;
    height: 16px;
    padding: 0;
}

@keyframes fn-hourglass-turn-b-6bxtlfli6w {
    0%, 20% { transform: rotate(0deg); }
    60%, 100% { transform: rotate(180deg); }
}

@keyframes fn-hourglass-breathe-b-6bxtlfli6w {
    0%, 100% { opacity: .55; }
    50% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .fn-loading-hourglass[b-6bxtlfli6w] {
        animation: fn-hourglass-breathe-b-6bxtlfli6w 1.8s ease-in-out infinite;
    }
}
/* /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-3qfz39g7z3] {
    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-3qfz39g7z3] {
    background: var(--fn-bg-muted);
}

/* --- Zeilennummern ------------------------------------------------------- */

.fn-prism-gutter[b-3qfz39g7z3] {
    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-3qfz39g7z3] {
    min-width: 18px;
}

/* --- Textflaeche und Einfaerbung liegen deckungsgleich uebereinander ------ */

.fn-prism-area[b-3qfz39g7z3] {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

.fn-prism-view[b-3qfz39g7z3],
.fn-prism-input[b-3qfz39g7z3] {
    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-3qfz39g7z3] {
    position: absolute;
    inset: 0;
    overflow: auto;
    pointer-events: none;
    color: var(--fn-text);
}

.fn-prism-input[b-3qfz39g7z3] {
    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-3qfz39g7z3]::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-3qfz39g7z3]  .pr-kw  { color: var(--fn-primary); font-weight: var(--fn-font-weight-medium); }
.fn-prism-view[b-3qfz39g7z3]  .pr-sig { color: var(--fn-success); font-weight: var(--fn-font-weight-medium); }
.fn-prism-view[b-3qfz39g7z3]  .pr-cmt { color: var(--fn-text-tertiary); font-style: italic; }
.fn-prism-view[b-3qfz39g7z3]  .pr-fn  { color: var(--fn-cat-purple); }
.fn-prism-view[b-3qfz39g7z3]  .pr-sr  { color: var(--fn-cat-teal); }
.fn-prism-view[b-3qfz39g7z3]  .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-3qfz39g7z3]  .pr-par { color: var(--fn-text-secondary); font-weight: var(--fn-font-weight-medium); }
.fn-prism-view[b-3qfz39g7z3]  .pr-txt { color: var(--fn-cat-orange); }
.fn-prism-view[b-3qfz39g7z3]  .pr-op  { color: var(--fn-text-secondary); }
.fn-prism-view[b-3qfz39g7z3]  .pr-pct { color: var(--fn-text-tertiary); }
.fn-prism-view[b-3qfz39g7z3]  .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-3qfz39g7z3] {
    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-3qfz39g7z3] {
    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-3qfz39g7z3] {
    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-3qfz39g7z3] {
    background: var(--fn-hover);
}

.fn-prism-ac .ac-item.sel[b-3qfz39g7z3] {
    background: var(--fn-accent-soft);
}

.fn-prism-ac .ac-kind[b-3qfz39g7z3] {
    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-3qfz39g7z3]  { background: var(--fn-accent-soft);      color: var(--fn-primary); }
.fn-prism-ac .ac-fn[b-3qfz39g7z3]  { background: var(--fn-cat-purple-soft);  color: var(--fn-cat-purple); }
.fn-prism-ac .ac-sr[b-3qfz39g7z3]  { background: var(--fn-cat-teal-soft);    color: var(--fn-cat-teal); }
.fn-prism-ac .ac-snd[b-3qfz39g7z3] { background: var(--fn-warning-soft);     color: var(--fn-warning); }

/* --- Hilfe zum gewaehlten Eintrag ---------------------------------------- */

.fn-prism-ac .ac-help[b-3qfz39g7z3] {
    flex: 1 1 auto;
    padding: 10px 12px;
    min-width: 0;
}

.fn-prism-ac .ac-sig[b-3qfz39g7z3] {
    font-family: var(--fn-font-mono);
    font-size: 12px;
    color: var(--fn-primary);
    margin-bottom: 6px;
}

.fn-prism-ac .ac-desc[b-3qfz39g7z3] {
    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-3qfz39g7z3] {
    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-3qfz39g7z3] {
    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-3qfz39g7z3] {
    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-3qfz39g7z3]   { color: var(--fn-success); }
.fn-prism-status .bad[b-3qfz39g7z3]  { 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-3qfz39g7z3] {
    color: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-variant-numeric: tabular-nums;
}

.fn-prism-status .hint[b-3qfz39g7z3] { color: var(--fn-text-tertiary); margin-left: auto; }

/* --- Kompakt: NUR Masse, keine Faehigkeit --------------------------------- */

.fn-prism.compact[b-3qfz39g7z3] {
    font-size: 11.5px;
}

.fn-prism.compact .fn-prism-view[b-3qfz39g7z3],
.fn-prism.compact .fn-prism-input[b-3qfz39g7z3] {
    padding: 7px 9px;
}

.fn-prism.compact .fn-prism-gutter[b-3qfz39g7z3] {
    padding: 7px 6px 7px 8px;
}

.fn-prism.compact .fn-prism-input[b-3qfz39g7z3] {
    min-height: 76px;
}
/* /Components/Shared/FnReportHost.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-ghji7imgoq] {
    gap: 4px;
}

.em-recipients[b-ghji7imgoq] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.em-row[b-ghji7imgoq] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.em-row > label[b-ghji7imgoq] {
    flex: 0 0 38px;
    margin-top: 0;
}

.em-row > input[b-ghji7imgoq] {
    flex: 1 1 auto;
}

.em-row-toggles[b-ghji7imgoq] {
    display: flex;
    gap: 4px;
}

.em-toggle[b-ghji7imgoq] {
    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-ghji7imgoq] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
}

.em-toggle-on[b-ghji7imgoq] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
    border-color: var(--fn-border-strong);
}

.em-row-x[b-ghji7imgoq] {
    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-ghji7imgoq] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
}

.em-row-x[b-ghji7imgoq]  .lucide,
.em-row-x svg[b-ghji7imgoq] {
    width: 14px;
    height: 14px;
}

.em-hint[b-ghji7imgoq] {
    margin: 0 0 2px 46px;
    font-size: 11.5px;
}

.em-msg-head[b-ghji7imgoq] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.em-msg-tools[b-ghji7imgoq] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 6px;
}

.em-sig-select[b-ghji7imgoq] {
    max-width: 200px;
}

.em-kebab[b-ghji7imgoq] {
    padding: 6px 8px;
}

.em-kebab[b-ghji7imgoq]  .lucide,
.em-kebab svg[b-ghji7imgoq] {
    width: 15px;
    height: 15px;
}

.em-menu[b-ghji7imgoq] {
    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-ghji7imgoq] {
    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-ghji7imgoq] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
}

.em-menu-item svg[b-ghji7imgoq] {
    width: 14px;
    height: 14px;
}

/* Sende-Verzögerung / Undo-Fenster (FlowDesk-Muster) */
.em-countdown[b-ghji7imgoq] {
    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-ghji7imgoq] {
    font-weight: 600;
}
/* /Components/Shared/FnRowAction.razor.rz.scp.css */
.fn-row-action-delete:hover:not(:disabled)[b-qowgs8knhh] {
    color: var(--fn-danger);
    border-color: var(--fn-danger);
}
/* /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-b8gica6tsz] {
    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 — nie seinen Zustand. */
.fn-studio-tile.accent-primary[b-b8gica6tsz] { border-left-color: var(--fn-primary); }
.fn-studio-tile.accent-teal[b-b8gica6tsz] { border-left-color: var(--fn-cat-teal); }
.fn-studio-tile.accent-purple[b-b8gica6tsz] { border-left-color: var(--fn-cat-purple); }
.fn-studio-tile.accent-gold[b-b8gica6tsz] { border-left-color: var(--fn-cat-gold); }

.fn-studio-tile:hover[b-b8gica6tsz] {
    border-color: var(--fn-border-strong);
}

/* Ausgegraut, nicht versteckt — dieselbe Regel wie im ChartPanel. */
.fn-studio-tile.inactive[b-b8gica6tsz] {
    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-b8gica6tsz] {
    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-e3i6o15qwh] {
    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-e3i6o15qwh] {
    opacity: 1;
}

.fn-toast-err[b-e3i6o15qwh] {
    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-ygzk8vpoyw] {
    position: fixed;
    bottom: 24px;
    right: 24px;
    display: flex;
    flex-direction: column-reverse;
    gap: 10px;
    z-index: 9999;
    pointer-events: none;
}

.fn-toast-card[b-ygzk8vpoyw] {
    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.on[b-ygzk8vpoyw] {
    opacity: 1;
    transform: translateX(0);
}

.fn-toast-card.success[b-ygzk8vpoyw] { border-left-color: var(--fn-success); }
.fn-toast-card.warning[b-ygzk8vpoyw] { border-left-color: var(--fn-warning); }
.fn-toast-card.error[b-ygzk8vpoyw] { border-left-color: var(--fn-danger); }

.fn-toast-card .title[b-ygzk8vpoyw] {
    font-weight: var(--fn-font-weight-bold);
    color: var(--fn-text);
    margin-bottom: 2px;
}

.fn-toast-card .msg[b-ygzk8vpoyw] {
    color: var(--fn-text-secondary);
    font-size: 12px;
}
/* /Components/Shared/FnUserAvatar.razor.rz.scp.css */
/* FnUserAvatar — 1:1 FlowDesk PersonAvatar (Bild klickbar → Lightbox in Originalgröße). Tokens-only. */

.fn-user-avatar[b-o2ekorssl5] {
    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-o2ekorssl5] {
    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-o2ekorssl5] {
    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-o2ekorssl5] {
    position: relative;
    cursor: default;
}

.fn-avatar-lightbox-box img[b-o2ekorssl5] {
    max-width: 90vw;
    max-height: 85vh;
    object-fit: contain;
    border-radius: var(--fn-radius-sm);
}

.fn-avatar-lightbox-close[b-o2ekorssl5] {
    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-o2ekorssl5] {
    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-wf3qu7ydxf] {
    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-wf3qu7ydxf] {
    color: var(--fn-text);
    line-height: 1;
}

.copy-mini[b-wf3qu7ydxf] {
    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-wf3qu7ydxf] {
    background: var(--fn-hover);
    color: var(--fn-primary);
}

.copy-mini.ok[b-wf3qu7ydxf] {
    color: var(--fn-success);
}

.copy-mini[b-wf3qu7ydxf]  svg,
.copy-mini[b-wf3qu7ydxf]  [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-wf3qu7ydxf] {
    gap: 5px;
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0;
    color: var(--fn-text-secondary);
}
.isin-copy.flat .copy-mini[b-wf3qu7ydxf] {
    width: auto;
    height: auto;
    border: none;
    border-radius: 0;
}
.isin-copy.flat .copy-mini[b-wf3qu7ydxf]  svg,
.isin-copy.flat .copy-mini[b-wf3qu7ydxf]  [data-lucide] {
    width: 13px;
    height: 13px;
}
/* /Components/Shared/SignatureManagerDialog.razor.rz.scp.css */
/* Signaturen-Manager (Niko 13.06.2026): Liste links, Editor rechts. Nur --fn-*-Tokens. */

.sig-layout[b-so4v8ukc1b] {
    display: flex;
    gap: 14px;
    height: 100%;
}

.sig-list[b-so4v8ukc1b] {
    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-so4v8ukc1b] {
    justify-content: flex-start;
    margin-bottom: 6px;
}

.sig-new svg[b-so4v8ukc1b] {
    width: 14px;
    height: 14px;
}

.sig-empty[b-so4v8ukc1b] {
    font-size: 12px;
    color: var(--fn-text-tertiary);
    margin: 4px 2px;
}

.sig-item[b-so4v8ukc1b] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 7px 8px;
    border-radius: 7px;
    cursor: pointer;
    transition: background .14s;
}

.sig-item:hover[b-so4v8ukc1b] {
    background: var(--fn-bg-muted);
}

.sig-item-active[b-so4v8ukc1b] {
    background: var(--fn-bg-muted);
}

.sig-item-name[b-so4v8ukc1b] {
    flex: 1 1 auto;
    font-size: 13px;
    color: var(--fn-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sig-badge[b-so4v8ukc1b] {
    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-so4v8ukc1b] {
    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-so4v8ukc1b] {
    background: var(--fn-bg-muted);
    color: var(--fn-danger);
}

.sig-del svg[b-so4v8ukc1b] {
    width: 14px;
    height: 14px;
}

.sig-editor[b-so4v8ukc1b] {
    flex: 1 1 auto;
    min-width: 0;
}

.sig-default-toggle[b-so4v8ukc1b] {
    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-so4v8ukc1b] {
    width: auto;
    flex: 0 0 auto;
}
/* /Components/Shared/StartupInitializationDialog.razor.rz.scp.css */
.startup-dialog-backdrop[b-4vq1g0ie7o] {
    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-4vq1g0ie7o] {
    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-4vq1g0ie7o] {
    display: grid;
    justify-items: center;
    gap: 8px;
    text-align: center;
}

.startup-dialog-text[b-4vq1g0ie7o] {
    display: grid;
    gap: 6px;
    justify-items: center;
    text-align: center;
    width: 100%;
}

.startup-dialog-text h3[b-4vq1g0ie7o] {
    margin: 0;
    color: var(--fn-text);
    font-size: 16px;
    font-weight: 700;
}

.startup-dialog-text p[b-4vq1g0ie7o] {
    margin: 0;
    color: var(--fn-text);
    font-size: 13px;
    line-height: 1.45;
}

.startup-dialog-rule[b-4vq1g0ie7o] {
    width: 100%;
    height: 1px;
    background: var(--fn-border);
}

.startup-phase-list[b-4vq1g0ie7o] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 8px;
    width: 100%;
}

.startup-phase[b-4vq1g0ie7o] {
    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-4vq1g0ie7o] {
    display: inline-grid;
    place-items: center;
    width: 20px;
    color: var(--fn-text-muted);
    font-weight: 700;
}

.startup-phase-body[b-4vq1g0ie7o] {
    display: grid;
    gap: 1px;
}

.startup-phase-label[b-4vq1g0ie7o] {
    font-weight: 600;
    overflow-wrap: anywhere;
}

.startup-phase-substep[b-4vq1g0ie7o] {
    color: var(--fn-text-secondary);
    font-size: 12px;
}

.startup-phase.is-pending .startup-phase-label[b-4vq1g0ie7o] {
    color: var(--fn-text-tertiary);
    font-weight: 400;
}

.startup-phase.is-active .startup-phase-label[b-4vq1g0ie7o] {
    color: var(--fn-primary);
}

.startup-phase.is-active .startup-phase-icon[b-4vq1g0ie7o] {
    color: var(--fn-primary);
    animation: startup-active-pulse-b-4vq1g0ie7o 1s ease-in-out infinite;
}

.startup-phase.is-completed[b-4vq1g0ie7o] {
    color: var(--fn-text);
}

.startup-phase.is-completed .startup-phase-icon[b-4vq1g0ie7o] {
    color: var(--fn-success);
}

.startup-phase.is-failed .startup-phase-label[b-4vq1g0ie7o],
.startup-phase.is-failed .startup-phase-icon[b-4vq1g0ie7o],
.startup-phase.is-failed .startup-phase-substep[b-4vq1g0ie7o] {
    color: var(--fn-danger);
}

.startup-details-toggle[b-4vq1g0ie7o] {
    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-4vq1g0ie7o] {
    color: var(--fn-primary);
    background: var(--fn-accent-soft);
}

.startup-details-chevron[b-4vq1g0ie7o] {
    display: inline-block;
    transition: transform .15s;
}

.startup-details-toggle.is-open .startup-details-chevron[b-4vq1g0ie7o] {
    transform: rotate(90deg);
}

.startup-step-list[b-4vq1g0ie7o] {
    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-4vq1g0ie7o]::-webkit-scrollbar {
    width: 8px;
}

.startup-step-list[b-4vq1g0ie7o]::-webkit-scrollbar-track {
    background: transparent;
}

.startup-step-list[b-4vq1g0ie7o]::-webkit-scrollbar-thumb {
    background: var(--fn-border-strong);
    border-radius: var(--fn-radius-pill);
}

.startup-step-list[b-4vq1g0ie7o]::-webkit-scrollbar-thumb:hover {
    background: var(--fn-accent-line);
}

.startup-step[b-4vq1g0ie7o] {
    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-4vq1g0ie7o] {
    display: inline-grid;
    place-items: center;
    width: 18px;
    color: var(--fn-text-muted);
    font-weight: 700;
}

.startup-step-label[b-4vq1g0ie7o] {
    overflow-wrap: anywhere;
}

.startup-step-elapsed[b-4vq1g0ie7o] {
    color: var(--fn-text-muted);
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.startup-step.is-completed[b-4vq1g0ie7o] {
    color: var(--fn-text);
}

.startup-step.is-completed .startup-step-icon[b-4vq1g0ie7o] {
    color: var(--fn-success);
}

.startup-step.is-active[b-4vq1g0ie7o] {
    color: var(--fn-primary);
    font-weight: 700;
}

.startup-step.is-active .startup-step-icon[b-4vq1g0ie7o] {
    animation: startup-active-pulse-b-4vq1g0ie7o 1s ease-in-out infinite;
}

.startup-step.is-failed[b-4vq1g0ie7o] {
    color: var(--fn-danger);
}

.startup-step.is-failed .startup-step-icon[b-4vq1g0ie7o] {
    color: var(--fn-danger);
}

.startup-step-error[b-4vq1g0ie7o] {
    grid-column: 2 / 4;
    color: var(--fn-danger);
    font-size: 11px;
    font-weight: 500;
}

.startup-debug[b-4vq1g0ie7o] {
    width: 100%;
    display: grid;
    gap: 8px;
    text-align: left;
}

.startup-debug h4[b-4vq1g0ie7o] {
    margin: 0;
    color: var(--fn-text);
    font-size: 12px;
    font-weight: 700;
}

.startup-debug h5[b-4vq1g0ie7o] {
    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-4vq1g0ie7o] {
    margin: 0;
    display: grid;
    gap: 6px;
}

.startup-debug dl div[b-4vq1g0ie7o] {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 8px;
}

.startup-debug dt[b-4vq1g0ie7o] {
    color: var(--fn-text-muted);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.startup-debug dd[b-4vq1g0ie7o] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 11.5px;
    overflow-wrap: anywhere;
}

.startup-debug-list[b-4vq1g0ie7o] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 4px;
}

.startup-debug-list li[b-4vq1g0ie7o] {
    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-4vq1g0ie7o] {
    color: var(--fn-danger);
}

.startup-debug-list span[b-4vq1g0ie7o] {
    overflow-wrap: anywhere;
}

.startup-debug-list strong[b-4vq1g0ie7o] {
    color: var(--fn-text-muted);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.startup-dialog-elapsed[b-4vq1g0ie7o] {
    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-4vq1g0ie7o {
    0%, 100% {
        opacity: .45;
    }

    50% {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .startup-step.is-active .startup-step-icon[b-4vq1g0ie7o] {
        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-e5w4aziwyg] {
    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-e5w4aziwyg]  .lucide { width: 15px; height: 15px; color: var(--fn-warning); flex: none; }
.tmb-text[b-e5w4aziwyg] { flex: 1; min-width: 0; }
.tmb-mail[b-e5w4aziwyg] { color: var(--fn-text-secondary); font-family: var(--fn-font-mono); font-size: 11.5px; }
/* /Components/SignalMonitor/SignalMonitorPage.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-xyywrtejce] { position: relative; display: flex; flex-direction: column; height: calc(100vh - 52px); min-height: 0; padding: 16px 20px; }
.sm-title[b-xyywrtejce] { display: flex; align-items: center; gap: 10px; }
.sm-title h1[b-xyywrtejce] { font-size: 20px; font-weight: 700; margin: 0; }
.sm-title[b-xyywrtejce]  .lucide { width: 22px; height: 22px; color: var(--fn-primary); }
.lead[b-xyywrtejce] { color: var(--fn-text-secondary); margin: 2px 0 12px; font-size: 13px; }

/* Toolbar */
.sm-toolbar[b-xyywrtejce] { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex: 0 0 auto; }
.sm-src[b-xyywrtejce] { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: var(--fn-success); font-weight: 600; }
.sm-src.closed[b-xyywrtejce] { color: var(--fn-warning); }
.sm-src[b-xyywrtejce]  .lucide { width: 15px; height: 15px; }
.sm-sp2[b-xyywrtejce] { font-size: 11.5px; color: var(--fn-text-tertiary); }
.sm-sp[b-xyywrtejce] { flex: 1; }
.sm-search[b-xyywrtejce] { width: 240px; }
.sm-refresh[b-xyywrtejce] { 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-xyywrtejce] { background: var(--fn-hover); color: var(--fn-text); }
.sm-refresh[b-xyywrtejce]  .lucide { width: 17px; height: 17px; }
.sm-empty[b-xyywrtejce] { padding: 40px; text-align: center; color: var(--fn-text-tertiary); }
.sm-empty[b-xyywrtejce]  .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-xyywrtejce] { flex: 1; min-height: 0; position: relative; }

/* Board */
.sm-board[b-xyywrtejce] { height: 100%; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; min-height: 0; padding-right: 58px; }
.sm-col[b-xyywrtejce] { 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-xyywrtejce] { 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-xyywrtejce] { width: 4px; height: 20px; border-radius: 3px; }
.sm-col-hdr[b-xyywrtejce]  .lucide { width: 15px; height: 15px; }
.sm-col-hdr .cnt[b-xyywrtejce] { 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-xyywrtejce] { color: var(--fn-success); } .sm-col.buy .bar[b-xyywrtejce] { background: var(--fn-success); }
.sm-col.hold .sm-col-hdr[b-xyywrtejce] { color: var(--fn-warning); } .sm-col.hold .bar[b-xyywrtejce] { background: var(--fn-warning); }
.sm-col.sell .sm-col-hdr[b-xyywrtejce] { color: var(--fn-danger); } .sm-col.sell .bar[b-xyywrtejce] { background: var(--fn-danger); }
.sm-cards[b-xyywrtejce] { flex: 1; min-height: 0; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 11px; }
.sm-cards[b-xyywrtejce]::-webkit-scrollbar { width: 9px; }
.sm-cards[b-xyywrtejce]::-webkit-scrollbar-track { background: var(--fn-input-bg); border-radius: 8px; }
.sm-cards[b-xyywrtejce]::-webkit-scrollbar-thumb { background: var(--fn-primary); border-radius: 8px; border: 2px solid var(--fn-bg-muted); }
.sm-col-empty[b-xyywrtejce] { color: var(--fn-text-tertiary); font-size: 12px; font-style: italic; padding: 8px 4px; }

/* Card */
.sm-card[b-xyywrtejce] { 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-xyywrtejce] { background: var(--fn-hover); border-color: var(--fn-border-strong); }
.sm-card.buy[b-xyywrtejce] { border-left: 3px solid var(--fn-success); }
.sm-card.hold[b-xyywrtejce] { border-left: 3px solid var(--fn-warning); }
.sm-card.sell[b-xyywrtejce] { border-left: 3px solid var(--fn-danger); }
.sm-card.nodata[b-xyywrtejce] { border-left: 3px solid var(--fn-border-strong); }
.sm-card.sm-sel[b-xyywrtejce] { border-color: var(--fn-primary); box-shadow: 0 0 0 1px var(--fn-primary), var(--fn-shadow-hover); }
.sm-card.crown[b-xyywrtejce] { box-shadow: 0 0 0 1px var(--fn-cat-gold), 0 0 16px var(--fn-cat-gold-soft); }
.sm-card.crown.sm-sel[b-xyywrtejce] { box-shadow: 0 0 0 1px var(--fn-primary), 0 0 16px var(--fn-cat-gold-soft); }
.sm-card.pinned[b-xyywrtejce] { border-top: 1px solid var(--fn-accent-line); }

.sm-c-top[b-xyywrtejce] { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }
.sm-pill[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 12px; height: 12px; }
.sm-pill.buy[b-xyywrtejce] { background: var(--fn-success-soft); color: var(--fn-success); }
.sm-pill.hold[b-xyywrtejce] { background: var(--fn-warning-soft); color: var(--fn-warning); }
.sm-pill.sell[b-xyywrtejce] { background: var(--fn-danger-soft); color: var(--fn-danger); }
.sm-pill.nodata[b-xyywrtejce] { background: var(--fn-input-bg); color: var(--fn-text-tertiary); }
.sm-c-rate[b-xyywrtejce] { margin-left: auto; display: inline-flex; align-items: center; }

/* rating (Krone/Sterne) */
.rate[b-xyywrtejce] { display: inline-flex; align-items: center; gap: 2px; }
.rate .st[b-xyywrtejce] { color: var(--fn-text-tertiary); display: inline-flex; }
.rate .st.on[b-xyywrtejce] { color: var(--fn-cat-gold); }
.rate.crown[b-xyywrtejce] { color: var(--fn-cat-gold); }
.rate.crown.big[b-xyywrtejce] { filter: drop-shadow(0 0 4px var(--fn-cat-gold-soft)); }
.rate.none[b-xyywrtejce] { color: var(--fn-text-tertiary); font-family: var(--fn-font-mono); font-size: 12px; }

.sm-c-id[b-xyywrtejce] { display: flex; align-items: baseline; gap: 6px; white-space: nowrap; overflow: hidden; }
.sm-c-id .pin-ind[b-xyywrtejce] { display: inline-flex; align-items: center; color: var(--fn-primary); flex: 0 0 auto; }
.sm-c-id .pin-ind[b-xyywrtejce]  .lucide { width: 12px; height: 12px; }
.sm-astat[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 13px; height: 13px; flex: 0 0 auto; }
.sm-astat .al[b-xyywrtejce] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sm-astat.confirmed[b-xyywrtejce] { color: var(--fn-success); border-color: var(--fn-success-soft); background: var(--fn-success-soft); }
.sm-astat.rejected[b-xyywrtejce] { color: var(--fn-danger); border-color: var(--fn-danger-soft); background: var(--fn-danger-soft); }
.sm-astat.running[b-xyywrtejce] { color: var(--fn-cat-purple); border-color: var(--fn-cat-purple); background: var(--fn-cat-purple-soft); }
.sm-astat.partial[b-xyywrtejce] { color: var(--fn-warning); border-color: var(--fn-warning-soft); background: var(--fn-warning-soft); }
.sm-astat.pending[b-xyywrtejce] { color: var(--fn-text-tertiary); }
.sm-astat .livedot[b-xyywrtejce] { width: 7px; height: 7px; border-radius: 50%; background: currentColor; margin-left: auto; flex: 0 0 auto; }

.sm-c-foot[b-xyywrtejce] { display: flex; align-items: center; gap: 12px; margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--fn-border); }
.sm-hv[b-xyywrtejce] { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--fn-text-secondary); }
.sm-hv .k[b-xyywrtejce] { color: var(--fn-text-tertiary); font-weight: 600; }
.sm-hv .v[b-xyywrtejce] { font-family: var(--fn-font-mono); font-weight: 600; }
.pos[b-xyywrtejce] { color: var(--fn-success); } .neg[b-xyywrtejce] { color: var(--fn-danger); } .mut[b-xyywrtejce] { color: var(--fn-text-secondary); }
.sm-c-right[b-xyywrtejce] { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.sm-cact[b-xyywrtejce] { 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-xyywrtejce] { background: var(--fn-hover); color: var(--fn-primary); border-color: var(--fn-accent-line); }
.sm-cact.on[b-xyywrtejce] { background: var(--fn-accent-soft); border-color: var(--fn-accent-line); color: var(--fn-primary); }
.sm-cact[b-xyywrtejce]  .lucide { width: 13px; height: 13px; }

/* Sidebar */
.sm-side[b-xyywrtejce] { 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-xyywrtejce] { width: 384px; box-shadow: -14px 0 34px var(--fn-shadow-hover); }
.sm-collapse[b-xyywrtejce] { position: absolute; top: 16px; left: -13px; width: 26px; height: 26px; border-radius: 50%; background: var(--fn-input-bg); border: 1px solid var(--fn-border-strong); color: var(--fn-text-secondary); display: grid; place-items: center; cursor: pointer; z-index: 8; }
.sm-collapse:hover[b-xyywrtejce] { color: var(--fn-text); background: var(--fn-hover); }
.sm-collapse[b-xyywrtejce]  .lucide { width: 15px; height: 15px; }
/* Stecknadel oben in der Sidebar (Niko 13.07.2026): anpinnen -> Push-Layout + fester Zustand. */
.sm-pin[b-xyywrtejce] { position: absolute; top: 12px; right: 12px; 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; z-index: 9; }
.sm-pin:hover[b-xyywrtejce] { color: var(--fn-text); background: var(--fn-hover); }
.sm-pin.on[b-xyywrtejce] { background: var(--fn-accent-soft); border-color: var(--fn-accent-line); color: var(--fn-primary); }
.sm-pin[b-xyywrtejce]  .lucide { width: 14px; height: 14px; }

/* 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-xyywrtejce] { display: flex; gap: 14px; }
.sm-stage.pinned .sm-board[b-xyywrtejce] { padding-right: 0; flex: 1; min-width: 0; }
.sm-stage.pinned .sm-side[b-xyywrtejce] { position: static; box-shadow: none; flex: 0 0 auto; }
.sm-stage.pinned.collapsed .sm-side[b-xyywrtejce] { width: 46px; }
.sm-stage.pinned:not(.collapsed) .sm-side[b-xyywrtejce] { width: 384px; box-shadow: none; }
.sm-side-full[b-xyywrtejce] { display: flex; flex-direction: column; min-height: 0; flex: 1; }
.sm-stage.collapsed .sm-side-full[b-xyywrtejce] { display: none; }
.sm-side-rail[b-xyywrtejce] { display: none; flex-direction: column; align-items: center; gap: 16px; padding-top: 56px; color: var(--fn-text-tertiary); }
.sm-stage.collapsed .sm-side-rail[b-xyywrtejce] { display: flex; }
.sm-side-rail[b-xyywrtejce]  .lucide { width: 18px; height: 18px; }
.sm-side-rail .vlabel[b-xyywrtejce] { 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-xyywrtejce] { margin-top: 4px; font-family: var(--fn-font-mono); font-weight: 700; }
.sm-side-empty[b-xyywrtejce] { padding: 30px 18px; color: var(--fn-text-tertiary); font-size: 12.5px; text-align: center; }

.sm-sh[b-xyywrtejce] { flex: 0 0 auto; padding: 15px 18px 13px; border-bottom: 1px solid var(--fn-border); }
.sm-sh .pillbig[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 14px; height: 14px; }
.sm-sh .pillbig.buy[b-xyywrtejce] { background: var(--fn-success-soft); color: var(--fn-success); border: 1px solid var(--fn-success-soft); }
.sm-sh .pillbig.hold[b-xyywrtejce] { background: var(--fn-warning-soft); color: var(--fn-warning); border: 1px solid var(--fn-warning-soft); }
.sm-sh .pillbig.sell[b-xyywrtejce] { background: var(--fn-danger-soft); color: var(--fn-danger); border: 1px solid var(--fn-danger-soft); }
.sm-sh .pillbig.nodata[b-xyywrtejce] { background: var(--fn-input-bg); color: var(--fn-text-tertiary); border: 1px solid var(--fn-border-strong); }
.sm-sh .idl[b-xyywrtejce] { display: flex; align-items: baseline; gap: 9px; }
.sm-sh .idl .sym[b-xyywrtejce] { font-family: var(--fn-font-mono); font-size: 18px; font-weight: 700; color: var(--fn-primary); }
.sm-sh .idl .name[b-xyywrtejce] { font-size: 14px; color: var(--fn-text); }
.sm-sh .idsl[b-xyywrtejce] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-secondary); margin-top: 5px; }

/* Analyse-Grundlage banner */
.sm-abanner[b-xyywrtejce] { 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-xyywrtejce] { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 11px; }
.sm-abanner-h .lb[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 14px; height: 14px; color: var(--fn-cat-purple); }
.thesis[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 12px; height: 12px; }
.thesis.confirmed[b-xyywrtejce] { background: var(--fn-success-soft); color: var(--fn-success); border: 1px solid var(--fn-success-soft); }
.thesis.rejected[b-xyywrtejce] { background: var(--fn-danger-soft); color: var(--fn-danger); border: 1px solid var(--fn-danger-soft); }
.thesis.partial[b-xyywrtejce] { background: var(--fn-warning-soft); color: var(--fn-warning); border: 1px solid var(--fn-warning-soft); }
.thesis.none[b-xyywrtejce] { background: var(--fn-input-bg); color: var(--fn-text-tertiary); border: 1px solid var(--fn-border-strong); }
.arate[b-xyywrtejce] { 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-xyywrtejce] { background: var(--fn-cat-gold-soft); border-color: var(--fn-cat-gold); }
.arate .rbig[b-xyywrtejce] { display: inline-flex; align-items: center; gap: 3px; flex: 0 0 auto; }
.arate.crownrow .rbig[b-xyywrtejce] { color: var(--fn-cat-gold); }
.arate .rcol[b-xyywrtejce] { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.arate .rtx[b-xyywrtejce] { font-size: 11.5px; font-weight: 600; color: var(--fn-text); }
.arate .rwhy[b-xyywrtejce] { font-size: 10.5px; color: var(--fn-text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Reiter */
.sm-tabs[b-xyywrtejce] { flex: 0 0 auto; display: flex; gap: 2px; padding: 0 12px; border-bottom: 1px solid var(--fn-border); }
.sm-tab[b-xyywrtejce] { 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-xyywrtejce] { color: var(--fn-text); }
.sm-tab.active[b-xyywrtejce] { color: var(--fn-primary); border-bottom-color: var(--fn-primary); }
.sm-tab[b-xyywrtejce]  .lucide { width: 14px; height: 14px; }
.sm-sb[b-xyywrtejce] { flex: 1; min-height: 0; overflow-y: auto; padding: 15px 18px; }
.sm-sb[b-xyywrtejce]::-webkit-scrollbar { width: 9px; }
.sm-sb[b-xyywrtejce]::-webkit-scrollbar-track { background: var(--fn-input-bg); border-radius: 8px; }
.sm-sb[b-xyywrtejce]::-webkit-scrollbar-thumb { background: var(--fn-primary); border-radius: 8px; border: 2px solid var(--fn-bg-muted); }
.sm-pane[b-xyywrtejce] { display: flex; flex-direction: column; gap: 14px; }
.sect[b-xyywrtejce] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 12px; padding: 14px; }
.sect.agentpanel[b-xyywrtejce] { border-color: var(--fn-cat-purple); }
.sect-t[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 14px; height: 14px; color: var(--fn-primary); }
.sect-t.agent[b-xyywrtejce] { color: var(--fn-cat-purple); } .sect-t.agent[b-xyywrtejce]  .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-xyywrtejce] { width: 100%; background: none; border: none; padding: 0; cursor: pointer; font-family: inherit; color: var(--fn-text-secondary); }
.sect-toggle:hover[b-xyywrtejce] { color: var(--fn-text); }
.sect-toggle[b-xyywrtejce]  .sect-caret { margin-left: auto; }
.agsub[b-xyywrtejce] { font-size: 11px; color: var(--fn-text-tertiary); margin: -2px 0 13px; line-height: 1.45; }

.prices[b-xyywrtejce] { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 16px; }
.prices .c[b-xyywrtejce] { display: flex; flex-direction: column; gap: 2px; }
.prices .c .k[b-xyywrtejce] { font-size: 9.5px; letter-spacing: .5px; text-transform: uppercase; color: var(--fn-text-tertiary); }
.prices .c .v[b-xyywrtejce] { font-family: var(--fn-font-mono); font-size: 15px; font-weight: 600; }

.verdict[b-xyywrtejce] { display: flex; align-items: flex-start; gap: 11px; }
.verdict .vi[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 18px; height: 18px; }
.verdict .vt[b-xyywrtejce] { font-size: 13px; font-weight: 600; color: var(--fn-text); }
.verdict .vc[b-xyywrtejce] { font-size: 11.5px; color: var(--fn-text-secondary); margin-top: 3px; line-height: 1.5; }
.verdict .conf[b-xyywrtejce] { 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-xyywrtejce] { color: var(--fn-text-tertiary); font-size: 12px; font-style: italic; }

/* channels */
.chans[b-xyywrtejce] { display: flex; flex-wrap: wrap; gap: 7px; }
.chchip[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 12px; height: 12px; }
.chchip.on[b-xyywrtejce] { background: var(--fn-accent-soft); border-color: var(--fn-accent-line); color: var(--fn-primary); }

/* ladders (Freigabe-Leiter + Agent-Leiter) */
.lad-h[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 13px; height: 13px; color: var(--fn-primary); }
.lad-h.agent[b-xyywrtejce] { color: var(--fn-cat-purple); } .lad-h.agent[b-xyywrtejce]  .lucide { color: var(--fn-cat-purple); }
.ladder[b-xyywrtejce] { display: flex; align-items: center; gap: 4px; }
.step[b-xyywrtejce] { display: flex; flex-direction: column; align-items: center; gap: 6px; flex: 0 0 auto; width: 74px; }
.bubble[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 15px; height: 15px; }
.bubble.done[b-xyywrtejce] { background: var(--fn-success-soft); border-color: var(--fn-success); color: var(--fn-success); }
.bubble.open[b-xyywrtejce] { background: var(--fn-input-bg); border-color: var(--fn-border-strong); color: var(--fn-text-tertiary); }
.step .cap[b-xyywrtejce] { font-size: 10px; color: var(--fn-text-secondary); text-align: center; line-height: 1.25; }
.step .cap b[b-xyywrtejce] { display: block; color: var(--fn-text); font-size: 11px; }
.conn[b-xyywrtejce] { flex: 1; height: 2px; border-radius: 2px; margin-bottom: 26px; background: var(--fn-border-strong); }
.conn.done[b-xyywrtejce] { background: var(--fn-success); }
.aladder .bubble.done[b-xyywrtejce] { background: var(--fn-cat-purple-soft); border-color: var(--fn-cat-purple); color: var(--fn-cat-purple); }
.aladder .bubble.run[b-xyywrtejce] { 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-xyywrtejce] { background: var(--fn-cat-purple); }
.averdict[b-xyywrtejce] { margin-top: 12px; font-size: 11.5px; color: var(--fn-text-secondary); }
.averdict b[b-xyywrtejce] { color: var(--fn-cat-purple); }
.averdict .vd[b-xyywrtejce] { display: inline-flex; align-items: center; gap: 5px; font-weight: 700; }
.averdict .vd.buy[b-xyywrtejce] { color: var(--fn-success); } .averdict .vd.sell[b-xyywrtejce] { color: var(--fn-danger); } .averdict .vd.hold[b-xyywrtejce] { color: var(--fn-warning); }

/* probability */
.prob-head[b-xyywrtejce] { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 9px; }
.prob-head .big[b-xyywrtejce] { font-family: var(--fn-font-mono); font-size: 24px; font-weight: 600; color: var(--fn-success); }
.prob-head .big.sell[b-xyywrtejce] { color: var(--fn-danger); }
.prob-head .n[b-xyywrtejce] { font-family: var(--fn-font-mono); font-size: 11px; color: var(--fn-text-secondary); }
.prob-bar[b-xyywrtejce] { height: 9px; border-radius: 5px; background: var(--fn-input-bg); overflow: hidden; }
.prob-bar i[b-xyywrtejce] { display: block; height: 100%; border-radius: 5px; background: var(--fn-success); }
.prob-bar i.sell[b-xyywrtejce] { background: var(--fn-danger); }
.prob-none[b-xyywrtejce] { color: var(--fn-text-tertiary); font-size: 12px; font-style: italic; display: flex; align-items: center; gap: 7px; }
.prob-none[b-xyywrtejce]  .lucide { width: 14px; height: 14px; }

/* notify + export */
.toggles[b-xyywrtejce] { display: flex; flex-direction: column; gap: 9px; }
.tg[b-xyywrtejce] { display: flex; align-items: center; gap: 10px; }
.tg .ti[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 15px; height: 15px; }
.tg .tl[b-xyywrtejce] { font-size: 12.5px; color: var(--fn-text); }
.sw-toggle[b-xyywrtejce] { 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-xyywrtejce] { position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--fn-text-tertiary); }
.sw-toggle.on[b-xyywrtejce] { background: var(--fn-success-soft); border-color: var(--fn-success); }
.sw-toggle.on i[b-xyywrtejce] { left: 18px; background: var(--fn-success); }
.sm-exports[b-xyywrtejce] { display: flex; gap: 8px; margin-top: 2px; }
.sm-exp[b-xyywrtejce] { 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-xyywrtejce] { background: var(--fn-hover); color: var(--fn-text); }
.sm-exp[b-xyywrtejce]  .lucide { width: 14px; height: 14px; }
.sm-remove[b-xyywrtejce] { 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-xyywrtejce] { background: var(--fn-danger-soft); color: var(--fn-danger); }
.sm-remove[b-xyywrtejce]  .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-xyywrtejce] { 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-xyywrtejce] { display: grid; }
.sm-full-top[b-xyywrtejce] { 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-xyywrtejce] { 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-xyywrtejce] { color: var(--fn-text); background: var(--fn-hover); }
.f-back[b-xyywrtejce]  .lucide { width: 15px; height: 15px; }
.f-stbig[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 18px; height: 18px; }
.f-stbig.buy[b-xyywrtejce] { background: var(--fn-success-soft); color: var(--fn-success); border: 1px solid var(--fn-success-soft); }
.f-stbig.hold[b-xyywrtejce] { background: var(--fn-warning-soft); color: var(--fn-warning); border: 1px solid var(--fn-warning-soft); }
.f-stbig.sell[b-xyywrtejce] { background: var(--fn-danger-soft); color: var(--fn-danger); border: 1px solid var(--fn-danger-soft); }
.f-stbig.nodata[b-xyywrtejce] { background: var(--fn-input-bg); color: var(--fn-text-tertiary); border: 1px solid var(--fn-border-strong); }
.f-id .sym2[b-xyywrtejce] { font-family: var(--fn-font-mono); font-size: 19px; font-weight: 700; color: var(--fn-primary); }
.f-id .nm2[b-xyywrtejce] { font-size: 16px; color: var(--fn-text); margin-left: 9px; }
.f-id .ids2[b-xyywrtejce] { font-family: var(--fn-font-mono); font-size: 11.5px; color: var(--fn-text-secondary); margin-top: 4px; }
.f-thesis-wrap[b-xyywrtejce] { margin-left: auto; }
.sm-full-conv[b-xyywrtejce] { padding: 14px 24px 16px; border-bottom: 1px solid var(--fn-border); background: linear-gradient(180deg, var(--fn-cat-purple-soft), transparent); }
.fc-lbl[b-xyywrtejce] { font-size: 10px; letter-spacing: .6px; text-transform: uppercase; color: var(--fn-text-tertiary); margin-bottom: 11px; }
.rexplain[b-xyywrtejce] { display: flex; align-items: center; gap: 14px; }
.rexplain .rbig2[b-xyywrtejce] { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.rexplain.crownbig .rbig2[b-xyywrtejce] { color: var(--fn-cat-gold); filter: drop-shadow(0 0 6px var(--fn-cat-gold-soft)); }
.rexplain .rtitle[b-xyywrtejce] { font-size: 15px; font-weight: 700; color: var(--fn-text); }
.rexplain .rsub[b-xyywrtejce] { font-size: 12px; color: var(--fn-text-secondary); margin-top: 2px; line-height: 1.5; }
.fc-mode[b-xyywrtejce] { margin-top: 11px; font-size: 11px; color: var(--fn-text-tertiary); }
.fc-mode .fc-mode-v[b-xyywrtejce] { font-weight: 700; }
.fc-mode .fc-mode-v.good[b-xyywrtejce] { color: var(--fn-success); }
.fc-mode .fc-mode-v.warn[b-xyywrtejce] { color: var(--fn-warning); }
.fc-mode .fc-mode-v.mut[b-xyywrtejce] { color: var(--fn-text-secondary); }
.sm-full-body[b-xyywrtejce] { display: grid; grid-template-columns: 1.32fr 1fr; gap: 18px; padding: 18px 24px; min-height: 0; overflow: hidden; }
.f-left[b-xyywrtejce], .f-right[b-xyywrtejce] { display: flex; flex-direction: column; gap: 16px; min-height: 0; overflow-y: auto; }
.sm-full .panel[b-xyywrtejce] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 12px; padding: 16px; }
.sm-full .panel.agentpanel[b-xyywrtejce] { border-color: var(--fn-cat-purple); }
/* Kursverlauf-Kachel: klappt als GANZE Kachel (Niko 13.07.2026). Eingeklappt bleibt nur der Kopf. */
.f-chartpanel[b-xyywrtejce] { flex: 0 0 auto; }
.f-chartwrap[b-xyywrtejce] { 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-xyywrtejce]  .sm-microchart { height: 100%; display: block; }
.f-chartwrap[b-xyywrtejce]  .cw-chart-host { height: 150px !important; min-height: 0 !important; }
.f-chartwrap[b-xyywrtejce]  .cw-main { overflow: hidden; }
.f-facts[b-xyywrtejce] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 14px; }
.f-facts .c[b-xyywrtejce] { display: flex; flex-direction: column; gap: 2px; }
.f-facts .c .k[b-xyywrtejce] { font-size: 9.5px; letter-spacing: .5px; text-transform: uppercase; color: var(--fn-text-tertiary); }
.f-facts .c .v[b-xyywrtejce] { font-family: var(--fn-font-mono); font-size: 15px; font-weight: 600; }
.f-verdict-txt[b-xyywrtejce] { font-size: 14px; line-height: 1.75; color: var(--fn-text-secondary); margin-top: 12px; }
.f-conf[b-xyywrtejce] { 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-xyywrtejce] { margin-top: 8px; font-size: 11.5px; color: var(--fn-text-tertiary); display: flex; align-items: center; gap: 7px; }
.sm-market-status[b-xyywrtejce]  .lucide { width: 14px; height: 14px; }
.sm-market-status.open[b-xyywrtejce] { color: var(--fn-success); }
.sm-warn[b-xyywrtejce] { display: flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--fn-warning); margin-top: 10px; }
.sm-warn[b-xyywrtejce]  .lucide { width: 14px; height: 14px; }

.sm-foot[b-xyywrtejce] { 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-xyywrtejce]  .lucide { width: 14px; height: 14px; }

@media (max-width: 760px) {
  .sm-wrap[b-xyywrtejce] {
    height: auto;
    min-height: 100vh;
    padding: 12px 10px 48px;
    overflow: visible;
  }

  .sm-toolbar[b-xyywrtejce] { flex-wrap: wrap; gap: 8px; }
  .sm-src[b-xyywrtejce] { width: 100%; }
  .sm-sp[b-xyywrtejce], .sm-sp2[b-xyywrtejce] { display: none; }
  .sm-search[b-xyywrtejce] { flex: 1 1 180px; width: auto; min-width: 0; }
  .sm-stage[b-xyywrtejce] { min-height: 0; }
  .sm-stage.pinned[b-xyywrtejce] { display: block; }
  .sm-board[b-xyywrtejce] {
    height: auto;
    grid-template-columns: minmax(0, 1fr);
    padding-right: 0;
  }
  .sm-col[b-xyywrtejce] { min-height: 260px; }
  .sm-cards[b-xyywrtejce] { overflow: visible; }

  .sm-side[b-xyywrtejce],
  .sm-stage.pinned .sm-side[b-xyywrtejce],
  .sm-stage:not(.collapsed) .sm-side[b-xyywrtejce],
  .sm-stage.pinned:not(.collapsed) .sm-side[b-xyywrtejce] {
    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-xyywrtejce] { display: none; }
  .sm-collapse[b-xyywrtejce], .sm-pin[b-xyywrtejce], .sm-side-rail[b-xyywrtejce] { display: none; }
  .sm-side-full[b-xyywrtejce], .sm-sb[b-xyywrtejce] { min-height: 0; overflow: visible; }

  .sm-full[b-xyywrtejce] { position: fixed; inset: 0; overflow: auto; border-radius: 0; }
  .sm-full.open[b-xyywrtejce] { display: block; }
  .sm-full-top[b-xyywrtejce] { flex-wrap: wrap; gap: 10px; padding: 12px; }
  .f-thesis-wrap[b-xyywrtejce] { width: 100%; margin-left: 0; }
  .sm-full-conv[b-xyywrtejce] { padding: 12px; }
  .rexplain[b-xyywrtejce] { align-items: flex-start; }
  .sm-full-body[b-xyywrtejce] {
    grid-template-columns: minmax(0, 1fr);
    padding: 12px;
    overflow: visible;
  }
  .f-left[b-xyywrtejce], .f-right[b-xyywrtejce] { overflow: visible; }
  .f-facts[b-xyywrtejce] { grid-template-columns: minmax(0, 1fr); }
  .ladder[b-xyywrtejce] { overflow-x: auto; padding-bottom: 6px; }
}
/* /Components/SignalMonitor/SignalMonitorPassPanel.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-pfi5fdoy4m] { border: 1px solid var(--fn-border-strong); border-radius: 10px; overflow: hidden; background: var(--fn-bg-alt); margin-bottom: 12px; }

.pass-main[b-pfi5fdoy4m] { display: grid; grid-template-columns: 1.2fr .9fr .9fr; gap: 1px; background: var(--fn-border); }
.pass-times[b-pfi5fdoy4m] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--fn-border); border-top: 1px solid var(--fn-border); }

.pass-cell[b-pfi5fdoy4m] { padding: 9px 10px; background: var(--fn-bg-alt); }
.pass-times .pass-cell[b-pfi5fdoy4m] { padding: 7px 10px; }

.pass-label[b-pfi5fdoy4m] { font-size: 9px; text-transform: uppercase; letter-spacing: .5px; color: var(--fn-text-tertiary); }
.pass-value[b-pfi5fdoy4m] { margin-top: 3px; font-size: 12px; font-weight: 600; }
.pass-value.mono[b-pfi5fdoy4m] { font-family: var(--fn-font-mono); }
.pass-value.good[b-pfi5fdoy4m] { color: var(--fn-success); }
.pass-value.warn[b-pfi5fdoy4m] { color: var(--fn-warning); }
.pass-value .mut[b-pfi5fdoy4m], .pass-value.mut[b-pfi5fdoy4m] { color: var(--fn-text-tertiary); font-weight: 500; }

.crown[b-pfi5fdoy4m] { 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-pfi5fdoy4m] { color: var(--fn-cat-gold); background: var(--fn-cat-gold-soft); border-color: var(--fn-cat-gold); }
/* /Components/SignalMonitor/SignalMonitorRisksTab.razor.rz.scp.css */
/* Reiter „Risiken & Zeit". Tokens-only (kein Hex/rgb), identische Flächen-Rollen wie die Sidebar-Panels
   der SignalMonitorPage: Panels = --fn-bg-alt, Wells/Zeilen = --fn-input-bg. */

.risks-pane[b-bdgirff3w7] { display: flex; flex-direction: column; gap: 14px; }

.sect[b-bdgirff3w7] { background: var(--fn-bg-alt); border: 1px solid var(--fn-border); border-radius: 12px; padding: 14px; }
.sect-t[b-bdgirff3w7] { 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-bdgirff3w7]  .lucide { width: 14px; height: 14px; color: var(--fn-primary); }

.risk-list[b-bdgirff3w7] { display: grid; gap: 7px; }
.risk[b-bdgirff3w7] { 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-bdgirff3w7] { font-weight: 500; color: var(--fn-text); }
.risk .st[b-bdgirff3w7] { font-family: var(--fn-font-mono); font-size: 10.5px; font-weight: 600; white-space: nowrap; }

.risk .st.fresh[b-bdgirff3w7], .risk .st.ok[b-bdgirff3w7] { color: var(--fn-success); }
.risk .st.partial[b-bdgirff3w7], .risk .st.warn[b-bdgirff3w7] { color: var(--fn-warning); }
.risk .st.stale[b-bdgirff3w7], .risk .st.bad[b-bdgirff3w7] { color: var(--fn-danger); }
.risk .st.mut[b-bdgirff3w7] { color: var(--fn-text-tertiary); }

.guard-txt[b-bdgirff3w7] { margin: 0; font-size: 12px; line-height: 1.5; color: var(--fn-text-secondary); }
/* /Components/SignalMonitor/SignalStudioProcessPanel.razor.rz.scp.css */
.ssp[b-hwlzbbor6l] { border-top: 1px solid var(--fn-border); padding: 12px 0 4px; }
.ssp-head[b-hwlzbbor6l], .ssp-line[b-hwlzbbor6l] { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ssp-title[b-hwlzbbor6l] { display: inline-flex; align-items: center; gap: 7px; color: var(--fn-text); font-weight: 650; font-size: 13px; }
.ssp-title :deep(svg)[b-hwlzbbor6l] { width: 15px; height: 15px; color: var(--fn-primary); }
.ssp-count[b-hwlzbbor6l], .ssp-meta[b-hwlzbbor6l], .ssp-strategy[b-hwlzbbor6l], .ssp-percent[b-hwlzbbor6l] { color: var(--fn-text-tertiary); font-size: 11px; }
.ssp-progress[b-hwlzbbor6l] { height: 4px; margin-top: 9px; overflow: hidden; background: var(--fn-bg-muted); }
.ssp-progress span[b-hwlzbbor6l] { display: block; height: 100%; background: var(--fn-primary); transition: width .2s ease; }
.ssp-meta[b-hwlzbbor6l] { margin: 5px 0 8px; }
.ssp-list[b-hwlzbbor6l] { display: grid; gap: 5px; }
.ssp-job[b-hwlzbbor6l] { 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-hwlzbbor6l] { display: grid; place-items: center; width: 22px; height: 22px; color: var(--fn-text-tertiary); }
.ssp-state :deep(svg)[b-hwlzbbor6l] { width: 15px; height: 15px; }
.ssp-job.done .ssp-state[b-hwlzbbor6l] { color: var(--fn-success); }
.ssp-job.running .ssp-state[b-hwlzbbor6l] { color: var(--fn-primary); }
.ssp-job.failed .ssp-state[b-hwlzbbor6l] { color: var(--fn-danger); }
.ssp-job.na .ssp-state[b-hwlzbbor6l], .ssp-job.cancelled .ssp-state[b-hwlzbbor6l] { color: var(--fn-text-tertiary); }
.ssp-name[b-hwlzbbor6l] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--fn-text); font-size: 12px; font-weight: 600; }
.ssp-status[b-hwlzbbor6l] { flex: none; color: var(--fn-text-secondary); font-size: 10px; }
.ssp-strategy[b-hwlzbbor6l] { margin-top: 2px; overflow-wrap: anywhere; }
.ssp-summary[b-hwlzbbor6l] { margin-top: 5px; color: var(--fn-text-secondary); font-size: 11px; line-height: 1.35; }
.ssp-summary.error[b-hwlzbbor6l] { color: var(--fn-danger); }
.ssp-verdict[b-hwlzbbor6l] { display: inline-block; margin-top: 5px; color: var(--fn-primary); font-size: 10px; font-weight: 650; }
.ssp-percent[b-hwlzbbor6l] { padding-top: 3px; text-align: right; font-variant-numeric: tabular-nums; }
.ssp-empty[b-hwlzbbor6l] { display: flex; align-items: center; gap: 7px; padding: 10px 0; color: var(--fn-text-secondary); font-size: 12px; }
.ssp-empty :deep(svg)[b-hwlzbbor6l] { width: 14px; height: 14px; }
/* /Components/StrategyStudio/StrategyRunHardeningPanel.razor.rz.scp.css */
.sp-hardening[b-r1qrv8tlt3] {
    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-r1qrv8tlt3],
.sp-title[b-r1qrv8tlt3],
.sp-status-line[b-r1qrv8tlt3],
.sp-empty[b-r1qrv8tlt3],
.sp-runtime footer[b-r1qrv8tlt3],
.sp-activity[b-r1qrv8tlt3],
.sp-distribution span[b-r1qrv8tlt3],
.sp-decision-actions[b-r1qrv8tlt3],
.sp-custom-extension[b-r1qrv8tlt3] {
    display: flex;
    align-items: center;
}

.sp-header[b-r1qrv8tlt3] {
    min-height: 46px;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--fn-border);
}

.sp-title[b-r1qrv8tlt3] {
    gap: 9px;
}

.sp-title > span[b-r1qrv8tlt3],
.sp-strategies article > span[b-r1qrv8tlt3],
.sp-activity > span:last-child[b-r1qrv8tlt3],
.sp-decision > div:first-child[b-r1qrv8tlt3] {
    display: grid;
    gap: 2px;
}

.sp-title small[b-r1qrv8tlt3],
.sp-strategies small[b-r1qrv8tlt3],
.sp-status-line span[b-r1qrv8tlt3],
.sp-timeline b[b-r1qrv8tlt3],
.sp-metrics b[b-r1qrv8tlt3],
.sp-runtime footer > span[b-r1qrv8tlt3],
.sp-decision small[b-r1qrv8tlt3] {
    color: var(--fn-text-secondary);
}

.sp-safety[b-r1qrv8tlt3] {
    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-r1qrv8tlt3] {
    min-height: 62px;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
}

.sp-runtime[b-r1qrv8tlt3] {
    padding: 9px 12px 10px;
}

.sp-status-line[b-r1qrv8tlt3] {
    flex-wrap: wrap;
    gap: 10px;
}

.sp-status-line strong[b-r1qrv8tlt3] {
    text-transform: uppercase;
}

.sp-status-line .running[b-r1qrv8tlt3],
.sp-status-line .completed[b-r1qrv8tlt3] {
    color: var(--fn-success);
}

.sp-status-line .blocked[b-r1qrv8tlt3] {
    color: var(--fn-danger);
}

.sp-status-line .paused[b-r1qrv8tlt3] {
    color: var(--fn-warning);
}

.sp-status-line .preflight[b-r1qrv8tlt3] {
    color: var(--fn-warning);
}

.sp-status-line .stopped[b-r1qrv8tlt3] {
    color: var(--fn-text-tertiary);
}

.sp-activity[b-r1qrv8tlt3] {
    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-r1qrv8tlt3] {
    width: 9px;
    height: 9px;
    border-radius: var(--fn-radius-round);
    background: var(--fn-text-tertiary);
}

.sp-activity.trading[b-r1qrv8tlt3] {
    border-color: var(--fn-success);
}

.sp-activity.trading .sp-activity-dot[b-r1qrv8tlt3] {
    background: var(--fn-success);
    animation: sp-runtime-pulse-b-r1qrv8tlt3 1.4s ease-in-out infinite;
}

.sp-activity.waiting[b-r1qrv8tlt3] {
    border-color: var(--fn-warning);
}

.sp-activity.waiting .sp-activity-dot[b-r1qrv8tlt3],
.sp-activity.decision .sp-activity-dot[b-r1qrv8tlt3] {
    background: var(--fn-warning);
}

.sp-activity.blocked[b-r1qrv8tlt3] {
    border-color: var(--fn-danger);
}

.sp-activity.blocked .sp-activity-dot[b-r1qrv8tlt3] {
    background: var(--fn-danger);
}

.sp-progress[b-r1qrv8tlt3],
.sp-distribution progress[b-r1qrv8tlt3] {
    appearance: none;
    width: 100%;
    border: 0;
    overflow: hidden;
    background: var(--fn-bg-muted);
}

.sp-progress[b-r1qrv8tlt3] {
    height: 7px;
    margin: 8px 0;
    border-radius: var(--fn-radius-pill);
}

.sp-progress[b-r1qrv8tlt3]::-webkit-progress-bar,
.sp-distribution progress[b-r1qrv8tlt3]::-webkit-progress-bar {
    background: var(--fn-bg-muted);
}

.sp-progress[b-r1qrv8tlt3]::-webkit-progress-value {
    border-radius: var(--fn-radius-pill);
    background: var(--fn-primary);
}

.sp-progress[b-r1qrv8tlt3]::-moz-progress-bar {
    border-radius: var(--fn-radius-pill);
    background: var(--fn-primary);
}

.sp-progress.active[b-r1qrv8tlt3] {
    animation: sp-runtime-pulse-b-r1qrv8tlt3 1.4s ease-in-out infinite;
}

.sp-timeline[b-r1qrv8tlt3],
.sp-metrics[b-r1qrv8tlt3] {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    gap: 7px;
}

.sp-timeline span[b-r1qrv8tlt3],
.sp-metrics span[b-r1qrv8tlt3] {
    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-r1qrv8tlt3],
.sp-metrics b[b-r1qrv8tlt3],
.sp-strategies dt[b-r1qrv8tlt3] {
    font-size: 10px;
    font-weight: var(--fn-font-weight-medium);
    text-transform: uppercase;
}

.sp-metrics[b-r1qrv8tlt3] {
    margin-top: 8px;
}

.positive[b-r1qrv8tlt3] {
    color: var(--fn-success);
}

.negative[b-r1qrv8tlt3],
.sp-validation[b-r1qrv8tlt3] {
    color: var(--fn-danger);
}

.neutral[b-r1qrv8tlt3] {
    color: var(--fn-text);
}

.sp-distribution[b-r1qrv8tlt3] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 8px;
}

.sp-distribution > div[b-r1qrv8tlt3] {
    padding: 7px 8px;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
}

.sp-distribution span[b-r1qrv8tlt3] {
    justify-content: space-between;
}

.sp-distribution progress[b-r1qrv8tlt3] {
    height: 5px;
    margin-top: 5px;
    border-radius: var(--fn-radius-pill);
}

.sp-distribution .winning[b-r1qrv8tlt3]::-webkit-progress-value {
    background: var(--fn-success);
}

.sp-distribution .winning[b-r1qrv8tlt3]::-moz-progress-bar {
    background: var(--fn-success);
}

.sp-distribution .losing[b-r1qrv8tlt3]::-webkit-progress-value {
    background: var(--fn-danger);
}

.sp-distribution .losing[b-r1qrv8tlt3]::-moz-progress-bar {
    background: var(--fn-danger);
}

.sp-strategies[b-r1qrv8tlt3] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 9px;
}

.sp-strategies article[b-r1qrv8tlt3] {
    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-r1qrv8tlt3] {
    justify-items: end;
    text-align: right;
}

.sp-strategies dl[b-r1qrv8tlt3] {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 5px;
    margin: 0;
}

.sp-strategies dl div[b-r1qrv8tlt3] {
    display: grid;
    gap: 2px;
    padding-top: 6px;
    border-top: 1px solid var(--fn-border);
}

.sp-strategies dt[b-r1qrv8tlt3],
.sp-strategies dd[b-r1qrv8tlt3] {
    margin: 0;
}

.sp-strategy-action[b-r1qrv8tlt3] {
    display: flex;
    grid-column: 1 / -1;
    justify-content: flex-end;
}

.sp-decision[b-r1qrv8tlt3] {
    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-r1qrv8tlt3] {
    flex-wrap: wrap;
    gap: 7px;
}

.sp-custom-extension[b-r1qrv8tlt3] {
    display: grid;
    grid-template-columns: 76px auto;
    gap: 7px;
}

.sp-runtime footer[b-r1qrv8tlt3] {
    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-r1qrv8tlt3 {
    0%,
    100% {
        opacity: .55;
    }

    50% {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sp-progress.active[b-r1qrv8tlt3],
    .sp-activity.trading .sp-activity-dot[b-r1qrv8tlt3] {
        animation: none;
    }
}

@media (max-width: 900px) {
    .sp-timeline[b-r1qrv8tlt3],
    .sp-metrics[b-r1qrv8tlt3] {
        grid-template-columns: repeat(2, minmax(120px, 1fr));
    }
}

@media (max-width: 760px) {
    .sp-strategies[b-r1qrv8tlt3],
    .sp-distribution[b-r1qrv8tlt3] {
        grid-template-columns: 1fr;
    }

    .sp-header[b-r1qrv8tlt3],
    .sp-runtime footer[b-r1qrv8tlt3] {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 520px) {
    .sp-timeline[b-r1qrv8tlt3],
    .sp-metrics[b-r1qrv8tlt3] {
        grid-template-columns: 1fr;
    }

    .sp-strategies dl[b-r1qrv8tlt3] {
        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-pm6gbis1id] {
    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-pm6gbis1id] {
    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-pm6gbis1id] {
    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-pm6gbis1id] {
    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-bnggh9oh57] {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.ss-activity-copy[b-bnggh9oh57] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}

.ss-activity-copy strong[b-bnggh9oh57] {
    color: var(--fn-text);
    font-size: 11px;
    font-weight: var(--fn-font-weight-bold);
}

.ss-activity-copy span[b-bnggh9oh57] {
    overflow: hidden;
    color: var(--fn-text-secondary);
    font-size: 10px;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ss-activity-track[b-bnggh9oh57],
.ss-activity-meter[b-bnggh9oh57] {
    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-bnggh9oh57] {
    display: block;
    appearance: none;
}

.ss-activity-meter-shell[b-bnggh9oh57] {
    position: relative;
    width: 100%;
    height: 7px;
    overflow: hidden;
    border-radius: var(--fn-radius-pill);
}

.ss-activity-signal[b-bnggh9oh57] {
    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-bnggh9oh57 1.4s ease-in-out infinite;
    pointer-events: none;
}

.ss-activity-meter[b-bnggh9oh57]::-webkit-progress-bar {
    border-radius: var(--fn-radius-pill);
    background: var(--fn-bg-muted);
}

.ss-activity-meter[b-bnggh9oh57]::-webkit-progress-value {
    border-radius: var(--fn-radius-pill);
    background: var(--ss-activity-color);
}

.ss-activity-meter[b-bnggh9oh57]::-moz-progress-bar {
    border-radius: var(--fn-radius-pill);
    background: var(--ss-activity-color);
}

.running[b-bnggh9oh57] {
    --ss-activity-color: var(--fn-success);
}

.paused[b-bnggh9oh57] {
    --ss-activity-color: var(--fn-warning);
}

.not-started[b-bnggh9oh57] {
    --ss-activity-color: var(--fn-text-tertiary);
}

.evidence-only[b-bnggh9oh57] {
    --ss-activity-color: var(--fn-info);
}

.faulted[b-bnggh9oh57] {
    --ss-activity-color: var(--fn-danger);
}

.running .ss-activity-copy strong[b-bnggh9oh57] {
    color: var(--fn-success);
}

.paused .ss-activity-copy strong[b-bnggh9oh57] {
    color: var(--fn-warning);
}

.not-started .ss-activity-copy strong[b-bnggh9oh57] {
    color: var(--fn-text-tertiary);
}

.evidence-only .ss-activity-copy strong[b-bnggh9oh57] {
    color: var(--fn-info);
}

.faulted .ss-activity-copy strong[b-bnggh9oh57] {
    color: var(--fn-danger);
}

.ss-activity-moving[b-bnggh9oh57] {
    display: block;
    width: 38%;
    height: 100%;
    border-radius: var(--fn-radius-pill);
    background: var(--ss-activity-color);
    animation: ss-activity-scan-b-bnggh9oh57 1.4s ease-in-out infinite;
}

.compact[b-bnggh9oh57] {
    margin-top: 2px;
}

@keyframes ss-activity-scan-b-bnggh9oh57 {
    from {
        transform: translateX(-105%);
    }

    to {
        transform: translateX(365%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ss-activity-moving[b-bnggh9oh57],
    .ss-activity-signal[b-bnggh9oh57] {
        width: 100%;
        animation: none;
        opacity: .72;
        transform: none;
    }

    .ss-activity-signal[b-bnggh9oh57] {
        display: none;
    }
}
/* /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-ra2xsmceq6] {
    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-ra2xsmceq6],
.ss-board-page *[b-ra2xsmceq6]::before,
.ss-board-page *[b-ra2xsmceq6]::after {
    box-sizing: border-box;
}

.ss-board-nav[b-ra2xsmceq6] {
    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-ra2xsmceq6],
.ss-sideboard-tabs > span[b-ra2xsmceq6] {
    display: flex;
    position: relative;
}

.ss-board-nav > span.active[b-ra2xsmceq6]::after,
.ss-sideboard-tabs > span.active[b-ra2xsmceq6]::after {
    position: absolute;
    right: 5px;
    bottom: 0;
    left: 5px;
    height: 2px;
    background: var(--fn-primary);
    content: "";
}

.ss-board-nav[b-ra2xsmceq6]  .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-ra2xsmceq6]  .ss-board-nav-button:hover,
.ss-board-nav > span.active[b-ra2xsmceq6]  .ss-board-nav-button {
    background: transparent;
    color: var(--fn-primary);
}

.ss-board-stage[b-ra2xsmceq6] {
    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-ra2xsmceq6] {
    grid-template-columns: minmax(0, 1fr) 42px;
}

.ss-paper-runtime-detail-header[b-ra2xsmceq6] {
    padding: 10px 10px 0;
}

.ss-board-columns[b-ra2xsmceq6] {
    display: grid;
    min-width: 0;
    grid-template-columns: repeat(3, minmax(270px, 1fr));
    gap: 10px;
    padding: 10px;
    overflow-x: auto;
}

.ss-board-lane[b-ra2xsmceq6] {
    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-ra2xsmceq6] {
    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-ra2xsmceq6] {
    width: 3px;
    height: 18px;
    border-radius: var(--fn-radius-pill);
    background: var(--fn-primary);
}

.ss-board-lane.running .ss-lane-mark[b-ra2xsmceq6] {
    background: var(--fn-success);
}

.ss-board-lane.review .ss-lane-mark[b-ra2xsmceq6] {
    background: var(--fn-warning);
}

.ss-lane-count[b-ra2xsmceq6] {
    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-ra2xsmceq6] {
    display: flex;
    min-height: 0;
    padding: 8px;
    flex: 1;
    flex-direction: column;
    gap: 8px;
    overflow-y: auto;
}

.ss-lane-empty[b-ra2xsmceq6] {
    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-ra2xsmceq6] .ss-strategy-card {
    border-left: 3px solid var(--fn-warning);
    border-radius: var(--fn-radius-sm);
}

[b-ra2xsmceq6] .ss-strategy-card.prepared {
    border-left-color: var(--fn-primary);
}

[b-ra2xsmceq6] .ss-strategy-card.runtime {
    border-left-color: var(--fn-success);
}

[b-ra2xsmceq6] .ss-strategy-card.runtime.paused {
    border-left-color: var(--fn-warning);
}

[b-ra2xsmceq6] .ss-strategy-card.runtime.faulted {
    border-left-color: var(--fn-danger);
}

[b-ra2xsmceq6] .ss-strategy-card.ss-current-card {
    border-color: var(--fn-primary);
    box-shadow: var(--fn-focus-ring);
}

[b-ra2xsmceq6] .ss-strategy-card.pinned {
    border-top-color: var(--fn-accent-line);
}

[b-ra2xsmceq6] .ss-strategy-head {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
    padding: 9px 9px 6px;
}

[b-ra2xsmceq6] .ss-card-identity-slot {
    display: flex;
    min-width: 0;
    flex: 1;
}

[b-ra2xsmceq6] .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-ra2xsmceq6] .ss-card-identity-slot .ss-card-identity-control:hover {
    background: transparent;
}

[b-ra2xsmceq6] .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-ra2xsmceq6] .ss-strategy-identity {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 2px;
}

[b-ra2xsmceq6] .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-ra2xsmceq6] .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-ra2xsmceq6] .ss-card-actions {
    display: flex;
    flex: 0 0 auto;
    gap: 3px;
}

[b-ra2xsmceq6] .ss-card-actions .ss-square-action,
.ss-sideboard-head[b-ra2xsmceq6]  .ss-square-action,
.ss-sideboard-toggle[b-ra2xsmceq6]  .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-ra2xsmceq6] .ss-card-actions .ss-square-action:hover,
.ss-sideboard-head[b-ra2xsmceq6]  .ss-square-action:hover,
.ss-sideboard-toggle[b-ra2xsmceq6]  .ss-square-action:hover {
    color: var(--fn-primary);
}

[b-ra2xsmceq6] .ss-card-actions .fn-icon,
.ss-sideboard-head[b-ra2xsmceq6]  .fn-icon,
.ss-sideboard-toggle[b-ra2xsmceq6]  .fn-icon {
    width: 13px;
    height: 13px;
}

.ss-strategy-badges[b-ra2xsmceq6],
.ss-sideboard-badges[b-ra2xsmceq6] {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    padding: 0 9px 7px;
}

[b-ra2xsmceq6] .ss-strategy-badges > span,
.ss-sideboard-badges > span[b-ra2xsmceq6] {
    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-ra2xsmceq6] .ss-strategy-badges > span.automation,
.ss-sideboard-badges > span.automation[b-ra2xsmceq6] {
    border-color: var(--fn-accent-line);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
}

[b-ra2xsmceq6] .ss-strategy-badges > span.review,
.ss-sideboard-badges > span.review[b-ra2xsmceq6] {
    border-color: var(--fn-warning);
    background: var(--fn-warning-soft);
    color: var(--fn-warning);
}

[b-ra2xsmceq6] .ss-strategy-badges > span.prepared,
.ss-sideboard-badges > span.prepared[b-ra2xsmceq6] {
    border-color: var(--fn-primary);
    background: var(--fn-accent-soft);
    color: var(--fn-primary);
}

[b-ra2xsmceq6] .ss-strategy-badges > span.running {
    border-color: var(--fn-success);
    background: var(--fn-success-soft);
    color: var(--fn-success);
}

[b-ra2xsmceq6] .ss-strategy-badges > span.paused {
    border-color: var(--fn-warning);
    background: var(--fn-warning-soft);
    color: var(--fn-warning);
}

[b-ra2xsmceq6] .ss-strategy-badges > span.faulted {
    border-color: var(--fn-danger);
    background: var(--fn-danger-soft);
    color: var(--fn-danger);
}

[b-ra2xsmceq6] .ss-market-chips {
    display: flex;
    min-height: 24px;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    padding: 0 9px 7px;
}

[b-ra2xsmceq6] .ss-market-chips > span,
.root[b-ra2xsmceq6] {
    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-ra2xsmceq6] .ss-market-chips > span.positive {
    color: var(--fn-success);
}

[b-ra2xsmceq6] .ss-market-chips > span.warning {
    color: var(--fn-warning);
}

[b-ra2xsmceq6] .ss-market-chips > span.negative {
    color: var(--fn-danger);
}

[b-ra2xsmceq6] .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-ra2xsmceq6] .ss-strategy-health > div {
    min-width: 0;
    text-align: center;
}

[b-ra2xsmceq6] .ss-strategy-health dt,
[b-ra2xsmceq6] .ss-strategy-metrics dt,
.ss-side-facts dt[b-ra2xsmceq6] {
    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-ra2xsmceq6] .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-ra2xsmceq6] .ss-strategy-metrics {
    display: grid;
    margin: 0;
    padding: 8px 9px 7px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

[b-ra2xsmceq6] .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-ra2xsmceq6] {
    color: var(--fn-success) !important;
}

.warning[b-ra2xsmceq6] {
    color: var(--fn-warning) !important;
}

.negative[b-ra2xsmceq6] {
    color: var(--fn-danger) !important;
}

[b-ra2xsmceq6] .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-ra2xsmceq6] .ss-strategy-foot > span:first-child {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 1px;
}

[b-ra2xsmceq6] .ss-strategy-foot strong {
    color: var(--fn-text-secondary);
    font-weight: var(--fn-font-weight-medium);
}

[b-ra2xsmceq6] .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-ra2xsmceq6] .ss-card-chart .fn-icon {
    width: 12px;
    height: 12px;
}

.ss-sideboard[b-ra2xsmceq6] {
    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-ra2xsmceq6] {
    position: absolute;
    top: 12px;
    left: -13px;
    z-index: 3;
}

.ss-sideboard-toggle[b-ra2xsmceq6]  .ss-sideboard-toggle-action {
    border-radius: var(--fn-radius-round);
}

.ss-sideboard-rail[b-ra2xsmceq6] {
    display: flex;
    height: 100%;
    align-items: center;
    gap: 12px;
    padding-top: 48px;
    color: var(--fn-text-secondary);
    flex-direction: column;
}

.ss-sideboard-rail[b-ra2xsmceq6]  .fn-icon {
    width: 15px;
    height: 15px;
    color: var(--fn-primary);
}

.ss-sideboard-rail span[b-ra2xsmceq6] {
    font-size: 9px;
    letter-spacing: .5px;
    text-transform: uppercase;
    writing-mode: vertical-rl;
}

.ss-sideboard-head[b-ra2xsmceq6] {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    gap: 8px;
    padding: 14px 12px 7px;
}

.ss-sideboard-head > div[b-ra2xsmceq6] {
    display: flex;
    min-width: 0;
    flex: 1;
    flex-direction: column;
    gap: 3px;
}

.ss-sideboard-head strong[b-ra2xsmceq6] {
    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-ra2xsmceq6] {
    color: var(--fn-text-tertiary);
    font-family: var(--fn-font-mono);
    font-size: 9px;
}

.ss-sideboard-badges[b-ra2xsmceq6] {
    padding: 0 12px 8px;
}

.ss-sideboard-tabs[b-ra2xsmceq6] {
    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-ra2xsmceq6]  .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-ra2xsmceq6]  .ss-sideboard-tab-action {
    color: var(--fn-primary);
}

.ss-sideboard-body[b-ra2xsmceq6] {
    display: flex;
    padding: 10px;
    flex-direction: column;
    gap: 9px;
}

.ss-side-section[b-ra2xsmceq6],
.ss-side-list[b-ra2xsmceq6],
.ss-side-empty[b-ra2xsmceq6] {
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-sm);
    background: var(--fn-bg-alt);
    overflow: hidden;
}

.ss-side-section > header[b-ra2xsmceq6],
.ss-side-list > header[b-ra2xsmceq6] {
    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-ra2xsmceq6],
.ss-side-list > header > span[b-ra2xsmceq6] {
    margin-left: auto;
}

.ss-side-section > header > span.review[b-ra2xsmceq6] {
    color: var(--fn-warning);
}

.ss-side-section > header > span.prepared[b-ra2xsmceq6] {
    color: var(--fn-primary);
}

.ss-side-facts[b-ra2xsmceq6] {
    display: grid;
    margin: 0;
    padding: 9px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 8px;
}

.ss-side-facts dd[b-ra2xsmceq6] {
    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-ra2xsmceq6] {
    display: flex;
    padding: 7px 9px;
    flex-direction: column;
}

.ss-truth-steps > div[b-ra2xsmceq6] {
    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-ra2xsmceq6] {
    border-bottom: 0;
}

.ss-truth-steps .node[b-ra2xsmceq6] {
    display: grid;
    width: 17px;
    height: 17px;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: var(--fn-radius-round);
}

.ss-truth-steps .node[b-ra2xsmceq6]  .fn-icon {
    width: 10px;
    height: 10px;
}

.ss-truth-steps > div > span:nth-child(2)[b-ra2xsmceq6] {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.ss-truth-steps strong[b-ra2xsmceq6] {
    color: var(--fn-text-secondary);
    font-size: 9px;
    font-weight: var(--fn-font-weight-medium);
}

.ss-truth-steps small[b-ra2xsmceq6],
.ss-truth-steps time[b-ra2xsmceq6] {
    color: var(--fn-text-tertiary);
    font-size: 8px;
}

.ss-truth-steps time[b-ra2xsmceq6] {
    font-family: var(--fn-font-mono);
}

.ss-safe-actions > div[b-ra2xsmceq6] {
    display: grid;
    padding: 9px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.ss-safe-actions[b-ra2xsmceq6]  .ss-safe-action {
    min-width: 0;
    min-height: 30px;
    justify-content: center;
    padding: 0 8px;
    font-size: 9px;
}

.ss-safe-actions[b-ra2xsmceq6]  .fn-icon {
    width: 12px;
    height: 12px;
}

.ss-safe-actions p[b-ra2xsmceq6] {
    margin: 0;
    padding: 0 9px 9px;
    color: var(--fn-text-tertiary);
    font-size: 8px;
    line-height: 1.45;
}

.ss-side-empty[b-ra2xsmceq6] {
    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-ra2xsmceq6]  .fn-icon {
    width: 25px;
    height: 25px;
    color: var(--fn-primary);
}

.ss-side-empty strong[b-ra2xsmceq6] {
    color: var(--fn-text);
    font-size: 11px;
}

.ss-journal-rows[b-ra2xsmceq6],
.ss-version-rows[b-ra2xsmceq6] {
    display: flex;
    flex-direction: column;
}

.ss-journal-rows > div[b-ra2xsmceq6],
.ss-version-rows > div[b-ra2xsmceq6] {
    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-ra2xsmceq6],
.ss-version-rows > div:last-child[b-ra2xsmceq6] {
    border-bottom: 0;
}

.ss-journal-rows span:nth-child(2)[b-ra2xsmceq6],
.ss-version-rows span:nth-child(2)[b-ra2xsmceq6] {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.ss-journal-rows strong[b-ra2xsmceq6],
.ss-version-rows strong[b-ra2xsmceq6] {
    color: var(--fn-text-secondary);
    font-size: 9px;
    font-weight: var(--fn-font-weight-medium);
}

.ss-journal-rows small[b-ra2xsmceq6],
.ss-version-rows small[b-ra2xsmceq6] {
    color: var(--fn-text-tertiary);
    font-size: 8px;
}

.ss-journal-rows b[b-ra2xsmceq6],
.ss-version-rows b[b-ra2xsmceq6] {
    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-ra2xsmceq6],
.ss-board-empty-page[b-ra2xsmceq6] {
    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-ra2xsmceq6]  .fn-icon {
    width: 30px;
    height: 30px;
    color: var(--fn-primary);
}

@media (max-width: 1240px) {
    .ss-board-stage[b-ra2xsmceq6],
    .sideboard-closed .ss-board-stage[b-ra2xsmceq6] {
        grid-template-columns: minmax(0, 1fr);
    }

    .ss-board-columns[b-ra2xsmceq6] {
        grid-template-columns: repeat(3, minmax(300px, 1fr));
    }

    .ss-sideboard[b-ra2xsmceq6] {
        min-height: 420px;
        border-top: 1px solid var(--fn-border);
        border-left: 0;
    }

    .ss-sideboard.closed[b-ra2xsmceq6] {
        min-height: 42px;
    }

    .ss-sideboard-toggle[b-ra2xsmceq6] {
        top: -13px;
        right: 12px;
        left: auto;
    }

    .ss-sideboard-rail[b-ra2xsmceq6] {
        height: 42px;
        padding: 0 14px;
        flex-direction: row;
    }

    .ss-sideboard-rail span[b-ra2xsmceq6] {
        writing-mode: initial;
    }
}

@media (max-width: 850px) {
    .ss-board-page[b-ra2xsmceq6] {
        border-radius: 0;
    }

    .ss-board-nav[b-ra2xsmceq6] {
        overflow-x: auto;
    }

    .ss-board-columns[b-ra2xsmceq6] {
        grid-template-columns: 1fr;
    }

    .ss-board-lane[b-ra2xsmceq6] {
        min-height: 260px;
    }

    .ss-side-facts[b-ra2xsmceq6],
    .ss-safe-actions > div[b-ra2xsmceq6] {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ss-board-stage[b-ra2xsmceq6],
    .ss-strategy-card[b-ra2xsmceq6],
    .ss-sideboard[b-ra2xsmceq6] {
        transition: none;
    }
}
/* /Components/StrategyStudio/StrategyStudioEvaluationPage.razor.rz.scp.css */
.ss-page[b-q68z3hvx12] {
    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-q68z3hvx12],
.ss-page *[b-q68z3hvx12]::before,
.ss-page *[b-q68z3hvx12]::after {
    box-sizing: border-box;
}

.ss-top[b-q68z3hvx12] {
    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-q68z3hvx12] {
    color: var(--fn-text-secondary);
}

.ss-crumb b[b-q68z3hvx12] {
    color: var(--fn-text);
}

.ss-spacer[b-q68z3hvx12] {
    flex: 1;
}

.ss-run-state[b-q68z3hvx12] {
    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-q68z3hvx12] {
    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-q68z3hvx12] {
    padding: 14px 16px 16px;
}

.ss-title[b-q68z3hvx12] {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 2px;
}

.ss-title[b-q68z3hvx12]  i {
    width: 17px;
    height: 17px;
    color: var(--fn-primary);
}

.ss-title h1[b-q68z3hvx12] {
    margin: 0;
    color: var(--fn-text);
    font-size: 20px;
    font-weight: var(--fn-font-weight-bold);
}

.ss-lead[b-q68z3hvx12] {
    margin: 0 0 13px 30px;
    color: var(--fn-text-secondary);
}

.ss-toolbar[b-q68z3hvx12] {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    margin-bottom: 12px;
}

.ss-toolbar-status[b-q68z3hvx12] {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    color: var(--fn-text-secondary);
    font-size: 11.5px;
}

.ss-toolbar-status[b-q68z3hvx12]  i {
    width: 15px;
    height: 15px;
    color: var(--fn-success);
}

.ss-toolbar-status strong[b-q68z3hvx12] {
    color: var(--fn-text);
    font-weight: var(--fn-font-weight-medium);
}

.ss-toolbar-controls[b-q68z3hvx12] {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    margin-left: auto;
}

.ss-control[b-q68z3hvx12] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.ss-control > span[b-q68z3hvx12] {
    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-q68z3hvx12] {
    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-q68z3hvx12] {
    width: 152px;
}

.ss-control select:focus-visible[b-q68z3hvx12] {
    outline: none;
    box-shadow: var(--fn-focus-ring);
}

.ss-control select:disabled[b-q68z3hvx12] {
    color: var(--fn-text-secondary);
    opacity: 1;
}

.ss-stage[b-q68z3hvx12] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 14px;
    min-height: 595px;
}

.ss-workspace[b-q68z3hvx12] {
    min-width: 0;
}

.ss-metrics[b-q68z3hvx12] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 12px;
}

.ss-robustness[b-q68z3hvx12] {
    display: grid;
    gap: 12px;
}

.ss-robust-metrics[b-q68z3hvx12] {
    margin-bottom: 0;
}

.ss-robust-facts[b-q68z3hvx12] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0;
}

.ss-metric[b-q68z3hvx12] {
    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-q68z3hvx12] {
    border-left-color: var(--fn-success);
}

.ss-metric.negative[b-q68z3hvx12] {
    border-left-color: var(--fn-danger);
}

.ss-metric > span[b-q68z3hvx12] {
    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-q68z3hvx12] {
    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-q68z3hvx12],
.positive[b-q68z3hvx12] {
    color: var(--fn-success);
}

.ss-metric strong.negative[b-q68z3hvx12],
.negative[b-q68z3hvx12] {
    color: var(--fn-danger);
}

.ss-metric small[b-q68z3hvx12] {
    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-q68z3hvx12] {
    overflow: hidden;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius-lg);
    background: var(--fn-bg-muted);
}

.ss-integrity-warning[b-q68z3hvx12] {
    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-q68z3hvx12] {
    display: flex;
    gap: 2px;
    padding: 0 12px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-muted);
}

.ss-tabs[b-q68z3hvx12]  .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-q68z3hvx12]  .fn-tab i {
    width: 14px;
    height: 14px;
}

.ss-tabs[b-q68z3hvx12]  .fn-tab:hover {
    color: var(--fn-text);
}

.ss-tabs[b-q68z3hvx12]  .fn-tab:focus-visible {
    outline: none;
    box-shadow: var(--fn-focus-ring);
}

.ss-tabs[b-q68z3hvx12]  .fn-tab.active {
    border-bottom-color: var(--fn-primary);
    color: var(--fn-primary);
}

.ss-tab-content[b-q68z3hvx12] {
    min-height: 460px;
    padding: 13px;
}

.ss-chart-grid[b-q68z3hvx12] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
}

.ss-card[b-q68z3hvx12],
.ss-equity-card[b-q68z3hvx12] {
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
}

[b-q68z3hvx12] .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-q68z3hvx12] .ss-card-head i {
    width: 14px;
    height: 14px;
    color: var(--fn-primary);
}

[b-q68z3hvx12] .ss-card-head > div {
    display: grid;
    flex: 1;
    min-width: 0;
}

[b-q68z3hvx12] .ss-card-head strong {
    color: var(--fn-text);
    font-size: 11px;
    letter-spacing: .45px;
    text-transform: uppercase;
}

[b-q68z3hvx12] .ss-card-head span {
    overflow: hidden;
    color: var(--fn-text-tertiary);
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

[b-q68z3hvx12] .ss-card-head > b {
    font-family: var(--fn-font-mono);
    font-size: 12px;
    font-weight: var(--fn-font-weight-bold);
    white-space: nowrap;
}

[b-q68z3hvx12] .ss-card-head > b.positive {
    color: var(--fn-success);
}

[b-q68z3hvx12] .ss-card-head > b.negative {
    color: var(--fn-danger);
}

[b-q68z3hvx12] .ss-chart-body {
    min-height: 174px;
    padding: 9px 11px 8px;
}

[b-q68z3hvx12] .ss-chart-body svg {
    display: block;
    width: 100%;
    height: 165px;
}

.ss-donut circle[b-q68z3hvx12] {
    fill: none;
    stroke-width: 18;
    transition: stroke-dasharray .2s ease, stroke-dashoffset .2s ease;
}

.ss-donut .track[b-q68z3hvx12] {
    stroke: var(--fn-input-bg);
}

.ss-donut .win[b-q68z3hvx12] {
    stroke: var(--fn-success);
}

.ss-donut .loss[b-q68z3hvx12] {
    stroke: var(--fn-danger);
}

.ss-donut .flat[b-q68z3hvx12] {
    stroke: var(--fn-text-tertiary);
}

.ss-donut text[b-q68z3hvx12] {
    fill: var(--fn-text-secondary);
    font-family: var(--fn-font);
}

.ss-donut .center[b-q68z3hvx12] {
    fill: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-size: 18px;
    font-weight: var(--fn-font-weight-bold);
}

.ss-donut .label[b-q68z3hvx12] {
    font-size: 10px;
}

.ss-legend[b-q68z3hvx12] {
    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-q68z3hvx12] {
    width: 7px;
    height: 7px;
    border-radius: var(--fn-radius-round);
}

.ss-legend-dot.win[b-q68z3hvx12] {
    background: var(--fn-success);
}

.ss-legend-dot.loss[b-q68z3hvx12] {
    margin-left: 9px;
    background: var(--fn-danger);
}

.ss-legend-dot.flat[b-q68z3hvx12] {
    margin-left: 9px;
    background: var(--fn-text-tertiary);
}

[b-q68z3hvx12] .ss-bars text {
    fill: var(--fn-text-secondary);
    font-family: var(--fn-font);
    font-size: 10px;
}

[b-q68z3hvx12] .ss-bars text.value {
    fill: var(--fn-text);
    font-family: var(--fn-font-mono);
    font-weight: var(--fn-font-weight-bold);
}

[b-q68z3hvx12] .ss-bars rect.track {
    fill: var(--fn-input-bg);
}

[b-q68z3hvx12] .ss-bars rect.bar {
    fill: var(--fn-primary);
}

[b-q68z3hvx12] .ss-bars.positive rect.bar {
    fill: var(--fn-success);
}

[b-q68z3hvx12] .ss-bars.negative rect.bar {
    fill: var(--fn-danger);
}

.ss-equity-wrap[b-q68z3hvx12] {
    padding: 12px;
}

.ss-equity[b-q68z3hvx12] {
    display: block;
    width: 100%;
    height: 290px;
}

.ss-equity line.grid[b-q68z3hvx12] {
    stroke: var(--fn-border);
    stroke-width: 1;
}

.ss-equity line.zero[b-q68z3hvx12] {
    stroke: var(--fn-text-tertiary);
    stroke-width: 1;
}

.ss-equity polyline.line[b-q68z3hvx12] {
    fill: none;
    stroke: var(--fn-primary);
    stroke-width: 2.3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ss-equity text[b-q68z3hvx12] {
    fill: var(--fn-text-secondary);
    font-family: var(--fn-font-mono);
    font-size: 10px;
}

.ss-evidence-grid[b-q68z3hvx12] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 11px;
}

.ss-evidence-grid[b-q68z3hvx12]  .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-q68z3hvx12]  .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-q68z3hvx12]  .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-q68z3hvx12] {
    max-height: 460px;
    overflow: auto;
    border: 1px solid var(--fn-border);
    border-radius: var(--fn-radius);
    background: var(--fn-bg-alt);
}

.ss-journal[b-q68z3hvx12] {
    width: 100%;
    border-collapse: collapse;
    min-width: 880px;
    background: var(--fn-bg-alt);
}

.ss-journal th[b-q68z3hvx12],
.ss-journal td[b-q68z3hvx12] {
    padding: 10px 11px;
    border-bottom: 1px solid var(--fn-border);
    text-align: left;
    white-space: nowrap;
}

.ss-journal th[b-q68z3hvx12] {
    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-q68z3hvx12] {
    color: var(--fn-text);
    font-size: 11.5px;
}

.ss-journal .number[b-q68z3hvx12] {
    text-align: right;
}

.ss-journal .mono[b-q68z3hvx12] {
    font-family: var(--fn-font-mono);
}

.ss-chart-placeholder[b-q68z3hvx12],
.ss-empty[b-q68z3hvx12] {
    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-q68z3hvx12]  i,
.ss-empty[b-q68z3hvx12]  i {
    width: 32px;
    height: 32px;
    color: var(--fn-primary);
}

.ss-chart-placeholder strong[b-q68z3hvx12],
.ss-empty strong[b-q68z3hvx12] {
    color: var(--fn-text);
    font-size: 15px;
}

.ss-actions[b-q68z3hvx12] {
    display: flex;
    gap: 8px;
    margin-top: 6px;
}

.ss-chart-trades[b-q68z3hvx12] {
    display: grid;
    gap: 11px;
}

.ss-chart-panel[b-q68z3hvx12] {
    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-q68z3hvx12] {
    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-q68z3hvx12] {
    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-q68z3hvx12] {
    padding: 15px 17px 13px;
    border-bottom: 1px solid var(--fn-border);
    background: var(--fn-bg-alt);
}

.ss-state[b-q68z3hvx12] {
    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-q68z3hvx12]  i {
    width: 12px;
    height: 12px;
}

.ss-state.done[b-q68z3hvx12] {
    border-color: var(--fn-success);
    color: var(--fn-success);
}

.ss-state.danger[b-q68z3hvx12] {
    border-color: var(--fn-danger);
    color: var(--fn-danger);
}

.ss-symbol-row[b-q68z3hvx12] {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.ss-symbol-row strong[b-q68z3hvx12] {
    color: var(--fn-primary);
    font-family: var(--fn-font-mono);
    font-size: 18px;
}

.ss-symbol-row span[b-q68z3hvx12] {
    color: var(--fn-text-secondary);
    font-weight: var(--fn-font-weight-medium);
}

.ss-side-meta[b-q68z3hvx12] {
    margin-top: 2px;
    color: var(--fn-text-tertiary);
    font-family: var(--fn-font-mono);
    font-size: 10px;
}

.ss-side-block[b-q68z3hvx12] {
    padding: 13px 16px;
    border-bottom: 1px solid var(--fn-border);
}

.ss-side-block:last-child[b-q68z3hvx12] {
    border-bottom: 0;
}

.ss-side-block h2[b-q68z3hvx12] {
    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-q68z3hvx12]  i {
    width: 14px;
    height: 14px;
    color: var(--fn-primary);
}

.ss-side-block h2 > span[b-q68z3hvx12] {
    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-q68z3hvx12] {
    display: flex;
    align-items: flex-start;
}

.ss-proof-ladder[b-q68z3hvx12]  .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-q68z3hvx12]  .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-q68z3hvx12]  .ss-proof-node.active {
    border-color: var(--fn-warning);
    color: var(--fn-warning);
    background: var(--fn-warning-soft);
}

.ss-proof-ladder[b-q68z3hvx12]  .ss-proof-node.done {
    border-color: var(--fn-success);
    color: var(--fn-success);
    background: var(--fn-success-soft);
}

.ss-proof-ladder[b-q68z3hvx12]  .ss-proof-node.danger {
    border-color: var(--fn-danger);
    color: var(--fn-danger);
    background: var(--fn-danger-soft);
}

.ss-proof-ladder[b-q68z3hvx12]  .ss-proof-node i {
    width: 14px;
    height: 14px;
}

.ss-proof-line[b-q68z3hvx12] {
    flex: 1;
    height: 2px;
    margin-top: 16px;
    background: var(--fn-success);
}

.ss-proof-line.open[b-q68z3hvx12] {
    background: var(--fn-border-strong);
}

.ss-facts[b-q68z3hvx12] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
}

.ss-facts[b-q68z3hvx12]  > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.ss-facts[b-q68z3hvx12]  dt {
    color: var(--fn-text-secondary);
    font-size: 10.5px;
}

.ss-facts[b-q68z3hvx12]  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-q68z3hvx12] {
    margin: 0;
    color: var(--fn-text-secondary);
    font-size: 11px;
    line-height: 1.5;
}

.ss-note strong[b-q68z3hvx12] {
    color: var(--fn-text);
    font-weight: var(--fn-font-weight-medium);
}

.ss-exports[b-q68z3hvx12] {
    display: flex;
    gap: 7px;
}

.ss-foot[b-q68z3hvx12] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    color: var(--fn-text-tertiary);
    font-size: 10.5px;
}

.ss-foot[b-q68z3hvx12]  i {
    width: 13px;
    height: 13px;
    color: inherit;
}

@media (max-width: 1180px) {
    .ss-stage[b-q68z3hvx12] {
        grid-template-columns: 1fr;
    }

    .ss-side[b-q68z3hvx12] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ss-identity[b-q68z3hvx12] {
        grid-column: 1 / -1;
    }

    .ss-side-block[b-q68z3hvx12] {
        border-right: 1px solid var(--fn-border);
    }
}

@media (max-width: 860px) {
    .ss-toolbar[b-q68z3hvx12] {
        align-items: stretch;
        flex-direction: column;
    }

    .ss-toolbar-controls[b-q68z3hvx12] {
        display: grid;
        grid-template-columns: 1fr 1fr;
        width: 100%;
    }

    .ss-control[b-q68z3hvx12],
    .ss-control-compact[b-q68z3hvx12] {
        width: 100%;
        min-width: 0;
    }

    .ss-metrics[b-q68z3hvx12],
    .ss-chart-grid[b-q68z3hvx12],
    .ss-evidence-grid[b-q68z3hvx12] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ss-tabs[b-q68z3hvx12] {
        overflow-x: auto;
    }

    .ss-tabs[b-q68z3hvx12]  .fn-tab {
        white-space: nowrap;
    }
}

@media (max-width: 600px) {
    .ss-page[b-q68z3hvx12] {
        border-radius: 0;
    }

    .ss-top[b-q68z3hvx12] {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .ss-run-state[b-q68z3hvx12] {
        width: 100%;
    }

    .ss-body[b-q68z3hvx12] {
        padding: 12px 10px;
    }

    .ss-lead[b-q68z3hvx12] {
        margin-left: 0;
    }

    .ss-actions[b-q68z3hvx12] {
        align-items: stretch;
        flex-direction: column;
    }

    .ss-toolbar-controls[b-q68z3hvx12],
    .ss-metrics[b-q68z3hvx12],
    .ss-chart-grid[b-q68z3hvx12],
    .ss-evidence-grid[b-q68z3hvx12],
    .ss-side[b-q68z3hvx12] {
        grid-template-columns: 1fr;
    }

    .ss-tabs[b-q68z3hvx12] {
        overflow-x: auto;
    }

    .ss-tabs[b-q68z3hvx12]  .fn-tab {
        flex: 0 0 auto;
    }

    .ss-tab-content[b-q68z3hvx12] {
        min-height: 0;
        padding: 7px;
    }

    .ss-equity[b-q68z3hvx12] {
        height: 220px;
    }

    .ss-side[b-q68z3hvx12] {
        display: block;
    }

    .ss-identity[b-q68z3hvx12],
    .ss-side-block[b-q68z3hvx12] {
        border-right: 0;
    }

    .ss-chart-summary[b-q68z3hvx12] {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ss-page *[b-q68z3hvx12],
    .ss-page *[b-q68z3hvx12]::before,
    .ss-page *[b-q68z3hvx12]::after {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}
/* /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-zq2xcs5cvf] {
    font-size: 11.5px;
    font-weight: 600;
    white-space: nowrap;
}

.wl-px-expired[b-zq2xcs5cvf] {
    color: var(--fn-text-tertiary);
}

.wl-px-stale[b-zq2xcs5cvf] {
    color: var(--fn-warning);
}

.wl-px-nosource[b-zq2xcs5cvf] {
    color: var(--fn-text-tertiary);
}

.wl-px-note[b-zq2xcs5cvf] {
    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-f0wxlzvgpd] {
    color: var(--fn-text-tertiary);
    font-size: 13px;
    padding: 28px 6px;
}

/* ===== Hero — die eine Aussage ===== */
.rg-hero[b-f0wxlzvgpd] {
    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-f0wxlzvgpd] { background: linear-gradient(90deg, var(--fn-success-soft), transparent 60%), var(--fn-bg-alt); }
.rg-hero.rg-neu[b-f0wxlzvgpd] { background: linear-gradient(90deg, var(--fn-warning-soft), transparent 60%), var(--fn-bg-alt); }
.rg-hero.rg-stress[b-f0wxlzvgpd] { background: linear-gradient(90deg, var(--fn-danger-soft), transparent 60%), var(--fn-bg-alt); }
.rg-hero-in[b-f0wxlzvgpd] {
    display: flex;
    align-items: center;
    gap: 26px;
    padding: 18px 22px;
}
.rg-verdict[b-f0wxlzvgpd] { min-width: 250px; }
.rg-lbl[b-f0wxlzvgpd] {
    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-f0wxlzvgpd] {
    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-f0wxlzvgpd] {
    width: 11px;
    height: 11px;
    border-radius: 50%;
}
.rg-say[b-f0wxlzvgpd] {
    font-size: 12.5px;
    color: var(--fn-text-secondary);
    margin-top: 5px;
    max-width: 300px;
}

.rg-meter[b-f0wxlzvgpd] { flex: 1; min-width: 160px; }
.rg-scale[b-f0wxlzvgpd] {
    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-f0wxlzvgpd] {
    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-f0wxlzvgpd] {
    display: flex;
    justify-content: space-between;
    margin-top: 8px;
    font-size: 10.5px;
    color: var(--fn-text-tertiary);
    letter-spacing: .04em;
}

.rg-quota[b-f0wxlzvgpd] { text-align: right; min-width: 160px; }
.rg-quota-v[b-f0wxlzvgpd] {
    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-f0wxlzvgpd] { font-size: 11.5px; color: var(--fn-text-secondary); margin-top: 2px; }
.rg-gap[b-f0wxlzvgpd] { color: var(--fn-text-tertiary); }

/* ===== Regime colour helpers (sparse) ===== */
.rg-bg-calm[b-f0wxlzvgpd] { background: var(--fn-success); }
.rg-bg-neu[b-f0wxlzvgpd] { background: var(--fn-warning); }
.rg-bg-stress[b-f0wxlzvgpd] { background: var(--fn-danger); }

/* ===== Table — only regime-specific layout on top of fn-list ===== */
.rg-tbl td[b-f0wxlzvgpd] { vertical-align: middle; }
.rg-tbl th.rg-r[b-f0wxlzvgpd], .rg-tbl td.rg-r[b-f0wxlzvgpd] { text-align: right; }
.rg-muted[b-f0wxlzvgpd] { opacity: .55; }

.rg-edge[b-f0wxlzvgpd] {
    width: 3px;
    height: 30px;
    border-radius: 2px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 10px;
}
.rg-nm[b-f0wxlzvgpd] { font-weight: var(--fn-font-weight-medium); color: var(--fn-text); }
.rg-tk[b-f0wxlzvgpd] {
    color: var(--fn-text-tertiary);
    font-size: 11px;
    font-family: var(--fn-font-mono);
    margin-top: 2px;
    margin-left: 13px;
}
.rg-na[b-f0wxlzvgpd] { color: var(--fn-text-tertiary); font-size: 12px; }

.rg-chip[b-f0wxlzvgpd] {
    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-f0wxlzvgpd] { width: 7px; height: 7px; border-radius: 50%; }
.rg-chip.rg-calm[b-f0wxlzvgpd] { color: var(--fn-success); background: var(--fn-success-soft); }
.rg-chip.rg-calm .rg-cdot[b-f0wxlzvgpd] { background: var(--fn-success); }
.rg-chip.rg-neu[b-f0wxlzvgpd] { color: var(--fn-warning); background: var(--fn-warning-soft); }
.rg-chip.rg-neu .rg-cdot[b-f0wxlzvgpd] { background: var(--fn-warning); }
.rg-chip.rg-stress[b-f0wxlzvgpd] { color: var(--fn-danger); background: var(--fn-danger-soft); }
.rg-chip.rg-stress .rg-cdot[b-f0wxlzvgpd] { background: var(--fn-danger); }

/* discipline double bar — du vs Strategie */
.rg-disc[b-f0wxlzvgpd] { width: 200px; }
.rg-track[b-f0wxlzvgpd] {
    height: 6px;
    border-radius: 99px;
    background: var(--fn-bg-muted);
    position: relative;
}
.rg-you[b-f0wxlzvgpd], .rg-strat[b-f0wxlzvgpd] {
    position: absolute;
    left: 0;
    top: 0;
    height: 6px;
    border-radius: 99px;
}
.rg-you[b-f0wxlzvgpd] { background: var(--fn-text-tertiary); }
.rg-strat[b-f0wxlzvgpd] { background: var(--fn-primary); }
.rg-legend[b-f0wxlzvgpd] {
    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-f0wxlzvgpd] { color: var(--fn-primary); }
.rg-open[b-f0wxlzvgpd] { color: var(--fn-text-tertiary); }
.rg-open .lucide[b-f0wxlzvgpd] { width: 16px; height: 16px; }

/* ===== Expanded row — elegant inline mini-simulation ===== */
.rg-exp td[b-f0wxlzvgpd] { background: var(--fn-bg-alt); padding: 0 !important; }
.rg-exp-in[b-f0wxlzvgpd] {
    display: flex;
    gap: 30px;
    padding: 22px 24px;
    align-items: center;
}
.rg-chart[b-f0wxlzvgpd] { flex: 0 0 360px; }
.rg-spark[b-f0wxlzvgpd] { display: block; width: 360px; height: 118px; }
.rg-spark-strat[b-f0wxlzvgpd] { stroke: var(--fn-primary); stroke-width: 2.2; }
.rg-spark-bench[b-f0wxlzvgpd] { 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-f0wxlzvgpd] { fill: url(#rg-grad); stroke: none; }
.rg-fill-top[b-f0wxlzvgpd] { stop-color: var(--fn-primary); stop-opacity: .22; }
.rg-fill-bot[b-f0wxlzvgpd] { stop-color: var(--fn-primary); stop-opacity: 0; }
.rg-legend2[b-f0wxlzvgpd] {
    display: flex;
    gap: 18px;
    margin-top: 10px;
    font-size: 11.5px;
    color: var(--fn-text-secondary);
}
.rg-legend2 span[b-f0wxlzvgpd] { display: inline-flex; align-items: center; gap: 7px; }
.rg-li[b-f0wxlzvgpd] { width: 14px; height: 2px; border-radius: 2px; display: inline-block; }
.rg-li-strat[b-f0wxlzvgpd] { background: var(--fn-primary); }
.rg-li-bench[b-f0wxlzvgpd] { background: var(--fn-text-tertiary); }

.rg-meta[b-f0wxlzvgpd] {
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: 16px 34px;
}
.rg-k[b-f0wxlzvgpd] {
    font-size: 10px;
    font-weight: var(--fn-font-weight-bold);
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--fn-text-tertiary);
}
.rg-val[b-f0wxlzvgpd] {
    font-family: var(--fn-font-mono);
    font-size: 18px;
    color: var(--fn-text);
    margin-top: 3px;
}
.rg-val.rg-pos[b-f0wxlzvgpd] { color: var(--fn-success); }
.rg-val.rg-neg[b-f0wxlzvgpd] { color: var(--fn-danger); }

.rg-cta[b-f0wxlzvgpd] {
    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-f0wxlzvgpd] { width: 15px; height: 15px; }
.rg-cta:hover[b-f0wxlzvgpd] { 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-kzzsie6ahy] { color: var(--fn-text-secondary); font-size: 13px; padding: 12px 2px; }

.wls-hero[b-kzzsie6ahy] {
    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-kzzsie6ahy] { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--fn-text-tertiary); }
.wls-hero-main[b-kzzsie6ahy] { 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-kzzsie6ahy] { color: var(--fn-success); }
.wls-hero-main[b-kzzsie6ahy]  svg { width: 18px; height: 18px; }
.wls-hero-names[b-kzzsie6ahy] { font-size: 12px; color: var(--fn-text-secondary); margin-top: 3px; }
.wls-hero-sub[b-kzzsie6ahy] { font-size: 11px; color: var(--fn-text-tertiary); margin-top: 4px; }

/* toolbar: frei wählbare Gruppierung */
.wls-toolbar[b-kzzsie6ahy] { display: flex; align-items: center; gap: 8px; margin: 4px 0 8px; }
.wls-toolbar label[b-kzzsie6ahy], .wls-toolbar-lbl[b-kzzsie6ahy] { font-size: 12px; color: var(--fn-text-secondary); }

.wls-table[b-kzzsie6ahy] { margin-top: 4px; table-layout: fixed; }
.wls-foot[b-kzzsie6ahy] {
    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-kzzsie6ahy] { background: var(--fn-bg-muted); padding: 0; }
.wls-grp-toggle[b-kzzsie6ahy] {
    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-kzzsie6ahy] { color: var(--fn-text); }
.wls-grp-toggle[b-kzzsie6ahy]  svg { width: 14px; height: 14px; }
.wls-grp-nm[b-kzzsie6ahy] { flex: 0 0 auto; }
.wls-grp-n[b-kzzsie6ahy] {
    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-kzzsie6ahy] {
    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-kzzsie6ahy] {
    display: inline-block; padding: 1px 9px; border-radius: 999px; font-size: 11px; font-weight: 600;
}
.wls-sea.good[b-kzzsie6ahy] { color: var(--fn-success); background: var(--fn-success-soft); border: 1px solid var(--fn-success); }
.wls-sea.bad[b-kzzsie6ahy] { color: var(--fn-danger); background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); }
.wls-sea.neutral[b-kzzsie6ahy] { color: var(--fn-text); background: var(--fn-bg-muted); border: 1px solid var(--fn-border-strong); }
.wls-sea.na[b-kzzsie6ahy] { 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-kzzsie6ahy] { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.wls-mon.best[b-kzzsie6ahy] { color: var(--fn-success); background: var(--fn-success-soft); border: 1px solid var(--fn-success); }
.wls-mon.worst[b-kzzsie6ahy] { color: var(--fn-danger); background: var(--fn-danger-soft); border: 1px solid var(--fn-danger); }
.wls-mon.none[b-kzzsie6ahy] { color: var(--fn-text-tertiary); }

/* Ø return — text colour graded by magnitude */
.wls-ret[b-kzzsie6ahy] { font-weight: 600; }
.wls-ret.z[b-kzzsie6ahy] { color: var(--fn-text-tertiary); }
.wls-ret.p1[b-kzzsie6ahy] { color: color-mix(in srgb, var(--fn-success) 55%, var(--fn-text-secondary)); }
.wls-ret.p2[b-kzzsie6ahy] { color: color-mix(in srgb, var(--fn-success) 75%, var(--fn-text-secondary)); }
.wls-ret.p3[b-kzzsie6ahy] { color: var(--fn-success); }
.wls-ret.p4[b-kzzsie6ahy] { color: var(--fn-success); font-weight: 700; }
.wls-ret.n1[b-kzzsie6ahy] { color: color-mix(in srgb, var(--fn-danger) 55%, var(--fn-text-secondary)); }
.wls-ret.n2[b-kzzsie6ahy] { color: color-mix(in srgb, var(--fn-danger) 75%, var(--fn-text-secondary)); }
.wls-ret.n3[b-kzzsie6ahy] { color: var(--fn-danger); }
.wls-ret.n4[b-kzzsie6ahy] { color: var(--fn-danger); font-weight: 700; }

/* 12-cell mini-heatmap (real markup → scoped CSS applies) */
.wls-mini[b-kzzsie6ahy] { display: inline-flex; gap: 2px; }
.wls-mini-cell[b-kzzsie6ahy] { width: 12px; height: 14px; border-radius: 3px; background: var(--fn-bg-muted); }
.wls-mini-cell.e[b-kzzsie6ahy] { border: 1px dashed var(--fn-border); }
.wls-mini-cell.z[b-kzzsie6ahy] { background: var(--fn-bg-muted); }
.wls-mini-cell.now[b-kzzsie6ahy] { box-shadow: inset 0 0 0 2px var(--fn-primary); }
.wls-mini-cell.p1[b-kzzsie6ahy] { background: color-mix(in srgb, var(--fn-success) 22%, transparent); }
.wls-mini-cell.p2[b-kzzsie6ahy] { background: color-mix(in srgb, var(--fn-success) 42%, transparent); }
.wls-mini-cell.p3[b-kzzsie6ahy] { background: color-mix(in srgb, var(--fn-success) 64%, transparent); }
.wls-mini-cell.p4[b-kzzsie6ahy] { background: color-mix(in srgb, var(--fn-success) 85%, transparent); }
.wls-mini-cell.n1[b-kzzsie6ahy] { background: color-mix(in srgb, var(--fn-danger) 22%, transparent); }
.wls-mini-cell.n2[b-kzzsie6ahy] { background: color-mix(in srgb, var(--fn-danger) 42%, transparent); }
.wls-mini-cell.n3[b-kzzsie6ahy] { background: color-mix(in srgb, var(--fn-danger) 64%, transparent); }
.wls-mini-cell.n4[b-kzzsie6ahy] { 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-yq4klmp4b6] {
    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-yq4klmp4b6] {
    background: var(--fn-bg-muted);
    color: var(--fn-text);
}

.wl-sync-trigger:disabled[b-yq4klmp4b6] {
    cursor: default;
}

.wl-sync-trigger[b-yq4klmp4b6]  svg {
    width: 15px;
    height: 15px;
}

/* Während der Synchronisation dreht der Kreispfeil. */
.wl-sync-run[b-yq4klmp4b6] {
    color: var(--fn-primary);
    border-color: var(--fn-accent-line);
}

.wl-sync-run[b-yq4klmp4b6]  svg {
    animation: wl-sync-rotate-b-yq4klmp4b6 1s linear infinite;
}

@keyframes wl-sync-rotate-b-yq4klmp4b6 {
    to { transform: rotate(360deg); }
}
