/* Extracted from IntradayDashboard2.razor inline <style>. Loaded globally via index.html to preserve global scope (popovers, child-component internals, keyframes). */

.min-confidence-popover {
        min-width: 260px !important;
    }

    .min-confidence-popover .mud-list-item {
        white-space: nowrap;
    }

    .run-scope-compact {
        width: 100%;
    }

    .run-scope-compact-toggles {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px 16px;
    }

    .run-scope-toggle {
        white-space: nowrap;
    }

    .run-scope-hint {
        display: block;
        margin-top: 4px;
        line-height: 1.25;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .focus-trade-metrics {
        display: flex;
        flex-direction: column;
        gap: 6px;
    }

    .focus-trade-levels {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px 14px;
    }

    .focus-trade-level {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        white-space: nowrap;
    }

    .focus-trade-position {
        display: flex;
        align-items: center;
        gap: 6px;
        min-width: 0;
    }

    .focus-trade-position .mud-typography {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    /* Match outlined MudSelect/MudNumericField height and border for toggle cells */
    .id-toggle-field {
        width: 100%;
        min-height: 56px;
        padding: 6px 10px 4px;
        border: 1px solid var(--mud-palette-lines-default);
        border-radius: var(--mud-default-borderradius, 4px);
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        background: var(--mud-palette-surface);
    }

    .id-toggle-field-label {
        display: block;
        font-size: 0.75rem;
        line-height: 1.15;
        color: var(--mud-palette-text-secondary);
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        margin-bottom: 2px;
    }

    .id-toggle-field .id-toggle-field-switch {
        margin: 0;
        padding: 0;
        align-self: flex-start;
    }

    .id-toggle-field .mud-switch .mud-switch-track {
        margin-left: 0;
    }

    /* Field label with an inline info icon */
    .id-field-label-row {
        display: flex;
        align-items: center;
        gap: 2px;
        width: 100%;
    }

    .id-field-label-row .id-toggle-field-label {
        margin-bottom: 0;
        flex: 0 1 auto;
    }

    /* A settings input paired with a trailing info icon */
    .id-field-with-info {
        display: flex;
        align-items: center;
        gap: 2px;
        width: 100%;
    }

    .id-field-with-info > .mud-input-control,
    .id-field-with-info > .mud-select {
        flex: 1 1 auto;
        min-width: 0;
    }

    .id-gate-toggle-row {
        display: flex;
        align-items: center;
        gap: 2px;
    }

    .id-gate-toggle-row > .id-toggle-field {
        flex: 1 1 auto;
    }

    .intraday-settings-row-label {
        width: 100%;
        padding: 4px 2px 0;
        font-size: 0.7rem;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: var(--mud-palette-text-secondary);
    }

    .open-positions-table-wrap {
        overflow-x: auto;
    }

    .open-positions-table .open-positions-num {
        text-align: right;
        white-space: nowrap;
        font-variant-numeric: tabular-nums;
    }

    .open-positions-table .mud-table-cell {
        padding-left: 8px;
        padding-right: 8px;
    }

    /* Hard cap on horizontal AND vertical space — with per-day trade caps now allowed up to 500,
       a long session's closed-trades list must scroll internally instead of stretching the whole
       card wider than its grid column or taller than the viewport. */
    .closed-trades-today-wrap {
        max-width: 100%;
        max-height: 480px;
        overflow-x: auto;
        overflow-y: auto;
        scrollbar-width: thin;
        scrollbar-color: color-mix(in srgb, var(--mud-palette-primary) 55%, transparent) transparent;
    }

    .closed-trades-today-wrap::-webkit-scrollbar {
        height: 8px;
        width: 8px;
    }

    .closed-trades-today-wrap::-webkit-scrollbar-thumb {
        background: color-mix(in srgb, var(--mud-palette-primary) 55%, transparent);
        border-radius: 4px;
    }

    .closed-trades-today-wrap::-webkit-scrollbar-track {
        background: transparent;
    }

    .closed-trades-today-wrap .mud-table-container {
        overflow: visible !important;
    }

    /* Shrink-to-content, not stretched to the full card width — the per-column `width: 1%` rules
       below only work as intended when the table itself isn't ALSO forced to width:100% (that
       forces the browser to redistribute the leftover space across columns anyway, producing a
       wide table with a large blank gap after the last meaningful column). Nowrap cells still have
       a content-driven minimum width the browser can't shrink below, so once there are enough
       columns/rows to exceed the wrap's own width, it naturally overflows into the wrap's
       overflow-x:auto (above) instead of bleeding past the card — no min-width needed to force it. */
    .closed-trades-today-wrap .mud-table-root,
    .closed-trades-today-wrap table {
        width: auto !important;
        max-width: 100%;
        min-width: 0 !important;
    }

    .closed-trades-today-table thead th {
        position: sticky;
        top: 0;
        background: var(--mud-palette-surface);
        z-index: 1;
    }

    .closed-trades-today-table {
        table-layout: auto;
    }

    .closed-trades-today-table .mud-table-cell {
        padding: 2px 3px;
        font-size: 0.75rem;
        white-space: nowrap;
        overflow: visible;
        text-overflow: clip;
        vertical-align: middle;
    }

    .closed-trades-today-table .col-eye {
        width: 1%;
        padding-left: 0;
        padding-right: 0;
    }

    .closed-trades-today-table .col-eye .mud-icon-button {
        padding: 0;
        width: 22px;
        height: 22px;
    }

    .closed-trades-today-table .col-num {
        width: 1%;
        padding-left: 0;
        padding-right: 2px;
        text-align: center;
    }

    .trade-seq-num {
        font-size: 0.7rem;
        font-weight: 700;
        color: var(--mud-palette-primary);
        font-variant-numeric: tabular-nums;
        line-height: 1;
    }

    .closed-trades-today-table .col-ticker {
        width: 1%;
        font-weight: 700;
        letter-spacing: -0.02em;
    }

    .closed-trades-today-table .col-closed,
    .closed-trades-today-table .col-pnl,
    .closed-trades-today-table .col-prices,
    .closed-trades-today-table .col-qty,
    .closed-trades-today-table .col-source {
        width: 1%;
        font-variant-numeric: tabular-nums;
    }

    /* Without a width constraint here, this is the only column with no `width: 1%` sibling
       rule, so table-layout:auto hands it ALL of any leftover row width — visually shoving
       col-source (the very next column, Src) far to the right with a big empty gap. */
    .closed-trades-today-table .col-hold {
        width: 1%;
        font-variant-numeric: tabular-nums;
    }

    .closed-trades-today-table .col-pnl,
    .closed-trades-today-table .col-qty,
    .closed-trades-today-table .col-hold {
        text-align: right;
    }

    .closed-trades-today-table .col-source {
        padding-left: 8px;
    }

    .closed-trades-today-table .col-prices {
        font-size: 0.72rem;
    }

    .closed-trades-today-table .col-pnl .mud-typography {
        font-size: 0.75rem !important;
        line-height: 1.2;
    }

    .closed-trades-today-table tbody tr:hover {
        background: color-mix(in srgb, var(--mud-palette-primary) 6%, transparent);
    }

    .closed-trades-today-table .trade-source-tag {
        display: inline-block;
        font-size: 0.62rem;
        font-weight: 700;
        line-height: 1.3;
        padding: 0 3px;
        border-radius: 3px;
        border: 1px solid color-mix(in srgb, var(--mud-palette-warning) 55%, transparent);
        color: var(--mud-palette-warning);
        white-space: nowrap;
    }

    .closed-trades-today-table .trade-source-tag.tag-info {
        border-color: color-mix(in srgb, var(--mud-palette-info) 55%, transparent);
        color: var(--mud-palette-info);
    }

    .closed-trades-today-table .trade-source-tag.tag-default {
        border-color: var(--mud-palette-lines-default);
        color: var(--mud-palette-text-secondary);
    }

    /* Closed Trades naturally shrinks to content width (see comment above) — put the P&L-by-
       trade bar chart in the freed-up right column instead of leaving it blank / stacking full
       width above the table. */
    .results-two-col {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        column-gap: 24px;
        align-items: start;
    }

    .results-col-trades,
    .results-col-chart {
        min-width: 0;
    }

    /* P&L-by-trade bar chart — bounded to the column's width with a visible scrollbar instead of
       bleeding off the edge of the screen when a busy day has many trades. */
    .pnl-bar-chart-scroll {
        max-width: 100%;
        overflow-x: auto;
        padding-bottom: 6px;
        scrollbar-width: thin;
        scrollbar-color: color-mix(in srgb, var(--mud-palette-primary) 55%, transparent) transparent;
    }

    .pnl-bar-chart-scroll::-webkit-scrollbar {
        height: 8px;
    }

    .pnl-bar-chart-scroll::-webkit-scrollbar-thumb {
        background: color-mix(in srgb, var(--mud-palette-primary) 55%, transparent);
        border-radius: 4px;
    }

    .pnl-bar-chart-scroll::-webkit-scrollbar-track {
        background: transparent;
    }

    @media (max-width: 900px) {
        .results-two-col {
            grid-template-columns: 1fr;
            row-gap: 4px;
        }
    }

    @media (max-width: 960px) {
        .run-scope-hint {
            white-space: normal;
        }

        .alert-status-pill {
            font-size: 0.68rem;
            padding: 2px 6px;
        }

        .alert-status-legend {
            gap: 6px;
        }

        .alert-status-legend-item {
            font-size: 0.68rem;
        }
    }

    @media (max-width: 700px) {
        .section-card {
            padding: 10px !important;
            margin-bottom: 10px !important;
        }

        .section-card .section-header {
            margin-bottom: 8px !important;
            align-items: flex-start;
            gap: 6px !important;
        }

        .section-card .mud-table-cell {
            padding-top: 6px;
            padding-bottom: 6px;
        }

        .section-card .mud-button-root {
            min-height: 38px;
        }

        .section-subcaption {
            font-size: 0.72rem;
            line-height: 1.25;
        }

        .alert-controls-row {
            width: 100%;
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 8px;
            align-items: start;
        }

        .alert-controls-row .mud-switch {
            min-height: 40px;
        }

        .alert-action-button {
            min-height: 40px;
            width: 100%;
            justify-content: center;
            font-weight: 600;
        }

        .alert-cooldown-select {
            width: 100%;
            min-width: 0 !important;
        }

        .alert-status-legend {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 6px 8px;
        }

        .alert-status-legend-item {
            min-width: 0;
            line-height: 1.2;
        }

        .matched-signals-row {
            align-items: flex-start;
            gap: 6px;
        }

        .matched-signals-row .alert-status-pill {
            align-self: flex-start;
        }
    }

    @media (max-width: 480px) {
        .section-card {
            padding: 8px !important;
        }

        .section-subcaption {
            font-size: 0.68rem;
        }

        .alert-controls-row {
            grid-template-columns: 1fr;
        }

        .alert-status-legend {
            grid-template-columns: 1fr;
        }

        .alert-status-legend-item {
            font-size: 0.66rem;
        }
    }

    @keyframes justNowPulse {
        0%   { background-color: rgba(255, 196, 0, 0.0); }
        50%  { background-color: rgba(255, 196, 0, 0.18); }
        100% { background-color: rgba(255, 196, 0, 0.0); }
    }

    .just-now-row > td { animation: justNowPulse 2s ease-in-out infinite; }

    .just-now-dot {
        display: inline-block;
        width: 8px; height: 8px;
        border-radius: 50%;
        background: #ffc400;
        animation: justNowPulse 1s ease-in-out infinite;
        margin-right: 5px;
        vertical-align: middle;
    }

    .id-session-panel {
        border: 1px solid rgba(0, 150, 255, 0.35) !important;
        background: rgba(0, 150, 255, 0.03);
    }

    .session-opened-table .session-opened-num {
        text-align: right;
        white-space: nowrap;
    }

    .session-opened-table .mud-table-cell {
        vertical-align: middle;
    }

    .session-opened-header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 20px 28px;
        flex-wrap: wrap;
        margin-bottom: 10px;
    }

    .session-opened-header-main {
        flex: 1 1 280px;
        min-width: 0;
        display: flex;
        align-items: flex-start;
        gap: 12px;
    }

    .session-opened-header-titles {
        display: flex;
        flex-direction: column;
        gap: 6px;
        min-width: 0;
    }

    .session-opened-header-title-row {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 10px 14px;
    }

    .session-opened-header-sort {
        flex: 0 0 auto;
        display: flex;
        align-items: center;
        gap: 8px;
        padding-top: 2px;
    }

    .session-opened-header-sort .session-opened-sort-select {
        width: 11.5rem;
        max-width: 11.5rem;
        flex: 0 0 auto;
    }

    .expectancy-positive { color: var(--mud-palette-success); font-weight: 700; }
    .expectancy-negative { color: var(--mud-palette-error);   font-weight: 700; }
    .expectancy-neutral  { color: var(--mud-palette-text-secondary); font-weight: 700; }
    .expectancy-sample-warning { color: var(--mud-palette-warning-darken); font-weight: 600; }

    .id-focus-chart-item {
        order: -1;
    }

    .focus-chart-toolbar-panel {
        background: var(--mud-palette-surface);
    }

    .focus-chart-toolbar-head {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 12px;
        flex-wrap: wrap;
        margin-bottom: 10px;
    }

    .focus-chart-toolbar-row {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 12px 16px;
        padding: 10px 12px;
        border-radius: 8px;
        border: 1px solid var(--mud-palette-lines-default);
        background: var(--mud-palette-background-grey);
    }

    .focus-chart-toolbar-row--disabled {
        opacity: 0.72;
    }

    .focus-chart-toolbar-group {
        display: flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
    }

    .focus-chart-toolbar-label {
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: var(--mud-palette-text-secondary);
        white-space: nowrap;
    }

    .focus-chart-toolbar-controls {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 4px;
    }

    .focus-chart-interval-select {
        font-size: 0.78rem;
        padding: 4px 8px;
        border: 1px solid var(--mud-palette-lines-default);
        border-radius: 6px;
        background: var(--mud-palette-surface);
        color: var(--mud-palette-text-primary);
        min-width: 88px;
    }

    .focus-chart-expand-btn {
        margin-left: auto;
    }

    .focus-chart-shell {
        background: var(--mud-palette-surface);
        border-radius: 8px;
        padding: 8px 8px 4px;
    }

    .focus-chart-shell .focus-chart-title-row {
        padding: 0 2px 4px;
    }

    .focus-chart-shell #intraday-dashboard2-chart-hdr {
        color: var(--mud-palette-text-primary);
        border-bottom: 1px solid var(--mud-palette-lines-default);
        padding-bottom: 6px;
        margin-bottom: 4px;
    }

    .focus-chart-shell #intraday-dashboard2-chart-hdr span[style*="font-size:10px"] {
        color: var(--mud-palette-text-secondary) !important;
    }

    .focus-chart-shell svg.focus-chart-svg,
    .focus-chart-shell svg.stock-chart-svg {
        display: block;
        width: 100%;
        min-height: 380px;
        border-radius: 6px;
    }

    .focus-chart-indicators {
        padding: 6px 8px;
        border-radius: 8px;
        border: 1px solid var(--mud-palette-lines-default);
        background: linear-gradient(
            135deg,
            var(--mud-palette-surface) 0%,
            var(--mud-palette-background-grey) 100%
        );
    }

    .focus-chart-indicators-label {
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: var(--mud-palette-text-secondary);
        margin-right: 2px;
    }

    .focus-chart-ind-chip {
        display: inline-flex;
        align-items: center;
        gap: 5px;
        padding: 3px 10px 3px 7px;
        border-radius: 999px;
        border: 1px solid var(--mud-palette-lines-default);
        background: transparent;
        color: var(--mud-palette-text-secondary);
        font-size: 0.72rem;
        font-weight: 600;
        font-family: inherit;
        cursor: pointer;
        transition: all 0.15s ease;
        line-height: 1.2;
    }

    .focus-chart-ind-chip:hover {
        border-color: var(--mud-palette-primary);
        color: var(--mud-palette-text-primary);
    }

    .focus-chart-ind-chip--on {
        border-color: var(--ind-color, var(--mud-palette-primary));
        color: var(--ind-color, var(--mud-palette-primary));
        background: color-mix(in srgb, var(--ind-color, var(--mud-palette-primary)) 12%, transparent);
        box-shadow: 0 0 0 1px color-mix(in srgb, var(--ind-color, var(--mud-palette-primary)) 25%, transparent);
    }

    .focus-chart-ind-chip-swatch {
        width: 8px;
        height: 8px;
        border-radius: 50%;
        flex-shrink: 0;
        box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
    }

    .focus-chart-ind-chip-wrap {
        display: inline-flex;
        align-items: center;
        gap: 0;
    }

    .focus-chart-ind-info {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 22px;
        height: 22px;
        margin-left: -2px;
        padding: 0;
        border: none;
        background: transparent;
        border-radius: 50%;
        cursor: pointer;
        opacity: 0.55;
        transition: opacity 0.15s ease, background 0.15s ease;
    }

    .focus-chart-ind-info:hover {
        opacity: 1;
        background: color-mix(in srgb, currentColor 12%, transparent);
    }

    .focus-chart-ind-insight-btn {
        width: 28px !important;
        height: 28px !important;
        margin-right: 2px;
    }

    .focus-chart-plot-wrap {
        position: relative;
    }

    /* Under-chart strip — never overlays the plot (replaces the old absolute callout). */
    .focus-chart-now-strip {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 6px 10px;
        width: 100%;
        margin: 4px 0 0;
        padding: 5px 8px;
        border: 0;
        border-top: 1px solid var(--mud-palette-lines-default);
        border-radius: 0;
        background: color-mix(in srgb, var(--mud-palette-surface) 88%, var(--mud-palette-info));
        cursor: pointer;
        text-align: left;
        font-family: inherit;
        color: var(--mud-palette-text-primary);
        transition: background 0.15s ease;
    }

    .focus-chart-now-strip:hover {
        background: color-mix(in srgb, var(--mud-palette-info) 14%, var(--mud-palette-surface));
    }

    .focus-chart-now-strip-kicker {
        font-size: 0.62rem;
        font-weight: 800;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: var(--mud-palette-info);
        flex-shrink: 0;
    }

    .focus-chart-now-strip-chip {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 1px 0;
        min-width: 0;
    }

    .focus-chart-now-strip-swatch {
        width: 6px;
        height: 6px;
        border-radius: 50%;
        flex-shrink: 0;
        box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.18);
    }

    .focus-chart-now-strip-name {
        font-size: 0.68rem;
        font-weight: 800;
        white-space: nowrap;
    }

    .focus-chart-now-strip-pct {
        font-size: 0.68rem;
        font-weight: 700;
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }

    .focus-chart-now-strip-bias {
        font-size: 0.62rem;
        font-weight: 600;
        color: var(--mud-palette-text-secondary);
        text-transform: lowercase;
        white-space: nowrap;
    }

    .focus-chart-now-strip-cta {
        margin-left: auto;
        flex-shrink: 0;
        font-size: 0.62rem;
        font-weight: 800;
        letter-spacing: 0.02em;
        text-transform: uppercase;
        color: var(--mud-palette-info);
        padding: 1px 7px;
        border-radius: 999px;
        background: color-mix(in srgb, var(--mud-palette-info) 16%, transparent);
        border: 1px solid color-mix(in srgb, var(--mud-palette-info) 35%, transparent);
    }

    .focus-chart-overlay-caption-pill {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        max-width: 100%;
        padding: 3px 8px 3px 6px;
        border-radius: 999px;
        border: 1px dashed color-mix(in srgb, var(--mud-palette-info) 55%, var(--mud-palette-lines-default));
        background: color-mix(in srgb, var(--mud-palette-info) 12%, var(--mud-palette-surface));
        color: var(--mud-palette-text-primary);
        font-family: inherit;
        cursor: pointer;
        transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
    }

    .focus-chart-overlay-caption-pill:hover {
        background: color-mix(in srgb, var(--mud-palette-info) 20%, var(--mud-palette-surface));
        border-color: var(--mud-palette-info);
        border-style: solid;
        box-shadow: 0 0 0 2px color-mix(in srgb, var(--mud-palette-info) 22%, transparent);
    }

    .focus-chart-overlay-caption-icon {
        font-size: 0.95rem !important;
        color: var(--mud-palette-info);
        flex-shrink: 0;
    }

    .focus-chart-overlay-caption-text {
        font-size: 0.68rem;
        font-weight: 600;
        line-height: 1.2;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .focus-chart-overlay-caption-cta {
        flex-shrink: 0;
        font-size: 0.62rem;
        font-weight: 800;
        letter-spacing: 0.02em;
        text-transform: uppercase;
        color: var(--mud-palette-info);
        padding: 1px 6px;
        border-radius: 999px;
        background: color-mix(in srgb, var(--mud-palette-info) 18%, transparent);
    }

    .focus-chart-overlay-caption-btn {
        text-transform: none !important;
        font-size: 0.68rem !important;
        line-height: 1.2 !important;
        min-height: 0 !important;
        padding: 0 4px !important;
        font-weight: 600 !important;
    }

    .focus-chart-ind-tooltip {
        max-width: 300px;
        padding: 4px 2px;
    }

    .focus-chart-ind-help {
        max-width: 320px;
        padding: 4px 2px;
    }
    .alert-status-pill {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 2px 8px;
        border-radius: 999px;
        font-size: 0.72rem;
        font-weight: 700;
        letter-spacing: .01em;
        border: 1px solid transparent;
        white-space: nowrap;
    }

    .alert-status-live {
        color: #1b5e20;
        background: rgba(76, 175, 80, 0.18);
        border-color: rgba(76, 175, 80, 0.45);
    }

    .alert-status-cooldown {
        color: #0d47a1;
        background: rgba(33, 150, 243, 0.15);
        border-color: rgba(33, 150, 243, 0.40);
    }

    .alert-status-muted {
        color: #e65100;
        background: rgba(255, 152, 0, 0.16);
        border-color: rgba(255, 152, 0, 0.45);
    }

    .alert-status-highconf {
        color: #4a148c;
        background: rgba(156, 39, 176, 0.15);
        border-color: rgba(156, 39, 176, 0.42);
    }

    @keyframes alertCooldownPulse {
        0% { box-shadow: 0 0 0 0 rgba(33, 150, 243, 0.40); }
        70% { box-shadow: 0 0 0 8px rgba(33, 150, 243, 0.0); }
        100% { box-shadow: 0 0 0 0 rgba(33, 150, 243, 0.0); }
    }

    .alert-status-pulse {
        animation: alertCooldownPulse 1.5s ease-out infinite;
    }

    @media (prefers-reduced-motion: reduce) {
        .alert-status-pulse {
            animation: none;
        }
    }

    .alert-status-legend {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        flex-wrap: wrap;
        margin-top: 4px;
    }

    .alert-status-legend-item {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        font-size: 0.72rem;
        color: var(--mud-palette-text-secondary);
    }

    .alert-toolbar-meta {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 6px 10px;
        width: 100%;
        margin-top: 6px;
    }

    .alert-status-legend-compact {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .alert-status-legend-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        flex-wrap: wrap;
    }

    .focus-ticker-header {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 10px;
        margin-bottom: 8px;
    }

    .focus-ticker-main {
        min-width: 0;
    }

    .focus-ticker-nav-row {
        display: flex;
        align-items: center;
        gap: 0;
    }

    .focus-ticker-symbol {
        font-size: 1.35rem;
        font-weight: 700;
        letter-spacing: 0.02em;
        line-height: 1.1;
        padding: 0 4px;
    }

    .focus-ticker-company {
        font-size: 0.78rem;
        color: var(--mud-palette-text-secondary);
        padding-left: 34px;
        margin-top: 2px;
        line-height: 1.2;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 280px;
    }

    .focus-ticker-quote-row {
        display: flex;
        align-items: baseline;
        flex-wrap: wrap;
        gap: 6px 10px;
        margin-top: 4px;
        padding-left: 34px;
        font-size: 0.82rem;
    }

    .focus-ticker-price {
        font-weight: 600;
        color: var(--mud-palette-text-primary);
    }

    .focus-ticker-day-change {
        font-weight: 600;
    }

    .focus-ticker-queue-pos {
        color: var(--mud-palette-text-secondary);
        font-size: 0.75rem;
    }

    .focus-ticker-meta {
        display: flex;
        gap: 4px;
        flex-wrap: wrap;
        justify-content: flex-end;
        flex-shrink: 0;
    }

    .setup-quality-go {
        border: 1px solid var(--mud-palette-success);
        border-left: 5px solid var(--mud-palette-success);
        background: rgba(76, 175, 80, 0.10);
        border-radius: 8px;
    }

    .setup-quality-caution {
        border: 1px solid var(--mud-palette-warning);
        border-left: 5px solid var(--mud-palette-warning);
        background: rgba(255, 152, 0, 0.10);
        border-radius: 8px;
    }

    .setup-quality-nogo {
        border: 1px solid var(--mud-palette-error);
        border-left: 5px solid var(--mud-palette-error);
        background: rgba(244, 67, 54, 0.10);
        border-radius: 8px;
    }

    .id-cockpit-sticky {
        position: sticky;
        top: 0;
        z-index: 12;
        margin-bottom: 8px;
        background: var(--mud-palette-background);
        padding-bottom: 4px;
    }

    .intraday-context-bar {
        border: 1px solid var(--mud-palette-lines-default);
        border-radius: 10px;
    }

    .intraday-context-row {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-end;
        gap: 20px 24px;
    }

    .intraday-context-row .mud-input-control {
        margin-top: 0;
        margin-bottom: 0;
    }

    .intraday-context-field {
        min-width: 0;
    }

    .intraday-context-field--portfolio {
        flex: 1 1 300px;
    }

    .intraday-context-field--ticker {
        flex: 1 1 200px;
        max-width: 280px;
    }

    .intraday-context-field--run {
        flex: 0 1 180px;
        min-width: 150px;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
    }

    .intraday-context-run-label-spacer {
        height: 20px;
        flex-shrink: 0;
    }

    .intraday-context-field--refresh {
        flex: 0 0 auto;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding-bottom: 4px;
    }

    .intraday-run-cycle-btn {
        height: 40px !important;
        min-height: 40px !important;
        width: 100%;
        margin: 0 !important;
        text-transform: none;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    .intraday-panels-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        margin-bottom: 8px;
        align-items: start;
    }

    .intraday-panel-shell {
        min-width: 0;
        border: 1px solid var(--mud-palette-lines-default);
        border-radius: 10px;
        overflow: hidden;
    }

    /* Custom CSS-only collapsible panels — no JS interop, animation starts immediately on render */
    .id-panel {
        background: transparent;
    }

    .id-panel-header {
        display: flex;
        flex-direction: column;
        gap: 2px;
        padding: 8px 12px;
        width: 100%;
        background: transparent;
        border: none;
        text-align: left;
        cursor: pointer;
        user-select: none;
        color: inherit;
        font: inherit;
        border-radius: 10px 10px 0 0;
        transition: background 100ms ease;
    }

    .id-panel-header:hover,
    .id-panel-header:focus-visible {
        background: rgba(128, 128, 128, 0.06);
    }

    .id-panel-chevron {
        margin-left: auto;
        flex-shrink: 0;
        transition: transform 100ms ease;
    }

    .id-panel--open .id-panel-chevron {
        transform: rotate(180deg);
    }

    /* grid-template-rows trick: pure CSS, no height measurement, GPU-composited */
    .id-panel-body-wrapper {
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows 90ms ease-in-out;
    }

    .id-panel--open .id-panel-body-wrapper {
        grid-template-rows: 1fr;
    }

    .id-panel-body {
        overflow: hidden;
        min-height: 0;
    }

    .intraday-settings-compact-grid {
        row-gap: 8px !important;
    }

    .intraday-settings-compact-grid > .mud-grid-item {
        padding: 2px 4px !important;
    }

    .intraday-settings-gates {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .focus-price-now {
        padding: 6px 8px;
        border-radius: 6px;
        background: rgba(var(--mud-palette-info-rgb), 0.08);
        border: 1px solid rgba(var(--mud-palette-info-rgb), 0.25);
    }

    @media (max-width: 900px) {
        .intraday-panels-row {
            grid-template-columns: 1fr;
        }
    }

    .intraday-context-chips {
        display: flex;
        flex-direction: column;
        gap: 6px;
        margin-top: 10px;
        padding-top: 8px;
        border-top: 1px solid var(--mud-palette-lines-default);
    }

    .intraday-context-chips-row,
    .intraday-context-settings-chips {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
    }

    .intraday-context-status-line {
        width: 100%;
    }

    .intraday-settings-panels {
        border: 1px solid var(--mud-palette-lines-default);
        border-radius: 10px;
        overflow: hidden;
    }

    .intraday-settings-panels .mud-expand-panel {
        background: transparent;
    }

    .intraday-settings-summary {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        margin-top: 6px;
    }

    .intraday-settings-section-label {
        font-size: 0.72rem;
        font-weight: 600;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: var(--mud-palette-text-secondary);
        width: 100%;
        margin-top: 4px;
    }

    @media (max-width: 600px) {
        .intraday-context-row {
            flex-direction: column;
            align-items: stretch;
            gap: 12px;
        }

        .intraday-context-field--ticker,
        .intraday-context-field--run {
            flex: 1 1 auto;
            max-width: none;
        }
    }

    /* ── Consistency utilities ───────────────────────────────────── */
    .stat-label {
        font-size: 0.65em;
        text-transform: uppercase;
        opacity: 0.6;
        display: block;
    }
    .num { font-variant-numeric: tabular-nums; }

    /* ── Day-Trader Enhancements ─────────────────────────────────── */

    .today-pos-cards-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
        gap: 12px;
        margin-top: 8px;
    }

    .today-pos-card {
        border: 1px solid var(--mud-palette-lines-default);
        border-radius: 8px;
        padding: 12px 14px;
        background: var(--mud-palette-surface);
        display: flex;
        flex-direction: column;
        gap: 8px;
        transition: box-shadow 0.2s ease;
    }

    .today-pos-card:hover { box-shadow: 0 2px 10px rgba(0,0,0,0.13); }
    .today-pos-card.pos-winning  { border-left: 3px solid var(--mud-palette-success); }
    .today-pos-card.pos-losing   { border-left: 3px solid var(--mud-palette-error); }
    .today-pos-card.pos-breakeven { border-left: 3px solid var(--mud-palette-info); }
    .today-pos-card.pos-pending-fill {
        border-left: 3px solid var(--mud-palette-info);
        border-style: dashed solid solid solid;
        background: rgba(33, 150, 243, 0.05);
        animation: pending-fill-card-pulse 2s ease-in-out infinite;
    }

@keyframes pending-fill-pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.55; }
}

@keyframes pending-fill-card-pulse {
    0%, 100% { background: rgba(33, 150, 243, 0.05); }
    50%       { background: rgba(33, 150, 243, 0.11); }
}

    .pending-fill-now-row {
        background: rgba(33, 150, 243, 0.1);
        border-radius: 6px;
        padding: 4px 8px;
    }

    .today-pos-context-row {
        border-bottom: 1px dashed var(--mud-palette-lines-default);
        padding-bottom: 4px;
        color: var(--mud-palette-text-secondary);
    }

    /* Flags a position with no EntryStrategy/ProtectiveStopPrice — likely opened outside the
       ID dashboard (legacy Auto-Trade engine or an untracked broker-side fill) and therefore
       has no ID-tracked stop. */
    .today-pos-nonid-banner {
        display: flex;
        align-items: center;
        gap: 5px;
        font-size: 0.7rem;
        font-weight: 700;
        letter-spacing: 0.01em;
        color: var(--mud-palette-warning-darken, var(--mud-palette-warning));
        background: color-mix(in srgb, var(--mud-palette-warning) 12%, transparent);
        border: 1px solid color-mix(in srgb, var(--mud-palette-warning) 30%, transparent);
        border-radius: 5px;
        padding: 3px 7px;
        margin: -2px 0 2px;
        cursor: default;
    }

    .today-pos-now-row {
        display: flex;
        align-items: center;
        gap: 8px;
        margin: 4px 0 2px;
        padding: 7px 10px;
        border-radius: 8px;
        border: 1px solid var(--mud-palette-lines-default);
    }

    .today-pos-now-row.today-pos-now-row--actionable {
        cursor: pointer;
        transition: filter 0.12s ease, box-shadow 0.12s ease;
        user-select: none;
    }

    .today-pos-now-row.today-pos-now-row--actionable:hover {
        filter: brightness(1.08);
        box-shadow: 0 0 0 1px color-mix(in srgb, var(--mud-palette-primary) 35%, transparent);
    }

    .today-pos-now-row.today-pos-now-row--actionable:active {
        filter: brightness(0.96);
    }

    .today-pos-now-row.now-action-urgent {
        background: color-mix(in srgb, var(--mud-palette-error) 12%, transparent);
        border-color: color-mix(in srgb, var(--mud-palette-error) 40%, transparent);
    }

    .today-pos-now-row.now-action-warn {
        background: color-mix(in srgb, var(--mud-palette-warning) 10%, transparent);
        border-color: color-mix(in srgb, var(--mud-palette-warning) 35%, transparent);
    }

    .today-pos-now-row.now-action-hold,
    .today-pos-now-row.now-action-profit {
        background: color-mix(in srgb, var(--mud-palette-success) 10%, transparent);
        border-color: color-mix(in srgb, var(--mud-palette-success) 30%, transparent);
    }

    .today-pos-now-row.now-action-watch,
    .today-pos-now-row.now-action-loading {
        background: color-mix(in srgb, var(--mud-palette-info) 8%, transparent);
        border-color: color-mix(in srgb, var(--mud-palette-info) 25%, transparent);
    }

    .today-pos-now-label {
        font-size: 0.62rem;
        font-weight: 700;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        opacity: 0.65;
        flex-shrink: 0;
    }

    .today-pos-now-chip {
        height: 24px !important;
        font-size: 0.78rem !important;
        font-weight: 800 !important;
        letter-spacing: 0.04em;
        margin: 0 !important;
        padding: 0 10px !important;
    }

    .today-pos-now-chip--actionable {
        pointer-events: none; /* row handles the click */
    }

    .today-pos-now-go {
        margin-left: auto;
        font-size: 0.95rem;
        font-weight: 700;
        opacity: 0.55;
        line-height: 1;
    }

    .today-pos-now-row--actionable:hover .today-pos-now-go {
        opacity: 0.9;
    }

    .today-pos-ticker-name {
        color: var(--mud-palette-primary);
        cursor: pointer;
        font-size: 1.08rem;
        font-weight: 800;
        letter-spacing: -0.01em;
        white-space: nowrap;
    }

    .today-pos-ticker-name:hover {
        text-decoration: underline;
        text-underline-offset: 2px;
    }

    .today-pos-company-name {
        font-size: 0.70rem;
        color: var(--mud-palette-text-secondary);
        margin-top: 2px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 160px;
        opacity: 0.8;
    }

    .today-pos-mark-line {
        font-size: 0.70rem;
        margin-top: 2px;
        display: flex;
        align-items: baseline;
        flex-wrap: wrap;
        gap: 0;
    }

    .today-pos-card-pnl {
        text-align: right;
        flex-shrink: 0;
        line-height: 1.25;
    }

    .trade-env-section {
        margin-bottom: 12px;
    }

    .trade-env-section:last-child {
        margin-bottom: 0;
    }

    .trade-env-label {
        font-size: 0.68rem;
        color: var(--mud-palette-text-secondary);
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        margin-bottom: 6px;
    }

    .trade-env-breadth-bar {
        display: flex;
        height: 8px;
        border-radius: 4px;
        overflow: hidden;
        background: var(--mud-palette-lines-default);
        margin-bottom: 6px;
    }

    .trade-env-breadth-buy {
        background: var(--mud-palette-success);
        min-width: 2px;
        transition: width 0.25s ease;
    }

    .trade-env-breadth-sell {
        background: var(--mud-palette-error);
        min-width: 2px;
        transition: width 0.25s ease;
    }

    .trade-env-breadth-mixed {
        background: var(--mud-palette-warning);
        min-width: 2px;
        transition: width 0.25s ease;
    }

    .trade-env-breadth-meta {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        flex-wrap: wrap;
        font-size: 0.74rem;
        font-variant-numeric: tabular-nums;
    }

    .trade-env-benchmark-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .trade-env-benchmark-row {
        padding: 7px 9px;
        border: 1px solid var(--mud-palette-lines-default);
        border-radius: 8px;
        background: color-mix(in srgb, var(--mud-palette-surface) 80%, transparent);
        min-width: 0;
    }

    .trade-env-benchmark-row.is-portfolio {
        border-color: color-mix(in srgb, var(--mud-palette-primary) 55%, var(--mud-palette-lines-default));
        background: color-mix(in srgb, var(--mud-palette-primary) 7%, var(--mud-palette-surface));
    }

    .trade-env-benchmark-head {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 8px;
        margin-bottom: 4px;
    }

    .trade-env-benchmark-name {
        font-size: 0.72rem;
        font-weight: 700;
        color: var(--mud-palette-text-secondary);
    }

    .trade-env-benchmark-price {
        font-size: 0.95rem;
        font-weight: 700;
        font-variant-numeric: tabular-nums;
    }

    .trade-env-benchmark-chg {
        font-size: 0.72rem;
        font-weight: 600;
        font-variant-numeric: tabular-nums;
    }

    .trade-env-range-bar {
        display: flex;
        height: 5px;
        border-radius: 3px;
        overflow: hidden;
        background: var(--mud-palette-lines-default);
        margin: 5px 0 3px;
    }

    .trade-env-range-fill {
        height: 100%;
        border-radius: 3px;
        transition: width 0.25s ease;
    }

    .trade-env-range-caption {
        font-size: 0.68rem;
        color: var(--mud-palette-text-secondary);
    }

    .trade-env-playbook {
        padding-top: 10px;
        border-top: 1px solid var(--mud-palette-lines-default);
        margin-top: 2px;
    }

    .trade-env-playbook-headline {
        font-size: 0.78rem;
        font-weight: 700;
        line-height: 1.35;
        margin-bottom: 3px;
    }

    .trade-env-playbook-hint {
        font-size: 0.72rem;
        color: var(--mud-palette-text-secondary);
        line-height: 1.4;
    }

    .today-pos-status-line {
        font-size: 0.75rem;
        color: var(--mud-palette-text-secondary);
        margin: 0 0 4px 0;
        line-height: 1.4;
        padding-left: 2px;
    }

    .today-pos-sparkline {
        width: 100%;
        height: 36px;
        border-radius: 6px;
        overflow: visible;
        background: color-mix(in srgb, var(--mud-palette-background) 55%, transparent);
        border: 1px solid var(--mud-palette-lines-default);
        cursor: pointer;
        transition: border-color 0.15s ease;
    }

    .today-pos-sparkline svg {
        display: block;
        border-radius: 6px;
        overflow: hidden;
    }

    .today-pos-sparkline:hover {
        border-color: color-mix(in srgb, var(--mud-palette-primary) 45%, var(--mud-palette-lines-default));
    }

    .session-results-day-nav {
        padding: 6px 8px;
        border: 1px solid var(--mud-palette-lines-default);
        border-radius: 8px;
        background: color-mix(in srgb, var(--mud-palette-background) 50%, var(--mud-palette-surface));
    }

    .session-results-day-nav .session-results-day-label {
        font-weight: 700;
        font-size: 0.82rem;
        letter-spacing: 0.01em;
    }

    .session-results-day-select {
        min-width: 148px;
        height: 28px;
        border: 1px solid var(--mud-palette-lines-default);
        border-radius: 4px;
        background: var(--mud-palette-surface);
        color: var(--mud-palette-text-primary);
        font-size: 0.82rem;
        font-weight: 600;
        padding: 0 8px;
    }

    .id-results-topline {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        border: 1px solid var(--mud-palette-lines-default);
        border-radius: 6px;
        overflow: hidden;
        margin-bottom: 4px;
    }

    .id-results-topline-cell {
        display: flex;
        flex-direction: column;
        gap: 2px;
        padding: 10px 14px;
        border-right: 1px solid var(--mud-palette-lines-default);
        min-width: 0;
    }

    .id-results-topline-cell:last-child {
        border-right: none;
    }

    .id-results-topline-value {
        font-size: 1.35rem;
        font-weight: 700;
        line-height: 1.15;
        font-variant-numeric: tabular-nums;
        white-space: nowrap;
    }

    .id-results-topline-wlb {
        display: flex;
        align-items: baseline;
        gap: 4px;
    }

    .id-results-topline-label {
        font-size: 0.72rem;
        color: var(--mud-palette-text-secondary);
        line-height: 1.25;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    @media (max-width: 600px) {
        .id-results-topline {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        .id-results-topline-cell:nth-child(2) {
            border-right: none;
        }

        .id-results-topline-cell:nth-child(1),
        .id-results-topline-cell:nth-child(2) {
            border-bottom: 1px solid var(--mud-palette-lines-default);
        }
    }

    .closed-trades-today-table th,
    .closed-trades-today-table td {
        padding: 3px 4px;
        font-size: 0.78rem;
        text-align: left;
        border-bottom: 1px solid var(--mud-palette-lines-default);
        white-space: nowrap;
    }

    .closed-trades-today-table thead th {
        font-weight: 600;
        color: var(--mud-palette-text-secondary);
        font-size: 0.7rem;
        text-transform: uppercase;
        letter-spacing: 0.02em;
    }

    .stop-suggestion-banner {
        display: flex;
        align-items: flex-start;
        gap: 6px;
        background: color-mix(in srgb, var(--mud-palette-warning) 8%, transparent);
        border: 1px solid color-mix(in srgb, var(--mud-palette-warning) 35%, transparent);
        border-radius: 8px;
        padding: 8px 10px;
        margin: 4px 0;
    }

    .exits-set-banner {
        display: flex;
        align-items: flex-start;
        gap: 6px;
        background: color-mix(in srgb, var(--mud-palette-success) 8%, transparent);
        border: 1px solid color-mix(in srgb, var(--mud-palette-success) 35%, transparent);
        border-radius: 8px;
        padding: 8px 10px;
        margin: 4px 0;
    }

    /* OCO-exit inline edit form fields */
    .stop-suggestion-banner .mud-input-root {
        font-size: 0.82rem;
    }

    .stop-suggestion-banner .mud-input-label {
        font-size: 0.78rem;
    }

    /* ── Position card price snapshot ─────────────────────────────────────── */
    .pos-price-snapshot {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(72px, 1fr));
        gap: 6px;
        background: transparent;
        border: none;
        padding: 0;
        margin: 8px 0 6px;
    }

    .pos-price-cell {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        gap: 3px;
        padding: 7px 8px 6px;
        min-width: 0;
        border-radius: 9px;
        background: color-mix(in srgb, var(--mud-palette-background-grey) 50%, transparent);
        border: 1px solid color-mix(in srgb, var(--mud-palette-lines-default) 70%, transparent);
        transition: transform .12s ease, border-color .12s ease, background .12s ease;
    }

    .pos-price-cell:hover {
        transform: translateY(-1px);
        border-color: color-mix(in srgb, var(--mud-palette-lines-default) 100%, transparent);
    }

    /* Per-metric accents */
    .pos-price-cell--mark {
        background: color-mix(in srgb, var(--mud-palette-primary) 7%, transparent);
        border-color: color-mix(in srgb, var(--mud-palette-primary) 22%, transparent);
    }

    .pos-price-cell--stop {
        background: color-mix(in srgb, var(--mud-palette-error) 7%, transparent);
        border-color: color-mix(in srgb, var(--mud-palette-error) 24%, transparent);
    }

    .pos-price-cell--stop .pos-price-label,
    .pos-price-cell--stop .pos-price-big,
    .pos-price-cell--stop .pos-price-move {
        color: var(--mud-palette-error);
    }

    .pos-price-cell--target {
        background: color-mix(in srgb, var(--mud-palette-success) 7%, transparent);
        border-color: color-mix(in srgb, var(--mud-palette-success) 24%, transparent);
    }

    .pos-price-cell--target .pos-price-label,
    .pos-price-cell--target .pos-price-big,
    .pos-price-cell--target .pos-price-move {
        color: var(--mud-palette-success);
    }

    .pos-price-cell--rr {
        background: color-mix(in srgb, var(--mud-palette-info) 8%, transparent);
        border-color: color-mix(in srgb, var(--mud-palette-info) 26%, transparent);
        justify-content: center;
    }

    .pos-price-label {
        font-size: 0.56rem;
        font-weight: 700;
        letter-spacing: .09em;
        text-transform: uppercase;
        color: var(--mud-palette-text-secondary);
        white-space: nowrap;
        opacity: .85;
    }

    .pos-price-big {
        font-size: 1.02rem;
        font-weight: 700;
        line-height: 1.1;
        white-space: nowrap;
        font-variant-numeric: tabular-nums;
    }

    .pos-price-move {
        font-size: 0.64rem;
        font-weight: 500;
        white-space: nowrap;
        line-height: 1.15;
        text-align: center;
        color: var(--mud-palette-text-secondary);
    }

    .pos-price-rr-value {
        font-size: 0.95rem;
        font-weight: 800;
        line-height: 1.1;
        color: var(--mud-palette-info);
        font-variant-numeric: tabular-nums;
    }

    /* Pending exit orders panel (broker fill detection) */
    .pending-exits-panel {
        background: color-mix(in srgb, var(--mud-palette-warning) 6%, transparent);
        border: 1px solid color-mix(in srgb, var(--mud-palette-warning) 25%, transparent);
        border-radius: 6px;
        padding: 8px 10px 10px;
    }

    .pending-exits-header {
        display: flex;
        align-items: center;
        gap: 6px;
        margin-bottom: 6px;
    }

    .pending-exits-title {
        font-size: 0.75rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.035em;
        color: var(--mud-palette-text-primary);
    }

    .pending-exits-count {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 18px;
        height: 18px;
        padding: 0 5px;
        border-radius: 9px;
        font-size: 0.72rem;
        font-weight: 700;
        line-height: 1;
        background: color-mix(in srgb, var(--mud-palette-warning) 28%, transparent);
        color: var(--mud-palette-warning-darken, var(--mud-palette-warning));
    }

    .pending-exits-hint {
        font-size: 0.72rem;
        color: var(--mud-palette-text-secondary);
        cursor: default;
        margin-left: 1px;
    }

    .pending-exits-list {
        display: flex;
        flex-direction: column;
        gap: 2px;
        max-height: 11.5rem; /* ~5 readable rows, then scroll */
        overflow-y: auto;
        padding-right: 6px;
        margin-right: -6px;
        /* flex-shrink:0 on rows (below) — without it, flex children compress to fit max-height
           instead of overflowing, producing an unreadable wall of squashed text. */
        scrollbar-width: thin;
        scrollbar-color: color-mix(in srgb, var(--mud-palette-warning) 55%, transparent) transparent;
    }

    .pending-exits-list::-webkit-scrollbar {
        width: 7px;
    }

    .pending-exits-list::-webkit-scrollbar-track {
        background: transparent;
    }

    .pending-exits-list::-webkit-scrollbar-thumb {
        background: color-mix(in srgb, var(--mud-palette-warning) 45%, transparent);
        border-radius: 4px;
    }

    .pending-exits-list::-webkit-scrollbar-thumb:hover {
        background: color-mix(in srgb, var(--mud-palette-warning) 70%, transparent);
    }

    .pending-exit-row {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: 0.85rem;
        line-height: 1.35;
        min-width: 0;
        min-height: 1.75rem;
        flex-shrink: 0; /* keep natural row height — do not compress to fit max-height */
        overflow: hidden;
        padding: 4px 2px;
        border-radius: 4px;
    }

    .pending-exit-row:hover {
        background: color-mix(in srgb, var(--mud-palette-warning) 8%, transparent);
    }

    .pending-exit-desc {
        font-weight: 600;
        font-variant-numeric: tabular-nums;
        flex: 1 1 auto;
        min-width: 0;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .pending-exit-broker {
        font-size: 0.75rem;
        color: var(--mud-palette-text-secondary);
        background: color-mix(in srgb, var(--mud-palette-text-secondary) 12%, transparent);
        padding: 2px 6px;
        border-radius: 4px;
        flex-shrink: 0;
        white-space: nowrap;
    }

    .pending-exit-age {
        font-size: 0.75rem;
        color: var(--mud-palette-text-secondary);
        flex-shrink: 0;
        white-space: nowrap;
        min-width: 4.5rem;
        text-align: right;
    }

    .risk-bar-track {
        position: relative;
        height: 8px;
        border-radius: 4px;
        background: var(--mud-palette-lines-default);
    }

    .risk-bar-fill {
        position: absolute;
        left: 0; top: 0;
        height: 100%;
        border-radius: 4px;
        background: linear-gradient(to right, rgba(211,47,47,0.55) 0%, rgba(56,142,60,0.6) 100%);
        pointer-events: none;
    }

    .risk-bar-dot {
        position: absolute;
        top: -4px;
        width: 16px; height: 16px;
        border-radius: 50%;
        background: var(--mud-palette-primary);
        border: 2px solid var(--mud-palette-surface);
        box-shadow: 0 1px 4px rgba(0,0,0,0.3);
        transform: translateX(-50%);
        pointer-events: none;
        transition: left 0.3s ease;
    }

    .risk-bar-labels {
        display: flex;
        justify-content: space-between;
        font-size: 0.67rem;
        color: var(--mud-palette-text-secondary);
        padding: 2px 2px 0;
    }

    .hold-fresh { color: #388e3c; font-weight: 600; }
    .hold-watch { color: #e65100; font-weight: 600; }
    .hold-stale { color: #c62828; font-weight: 600; }

    .session-phase-banner {
        display: flex;
        flex-direction: column;
        gap: 4px;
        padding: 10px 14px;
        border-radius: 8px;
        border: 1px solid var(--mud-palette-lines-default);
        background: var(--mud-palette-surface);
    }

    .session-phase-banner.phase-low-edge    { border-left: 4px solid var(--mud-palette-warning); }
    .session-phase-banner.phase-favorable   { border-left: 4px solid var(--mud-palette-success); }
    .session-phase-banner.phase-neutral     { border-left: 4px solid var(--mud-palette-info); }

    .goal-thermo-bar {
        height: 10px;
        border-radius: 5px;
        background: var(--mud-palette-lines-default);
        overflow: hidden;
        margin: 4px 0 2px;
        display: flex;
        align-items: stretch;
    }

    .goal-thermo-fill {
        height: 100%;
        border-radius: 5px;
        transition: width 0.5s ease;
    }

    /* Coaching bar — two-row guidance strip above Action Queue */
    .coaching-bar {
        display: flex;
        flex-direction: column;
        gap: 6px;
        border-radius: 6px;
        border: 1px solid var(--mud-palette-lines-default);
        padding: 8px 14px;
        background: var(--mud-palette-surface);
        border-left: 3px solid var(--mud-palette-info);
    }
    .coaching-bar-urgent  { border-left-color: var(--mud-palette-error); }
    .coaching-bar-warning { border-left-color: var(--mud-palette-warning); }
    .coaching-bar-success { border-left-color: var(--mud-palette-success); }
    .coaching-bar-info    { border-left-color: var(--mud-palette-info); }

    .coaching-phase-row {
        display: flex;
        align-items: center;
        gap: 6px;
    }
    .coaching-phase-name { font-weight: 700; font-size: 0.85rem; }

    .coaching-guidance-text {
        font-size: 0.78rem;
        line-height: 1.45;
        color: var(--mud-palette-text-secondary);
        margin-left: 22px;  /* align with text after icon */
    }

    .coaching-action-row {
        display: flex;
        align-items: center;
        gap: 8px;
        border-top: 1px solid var(--mud-palette-lines-default);
        padding-top: 6px;
        flex-wrap: wrap;
    }

    .coaching-goal-row {
        display: flex;
        align-items: flex-start;
        gap: 8px;
        border-top: 1px solid var(--mud-palette-lines-default);
        padding-top: 6px;
    }

    .coaching-goal-content {
        flex: 1;
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 3px 8px;
    }

    .coaching-goal-bar-wrap {
        width: 70px;
        flex: none;
        height: 6px;
        background: var(--mud-palette-lines-default);
        border-radius: 3px;
        overflow: hidden;
        position: relative;
    }

    .coaching-goal-bar-fill {
        position: absolute;
        top: 0;
        height: 100%;
        border-radius: 3px;
        transition: width 0.4s ease, left 0.4s ease;
    }

    .queue-row-selected td { background: var(--mud-palette-action-hover) !important; font-weight: 600; }

    .action-queue-virtual {
        border: 1px solid var(--mud-palette-lines-default);
        border-radius: 4px;
        overflow: hidden;
    }

    .action-queue-virtual-header,
    .action-queue-virtual-row {
        display: grid;
        grid-template-columns: minmax(72px, 1.1fr) minmax(64px, 0.9fr) minmax(120px, 1.6fr) minmax(72px, 0.8fr) minmax(56px, 0.7fr) minmax(96px, 1.1fr);
        align-items: center;
        column-gap: 8px;
        padding: 0 10px;
    }

    .action-queue-virtual-header {
        min-height: 36px;
        font-size: 0.72rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.03em;
        color: var(--mud-palette-text-secondary);
        background: var(--mud-palette-background-gray);
        border-bottom: 1px solid var(--mud-palette-lines-default);
    }

    .action-queue-virtual-row {
        min-height: 44px;
        font-size: 0.82rem;
        border-bottom: 1px solid var(--mud-palette-lines-default);
        cursor: pointer;
    }

    .action-queue-virtual-row:hover {
        background: var(--mud-palette-action-hover);
    }

    .action-queue-virtual-row.queue-row-selected {
        background: var(--mud-palette-action-hover);
        font-weight: 600;
    }

    .aq-cell {
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .aq-ticker-link {
        cursor: pointer;
        text-decoration: underline;
        font-weight: bold;
        color: var(--mud-palette-primary);
    }

    .aq-price {
        font-variant-numeric: tabular-nums;
    }

    .aq-vote {
        display: flex;
        align-items: center;
        gap: 4px;
    }

    .aq-vote-detail {
        font-size: 0.72rem;
        color: var(--mud-palette-text-secondary);
        white-space: nowrap;
    }

    .aq-position {
        display: flex;
        flex-direction: column;
        line-height: 1.2;
    }

    .aq-pos-pnl {
        font-weight: 700;
        font-size: 0.8rem;
        font-variant-numeric: tabular-nums;
    }

    .aq-pos-qty {
        font-size: 0.68rem;
        color: var(--mud-palette-text-secondary);
    }

    .aq-pos-flat {
        font-size: 0.8rem;
        color: var(--mud-palette-text-secondary);
    }

    .aq-pnl-win { color: var(--mud-palette-success); }
    .aq-pnl-loss { color: var(--mud-palette-error); }
    .aq-pnl-flat { color: var(--mud-palette-info); }

    .action-queue-mobile-virtual {
        max-height: min(70vh, 640px);
        overflow: auto;
    }

    .next-action-card {
        border-radius: 8px;
        border: 1px solid var(--mud-palette-lines-default);
        padding: 10px 14px;
        background: var(--mud-palette-surface);
    }

    .next-action-card.action-urgent  { border-left: 4px solid var(--mud-palette-error); }
    .next-action-card.action-warning { border-left: 4px solid var(--mud-palette-warning); }
    .next-action-card.action-info    { border-left: 4px solid var(--mud-palette-info); }
    .next-action-card.action-success { border-left: 4px solid var(--mud-palette-success); }

    @media (max-width: 600px) {
        .today-pos-cards-grid { grid-template-columns: 1fr; }
    }

    .today-pos-card.carry-over-lot {
        box-shadow: inset 3px 0 0 var(--mud-palette-warning);
    }

    .today-pos-card.long-hold-lot {
        box-shadow: inset 3px 0 0 var(--mud-palette-secondary);
    }

/* ============================================================
   PHONE MOBILE PASS — scoped to the Intraday Dashboard (.id-root)
   Optimized for ~390px portrait without affecting tablet/desktop.
   ============================================================ */
@media (max-width: 599.98px) {
    /* Reclaim horizontal space lost to stacked container padding */
    .id-root.mud-paper { padding: 6px !important; }

    /* Nested expansion panels are the biggest space hog on phones */
    .id-root .mud-expand-panel .mud-expand-panel-content { padding-left: 8px; padding-right: 8px; }
    .id-root .mud-expand-panel .mud-expand-panel-header { padding-left: 10px; padding-right: 10px; }

    /* Cards/papers tighten up */
    .id-root .section-card { padding: 10px !important; }
    .id-root .mud-card-content { padding: 10px; }

    /* Headings scale down so they don't wrap awkwardly */
    .id-root .mud-typography-h5 { font-size: 1.15rem; line-height: 1.25; }
    .id-root .mud-typography-h6 { font-size: 1rem; line-height: 1.25; }

    /* Any table that didn't get a card fallback scrolls instead of
       pushing the whole page wider */
    .id-root .mud-table-container { overflow-x: auto; -webkit-overflow-scrolling: touch; }

    /* Collapse remaining custom two-column grids to a single column */
    .id-root .trade-env-benchmark-grid { grid-template-columns: 1fr; }

    /* Sticky cockpit: trim vertical footprint */
    .id-root .id-cockpit-sticky { margin-bottom: 6px; }

    /* Guard: long unbroken strings (tickers, ids) shouldn't force overflow */
    .id-root .today-pos-company-name,
    .id-root .active-trade-company-name,
    .id-root .focus-ticker-company { max-width: 100%; }
}

@media (max-width: 400px) {
    .id-root.mud-paper { padding: 4px !important; }
    .id-root .section-card { padding: 8px !important; }

    /* Gate toggles + settings selects go full width to stop label clipping */
    .id-root .intraday-settings-gates { grid-template-columns: 1fr; }

    /* Compact chips/pills */
    .id-root .mud-chip.mud-chip-size-small { font-size: 0.7rem; height: 22px; }
    .id-root .alert-status-pill { font-size: 0.66rem; padding: 2px 6px; }
}

/* =========================================================
   ID Auto-Order status card  (Home dashboard widget)
   ========================================================= */

.id-ao-card {
    border-radius: 10px;
    overflow: hidden;
}

/* ── Top bar ─────────────────────────────────────────────── */
.id-ao-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px 4px;
    gap: 8px;
}

.id-ao-section-label {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--mud-palette-text-secondary);
}

/* ── W/L/E scoreboard in title ───────────────────────────── */
.id-ao-score {
    display: inline-flex;
    align-items: baseline;
    gap: 2px;
    padding: 2px 8px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
    font-variant-numeric: tabular-nums;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    cursor: default;
    white-space: nowrap;
}

.id-ao-score--empty {
    opacity: 0.55;
}

.id-ao-score-w { color: var(--mud-palette-success); }
.id-ao-score-l { color: var(--mud-palette-error); }
.id-ao-score-e { color: var(--mud-palette-text-secondary); }
.id-ao-score-sep {
    color: var(--mud-palette-text-secondary);
    font-weight: 500;
    opacity: 0.55;
    margin: 0 1px;
}
.id-ao-score-rate {
    margin-left: 6px;
    padding-left: 6px;
    border-left: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--mud-palette-text-secondary);
}

/* ── Portfolio name (hero) ───────────────────────────────── */
.id-ao-portfolio-name {
    padding: 2px 16px 10px;
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--mud-palette-text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 599px) {
    .id-ao-portfolio-name {
        font-size: 1rem;
    }
}

/* ── Card body ───────────────────────────────────────────── */
.id-ao-body {
    padding-top: 0 !important;
}

/* ── Session P&L row ────────────────────────────────────── */
.id-ao-pnl-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 8px;
}

.id-ao-pnl-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--mud-palette-text-secondary);
    margin-bottom: 1px;
}

.id-ao-pnl-value {
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.id-ao-cycle-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
    flex-shrink: 0;
}

/* ── KPI pill row ───────────────────────────────────────── */
.id-ao-kpi-row {
    display: flex;
    align-items: stretch;
    gap: 0;
    background: rgba(255,255,255,0.04);
    border-radius: 8px;
    overflow: hidden;
}

.id-ao-kpi {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 7px 4px 5px;
    min-width: 0;
    gap: 2px;
}

.id-ao-kpi--warn {
    background: rgba(var(--mud-palette-warning-rgb), 0.12);
}

.id-ao-kpi-val {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.id-ao-kpi-cap {
    font-size: 0.75rem;
    font-weight: 400;
    color: var(--mud-palette-text-secondary);
}

.id-ao-kpi-lbl {
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--mud-palette-text-secondary);
}

.id-ao-kpi-divider {
    width: 1px;
    background: var(--mud-palette-lines-default);
    margin: 6px 0;
    flex-shrink: 0;
}

/* ── Meta badges row ────────────────────────────────────── */
.id-ao-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.id-ao-meta-badge {
    display: inline-flex;
    align-items: center;
    font-size: 0.68rem;
    padding: 2px 7px;
    border-radius: 20px;
    background: rgba(255,255,255,0.07);
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
}

.id-ao-meta-badge--warn {
    background: rgba(var(--mud-palette-warning-rgb), 0.15);
    color: var(--mud-palette-warning);
    font-weight: 600;
}

/* ── Last cycle (collapsible) ───────────────────────────── */
.id-ao-cycle-details {
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.id-ao-cycle-summary {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    font-size: 0.7rem;
    color: var(--mud-palette-text-secondary);
    cursor: pointer;
    list-style: none;
    user-select: none;
    min-width: 0;
}

.id-ao-cycle-summary::-webkit-details-marker {
    display: none;
}

.id-ao-cycle-summary > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.id-ao-cycle-summary::after {
    content: "▸";
    margin-left: auto;
    flex-shrink: 0;
    opacity: 0.55;
    font-size: 0.65rem;
    transition: transform 0.15s ease;
}

.id-ao-cycle-details[open] > .id-ao-cycle-summary::after {
    transform: rotate(90deg);
}

.id-ao-cycle-detail {
    font-size: 0.68rem;
    font-style: italic;
    color: var(--mud-palette-text-secondary);
    line-height: 1.45;
    padding: 0 8px 8px;
    max-height: 120px;
    overflow-y: auto;
    word-break: break-word;
}

/* ── Activity feed ──────────────────────────────────────── */
.id-ao-activity-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--mud-palette-text-secondary);
    margin-bottom: 6px;
}

.id-ao-activity-count {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 1px 7px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.08);
    color: var(--mud-palette-text-primary);
}

.id-ao-activity-closed-total {
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
    font-size: 0.68rem;
    font-weight: 700;
    white-space: nowrap;
    cursor: default;
}

.id-ao-activity-scroll {
    max-height: 320px;
    overflow-y: auto;
    padding-right: 2px;
    /* Soft fade hints there is more below when content overflows */
    mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 14px), transparent 100%);
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 14px), transparent 100%);
}

.id-ao-activity-scroll:hover,
.id-ao-activity-scroll:focus-within {
    mask-image: none;
    -webkit-mask-image: none;
}

.id-ao-activity-list {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding-bottom: 8px;
}

.id-ao-activity-row {
    border-left: 3px solid transparent;
    border-radius: 0 6px 6px 0;
    padding: 5px 8px 5px 6px;
    background: rgba(255,255,255,0.04);
}

.id-ao-activity-main {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: nowrap;
    min-width: 0;
}

.id-ao-activity-ticker {
    font-size: 0.82rem;
    font-weight: 700;
    flex-shrink: 0;
}

.id-ao-activity-qty,
.id-ao-activity-price {
    font-size: 0.68rem;
    color: var(--mud-palette-text-secondary);
    flex-shrink: 0;
}

.id-ao-activity-time {
    font-size: 0.65rem;
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
    flex-shrink: 0;
}

.id-ao-activity-sub {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 2px;
    padding-left: 2px;
    font-size: 0.7rem;
}

.id-ao-activity-detail {
    color: var(--mud-palette-text-secondary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    opacity: 0.8;
}

.id-ao-activity-pnl {
    font-weight: 700;
    font-size: 0.74rem;
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}

.id-ao-activity-pct {
    font-size: 0.68rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    opacity: 0.85;
    flex-shrink: 0;
}

.id-ao-activity-hold {
    font-size: 0.65rem;
    color: var(--mud-palette-text-secondary);
    opacity: 0.75;
    flex-shrink: 0;
}

.id-ao-activity-unrl {
    font-size: 0.68rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    opacity: 0.85;
    flex-shrink: 0;
}

/* ── Empty state ────────────────────────────────────────── */
.id-ao-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 12px 0;
    color: var(--mud-palette-text-secondary);
    opacity: 0.7;
    font-size: 0.78rem;
    text-align: center;
}

/* ── Footer actions ─────────────────────────────────────── */
.id-ao-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 4px 8px 8px;
    gap: 8px;
}

/* ── DEBUG DIAGNOSTICS PANEL ──────────────────────────────────────────────── */
/* ── Diagnostics Panel ─────────────────────────────────────────────────── */

.id-debug-toggle-row {
    display: flex;
    justify-content: flex-start;
}

.id-debug-panel {
    border: 1px solid rgba(100, 181, 246, 0.2) !important;
    background: linear-gradient(160deg, rgba(10,14,26,0.98) 0%, rgba(15,20,40,0.98) 100%) !important;
    border-radius: 14px !important;
    overflow: hidden;
}

/* Panel section header */
.id-debug-panel-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px 10px;
    background: linear-gradient(90deg, rgba(100,181,246,0.12) 0%, transparent 70%);
    border-bottom: 1px solid rgba(255,255,255,0.07);
    margin-bottom: 16px;
}

.id-debug-panel-title {
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    background: linear-gradient(90deg, #64b5f6, #b39ddb);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Worker cards */
.id-debug-card {
    border-radius: 10px;
    padding: 14px 16px;
    height: 100%;
    position: relative;
    overflow: hidden;
    border: 1px solid transparent;
}

.id-debug-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: var(--card-accent, rgba(255,255,255,0.15));
    border-radius: 10px 10px 0 0;
}

/* Card accent colors per section */
.id-debug-card-worker {
    background: rgba(30,40,70,0.7);
    border-color: rgba(100,181,246,0.15);
    --card-accent: linear-gradient(90deg, #1565c0, #64b5f6);
}

.id-debug-card-signals {
    background: rgba(40,20,60,0.7);
    border-color: rgba(179,157,219,0.15);
    --card-accent: linear-gradient(90deg, #6a1b9a, #ce93d8);
}

.id-debug-card-session {
    background: rgba(20,50,40,0.7);
    border-color: rgba(77,182,172,0.15);
    --card-accent: linear-gradient(90deg, #00695c, #80cbc4);
}

.id-debug-card-wide {
    background: rgba(15,20,35,0.8);
    border-color: rgba(255,255,255,0.07);
    border-radius: 10px;
    padding: 16px;
    --card-accent: linear-gradient(90deg, #37474f, #78909c);
}

.id-debug-card-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.65);
    margin-bottom: 12px;
    width: 100%;
    padding-top: 4px;
}

.id-debug-card-title .mud-icon-root {
    opacity: 0.8;
}

.id-debug-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    font-size: .72rem;
    line-height: 1.4;
}

.id-debug-label {
    flex: 0 0 88px;
    color: rgba(255,255,255,0.38);
    font-size: .67rem;
    letter-spacing: .02em;
}

.id-debug-value {
    color: rgba(255,255,255,0.88);
    font-variant-numeric: tabular-nums;
    word-break: break-word;
}

.id-debug-detail-box {
    background: rgba(0,0,0,0.35);
    border-radius: 6px;
    padding: 6px 10px;
    font-size: .65rem;
    font-family: 'Consolas', 'Fira Code', monospace;
    color: #ffd54f;
    margin-top: 8px;
    line-height: 1.6;
    word-break: break-word;
    border: 1px solid rgba(255,213,79,0.1);
}

.id-debug-empty {
    font-size: .7rem;
    color: rgba(255,255,255,0.28);
    font-style: italic;
    padding: 8px 0;
}

.id-debug-cycle-time {
    margin-left: auto;
    font-size: .6rem;
    color: rgba(255,255,255,0.28);
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    font-variant-numeric: tabular-nums;
}

.id-debug-subtitle {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.35);
    margin-bottom: 8px;
    margin-top: 4px;
}

/* ── Signal funnel ─────────────────────────── */
.id-debug-funnel {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    font-size: .72rem;
    line-height: 1.4;
    padding: 10px 12px;
    background: rgba(0,0,0,0.3);
    border-radius: 8px;
    border: 1px solid rgba(255,255,255,0.06);
}

.id-debug-funnel-step {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: .7rem;
    font-weight: 600;
    background: rgba(255,255,255,0.06);
    color: rgba(255,255,255,0.78);
    border: 1px solid rgba(255,255,255,0.09);
    white-space: nowrap;
}

.id-debug-funnel-step-num {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    font-size: .78rem;
}

.id-debug-funnel-step:first-child {
    background: rgba(100,181,246,0.12);
    border-color: rgba(100,181,246,0.25);
    color: #90caf9;
}

.id-debug-funnel-step:nth-child(3) {
    background: rgba(179,157,219,0.1);
    border-color: rgba(179,157,219,0.2);
    color: #ce93d8;
}

.id-debug-funnel-step:nth-child(5) {
    background: rgba(77,182,172,0.1);
    border-color: rgba(77,182,172,0.2);
    color: #80cbc4;
}

.id-debug-funnel-step:nth-child(7) {
    background: rgba(255,183,77,0.1);
    border-color: rgba(255,183,77,0.2);
    color: #ffd54f;
}

.id-debug-funnel-arrow {
    color: rgba(255,255,255,0.2);
    font-size: .7rem;
    flex-shrink: 0;
}

.id-debug-funnel-hot {
    background: rgba(255,152,0,0.18) !important;
    border-color: rgba(255,152,0,0.4) !important;
    color: #ffb74d !important;
    box-shadow: 0 0 8px rgba(255,152,0,0.2);
}

.id-debug-funnel-note {
    font-size: .66rem;
    color: rgba(255,255,255,0.4);
    margin-top: 8px;
    padding: 5px 8px;
    background: rgba(255,152,0,0.06);
    border-left: 2px solid rgba(255,152,0,0.35);
    border-radius: 0 4px 4px 0;
}

.id-debug-headline {
    margin-top: 10px;
    font-size: .72rem;
    color: #ffd54f;
    font-style: italic;
    padding: 5px 8px;
    background: rgba(255,213,79,0.06);
    border-radius: 4px;
    border-left: 2px solid rgba(255,213,79,0.3);
}

/* ── Cycle summary stat boxes ──────────────── */
.id-debug-cycle-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: stretch;
    margin: 2px 0;
}

.id-debug-cycle-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 72px;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    cursor: default;
    transition: border-color 0.2s;
    gap: 3px;
}

.id-debug-cycle-stat:hover { border-color: rgba(255,255,255,0.16); }

.id-debug-stat-count {
    font-size: 1.6rem;
    font-weight: 800;
    line-height: 1;
    color: rgba(255,255,255,0.85);
    font-variant-numeric: tabular-nums;
}

.id-debug-stat-label {
    font-size: 0.59rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: rgba(255,255,255,0.35);
    margin-top: 1px;
    text-align: center;
}

.id-debug-stat-hint {
    font-size: 0.58rem;
    color: rgba(255,255,255,0.22);
    font-style: italic;
    text-align: center;
}

/* Stat colors */
.id-debug-stat-traded {
    background: rgba(76,175,80,0.1);
    border-color: rgba(76,175,80,0.25);
}
.id-debug-stat-traded .id-debug-stat-count { color: #81c784; }
.id-debug-stat-traded .id-debug-stat-label { color: rgba(129,199,132,0.6); }

.id-debug-stat-armed {
    background: rgba(33,150,243,0.1);
    border-color: rgba(33,150,243,0.25);
}
.id-debug-stat-armed .id-debug-stat-count  { color: #64b5f6; }
.id-debug-stat-armed .id-debug-stat-label  { color: rgba(100,181,246,0.6); }

.id-debug-stat-skipped {
    background: rgba(255,152,0,0.1);
    border-color: rgba(255,152,0,0.25);
}
.id-debug-stat-skipped .id-debug-stat-count  { color: #ffb74d; }
.id-debug-stat-skipped .id-debug-stat-label  { color: rgba(255,183,77,0.6); }

.id-debug-stat-watching {
    background: rgba(120,144,156,0.1);
    border-color: rgba(120,144,156,0.2);
}
.id-debug-stat-watching .id-debug-stat-count { color: #90a4ae; }
.id-debug-stat-watching .id-debug-stat-label { color: rgba(144,164,174,0.55); }

/* ── Per-ticker action list ─────────────────── */
.id-debug-action-watching { color: #90a4ae; }

.id-debug-actions {
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 200px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.id-debug-actions::-webkit-scrollbar { width: 4px; }
.id-debug-actions::-webkit-scrollbar-track { background: rgba(255,255,255,0.03); }
.id-debug-actions::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 2px; }

.id-debug-action-item {
    font-family: 'Consolas', 'Fira Code', monospace;
    font-size: .68rem;
    padding: 5px 10px;
    border-radius: 6px;
    background: rgba(0,0,0,0.2);
    border-left: 3px solid rgba(255,255,255,0.07);
    line-height: 1.4;
}

.id-debug-action-ok      { color: #a5d6a7; border-left-color: #388e3c; background: rgba(56,142,60,0.08); }
.id-debug-action-armed   { color: #90caf9; border-left-color: #1565c0; background: rgba(21,101,192,0.08); }
.id-debug-action-blocked { color: #ef9a9a; border-left-color: #c62828; background: rgba(198,40,40,0.08); }
.id-debug-action-skipped { color: #ffe082; border-left-color: #e65100; background: rgba(230,81,0,0.08); }
.id-debug-action-neutral { color: rgba(255,255,255,0.55); border-left-color: rgba(255,255,255,0.08); }
.id-debug-action-watching { color: #b0bec5; border-left-color: rgba(144,164,174,0.3); background: rgba(0,0,0,0.15); }