/* /Account/Login.razor.rz.scp.css */
/* Shared auth-page/auth-panel/field/button styling now lives in wwwroot/app.css -
   Login.razor has nothing left that is genuinely its own. */
/* /Account/Profile.razor.rz.scp.css */
.account-facts[b-y9zh0i7tlz] {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .5rem 1.2rem;
    margin: 0 0 1.6rem;
}

.account-facts dt[b-y9zh0i7tlz] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0;
}

.account-facts dd[b-y9zh0i7tlz] {
    color: var(--text-primary);
    font-size: .9rem;
    margin: 0;
}

.account-facts dd a[b-y9zh0i7tlz] {
    color: var(--accent);
}

.result-note[b-y9zh0i7tlz] {
    color: var(--text-muted);
    font-size: .78rem;
    line-height: 1.6;
    margin: 0 0 1.6rem;
}
/* /Account/Register.razor.rz.scp.css */
/* Shared auth-page/auth-panel/field/button styling now lives in wwwroot/app.css -
   Register.razor has nothing left that is genuinely its own. */
/* /Dashboard/AssetHeader.razor.rz.scp.css */
.asset-header[b-bxqz0hzka1] {
    align-items: flex-end;
    border-bottom: 1px solid var(--border-subtle);
    display: grid;
    gap: 1.8rem;
    grid-template-columns: minmax(17rem, 1.2fr) minmax(15rem, .9fr) auto;
    margin-bottom: 1.7rem;
    padding-bottom: 1.6rem;
}

.asset-identity[b-bxqz0hzka1],
.asset-title-row[b-bxqz0hzka1],
.asset-context[b-bxqz0hzka1] {
    align-items: center;
    display: flex;
}

.asset-identity[b-bxqz0hzka1] {
    gap: .9rem;
}

.asset-icon[b-bxqz0hzka1] {
    align-items: center;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-muted);
    display: flex;
    flex: 0 0 auto;
    font-family: var(--font-display);
    font-size: 1.3rem;
    height: 2.7rem;
    justify-content: center;
    width: 2.7rem;
}

.asset-context[b-bxqz0hzka1] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 500;
    gap: .5rem;
    margin-bottom: .3rem;
}

.asset-title-row[b-bxqz0hzka1] {
    flex-wrap: wrap;
    gap: .75rem;
}

.asset-title-row h1[b-bxqz0hzka1] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: 1.8rem;
    letter-spacing: -.015em;
    margin: 0;
}

.quote-block[b-bxqz0hzka1] {
    border-left: 1px solid var(--border-subtle);
    padding-left: 1.6rem;
}

.quote-premium[b-bxqz0hzka1] {
    display: grid;
    gap: .5rem;
}

.timeframe-control[b-bxqz0hzka1] {
    justify-self: end;
}

.control-label[b-bxqz0hzka1] {
    color: var(--text-quiet);
    display: block;
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0;
    margin-bottom: .5rem;
}

.timeframe-options[b-bxqz0hzka1] {
    display: flex;
    gap: 1.1rem;
    padding-bottom: .45rem;
}

.timeframe-options button[b-bxqz0hzka1] {
    /* --text-faint (22-24% opacity) is meant for static captions, not clickable controls -
       at that opacity these buttons were nearly unreadable. --text-muted is a solid color
       with real contrast, reserved for text that still needs to be legible and actionable. */
    background: transparent;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 0.74rem;
    font-weight: 500;
    letter-spacing: .05em;
    padding: 0;
}

.timeframe-options button:hover:not(:disabled)[b-bxqz0hzka1] {
    color: var(--text-primary);
}

.timeframe-options button.active[b-bxqz0hzka1] {
    color: var(--text-primary);
    font-weight: 650;
}

.timeframe-options button:focus-visible[b-bxqz0hzka1] {
    outline: 1px solid var(--accent);
    outline-offset: 3px;
}

.timeframe-options button:disabled[b-bxqz0hzka1] {
    cursor: wait;
    opacity: .55;
}

@media (max-width: 1200px) {
    .asset-header[b-bxqz0hzka1] {
        grid-template-columns: 1fr auto;
    }

    .timeframe-control[b-bxqz0hzka1] {
        grid-column: 1 / -1;
        justify-self: start;
    }
}

@media (max-width: 650px) {
    .asset-header[b-bxqz0hzka1] {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 1rem;
    }

    .quote-block[b-bxqz0hzka1] {
        border-left: 0;
        border-top: 1px solid var(--border-subtle);
        padding: .85rem 0 0;
    }

    .timeframe-options[b-bxqz0hzka1] {
        max-width: 100%;
        overflow-x: auto;
    }
}
/* /Dashboard/AssetSearch.razor.rz.scp.css */
.asset-search[b-3cawdyw8g3] {
    align-items: center;
    background: var(--surface-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    display: flex;
    gap: .5rem;
    padding: 0 1rem;
    position: relative;
    transition: border-color .2s var(--ease-out);
}

.asset-search:focus-within[b-3cawdyw8g3] {
    border-color: var(--accent);
}

.search-icon[b-3cawdyw8g3] {
    color: var(--text-quiet);
    flex: none;
    fill: none;
    height: 1rem;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 1.8;
    transition: color .2s var(--ease-out);
    width: 1rem;
}

.asset-search:focus-within .search-icon[b-3cawdyw8g3] {
    color: var(--text-primary);
}

.asset-search input[b-3cawdyw8g3] {
    background: none;
    border: 0;
    color: var(--text-primary);
    flex: 1;
    font: inherit;
    font-size: .85rem;
    min-width: 0;
    padding: .5rem 0;
    transition: border-color .2s var(--ease-out);
}

.asset-search input:focus[b-3cawdyw8g3] {
    outline: none;
}

.search-clear[b-3cawdyw8g3] {
    background: none;
    border: 0;
    color: var(--text-quiet);
    cursor: pointer;
    flex: none;
    font-size: 1.1rem;
    line-height: 1;
    padding: .2rem;
    transition: color .18s var(--ease-out);
}

.search-clear:hover[b-3cawdyw8g3] {
    color: var(--text-primary);
}

.search-status[b-3cawdyw8g3] {
    color: var(--text-quiet);
    font-size: 0.78rem;
    list-style: none;
    padding: .8rem .9rem;
}

.search-results[b-3cawdyw8g3] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    list-style: none;
    margin: .4rem 0 0;
    max-height: 20rem;
    overflow-y: auto;
    padding: 0;
    position: absolute;
    right: 0;
    top: 100%;
    transform-origin: top right;
    width: max(100%, 22rem);
    z-index: 30;
}

@media (prefers-reduced-motion: no-preference) {
    .search-results[b-3cawdyw8g3] {
        animation: search-in-b-3cawdyw8g3 .16s var(--ease-out) both;
    }

    @keyframes search-in-b-3cawdyw8g3 {
        from {
            opacity: 0;
            transform: scale(.97) translateY(-4px);
        }

        to {
            opacity: 1;
            transform: none;
        }
    }
}

.search-results li[b-3cawdyw8g3] {
    align-items: center;
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    gap: .5rem;
    padding: 0;
}

.search-results li:last-child[b-3cawdyw8g3] {
    border-bottom: 0;
}

.search-results li.is-active[b-3cawdyw8g3],
.search-results li:hover[b-3cawdyw8g3] {
    background: var(--surface-hover);
}

.result-link[b-3cawdyw8g3] {
    align-items: center;
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    display: flex;
    flex: 1;
    font: inherit;
    gap: .6rem;
    min-width: 0;
    padding: .55rem .7rem;
    text-align: left;
    text-decoration: none;
    width: 100%;
}

.result-logo[b-3cawdyw8g3],
.result-logo-fallback[b-3cawdyw8g3] {
    border-radius: 50%;
    flex: 0 0 auto;
    height: 1.6rem;
    object-fit: cover;
    width: 1.6rem;
}

.result-logo-fallback[b-3cawdyw8g3] {
    align-items: center;
    background: var(--surface-inset, rgba(127, 127, 127, .18));
    color: var(--text-quiet);
    display: none;
    font-size: 0.74rem;
    font-weight: 700;
    justify-content: center;
    letter-spacing: .02em;
}

.result-symbol[b-3cawdyw8g3] {
    color: var(--text-primary);
    flex: none;
    font-size: .78rem;
    font-weight: 600;
    min-width: 3.2rem;
}

.result-name[b-3cawdyw8g3] {
    color: var(--text-muted);
    flex: 1;
    font-size: .74rem;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.result-class[b-3cawdyw8g3] {
    color: var(--text-quiet);
    flex: none;
    font-size: 0.7rem;
    letter-spacing: .02em;
}

.result-fav[b-3cawdyw8g3] {
    background: none;
    border: 0;
    color: var(--text-quiet);
    cursor: pointer;
    flex: 0 0 auto;
    font-size: .95rem;
    margin-right: .6rem;
    padding: .3rem;
    transition: color .18s var(--ease-out), transform .18s var(--ease-out);
}

.result-fav:hover:not(:disabled)[b-3cawdyw8g3] {
    color: var(--warning);
    transform: scale(1.15);
}

.result-fav:disabled[b-3cawdyw8g3] {
    cursor: default;
    opacity: .5;
}
/* /Dashboard/AssetSwitcher.razor.rz.scp.css */
.asset-switcher[b-sdr19hv8mq] {
    border-bottom: 1px solid var(--border-subtle);
    margin-bottom: 1.6rem;
}

.control-label[b-sdr19hv8mq] {
    color: var(--text-quiet);
    display: block;
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0;
    margin-bottom: .7rem;
}

.asset-options[b-sdr19hv8mq] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.7rem;
    padding-bottom: 1rem;
}

.asset-options button[b-sdr19hv8mq] {
    align-items: center;
    background: transparent;
    border: 0;
    color: var(--text-quiet);
    cursor: pointer;
    display: flex;
    flex-direction: row;
    gap: .45rem;
    padding: 0;
    text-align: left;
    transition: color .3s ease;
}

.asset-options button:hover:not(:disabled)[b-sdr19hv8mq] {
    color: var(--text-primary);
}

.asset-options button.active[b-sdr19hv8mq] {
    color: var(--text-primary);
}

.asset-options button:focus-visible[b-sdr19hv8mq] {
    outline: 1px solid var(--accent);
    outline-offset: 3px;
}

.asset-options button:disabled[b-sdr19hv8mq] {
    cursor: wait;
    opacity: .55;
}

.option-symbol[b-sdr19hv8mq] {
    font-size: .78rem;
    font-weight: 500;
    letter-spacing: .03em;
}

.asset-options button.active .option-symbol[b-sdr19hv8mq] {
    font-weight: 650;
}

.option-class[b-sdr19hv8mq] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0;
}

/* Same logo language as the watchlist and the depot table, so a tab here is recognisable as
   the same asset. A missing icon hides itself - the ticker alone still identifies the tab. */
.option-logo[b-sdr19hv8mq] {
    border-radius: 50%;
    flex: 0 0 auto;
    height: 1.15rem;
    object-fit: cover;
    width: 1.15rem;
}

.option-text[b-sdr19hv8mq] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 0;
}
/* /Dashboard/ConceptWidget.razor.rz.scp.css */
/* Dieselbe harte Kante wie ein echtes Panel - der Unterschied ist der hohle Status,
   nicht die Form. Eine Kachel darf nie wie befüllt aussehen, aber auch nicht wie eine
   andere Materialwelt (kein Karteikarten-Stempel mehr). */
.concept-widget[b-1myb5e17zk] {
    background: var(--paper-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    padding: 1.1rem 1.15rem 1rem;
    position: relative;
}

.widget-head[b-1myb5e17zk] {
    align-items: flex-start;
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    gap: .6rem;
    justify-content: space-between;
    margin-bottom: .75rem;
    padding-bottom: .6rem;
}

.widget-head h2[b-1myb5e17zk] {
    color: var(--text-secondary);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -.01em;
    margin: 0;
}

.concept-body[b-1myb5e17zk] {
    display: flex;
    flex-direction: column;
    gap: .42rem;
}

.concept-note[b-1myb5e17zk] {
    border-top: 1px solid var(--border-subtle);
    color: var(--text-quiet);
    font-size: 0.76rem;
    line-height: 1.5;
    margin: .7rem 0 0;
    padding-top: .55rem;
}

[b-1myb5e17zk] .concept-row {
    align-items: center;
    display: grid;
    gap: .5rem;
    /* minmax(3rem, auto), not a fixed 3rem: a longer key label (e.g. "UNREALISIERT")
       must grow the column instead of visually overlapping the slot bar next to it. */
    grid-template-columns: minmax(3rem, auto) minmax(0, 1fr) auto;
}

[b-1myb5e17zk] .concept-slot {
    background: repeating-linear-gradient(
        90deg,
        var(--border-subtle) 0 6px,
        transparent 6px 10px);
    height: .38rem;
    opacity: .75;
}

[b-1myb5e17zk] .concept-key {
    color: var(--text-quiet);
    font-family: var(--font-mono);
    font-size: 0.74rem;
    white-space: nowrap;
    letter-spacing: .04em;
}

[b-1myb5e17zk] .concept-value {
    color: var(--text-quiet);
    font-family: var(--font-mono);
    font-size: 0.74rem;
}
/* /Dashboard/MarketChart.razor.rz.scp.css */
.chart-card[b-88u4hbtlxc] {
    border-top: 1px solid var(--border-subtle);
    min-height: 31rem;
    padding-top: 1.6rem;
    position: relative;
}

.chart-header[b-88u4hbtlxc] {
    align-items: flex-start;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.chart-header h2[b-88u4hbtlxc] {
    font-family: var(--font-display);
    font-size: 1.1rem;
    margin: .3rem 0 0;
}

.chart-meta[b-88u4hbtlxc] {
    align-items: center;
    color: var(--text-quiet);
    display: flex;
    font-size: 0.74rem;
    gap: .45rem;
}

.chart-meta a[b-88u4hbtlxc] {
    color: var(--text-quiet);
    text-decoration: none;
}

.chart-meta a:hover[b-88u4hbtlxc] {
    color: var(--text-primary);
}

.chart-stage[b-88u4hbtlxc] {
    display: grid;
    grid-template-columns: 2.6rem minmax(0, 1fr);
    margin-top: 1rem;
    border: 1px solid var(--border-subtle);
}

.rail[b-88u4hbtlxc] {
    border-right: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
}

.rail button[b-88u4hbtlxc] {
    aspect-ratio: 1;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-muted);
    cursor: pointer;
    display: grid;
    place-items: center;
    padding: 0;
    position: relative;
}

.rail button:hover:not(:disabled)[b-88u4hbtlxc] {
    background: var(--surface-hover);
    color: var(--text-primary);
}

.rail button[aria-pressed="true"][b-88u4hbtlxc] {
    background: var(--surface-3);
    color: var(--text-primary);
}

.rail button:disabled[b-88u4hbtlxc] {
    cursor: default;
    opacity: .35;
}

.rail button:focus-visible[b-88u4hbtlxc] {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
}

.rail button svg[b-88u4hbtlxc] {
    height: 18px;
    width: 18px;
}

.rail .sep[b-88u4hbtlxc] {
    border-bottom: 1px solid var(--border-subtle);
    flex: 0 0 .6rem;
}

.rail button .k[b-88u4hbtlxc] {
    bottom: 1px;
    font-size: 8px;
    opacity: .55;
    position: absolute;
    right: 3px;
}

.chart-panel[b-88u4hbtlxc] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.chart-statusbar[b-88u4hbtlxc] {
    align-items: center;
    border-top: 1px solid var(--border-subtle);
    color: var(--text-quiet);
    display: flex;
    flex-wrap: wrap;
    font-size: .72rem;
    gap: .4rem 1.1rem;
    padding: .5rem .7rem;
}

.chart-statusbar strong[b-88u4hbtlxc] {
    color: var(--text-primary);
    font-weight: 600;
}

.chart-host[b-88u4hbtlxc] {
    /* 25.8rem against a full-width desktop container made this a thin horizontal strip -
       scaling with viewport height (capped) keeps it closer to a readable, roughly-square
       working area instead of a letterbox ribbon, on any screen width. */
    height: min(44rem, 72vh);
    min-width: 0;
    overflow: hidden;
    width: 100%;
}

.chart-host.has-error[b-88u4hbtlxc] {
    display: none;
}

.chart-loading[b-88u4hbtlxc] {
    align-items: center;
    color: var(--text-muted);
    display: flex;
    font-size: 0.74rem;
    gap: .55rem;
    left: 50%;
    position: absolute;
    top: 52%;
    transform: translate(-50%, -50%);
}

.chart-loading span[b-88u4hbtlxc] {
    animation: pulse-b-88u4hbtlxc 1.15s ease-in-out infinite;
    background: var(--text-muted);
    border-radius: 50%;
    height: .45rem;
    width: .45rem;
}

.chart-empty[b-88u4hbtlxc] {
    align-items: center;
    color: var(--text-muted);
    display: flex;
    flex-direction: column;
    font-size: .78rem;
    font-weight: 400;
    height: 24rem;
    justify-content: center;
    text-align: center;
}

.chart-empty strong[b-88u4hbtlxc] {
    color: var(--text-secondary);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 400;
    margin-bottom: .4rem;
}

.chart-fallback[b-88u4hbtlxc] {
    margin-top: 1.1rem;
}

.fallback-message[b-88u4hbtlxc] {
    align-items: flex-start;
    border-left: 2px solid var(--warning);
    display: flex;
    gap: .75rem;
    padding: .1rem 0 .1rem .85rem;
}

.fallback-message > span[b-88u4hbtlxc] {
    display: none;
}

.fallback-message strong[b-88u4hbtlxc] {
    color: var(--warning);
    font-size: .74rem;
}

.fallback-message p[b-88u4hbtlxc] {
    color: var(--text-muted);
    font-size: 0.74rem;
    margin: .25rem 0 0;
}

.fallback-table-wrap[b-88u4hbtlxc] {
    margin-top: .9rem;
    overflow-x: auto;
}

table[b-88u4hbtlxc] {
    border-collapse: collapse;
    color: var(--text-secondary);
    font-size: 0.74rem;
    width: 100%;
}

caption[b-88u4hbtlxc] {
    color: var(--text-quiet);
    padding: 0 0 .5rem;
    text-align: left;
}

th[b-88u4hbtlxc],
td[b-88u4hbtlxc] {
    border-bottom: 1px solid var(--border-subtle);
    padding: .5rem;
    text-align: right;
}

th:first-child[b-88u4hbtlxc],
td:first-child[b-88u4hbtlxc] {
    text-align: left;
}

th[b-88u4hbtlxc] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: .1em;
}

@keyframes pulse-b-88u4hbtlxc {
    0%, 100% { opacity: .35; transform: scale(.85); }
    50% { opacity: 1; transform: scale(1.15); }
}

.chart-magnet[b-88u4hbtlxc] {
    align-items: center;
    color: var(--text-muted);
    display: inline-flex;
    gap: .35rem;
}

@media (max-width: 650px) {
    .chart-card[b-88u4hbtlxc] {
        min-height: 27rem;
    }

    .chart-host[b-88u4hbtlxc] {
        height: 22rem;
    }

    .chart-meta span[b-88u4hbtlxc] {
        display: none;
    }

    .chart-stage[b-88u4hbtlxc] {
        grid-template-columns: minmax(0, 1fr);
    }

    .rail[b-88u4hbtlxc] {
        border-right: 0;
        border-bottom: 1px solid var(--border-subtle);
        flex-direction: row;
        overflow-x: auto;
    }

    .rail button[b-88u4hbtlxc] {
        border-bottom: 0;
        border-right: 1px solid var(--border-subtle);
        flex: 0 0 2.6rem;
        width: 2.6rem;
    }

    .rail .sep[b-88u4hbtlxc] {
        border-bottom: 0;
        border-right: 1px solid var(--border-subtle);
        flex: 0 0 .6rem;
    }

    .chart-statusbar[b-88u4hbtlxc] {
        font-size: .68rem;
    }
}
/* /Dashboard/PositionPerformance.razor.rz.scp.css */
/* This stylesheet must live beside the COMPONENT, not on the page that hosts it. Blazor scopes
   isolated CSS with a per-component attribute, and a child component's markup never receives the
   parent's - the identical rules sitting in Depot.razor.css matched nothing, so the <path> fell
   back to the SVG default fill (solid black) and the chart had no height at all. */

.perf-state[b-id22a7vcs7] {
    color: var(--text-quiet);
    font-size: .76rem;
    margin: 0;
}

.perf[b-id22a7vcs7] {
    display: flex;
    flex-direction: column;
}

.perf-head[b-id22a7vcs7] {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 2.2rem;
    margin-bottom: .4rem;
}

.perf-figure[b-id22a7vcs7] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.perf-label[b-id22a7vcs7] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0;
}

.perf-change[b-id22a7vcs7] {
    font-family: var(--font-display);
    font-size: 1.6rem;
    line-height: 1;
}

/* Tone classes are declared here as well as on the page: isolated CSS is per component, so the
   page's copies do not reach this markup either. */
.perf-change.positive[b-id22a7vcs7] { color: var(--positive); }
.perf-change.negative[b-id22a7vcs7] { color: var(--negative); }

.perf-facts[b-id22a7vcs7] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.8rem;
    margin: 0;
}

.perf-facts > div[b-id22a7vcs7] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.perf-facts dt[b-id22a7vcs7] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: .02em;
}

.perf-facts dd[b-id22a7vcs7] {
    color: var(--text-secondary);
    font-size: .78rem;
    margin: 0;
}

/* Scales UNIFORMLY (xMidYMid meet in the markup). The first version stretched a flat box to the
   row's full width, which compressed a year of price action into a strip of noise - the aspect
   ratio is what makes the curve readable, so it is fixed here and the box is capped rather than
   filling whatever space exists. */
.perf-chart[b-id22a7vcs7] {
    display: block;
    margin: .2rem 0 0;
    max-width: 62rem;
    width: 100%;
}

.perf-line[b-id22a7vcs7] {
    fill: none;
    stroke: var(--text-primary);
    stroke-linejoin: round;
    stroke-width: 1.6;
    vector-effect: non-scaling-stroke;
}

.perf-area[b-id22a7vcs7] {
    fill: var(--text-primary);
    opacity: .16;
    stroke: none;
}

/* Split at the entry line: above it the position is in profit, below it in loss. The tone
   classes further down deliberately do not reach these two - they colour by the NET result,
   which is the thing this split exists to stop doing. */
.perf-area.gain[b-id22a7vcs7] { fill: var(--positive); }
.perf-area.loss[b-id22a7vcs7] { fill: var(--negative); }

.perf-detail[b-id22a7vcs7] {
    color: var(--text-muted);
    font-size: .74rem;
    margin-top: .1rem;
}

.perf-cross[b-id22a7vcs7] {
    stroke: var(--text-faint);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.perf-cursor[b-id22a7vcs7] {
    fill: var(--text-primary);
    stroke: var(--app-background);
    stroke-width: 1.5;
}

/* Invisible, but it must still take the pointer - "fill: none" would let events fall through. */
.perf-hit[b-id22a7vcs7] {
    fill: transparent;
}

.perf-last[b-id22a7vcs7] {
    fill: var(--text-primary);
    stroke: var(--app-background);
    stroke-width: 1.5;
}

.perf-chart.positive .perf-line[b-id22a7vcs7],
.perf-chart.positive .perf-last[b-id22a7vcs7] { stroke: var(--positive); }
.perf-chart.positive .perf-area:not(.gain):not(.loss)[b-id22a7vcs7],
.perf-chart.positive .perf-last[b-id22a7vcs7] { fill: var(--positive); }
.perf-chart.negative .perf-line[b-id22a7vcs7],
.perf-chart.negative .perf-last[b-id22a7vcs7] { stroke: var(--negative); }
.perf-chart.negative .perf-area:not(.gain):not(.loss)[b-id22a7vcs7],
.perf-chart.negative .perf-last[b-id22a7vcs7] { fill: var(--negative); }

.perf-chart.positive .perf-last[b-id22a7vcs7],
.perf-chart.negative .perf-last[b-id22a7vcs7] { stroke: var(--app-background); }

/* Price levels. Faint enough to sit behind the curve, present enough to read a value off. */
.perf-grid[b-id22a7vcs7] {
    stroke: var(--border-subtle);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.perf-axis-value[b-id22a7vcs7],
.perf-axis-time[b-id22a7vcs7] {
    fill: var(--text-faint);
    font-family: inherit;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

/* The entry price, labelled on the line itself - the shaded band is bounded by it, so it reads
   as gain or loss against what was actually paid rather than as area under the curve. */
.perf-baseline[b-id22a7vcs7] {
    stroke: var(--text-muted);
    stroke-dasharray: 5 4;
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.perf-baseline-label[b-id22a7vcs7] {
    fill: var(--text-muted);
    font-family: inherit;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    letter-spacing: .04em;
}

.perf-note[b-id22a7vcs7] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    line-height: 1.6;
    margin: .7rem 0 0;
    max-width: 52rem;
}
/* /Dashboard/TradabilityScoreCard.razor.rz.scp.css */
.score-strip[b-a90u42un1k] {
    border-top: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: .55rem;
    padding-top: 1.4rem;
}

.strip-head[b-a90u42un1k] {
    align-items: baseline;
    display: flex;
    justify-content: space-between;
}

.strip-value[b-a90u42un1k] {
    align-items: baseline;
    display: flex;
    gap: .6rem;
}

.strip-value > span:first-child[b-a90u42un1k] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: 1.9rem;
    letter-spacing: -.02em;
    line-height: 1;
}

.strip-scale[b-a90u42un1k] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 500;
}

.strip-coverage[b-a90u42un1k],
.strip-notice[b-a90u42un1k] {
    /* This is explanatory copy the user is meant to actually read (what the score means, why
       two coverage numbers can differ) - --text-faint's 22-24% opacity made it too easy to
       skip past, so it uses the same readable muted tone as the strip-breakdown table below. */
    color: var(--text-muted);
    font-size: 0.74rem;
    font-weight: 400;
    line-height: 1.6;
    margin: 0;
    max-width: 42rem;
}

.strip-breakdown[b-a90u42un1k] {
    max-width: 42rem;
}

.strip-breakdown summary[b-a90u42un1k] {
    color: var(--text-primary);
    cursor: pointer;
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: .02em;
    padding: .3rem 0;
}

.strip-breakdown table[b-a90u42un1k] {
    border-collapse: collapse;
    font-size: 0.72rem;
    margin-top: .5rem;
    width: 100%;
}

.strip-breakdown th[b-a90u42un1k],
.strip-breakdown td[b-a90u42un1k] {
    border-bottom: 1px solid var(--border-subtle);
    padding: .45rem .5rem .45rem 0;
    text-align: left;
    white-space: nowrap;
}

.strip-breakdown th[b-a90u42un1k] {
    color: var(--text-muted);
    font-weight: 600;
}

.strip-breakdown-source[b-a90u42un1k] {
    color: var(--text-muted);
    white-space: normal;
}
/* /Layout/AuthLayout.razor.rz.scp.css */
/* Zwei Spalten: links eine Fläche eine Ebene über dem Grund, daneben das Formular. Unter 900px wird die Collage zu einem Streifen über dem Formular. */
.auth-shell[b-l7yq68zmpv] {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(24rem, 1fr);
    min-height: 100dvh;
}

.auth-art[b-l7yq68zmpv] {
    align-items: stretch;
    background: var(--surface-2);
    border-right: 1px solid var(--border-subtle);
    display: flex;
    justify-content: center;
    overflow: hidden;
    padding: 0;
    position: sticky;
    top: 0;
    height: 100dvh;
}

.auth-side[b-l7yq68zmpv] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 1.6rem clamp(1.4rem, 4vw, 4rem) 1.4rem;
}

.auth-brand[b-l7yq68zmpv] {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.auth-brand a[b-l7yq68zmpv] {
    color: var(--text-primary);
    text-decoration: none;
}

.auth-body[b-l7yq68zmpv] {
    align-content: center;
    display: grid;
    flex: 1;
    padding-block: 2rem;
}

.auth-foot[b-l7yq68zmpv] {
    border-top: 1px solid var(--border-subtle);
    color: var(--text-quiet);
    font-size: .74rem;
    line-height: 1.55;
    padding-top: .9rem;
}

@media (max-width: 900px) {
    .auth-shell[b-l7yq68zmpv] {
        grid-template-columns: 1fr;
    }

    .auth-art[b-l7yq68zmpv] {
        border-bottom: 1px solid var(--border-subtle);
        border-right: 0;
        height: 15rem;
        order: -1;
        position: relative;
    }

    .auth-body[b-l7yq68zmpv] {
        padding-block: 1.4rem;
    }
}
/* /Layout/MainLayout.razor.rz.scp.css */
.app-shell[b-0z5s6xhl3b] {
    background: transparent;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    position: relative;
    z-index: var(--z-base);
}

/* Kopfleiste wie bei einer echten Trading-App: Logo, Navigation, Suche, Konto - eine
   durchgehende Zeile, keine zweite Ebene daneben. */
.topbar[b-0z5s6xhl3b] {
    /* Alles in der Kopfzeile liest seine Farben aus den --header-Rollen: die Tokens werden hier
       neu belegt, Logo, Konto, Buttons und Menüs folgen dadurch automatisch. */
    --brand-counter: var(--header-background);
    --text-primary: var(--header-foreground);
    --text-secondary: color-mix(in srgb, var(--header-foreground) 82%, var(--header-background));
    --text-muted: color-mix(in srgb, var(--header-foreground) 70%, var(--header-background));
    --surface-raised: color-mix(in srgb, var(--header-active-background) 40%, var(--header-background));
    --surface-3: var(--header-active-background);
    --surface-hover: color-mix(in srgb, var(--header-foreground) 8%, transparent);
    --border-subtle: var(--header-active-background);
    --border-strong: color-mix(in srgb, var(--header-active-background) 70%, var(--header-foreground));
    align-items: center;
    background: color-mix(in srgb, var(--header-background) 94%, transparent);
    color: var(--header-foreground);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    gap: 1.4rem;
    height: 4.25rem;
    padding: 0 clamp(1.1rem, 3vw, 2.4rem);
    position: sticky;
    top: 0;
    z-index: var(--z-sticky);
}

.brand[b-0z5s6xhl3b] {
    align-items: center;
    color: var(--text-primary);
    display: flex;
    flex: none;
    gap: .5rem;
    text-decoration: none;
}

.brand:hover[b-0z5s6xhl3b] {
    color: var(--text-primary);
}

/* Navigation als Pillen-Gruppe in der Mitte der Zeile: eine Ebene (--surface-raised) mit
   feiner Kante, der aktive Punkt liegt darin auf --surface-3. */
.primary-nav[b-0z5s6xhl3b] {
    align-items: center;
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    display: flex;
    flex: none;
    gap: .15rem;
    margin-inline: auto;
    padding: .25rem;
}

/* .nav-item's own look lives in the global app.css (see the note there) - NavLink's
   rendered <a> never carries this file's scope attribute, so a scoped rule here would
   silently never match it. Only this dropdown's positioning is scoped, since it targets
   plain elements this component itself renders. */
.nav-more[b-0z5s6xhl3b] {
    position: relative;
}

.nav-more-toggle[b-0z5s6xhl3b] {
    align-items: center;
    display: flex;
    gap: .3rem;
}

/* app.css' .nav-item::after (die Hover-Linie) setzt position:absolute für jedes
   ::after auf .nav-item - auch dieses hier, weil position pro Eigenschaft und nicht
   pro Regel kaskadiert. Der Chevron braucht seinen Platz im Fluss zurück. */
.nav-more-toggle[b-0z5s6xhl3b]::after {
    border: solid currentColor;
    border-width: 0 1.5px 1.5px 0;
    bottom: auto;
    content: "";
    height: .34rem;
    left: auto;
    position: static;
    right: auto;
    transform: rotate(45deg);
    width: .34rem;
}

.nav-more-panel[b-0z5s6xhl3b] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    box-shadow: 0 18px 40px -20px rgb(0 0 0 / 45%);
    display: none;
    flex-direction: column;
    gap: .1rem;
    left: 0;
    margin-top: .4rem;
    padding: .4rem;
    position: absolute;
    top: 100%;
    transform-origin: top left;
    width: 14.5rem;
    z-index: var(--z-overlay);
}

.nav-more-group[b-0z5s6xhl3b] {
    color: var(--text-quiet);
    font-family: var(--font-mono);
    font-size: .62rem;
    letter-spacing: .08em;
    padding: .5rem .5rem .3rem;
    text-transform: uppercase;
}

.nav-more-group:not(:first-child)[b-0z5s6xhl3b] {
    border-top: 1px solid var(--border-subtle);
    margin-top: .2rem;
}

.nav-more-panel.is-open[b-0z5s6xhl3b] {
    display: flex;
}

@media (prefers-reduced-motion: no-preference) {
    .nav-more-panel.is-open[b-0z5s6xhl3b] {
        animation: dropdown-in-b-0z5s6xhl3b .18s var(--ease-out) both;
    }

    @keyframes dropdown-in-b-0z5s6xhl3b {
        from {
            opacity: 0;
            transform: scale(.96) translateY(-4px);
        }

        to {
            opacity: 1;
            transform: none;
        }
    }
}

.topbar-actions[b-0z5s6xhl3b] {
    align-items: center;
    display: flex;
    flex: none;
    gap: 1rem;
    margin-left: auto;
}

.account-status[b-0z5s6xhl3b] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    font-size: .82rem;
    font-weight: 500;
    max-width: 12rem;
    overflow: hidden;
    padding: .4rem .85rem;
    text-decoration: none;
    text-overflow: ellipsis;
    transition: color .18s ease, background-color .18s ease;
    white-space: nowrap;
}

a.account-status:hover[b-0z5s6xhl3b] {
    background: var(--surface-3);
    color: var(--text-primary);
}

.api-link[b-0z5s6xhl3b],
.account-action[b-0z5s6xhl3b] {
    background: none;
    border: 0;
    color: var(--text-secondary);
    cursor: pointer;
    font-size: .86rem;
    font-weight: 500;
    padding: 0;
    text-decoration: none;
    transition: color .18s ease;
    white-space: nowrap;
}

.api-link:hover[b-0z5s6xhl3b],
.account-action:hover[b-0z5s6xhl3b] {
    color: var(--text-primary);
}

/* Anmelden für Gäste: neutrale Pille. Die Hauptaktion (Pink) gehört der Seite selbst. */
.api-cta[b-0z5s6xhl3b] {
    background: transparent;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-pill);
    color: var(--text-primary);
    font-size: .86rem;
    font-weight: 600;
    padding: .5rem 1.05rem;
    text-decoration: none;
    transition: background-color .18s ease;
    white-space: nowrap;
}

.api-cta:hover[b-0z5s6xhl3b] {
    background: var(--surface-3);
    color: var(--text-primary);
}

.menu-button[b-0z5s6xhl3b] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    cursor: pointer;
    display: none;
    flex: none;
    height: 2.3rem;
    position: relative;
    width: 2.3rem;
}

.menu-button span[aria-hidden][b-0z5s6xhl3b] {
    background: var(--text-primary);
    box-shadow: 0 -6px 0 var(--text-primary), 0 6px 0 var(--text-primary);
    height: 2px;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 1.05rem;
}

.nav-scrim[b-0z5s6xhl3b] {
    display: none;
}

.content[b-0z5s6xhl3b] {
    flex: 1;
    margin: 0 auto;
    max-width: 96rem;
    padding: clamp(1.6rem, 2.8vw, 2.6rem) clamp(1.1rem, 3vw, 2.4rem) 3.5rem;
    width: 100%;
}

/* Reserves the Dock's own width (Shared/Dock.razor.css) so its fixed-position rail never
   overlaps page content on viewports narrower than max-width - harmless on wider ones, and
   on guest pages where the Dock never renders. Dock hides itself below 860px, matching. */
@media (min-width: 901px) {
    .content[b-0z5s6xhl3b] {
        padding-right: calc(3.4rem + clamp(1.1rem, 3vw, 2.4rem));
    }

    /* Desktop reaches these through the Dock instead (Shared/Dock.razor.css agrees on the
       same 900px breakpoint). */
    .nav-mobile-only[b-0z5s6xhl3b] {
        display: none;
    }
}

.research-disclaimer[b-0z5s6xhl3b] {
    background: transparent;
    border-top: 1px solid var(--border-subtle);
    color: var(--text-muted);
    font-size: .78rem;
    line-height: 1.6;
    padding: 1.1rem clamp(1.1rem, 3vw, 2.4rem) 1.4rem;
}

.research-disclaimer p[b-0z5s6xhl3b] {
    margin: 0;
    max-width: 62rem;
}

.research-disclaimer strong[b-0z5s6xhl3b] {
    color: var(--text-primary);
    font-weight: 600;
}

@media (max-width: 900px) {
    .topbar[b-0z5s6xhl3b] {
        flex-wrap: wrap;
        height: auto;
        padding-block: .7rem;
    }

    .menu-button[b-0z5s6xhl3b] {
        display: block;
        order: 1;
    }

    .brand[b-0z5s6xhl3b] {
        order: 0;
    }

    .topbar-actions[b-0z5s6xhl3b] {
        order: 2;
    }

    .primary-nav[b-0z5s6xhl3b] {
        background: var(--surface-raised);
        border: 1px solid var(--border-subtle);
        border-radius: var(--radius);
        box-shadow: 0 18px 40px -20px rgb(0 0 0 / 45%);
        display: none;
        flex: none;
        flex-direction: column;
        gap: .1rem;
        left: 1rem;
        margin-inline: 0;
        order: 3;
        padding: .5rem;
        position: fixed;
        right: 1rem;
        top: 4.4rem;
        width: auto;
        z-index: var(--z-modal);
    }

    .primary-nav.is-open[b-0z5s6xhl3b] {
        display: flex;
    }

    @media (prefers-reduced-motion: no-preference) {
        .primary-nav.is-open[b-0z5s6xhl3b] {
            animation: dropdown-in-b-0z5s6xhl3b .2s var(--ease-out) both;
        }
    }

    .nav-more-panel[b-0z5s6xhl3b] {
        position: static;
        width: 100%;
    }
}

@media (max-width: 560px) {
    /* Eine Zeile: Einstellungen liegt im Menü, damit Logo, Anmelden und Umschalter nebeneinander passen. */
    .api-link[b-0z5s6xhl3b] {
        display: none;
    }

    .topbar[b-0z5s6xhl3b] {
        gap: .5rem;
        padding-inline: .9rem;
    }

    .brand .sq-live[b-0z5s6xhl3b] {
        display: none;
    }

    .api-cta[b-0z5s6xhl3b] {
        padding: .45rem .85rem;
    }

    .topbar-actions[b-0z5s6xhl3b] {
        flex: 0 1 auto;
        flex-wrap: nowrap;
        gap: .5rem;
        justify-content: flex-end;
        min-width: 0;
    }

    .account-status[b-0z5s6xhl3b] {
        display: none;
    }
}

/* Hinweis, wenn ein Kursalarm auslöst - über allem, unten mittig, damit er weder die
   Einwilligung (unten links) noch das Coach-Fenster (unten rechts) verdeckt. */
.alert-toast[b-0z5s6xhl3b] {
    align-items: center;
    background: var(--surface-raised, var(--app-background));
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    bottom: 1.2rem;
    box-shadow: 0 18px 40px -18px rgb(0 0 0 / 45%);
    display: flex;
    font-size: .86rem;
    gap: .9rem;
    left: 50%;
    max-width: min(28rem, calc(100vw - 2.4rem));
    padding: .8rem 1.1rem;
    position: fixed;
    transform: translateX(-50%);
    z-index: 60;
}

.alert-toast a[b-0z5s6xhl3b] {
    color: var(--text-primary);
    text-decoration: underline;
    text-decoration-color: var(--accent);
    font-weight: 600;
    white-space: nowrap;
}

.alert-toast button[b-0z5s6xhl3b] {
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
    padding: 0 .2rem;
}

/* Logo-Punkt neutral: Pink ist der Hauptaktion vorbehalten. */
.brand .sq-live[b-0z5s6xhl3b] {
    background: var(--text-muted);
}

/* Sehr schmal (320-380 px): der Hell/Dunkel-Umschalter liegt dann nur in den Einstellungen. */
@media (max-width: 380px) {
    .topbar-actions[b-0z5s6xhl3b]  .theme-toggle {
        display: none;
    }
}
/* /Layout/SiteLayout.razor.rz.scp.css */
/* Diese Hülle nutzt dieselben globalen Tokens wie die App (app.css) - keine eigene Palette mehr, damit Kopf- und Fußzeile automatisch mit
   jedem künftigen Token-Update Schritt halten. */
.site[b-44xkjidppd] {
    background: var(--app-background);
    display: flex;
    flex-direction: column;
    isolation: isolate;
    min-height: 100vh;
    position: relative;
    z-index: var(--z-base);
}

/* Kopf: Marke links, Rubriken, rechts die eine Aktion. Unten eine feine Linie. */
.site-header[b-44xkjidppd] {
    align-items: center;
    background: color-mix(in srgb, var(--app-background) 90%, transparent);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    gap: 2.4rem;
    height: 4.2rem;
    padding: 0 clamp(1.1rem, 4vw, 3rem);
    position: sticky;
    top: 0;
    z-index: var(--z-sticky);
}

.site-brand[b-44xkjidppd] {
    align-items: center;
    color: var(--text-primary);
    display: flex;
    text-decoration: none;
}

.site-brand:hover[b-44xkjidppd] {
    color: var(--text-primary);
}

.site-nav[b-44xkjidppd] {
    display: flex;
    gap: .25rem;
    margin-right: auto;
}

.site-nav a[b-44xkjidppd] {
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    font-size: .9rem;
    font-weight: 500;
    padding: .45rem .9rem;
    text-decoration: none;
    transition: color .18s ease, background-color .18s ease;
}

.site-nav a:hover[b-44xkjidppd] {
    background: var(--surface-hover);
    color: var(--text-primary);
}

.site-actions[b-44xkjidppd] {
    align-items: center;
    display: flex;
    gap: 1.3rem;
}

.site-actions .btn[b-44xkjidppd] {
    min-height: 2.5rem;
    padding: .6rem 1.2rem;
}

.site-link[b-44xkjidppd] {
    color: var(--text-secondary);
    font-size: .88rem;
    font-weight: 500;
    text-decoration: none;
    transition: color .18s ease;
}

.site-link:hover[b-44xkjidppd] {
    color: var(--text-primary);
}

main[b-44xkjidppd] {
    flex: 1;
}

.site-footer[b-44xkjidppd] {
    border-top: 1px solid var(--border-subtle);
    margin-top: 5rem;
    padding: 2.4rem clamp(1.1rem, 4vw, 3rem) 3rem;
}

.site-footer-mark[b-44xkjidppd] {
    --brand-counter: var(--app-background);
    color: var(--text-primary);
}

.site-footer-inner[b-44xkjidppd] {
    align-items: start;
    display: grid;
    gap: 1.6rem 3rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
    margin: 0 auto;
    max-width: 82rem;
}

.site-footer-note[b-44xkjidppd] {
    color: var(--text-muted);
    font-size: .8rem;
    line-height: 1.65;
    margin: 0;
    max-width: 40rem;
}

.site-footer-note strong[b-44xkjidppd] {
    color: var(--text-primary);
    font-weight: 600;
}

.site-footer-links[b-44xkjidppd] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.2rem;
}

.site-footer-links a[b-44xkjidppd] {
    color: var(--text-secondary);
    font-size: .84rem;
    text-decoration: none;
}

.site-footer-links a:hover[b-44xkjidppd] {
    color: var(--text-primary);
}

@media (max-width: 860px) {
    .site-nav[b-44xkjidppd] {
        display: none;
    }

    .site-header[b-44xkjidppd] {
        gap: 1rem;
        justify-content: space-between;
    }

    .site-footer-inner[b-44xkjidppd] {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 460px) {
    .site-link[b-44xkjidppd] {
        display: none;
    }
}
/* /Layout/ThemeToggle.razor.rz.scp.css */
.theme-toggle[b-czl9e5yse1] {
    align-items: center;
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    color: var(--text-primary);
    cursor: pointer;
    display: inline-flex;
    height: 2.5rem;
    justify-content: center;
    overflow: hidden;
    transition: background-color .2s var(--ease-out), color .2s var(--ease-out);
    width: 2.5rem;
}

.theme-toggle:hover[b-czl9e5yse1] {
    background: var(--surface-3);
    color: var(--text-primary);
}

.theme-toggle:focus-visible[b-czl9e5yse1] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.theme-toggle svg[b-czl9e5yse1] {
    fill: none;
    height: 1.05rem;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
    width: 1.05rem;
}

/* Ein frisches SVG (Sonne <-> Mond) ist ein neuer DOM-Knoten - dieselbe
   "Animation läuft beim Einhängen"-Regel wie bei den Dropdown-Panels. */
@media (prefers-reduced-motion: no-preference) {
    .theme-toggle svg[b-czl9e5yse1] {
        animation: theme-icon-in-b-czl9e5yse1 .3s var(--ease-spring) both;
    }

    @keyframes theme-icon-in-b-czl9e5yse1 {
        from {
            opacity: 0;
            rotate: -90deg;
            scale: .5;
        }

        to {
            opacity: 1;
            rotate: 0deg;
            scale: 1;
        }
    }
}
/* /Layout/WalletWidget.razor.rz.scp.css */
.wallet-widget[b-mrt4xibsr2] {
    position: relative;
}

.wallet-summary[b-mrt4xibsr2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.7rem;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    background: var(--surface-raised);
    color: var(--text-primary);
    font: inherit;
    font-family: var(--font-mono);
    font-size: 0.78rem;
    cursor: pointer;
    transition: background-color .2s var(--ease-out), color .2s var(--ease-out), transform .15s var(--ease-out);
}

.wallet-summary:hover[b-mrt4xibsr2] {
    background: var(--surface-3);
    color: var(--text-primary);
}

.wallet-balance[b-mrt4xibsr2] {
    font-weight: 600;
}

.wallet-level[b-mrt4xibsr2] {
    padding: 0.1rem 0.4rem;
    border: 0;
    border-radius: var(--radius-pill);
    background: var(--surface-3);
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.wallet-summary:hover .wallet-level[b-mrt4xibsr2] {
    color: inherit;
}

.wallet-popover[b-mrt4xibsr2] {
    position: absolute;
    top: calc(100% + 0.5rem);
    right: 0;
    z-index: 20;
    width: 15rem;
    padding: 0.9rem 1rem;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    background: var(--surface-raised);
    box-shadow: 0 18px 40px -20px rgb(0 0 0 / 45%);
    transform-origin: top right;
}

/* @if in WalletWidget.razor mounts/unmounts this element outright (no display
   toggle) - a plain CSS animation still runs on mount, since it starts fresh every
   time the node enters the DOM. */
@media (prefers-reduced-motion: no-preference) {
    .wallet-popover[b-mrt4xibsr2] {
        animation: wallet-popover-in-b-mrt4xibsr2 .18s var(--ease-out) both;
    }

    @keyframes wallet-popover-in-b-mrt4xibsr2 {
        from {
            opacity: 0;
            transform: scale(.96) translateY(-4px);
        }

        to {
            opacity: 1;
            transform: none;
        }
    }
}

.wallet-popover-row[b-mrt4xibsr2] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-size: 0.8rem;
    color: var(--text-secondary);
    margin-bottom: 0.35rem;
}

.wallet-xp-text[b-mrt4xibsr2] {
    font-size: 0.74rem;
    color: var(--text-quiet);
}

.wallet-xp-bar[b-mrt4xibsr2] {
    height: 5px;
    border-radius: var(--radius-pill);
    background: var(--border-subtle);
    overflow: hidden;
    margin-bottom: 0.8rem;
}

.wallet-xp-fill[b-mrt4xibsr2] {
    height: 100%;
    background: var(--text-secondary);
    transition: width 0.3s ease;
}

.wallet-claim[b-mrt4xibsr2] {
    width: 100%;
    padding: 0.5rem 0.8rem;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-pill);
    background: transparent;
    color: var(--text-primary);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color .2s var(--ease-out), color .2s var(--ease-out);
}

.wallet-claim:hover:not(:disabled)[b-mrt4xibsr2] {
    background: var(--surface-3);
    color: var(--text-primary);
}

.wallet-claim:disabled[b-mrt4xibsr2] {
    color: var(--text-quiet);
    background: transparent;
    cursor: default;
}

.wallet-error[b-mrt4xibsr2] {
    margin: 0.5rem 0 0;
    font-size: 0.74rem;
    color: var(--negative);
}
/* /Pages/AdminAnalytics.razor.rz.scp.css */
.admin-page[b-d9h2j6vuvn] {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    max-width: 62rem;
    min-width: 0;
}

.admin-head[b-d9h2j6vuvn] {
    align-items: flex-end;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
}

.admin-head h1[b-d9h2j6vuvn] {
    color: var(--text-primary);
    font-size: clamp(1.6rem, 3.4vw, 2.1rem);
    letter-spacing: -.015em;
    margin: .4rem 0 0;
}

.admin-controls[b-d9h2j6vuvn] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
}

.range[b-d9h2j6vuvn] {
    display: flex;
}

.range button[b-d9h2j6vuvn],
.refresh[b-d9h2j6vuvn] {
    background: none;
    border: 1px solid var(--border-strong, var(--border-subtle));
    color: var(--text-primary);
    cursor: pointer;
    font: inherit;
    font-size: .8rem;
    padding: .45rem .8rem;
}

.range button + button[b-d9h2j6vuvn] {
    border-left: 0;
}

.range button.is-on[b-d9h2j6vuvn] {
    background: var(--surface-3);
    color: var(--text-primary);
    font-weight: 600;
}

.refresh:disabled[b-d9h2j6vuvn] {
    cursor: default;
    opacity: .5;
}

.admin-note[b-d9h2j6vuvn] {
    color: var(--text-quiet);
    font-size: .76rem;
    line-height: 1.55;
    margin: 0;
}

.cards[b-d9h2j6vuvn] {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
}

.card[b-d9h2j6vuvn] {
    border: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: .35rem;
    margin: 0 -1px -1px 0;
    padding: .9rem 1rem;
}

.card-label[b-d9h2j6vuvn] {
    color: var(--text-muted);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.card strong[b-d9h2j6vuvn] {
    color: var(--text-primary);
    font-size: 1.7rem;
    font-weight: 700;
}

.block[b-d9h2j6vuvn] {
    border-top: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: .9rem;
    min-width: 0;
    padding-top: 1.2rem;
}

.block h2[b-d9h2j6vuvn] {
    font-size: 1.05rem;
    margin: 0;
}

.block-head[b-d9h2j6vuvn] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    justify-content: space-between;
}

.funnel-pick select[b-d9h2j6vuvn] {
    background: var(--surface-inset, transparent);
    border: 1px solid var(--border-strong, var(--border-subtle));
    color: var(--text-primary);
    font: inherit;
    font-size: .82rem;
    padding: .45rem .6rem;
}

.funnel[b-d9h2j6vuvn] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.funnel-label[b-d9h2j6vuvn] {
    align-items: baseline;
    display: flex;
    font-size: .86rem;
    gap: 1rem;
    justify-content: space-between;
}

.funnel-label small[b-d9h2j6vuvn] {
    color: var(--text-quiet);
    font-size: .72rem;
    margin-left: .6rem;
}

.funnel-track[b-d9h2j6vuvn] {
    background: var(--surface-inset, var(--border-subtle));
    height: .7rem;
    margin-top: .35rem;
}

.funnel-track span[b-d9h2j6vuvn] {
    background: var(--text-secondary);
    display: block;
    height: 100%;
    min-width: 2px;
}

.funnel-step.is-worst .funnel-track span[b-d9h2j6vuvn] {
    background: var(--negative);
}

.funnel-drop[b-d9h2j6vuvn] {
    color: var(--text-quiet);
    font-size: .74rem;
    margin: .3rem 0 0;
}

.funnel-step.is-worst .funnel-drop[b-d9h2j6vuvn] {
    color: var(--negative);
    font-weight: 600;
}

.two-col[b-d9h2j6vuvn] {
    display: grid;
    gap: 1.6rem;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
}

.stack[b-d9h2j6vuvn] {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    min-width: 0;
}

.table[b-d9h2j6vuvn] {
    border-collapse: collapse;
    font-size: .82rem;
    width: 100%;
}

.table th[b-d9h2j6vuvn] {
    color: var(--text-muted);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .06em;
    padding: .4rem .5rem;
    text-align: left;
    text-transform: uppercase;
}

.table td[b-d9h2j6vuvn] {
    border-top: 1px solid var(--border-subtle);
    padding: .5rem;
    vertical-align: top;
}

.table .num[b-d9h2j6vuvn] {
    text-align: right;
    white-space: nowrap;
}

.bar[b-d9h2j6vuvn] {
    background: var(--surface-inset, var(--border-subtle));
    display: block;
    height: .3rem;
    margin-top: .3rem;
}

.bar span[b-d9h2j6vuvn] {
    background: var(--text-secondary);
    display: block;
    height: 100%;
}

.toplist[b-d9h2j6vuvn] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.toplist li[b-d9h2j6vuvn] {
    border-top: 1px solid var(--border-subtle);
    display: flex;
    font-size: .82rem;
    gap: 1rem;
    justify-content: space-between;
    padding: .45rem 0;
}

.recent .context[b-d9h2j6vuvn] {
    color: var(--text-quiet);
    font-family: var(--font-mono, monospace);
    font-size: .72rem;
    word-break: break-all;
}

@media (max-width: 820px) {
    .two-col[b-d9h2j6vuvn] {
        grid-template-columns: 1fr;
    }

    .recent[b-d9h2j6vuvn] {
        display: block;
        overflow-x: auto;
    }
}
/* /Pages/Analyse.razor.rz.scp.css */
.dashboard-page[b-t3crqv9hvg] {
    min-width: 0;
    position: relative;
}

.analyse-search[b-t3crqv9hvg] {
    border-bottom: 1px solid var(--border-subtle);
    margin-bottom: 1.2rem;
    padding-bottom: 1.1rem;
}

.dashboard-grid[b-t3crqv9hvg] {
    display: flex;
    flex-direction: column;
}

.refresh-status[b-t3crqv9hvg] {
    align-items: center;
    color: var(--text-quiet);
    display: flex;
    font-size: 0.74rem;
    gap: .5rem;
    margin: 0 0 1rem;
}

.refresh-status span[b-t3crqv9hvg] {
    animation: dashboard-pulse-b-t3crqv9hvg 1.1s ease-in-out infinite;
    background: var(--text-secondary);
    border-radius: 50%;
    height: .42rem;
    width: .42rem;
}

.inline-error[b-t3crqv9hvg] {
    align-items: center;
    border-left: 2px solid var(--negative);
    color: var(--text-secondary);
    display: flex;
    font-size: .74rem;
    gap: .75rem;
    margin: 0 0 1.1rem;
    padding: .1rem 0 .1rem .85rem;
}

.inline-error > span[b-t3crqv9hvg],
.state-icon[b-t3crqv9hvg] {
    display: none;
}

.inline-error p[b-t3crqv9hvg] {
    flex: 1;
    margin: 0;
}

.inline-error button[b-t3crqv9hvg],
.page-state button[b-t3crqv9hvg] {
    background: none;
    border: 0;
    border-bottom: 1px solid currentColor;
    color: var(--text-primary);
    cursor: pointer;
    font-size: 0.74rem;
    font-weight: 500;
    padding: 0;
}

.inline-error button:hover:not(:disabled)[b-t3crqv9hvg],
.page-state button:hover[b-t3crqv9hvg] {
    color: var(--text-primary);
}

.inline-error button:focus-visible[b-t3crqv9hvg],
.page-state button:focus-visible[b-t3crqv9hvg] {
    outline: 2px solid var(--accent-bright);
    outline-offset: 2px;
}

.inline-error button:disabled[b-t3crqv9hvg] {
    cursor: wait;
    opacity: .55;
}

.dashboard-footnote[b-t3crqv9hvg] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    margin: .7rem .15rem 0;
    text-align: right;
}

.footnote-stale[b-t3crqv9hvg] {
    color: var(--negative);
}

.page-state[b-t3crqv9hvg] {
    align-items: center;
    border-top: 1px solid var(--border-subtle);
    display: flex;
    gap: 1.3rem;
    min-height: 16rem;
    padding-top: clamp(1.5rem, 4vw, 2.5rem);
}

.page-state h1[b-t3crqv9hvg] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    letter-spacing: -.015em;
    margin: .4rem 0 .5rem;
}

.page-state p:not(.eyebrow)[b-t3crqv9hvg] {
    color: var(--text-muted);
    font-size: .82rem;
    font-weight: 400;
    margin-bottom: 1rem;
}

.loading-mark[b-t3crqv9hvg] {
    align-items: end;
    display: flex;
    flex: 0 0 auto;
    gap: 3px;
    height: 1.8rem;
    justify-content: center;
    width: 1.8rem;
}

.loading-mark span[b-t3crqv9hvg] {
    animation: dashboard-bars-b-t3crqv9hvg 1.15s ease-in-out infinite;
    background: var(--text-secondary);
    border-radius: 5px;
    height: 45%;
    width: 4px;
}

.loading-mark span:nth-child(2)[b-t3crqv9hvg] {
    animation-delay: .12s;
    height: 90%;
}

.loading-mark span:nth-child(3)[b-t3crqv9hvg] {
    animation-delay: .24s;
    height: 65%;
}

.error-state[b-t3crqv9hvg] {
    border-color: color-mix(in srgb, var(--negative) 28%, var(--border-subtle));
}

.error-state .state-icon[b-t3crqv9hvg] {
    height: 2rem;
    width: 2rem;
}

@keyframes dashboard-pulse-b-t3crqv9hvg {
    0%, 100% { opacity: .35; transform: scale(.85); }
    50% { opacity: 1; transform: scale(1.15); }
}

@keyframes dashboard-bars-b-t3crqv9hvg {
    0%, 100% { opacity: .35; transform: scaleY(.72); }
    50% { opacity: 1; transform: scaleY(1); }
}

@media (max-width: 1120px) {
    .dashboard-grid[b-t3crqv9hvg] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 580px) {
    .inline-error[b-t3crqv9hvg] {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .inline-error p[b-t3crqv9hvg] {
        min-width: calc(100% - 2rem);
    }

    .inline-error button[b-t3crqv9hvg] {
        margin-left: 1.85rem;
    }

    .dashboard-footnote[b-t3crqv9hvg] {
        line-height: 1.5;
        text-align: left;
    }

    .page-state[b-t3crqv9hvg] {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (prefers-reduced-motion: reduce) {
    .refresh-status span[b-t3crqv9hvg],
    .loading-mark span[b-t3crqv9hvg] {
        animation: none;
    }
}

/* ── Analyse/Replay mode toggle + Replay workspace (Premium-Kit Bausteine 07/22/36 adapted) ── */

.mode-row[b-t3crqv9hvg] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    margin: 1.1rem 0;
}

.mode-toggle[b-t3crqv9hvg] {
    margin: 0;
    max-width: 18rem;
}

.fullscreen-toggle[b-t3crqv9hvg] {
    flex: 0 0 auto;
}

/* Vollbild is the chart and nothing else: everything that normally sits around it (price
   header, mode switch, replay ticket/journal, footnotes) disappears, and the two controls that
   still matter - the drawing-tool rail and the timeframe switcher - float as their own layer
   directly over the chart rather than pushing it into a narrower column. ::deep reaches into
   AssetHeader's and MarketChart's own rendered markup from here without editing either file. */
.dashboard-page:fullscreen[b-t3crqv9hvg] {
    background: var(--paper);
    display: block;
    height: 100vh;
    overflow: hidden;
    padding: 0;
    position: relative;
    width: 100vw;
}

.dashboard-page:fullscreen[b-t3crqv9hvg]  .asset-identity,
.dashboard-page:fullscreen[b-t3crqv9hvg]  .quote-block,
.dashboard-page:fullscreen .mode-toggle[b-t3crqv9hvg],
.dashboard-page:fullscreen .refresh-status[b-t3crqv9hvg],
.dashboard-page:fullscreen .inline-error[b-t3crqv9hvg],
.dashboard-page:fullscreen .replay-intro-line[b-t3crqv9hvg],
.dashboard-page:fullscreen .dashboard-footnote[b-t3crqv9hvg],
.dashboard-page:fullscreen[b-t3crqv9hvg]  .chart-header {
    display: none;
}

.dashboard-page:fullscreen[b-t3crqv9hvg]  .asset-header {
    border-bottom: 0;
    margin: 0;
    padding: 0;
}

.dashboard-page:fullscreen .mode-row[b-t3crqv9hvg] {
    inset: .8rem auto auto .8rem;
    margin: 0;
    position: fixed;
    width: auto;
    z-index: 30;
}

.dashboard-page:fullscreen[b-t3crqv9hvg]  .timeframe-control {
    background: var(--paper);
    border: 1px solid var(--border-subtle);
    inset: .8rem .8rem auto auto;
    padding: .5rem .7rem;
    position: fixed;
    z-index: 30;
}

.dashboard-page:fullscreen .dashboard-grid[b-t3crqv9hvg],
.dashboard-page:fullscreen .replay-workspace[b-t3crqv9hvg],
.dashboard-page:fullscreen .replay-main[b-t3crqv9hvg] {
    display: block;
    height: 100vh;
}

.dashboard-page:fullscreen .replay-side[b-t3crqv9hvg],
.dashboard-page:fullscreen .replaybar[b-t3crqv9hvg],
.dashboard-page:fullscreen .replay-clock[b-t3crqv9hvg] {
    display: none;
}

.dashboard-page:fullscreen[b-t3crqv9hvg]  .score-strip {
    display: none;
}

/* !important throughout this block: MarketChart.razor.css sets its own unconditional height on
   .chart-card/.chart-host (e.g. the min(44rem,72vh) sizing) with equal CSS specificity to a
   ::deep rule from here, so source order alone would decide the winner - observed live as the
   chart rendering at its normal small size inside an otherwise-100vh fullscreen page (a mostly
   empty black viewport with a tiny, garbled chart crammed in one corner). Vollbild must always
   win regardless of load order. */
.dashboard-page:fullscreen[b-t3crqv9hvg]  .chart-card {
    border-top: 0 !important;
    height: 100vh !important;
    min-height: 0 !important;
    padding-top: 0 !important;
}

.dashboard-page:fullscreen[b-t3crqv9hvg]  .chart-stage {
    /* .rail becomes position:fixed below, which removes it from grid layout entirely - grid
       auto-placement then packed .chart-panel (the only item still in flow) into the grid's
       FIRST column track (2.6rem, meant for the now-absent rail) instead of the second (1fr),
       observed live as a ~42px-wide chart. One column is simplest and correct here: the rail
       isn't part of this layout anymore, it's a floating overlay on top of it. */
    border: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    height: 100vh !important;
}

/* The chart engine draws its own OHLC legend inside the canvas at the pane's top-left corner
   (see the "BTC 1D O ... H ... L ... C ..." line in the normal view) - floating the rail at the
   very top-left collided with it. Giving the pane some top padding pushes the engine's own
   drawing down, clear of the floating rail/exit button above it. */
.dashboard-page:fullscreen[b-t3crqv9hvg]  .chart-panel {
    height: 100vh !important;
    padding-top: 3.6rem;
}

.dashboard-page:fullscreen[b-t3crqv9hvg]  .rail {
    background: var(--paper);
    border: 1px solid var(--border-subtle);
    inset: 4.2rem auto auto .8rem;
    position: fixed;
    z-index: 30;
}

.dashboard-page:fullscreen[b-t3crqv9hvg]  .chart-host {
    /* .chart-panel is a flex column (base CSS) - with the statusbar pulled out of flow (fixed,
       below) and the panel itself padded at the top for the engine's own legend, flex:1 lets
       this simply take whatever's left rather than racing chart-panel's height on a fixed value. */
    flex: 1 1 auto !important;
    height: auto !important;
}

.dashboard-page:fullscreen[b-t3crqv9hvg]  .chart-statusbar {
    background: var(--paper);
    border: 1px solid var(--border-subtle);
    inset: auto .8rem .8rem .8rem;
    position: fixed;
    z-index: 30;
}

.seg[b-t3crqv9hvg] {
    border: 1px solid var(--border-strong);
    display: inline-grid;
    grid-template-columns: 1fr 1fr;
    position: relative;
}

.seg.full[b-t3crqv9hvg] {
    display: grid;
    width: 100%;
}

.seg button[b-t3crqv9hvg] {
    background: transparent;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font: inherit;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .1em;
    padding: .6rem 1rem;
    position: relative;
    text-align: center;
    text-transform: uppercase;
    transition: color 240ms var(--ease-out);
    z-index: 1;
}

.seg button[aria-pressed="true"][b-t3crqv9hvg] {
    color: var(--text-primary);
}

.seg button:focus-visible[b-t3crqv9hvg] {
    outline: .5px solid var(--accent);
    outline-offset: -4px;
}

.seg__thumb[b-t3crqv9hvg] {
    background: var(--text-secondary);
    bottom: 0;
    left: 0;
    position: absolute;
    top: 0;
    transition: transform 300ms var(--ease-out), background 300ms ease;
    width: 50%;
}

.seg[data-side="sell"] .seg__thumb[b-t3crqv9hvg],
.seg[data-side="second"] .seg__thumb[b-t3crqv9hvg] {
    transform: translateX(100%);
}

.seg[data-side="sell"] .seg__thumb[b-t3crqv9hvg] {
    background: var(--negative);
}

.seg.speed button[b-t3crqv9hvg] {
    padding: .5rem .7rem;
}

.replay-intro-line .badge[b-t3crqv9hvg] {
    color: var(--text-quiet);
    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .06em;
    margin: 0 0 .9rem;
    text-transform: uppercase;
}

.replay-workspace[b-t3crqv9hvg] {
    display: grid;
    gap: 1.6rem;
    grid-template-columns: minmax(0, 1fr) 320px;
}

.replay-main[b-t3crqv9hvg] {
    min-width: 0;
}

.replaybar[b-t3crqv9hvg] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    margin-top: .7rem;
}

.btn-ghost[b-t3crqv9hvg] {
    background: transparent;
    border: 1px solid var(--border-subtle);
    color: var(--text-primary);
    cursor: pointer;
    font: inherit;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .08em;
    padding: .55rem 1rem;
    text-transform: uppercase;
}

.btn-ghost:hover:not(:disabled)[b-t3crqv9hvg] {
    background: var(--surface-hover);
}

.btn-ghost:disabled[b-t3crqv9hvg] {
    cursor: not-allowed;
    opacity: .45;
}

.replay-clock[b-t3crqv9hvg] {
    color: var(--text-quiet);
    font-size: .76rem;
    margin: .6rem 0 0;
}

.replay-side[b-t3crqv9hvg] {
    display: flex;
    flex-direction: column;
    gap: 1.3rem;
    min-width: 0;
}

.panel[b-t3crqv9hvg] {
    border: 1px solid var(--border-subtle);
    display: grid;
    gap: .8rem;
    padding: 1.1rem;
}

.panel h2[b-t3crqv9hvg] {
    align-items: center;
    color: var(--text-muted);
    display: flex;
    font-size: .68rem;
    font-weight: 600;
    justify-content: space-between;
    letter-spacing: .14em;
    margin: 0;
    text-transform: uppercase;
}

.tag[b-t3crqv9hvg] {
    border: 1px solid var(--border-subtle);
    color: var(--text-muted);
    font-size: .58rem;
    letter-spacing: .1em;
    padding: .1rem .4rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.grid2[b-t3crqv9hvg] {
    display: grid;
    gap: .6rem;
    grid-template-columns: 1fr 1fr;
}

.field[b-t3crqv9hvg] {
    display: grid;
    gap: .3rem;
}

.field span[b-t3crqv9hvg] {
    color: var(--text-quiet);
    font-size: .58rem;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.field input[b-t3crqv9hvg] {
    background: var(--paper-raised);
    border: 1px solid var(--border-subtle);
    color: var(--text-primary);
    font: inherit;
    font-variant-numeric: tabular-nums;
    padding: .5rem .6rem;
    width: 100%;
}

.field input:focus-visible[b-t3crqv9hvg] {
    outline: 1px solid var(--accent);
    outline-offset: 1px;
}

.kv[b-t3crqv9hvg] {
    display: grid;
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
    gap: .25rem .8rem;
    grid-template-columns: 1fr auto;
    margin: 0;
}

.kv dt[b-t3crqv9hvg] {
    color: var(--text-quiet);
}

.kv dd[b-t3crqv9hvg] {
    margin: 0;
    text-align: right;
}

.order-submit[b-t3crqv9hvg] {
    background: var(--accent);
    border: 0;
    color: var(--on-accent);
    cursor: pointer;
    font: inherit;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .1em;
    padding: .7rem 1rem;
    text-transform: uppercase;
    width: 100%;
}

.order-submit:disabled[b-t3crqv9hvg] {
    cursor: not-allowed;
    opacity: .45;
}

.order-message[b-t3crqv9hvg] {
    font-size: .78rem;
    margin: 0;
}

.order-message.is-error[b-t3crqv9hvg] {
    color: var(--negative);
}

.note[b-t3crqv9hvg] {
    color: var(--text-quiet);
    font-size: .72rem;
    line-height: 1.55;
    margin: 0;
}

.empty[b-t3crqv9hvg] {
    color: var(--text-quiet);
    font-size: .78rem;
    margin: 0;
}

.pos[b-t3crqv9hvg] { color: var(--positive); }
.neg[b-t3crqv9hvg] { color: var(--negative); }
.neutral[b-t3crqv9hvg] { color: var(--text-muted); }

/* Baustein 07, Beleg */
.receipt[b-t3crqv9hvg] {
    background: var(--paper-raised);
    border: 1px solid var(--border-subtle);
    display: grid;
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
    gap: .35rem;
    padding: 1.1rem;
}

.receipt__row[b-t3crqv9hvg] {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.receipt__rule[b-t3crqv9hvg] {
    border-top: 1px dashed var(--border-subtle);
    margin-block: .5rem;
}

.receipt__total[b-t3crqv9hvg] {
    font-size: .95rem;
    font-weight: 800;
}

.receipt__foot[b-t3crqv9hvg] {
    color: var(--text-muted);
    font-size: var(--t-label-size);
    letter-spacing: .12em;
    text-transform: uppercase;
}

.trades[b-t3crqv9hvg] {
    display: grid;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Baustein 22, Aufklappen - trade journal rows and feedback rule lists */
.fold[b-t3crqv9hvg] {
    border-top: 1px solid var(--border-subtle);
}

.fold__head[b-t3crqv9hvg] {
    all: unset;
    box-sizing: border-box;
    cursor: pointer;
    display: flex;
    font-size: .8rem;
    gap: 1rem;
    justify-content: space-between;
    padding: .7rem 0;
    width: 100%;
}

.fold__head:focus-visible[b-t3crqv9hvg] {
    outline: .5px solid var(--accent);
    outline-offset: 2px;
}

.fold__sign[b-t3crqv9hvg] {
    flex: none;
    height: 10px;
    margin-top: .3rem;
    position: relative;
    width: 10px;
}

.fold__sign[b-t3crqv9hvg]::before,
.fold__sign[b-t3crqv9hvg]::after {
    border-top: 1px solid var(--border-strong);
    content: '';
    left: 0;
    position: absolute;
    right: 0;
    top: 50%;
    transition: transform 320ms var(--ease-out);
}

.fold__sign[b-t3crqv9hvg]::after {
    transform: rotate(90deg);
}

.fold[data-open="true"] .fold__sign[b-t3crqv9hvg]::after {
    transform: rotate(0deg);
}

.fold__body[b-t3crqv9hvg] {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 360ms var(--ease-out);
}

.fold[data-open="true"] .fold__body[b-t3crqv9hvg] {
    grid-template-rows: 1fr;
}

.fold__inner[b-t3crqv9hvg] {
    overflow: hidden;
}

.fold__inner > div[b-t3crqv9hvg] {
    color: var(--text-secondary);
    display: grid;
    font-size: .78rem;
    gap: .4rem;
    padding: 0 0 .9rem;
}

.feedback-row[b-t3crqv9hvg] {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-bottom: .3rem;
    margin-top: .8rem;
}

@media (max-width: 980px) {
    .replay-workspace[b-t3crqv9hvg] {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .seg__thumb[b-t3crqv9hvg],
    .fold__sign[b-t3crqv9hvg]::before,
    .fold__sign[b-t3crqv9hvg]::after,
    .fold__body[b-t3crqv9hvg] {
        transition: none;
    }
}
/* /Pages/Backtesting.razor.rz.scp.css */
.concept-page[b-yq8llsnntz] {
    display: flex;
    flex-direction: column;
    gap: 2.2rem;
    max-width: 60rem;
}

.concept-page-intro h1[b-yq8llsnntz] {
    color: var(--text-primary);
    font-size: clamp(1.6rem, 3.4vw, 2.15rem);
    letter-spacing: -.015em;
    margin: .5rem 0 .6rem;
}

.concept-page-intro p:not(.eyebrow)[b-yq8llsnntz] {
    color: var(--text-muted);
    font-size: .85rem;
    font-weight: 400;
    line-height: 1.7;
    margin: 0;
}

.concept-page-intro a[b-yq8llsnntz] {
    color: var(--text-primary);
}

.concept-grid[b-yq8llsnntz] {
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
}
/* /Pages/Channels.razor.rz.scp.css */
.channels-page[b-hh9xzxk6bj] {
    max-width: 34rem;
    margin: 0 auto;
}
/* /Pages/ChartLab.razor.rz.scp.css */
.lab[b-x0il5owllk] { max-width: 1400px; margin: auto; padding: clamp(16px, 3vw, 40px); color: #e7edf6; background: #0b111b; min-height: 100vh; }
.lab h1[b-x0il5owllk] { font-size: clamp(1.7rem, 4vw, 2.6rem); margin: 16px 0; }
.lab h2[b-x0il5owllk] { font-size: 1.3rem; margin-top: 0; }
.lab p[b-x0il5owllk], .provenance[b-x0il5owllk] { line-height: 1.6; }
.lab a[b-x0il5owllk] { color: #83ccff; }
.badge[b-x0il5owllk] { color: #ffc96a; font-size: .8rem; letter-spacing: .08em; }
.panel[b-x0il5owllk] { padding: clamp(16px, 2vw, 26px); margin-top: 20px; border: 1px solid #2e3c50; border-radius: 14px; background: #101a28; }
.provenance[b-x0il5owllk] { display: grid; gap: 8px; color: #bfcde0; }
.toolbar[b-x0il5owllk] { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; }
.lab button[b-x0il5owllk], .lab input[b-x0il5owllk] { background: #1b2c41; color: #f3f7fd; border: 1px solid #6381a4; border-radius: 6px; padding: 10px 12px; min-height: 44px; font: inherit; }
.lab button[b-x0il5owllk] { cursor: pointer; }
.lab button:hover:not(:disabled)[b-x0il5owllk] { background: #2c4663; }
.lab button:disabled[b-x0il5owllk] { opacity: .45; cursor: default; }
.lab :focus-visible[b-x0il5owllk] { outline: 3px solid #ffc96a; outline-offset: 3px; }
.lab label[b-x0il5owllk] { display: grid; gap: 6px; }
.lab input[b-x0il5owllk] { width: 145px; max-width: 100%; }
.chart[b-x0il5owllk] { height: 430px; margin-top: 18px; position: relative; }
.chart-line-handle[b-x0il5owllk] { position: absolute; width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; background: #bd9aff; border: 2px solid #101a28; pointer-events: none; z-index: 5; }
.readout[b-x0il5owllk] { font-variant-numeric: tabular-nums; min-height: 3.2em; color: #cfdeef; }
.table-scroll[b-x0il5owllk] { overflow: auto; max-height: 460px; }
table[b-x0il5owllk] { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
caption[b-x0il5owllk] { text-align: left; padding: 14px 0; color: #bfcde0; }
th[b-x0il5owllk], td[b-x0il5owllk] { padding: 10px; white-space: nowrap; text-align: right; border-bottom: 1px solid #30415a; }
th:first-child[b-x0il5owllk] { text-align: left; }
.selected[b-x0il5owllk] { background: #263e56; }
pre[b-x0il5owllk] { white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 600px) { .chart[b-x0il5owllk] { height: 340px; } .toolbar button[b-x0il5owllk] { flex-grow: 1; } }
/* /Pages/Coach.razor.rz.scp.css */
.coach-page[b-a6zr22ub1m] {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    max-width: 50rem;
    min-width: 0;
}

.coach-intro h1[b-a6zr22ub1m] {
    margin: 0 0 .6rem;
}

.coach-intro p[b-a6zr22ub1m] {
    color: var(--text-muted);
    font-size: .93rem;
    line-height: 1.7;
    margin: 0;
    max-width: 62ch;
}
/* /Pages/Datenschutz.razor.rz.scp.css */
.privacy-page[b-6obijtmszz] {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    max-width: 44rem;
    min-width: 0;
}

.privacy-page h1[b-6obijtmszz] {
    color: var(--text-primary);
    font-size: clamp(1.6rem, 3.4vw, 2.1rem);
    letter-spacing: -.015em;
    margin: .5rem 0 .8rem;
}

.privacy-page h2[b-6obijtmszz] {
    font-size: 1.15rem;
    margin: 0 0 .6rem;
}

.privacy-page h3[b-6obijtmszz] {
    font-size: .8rem;
    letter-spacing: .06em;
    margin: 1.2rem 0 .3rem;
    text-transform: uppercase;
}

.privacy-page p[b-6obijtmszz],
.privacy-page li[b-6obijtmszz] {
    color: var(--text-muted);
    font-size: .86rem;
    line-height: 1.65;
}

.privacy-page ul[b-6obijtmszz] {
    margin: 0;
    padding-left: 1.2rem;
}

.placeholder-note[b-6obijtmszz] {
    border: 1px dashed var(--border-strong);
    margin: 0;
    padding: .7rem .9rem;
}

.privacy-choice[b-6obijtmszz] {
    border-top: 1px solid var(--border-subtle);
    padding-top: 1.3rem;
}

.privacy-actions[b-6obijtmszz] {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.privacy-actions button[b-6obijtmszz] {
    background: none;
    border: 1px solid var(--border-strong, var(--border-subtle));
    color: var(--text-primary);
    cursor: pointer;
    font: inherit;
    font-size: .84rem;
    padding: .55rem 1rem;
}

.privacy-actions button:disabled[b-6obijtmszz] {
    cursor: default;
    opacity: .45;
}
/* /Pages/Depot.razor.rz.scp.css */
.depot-page[b-yvycym9rwo] {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    min-width: 0;
}

.depot-intro h1[b-yvycym9rwo] {
    color: var(--text-primary);
    font-size: clamp(1.6rem, 3.4vw, 2.15rem);
    letter-spacing: -.015em;
    margin: .5rem 0 .6rem;
}

.depot-intro p:not(.eyebrow)[b-yvycym9rwo] {
    color: var(--text-muted);
    font-size: .85rem;
    font-weight: 400;
    line-height: 1.7;
    margin: 0;
    max-width: 44rem;
}

.add-position[b-yvycym9rwo] {
    align-items: end;
    border-top: 1px solid var(--border-subtle);
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1.2rem 0;
}

.add-position .field[b-yvycym9rwo] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.add-position label[b-yvycym9rwo] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: .02em;
}

.add-position input[b-yvycym9rwo] {
    background: none;
    border: 0;
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-primary);
    font: inherit;
    font-size: .85rem;
    padding: .4rem .1rem;
    width: 8rem;
}

.add-position input:focus[b-yvycym9rwo] {
    border-bottom-color: var(--accent);
    outline: none;
}

.add-position button[b-yvycym9rwo] {
    background: var(--accent);
    border: 0;
    color: var(--app-background);
    cursor: pointer;
    font-size: .8rem;
    font-weight: 600;
    padding: .6rem 1.2rem;
}

.add-position button:hover:not(:disabled)[b-yvycym9rwo] {
    background: var(--accent-bright);
}

.add-position button:disabled[b-yvycym9rwo] {
    cursor: not-allowed;
    opacity: .5;
}

.form-error[b-yvycym9rwo] {
    color: var(--negative);
    font-size: .78rem;
}

.page-state[b-yvycym9rwo] {
    color: var(--text-muted);
    font-size: .82rem;
    padding: 1rem 0;
}

.table-scroll[b-yvycym9rwo] {
    overflow-x: auto;
}

table[b-yvycym9rwo] {
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
    width: 100%;
}

th[b-yvycym9rwo] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: .02em;
    padding: .6rem;
    text-align: right;
    white-space: nowrap;
}

th:first-child[b-yvycym9rwo] {
    text-align: left;
}

td[b-yvycym9rwo] {
    border-top: 1px solid var(--border-subtle);
    padding: .7rem .6rem;
    text-align: right;
    white-space: nowrap;
}

td:first-child[b-yvycym9rwo] {
    text-align: left;
}

.positive[b-yvycym9rwo] { color: var(--positive); }
.negative[b-yvycym9rwo] { color: var(--negative); }
.neutral[b-yvycym9rwo] { color: var(--text-muted); }

.link-button[b-yvycym9rwo] {
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 0.74rem;
    text-decoration: underline;
}

.link-button:hover[b-yvycym9rwo] {
    color: var(--negative);
}

.csv-import[b-yvycym9rwo] {
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding-bottom: 1.2rem;
}

.csv-import label[b-yvycym9rwo] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: .02em;
}

.csv-import-errors[b-yvycym9rwo] {
    color: var(--negative);
    font-size: .78rem;
    margin: 0;
    padding-left: 1.2rem;
}

.csv-import-hint[b-yvycym9rwo] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    line-height: 1.6;
    margin: 0;
    max-width: 42rem;
}

/* Hides the native, browser-styled file input entirely rather than trying to restyle it
   in place (its own button + "no file chosen" text render very differently per browser) -
   the invisible <InputFile> stacks on top of this label and receives the click instead. No
   box/border here on purpose - matches the plain underlined "Entfernen"/link-button language
   used everywhere else on this page, not a boxed button. */
.file-input-button[b-yvycym9rwo] {
    color: var(--text-quiet);
    cursor: pointer;
    display: inline-flex;
    font-size: .78rem;
    position: relative;
    text-decoration: underline;
    width: fit-content;
}

.file-input-button:hover[b-yvycym9rwo] {
    color: var(--text-primary);
}

.broker-manage[b-yvycym9rwo] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

/* ::deep is required, not decorative. <InputFile> is a separate component, so the <input> it
   renders never receives THIS component's scope attribute - a plain
   `.file-input-button input[type="file"]` rule compiles to a selector that can never match, and
   the browser's own file button plus its "no file chosen" text stayed fully visible next to the
   label. ::deep moves the scope onto the ancestor instead, which this component does own. */
.file-input-button[b-yvycym9rwo]  input[type="file"] {
    cursor: pointer;
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    width: 100%;
}

.position-cell[b-yvycym9rwo] {
    align-items: center;
    display: flex;
    gap: .55rem;
}

.position-logo[b-yvycym9rwo],
.position-logo-fallback[b-yvycym9rwo] {
    border-radius: 50%;
    flex: 0 0 auto;
    height: 1.55rem;
    object-fit: cover;
    width: 1.55rem;
}

/* Shown only when there is no logo, or when the CDN 404s for this ticker - a neutral badge,
   never another company's icon. */
.position-logo-fallback[b-yvycym9rwo] {
    align-items: center;
    background: var(--surface-inset, rgb(127 127 127 / 18%));
    color: var(--text-quiet);
    display: none;
    font-size: 0.74rem;
    font-weight: 700;
    justify-content: center;
    letter-spacing: .02em;
}

.position-identity[b-yvycym9rwo] {
    min-width: 0;
}

/* The readable company name leads, the ticker is the quiet second line - a broker export
   keys rows by ISIN, which says nothing to a reader. */
.position-name[b-yvycym9rwo] {
    color: var(--text-primary);
    display: block;
    font-size: .82rem;
    font-weight: 550;
    white-space: nowrap;
}

.position-ticker[b-yvycym9rwo] {
    color: var(--text-quiet);
    display: block;
    font-size: 0.74rem;
    font-weight: 400;
    letter-spacing: .04em;
    white-space: nowrap;
}

.depot-body[b-yvycym9rwo] {
    display: grid;
    gap: 2rem;
    grid-template-columns: minmax(0, 1fr) 18rem;
}

.depot-list[b-yvycym9rwo] {
    display: flex;
    flex-direction: column;
    gap: .8rem;
    min-width: 0;
}

.depot-tabs[b-yvycym9rwo] {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.depot-tabs button[b-yvycym9rwo] {
    background: none;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-muted);
    cursor: pointer;
    font-size: 0.74rem;
    padding: .35rem .8rem;
}

.depot-tabs button.active[b-yvycym9rwo] {
    background: var(--surface-3);
    border-color: var(--border-strong);
    color: var(--text-primary);
    font-weight: 600;
}

.depot-tabs button:disabled[b-yvycym9rwo] {
    cursor: not-allowed;
    opacity: .4;
}

.tab-count[b-yvycym9rwo] {
    color: inherit;
    font-size: 0.74rem;
    opacity: .9;
}

.depot-allocation[b-yvycym9rwo] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.depot-allocation h2[b-yvycym9rwo] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: .95rem;
    margin: 0;
}

/* Plain block + aspect-ratio does NOT give a box a "definite" height for its own children's
   percentage heights to resolve against in Chromium - only a flex item with aspect-ratio does
   (the flex algorithm resolves its main-size from the cross-size *before* layout, which is
   definite by construction; a bare block's aspect-ratio height is not). This wrapper's own
   height already works this way because IT is a flex item of `.depot-allocation` (column flex,
   see below) - `display: flex` here extends the same trick to its child, the chart bundle's
   host div, which otherwise has no definite height for its own "tc-chart" (height: 100%) child
   to resolve against, and the ring silently never appears. */
.allocation-ring-wrap[b-yvycym9rwo] {
    display: flex;
    flex-direction: column;
    position: relative;
    width: 100%;
}

/* `::deep` is required: `.bklit-chart` is owned by the BklitChart component, not this page, so
   its rendered element never carries this file's scope attribute - a plain scoped selector here
   would silently never match it. `height: auto !important` beats the inline `height: 100%` that
   BklitChart.razor always sets (the one case a stylesheet rule legitimately overrides an inline
   style), clearing the way for aspect-ratio to size the box instead. */
.allocation-ring-wrap[b-yvycym9rwo]  .bklit-chart {
    aspect-ratio: 1;
    height: auto !important;
    position: relative;
}

/* The chart bundle's own "tc-chart" (height: 100%) is the actual broken link: even against a
   parent with a real, measured 288px height, that percentage still resolved to 0 here - a
   deeper version of the same class of bug, one level in, that nothing short of `position:
   absolute; inset: 0` reliably escapes (unconditional per spec, unlike a percentage height).
   ".bklit-chart" above is the positioned ancestor this needs. */
.allocation-ring-wrap[b-yvycym9rwo]  .tc-chart {
    height: auto;
    inset: 0;
    position: absolute;
}

/* Same fix, one level deeper still: @visx/responsive's ParentSize (inside "tc-ring") measures
   its own wrapping div, which was the same silently-zero percentage height again. */
.allocation-ring-wrap[b-yvycym9rwo]  .tc-ring {
    height: auto;
    inset: 0;
    position: absolute;
}

/* And one level deeper again: the SVG itself sizes from its own viewBox (unaffected, which is
   why the donut already drew correctly), but the centre readout text is centred via this
   flex stage's height: 100% - the same broken link, which is why it rendered below the ring
   instead of inside it. */
.allocation-ring-wrap[b-yvycym9rwo]  .tc-ring-stage {
    height: auto;
    inset: 0;
    position: absolute;
}

/* The actual last hop: the chart's own CSS Grid stacks the SVG and the centre-readout layer
   into one cell via default grid stretch - which never kicked in here (measured: the readout
   layer's box came back exactly its own content size, not the grid cell's), so the centre
   layer rendered below the ring instead of inside it. It's always the element right after the
   SVG in the DOM; sizing it via inset instead of relying on stretch fixes it unconditionally,
   matching every other hop in this same chain. */
.allocation-ring-wrap[b-yvycym9rwo]  .tc-ring-stage svg + div {
    align-items: center;
    display: flex;
    height: auto !important;
    inset: 0;
    justify-content: center;
    position: absolute;
    width: auto !important;
}

.allocation-ring[b-yvycym9rwo] {
    display: block;
    height: 100%;
    overflow: visible;
    width: 100%;
}

.allocation-track[b-yvycym9rwo] {
    stroke: var(--surface-inset, rgb(127 127 127 / 12%));
}

/* The hovered segment lifts out of the ring along its own mid-angle. The direction comes from
   the geometry (--shift-x/--shift-y are a unit vector); only the distance lives here. */
.allocation-seg[b-yvycym9rwo] {
    cursor: default;
    transform: translate(0, 0);
    transition: transform 280ms cubic-bezier(.2, .8, .2, 1), opacity 200ms ease;
}

.allocation-seg[data-hovered][b-yvycym9rwo] {
    transform: translate(calc(var(--shift-x) * 7px), calc(var(--shift-y) * 7px));
}

.allocation-seg circle[b-yvycym9rwo] {
    transition: stroke-width 280ms cubic-bezier(.2, .8, .2, 1);
}

.allocation-readout[b-yvycym9rwo] {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: .35rem;
    inset: 0;
    justify-content: center;
    /* The ring underneath must stay hoverable through the middle. */
    pointer-events: none;
    position: absolute;
    text-align: center;
    /* Keeps a long total off the ring itself. */
    padding: 0 22%;
}

.allocation-readout-label[b-yvycym9rwo] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: .02em;
}

.allocation-readout-value[b-yvycym9rwo] {
    font-family: var(--font-display);
    font-size: 1.35rem;
    line-height: 1.1;
    transition: color 220ms ease;
}

.allocation-readout-meta[b-yvycym9rwo] {
    color: var(--text-muted);
    font-size: 0.74rem;
}

/* The generic tone classes are declared earlier in this file, so they lose the tie on
   specificity - the result in the ring's centre has to state them again to win. */
.allocation-readout-meta.positive[b-yvycym9rwo] { color: var(--positive); }
.allocation-readout-meta.negative[b-yvycym9rwo] { color: var(--negative); }

.legend-row[b-yvycym9rwo] {
    transition: opacity 200ms ease;
}

@media (prefers-reduced-motion: reduce) {
    .allocation-seg[b-yvycym9rwo],
    .allocation-seg circle[b-yvycym9rwo],
    .allocation-readout-value[b-yvycym9rwo],
    .legend-row[b-yvycym9rwo] {
        transition: none;
    }
}

.allocation-legend[b-yvycym9rwo] {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.allocation-legend li[b-yvycym9rwo] {
    align-items: center;
    display: flex;
    gap: .5rem;
}

.legend-swatch[b-yvycym9rwo] {
    border-radius: 50%;
    flex: 0 0 auto;
    height: .6rem;
    width: .6rem;
}

.legend-identity[b-yvycym9rwo] {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: .05rem;
    min-width: 0;
}

.legend-label[b-yvycym9rwo] {
    color: var(--text-primary);
    font-size: .74rem;
}

/* What the slice is actually worth. A share on its own ("3,2 %") never answers the question the
   panel is opened for. */
.legend-amount[b-yvycym9rwo] {
    color: var(--text-quiet);
    font-size: 0.74rem;
}

.legend-value[b-yvycym9rwo] {
    color: var(--text-muted);
    font-size: .74rem;
}

.allocation-note[b-yvycym9rwo] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    line-height: 1.6;
    margin: 0;
}

@media (max-width: 900px) {
    .depot-body[b-yvycym9rwo] {
        grid-template-columns: minmax(0, 1fr);
    }

    .depot-allocation[b-yvycym9rwo] {
        order: -1;
    }
}

/* --- expandable position history -------------------------------------------------- */

.position-toggle[b-yvycym9rwo] {
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    flex: 0 0 auto;
    font-size: 0.74rem;
    line-height: 1;
    padding: .25rem;
    transition: color .2s ease;
}

.position-toggle:hover[b-yvycym9rwo] {
    color: var(--text-primary);
}

tr.expanded .position-toggle[b-yvycym9rwo] {
    color: var(--text-primary);
}

.position-detail-row > td[b-yvycym9rwo] {
    background: var(--surface-inset, rgb(127 127 127 / 7%));
    padding: 1.1rem 1.2rem 1.3rem;
}

.position-edit-row > td[b-yvycym9rwo] {
    background: var(--surface-inset, rgb(127 127 127 / 7%));
    padding: 1rem 1.2rem;
}

.position-edit-form[b-yvycym9rwo] {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.position-edit-form label[b-yvycym9rwo] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.position-edit-form label span[b-yvycym9rwo] {
    color: var(--text-quiet);
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .02em;
}

.position-edit-form input[b-yvycym9rwo] {
    background: none;
    border: 0;
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-primary);
    font: inherit;
    font-size: .85rem;
    padding: .4rem .1rem;
    width: 8rem;
}

.position-edit-form input:focus[b-yvycym9rwo] {
    border-bottom-color: var(--accent);
    outline: none;
}

.position-edit-actions[b-yvycym9rwo] {
    align-items: center;
    display: flex;
    gap: .8rem;
}

.position-edit-actions button[type="submit"][b-yvycym9rwo] {
    background: var(--accent);
    border: 0;
    color: var(--app-background);
    cursor: pointer;
    font-size: .8rem;
    font-weight: 600;
    padding: .6rem 1.2rem;
}

.position-edit-actions button[type="submit"]:hover:not(:disabled)[b-yvycym9rwo] {
    background: var(--accent-bright);
}

.position-edit-actions button[type="submit"]:disabled[b-yvycym9rwo] {
    cursor: not-allowed;
    opacity: .5;
}

/* The .perf-* rules that used to sit here now live in PositionPerformance.razor.css. They style a
   CHILD component's markup, which never carries this page's scope attribute - from here they
   matched nothing, so the chart's <path> fell back to the SVG default fill (solid black) and the
   panel had no layout at all. Isolated CSS belongs beside the component it styles. */

.beginner-intro[b-yvycym9rwo] {
    align-items: center;
    background: var(--surface-raised);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    justify-content: space-between;
    padding: 1.1rem 1.3rem;
}

.beginner-intro h2[b-yvycym9rwo] {
    font-size: 1.05rem;
    margin: 0 0 .35rem;
}

.beginner-intro p[b-yvycym9rwo] {
    color: var(--text-muted);
    font-size: .84rem;
    line-height: 1.65;
    margin: 0;
    max-width: 40rem;
}

.beginner-cta[b-yvycym9rwo] {
    background: var(--accent);
    color: var(--app-background);
    font-size: .84rem;
    font-weight: 600;
    padding: .6rem 1.1rem;
    text-decoration: none;
    white-space: nowrap;
}

.beginner-cta:hover[b-yvycym9rwo] {
    background: var(--accent-bright);
}

.savings-progress[b-yvycym9rwo] {
    align-items: center;
    background: var(--surface-raised);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-sm);
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    justify-content: space-between;
    padding: 1.1rem 1.3rem;
}

.savings-progress h2[b-yvycym9rwo] {
    font-size: 1.05rem;
    margin: 0 0 .35rem;
}

.savings-progress p[b-yvycym9rwo] {
    color: var(--text-muted);
    font-size: .84rem;
    line-height: 1.65;
    margin: 0;
    max-width: 40rem;
}

.savings-progress-figures[b-yvycym9rwo] {
    color: var(--text) !important;
    margin-top: .35rem !important;
}

.savings-progress-figures strong[b-yvycym9rwo] {
    color: var(--text-primary);
}

.savings-progress-disclaimer[b-yvycym9rwo] {
    font-size: .76rem !important;
    margin-top: .35rem !important;
}

.depot-view-tabs[b-yvycym9rwo] {
    display: flex;
    gap: .5rem;
}

.depot-view-tabs button[b-yvycym9rwo] {
    background: none;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-muted);
    cursor: pointer;
    font: inherit;
    font-size: .84rem;
    font-weight: 600;
    padding: .55rem 1.2rem;
}

.depot-view-tabs button.active[b-yvycym9rwo] {
    background: var(--surface-3);
    border-color: var(--border-strong);
    color: var(--text-primary);
}

.savings-tab[b-yvycym9rwo] {
    align-items: stretch;
    flex-direction: column;
    justify-content: flex-start;
}

.savings-tab p[b-yvycym9rwo] {
    max-width: none;
}

.savings-compare[b-yvycym9rwo] {
    display: grid;
    gap: 1rem 2rem;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
}

.savings-compare > div[b-yvycym9rwo] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.savings-label[b-yvycym9rwo] {
    color: var(--text-quiet);
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .02em;
}

.savings-compare strong[b-yvycym9rwo] {
    font-size: 1.15rem;
}

.savings-sub[b-yvycym9rwo] {
    color: var(--text-muted);
    font-size: .82rem;
}

.savings-whatif[b-yvycym9rwo] {
    border-top: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: .6rem;
    padding-top: 1rem;
}

.savings-tab h3[b-yvycym9rwo] { font-size: .9rem; margin: 0 0 .5rem; }
.savings-chart[b-yvycym9rwo]  .savings-svg { display: block; height: 14rem; width: 100%; }
.savings-chart[b-yvycym9rwo]  .savings-svg polyline { stroke-width: 2; vector-effect: non-scaling-stroke; }
.savings-chart[b-yvycym9rwo]  .savings-svg .plan { stroke: var(--text-muted); }
.savings-chart[b-yvycym9rwo]  .savings-svg .plan.dashed { stroke-dasharray: 6 5; }
.savings-chart[b-yvycym9rwo]  .savings-svg .actual { stroke: var(--text-primary); stroke-width: 3; }
.savings-chart[b-yvycym9rwo]  .savings-svg .now { stroke: var(--border-strong); stroke-width: 1; vector-effect: non-scaling-stroke; }
.savings-legend[b-yvycym9rwo] { display: flex; flex-wrap: wrap; font-size: .76rem !important; gap: .4rem 1.5rem; }
.lg-plan[b-yvycym9rwo]::before, .lg-actual[b-yvycym9rwo]::before { content: ""; display: inline-block; height: 3px; margin-right: .4rem; vertical-align: middle; width: 1.4rem; }
.lg-plan[b-yvycym9rwo]::before { background: var(--text-muted); }
.lg-actual[b-yvycym9rwo]::before { background: var(--text-secondary); }
.savings-etfs ul[b-yvycym9rwo] { display: flex; flex-direction: column; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.savings-etfs li[b-yvycym9rwo] { display: grid; font-size: .84rem; gap: 1rem; grid-template-columns: 1fr auto auto; }
.savings-whatif-actions button[b-yvycym9rwo] { background: var(--accent); border: 0; color: var(--app-background); cursor: pointer; font-weight: 600; padding: .6rem 1.2rem; }
.savings-whatif-actions button:disabled[b-yvycym9rwo] { cursor: not-allowed; opacity: .5; }

.depot-history[b-yvycym9rwo] { display: flex; flex-direction: column; gap: .6rem; }
.depot-history h2[b-yvycym9rwo] { font-size: 1rem; margin: 0; }
.depot-history-note[b-yvycym9rwo] { color: var(--text-muted); font-size: .8rem; margin: 0; max-width: 46rem; }

.dividends[b-yvycym9rwo] { display: flex; flex-direction: column; gap: .7rem; }
.dividends h2[b-yvycym9rwo] { font-size: 1rem; margin: 0; }
.dividend-form[b-yvycym9rwo] { align-items: end; display: flex; flex-wrap: wrap; gap: 1rem; }
.dividend-form label[b-yvycym9rwo] { color: var(--text-quiet); display: flex; flex-direction: column; font-size: .74rem; gap: .3rem; }
.dividend-form input[b-yvycym9rwo], .dividend-form select[b-yvycym9rwo] { background: none; border: 0; border-bottom: 1px solid var(--border-subtle); color: var(--text-primary); font: inherit; font-size: .85rem; padding: .4rem .1rem; width: 8rem; }
.dividend-form select option[b-yvycym9rwo] { background: var(--surface-raised, #1a1a1a); }
.dividend-form button[b-yvycym9rwo] { background: var(--accent); border: 0; color: var(--app-background); cursor: pointer; font-weight: 600; padding: .6rem 1.2rem; }
.dividend-list[b-yvycym9rwo] { display: flex; flex-direction: column; font-size: .84rem; gap: .35rem; list-style: none; margin: 0; padding: 0; }
.dividend-list li[b-yvycym9rwo] { display: grid; gap: 1rem; grid-template-columns: 6rem 1fr auto auto; }

.savings-tab[b-yvycym9rwo] { flex-wrap: nowrap; max-width: 100%; min-width: 0; }
.savings-tab > *[b-yvycym9rwo] { min-width: 0; }
.savings-compare[b-yvycym9rwo] { grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr)); }

@media (max-width: 640px) {
    .savings-etfs li[b-yvycym9rwo] { grid-template-columns: 1fr; gap: .1rem; }
    .dividend-list li[b-yvycym9rwo] { grid-template-columns: 1fr auto; }
}

.export-row[b-yvycym9rwo] { display: flex; gap: 1.2rem; }
.savings-reminder[b-yvycym9rwo] { border-left: 3px solid var(--border-strong); color: var(--text-primary) !important; padding-left: .8rem; }
/* /Pages/FriendProfile.razor.rz.scp.css */
.friend-page[b-l4injk6hi2] {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    max-width: 46rem;
}

.back-link[b-l4injk6hi2] {
    color: var(--text-muted);
    font-size: .84rem;
    text-decoration: none;
}

.back-link[b-l4injk6hi2]::before {
    content: "‹ ";
}

.back-link:hover[b-l4injk6hi2] {
    color: var(--text-primary);
}

.friend-missing h1[b-l4injk6hi2] {
    margin: 0 0 .6rem;
}

.friend-missing p[b-l4injk6hi2] {
    color: var(--text-muted);
    font-size: .95rem;
    line-height: 1.65;
    margin: 0;
    max-width: 52ch;
}

.friend-header[b-l4injk6hi2] {
    align-items: center;
    display: flex;
    gap: 1.2rem;
}

.friend-header h1[b-l4injk6hi2] {
    font-size: clamp(2rem, 4vw, 2.8rem);
    margin: 0 0 .25rem;
}

.friend-header p[b-l4injk6hi2] {
    color: var(--text-muted);
    font-size: .88rem;
    margin: 0;
}

.friend-stats[b-l4injk6hi2] {
    border-block: 1px solid var(--border-subtle);
    display: grid;
    gap: 1.5rem 3rem;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    margin: 0;
    padding: 1.2rem 0;
}

.friend-stats dt[b-l4injk6hi2] {
    color: var(--text-quiet);
    font-size: .8rem;
    margin-bottom: .35rem;
}

.friend-stats dd[b-l4injk6hi2] {
    display: flex;
    flex-direction: column;
    font-size: 1.05rem;
    gap: .4rem;
    margin: 0;
}

.friend-stats dd.is-empty[b-l4injk6hi2] {
    color: var(--text-muted);
    font-size: .92rem;
}

.friend-stats small[b-l4injk6hi2] {
    color: var(--text-quiet);
    font-size: .76rem;
}

.xp-track[b-l4injk6hi2] {
    background: var(--surface-inset);
    display: block;
    height: .35rem;
    max-width: 12rem;
}

.xp-fill[b-l4injk6hi2] {
    background: var(--text-secondary);
    display: block;
    height: 100%;
}

.friend-depot h2[b-l4injk6hi2] {
    font-size: 1.55rem;
    margin: 0 0 .5rem;
}

.depot-note[b-l4injk6hi2],
.depot-private[b-l4injk6hi2] {
    color: var(--text-muted);
    font-size: .88rem;
    line-height: 1.6;
    margin: 0;
    max-width: 56ch;
}

/* Die Depot-Aufteilung ist die einzige Messfläche der Seite - also angehoben. */
.depot-body[b-l4injk6hi2] {
    align-items: center;
    background: var(--surface-raised);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    display: grid;
    gap: 2rem;
    grid-template-columns: 11rem minmax(0, 1fr);
    margin: 1.1rem 0 .8rem;
    padding: 1.4rem;
}

.depot-ring[b-l4injk6hi2] {
    width: 11rem;
}

.ring-track[b-l4injk6hi2] {
    stroke: var(--surface-inset);
}

.ring-count[b-l4injk6hi2] {
    fill: var(--text-primary);
    font-family: var(--font-display);
    font-size: 34px;
}

.holdings[b-l4injk6hi2] {
    display: flex;
    flex-direction: column;
    list-style: none;
    margin: 0;
    padding: 0;
}

.holdings li[b-l4injk6hi2] {
    align-items: center;
    display: grid;
    gap: .75rem;
    grid-template-columns: .7rem minmax(0, 1fr) auto;
    padding: .5rem 0;
}

.holdings li + li[b-l4injk6hi2] {
    border-top: 1px solid var(--border-subtle);
}

.holding-swatch[b-l4injk6hi2] {
    border-radius: 2px;
    height: .7rem;
    width: .7rem;
}

.holding-name[b-l4injk6hi2] {
    font-size: .9rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.holding-name small[b-l4injk6hi2] {
    color: var(--text-quiet);
    font-family: var(--font-mono);
    font-size: .74rem;
    margin-left: .45rem;
}

.holding-weight[b-l4injk6hi2] {
    font-size: .9rem;
}

.friend-chat[b-l4injk6hi2] {
    border-top: 1px solid var(--border-subtle);
    padding-top: 1.2rem;
}

.friend-chat h2[b-l4injk6hi2] {
    font-size: 1.1rem;
    margin: 0 0 .8rem;
}

.chat-log[b-l4injk6hi2] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: .5rem;
    max-height: 22rem;
    overflow-y: auto;
    padding: .9rem 1rem;
}

.chat-empty[b-l4injk6hi2] {
    color: var(--text-quiet);
    font-size: .84rem;
    margin: 0;
}

.chat-message[b-l4injk6hi2] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    max-width: 80%;
}

.chat-message.mine[b-l4injk6hi2] {
    align-items: flex-end;
    align-self: flex-end;
}

.chat-message.theirs[b-l4injk6hi2] {
    align-items: flex-start;
    align-self: flex-start;
}

.chat-text[b-l4injk6hi2] {
    background: var(--surface-inset);
    border: 1px solid var(--border-subtle);
    font-size: .86rem;
    line-height: 1.5;
    overflow-wrap: break-word;
    padding: .45rem .7rem;
    white-space: pre-wrap;
}

.chat-message.mine .chat-text[b-l4injk6hi2] {
    background: var(--surface-3);
    border-color: var(--border-strong);
}

.chat-time[b-l4injk6hi2] {
    color: var(--text-quiet);
    font-size: .68rem;
}

.chat-composer[b-l4injk6hi2] {
    display: flex;
    gap: .6rem;
    margin-top: .8rem;
}

.chat-composer input[b-l4injk6hi2] {
    background: none;
    border: 0;
    border-bottom: 1px solid var(--border-strong);
    color: var(--text-primary);
    flex: 1;
    font: inherit;
    font-size: .86rem;
    padding: .45rem .1rem;
}

.chat-composer input:focus[b-l4injk6hi2] {
    border-bottom-color: var(--accent);
    outline: none;
}

.chat-composer button[b-l4injk6hi2] {
    background: var(--accent);
    border: 0;
    color: var(--app-background);
    cursor: pointer;
    font-size: .82rem;
    font-weight: 600;
    padding: .5rem 1rem;
}

.chat-composer button:disabled[b-l4injk6hi2] {
    cursor: not-allowed;
    opacity: .45;
}

.chat-composer button:not(:disabled):hover[b-l4injk6hi2] {
    background: var(--accent-bright);
}

.friend-footer[b-l4injk6hi2] {
    align-items: center;
    border-top: 1px solid var(--border-subtle);
    color: var(--text-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: .85rem;
    gap: .8rem;
    padding-top: 1.2rem;
}

.remove-start[b-l4injk6hi2],
.remove-confirm[b-l4injk6hi2],
.remove-cancel[b-l4injk6hi2] {
    background: none;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    color: var(--text-muted);
    cursor: pointer;
    font: inherit;
    font-size: .8rem;
    padding: .45rem .8rem;
}

.remove-start[b-l4injk6hi2] {
    border: 0;
    padding-inline: 0;
}

.remove-start:hover[b-l4injk6hi2],
.remove-confirm[b-l4injk6hi2] {
    color: var(--negative);
}

.remove-confirm[b-l4injk6hi2] {
    border-color: var(--negative);
}

.remove-cancel:hover[b-l4injk6hi2] {
    color: var(--text-primary);
}

@media (max-width: 620px) {
    .depot-body[b-l4injk6hi2] {
        grid-template-columns: minmax(0, 1fr);
        justify-items: center;
    }

    .holdings[b-l4injk6hi2] {
        width: 100%;
    }
}

.friend-challenge[b-l4injk6hi2] {
    border: 1px solid var(--border-strong);
    color: var(--text-primary);
    display: inline-block;
    font-size: .8rem;
    font-weight: 600;
    margin-top: .7rem;
    padding: .45rem .9rem;
    text-decoration: none;
}

.friend-challenge:hover[b-l4injk6hi2] {
    background: var(--surface-3);
    color: var(--text-primary);
}
/* /Pages/Home.razor.rz.scp.css */
.dashboard[b-kuuuqbtmob] {
    align-content: start;
    align-items: start;
    display: grid;
    gap: 2.4rem 3rem;
    grid-template-areas:
        "masthead masthead"
        "watch    note"
        "news     movers"
        "setups   setups"
        "planned  planned";
    grid-template-columns: minmax(0, 1.6fr) minmax(16rem, .8fr);
    min-width: 0;
}

/* Die ASCII-Studie gehört zum Seitenkopf, nicht zur Datenfläche. */
.dash-masthead[b-kuuuqbtmob] {
    align-items: center;
    display: grid;
    gap: 2rem;
    grid-area: masthead;
    grid-template-columns: minmax(0, 1fr) auto;
    padding-bottom: .4rem;
}

.dash-masthead-copy[b-kuuuqbtmob] { min-width: 0; max-width: 42rem; }

@media (max-width: 700px) {
    .dash-masthead[b-kuuuqbtmob] { grid-template-columns: minmax(0, 1fr); gap: .8rem; }
    .dash-masthead[b-kuuuqbtmob]  .ascii-illustration { justify-self: center; }
}

.dash-masthead .section-index[b-kuuuqbtmob] {
    border-top: none;
    margin-bottom: 1rem;
    padding-top: 0;
}

.dash-masthead h1[b-kuuuqbtmob] {
    font-size: clamp(2.2rem, 4.4vw, 3.4rem);
    margin: 0 0 .7rem;
}

.dash-masthead p[b-kuuuqbtmob] {
    color: var(--text-secondary);
    font-size: 1rem;
    line-height: 1.6;
    margin: 0;
    max-width: 42ch;
}

.widget-watch[b-kuuuqbtmob] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    grid-area: watch;
    padding: 1.6rem;
}

.widget-head[b-kuuuqbtmob] {
    align-items: baseline;
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: 0;
    padding-bottom: .55rem;
}

.widget-head h2[b-kuuuqbtmob] {
    color: var(--text-primary);
    font-size: 1.6rem;
    margin: 0;
}

.widget-meta[b-kuuuqbtmob] {
    color: var(--text-quiet);
    font-size: .76rem;
}

.widget-body[b-kuuuqbtmob] {
    color: var(--text-secondary);
    font-size: .92rem;
    line-height: 1.65;
    margin: 0;
}

/* Spaltenköpfe wie über einer Kurstabelle in der Zeitung: klein, gesperrt, Mono. */
.watchlist-head[b-kuuuqbtmob] {
    color: var(--text-quiet);
    display: grid;
    font-family: var(--font-body);
    font-size: .8rem;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) 8rem 5rem;
    letter-spacing: 0;
    padding: .7rem 1.25rem .45rem .9rem;
}

.watchlist-head.has-actions[b-kuuuqbtmob] {
    padding-right: 2.95rem;
}

.watchlist-head span:nth-child(2)[b-kuuuqbtmob],
.watchlist-head span:nth-child(3)[b-kuuuqbtmob] {
    text-align: right;
}

.watchlist[b-kuuuqbtmob] {
    display: flex;
    flex-direction: column;
    list-style: none;
    margin: 0;
    padding: 0;
}

.watchlist li[b-kuuuqbtmob] {
    align-items: center;
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    min-height: 3.6rem;
    padding-right: .35rem;
}

.watchlist a[b-kuuuqbtmob] {
    align-items: center;
    color: inherit;
    display: grid;
    flex: 1;
    gap: .7rem 1rem;
    grid-template-columns: 1.7rem 3.6rem minmax(0, 1fr) 8rem 5rem;
    min-width: 0;
    padding: .85rem .9rem;
    text-decoration: none;
    transition: background-color .18s ease;
}

.watchlist a:hover[b-kuuuqbtmob] {
    background: var(--surface-hover);
    border-radius: var(--radius-sm);
}

.watchlist a:hover .wl-logo[b-kuuuqbtmob],
.watchlist a:hover .wl-logo-fallback[b-kuuuqbtmob] {
    transform: scale(1.08);
}

.wl-logo[b-kuuuqbtmob],
.wl-logo-fallback[b-kuuuqbtmob] {
    transition: transform .18s var(--ease-spring);
}

.watchlist a:hover .wl-symbol[b-kuuuqbtmob] {
    color: var(--text-primary);
}

.wl-logo[b-kuuuqbtmob],
.wl-logo-fallback[b-kuuuqbtmob] {
    border-radius: 50%;
    flex: 0 0 auto;
    height: 1.7rem;
    object-fit: cover;
    width: 1.7rem;
}

.wl-logo[b-kuuuqbtmob] {
    filter: grayscale(.2);
}

.wl-logo-fallback[b-kuuuqbtmob] {
    align-items: center;
    background: var(--text-primary);
    color: var(--app-background);
    display: none;
    font-family: var(--font-mono);
    font-size: .66rem;
    font-weight: 600;
    justify-content: center;
}

.wl-remove[b-kuuuqbtmob] {
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    flex: 0 0 auto;
    font-size: .75rem;
    padding: .45rem;
}

.wl-remove:hover[b-kuuuqbtmob] {
    background: var(--surface-hover);
    color: var(--negative);
}

.wl-symbol[b-kuuuqbtmob] {
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: .84rem;
    font-weight: 600;
    transition: color .18s ease;
}

.wl-name[b-kuuuqbtmob] {
    color: var(--text-secondary);
    font-size: .9rem;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wl-name small[b-kuuuqbtmob] {
    color: var(--text-quiet);
    font-size: .76rem;
    margin-left: .5rem;
}

.wl-price[b-kuuuqbtmob] {
    color: var(--text-primary);
    font-size: .95rem;
    font-weight: 500;
    justify-self: end;
}

.wl-change[b-kuuuqbtmob] {
    font-size: .88rem;
    font-weight: 600;
    justify-self: end;
}

.wl-unavailable[b-kuuuqbtmob] {
    color: var(--text-quiet);
    font-family: var(--font-body);
    font-size: .78rem;
}

/* Laden: Zeilen in der Form der echten Zeilen, kein Kreisel. */
.wl-skeleton[b-kuuuqbtmob] {
    background: linear-gradient(90deg, var(--surface-inset) 0 30%, var(--surface-hover) 50%, var(--surface-inset) 70% 100%);
    background-size: 300% 100%;
    display: block;
    height: .8rem;
    margin: 0 .9rem;
    width: 100%;
}

@media (prefers-reduced-motion: no-preference) {
    .wl-skeleton[b-kuuuqbtmob] {
        animation: shimmer-b-kuuuqbtmob 1.4s linear infinite;
    }

    @keyframes shimmer-b-kuuuqbtmob {
        from { background-position: 100% 0; }
        to { background-position: 0 0; }
    }
}

.widget-empty-state[b-kuuuqbtmob] {
    padding: 1.4rem .9rem;
}

.widget-empty-state p[b-kuuuqbtmob] {
    color: var(--text-secondary);
    font-size: .92rem;
    margin: 0;
}

.widget-empty-state strong[b-kuuuqbtmob] {
    color: var(--text-primary);
}

.widget-footnote[b-kuuuqbtmob] {
    color: var(--text-muted);
    font-size: .82rem;
    line-height: 1.6;
    margin: .9rem 0 0;
}

.widget-note[b-kuuuqbtmob] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    grid-area: note;
    padding: 1.6rem;
}

.widget-note h2[b-kuuuqbtmob] {
    font-size: 1.35rem;
    margin: 0 0 .7rem;
}

.note-cta[b-kuuuqbtmob] {
    margin-top: 1.2rem;
    padding: .75rem 1.1rem;
}

/* In Vorbereitung: ein Inhaltsverzeichnis statt Platzhalter-Kacheln. Zwei Spalten, jede
   Zeile ein Titel und woran er hängt. */
.planned[b-kuuuqbtmob] {
    border-top: 1px solid var(--border-subtle);
    display: grid;
    gap: 1.5rem 3rem;
    grid-area: planned;
    grid-template-columns: minmax(14rem, .7fr) minmax(0, 2fr);
    padding-top: 1.6rem;
}

.planned-head h2[b-kuuuqbtmob] {
    font-size: 1.6rem;
    margin: 0 0 .6rem;
}

.planned-head p[b-kuuuqbtmob] {
    color: var(--text-muted);
    font-size: .86rem;
    line-height: 1.6;
    margin: 0;
}

.planned-list[b-kuuuqbtmob] {
    counter-reset: planned;
    display: grid;
    gap: 0 2.4rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.planned-list li[b-kuuuqbtmob] {
    border-bottom: 1px solid var(--border-subtle);
    counter-increment: planned;
    display: grid;
    gap: 0 .9rem;
    grid-template-columns: 1.6rem minmax(0, 1fr);
    padding: .85rem 0;
}

.planned-list li[b-kuuuqbtmob]::before {
    color: var(--text-primary);
    content: counter(planned, decimal-leading-zero);
    font-family: var(--font-mono);
    font-size: .74rem;
    grid-row: span 2;
    padding-top: .2rem;
}

.planned-list h3[b-kuuuqbtmob] {
    font-size: 1rem;
    margin: 0 0 .2rem;
}

.planned-list p[b-kuuuqbtmob] {
    color: var(--text-muted);
    font-size: .84rem;
    line-height: 1.5;
    margin: 0;
}

@media (max-width: 1000px) {
    .dashboard[b-kuuuqbtmob] {
        grid-template-areas:
            "masthead"
            "watch"
            "note"
            "news"
            "movers"
            "setups"
            "planned";
        grid-template-columns: minmax(0, 1fr);
    }

    .planned[b-kuuuqbtmob] {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 640px) {
    .watchlist-head[b-kuuuqbtmob] {
        display: none;
    }

    .watchlist a[b-kuuuqbtmob] {
        grid-template-columns: 1.5rem minmax(0, 1fr) auto;
        row-gap: .2rem;
    }

    .wl-name[b-kuuuqbtmob] {
        display: none;
    }

    .wl-price[b-kuuuqbtmob] {
        grid-column: 3;
    }

    .wl-change[b-kuuuqbtmob] {
        grid-column: 3;
    }

    .planned-list[b-kuuuqbtmob] {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Nachrichten und Tagesbewegung: dieselbe Papierfläche wie die Watchlist, nur Text. */
.widget-news[b-kuuuqbtmob] { grid-area: news; min-width: 0; }
.widget-movers[b-kuuuqbtmob] { grid-area: movers; min-width: 0; }

.news-list[b-kuuuqbtmob],
.mover-list[b-kuuuqbtmob] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.news-list li + li[b-kuuuqbtmob],
.mover-list li + li[b-kuuuqbtmob] {
    border-top: 1px solid var(--border-subtle);
}

.news-list a[b-kuuuqbtmob] {
    color: inherit;
    display: flex;
    flex-direction: column;
    gap: .25rem;
    padding: .75rem 0;
    text-decoration: none;
}

.news-list a:hover .news-title[b-kuuuqbtmob] {
    color: var(--text-primary);
}

.news-title[b-kuuuqbtmob] {
    color: var(--text-primary);
    font-size: .9rem;
    line-height: 1.45;
}

.news-meta[b-kuuuqbtmob] {
    color: var(--text-quiet);
    font-size: .74rem;
}

.mover-title[b-kuuuqbtmob] {
    color: var(--text-quiet);
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .02em;
    margin: 1rem 0 .3rem;
}

.mover-title:first-of-type[b-kuuuqbtmob] {
    margin-top: 0;
}

.mover-list a[b-kuuuqbtmob] {
    align-items: baseline;
    color: inherit;
    display: grid;
    gap: .6rem;
    grid-template-columns: 4rem minmax(0, 1fr) auto;
    padding: .45rem 0;
    text-decoration: none;
}

.mover-list a:hover .wl-symbol[b-kuuuqbtmob] {
    color: var(--text-primary);
}

.mover-name[b-kuuuqbtmob] {
    color: var(--text-muted);
    font-size: .78rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Erkannte Setups: eine Karte je Muster, getönt nach der Richtung, die das Muster selbst vorgibt. */
.widget-setups[b-kuuuqbtmob] { grid-area: setups; min-width: 0; }

.setup-list[b-kuuuqbtmob] {
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.setup-card[b-kuuuqbtmob] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    border-left: 3px solid var(--border-subtle);
    color: inherit;
    display: flex;
    flex-direction: column;
    gap: .3rem;
    height: 100%;
    padding: .8rem .9rem;
    text-decoration: none;
}

.setup-card.up[b-kuuuqbtmob] { border-left-color: var(--positive); }
.setup-card.down[b-kuuuqbtmob] { border-left-color: var(--negative); }
.setup-card:hover[b-kuuuqbtmob] { border-color: var(--border-strong); }

.setup-head[b-kuuuqbtmob] {
    align-items: baseline;
    display: flex;
    gap: .6rem;
}

.setup-name[b-kuuuqbtmob] { color: var(--text-primary); font-size: .88rem; font-weight: 600; }
.setup-tf[b-kuuuqbtmob] { color: var(--text-quiet); font-size: .72rem; font-weight: 400; margin-left: .3rem; }
.setup-dir[b-kuuuqbtmob] { color: var(--text-primary); font-size: .8rem; }
.setup-status[b-kuuuqbtmob],
.setup-target[b-kuuuqbtmob],
.setup-invalid[b-kuuuqbtmob] { color: var(--text-muted); font-size: .76rem; line-height: 1.5; }
.setup-invalid[b-kuuuqbtmob] { color: var(--negative); }

.wl-skeleton-inline[b-kuuuqbtmob] {
    border-radius: var(--radius-pill);
    height: .9rem;
    margin: 0;
    width: 4.5rem;
}

/* "In Vorbereitung" ist eingeklappt: Orientierung für die, die danach suchen, kein Text im Weg. */
details.planned > summary[b-kuuuqbtmob] {
    color: var(--text-muted);
    cursor: pointer;
    font-weight: 600;
    padding: .8rem 0;
    width: fit-content;
}
/* /Pages/Landing.razor.rz.scp.css */
/* Der ASCII-Hero und alles darunter nutzt dieselben globalen Tokens wie der Rest der App
   (app.css: --paper/--ink schon fast Schwarz/Weiß, --accent jetzt Gold statt Rot) - keine
   eigene Palette mehr hier, damit Startseite und App optisch ein Stück sind. Herkunft der
   Hero-Struktur: Downloads/Tradability-ASCII-Hero/dist/index.html. */

.readout-inner[b-87qepdizgn],
.factors-inner[b-87qepdizgn],
.creed-inner[b-87qepdizgn],
.tools-inner[b-87qepdizgn],
.cta-inner[b-87qepdizgn] {
    margin: 0 auto;
    max-width: 82rem;
    padding-inline: clamp(1.2rem, 4vw, 3.5rem);
    width: 100%;
}

/* ── Aufmacher: der ASCII-Hero ──────────────────────────────────────────────── */

.hero[b-87qepdizgn] {
    overflow: clip;
    padding: clamp(1.6rem, 4vh, 2.6rem) clamp(1.2rem, 4vw, 3.5rem) clamp(2.8rem, 6vh, 4.5rem);
}

/* Szene und Textkarte liegen im selben Grid-Feld übereinander (grid-area:1/1 auf
   beiden Kindern) statt nebeneinander - exakt die Stapelung aus dem Referenz-main. */
.hero-stack[b-87qepdizgn] {
    align-items: center;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    margin: 0 auto;
    max-width: 82rem;
    position: relative;
    width: 100%;
}

.scene[b-87qepdizgn] {
    grid-area: 1 / 1;
    isolation: isolate;
    margin: 24px 0;
    position: relative;
    width: 100%;
}

.scene-meta[b-87qepdizgn] {
    align-items: center;
    color: var(--text-muted);
    display: flex;
    font: 12px var(--font-mono);
    height: 24px;
    justify-content: space-between;
    letter-spacing: .08em;
}

.scene-meta .location[b-87qepdizgn] {
    color: var(--text-secondary);
}

.scene-meta .separator[b-87qepdizgn] {
    color: var(--text-quiet);
    padding: 0 10px;
}

.art[b-87qepdizgn] {
    height: clamp(590px, 72svh, 800px);
    position: relative;
    width: 100%;
}

/* Nicht mehr raumfüllend: das Canvas steht rechts bei 78% Breite, damit links Platz
   für die Textkarte bleibt, die als eigene Ebene darüber liegt (siehe .hero-stack). */
.art canvas[b-87qepdizgn] {
    display: block;
    height: 100%;
    position: absolute;
    right: 0;
    width: 78%;
}

.art[b-87qepdizgn]::after {
    box-shadow: inset 0 -18px 30px var(--app-background);
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
}

.corner[b-87qepdizgn] {
    border-color: var(--border-strong);
    height: 13px;
    pointer-events: none;
    position: absolute;
    width: 13px;
}

.corner.tl[b-87qepdizgn] { border-left: 1px solid; border-top: 1px solid; left: 0; top: 0; }
.corner.tr[b-87qepdizgn] { border-right: 1px solid; border-top: 1px solid; right: 0; top: 0; }
.corner.bl[b-87qepdizgn] { border-bottom: 1px solid; border-left: 1px solid; bottom: 0; left: 0; }
.corner.br[b-87qepdizgn] { border-bottom: 1px solid; border-right: 1px solid; bottom: 0; right: 0; }

.no-js[b-87qepdizgn] {
    align-items: center;
    color: var(--text-primary);
    display: flex;
    font: clamp(5px, 1vw, 12px)/1.2 var(--font-mono);
    inset: 20px;
    justify-content: center;
    overflow: hidden;
    position: absolute;
    text-align: center;
    white-space: pre;
}

.scene-footer[b-87qepdizgn] {
    align-items: center;
    color: var(--text-muted);
    display: flex;
    font: 12px var(--font-mono);
    gap: 20px;
    height: 35px;
    justify-content: space-between;
    letter-spacing: .045em;
    margin-top: 6px;
}

.scene-index[b-87qepdizgn] { color: var(--text-secondary); }
.flight-label[b-87qepdizgn] { color: var(--text-primary); }

/* Die Textkarte: eine ruhige Kachel in der Raised-Ebene, kein Glas, kein Glanz.
   Farben kommen aus den Theme-Variablen, damit Hell und Dunkel gleich gut aussehen. */
.intro[b-87qepdizgn] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    box-shadow: none;
    grid-area: 1 / 1;
    isolation: isolate;
    justify-self: start;
    margin: 24px 0 24px 20px;
    padding: 32px 30px 28px;
    position: relative;
    text-align: left;
    transition: background .3s ease, border-color .3s ease;
    width: min(520px, 48%);
    z-index: 2;
}

.hero-eyebrow[b-87qepdizgn] {
    align-items: center;
    color: var(--text-muted);
    display: flex;
    font-family: var(--font-body);
    font-size: .85rem;
    gap: .625rem;
    letter-spacing: 0;
    margin: 0 0 1.5rem;
    transition: color .3s ease;
}

.hero-eyebrow[b-87qepdizgn]::before {
    background: var(--text-secondary);
    border-radius: 50%;
    content: "";
    flex: none;
    height: 8px;
    width: 8px;
}

.hero h1[b-87qepdizgn] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: clamp(2rem, 3.7vw, 3.2rem);
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.02;
    margin: 0;
    transition: color .3s ease;
}

.hero h1 .headline-block[b-87qepdizgn] {
    display: block;
}

/* Hervorhebung: nur die Akzentfarbe, dieselbe Schrift. */
.hero h1 em[b-87qepdizgn] {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: var(--accent);
    text-decoration-thickness: 3px;
    text-underline-offset: .14em;
    display: block;
    font-family: var(--font-display);
    font-size: 1em;
    font-style: normal;
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.02;
    margin-top: .3rem;
    transition: color .3s ease;
    white-space: nowrap;
}

.hero-lead[b-87qepdizgn] {
    color: var(--text-muted);
    font-size: 1rem;
    line-height: 1.6;
    margin: 1.25rem 0 0;
    max-width: 38ch;
    transition: color .3s ease;
}

.hero-actions[b-87qepdizgn] {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 1.5rem;
}

.hero-link[b-87qepdizgn] {
    align-items: center;
    background: var(--accent);
    border: 1px solid var(--accent);
    border-radius: var(--radius-pill);
    color: var(--on-accent);
    display: inline-flex;
    font-size: .9375rem;
    font-weight: 600;
    gap: .75rem;
    justify-content: center;
    min-height: 3rem;
    padding: .75rem 1.5rem;
    text-decoration: none;
    transition: background-color .2s var(--ease-out), border-color .2s var(--ease-out), color .2s var(--ease-out);
}

.hero-link:hover[b-87qepdizgn] {
    background: var(--accent-bright);
    border-color: var(--accent-bright);
    color: var(--on-accent);
}

.hero-link.secondary[b-87qepdizgn] {
    background: transparent;
    border-color: var(--border-strong);
    color: var(--text-primary);
}

.hero-link.secondary:hover[b-87qepdizgn] {
    background: var(--surface-hover);
    border-color: var(--text-muted);
    color: var(--text-primary);
}

.hero-link:focus-visible[b-87qepdizgn] {
    outline: 2px solid var(--accent);
    outline-offset: 4px;
}

@media (max-width: 1100px) and (min-width: 761px) {
    .intro[b-87qepdizgn] {
        margin-left: 8px;
        padding: 28px 24px;
        width: 52%;
    }

    .hero-actions[b-87qepdizgn] {
        gap: .5625rem;
    }

    .hero-link[b-87qepdizgn] {
        padding: .75rem .8125rem;
    }
}

@media (max-width: 760px) {
    .hero-stack[b-87qepdizgn] {
        align-items: stretch;
        display: flex;
        flex-direction: column;
    }

    .scene[b-87qepdizgn] {
        margin: 28px 0 20px;
        order: 1;
    }

    .intro[b-87qepdizgn] {
        border-radius: 24px;
        margin: 28px 0 0;
        padding: 26px;
        width: 100%;
    }

    .art[b-87qepdizgn] {
        height: 350px;
    }

    .art canvas[b-87qepdizgn] {
        width: 100%;
    }

    .scene-meta .secondary[b-87qepdizgn] {
        display: none;
    }

    .flight-label[b-87qepdizgn] {
        display: none;
    }

    .hero-eyebrow[b-87qepdizgn] {
        margin-bottom: 1.5rem;
    }

    .hero-lead[b-87qepdizgn] {
        max-width: 27ch;
    }
}

@media (max-width: 440px) {
    .intro[b-87qepdizgn] {
        padding: 24px 21px;
    }

    .art[b-87qepdizgn] {
        height: 300px;
    }

    .hero-eyebrow[b-87qepdizgn] {
        font-size: .7rem;
        letter-spacing: .09em;
    }

    .hero-actions[b-87qepdizgn] {
        flex-direction: column;
    }

    .hero-link[b-87qepdizgn] {
        width: 100%;
    }
}

/* ── Ablesewert ───────────────────────────────────────────────────────────── */

.readout-band[b-87qepdizgn] {
    border-block: 1px solid var(--border-strong);
}

.readout-inner[b-87qepdizgn] {
    align-items: center;
    display: grid;
    gap: clamp(2rem, 5vw, 4.5rem);
    grid-template-columns: minmax(0, 20rem) minmax(0, 1fr);
    padding-block: clamp(2.5rem, 6vw, 4rem);
}

.gauge-cell[b-87qepdizgn] {
    display: grid;
    place-items: center;
    position: relative;
}

.gauge[b-87qepdizgn] {
    display: block;
    width: min(20rem, 68vw);
}

.gauge-track[b-87qepdizgn] {
    fill: none;
    stroke: var(--border-subtle);
    stroke-width: 16;
}

.gauge-value[b-87qepdizgn] {
    animation: gauge-sweep-b-87qepdizgn 1.5s cubic-bezier(.22, .9, .25, 1) both;
    fill: none;
    stroke: var(--text-primary);
    stroke-width: 16;
}

@keyframes gauge-sweep-b-87qepdizgn {
    from { stroke-dashoffset: 622.04; }
}

@media (prefers-reduced-motion: reduce) {
    .gauge-value[b-87qepdizgn] {
        animation: none;
    }
}

.gauge-tick[b-87qepdizgn] {
    stroke: var(--border-strong);
    stroke-width: 1;
}

.gauge-tick.major[b-87qepdizgn] {
    stroke: var(--text-primary);
    stroke-width: 1.5;
}

.gauge-center[b-87qepdizgn] {
    display: grid;
    gap: .35rem;
    justify-items: center;
    position: absolute;
    text-align: center;
    top: 46%;
    transform: translateY(-50%);
}

.gauge-score[b-87qepdizgn] {
    color: var(--text-primary);
    display: block;
    font-family: var(--font-display);
    font-variant-numeric: lining-nums tabular-nums;
    font-size: clamp(3.4rem, 7vw, 4.8rem);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: 1;
}

.gauge-caption[b-87qepdizgn] {
    color: var(--text-muted);
    font-size: .8rem;
}

.gauge-fallback[b-87qepdizgn] {
    color: var(--text-muted);
    font-size: .9rem;
    margin: 0;
    max-width: 22ch;
    text-align: center;
}

.readout-kicker[b-87qepdizgn] {
    color: var(--text-primary);
    font-size: .84rem;
    font-weight: 600;
    margin: 0 0 .7rem;
}

.readout-claim[b-87qepdizgn] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: clamp(1.45rem, 2.7vw, 2.15rem);
    font-weight: 500;
    letter-spacing: -.018em;
    line-height: 1.2;
    margin: 0 0 2rem;
    max-width: 26ch;
}

.readout-stats[b-87qepdizgn] {
    border-top: 1px solid var(--border-strong);
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem;
    margin: 0;
    padding-top: 1.3rem;
}

.readout-stats dt[b-87qepdizgn] {
    color: var(--text-muted);
    font-size: .8rem;
    margin-bottom: .35rem;
}

.readout-stats dd[b-87qepdizgn] {
    color: var(--text-primary);
    font-size: 2.1rem;
    font-weight: 500;
    letter-spacing: -.03em;
    line-height: 1;
    margin: 0;
}

.readout-stats dd small[b-87qepdizgn] {
    color: var(--text-quiet);
    font-size: .95rem;
    font-weight: 400;
    margin-left: .12rem;
}

/* Die dritte Zahl ist die Lücke. Sie steht im Gold-Akzent, weil sie kein Makel der
   Anzeige ist, sondern ihre wichtigste Angabe. */
.readout-stats .is-gap dd[b-87qepdizgn] {
    color: var(--text-primary);
}

.readout-stamp[b-87qepdizgn] {
    color: var(--text-muted);
    font-size: .8rem;
    margin: 1.4rem 0 0;
}

/* ── Eingangsgrößen ───────────────────────────────────────────────────────── */

.factors[b-87qepdizgn] {
    padding: clamp(3.5rem, 8vw, 6rem) 0 0;
}

.factors-head[b-87qepdizgn] {
    margin-bottom: 2rem;
    max-width: 50ch;
}

.factors-head h2[b-87qepdizgn] {
    color: var(--text-primary);
    font-size: clamp(1.9rem, 3.6vw, 2.8rem);
    font-weight: 500;
    margin: 0 0 .7rem;
}

.factors-head p[b-87qepdizgn] {
    color: var(--text-muted);
    font-size: .95rem;
    line-height: 1.7;
    margin: 0;
}

.factor-list[b-87qepdizgn] {
    border-top: 1px solid var(--border-strong);
    list-style: none;
    margin: 0;
    padding: 0;
}

.factor[b-87qepdizgn] {
    align-items: center;
    border-bottom: 1px solid var(--border-subtle);
    display: grid;
    gap: 1.5rem;
    grid-template-columns: minmax(9rem, 15rem) minmax(0, 1fr) 3.5rem 3.5rem;
    padding: .95rem 0;
}

.factor-name[b-87qepdizgn] {
    color: var(--text-primary);
    font-size: .98rem;
    font-weight: 500;
}

.factor-track[b-87qepdizgn] {
    display: block;
    height: .6rem;
    position: relative;
}

.factor-fill[b-87qepdizgn] {
    background: var(--text-secondary);
    display: block;
    height: 100%;
    transition: width .8s var(--ease-out);
}

/* Der Balken zieht erst dann auf seine echte Breite, wenn die Zeile selbst ins Bild
   scrollt - dasselbe .reveal/.is-visible-Paar wie überall sonst, hier zusätzlich auf
   den Balken angewendet statt nur auf Deckkraft/Transform. */
@media (prefers-reduced-motion: no-preference) {
    html.reveal-armed .factor.reveal:not(.is-visible) .factor-fill[b-87qepdizgn] {
        width: 0 !important;
    }
}

/* Eine fehlende Größe wird nicht ausgeblendet, sondern schraffiert gezeigt: die leere
   Rille ist die Aussage. */
.factor.is-missing .factor-track[b-87qepdizgn] {
    background: repeating-linear-gradient(-45deg, var(--border-strong) 0 1px, transparent 1px 7px);
}

.factor.is-missing .factor-name[b-87qepdizgn] {
    color: var(--text-muted);
}

.factor-read[b-87qepdizgn] {
    color: var(--text-primary);
    font-size: 1.05rem;
    text-align: right;
}

.factor-gap[b-87qepdizgn] {
    color: var(--text-primary);
    font-family: var(--font-body);
    font-size: .78rem;
    white-space: nowrap;
}

.factor-weight[b-87qepdizgn] {
    color: var(--text-muted);
    font-size: .85rem;
    text-align: right;
}

/* ── Kursband ─────────────────────────────────────────────────────────────── */

.marquee[b-87qepdizgn] {
    border-block: 1px solid var(--border-strong);
    margin-top: clamp(3.5rem, 8vw, 6rem);
    mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
    overflow: hidden;
    padding: 1rem 0;
}

.marquee-rail[b-87qepdizgn] {
    animation: marquee-b-87qepdizgn 38s linear infinite;
    display: flex;
    width: max-content;
}

@keyframes marquee-b-87qepdizgn {
    to { transform: translateX(-50%); }
}

.marquee-run[b-87qepdizgn] {
    display: flex;
    gap: 3.5rem;
    padding-right: 3.5rem;
}

.tick[b-87qepdizgn] {
    align-items: baseline;
    display: flex;
    gap: .8rem;
    white-space: nowrap;
}

.tick-symbol[b-87qepdizgn] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: 1.05rem;
    font-weight: 700;
}

.tick-price[b-87qepdizgn] {
    color: var(--text-primary);
    font-size: 1.05rem;
}

.tick-change[b-87qepdizgn] {
    font-size: .95rem;
}

.tick-change.positive[b-87qepdizgn] {
    color: var(--text-primary) !important;
}

.tick-change.negative[b-87qepdizgn] {
    color: var(--negative) !important;
}

.tick-missing[b-87qepdizgn] {
    color: var(--text-quiet);
    font-family: var(--font-body);
    font-size: .9rem;
}

@media (prefers-reduced-motion: reduce) {
    .marquee-rail[b-87qepdizgn] {
        animation: none;
    }
}

/* ── Drei Absagen ─────────────────────────────────────────────────────────── */

.creed[b-87qepdizgn] {
    padding: clamp(4rem, 9vw, 7rem) 0 0;
}

.creed-inner[b-87qepdizgn] {
    display: grid;
    gap: 2rem clamp(2rem, 5vw, 5rem);
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
}

.creed-head[b-87qepdizgn] {
    position: relative;
}

.creed h2[b-87qepdizgn] {
    color: var(--text-primary);
    font-size: clamp(2rem, 4.2vw, 3.2rem);
    font-weight: 500;
    line-height: 1.08;
    margin: 0;
    max-width: 12ch;
}

.creed h2 em[b-87qepdizgn] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-style: normal;
    font-weight: 400;
}

.creed-list[b-87qepdizgn] {
    counter-reset: creed;
    list-style: none;
    margin: 0;
    padding: 0;
}

.creed-list li[b-87qepdizgn] {
    border-top: 1px solid var(--border-strong);
    counter-increment: creed;
    display: grid;
    gap: 0 1.6rem;
    grid-template-columns: 3.2rem minmax(0, 1fr);
    padding: 1.3rem 0 1.6rem;
}

.creed-list li[b-87qepdizgn]::before {
    color: var(--text-primary);
    content: counter(creed, decimal-leading-zero);
    font-family: var(--font-mono);
    font-size: 1.4rem;
    font-weight: 600;
    grid-row: span 2;
    line-height: 1;
}

.creed-list h3[b-87qepdizgn] {
    color: var(--text-primary);
    font-size: 1.45rem;
    font-weight: 500;
    margin: 0 0 .5rem;
}

.creed-list p[b-87qepdizgn] {
    color: var(--text-secondary);
    font-size: .96rem;
    line-height: 1.7;
    margin: 0;
    max-width: 56ch;
}

/* ── Werkzeuge ────────────────────────────────────────────────────────────── */

.tools[b-87qepdizgn] {
    padding: clamp(4rem, 9vw, 7rem) 0 0;
}

.tools h2[b-87qepdizgn] {
    border-bottom: 1px solid var(--border-strong);
    color: var(--text-primary);
    font-size: clamp(2.2rem, 4.6vw, 3.6rem);
    font-weight: 500;
    margin: 0 0 2rem;
    padding-bottom: .8rem;
}

/* Ein großes Werkzeug links (Asset-Analyse, der Kern), zwei kleinere rechts gestapelt. */
.tool-grid[b-87qepdizgn] {
    display: grid;
    gap: 1.4rem;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    grid-template-rows: auto auto;
}

.tool[b-87qepdizgn] {
    background: var(--surface-raised);
    border: 1px solid var(--border-strong);
    display: grid;
    gap: 1.2rem;
    grid-template-columns: 2.6rem minmax(0, 1fr);
    overflow: hidden;
    padding: 1.6rem;
    position: relative;
    transition: background-color .2s ease;
}

.tool:hover[b-87qepdizgn] {
    background: color-mix(in srgb, var(--text-primary) 6%, var(--surface-raised));
}

.tool-lead[b-87qepdizgn] {
    align-content: center;
    grid-row: span 2;
}

.tool-idx[b-87qepdizgn] {
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 1;
}

.tool h3[b-87qepdizgn] {
    color: var(--text-primary);
    font-size: 1.5rem;
    font-weight: 500;
    margin: 0 0 .6rem;
}

.tool-lead h3[b-87qepdizgn] {
    font-size: 2rem;
}

.tool p[b-87qepdizgn] {
    color: var(--text-secondary);
    font-size: .93rem;
    line-height: 1.65;
    margin: 0 0 1rem;
}

.tool-link[b-87qepdizgn] {
    border-bottom: 1px solid var(--border-strong);
    color: var(--text-primary);
    font-size: .9rem;
    font-weight: 600;
    padding-bottom: .1rem;
    text-decoration: none;
}

.tool-link[b-87qepdizgn]::after {
    content: " →";
}

/* ── Abschluss ────────────────────────────────────────────────────────────── */

.cta[b-87qepdizgn] {
    padding: clamp(4.5rem, 10vw, 8rem) 0 0;
}

.cta-inner[b-87qepdizgn] {
    text-align: center;
}

.cta h2[b-87qepdizgn] {
    color: var(--text-primary);
    font-size: clamp(2.4rem, 5.4vw, 4.2rem);
    font-weight: 500;
    line-height: 1.02;
    margin: 0 auto 1rem;
    max-width: 15ch;
}

.cta p[b-87qepdizgn] {
    color: var(--text-secondary);
    font-size: 1.02rem;
    line-height: 1.7;
    margin: 0 auto 2rem;
    max-width: 44ch;
}

.cta-actions[b-87qepdizgn] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.4rem;
    justify-content: center;
}

.cta-actions .btn[b-87qepdizgn] {
    border-color: var(--text-primary);
    color: var(--text-primary);
}

.cta-actions .btn:hover[b-87qepdizgn] {
    background: var(--text-primary);
    color: var(--app-background);
}

.cta-actions .btn-primary[b-87qepdizgn] {
    background: var(--text-primary);
    color: var(--app-background);
}

.cta-actions .btn-primary:hover[b-87qepdizgn] {
    background: transparent;
    color: var(--text-primary);
}

@media (max-width: 960px) {
    .creed-inner[b-87qepdizgn] {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 860px) {
    .readout-inner[b-87qepdizgn] {
        grid-template-columns: minmax(0, 1fr);
    }

    .tool-grid[b-87qepdizgn] {
        grid-template-columns: minmax(0, 1fr);
    }

    .tool-lead[b-87qepdizgn] {
        grid-row: auto;
    }

    .factor[b-87qepdizgn] {
        gap: .5rem 1rem;
        grid-template-columns: minmax(0, 1fr) 3.2rem 3.2rem;
    }

    .factor-track[b-87qepdizgn] {
        grid-column: 1 / -1;
        order: 3;
    }
}

@media (max-width: 520px) {
    .tool[b-87qepdizgn] {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ── Scrollgesteuerte Bühne ────────────────────────────────────────────────────
   Ein längerer Abschnitt, darin eine sticky Bühne. js/stage.js schreibt den Fortschritt als
   CSS-Variablen auf .stage; Stadt und Überschrift treten zurück, der Chart (LandingStage.razor)
   übernimmt, am Ende läuft der ganze Abschnitt mit dem Dokument nach oben. Ohne JS oder bei
   reduzierter Bewegung bleibt es ein normaler, untereinander gestapelter Abschnitt. */
.stage[b-87qepdizgn] {
    position: relative;
}

.stage.is-live[b-87qepdizgn] {
    height: 280svh;
}

.stage.is-live .stage-pin[b-87qepdizgn] {
    height: calc(100svh - 4.25rem);
    overflow: clip;
    position: sticky;
    top: 4.25rem;
}

.stage:not(.is-live) .stage-chart[b-87qepdizgn] {
    display: none;
}

.stage.is-live .hero[b-87qepdizgn] {
    align-items: center;
    display: flex;
    height: 100%;
    padding-block: .6rem;
}

.stage.is-live .hero-stack[b-87qepdizgn] {
    max-height: 100%;
}

.stage.is-live .art[b-87qepdizgn] {
    height: clamp(300px, calc(100svh - 12rem), 760px);
}

.stage.is-live .scene[b-87qepdizgn] {
    opacity: calc(1 - .93 * var(--s-city, 0));
    transform: scale(calc(1 + .05 * var(--s-city, 0)));
    transform-origin: 50% 50%;
}

.stage.is-live .intro[b-87qepdizgn] {
    opacity: calc(1 - var(--s-intro, 0));
    transform: translateY(calc(var(--s-intro, 0) * -3rem));
}

.stage[data-intro-gone] .intro[b-87qepdizgn] {
    pointer-events: none;
}

@media (max-width: 900px) {
    .stage.is-live[b-87qepdizgn] {
        height: 240svh;
    }

    .stage.is-live .art[b-87qepdizgn] {
        height: 30svh;
    }

    .stage.is-live .scene-meta[b-87qepdizgn],
    .stage.is-live .scene-footer[b-87qepdizgn] {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .stage.is-live[b-87qepdizgn] {
        height: auto;
    }

    .stage.is-live .stage-pin[b-87qepdizgn] {
        height: auto;
        overflow: visible;
        position: static;
    }

    .stage.is-live .scene[b-87qepdizgn],
    .stage.is-live .intro[b-87qepdizgn] {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 700px) {
    .stage.is-live .hero-lead[b-87qepdizgn] {
        display: none;
    }
}
/* /Pages/Lernen.razor.rz.scp.css */
.concept-page[b-6ie26vf3pd] {
    display: flex;
    flex-direction: column;
    gap: 2.2rem;
    max-width: 60rem;
}

.concept-page-intro h1[b-6ie26vf3pd] {
    color: var(--text-primary);
    font-size: clamp(1.6rem, 3.4vw, 2.15rem);
    letter-spacing: -.015em;
    margin: .5rem 0 .6rem;
}

.concept-page-intro p:not(.eyebrow)[b-6ie26vf3pd] {
    color: var(--text-muted);
    font-size: .85rem;
    font-weight: 400;
    line-height: 1.7;
    margin: 0;
}

.loop[b-6ie26vf3pd] {
    border-top: 1px solid var(--border-subtle);
    padding-top: 1.4rem;
}

.loop h2[b-6ie26vf3pd] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: 1.05rem;
    margin: 0 0 1rem;
}

.loop-steps[b-6ie26vf3pd] {
    color: var(--text-muted);
    display: grid;
    font-size: .82rem;
    gap: .6rem;
    line-height: 1.6;
    margin: 0;
    padding-left: 1.3rem;
}

.loop-steps li[b-6ie26vf3pd]::marker {
    color: var(--accent);
    font-weight: 700;
}

.loop-slice[b-6ie26vf3pd] {
    border-top: 1px solid var(--border-subtle);
    color: var(--text-muted);
    font-size: .82rem;
    line-height: 1.6;
    margin: 1rem 0 0;
    padding-top: 1rem;
}

.concept-grid[b-6ie26vf3pd] {
    border-top: 1px solid var(--border-subtle);
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
    padding-top: 1.4rem;
}

/* Vier Schritte als Karten statt Nummernliste. */
.loop-steps[b-6ie26vf3pd] {
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
    list-style: none;
    margin: 1.2rem 0 0;
    padding: 0;
}

.loop-steps li[b-6ie26vf3pd] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    display: grid;
    gap: .35rem;
    padding: 1rem;
}

.loop-steps strong[b-6ie26vf3pd] { font-size: 1rem; }
.loop-steps li > span:last-child[b-6ie26vf3pd] { color: var(--text-muted); font-size: .86rem; line-height: 1.45; }
.loop-icon[b-6ie26vf3pd] { color: var(--accent); display: inline-flex; }
/* /Pages/MeineThesen.razor.rz.scp.css */
.thesen-page[b-maruqiv4uv] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    max-width: 72rem;
}

.concept-page-intro h1[b-maruqiv4uv] {
    color: var(--text-primary);
    font-size: clamp(1.6rem, 3.4vw, 2.15rem);
    letter-spacing: -.015em;
    margin: .5rem 0 .6rem;
}

.concept-page-intro p[b-maruqiv4uv] {
    max-width: 60rem;
    color: var(--text-muted);
    font-size: .95rem;
    font-weight: 400;
    line-height: 1.6;
    margin: 0;
}

.thesen-state[b-maruqiv4uv] { color: var(--text-quiet); font-size: .85rem; }
.thesen-error[b-maruqiv4uv] { color: var(--negative); font-size: .85rem; }

.thesen-list[b-maruqiv4uv] {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
}

/* Eine Kachel pro These: Fläche statt Rahmen, Status als Chip mit Punkt und Text. */
.thesis-card[b-maruqiv4uv] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
    gap: .6rem;
    padding: 1.25rem 1.4rem;
}

.thesis-head[b-maruqiv4uv] {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .7rem;
}

.thesis-symbol[b-maruqiv4uv] { color: var(--text-primary); font-family: var(--font-mono); font-size: 1.5rem; font-weight: 600; letter-spacing: -.03em; }
.thesis-dir[b-maruqiv4uv] { font-size: .78rem; font-weight: 600; }
.thesis-dir-up[b-maruqiv4uv] { color: var(--positive); }
.thesis-dir-down[b-maruqiv4uv] { color: var(--negative); }

.thesis-status[b-maruqiv4uv] {
    align-items: center;
    background: var(--surface-3);
    border: 0;
    border-radius: var(--radius-pill);
    color: var(--text-primary);
    display: inline-flex;
    font-size: .75rem;
    font-weight: 600;
    gap: .4rem;
    margin-left: auto;
    padding: .3rem .75rem;
}

.thesis-status[b-maruqiv4uv]::before {
    background: currentColor;
    border-radius: 50%;
    content: "";
    height: .5rem;
    width: .5rem;
}

.thesis-status-active[b-maruqiv4uv] { color: var(--text-primary); }
.thesis-status-completed[b-maruqiv4uv] { color: var(--positive); }
.thesis-status-invalidated[b-maruqiv4uv] { color: var(--negative); }
.thesis-status-ambiguous[b-maruqiv4uv] { color: var(--text-muted); }
.thesis-status-archived[b-maruqiv4uv] { color: var(--text-quiet); }

.thesis-meta[b-maruqiv4uv] { color: var(--text-muted); font-size: .85rem; margin: 0; }

.thesis-targets[b-maruqiv4uv] {
    background: var(--surface-3);
    border-radius: var(--radius-sm);
    display: flex;
    flex-direction: column;
    font-family: var(--font-mono);
    font-size: 1.05rem;
    gap: .2rem;
    padding: .7rem .9rem;
}

.thesis-invalidation[b-maruqiv4uv] { color: var(--text-secondary); font-size: .78rem; margin: 0; }

.thesis-tag[b-maruqiv4uv] {
    background: var(--surface-3);
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    font-size: .7rem;
    font-weight: 600;
    margin-right: .3rem;
    padding: .1rem .5rem;
}

.thesis-note[b-maruqiv4uv] {
    color: var(--text-secondary);
    font-size: .78rem;
    font-style: italic;
    line-height: 1.5;
    margin: 0;
}

.thesis-provenance[b-maruqiv4uv] {
    color: var(--text-quiet);
    font-size: .65rem;
    line-height: 1.5;
    margin: 0;
}

.thesis-history-toggle[b-maruqiv4uv] {
    align-self: flex-start;
    background: none;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    cursor: pointer;
    font-size: .8rem;
    font-weight: 600;
    padding: .3rem .6rem;
}

.thesis-history-toggle:hover[b-maruqiv4uv],
.thesis-history-toggle:focus-visible[b-maruqiv4uv] {
    border-color: var(--text-muted);
    color: var(--text-primary);
}

.thesis-history[b-maruqiv4uv] {
    border-top: 1px solid var(--border-subtle);
    padding-top: .6rem;
}

.thesis-history-list[b-maruqiv4uv] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.thesis-event[b-maruqiv4uv] {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    font-size: .76rem;
    gap: .4rem;
}

.thesis-event-kind[b-maruqiv4uv] {
    background: var(--surface-3);
    border-radius: var(--radius-pill);
    font-size: .68rem;
    font-weight: 700;
    padding: .15rem .55rem;
}

.thesis-event-positive .thesis-event-kind[b-maruqiv4uv] { color: var(--positive); }
.thesis-event-negative .thesis-event-kind[b-maruqiv4uv] { color: var(--negative); }
.thesis-event-neutral .thesis-event-kind[b-maruqiv4uv] { color: var(--text-muted); }

.thesis-event-boundary[b-maruqiv4uv] { color: var(--text-secondary); font-weight: 600; }
.thesis-event-time[b-maruqiv4uv] { color: var(--text-quiet); font-size: .65rem; }
.thesis-event-note[b-maruqiv4uv] { color: var(--text-muted); flex-basis: 100%; }

.thesis-original[b-maruqiv4uv] { border-top: 1px solid var(--border-subtle); padding-top: .6rem; }
.thesis-original summary[b-maruqiv4uv] { cursor: pointer; min-height: 32px; color: var(--text-primary); font-size: .78rem; }
.thesis-original summary:focus-visible[b-maruqiv4uv] { outline: 2px solid var(--accent); outline-offset: 3px; }
.thesis-original h3[b-maruqiv4uv] { font-size: .78rem; margin: .8rem 0 .4rem; }
.thesis-original p[b-maruqiv4uv] { margin: .3rem 0; line-height: 1.6; }
.thesis-context[b-maruqiv4uv] { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem .8rem; font-size: .72rem; }
.thesis-context dt[b-maruqiv4uv] { color: var(--text-muted); }
.thesis-context dd[b-maruqiv4uv] { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 430px) {
    .thesen-list[b-maruqiv4uv] { grid-template-columns: minmax(0, 1fr); }
    .thesis-context[b-maruqiv4uv] { grid-template-columns: minmax(0, 1fr); }
}
/* /Pages/NotFound.razor.rz.scp.css */
.not-found[b-3dnntpabcd] {
    margin: 0 auto;
    max-width: 30rem;
    padding: clamp(3rem, 12vh, 6rem) 1.4rem 3rem;
    text-align: center;
}

.not-found-code[b-3dnntpabcd] {
    border: 1px solid var(--border-strong);
    color: var(--text-quiet);
    font-family: var(--font-mono);
    font-size: clamp(3.6rem, 14vw, 5.6rem);
    font-weight: 700;
    line-height: 1;
    margin: 0 auto 1.8rem;
    padding: 1.4rem 0;
    width: min(16rem, 70%);
}

.not-found .eyebrow[b-3dnntpabcd] {
    justify-content: center;
}

.not-found h1[b-3dnntpabcd] {
    font-size: clamp(1.7rem, 3.4vw, 2.3rem);
    margin: .6rem 0 1.1rem;
}

.not-found-lead[b-3dnntpabcd] {
    color: var(--text-secondary);
    font-size: .95rem;
    line-height: 1.65;
}

.not-found-lead a[b-3dnntpabcd] {
    color: var(--text-primary);
}
/* /Pages/OneVsOne.razor.rz.scp.css */
.concept-page[b-ml9try88rq] {
    display: flex;
    flex-direction: column;
    gap: 2.2rem;
    max-width: 64rem;
}

.concept-page-intro h1[b-ml9try88rq] {
    color: var(--text-primary);
    font-size: clamp(1.6rem, 3.4vw, 2.15rem);
    letter-spacing: -.015em;
    margin: .5rem 0 .6rem;
}

.concept-page-intro p:not(.eyebrow)[b-ml9try88rq] {
    color: var(--text-muted);
    font-size: .85rem;
    font-weight: 400;
    line-height: 1.7;
    margin: 0;
}

.mode-grid[b-ml9try88rq] {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
}

.mode-card[b-ml9try88rq] {
    border-top: 1px solid var(--border-subtle);
    padding-top: 1rem;
}

.mode-head[b-ml9try88rq] {
    align-items: baseline;
    display: flex;
    gap: .6rem;
    justify-content: space-between;
    margin-bottom: .6rem;
}

.mode-head h2[b-ml9try88rq] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: 1.1rem;
    margin: 0;
}

.mode-card p[b-ml9try88rq] {
    color: var(--text-muted);
    font-size: .78rem;
    line-height: 1.6;
    margin: 0;
}

/* --- duel hub: rating, quick actions, pending invites --------------------------- */

.duel-hub[b-ml9try88rq] {
    border-top: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: .9rem;
    padding-top: 1.4rem;
}

.duel-rating[b-ml9try88rq] {
    color: var(--text-primary);
    font-size: .88rem;
    margin: 0;
}

.duel-rating-record[b-ml9try88rq] {
    color: var(--text-quiet);
    font-size: .78rem;
}

.duel-quick-actions[b-ml9try88rq] {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.duel-queue-btn[b-ml9try88rq] {
    background: var(--surface-raised);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
}

.duel-queue-btn:hover[b-ml9try88rq] {
    background: var(--surface-3);
    color: var(--text-primary);
}

.duel-invites[b-ml9try88rq] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.duel-invite-row[b-ml9try88rq] {
    align-items: center;
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    display: flex;
    gap: .6rem;
    padding: .5rem .7rem;
}

.duel-invite-row span:nth-child(2)[b-ml9try88rq] {
    color: var(--text-muted);
    flex: 1;
    font-size: .8rem;
}

.duel-invite-row button[b-ml9try88rq] {
    background: var(--accent);
    border: 0;
    color: var(--app-background);
    cursor: pointer;
    flex-shrink: 0;
    font-size: .76rem;
    font-weight: 600;
    padding: .4rem .8rem;
}

.duel-invite-row button:hover[b-ml9try88rq] {
    background: var(--accent-bright);
}

.duel-invite-row .invite-decline[b-ml9try88rq] {
    background: none;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-muted);
}

.duel-invite-row .invite-decline:hover[b-ml9try88rq] {
    background: none;
    border-color: var(--negative);
    color: var(--negative);
}

.duel-public-link[b-ml9try88rq],
.duel-friend-result[b-ml9try88rq] {
    align-items: center;
}

.duel-public-link .duel-sub[b-ml9try88rq] {
    color: var(--text-muted);
    font-size: .74rem;
}

/* --- the real Replay-Duell flow ------------------------------------------------ */

.duel-start[b-ml9try88rq] {
    background: var(--accent);
    border: 0;
    color: var(--app-background);
    cursor: pointer;
    font-size: .8rem;
    font-weight: 600;
    margin-top: .8rem;
    padding: .5rem 1rem;
}

.duel-start:hover[b-ml9try88rq] {
    background: var(--accent-bright);
}

.duel-panel[b-ml9try88rq] {
    border-top: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: .9rem;
    padding-top: 1.4rem;
}

.section-label[b-ml9try88rq] {
    color: var(--text-quiet);
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .02em;
    margin: 0;
}

.duel-search[b-ml9try88rq] {
    background: none;
    border: 0;
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-primary);
    font: inherit;
    font-size: .85rem;
    padding: .4rem .1rem;
    width: 100%;
    max-width: 24rem;
}

.duel-search:focus[b-ml9try88rq] {
    border-bottom-color: var(--accent);
    outline: none;
}

.duel-results[b-ml9try88rq] {
    display: grid;
    gap: .4rem;
    grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
}

.duel-result[b-ml9try88rq] {
    align-items: baseline;
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    cursor: pointer;
    display: flex;
    font: inherit;
    gap: .5rem;
    padding: .55rem .7rem;
    text-align: left;
}

.duel-result:hover[b-ml9try88rq] {
    border-color: var(--border-strong);
}

.duel-result span:last-child[b-ml9try88rq] {
    color: var(--text-muted);
    font-size: .78rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.form-error[b-ml9try88rq] {
    color: var(--negative);
    font-size: .78rem;
}

.link-button[b-ml9try88rq] {
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font-size: .74rem;
    text-decoration: underline;
}

.link-button:hover[b-ml9try88rq] {
    color: var(--negative);
}

.duel-invite[b-ml9try88rq] {
    align-items: center;
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    display: flex;
    gap: .6rem;
    padding: .6rem .8rem;
}

.duel-invite-link[b-ml9try88rq] {
    color: var(--text-primary);
    flex: 1;
    font-size: .78rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.duel-invite button[b-ml9try88rq] {
    background: var(--accent);
    border: 0;
    color: var(--app-background);
    cursor: pointer;
    flex-shrink: 0;
    font-size: .76rem;
    font-weight: 600;
    padding: .4rem .8rem;
}

.duel-invite button:hover[b-ml9try88rq] {
    background: var(--accent-bright);
}

.duel-progress[b-ml9try88rq] {
    align-items: center;
    color: var(--text-quiet);
    display: flex;
    flex-wrap: wrap;
    font-size: .78rem;
    gap: .8rem;
    justify-content: space-between;
}

.duel-progress .fullscreen-toggle[b-ml9try88rq] {
    flex: 0 0 auto;
    margin-left: auto;
}

.duel-chart-host[b-ml9try88rq] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    width: 100%;
}

/* Vollbild: same "chart alone, rail/exit floating over it" treatment as Analyse.razor.css -
   same MarketChart component underneath, so the same class names/specificity pitfalls apply
   (see that file's comments for why !important and the single-column grid are both needed). */
.duel-workspace:fullscreen[b-ml9try88rq] {
    background: var(--paper);
    display: block;
    height: 100vh;
    overflow: hidden;
    padding: 0;
    position: relative;
    width: 100vw;
}

.duel-workspace:fullscreen .duel-progress > span[b-ml9try88rq],
.duel-workspace:fullscreen .duel-sides[b-ml9try88rq],
.duel-workspace:fullscreen[b-ml9try88rq]  .ticket-panel,
.duel-workspace:fullscreen[b-ml9try88rq]  .receipt-panel,
.duel-workspace:fullscreen[b-ml9try88rq]  .trades-panel,
.duel-workspace:fullscreen .duel-note[b-ml9try88rq] {
    display: none;
}

.duel-workspace:fullscreen .duel-progress[b-ml9try88rq] {
    inset: .8rem auto auto .8rem;
    margin: 0;
    position: fixed;
    width: auto;
    z-index: 30;
}

.duel-workspace:fullscreen[b-ml9try88rq]  .chart-card {
    border-top: 0 !important;
    height: 100vh !important;
    min-height: 0 !important;
    padding-top: 0 !important;
}

.duel-workspace:fullscreen[b-ml9try88rq]  .chart-stage {
    border: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    height: 100vh !important;
}

.duel-workspace:fullscreen[b-ml9try88rq]  .chart-panel {
    height: 100vh !important;
    padding-top: 3.6rem;
}

.duel-workspace:fullscreen[b-ml9try88rq]  .chart-host {
    flex: 1 1 auto !important;
    height: auto !important;
}

.duel-workspace:fullscreen[b-ml9try88rq]  .rail {
    background: var(--paper);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    inset: 4.2rem auto auto .8rem;
    position: fixed;
    z-index: 30;
}

.duel-workspace:fullscreen[b-ml9try88rq]  .chart-statusbar {
    background: var(--paper);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    inset: auto .8rem .8rem .8rem;
    position: fixed;
    z-index: 30;
}

.duel-sides[b-ml9try88rq] {
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
}

.duel-side[b-ml9try88rq] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    display: flex;
    flex-direction: column;
    gap: .2rem;
    padding: .8rem 1rem;
}

.duel-side h3[b-ml9try88rq] {
    color: var(--text-quiet);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .02em;
    margin: 0;}

.duel-total[b-ml9try88rq] {
    color: var(--text-primary);
    font-size: 1.3rem;
    font-weight: 600;
}

.duel-sub[b-ml9try88rq] {
    color: var(--text-muted);
    font-size: .76rem;
}

.duel-controls[b-ml9try88rq] {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.duel-controls button[b-ml9try88rq] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    cursor: pointer;
    font: inherit;
    font-size: .8rem;
    padding: .5rem .9rem;
}

.duel-controls button:disabled[b-ml9try88rq] {
    cursor: not-allowed;
    opacity: .45;
}

.duel-controls button:not(:disabled):hover[b-ml9try88rq] {
    border-color: var(--border-strong);
}

.duel-controls .duel-next[b-ml9try88rq] {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--app-background);
    font-weight: 600;
    margin-left: auto;
}

.duel-controls .duel-next:hover[b-ml9try88rq] {
    background: var(--accent-bright);
}

.duel-note[b-ml9try88rq] {
    color: var(--text-quiet);
    font-size: .72rem;
    line-height: 1.6;
    margin: 0;
}

/* --- the result screen: its own layer above the page, not an inline section ---- */

.duel-result-overlay[b-ml9try88rq] {
    align-items: center;
    animation: duel-overlay-in-b-ml9try88rq 220ms var(--motion-settle);
    background: color-mix(in srgb, var(--app-background) 78%, transparent);
    backdrop-filter: blur(6px);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 1.2rem;
    position: fixed;
    z-index: 60;
}

@keyframes duel-overlay-in-b-ml9try88rq { from { opacity: 0; } to { opacity: 1; } }

.duel-result-card[b-ml9try88rq] {
    animation: duel-card-in-b-ml9try88rq 420ms var(--motion-spring);
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    box-shadow: 0 24px 64px color-mix(in srgb, black 45%, transparent);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 30rem;
    padding: 1.8rem 1.6rem;
    position: relative;
    width: 100%;
}

@keyframes duel-card-in-b-ml9try88rq {
    from { opacity: 0; scale: .92; translate: 0 12px; }
    to { opacity: 1; scale: 1; translate: 0 0; }
}

.duel-result-card h2[b-ml9try88rq] {
    font-size: 1.3rem;
    margin: 0;
}

.duel-result-card.win h2[b-ml9try88rq] { color: var(--positive); }
.duel-result-card.lose h2[b-ml9try88rq] { color: var(--negative); }
.duel-result-card.tie h2[b-ml9try88rq] { color: var(--text-muted); }

.duel-result-close[b-ml9try88rq] {
    background: none;
    border: 0;
    color: var(--text-quiet);
    cursor: pointer;
    font-size: 1.4rem;
    line-height: 1;
    padding: .2rem;
    position: absolute;
    right: 1rem;
    top: 1rem;
}

.duel-result-close:hover[b-ml9try88rq] {
    color: var(--text-primary);
}

.duel-rating-delta[b-ml9try88rq] {
    font-size: .78rem;
    font-weight: 600;
}

.duel-rating-delta.up[b-ml9try88rq] { color: var(--positive); }
.duel-rating-delta.down[b-ml9try88rq] { color: var(--negative); }

/* --- Bestenliste und letzte Duelle ---------------------------------------------- */

.duel-history[b-ml9try88rq],
.duel-leaderboard[b-ml9try88rq],
.duel-prizes[b-ml9try88rq] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.duel-history ul[b-ml9try88rq],
.duel-leaderboard ol[b-ml9try88rq],
.prize-card ol[b-ml9try88rq],
.prize-winners[b-ml9try88rq] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.history-row[b-ml9try88rq],
.board-row[b-ml9try88rq] {
    align-items: center;
    border-bottom: 1px solid var(--border-subtle);
    display: grid;
    gap: .7rem;
    padding: .55rem 0;
}

.history-row[b-ml9try88rq] {
    grid-template-columns: 6.2rem minmax(0, 1fr) auto;
}

.history-result[b-ml9try88rq] {
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .02em;}

.history-row.win .history-result[b-ml9try88rq] { color: var(--positive); }
.history-row.loss .history-result[b-ml9try88rq] { color: var(--negative); }
.history-row.draw .history-result[b-ml9try88rq] { color: var(--text-muted); }

.history-main[b-ml9try88rq] {
    color: var(--text-primary);
    display: flex;
    flex-direction: column;
    font-size: .84rem;
    min-width: 0;
}

.history-main small[b-ml9try88rq] {
    color: var(--text-quiet);
    font-size: .72rem;
}

.history-rating[b-ml9try88rq] {
    color: var(--text-muted);
    font-size: .8rem;
    font-weight: 600;
}

.history-rating.up[b-ml9try88rq] { color: var(--positive); }
.history-rating.down[b-ml9try88rq] { color: var(--negative); }

.board-row[b-ml9try88rq] {
    grid-template-columns: 2rem 26px minmax(0, 1fr) auto auto;
}

.board-row.you[b-ml9try88rq] {
    background: color-mix(in srgb, var(--text-primary) 10%, transparent);
    box-shadow: inset 3px 0 0 var(--border-strong);
    padding-left: .5rem;
}

.board-rank[b-ml9try88rq] {
    color: var(--text-quiet);
    font-size: .78rem;
}

.board-anon[b-ml9try88rq] {
    background: var(--surface-inset);
    border: 1px solid var(--border-subtle);
    border-radius: 50%;
    height: 26px;
    width: 26px;
}

.board-name[b-ml9try88rq] {
    color: var(--text-primary);
    font-size: .84rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.board-record[b-ml9try88rq] {
    color: var(--text-quiet);
    font-size: .72rem;
}

.board-rating[b-ml9try88rq] {
    color: var(--text-primary);
    font-size: .92rem;
    font-weight: 700;
    min-width: 3rem;
    text-align: right;
}

@media (max-width: 520px) {
    .board-record[b-ml9try88rq] { display: none; }
    .board-row[b-ml9try88rq] { grid-template-columns: 2rem 26px minmax(0, 1fr) auto; }
    .history-row[b-ml9try88rq] { grid-template-columns: minmax(0, 1fr) auto; }
    .history-result[b-ml9try88rq] { grid-column: 1 / -1; }
}

/* --- Wochen- und Monatspreise ---------------------------------------------------- */

.prize-grid[b-ml9try88rq] {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
}

.prize-card[b-ml9try88rq] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
    gap: .35rem;
    padding: .9rem 1rem;
}

.prize-card header[b-ml9try88rq] {
    align-items: baseline;
    display: flex;
    justify-content: space-between;
}

.prize-kind[b-ml9try88rq] {
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .02em;}

.prize-amount[b-ml9try88rq] {
    color: var(--text-primary);
    font-size: 1.15rem;
    font-weight: 700;
}

.prize-period[b-ml9try88rq] {
    color: var(--text-quiet);
    font-size: .74rem;
    margin: 0 0 .25rem;
}

.prize-row[b-ml9try88rq] {
    grid-template-columns: 1.6rem 26px minmax(0, 1fr) auto auto;
}

.prize-winners li[b-ml9try88rq] {
    align-items: baseline;
    border-bottom: 1px solid var(--border-subtle);
    display: grid;
    font-size: .82rem;
    gap: .7rem;
    grid-template-columns: 8.5rem minmax(0, 1fr) auto;
    padding: .45rem 0;
}

.prize-winners li.you[b-ml9try88rq] {
    background: color-mix(in srgb, var(--text-primary) 10%, transparent);
    box-shadow: inset 3px 0 0 var(--border-strong);
    padding-left: .5rem;
}

.prize-won[b-ml9try88rq] {
    background: color-mix(in srgb, var(--positive) 12%, transparent);
    border: 1px solid var(--positive);
    border-radius: var(--radius-sm);
    font-size: .86rem;
    font-weight: 600;
    margin: 0;
    padding: .6rem .8rem;
}

@media (max-width: 520px) {
    .prize-winners li[b-ml9try88rq] {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .prize-winners li .prize-kind[b-ml9try88rq] {
        grid-column: 1 / -1;
    }
}

/* --- Revanche auf dem Ergebnis-Bildschirm --------------------------------------- */

.rematch-offer[b-ml9try88rq] {
    color: var(--text-primary);
    font-weight: 600;
}

.rematch-error[b-ml9try88rq] {
    color: var(--negative);
}

/* --- Teilorders --------------------------------------------------------------------- */

.duel-holdings[b-ml9try88rq] {
    color: var(--text-muted);
    display: flex;
    flex-wrap: wrap;
    font-size: .8rem;
    gap: .4rem 1.4rem;
}

.duel-holdings strong[b-ml9try88rq] {
    color: var(--text-primary);
}

.duel-order[b-ml9try88rq] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.order-row[b-ml9try88rq] {
    align-items: center;
    display: grid;
    gap: .5rem;
    grid-template-columns: 5.6rem repeat(4, minmax(0, 1fr));
}

.order-row.custom[b-ml9try88rq] {
    grid-template-columns: minmax(0, 1fr) auto auto;
}

.order-row.custom label[b-ml9try88rq] {
    align-items: center;
    display: grid;
    gap: .5rem;
    grid-template-columns: 5.6rem minmax(0, 1fr);
}

.order-label[b-ml9try88rq] {
    color: var(--text-muted);
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .02em;}

.order-row button[b-ml9try88rq] {
    background: none;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    cursor: pointer;
    font: inherit;
    font-size: .82rem;
    padding: .5rem .3rem;
}

.order-row.buy button:not(:disabled):hover[b-ml9try88rq] { border-color: var(--positive); color: var(--positive); }
.order-row.sell button:not(:disabled):hover[b-ml9try88rq] { border-color: var(--negative); color: var(--negative); }
.order-row button:disabled[b-ml9try88rq] { cursor: not-allowed; opacity: .4; }

.order-row.custom input[b-ml9try88rq] {
    background: var(--surface-inset, transparent);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    font: inherit;
    min-width: 0;
    padding: .5rem .6rem;
    width: 100%;
}

@media (max-width: 520px) {
    .order-row[b-ml9try88rq],
    .order-row.custom[b-ml9try88rq] {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .order-row .order-label[b-ml9try88rq],
    .order-row.custom label[b-ml9try88rq] {
        grid-column: 1 / -1;
    }

    .order-row.custom label[b-ml9try88rq] {
        grid-template-columns: 1fr;
    }

    .order-row.custom button[b-ml9try88rq] {
        grid-column: span 2;
    }
}

/* --- Kerzenlänge wählen ------------------------------------------------------------- */

.duel-timeframes[b-ml9try88rq] {
    border: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin: 0;
    padding: 0;
}

.duel-timeframes legend[b-ml9try88rq] {
    color: var(--text-muted);
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .02em;
    margin-bottom: .4rem;
    padding: 0;}

.duel-timeframes label[b-ml9try88rq] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-size: .84rem;
    padding: .5rem .9rem;
}

.duel-timeframes label + label[b-ml9try88rq] {
    border-left: 0;
}

.duel-timeframes label.is-on[b-ml9try88rq] {
    background: var(--surface-3);
    color: var(--text-primary);
    font-weight: 600;
}

.duel-timeframes input[b-ml9try88rq] {
    opacity: 0;
    pointer-events: none;
    position: absolute;
}

.duel-timeframes label:focus-within[b-ml9try88rq] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

/* --- Bilanz und Freunde-Wertung ------------------------------------------------------- */

.duel-stats[b-ml9try88rq] {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.stat-grid[b-ml9try88rq] {
    display: grid;
    gap: 0;
    grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
}

.stat[b-ml9try88rq] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    display: flex;
    flex-direction: column;
    gap: .3rem;
    margin: 0 -1px -1px 0;
    padding: .7rem .8rem;
}

.stat-label[b-ml9try88rq] {
    color: var(--text-muted);
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .02em;}

.stat strong[b-ml9try88rq] {
    color: var(--text-primary);
    font-size: 1.1rem;
}

.stat strong.up[b-ml9try88rq] { color: var(--positive); }
.stat strong.down[b-ml9try88rq] { color: var(--negative); }

.stat-groups[b-ml9try88rq] {
    display: grid;
    gap: 1.4rem;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
}

.stat-groups table[b-ml9try88rq] {
    border-collapse: collapse;
    font-size: .8rem;
    width: 100%;
}

.stat-groups caption[b-ml9try88rq] {
    color: var(--text-muted);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .02em;
    padding-bottom: .3rem;
    text-align: left;}

.stat-groups th[b-ml9try88rq] {
    color: var(--text-quiet);
    font-size: .68rem;
    font-weight: 600;
    padding: .25rem .3rem;
    text-align: left;
}

.stat-groups td[b-ml9try88rq] {
    border-top: 1px solid var(--border-subtle);
    padding: .4rem .3rem;
}

.stat-groups .num[b-ml9try88rq] {
    text-align: right;
}

.board-head[b-ml9try88rq] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1rem;
    justify-content: space-between;
}

.board-scope[b-ml9try88rq] {
    display: flex;
}

.board-scope button[b-ml9try88rq] {
    background: none;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    cursor: pointer;
    font: inherit;
    font-size: .76rem;
    padding: .35rem .8rem;
}

.board-scope button + button[b-ml9try88rq] {
    border-left: 0;
}

.board-scope button.is-on[b-ml9try88rq] {
    background: var(--surface-3);
    color: var(--text-primary);
    font-weight: 600;
}

.board-row.provisional[b-ml9try88rq] {
    opacity: .6;
}

.duel-process[b-ml9try88rq] {
    border-top: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding-top: .8rem;
}

.duel-process h4[b-ml9try88rq] {
    font-size: .8rem;
    margin: 0;
}

.duel-process-hint[b-ml9try88rq] {
    color: var(--text-quiet);
    font-weight: 400;
}

.duel-process-rows[b-ml9try88rq] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.duel-process-row[b-ml9try88rq] {
    display: grid;
    font-size: .8rem;
    gap: .4rem .8rem;
    grid-template-columns: minmax(0, 1fr) auto auto;
}

.duel-process-row > span:first-child[b-ml9try88rq] {
    min-width: 0;
    overflow-wrap: anywhere;
}

.duel-process-opp[b-ml9try88rq] {
    color: var(--text-quiet);
}

/* ── Bracket order ticket (Premium-Kit Bausteine 07/22/36, same classes as Analyse.razor's
   Replay mode - duplicated here rather than shared, matching this codebase's existing pattern
   of per-page CSS isolation) ── */

.seg[b-ml9try88rq] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    display: inline-grid;
    grid-template-columns: 1fr 1fr;
    position: relative;
}

.seg.full[b-ml9try88rq] {
    display: grid;
    width: 100%;
}

.seg button[b-ml9try88rq] {
    background: transparent;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font: inherit;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .02em;
    padding: .6rem 1rem;
    position: relative;
    text-align: center;    transition: color 240ms var(--ease-out);
    z-index: 1;
}

.seg button[aria-pressed="true"][b-ml9try88rq] {
    color: var(--text-primary);
}

.seg button:focus-visible[b-ml9try88rq] {
    outline: .5px solid var(--accent);
    outline-offset: -4px;
}

.seg button:disabled[b-ml9try88rq] {
    cursor: not-allowed;
    opacity: .6;
}

.seg__thumb[b-ml9try88rq] {
    background: var(--text-secondary);
    bottom: 0;
    left: 0;
    position: absolute;
    top: 0;
    transition: transform 300ms var(--ease-out), background 300ms ease;
    width: 50%;
}

.seg[data-side="sell"] .seg__thumb[b-ml9try88rq],
.seg[data-side="second"] .seg__thumb[b-ml9try88rq] {
    transform: translateX(100%);
}

.seg[data-side="sell"] .seg__thumb[b-ml9try88rq] {
    background: var(--negative);
}

.panel[b-ml9try88rq] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    display: grid;
    gap: .8rem;
    padding: 1.1rem;
}

.panel h2[b-ml9try88rq] {
    align-items: center;
    color: var(--text-muted);
    display: flex;
    font-size: .68rem;
    font-weight: 600;
    justify-content: space-between;
    letter-spacing: .02em;
    margin: 0;}

.tag[b-ml9try88rq] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-muted);
    font-size: .58rem;
    letter-spacing: .02em;
    padding: .1rem .4rem;    white-space: nowrap;
}

.grid2[b-ml9try88rq] {
    display: grid;
    gap: .6rem;
    grid-template-columns: 1fr 1fr;
}

.field[b-ml9try88rq] {
    display: grid;
    gap: .3rem;
}

.field span[b-ml9try88rq] {
    color: var(--text-quiet);
    font-size: .58rem;
    letter-spacing: .02em;}

.field input[b-ml9try88rq] {
    background: var(--paper-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    font: inherit;
    font-variant-numeric: tabular-nums;
    padding: .5rem .6rem;
    width: 100%;
}

.field input:focus-visible[b-ml9try88rq] {
    outline: 1px solid var(--accent);
    outline-offset: 1px;
}

.field input:disabled[b-ml9try88rq] {
    cursor: not-allowed;
    opacity: .6;
}

.kv[b-ml9try88rq] {
    display: grid;
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
    gap: .25rem .8rem;
    grid-template-columns: 1fr auto;
    margin: 0;
}

.kv dt[b-ml9try88rq] {
    color: var(--text-quiet);
}

.kv dd[b-ml9try88rq] {
    margin: 0;
    text-align: right;
}

.order-submit[b-ml9try88rq] {
    background: var(--accent);
    border: 0;
    color: var(--on-accent);
    cursor: pointer;
    font: inherit;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .02em;
    padding: .7rem 1rem;    width: 100%;
}

.order-submit:disabled[b-ml9try88rq] {
    cursor: not-allowed;
    opacity: .45;
}

.order-message[b-ml9try88rq] {
    font-size: .78rem;
    margin: 0;
}

.order-message.is-error[b-ml9try88rq] {
    color: var(--negative);
}

.note[b-ml9try88rq] {
    color: var(--text-quiet);
    font-size: .72rem;
    line-height: 1.55;
    margin: 0;
}

.empty[b-ml9try88rq] {
    color: var(--text-quiet);
    font-size: .78rem;
    margin: 0;
}

.pos[b-ml9try88rq] { color: var(--positive); }
.neg[b-ml9try88rq] { color: var(--negative); }

.receipt[b-ml9try88rq] {
    background: var(--paper-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    display: grid;
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
    gap: .35rem;
    padding: 1.1rem;
}

.receipt__row[b-ml9try88rq] {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.receipt__rule[b-ml9try88rq] {
    border-top: 1px dashed var(--border-subtle);
    margin-block: .5rem;
}

.receipt__total[b-ml9try88rq] {
    font-size: .95rem;
    font-weight: 800;
}

.receipt__foot[b-ml9try88rq] {
    color: var(--text-muted);
    font-size: var(--t-label-size);
    letter-spacing: .02em;}

.trades[b-ml9try88rq] {
    display: grid;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.fold[b-ml9try88rq] {
    border-top: 1px solid var(--border-subtle);
}

.fold__head[b-ml9try88rq] {
    all: unset;
    box-sizing: border-box;
    cursor: pointer;
    display: flex;
    font-size: .8rem;
    gap: 1rem;
    justify-content: space-between;
    padding: .7rem 0;
    width: 100%;
}

.fold__head:focus-visible[b-ml9try88rq] {
    outline: .5px solid var(--accent);
    outline-offset: 2px;
}

.fold__sign[b-ml9try88rq] {
    flex: none;
    height: 10px;
    margin-top: .3rem;
    position: relative;
    width: 10px;
}

.fold__sign[b-ml9try88rq]::before,
.fold__sign[b-ml9try88rq]::after {
    border-top: 1px solid var(--border-strong);
    content: '';
    left: 0;
    position: absolute;
    right: 0;
    top: 50%;
    transition: transform 320ms var(--ease-out);
}

.fold__sign[b-ml9try88rq]::after {
    transform: rotate(90deg);
}

.fold[data-open="true"] .fold__sign[b-ml9try88rq]::after {
    transform: rotate(0deg);
}

.fold__body[b-ml9try88rq] {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 360ms var(--ease-out);
}

.fold[data-open="true"] .fold__body[b-ml9try88rq] {
    grid-template-rows: 1fr;
}

.fold__inner[b-ml9try88rq] {
    overflow: hidden;
}

.fold__inner > div[b-ml9try88rq] {
    color: var(--text-secondary);
    display: grid;
    font-size: .78rem;
    gap: .4rem;
    padding: 0 0 .9rem;
}

.btn-ghost[b-ml9try88rq] {
    background: transparent;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    cursor: pointer;
    font: inherit;
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .02em;
    padding: .55rem 1rem;}

.btn-ghost:hover:not(:disabled)[b-ml9try88rq] {
    background: var(--surface-hover);
}

.btn-ghost:disabled[b-ml9try88rq] {
    cursor: not-allowed;
    opacity: .45;
}
/* /Pages/PlacementTest.razor.rz.scp.css */
.test-page[b-jmdtakusxt] {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.test-loading[b-jmdtakusxt] {
    color: var(--text-muted);
    margin: auto;
}

.test-head[b-jmdtakusxt] {
    align-items: center;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    padding: 1rem clamp(1.4rem, 4vw, 3.5rem);
}

.test-head a[b-jmdtakusxt] {
    color: var(--text-muted);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0;
    text-decoration: none;
}

.test-head a:hover[b-jmdtakusxt] {
    color: var(--text-primary);
}

.test-brand[b-jmdtakusxt] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-align: center;
}

.test-head-right[b-jmdtakusxt] {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: flex-end;
}

.test-count[b-jmdtakusxt] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: .1em;
    text-align: right;
}

.test-skip[b-jmdtakusxt] {
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0;
}

.question[b-jmdtakusxt] {
    flex: 1;
    margin: 0 auto;
    max-width: 44rem;
    padding: clamp(2.5rem, 8vh, 5.5rem) clamp(1.4rem, 4vw, 0) 2rem;
    width: 100%;
}

.question-category[b-jmdtakusxt] {
    color: var(--text-primary);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0;
    margin: 0 0 1.3rem;
}

.question h1[b-jmdtakusxt] {
    font-size: clamp(1.6rem, 4vw, 2.3rem);
    line-height: 1.28;
    margin: 0 0 2.8rem;
}

.options[b-jmdtakusxt] {
    display: flex;
    flex-direction: column;
}

.options button[b-jmdtakusxt] {
    align-items: baseline;
    background: none;
    border: 0;
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-secondary);
    cursor: pointer;
    display: flex;
    font: inherit;
    gap: 1rem;
    padding: 1.05rem 0;
    text-align: left;
    transition: color .3s ease;
}

.options button:hover[b-jmdtakusxt] {
    color: var(--text-primary);
}

.options button.selected[b-jmdtakusxt] {
    color: var(--text-primary);
}

.option-letter[b-jmdtakusxt] {
    color: var(--text-quiet);
    flex: 0 0 auto;
    font-family: var(--font-display);
    font-size: 1.15rem;
    width: 1.4rem;
}

.options button.selected .option-letter[b-jmdtakusxt] {
    color: var(--text-primary);
}

.option-text[b-jmdtakusxt] {
    display: flex;
    flex-direction: column;
    font-size: .95rem;
    font-weight: 400;
    gap: .15rem;
    line-height: 1.5;
}

.option-text strong[b-jmdtakusxt] {
    font-weight: 600;
}

.option-hint[b-jmdtakusxt] {
    color: var(--text-quiet);
    font-size: .8rem;
}

.options button:disabled[b-jmdtakusxt] {
    cursor: wait;
    opacity: .6;
}

.question-foot[b-jmdtakusxt] {
    align-items: center;
    color: var(--text-quiet);
    display: flex;
    font-size: 0.74rem;
    gap: 1.4rem;
    justify-content: space-between;
    margin-top: 1.8rem;
}

.link-button[b-jmdtakusxt] {
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: .1em;
    padding: 0;
}

.link-button:hover[b-jmdtakusxt] {
    color: var(--text-primary);
}

.result[b-jmdtakusxt] {
    margin: auto;
    max-width: 34rem;
    padding: 2rem clamp(1.4rem, 4vw, 0);
    text-align: center;
}

.result h1[b-jmdtakusxt] {
    font-size: clamp(1.8rem, 4vw, 2.5rem);
    margin: .5rem 0 1.3rem;
}

.result-tally[b-jmdtakusxt] {
    color: var(--text-muted);
    font-size: .78rem;
}

.result-body[b-jmdtakusxt] {
    color: var(--text-secondary);
    font-size: .9rem;
    font-weight: 400;
    line-height: 1.7;
    margin: 1rem 0 1.6rem;
}

.result-note[b-jmdtakusxt] {
    color: var(--text-muted);
    font-size: .78rem;
    margin-bottom: 2rem;
}

.result-note-error[b-jmdtakusxt] {
    color: var(--negative);
}

.result-note-error .link-button[b-jmdtakusxt] {
    color: inherit;
    text-decoration: underline;
}

.result .lede[b-jmdtakusxt] {
    color: var(--text-primary);
    display: inline-block;
    font-size: .85rem;
    font-weight: 500;
    text-decoration: none;
}

.result .lede span[b-jmdtakusxt] {
    border-bottom: 1px solid currentColor;
    padding-bottom: 2px;
}
/* /Pages/Premium.razor.rz.scp.css */
.concept-page[b-7hwypjey1t] {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    max-width: 80rem;
}

.concept-page-intro h1[b-7hwypjey1t] {
    color: var(--text-primary);
    font-size: clamp(1.9rem, 3.6vw, 2.6rem);
    letter-spacing: -.03em;
    margin: .5rem 0 .5rem;
}

.concept-page-intro p:not(.eyebrow)[b-7hwypjey1t] {
    max-width: 44rem;
    color: var(--text-muted);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.55;
    margin: 0;
}

.concept-grid[b-7hwypjey1t] {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
}
/* /Pages/PriceAlerts.razor.rz.scp.css */
.alerts-page[b-dczpqbe97x] {
    display: flex;
    flex-direction: column;
    gap: 2.2rem;
    max-width: 46rem;
    min-width: 0;
}

.alerts-intro h1[b-dczpqbe97x] {
    color: var(--text-primary);
    font-size: clamp(1.6rem, 3.4vw, 2.1rem);
    letter-spacing: -.015em;
    margin: .5rem 0 .8rem;
}

.alerts-intro p:not(.eyebrow)[b-dczpqbe97x] {
    color: var(--text-muted);
    font-size: .88rem;
    line-height: 1.7;
    margin: 0;
    max-width: 40rem;
}

.alerts-section[b-dczpqbe97x] {
    border-top: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding-top: 1.3rem;
}

.alerts-section h2[b-dczpqbe97x] {
    align-items: baseline;
    display: flex;
    font-size: 1.1rem;
    gap: .7rem;
    margin: 0;
}

.alerts-section h2 small[b-dczpqbe97x] {
    color: var(--text-quiet);
    font-size: .74rem;
    font-weight: 500;
}

.alert-search input[b-dczpqbe97x],
.target input[b-dczpqbe97x] {
    background: var(--surface-inset, transparent);
    border: 1px solid var(--border-strong, var(--border-subtle));
    border-radius: 0;
    color: var(--text-primary);
    font: inherit;
    padding: .65rem .8rem;
    width: 100%;
}

.alert-results[b-dczpqbe97x] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.alert-results button[b-dczpqbe97x] {
    align-items: baseline;
    background: none;
    border: 0;
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-primary);
    cursor: pointer;
    display: grid;
    font: inherit;
    gap: .8rem;
    grid-template-columns: 6rem minmax(0, 1fr) auto;
    padding: .6rem .2rem;
    text-align: left;
    width: 100%;
}

.alert-results button:hover[b-dczpqbe97x],
.alert-results button:focus-visible[b-dczpqbe97x] {
    background: var(--surface-hover);
}

.result-name[b-dczpqbe97x] {
    color: var(--text-muted);
    font-size: .82rem;
    margin-left: .5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alert-results .result-name[b-dczpqbe97x] {
    margin-left: 0;
}

.alert-results small[b-dczpqbe97x] {
    color: var(--text-quiet);
}

.alert-form[b-dczpqbe97x] {
    display: flex;
    flex-direction: column;
    gap: .9rem;
}

.selected-asset[b-dczpqbe97x] {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    justify-content: space-between;
}

.current-price[b-dczpqbe97x] {
    color: var(--text-muted);
    font-size: .86rem;
    margin: 0;
}

.current-price strong[b-dczpqbe97x] {
    color: var(--text-primary);
}

.direction[b-dczpqbe97x] {
    border: 0;
    display: flex;
    gap: 0;
    margin: 0;
    padding: 0;
}

.direction label[b-dczpqbe97x] {
    border: 1px solid var(--border-strong, var(--border-subtle));
    cursor: pointer;
    flex: 1;
    font-size: .86rem;
    padding: .6rem .8rem;
    text-align: center;
}

.direction label + label[b-dczpqbe97x] {
    border-left: 0;
}

.direction label.is-on[b-dczpqbe97x] {
    background: var(--surface-3);
    color: var(--text-primary);
    font-weight: 600;
}

.direction input[b-dczpqbe97x] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.direction label:focus-within[b-dczpqbe97x] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.target[b-dczpqbe97x] {
    display: flex;
    flex-direction: column;
    font-size: .8rem;
    gap: .35rem;
}

.quick-targets[b-dczpqbe97x] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.quick-targets button[b-dczpqbe97x] {
    background: none;
    border: 1px solid var(--border-strong, var(--border-subtle));
    color: var(--text-primary);
    cursor: pointer;
    font: inherit;
    font-size: .78rem;
    padding: .35rem .7rem;
}

.quick-targets button:hover[b-dczpqbe97x] {
    border-color: var(--border-strong);
}

.target-hint[b-dczpqbe97x] {
    color: var(--text-quiet);
    font-size: .76rem;
    margin: 0;
}

.alert-submit[b-dczpqbe97x] {
    align-self: flex-start;
    background: var(--accent);
    border: 0;
    color: var(--on-accent);
    cursor: pointer;
    font: inherit;
    font-weight: 600;
    padding: .7rem 1.4rem;
}

.alert-submit:disabled[b-dczpqbe97x] {
    cursor: not-allowed;
    opacity: .45;
}

.alert-message[b-dczpqbe97x] {
    font-size: .84rem;
    margin: 0;
}

.alert-message.is-ok[b-dczpqbe97x] { color: var(--positive); }
.alert-message.is-error[b-dczpqbe97x] { color: var(--negative); }

.alert-list[b-dczpqbe97x] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.alert-row[b-dczpqbe97x] {
    align-items: baseline;
    border-bottom: 1px solid var(--border-subtle);
    display: grid;
    gap: .8rem;
    grid-template-columns: minmax(0, 1.2fr) auto minmax(0, 1.4fr) auto;
    padding: .7rem 0;
}

.alert-main[b-dczpqbe97x] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.alert-main small[b-dczpqbe97x] {
    color: var(--text-quiet);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alert-target[b-dczpqbe97x] {
    font-weight: 600;
}

.alert-distance[b-dczpqbe97x] {
    color: var(--text-muted);
    font-size: .78rem;
}

.alert-row.is-done[b-dczpqbe97x] {
    opacity: .75;
}

@media (max-width: 560px) {
    .alert-row[b-dczpqbe97x] {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .alert-distance[b-dczpqbe97x] {
        grid-column: 1 / -1;
    }
}
/* /Pages/Pro.razor.rz.scp.css */
.pro-market-search[b-c5blo55c6n] { margin-top: 1.5rem; border-top: 1px solid var(--border-strong); padding-block: .8rem; }
.pro-market-search > summary[b-c5blo55c6n] { cursor: pointer; font-weight: 600; padding-block: .6rem; min-height: 44px; color: var(--text-primary); }
.pro-market-search > summary span[b-c5blo55c6n] { margin-left: 1rem; color: var(--text-muted); font-size: .75rem; font-weight: 400; }
.pro-market-search > summary:focus-visible[b-c5blo55c6n] { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 500px) { .pro-market-search > summary span[b-c5blo55c6n] { display: block; margin: .4rem 0 0; } }
/* /Pages/ReplayLab.razor.rz.scp.css */
/* Matches ChartLab.razor.css's palette so the two internal lab/experiment tools
   (both gated behind Development and marked EXPERIMENT) look like one consistent
   toolset - deliberately not the main app's Kalk/Olive tokens, since these pages
   are never shown to end users. */
.lab[b-k63joqpv2r] { max-width: 1400px; margin: auto; padding: clamp(16px, 3vw, 40px); color: #e7edf6; background: #0b111b; min-height: 100vh; }
.lab h1[b-k63joqpv2r] { font-size: clamp(1.7rem, 4vw, 2.6rem); margin: 16px 0; }
.lab h2[b-k63joqpv2r] { font-size: 1.3rem; margin-top: 0; }
.lab p[b-k63joqpv2r], .provenance[b-k63joqpv2r] { line-height: 1.6; }
.lab a[b-k63joqpv2r] { color: #83ccff; }
.badge[b-k63joqpv2r] { color: #ffc96a; font-size: .8rem; letter-spacing: .08em; }
.panel[b-k63joqpv2r] { padding: clamp(16px, 2vw, 26px); margin-top: 20px; border: 1px solid #2e3c50; border-radius: 14px; background: #101a28; }
.provenance[b-k63joqpv2r] { display: grid; gap: 8px; color: #bfcde0; }
.table-scroll[b-k63joqpv2r] { overflow: auto; max-height: 460px; }
table[b-k63joqpv2r] { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
caption[b-k63joqpv2r] { text-align: left; padding: 14px 0; color: #bfcde0; }
th[b-k63joqpv2r], td[b-k63joqpv2r] { padding: 10px; white-space: nowrap; text-align: right; border-bottom: 1px solid #30415a; }
th:first-child[b-k63joqpv2r], td:first-child[b-k63joqpv2r] { text-align: left; }
.positive[b-k63joqpv2r] { color: #6fe0a8; }
.negative[b-k63joqpv2r] { color: #ff9c9c; }
.neutral[b-k63joqpv2r] { color: #bfcde0; }
details[b-k63joqpv2r] { color: #cfdeef; }
details summary[b-k63joqpv2r] { cursor: pointer; }
details ul[b-k63joqpv2r] { margin: 8px 0 0; padding-left: 1.2em; }
@media (max-width: 600px) { .lab[b-k63joqpv2r] { padding: 16px; } }
/* /Pages/SavingsPlan.razor.rz.scp.css */
.plan-page[b-js00kx27zz] {
    display: flex;
    flex-direction: column;
    gap: 2.2rem;
    max-width: 52rem;
    min-width: 0;
}

.plan-intro h1[b-js00kx27zz] {
    color: var(--text-primary);
    font-size: clamp(1.6rem, 3.4vw, 2.15rem);
    letter-spacing: -.015em;
    margin: .5rem 0 .8rem;
}

.plan-intro p:not(.eyebrow)[b-js00kx27zz] {
    color: var(--text-muted);
    font-size: .88rem;
    line-height: 1.7;
    margin: 0;
    max-width: 44rem;
}

.plan-section[b-js00kx27zz] {
    border-top: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
    padding-top: 1.4rem;
}

.plan-section h2[b-js00kx27zz] {
    align-items: center;
    display: flex;
    font-size: 1.15rem;
    gap: .7rem;
    margin: 0;
}

.step[b-js00kx27zz] {
    align-items: center;
    background: var(--surface-3);
    color: var(--text-primary);
    display: inline-flex;
    font-family: var(--font-mono);
    font-size: .74rem;
    font-weight: 700;
    height: 1.5rem;
    justify-content: center;
    width: 1.5rem;
}

.sliders[b-js00kx27zz] {
    display: grid;
    gap: 1.2rem;
}

.slider[b-js00kx27zz] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.slider-head[b-js00kx27zz] {
    align-items: baseline;
    color: var(--text-muted);
    display: flex;
    font-size: .84rem;
    justify-content: space-between;
}

.slider-head strong[b-js00kx27zz] {
    color: var(--text-primary);
    font-size: 1.05rem;
}

.slider input[type="range"][b-js00kx27zz] {
    accent-color: var(--accent);
    cursor: pointer;
    width: 100%;
}

.plan-figures[b-js00kx27zz] {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    margin: 0;
}

.plan-figures > div[b-js00kx27zz] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    padding: .8rem 1rem;
}

.plan-figures dt[b-js00kx27zz] {
    color: var(--text-quiet);
    font-size: .74rem;
    margin-bottom: .25rem;
}

.plan-figures dd[b-js00kx27zz] {
    color: var(--text-primary);
    font-size: 1.05rem;
    font-weight: 600;
    margin: 0;
}

.plan-figures .figure-main[b-js00kx27zz] {
    color: var(--text-primary);
    font-size: 1.4rem;
}

.plan-chart[b-js00kx27zz] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    width: 100%;
}

.plan-legend[b-js00kx27zz] {
    color: var(--text-quiet);
    font-size: .76rem;
    margin: -.5rem 0 0;
}

.plan-range[b-js00kx27zz],
.plan-hint[b-js00kx27zz],
.plan-summary[b-js00kx27zz] {
    color: var(--text-muted);
    font-size: .84rem;
    line-height: 1.65;
    margin: 0;
}

.plan-disclaimer[b-js00kx27zz] {
    color: var(--text-quiet);
    font-size: .74rem;
    line-height: 1.6;
    margin: 0;
}

.mode-switch[b-js00kx27zz] {
    display: inline-flex;
    max-width: 100%;
}

.mode-switch button[b-js00kx27zz] {
    background: none;
    border: 1px solid var(--border-strong);
    color: var(--text-muted);
    cursor: pointer;
    font: inherit;
    font-size: .82rem;
    padding: .55rem 1rem;
}

.mode-switch button + button[b-js00kx27zz] {
    border-left: 0;
}

.mode-switch button.on[b-js00kx27zz] {
    background: var(--surface-3);
    border-color: var(--border-strong);
    color: var(--text-primary);
    font-weight: 600;
}

.market-grid[b-js00kx27zz] {
    display: grid;
    gap: .6rem;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
}

.market[b-js00kx27zz] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    color: var(--text-primary);
    cursor: pointer;
    display: flex;
    flex-direction: column;
    font: inherit;
    gap: .3rem;
    padding: .8rem .9rem;
    text-align: left;
}

.market:hover[b-js00kx27zz] {
    border-color: var(--border-strong);
}

.market.on[b-js00kx27zz] {
    border-color: var(--accent);
    box-shadow: inset 0 0 0 1px var(--accent);
}

.market-name[b-js00kx27zz] {
    font-weight: 600;
}

.market-desc[b-js00kx27zz] {
    color: var(--text-muted);
    font-size: .76rem;
    line-height: 1.5;
}

.market-weight[b-js00kx27zz] {
    color: var(--text-primary);
    font-size: .8rem;
    font-weight: 600;
}

.plan-actions[b-js00kx27zz] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.plan-save[b-js00kx27zz] {
    background: var(--surface-3);
    border: 0;
    color: var(--text-primary);
    cursor: pointer;
    font-size: .86rem;
    font-weight: 600;
    padding: .65rem 1.3rem;
}

.plan-save:disabled[b-js00kx27zz] {
    cursor: not-allowed;
    opacity: .5;
}

.plan-save:not(:disabled):hover[b-js00kx27zz] {
    background: var(--surface-hover);
}

.plan-saved[b-js00kx27zz] {
    color: var(--positive);
    font-size: .8rem;
    margin: 0;
}

.form-error[b-js00kx27zz] {
    color: var(--negative);
    font-size: .8rem;
    margin: 0;
}

.link-button[b-js00kx27zz] {
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font-size: .78rem;
    text-decoration: underline;
}

.link-button:hover[b-js00kx27zz] {
    color: var(--negative);
}

.broker-step[b-js00kx27zz] {
    border: 1px dashed var(--border-strong);
    display: flex;
    flex-direction: column;
    gap: .6rem;
    padding: 1rem;
}

.broker-step button[b-js00kx27zz] {
    align-self: flex-start;
    background: none;
    border: 1px solid var(--border-strong);
    color: var(--text-quiet);
    cursor: not-allowed;
    font: inherit;
    font-size: .82rem;
    padding: .55rem 1rem;
}

.broker-step p[b-js00kx27zz] {
    color: var(--text-quiet);
    font-size: .76rem;
    line-height: 1.6;
    margin: 0;
}
/* /Pages/Scanner.razor.rz.scp.css */
.scanner-page[b-a8ea2mr69w] {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    min-width: 0;
}

.scanner-intro h1[b-a8ea2mr69w] {
    color: var(--text-primary);
    font-size: clamp(1.6rem, 3.4vw, 2.15rem);
    letter-spacing: -.015em;
    margin: .5rem 0 .6rem;
}

.scanner-intro p:not(.eyebrow)[b-a8ea2mr69w] {
    color: var(--text-muted);
    font-size: .85rem;
    font-weight: 400;
    line-height: 1.7;
    margin: 0;
    max-width: 44rem;
}

.scanner-intro a[b-a8ea2mr69w] {
    color: var(--text-primary);
}

.page-state[b-a8ea2mr69w] {
    color: var(--text-muted);
    font-size: .82rem;
    padding: 2rem 0;
}

.page-state.inline-error[b-a8ea2mr69w] {
    color: var(--negative);
}

.table-scroll[b-a8ea2mr69w] {
    border-top: 1px solid var(--border-subtle);
    overflow-x: auto;
}

table[b-a8ea2mr69w] {
    border-collapse: collapse;
    font-variant-numeric: tabular-nums;
    width: 100%;
}

th[b-a8ea2mr69w] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: .02em;
    padding: .7rem .6rem;
    text-align: right;
    white-space: nowrap;
}

th:first-child[b-a8ea2mr69w] {
    text-align: left;
}

td[b-a8ea2mr69w] {
    border-top: 1px solid var(--border-subtle);
    padding: .7rem .6rem;
    text-align: right;
    white-space: nowrap;
}

td:first-child[b-a8ea2mr69w] {
    text-align: left;
}

td a[b-a8ea2mr69w] {
    color: inherit;
    display: flex;
    flex-direction: column;
    text-decoration: none;
}

td a:hover .mono-number[b-a8ea2mr69w] {
    color: var(--text-primary);
}

td a small[b-a8ea2mr69w] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 400;
}

.positive[b-a8ea2mr69w] { color: var(--positive); }
.negative[b-a8ea2mr69w] { color: var(--negative); }
.neutral[b-a8ea2mr69w] { color: var(--text-muted); }

.scanner-source[b-a8ea2mr69w] {
    color: var(--text-quiet);
    font-size: 0.74rem;
}

.scanner-meta[b-a8ea2mr69w] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    text-align: right;
}

@media (max-width: 700px) {
    table[b-a8ea2mr69w] { font-size: .8rem; }
}

/* Search sits between the intro and the table: it is the page's action, the table its result.
   AssetSearch brings its own internal styling, so this only reserves the space around it. */
.scanner-search[b-a8ea2mr69w] {
    border-bottom: 1px solid var(--border-subtle);
    margin-bottom: 1.4rem;
    padding-bottom: 1.2rem;
}

.sr-only[b-a8ea2mr69w] {
    border: 0;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}

.scanner-carousel[b-a8ea2mr69w] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-card);
    padding: 1rem 1.1rem;
}

.carousel-head[b-a8ea2mr69w] {
    align-items: baseline;
    display: flex;
    justify-content: space-between;
    gap: .6rem;
}

.carousel-head h2[b-a8ea2mr69w] {
    color: var(--text-primary);
    font-size: .88rem;
    font-weight: 600;
    letter-spacing: .02em;
    margin: 0;
}

.carousel-head h2 small[b-a8ea2mr69w] {
    color: var(--text-quiet);
    font-size: .72rem;
    font-weight: 400;
    margin-left: .4rem;
}

.carousel-nav[b-a8ea2mr69w] {
    display: flex;
    gap: .3rem;
}

.carousel-nav button[b-a8ea2mr69w] {
    background: none;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    cursor: pointer;
    font-size: .9rem;
    line-height: 1;
    padding: .2rem .55rem;
}

.carousel-nav button:hover[b-a8ea2mr69w] {
    border-color: var(--border-strong);
    color: var(--text-primary);
}

.carousel-list[b-a8ea2mr69w] {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    list-style: none;
    margin: .9rem 0 0;
    max-height: 14rem;
    overflow-y: auto;
    padding: 0;
}

.carousel-list li[b-a8ea2mr69w] {
    align-items: baseline;
    display: flex;
    justify-content: space-between;
    gap: .6rem;
}

.carousel-list li a[b-a8ea2mr69w] {
    color: inherit;
    display: flex;
    flex-direction: column;
    min-width: 0;
    text-decoration: none;
}

.carousel-list li a:hover .mono-number[b-a8ea2mr69w] {
    color: var(--text-primary);
}

.carousel-list li a small[b-a8ea2mr69w] {
    color: var(--text-quiet);
    font-size: .7rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.carousel-dots[b-a8ea2mr69w] {
    display: flex;
    gap: .4rem;
    justify-content: center;
    margin-top: .9rem;
}

.carousel-dot[b-a8ea2mr69w] {
    background: var(--border-subtle);
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    height: .5rem;
    padding: 0;
    width: .5rem;
}

.carousel-dot[aria-selected="true"][b-a8ea2mr69w] {
    background: var(--text-secondary);
}

.scanner-filter[b-a8ea2mr69w] {
    display: flex;
    justify-content: flex-end;
    margin: 1.2rem 0 .6rem;
}

.scanner-filter input[b-a8ea2mr69w] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-primary);
    font: inherit;
    font-size: .82rem;
    padding: .45rem .7rem;
    width: min(100%, 18rem);
}

.scanner-filter input:focus[b-a8ea2mr69w] {
    border-color: var(--accent);
    outline: none;
}

.sort-button[b-a8ea2mr69w] {
    background: none;
    border: 0;
    color: inherit;
    cursor: pointer;
    font: inherit;
    font-size: inherit;
    font-weight: inherit;
    letter-spacing: inherit;
    padding: 0;
    white-space: nowrap;
}

.sort-button:hover[b-a8ea2mr69w],
.sort-button:focus-visible[b-a8ea2mr69w] {
    color: var(--text-primary);
}

@media (max-width: 700px) {
    .scanner-filter[b-a8ea2mr69w] {
        justify-content: stretch;
    }

    .scanner-filter input[b-a8ea2mr69w] {
        width: 100%;
    }
}
/* /Pages/Settings.razor.rz.scp.css */
.settings-page[b-gvqunr4lut] {
    display: flex;
    flex-direction: column;
    gap: 2.2rem;
    max-width: 44rem;
}

.settings-intro h1[b-gvqunr4lut] {
    color: var(--text-primary);
    margin: 0 0 .55rem;
}

.settings-intro p[b-gvqunr4lut] {
    color: var(--text-muted);
    font-size: .93rem;
    line-height: 1.65;
    margin: 0;
    max-width: 58ch;
}

.settings-group h2[b-gvqunr4lut] {
    margin: 0 0 .8rem;
}

.theme-grid[b-gvqunr4lut] {
    display: grid;
    gap: .7rem;
    grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
}

/* Ein Farbfeld ist anfassbar, also bekommt es den Radius der Bedienelemente. */
.theme-swatch[b-gvqunr4lut] {
    background: var(--surface-raised);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    color: var(--text-primary);
    cursor: pointer;
    font: inherit;
    padding: 1rem .9rem;
    position: relative;
    text-align: left;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.theme-swatch:hover[b-gvqunr4lut] {
    border-color: var(--border-strong);
}

/* Die aktive Wahl wird vom Rahmen getragen, nicht von einer Füllung: sonst
   verfälscht die Markierung genau die Farbe, die beurteilt werden soll. */
.theme-swatch.active[b-gvqunr4lut] {
    border-color: currentColor;
    box-shadow: inset 0 0 0 1px currentColor;
}

.swatch-label[b-gvqunr4lut] {
    display: block;
    font-size: .85rem;
    font-weight: 550;
}

.swatch-check[b-gvqunr4lut] {
    font-size: .8rem;
    position: absolute;
    right: .75rem;
    top: .7rem;
}

/* Design: Hell/Dunkel als Pillen-Gruppe, darunter die Farbkombinationen als Kacheln. */
.mode-switch[b-gvqunr4lut] {
    --pill-bg: var(--accent);
    background: var(--surface-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    display: inline-flex;
    gap: .25rem;
    margin-bottom: 1rem;
    padding: .25rem;
}

.mode-pill[b-gvqunr4lut] {
    background: transparent;
    border: 0;
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    cursor: pointer;
    font: inherit;
    font-size: .9rem;
    font-weight: 600;
    min-height: 2.75rem;
    padding: .5rem 1.3rem;
    transition: background-color .18s ease, color .18s ease;
}

.mode-pill:hover[b-gvqunr4lut] {
    color: var(--text-primary);
}

.mode-pill.active[b-gvqunr4lut] {
    background: var(--accent);
    color: var(--on-accent);
}

.palette-grid[b-gvqunr4lut] {
    display: grid;
    gap: .7rem;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
}

.palette-tile[b-gvqunr4lut] {
    align-items: flex-start;
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    color: var(--text-primary);
    cursor: pointer;
    display: flex;
    flex-direction: column;
    font: inherit;
    gap: .75rem;
    min-height: 2.75rem;
    padding: 1rem;
    position: relative;
    text-align: left;
    transition: border-color .18s ease, background-color .18s ease;
}

.palette-tile:hover[b-gvqunr4lut] {
    border-color: var(--border-strong);
}

/* Die aktive Wahl trägt einen Rahmen in der Akzentfarbe plus Haken - nicht nur Farbe. */
.palette-tile.active[b-gvqunr4lut] {
    border-color: var(--accent);
    box-shadow: inset 0 0 0 1px var(--accent);
}

.palette-dots[b-gvqunr4lut] {
    display: flex;
}

.palette-dots span[b-gvqunr4lut] {
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-pill);
    height: 1.6rem;
    margin-right: -.35rem;
    width: 1.6rem;
}

.palette-name[b-gvqunr4lut] {
    font-size: .9rem;
    font-weight: 600;
}

.social-form[b-gvqunr4lut] {
    display: flex;
    flex-direction: column;
    gap: 1.3rem;
}

.social-field[b-gvqunr4lut] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    max-width: 24rem;
}

.social-field > span[b-gvqunr4lut] {
    color: var(--text-secondary);
    font-size: .84rem;
    font-weight: 550;
}

.social-field input[b-gvqunr4lut] {
    background: var(--surface-raised);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    color: var(--text-primary);
    font: inherit;
    font-size: .92rem;
    padding: .62rem .7rem;
}

.social-field input:focus[b-gvqunr4lut] {
    border-color: var(--accent);
    outline: none;
}

.social-field small[b-gvqunr4lut],
.toggle-text small[b-gvqunr4lut] {
    color: var(--text-quiet);
    font-size: .78rem;
    line-height: 1.55;
}

/* Schalter statt Häkchen: es ist ein Zustand, der gilt, bis er umgelegt wird - keine
   einmalige Bestätigung. Das echte Kontrollkästchen bleibt für Tastatur und Screenreader. */
.social-toggle[b-gvqunr4lut] {
    align-items: flex-start;
    cursor: pointer;
    display: grid;
    gap: .9rem;
    grid-template-columns: auto minmax(0, 1fr);
    max-width: 38rem;
    position: relative;
}

.social-toggle input[b-gvqunr4lut] {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.toggle-track[b-gvqunr4lut] {
    background: var(--surface-inset);
    border: 1px solid var(--border-subtle);
    border-radius: 999px;
    display: block;
    height: 1.4rem;
    margin-top: .1rem;
    position: relative;
    transition: background-color .18s ease, border-color .18s ease;
    width: 2.5rem;
}

.toggle-thumb[b-gvqunr4lut] {
    background: var(--text-muted);
    border-radius: 50%;
    height: 1rem;
    left: .15rem;
    position: absolute;
    top: .15rem;
    transition: transform .18s ease, background-color .18s ease;
    width: 1rem;
}

.social-toggle input:checked + .toggle-track[b-gvqunr4lut] {
    background: var(--accent-soft);
    border-color: var(--accent);
}

.social-toggle input:checked + .toggle-track .toggle-thumb[b-gvqunr4lut] {
    background: var(--accent);
    transform: translateX(1.1rem);
}

.social-toggle input:focus-visible + .toggle-track[b-gvqunr4lut] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.toggle-text[b-gvqunr4lut] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.toggle-text strong[b-gvqunr4lut] {
    font-size: .9rem;
    font-weight: 550;
}

.social-actions[b-gvqunr4lut] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.social-feedback[b-gvqunr4lut] {
    font-size: .82rem;
}

.social-feedback.is-ok[b-gvqunr4lut] {
    color: var(--positive);
}

.social-feedback.is-error[b-gvqunr4lut] {
    color: var(--negative);
}

.settings-note[b-gvqunr4lut] {
    color: var(--text-quiet);
    font-size: .8rem;
    line-height: 1.55;
    margin: -.3rem 0 .8rem;
    max-width: 56ch;
}

/* ── Profilbild ───────────────────────────────────────────────────────────── */

.avatar-row[b-gvqunr4lut] {
    align-items: center;
    display: flex;
    gap: 1.1rem;
    margin-bottom: 1.2rem;
}

.avatar-actions[b-gvqunr4lut] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .3rem .9rem;
}

/* Unsichtbares <input type=file> über einem einfachen Link-Text - dieselbe Idee wie beim
   Broker-Import im Depot: kein Kasten, nur ein Link, der wie ein Link aussieht. ::deep ist
   nötig, weil <InputFile> sein eigenes <input> rendert und dabei nie den Scope dieser
   Komponente trägt. */
.file-input-button[b-gvqunr4lut] {
    color: var(--accent);
    cursor: pointer;
    display: inline-flex;
    font-size: .84rem;
    font-weight: 550;
    position: relative;
    text-decoration: underline;
    width: fit-content;
}

.file-input-button:hover[b-gvqunr4lut] {
    color: var(--accent-bright);
}

.file-input-button[b-gvqunr4lut]  input[type="file"] {
    cursor: pointer;
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    width: 100%;
}

.link-button[b-gvqunr4lut] {
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font-size: .82rem;
    padding: 0;
    text-decoration: underline;
}

.link-button:hover[b-gvqunr4lut] {
    color: var(--negative);
}

.avatar-status[b-gvqunr4lut] {
    color: var(--text-quiet);
    font-size: .78rem;
}

.avatar-status.is-error[b-gvqunr4lut] {
    color: var(--negative);
}

/* ── Rahmenauswahl ────────────────────────────────────────────────────────── */

.frame-picker[b-gvqunr4lut] {
    display: grid;
    gap: .6rem;
    grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr));
    margin-bottom: 1.4rem;
}

.frame-tile[b-gvqunr4lut] {
    background: var(--surface-raised);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    color: var(--text-secondary);
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .45rem;
    font-size: .74rem;
    padding: .7rem .5rem;
    text-align: center;
}

.frame-tile:hover:not(:disabled)[b-gvqunr4lut] {
    border-color: var(--border-strong);
}

.frame-tile.active[b-gvqunr4lut] {
    border-color: var(--accent);
    box-shadow: inset 0 0 0 1px var(--accent);
    color: var(--text-primary);
}

.frame-tile.is-locked[b-gvqunr4lut] {
    color: var(--text-quiet);
}

.frame-tile:disabled[b-gvqunr4lut] {
    cursor: not-allowed;
}

.frame-tile-preview[b-gvqunr4lut] {
    display: block;
    height: 40px;
    width: 40px;
}

/* ── Hintergrundmuster ────────────────────────────────────────────────────── */

.pattern-grid[b-gvqunr4lut] {
    display: grid;
    gap: .7rem;
    grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
}

/* Ein gezoomter Ausschnitt statt der ganzen 1600x1000-Zeichnung auf 42px Höhe gestaucht -
   in der winzigen Kachel wäre von den inzwischen feinen Linien/Punkten (design/topo/) sonst
   kaum mehr etwas zu erkennen. mask-size ist bewusst größer als die Kachel: es zeigt einen
   Ausschnitt in echter Größe, ungefähr so, wie ihn der Aufdeckradius selbst zeigen würde. */
/* Die Kachel ist eine Fläche in der Ebene der Karten: ruhiger Grund, weicher Rand, die Auswahl
   steht als Ring im Akzent (die einzige Stelle, an der hier Akzent vorkommt). */
.pattern-tile[b-gvqunr4lut] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    color: var(--text-primary);
    cursor: pointer;
    font: inherit;
    padding: .7rem .7rem .85rem;
    position: relative;
    text-align: left;
    transition: border-color .18s ease, background-color .18s ease;
}

.pattern-tile:hover[b-gvqunr4lut] {
    background: var(--surface-3);
    border-color: var(--border-strong);
}

.pattern-tile.active[b-gvqunr4lut] {
    border-color: var(--accent);
    box-shadow: 0 0 0 1px var(--accent);
}

.pattern-swatch[b-gvqunr4lut] {
    background: var(--text-muted);
    border-radius: var(--radius-sm);
    display: block;
    height: 5.5rem;
    margin-bottom: .7rem;
    mask-position: 35% 55%;
    mask-repeat: no-repeat;
    mask-size: 800px 500px;
    -webkit-mask-position: 35% 55%;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: 800px 500px;
    width: 100%;
}

.pattern-swatch.is-off[b-gvqunr4lut] {
    align-items: center;
    background: var(--surface-inset);
    color: var(--text-quiet);
    display: flex;
    justify-content: center;
}
/* /Pages/Setups.razor.rz.scp.css */
.concept-page[b-v7eqty54vk] {
    display: flex;
    flex-direction: column;
    gap: 2.2rem;
    max-width: 60rem;
}

.concept-page-intro h1[b-v7eqty54vk] {
    color: var(--text-primary);
    font-size: clamp(1.6rem, 3.4vw, 2.15rem);
    letter-spacing: -.015em;
    margin: .5rem 0 .6rem;
}

.concept-page-intro p:not(.eyebrow)[b-v7eqty54vk] {
    color: var(--text-muted);
    font-size: .85rem;
    font-weight: 400;
    line-height: 1.7;
    margin: 0;
}

.concept-page-intro a[b-v7eqty54vk] {
    color: var(--text-primary);
}

.widget-head[b-v7eqty54vk] {
    align-items: baseline;
    display: flex;
    gap: .6rem;
    justify-content: space-between;
    margin-bottom: .8rem;
}

.widget-head h2[b-v7eqty54vk] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: 1.05rem;
    margin: 0;
}

.real-setup[b-v7eqty54vk] {
    border-top: 1px solid var(--border-subtle);
    padding-top: 1.4rem;
}

.real-setup-name[b-v7eqty54vk] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: 1.3rem;
    margin: 0 0 .4rem;
}

.real-setup-detail[b-v7eqty54vk] {
    color: var(--text-muted);
    font-size: .82rem;
    line-height: 1.6;
    margin: 0;
}

.real-setup-detail a[b-v7eqty54vk] {
    color: var(--text-primary);
}

.lifecycle[b-v7eqty54vk] {
    border-top: 1px solid var(--border-subtle);
    padding-top: 1.4rem;
}

.lifecycle h2[b-v7eqty54vk] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: 1.05rem;
    margin: 0 0 1rem;
}

.lifecycle-flow[b-v7eqty54vk] {
    align-items: center;
    color: var(--text-primary);
    display: flex;
    flex-wrap: wrap;
    font-size: .82rem;
    font-weight: 550;
    gap: .5rem;
}

.lifecycle-flow .arrow[b-v7eqty54vk] {
    color: var(--text-quiet);
    font-weight: 400;
}

.lifecycle-branches[b-v7eqty54vk] {
    color: var(--text-quiet);
    display: flex;
    font-size: 0.74rem;
    gap: 1.5rem;
    margin-top: .5rem;
}

.lifecycle-note[b-v7eqty54vk] {
    color: var(--text-muted);
    font-size: .78rem;
    line-height: 1.6;
    margin: 1rem 0 0;
}

.concept-grid[b-v7eqty54vk] {
    border-top: 1px solid var(--border-subtle);
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
    padding-top: 1.4rem;
}
/* /Pages/Wallet.razor.rz.scp.css */
.wallet-page[b-x2l0pbiwxq] {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    min-width: 0;
}

.wallet-intro h1[b-x2l0pbiwxq] {
    color: var(--text-primary);
    font-size: clamp(1.6rem, 3.4vw, 2.15rem);
    letter-spacing: -.015em;
    margin: .5rem 0 .6rem;
}

.wallet-intro p[b-x2l0pbiwxq] {
    color: var(--text-muted);
    font-size: .85rem;
    font-weight: 400;
    line-height: 1.7;
    margin: 0;
    max-width: 54ch;
}

.wallet-intro a[b-x2l0pbiwxq] {
    color: var(--text-primary);
}

.wallet-summary[b-x2l0pbiwxq] {
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    gap: 2.5rem;
    padding-bottom: 1.2rem;
}

.wallet-summary > div[b-x2l0pbiwxq] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.summary-label[b-x2l0pbiwxq] {
    color: var(--text-quiet);
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: .1em;
}

.summary-value[b-x2l0pbiwxq] {
    color: var(--text-primary);
    font-size: 1.3rem;
}

/* --- asset picker: tabs, search, panels ------------------------------------------ */

.asset-picker[b-x2l0pbiwxq] {
    border-top: 1px solid var(--border-subtle);
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.2rem 0;
}

.picker-tabs[b-x2l0pbiwxq] {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}

.picker-tab[b-x2l0pbiwxq] {
    background: none;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    color: var(--text-muted);
    cursor: pointer;
    font-size: .78rem;
    padding: .4rem .9rem;
}

.picker-tab:hover[b-x2l0pbiwxq] {
    border-color: var(--border-strong);
    color: var(--text-primary);
}

.picker-tab.active[b-x2l0pbiwxq] {
    background: var(--surface-3);
    border-color: var(--border-strong);
    color: var(--text-primary);
}

.picker-search[b-x2l0pbiwxq] {
    background: none;
    border: 0;
    border-bottom: 1px solid var(--border-strong);
    color: var(--text-primary);
    font: inherit;
    font-size: .85rem;
    padding: .5rem .1rem;
    width: 100%;
}

.picker-search:focus[b-x2l0pbiwxq] {
    border-bottom-color: var(--accent);
    outline: none;
}

.asset-grid[b-x2l0pbiwxq] {
    display: grid;
    gap: .8rem;
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
}

.asset-card[b-x2l0pbiwxq] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    padding: .9rem;
}

.card-main[b-x2l0pbiwxq] {
    background: none;
    border: 0;
    cursor: pointer;
    display: grid;
    gap: .2rem .6rem;
    grid-template-columns: 1.8rem 1fr;
    padding: 0;
    text-align: left;
}

.card-logo[b-x2l0pbiwxq],
.card-logo-fallback[b-x2l0pbiwxq] {
    border-radius: 50%;
    grid-row: span 2;
    height: 1.8rem;
    object-fit: cover;
    width: 1.8rem;
}

.card-logo-fallback[b-x2l0pbiwxq] {
    align-items: center;
    background: var(--surface-inset);
    color: var(--text-quiet);
    display: none;
    font-size: 0.74rem;
    font-weight: 700;
    justify-content: center;
}

.card-symbol[b-x2l0pbiwxq] {
    align-self: end;
    color: var(--text-primary);
    font-size: .88rem;
    font-weight: 600;
}

.card-name[b-x2l0pbiwxq] {
    color: var(--text-muted);
    font-size: .74rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.card-class[b-x2l0pbiwxq] {
    color: var(--text-quiet);
    font-size: .68rem;
    grid-column: 2;
    letter-spacing: .06em;
}

.card-buy[b-x2l0pbiwxq] {
    align-items: center;
    display: flex;
    gap: .5rem;
    margin-top: .8rem;
}

.card-buy input[b-x2l0pbiwxq] {
    background: none;
    border: 0;
    border-bottom: 1px solid var(--border-strong);
    color: var(--text-primary);
    flex: 1;
    font: inherit;
    font-size: .82rem;
    min-width: 0;
    padding: .3rem .1rem;
}

.card-buy button[b-x2l0pbiwxq] {
    background: var(--surface-3);
    border: 0;
    color: var(--text-primary);
    cursor: pointer;
    flex: 0 0 auto;
    font-size: .76rem;
    font-weight: 600;
    padding: .4rem .8rem;
}

.card-buy button:hover:not(:disabled)[b-x2l0pbiwxq] {
    background: var(--surface-hover);
}

.card-buy button:disabled[b-x2l0pbiwxq] {
    cursor: not-allowed;
    opacity: .5;
}

.form-error[b-x2l0pbiwxq] {
    color: var(--negative);
    font-size: .78rem;
}

.form-success[b-x2l0pbiwxq] {
    color: var(--positive);
    font-size: .78rem;
}

.page-state[b-x2l0pbiwxq] {
    color: var(--text-muted);
    font-size: .82rem;
    padding: 1rem 0;
}

.page-state a[b-x2l0pbiwxq] {
    color: var(--text-primary);
}

.positive[b-x2l0pbiwxq] { color: var(--positive); }
.negative[b-x2l0pbiwxq] { color: var(--negative); }
.neutral[b-x2l0pbiwxq] { color: var(--text-muted); }

/* --- positions: one consolidated row per symbol -------------------------------- */

.section-label[b-x2l0pbiwxq] {
    color: var(--text-quiet);
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .1em;
    margin: 0 0 .7rem;
}

.positions-section[b-x2l0pbiwxq] {
    border-bottom: 1px solid var(--border-subtle);
    padding-bottom: 1.4rem;
}

.performance-section[b-x2l0pbiwxq] {
    border-bottom: 1px solid var(--border-subtle);
    padding-bottom: 1.4rem;
}

.position-list[b-x2l0pbiwxq] {
    display: flex;
    flex-direction: column;
}

.position-row[b-x2l0pbiwxq] {
    align-items: center;
    background: none;
    border: 0;
    border-top: 1px solid var(--border-subtle);
    color: inherit;
    cursor: pointer;
    display: flex;
    font: inherit;
    gap: 1.2rem;
    padding: .8rem .5rem;
    text-align: left;
    width: 100%;
}

.position-row:hover[b-x2l0pbiwxq] {
    background: var(--surface-hover);
}

.row-avatar[b-x2l0pbiwxq] {
    align-items: center;
    border-radius: 50%;
    color: var(--app-background);
    display: flex;
    flex: 0 0 auto;
    font-size: .72rem;
    font-weight: 700;
    height: 2.2rem;
    justify-content: center;
    opacity: .85;
    width: 2.2rem;
}

.row-id[b-x2l0pbiwxq] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 7rem;
}

.row-symbol[b-x2l0pbiwxq] {
    color: var(--text-primary);
    font-size: .92rem;
    font-weight: 500;
}

.row-lots[b-x2l0pbiwxq] {
    color: var(--text-quiet);
    font-size: .68rem;
    text-decoration: underline;
}

.row-figure[b-x2l0pbiwxq] {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: .2rem;
    min-width: 0;
}

.figure-label[b-x2l0pbiwxq] {
    color: var(--text-quiet);
    font-size: .62rem;
    letter-spacing: .06em;
}

.row-figure .mono-number[b-x2l0pbiwxq] {
    color: var(--text-primary);
    font-size: .85rem;
}

.row-chevron[b-x2l0pbiwxq] {
    color: var(--text-quiet);
    flex: 0 0 auto;
    font-size: 1.1rem;
}

@media (max-width: 900px) {
    .position-row[b-x2l0pbiwxq] {
        flex-wrap: wrap;
    }

    .row-figure[b-x2l0pbiwxq] {
        flex: 1 1 40%;
    }
}

/* --- trade pop-out: dimmed/blurred backdrop, centered panel --------------------- */

@keyframes trade-backdrop-in-b-x2l0pbiwxq {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes trade-modal-in-b-x2l0pbiwxq {
    from { opacity: 0; transform: translate(-50%, -50%) scale(.92); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

.trade-backdrop[b-x2l0pbiwxq] {
    animation: trade-backdrop-in-b-x2l0pbiwxq .2s ease-out;
    background: rgb(8 7 5 / 62%);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
    inset: 0;
    position: fixed;
    z-index: 100;
}

.trade-modal[b-x2l0pbiwxq] {
    animation: trade-modal-in-b-x2l0pbiwxq .24s cubic-bezier(.2, .8, .2, 1);
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    box-shadow: var(--shadow-card, 0 24px 60px rgb(0 0 0 / 55%));
    display: flex;
    flex-direction: column;
    gap: 1.4rem;
    left: 50%;
    max-height: 84vh;
    max-width: 92vw;
    overflow-y: auto;
    padding: 1.8rem 2.2rem 2.2rem;
    position: fixed;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(70vw, 52rem);
    z-index: 101;
}

@media (prefers-reduced-motion: reduce) {
    .trade-backdrop[b-x2l0pbiwxq],
    .trade-modal[b-x2l0pbiwxq] {
        animation: none;
    }
}

.trade-head[b-x2l0pbiwxq] {
    align-items: flex-start;
    display: flex;
    justify-content: space-between;
}

.trade-id[b-x2l0pbiwxq] {
    align-items: center;
    display: flex;
    gap: .9rem;
}

.trade-id > div[b-x2l0pbiwxq] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.trade-avatar[b-x2l0pbiwxq] {
    align-items: center;
    border-radius: 50%;
    color: var(--app-background);
    display: flex;
    flex: 0 0 auto;
    font-size: 1rem;
    font-weight: 700;
    height: 3.2rem;
    justify-content: center;
    opacity: .85;
    width: 3.2rem;
}

.trade-symbol[b-x2l0pbiwxq] {
    color: var(--text-primary);
    font-size: 1.4rem;
    font-weight: 500;
}

.trade-sub[b-x2l0pbiwxq] {
    color: var(--text-muted);
    font-size: .8rem;
}

.trade-head-actions[b-x2l0pbiwxq] {
    align-items: center;
    display: flex;
    gap: 1rem;
}

.trade-tabs[b-x2l0pbiwxq] {
    display: flex;
    border: 1px solid var(--border-subtle);
}

.trade-tabs button[b-x2l0pbiwxq] {
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font-size: .8rem;
    padding: .5rem 1.2rem;
}

.trade-tabs button.active[b-x2l0pbiwxq] {
    background: var(--surface-3);
    color: var(--text-primary);
    font-weight: 600;
}

.trade-tabs button:disabled[b-x2l0pbiwxq] {
    cursor: not-allowed;
    opacity: .4;
}

.trade-close[b-x2l0pbiwxq] {
    align-items: center;
    background: none;
    border: 1px solid var(--border-subtle);
    border-radius: 50%;
    color: var(--text-quiet);
    cursor: pointer;
    display: flex;
    font-size: .85rem;
    height: 1.8rem;
    justify-content: center;
    width: 1.8rem;
}

.trade-close:hover[b-x2l0pbiwxq] {
    border-color: var(--negative);
    color: var(--negative);
}

.trade-action[b-x2l0pbiwxq] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1.4rem;
    padding-top: 1rem;
}

.qty-stepper[b-x2l0pbiwxq] {
    align-items: center;
    border: 1px solid var(--border-strong);
    display: flex;
}

.qty-stepper button[b-x2l0pbiwxq] {
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 1.1rem;
    height: 2.5rem;
    width: 2.5rem;
}

.qty-stepper button:hover[b-x2l0pbiwxq] {
    color: var(--text-primary);
}

.qty-stepper input[b-x2l0pbiwxq] {
    background: none;
    border: 0;
    border-left: 1px solid var(--border-strong);
    border-right: 1px solid var(--border-strong);
    color: var(--text-primary);
    font-size: .95rem;
    height: 2.5rem;
    text-align: center;
    width: 4.5rem;
}

.trade-readout[b-x2l0pbiwxq] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.trade-readout .mono-number[b-x2l0pbiwxq] {
    color: var(--text-secondary);
    font-size: .82rem;
}

.trade-readout small[b-x2l0pbiwxq] {
    color: var(--text-quiet);
    font-size: .72rem;
}

.trade-cta-slot[b-x2l0pbiwxq] {
    flex: 1;
    display: flex;
    justify-content: flex-end;
}

.trade-cta[b-x2l0pbiwxq] {
    background: var(--accent);
    border: 0;
    box-shadow: none;
    color: var(--on-accent);
    cursor: pointer;
    font-size: .95rem;
    font-weight: 600;
    padding: .9rem 2.4rem;
}

.trade-cta:hover:not(:disabled)[b-x2l0pbiwxq] {
    background: var(--surface-hover);
}

.trade-cta:disabled[b-x2l0pbiwxq] {
    cursor: not-allowed;
    opacity: .5;
}

@media (max-width: 700px) {
    .trade-modal[b-x2l0pbiwxq] {
        max-width: 96vw;
        padding: 1.4rem 1.4rem 1.8rem;
        width: min(96vw, 30rem);
    }

    .trade-action[b-x2l0pbiwxq] {
        flex-direction: column;
        align-items: stretch;
    }

    .trade-cta-slot[b-x2l0pbiwxq] {
        justify-content: stretch;
    }

    .trade-cta[b-x2l0pbiwxq] {
        width: 100%;
    }
}

/* --- Journal (D-068): jeder Trade mit seinem realisierten Ergebnis --------------------------- */

.journal-section[b-x2l0pbiwxq] {
    border-bottom: 1px solid var(--border-subtle);
    padding-bottom: 1.4rem;
}

.journal-head[b-x2l0pbiwxq] {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem 1rem;
    justify-content: space-between;
}

.journal-head .section-label[b-x2l0pbiwxq] {
    margin: 0;
}

.journal-summary[b-x2l0pbiwxq] {
    font-size: .78rem;
    font-weight: 600;
}

.journal-list[b-x2l0pbiwxq] {
    display: flex;
    flex-direction: column;
    max-height: 26rem;
    overflow-y: auto;
}

.journal-row[b-x2l0pbiwxq] {
    align-items: center;
    border-top: 1px solid var(--border-subtle);
    display: grid;
    gap: .8rem;
    grid-template-columns: 5.5rem minmax(0, 1fr) 6rem 6rem;
    padding: .6rem .3rem;
}

.journal-kind[b-x2l0pbiwxq] {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.journal-kind.is-buy[b-x2l0pbiwxq] { color: var(--negative); }
.journal-kind.is-sell[b-x2l0pbiwxq] { color: var(--positive); }
.journal-kind.is-credit[b-x2l0pbiwxq] { color: var(--text-quiet); }

.journal-main[b-x2l0pbiwxq] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    min-width: 0;
}

.journal-main small[b-x2l0pbiwxq] {
    color: var(--text-quiet);
    font-size: .72rem;
}

.journal-amount[b-x2l0pbiwxq],
.journal-pnl[b-x2l0pbiwxq] {
    font-size: .84rem;
    text-align: right;
}

.journal-note[b-x2l0pbiwxq] {
    color: var(--text-quiet);
    font-size: .74rem;
    margin: .6rem 0 0;
}

@media (max-width: 640px) {
    .journal-row[b-x2l0pbiwxq] {
        grid-template-columns: 4.5rem minmax(0, 1fr) 5rem;
    }

    .journal-pnl[b-x2l0pbiwxq] {
        grid-column: 2 / -1;
        text-align: left;
    }
}
/* /Shared/AsciiIllustration.razor.rz.scp.css */
.ascii-illustration[b-vfhp8432av] {
    --ascii-ink: var(--text-primary);
    --ascii-accent: var(--accent);
    --ascii-dim: var(--text-muted);
    flex: 0 0 auto;
    margin: 0;
    position: relative;
    width: clamp(15rem, 24vw, 19rem);
    max-width: 100%;
    contain: layout;
}

.ascii-object-stage[b-vfhp8432av] {
    aspect-ratio: 1.6;
    position: relative;
    overflow: hidden;
    background: radial-gradient(ellipse at 50% 65%, var(--accent-soft), transparent 66%);
}

.ascii-object-stage[b-vfhp8432av]::before,
.ascii-object-stage[b-vfhp8432av]::after {
    border-color: var(--border-subtle);
    border-style: solid;
    content: "";
    height: .55rem;
    width: .55rem;
    position: absolute;
    top: .6rem;
    pointer-events: none;
}

.ascii-object-stage[b-vfhp8432av]::before { left: 0; border-width: 1px 0 0 1px; }
.ascii-object-stage[b-vfhp8432av]::after { right: 0; border-width: 1px 1px 0 0; }

canvas[b-vfhp8432av] { display: block; width: 100%; height: 100%; opacity: 0; }
.is-ready canvas[b-vfhp8432av] { opacity: 1; }

/* Keep the actual brand visible while its pixels are being converted, including
   when a remote host cannot be sampled. Only a successful conversion replaces it. */
.ascii-logo-fallback[b-vfhp8432av] {
    position: absolute;
    inset: 12%;
    width: 76%;
    height: 76%;
    object-fit: contain;
}
.ascii-object-stage--logo:has(.ascii-logo-fallback) canvas[b-vfhp8432av] { opacity: 0; }
.ascii-object-stage--logo:has(.ascii-logo-fallback) .ascii-object-fallback[b-vfhp8432av] { display: none; }
.is-ready .ascii-object-stage--logo:has(canvas[data-logo-source="image"]) canvas[b-vfhp8432av] { opacity: 1; }
.is-ready .ascii-object-stage--logo:has(canvas[data-logo-source="image"]) .ascii-logo-fallback[b-vfhp8432av] { display: none; }

.ascii-object-fallback[b-vfhp8432av] {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    margin: 0;
    color: var(--accent);
    font: .65rem/1.2 Consolas, "Courier New", monospace;
    white-space: pre;
}
.is-ready .ascii-object-fallback[b-vfhp8432av] { display: none; }

.ascii-object-caption[b-vfhp8432av] {
    align-items: center;
    border-top: 1px solid var(--border-subtle);
    color: var(--text-muted);
    display: flex;
    font: .57rem/1.5 var(--font-mono);
    justify-content: flex-start;
    letter-spacing: .13em;
    min-height: 2rem;
    text-transform: uppercase;
}

.ascii-illustration--compact[b-vfhp8432av] { width: 8.25rem; }
.ascii-illustration--compact .ascii-object-stage[b-vfhp8432av] { aspect-ratio: 1.25; background: none; }
.ascii-illustration--compact .ascii-object-stage[b-vfhp8432av]::before,
.ascii-illustration--compact .ascii-object-stage[b-vfhp8432av]::after { display: none; }
.ascii-illustration--compact .ascii-object-fallback[b-vfhp8432av] { font-size: .38rem; }

@media (max-width: 700px) {
    .ascii-illustration[b-vfhp8432av] { align-self: center; width: 17rem; }
    .ascii-object-stage[b-vfhp8432av] { aspect-ratio: 1.85; }
    .ascii-illustration--compact[b-vfhp8432av] { width: 6rem; }
    .ascii-illustration--compact .ascii-object-stage[b-vfhp8432av] { aspect-ratio: 1.1; }
}

/* Hintergrund-Variante: eine hohe Spalte am Seitenrand, ein Drittel der Breite ragt über den
   Rand hinaus (zwei Drittel sichtbar). Fest im Fenster, hinter dem Inhalt; die Farbe kommt aus den
   Tokens, also aus der gewählten Palette. Rein dekorativ, fängt keine Klicks. */
.ascii-illustration--backdrop[b-vfhp8432av] {
    --backdrop-w: min(54rem, 82vw);
    bottom: 0;
    height: calc(100vh - 4.25rem);
    left: calc(var(--backdrop-w) / -3);
    mask-image: linear-gradient(to left, transparent 0, #000 38%);
    -webkit-mask-image: linear-gradient(to left, transparent 0, #000 38%);
    max-width: none;
    opacity: .26;
    pointer-events: none;
    position: fixed;
    top: 4.25rem;
    width: var(--backdrop-w);
    z-index: 0;
}

.ascii-illustration--backdrop.ascii-illustration--right[b-vfhp8432av] {
    left: auto;
    mask-image: linear-gradient(to right, transparent 0, #000 38%);
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 38%);
    right: calc(var(--backdrop-w) / -3);
}

.ascii-illustration--backdrop .ascii-object-stage[b-vfhp8432av] {
    aspect-ratio: auto;
    background: none;
    height: 100%;
}

.ascii-illustration--backdrop .ascii-object-stage[b-vfhp8432av]::before,
.ascii-illustration--backdrop .ascii-object-stage[b-vfhp8432av]::after {
    display: none;
}

:root[data-theme="light"] .ascii-illustration--backdrop[b-vfhp8432av] { opacity: .22; }

@media (max-width: 700px) {
    .ascii-illustration--backdrop[b-vfhp8432av] { display: none; }
}
/* /Shared/AuthCollage.razor.rz.scp.css */
/* Zweite Ebene neben dem Formular: eine ruhige Kachel in der Flächenfarbe, in Hell und Dunkel
   gleich aufgebaut (keine invertierte Tintenfläche mehr). */
.auth-terminal[b-tuw01tp3es] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    color: var(--text-primary);
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: space-between;
    max-width: 34rem;
    padding: 1.6rem;
    width: 100%;
}

.auth-terminal-head[b-tuw01tp3es] {
    align-items: center;
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-muted);
    display: flex;
    font-size: .8125rem;
    font-weight: 600;
    justify-content: space-between;
    padding-bottom: .9rem;
}

.auth-terminal-head .status[b-tuw01tp3es] {
    align-items: center;
    color: var(--text-muted);
    display: inline-flex;
    gap: .45rem;
}

.auth-terminal-line[b-tuw01tp3es] {
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: clamp(1.9rem, 4vw, 2.9rem);
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1.1;
    margin: 2rem 0;
}

.auth-terminal-line .idx[b-tuw01tp3es] {
    color: var(--text-muted);
}

.auth-terminal-foot[b-tuw01tp3es] {
    border-top: 1px solid var(--border-subtle);
    color: var(--text-muted);
    display: flex;
    font-size: .8125rem;
    gap: 1.4rem;
    padding-top: .9rem;
}
/* /Shared/BklitChart.razor.rz.scp.css */
/* Base sizing only - all theming/typography lives in the bundle's own tc-root (see
   charts/src/index.css). This isolated stylesheet only ever touches the host div itself, so it
   cannot leak into the JS-rendered chart contents even by accident. */
.bklit-chart[b-0ck8uork8y] {
    display: block;
    width: 100%;
}
/* /Shared/BrandLogo.razor.rz.scp.css */
.brand-logo[b-0pv0kf4za4] {
    color: var(--text-primary);
    display: block;
    flex: none;
}

.brand-logo-lockup[b-0pv0kf4za4] {
    align-items: center;
    display: inline-flex;
    gap: .62em;
}

.brand-logo-lockup svg[b-0pv0kf4za4] {
    display: block;
    flex: none;
}

/* Wortmarke als Text in der Display-Schrift: passt zum Rest der Oberfläche und bleibt in
   Hell und Dunkel scharf (currentColor). */
.brand-logo-word[b-0pv0kf4za4] {
    font-family: var(--font-display);
    font-weight: 750;
    letter-spacing: -.035em;
    line-height: 1;
}
/* /Shared/ChannelChatView.razor.rz.scp.css */
.channel-chat[b-rqb69spa08] {
    display: flex;
    flex-direction: column;
    height: 100%;
    gap: .9rem;
}

.channel-chat-head[b-rqb69spa08] {
    align-items: center;
    display: grid;
    gap: .7rem;
    grid-template-columns: auto minmax(0, 1fr) auto;
}

.channel-back[b-rqb69spa08] {
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    display: flex;
    padding: .2rem;
}

.channel-back:hover[b-rqb69spa08] {
    color: var(--text-primary);
}

.channel-chat-title[b-rqb69spa08] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.channel-chat-title strong[b-rqb69spa08] {
    font-size: .95rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.channel-chat-title span[b-rqb69spa08] {
    color: var(--text-quiet);
    font-size: .74rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.channel-member-count[b-rqb69spa08] {
    color: var(--text-quiet);
    font-size: .76rem;
}

.channel-log[b-rqb69spa08] {
    border-top: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: .7rem;
    min-height: 12rem;
    overflow-y: auto;
    padding-top: .8rem;
}

.channel-empty[b-rqb69spa08] {
    color: var(--text-muted);
    font-size: .82rem;
    margin: auto 0;
    text-align: center;
}

.channel-message[b-rqb69spa08] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.channel-message-head[b-rqb69spa08] {
    align-items: baseline;
    display: flex;
    gap: .5rem;
}

.channel-message-author[b-rqb69spa08] {
    font-size: .8rem;
    font-weight: 600;
}

.channel-message.mine .channel-message-author[b-rqb69spa08] {
    color: var(--accent);
}

.channel-message-time[b-rqb69spa08] {
    color: var(--text-quiet);
    font-size: .7rem;
}

.channel-message-text[b-rqb69spa08] {
    color: var(--text-secondary);
    font-size: .86rem;
    line-height: 1.55;
    margin: 0;
}

.channel-policy[b-rqb69spa08] {
    border-left: 2px solid var(--border-strong);
    color: var(--text-quiet);
    font-size: .74rem;
    line-height: 1.55;
    margin: 0;
    padding: .1rem 0 .1rem .7rem;
}

.form-error[b-rqb69spa08] {
    color: var(--negative);
    font-size: .8rem;
    margin: 0;
}

.channel-composer[b-rqb69spa08] {
    display: flex;
    gap: .5rem;
}

.channel-composer input[b-rqb69spa08] {
    background: var(--surface-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    color: var(--text-primary);
    flex: 1;
    font: inherit;
    font-size: .86rem;
    padding: .6rem .7rem;
    min-width: 0;
}

.channel-composer input:focus[b-rqb69spa08] {
    border-color: var(--accent);
    outline: none;
}

.channel-composer button[b-rqb69spa08] {
    background: var(--accent);
    border: 0;
    border-radius: var(--radius);
    color: var(--on-accent);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
}

.channel-composer button:hover:not(:disabled)[b-rqb69spa08] {
    background: var(--accent-bright);
}

.channel-composer button:disabled[b-rqb69spa08] {
    cursor: not-allowed;
    opacity: .5;
}

.page-state[b-rqb69spa08] {
    color: var(--text-muted);
    font-size: .84rem;
}
/* /Shared/ChannelsPanel.razor.rz.scp.css */
.channels-panel[b-phdfh2qywu] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    height: 100%;
}

.channels-head[b-phdfh2qywu] {
    display: flex;
    align-items: baseline;
}

.channels-head h2[b-phdfh2qywu] {
    font-size: 1.45rem;
    margin: 0;
}

.channels-block h3[b-phdfh2qywu] {
    color: var(--text-quiet);
    font-family: var(--font-body);
    font-size: .76rem;
    font-weight: 550;
    margin: 0 0 .5rem;
}

.channels-empty[b-phdfh2qywu] {
    color: var(--text-muted);
    font-size: .84rem;
    line-height: 1.6;
    margin: 0;
}

.channels-list[b-phdfh2qywu] {
    display: flex;
    flex-direction: column;
    list-style: none;
    margin: 0;
    padding: 0;
}

.channel-row[b-phdfh2qywu] {
    align-items: center;
    background: none;
    border: 0;
    border-radius: var(--radius);
    color: inherit;
    cursor: pointer;
    display: grid;
    font: inherit;
    gap: .6rem;
    grid-template-columns: 1.1rem minmax(0, 1fr) auto;
    padding: .5rem .4rem;
    text-align: left;
    width: 100%;
}

.channel-row:hover[b-phdfh2qywu] {
    background: var(--surface-hover);
}

.channel-row svg[b-phdfh2qywu] {
    color: var(--text-quiet);
}

.channel-name[b-phdfh2qywu] {
    font-size: .88rem;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.channel-discover-row[b-phdfh2qywu] {
    align-items: center;
    display: grid;
    gap: .6rem;
    grid-template-columns: 1.1rem minmax(0, 1fr) auto;
    padding: .5rem .4rem;
}

.channel-discover-row svg[b-phdfh2qywu] {
    color: var(--text-quiet);
}

.channel-meta[b-phdfh2qywu] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.channel-member-sub[b-phdfh2qywu] {
    color: var(--text-quiet);
    font-size: .74rem;
}

.channel-join[b-phdfh2qywu] {
    background: none;
    border: 1px solid var(--accent);
    border-radius: var(--radius);
    color: var(--accent);
    cursor: pointer;
    font: inherit;
    font-size: .78rem;
    font-weight: 600;
    padding: .34rem .7rem;
}

.channel-join:hover:not(:disabled)[b-phdfh2qywu] {
    background: var(--accent-soft);
}

.channel-join:disabled[b-phdfh2qywu] {
    cursor: not-allowed;
    opacity: .5;
}

.page-state[b-phdfh2qywu] {
    color: var(--text-muted);
    font-size: .84rem;
}
/* /Shared/ChartAnalysisSection.razor.rz.scp.css */
.ew-panel[b-in0js2eyfq] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0 0 1.4rem;
}

.ew-evidence[b-in0js2eyfq] { margin-top: 1.4rem; min-width: 0; }
.ew-data-warning[b-in0js2eyfq] { color: var(--warning); font-size: .78rem; line-height: 1.6; background: var(--surface-inset); border-radius: var(--radius-sm); padding: .65rem .9rem; }

.widget-head[b-in0js2eyfq] {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1rem;
    justify-content: space-between;
}

.widget-head h2[b-in0js2eyfq] {
    color: var(--text-primary);
    margin: 0;
}

.widget-meta[b-in0js2eyfq] {
    color: var(--text-quiet);
    font-size: .75rem;
}

/* ---- Suche ---- */
.ew-form[b-in0js2eyfq] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
}

.ew-form input[b-in0js2eyfq] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    color: var(--text-primary);
    font: inherit;
    font-size: .88rem;
    height: 2.75rem;
    padding: 0 1.1rem;
    width: 13rem;
}

.ew-form input:focus[b-in0js2eyfq] {
    border-color: var(--accent);
    outline: none;
}

.ew-form button[b-in0js2eyfq] {
    background: var(--accent);
    border: 0;
    border-radius: var(--radius-pill);
    color: var(--on-accent);
    cursor: pointer;
    font-size: .88rem;
    font-weight: 700;
    height: 2.75rem;
    padding: 0 1.5rem;
}

.ew-form button:hover:not(:disabled)[b-in0js2eyfq] {
    background: var(--accent-bright);
}

.ew-form button:disabled[b-in0js2eyfq] {
    cursor: not-allowed;
    opacity: .5;
}

.form-error[b-in0js2eyfq] {
    color: var(--negative);
    font-size: .82rem;
}

.page-state[b-in0js2eyfq] {
    color: var(--text-quiet);
    font-size: .85rem;
}

/* ---- Kopf: Symbol und Kurs ---- */
.ew-hero[b-in0js2eyfq] {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1.1rem;
}

.ew-hero-title[b-in0js2eyfq] {
    color: var(--text-primary);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    letter-spacing: -.03em;
    line-height: 1;
}

.ew-hero-price[b-in0js2eyfq] {
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: clamp(1.4rem, 2.6vw, 2rem);
    font-weight: 500;
    letter-spacing: -.025em;
}

.ew-hero-meta[b-in0js2eyfq] {
    color: var(--text-quiet);
    font-size: .78rem;
}

/* ---- Andere Lesarten (eingeklappt) ---- */
.ew-tabs[b-in0js2eyfq] {
    display: grid;
    gap: .5rem;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
}

.ew-tabs button[b-in0js2eyfq] {
    align-items: baseline;
    background: var(--surface-inset);
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    cursor: pointer;
    display: grid;
    font: inherit;
    font-size: .82rem;
    gap: .15rem .6rem;
    grid-template-columns: auto 1fr;
    line-height: 1.45;
    padding: .8rem 1rem;
    text-align: left;
}

.ew-tabs button:hover[b-in0js2eyfq] {
    border-color: var(--border-strong);
}

.ew-tabs button.active[b-in0js2eyfq] {
    background: var(--surface-3);
    border-color: var(--border-strong);
    color: var(--text-primary);
}

.ew-tabs button:focus-visible[b-in0js2eyfq],
.ew-segment button:focus-visible[b-in0js2eyfq] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.ew-tab-rank[b-in0js2eyfq] {
    color: var(--text-quiet);
    font-family: var(--font-mono);
    font-variant-numeric: tabular-nums;
    grid-row: span 2;
}

.ew-fit[b-in0js2eyfq] {
    font-size: .75rem;
    font-weight: 600;
}

.ew-fit.positive[b-in0js2eyfq] { color: var(--positive); }
.ew-fit.neutral[b-in0js2eyfq] { color: var(--text-secondary); }
.ew-fit.negative[b-in0js2eyfq] { color: var(--text-muted); }

/* ---- Werkzeugleiste ---- */
.ew-toolbar[b-in0js2eyfq] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1rem;
}

.ew-segment[b-in0js2eyfq] {
    background: var(--surface-inset);
    border-radius: var(--radius-pill);
    display: inline-flex;
    padding: 3px;
}

.ew-segment button[b-in0js2eyfq] {
    background: none;
    border: 0;
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    cursor: pointer;
    font: inherit;
    font-size: .8rem;
    padding: .4rem 1rem;
}

.ew-segment button.active[b-in0js2eyfq] {
    background: var(--surface-raised);
    color: var(--text-primary);
    font-weight: 600;
}

.ew-check[b-in0js2eyfq] {
    align-items: center;
    color: var(--text-secondary);
    cursor: pointer;
    display: inline-flex;
    font-size: .8rem;
    gap: .4rem;
}

.ew-check input[b-in0js2eyfq] {
    accent-color: var(--accent);
}

.ew-plain[b-in0js2eyfq] {
    background: none;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-pill);
    color: var(--text-secondary);
    cursor: pointer;
    font: inherit;
    font-size: .8rem;
    padding: .4rem 1rem;
}

.ew-plain:hover[b-in0js2eyfq] {
    border-color: var(--text-muted);
    color: var(--text-primary);
}

.ew-plain:focus-visible[b-in0js2eyfq] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.ew-hint[b-in0js2eyfq] {
    color: var(--text-quiet);
    font-size: .72rem;
}

/* ---- Chart ---- */
.ew-chart-host[b-in0js2eyfq] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    overflow: hidden;
    /* Taller ceiling (was 40rem/62vh) - on an ordinary laptop viewport the old cap left the
       chart needing a scroll to see in full even though there was still headroom; "Vollbild"
       exists for a true full-screen view, this is about the default view actually using the
       screen it has. */
    height: clamp(26rem, 74vh, 52rem);
    width: 100%;
}

/* RSI(14) and MACD(12,26,9), directly below the price chart and sharing its time axis - their
   own fixed-height strip rather than taking space from the price chart itself. Only mounted when
   ShowIndicators is true (Pro); Premium never renders this host at all. */
.ew-indicator-host[b-in0js2eyfq] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    border-top: none;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    height: 11rem;
    overflow: hidden;
    width: 100%;
}

/* ---- Hauptszenario ---- */
.ew-main[b-in0js2eyfq] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    min-width: 0;
    padding: 1.6rem;
}

.ew-eyebrow[b-in0js2eyfq] {
    color: var(--text-quiet);
    font-family: var(--font-body);
    font-size: .8rem;
    letter-spacing: 0;
}

.ew-verdict[b-in0js2eyfq] {
    color: var(--text-primary);
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1.35;
    margin: 0;
}

.ew-target[b-in0js2eyfq] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.ew-target-label[b-in0js2eyfq] {
    color: var(--text-muted);
    font-size: .8rem;
}

.ew-target-value[b-in0js2eyfq] {
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: clamp(1.6rem, 2.4vw, 2.1rem);
    font-weight: 500;
    letter-spacing: -.03em;
    line-height: 1.1;
}

.ew-target-delta[b-in0js2eyfq] {
    color: var(--text-secondary);
    font-size: .8rem;
    font-weight: 600;
}

.ew-target-none[b-in0js2eyfq] {
    color: var(--text-muted);
    font-size: .9rem;
}

.ew-facts[b-in0js2eyfq] {
    display: grid;
    gap: .6rem;
    grid-template-columns: 1fr 1fr;
}

.ew-fact[b-in0js2eyfq] {
    background: var(--surface-inset);
    border-radius: var(--radius-sm);
    display: flex;
    flex-direction: column;
    gap: .25rem;
    min-width: 0;
    padding: .8rem 1rem;
}

.ew-fact-label[b-in0js2eyfq] {
    color: var(--text-quiet);
    font-size: .75rem;
}

.ew-fact-value[b-in0js2eyfq] {
    font-family: var(--font-mono);
    font-size: 1.05rem;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.ew-fact-value.negative[b-in0js2eyfq] { color: var(--negative); }

.ew-why[b-in0js2eyfq] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.ew-why-title[b-in0js2eyfq] {
    color: var(--text-primary);
    font-size: .85rem;
    font-weight: 600;
}

.ew-why ul[b-in0js2eyfq] {
    color: var(--text-secondary);
    display: flex;
    flex-direction: column;
    font-size: .8rem;
    gap: .45rem;
    line-height: 1.5;
    list-style: none;
    margin: 0;
    padding: 0;
}

.ew-why-warn[b-in0js2eyfq] { color: var(--warning); }

/* ---- Premium: Chart links, Hauptszenario rechts (Zeilen bewusst fest, damit leere Zeilen
   keine Lücken erzeugen: row-gap 0, der Abstand steckt in den Rändern) ---- */
.ew-premium[b-in0js2eyfq] {
    align-items: start;
    column-gap: 1.5rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 24rem);
    /* Zeile 7 (Chart) ist die flexible: Ist die Hauptszenario-Kachel höher als Werkzeugleiste
       plus Chart, wächst nur diese Zeile - nicht die Werkzeugleisten-Zeile darüber (sonst
       entsteht eine Lücke über dem Chart). */
    grid-template-rows: repeat(6, auto) minmax(0, 1fr) repeat(2, auto);
    row-gap: 0;
}

.ew-premium > *[b-in0js2eyfq] { grid-column: 1 / -1; margin: 0 0 1rem; }
.ew-premium > .widget-head[b-in0js2eyfq] { grid-row: 1; }
.ew-premium > .ew-form[b-in0js2eyfq] { grid-row: 2; }
.ew-premium > .page-state[b-in0js2eyfq],
.ew-premium > .form-error[b-in0js2eyfq] { grid-row: 3; }
.ew-premium > .ew-error[b-in0js2eyfq] { grid-row: 3; }
.ew-premium > .ew-skeleton[b-in0js2eyfq] { grid-row: 4 / span 4; }
.ew-premium > .ew-hero[b-in0js2eyfq] { grid-row: 4; }
.ew-premium > .ew-layers[b-in0js2eyfq] { grid-row: 5; }
.ew-premium > .ew-toolbar[b-in0js2eyfq] { grid-column: 1; grid-row: 6; }
.ew-premium > .ew-chart-host[b-in0js2eyfq] { grid-column: 1; grid-row: 7; }
.ew-premium > .ew-main[b-in0js2eyfq] { align-self: stretch; grid-column: 2; grid-row: 6 / span 2; }
.ew-premium > .ew-scenarios[b-in0js2eyfq] { grid-row: 8; }
.ew-premium > .ew-detail-disclosure[b-in0js2eyfq] { grid-row: 9; }
.ew-premium.ew-nomain > .ew-toolbar[b-in0js2eyfq],
.ew-premium.ew-nomain > .ew-chart-host[b-in0js2eyfq] { grid-column: 1 / -1; }

@media (max-width: 62rem) {
    .ew-premium[b-in0js2eyfq] { grid-template-rows: none; }
    .ew-premium > .ew-main[b-in0js2eyfq] { grid-column: 1; grid-row: 6; }
    .ew-premium > .ew-toolbar[b-in0js2eyfq] { grid-row: 7; }
    .ew-premium > .ew-chart-host[b-in0js2eyfq] { grid-row: 8; }
    .ew-premium > .ew-scenarios[b-in0js2eyfq] { grid-row: 9; }
    .ew-premium > .ew-detail-disclosure[b-in0js2eyfq] { grid-row: 10; }
}

/* ---- Wo stehen wir (Details) ---- */
.ew-where[b-in0js2eyfq] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    padding: 1.25rem 1.4rem;
}

.ew-where h3[b-in0js2eyfq] {
    color: var(--text-primary);
    font-size: .95rem;
    margin: 0 0 .6rem;
}

.ew-where table[b-in0js2eyfq] {
    border-collapse: collapse;
    font-size: .8rem;
    width: 100%;
}

.ew-where th[b-in0js2eyfq] {
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-quiet);
    font-weight: 500;
    padding: .35rem .6rem .35rem 0;
    text-align: left;
}

.ew-where td[b-in0js2eyfq] {
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-secondary);
    padding: .5rem .6rem .5rem 0;
}

.ew-where td.negative[b-in0js2eyfq] { color: var(--negative); }
.ew-where td.positive[b-in0js2eyfq] { color: var(--positive); }
.ew-where .muted[b-in0js2eyfq] { color: var(--text-quiet); }

.ew-wave-label[b-in0js2eyfq] {
    font-weight: 700;
}

/* Dieselben Gradfarben wie im Chart (ChartAnalysisSection.razor.js, readPalette): nur Tokens. */
.ew-wave-label.degree-0[b-in0js2eyfq] { color: var(--text-primary); }
.ew-wave-label.degree-1[b-in0js2eyfq] { color: var(--info); }
.ew-wave-label.degree-2[b-in0js2eyfq] { color: var(--warning); }
.ew-wave-label.degree-3[b-in0js2eyfq] { color: var(--violet); }
.ew-wave-label.degree-4[b-in0js2eyfq] { color: var(--text-muted); }
.ew-wave-label.degree-5[b-in0js2eyfq] { color: var(--text-muted); }

.ew-note[b-in0js2eyfq] {
    color: var(--text-quiet);
    font-size: .75rem;
    line-height: 1.6;
    margin: .6rem 0 0;
}

.mono-number[b-in0js2eyfq] {
    font-variant-numeric: tabular-nums;
}

@media (max-width: 40rem) {
    .ew-form input[b-in0js2eyfq] { width: 100%; }
    .ew-hint[b-in0js2eyfq] { display: none; }
}

/* ---- Ebenen-Umschalter: Elliott / Muster ---- */
.ew-layers[b-in0js2eyfq] {
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    gap: 1.4rem;
}

.ew-layers button[b-in0js2eyfq] {
    background: none;
    border: 0;
    border-bottom: 2px solid transparent;
    color: var(--text-muted);
    cursor: pointer;
    font: inherit;
    font-size: .95rem;
    font-weight: 600;
    margin-bottom: -1px;
    padding: .4rem 0 .65rem;
}

.ew-layers button.active[b-in0js2eyfq] {
    border-bottom-color: var(--accent);
    color: var(--text-primary);
}

.ew-layers button:focus-visible[b-in0js2eyfq] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.ew-count[b-in0js2eyfq] {
    color: var(--text-quiet);
    font-size: .75rem;
    font-weight: 500;
    margin-left: .35rem;
}

/* ---- Chart-Muster ---- */
.pt-list[b-in0js2eyfq] {
    display: grid;
    gap: .7rem;
    grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
    margin-bottom: 1rem;
}

.pt-card[b-in0js2eyfq] {
    background: var(--surface-inset);
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    display: flex;
    position: relative;
    flex-direction: column;
    font: inherit;
    font-size: .82rem;
    gap: .3rem;
    padding: .85rem 1rem .85rem 1.15rem;
    text-align: left;
}

/* Richtung als leichte Tönung der Fläche, kein farbiger Rand. */
.pt-card.up[b-in0js2eyfq] { background: color-mix(in srgb, var(--positive) 9%, var(--surface-inset)); }
.pt-card.down[b-in0js2eyfq] { background: color-mix(in srgb, var(--negative) 9%, var(--surface-inset)); }

.pt-card:hover[b-in0js2eyfq] {
    border-color: var(--border-strong);
}

.pt-card.picked[b-in0js2eyfq],
.pt-row.picked td[b-in0js2eyfq] {
    border-color: var(--text-primary);
}

.pt-show[b-in0js2eyfq] {
    align-self: flex-start;
    background: transparent;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-pill);
    color: var(--text-primary);
    cursor: pointer;
    font: inherit;
    font-size: .75rem;
    font-weight: 600;
    min-height: 2rem;
    padding: .25rem .8rem;
}

.pt-show:hover[b-in0js2eyfq],
.pt-show[aria-pressed="true"][b-in0js2eyfq] {
    background: var(--surface-3);
}

.pt-show:focus-visible[b-in0js2eyfq] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.pt-earlier[b-in0js2eyfq] {
    margin: 0 0 1rem;
}

.pt-earlier > summary[b-in0js2eyfq] {
    color: var(--text-primary);
    cursor: pointer;
    font-size: .85rem;
    font-weight: 600;
    padding: .5rem 0;
}

.pt-earlier > summary:focus-visible[b-in0js2eyfq] {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}

/* ---- Leere und Fehler-Zustände ---- */
.ew-empty[b-in0js2eyfq] {
    background: var(--surface-inset);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    padding: 1rem 1.1rem;
}

.ew-error[b-in0js2eyfq] {
    align-items: center;
    background: var(--surface-inset);
    border-radius: var(--radius-sm);
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1rem;
    padding: .8rem 1.1rem;
}

.ew-error .form-error[b-in0js2eyfq] { margin: 0; }

/* ---- Wellenübersicht unter dem Hauptszenario ---- */
.ew-overview[b-in0js2eyfq] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.ew-overview-scroll[b-in0js2eyfq] { overflow-x: auto; }

.ew-overview table[b-in0js2eyfq] {
    border-collapse: collapse;
    font-size: .78rem;
    width: 100%;
}

.ew-overview th[b-in0js2eyfq],
.ew-overview td[b-in0js2eyfq] {
    color: var(--text-secondary);
    padding: .3rem .4rem .3rem 0;
    text-align: left;
    white-space: nowrap;
}

.ew-overview thead th[b-in0js2eyfq] {
    color: var(--text-quiet);
    font-size: .68rem;
    font-weight: 500;
}

.ew-overview tbody th[b-in0js2eyfq] { font-weight: 600; }
.ew-overview-open td[b-in0js2eyfq] { color: var(--text-primary); }

/* ---- Ladezustand: Kacheln in der Größe der späteren Inhalte, damit nichts springt ---- */
.ew-skeleton[b-in0js2eyfq] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.ew-skel[b-in0js2eyfq] {
    background: linear-gradient(90deg, var(--surface-inset) 0%, var(--surface-3) 50%, var(--surface-inset) 100%);
    background-size: 200% 100%;
    border-radius: var(--radius-sm);
}

.ew-skel-hero[b-in0js2eyfq] { height: 3.4rem; width: min(100%, 22rem); }
.ew-skel-tabs[b-in0js2eyfq] { height: 2.2rem; width: min(100%, 16rem); }

.ew-skel-grid[b-in0js2eyfq] {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}

.ew-skel-chart[b-in0js2eyfq] { height: 26rem; }
.ew-skel-tile[b-in0js2eyfq] { height: 26rem; }

@media (max-width: 62rem) {
    .ew-skel-grid[b-in0js2eyfq] { grid-template-columns: 1fr; }
    .ew-skel-chart[b-in0js2eyfq] { height: 18rem; }
    .ew-skel-tile[b-in0js2eyfq] { height: 12rem; }
}

@media (prefers-reduced-motion: no-preference) {
    .ew-skel[b-in0js2eyfq] { animation: ew-shimmer-b-in0js2eyfq 1.6s ease-in-out infinite; }
}

@keyframes ew-shimmer-b-in0js2eyfq {
    from { background-position: 100% 0; }
    to { background-position: -100% 0; }
}

.pt-name[b-in0js2eyfq] {
    color: var(--text-primary);
    font-size: .92rem;
    font-weight: 600;
}

.pt-tf[b-in0js2eyfq] {
    color: var(--text-quiet);
    font-size: .75rem;
    font-weight: 500;
    margin-left: .3rem;
}

.pt-target.positive[b-in0js2eyfq] { color: var(--positive); }
.pt-target.negative[b-in0js2eyfq] { color: var(--negative); }
.pt-invalid[b-in0js2eyfq] { color: var(--negative); }

.pt-muted[b-in0js2eyfq] {
    color: var(--text-quiet);
}

.pt-meta[b-in0js2eyfq] {
    color: var(--text-quiet);
    font-size: .75rem;
}

.pt-sub[b-in0js2eyfq] {
    margin-top: .4rem !important;
}

.pt-records[b-in0js2eyfq] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
    gap: 1.2rem 2rem;
}

.pt-record-title[b-in0js2eyfq] {
    margin: 0 0 .4rem;
    color: var(--text-muted);
    font-size: .82rem;
}

.pt-row[b-in0js2eyfq] {
    cursor: pointer;
}

.pt-row:hover td[b-in0js2eyfq] {
    color: var(--text-primary);
}

/* ---- Einklappbare Bereiche ---- */
.ew-scenarios summary[b-in0js2eyfq], .ew-detail-disclosure summary[b-in0js2eyfq] {
    color: var(--text-primary);
    cursor: pointer;
    font-size: .85rem;
    font-weight: 600;
    padding: .65rem 0;
}
.ew-scenarios summary:focus-visible[b-in0js2eyfq], .ew-detail-disclosure summary:focus-visible[b-in0js2eyfq] { outline: 2px solid var(--accent); outline-offset: 3px; }
.ew-scenarios > .ew-tabs[b-in0js2eyfq] { margin-top: .4rem; }
.ew-detail-disclosure > summary > span[b-in0js2eyfq] { color: var(--text-muted); font-size: .65rem; font-weight: 400; margin-left: .8rem; }

/* ---- Pro-Arbeitsfläche (WorkspaceLayout), Aufbau unverändert, nur weichere Kanten ---- */
.ew-workspace[b-in0js2eyfq] { gap: .75rem; padding: 0 0 1.4rem; min-width: 0; }
.ew-workspace .widget-head h2[b-in0js2eyfq] { font-family: var(--pro-display, var(--font-display)); font-size: 1.35rem; letter-spacing: -.035em; text-transform: uppercase; }
.ew-workspace .widget-meta[b-in0js2eyfq] { font-size: .65rem; }
.ew-workspace .ew-form[b-in0js2eyfq] { align-items: stretch; flex-wrap: wrap; gap: .55rem; padding: .3rem 0; }
.ew-workspace .ew-form[b-in0js2eyfq]  .asset-search { flex: 1 1 16rem; min-width: 0; }
.ew-workspace .ew-form > input[b-in0js2eyfq] { flex: 1 1 8rem; min-width: 0; width: 8rem; }
.ew-workspace .ew-form > button[b-in0js2eyfq] { padding: 0 1rem; }
.ew-workspace .ew-layers[b-in0js2eyfq] { gap: 1.1rem; }
.ew-workspace .ew-layers button[b-in0js2eyfq] { font-size: .78rem; }
.ew-workspace .ew-toolbar[b-in0js2eyfq] { gap: .5rem .8rem; }
.ew-workspace .ew-toolbar button[b-in0js2eyfq], .ew-workspace .ew-check[b-in0js2eyfq] { font-size: .7rem; }
.ew-workspace .ew-hint[b-in0js2eyfq] { flex-basis: 100%; font-size: .62rem; line-height: 1.6; }
.ew-workspace .ew-scenarios[b-in0js2eyfq] { border-bottom: 1px solid var(--border-subtle); order: 3; }
.ew-workspace .ew-tabs[b-in0js2eyfq] { padding: .5rem 0 .75rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.ew-workspace .ew-tabs button[b-in0js2eyfq] { font-size: .72rem; }
.ew-workspace .ew-chart-host[b-in0js2eyfq] { height: clamp(24rem, 52vh, 34rem); order: 1; }
.ew-workspace .ew-indicator-host[b-in0js2eyfq] { margin-top: -.75rem; order: 2; }
.ew-workspace-source[b-in0js2eyfq] { color: var(--text-muted); font-size: .65rem; line-height: 1.65; margin: 0; order: 3; }
.ew-workspace .ew-data-warning[b-in0js2eyfq] { font-size: .7rem; margin: 0; }
.ew-workspace .ew-detail-disclosure[b-in0js2eyfq] { border-top: 1px solid var(--border-subtle); min-width: 0; order: 4; }
.ew-workspace .ew-where[b-in0js2eyfq] { overflow-x: auto; padding-top: .5rem; }
.ew-workspace .pt-list[b-in0js2eyfq] { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }
@media (max-width: 40rem) {
    .ew-workspace .ew-form > input[b-in0js2eyfq] { flex-basis: calc(100% - 6.5rem); }
    .ew-workspace .ew-layers[b-in0js2eyfq] { flex-wrap: wrap; }
    .ew-workspace .ew-chart-host[b-in0js2eyfq] { height: 24rem; }
}

/* Technischer Rohtext der Engine: nur eingeklappt, damit das Hauptszenario in Klartext bleibt. */
.ew-tech-details[b-in0js2eyfq] {
    margin-top: 1rem;
}

.ew-tech-details summary[b-in0js2eyfq] {
    color: var(--text-muted);
    cursor: pointer;
    font-size: .78rem;
}

.ew-tech-details summary:focus-visible[b-in0js2eyfq] {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}

.ew-tech[b-in0js2eyfq] {
    color: var(--text-muted);
    font-size: .78rem;
    line-height: 1.55;
    margin: .5rem 0 0;
}
/* /Shared/CoachChat.razor.rz.scp.css */
.coach-chat[b-iwksstib6m] {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    min-height: 0;
}

.coach-chat.is-compact[b-iwksstib6m] {
    flex: 1;
    gap: .8rem;
}

.coach-state[b-iwksstib6m] {
    color: var(--text-muted);
    font-size: .88rem;
    line-height: 1.65;
    margin: 0;
    padding: .5rem 0;
}

.coach-thread[b-iwksstib6m] {
    display: flex;
    flex-direction: column;
    gap: 1.3rem;
}

/* Im Eckfenster scrollt nur der Verlauf, Eingabe und Hinweis bleiben stehen. */
.is-compact .coach-thread[b-iwksstib6m] {
    flex: 1;
    gap: 1rem;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: .2rem;
}

.coach-empty p[b-iwksstib6m] {
    color: var(--text-quiet);
    font-size: .8rem;
    margin: 0 0 .6rem;
}

.coach-suggestions[b-iwksstib6m] {
    align-items: flex-start;
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

.coach-suggestion[b-iwksstib6m] {
    background: none;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    color: var(--text-secondary);
    cursor: pointer;
    font: inherit;
    font-size: .84rem;
    line-height: 1.45;
    padding: .55rem .75rem;
    text-align: left;
    transition: border-color .18s ease, color .18s ease;
}

.coach-suggestion:hover[b-iwksstib6m] {
    border-color: var(--accent);
    color: var(--text-primary);
}

.coach-turn[b-iwksstib6m] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.coach-role[b-iwksstib6m] {
    color: var(--text-quiet);
    font-size: .76rem;
    font-weight: 550;
}

.from-user .coach-role[b-iwksstib6m] {
    color: var(--accent);
}

.coach-text[b-iwksstib6m] {
    color: var(--text-secondary);
    font-size: .92rem;
    line-height: 1.72;
    margin: 0;
    /* The model writes real paragraphs; collapsing them would run the whole answer together. */
    white-space: pre-wrap;
}

.is-compact .coach-text[b-iwksstib6m] {
    font-size: .86rem;
    line-height: 1.65;
}

.from-user .coach-text[b-iwksstib6m] {
    color: var(--text-primary);
}

/* What the coach looked up, under its answer. Quiet on purpose: it is provenance, not content -
   but it stays visible, because it separates figures from this app's live data from figures the
   model wrote from memory. */
.coach-lookups[b-iwksstib6m] {
    border-left: 1px solid var(--border-subtle);
    color: var(--text-quiet);
    display: flex;
    flex-direction: column;
    font-size: .76rem;
    gap: .2rem;
    line-height: 1.5;
    list-style: none;
    margin: .45rem 0 0;
    padding: .1rem 0 .1rem .7rem;
}

/* Marks the answer as still being written, so a pause reads as "thinking", not as "finished". */
.coach-caret[b-iwksstib6m] {
    animation: coach-blink-b-iwksstib6m 1s steps(2, start) infinite;
    background: var(--accent);
    display: inline-block;
    height: .9em;
    margin-left: .15em;
    vertical-align: text-bottom;
    width: .5ch;
}

@keyframes coach-blink-b-iwksstib6m {
    to { visibility: hidden; }
}

.coach-composer[b-iwksstib6m] {
    align-items: center;
    border-top: 1px solid var(--border-subtle);
    display: flex;
    gap: .7rem;
    padding-top: 1rem;
}

.coach-composer input[b-iwksstib6m] {
    background: var(--surface-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    color: var(--text-primary);
    flex: 1;
    font: inherit;
    font-size: .9rem;
    min-width: 0;
    padding: .65rem .75rem;
}

.coach-composer input:focus[b-iwksstib6m] {
    border-color: var(--accent);
    outline: none;
}

.coach-send[b-iwksstib6m],
.coach-stop[b-iwksstib6m] {
    border-radius: var(--radius);
    cursor: pointer;
    font: inherit;
    font-size: .85rem;
    font-weight: 600;
    padding: .66rem 1rem;
    white-space: nowrap;
}

.coach-send[b-iwksstib6m] {
    background: var(--accent);
    border: 0;
    color: var(--on-accent);
}

.coach-send:hover:not(:disabled)[b-iwksstib6m] {
    background: var(--accent-bright);
}

.coach-send:disabled[b-iwksstib6m] {
    cursor: not-allowed;
    opacity: .45;
}

.coach-stop[b-iwksstib6m] {
    background: none;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
}

.coach-stop:hover[b-iwksstib6m] {
    border-color: var(--negative);
    color: var(--negative);
}

.coach-disclaimer[b-iwksstib6m] {
    color: var(--text-quiet);
    font-size: .74rem;
    line-height: 1.55;
    margin: 0;
}

@media (prefers-reduced-motion: reduce) {
    .coach-caret[b-iwksstib6m] {
        animation: none;
    }
}
/* /Shared/CoachLauncher.razor.rz.scp.css */
.coach-launcher[b-rm43oj65af] {
    bottom: 1.5rem;
    position: fixed;
    right: 1.5rem;
    z-index: 60;
}

/* Der Knopf: die eine leuchtende Stelle, die immer da ist. Rund, weil er als einziges
   Element frei über dem Inhalt schwebt und sich klar vom Raster darunter lösen soll. */
.coach-fab[b-rm43oj65af] {
    align-items: center;
    background: var(--accent);
    border: 0;
    border-radius: 50%;
    box-shadow: 0 12px 28px -12px rgb(0 0 0 / 45%);
    color: var(--on-accent);
    cursor: pointer;
    display: flex;
    height: 3.4rem;
    justify-content: center;
    transition: transform .18s ease, box-shadow .25s ease, background-color .18s ease;
    width: 3.4rem;
}

.coach-fab:hover[b-rm43oj65af] {
    background: var(--accent-bright);
    box-shadow: 0 14px 30px -12px rgb(0 0 0 / 50%);
    transform: translateY(-1px);
}

/* Above 900px the Dock (Shared/Dock.razor) has its own coach button in the rail; below it
   the Dock hides itself, so this one is the only way in and must stay visible. */
@media (min-width: 901px) {
    .coach-fab.is-dock-mode[b-rm43oj65af] {
        display: none;
    }
}

.coach-fab.is-open[b-rm43oj65af] {
    background: var(--surface-raised);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    box-shadow: 0 10px 30px rgb(0 0 0 / 35%), inset 0 0 0 1px var(--border-strong);
    color: var(--text-primary);
}

.coach-panel[b-rm43oj65af] {
    background: var(--surface-raised);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    bottom: 4.4rem;
    box-shadow: 0 24px 56px -24px rgb(0 0 0 / 50%);
    display: flex;
    flex-direction: column;
    gap: .9rem;
    height: min(38rem, calc(100vh - 8rem));
    padding: 1.1rem 1.1rem 1rem;
    position: absolute;
    right: 0;
    transform-origin: bottom right;
    width: min(25rem, calc(100vw - 2rem));
    /* Bewegung als Antwort auf den Klick: das Fenster wächst aus dem Knopf, statt einfach
       dazustehen - so bleibt sichtbar, woher es kam. */
    animation: coach-panel-in-b-rm43oj65af .2s cubic-bezier(.2, .8, .3, 1);
}

@keyframes coach-panel-in-b-rm43oj65af {
    from {
        opacity: 0;
        transform: translateY(8px) scale(.96);
    }
}

.coach-panel-head[b-rm43oj65af] {
    align-items: flex-start;
    border-bottom: 1px solid var(--border-subtle);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding-bottom: .8rem;
}

.coach-panel-head h2[b-rm43oj65af] {
    font-size: 1.35rem;
    margin: 0;
}

.coach-panel-head p[b-rm43oj65af] {
    color: var(--text-quiet);
    font-size: .78rem;
    margin: .15rem 0 0;
}

.coach-panel-tools[b-rm43oj65af] {
    align-items: center;
    display: flex;
    gap: .6rem;
}

.coach-panel-link[b-rm43oj65af] {
    color: var(--text-muted);
    font-size: .78rem;
    text-decoration: none;
}

.coach-panel-link:hover[b-rm43oj65af] {
    color: var(--text-primary);
}

.coach-panel-close[b-rm43oj65af] {
    align-items: center;
    background: none;
    border: 0;
    border-radius: var(--radius);
    color: var(--text-muted);
    cursor: pointer;
    display: flex;
    padding: .3rem;
}

.coach-panel-close:hover[b-rm43oj65af] {
    background: var(--surface-hover);
    color: var(--text-primary);
}

.coach-guest[b-rm43oj65af] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding-top: .3rem;
}

.coach-guest p[b-rm43oj65af] {
    color: var(--text-secondary);
    font-size: .9rem;
    line-height: 1.65;
    margin: 0;
}

.coach-guest .btn[b-rm43oj65af] {
    align-self: flex-start;
}

@media (max-width: 580px) {
    .coach-launcher[b-rm43oj65af] {
        bottom: 1rem;
        right: 1rem;
    }

    .coach-panel[b-rm43oj65af] {
        height: min(36rem, calc(100vh - 6.5rem));
    }
}

@media (prefers-reduced-motion: reduce) {
    .coach-panel[b-rm43oj65af] {
        animation: none;
    }
}
/* /Shared/Dock.razor.rz.scp.css */
.dock[b-fcd9y6a7ec] {
    position: fixed;
    right: 0;
    top: 4rem;
    bottom: 0;
    z-index: var(--z-sticky);
    display: flex;
}

.dock-rail[b-fcd9y6a7ec] {
    width: 3.4rem;
    background: var(--paper-raised);
    border-left: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    padding: .9rem 0 1rem;
}

.dock-avatar[b-fcd9y6a7ec] {
    display: block;
    border-radius: 50%;
}

.dock-sep[b-fcd9y6a7ec] {
    width: 1.4rem;
    height: 1px;
    background: var(--border-subtle);
    margin: .2rem 0;
}

.dock-spacer[b-fcd9y6a7ec] {
    flex: 1;
}

.dock-button[b-fcd9y6a7ec] {
    position: relative;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: var(--radius);
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dock-button:hover[b-fcd9y6a7ec] {
    background: var(--surface-hover);
    color: var(--text-primary);
}

.dock-button.is-active[b-fcd9y6a7ec] {
    background: var(--accent);
    color: var(--on-accent);
}

.dock-button.dock-coach[b-fcd9y6a7ec] {
    border-radius: 50%;
    background: var(--accent);
    color: var(--on-accent);
}

.dock-button.dock-coach:hover[b-fcd9y6a7ec] {
    background: var(--accent-bright);
}

.dock-badge[b-fcd9y6a7ec] {
    position: absolute;
    top: -.2rem;
    right: -.2rem;
    min-width: 1.1rem;
    height: 1.1rem;
    padding: 0 .3rem;
    border-radius: .55rem;
    background: var(--accent);
    color: var(--on-accent);
    font-size: .64rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dock-panel[b-fcd9y6a7ec] {
    width: 21.5rem;
    background: var(--paper-raised);
    border-left: 1px solid var(--border-subtle);
    box-shadow: -1.5rem 0 3rem rgba(0, 0, 0, .35);
    overflow-y: auto;
    padding: 1.2rem;
}

/* FriendsRail's narrow mode assumes it is its own sticky page column (position:sticky,
   height:100vh, fixed width) - here it is already inside a sized, scrollable dock-panel,
   so those would fight the panel's own layout instead of just filling it. */
.dock-panel .friends[b-fcd9y6a7ec] {
    position: static;
    height: auto;
    width: 100%;
    border-left: 0;
    padding: 0;
}

/* Matches MainLayout.razor.css's own .topbar breakpoint: below it the header's height is no
   longer the fixed 4rem this rail's `top` assumes. */
@media (max-width: 900px) {
    .dock[b-fcd9y6a7ec] {
        display: none;
    }
}
/* /Shared/ElliottWaveTree.razor.rz.scp.css */
.wave-tree[b-gqgcxobxnh] { list-style: none; padding: 0; margin: .7rem 0 0; min-width: 0; }
.wave-tree > li + li[b-gqgcxobxnh] { margin-top: .4rem; }
.wave-node[b-gqgcxobxnh] { border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); background: var(--surface-inset); min-width: 0; overflow: hidden; }
summary[b-gqgcxobxnh] { cursor: pointer; padding: .8rem 1rem; color: var(--text-secondary); font-size: .78rem; line-height: 1.8; overflow-wrap: anywhere; }
summary[b-gqgcxobxnh]::marker { color: var(--text-quiet); }
.wave-name[b-gqgcxobxnh] { color: var(--text-primary); font-weight: 600; }
.wave-degree[b-gqgcxobxnh], .wave-state[b-gqgcxobxnh] { color: var(--text-muted); font-weight: 400; }
.wave-direction[b-gqgcxobxnh], .wave-ratio[b-gqgcxobxnh], .wave-state[b-gqgcxobxnh] { margin-left: .9rem; }
.wave-ratio[b-gqgcxobxnh] { color: var(--text-secondary); font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.wave-detail[b-gqgcxobxnh] { border-top: 1px solid var(--border-subtle); padding: .8rem 1rem; font-size: .78rem; color: var(--text-secondary); overflow-wrap: anywhere; }
.wave-detail p[b-gqgcxobxnh] { margin: .6rem 0; line-height: 1.65; }
.wave-meta[b-gqgcxobxnh] { display: flex; align-items: center; justify-content: space-between; gap: .7rem; flex-wrap: wrap; color: var(--text-muted); font-size: .72rem; }
.wave-meta button[b-gqgcxobxnh] { background: transparent; color: var(--text-primary); border: 1px solid var(--border-strong); border-radius: var(--radius-pill); font: inherit; padding: .45rem .9rem; cursor: pointer; min-height: 36px; }
.wave-meta button:hover[b-gqgcxobxnh] { border-color: var(--text-muted); }
summary:focus-visible[b-gqgcxobxnh], button:focus-visible[b-gqgcxobxnh] { outline: 2px solid var(--accent); outline-offset: 3px; }
.wave-caveat[b-gqgcxobxnh] { color: var(--text-muted); }
.wave-reason[b-gqgcxobxnh] { color: var(--text-primary); }
.wave-structure[b-gqgcxobxnh] { color: var(--text-primary); }
.wave-manifest[b-gqgcxobxnh] { margin: .7rem 0 0; font-size: .72rem; line-height: 1.6; color: var(--text-muted); overflow-wrap: anywhere; }
.wave-manifest code[b-gqgcxobxnh] { font-family: var(--font-mono); color: var(--text-secondary); }
@media (max-width: 600px) {
    summary[b-gqgcxobxnh] { padding: .65rem .8rem; }
    .wave-direction[b-gqgcxobxnh], .wave-ratio[b-gqgcxobxnh], .wave-state[b-gqgcxobxnh] { display: block; margin-left: 1rem; }
    .wave-detail[b-gqgcxobxnh] { padding: .5rem .8rem; }
    .wave-meta button[b-gqgcxobxnh] { min-height: 44px; }
}
/* /Shared/FriendsRail.razor.rz.scp.css */
/* Die Leiste steht auf dem Grund, getrennt durch eine Haarlinie - wie die Navigation links.
   Keine Karten: jede Gruppe ist eine Liste, getrennt durch Abstand, nicht durch Kästen. */
.friends[b-jc19bf0bu6] {
    border-left: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    height: 100vh;
    overflow-y: auto;
    /* Unten Platz lassen: der Coach-Knopf schwebt in dieser Ecke. */
    padding: 1.4rem 1.2rem 6rem;
    position: sticky;
    top: 0;
    width: 17.5rem;
}

.friends.is-wide[b-jc19bf0bu6] {
    border-left: 0;
    height: auto;
    max-width: 34rem;
    overflow: visible;
    padding: 0 0 2rem;
    position: static;
    width: 100%;
}

.friends-head[b-jc19bf0bu6] {
    align-items: baseline;
    display: flex;
    gap: .6rem;
}

.friends-head h2[b-jc19bf0bu6] {
    font-size: 1.45rem;
    margin: 0;
}

.friends-count[b-jc19bf0bu6] {
    color: var(--text-quiet);
    font-size: .8rem;
}

.friends-note[b-jc19bf0bu6],
.friends-empty[b-jc19bf0bu6] {
    color: var(--text-muted);
    font-size: .84rem;
    line-height: 1.6;
    margin: 0;
}

.friends-hint[b-jc19bf0bu6] {
    border-left: 1px solid var(--accent);
    color: var(--text-muted);
    font-size: .8rem;
    line-height: 1.55;
    margin: 0;
    padding: .1rem 0 .1rem .7rem;
}

.friends-hint a[b-jc19bf0bu6] {
    display: inline-block;
    margin-top: .15rem;
}

.friends-block h3[b-jc19bf0bu6],
.friends-add h3[b-jc19bf0bu6] {
    color: var(--text-quiet);
    font-family: var(--font-body);
    font-size: .76rem;
    font-weight: 550;
    letter-spacing: 0;
    margin: 0 0 .5rem;
}

.friends-list[b-jc19bf0bu6] {
    display: flex;
    flex-direction: column;
    list-style: none;
    margin: 0;
    padding: 0;
}

.friend-row[b-jc19bf0bu6],
.friend-request[b-jc19bf0bu6] {
    align-items: center;
    border-radius: var(--radius);
    display: grid;
    gap: .7rem;
    grid-template-columns: 2.1rem minmax(0, 1fr) auto;
    padding: .45rem .4rem;
}

.friend-row[b-jc19bf0bu6] {
    color: inherit;
    text-decoration: none;
    transition: background-color .15s ease;
}

.friend-row:hover[b-jc19bf0bu6] {
    background: var(--surface-hover);
}

.friend-row:hover .friend-chevron[b-jc19bf0bu6] {
    color: var(--accent);
    transform: translateX(2px);
}

.friend-meta[b-jc19bf0bu6] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.friend-name[b-jc19bf0bu6] {
    font-size: .88rem;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.friend-sub[b-jc19bf0bu6] {
    color: var(--text-quiet);
    font-size: .76rem;
}

.friend-chevron[b-jc19bf0bu6] {
    color: var(--text-quiet);
    transition: color .15s ease, transform .15s ease;
}

.friend-request[b-jc19bf0bu6] {
    grid-template-columns: 2.1rem minmax(0, 1fr);
    padding-inline: 0;
}

.request-actions[b-jc19bf0bu6] {
    display: flex;
    gap: .4rem;
    grid-column: 2;
}

.friend-request.is-outgoing[b-jc19bf0bu6] {
    grid-template-columns: 2.1rem minmax(0, 1fr) auto;
}

.request-accept[b-jc19bf0bu6],
.request-decline[b-jc19bf0bu6],
.request-withdraw[b-jc19bf0bu6] {
    background: none;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius);
    color: var(--text-secondary);
    cursor: pointer;
    font: inherit;
    font-size: .76rem;
    font-weight: 550;
    padding: .34rem .6rem;
}

.request-accept[b-jc19bf0bu6] {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--on-accent);
}

.request-accept:hover:not(:disabled)[b-jc19bf0bu6] {
    background: var(--accent-bright);
}

.request-decline:hover:not(:disabled)[b-jc19bf0bu6],
.request-withdraw:hover:not(:disabled)[b-jc19bf0bu6] {
    border-color: var(--text-primary);
    color: var(--text-primary);
}

.request-accept:disabled[b-jc19bf0bu6],
.request-decline:disabled[b-jc19bf0bu6],
.request-withdraw:disabled[b-jc19bf0bu6] {
    cursor: not-allowed;
    opacity: .5;
}

.request-withdraw[b-jc19bf0bu6] {
    border: 0;
    color: var(--text-quiet);
    padding-inline: .2rem;
}

.friends-add[b-jc19bf0bu6] {
    border-top: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: .7rem;
    margin-top: auto;
    padding-top: 1.1rem;
}

.friends.is-wide .friends-add[b-jc19bf0bu6] {
    margin-top: .5rem;
}

.my-code[b-jc19bf0bu6] {
    align-items: baseline;
    display: grid;
    gap: .15rem .6rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.my-code-label[b-jc19bf0bu6] {
    color: var(--text-quiet);
    font-size: .74rem;
    grid-column: 1 / -1;
}

.my-code-value[b-jc19bf0bu6] {
    color: var(--accent);
    font-size: 1.12rem;
    letter-spacing: .06em;
}

.my-code-copy[b-jc19bf0bu6] {
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
    font: inherit;
    font-size: .76rem;
    padding: 0;
}

.my-code-copy:hover[b-jc19bf0bu6] {
    color: var(--text-primary);
}

.add-form[b-jc19bf0bu6] {
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

.add-form input[b-jc19bf0bu6] {
    background: var(--surface-inset);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    color: var(--text-primary);
    font-family: var(--font-mono);
    font-size: .88rem;
    letter-spacing: .05em;
    padding: .58rem .65rem;
    text-transform: uppercase;
}

.add-form input[b-jc19bf0bu6]::placeholder {
    font-family: var(--font-body);
    letter-spacing: 0;
    text-transform: none;
}

.add-form input:focus[b-jc19bf0bu6] {
    border-color: var(--accent);
    outline: none;
}

.add-form button[b-jc19bf0bu6] {
    background: none;
    border: 1px solid var(--accent);
    border-radius: var(--radius);
    color: var(--accent);
    cursor: pointer;
    font: inherit;
    font-size: .82rem;
    font-weight: 600;
    padding: .55rem .8rem;
}

.add-form button:hover:not(:disabled)[b-jc19bf0bu6] {
    background: var(--accent-soft);
}

.add-form button:disabled[b-jc19bf0bu6] {
    border-color: var(--border-subtle);
    color: var(--text-quiet);
    cursor: not-allowed;
}

.add-feedback[b-jc19bf0bu6] {
    color: var(--text-muted);
    font-size: .78rem;
    line-height: 1.55;
    margin: 0;
    min-height: 1.2em;
}

.add-feedback.is-ok[b-jc19bf0bu6] {
    color: var(--positive);
}

.add-feedback.is-error[b-jc19bf0bu6] {
    color: var(--negative);
}
/* /Shared/GodLayerCandidatePanel.razor.rz.scp.css */
.mono-number[b-dhej4kp2gj] {
    font-variant-numeric: tabular-nums;
}

.glc-panel[b-dhej4kp2gj] {
    background: var(--surface-raised);
    backdrop-filter: var(--glass-blur);
    -webkit-backdrop-filter: var(--glass-blur);
    border: 1px solid var(--border-subtle);
    color: var(--text-secondary);
    display: flex;
    flex-direction: column;
    gap: .9rem;
    padding: clamp(1rem, 2.5vw, 1.5rem);
    min-width: 0;
    overflow-wrap: anywhere;
}

.glc-head[b-dhej4kp2gj] {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1rem;
    justify-content: space-between;
}

.glc-head h2[b-dhej4kp2gj] { color: var(--text-primary); font-size: clamp(1rem, 2.4vw, 1.2rem); margin: 0; }
.glc-eyebrow[b-dhej4kp2gj] { color: var(--text-quiet); font-size: .65rem; letter-spacing: .1em; margin: 0 0 .35rem; text-transform: uppercase; }

.glc-status[b-dhej4kp2gj] {
    border: 1px solid var(--border-strong);
    font-size: .72rem;
    font-weight: 600;
    padding: .3rem .6rem;
}

.glc-status-reviewable[b-dhej4kp2gj] { border-color: var(--accent); color: var(--accent); }
.glc-status-watching[b-dhej4kp2gj] { color: var(--text-secondary); }
.glc-status-none[b-dhej4kp2gj] { color: var(--text-quiet); }

.glc-intro[b-dhej4kp2gj] { color: var(--text-muted); font-size: .8rem; line-height: 1.65; margin: 0; }
.glc-state[b-dhej4kp2gj] { color: var(--text-quiet); font-size: .8rem; margin: 0; }
.glc-error[b-dhej4kp2gj] { border-left: 2px solid var(--negative); color: var(--negative); font-size: .8rem; line-height: 1.6; margin: 0; padding-left: .75rem; }

.glc-match[b-dhej4kp2gj] { display: flex; flex-direction: column; gap: .8rem; }

.glc-match-row[b-dhej4kp2gj] {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .8rem;
}

.glc-dir[b-dhej4kp2gj] { font-weight: 700; font-size: .85rem; }
.glc-dir-up[b-dhej4kp2gj] { color: var(--positive); }
.glc-dir-down[b-dhej4kp2gj] { color: var(--negative); }
.glc-tf[b-dhej4kp2gj] { color: var(--text-quiet); font-size: .72rem; }
.glc-pair[b-dhej4kp2gj] { color: var(--text-secondary); font-size: .85rem; }

.glc-match h3[b-dhej4kp2gj] {
    color: var(--text-primary);
    font-size: .78rem;
    margin: 0 0 .35rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.glc-targets ul[b-dhej4kp2gj], .glc-evidence ul[b-dhej4kp2gj], .glc-counter ul[b-dhej4kp2gj], .glc-notes[b-dhej4kp2gj] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    font-size: .8rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.glc-sources[b-dhej4kp2gj] { color: var(--text-quiet); font-size: .72rem; margin-left: .4rem; }

/* The cluster range is a convenience envelope (plan §7.2.5) - its two original, possibly
   narrower source intervals stay visible underneath it, never just the merged number alone. */
.glc-target-sources[b-dhej4kp2gj] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    font-size: .76rem;
    list-style: none;
    margin: .3rem 0 0 .2rem;
    padding: 0 0 0 .6rem;
    border-left: 2px solid var(--border-subtle);
}

.glc-source-tag[b-dhej4kp2gj] {
    background: var(--border-subtle);
    color: var(--text-muted);
    font-size: .68rem;
    font-weight: 600;
    margin-right: .4rem;
    padding: .1rem .35rem;
    text-transform: uppercase;
}

.glc-invalidation p[b-dhej4kp2gj] { margin: 0 0 .25rem; font-size: .8rem; }
.glc-counter li[b-dhej4kp2gj] { color: var(--text-muted); }

.glc-context[b-dhej4kp2gj] { border-top: 1px solid var(--border-subtle); padding-top: .8rem; }
.glc-context h3[b-dhej4kp2gj] { color: var(--text-primary); font-size: .78rem; margin: 0 0 .5rem; text-transform: uppercase; letter-spacing: .04em; }

.glc-context-grid[b-dhej4kp2gj] {
    column-gap: 1rem;
    display: grid;
    font-size: .8rem;
    grid-template-columns: auto auto;
    row-gap: .3rem;
    width: fit-content;
}

.glc-context-grid span:nth-child(odd)[b-dhej4kp2gj] { color: var(--text-quiet); }

.glc-notes[b-dhej4kp2gj] {
    border-top: 1px solid var(--border-subtle);
    color: var(--text-quiet);
    font-size: .72rem;
    line-height: 1.6;
    padding-top: .6rem;
}

.glc-evidence summary[b-dhej4kp2gj], .glc-counter summary[b-dhej4kp2gj] {
    color: var(--text-primary);
    cursor: pointer;
    font-size: .78rem;
    font-weight: 600;
    padding: .4rem 0;
}
.glc-evidence summary span[b-dhej4kp2gj], .glc-counter summary span[b-dhej4kp2gj] { color: var(--text-muted); font-size: .68rem; font-weight: 400; margin-left: .4rem; }
.glc-evidence summary:focus-visible[b-dhej4kp2gj], .glc-counter summary:focus-visible[b-dhej4kp2gj] { outline: 2px solid var(--accent); outline-offset: 3px; }
.glc-entry-boundary[b-dhej4kp2gj] { border-left: 2px solid var(--accent); color: var(--text-muted); font-size: .7rem; line-height: 1.6; margin: 0; padding-left: .7rem; }
.glc-entry-boundary strong[b-dhej4kp2gj] { color: var(--text-primary); display: block; font-size: .65rem; letter-spacing: .04em; text-transform: uppercase; }
.glc-provenance[b-dhej4kp2gj] { color: var(--text-muted); font-size: .62rem; line-height: 1.6; margin: 0; overflow-wrap: anywhere; }

.glc-accept[b-dhej4kp2gj] {
    border-top: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding-top: .8rem;
}

.glc-note-label[b-dhej4kp2gj] { color: var(--text-quiet); font-size: .68rem; margin: 0; }

.glc-note[b-dhej4kp2gj] {
    background: none;
    border: 1px solid var(--border-strong);
    color: var(--text-primary);
    font: inherit;
    font-size: .78rem;
    min-height: 3.2rem;
    padding: .5rem .6rem;
    resize: vertical;
    width: 100%;
    box-sizing: border-box;
}

.glc-note:focus-visible[b-dhej4kp2gj] { outline: 2px solid var(--accent); outline-offset: 2px; }

.glc-accept-btn[b-dhej4kp2gj] {
    align-self: flex-start;
    background: var(--accent);
    border: 0;
    color: var(--app-background);
    cursor: pointer;
    font: inherit;
    font-size: .78rem;
    font-weight: 600;
    padding: .55rem 1.1rem;
}

.glc-accept-btn:hover:not(:disabled)[b-dhej4kp2gj] { background: var(--accent-bright); }
.glc-accept-btn:disabled[b-dhej4kp2gj] { cursor: not-allowed; opacity: .55; }
.glc-accept-btn:focus-visible[b-dhej4kp2gj] { outline: 2px solid var(--accent); outline-offset: 2px; }

.glc-accept-done[b-dhej4kp2gj] { color: var(--positive); font-size: .8rem; margin: 0; }
.glc-accept-done a[b-dhej4kp2gj] { color: inherit; text-decoration: underline; }
.glc-workspace[b-dhej4kp2gj] { background: transparent; backdrop-filter: none; border: 0; border-top: 3px solid var(--pro-gold, var(--accent)); gap: .85rem; padding: 1rem 0 0; }
.glc-workspace .glc-head[b-dhej4kp2gj] { align-items: center; }
.glc-workspace .glc-eyebrow[b-dhej4kp2gj] { color: var(--accent); }
.glc-workspace h2[b-dhej4kp2gj] { font-family: var(--pro-display, var(--font-display)); font-size: clamp(1.3rem, 2vw, 1.7rem); letter-spacing: -.045em; line-height: 1.05; }
.glc-workspace .glc-status[b-dhej4kp2gj] { font-size: .65rem; letter-spacing: .06em; text-transform: uppercase; }
.glc-workspace .glc-match[b-dhej4kp2gj] { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(13rem, .9fr); grid-template-areas: "pair pair pair" "targets invalidation accept" "entry entry accept" "evidence counter accept"; gap: .7rem 1.2rem; }
.glc-workspace .glc-match > *[b-dhej4kp2gj] { min-width: 0; }
.glc-workspace .glc-match-row[b-dhej4kp2gj] { grid-area: pair; border-block: 1px solid var(--border-subtle); padding: .5rem 0; }
.glc-workspace .glc-targets[b-dhej4kp2gj] { grid-area: targets; }
.glc-workspace .glc-invalidation[b-dhej4kp2gj] { grid-area: invalidation; }
.glc-workspace .glc-entry-boundary[b-dhej4kp2gj] { grid-area: entry; }
.glc-workspace .glc-accept[b-dhej4kp2gj] { grid-area: accept; border-top: 0; border-left: 1px solid var(--border-subtle); padding: 0 0 0 1rem; }
.glc-workspace .glc-evidence[b-dhej4kp2gj] { grid-area: evidence; }
.glc-workspace .glc-counter[b-dhej4kp2gj] { grid-area: counter; }
.glc-workspace .glc-pair[b-dhej4kp2gj] { font-size: .75rem; line-height: 1.6; }
.glc-workspace .glc-targets > ul > li[b-dhej4kp2gj] { border-bottom: 1px solid var(--border-subtle); padding: .5rem 0 .6rem; }
.glc-workspace .glc-targets > ul > li > .mono-number[b-dhej4kp2gj] { color: var(--text-primary); display: block; font-family: var(--pro-display, var(--font-display)); font-size: 1.15rem; font-weight: 600; letter-spacing: -.04em; overflow-wrap: anywhere; }
.glc-workspace .glc-sources[b-dhej4kp2gj] { display: block; line-height: 1.6; margin: .25rem 0 0; }
.glc-workspace .glc-targets h3[b-dhej4kp2gj], .glc-workspace .glc-invalidation h3[b-dhej4kp2gj] { color: var(--accent); font-size: .65rem; }
.glc-workspace .glc-invalidation p[b-dhej4kp2gj] { font-size: .73rem; line-height: 1.65; }
.glc-workspace .glc-evidence[b-dhej4kp2gj], .glc-workspace .glc-counter[b-dhej4kp2gj] { border-top: 1px solid var(--border-subtle); }
.glc-workspace .glc-evidence li[b-dhej4kp2gj], .glc-workspace .glc-counter li[b-dhej4kp2gj] { font-size: .73rem; line-height: 1.65; padding-top: .3rem; }
.glc-workspace .glc-context-grid[b-dhej4kp2gj] { font-size: .72rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); width: 100%; }
.glc-workspace .glc-context-grid span[b-dhej4kp2gj] { overflow-wrap: anywhere; }
.glc-workspace .glc-notes[b-dhej4kp2gj] { font-size: .65rem; }
.glc-notes-details summary[b-dhej4kp2gj] { color: var(--text-muted); cursor: pointer; font-size: .72rem; min-height: 32px; padding-block: .4rem; }
.glc-notes-details summary span[b-dhej4kp2gj] { font-size: .65rem; margin-left: .5rem; }
.glc-notes-details summary:focus-visible[b-dhej4kp2gj] { outline: 2px solid var(--accent); outline-offset: 3px; }
@media (max-width: 850px) {
    .glc-workspace .glc-match[b-dhej4kp2gj] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "pair pair" "targets invalidation" "entry entry" "accept accept" "evidence counter"; }
    .glc-workspace .glc-accept[b-dhej4kp2gj] { border-left: 0; border-top: 1px solid var(--border-subtle); padding: .7rem 0 0; }
}
@media (max-width: 480px) {
    .glc-workspace .glc-match[b-dhej4kp2gj] { grid-template-columns: minmax(0, 1fr); grid-template-areas: "pair" "targets" "invalidation" "entry" "accept" "evidence" "counter"; }
    .glc-context-grid[b-dhej4kp2gj] { width: 100%; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
@media (pointer: coarse) {
    .glc-accept-btn[b-dhej4kp2gj], .glc-evidence summary[b-dhej4kp2gj], .glc-counter summary[b-dhej4kp2gj], .glc-notes-details summary[b-dhej4kp2gj] { min-height: 44px; }
}
/* /Shared/GodLayerContextPanel.razor.rz.scp.css */
.gl-panel[b-pxhuhi6k0p] {
    --gl-gold: var(--accent);
    --gl-text: var(--text-primary);
    --gl-muted: var(--text-muted);
    --gl-border: color-mix(in srgb, var(--accent) 22%, transparent);
    background: var(--surface-raised);
    border: 1px solid var(--gl-border);
    color: var(--gl-text);
    min-width: 0;
    padding: clamp(1rem, 2.5vw, 1.75rem);
}
.gl-head[b-pxhuhi6k0p] { display: flex; align-items: baseline; flex-wrap: wrap; justify-content: space-between; gap: .7rem 1rem; }
.gl-head h2[b-pxhuhi6k0p] { font-size: clamp(1.1rem, 2.8vw, 1.4rem); margin: 0; }
.gl-eyebrow[b-pxhuhi6k0p] { color: var(--gl-gold); font-size: .65rem; letter-spacing: .13em; margin: 0 0 .5rem; text-transform: uppercase; }
.gl-preview-label[b-pxhuhi6k0p] { border: 1px solid var(--gl-border); color: var(--gl-gold); font-size: .7rem; padding: .3rem .5rem; }
.gl-intro[b-pxhuhi6k0p] { color: var(--gl-muted); font-size: .8rem; line-height: 1.65; margin: .9rem 0 1rem; }
.gl-preview > summary[b-pxhuhi6k0p] { border-top: 1px solid var(--gl-border); color: var(--gl-gold); cursor: pointer; font-size: .85rem; line-height: 1.65; overflow-wrap: anywhere; padding: 1rem 0; }
.gl-summary-state[b-pxhuhi6k0p] { color: var(--gl-muted); display: inline-block; font-size: .72rem; margin-left: .8rem; }
.gl-body[b-pxhuhi6k0p] { display: flex; flex-direction: column; gap: 1rem; min-width: 0; padding-top: .4rem; }
.gl-actions[b-pxhuhi6k0p] { align-items: center; display: flex; flex-wrap: wrap; gap: .65rem 1rem; }
.gl-actions button[b-pxhuhi6k0p] { background: var(--gl-gold); border: 1px solid var(--gl-gold); color: var(--on-accent); cursor: pointer; font: inherit; font-size: .8rem; font-weight: 650; min-height: 2.75rem; padding: .6rem 1rem; transition: background .15s ease; }
.gl-actions button:hover:not(:disabled)[b-pxhuhi6k0p] { background: var(--accent-bright); }
.gl-actions button:disabled[b-pxhuhi6k0p] { cursor: not-allowed; opacity: .55; }
.gl-actions button:focus-visible[b-pxhuhi6k0p], .gl-preview > summary:focus-visible[b-pxhuhi6k0p] { outline: 2px solid var(--gl-gold); outline-offset: 4px; }
.gl-note[b-pxhuhi6k0p], .gl-state[b-pxhuhi6k0p] { color: var(--gl-muted); font-size: .75rem; line-height: 1.65; margin: 0; overflow-wrap: anywhere; }
.gl-error[b-pxhuhi6k0p] { border-left: 2px solid var(--negative); color: var(--negative); font-size: .8rem; line-height: 1.65; margin: 0; padding-left: .8rem; }
.gl-sr-only[b-pxhuhi6k0p] { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 600px) {
    .gl-summary-state[b-pxhuhi6k0p] { display: block; margin-left: 1rem; }
    .gl-actions button[b-pxhuhi6k0p] { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .gl-panel *[b-pxhuhi6k0p], .gl-panel *[b-pxhuhi6k0p]::before, .gl-panel *[b-pxhuhi6k0p]::after { animation: none; transition: none; }
}
/* /Shared/GodLayerContextReport.razor.rz.scp.css */
.gl-report[b-2fee933769] { display: grid; gap: 1.2rem; min-width: 0; }
.gl-overview[b-2fee933769] { align-items: center; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--gl-border); padding-top: 1.25rem; }
.gl-instrument[b-2fee933769] { display: grid; gap: .3rem; min-width: 0; overflow-wrap: anywhere; }
.gl-symbol[b-2fee933769] { color: var(--gl-text); font-size: 1.75rem; font-weight: 650; letter-spacing: -.05em; line-height: 1; }
.gl-instrument > span:not(.gl-symbol)[b-2fee933769] { color: var(--gl-muted); font-size: .82rem; }
.gl-instrument small[b-2fee933769] { color: var(--gl-muted); font-size: .7rem; }
.gl-coverage[b-2fee933769] { border-left: 2px solid var(--gl-gold); display: grid; gap: .35rem; padding-left: .85rem; }
.gl-coverage strong[b-2fee933769] { color: var(--gl-gold); font-size: .85rem; font-weight: 550; }
.gl-coverage span[b-2fee933769] { color: var(--gl-muted); font-size: .72rem; }
.gl-notice[b-2fee933769] { background: color-mix(in srgb, var(--accent) 5%, transparent); border-left: 2px solid var(--gl-gold); color: var(--gl-gold); font-size: .76rem; line-height: 1.7; margin: 0; padding: .7rem .85rem; }
.gl-notice-blocked[b-2fee933769] { border-left-color: var(--negative); color: var(--negative); }
.gl-basis-note[b-2fee933769] { color: var(--gl-muted); font-size: .7rem; line-height: 1.65; margin: -.45rem 0 0; }
.gl-timeframe-picker[b-2fee933769] { display: grid; gap: .5rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gl-timeframe-picker button[b-2fee933769] { background: color-mix(in srgb, var(--text-primary) 2%, transparent); border: 1px solid var(--gl-border); color: var(--gl-text); cursor: pointer; display: grid; font: inherit; gap: .4rem; min-height: 4rem; min-width: 0; padding: .8rem .9rem; text-align: left; transition: background .15s ease, border-color .15s ease; }
.gl-timeframe-picker button > span[b-2fee933769] { font-size: .85rem; font-weight: 600; }
.gl-timeframe-picker small[b-2fee933769] { color: var(--gl-muted); font-size: .65rem; line-height: 1.5; }
.gl-timeframe-picker button:hover[b-2fee933769] { background: color-mix(in srgb, var(--accent) 8%, transparent); }
.gl-timeframe-picker .is-selected[b-2fee933769] { background: color-mix(in srgb, var(--accent) 10%, transparent); border-color: var(--gl-gold); box-shadow: inset 0 2px var(--gl-gold); }
.gl-timeframe-picker small.gl-unavailable[b-2fee933769], .gl-unavailable[b-2fee933769] { color: var(--negative); }
.gl-timeframe-picker button:focus-visible[b-2fee933769], summary:focus-visible[b-2fee933769] { outline: 2px solid var(--gl-gold); outline-offset: 3px; }
.gl-context[b-2fee933769] { display: grid; gap: .7rem; min-width: 0; }
.gl-context-heading[b-2fee933769] { align-items: baseline; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; padding-top: .3rem; }
.gl-context-heading h3[b-2fee933769] { color: var(--gl-text); font-size: 1rem; margin: 0; }
.gl-context-heading > span[b-2fee933769] { color: var(--gl-muted); font-size: .7rem; line-height: 1.6; }
.gl-source-status[b-2fee933769] { color: var(--gl-gold); font-size: .7rem; line-height: 1.65; margin: 0; overflow-wrap: anywhere; }
.gl-micro-note[b-2fee933769] { color: var(--gl-muted); font-size: .66rem; line-height: 1.65; margin: 0; }
.gl-metrics[b-2fee933769] { display: grid; gap: .65rem; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: .25rem 0; min-width: 0; }
.gl-metric[b-2fee933769] { background: linear-gradient(150deg, color-mix(in srgb, var(--text-primary) 4%, transparent), transparent 75%); border: 1px solid var(--gl-border); display: flex; flex-direction: column; min-width: 0; padding: 1rem; }
.gl-metric h4[b-2fee933769] { color: var(--gl-muted); font-size: .7rem; font-weight: 500; line-height: 1.65; margin: 0 0 .9rem; }
.gl-metric h4 span[b-2fee933769] { color: var(--gl-gold); font-size: .65rem; }
.gl-metric-value[b-2fee933769] { color: var(--gl-text); font-size: clamp(1.25rem, 2.2vw, 1.85rem); font-variant-numeric: tabular-nums; letter-spacing: -.05em; line-height: 1.2; margin: 0 0 .9rem; overflow-wrap: anywhere; }
.gl-metric-value small[b-2fee933769] { color: var(--gl-muted); display: block; font-size: .65rem; letter-spacing: 0; margin-top: .4rem; }
.gl-metric-subtitle[b-2fee933769] { color: var(--gl-muted); font-size: .65rem; margin: -.4rem 0 .9rem; }
.gl-metric dl[b-2fee933769] { display: grid; gap: .5rem; margin: 0 0 .7rem; }
.gl-metric dl > div[b-2fee933769] { display: grid; gap: .2rem; }
.gl-metric dt[b-2fee933769] { color: var(--gl-muted); font-size: .65rem; }
.gl-metric dd[b-2fee933769] { color: var(--gl-text); font-size: .85rem; font-variant-numeric: tabular-nums; margin: 0; overflow-wrap: anywhere; }
.gl-metric .gl-ema-values dd[b-2fee933769] { font-size: 1.1rem; letter-spacing: -.02em; }
.gl-metric-caption[b-2fee933769] { color: var(--gl-muted); font-size: .65rem; line-height: 1.65; margin: auto 0 0; padding-top: .65rem; }
.gl-cross[b-2fee933769] { color: var(--gl-gold); font-size: .7rem; line-height: 1.65; margin: .2rem 0 .5rem; }
.gl-empty-frame[b-2fee933769] { background: color-mix(in srgb, var(--text-primary) 2%, transparent); border: 1px solid var(--gl-border); padding: 1rem; min-width: 0; }
.gl-empty-frame h3[b-2fee933769] { font-size: .9rem; margin: 0 0 .8rem; }
.gl-empty-frame > p[b-2fee933769] { font-size: .76rem; line-height: 1.7; margin: .5rem 0 0; }
.gl-audit[b-2fee933769] { display: grid; min-width: 0; }
.gl-fold[b-2fee933769] { border-top: 1px solid var(--gl-border); min-width: 0; }
.gl-fold > summary[b-2fee933769] { color: var(--gl-text); cursor: pointer; font-size: .8rem; line-height: 1.65; overflow-wrap: anywhere; padding: .9rem 0; }
.gl-fold > summary > span[b-2fee933769] { color: var(--gl-muted); display: inline-block; font-size: .65rem; margin-left: .75rem; }
.gl-fold > .gl-note[b-2fee933769] { margin: .2rem 0 .7rem; }
.gl-note[b-2fee933769] { color: var(--gl-muted); font-size: .7rem; line-height: 1.7; margin: 0; overflow-wrap: anywhere; }
.gl-issues[b-2fee933769] { display: grid; gap: .8rem; list-style: none; margin: .3rem 0 1rem; padding: 0; }
.gl-issues li[b-2fee933769] { border-left: 2px solid var(--gl-border); display: grid; font-size: .75rem; gap: .35rem; line-height: 1.65; overflow-wrap: anywhere; padding-left: .8rem; }
.gl-issues strong[b-2fee933769] { font-weight: 500; }
.gl-issues .gl-blocking-issue[b-2fee933769] { border-left-color: var(--negative); }
.gl-issue-kind[b-2fee933769] { color: var(--gl-gold); font-size: .68rem; }
.gl-blocking-issue .gl-issue-kind[b-2fee933769] { color: var(--negative); }
.gl-raw-issue[b-2fee933769] { color: var(--gl-muted); font-size: .65rem; }
.gl-raw-issue summary[b-2fee933769] { cursor: pointer; padding: .3rem 0; }
.gl-raw-issue p[b-2fee933769] { font-size: .7rem; margin: .3rem 0 .5rem; }
.gl-values[b-2fee933769], .gl-manifest[b-2fee933769] { display: grid; gap: .7rem; margin: .5rem 0 1rem; min-width: 0; }
.gl-values > div[b-2fee933769] { align-items: baseline; display: grid; gap: .4rem 1rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.gl-values dt[b-2fee933769], .gl-manifest dt[b-2fee933769] { color: var(--gl-muted); font-size: .7rem; line-height: 1.65; }
.gl-values dd[b-2fee933769], .gl-manifest dd[b-2fee933769] { font-size: .76rem; font-variant-numeric: tabular-nums; line-height: 1.65; margin: 0; overflow-wrap: anywhere; }
.gl-values dd[b-2fee933769] { text-align: right; }
.gl-manifest dt[b-2fee933769] { margin-bottom: .25rem; }
.gl-manifest code[b-2fee933769] { font-size: .7rem; }
.gl-hash[b-2fee933769] { word-break: break-all; }
.gl-timestamp[b-2fee933769] { display: block; font-size: .7rem; font-variant-numeric: tabular-nums; line-height: 1.65; overflow-wrap: anywhere; }
.gl-timestamp small[b-2fee933769] { color: var(--gl-muted); display: block; font-size: .65rem; }
.gl-table[b-2fee933769] { border-collapse: collapse; color: var(--gl-text); font-size: .7rem; margin: .7rem 0 1rem; table-layout: fixed; width: 100%; }
.gl-table caption[b-2fee933769] { color: var(--gl-muted); font-size: .7rem; line-height: 1.65; padding: .25rem 0 .65rem; text-align: left; }
.gl-table th[b-2fee933769], .gl-table td[b-2fee933769] { border-bottom: 1px solid var(--gl-border); line-height: 1.6; overflow-wrap: anywhere; padding: .65rem .5rem; text-align: left; vertical-align: top; }
.gl-table thead th[b-2fee933769] { color: var(--gl-gold); font-size: .68rem; font-weight: 500; }
.gl-table tbody th[b-2fee933769] { font-weight: 500; }
.gl-cell-secondary[b-2fee933769] { color: var(--gl-muted); display: block; font-size: .65rem; margin-top: .25rem; }
@media (max-width: 1000px) { .gl-metrics[b-2fee933769] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
    .gl-timeframe-picker[b-2fee933769] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gl-metric[b-2fee933769] { padding: .85rem; }
    .gl-metric-value[b-2fee933769] { font-size: 1.3rem; }
    .gl-fold > summary > span[b-2fee933769] { display: block; margin-left: 1rem; }
    .gl-values > div[b-2fee933769] { grid-template-columns: minmax(0, 1fr); gap: .15rem; }
    .gl-values dd[b-2fee933769] { text-align: left; }
    .gl-table thead[b-2fee933769] { clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; width: 1px; }
    .gl-table tbody[b-2fee933769] { display: grid; gap: .75rem; }
    .gl-table tr[b-2fee933769] { border: 1px solid var(--gl-border); display: block; padding: .55rem .7rem; }
    .gl-table tbody th[b-2fee933769] { border: 0; color: var(--gl-gold); display: block; padding: .25rem 0 .55rem; }
    .gl-table td[b-2fee933769] { border: 0; display: grid; gap: .2rem; padding: .4rem 0; }
    .gl-table td[b-2fee933769]::before { color: var(--gl-muted); content: attr(data-label); font-size: .65rem; }
    .gl-source-table .gl-cell-secondary[b-2fee933769] { margin-top: 0; }
}
@media (max-width: 359px) { .gl-metrics[b-2fee933769] { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { *[b-2fee933769], *[b-2fee933769]::before, *[b-2fee933769]::after { animation: none; transition: none; } }
/* /Shared/GodLayerEvidenceReel.razor.rz.scp.css */
/* PARK-GL-06 "Evidence Reel" - tokens, layout and measurements translated 1:1 from the confirmed
   reference (docs/BLUEPRINT_PARKPLATZ.md §A1-A12, SHA256 f44bfaaf... of
   tradability-pro-evidence-reel.html). Deliberately local to this component, not the app's
   Premium/global tokens - gold here means focus/active state, never success or a tradeable price. */
.evr-root[b-2qdy7ivv07] {
    /* Folgt den App-Tokens: Hell/Dunkel und die gewählte Palette gelten hier genauso. */
    --tp-bg: var(--surface-inset);
    --tp-panel: var(--surface-raised);
    --tp-raised: var(--surface-3);
    --tp-text: var(--text-primary);
    --tp-muted: var(--text-muted);
    --tp-line: var(--border-subtle);
    --tp-gold: var(--accent);
    --tp-gold-ink: var(--on-accent);
    --tp-wave: var(--accent);
    --tp-pattern: #1fa89a;
    --tp-up: var(--positive);
    --tp-down: var(--negative);
    --tp-ema: #8b7cf6;
    --tp-own: var(--text-secondary);
    --tp-serif: var(--font-display);
    --tp-display: var(--font-display);
    --tp-mono: var(--font-body);
    color: var(--tp-text);
    background: var(--tp-panel);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    font: 14px var(--tp-display);
    font-variant-numeric: tabular-nums;
    overflow: clip;
    width: 100%;
    position: relative;
}

.evr-root *[b-2qdy7ivv07] { box-sizing: border-box; }
.evr-root button[b-2qdy7ivv07] { font: inherit; color: inherit; }
.evr-root button:disabled[b-2qdy7ivv07] { opacity: .45; cursor: default; }

.evr-chrome[b-2qdy7ivv07] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px 18px;
    border-bottom: 1px solid var(--tp-line);
    gap: 20px;
    flex-wrap: wrap;
}

.evr-brand[b-2qdy7ivv07] { font-weight: 700; letter-spacing: -.045em; font-size: 19px; white-space: nowrap; }
.evr-brand span[b-2qdy7ivv07] { font: 500 13px var(--tp-mono); color: var(--tp-muted); margin-left: 12px; }

.evr-search[b-2qdy7ivv07] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-width: 0; max-width: 100%; }
.evr-search[b-2qdy7ivv07]  .asset-search { flex: 1 1 8rem; min-width: 0; }
.evr-search input[b-2qdy7ivv07] {
    background: var(--tp-panel);
    border: 1px solid var(--tp-line);
    color: var(--tp-text);
    font: 11px var(--tp-mono);
    padding: 7px 10px;
    width: 7rem;
    min-width: 0;
    flex: 1 1 7rem;
}
.evr-search input:focus[b-2qdy7ivv07] { border-color: var(--tp-gold); outline: none; }
.evr-search button[b-2qdy7ivv07] {
    background: var(--tp-gold);
    border: 0;
    color: var(--tp-gold-ink);
    font: 11px var(--tp-mono);
    font-weight: 600;
    padding: 7px 10px;
    cursor: pointer;
}
.evr-search button:disabled[b-2qdy7ivv07] { cursor: not-allowed; }

.evr-intro[b-2qdy7ivv07] { display: grid; grid-template-columns: 1.7fr 1fr; gap: 24px; align-items: end; padding: 18px 24px; }
.evr-kicker[b-2qdy7ivv07] { font: 11px var(--tp-mono); letter-spacing: 0; color: var(--tp-gold); margin: 0 0 12px; }
.evr-title[b-2qdy7ivv07] { font: 700 clamp(32px, 4.5vw, 50px)/.91 var(--tp-display); letter-spacing: -.065em; margin: 0; }
.evr-title em[b-2qdy7ivv07] { font: inherit; color: var(--tp-gold); font-style: normal; }
.evr-thesis[b-2qdy7ivv07] { padding-left: 20px; border-left: 2px solid var(--tp-gold); }
.evr-thesis strong[b-2qdy7ivv07] { font: 500 23px/1.15 var(--tp-display); display: block; margin: 6px 0 8px; letter-spacing: -.045em; }
.evr-thesis p[b-2qdy7ivv07] { color: var(--tp-muted); font-size: 12px; margin: 0; line-height: 1.6; }

.evr-state[b-2qdy7ivv07], .evr-error[b-2qdy7ivv07] { padding: 0 24px 20px; font-size: .85rem; }
.evr-state[b-2qdy7ivv07] { color: var(--tp-muted); }
.evr-error[b-2qdy7ivv07] { color: var(--tp-down); }
.evr-decision[b-2qdy7ivv07] { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; border-top: 2px solid var(--tp-gold); padding: 14px 24px; background: var(--tp-panel); }
.evr-decision > div[b-2qdy7ivv07] { min-width: 0; }
.evr-decision-status[b-2qdy7ivv07] { display: inline-block; color: var(--tp-gold); font: 10px var(--tp-mono); letter-spacing: 0; margin-bottom: 7px; }
.evr-decision strong[b-2qdy7ivv07] { display: block; font-size: 15px; line-height: 1.4; font-weight: 500; overflow-wrap: anywhere; }
.evr-decision small[b-2qdy7ivv07] { display: block; font: 10px/1.6 var(--tp-mono); color: var(--tp-muted); }
.evr-decision-targets span[b-2qdy7ivv07] { display: block; font: 13px/1.6 var(--tp-mono); overflow-wrap: anywhere; }
.evr-report-link[b-2qdy7ivv07] { padding: 10px 12px; border: 1px solid var(--tp-line); color: var(--tp-gold); font: 11px var(--tp-mono); white-space: nowrap; }
.evr-report-link:hover[b-2qdy7ivv07] { border-color: var(--tp-gold); }
.evr-report-link:focus-visible[b-2qdy7ivv07] { outline: 2px solid var(--tp-gold); outline-offset: 3px; }
.evr-finding[b-2qdy7ivv07] {
    --surface-raised: var(--tp-panel);
    --text-primary: var(--tp-text);
    --text-secondary: var(--tp-muted);
    --text-muted: var(--tp-muted);
    --text-quiet: var(--tp-muted);
    --border-subtle: var(--tp-line);
    --border-strong: var(--tp-line);
    --accent: var(--tp-gold);
    --accent-bright: var(--accent-bright);
    --app-background: var(--tp-bg);
    --positive: var(--tp-up);
    --negative: var(--tp-down);
    --pro-gold: var(--tp-gold);
    --pro-display: var(--tp-display);
    border-top: 1px solid var(--tp-line); padding: 0 24px 18px; min-width: 0; scroll-margin-top: 85px;
}
.evr-root button:focus-visible[b-2qdy7ivv07], .evr-root summary:focus-visible[b-2qdy7ivv07], .evr-search input:focus-visible[b-2qdy7ivv07] { outline: 2px solid var(--tp-gold); outline-offset: 3px; }
.evr-chart-host[b-2qdy7ivv07]  canvas:focus-visible { outline: 2px solid var(--tp-gold); outline-offset: -3px; }
.evr-data-truth[b-2qdy7ivv07] { color: var(--tp-muted); font: 11px/1.6 var(--tp-mono); padding-bottom: 12px; }
.evr-data-truth summary[b-2qdy7ivv07] { color: var(--tp-gold); cursor: pointer; min-height: 32px; padding: 6px 0; }
.evr-data-truth p[b-2qdy7ivv07] { margin: 4px 0; }
.evr-hash[b-2qdy7ivv07] { overflow-wrap: anywhere; }

.evr-workspace[b-2qdy7ivv07] { display: grid; grid-template-columns: minmax(0, 1fr) 280px; border-top: 1px solid var(--tp-line); }
.evr-left[b-2qdy7ivv07] { min-width: 0; padding: 18px 20px 0 24px; }
.evr-chart-head[b-2qdy7ivv07] { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 15px; }
.evr-symbol[b-2qdy7ivv07] { font-weight: 600; font-size: 22px; letter-spacing: -.04em; }
.evr-symbol small[b-2qdy7ivv07] { font: 11px var(--tp-mono); color: var(--tp-muted); margin-left: 8px; letter-spacing: 0; }
.evr-status[b-2qdy7ivv07] { font: 11px var(--tp-mono); color: var(--tp-gold); text-align: right; }
.evr-source-status[b-2qdy7ivv07] { color: var(--tp-muted); font: 10px/1.6 var(--tp-mono); margin: -6px 0 12px; overflow-wrap: anywhere; }

.evr-layers[b-2qdy7ivv07] { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.evr-layer[b-2qdy7ivv07] { border: 1px solid var(--tp-line); background: var(--tp-panel); padding: 7px 10px; font-size: 11px; font-family: var(--tp-mono); cursor: pointer; }
.evr-layer[aria-pressed="true"][b-2qdy7ivv07] { background: var(--tp-raised); border-color: var(--tp-gold); color: var(--tp-text); font-weight: 600; }
.evr-layer:hover[b-2qdy7ivv07] { border-color: var(--tp-gold); }
.evr-layer:focus-visible[b-2qdy7ivv07] { outline: 2px solid var(--tp-gold); outline-offset: 2px; }

.evr-chart-frame[b-2qdy7ivv07] { position: relative; border: 1px solid var(--tp-line); background: var(--tp-panel); padding-left: 42px; }
.evr-toolbox[b-2qdy7ivv07] {
    position: absolute; top: 0; bottom: 0; left: 0; width: 42px;
    border-right: 1px solid var(--tp-line); background: var(--tp-bg); z-index: 2;
    display: flex; flex-direction: column; align-items: center; padding: 7px 0; gap: 4px;
}
.evr-tool[b-2qdy7ivv07] {
    display: flex; align-items: center; justify-content: center;
    width: 33px; height: 35px; padding: 0; border: 0; background: transparent; cursor: pointer;
}
.evr-tool[aria-pressed="true"][b-2qdy7ivv07] { color: var(--tp-gold); background: var(--tp-raised); }
.evr-tool:hover:not(:disabled)[b-2qdy7ivv07] { background: var(--tp-raised); }
.evr-tool:last-child[b-2qdy7ivv07] { margin-top: auto; }
.evr-toolbox[data-collapsed="true"] .evr-tool:not(:first-child)[b-2qdy7ivv07] { display: none; }

.evr-chart-host[b-2qdy7ivv07] { display: block; width: 100%; height: 400px; min-width: 0; }
.evr-indicator-host[b-2qdy7ivv07] { height: 110px; border-top: 1px solid var(--tp-line); }
.evr-root[data-expanded="true"] .evr-chart-host[b-2qdy7ivv07] { height: 560px; }
.evr-root[data-expanded="true"] .evr-intro[b-2qdy7ivv07], .evr-root[data-expanded="true"] .evr-chrome[b-2qdy7ivv07] { display: none; }

.evr-chart-foot[b-2qdy7ivv07] {
    display: flex; gap: 14px; justify-content: space-between; flex-wrap: wrap;
    color: var(--tp-muted); font: 11px/1.6 var(--tp-mono); padding: 11px 0 14px; min-height: 44px;
}

.evr-reel-area[b-2qdy7ivv07] { border-left: 1px solid var(--tp-line); background: var(--tp-bg); min-width: 0; }
.evr-reel-header[b-2qdy7ivv07] { display: flex; justify-content: space-between; align-items: center; padding: 19px 18px 12px; font: 11px var(--tp-mono); color: var(--tp-muted); }
.evr-reel-header span:first-child[b-2qdy7ivv07] { color: var(--tp-gold); }
.evr-reel-wrap[b-2qdy7ivv07] { position: relative; }
.evr-reel-wrap[b-2qdy7ivv07]:before, .evr-reel-wrap[b-2qdy7ivv07]:after { content: ""; position: absolute; left: 0; right: 0; height: 50px; z-index: 2; pointer-events: none; }
.evr-reel-wrap[b-2qdy7ivv07]:before { top: 0; background: linear-gradient(var(--tp-bg), transparent); }
.evr-reel-wrap[b-2qdy7ivv07]:after { bottom: 0; background: linear-gradient(transparent, var(--tp-bg)); }
.evr-reel[b-2qdy7ivv07] {
    height: 440px; overflow-y: auto; overscroll-behavior-y: contain; scroll-snap-type: y mandatory;
    scrollbar-width: thin; scrollbar-color: var(--tp-line) var(--tp-bg);
    padding: 125px 14px; display: flex; flex-direction: column; gap: 12px;
}

.evr-factor[b-2qdy7ivv07] {
    position: relative; flex: 0 0 190px; width: 100%; text-align: left; scroll-snap-align: center;
    display: flex; flex-direction: column; padding: 16px 17px; background: var(--tp-panel);
    border: 1px solid var(--tp-line); opacity: .48; transform: scale(.94); cursor: pointer;
    transition: opacity .35s ease, transform .4s cubic-bezier(.16, 1, .3, 1), border-color .35s ease;
    overflow: hidden;
}
.evr-factor[aria-pressed="true"][b-2qdy7ivv07] { opacity: 1; transform: scale(1); border-color: var(--tp-gold); }
.evr-factor:focus-visible[b-2qdy7ivv07] { outline: 2px solid var(--tp-gold); outline-offset: 2px; }
.evr-factor-row[b-2qdy7ivv07] { display: flex; justify-content: space-between; font: 11px var(--tp-mono); color: var(--tp-muted); gap: 6px; }
.evr-factor strong[b-2qdy7ivv07] { font-size: 23px; letter-spacing: -.05em; font-weight: 600; margin-top: 11px; line-height: 1.05; }
.evr-factor-graphic[b-2qdy7ivv07] {
    height: 72px; margin: 9px 0 2px; width: 100%; display: flex; align-items: center;
    /* RSI/MACD/EMA show a bare number with nothing else on the card to anchor its scale (unlike
       EW/Pattern's full-sentence short text) - clamp keeps it legible at a glance instead of
       reading as small, incidental text. */
    font: 600 clamp(24px, 3vw, 34px) var(--tp-display); color: var(--tp-text);
    overflow-wrap: anywhere; letter-spacing: -.02em; line-height: 1.1;
}
.evr-factor small[b-2qdy7ivv07] { font-size: 11px; color: var(--tp-muted); line-height: 1.4; margin-top: auto; }

.evr-reel-actions[b-2qdy7ivv07] { display: flex; justify-content: space-between; align-items: center; padding: 10px 18px 13px; border-top: 1px solid var(--tp-line); gap: 8px; }
.evr-step[b-2qdy7ivv07] { width: 34px; height: 32px; background: var(--tp-panel); border: 1px solid var(--tp-line); display: grid; place-items: center; cursor: pointer; }
.evr-step:disabled[b-2qdy7ivv07] { cursor: not-allowed; }
.evr-reel-actions small[b-2qdy7ivv07] { font: 11px var(--tp-mono); color: var(--tp-muted); }

.evr-focus-note[b-2qdy7ivv07] { padding: 0 18px 18px; font: 12px/1.5 var(--tp-display); color: var(--tp-muted); min-height: 63px; }
.evr-enable[b-2qdy7ivv07] { margin-top: 8px; display: block; background: var(--tp-gold); border: 0; padding: 7px 10px; color: var(--tp-gold-ink); font-size: 11px; cursor: pointer; }

.evr-bottom[b-2qdy7ivv07] {
    display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 24px;
    border-top: 1px solid var(--tp-line); background: var(--tp-bg); font: 11px var(--tp-mono);
    color: var(--tp-muted); flex-wrap: wrap;
}
.evr-bottom strong[b-2qdy7ivv07] { font-weight: 500; color: var(--tp-gold); }

.evr-readmore[b-2qdy7ivv07] { padding: 0 24px 18px; background: var(--tp-bg); color: var(--tp-muted); font-size: 12px; }
.evr-readmore summary[b-2qdy7ivv07] { padding: 9px 0; min-height: 32px; cursor: pointer; font: 11px var(--tp-mono); color: var(--tp-gold); letter-spacing: 0; }

@media (max-width: 760px) {
    .evr-workspace[b-2qdy7ivv07] { grid-template-columns: minmax(0, 1fr) 240px; }
    .evr-left[b-2qdy7ivv07] { padding-left: 16px; padding-right: 12px; }
    .evr-title[b-2qdy7ivv07] { font-size: 43px; }
    .evr-intro[b-2qdy7ivv07] { padding: 24px 16px; gap: 16px; }
    .evr-thesis strong[b-2qdy7ivv07] { font-size: 19px; }
    .evr-chrome[b-2qdy7ivv07] { padding-left: 16px; }
    .evr-finding[b-2qdy7ivv07] { padding-inline: 16px; }
}

@media (max-width: 590px) {
    .evr-workspace[b-2qdy7ivv07] { grid-template-columns: 1fr; }
    .evr-reel-area[b-2qdy7ivv07] { border-left: 0; border-top: 1px solid var(--tp-line); }
    .evr-intro[b-2qdy7ivv07] { grid-template-columns: 1fr; gap: 14px; padding-block: 16px; }
    .evr-title[b-2qdy7ivv07] { font-size: 38px; }
    .evr-thesis[b-2qdy7ivv07] { padding-left: 13px; }
    .evr-chrome[b-2qdy7ivv07] { padding: 16px; align-items: flex-start; flex-direction: column; gap: 6px; }
    .evr-left[b-2qdy7ivv07] { padding: 16px 12px 0; }
    .evr-chart-host[b-2qdy7ivv07] { height: 310px; }
    .evr-reel[b-2qdy7ivv07] { height: 310px; padding-top: 60px; padding-bottom: 60px; }
    .evr-reel-actions[b-2qdy7ivv07] { padding-top: 12px; }
    .evr-bottom[b-2qdy7ivv07] { padding: 16px 12px; }
    .evr-readmore[b-2qdy7ivv07] { padding: 0 12px 16px; }
    .evr-finding[b-2qdy7ivv07] { padding-inline: 12px; }
    .evr-chart-frame[b-2qdy7ivv07] { padding-left: 0; }
    .evr-toolbox[b-2qdy7ivv07] { position: static; width: 100%; height: auto; flex-direction: row; flex-wrap: wrap; border-right: 0; border-bottom: 1px solid var(--tp-line); padding: 4px; gap: 3px; }
    .evr-tool:last-child[b-2qdy7ivv07] { margin-top: 0; }
}

@media (pointer: coarse) {
    .evr-tool[b-2qdy7ivv07] { min-height: 44px; width: 42px; }
    .evr-chart-frame[b-2qdy7ivv07] { padding-left: 48px; }
    .evr-toolbox[b-2qdy7ivv07] { width: 48px; }
    .evr-layer[b-2qdy7ivv07], .evr-step[b-2qdy7ivv07], .evr-enable[b-2qdy7ivv07] { min-height: 44px; min-width: 44px; }
}

@media (max-width: 590px) and (pointer: coarse) {
    .evr-chart-frame[b-2qdy7ivv07] { padding-left: 0; }
    .evr-toolbox[b-2qdy7ivv07] { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .evr-root *[b-2qdy7ivv07], .evr-root *[b-2qdy7ivv07]::before, .evr-root *[b-2qdy7ivv07]::after { transition: none !important; scroll-behavior: auto !important; }
}

/* Formen wie im Rest der App: runde Bedienelemente, ruhige Flächen. */
.evr-search input[b-2qdy7ivv07], .evr-search button[b-2qdy7ivv07], .evr-layer[b-2qdy7ivv07] { border-radius: var(--radius-pill); }
.evr-search input[b-2qdy7ivv07] { padding: 8px 14px; }
.evr-search button[b-2qdy7ivv07] { padding: 8px 16px; }
.evr-layer[b-2qdy7ivv07] { padding: 7px 14px; }
.evr-chart-frame[b-2qdy7ivv07] { border-radius: var(--radius-sm); overflow: clip; }
.evr-report-link[b-2qdy7ivv07] { border-radius: var(--radius-pill); }
.evr-decision[b-2qdy7ivv07] { border-top-width: 1px; }
.evr-factor[b-2qdy7ivv07] { border-radius: var(--radius-sm); }
.evr-status[b-2qdy7ivv07], .evr-decision-status[b-2qdy7ivv07], .evr-kicker[b-2qdy7ivv07] { color: var(--tp-muted); }
.evr-brand[b-2qdy7ivv07] { align-items: center; display: inline-flex; gap: 10px; }
.evr-brand-icon[b-2qdy7ivv07] { color: var(--tp-gold); flex: none; }
.evr-layer[b-2qdy7ivv07] { align-items: center; display: inline-flex; gap: 6px; }
/* /Shared/GodLayerMarketScanPanel.razor.rz.scp.css */
.scan-panel[b-rjm4uom3s9] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    display: flex;
    flex-direction: column;
    gap: .9rem;
    margin-bottom: 1.3rem;
    padding: 1rem 1.1rem;
}

.scan-panel-head h2[b-rjm4uom3s9] {
    color: var(--text-primary);
    font-size: 1.05rem;
    margin: 0 0 .35rem;
}

.scan-panel-head p[b-rjm4uom3s9] {
    color: var(--text-muted);
    font-size: .8rem;
    line-height: 1.6;
    margin: 0;
    max-width: 48rem;
}

.scan-state[b-rjm4uom3s9] { color: var(--text-quiet); font-size: .85rem; margin: 0; }
.scan-error[b-rjm4uom3s9] { color: var(--negative); font-size: .85rem; margin: 0; }

.scan-controls[b-rjm4uom3s9] {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
}

.scan-start-button[b-rjm4uom3s9],
.scan-cancel-button[b-rjm4uom3s9] {
    background: none;
    border: 1px solid var(--border-subtle);
    color: var(--text-muted);
    cursor: pointer;
    font-size: .8rem;
    font-weight: 600;
    padding: .45rem .9rem;
}

.scan-start-button:hover:not(:disabled)[b-rjm4uom3s9],
.scan-start-button:focus-visible:not(:disabled)[b-rjm4uom3s9] {
    border-color: var(--accent);
    color: var(--accent);
}

.scan-cancel-button:hover:not(:disabled)[b-rjm4uom3s9],
.scan-cancel-button:focus-visible:not(:disabled)[b-rjm4uom3s9] {
    border-color: var(--negative);
    color: var(--negative);
}

.scan-start-button:disabled[b-rjm4uom3s9],
.scan-cancel-button:disabled[b-rjm4uom3s9] {
    cursor: not-allowed;
    opacity: .6;
}

.scan-progress[b-rjm4uom3s9] {
    color: var(--text-secondary);
    font-size: .8rem;
    margin: 0;
}

.scan-status[b-rjm4uom3s9] {
    border: 1px solid var(--border-strong);
    font-size: .68rem;
    font-weight: 600;
    padding: .1rem .4rem;
    text-transform: uppercase;
}

.scan-status-running[b-rjm4uom3s9] { border-color: var(--accent); color: var(--accent); }
.scan-status-completed[b-rjm4uom3s9] { border-color: var(--positive); color: var(--positive); }
.scan-status-cancelled[b-rjm4uom3s9] { border-color: var(--text-muted); color: var(--text-muted); }
.scan-status-failed[b-rjm4uom3s9] { border-color: var(--negative); color: var(--negative); }

.scan-results[b-rjm4uom3s9] {
    display: grid;
    gap: .5rem;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.scan-result-button[b-rjm4uom3s9] {
    align-items: center;
    background: var(--surface-base);
    border: 1px solid var(--border-subtle);
    cursor: pointer;
    display: flex;
    gap: .5rem;
    justify-content: space-between;
    padding: .45rem .6rem;
    text-align: left;
    width: 100%;
}

.scan-result-button:hover[b-rjm4uom3s9],
.scan-result-button:focus-visible[b-rjm4uom3s9] {
    border-color: var(--accent);
}

.scan-result-symbol[b-rjm4uom3s9] { color: var(--text-primary); font-size: .85rem; font-weight: 700; }

.scan-result-status[b-rjm4uom3s9] {
    color: var(--text-quiet);
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
}

.scan-result-watching .scan-result-status[b-rjm4uom3s9],
.scan-result-reviewable .scan-result-status[b-rjm4uom3s9] {
    color: var(--accent);
}

.scan-result-error .scan-result-status[b-rjm4uom3s9] { color: var(--negative); }
/* /Shared/GodLayerSignalGauges.razor.rz.scp.css */
.gl-gauges[b-prmsgids1b] { display: grid; gap: .5rem; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; }
.gl-gauge[b-prmsgids1b] { border: 1px solid var(--border-subtle); min-width: 0; padding: .55rem .4rem; text-align: center; }
.gl-gauge h3[b-prmsgids1b] { color: var(--text-primary); font-size: .65rem; font-weight: 600; margin: 0 0 .3rem; }
.gl-gauge h3 span[b-prmsgids1b] { color: var(--text-muted); display: block; font-size: .5rem; font-weight: 400; margin-top: .1rem; }
.gl-gauge svg[b-prmsgids1b] { display: block; margin: 0 auto; max-width: 140px; overflow: visible; width: 100%; }
.gl-gauge strong[b-prmsgids1b] { color: var(--text-primary); display: block; font-family: var(--pro-display, var(--font-display)); font-size: 1.2rem; font-variant-numeric: tabular-nums; letter-spacing: -.03em; line-height: 1.2; overflow-wrap: anywhere; }
.gl-gauge strong.gauge-ema-value[b-prmsgids1b] { font-size: .85rem; min-height: 1.44rem; padding-top: .2rem; }
.gl-gauge p[b-prmsgids1b] { color: var(--text-muted); font-size: .52rem; line-height: 1.5; margin: .3rem 0 0; }
.gauge-track[b-prmsgids1b] { fill: none; stroke: var(--border-strong); stroke-width: 5; }
.gauge-fill[b-prmsgids1b] { fill: none; stroke: var(--accent); stroke-width: 5; }
.gauge-tick[b-prmsgids1b] { stroke: var(--text-muted); stroke-width: 1; }
.gauge-needle[b-prmsgids1b] { stroke: var(--text-primary); stroke-linecap: round; stroke-width: 2; }
.gauge-center[b-prmsgids1b] { fill: var(--accent); }
.gauge-scale[b-prmsgids1b] { fill: var(--text-muted); font-family: var(--font-mono); font-size: 8px; }
.macd-line[b-prmsgids1b] { fill: var(--text-primary); }
.macd-signal[b-prmsgids1b] { fill: var(--text-muted); }
.macd-histogram[b-prmsgids1b] { fill: var(--accent); }
.ema-relation[b-prmsgids1b] { fill: var(--accent); font-family: var(--font-display); font-size: 45px; }
.gl-gauge-caption[b-prmsgids1b] { color: var(--text-muted); font-size: .6rem; line-height: 1.55; margin: .3rem 0 0; }
/* /Shared/LandingStage.razor.rz.scp.css */
/* Chart- und Thesen-Ebene der Startseiten-Bühne. Jede Eigenschaft hängt an einer Phasen-Variable
   (0..1) vom Skript (js/stage.js) auf .stage: Deckkraft, Skalierung und Strichlänge folgen dem
   Scrollfortschritt stetig, auch rückwärts. Farben nur aus den Theme-Tokens. */

.stage-chart[b-1sbwmmodjm] {
    align-content: center;
    align-items: center;
    display: grid;
    gap: 1.4rem;
    grid-template-columns: minmax(0, 1fr) 19rem;
    inset: 0;
    margin: 0 auto;
    max-width: 82rem;
    opacity: var(--s-chart, 0);
    padding: 1.2rem clamp(1.2rem, 4vw, 3.5rem);
    pointer-events: none;
    position: absolute;
    transform: scale(calc(.96 + .04 * var(--s-chart, 0)));
    transform-origin: 50% 50%;
    width: 100%;
}

.chart-card[b-1sbwmmodjm] {
    margin: 0;
    min-width: 0;
    position: relative;
}

.chart-badge[b-1sbwmmodjm] {
    align-items: center;
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-pill);
    color: var(--text-muted);
    display: inline-flex;
    font-size: .78rem;
    font-weight: 600;
    gap: .45rem;
    margin-bottom: .7rem;
    padding: .3rem .8rem;
}

.chart-svg[b-1sbwmmodjm] {
    display: block;
    width: 100%;
}

/* ── Chart ── */
.chart-grid-line[b-1sbwmmodjm] {
    stroke: var(--chart-grid);
    stroke-width: 1;
}

.candles line[b-1sbwmmodjm] {
    stroke-width: 1.4;
}

.candles .up line[b-1sbwmmodjm],
.candles .up rect[b-1sbwmmodjm] {
    fill: var(--chart-up);
    stroke: var(--chart-up);
}

.candles .down line[b-1sbwmmodjm],
.candles .down rect[b-1sbwmmodjm] {
    fill: var(--chart-down);
    stroke: var(--chart-down);
}

.candles[b-1sbwmmodjm] {
    opacity: .9;
}

.chart-svg[b-1sbwmmodjm]  text {
    fill: var(--text-primary);
    font-family: var(--font-display);
    font-size: calc(12.5px * var(--chart-k, 1));
    font-weight: 650;
    paint-order: stroke;
    stroke: var(--paper);
    stroke-linejoin: round;
    stroke-width: calc(4px * var(--chart-k, 1));
}

/* Elliott-Wellen: die Linie wird gezeichnet, solange gescrollt wird */
/* Gezeichnet wird über die Strichlänge: Strich = Fortschritt (0..1 der normierten Pfadlänge), danach
   eine Lücke, die länger ist als der Pfad. So kann am Ende nie ein zweiter Strich auftauchen, und es
   gibt keine Abhängigkeit von Bildschirmmaßstab oder vector-effect (der die Normierung verfälschte).
   Die Linienbreite wird über --chart-k an die Chart-Breite angepasst. */
.wave[b-1sbwmmodjm] {
    fill: none;
    opacity: clamp(0, calc(var(--s-wave, 0) * 60), 1);
    stroke: var(--accent);
    stroke-dasharray: var(--s-wave, 0) 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: calc(3px * var(--chart-k, 1));
}

.chart-svg[b-1sbwmmodjm]  .wave-mark {
    fill: var(--accent);
    font-size: calc(15px * var(--chart-k, 1));
    font-weight: 800;
    opacity: clamp(0, calc((var(--s-wave, 0) - var(--f, 0) + .04) * 16), 1);
    text-anchor: middle;
}

/* Chart-Pattern: Abwärtskanal */
.pattern[b-1sbwmmodjm] {
    opacity: var(--s-pattern, 0);
}

.pattern path[b-1sbwmmodjm] {
    fill: none;
    stroke: var(--info);
    stroke-dasharray: var(--s-pattern, 0) 2;
    stroke-width: calc(2.2px * var(--chart-k, 1));
}

.pattern text[b-1sbwmmodjm] {
    fill: var(--info);
}

/* Zielzone und Invalidierung */
.zone-target[b-1sbwmmodjm],
.zone-invalid[b-1sbwmmodjm] {
    opacity: var(--s-zone, 0);
}

.zone-target rect[b-1sbwmmodjm] {
    fill: color-mix(in srgb, var(--positive) 20%, transparent);
    stroke: var(--positive);
    stroke-dasharray: 5 4;
    stroke-width: 1.4;
    vector-effect: non-scaling-stroke;
}

.zone-target text[b-1sbwmmodjm] {
    fill: var(--positive);
}

.zone-invalid line[b-1sbwmmodjm] {
    stroke: var(--negative);
    stroke-dasharray: 7 5;
    stroke-width: 1.8;
    vector-effect: non-scaling-stroke;
}

.zone-invalid text[b-1sbwmmodjm] {
    fill: var(--negative);
}

/* Einstiegszone und Richtung kommen mit der These */
.zone-entry[b-1sbwmmodjm] {
    opacity: var(--s-thesis, 0);
}

.zone-entry rect[b-1sbwmmodjm] {
    fill: color-mix(in srgb, var(--accent) 20%, transparent);
    stroke: var(--accent);
    stroke-width: 1.4;
    vector-effect: non-scaling-stroke;
}

.zone-entry text[b-1sbwmmodjm] {
    fill: var(--accent);
}

.direction[b-1sbwmmodjm] {
    fill: none;
    opacity: clamp(0, calc((var(--s-thesis, 0) - .55) * 4), 1);
    stroke: var(--accent);
    stroke-dasharray: clamp(0, calc((var(--s-thesis, 0) - .35) * 1.6), 1) 2;
    stroke-linecap: round;
    stroke-width: calc(2.4px * var(--chart-k, 1));
}

#stage-arrow path[b-1sbwmmodjm] {
    fill: var(--accent);
}

/* Handy: Zahlen stehen in der These, im Chart bleiben nur die kurzen Namen lesbar */
.stage-chart[data-compact] .num[b-1sbwmmodjm] {
    display: none;
}

/* ── These ── */
.thesis[b-1sbwmmodjm] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    display: grid;
    gap: .8rem;
    opacity: var(--s-thesis, 0);
    padding: 1.3rem;
    transform: translateX(calc((1 - var(--s-thesis, 0)) * 1.6rem));
}

.thesis-tag[b-1sbwmmodjm] {
    color: var(--accent);
    font-size: .78rem;
    font-weight: 700;
    margin: 0;
}

.thesis h3[b-1sbwmmodjm] {
    align-items: center;
    display: flex;
    font-size: 1.25rem;
    gap: .5rem;
    margin: 0;
}

.thesis-list[b-1sbwmmodjm] {
    display: grid;
    gap: .5rem;
    margin: 0;
}

.thesis-list div[b-1sbwmmodjm] {
    align-items: baseline;
    border-top: 1px solid var(--border-subtle);
    display: flex;
    justify-content: space-between;
    padding-top: .5rem;
}

.thesis-list dt[b-1sbwmmodjm] {
    color: var(--text-muted);
    font-size: .85rem;
}

.thesis-list dd[b-1sbwmmodjm] {
    font-size: 1rem;
    font-weight: 700;
    margin: 0;
}

.thesis-why[b-1sbwmmodjm] {
    color: var(--text-secondary);
    font-size: .88rem;
    line-height: 1.5;
    margin: 0;
}

.thesis-note[b-1sbwmmodjm] {
    color: var(--text-muted);
    font-size: .76rem;
    margin: 0;
}

@media (max-width: 900px) {
    .stage-chart[b-1sbwmmodjm] {
        gap: .8rem;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
        padding-block: .8rem;
    }

    .thesis[b-1sbwmmodjm] {
        padding: 1rem;
        transform: translateY(calc((1 - var(--s-thesis, 0)) * 1rem));
    }

    .thesis-why[b-1sbwmmodjm] {
        display: none;
    }
}

/* Reduzierte Bewegung: alles steht fertig und in lesbarer Reihenfolge untereinander. */
@media (prefers-reduced-motion: reduce) {
    .stage-chart[b-1sbwmmodjm] {
        opacity: 1;
        padding-block: 2rem;
        pointer-events: auto;
        position: static;
        transform: none;
    }

    .wave[b-1sbwmmodjm],
    .pattern path[b-1sbwmmodjm],
    .direction[b-1sbwmmodjm] {
        opacity: 1;
        stroke-dasharray: none;
    }

    .wave-mark[b-1sbwmmodjm],
    .pattern[b-1sbwmmodjm],
    .zone-target[b-1sbwmmodjm],
    .zone-invalid[b-1sbwmmodjm],
    .zone-entry[b-1sbwmmodjm],
    .direction[b-1sbwmmodjm],
    .thesis[b-1sbwmmodjm] {
        opacity: 1;
        transform: none;
    }

    .thesis-why[b-1sbwmmodjm] {
        display: block;
    }
}

.zone-label[b-1sbwmmodjm] {
    text-anchor: end;
}
/* /Shared/SavingsTools.razor.rz.scp.css */
.tools[b-qsclvjfvmf] {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

.tool[b-qsclvjfvmf] {
    min-width: 0;
    border-top: 1px solid var(--border-strong);
    display: flex;
    flex-direction: column;
    gap: .8rem;
    padding-top: 1.2rem;
}

.tool h3[b-qsclvjfvmf] {
    font-size: 1rem;
    margin: 0;
}

.field[b-qsclvjfvmf] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.field span[b-qsclvjfvmf],
.scenario label[b-qsclvjfvmf] {
    color: var(--text-muted);
    font-size: .8rem;
}

.tool input[type="number"][b-qsclvjfvmf] {
    background: none;
    border: 0;
    border-bottom: 1px solid var(--border-strong);
    color: var(--text-primary);
    font: inherit;
    padding: .4rem .1rem;
    width: 9rem;
}

.tool-result[b-qsclvjfvmf],
.tool-note[b-qsclvjfvmf] {
    color: var(--text-muted);
    font-size: .84rem;
    line-height: 1.65;
    margin: 0;
    max-width: 46rem;
}

.tool-result strong[b-qsclvjfvmf] {
    color: var(--text-primary);
}

.scenarios[b-qsclvjfvmf] {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
}

.scenario[b-qsclvjfvmf] {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
}

.scenario input[b-qsclvjfvmf] {
    width: 5rem !important;
}

.tool th[b-qsclvjfvmf],
.tool td[b-qsclvjfvmf] {
    padding: .5rem 1.2rem .5rem 0;
    text-align: left;
}
/* /Shared/SectionHeading.razor.rz.scp.css */
.section-heading[b-kj5ilil26y] {
    align-items: flex-end;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    margin-bottom: .9rem;
}

.section-heading h2[b-kj5ilil26y] {
    color: var(--text-primary);
    font-size: .95rem;
    font-weight: 670;
    letter-spacing: -.01em;
    margin: .25rem 0 0;
}

.description[b-kj5ilil26y] {
    color: var(--text-muted);
    font-size: 0.74rem;
    margin: .28rem 0 0;
}

.heading-action[b-kj5ilil26y] {
    flex: 0 0 auto;
}
/* /Shared/StatusPill.razor.rz.scp.css */
/* Kein Chip, keine Fläche: ein Quadrat und ein gesperrtes Wort, wie im Protokoll -
   §sq/.status in app.css tragen die Form, hier nur die Ton-Farbe pro Zustand. */
.status-pill[b-9qrvwhehd7] {
    align-items: center;
    color: var(--text-muted);
    display: inline-flex;
    font-family: var(--font-body);
    font-size: .78rem;
    font-weight: 600;
    gap: .45rem;
    letter-spacing: 0;
    line-height: 1;
    white-space: nowrap;
}

.status-pill.positive[b-9qrvwhehd7] {
    color: var(--text-primary);
}

.status-pill.warning[b-9qrvwhehd7] {
    color: var(--warning);
}

.status-pill.info[b-9qrvwhehd7] {
    color: var(--info);
}

.status-pill.muted[b-9qrvwhehd7],
.status-pill.neutral[b-9qrvwhehd7] {
    color: var(--text-muted);
}
/* /Shared/TrackingHost.razor.rz.scp.css */
/* Einwilligung: kompakte Kachel unten links, liegt neben dem Inhalt statt mitten darüber.
   Unten rechts sitzen Coach und Dock, unten mittig der Alarm-Hinweis. */
.consent[b-vsgmoe7a9b] {
    background: var(--surface-raised);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius);
    bottom: 1.25rem;
    box-shadow: 0 18px 40px -18px rgb(0 0 0 / 45%);
    display: flex;
    flex-direction: column;
    gap: .9rem;
    left: 1.25rem;
    max-width: calc(100vw - 2.5rem);
    padding: 1.15rem 1.25rem 1.2rem;
    position: fixed;
    width: 23rem;
    z-index: 80;
}

.consent h2[b-vsgmoe7a9b] {
    font-size: .98rem;
    letter-spacing: -.01em;
    margin: 0 0 .35rem;
}

.consent p[b-vsgmoe7a9b] {
    color: var(--text-muted);
    font-size: .8rem;
    line-height: 1.55;
    margin: 0;
}

.consent p a[b-vsgmoe7a9b] {
    color: var(--text-primary);
    text-decoration-color: var(--border-strong);
}

.consent p a:hover[b-vsgmoe7a9b] {
    color: var(--text-primary);
}

.consent-text[b-vsgmoe7a9b] {
    flex: 1 1 auto;
}

.consent-actions[b-vsgmoe7a9b] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.consent-actions button[b-vsgmoe7a9b] {
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-pill);
    cursor: pointer;
    flex: 1 1 auto;
    font: inherit;
    font-size: .84rem;
    font-weight: 600;
    min-height: 2.5rem;
    padding: .55rem 1rem;
    transition: background-color .18s ease, color .18s ease;
}

.consent-yes[b-vsgmoe7a9b] {
    background: var(--accent);
    border-color: transparent;
    color: var(--on-accent);
}

.consent-yes:hover[b-vsgmoe7a9b] {
    background: var(--accent-bright);
}

.consent-no[b-vsgmoe7a9b] {
    background: transparent;
    color: var(--text-primary);
}

.consent-no:hover[b-vsgmoe7a9b] {
    background: var(--surface-3);
}

@media (max-width: 480px) {
    .consent[b-vsgmoe7a9b] {
        bottom: .75rem;
        left: .75rem;
        max-width: calc(100vw - 1.5rem);
        width: auto;
    }
}

/* Handy: Einwilligung als schmale Leiste am unteren Rand, nimmt nicht den halben Bildschirm. */
@media (max-width: 560px) {
    .consent[b-vsgmoe7a9b] {
        bottom: .6rem;
        gap: .55rem;
        left: .6rem;
        max-width: none;
        padding: .8rem .9rem;
        right: .6rem;
        width: auto;
    }

    .consent h2[b-vsgmoe7a9b] { font-size: .9rem; margin-bottom: .2rem; }
    .consent p[b-vsgmoe7a9b] { font-size: .72rem; line-height: 1.45; }
    .consent-actions button[b-vsgmoe7a9b] { font-size: .8rem; min-height: 2.2rem; }
}
/* /Shared/UserAvatar.razor.rz.scp.css */
.user-avatar[b-1eyzuh3byt] {
    display: inline-block;
    flex: 0 0 auto;
    position: relative;
}

/* Das Bild sitzt um die Rahmenbreite eingerückt, damit jeder Rahmen Platz hat. */
.avatar-face[b-1eyzuh3byt] {
    background: var(--surface-inset);
    border-radius: 50%;
    display: block;
    height: calc(100% - 2 * var(--avatar-inset));
    left: var(--avatar-inset);
    object-fit: cover;
    position: absolute;
    top: var(--avatar-inset);
    width: calc(100% - 2 * var(--avatar-inset));
}

.avatar-initials[b-1eyzuh3byt] {
    align-items: center;
    border: 1px solid var(--border-subtle);
    color: var(--text-secondary);
    display: flex;
    font-family: var(--font-body);
    font-size: var(--avatar-font);
    font-weight: 600;
    justify-content: center;
    letter-spacing: 0;
}

.user-avatar[b-1eyzuh3byt]  .avatar-frame {
    inset: 0;
    position: absolute;
}
/* /Shared/WorldDotMap.razor.rz.scp.css */
.dotmap[b-55np2bhw3m] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    width: 100%;
}

.dotmap svg[b-55np2bhw3m] {
    display: block;
    height: auto;
    width: 100%;
}

.dotmap path[b-55np2bhw3m] {
    fill: none;
    stroke-linecap: round;
}

.land[b-55np2bhw3m] {
    stroke: var(--border-subtle);
    stroke-width: .5;
}

.dots[b-55np2bhw3m] {
    stroke: var(--text-muted);
    stroke-width: .62;
    transition: stroke .18s ease;
}

.hit[b-55np2bhw3m] {
    pointer-events: stroke;
    stroke: transparent;
    stroke-width: 1.05;
}

.region[b-55np2bhw3m] {
    cursor: pointer;
    outline: none;
}

.region:hover .dots[b-55np2bhw3m],
.region:focus-visible .dots[b-55np2bhw3m] {
    stroke: var(--text-primary);
}

.region.on .dots[b-55np2bhw3m] {
    stroke: var(--accent);
}

.region.on:hover .dots[b-55np2bhw3m] {
    stroke: var(--accent-bright);
}

.region:focus-visible .dots[b-55np2bhw3m] {
    stroke-width: .8;
}

.is-global .region[b-55np2bhw3m] {
    cursor: default;
}

.is-global .land[b-55np2bhw3m] {
    stroke: var(--text-muted);
}

.tag[b-55np2bhw3m] {
    fill: var(--text-primary);
    font-family: var(--font-mono);
    font-size: 3.2px;
    font-weight: 700;
    opacity: 0;
    paint-order: stroke;
    pointer-events: none;
    stroke: var(--app-background);
    stroke-linejoin: round;
    stroke-width: .9px;
    text-anchor: middle;
    transition: opacity .18s ease;
}

.region:hover .tag[b-55np2bhw3m],
.region:focus-visible .tag[b-55np2bhw3m],
.region.on .tag[b-55np2bhw3m] {
    opacity: 1;
}

.dotmap-caption[b-55np2bhw3m] {
    color: var(--text-quiet);
    font-size: .74rem;
    margin: 0;
}

@media (prefers-reduced-motion: reduce) {
    .dots[b-55np2bhw3m],
    .tag[b-55np2bhw3m] {
        transition: none;
    }
}
