:root {
    --bg: #f4f6f8;
    --bg-accent: #e8edf3;
    --panel: rgba(255, 255, 255, 0.96);
    --panel-subtle: #f8fafc;
    --panel-border: rgba(148, 163, 184, 0.24);
    --text: #162033;
    --muted: #64748b;
    --accent: #ff9f1c;
    --accent-strong: #f97316;
    --success: #15803d;
    --danger: #dc2626;
    --shadow: 0 14px 34px rgba(15, 23, 42, 0.07);
    --radius: 14px;
    --font-sans: "Trebuchet MS", "Segoe UI", sans-serif;
    --page-padding: 24px;
    --page-padding-mobile: 16px;
    --safe-top: env(safe-area-inset-top, 0px);
    --safe-right: env(safe-area-inset-right, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
    --safe-left: env(safe-area-inset-left, 0px);
}

.admin-view-switch-panel,
.admin-view-banner {
    grid-column: 1 / -1;
}

.admin-view-switch-panel {
    display: grid;
    gap: 12px;
}

.admin-view-switch-body {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 14px;
    min-width: 0;
}

.admin-view-status {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 5px 10px;
    min-width: min(100%, 320px);
    padding: 12px 14px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 8px;
    background: #f8fafc;
}

.admin-view-status span {
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 800;
}

.admin-view-status strong {
    min-width: 0;
    color: var(--text);
    font-size: 0.92rem;
    overflow-wrap: anywhere;
}

.admin-view-switch-form {
    display: grid;
    grid-template-columns: auto minmax(180px, 1fr) auto;
    align-items: end;
    gap: 8px;
    min-width: min(100%, 520px);
}

.admin-view-switch-form label {
    align-self: center;
    margin: 0;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 850;
    white-space: nowrap;
}

.admin-view-switch-form select {
    min-width: 0;
    min-height: 38px;
    padding: 8px 34px 8px 10px;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 8px;
    background-color: #ffffff;
    color: var(--text);
    font: inherit;
}

.admin-view-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    border: 1px solid rgba(245, 158, 11, 0.34);
    border-radius: 8px;
    background: #fffbeb;
    color: #78350f;
    box-shadow: 0 10px 22px rgba(120, 53, 15, 0.08);
}

.admin-view-banner-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.admin-view-banner-copy span {
    color: #b45309;
    font-size: 0.72rem;
    font-weight: 900;
}

.admin-view-banner-copy strong {
    color: #78350f;
    font-size: 1rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.admin-view-banner-copy small {
    color: #92400e;
    font-size: 0.78rem;
    line-height: 1.35;
}

body.admin-view-active form[action*="/orders/"] button,
body.admin-view-active form[action*="/memos/"] button,
body.admin-view-active form[action*="/market-overheat/send"] button,
body.admin-view-active form[action*="/recommendations/refresh"] button,
body.admin-view-active form[action$="/settings"] .settings-save-button {
    opacity: 0.58;
    cursor: not-allowed;
}

@media (max-width: 900px) {
    .admin-view-switch-body,
    .admin-view-banner {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-view-switch-form {
        grid-template-columns: 1fr;
        width: 100%;
    }

    .admin-view-switch-form button {
        width: 100%;
    }
}

/* Final mobile status/actions and capital flow layout. */
.app-body .mobile-status-action-row,
.app-body .mobile-capital-flow-panel,
.app-body .mobile-status-action-sheet {
    display: none;
}

.app-body .mobile-status-action-sheet[hidden] {
    display: none !important;
}

@media (max-width: 900px) {
    body.app-body.mobile-app-layout #portfolio-status .mobile-status-action-row {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 4px !important;
        padding: 5px 8px !important;
        border-bottom: 1px solid var(--upbit-line, #d8e0ea) !important;
        background: #ffffff !important;
    }

    body.app-body.mobile-app-layout #portfolio-status .mobile-status-action-row form {
        min-width: 0 !important;
    }

    body.app-body.mobile-app-layout #portfolio-status .mobile-status-action-row button {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 30px !important;
        padding: 0 3px !important;
        overflow: hidden !important;
        border-radius: 2px !important;
        font-size: 0.55rem !important;
        font-weight: 850 !important;
        line-height: 1.05 !important;
        text-overflow: ellipsis !important;
        white-space: normal !important;
    }

    body.app-body.mobile-app-layout #portfolio-status .mobile-status-table tr[data-status-action-row] {
        cursor: pointer !important;
    }

    body.app-body.mobile-status-action-open {
        overflow: hidden !important;
    }

    body.app-body .mobile-status-action-sheet {
        position: fixed !important;
        inset: 0 !important;
        z-index: 210 !important;
        display: block !important;
    }

    body.app-body .mobile-status-action-backdrop {
        position: absolute !important;
        inset: 0 !important;
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: rgba(15, 23, 42, 0.38) !important;
    }

    body.app-body .mobile-status-action-dialog {
        position: absolute !important;
        right: var(--safe-right) !important;
        bottom: var(--safe-bottom) !important;
        left: var(--safe-left) !important;
        display: grid !important;
        gap: 8px !important;
        max-height: min(78dvh, 520px) !important;
        padding: 10px !important;
        overflow-y: auto !important;
        border-radius: 8px 8px 0 0 !important;
        background: #ffffff !important;
        box-shadow: 0 -10px 34px rgba(15, 23, 42, 0.22) !important;
        -webkit-overflow-scrolling: touch !important;
    }

    body.app-body .mobile-status-action-header {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: space-between !important;
        gap: 8px !important;
    }

    body.app-body .mobile-status-action-header h2 {
        margin: 0 !important;
        color: #111827 !important;
        font-size: 0.9rem !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;
    }

    body.app-body .mobile-status-action-header span {
        display: block !important;
        margin-top: 2px !important;
        font-size: 0.64rem !important;
    }

    body.app-body .mobile-status-action-summary {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 1px !important;
        overflow: hidden !important;
        border: 1px solid var(--upbit-line-soft, #edf1f5) !important;
        background: var(--upbit-line-soft, #edf1f5) !important;
    }

    body.app-body .mobile-status-action-summary > div {
        display: grid !important;
        gap: 2px !important;
        min-width: 0 !important;
        padding: 6px 8px !important;
        background: #f7f9fc !important;
    }

    body.app-body .mobile-status-action-summary span,
    body.app-body .mobile-status-action-order > span {
        color: #697280 !important;
        font-size: 0.58rem !important;
        font-weight: 750 !important;
    }

    body.app-body .mobile-status-action-summary strong {
        min-width: 0 !important;
        overflow: hidden !important;
        color: #1f2937 !important;
        font-size: 0.74rem !important;
        font-weight: 900 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body .mobile-status-action-summary strong.positive-text {
        color: var(--upbit-rise, #e23b3b) !important;
    }

    body.app-body .mobile-status-action-summary strong.negative-text {
        color: var(--upbit-fall, #1261d1) !important;
    }

    body.app-body .mobile-status-action-order {
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr) !important;
        gap: 6px !important;
        align-items: center !important;
        padding: 7px 0 !important;
        border-top: 1px solid var(--upbit-line-soft, #edf1f5) !important;
        border-bottom: 1px solid var(--upbit-line-soft, #edf1f5) !important;
    }

    body.app-body .mobile-status-action-order .holdings-mobile-order-levels {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 4px !important;
    }

    body.app-body .mobile-status-action-order .holdings-mobile-order-levels span {
        padding: 3px 5px !important;
        border-radius: 2px !important;
        font-size: 0.58rem !important;
        line-height: 1.1 !important;
    }

    body.app-body .mobile-status-action-buttons {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 4px !important;
    }

    body.app-body .mobile-status-action-buttons form {
        min-width: 0 !important;
    }

    body.app-body .mobile-status-action-buttons .table-button,
    body.app-body .mobile-status-action-buttons .inline-order-actions .table-button {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 30px !important;
        padding: 0 3px !important;
        border-radius: 2px !important;
        font-size: 0.56rem !important;
        font-weight: 850 !important;
        line-height: 1.05 !important;
        text-align: center !important;
        white-space: normal !important;
    }

    body.app-body .mobile-status-action-buttons .inline-order-actions {
        display: contents !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-panel {
        display: block !important;
        margin: 0 0 8px !important;
        overflow: hidden !important;
        border: 1px solid var(--mobile-line, var(--upbit-line, #d8e0ea)) !important;
        border-radius: 2px !important;
        background: var(--mobile-surface, #ffffff) !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-head {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
        padding: 8px !important;
        border-bottom: 1px solid var(--upbit-line-soft, #edf1f5) !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-head strong {
        color: #1f2937 !important;
        font-size: 0.74rem !important;
        font-weight: 900 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-head span {
        color: #697280 !important;
        font-size: 0.58rem !important;
        font-weight: 750 !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-summary {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 1px !important;
        background: var(--upbit-line-soft, #edf1f5) !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-summary > div {
        display: grid !important;
        gap: 2px !important;
        min-width: 0 !important;
        padding: 6px 8px !important;
        background: #f7f9fc !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-summary span,
    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-row span {
        color: #697280 !important;
        font-size: 0.58rem !important;
        font-weight: 750 !important;
        line-height: 1.15 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-summary strong {
        min-width: 0 !important;
        overflow: hidden !important;
        color: #1f2937 !important;
        font-size: 0.74rem !important;
        font-weight: 900 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-list {
        display: grid !important;
        max-height: 220px !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-row {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 8px !important;
        align-items: center !important;
        padding: 7px 8px !important;
        border-top: 1px solid var(--upbit-line-soft, #edf1f5) !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-row > div {
        display: grid !important;
        gap: 2px !important;
        min-width: 0 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-row strong {
        min-width: 0 !important;
        overflow: hidden !important;
        color: #1f2937 !important;
        font-size: 0.68rem !important;
        font-weight: 850 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-summary strong.positive-text,
    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-row strong.positive-text {
        color: var(--upbit-rise, #e23b3b) !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-summary strong.negative-text,
    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-row strong.negative-text {
        color: var(--upbit-fall, #1261d1) !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-row > strong {
        text-align: right !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-capital-flow-empty {
        margin: 0 !important;
        padding: 14px 8px !important;
        text-align: center !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .filter-toolbar,
    body.app-body.mobile-app-layout #holdings-dashboard .mobile-holdings-action-row,
    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-list {
        display: none !important;
    }
}

/* Modern settings mobile surface v2. */
@media (max-width: 900px) {
    body.settings-page-body,
    body.embedded-settings-body {
        --settings-v2-bg: #f4f7fb;
        --settings-v2-surface: #ffffff;
        --settings-v2-soft: #f7f9fc;
        --settings-v2-line: #dde5ef;
        --settings-v2-line-strong: #cbd5e1;
        --settings-v2-text: #172033;
        --settings-v2-muted: #6b7688;
        --settings-v2-blue: #0b5ac2;
        --settings-v2-blue-soft: #eef5ff;
        color: var(--settings-v2-text) !important;
        background: var(--settings-v2-bg) !important;
    }

    body.settings-page-body .page-grid.single-column,
    body.settings-page-body .single-column,
    body.embedded-settings-body .embedded-settings-shell {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding:
            8px
            calc(10px + var(--safe-right))
            calc(72px + var(--safe-bottom))
            calc(10px + var(--safe-left)) !important;
        background: var(--settings-v2-bg) !important;
    }

    body.embedded-settings-body .embedded-settings-shell {
        min-height: 100dvh !important;
    }

    body.settings-page-body .form-panel,
    body.embedded-settings-body .panel.form-panel {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    body.settings-page-body .panel-heading,
    body.embedded-settings-body .panel-heading {
        min-height: 34px !important;
        margin: 0 !important;
        padding: 0 2px 2px !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    body.settings-page-body .panel-heading h2,
    body.embedded-settings-body .panel-heading h2 {
        margin: 0 !important;
        color: var(--settings-v2-text) !important;
        font-size: 1.02rem !important;
        font-weight: 950 !important;
        line-height: 1.14 !important;
        letter-spacing: 0 !important;
    }

    body.settings-page-body .settings-mobile-section-nav,
    body.embedded-settings-body .settings-mobile-section-nav {
        position: sticky !important;
        z-index: 120 !important;
        display: grid !important;
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        gap: 0 !important;
        width: 100% !important;
        height: 52px !important;
        margin: 0 0 8px !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 1px solid var(--settings-v2-line) !important;
        border-radius: 8px !important;
        background: var(--settings-v2-surface) !important;
        box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05) !important;
    }

    body.settings-page-body .settings-mobile-section-nav {
        top: calc(48px + var(--safe-top)) !important;
    }

    body.embedded-settings-body .settings-mobile-section-nav {
        top: 0 !important;
    }

    body.settings-page-body .settings-mobile-tab-item,
    body.embedded-settings-body .settings-mobile-tab-item {
        appearance: none !important;
        -webkit-appearance: none !important;
        display: grid !important;
        grid-template-rows: 17px auto !important;
        gap: 3px !important;
        min-width: 0 !important;
        min-height: 52px !important;
        height: 52px !important;
        align-items: center !important;
        justify-items: center !important;
        padding: 6px 2px 5px !important;
        overflow: hidden !important;
        border: 0 !important;
        border-radius: 0 !important;
        color: #536174 !important;
        background: var(--settings-v2-surface) !important;
        font-family: inherit !important;
        font-size: 0.56rem !important;
        font-weight: 900 !important;
        line-height: 1.05 !important;
        white-space: nowrap !important;
        box-shadow: none !important;
    }

    body.settings-page-body .settings-mobile-tab-item svg,
    body.embedded-settings-body .settings-mobile-tab-item svg {
        width: 16px !important;
        height: 16px !important;
        fill: none !important;
        stroke: currentColor !important;
    }

    body.settings-page-body .settings-mobile-tab-item.active,
    body.settings-page-body .settings-mobile-tab-item[aria-current="true"],
    body.embedded-settings-body .settings-mobile-tab-item.active,
    body.embedded-settings-body .settings-mobile-tab-item[aria-current="true"] {
        color: var(--settings-v2-blue) !important;
        background: var(--settings-v2-blue-soft) !important;
        box-shadow: inset 0 -2px 0 var(--settings-v2-blue) !important;
    }

    body.settings-page-body .settings-form,
    body.embedded-settings-body .settings-form,
    body.settings-page-body .settings-layout,
    body.embedded-settings-body .settings-layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    body.settings-page-body .settings-form,
    body.embedded-settings-body .settings-form {
        padding-bottom: calc(72px + var(--safe-bottom)) !important;
    }

    body.settings-page-body .settings-section,
    body.embedded-settings-body .settings-section {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 0 !important;
        min-width: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 1px solid var(--settings-v2-line) !important;
        border-radius: 8px !important;
        background: var(--settings-v2-surface) !important;
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05) !important;
    }

    body.settings-page-body .settings-section h3,
    body.embedded-settings-body .settings-section h3 {
        margin: 0 !important;
        padding: 14px 16px 10px !important;
        border: 0 !important;
        color: var(--settings-v2-text) !important;
        background: var(--settings-v2-surface) !important;
        font-size: 0.92rem !important;
        font-weight: 950 !important;
        line-height: 1.18 !important;
        letter-spacing: 0 !important;
    }

    body.settings-page-body .settings-grid,
    body.embedded-settings-body .settings-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        min-width: 0 !important;
        padding: 0 14px 14px !important;
        background: var(--settings-v2-surface) !important;
    }

    body.settings-page-body .settings-grid > div,
    body.settings-page-body .grid-span-2,
    body.embedded-settings-body .settings-grid > div,
    body.embedded-settings-body .grid-span-2 {
        display: grid !important;
        grid-column: 1 / -1 !important;
        gap: 6px !important;
        min-width: 0 !important;
        padding: 0 !important;
        background: transparent !important;
    }

    body.settings-page-body label,
    body.embedded-settings-body label,
    body.settings-page-body .reference-mode-field legend,
    body.embedded-settings-body .reference-mode-field legend {
        margin: 0 !important;
        color: var(--settings-v2-muted) !important;
        font-size: 0.72rem !important;
        font-weight: 850 !important;
        line-height: 1.15 !important;
    }

    body.settings-page-body input,
    body.settings-page-body select,
    body.settings-page-body textarea,
    body.embedded-settings-body input,
    body.embedded-settings-body select,
    body.embedded-settings-body textarea {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 38px !important;
        height: 38px !important;
        padding: 0 11px !important;
        border: 1px solid var(--settings-v2-line-strong) !important;
        border-radius: 8px !important;
        color: var(--settings-v2-text) !important;
        background: var(--settings-v2-soft) !important;
        font-family: inherit !important;
        font-size: 0.82rem !important;
        font-weight: 700 !important;
        line-height: 38px !important;
        box-shadow: none !important;
    }

    body.settings-page-body input:focus,
    body.settings-page-body select:focus,
    body.settings-page-body textarea:focus,
    body.embedded-settings-body input:focus,
    body.embedded-settings-body select:focus,
    body.embedded-settings-body textarea:focus {
        outline: 0 !important;
        border-color: var(--settings-v2-blue) !important;
        background: #ffffff !important;
        box-shadow: 0 0 0 3px rgba(11, 90, 194, 0.12) !important;
    }

    body.settings-page-body textarea,
    body.embedded-settings-body textarea {
        height: auto !important;
        min-height: 82px !important;
        max-height: 150px !important;
        padding: 9px 11px !important;
        line-height: 1.38 !important;
        resize: vertical !important;
    }

    body.settings-page-body select,
    body.embedded-settings-body select {
        padding-right: 30px !important;
        background-color: var(--settings-v2-soft) !important;
    }

    body.settings-page-body .reference-mode-field,
    body.embedded-settings-body .reference-mode-field {
        display: grid !important;
        gap: 8px !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 14px 12px !important;
        border: 0 !important;
        background: var(--settings-v2-surface) !important;
    }

    body.settings-page-body .reference-mode-options,
    body.embedded-settings-body .reference-mode-options {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 6px !important;
        min-width: 0 !important;
        padding: 4px !important;
        border: 1px solid var(--settings-v2-line) !important;
        border-radius: 8px !important;
        background: #eef2f7 !important;
    }

    body.settings-page-body .reference-mode-option,
    body.embedded-settings-body .reference-mode-option {
        position: relative !important;
        min-width: 0 !important;
        margin: 0 !important;
        color: var(--settings-v2-muted) !important;
    }

    body.settings-page-body .reference-mode-option input,
    body.embedded-settings-body .reference-mode-option input {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        min-height: 1px !important;
        padding: 0 !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    body.settings-page-body .reference-mode-option span,
    body.embedded-settings-body .reference-mode-option span {
        display: grid !important;
        min-height: 34px !important;
        place-items: center !important;
        padding: 0 8px !important;
        border: 0 !important;
        border-radius: 6px !important;
        color: #526173 !important;
        background: transparent !important;
        font-size: 0.76rem !important;
        font-weight: 900 !important;
        line-height: 1.1 !important;
        text-align: center !important;
        white-space: nowrap !important;
    }

    body.settings-page-body .reference-mode-option input:checked + span,
    body.embedded-settings-body .reference-mode-option input:checked + span {
        color: #ffffff !important;
        background: var(--settings-v2-blue) !important;
        box-shadow: 0 4px 10px rgba(11, 90, 194, 0.2) !important;
    }

    body.settings-page-body input[type="checkbox"],
    body.embedded-settings-body input[type="checkbox"] {
        appearance: none !important;
        -webkit-appearance: none !important;
        position: relative !important;
        width: 40px !important;
        height: 22px !important;
        min-height: 22px !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 999px !important;
        background: #cbd5e1 !important;
        transition: background 160ms ease !important;
    }

    body.settings-page-body input[type="checkbox"]::after,
    body.embedded-settings-body input[type="checkbox"]::after {
        content: "" !important;
        position: absolute !important;
        top: 3px !important;
        left: 3px !important;
        width: 16px !important;
        height: 16px !important;
        border-radius: 999px !important;
        background: #ffffff !important;
        box-shadow: 0 1px 4px rgba(15, 23, 42, 0.24) !important;
        transition: transform 160ms ease !important;
    }

    body.settings-page-body input[type="checkbox"]:checked,
    body.embedded-settings-body input[type="checkbox"]:checked {
        background: var(--settings-v2-blue) !important;
    }

    body.settings-page-body input[type="checkbox"]:checked::after,
    body.embedded-settings-body input[type="checkbox"]:checked::after {
        transform: translateX(18px) !important;
    }

    body.settings-page-body .setting-toggle,
    body.embedded-settings-body .setting-toggle {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 10px !important;
        align-items: center !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 12px 14px !important;
        border: 0 !important;
        border-top: 1px solid var(--settings-v2-line) !important;
        background: var(--settings-v2-surface) !important;
    }

    body.settings-page-body .toggle-copy strong,
    body.embedded-settings-body .toggle-copy strong {
        color: var(--settings-v2-text) !important;
        font-size: 0.8rem !important;
        font-weight: 900 !important;
        line-height: 1.18 !important;
    }

    body.settings-page-body .runtime-preview,
    body.embedded-settings-body .runtime-preview {
        display: grid !important;
        gap: 5px !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 10px 14px 12px !important;
        border: 0 !important;
        border-top: 1px solid var(--settings-v2-line) !important;
        background: #f8fbff !important;
    }

    body.settings-page-body .runtime-preview span,
    body.embedded-settings-body .runtime-preview span {
        color: var(--settings-v2-blue) !important;
        font-size: 0.64rem !important;
        font-weight: 950 !important;
        line-height: 1.1 !important;
    }

    body.settings-page-body .runtime-preview strong,
    body.embedded-settings-body .runtime-preview strong {
        color: #364152 !important;
        font-size: 0.7rem !important;
        font-weight: 760 !important;
        line-height: 1.34 !important;
        overflow-wrap: anywhere !important;
    }

    body.settings-page-body .settings-save-button,
    body.embedded-settings-body .settings-save-button {
        position: fixed !important;
        right: calc(10px + var(--safe-right)) !important;
        bottom: calc(8px + var(--safe-bottom)) !important;
        left: calc(10px + var(--safe-left)) !important;
        z-index: 140 !important;
        min-height: 44px !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 8px !important;
        color: #ffffff !important;
        background: var(--settings-v2-blue) !important;
        font-size: 0.86rem !important;
        font-weight: 950 !important;
        box-shadow: 0 12px 24px rgba(11, 90, 194, 0.24) !important;
    }
}

/* Cross-page mobile theme finish: standalone mentor screens share the dashboard shell. */
@media (max-width: 900px) {
    html[data-mobile-theme] body.app-body.mobile-app-layout {
        --mobile-shell-bg: #f2f4f8;
        --mobile-surface: #ffffff;
        --mobile-surface-2: #f8fafc;
        --mobile-soft: #f4f7fb;
        --mobile-line: #d8e0ea;
        --mobile-line-soft: #edf1f5;
        --mobile-text: #1f2937;
        --mobile-text-strong: #111827;
        --mobile-muted: #64748b;
        --mobile-accent: var(--upbit-blue, #064aa8);
        --mobile-bar-bg: rgba(255, 255, 255, 0.98);
        --mobile-detail-section-padding: 14px;
        --mobile-detail-section-radius: 14px;
        --mobile-detail-section-bg: #ffffff;
        --mobile-detail-section-shadow: 0 6px 16px rgba(15, 23, 42, 0.035);
        --bg: var(--mobile-shell-bg);
        --panel: var(--mobile-surface);
        --panel-subtle: var(--mobile-soft);
        --panel-border: var(--mobile-line);
        --text: var(--mobile-text);
        --text-strong: var(--mobile-text-strong);
        --muted: var(--mobile-muted);
        color: var(--mobile-text) !important;
        background: var(--mobile-shell-bg) !important;
    }

    html[data-mobile-theme="dark"] body.app-body.mobile-app-layout {
        color-scheme: dark;
        --mobile-shell-bg: #080c14;
        --mobile-surface: #111827;
        --mobile-surface-2: #0f172a;
        --mobile-soft: #182234;
        --mobile-line: rgba(148, 163, 184, .22);
        --mobile-line-soft: rgba(148, 163, 184, .14);
        --mobile-text: #dbe4f0;
        --mobile-text-strong: #f8fafc;
        --mobile-muted: #94a3b8;
        --mobile-accent: #60a5fa;
        --mobile-bar-bg: rgba(15, 23, 42, .96);
        --mobile-detail-section-padding: 0px;
        --mobile-detail-section-radius: 0px;
        --mobile-detail-section-bg: var(--mobile-shell-bg);
        --mobile-detail-section-shadow: none;
        --upbit-blue: #60a5fa;
        --bg: var(--mobile-shell-bg);
        --panel: var(--mobile-surface);
        --panel-subtle: var(--mobile-soft);
        --panel-border: var(--mobile-line);
        --text: var(--mobile-text);
        --text-strong: var(--mobile-text-strong);
        --muted: var(--mobile-muted);
        --success: #34d399;
        --danger: #fb7185;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-app-header {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        left: 0 !important;
        z-index: 180 !important;
        display: flex !important;
        height: calc(58px + var(--safe-top)) !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 10px !important;
        margin: 0 !important;
        padding:
            var(--safe-top)
            calc(10px + var(--safe-right))
            0
            calc(10px + var(--safe-left)) !important;
        border-bottom: 1px solid var(--mobile-line) !important;
        color: var(--mobile-text-strong) !important;
        background: var(--mobile-bar-bg) !important;
        box-shadow: 0 8px 24px rgba(15, 23, 42, .08) !important;
        backdrop-filter: blur(16px) !important;
    }

    html[data-mobile-theme="dark"] body.app-body.mobile-app-layout .mobile-app-header {
        box-shadow: 0 10px 26px rgba(0, 0, 0, .34) !important;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-app-brand {
        display: flex !important;
        min-width: 0 !important;
        flex: 1 1 auto !important;
        align-items: center !important;
        gap: 9px !important;
        color: var(--mobile-text-strong) !important;
        text-decoration: none !important;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-app-brand-mark {
        width: 32px !important;
        height: 32px !important;
        flex: 0 0 auto !important;
        border: 1px solid var(--mobile-line-soft) !important;
        border-radius: 10px !important;
        background: var(--mobile-soft) !important;
        box-shadow: none !important;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-app-brand > span:last-child,
    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-app-header-side {
        display: flex !important;
        min-width: 0 !important;
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 1px !important;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-app-brand strong,
    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-app-header-side > strong {
        overflow: hidden !important;
        max-width: 132px !important;
        color: var(--mobile-text-strong) !important;
        font-size: .9rem !important;
        font-weight: 900 !important;
        line-height: 1.1 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-app-brand small,
    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-live-pill {
        color: var(--mobile-muted) !important;
        font-size: .62rem !important;
        font-weight: 750 !important;
        line-height: 1.15 !important;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-app-header-actions {
        display: flex !important;
        flex: 0 0 auto !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 8px !important;
        min-width: 0 !important;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-app-header-side {
        align-items: flex-end !important;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-live-pill {
        display: inline-flex !important;
        align-items: center !important;
        gap: 4px !important;
        color: var(--success, #16a34a) !important;
        white-space: nowrap !important;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-theme-toggle {
        display: inline-flex !important;
        min-width: 0 !important;
        min-height: 34px !important;
        align-items: center !important;
        gap: 6px !important;
        padding: 0 8px !important;
        border: 1px solid var(--mobile-line) !important;
        border-radius: 999px !important;
        color: var(--mobile-text-strong) !important;
        background: var(--mobile-soft) !important;
        box-shadow: none !important;
        font: inherit !important;
        cursor: pointer !important;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-theme-toggle-track {
        position: relative !important;
        display: inline-flex !important;
        width: 36px !important;
        height: 20px !important;
        flex: 0 0 auto !important;
        align-items: center !important;
        border-radius: 999px !important;
        background: #cbd5e1 !important;
        transition: background .18s ease !important;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-theme-toggle-thumb {
        display: block !important;
        width: 16px !important;
        height: 16px !important;
        margin-left: 2px !important;
        border-radius: 999px !important;
        background: #ffffff !important;
        box-shadow: 0 1px 3px rgba(15, 23, 42, .22) !important;
        transition: transform .18s ease !important;
    }

    html[data-mobile-theme="dark"] body.app-body.mobile-app-layout .mobile-theme-toggle-track,
    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-theme-toggle[aria-pressed="true"] .mobile-theme-toggle-track {
        background: var(--mobile-accent) !important;
    }

    html[data-mobile-theme="dark"] body.app-body.mobile-app-layout .mobile-theme-toggle-thumb,
    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-theme-toggle[aria-pressed="true"] .mobile-theme-toggle-thumb {
        transform: translateX(16px) !important;
    }

    html[data-mobile-theme] body.app-body.mobile-app-layout .mobile-theme-toggle-label {
        color: var(--mobile-muted) !important;
        font-size: .62rem !important;
        font-weight: 850 !important;
        line-height: 1 !important;
    }

    body.mentor-page-body.mobile-app-layout {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 100dvh !important;
        overflow-x: hidden !important;
        padding:
            calc(58px + var(--safe-top))
            var(--safe-right)
            calc(18px + var(--safe-bottom))
            var(--safe-left) !important;
    }

    body.mentor-page-body.mobile-app-layout > .terminal-topbar {
        display: none !important;
    }

    body.mentor-page-body.mobile-app-layout > .exchange-page-nav {
        position: sticky !important;
        top: calc(58px + var(--safe-top)) !important;
        z-index: 120 !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 44px !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 0 !important;
        border-bottom: 1px solid var(--mobile-line) !important;
        border-radius: 0 !important;
        color: var(--mobile-text) !important;
        background: var(--mobile-bar-bg) !important;
        box-shadow: none !important;
    }

    body.mentor-page-body.mobile-app-layout > .exchange-page-nav .terminal-sidebar-scroll {
        display: flex !important;
        align-items: center !important;
        gap: 4px !important;
        width: 100% !important;
        min-width: 0 !important;
        padding:
            6px
            calc(8px + var(--safe-right))
            6px
            calc(8px + var(--safe-left)) !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch !important;
    }

    body.mentor-page-body.mobile-app-layout > .exchange-page-nav .terminal-sidebar-scroll::-webkit-scrollbar {
        display: none !important;
    }

    body.mentor-page-body.mobile-app-layout > .exchange-page-nav .terminal-nav-item {
        display: inline-flex !important;
        min-height: 32px !important;
        flex: 0 0 auto !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 10px !important;
        border: 1px solid var(--mobile-line) !important;
        border-radius: 999px !important;
        color: var(--mobile-muted) !important;
        background: var(--mobile-soft) !important;
        font-size: .68rem !important;
        font-weight: 850 !important;
        line-height: 1 !important;
        text-decoration: none !important;
        white-space: nowrap !important;
        box-shadow: none !important;
    }

    body.mentor-page-body.mobile-app-layout > .exchange-page-nav .terminal-nav-item.active {
        border-color: var(--mobile-accent) !important;
        color: var(--mobile-accent) !important;
        background: var(--mobile-surface) !important;
    }

    body.mentor-page-body.mobile-app-layout .page-grid.single-column.mentor-page {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding:
            8px
            calc(10px + var(--safe-right))
            calc(18px + var(--safe-bottom))
            calc(10px + var(--safe-left)) !important;
        color: var(--mobile-text) !important;
        background: var(--mobile-shell-bg) !important;
    }

    body.mentor-page-body.mobile-app-layout .mentor-two-column,
    body.mentor-page-body.mobile-app-layout .mentor-dna-grid,
    body.mentor-page-body.mobile-app-layout .settings-layout,
    body.mentor-page-body.mobile-app-layout .settings-form {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    body.mentor-page-body.mobile-app-layout .mentor-import-panel,
    body.mentor-page-body.mobile-app-layout .mentor-summary-panel,
    body.mentor-page-body.mobile-app-layout .mentor-import-form .settings-section,
    body.mentor-page-body.mobile-app-layout .mentor-stat-grid .metric,
    body.mentor-page-body.mobile-app-layout .mentor-calculation-note,
    body.mentor-page-body.mobile-app-layout .mentor-table-scroll,
    body.mentor-page-body.mobile-app-layout .terminal-table,
    body.mentor-page-body.mobile-app-layout .terminal-table td,
    body.mentor-page-body.mobile-app-layout .toggle-row,
    body.mentor-page-body.mobile-app-layout .setting-toggle {
        border-color: var(--mobile-line) !important;
        color: var(--mobile-text) !important;
        background: var(--mobile-surface) !important;
        box-shadow: none !important;
    }

    body.mentor-page-body.mobile-app-layout .mentor-import-panel,
    body.mentor-page-body.mobile-app-layout .mentor-summary-panel {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 12px !important;
        border-radius: 8px !important;
    }

    body.mentor-page-body.mobile-app-layout .mentor-stat-grid,
    body.mentor-page-body.mobile-app-layout .mentor-bar-track,
    body.mentor-page-body.mobile-app-layout .progress-bar {
        border-color: var(--mobile-line) !important;
        background: var(--mobile-line-soft) !important;
    }

    body.mentor-page-body.mobile-app-layout .terminal-table th,
    body.mentor-page-body.mobile-app-layout .terminal-table tbody tr:nth-child(even) td {
        border-color: var(--mobile-line) !important;
        color: var(--mobile-text-strong) !important;
        background: var(--mobile-soft) !important;
    }

    body.mentor-page-body.mobile-app-layout .mentor-page h2,
    body.mentor-page-body.mobile-app-layout .mentor-page h3,
    body.mentor-page-body.mobile-app-layout .mentor-page label,
    body.mentor-page-body.mobile-app-layout .mentor-page strong,
    body.mentor-page-body.mobile-app-layout .mentor-page td,
    body.mentor-page-body.mobile-app-layout .mentor-page a,
    body.mentor-page-body.mobile-app-layout .mentor-bar-row em,
    body.mentor-page-body.mobile-app-layout .mentor-compact-list span,
    body.mentor-page-body.mobile-app-layout .mentor-dna-grid span {
        color: var(--mobile-text-strong) !important;
    }

    body.mentor-page-body.mobile-app-layout .mentor-page .muted,
    body.mentor-page-body.mobile-app-layout .mentor-page .field-hint,
    body.mentor-page-body.mobile-app-layout .mentor-page small,
    body.mentor-page-body.mobile-app-layout .mentor-cache-note,
    body.mentor-page-body.mobile-app-layout .metric-label {
        color: var(--mobile-muted) !important;
    }

    body.mentor-page-body.mobile-app-layout .mentor-page .eyebrow,
    body.mentor-page-body.mobile-app-layout .mentor-pattern-head span,
    body.mentor-page-body.mobile-app-layout .mentor-dna-grid strong,
    body.mentor-page-body.mobile-app-layout .terminal-table a:hover {
        color: var(--mobile-accent) !important;
    }

    body.mentor-page-body.mobile-app-layout input,
    body.mentor-page-body.mobile-app-layout textarea,
    body.mentor-page-body.mobile-app-layout select {
        border-color: var(--mobile-line) !important;
        color: var(--mobile-text-strong) !important;
        background: var(--mobile-surface-2) !important;
        box-shadow: none !important;
    }

    body.mentor-page-body.mobile-app-layout input::placeholder,
    body.mentor-page-body.mobile-app-layout textarea::placeholder {
        color: #8b95a1 !important;
    }

    html[data-mobile-theme="dark"] body.mentor-page-body.mobile-app-layout input::placeholder,
    html[data-mobile-theme="dark"] body.mentor-page-body.mobile-app-layout textarea::placeholder {
        color: #64748b !important;
    }

    body.mentor-page-body.mobile-app-layout button,
    body.mentor-page-body.mobile-app-layout .secondary-button,
    body.mentor-page-body.mobile-app-layout .compact-button {
        border-color: var(--mobile-line) !important;
        color: var(--mobile-text-strong) !important;
        background: var(--mobile-soft) !important;
        box-shadow: none !important;
    }

    body.mentor-page-body.mobile-app-layout .primary-button,
    body.mentor-page-body.mobile-app-layout button[type="submit"]:not(.secondary-button) {
        border-color: var(--mobile-accent) !important;
        color: #ffffff !important;
        background: var(--mobile-accent) !important;
    }

    body.mentor-page-body.mobile-app-layout .mentor-bar-row,
    body.mentor-page-body.mobile-app-layout .mentor-compact-list > div,
    body.mentor-page-body.mobile-app-layout .mentor-pattern-list > div,
    body.mentor-page-body.mobile-app-layout .mentor-dna-grid > div {
        border-bottom-color: var(--mobile-line) !important;
    }

    body.mentor-page-body.mobile-app-layout .mentor-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    body.mentor-page-body.mobile-app-layout .terminal-table {
        min-width: 680px !important;
    }

    body.mentor-page-body.mobile-app-layout .mentor-import-form textarea {
        min-height: 180px !important;
    }
}

.app-body .recommendation-strategy-panel,
.app-body .recommendation-tracking-panel {
    display: grid;
    gap: 12px;
    margin: 12px 0;
    padding: 14px;
    border: 1px solid var(--panel-border, #d8e0ea);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.04);
}

.app-body .recommendation-strategy-head,
.app-body .recommendation-tracking-head {
    display: flex;
    min-width: 0;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.app-body .recommendation-strategy-head {
    cursor: pointer;
    list-style: none;
}

.app-body .recommendation-strategy-head::-webkit-details-marker {
    display: none;
}

.app-body .recommendation-strategy-head strong,
.app-body .recommendation-tracking-head strong {
    color: var(--text-strong, #172033);
    font-size: 0.92rem;
    font-weight: 900;
    line-height: 1.2;
}

.app-body .recommendation-strategy-head span,
.app-body .recommendation-tracking-head span {
    color: var(--muted, #6b7280);
    font-size: 0.72rem;
    font-weight: 750;
    line-height: 1.3;
    text-align: right;
}

.app-body .recommendation-strategy-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.app-body .recommendation-strategy-card,
.app-body .recommendation-tracking-summary > div,
.app-body .recommendation-tracking-modes > div,
.app-body .recommendation-tracking-collection-slots > div,
.app-body .recommendation-tracking-thresholds > div,
.app-body .recommendation-tracking-btc-states > div,
.app-body .recommendation-tracking-runner-profiles > div,
.app-body .recommendation-tracking-volume-groups > div {
    min-width: 0;
    border: 1px solid var(--panel-border-soft, #edf1f5);
    border-radius: 8px;
    background: #f8fbff;
}

.app-body .recommendation-strategy-card {
    display: grid;
    gap: 10px;
    padding: 12px;
}

.app-body .recommendation-strategy-title {
    display: grid;
    gap: 3px;
}

.app-body .recommendation-strategy-title strong {
    color: var(--accent, #0b5ac2);
    font-size: 0.82rem;
    font-weight: 900;
}

.app-body .recommendation-strategy-title span,
.app-body .recommendation-strategy-card li strong,
.app-body .recommendation-tracking-row span,
.app-body .recommendation-tracking-modes small {
    color: var(--muted, #6b7280);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.3;
}

.app-body .recommendation-strategy-card ol {
    display: grid;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.app-body .recommendation-strategy-card li {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.app-body .recommendation-strategy-card li span {
    overflow: hidden;
    color: var(--text-strong, #172033);
    font-size: 0.76rem;
    font-weight: 850;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-body .recommendation-tracking-summary,
.app-body .recommendation-tracking-modes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.app-body .recommendation-tracking-thresholds,
.app-body .recommendation-tracking-collection-slots,
.app-body .recommendation-tracking-btc-states,
.app-body .recommendation-tracking-volume-groups {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.app-body .recommendation-tracking-runner-profiles {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.app-body .recommendation-tracking-summary > div,
.app-body .recommendation-tracking-modes > div,
.app-body .recommendation-tracking-collection-slots > div,
.app-body .recommendation-tracking-thresholds > div,
.app-body .recommendation-tracking-btc-states > div,
.app-body .recommendation-tracking-runner-profiles > div,
.app-body .recommendation-tracking-volume-groups > div {
    display: grid;
    gap: 3px;
    padding: 10px;
}

.app-body .recommendation-tracking-summary span,
.app-body .recommendation-tracking-modes span,
.app-body .recommendation-tracking-collection-slots span,
.app-body .recommendation-tracking-thresholds span,
.app-body .recommendation-tracking-btc-states span,
.app-body .recommendation-tracking-runner-profiles span,
.app-body .recommendation-tracking-volume-groups span {
    color: var(--muted, #6b7280);
    font-size: 0.66rem;
    font-weight: 800;
}

.app-body .recommendation-tracking-summary strong,
.app-body .recommendation-tracking-modes strong,
.app-body .recommendation-tracking-collection-slots strong,
.app-body .recommendation-tracking-thresholds strong,
.app-body .recommendation-tracking-btc-states strong,
.app-body .recommendation-tracking-runner-profiles strong,
.app-body .recommendation-tracking-volume-groups strong {
    color: var(--text-strong, #172033);
    font-size: 0.86rem;
    font-weight: 900;
}

.app-body .recommendation-tracking-thresholds small,
.app-body .recommendation-tracking-collection-slots small,
.app-body .recommendation-tracking-btc-states small,
.app-body .recommendation-tracking-runner-profiles small,
.app-body .recommendation-tracking-volume-groups small {
    color: var(--muted, #6b7280);
    font-size: 0.64rem;
    font-weight: 700;
    line-height: 1.35;
}

.app-body .recommendation-tracking-list {
    display: grid;
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--panel-border-soft, #edf1f5);
    border-radius: 8px;
    background: var(--panel-border-soft, #edf1f5);
}

.app-body .recommendation-tracking-events {
    display: grid;
    gap: 8px;
}

.app-body .recommendation-winrate-panel,
.app-body .recommendation-tracking-analysis {
    overflow: hidden;
    border: 1px solid var(--panel-border-soft, #edf1f5);
    border-radius: 8px;
    background: #ffffff;
}

.app-body .recommendation-winrate-panel summary,
.app-body .recommendation-tracking-analysis summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 12px;
    cursor: pointer;
    list-style: none;
    background: #f8fbff;
}

.app-body .recommendation-winrate-panel summary::-webkit-details-marker,
.app-body .recommendation-tracking-analysis summary::-webkit-details-marker {
    display: none;
}

.app-body .recommendation-winrate-panel summary strong,
.app-body .recommendation-tracking-analysis summary strong {
    color: var(--text-strong, #172033);
    font-size: 0.82rem;
    font-weight: 900;
}

.app-body .recommendation-winrate-panel summary span,
.app-body .recommendation-tracking-analysis summary span,
.app-body .recommendation-tracking-section-title span {
    color: var(--muted, #6b7280);
    font-size: 0.68rem;
    font-weight: 750;
    line-height: 1.35;
    text-align: right;
}

.app-body .recommendation-winrate-table-wrap {
    overflow-x: auto;
    border-top: 1px solid var(--panel-border-soft, #edf1f5);
}

.app-body .recommendation-winrate-table {
    width: 100%;
    min-width: 980px;
    border-collapse: collapse;
    background: #ffffff;
}

.app-body .recommendation-winrate-table th,
.app-body .recommendation-winrate-table td {
    padding: 8px 9px;
    border-bottom: 1px solid var(--panel-border-soft, #edf1f5);
    color: var(--text-strong, #172033);
    font-size: 0.68rem;
    font-weight: 760;
    line-height: 1.25;
    text-align: right;
    white-space: nowrap;
}

.app-body .recommendation-winrate-table th {
    background: #f8fbff;
    color: var(--muted, #6b7280);
    font-size: 0.64rem;
    font-weight: 900;
}

.app-body .recommendation-winrate-table th:first-child,
.app-body .recommendation-winrate-table th:nth-child(2),
.app-body .recommendation-winrate-table td:first-child,
.app-body .recommendation-winrate-table td:nth-child(2) {
    text-align: left;
}

.app-body .recommendation-winrate-table tbody tr:last-child td {
    border-bottom: 0;
}

.app-body .recommendation-tracking-analysis-body {
    display: grid;
    gap: 10px;
    padding: 10px;
}

.app-body .recommendation-tracking-analysis-section {
    display: grid;
    gap: 7px;
    min-width: 0;
}

.app-body .recommendation-tracking-section-title {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}

.app-body .recommendation-tracking-section-title strong {
    color: var(--text-strong, #172033);
    font-size: 0.76rem;
    font-weight: 900;
}

.app-body .recommendation-tracking-event {
    overflow: hidden;
    border: 1px solid var(--panel-border-soft, #edf1f5);
    border-radius: 8px;
    background: #ffffff;
}

.app-body .recommendation-tracking-event summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 11px 12px;
    cursor: pointer;
    list-style: none;
    background: #f8fbff;
}

.app-body .recommendation-tracking-event summary::-webkit-details-marker {
    display: none;
}

.app-body .recommendation-tracking-event summary > div {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.app-body .recommendation-tracking-event summary > div:last-child {
    text-align: right;
}

.app-body .recommendation-tracking-event summary strong {
    overflow: hidden;
    color: var(--text-strong, #172033);
    font-size: 0.8rem;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-body .recommendation-tracking-event summary span,
.app-body .recommendation-tracking-event-modes small,
.app-body .recommendation-tracking-event-modes span {
    color: var(--muted, #6b7280);
    font-size: 0.66rem;
    font-weight: 750;
    line-height: 1.35;
}

.app-body .recommendation-tracking-event-body {
    display: grid;
    gap: 8px;
    padding: 8px;
}

.app-body .recommendation-tracking-event-modes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.app-body .recommendation-tracking-event-modes > div {
    display: grid;
    gap: 3px;
    min-width: 0;
    padding: 9px;
    border: 1px solid var(--panel-border-soft, #edf1f5);
    border-radius: 8px;
    background: #f8fbff;
}

.app-body .recommendation-tracking-event-modes strong {
    color: var(--text-strong, #172033);
    font-size: 0.78rem;
    font-weight: 900;
}

.app-body .recommendation-tracking-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    background: #ffffff;
}

.app-body .recommendation-tracking-row > div {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.app-body .recommendation-tracking-row > div:last-child {
    text-align: right;
}

.app-body .recommendation-tracking-row strong {
    overflow: hidden;
    color: var(--text-strong, #172033);
    font-size: 0.78rem;
    font-weight: 900;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (max-width: 900px) {
    .app-body .recommendation-strategy-panel,
    .app-body .recommendation-tracking-panel {
        gap: 10px;
        margin: 10px 0;
        padding: 11px;
        border-radius: 8px;
    }

    .app-body .recommendation-strategy-head,
    .app-body .recommendation-tracking-head {
        display: grid;
        gap: 3px;
    }

    .app-body .recommendation-strategy-head span,
    .app-body .recommendation-tracking-head span {
        text-align: left;
    }

    .app-body .recommendation-strategy-grid,
    .app-body .recommendation-tracking-summary,
    .app-body .recommendation-tracking-modes,
    .app-body .recommendation-tracking-collection-slots,
    .app-body .recommendation-tracking-thresholds,
    .app-body .recommendation-tracking-btc-states,
    .app-body .recommendation-tracking-runner-profiles,
    .app-body .recommendation-tracking-volume-groups {
        grid-template-columns: minmax(0, 1fr);
    }

    .app-body .recommendation-tracking-event summary,
    .app-body .recommendation-tracking-event-modes {
        grid-template-columns: minmax(0, 1fr);
    }

    .app-body .recommendation-winrate-panel summary,
    .app-body .recommendation-tracking-analysis summary,
    .app-body .recommendation-tracking-section-title {
        display: grid;
        gap: 3px;
    }

    .app-body .recommendation-winrate-panel summary span,
    .app-body .recommendation-tracking-analysis summary span,
    .app-body .recommendation-tracking-section-title span {
        text-align: left;
    }

    .app-body .recommendation-tracking-event summary > div:last-child {
        text-align: left;
    }

    .app-body .recommendation-tracking-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }

    .app-body .recommendation-tracking-row > div:last-child {
        text-align: left;
    }
}

/* Trading terminal redesign components */
.app-body {
    --bg: #0f141b;
    --bg-accent: #151b24;
    --panel: #171d27;
    --panel-subtle: #111720;
    --panel-border: rgba(112, 126, 148, 0.28);
    --text: #e5e7eb;
    --muted: #8b98aa;
    --success: #20b26b;
    --danger: #ef4444;
    --warning: #eab308;
    --radius: 8px;
    --shadow: none;
    background: #0f141b;
}

.app-body .topbar,
.app-body .panel,
.app-body .metric-card,
.app-body .timestamp-card {
    background: var(--panel);
    border-color: var(--panel-border);
    box-shadow: none;
}

.terminal-topbar {
    border-radius: 8px;
    padding: 14px 16px;
    background: #121821;
}

.terminal-topbar h1 {
    color: var(--text);
    letter-spacing: 0;
}

.terminal-sidebar {
    grid-column: span 2;
    position: sticky;
    top: calc(16px + var(--safe-top));
    display: grid;
    gap: 4px;
    padding: 8px;
    border: 1px solid var(--panel-border);
    border-radius: 8px;
    background: #121821;
}

.terminal-nav-item {
    display: flex;
    align-items: center;
    min-height: 34px;
    padding: 0 10px;
    border-radius: 6px;
    color: var(--muted);
    text-decoration: none;
    font-size: 0.82rem;
    font-weight: 700;
}

.terminal-nav-item:hover,
.terminal-nav-item.active {
    background: rgba(148, 163, 184, 0.12);
    color: var(--text);
}

.page-grid > .header-toggle-button,
.page-grid > .terminal-command-center,
.page-grid > .terminal-section,
.page-grid > .terminal-lower-grid {
    grid-column: 3 / -1;
}

.terminal-command-center {
    position: static;
    padding: 16px;
    border-radius: 8px;
    background: #121821;
    overflow: hidden;
}

.terminal-command-center.market-state-bull {
    border-color: rgba(32, 178, 107, 0.38);
}

.terminal-command-center.market-state-sideways {
    border-color: rgba(234, 179, 8, 0.36);
}

.terminal-command-center.market-state-defensive {
    border-color: rgba(239, 68, 68, 0.42);
}

.terminal-hero-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1.45fr) minmax(220px, 0.95fr) minmax(220px, 0.85fr);
    gap: 1px;
    background: var(--panel-border);
    border: 1px solid var(--panel-border);
    border-radius: 8px;
    overflow: hidden;
}

.market-mode-hero,
.hero-metric-stack,
.data-panel,
.info-panel {
    background: #151b24;
}

.market-mode-hero {
    min-height: 220px;
    padding: 24px;
    display: grid;
    align-content: center;
    gap: 10px;
}

.market-mode-hero h2 {
    margin: 0;
    color: var(--text);
    font-size: clamp(2.4rem, 5vw, 5rem);
    line-height: 0.92;
    letter-spacing: 0;
}

.market-mode-hero p {
    margin: 0;
    color: var(--muted);
}

.mode-dot {
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: var(--muted);
}

.market-state-bull .mode-dot {
    background: var(--success);
}

.market-state-sideways .mode-dot {
    background: var(--warning);
}

.market-state-defensive .mode-dot {
    background: var(--danger);
}

.hero-action-row,
.terminal-mini-grid,
.portfolio-metric-grid,
.engine-score-grid,
.system-status-grid {
    display: grid;
    gap: 8px;
}

.hero-action-row {
    grid-template-columns: repeat(3, max-content);
    align-items: center;
    margin-top: 8px;
}

.hero-metric-stack {
    padding: 18px;
    display: grid;
    gap: 12px;
    align-content: center;
}

.terminal-mini-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.metric,
.terminal-metric {
    min-width: 0;
}

.metric-label {
    display: block;
    margin-bottom: 5px;
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.metric-value,
.metric strong {
    color: var(--text);
    font-size: 1.05rem;
    line-height: 1.2;
}

.metric.compact strong {
    display: block;
    font-size: 0.9rem;
}

.metric small,
.terminal-metric small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 0.74rem;
    line-height: 1.35;
}

.portfolio-health-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.portfolio-health-head strong {
    font-size: 1.8rem;
}

.progress-bar {
    height: 7px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.18);
}

.progress-bar span {
    display: block;
    height: 100%;
    width: 0;
    max-width: 100%;
    border-radius: inherit;
    background: currentColor;
}

.terminal-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(320px, 1.2fr) minmax(240px, 0.8fr) minmax(300px, 1fr);
    gap: 1px;
    margin-top: 1px;
    background: var(--panel-border);
    border: 1px solid var(--panel-border);
    border-top: none;
    border-radius: 0 0 8px 8px;
    overflow: hidden;
}

.data-panel,
.info-panel {
    padding: 16px;
    display: grid;
    gap: 14px;
    align-content: start;
}

.market-health-panel {
    grid-row: span 2;
}

.portfolio-terminal-card {
    grid-column: span 2;
}

.panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.panel-header h3 {
    margin: 0;
    color: var(--text);
    font-size: 1rem;
}

.breadth-bars,
.trend-stack,
.engine-reasons,
.activity-feed,
.signal-console {
    display: grid;
    gap: 10px;
}

.ratio-row {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) minmax(92px, max-content);
    gap: 10px;
    align-items: center;
    font-size: 0.82rem;
}

.ratio-row strong {
    font-size: 0.82rem;
    text-align: right;
}

.trend-indicator {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
}

.trend-indicator span {
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 800;
}

.portfolio-metric-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hidden-live-fields {
    display: none;
}

.engine-score-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.engine-score-grid > div,
.system-status,
.alert-item,
.coin-item {
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 8px;
    background: rgba(15, 20, 27, 0.55);
}

.engine-score-grid > div {
    padding: 10px;
}

.engine-score-grid span,
.system-status span {
    display: block;
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.engine-score-grid strong {
    display: block;
    margin-top: 6px;
    font-size: 1.4rem;
}

.engine-score-grid small {
    display: block;
    margin-top: 4px;
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.35;
}

.engine-methodology {
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 8px;
    background: rgba(15, 20, 27, 0.35);
}

.engine-methodology summary {
    padding: 11px 12px;
    color: var(--text);
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 800;
}

.engine-methodology-body {
    display: grid;
    gap: 12px;
    padding: 0 12px 12px;
}

.engine-methodology-body > p {
    margin: 0;
    color: var(--muted);
    font-size: 0.76rem;
    line-height: 1.55;
}

.engine-method-grid {
    display: grid;
    gap: 10px;
}

.engine-method-grid section {
    padding: 10px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    border-radius: 7px;
}

.engine-method-grid h4 {
    margin: 0 0 7px;
    font-size: 0.8rem;
}

.engine-method-grid ul {
    display: grid;
    gap: 5px;
    margin: 0;
    padding-left: 16px;
    color: var(--muted);
    font-size: 0.73rem;
    line-height: 1.45;
}

.engine-method-grid code {
    color: var(--text);
    font-size: 0.72rem;
}

.status-badge,
.live-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.live-badge {
    color: #052e1b;
    background: var(--success);
}

.status-positive,
.trend-positive,
.positive-text,
.positive,
.signal-positive {
    color: var(--success) !important;
}

.status-negative,
.trend-negative,
.negative-text,
.negative,
.signal-negative {
    color: var(--danger) !important;
}

.status-warning,
.trend-neutral,
.muted-text,
.status-neutral,
.neutral,
.signal-neutral,
.signal-muted {
    color: var(--warning) !important;
}

.status-badge.status-positive {
    background: rgba(32, 178, 107, 0.13);
    border: 1px solid rgba(32, 178, 107, 0.25);
}

.status-badge.status-warning,
.status-badge.status-neutral {
    background: rgba(234, 179, 8, 0.12);
    border: 1px solid rgba(234, 179, 8, 0.24);
}

.coin-signal-list {
    display: grid;
    gap: 8px;
}

.coin-item {
    display: grid;
    grid-template-columns: 54px minmax(220px, 1fr) minmax(360px, 1.35fr);
    gap: 14px;
    align-items: start;
    padding: 12px;
}

.coin-item-rank {
    color: var(--muted);
    font-size: 0.8rem;
    font-weight: 800;
}

.coin-item-main {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.coin-item-main p {
    margin: 0;
    color: var(--muted);
    font-size: 0.8rem;
    line-height: 1.45;
}

.coin-item .market-identity span,
.coin-item .market-identity a {
    color: var(--text);
}

.coin-item-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.coin-item-details {
    grid-column: 3 / -1;
}

.score-metric strong {
    color: var(--warning);
}

.terminal-console-grid {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 0.32fr);
}

.alert-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    gap: 12px;
    padding: 11px 12px;
}

.alert-item strong {
    display: block;
    color: var(--text);
    font-size: 0.92rem;
}

.alert-item p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 0.8rem;
}

.alert-item-time,
.alert-item-meta span {
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 800;
}

.alert-item-meta {
    display: grid;
    gap: 6px;
    justify-items: end;
}

.terminal-lower-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
    gap: 18px;
}

.activity-panel,
.system-status-panel {
    padding: 18px;
}

.activity-item {
    display: grid;
    grid-template-columns: 9px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}

.activity-item > span {
    width: 9px;
    height: 9px;
    margin-top: 6px;
    border-radius: 999px;
    background: currentColor;
}

.activity-item time {
    display: block;
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 800;
}

.activity-item strong {
    display: block;
    margin-top: 2px;
    color: var(--text);
}

.activity-item p {
    margin: 2px 0 0;
    color: var(--muted);
    font-size: 0.8rem;
}

.system-status-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.system-status {
    padding: 12px;
}

.system-status strong {
    display: block;
    margin-top: 6px;
}

.app-body .table-wrap {
    border-color: rgba(148, 163, 184, 0.18);
}

.app-body .asset-table th {
    background: #111720;
    color: #a5b1c2;
}

.app-body .asset-table td {
    border-color: rgba(148, 163, 184, 0.12);
}

@media (max-width: 1120px) {
    .terminal-sidebar,
    .page-grid > .header-toggle-button,
    .page-grid > .terminal-command-center,
    .page-grid > .terminal-section,
    .page-grid > .terminal-lower-grid {
        grid-column: 1 / -1;
    }

    .terminal-sidebar {
        position: static;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .terminal-hero-grid,
    .terminal-dashboard-grid,
    .terminal-console-grid,
    .terminal-lower-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .portfolio-terminal-card,
    .coin-item-details {
        grid-column: auto;
    }
}

@media (max-width: 720px) {
    .terminal-sidebar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .hero-action-row,
    .terminal-mini-grid,
    .portfolio-metric-grid,
    .engine-score-grid,
    .system-status-grid,
    .coin-item-metrics {
        grid-template-columns: minmax(0, 1fr);
    }

    .coin-item {
        grid-template-columns: minmax(0, 1fr);
    }

    .ratio-row {
        grid-template-columns: 44px minmax(0, 1fr);
    }

    .ratio-row strong {
        grid-column: 1 / -1;
        text-align: left;
    }

    .market-mode-hero {
        min-height: 180px;
        padding: 18px;
    }
}

* {
    box-sizing: border-box;
}

[hidden] {
    display: none !important;
}

body {
    margin: 0;
    min-height: 100vh;
    min-height: 100dvh;
    font-size: 15px;
    font-family: var(--font-sans);
    color: var(--text);
    background: linear-gradient(180deg, var(--bg), var(--bg-accent));
}

.auth-body,
.app-body {
    padding:
        calc(var(--page-padding) + var(--safe-top))
        calc(var(--page-padding) + var(--safe-right))
        calc(var(--page-padding) + var(--safe-bottom))
        calc(var(--page-padding) + var(--safe-left));
}

.auth-shell {
    min-height: calc(100vh - ((var(--page-padding) * 2) + var(--safe-top) + var(--safe-bottom)));
    min-height: calc(100dvh - ((var(--page-padding) * 2) + var(--safe-top) + var(--safe-bottom)));
    display: grid;
    place-items: center;
}

.auth-card,
.panel {
    background: var(--panel);
    border: 1px solid var(--panel-border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

.auth-card {
    width: min(100%, 440px);
    padding: 36px;
    animation: slide-up 0.5s ease;
}

.topbar {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    margin-bottom: 16px;
    padding: 16px 18px;
    border: 1px solid var(--panel-border);
    border-radius: var(--radius);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.05);
}

.topbar-brand {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.topbar-status-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.topbar-actions form {
    margin: 0;
}

.header-toggle-button {
    grid-column: span 12;
    justify-self: end;
    position: sticky;
    top: calc(16px + var(--safe-top));
    z-index: 60;
    gap: 8px;
    white-space: nowrap;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.16);
    backdrop-filter: blur(18px);
    background: rgba(255, 255, 255, 0.94);
    border: 1px solid rgba(148, 163, 184, 0.28);
}

.header-toggle-button[data-collapsed="false"] {
    color: var(--text);
}

.header-toggle-button[data-collapsed="true"] {
    background: linear-gradient(135deg, var(--accent), var(--accent-strong));
    color: #fffaf3;
    border-color: transparent;
}

.header-toggle-icon {
    font-size: 1rem;
    line-height: 1;
}

.dashboard-header-collapsed [data-header-toggle-target] {
    display: none;
}

.page-grid {
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: start;
}

.single-column {
    grid-template-columns: minmax(0, 1fr);
}

.summary-panel {
    grid-column: span 12;
}

.session-panel,
.hero-panel,
.split-panel,
.holdings-panel {
    grid-column: span 12;
}

.hero-panel {
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(248, 251, 255, 0.98));
}

.session-panel {
    position: sticky;
    top: calc(16px + var(--safe-top));
    z-index: 40;
    display: grid;
    gap: 12px;
    padding: 18px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.96));
    backdrop-filter: blur(18px);
}

.session-panel.session-panel-scrolled {
    gap: 10px;
    padding-top: 14px;
    padding-bottom: 14px;
}

.session-panel.session-panel-scrolled .session-panel-header {
    display: none;
}

.session-panel-header {
    display: grid;
    gap: 10px;
}

.dashboard-overview-head {
    grid-template-columns: minmax(180px, 0.72fr) minmax(0, 1.28fr);
    align-items: center;
    gap: 12px;
}

.dashboard-overview-title {
    min-width: 0;
}

.dashboard-overview-title .eyebrow {
    margin-bottom: 4px;
}

.dashboard-overview-title h2 {
    margin: 0;
}

@supports selector(:has(+ *)) {
    .dashboard-overview-head .dashboard-header-alerts:not(:has(.alert:not([hidden]))) {
        display: none;
    }

    .dashboard-overview-head:not(:has(.dashboard-header-alerts .alert:not([hidden]))) .dashboard-overview-title {
        grid-column: 1 / -1;
    }
}

.session-panel-layout {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 14px;
}

.session-panel-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.dashboard-panel-toggle-group {
    display: grid;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(255, 255, 255, 0.82);
}

.dashboard-panel-toggle-group .eyebrow {
    margin: 0;
}

.dashboard-panel-toggles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.dashboard-panel-toggle-button {
    width: 100%;
    justify-content: space-between;
    gap: 8px;
    min-height: 36px;
    padding: 0 12px;
    white-space: nowrap;
}

.dashboard-panel-toggle-button strong {
    min-width: 30px;
    text-align: center;
}

.dashboard-panel-toggle-button span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dashboard-panel-toggle-button[data-expanded="true"] {
    background: rgba(37, 99, 235, 0.08);
    border-color: rgba(37, 99, 235, 0.18);
    color: #1d4ed8;
}

.dashboard-panel-toggle-button[data-expanded="false"] {
    background: rgba(148, 163, 184, 0.12);
    border-color: rgba(148, 163, 184, 0.22);
    color: #475569;
}

.dashboard-header-content {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.75fr);
    align-items: start;
    gap: 12px;
}

.dashboard-utility-grid {
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.75fr);
}

.dashboard-header-main,
.dashboard-header-side {
    display: grid;
    gap: 12px;
    min-width: 0;
}

.dashboard-header-summary {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.05fr) minmax(0, 0.95fr) minmax(0, 0.95fr);
    gap: 10px;
    overflow: visible;
    padding-bottom: 0;
}

.sticky-summary-card {
    min-width: 0;
    background: rgba(255, 255, 255, 0.86);
    border-color: rgba(148, 163, 184, 0.18);
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
}

.sticky-summary-card-stack {
    min-width: 0;
}

.sticky-summary-card-combo {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(120px, 0.85fr);
    gap: 14px;
    min-width: 0;
}

.sticky-summary-card-combo-main {
    display: grid;
    align-content: start;
}

.sticky-summary-card-combo-side {
    padding-left: 14px;
    border-left: 1px solid rgba(148, 163, 184, 0.14);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.sticky-summary-card-profit-combo {
    grid-template-columns: minmax(0, 1.2fr) minmax(150px, 0.95fr);
    min-width: 0;
}

.sticky-summary-card-profit-side {
    justify-content: flex-start;
}

.sticky-summary-card-wide {
    min-width: 0;
}

.sticky-summary-card-xwide {
    min-width: 0;
}

.sticky-summary-card strong {
    display: block;
}

.sticky-summary-card small {
    display: block;
    margin-top: 8px;
}

.panel {
    padding: 22px;
    animation: slide-up 0.5s ease;
}

.panel:nth-child(2) {
    animation-delay: 0.08s;
}

.panel:nth-child(3) {
    animation-delay: 0.16s;
}

.panel-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 16px;
}

.holdings-panel-heading {
    display: grid;
    gap: 12px;
}

.holdings-heading-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 14px;
}

.dashboard-header-alerts {
    display: grid;
    gap: 6px;
    width: 100%;
}

.dashboard-header-alerts .alert {
    margin-bottom: 0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 30px;
    padding: 6px 12px;
    justify-content: flex-start;
    border-radius: 14px;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: anywhere;
}

.dashboard-header-memo {
    display: grid;
    gap: 10px;
    padding: 14px 16px;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(255, 255, 255, 0.82);
}

.dashboard-header-memo-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.dashboard-header-memo-title {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.35;
}

.dashboard-header-memo-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.dashboard-header-memo-toggle {
    gap: 8px;
}

.dashboard-header-memo-toggle strong {
    min-width: 30px;
    text-align: center;
}

.dashboard-header-memo-toggle[data-expanded="true"] {
    background: rgba(37, 99, 235, 0.08);
    border-color: rgba(37, 99, 235, 0.18);
    color: #1d4ed8;
}

.dashboard-header-memo-toggle[data-expanded="false"] {
    background: rgba(148, 163, 184, 0.12);
    border-color: rgba(148, 163, 184, 0.22);
    color: #475569;
}

.dashboard-header-memo-list {
    display: grid;
    gap: 0;
}

.dashboard-header-memo-list[hidden] {
    display: none !important;
}

.dashboard-header-memo-list-head,
.dashboard-header-memo-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 164px;
    gap: 14px;
    align-items: start;
}

.dashboard-header-memo-list-head {
    padding: 0 0 7px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    color: var(--muted);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.dashboard-header-memo-list-head span:last-child {
    padding-left: 14px;
    border-left: 1px solid rgba(148, 163, 184, 0.14);
    text-align: right;
}

.dashboard-header-memo-item {
    padding: 10px 0;
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
}

.dashboard-header-memo-item:last-child {
    padding-bottom: 0;
    border-bottom: none;
}

.dashboard-header-memo-item-content {
    min-width: 0;
}

.dashboard-header-memo-item-side {
    display: grid;
    gap: 4px;
    justify-items: end;
    padding-left: 14px;
    border-left: 1px solid rgba(148, 163, 184, 0.14);
}

.dashboard-header-memo-item-content p,
.dashboard-header-memo-item-side .muted,
.dashboard-header-memo-empty {
    margin: 0;
}

.dashboard-header-memo-item-content p {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    font-size: 0.8rem;
    line-height: 1.55;
}

.panel-header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.panel-collapsible-body {
    display: grid;
    gap: 14px;
}

.panel-collapsible-body[hidden] {
    display: none !important;
}

.memo-board-layout {
    display: grid;
    grid-template-columns: minmax(280px, 360px) minmax(0, 1fr);
    align-items: start;
    gap: 14px;
}

.memo-editor-card,
.memo-board-card,
.memo-board-empty {
    padding: 16px 18px;
    border-radius: 18px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    background: rgba(255, 255, 255, 0.94);
}

.memo-editor-card {
    display: grid;
    gap: 14px;
    background: rgba(255, 255, 255, 0.94);
}

.memo-editor-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.memo-editor-card-header strong {
    display: block;
    margin-bottom: 6px;
}

.memo-editor-card-header p {
    margin: 0;
}

.memo-editor-form {
    gap: 12px;
}

.memo-editor-form label {
    display: grid;
    gap: 8px;
}

.memo-editor-form textarea {
    min-height: 180px;
    max-height: 360px;
    line-height: 1.6;
}

.memo-editor-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.memo-editor-actions .muted {
    margin-left: auto;
}

.memo-board-list {
    display: grid;
    gap: 12px;
}

.memo-board-card {
    display: grid;
    gap: 12px;
}

.memo-board-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.memo-board-card-copy {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.memo-board-card-copy h3 {
    margin: 0;
    font-size: 1.04rem;
    line-height: 1.35;
}

.memo-board-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.memo-board-card-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.memo-board-card-actions form {
    margin: 0;
}

.memo-board-card-content {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    line-height: 1.65;
}

.memo-board-empty {
    display: grid;
    gap: 8px;
    min-height: 180px;
    align-content: center;
}

.memo-board-empty strong,
.memo-board-empty p {
    margin: 0;
}

.hero-panel-body,
.split-panel-body {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
}

.table-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.hero-status-group {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.metric-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.metric-card,
.timestamp-card {
    padding: 14px;
    border-radius: 16px;
    background: var(--panel-subtle);
    border: 1px solid rgba(148, 163, 184, 0.16);
}

.metric-card span,
.timestamp-card span {
    display: block;
    color: var(--muted);
    font-size: 0.8rem;
    margin-bottom: 8px;
}

.metric-card strong,
.timestamp-card strong {
    font-size: 1rem;
}

.topbar .eyebrow,
.session-panel .eyebrow {
    margin-bottom: 4px;
}

.topbar h1 {
    font-size: 1.5rem;
    line-height: 1.12;
    margin-bottom: 0;
}

.panel h2 {
    font-size: 1.38rem;
    line-height: 1.22;
    margin-bottom: 0;
}

.panel h3 {
    font-size: 1rem;
    line-height: 1.38;
}

.session-panel h2 {
    font-size: 1.2rem;
    line-height: 1.18;
    margin-bottom: 0;
}

.session-panel .muted {
    font-size: 0.84rem;
    line-height: 1.4;
}

.topbar .secondary-button,
.topbar .ghost-link {
    min-height: 40px;
    padding: 0 14px;
}

.topbar .pill {
    padding: 7px 12px;
    font-size: 0.8rem;
}

.topbar-session-remaining {
    font-size: 0.82rem;
}

.topbar .session-toggle-button {
    min-height: 40px;
    padding: 0 12px;
    gap: 8px;
    border-radius: 12px;
}

.topbar .session-toggle-button strong {
    min-width: 34px;
}

.topbar .info-chip {
    min-height: 32px;
    padding: 0 12px;
    font-size: 0.8rem;
}

.dashboard-header-summary .metric-card {
    padding: 16px;
}

.dashboard-header-summary .metric-card span {
    margin-bottom: 6px;
    font-size: 0.76rem;
}

.dashboard-header-summary .metric-card strong {
    font-size: 1rem;
    line-height: 1.22;
}

.dashboard-header-summary .metric-card small {
    margin-top: 5px;
    font-size: 0.74rem;
    line-height: 1.35;
}

.market-state-card {
    display: grid;
    gap: 10px;
}

.market-state-card.market-state-bull {
    background: rgba(236, 253, 245, 0.92);
    border-color: rgba(21, 128, 61, 0.24);
}

.market-state-card.market-state-sideways {
    background: rgba(248, 250, 252, 0.94);
    border-color: rgba(100, 116, 139, 0.24);
}

.market-state-card.market-state-defensive {
    background: rgba(254, 242, 242, 0.94);
    border-color: rgba(220, 38, 38, 0.22);
}

.market-state-card.market-state-unknown {
    background: rgba(248, 250, 252, 0.94);
}

.market-state-guide {
    padding-top: 10px;
    border-top: 1px solid rgba(148, 163, 184, 0.14);
}

.market-state-breadth {
    padding-top: 10px;
    border-top: 1px solid rgba(148, 163, 184, 0.14);
}

.market-state-breadth strong {
    font-size: 0.92rem;
}

.market-state-breadth-line {
    overflow-wrap: anywhere;
}

.market-state-reason {
    overflow-wrap: anywhere;
}

.dashboard-header-summary .metric-card-stat + .metric-card-stat {
    padding-top: 10px;
}

.dashboard-header-summary .metric-card-dual .metric-card-stat + .metric-card-stat,
.dashboard-header-summary .metric-card-triple .metric-card-stat + .metric-card-stat {
    padding-left: 10px;
}

.dashboard-header-summary .sticky-summary-card-combo .metric-card-stat + .metric-card-stat {
    padding-left: 0;
}

.metric-card-dual {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.metric-card-triple {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.metric-card-stat + .metric-card-stat {
    padding-top: 14px;
    border-top: 1px solid rgba(148, 163, 184, 0.14);
}

.metric-card-dual .metric-card-stat + .metric-card-stat {
    padding-top: 0;
    padding-left: 14px;
    border-top: none;
    border-left: 1px solid rgba(148, 163, 184, 0.14);
}

.metric-card-triple .metric-card-stat + .metric-card-stat {
    padding-top: 0;
    padding-left: 14px;
    border-top: none;
    border-left: 1px solid rgba(148, 163, 184, 0.14);
}

.metric-card-stat span {
    display: block;
    color: var(--muted);
    font-size: 0.8rem;
    margin-bottom: 8px;
}

.metric-card small {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-size: 0.78rem;
}

.timestamp-card strong {
    font-size: 1.8rem;
}

.stack-form,
.settings-form {
    display: grid;
    gap: 12px;
}

.settings-form {
    gap: 16px;
}

label {
    font-size: 0.86rem;
    color: var(--muted);
}

input,
textarea,
button,
.ghost-link,
.secondary-button {
    border-radius: 14px;
    font: inherit;
}

input,
textarea {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    background: #ffffff;
    color: var(--text);
}

textarea {
    resize: vertical;
    min-height: 108px;
}

input:focus,
textarea:focus {
    outline: 2px solid rgba(245, 158, 11, 0.35);
    border-color: rgba(245, 158, 11, 0.55);
}

button,
.ghost-link,
.secondary-button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 42px;
    padding: 0 16px;
    border: none;
    text-decoration: none;
    cursor: pointer;
}

.compact-button,
.table-button {
    min-height: 34px;
    padding: 0 12px;
}

.panel-toggle-button {
    min-width: 92px;
    font-weight: 700;
}

.panel-toggle-button[data-expanded="false"] {
    background: rgba(148, 163, 184, 0.12);
    color: #475569;
    border-color: rgba(148, 163, 184, 0.28);
}

button {
    background: linear-gradient(135deg, var(--accent), var(--accent-strong));
    color: #fffaf3;
    font-weight: 700;
}

.secondary-button,
.ghost-link {
    background: #ffffff;
    color: var(--text);
    border: 1px solid rgba(148, 163, 184, 0.24);
}

.pill,
.alert,
.stat-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 8px 14px;
    font-size: 0.84rem;
}

.pill {
    background: rgba(255, 159, 28, 0.12);
    color: #b45309;
    border: 1px solid rgba(245, 158, 11, 0.28);
}

.alert {
    width: fit-content;
    margin-bottom: 8px;
}

.alert.full-width {
    width: 100%;
}

.alert.error {
    background: rgba(220, 38, 38, 0.08);
    color: #991b1b;
    border: 1px solid rgba(220, 38, 38, 0.18);
}

.alert.warning {
    background: rgba(217, 119, 6, 0.08);
    color: #9a3412;
    border: 1px solid rgba(217, 119, 6, 0.18);
}

.alert.success,
.stat-badge.positive {
    background: rgba(21, 128, 61, 0.1);
    color: #166534;
    border: 1px solid rgba(21, 128, 61, 0.2);
}

.stat-badge.warning,
.warning-pill {
    background: rgba(255, 159, 28, 0.12);
    color: #9a3412;
    border: 1px solid rgba(245, 158, 11, 0.28);
}

.stat-badge.neutral {
    background: rgba(148, 163, 184, 0.12);
    color: #475569;
    border: 1px solid rgba(148, 163, 184, 0.22);
}

.status-pill {
    white-space: nowrap;
}

.eyebrow {
    margin: 0 0 6px;
    color: #d97706;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 0.66rem;
}

h1,
h2,
h3,
p {
    margin-top: 0;
}

.muted {
    color: var(--muted);
    max-width: 60ch;
    font-size: 0.86rem;
    line-height: 1.45;
}

.market-search-feedback:empty,
#holdings-live-status:empty,
#holdings-filter-summary:empty,
.capital-amount-preview:empty,
.average-down-korean-amount:empty,
[data-average-field="message"]:empty {
    display: none;
}

.muted-text {
    color: var(--muted);
}

.positive-text {
    color: #dc2626;
}

.negative-text {
    color: #2563eb;
}

.table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 16px;
    border: 1px solid rgba(148, 163, 184, 0.14);
    background: #ffffff;
}

.holdings-table-wrap {
    --holdings-sticky-offset: 0px;
    position: relative;
    overflow: auto;
    max-height: 1120px;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-gutter: stable;
}

.holdings-table-wrap::before {
    content: "";
    display: block;
    height: var(--holdings-sticky-offset);
    margin-bottom: calc(var(--holdings-sticky-offset) * -1);
    pointer-events: none;
}

.asset-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 1240px;
    background: #ffffff;
}

.recommendation-table {
    min-width: 1160px;
}

.holdings-table {
    min-width: 2210px;
    table-layout: fixed;
}

.holdings-table col.holdings-col-coin {
    width: 196px;
}

.holdings-table col.holdings-col-age {
    width: 136px;
}

.holdings-table col.holdings-col-price {
    width: 112px;
}

.holdings-table col.holdings-col-change {
    width: 96px;
}

.holdings-table col.holdings-col-pump {
    width: 118px;
}

.holdings-table col.holdings-col-profit {
    width: 118px;
}

.holdings-table col.holdings-col-rate {
    width: 106px;
}

.holdings-table col.holdings-col-amount {
    width: 124px;
}

.holdings-table col.holdings-col-target {
    width: 430px;
}

.holdings-table col.holdings-col-order {
    width: 284px;
}

.asset-table.holdings-table th,
.asset-table.holdings-table td {
    padding: 10px 12px;
    font-size: 0.84rem;
}

.asset-table th,
.asset-table td {
    padding: 12px 14px;
    border-bottom: 1px solid rgba(226, 232, 240, 0.9);
    text-align: left;
    white-space: nowrap;
    vertical-align: top;
    font-size: 0.84rem;
}

.asset-table tbody tr:hover {
    background: #f8fbff;
}

.asset-table th {
    background: #f8fafc;
    position: sticky;
    top: 0;
    z-index: 1;
}

.holdings-table th {
    top: var(--holdings-sticky-offset);
    z-index: 3;
    box-shadow: inset 0 -1px 0 rgba(226, 232, 240, 0.9);
}

.holdings-table th:first-child,
.holdings-table td:first-child {
    position: sticky;
    left: 0;
}

.holdings-table th:first-child,
.holdings-table td:first-child,
.holdings-table th:last-child,
.holdings-table td:last-child {
    white-space: normal;
}

.holdings-table td:first-child {
    z-index: 1;
    background: #ffffff;
    box-shadow: 1px 0 0 rgba(226, 232, 240, 0.9);
}

.holdings-table th.buy-age-cell,
.holdings-table td.buy-age-cell {
    white-space: normal;
}

.holdings-table td.reservation-sell-cell {
    white-space: normal;
    line-height: 1.34;
    overflow-wrap: break-word;
    word-break: keep-all;
    font-size: 0.86rem;
    font-variant-numeric: tabular-nums;
    padding-top: 9px;
    padding-bottom: 9px;
}

.reservation-sell-lines {
    display: grid;
    gap: 4px;
}

.reservation-sell-line {
    display: block;
}

.holdings-table .sort-button {
    width: 100%;
    justify-content: space-between;
    align-items: flex-start;
    gap: 5px;
    line-height: 1.14;
    text-align: left;
    white-space: normal;
    font-size: 0.79rem;
}

.holdings-table .sort-button::after {
    flex: 0 0 auto;
    margin-top: 1px;
    font-size: 0.72rem;
}

.holdings-table th:nth-child(5) .sort-button {
    white-space: nowrap;
}

.holdings-table th:first-child {
    z-index: 4;
    box-shadow:
        1px 0 0 rgba(226, 232, 240, 0.9),
        inset 0 -1px 0 rgba(226, 232, 240, 0.9);
}

.holdings-table tbody tr:hover td:first-child {
    background: #f8fbff;
}

.holdings-table .status-cell {
    gap: 8px;
}

.holdings-table .cell-stack {
    gap: 2px;
}

.holdings-table .buy-lot-list {
    display: grid;
    gap: 6px;
}

.holdings-table .buy-lot-item {
    display: grid;
    gap: 1px;
}

.holdings-table .cell-stack strong,
.holdings-table .buy-lot-item strong,
.holdings-table .status-cell > span:first-child {
    font-size: 0.88rem;
    line-height: 1.18;
}

.holdings-table .cell-stack span,
.holdings-table .cell-meta,
.holdings-table .inline-order-field,
.holdings-table .inline-order-checkbox {
    font-size: 0.76rem;
}

.holdings-table .coin-heading,
.holdings-table .market-identity {
    gap: 6px;
}

.holdings-table .coin-logo-wrap {
    width: 24px;
    height: 24px;
}

.holdings-table .coin-logo-image {
    width: 20px;
    height: 20px;
}

.holdings-table .rank-badge {
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    font-size: 0.7rem;
}

.holdings-table .market-link {
    display: block;
    line-height: 1.12;
    overflow-wrap: anywhere;
}

.metric-card small {
    color: var(--muted);
    font-size: 0.85rem;
}

.metric-card small.positive-text {
    color: #dc2626;
}

.metric-card small.negative-text {
    color: #2563eb;
}

@media (max-width: 640px) {
    .metric-card-dual {
        grid-template-columns: 1fr;
    }

    .metric-card-triple {
        grid-template-columns: 1fr;
    }

    .capital-summary-combo-top {
        grid-template-columns: 1fr;
    }

    .capital-summary-combo-top .capital-summary-compact-stat + .capital-summary-compact-stat {
        padding-top: 12px;
        padding-left: 0;
        border-top: 1px solid rgba(148, 163, 184, 0.14);
        border-left: none;
    }

    .capital-summary-combo-bottom {
        grid-template-columns: 1fr;
    }

    .capital-summary-highlight-stat {
        padding-top: 12px;
        padding-left: 0;
        border-left: none;
    }

    .metric-card-dual .metric-card-stat + .metric-card-stat {
        padding-top: 14px;
        padding-left: 0;
        border-top: 1px solid rgba(148, 163, 184, 0.14);
        border-left: none;
    }

    .metric-card-triple .metric-card-stat + .metric-card-stat {
        padding-top: 14px;
        padding-left: 0;
        border-top: 1px solid rgba(148, 163, 184, 0.14);
        border-left: none;
    }
}

.sort-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: auto;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--text);
    font-weight: 700;
}

.sort-button::after {
    content: "↕";
    color: var(--muted);
    font-size: 0.85rem;
}

.sort-button[data-direction="asc"]::after {
    content: "↑";
    color: #d97706;
}

.sort-button[data-direction="desc"]::after {
    content: "↓";
    color: #d97706;
}

.status-cell {
    display: grid;
    gap: 12px;
    justify-items: flex-start;
}

.cell-stack {
    display: grid;
    gap: 4px;
}

.cell-stack strong {
    color: var(--text);
}

.market-identity {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.coin-logo-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
}

.coin-logo-image {
    width: 28px;
    height: 28px;
    border-radius: 999px;
    display: block;
    object-fit: cover;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.18);
}

.market-link {
    color: inherit;
    text-decoration: none;
}

.market-link:hover,
.market-link:focus-visible {
    color: #d97706;
    text-decoration: underline;
}

.coin-heading {
    display: flex;
    align-items: center;
    gap: 10px;
}

.rank-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.08);
    color: #1d4ed8;
    font-size: 0.82rem;
    font-weight: 700;
}

.cell-stack span {
    color: var(--muted);
    font-size: 0.82rem;
}

.cell-meta {
    color: #b45309;
    font-size: 0.78rem;
}

.recommendation-change-cell {
    display: grid;
    gap: 4px;
}

.recommendation-change-cell strong {
    font-size: 0.9rem;
}

.recommendation-change-secondary {
    font-size: 0.76rem;
}

.recommendation-amount-cell {
    display: grid;
    gap: 4px;
}

.recommendation-amount-secondary {
    color: var(--muted);
    font-size: 0.76rem;
}

.market-search-form {
    display: grid;
    gap: 12px;
}

.market-search-controls {
    display: flex;
    align-items: center;
    gap: 12px;
}

.market-search-controls input {
    flex: 1;
}

.market-search-feedback {
    margin: 0;
}

.filter-toolbar {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex-wrap: wrap;
}

.filter-field {
    display: grid;
    gap: 6px;
    min-width: 170px;
}

.filter-field-wide {
    flex: 1 1 260px;
}

.filter-field select,
.filter-field input {
    width: 100%;
    min-height: 38px;
    padding: 8px 11px;
    border-radius: 14px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    background: #ffffff;
    color: var(--text);
    font: inherit;
}

.recommendation-reason-cell {
    display: grid;
    gap: 8px;
}

.detail-popover {
    display: grid;
    gap: 8px;
}

.detail-popover-summary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: fit-content;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.08);
    color: #1d4ed8;
    cursor: pointer;
    font-size: 0.84rem;
    font-weight: 700;
    list-style: none;
}

.detail-popover-summary::-webkit-details-marker {
    display: none;
}

.detail-popover-summary::after {
    content: "＋";
    font-size: 0.82rem;
}

.detail-popover[open] .detail-popover-summary::after {
    content: "－";
}

.detail-popover-content {
    display: grid;
    gap: 10px;
    padding: 14px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid rgba(148, 163, 184, 0.16);
}

.detail-popover-row {
    display: grid;
    gap: 4px;
}

.detail-popover-row span {
    color: var(--muted);
    font-size: 0.78rem;
}

.detail-popover-row strong {
    color: var(--text);
    font-size: 0.84rem;
}

.analytics-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr;
}

.analytics-card {
    display: grid;
    gap: 10px;
    padding: 14px;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.14);
}

.analytics-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.compact-table-wrap {
    max-height: 360px;
}

.compact-table {
    min-width: 760px;
}

.analytics-period-cell {
    min-width: 240px;
}

.analytics-summary-row > td {
    vertical-align: middle;
}

.analytics-expandable-row {
    cursor: pointer;
}

.analytics-expandable-row:hover > td {
    background: #f8fbff;
}

.analytics-expandable-row[aria-expanded="true"] > td {
    background: #f8fbff;
}

.analytics-expandable-row:focus-visible {
    outline: none;
}

.analytics-expandable-row:focus-visible > td {
    box-shadow: inset 0 0 0 2px rgba(37, 99, 235, 0.28);
}

.analytics-summary-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-width: 0;
}

.analytics-inline-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 34px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.analytics-inline-trigger:focus-visible {
    outline: 2px solid rgba(37, 99, 235, 0.32);
    outline-offset: 4px;
    border-radius: 10px;
}

.analytics-summary-copy {
    min-width: 0;
}

.analytics-summary-label {
    color: var(--text);
    font-weight: 700;
    overflow-wrap: anywhere;
}

.analytics-summary-indicator {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-left: auto;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.08);
    color: #1d4ed8;
    white-space: nowrap;
}

.analytics-summary-meta {
    font-size: 0.76rem;
    font-weight: 700;
}

.analytics-summary-caret::before {
    content: "＋";
    font-size: 0.76rem;
}

.analytics-expandable-row[aria-expanded="true"] .analytics-summary-caret::before {
    content: "－";
}

.analytics-inline-trigger[aria-expanded="true"] .analytics-summary-caret::before {
    content: "－";
}

.analytics-summary-row:has(+ .analytics-period-detail-table-row:not([hidden])) > td {
    border-bottom-color: transparent;
}

@supports not selector(:has(+ *)) {
    .analytics-summary-row > td {
        border-bottom-color: rgba(226, 232, 240, 0.9);
    }
}

.analytics-period-detail-table-row > td {
    border-bottom: 0;
}

.analytics-period-detail-table-cell {
    padding: 0 16px 16px !important;
    background: #f8fbff;
}

.analytics-period-detail-wrap {
    border-radius: 16px;
    border: 1px solid rgba(148, 163, 184, 0.16);
    overflow: hidden;
    background: #ffffff;
}

.analytics-period-detail-table {
    min-width: 680px;
    background: #ffffff;
}

.analytics-period-detail-table .cell-stack {
    gap: 2px;
}

.analytics-period-detail-table-cell .table-wrap {
    background: #ffffff;
}

.analytics-period-detail-table-cell .table-wrap:not(:first-child) {
    margin-top: 12px;
}

.analytics-period-detail-table-row[hidden] {
    display: none;
}

.analytics-period-detail-table .positive-text,
.analytics-period-detail-table .negative-text,
.analytics-period-detail-table .muted-text {
    font-weight: 600;
}

.analytics-period-detail-table td:first-child .cell-stack span {
    color: var(--muted);
}

.analytics-period-detail-table td:first-child .cell-stack strong {
    color: var(--text);
}

.analytics-period-detail-table th:first-child,
.analytics-period-detail-table td:first-child {
    width: 28%;
    white-space: normal;
}

.analytics-period-detail-table th:not(:first-child),
.analytics-period-detail-table td:not(:first-child) {
    white-space: nowrap;
}

.analytics-period-detail-table td {
    background: #ffffff;
    vertical-align: top;
}

.analytics-period-detail-table th,
.analytics-period-detail-table td {
    padding-top: 12px;
    padding-bottom: 12px;
}

.analytics-period-detail-table th {
    background: #f8fafc;
    position: static;
    z-index: 0;
}

.analytics-period-detail-table tbody tr:hover td {
    background: #f8fbff;
}

.analytics-period-detail-table tbody tr:last-child td {
    border-bottom: 0;
}

.analytics-coin-summary-row > td {
    background: #ffffff;
}

.analytics-trade-detail-table-row .analytics-period-detail-table-cell {
    padding: 0 10px 12px !important;
    background: #ffffff;
}

.analytics-trade-detail-wrap {
    margin-left: 18px;
    border-radius: 12px;
    background: #f8fafc;
}

.analytics-trade-detail-table {
    min-width: 1040px;
}

.analytics-trade-detail-table th,
.analytics-trade-detail-table td {
    font-size: 0.78rem;
}

.analytics-trade-detail-table th:first-child,
.analytics-trade-detail-table td:first-child,
.analytics-trade-detail-table th:nth-child(4),
.analytics-trade-detail-table td:nth-child(4) {
    width: 18%;
    white-space: nowrap;
}

.analytics-coin-detail-table {
    min-width: 1100px;
}

.analytics-coin-detail-table th:first-child,
.analytics-coin-detail-table td:first-child,
.analytics-coin-detail-table th:nth-child(4),
.analytics-coin-detail-table td:nth-child(4) {
    width: 20%;
    white-space: nowrap;
}

.analytics-coin-detail-table th:nth-child(2),
.analytics-coin-detail-table td:nth-child(2),
.analytics-coin-detail-table th:nth-child(3),
.analytics-coin-detail-table td:nth-child(3),
.analytics-coin-detail-table th:nth-child(5),
.analytics-coin-detail-table td:nth-child(5),
.analytics-coin-detail-table th:nth-child(6),
.analytics-coin-detail-table td:nth-child(6),
.analytics-coin-detail-table th:nth-child(7),
.analytics-coin-detail-table td:nth-child(7),
.analytics-coin-detail-table th:nth-child(8),
.analytics-coin-detail-table td:nth-child(8) {
    white-space: nowrap;
}

.recommendation-footnote {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.recommendation-breakdown {
    display: grid;
    gap: 12px;
}

.recommendation-breakdown-group {
    display: grid;
    gap: 10px;
}

.recommendation-breakdown-items {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.inline-order-details {
    width: 100%;
}

.inline-order-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
}

.inline-order-actions .inline-order-details {
    width: auto;
}

.inline-order-summary {
    list-style: none;
}

.inline-order-summary::-webkit-details-marker {
    display: none;
}

.inline-order-details[open] .inline-order-summary {
    margin-bottom: 10px;
}

.inline-order-form {
    display: grid;
    gap: 10px;
    width: min(320px, 100%);
    padding: 12px;
    border-radius: 14px;
    background: #f8fafc;
    border: 1px solid rgba(148, 163, 184, 0.18);
}

.inline-order-grid {
    display: grid;
    gap: 10px;
}

.inline-order-field {
    display: grid;
    gap: 6px;
    color: var(--muted);
    font-size: 0.78rem;
}

.inline-order-field input {
    padding: 10px 12px;
}

.inline-order-checkbox {
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--text);
    font-size: 0.82rem;
}

.inline-order-checkbox input {
    width: 18px;
    height: 18px;
}

code {
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.08);
    color: #1e3a8a;
}

.toggle-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin: 8px 0 12px;
    color: var(--text);
}

.toggle-row input {
    width: 22px;
    height: 22px;
}

.settings-note {
    margin-bottom: 20px;
}

.settings-layout {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
}

.settings-section {
    display: grid;
    gap: 16px;
    align-content: start;
    padding: 22px;
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(248, 251, 255, 0.96), rgba(244, 248, 255, 0.88));
    border: 1px solid rgba(148, 163, 184, 0.14);
    min-width: 0;
}

.settings-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.settings-grid > div {
    display: grid;
    gap: 8px;
    align-content: start;
    min-width: 0;
}

.grid-span-2 {
    grid-column: span 2;
}

.field-hint {
    margin: 0;
    color: var(--muted);
    font-size: 0.82rem;
    line-height: 1.5;
}

.setting-toggle {
    align-items: flex-start;
    padding: 12px 14px;
    border-radius: 14px;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.14);
    margin: 0;
}

.toggle-copy {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.toggle-copy strong {
    color: var(--text);
    font-size: 0.9rem;
}

.toggle-copy .field-hint {
    margin: 0;
}

.runtime-preview {
    display: grid;
    gap: 6px;
    justify-items: start;
    align-content: start;
    padding: 14px 16px;
    border-radius: 14px;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.14);
}

.runtime-preview span {
    color: var(--muted);
    font-size: 0.84rem;
}

.runtime-preview strong {
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.settings-section textarea {
    min-height: 144px;
    max-height: 240px;
    line-height: 1.6;
}

.capital-amount-preview {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.capital-deposit-editor {
    display: grid;
    gap: 12px;
}

.capital-deposit-editor-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 14px 16px;
    border-radius: 14px;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.14);
}

.capital-deposit-editor-header strong {
    display: block;
    margin-bottom: 6px;
}

.capital-deposit-list {
    display: grid;
    gap: 10px;
}

.capital-deposit-column-headings {
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(190px, 1.2fr) minmax(150px, 0.9fr) minmax(220px, 1.4fr) auto;
    align-items: center;
    padding: 0 16px 2px;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 600;
}

.capital-deposit-row {
    padding: 12px 16px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.96);
    border: 1px solid rgba(148, 163, 184, 0.14);
}

.capital-deposit-row-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(190px, 1.2fr) minmax(150px, 0.9fr) minmax(220px, 1.4fr) auto;
    grid-template-areas: "date amount note actions";
    align-items: center;
}

.capital-deposit-field {
    display: grid;
    gap: 0;
    min-width: 0;
}

.capital-deposit-field-date {
    grid-area: date;
}

.capital-deposit-field-amount {
    grid-area: amount;
}

.capital-deposit-field-note {
    grid-area: note;
}

.capital-deposit-field-label {
    display: none;
    color: var(--muted);
    font-size: 0.78rem;
}

.capital-deposit-field input {
    min-width: 0;
    width: 100%;
}

.capital-deposit-row-actions {
    grid-area: actions;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.capital-confirmation-box {
    display: grid;
    gap: 10px;
}

.capital-metric-grid {
    margin-bottom: 14px;
}

.capital-summary-combo-card {
    display: grid;
    gap: 14px;
}

.capital-summary-combo-top {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.capital-summary-combo-top .capital-summary-compact-stat + .capital-summary-compact-stat {
    padding-top: 0;
    padding-left: 12px;
    border-top: none;
    border-left: 1px solid rgba(148, 163, 184, 0.14);
}

.capital-summary-compact-stat span {
    font-size: 0.74rem;
    margin-bottom: 6px;
}

.capital-summary-compact-stat strong {
    font-size: 0.9rem;
    line-height: 1.2;
}

.capital-summary-compact-stat small {
    margin-top: 4px;
    font-size: 0.72rem;
}

.capital-summary-combo-bottom {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.capital-summary-total-stat strong {
    font-size: 1.08rem;
}

.capital-summary-total-stat {
    padding-top: 12px;
    border-top: 1px solid rgba(148, 163, 184, 0.14);
}

.capital-summary-highlight-stat {
    padding-top: 12px;
    padding-left: 12px;
    border-top: 1px solid rgba(148, 163, 184, 0.14);
    border-left: 1px solid rgba(148, 163, 184, 0.14);
}

.capital-summary-highlight-stat strong {
    font-size: 1.08rem;
}

.capital-detail-stat {
    position: relative;
}

.capital-detail-trigger {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "label icon"
        "value icon"
        "meta icon";
    align-items: center;
    gap: 0 8px;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.capital-detail-trigger::after {
    content: "ⓘ";
    grid-area: icon;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.08);
    color: #1d4ed8;
    font-size: 0.82rem;
    font-weight: 700;
}

.capital-detail-trigger > span {
    grid-area: label;
}

.capital-detail-trigger > strong {
    grid-area: value;
}

.capital-detail-trigger > small {
    grid-area: meta;
}

.capital-detail-trigger:focus-visible {
    outline: 2px solid rgba(37, 99, 235, 0.35);
    outline-offset: 4px;
    border-radius: 10px;
}

.capital-detail-layer {
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    z-index: 50;
    width: min(380px, calc(100vw - 48px));
    max-height: 340px;
    padding: 12px;
    overflow: auto;
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 22px 48px rgba(15, 23, 42, 0.16);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-4px);
    transition: opacity 0.16s ease, transform 0.16s ease;
}

.capital-detail-stat:hover .capital-detail-layer,
.capital-detail-stat:focus-within .capital-detail-layer,
.capital-detail-stat[data-open="true"] .capital-detail-layer {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}

.capital-detail-layer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.capital-detail-layer-header strong {
    font-size: 0.9rem;
}

.capital-detail-section {
    display: grid;
    gap: 8px;
    margin-bottom: 12px;
}

.capital-detail-subhead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 2px 0 6px;
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.capital-group-list {
    display: grid;
    gap: 8px;
}

.capital-group-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    padding: 10px 12px;
    border: 1px solid rgba(37, 99, 235, 0.12);
    border-radius: 12px;
    background: rgba(37, 99, 235, 0.05);
}

.capital-group-row > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.capital-group-row strong {
    font-size: 0.86rem;
}

.capital-group-row span {
    color: var(--muted);
    font-size: 0.74rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.capital-group-row > strong:last-child {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.capital-detail-list {
    display: grid;
    gap: 8px;
}

.capital-detail-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    padding: 10px 0;
    border-top: 1px solid rgba(226, 232, 240, 0.9);
}

.capital-detail-row:first-child {
    border-top: 0;
    padding-top: 0;
}

.capital-detail-row > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.capital-detail-row strong {
    font-size: 0.86rem;
}

.capital-detail-row span {
    margin: 0;
    color: var(--muted);
    font-size: 0.76rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.capital-detail-row > strong:last-child {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.capital-detail-row.muted-row {
    opacity: 0.66;
}

.capital-detail-empty {
    margin: 0;
    padding: 10px 0 2px;
}

.profit-chart-shell {
    display: grid;
    gap: 10px;
    padding: 14px;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid rgba(148, 163, 184, 0.14);
}

.profit-chart-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.chart-legends,
.chart-legend {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.chart-legends {
    flex-wrap: wrap;
    gap: 14px;
}

.chart-legend {
    color: var(--text);
    font-weight: 600;
}

.legend-swatch {
    display: inline-flex;
    width: 18px;
    height: 4px;
    border-radius: 999px;
}

.legend-swatch.profit-line {
    background: linear-gradient(90deg, #f59e0b, #ea580c);
}

.legend-swatch.evaluation-profit-line {
    background: linear-gradient(90deg, #60a5fa, #2563eb);
}

.profit-chart {
    width: 100%;
    min-height: 320px;
    overflow: visible;
}

.chart-grid-line {
    stroke: rgba(148, 163, 184, 0.18);
    stroke-width: 1;
}

.chart-zero-line {
    stroke: rgba(148, 163, 184, 0.45);
    stroke-width: 1.5;
    stroke-dasharray: 4 6;
}

.chart-profit-line {
    fill: none;
    stroke: #f97316;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.chart-evaluation-profit-line {
    fill: none;
    stroke: #2563eb;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.chart-point {
    fill: #ffffff;
    stroke: #f97316;
    stroke-width: 2.5;
}

.chart-point.live-point {
    fill: #f97316;
}

.chart-evaluation-profit-point {
    stroke: #2563eb;
}

.chart-evaluation-profit-point.live-point {
    fill: #2563eb;
}

.chart-axis-label,
.chart-y-label {
    fill: var(--muted);
    font-size: 12px;
}

.chart-axis-label {
    text-anchor: middle;
}

.chart-y-label {
    text-anchor: end;
}

.hero-copy {
    display: grid;
    gap: 12px;
}

.hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.info-chip {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.08);
    border: 1px solid rgba(37, 99, 235, 0.14);
    color: #1d4ed8;
    font-size: 0.86rem;
}

.session-toggle-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 0 18px;
    border: 1px solid transparent;
    cursor: pointer;
}

.session-toggle-button strong {
    min-width: 44px;
    text-align: center;
}

.session-toggle-button.enabled {
    background: linear-gradient(135deg, #2563eb, #1d4ed8);
    color: #ffffff;
}

.session-toggle-button.disabled {
    background: rgba(148, 163, 184, 0.12);
    border-color: rgba(148, 163, 184, 0.22);
    color: var(--text);
}

.info-list {
    margin: 0;
    padding-left: 20px;
    color: var(--muted);
    line-height: 1.7;
}

.topbar h1,
.panel h2,
.panel h3 {
    color: var(--text);
}

@keyframes slide-up {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 1120px) {
    .summary-panel {
        grid-column: span 12;
    }

    .dashboard-header-content {
        grid-template-columns: minmax(0, 1fr);
    }

    .table-actions {
        justify-content: flex-start;
    }

    .settings-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .holdings-table-wrap {
        max-height: 960px;
    }
}

@media (max-width: 768px) {
    .auth-body {
        padding:
            calc(var(--page-padding-mobile) + var(--safe-top))
            calc(var(--page-padding-mobile) + var(--safe-right))
            calc(var(--page-padding-mobile) + var(--safe-bottom))
            calc(var(--page-padding-mobile) + var(--safe-left));
    }

    .app-body {
        padding:
            calc(var(--page-padding-mobile) + var(--safe-top))
            calc(var(--page-padding-mobile) + var(--safe-right))
            calc(88px + var(--page-padding-mobile) + var(--safe-bottom))
            calc(var(--page-padding-mobile) + var(--safe-left));
    }

    .header-toggle-button {
        position: fixed;
        right: calc(16px + var(--safe-right));
        bottom: calc(16px + var(--safe-bottom));
        top: auto;
        z-index: 80;
    }

    .topbar,
    .holdings-heading-top,
    .panel-heading,
    .session-panel-layout,
    .hero-panel-body,
    .split-panel-body {
        flex-direction: column;
        align-items: flex-start;
    }

    .auth-card,
    .panel {
        padding: 22px;
    }

    .panel h2 {
        font-size: 1.32rem;
        line-height: 1.3;
    }

    .hero-status-group,
    .hero-meta,
    .topbar-brand,
    .topbar-actions,
    .session-panel-actions,
    .dashboard-header-content,
    .dashboard-overview-head,
    .dashboard-header-main,
    .dashboard-header-side,
    .dashboard-panel-toggles,
    .dashboard-header-summary,
    .dashboard-header-memo-actions,
    .panel-header-actions,
    .table-actions,
    .filter-toolbar,
    .status-cell,
    .profit-chart-header {
        width: 100%;
    }

    .topbar-actions {
        justify-content: flex-start;
    }

    .topbar-actions form {
        width: auto;
    }

    .topbar .session-toggle-button {
        width: auto;
    }

    .session-panel-actions form,
    .session-toggle-button {
        width: 100%;
    }

    .dashboard-panel-toggle-button {
        width: 100%;
    }

    .dashboard-header-content {
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .dashboard-overview-head,
    .dashboard-utility-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .dashboard-header-memo-actions {
        justify-content: flex-start;
    }

    .dashboard-header-memo-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .dashboard-header-memo-list-head {
        display: none;
    }

    .dashboard-header-memo-item {
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
    }

    .dashboard-header-memo-item-side {
        justify-items: start;
        padding-left: 0;
        border-left: none;
        border-top: 1px solid rgba(148, 163, 184, 0.14);
        padding-top: 8px;
    }

    .memo-board-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .session-panel {
        position: static;
        top: auto;
        gap: 14px;
    }

    .dashboard-panel-toggles {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding-bottom: 4px;
    }

    .dashboard-header-summary {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        overflow: visible;
        padding-bottom: 0;
        scroll-snap-type: none;
    }

    .sticky-summary-card,
    .sticky-summary-card-combo,
    .sticky-summary-card-stack,
    .sticky-summary-card-wide,
    .sticky-summary-card-xwide {
        flex: none;
        min-width: 0;
        width: 100%;
    }

    .session-toggle-button {
        justify-content: space-between;
    }

    .memo-editor-actions {
        align-items: flex-start;
    }

    .memo-editor-actions .muted {
        margin-left: 0;
    }

    .memo-board-card-head {
        flex-direction: column;
    }

    .memo-board-card-actions {
        width: 100%;
    }

    .status-cell {
        flex-direction: column;
        align-items: flex-start;
    }

    .settings-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .grid-span-2 {
        grid-column: span 1;
    }

    .capital-deposit-column-headings {
        display: none;
    }

    .capital-deposit-row-grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "date"
            "amount"
            "note"
            "actions";
        align-items: start;
    }

    .capital-deposit-field {
        gap: 8px;
    }

    .capital-deposit-field-label {
        display: block;
    }

    .capital-deposit-row-actions {
        justify-content: flex-start;
    }

    .market-search-controls {
        flex-direction: column;
        align-items: stretch;
    }

    .filter-field {
        min-width: 100%;
    }

    .holdings-panel .table-actions .muted,
    .holdings-panel .filter-field span {
        font-size: 0.78rem;
    }

    .holdings-panel .pill,
    .holdings-panel .compact-button {
        font-size: 0.76rem;
    }

    .holdings-table {
        min-width: 1800px;
    }

    .holdings-table col.holdings-col-coin {
        width: 126px;
    }

    .holdings-table col.holdings-col-age {
        width: 114px;
    }

    .holdings-table col.holdings-col-price {
        width: 94px;
    }

    .holdings-table col.holdings-col-change {
        width: 88px;
    }

    .holdings-table col.holdings-col-pump {
        width: 102px;
    }

    .holdings-table col.holdings-col-profit,
    .holdings-table col.holdings-col-rate {
        width: 98px;
    }

    .holdings-table col.holdings-col-target {
        width: 304px;
    }

    .holdings-table col.holdings-col-amount {
        width: 106px;
    }

    .holdings-table col.holdings-col-order {
        width: 236px;
    }

    .holdings-table th,
    .holdings-table td {
        padding: 9px 9px;
        font-size: 0.76rem;
    }

    .holdings-table .sort-button {
        gap: 4px;
        font-size: 0.74rem;
    }

    .holdings-table .sort-button::after {
        font-size: 0.72rem;
    }

    .holdings-table .coin-heading,
    .holdings-table .market-identity {
        gap: 4px;
    }

    .holdings-table .coin-logo-wrap {
        width: 22px;
        height: 22px;
    }

    .holdings-table .coin-logo-image {
        width: 18px;
        height: 18px;
    }

    .holdings-table .rank-badge {
        min-width: 20px;
        height: 20px;
        padding: 0 5px;
        font-size: 0.68rem;
    }

    .holdings-table .cell-stack {
        gap: 1px;
    }

    .holdings-table .cell-stack strong,
    .holdings-table .buy-lot-item strong,
    .holdings-table .status-cell > span:first-child {
        font-size: 0.78rem;
    }

    .holdings-table .market-link {
        display: block;
        line-height: 1.15;
        overflow-wrap: anywhere;
    }

    .holdings-table .cell-stack span,
    .holdings-table .cell-meta,
    .holdings-table .inline-order-field,
    .holdings-table .inline-order-checkbox {
        font-size: 0.69rem;
    }

    .holdings-table .inline-order-form {
        width: min(220px, 100%);
        padding: 10px;
    }

    .holdings-table .inline-order-field input {
        padding: 8px 10px;
        font-size: 0.74rem;
    }

    .holdings-table .inline-order-summary,
    .holdings-table .inline-order-form button,
    .holdings-table .inline-order-cancel-form button {
        font-size: 0.72rem;
    }

    .holdings-table td.reservation-sell-cell {
        font-size: 0.72rem;
        line-height: 1.28;
    }

    .holdings-table-wrap {
        max-height: 760px;
    }
}

@media (max-width: 520px) {
    .topbar {
        gap: 14px;
        margin-bottom: 18px;
    }

    .topbar-actions {
        gap: 10px;
        width: 100%;
    }

    .auth-card,
    .panel {
        padding: 18px;
    }

    .panel h2 {
        font-size: 1.2rem;
    }

    .metric-card,
    .timestamp-card {
        padding: 14px;
    }

    .metric-card strong,
    .timestamp-card strong {
        font-size: 1rem;
    }

    .dashboard-header-summary {
        grid-template-columns: minmax(0, 1fr);
    }

    .dashboard-panel-toggles {
        grid-template-columns: minmax(0, 1fr);
    }

    .holdings-panel .table-actions .muted,
    .holdings-panel .filter-field span {
        font-size: 0.74rem;
    }

    .holdings-panel .pill,
    .holdings-panel .compact-button {
        font-size: 0.72rem;
    }

    .hero-meta {
        gap: 8px;
    }

    .info-chip {
        min-height: 34px;
        padding: 0 12px;
        font-size: 0.84rem;
    }

    .holdings-table {
        min-width: 1408px;
    }

    .holdings-table col.holdings-col-coin {
        width: 114px;
    }

    .holdings-table col.holdings-col-price {
        width: 88px;
    }

    .holdings-table col.holdings-col-change {
        width: 82px;
    }

    .holdings-table col.holdings-col-profit,
    .holdings-table col.holdings-col-rate {
        width: 92px;
    }

    .holdings-table col.holdings-col-target {
        width: 252px;
    }

    .holdings-table col.holdings-col-amount {
        width: 98px;
    }

    .holdings-table col.holdings-col-order {
        width: 216px;
    }

    .holdings-table th,
    .holdings-table td {
        padding: 8px 8px;
        font-size: 0.71rem;
    }

    .holdings-table td.reservation-sell-cell {
        font-size: 0.67rem;
        line-height: 1.24;
    }

    .holdings-table-wrap {
        max-height: 680px;
    }

    .holdings-table .sort-button {
        font-size: 0.69rem;
    }

    .holdings-table .coin-logo-wrap {
        width: 20px;
        height: 20px;
    }

    .holdings-table .coin-logo-image {
        width: 16px;
        height: 16px;
    }

    .holdings-table .rank-badge {
        min-width: 18px;
        height: 18px;
        padding: 0 4px;
        font-size: 0.64rem;
    }

    .holdings-table .cell-stack strong,
    .holdings-table .status-cell > span:first-child {
        font-size: 0.71rem;
    }

    .holdings-table .cell-stack span,
    .holdings-table .cell-meta,
    .holdings-table .inline-order-field,
    .holdings-table .inline-order-checkbox,
    .holdings-table .inline-order-summary,
    .holdings-table .inline-order-form button,
    .holdings-table .inline-order-cancel-form button {
        font-size: 0.67rem;
    }

    .holdings-table .inline-order-form {
        width: min(200px, 100%);
        padding: 8px;
    }
}

/* Terminal overrides kept last so legacy dashboard rules cannot flatten the command center. */
.terminal-topbar {
    padding: 14px 16px;
    border-radius: 8px;
    background: #121821;
}

.terminal-command-center {
    position: static;
    top: auto;
    z-index: auto;
    padding: 16px;
    border-radius: 8px;
    background: #121821;
    backdrop-filter: none;
}

.terminal-command-center.session-panel-scrolled {
    padding: 16px;
}

.terminal-command-center.session-panel-scrolled .session-panel-header {
    display: block;
}

.market-mode-hero h2 {
    margin: 0;
    color: var(--text);
    font-size: clamp(2.4rem, 5vw, 5rem);
    line-height: 0.92;
    letter-spacing: 0;
}

.terminal-command-center .panel-header h3 {
    margin: 0;
    color: var(--text);
    font-size: 1rem;
}

.terminal-command-center .metric strong,
.terminal-section .metric strong {
    color: var(--text);
}

.terminal-command-center .dashboard-header-content {
    margin-top: 14px;
}

.terminal-command-center .dashboard-header-memo,
.terminal-command-center .dashboard-panel-toggle-group {
    background: rgba(15, 20, 27, 0.55);
    border-color: rgba(148, 163, 184, 0.16);
}

/* Final terminal polish: layout, contrast, and readable operator color scale. */
.app-body {
    --bg: #0d1117;
    --bg-accent: #0d1117;
    --panel: #151b23;
    --panel-subtle: #111720;
    --panel-border: rgba(139, 148, 158, 0.28);
    --text: #e6edf3;
    --muted: #a6b3c2;
    --soft-muted: #768390;
    --success: #3fb950;
    --danger: #f85149;
    --warning: #d29922;
    --accent: #58a6ff;
    color: var(--text);
    background: #0d1117;
}

.app-body,
.app-body button,
.app-body input,
.app-body select,
.app-body textarea {
    font-family: "Segoe UI", "Noto Sans KR", Arial, sans-serif;
}

.app-body .page-grid {
    grid-template-columns: 176px minmax(0, 1fr) !important;
    gap: 16px;
    align-items: start;
}

.app-body .single-column {
    grid-template-columns: minmax(0, 1fr) !important;
}

.app-body .single-column > * {
    grid-column: 1 / -1 !important;
}

.app-body .terminal-sidebar {
    grid-column: 1 !important;
    grid-row: 1 / span 80;
    align-self: start;
    width: 100%;
    background: #111720;
    border-color: rgba(139, 148, 158, 0.24);
}

.app-body .page-grid > :not(.terminal-sidebar) {
    grid-column: 2 / -1 !important;
}

.app-body .terminal-command-center,
.app-body .terminal-section,
.app-body .terminal-lower-grid,
.app-body .holdings-panel,
.app-body .summary-panel,
.app-body .hero-panel,
.app-body .split-panel {
    width: 100%;
    min-width: 0;
}

.app-body .topbar {
    background: #111720;
    border-color: rgba(139, 148, 158, 0.24);
}

.app-body .panel,
.app-body .metric-card,
.app-body .timestamp-card,
.app-body .auth-card {
    background: #151b23;
    border-color: rgba(139, 148, 158, 0.22);
    border-radius: 8px;
    color: var(--text);
    box-shadow: none;
}

.app-body h1,
.app-body h2,
.app-body h3,
.app-body strong,
.app-body label,
.app-body .market-link {
    color: var(--text);
}

.app-body .muted,
.app-body .field-hint,
.app-body small,
.app-body .cell-meta,
.app-body .metric-label,
.app-body .eyebrow {
    color: var(--muted);
}

.app-body .eyebrow {
    letter-spacing: 0.08em;
}

.app-body .ghost-link,
.app-body .secondary-button,
.app-body .compact-button,
.app-body .session-toggle-button {
    background: #1b2430;
    border: 1px solid rgba(139, 148, 158, 0.28);
    color: #dbe7f3;
}

.app-body .ghost-link:hover,
.app-body .secondary-button:hover,
.app-body .compact-button:hover,
.app-body .session-toggle-button:hover {
    background: #233044;
    color: #ffffff;
}

.app-body input,
.app-body select,
.app-body textarea {
    background: #0f1620;
    border-color: rgba(139, 148, 158, 0.28);
    color: var(--text);
}

.app-body input::placeholder,
.app-body textarea::placeholder {
    color: #6f7d8e;
}

.app-body .terminal-command-center {
    padding: 14px;
    background: #111720;
    border-radius: 8px;
}

.app-body .terminal-hero-grid {
    grid-template-columns: minmax(280px, 1.35fr) minmax(240px, 0.9fr) minmax(250px, 0.9fr);
    gap: 1px;
    background: rgba(139, 148, 158, 0.24);
    border: 1px solid rgba(139, 148, 158, 0.24);
}

.app-body .market-mode-hero,
.app-body .hero-metric-stack,
.app-body .data-panel,
.app-body .info-panel {
    background: #151b23;
}

.app-body .market-mode-hero {
    min-height: 190px;
    padding: 22px;
}

.app-body .market-mode-hero h2 {
    color: #ffffff;
    font-weight: 800;
}

.app-body .market-mode-hero p {
    color: var(--muted);
}

.app-body .terminal-dashboard-grid {
    grid-template-columns: minmax(340px, 1.08fr) minmax(270px, 0.88fr) minmax(320px, 1fr);
    background: rgba(139, 148, 158, 0.24);
    border-color: rgba(139, 148, 158, 0.24);
}

.app-body .portfolio-terminal-card {
    grid-column: span 2;
}

.app-body .panel-header {
    gap: 14px;
}

.app-body .panel-header h3 {
    color: #ffffff;
}

.app-body .metric-value,
.app-body .metric strong,
.app-body .terminal-metric strong {
    color: #f0f6fc;
    font-weight: 750;
}

.app-body .metric.compact {
    padding: 8px 0;
}

.app-body .status-badge,
.app-body .live-badge,
.app-body .pill {
    border-radius: 999px;
    font-weight: 800;
}

.app-body .status-positive,
.app-body .trend-positive,
.app-body .positive-text,
.app-body .positive,
.app-body .signal-positive {
    color: var(--success) !important;
}

.app-body .status-negative,
.app-body .trend-negative,
.app-body .negative-text,
.app-body .negative,
.app-body .signal-negative {
    color: var(--danger) !important;
}

.app-body .status-warning,
.app-body .warning-pill {
    color: var(--warning) !important;
}

.app-body .trend-neutral,
.app-body .status-neutral,
.app-body .muted-text,
.app-body .neutral,
.app-body .signal-neutral,
.app-body .signal-muted {
    color: #c9d1d9 !important;
}

.app-body .status-badge.status-positive {
    background: rgba(63, 185, 80, 0.14);
    border: 1px solid rgba(63, 185, 80, 0.32);
}

.app-body .status-badge.status-warning {
    background: rgba(210, 153, 34, 0.14);
    border: 1px solid rgba(210, 153, 34, 0.34);
}

.app-body .status-badge.status-neutral,
.app-body .pill {
    background: rgba(139, 148, 158, 0.13);
    border: 1px solid rgba(139, 148, 158, 0.26);
    color: #c9d1d9 !important;
}

.app-body .live-badge {
    background: rgba(63, 185, 80, 0.18);
    border: 1px solid rgba(63, 185, 80, 0.34);
    color: #78d98c;
}

.app-body .progress-bar {
    height: 8px;
    background: rgba(139, 148, 158, 0.18);
}

.app-body .progress-bar span {
    background: currentColor;
}

.app-body .portfolio-health-card .progress-bar {
    color: var(--success);
}

.app-body .ratio-row {
    color: #c9d1d9;
}

.app-body .ratio-row > span {
    color: var(--muted);
    font-weight: 800;
}

.app-body .trend-indicator {
    border-bottom-color: rgba(139, 148, 158, 0.16);
}

.app-body .engine-score-grid > div,
.app-body .system-status,
.app-body .alert-item,
.app-body .coin-item {
    background: #111720;
    border-color: rgba(139, 148, 158, 0.18);
}

.app-body .coin-item {
    grid-template-columns: 48px minmax(220px, 0.95fr) minmax(360px, 1.35fr);
    align-items: stretch;
}

.app-body .coin-item-main p,
.app-body .alert-item p,
.app-body .activity-item p {
    color: var(--muted);
}

.app-body .dashboard-header-content {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 0.42fr);
}

.app-body .dashboard-header-memo,
.app-body .dashboard-panel-toggle-group {
    background: #111720;
}

.app-body .terminal-lower-grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
}

.app-body .table-wrap {
    background: #111720;
    border-color: rgba(139, 148, 158, 0.18);
}

.app-body .asset-table {
    color: #dbe7f3;
}

.app-body .asset-table th {
    background: #0f1620;
    color: #a6b3c2;
}

.app-body .asset-table td {
    border-color: rgba(139, 148, 158, 0.13);
}

@media (max-width: 1180px) {
    .app-body .page-grid {
        grid-template-columns: 148px minmax(0, 1fr) !important;
    }

    .app-body .terminal-hero-grid,
    .app-body .terminal-dashboard-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .app-body .portfolio-terminal-card {
        grid-column: auto;
    }
}

@media (max-width: 860px) {
    .app-body {
        padding: calc(12px + var(--safe-top)) calc(12px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(12px + var(--safe-left));
    }

    .app-body .page-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 12px;
    }

    .app-body .terminal-sidebar {
        display: none;
    }

    .app-body .page-grid > * {
        grid-column: 1 / -1 !important;
    }

    .app-body .terminal-command-center {
        padding: 10px;
    }

    .app-body .market-mode-hero {
        min-height: 160px;
        padding: 18px;
    }

    .app-body .hero-action-row,
    .app-body .terminal-mini-grid,
    .app-body .portfolio-metric-grid,
    .app-body .engine-score-grid,
    .app-body .system-status-grid,
    .app-body .coin-item-metrics,
    .app-body .dashboard-header-content,
    .app-body .terminal-console-grid,
    .app-body .terminal-lower-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .app-body .coin-item {
        grid-template-columns: minmax(0, 1fr);
    }

    .app-body .coin-item-details {
        grid-column: auto;
    }
}

/* Dashboard readability correction pass.
   This block is intentionally last: older dashboard rules above still exist for
   non-terminal sections, but the terminal surface must win on layout and color. */
body.app-body {
    --bg: #0b0f14;
    --panel: #111820;
    --panel-subtle: #151e29;
    --panel-raised: #182230;
    --panel-border: rgba(148, 163, 184, 0.22);
    --panel-border-strong: rgba(148, 163, 184, 0.34);
    --text: #e6edf3;
    --text-strong: #f8fafc;
    --muted: #95a3b5;
    --soft-muted: #6f7e91;
    --success: #2fd27f;
    --danger: #ff5c5c;
    --warning: #f0c14b;
    --accent: #7cb7ff;
    min-height: 100vh;
    padding: calc(16px + var(--safe-top)) calc(16px + var(--safe-right)) calc(20px + var(--safe-bottom)) calc(16px + var(--safe-left));
    color: var(--text) !important;
    background: var(--bg) !important;
}

.app-body *,
.app-body *::before,
.app-body *::after {
    box-sizing: border-box;
}

.app-body,
.app-body button,
.app-body input,
.app-body select,
.app-body textarea {
    font-family: Inter, "Segoe UI", "Noto Sans KR", "Apple SD Gothic Neo", Arial, sans-serif !important;
}

.app-body a {
    color: var(--accent);
}

.app-body .terminal-topbar {
    display: flex !important;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    margin: 0 0 16px;
    padding: 14px 16px !important;
    border: 1px solid var(--panel-border);
    border-radius: 8px !important;
    color: var(--text);
    background: #0f151d !important;
    box-shadow: none !important;
}

.app-body .topbar-brand {
    min-width: 0;
}

.app-body .topbar-brand h1 {
    margin: 2px 0 8px;
    color: var(--text-strong) !important;
    font-size: clamp(1.25rem, 2.2vw, 1.75rem);
    line-height: 1.12;
    letter-spacing: 0 !important;
}

.app-body .topbar-status-row,
.app-body .topbar-actions,
.app-body .hero-action-row,
.app-body .panel-header-actions,
.app-body .memo-board-card-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.app-body .page-grid:not(.single-column) {
    display: grid !important;
    grid-template-columns: 176px minmax(0, 1fr) !important;
    gap: 16px !important;
    align-items: start;
}

.app-body .page-grid:not(.single-column) > :not(.terminal-sidebar) {
    grid-column: 2 / -1 !important;
    min-width: 0;
}

.app-body .page-grid.single-column,
.app-body .single-column {
    grid-template-columns: minmax(0, 1fr) !important;
}

.app-body .page-grid.single-column > *,
.app-body .single-column > * {
    grid-column: 1 / -1 !important;
}

.app-body .terminal-sidebar {
    position: sticky;
    top: calc(16px + var(--safe-top));
    grid-column: 1 !important;
    grid-row: 1 / span 80;
    display: grid;
    gap: 4px;
    width: 100%;
    padding: 8px;
    border: 1px solid var(--panel-border);
    border-radius: 8px;
    background: #0f151d !important;
}

.app-body .terminal-nav-item {
    display: block;
    padding: 9px 10px;
    border: 1px solid transparent;
    border-radius: 6px;
    color: var(--muted);
    font-size: 0.78rem;
    font-weight: 750;
    text-decoration: none;
}

.app-body .terminal-nav-item:hover,
.app-body .terminal-nav-item.active {
    color: var(--text-strong);
    background: rgba(124, 183, 255, 0.1);
    border-color: rgba(124, 183, 255, 0.24);
}

.app-body .panel,
.app-body .data-panel,
.app-body .info-panel,
.app-body .metric,
.app-body .metric-card,
.app-body .timestamp-card,
.app-body .auth-card,
.app-body .dashboard-header-memo,
.app-body .dashboard-panel-toggle-group,
.app-body .memo-editor-card,
.app-body .memo-board-card,
.app-body .memo-board-empty,
.app-body .recommendation-breakdown,
.app-body .detail-popover-content,
.app-body .market-search-form {
    color: var(--text) !important;
    background: var(--panel) !important;
    border-color: var(--panel-border) !important;
    box-shadow: none !important;
}

.app-body .panel,
.app-body .data-panel,
.app-body .info-panel {
    border-radius: 8px !important;
}

.app-body .panel {
    padding: 16px;
}

.app-body .panel-heading,
.app-body .panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.app-body .panel-heading h2,
.app-body .panel-header h3,
.app-body h1,
.app-body h2,
.app-body h3,
.app-body h4,
.app-body strong,
.app-body label,
.app-body .metric-value,
.app-body .metric strong,
.app-body .terminal-metric strong,
.app-body .market-link {
    color: var(--text-strong) !important;
}

.app-body .muted,
.app-body .field-hint,
.app-body .cell-meta,
.app-body .metric-label,
.app-body .eyebrow,
.app-body small,
.app-body .panel-header-actions,
.app-body .recommendation-footnote,
.app-body .coin-item-main p,
.app-body .alert-item p,
.app-body .activity-item p,
.app-body .dashboard-header-memo-item-side {
    color: var(--muted) !important;
}

.app-body .eyebrow {
    margin: 0 0 4px;
    letter-spacing: 0.07em !important;
}

.app-body .terminal-command-center.session-panel,
.app-body .terminal-command-center {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    display: grid !important;
    gap: 14px;
    width: 100%;
    padding: 14px !important;
    overflow: hidden;
    border: 1px solid var(--panel-border-strong) !important;
    border-radius: 8px !important;
    color: var(--text);
    background: #0f151d !important;
    backdrop-filter: none !important;
}

.app-body .terminal-command-center.session-panel-scrolled {
    padding: 14px !important;
}

.app-body .dashboard-header-alerts {
    display: grid;
    gap: 8px;
}

.app-body .terminal-hero-grid {
    display: grid !important;
    grid-template-columns: minmax(280px, 1.35fr) minmax(230px, 0.85fr) minmax(240px, 0.9fr) !important;
    gap: 1px !important;
    overflow: hidden;
    border: 1px solid var(--panel-border);
    border-radius: 8px;
    background: var(--panel-border);
}

.app-body .market-mode-hero,
.app-body .hero-metric-stack {
    min-width: 0;
    padding: 22px;
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--panel-subtle) !important;
}

.app-body .market-mode-hero {
    min-height: 196px;
}

.app-body .market-mode-hero h2 {
    margin: 10px 0 8px;
    color: var(--text-strong) !important;
    font-size: clamp(2.45rem, 4.8vw, 4.85rem);
    font-weight: 850;
    line-height: 0.94;
    letter-spacing: 0 !important;
}

.app-body .market-mode-hero p,
.app-body .portfolio-health-card p,
.app-body .portfolio-health-card small {
    color: var(--muted) !important;
}

.app-body .mode-dot {
    width: 9px;
    height: 9px;
    box-shadow: 0 0 0 4px rgba(148, 163, 184, 0.1);
}

.app-body .market-state-bull .mode-dot {
    background: var(--success);
    box-shadow: 0 0 0 4px rgba(47, 210, 127, 0.12);
}

.app-body .market-state-sideways .mode-dot {
    background: var(--warning);
    box-shadow: 0 0 0 4px rgba(240, 193, 75, 0.12);
}

.app-body .market-state-defensive .mode-dot {
    background: var(--danger);
    box-shadow: 0 0 0 4px rgba(255, 92, 92, 0.12);
}

.app-body .hero-metric-stack {
    display: grid;
    align-content: start;
    gap: 12px;
}

.app-body .terminal-mini-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.app-body .metric,
.app-body .terminal-metric {
    min-width: 0;
    padding: 12px;
    border: 1px solid var(--panel-border);
    border-radius: 7px;
    background: #0f151d !important;
}

.app-body .metric.compact {
    padding: 9px 10px !important;
}

.app-body .metric-label {
    display: block;
    margin-bottom: 5px;
    font-size: 0.74rem;
    font-weight: 750;
}

.app-body .metric strong,
.app-body .metric-value {
    overflow-wrap: anywhere;
    font-size: clamp(1rem, 1.2vw, 1.22rem);
    font-weight: 800;
    line-height: 1.2;
}

.app-body .portfolio-health-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.app-body .portfolio-health-head strong {
    font-size: 1.35rem;
}

.app-body .terminal-dashboard-grid {
    display: grid !important;
    grid-template-columns: minmax(340px, 1.08fr) minmax(280px, 0.9fr) minmax(320px, 1fr) !important;
    gap: 1px !important;
    overflow: hidden;
    border: 1px solid var(--panel-border);
    border-radius: 8px;
    background: var(--panel-border);
}

.app-body .terminal-dashboard-grid > .data-panel {
    min-width: 0;
    padding: 16px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--panel-subtle) !important;
}

.app-body .market-health-panel,
.app-body .portfolio-terminal-card {
    grid-column: span 2 !important;
}

.app-body .market-engine-panel,
.app-body .btc-trend-panel {
    grid-column: span 1 !important;
}

.app-body .breadth-bars,
.app-body .trend-stack,
.app-body .engine-reasons,
.app-body .coin-signal-list,
.app-body .recommendation-footnote {
    display: grid;
    gap: 10px;
}

.app-body .ratio-row {
    display: grid;
    grid-template-columns: 70px minmax(0, 1fr) minmax(106px, auto);
    align-items: center;
    gap: 10px;
    color: var(--text);
}

.app-body .ratio-row > span {
    color: var(--muted) !important;
    font-weight: 800;
}

.app-body .ratio-row strong {
    text-align: right;
    white-space: nowrap;
}

.app-body .progress-bar {
    display: block;
    height: 8px !important;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.18) !important;
}

.app-body .progress-bar span {
    display: block;
    height: 100%;
    min-width: 0;
    border-radius: inherit;
    background: currentColor !important;
}

.app-body .portfolio-health-card .progress-bar {
    color: var(--success);
}

.app-body .trend-indicator {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16) !important;
}

.app-body .trend-indicator:last-child {
    border-bottom: 0 !important;
}

.app-body .portfolio-metric-grid,
.app-body .engine-score-grid,
.app-body .system-status-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.app-body .engine-score-grid > div,
.app-body .system-status,
.app-body .alert-item,
.app-body .activity-item,
.app-body .coin-item {
    border: 1px solid var(--panel-border) !important;
    border-radius: 7px !important;
    color: var(--text);
    background: #0f151d !important;
}

.app-body .engine-score-grid > div {
    padding: 12px;
}

.app-body .engine-score-grid span {
    display: block;
    margin-bottom: 4px;
    color: var(--muted);
    font-size: 0.74rem;
    font-weight: 750;
}

.app-body .engine-score-grid small {
    display: block;
    margin-top: 4px;
    color: var(--muted) !important;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.35;
}

.app-body .dashboard-header-content.dashboard-utility-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 0.36fr) !important;
    gap: 12px;
    margin-top: 0 !important;
}

.app-body .dashboard-header-memo,
.app-body .dashboard-panel-toggle-group {
    padding: 12px;
    border: 1px solid var(--panel-border) !important;
    border-radius: 8px;
    background: #0f151d !important;
}

.app-body .terminal-section,
.app-body .terminal-lower-grid,
.app-body .holdings-panel,
.app-body .summary-panel,
.app-body .hero-panel,
.app-body .split-panel {
    width: 100%;
    min-width: 0;
}

.app-body .terminal-console-grid,
.app-body .terminal-lower-grid,
.app-body .memo-board-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
    gap: 16px;
}

.app-body .coin-item {
    display: grid !important;
    grid-template-columns: 48px minmax(220px, 0.82fr) minmax(360px, 1.42fr);
    gap: 14px;
    align-items: stretch;
    padding: 12px !important;
}

.app-body .coin-item-rank {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 6px;
    color: var(--muted);
    background: rgba(148, 163, 184, 0.08);
    font-weight: 850;
}

.app-body .coin-item-main {
    min-width: 0;
}

.app-body .market-identity {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.app-body .market-identity > div {
    min-width: 0;
}

.app-body .market-identity strong,
.app-body .market-identity span {
    display: block;
}

.app-body .coin-item-metrics {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.app-body .coin-item-details {
    grid-column: 2 / -1 !important;
}

.app-body .recommendation-breakdown {
    padding: 12px;
    border: 1px solid var(--panel-border);
    border-radius: 8px;
}

.app-body .status-badge,
.app-body .live-badge,
.app-body .pill,
.app-body .info-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 26px;
    padding: 5px 9px;
    border-radius: 999px !important;
    font-size: 0.74rem;
    font-weight: 850;
    line-height: 1;
    white-space: nowrap;
}

.app-body .status-positive,
.app-body .trend-positive,
.app-body .positive-text,
.app-body .positive,
.app-body .signal-positive {
    color: var(--success) !important;
}

.app-body .status-negative,
.app-body .trend-negative,
.app-body .negative-text,
.app-body .negative,
.app-body .signal-negative {
    color: var(--danger) !important;
}

.app-body .status-warning,
.app-body .warning-pill {
    color: var(--warning) !important;
}

.app-body .status-neutral,
.app-body .trend-neutral,
.app-body .muted-text,
.app-body .neutral,
.app-body .signal-neutral,
.app-body .signal-muted {
    color: #cbd5e1 !important;
}

.app-body .status-badge.status-positive,
.app-body .live-badge {
    color: var(--success) !important;
    background: rgba(47, 210, 127, 0.12) !important;
    border: 1px solid rgba(47, 210, 127, 0.32) !important;
}

.app-body .status-badge.status-negative {
    color: var(--danger) !important;
    background: rgba(255, 92, 92, 0.12) !important;
    border: 1px solid rgba(255, 92, 92, 0.32) !important;
}

.app-body .status-badge.status-warning,
.app-body .warning-pill {
    color: var(--warning) !important;
    background: rgba(240, 193, 75, 0.12) !important;
    border: 1px solid rgba(240, 193, 75, 0.34) !important;
}

.app-body .status-badge.status-neutral,
.app-body .pill,
.app-body .info-chip {
    color: #cbd5e1 !important;
    background: rgba(148, 163, 184, 0.12) !important;
    border: 1px solid rgba(148, 163, 184, 0.24) !important;
}

.app-body .alert {
    border-radius: 7px;
    color: var(--text) !important;
    background: #0f151d !important;
}

.app-body .alert.success {
    border-color: rgba(47, 210, 127, 0.34) !important;
}

.app-body .alert.warning {
    border-color: rgba(240, 193, 75, 0.38) !important;
}

.app-body .alert.error {
    border-color: rgba(255, 92, 92, 0.38) !important;
}

.app-body .ghost-link,
.app-body .secondary-button,
.app-body .compact-button,
.app-body .session-toggle-button,
.app-body button {
    min-height: 34px;
    border: 1px solid rgba(148, 163, 184, 0.28) !important;
    border-radius: 6px !important;
    color: #dbe7f3 !important;
    background: #16202c !important;
    box-shadow: none !important;
    text-decoration: none;
}

.app-body .compact-button {
    min-height: 32px;
    padding: 7px 10px;
}

.app-body .ghost-link:hover,
.app-body .secondary-button:hover,
.app-body .compact-button:hover,
.app-body .session-toggle-button:hover,
.app-body button:hover {
    color: var(--text-strong) !important;
    background: #1d2a3a !important;
}

.app-body input,
.app-body select,
.app-body textarea {
    border: 1px solid rgba(148, 163, 184, 0.28) !important;
    border-radius: 6px !important;
    color: var(--text) !important;
    background: #0d131b !important;
}

.app-body input::placeholder,
.app-body textarea::placeholder {
    color: var(--soft-muted) !important;
}

.app-body .table-wrap {
    overflow: auto;
    border: 1px solid var(--panel-border) !important;
    border-radius: 8px;
    background: #0f151d !important;
}

.app-body .asset-table {
    color: var(--text) !important;
    background: transparent !important;
}

.app-body .asset-table th {
    color: var(--muted) !important;
    background: #101821 !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
}

.app-body .asset-table td {
    color: var(--text) !important;
    border-color: rgba(148, 163, 184, 0.13) !important;
}

.app-body .asset-table tbody tr:hover td {
    background: rgba(124, 183, 255, 0.06) !important;
}

.app-body .hidden-live-fields {
    display: none !important;
}

@media (max-width: 1180px) {
    .app-body .page-grid:not(.single-column) {
        grid-template-columns: 148px minmax(0, 1fr) !important;
    }

    .app-body .terminal-hero-grid,
    .app-body .terminal-dashboard-grid,
    .app-body .dashboard-header-content.dashboard-utility-grid,
    .app-body .terminal-console-grid,
    .app-body .terminal-lower-grid,
    .app-body .memo-board-layout {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .app-body .market-health-panel,
    .app-body .portfolio-terminal-card,
    .app-body .market-engine-panel,
    .app-body .btc-trend-panel {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 900px) {
    body.app-body {
        padding: calc(12px + var(--safe-top)) calc(12px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(12px + var(--safe-left));
    }

    .app-body .terminal-topbar {
        flex-direction: column;
        align-items: stretch;
        padding: 12px !important;
    }

    .app-body .topbar-actions {
        width: 100%;
    }

    .app-body .page-grid:not(.single-column) {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 12px !important;
    }

    .app-body .terminal-sidebar {
        display: none !important;
    }

    .app-body .page-grid:not(.single-column) > * {
        grid-column: 1 / -1 !important;
    }

    .app-body .terminal-command-center {
        padding: 10px !important;
    }

    .app-body .market-mode-hero,
    .app-body .hero-metric-stack,
    .app-body .terminal-dashboard-grid > .data-panel {
        padding: 14px !important;
    }

    .app-body .market-mode-hero {
        min-height: 156px;
    }

    .app-body .market-mode-hero h2 {
        font-size: clamp(2.2rem, 13vw, 3.6rem);
    }

    .app-body .terminal-mini-grid,
    .app-body .portfolio-metric-grid,
    .app-body .engine-score-grid,
    .app-body .system-status-grid,
    .app-body .coin-item-metrics {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .app-body .ratio-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }

    .app-body .ratio-row strong {
        text-align: left;
    }

    .app-body .coin-item {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .app-body .coin-item-details {
        grid-column: 1 / -1 !important;
    }
}

/* Final layout correction: keep top menu and body on the same full-width grid. */
body.app-body .page-grid:not(.single-column) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 16px 72px !important;
}

body.app-body .page-grid:not(.single-column) > :not(.terminal-sidebar),
body.app-body .page-grid:not(.single-column) > .terminal-sidebar,
body.app-body .page-grid:not(.single-column) > .header-toggle-button,
body.app-body .page-grid:not(.single-column) > .terminal-command-center,
body.app-body .page-grid:not(.single-column) > .terminal-section,
body.app-body .page-grid:not(.single-column) > .terminal-lower-grid,
body.app-body .page-grid:not(.single-column) > .holdings-panel,
body.app-body .page-grid:not(.single-column) > .split-panel {
    grid-column: 1 / -1 !important;
    min-width: 0 !important;
}

body.app-body .page-grid.single-column,
body.app-body .single-column {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 12px 16px 72px !important;
}

body.app-body .exchange-page-nav,
body.app-body .page-grid:not(.single-column) > .terminal-sidebar {
    position: sticky !important;
    top: 46px !important;
    z-index: 80 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--upbit-line, #d8e0ea) !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

body.app-body .page-grid:not(.single-column) > .terminal-sidebar {
    width: calc(100% + 32px) !important;
    margin: 0 -16px !important;
}

body.app-body .exchange-page-nav .terminal-sidebar-scroll,
body.app-body .page-grid:not(.single-column) > .terminal-sidebar .terminal-sidebar-scroll {
    display: flex !important;
    width: 100% !important;
    height: 38px !important;
    max-height: 38px !important;
    align-items: center !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
}

body.app-body .exchange-page-nav .terminal-nav-item,
body.app-body .page-grid:not(.single-column) > .terminal-sidebar .terminal-nav-item {
    display: inline-flex !important;
    height: 38px !important;
    min-height: 38px !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 13px !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    color: #4b5563 !important;
    background: transparent !important;
    font-size: 0.82rem !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

body.app-body .exchange-page-nav .terminal-nav-item.active,
body.app-body .exchange-page-nav .terminal-nav-item:hover,
body.app-body .page-grid:not(.single-column) > .terminal-sidebar .terminal-nav-item.active,
body.app-body .page-grid:not(.single-column) > .terminal-sidebar .terminal-nav-item:hover {
    color: var(--upbit-blue, #064aa8) !important;
    border-bottom-color: var(--upbit-blue, #064aa8) !important;
}

body.app-body .terminal-command-center,
body.app-body .panel,
body.app-body .terminal-section,
body.app-body .holdings-panel,
body.app-body .split-panel {
    max-width: none !important;
}

body.app-body [id] {
    scroll-margin-top: 92px;
}

body.app-body #market-command-center {
    order: 1 !important;
}

body.app-body #holdings-dashboard {
    order: 2 !important;
}

body.app-body #open-sell-orders {
    order: 3 !important;
}

body.app-body #sell-target-recommendation {
    order: 4 !important;
}

body.app-body #capital-trend {
    order: 5 !important;
}

body.app-body #market-search {
    order: 6 !important;
}

body.app-body #memo-board {
    order: 7 !important;
}

body.app-body #telegram-signal-center {
    order: 8 !important;
}

body.app-body #mobile-activity-center {
    order: 9 !important;
}

body.app-body #sell-intelligence {
    order: 10 !important;
}

body.app-body #profit-analytics {
    order: 11 !important;
}

body.app-body #recommended-coins {
    order: 12 !important;
}

@media (max-width: 900px) {
    body.app-body.mobile-app-layout .page-grid:not(.single-column) {
        display: block !important;
        padding: 8px 8px 72px !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > .terminal-sidebar {
        width: auto !important;
        margin: 0 !important;
        padding: 12px !important;
    }

    body.app-body .exchange-page-nav {
        top: calc(46px + var(--safe-top)) !important;
        padding: 0 8px !important;
    }

    body.app-body .page-grid.single-column,
    body.app-body .single-column {
        padding: 8px 8px 72px !important;
    }
}

/* Final exchange UI corrections. */
body.app-body {
    --upbit-blue: #064aa8;
    --upbit-rise: #e23b3b;
    --upbit-fall: #1261d1;
    --upbit-line: #d8e0ea;
    --upbit-soft: #f4f7fb;
}

body.app-body > .terminal-topbar {
    position: sticky !important;
    top: 0 !important;
    z-index: 110 !important;
    display: flex !important;
    min-height: 46px !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #ffffff !important;
    background: var(--upbit-blue) !important;
    box-shadow: none !important;
}

body.app-body > .terminal-topbar .topbar-brand {
    display: flex !important;
    min-width: 0 !important;
    min-height: 46px !important;
    align-items: center !important;
    gap: 0 !important;
}

body.app-body > .terminal-topbar h1 {
    margin: 0 !important;
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
}

body.app-body > .terminal-topbar .topbar-actions {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    gap: 10px !important;
}

body.app-body > .terminal-topbar .topbar-actions form {
    margin: 0 !important;
}

body.app-body > .terminal-topbar .topbar-actions button,
body.app-body > .terminal-topbar .session-toggle-button {
    min-height: 30px !important;
    padding: 0 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    border-radius: 2px !important;
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.08) !important;
    font-size: 0.82rem !important;
    font-weight: 850 !important;
}

body.app-body > .terminal-topbar .session-toggle-button span,
body.app-body > .terminal-topbar .session-toggle-button strong {
    color: #ffffff !important;
}

body.app-body .topbar-status-row {
    display: none !important;
}

body.app-body .exchange-page-nav,
body.app-body .page-grid:not(.single-column) > .terminal-sidebar {
    top: 46px !important;
    z-index: 100 !important;
}

body.app-body .exchange-chart-panel {
    grid-template-rows: auto auto auto minmax(150px, 1fr) auto auto !important;
    min-height: 330px !important;
}

body.app-body .exchange-chart-meta {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    min-height: 26px !important;
    padding: 0 2px !important;
    color: #64748b !important;
    font-size: 0.76rem !important;
    font-weight: 800 !important;
}

body.app-body .exchange-chart-meta > div {
    display: flex !important;
    min-width: 0 !important;
    align-items: center !important;
    gap: 8px !important;
}

body.app-body .exchange-chart-meta span,
body.app-body .exchange-chart-meta small {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.app-body .exchange-chart-meta strong {
    flex: 0 0 auto !important;
    font-size: 0.82rem !important;
    font-weight: 900 !important;
}

body.app-body .exchange-chart-visual {
    grid-template-columns: repeat(14, minmax(0, 1fr)) !important;
    min-height: 170px !important;
}

body.app-body .exchange-candle {
    width: 64% !important;
    height: var(--candle-height, 48%) !important;
    min-height: 18px !important;
    align-self: end !important;
    justify-self: center !important;
    border-radius: 1px !important;
    background: var(--upbit-rise) !important;
}

body.app-body .exchange-candle.fall {
    height: var(--candle-height, 48%) !important;
    background: var(--upbit-fall) !important;
}

body.app-body .exchange-chart-stats {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
}

body.app-body .exchange-chart-stats > div {
    display: grid !important;
    gap: 3px !important;
    min-height: 44px !important;
    padding: 7px 8px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 4px !important;
    background: #f8fafc !important;
}

body.app-body .exchange-chart-stats span {
    color: #64748b !important;
    font-size: 0.68rem !important;
    font-weight: 800 !important;
}

body.app-body .exchange-chart-stats strong {
    overflow: hidden !important;
    color: #111827 !important;
    font-size: 0.82rem !important;
    font-weight: 900 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.app-body .exchange-chart-empty {
    display: grid !important;
    grid-column: 1 / -1 !important;
    align-self: stretch !important;
    place-items: center !important;
    color: #64748b !important;
    font-size: 0.82rem !important;
    font-weight: 800 !important;
}

body.app-body .exchange-tab-summary {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: end !important;
    gap: 4px 10px !important;
    min-height: 74px !important;
    padding: 12px !important;
    border: 1px solid #dbe4ef !important;
    border-radius: 6px !important;
    background: #f8fafc !important;
}

body.app-body .exchange-tab-summary span,
body.app-body .exchange-tab-summary em {
    color: #64748b !important;
    font-size: 0.72rem !important;
    font-style: normal !important;
    font-weight: 800 !important;
}

body.app-body .exchange-tab-summary strong {
    grid-column: 1 / -1 !important;
    overflow: hidden !important;
    color: #111827 !important;
    font-size: 1.18rem !important;
    font-weight: 900 !important;
    line-height: 1.16 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.app-body .exchange-tab-summary.ask strong {
    color: var(--upbit-rise) !important;
}

body.app-body .exchange-tab-summary.assets em.positive-text {
    color: var(--upbit-rise) !important;
}

body.app-body .exchange-tab-summary.assets em.negative-text {
    color: var(--upbit-fall) !important;
}

body.app-body .exchange-order-tab-panel .exchange-order-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    background: transparent !important;
}

body.app-body .exchange-order-tab-panel .exchange-order-fields > div {
    display: grid !important;
    min-height: 58px !important;
    align-content: center !important;
    gap: 5px !important;
    padding: 8px 10px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 5px !important;
    background: #ffffff !important;
}

body.app-body .exchange-order-tab-panel .exchange-order-fields span {
    color: #64748b !important;
    font-size: 0.7rem !important;
    font-weight: 800 !important;
}

body.app-body .exchange-order-tab-panel .exchange-order-fields strong {
    overflow: hidden !important;
    font-size: 0.9rem !important;
    line-height: 1.2 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.app-body .holdings-table {
    min-width: 1600px !important;
}

body.app-body .holdings-table col.holdings-col-coin {
    width: 150px !important;
}

body.app-body .holdings-table col.holdings-col-age {
    width: 126px !important;
}

body.app-body .holdings-table col.holdings-col-price-summary {
    width: 138px !important;
}

body.app-body .holdings-table col.holdings-col-change {
    width: 86px !important;
}

body.app-body .holdings-table col.holdings-col-pump {
    width: 110px !important;
}

body.app-body .holdings-table col.holdings-col-profit-summary {
    width: 142px !important;
}

body.app-body .holdings-table col.holdings-col-amount-summary {
    width: 150px !important;
}

body.app-body .holdings-table col.holdings-col-average-down {
    width: 84px !important;
}

body.app-body .holdings-table col.holdings-col-target {
    width: 230px !important;
}

body.app-body .holdings-table col.holdings-col-order {
    width: 168px !important;
}

body.app-body .holdings-table th:nth-child(10),
body.app-body .holdings-table td.reservation-sell-cell,
body.app-body .holdings-table th:nth-child(11),
body.app-body .holdings-table td:nth-child(11) {
    text-align: left !important;
}

body.app-body .holdings-table th:nth-child(10) .sort-button,
body.app-body .holdings-table th:nth-child(11) .sort-button {
    justify-content: flex-start !important;
    text-align: left !important;
}

body.app-body .holdings-table td.reservation-sell-cell {
    padding-right: 8px !important;
    font-size: 0.72rem !important;
    line-height: 1.3 !important;
}

body.app-body .holdings-table .reservation-sell-lines {
    gap: 0 !important;
}

body.app-body .holdings-table .reservation-sell-line {
    padding: 2px 0 3px 9px !important;
    font-size: 0.71rem !important;
    line-height: 1.28 !important;
}

body.app-body .holdings-table .status-cell {
    align-items: flex-start !important;
}

body.app-body .holdings-table .inline-order-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 6px !important;
}

body.app-body .holdings-table .inline-order-summary,
body.app-body .holdings-table .inline-order-cancel-form button {
    width: auto !important;
    min-height: 28px !important;
    padding: 0 8px !important;
    font-size: 0.72rem !important;
    white-space: nowrap !important;
}

.individual-order-open {
    overflow: hidden;
}

.individual-order-modal[hidden] {
    display: none !important;
}

.individual-order-modal {
    position: fixed;
    inset: 0;
    z-index: 130;
    display: grid;
    place-items: center;
    padding: calc(18px + var(--safe-top)) calc(18px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(18px + var(--safe-left));
}

.individual-order-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.42);
}

.individual-order-dialog {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 16px;
    width: min(560px, 100%);
    max-height: min(720px, calc(100dvh - 36px));
    overflow: auto;
    padding: 20px;
    border: 1px solid rgba(100, 116, 139, 0.22);
    border-radius: 8px;
    color: var(--text);
    background: #ffffff;
    box-shadow: 0 24px 54px rgba(15, 23, 42, 0.2);
}

.individual-order-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.individual-order-header h2 {
    margin: 0;
    color: var(--text-strong);
    font-size: 1.2rem;
    letter-spacing: 0;
}

.individual-order-form {
    display: grid !important;
    gap: 12px !important;
    min-width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.individual-order-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
}

.individual-order-form .inline-order-field,
.individual-order-form .inline-order-checkbox {
    display: grid !important;
    gap: 7px !important;
    min-width: 0 !important;
    color: var(--text) !important;
    font-size: 0.82rem !important;
    font-weight: 800 !important;
}

.individual-order-form .inline-order-checkbox {
    display: flex !important;
    align-items: center !important;
}

.individual-order-form input,
.individual-order-form select {
    min-height: 40px !important;
    width: 100% !important;
    border-radius: 6px !important;
    font-size: 0.92rem !important;
}

.individual-order-actions {
    display: grid;
    grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr);
    gap: 8px;
}

.individual-order-actions button {
    width: 100%;
    min-height: 40px;
}

@media (max-width: 900px) {
    body.app-body > .terminal-topbar {
        min-height: calc(46px + var(--safe-top)) !important;
        padding-top: var(--safe-top) !important;
    }

    body.app-body > .terminal-topbar h1 {
        font-size: 0.92rem !important;
    }

    body.app-body > .terminal-topbar .topbar-actions {
        gap: 6px !important;
    }

    body.app-body > .terminal-topbar .topbar-actions button,
    body.app-body > .terminal-topbar .session-toggle-button {
        min-height: 28px !important;
        padding: 0 9px !important;
        font-size: 0.72rem !important;
    }

    body.app-body .exchange-chart-stats,
    body.app-body .exchange-order-tab-panel .exchange-order-fields,
    .individual-order-grid,
    .individual-order-actions {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    body.app-body .exchange-chart-meta {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 4px !important;
    }

    .individual-order-dialog {
        padding: 16px;
    }

    .individual-order-header {
        display: grid;
    }
}

/* Exchange layout repair: prevent the legacy side rail grid span from pushing content down. */
@media (min-width: 901px) {
    body.app-body {
        padding: 0 !important;
    }

    body.app-body .mobile-app-header {
        display: none !important;
    }

    body.app-body .page-grid:not(.single-column) {
        grid-auto-flow: row !important;
        grid-auto-rows: auto !important;
        align-items: start !important;
        min-height: 0 !important;
    }

    body.app-body .page-grid:not(.single-column) > * {
        grid-row: auto !important;
        margin-top: 0 !important;
        transform: none !important;
    }

    body.app-body .page-grid:not(.single-column) > .terminal-sidebar {
        grid-row: auto !important;
        align-self: start !important;
    }

    body.app-body .terminal-command-center.session-panel,
    body.app-body .terminal-command-center,
    body.app-body #market-command-center {
        position: static !important;
        top: auto !important;
        z-index: auto !important;
        margin-top: 0 !important;
    }
}

body.app-body .topbar-status-row {
    display: none !important;
}

body.app-body .exchange-chart-tabs button,
body.app-body .exchange-order-tabs button,
body.app-body .exchange-chart-tab,
body.app-body .exchange-order-tab {
    display: inline-flex !important;
    min-height: 26px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 9px !important;
    border: 1px solid var(--upbit-line, #d8e0ea) !important;
    color: #4b5563 !important;
    background: #ffffff !important;
    font-size: 0.72rem !important;
    font-weight: 850 !important;
    cursor: pointer !important;
}

body.app-body .exchange-chart-tabs button.active,
body.app-body .exchange-order-tabs button.active,
body.app-body .exchange-chart-tab.active,
body.app-body .exchange-order-tab.active {
    color: #ffffff !important;
    border-color: var(--upbit-blue, #064aa8) !important;
    background: var(--upbit-blue, #064aa8) !important;
}

body.app-body .exchange-order-tab-panel {
    display: grid;
    gap: 9px;
}

body.app-body .exchange-order-tab-panel[hidden] {
    display: none !important;
}

/* Semantic colors must beat generic metric typography. */
.app-body .terminal-command-center.market-state-bull {
    border-color: rgba(47, 210, 127, 0.36) !important;
}

.app-body .terminal-command-center.market-state-sideways {
    border-color: rgba(240, 193, 75, 0.34) !important;
}

.app-body .terminal-command-center.market-state-defensive {
    border-color: rgba(255, 92, 92, 0.36) !important;
}

.app-body strong.trend-positive,
.app-body strong.status-positive,
.app-body .metric strong.trend-positive,
.app-body .metric strong.status-positive,
.app-body .ratio-row.trend-positive strong,
.app-body .portfolio-health-head strong.status-positive {
    color: var(--success) !important;
}

.app-body strong.trend-negative,
.app-body strong.status-negative,
.app-body .metric strong.trend-negative,
.app-body .metric strong.status-negative,
.app-body .ratio-row.trend-negative strong,
.app-body .portfolio-health-head strong.status-negative {
    color: var(--danger) !important;
}

.app-body strong.trend-neutral,
.app-body strong.status-neutral,
.app-body .metric strong.trend-neutral,
.app-body .metric strong.status-neutral,
.app-body .ratio-row.trend-neutral strong,
.app-body .portfolio-health-head strong.status-neutral {
    color: #cbd5e1 !important;
}

.app-body strong.status-warning,
.app-body .metric strong.status-warning,
.app-body .portfolio-health-head strong.status-warning {
    color: var(--warning) !important;
}

.app-body .status-badge.trend-positive,
.app-body .status-badge.status-positive {
    color: var(--success) !important;
    background: rgba(47, 210, 127, 0.12) !important;
    border-color: rgba(47, 210, 127, 0.32) !important;
}

.app-body .status-badge.trend-negative,
.app-body .status-badge.status-negative {
    color: var(--danger) !important;
    background: rgba(255, 92, 92, 0.12) !important;
    border-color: rgba(255, 92, 92, 0.32) !important;
}

.app-body .status-badge.trend-neutral,
.app-body .status-badge.status-neutral {
    color: #cbd5e1 !important;
    background: rgba(148, 163, 184, 0.12) !important;
    border-color: rgba(148, 163, 184, 0.24) !important;
}

/* Final light interface pass.
   The product should stay information-dense, but the working surface is light,
   readable, and button styles are scoped by role instead of forcing every
   native button/control into the same dark treatment. */
body.app-body {
    --bg: #f6f8fb;
    --bg-accent: #edf2f7;
    --panel: #ffffff;
    --panel-subtle: #f8fafc;
    --panel-raised: #ffffff;
    --panel-border: rgba(15, 23, 42, 0.12);
    --panel-border-strong: rgba(15, 23, 42, 0.18);
    --text: #172033;
    --text-strong: #0f172a;
    --muted: #64748b;
    --soft-muted: #94a3b8;
    --success: #0e9f6e;
    --danger: #d92d20;
    --warning: #b7791f;
    --accent: #2563eb;
    --accent-strong: #1d4ed8;
    color: var(--text) !important;
    background: linear-gradient(180deg, #ffffff 0, var(--bg) 240px, var(--bg) 100%) !important;
}

.app-body .topbar,
.app-body .terminal-topbar {
    border: 1px solid var(--panel-border) !important;
    color: var(--text) !important;
    background: rgba(255, 255, 255, 0.96) !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05) !important;
}

.app-body .topbar-brand h1,
.app-body h1,
.app-body h2,
.app-body h3,
.app-body h4,
.app-body strong,
.app-body label,
.app-body .metric-value,
.app-body .metric strong,
.app-body .terminal-metric strong,
.app-body .market-link {
    color: var(--text-strong) !important;
}

.app-body .muted,
.app-body .field-hint,
.app-body .cell-meta,
.app-body .metric-label,
.app-body .eyebrow,
.app-body small,
.app-body .panel-header-actions,
.app-body .recommendation-footnote,
.app-body .coin-item-main p,
.app-body .alert-item p,
.app-body .activity-item p,
.app-body .dashboard-header-memo-item-side {
    color: var(--muted) !important;
}

.app-body .eyebrow {
    color: #526174 !important;
    letter-spacing: 0.06em !important;
}

.app-body .eyebrow,
.app-body .metric-label {
    text-transform: none !important;
}

.app-body .terminal-sidebar {
    border-color: var(--panel-border) !important;
    background: #ffffff !important;
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.04);
}

.app-body .terminal-nav-item {
    color: #526174 !important;
    background: transparent !important;
}

.app-body .terminal-nav-item:hover,
.app-body .terminal-nav-item.active {
    color: var(--accent) !important;
    background: rgba(37, 99, 235, 0.07) !important;
    border-color: rgba(37, 99, 235, 0.16) !important;
}

.app-body .panel,
.app-body .data-panel,
.app-body .info-panel,
.app-body .metric,
.app-body .metric-card,
.app-body .timestamp-card,
.app-body .auth-card,
.app-body .dashboard-header-memo,
.app-body .dashboard-panel-toggle-group,
.app-body .memo-editor-card,
.app-body .memo-board-card,
.app-body .memo-board-empty,
.app-body .recommendation-breakdown,
.app-body .detail-popover-content,
.app-body .market-search-form,
.app-body .settings-section,
.app-body .runtime-preview {
    color: var(--text) !important;
    background: #ffffff !important;
    border-color: var(--panel-border) !important;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04) !important;
}

.app-body .terminal-command-center.session-panel,
.app-body .terminal-command-center {
    color: var(--text) !important;
    background: #ffffff !important;
    border-color: var(--panel-border-strong) !important;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.06) !important;
}

.app-body .terminal-hero-grid,
.app-body .terminal-dashboard-grid {
    border-color: var(--panel-border) !important;
    background: var(--panel-border) !important;
}

.app-body .market-mode-hero,
.app-body .hero-metric-stack,
.app-body .terminal-dashboard-grid > .data-panel {
    background: #ffffff !important;
}

.app-body .market-mode-hero h2 {
    color: var(--text-strong) !important;
}

.app-body .market-mode-hero p,
.app-body .portfolio-health-card p,
.app-body .portfolio-health-card small {
    color: var(--muted) !important;
}

.app-body .metric,
.app-body .terminal-metric,
.app-body .engine-score-grid > div,
.app-body .system-status,
.app-body .alert-item,
.app-body .activity-item,
.app-body .coin-item {
    border-color: var(--panel-border) !important;
    color: var(--text) !important;
    background: #f8fafc !important;
}

.app-body .dashboard-header-memo,
.app-body .dashboard-panel-toggle-group {
    background: #f8fafc !important;
}

.app-body .ratio-row > span,
.app-body .engine-score-grid span {
    color: var(--muted) !important;
}

.app-body .progress-bar {
    background: #e5eaf1 !important;
}

.app-body .trend-indicator {
    border-bottom-color: rgba(15, 23, 42, 0.1) !important;
}

.app-body .status-positive,
.app-body .trend-positive,
.app-body .positive-text,
.app-body .positive,
.app-body .signal-positive,
.app-body strong.trend-positive,
.app-body strong.status-positive,
.app-body .metric strong.trend-positive,
.app-body .metric strong.status-positive,
.app-body .ratio-row.trend-positive strong,
.app-body .portfolio-health-head strong.status-positive {
    color: var(--success) !important;
}

.app-body .status-negative,
.app-body .trend-negative,
.app-body .negative-text,
.app-body .negative,
.app-body .signal-negative,
.app-body strong.trend-negative,
.app-body strong.status-negative,
.app-body .metric strong.trend-negative,
.app-body .metric strong.status-negative,
.app-body .ratio-row.trend-negative strong,
.app-body .portfolio-health-head strong.status-negative {
    color: var(--danger) !important;
}

.app-body .status-warning,
.app-body .warning-pill,
.app-body strong.status-warning,
.app-body .metric strong.status-warning,
.app-body .portfolio-health-head strong.status-warning {
    color: var(--warning) !important;
}

.app-body .status-neutral,
.app-body .trend-neutral,
.app-body .muted-text,
.app-body .neutral,
.app-body .signal-neutral,
.app-body .signal-muted,
.app-body strong.trend-neutral,
.app-body strong.status-neutral,
.app-body .metric strong.trend-neutral,
.app-body .metric strong.status-neutral,
.app-body .ratio-row.trend-neutral strong,
.app-body .portfolio-health-head strong.status-neutral {
    color: #475569 !important;
}

.app-body .status-badge.status-positive,
.app-body .status-badge.trend-positive,
.app-body .live-badge {
    color: #047857 !important;
    background: #e8f7ef !important;
    border-color: rgba(14, 159, 110, 0.26) !important;
}

.app-body .status-badge.status-negative,
.app-body .status-badge.trend-negative {
    color: #b42318 !important;
    background: #fff0ee !important;
    border-color: rgba(217, 45, 32, 0.24) !important;
}

.app-body .status-badge.status-warning,
.app-body .warning-pill {
    color: #8a5a00 !important;
    background: #fff7dd !important;
    border-color: rgba(183, 121, 31, 0.28) !important;
}

.app-body .status-badge.status-neutral,
.app-body .status-badge.trend-neutral,
.app-body .pill,
.app-body .info-chip {
    color: #475569 !important;
    background: #f1f5f9 !important;
    border-color: rgba(100, 116, 139, 0.18) !important;
}

.app-body .terminal-command-center.market-state-bull {
    border-color: rgba(14, 159, 110, 0.34) !important;
}

.app-body .terminal-command-center.market-state-sideways {
    border-color: rgba(183, 121, 31, 0.3) !important;
}

.app-body .terminal-command-center.market-state-defensive {
    border-color: rgba(217, 45, 32, 0.32) !important;
}

.app-body .alert {
    color: var(--text) !important;
    background: #ffffff !important;
}

.app-body .alert.success {
    color: #047857 !important;
    background: #e8f7ef !important;
    border-color: rgba(14, 159, 110, 0.28) !important;
}

.app-body .alert.warning {
    color: #8a5a00 !important;
    background: #fff7dd !important;
    border-color: rgba(183, 121, 31, 0.3) !important;
}

.app-body .alert.error {
    color: #b42318 !important;
    background: #fff0ee !important;
    border-color: rgba(217, 45, 32, 0.26) !important;
}

.app-body button,
.app-body .ghost-link,
.app-body .secondary-button,
.app-body .compact-button,
.app-body .session-toggle-button {
    cursor: pointer;
    min-height: 34px;
    border: 1px solid rgba(100, 116, 139, 0.24) !important;
    border-radius: 6px !important;
    color: var(--text) !important;
    background: #ffffff !important;
    box-shadow: none !important;
    text-decoration: none;
}

.app-body button[type="submit"]:not(.secondary-button):not(.ghost-link),
.app-body .compact-button:not(.secondary-button):not(.ghost-link) {
    color: #ffffff !important;
    background: var(--accent) !important;
    border-color: var(--accent) !important;
}

.app-body .ghost-link:hover,
.app-body .secondary-button:hover,
.app-body .compact-button:hover,
.app-body .session-toggle-button:hover,
.app-body button:hover {
    color: var(--accent) !important;
    background: #f8fafc !important;
    border-color: rgba(37, 99, 235, 0.32) !important;
}

.app-body button[type="submit"]:not(.secondary-button):not(.ghost-link):hover,
.app-body .compact-button:not(.secondary-button):not(.ghost-link):hover {
    color: #ffffff !important;
    background: var(--accent-strong) !important;
    border-color: var(--accent-strong) !important;
}

.app-body .sort-button {
    display: inline-flex !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #475569 !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: inherit;
    font-weight: 800;
}

.app-body .sort-button:hover {
    color: var(--accent) !important;
    background: transparent !important;
}

.app-body .dashboard-panel-toggle-button[data-expanded="true"],
.app-body .session-toggle-button.enabled {
    color: var(--accent) !important;
    background: rgba(37, 99, 235, 0.07) !important;
    border-color: rgba(37, 99, 235, 0.24) !important;
}

.app-body .dashboard-panel-toggle-button[data-expanded="false"],
.app-body .session-toggle-button.disabled {
    color: #64748b !important;
    background: #f1f5f9 !important;
    border-color: rgba(100, 116, 139, 0.2) !important;
}

.app-body input,
.app-body select,
.app-body textarea {
    border: 1px solid rgba(100, 116, 139, 0.24) !important;
    border-radius: 6px !important;
    color: var(--text) !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

.app-body input:focus,
.app-body select:focus,
.app-body textarea:focus {
    outline: 3px solid rgba(37, 99, 235, 0.14) !important;
    border-color: rgba(37, 99, 235, 0.48) !important;
}

.app-body input::placeholder,
.app-body textarea::placeholder {
    color: var(--soft-muted) !important;
}

.app-body input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    min-height: 18px !important;
    padding: 0 !important;
    accent-color: var(--accent);
    background: #ffffff !important;
    cursor: pointer;
}

.app-body input[type="time"],
.app-body input[type="date"],
.app-body input[type="datetime-local"] {
    color-scheme: light;
}

.app-body .setting-toggle,
.app-body .toggle-row {
    color: var(--text) !important;
    background: #ffffff !important;
    border-color: var(--panel-border) !important;
}

.app-body .table-wrap {
    border-color: var(--panel-border) !important;
    background: #ffffff !important;
}

.app-body .asset-table {
    color: var(--text) !important;
    background: #ffffff !important;
}

.app-body .asset-table th {
    color: #475569 !important;
    background: #f1f5f9 !important;
    border-color: rgba(15, 23, 42, 0.1) !important;
}

.app-body .asset-table td {
    color: var(--text) !important;
    background: #ffffff !important;
    border-color: rgba(15, 23, 42, 0.08) !important;
}

.app-body .asset-table tbody tr:hover td {
    background: #f8fafc !important;
}

.app-body .detail-popover-summary,
.app-body .inline-order-summary {
    color: var(--text) !important;
    background: #ffffff !important;
    border-color: rgba(100, 116, 139, 0.24) !important;
}

@media (max-width: 900px) {
    .app-body .topbar,
    .app-body .terminal-topbar,
    .app-body .panel,
    .app-body .terminal-command-center {
        box-shadow: none !important;
    }
}

/* Navigation-led dashboard pass: the sidebar is now the primary way to move
   between sections, so hide section toggles and make reasoning directional. */
html {
    scroll-behavior: smooth;
    scroll-padding-top: 16px;
}

.app-body .dashboard-utility-grid,
.app-body .dashboard-panel-toggle-group,
.app-body .dashboard-panel-toggles,
.app-body .header-toggle-button {
    display: none !important;
}

.app-body .terminal-sidebar {
    align-content: start;
    max-height: calc(100vh - 32px - var(--safe-top));
    overflow: auto;
}

.app-body .terminal-nav-item {
    min-height: 32px;
    white-space: nowrap;
}

.app-body .terminal-dashboard-grid {
    grid-template-columns: minmax(0, 1.18fr) minmax(300px, 0.82fr) !important;
}

.app-body .market-health-panel {
    grid-column: span 1 !important;
}

.app-body .market-engine-panel {
    grid-column: span 1 !important;
}

.app-body .portfolio-terminal-card {
    grid-column: 1 / -1 !important;
}

.app-body .reason-item {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    min-height: 34px;
    padding: 8px 10px;
    border: 1px solid var(--panel-border);
    border-radius: 7px;
    background: #f8fafc;
}

.app-body .reason-arrow {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: currentColor;
    color: inherit;
    font-size: 0;
}

.app-body .reason-item .reason-arrow {
    font-size: 0.95rem;
    font-weight: 900;
}

.app-body .reason-item .reason-arrow {
    background: rgba(100, 116, 139, 0.12);
}

.app-body .reason-item.trend-positive .reason-arrow {
    background: rgba(14, 159, 110, 0.12);
}

.app-body .reason-item.trend-negative .reason-arrow {
    background: rgba(217, 45, 32, 0.12);
}

.app-body .reason-item p {
    margin: 0;
    color: var(--text) !important;
    font-size: 0.82rem;
    line-height: 1.45;
}

@media (max-width: 1180px) {
    .app-body .terminal-dashboard-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .app-body .market-health-panel,
    .app-body .market-engine-panel,
    .app-body .portfolio-terminal-card {
        grid-column: 1 / -1 !important;
    }
}

.app-body .settings-embed-panel {
    display: grid;
    gap: 12px;
}

.app-body .settings-embed-panel > .form-panel {
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

.app-body .settings-embed-panel .settings-layout {
    grid-template-columns: repeat(2, minmax(320px, 1fr));
}

.app-body .settings-embed-panel .settings-section {
    border-radius: 8px !important;
}

.app-body .settings-embed-frame {
    display: block;
    width: 100%;
    min-height: 980px;
    border: 0;
    border-radius: 8px;
    background: transparent;
}

body.embedded-settings-body {
    padding: 0 !important;
    background: transparent !important;
}

.embedded-settings-body .embedded-settings-shell {
    display: block !important;
}

.embedded-settings-body .form-panel {
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

.embedded-settings-body .settings-note {
    margin-bottom: 14px;
}

@media (max-width: 1180px) {
    .app-body .settings-embed-panel .settings-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Login screen aligned with the light trading terminal interface. */
body.auth-body {
    --bg: #f6f8fb;
    --panel: #ffffff;
    --panel-border: rgba(15, 23, 42, 0.12);
    --text: #172033;
    --text-strong: #0f172a;
    --muted: #64748b;
    --accent: #2563eb;
    --accent-strong: #1d4ed8;
    --danger: #d92d20;
    min-height: 100vh;
    min-height: 100dvh;
    padding:
        calc(18px + var(--safe-top))
        calc(18px + var(--safe-right))
        calc(18px + var(--safe-bottom))
        calc(18px + var(--safe-left));
    color: var(--text);
    background: linear-gradient(180deg, #ffffff 0, var(--bg) 260px, var(--bg) 100%);
    font-family: Inter, "Segoe UI", "Noto Sans KR", "Apple SD Gothic Neo", Arial, sans-serif;
}

.auth-body .auth-shell {
    min-height: calc(100vh - 36px - var(--safe-top) - var(--safe-bottom));
    min-height: calc(100dvh - 36px - var(--safe-top) - var(--safe-bottom));
    display: grid;
    place-items: center;
}

.auth-body .terminal-auth-card {
    display: grid;
    gap: 22px;
    width: min(100%, 440px);
    padding: 28px;
    border: 1px solid var(--panel-border);
    border-radius: 8px;
    color: var(--text);
    background: var(--panel);
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.08);
    animation: none;
}

.auth-body .auth-card-head {
    display: grid;
    gap: 6px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.auth-body .eyebrow {
    margin: 0;
    color: #526174;
    font-size: 0.75rem;
    font-weight: 850;
    letter-spacing: 0.06em;
}

.auth-body h1 {
    margin: 0;
    color: var(--text-strong);
    font-size: clamp(1.8rem, 5vw, 2.35rem);
    line-height: 1.08;
    letter-spacing: 0;
}

.auth-body .muted {
    margin: 0;
    color: var(--muted);
    font-size: 0.9rem;
    line-height: 1.55;
}

.auth-body .stack-form {
    display: grid;
    gap: 14px;
}

.auth-body .stack-form label {
    display: grid;
    gap: 7px;
    color: #475569;
    font-size: 0.84rem;
    font-weight: 800;
}

.auth-body input {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid rgba(100, 116, 139, 0.24);
    border-radius: 6px;
    color: var(--text);
    background: #ffffff;
    box-shadow: none;
}

.auth-body input:focus {
    outline: 3px solid rgba(37, 99, 235, 0.14);
    border-color: rgba(37, 99, 235, 0.48);
}

.auth-body input::placeholder {
    color: #94a3b8;
}

.auth-body button[type="submit"] {
    min-height: 42px;
    margin-top: 2px;
    border: 1px solid var(--accent);
    border-radius: 6px;
    color: #ffffff;
    background: var(--accent);
    font-weight: 850;
    box-shadow: none;
}

.auth-body button[type="submit"]:hover {
    background: var(--accent-strong);
    border-color: var(--accent-strong);
}

.auth-body .alert.error {
    justify-content: flex-start;
    width: 100%;
    border: 1px solid rgba(217, 45, 32, 0.26);
    border-radius: 7px;
    color: #b42318;
    background: #fff0ee;
}

@media (max-width: 520px) {
    body.auth-body {
        padding:
            calc(12px + var(--safe-top))
            calc(12px + var(--safe-right))
            calc(12px + var(--safe-bottom))
            calc(12px + var(--safe-left));
    }

    .auth-body .terminal-auth-card {
        padding: 22px;
        box-shadow: none;
    }
}

/* Korean market color convention: rise/profit is red, fall/loss is blue. */
body.app-body,
body.embedded-settings-body {
    --rise-color: #dc2626;
    --rise-bg: #fff1f1;
    --rise-border: rgba(220, 38, 38, 0.28);
    --fall-color: #2563eb;
    --fall-bg: #eff6ff;
    --fall-border: rgba(37, 99, 235, 0.28);
}

.app-body .trend-positive,
.app-body .status-positive,
.app-body .positive-text,
.app-body .positive,
.app-body .signal-positive,
.app-body .profit-positive,
.app-body strong.trend-positive,
.app-body strong.status-positive,
.app-body strong.positive-text,
.app-body .metric strong.trend-positive,
.app-body .metric strong.status-positive,
.app-body .metric strong.positive-text,
.app-body .ratio-row.trend-positive strong,
.app-body .portfolio-health-head strong.status-positive {
    color: var(--rise-color) !important;
}

.app-body .trend-negative,
.app-body .status-negative,
.app-body .negative-text,
.app-body .negative,
.app-body .signal-negative,
.app-body .profit-negative,
.app-body strong.trend-negative,
.app-body strong.status-negative,
.app-body strong.negative-text,
.app-body .metric strong.trend-negative,
.app-body .metric strong.status-negative,
.app-body .metric strong.negative-text,
.app-body .ratio-row.trend-negative strong,
.app-body .portfolio-health-head strong.status-negative {
    color: var(--fall-color) !important;
}

.app-body .status-badge.status-positive,
.app-body .status-badge.trend-positive,
.app-body .live-badge {
    color: var(--rise-color) !important;
    background: var(--rise-bg) !important;
    border-color: var(--rise-border) !important;
}

.app-body .status-badge.status-negative,
.app-body .status-badge.trend-negative {
    color: var(--fall-color) !important;
    background: var(--fall-bg) !important;
    border-color: var(--fall-border) !important;
}

.app-body .ratio-row.trend-positive .progress-bar,
.app-body .reason-item.trend-positive .reason-arrow,
.app-body .market-state-bull .mode-dot {
    color: var(--rise-color) !important;
}

.app-body .ratio-row.trend-negative .progress-bar,
.app-body .reason-item.trend-negative .reason-arrow,
.app-body .market-state-defensive .mode-dot {
    color: var(--fall-color) !important;
}

.app-body .reason-item.trend-positive .reason-arrow {
    background: rgba(220, 38, 38, 0.12) !important;
}

.app-body .reason-item.trend-negative .reason-arrow {
    background: rgba(37, 99, 235, 0.12) !important;
}

.app-body .terminal-command-center.market-state-bull {
    border-color: rgba(220, 38, 38, 0.34) !important;
}

.app-body .terminal-command-center.market-state-defensive {
    border-color: rgba(37, 99, 235, 0.34) !important;
}

.app-body .portfolio-profit-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

.app-body .portfolio-profit-grid .metric {
    min-height: 84px;
}

@media (max-width: 1180px) {
    .app-body .portfolio-profit-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 860px) {
    .app-body .portfolio-profit-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

.app-body .portfolio-summary-cards {
    display: grid;
    grid-template-columns: minmax(150px, 0.9fr) repeat(3, minmax(190px, 1fr));
    gap: 10px;
}

.app-body .portfolio-summary-card {
    display: grid;
    align-content: start;
    gap: 10px;
    min-height: 118px;
    padding: 14px;
    border: 1px solid var(--panel-border);
    border-radius: 7px;
    color: var(--text);
    background: #f8fafc;
}

.app-body .portfolio-summary-card.paired {
    grid-template-rows: auto 1fr 1fr;
}

.app-body .portfolio-summary-card > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}

.app-body .portfolio-summary-card small {
    color: var(--muted);
    font-size: 0.74rem;
    font-weight: 750;
}

.app-body .portfolio-summary-card strong {
    color: var(--text-strong);
    font-size: 1.05rem;
    line-height: 1.2;
    text-align: right;
    overflow-wrap: anywhere;
}

.app-body .portfolio-summary-card strong.positive-text {
    color: var(--rise-color);
}

.app-body .portfolio-summary-card strong.negative-text {
    color: var(--fall-color);
}

.app-body .portfolio-summary-card > strong {
    margin-top: auto;
    font-size: 1.24rem;
    text-align: left;
}

.holdings-table col.holdings-col-average-down {
    width: 104px;
}

.app-body .holdings-table {
    min-width: 2314px;
}

.app-body .average-down-button {
    width: 100%;
    min-height: 30px;
    padding: 0 10px;
    font-size: 0.76rem;
}

.app-body .average-down-button:disabled {
    cursor: not-allowed;
    color: #94a3b8 !important;
    background: #f1f5f9 !important;
    border-color: #e2e8f0 !important;
}

.average-down-open {
    overflow: hidden;
}

.average-down-modal[hidden] {
    display: none !important;
}

.average-down-modal {
    position: fixed;
    inset: 0;
    z-index: 80;
    display: grid;
    place-items: center;
    padding: calc(18px + var(--safe-top)) calc(18px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(18px + var(--safe-left));
}

.average-down-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.36);
}

.average-down-dialog {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 16px;
    width: min(760px, 100%);
    max-height: min(760px, calc(100dvh - 36px));
    overflow: auto;
    padding: 20px;
    border: 1px solid rgba(100, 116, 139, 0.2);
    border-radius: 8px;
    color: var(--text);
    background: #ffffff;
    box-shadow: 0 24px 54px rgba(15, 23, 42, 0.18);
}

.average-down-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.average-down-header h2 {
    margin: 0;
    color: var(--text-strong);
    font-size: 1.35rem;
    letter-spacing: 0;
}

.average-down-body {
    display: grid;
    gap: 14px;
}

.average-down-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.average-down-field {
    display: grid;
    gap: 6px;
    min-height: 72px;
    padding: 12px;
    border: 1px solid rgba(100, 116, 139, 0.18);
    border-radius: 7px;
    background: #f8fafc;
}

.average-down-field span,
.average-down-input-field span {
    color: var(--muted);
    font-size: 0.76rem;
    font-weight: 800;
}

.average-down-field strong {
    color: var(--text-strong);
    font-size: 1.05rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.average-down-input-field {
    display: grid;
    gap: 8px;
}

.average-down-input-field input {
    min-height: 44px;
    border-radius: 7px;
    font-size: 1rem;
    font-weight: 800;
}

.average-down-korean-amount {
    display: block;
    min-height: 1.35em;
    color: var(--muted);
    font-size: 0.82rem;
    font-weight: 750;
    line-height: 1.35;
    word-break: keep-all;
}

.average-down-grid.result-grid .average-down-field {
    background: #ffffff;
}

@media (max-width: 1180px) {
    .app-body .portfolio-summary-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .app-body .holdings-table {
        min-width: 1904px;
    }

    .app-body .holdings-table col.holdings-col-average-down {
        width: 104px;
    }
}

@media (max-width: 860px) {
    .app-body .portfolio-summary-cards,
    .average-down-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .app-body .holdings-table {
        min-width: 1512px;
    }

    .app-body .holdings-table col.holdings-col-average-down {
        width: 96px;
    }

    .app-body .portfolio-summary-card {
        min-height: auto;
    }

    .average-down-dialog {
        padding: 16px;
    }

    .average-down-header {
        display: grid;
    }
}

/* Compact command center: keep the first viewport focused on decisions, not empty height. */
.app-body .terminal-command-center.session-panel,
.app-body .terminal-command-center {
    padding: 10px !important;
}

.app-body .terminal-hero-grid {
    grid-template-columns: minmax(240px, 1.2fr) minmax(210px, 0.82fr) minmax(210px, 0.78fr) !important;
}

.app-body .market-mode-hero,
.app-body .hero-metric-stack {
    min-height: 124px !important;
    padding: 14px 16px !important;
    gap: 8px !important;
}

.app-body .market-mode-hero {
    align-content: center !important;
}

.app-body .market-mode-hero h2 {
    margin: 2px 0 !important;
    font-size: clamp(1.9rem, 3.6vw, 3.25rem) !important;
    line-height: 0.98 !important;
}

.app-body .market-mode-hero p {
    margin: 0 !important;
    font-size: 0.84rem !important;
}

.app-body .hero-action-row {
    margin-top: 4px !important;
    gap: 6px !important;
}

.app-body .hero-metric-stack {
    align-content: stretch !important;
}

.app-body .terminal-metric {
    padding: 10px !important;
}

.app-body .terminal-metric strong {
    font-size: 1.18rem !important;
}

.app-body .terminal-mini-grid {
    gap: 6px !important;
}

.app-body .terminal-metric.compact {
    padding: 8px !important;
}

.app-body .portfolio-health-card .progress-bar {
    height: 6px !important;
}

.app-body .portfolio-health-head strong {
    font-size: 1.1rem !important;
}

@media (max-width: 860px) {
    .app-body .terminal-hero-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .app-body .market-mode-hero,
    .app-body .hero-metric-stack {
        min-height: auto !important;
    }
}

/* Korean market color convention inside holdings tables. */
.app-body .asset-table td.positive-text,
.app-body .holdings-table td.positive-text,
.app-body .asset-table td.trend-positive,
.app-body .holdings-table td.trend-positive,
.app-body .asset-table td.status-positive,
.app-body .holdings-table td.status-positive,
.app-body .asset-table td.positive-text strong,
.app-body .holdings-table td.positive-text strong,
.app-body .asset-table td.positive-text small,
.app-body .holdings-table td.positive-text small,
.app-body .asset-table td.trend-positive strong,
.app-body .holdings-table td.trend-positive strong,
.app-body .asset-table td.status-positive strong,
.app-body .holdings-table td.status-positive strong {
    color: var(--rise-color) !important;
}

.app-body .asset-table td.negative-text,
.app-body .holdings-table td.negative-text,
.app-body .asset-table td.trend-negative,
.app-body .holdings-table td.trend-negative,
.app-body .asset-table td.status-negative,
.app-body .holdings-table td.status-negative,
.app-body .asset-table td.negative-text strong,
.app-body .holdings-table td.negative-text strong,
.app-body .asset-table td.negative-text small,
.app-body .holdings-table td.negative-text small,
.app-body .asset-table td.trend-negative strong,
.app-body .holdings-table td.trend-negative strong,
.app-body .asset-table td.status-negative strong,
.app-body .holdings-table td.status-negative strong {
    color: var(--fall-color) !important;
}

.app-body .asset-table td.muted-text,
.app-body .holdings-table td.muted-text {
    color: var(--muted) !important;
}

/* Balanced holdings table columns. */
.app-body .holdings-table {
    min-width: 1780px !important;
}

.app-body .holdings-table col.holdings-col-coin {
    width: 150px !important;
}

.app-body .holdings-table col.holdings-col-age {
    width: 118px !important;
}

.app-body .holdings-table col.holdings-col-price {
    width: 92px !important;
}

.app-body .holdings-table col.holdings-col-change {
    width: 86px !important;
}

.app-body .holdings-table col.holdings-col-pump {
    width: 100px !important;
}

.app-body .holdings-table col.holdings-col-rate {
    width: 92px !important;
}

.app-body .holdings-table col.holdings-col-profit {
    width: 104px !important;
}

.app-body .holdings-table col.holdings-col-amount {
    width: 106px !important;
}

.app-body .holdings-table col.holdings-col-average-down {
    width: 84px !important;
}

.app-body .holdings-table col.holdings-col-target {
    width: 250px !important;
}

.app-body .holdings-table col.holdings-col-order {
    width: 214px !important;
}

.app-body .asset-table.holdings-table th,
.app-body .asset-table.holdings-table td {
    padding: 8px 9px !important;
}

.app-body .holdings-table td:nth-child(n+3):nth-child(-n+12),
.app-body .holdings-table th:nth-child(n+3):nth-child(-n+12) {
    text-align: right;
}

.app-body .holdings-table th:nth-child(n+3):nth-child(-n+12) .sort-button {
    text-align: right;
}

.app-body .holdings-table td.reservation-sell-cell,
.app-body .holdings-table td:last-child {
    white-space: normal !important;
    overflow-wrap: anywhere;
    word-break: keep-all;
}

.app-body .holdings-table .reservation-sell-line {
    line-height: 1.3;
}

.app-body .holdings-table .status-cell {
    gap: 6px;
}

.app-body .holdings-table .inline-order-actions {
    gap: 6px;
}

.app-body .holdings-table .inline-order-summary,
.app-body .holdings-table .inline-order-cancel-form button,
.app-body .holdings-table .average-down-button {
    min-height: 28px !important;
    padding: 0 8px !important;
    font-size: 0.74rem !important;
}

@media (max-width: 1180px) {
    .app-body .holdings-table {
        min-width: 1620px !important;
    }

    .app-body .holdings-table col.holdings-col-coin {
        width: 132px !important;
    }

    .app-body .holdings-table col.holdings-col-age {
        width: 108px !important;
    }

    .app-body .holdings-table col.holdings-col-price {
        width: 86px !important;
    }

    .app-body .holdings-table col.holdings-col-change {
        width: 80px !important;
    }

    .app-body .holdings-table col.holdings-col-pump {
        width: 92px !important;
    }

    .app-body .holdings-table col.holdings-col-rate {
        width: 86px !important;
    }

    .app-body .holdings-table col.holdings-col-profit {
        width: 94px !important;
    }

    .app-body .holdings-table col.holdings-col-amount {
        width: 96px !important;
    }

    .app-body .holdings-table col.holdings-col-average-down {
        width: 80px !important;
    }

    .app-body .holdings-table col.holdings-col-target {
        width: 224px !important;
    }

    .app-body .holdings-table col.holdings-col-order {
        width: 190px !important;
    }
}

@media (max-width: 860px) {
    .app-body .holdings-table {
        min-width: 1490px !important;
    }

    .app-body .holdings-table col.holdings-col-coin {
        width: 118px !important;
    }

    .app-body .holdings-table col.holdings-col-age {
        width: 96px !important;
    }

    .app-body .holdings-table col.holdings-col-price {
        width: 78px !important;
    }

    .app-body .holdings-table col.holdings-col-change {
        width: 74px !important;
    }

    .app-body .holdings-table col.holdings-col-pump {
        width: 84px !important;
    }

    .app-body .holdings-table col.holdings-col-rate {
        width: 80px !important;
    }

    .app-body .holdings-table col.holdings-col-profit {
        width: 88px !important;
    }

    .app-body .holdings-table col.holdings-col-amount {
        width: 90px !important;
    }

    .app-body .holdings-table col.holdings-col-average-down {
        width: 74px !important;
    }

    .app-body .holdings-table col.holdings-col-target {
        width: 204px !important;
    }

    .app-body .holdings-table col.holdings-col-order {
        width: 174px !important;
    }
}

/* Dense but readable holdings rows. */
.app-body .holdings-table {
    min-width: 1840px !important;
}

.app-body .holdings-table col.holdings-col-age {
    width: 132px !important;
}

.app-body .holdings-table col.holdings-col-target {
    width: 286px !important;
}

.app-body .holdings-table tbody td {
    font-size: 0.76rem !important;
    line-height: 1.28 !important;
}

.app-body .holdings-table tbody td.buy-age-cell,
.app-body .holdings-table tbody td.reservation-sell-cell {
    padding-top: 7px !important;
    padding-bottom: 7px !important;
}

.app-body .holdings-table .buy-lot-list {
    gap: 0 !important;
}

.app-body .holdings-table .buy-lot-item {
    gap: 2px !important;
    padding: 5px 0 6px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.app-body .holdings-table .buy-lot-item:first-child {
    padding-top: 0;
}

.app-body .holdings-table .buy-lot-item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.app-body .holdings-table .buy-lot-item strong,
.app-body .holdings-table td.buy-age-cell .cell-stack strong {
    display: block;
    color: var(--text-strong) !important;
    font-size: 0.75rem !important;
    line-height: 1.24 !important;
    word-break: keep-all;
    overflow-wrap: normal;
}

.app-body .holdings-table .buy-lot-item .cell-meta,
.app-body .holdings-table td.buy-age-cell .cell-meta {
    display: block;
    font-size: 0.69rem !important;
    line-height: 1.2 !important;
}

.app-body .holdings-table .reservation-sell-lines {
    gap: 0 !important;
}

.app-body .holdings-table .reservation-sell-line {
    position: relative;
    padding: 3px 0 4px 10px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    font-size: 0.74rem !important;
    line-height: 1.34 !important;
    word-break: keep-all;
    overflow-wrap: anywhere;
}

.app-body .holdings-table .reservation-sell-line::before {
    content: "";
    position: absolute;
    top: 0.78em;
    left: 0;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #94a3b8;
}

.app-body .holdings-table .reservation-sell-line:first-child {
    padding-top: 0;
}

.app-body .holdings-table .reservation-sell-line:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

@media (max-width: 1180px) {
    .app-body .holdings-table {
        min-width: 1680px !important;
    }

    .app-body .holdings-table col.holdings-col-age {
        width: 122px !important;
    }

    .app-body .holdings-table col.holdings-col-target {
        width: 256px !important;
    }
}

@media (max-width: 860px) {
    .app-body .holdings-table {
        min-width: 1540px !important;
    }

    .app-body .holdings-table col.holdings-col-age {
        width: 110px !important;
    }

    .app-body .holdings-table col.holdings-col-target {
        width: 232px !important;
    }
}

/* Rebalance holdings table after dense row styling: keep key text columns readable without over-widening the table. */
.app-body .holdings-table {
    min-width: 1840px !important;
}

.app-body .holdings-table col.holdings-col-coin {
    width: 146px !important;
}

.app-body .holdings-table col.holdings-col-age {
    width: 142px !important;
}

.app-body .holdings-table col.holdings-col-price {
    width: 86px !important;
}

.app-body .holdings-table col.holdings-col-change {
    width: 80px !important;
}

.app-body .holdings-table col.holdings-col-pump {
    width: 98px !important;
}

.app-body .holdings-table col.holdings-col-rate {
    width: 88px !important;
}

.app-body .holdings-table col.holdings-col-profit {
    width: 100px !important;
}

.app-body .holdings-table col.holdings-col-amount {
    width: 98px !important;
}

.app-body .holdings-table col.holdings-col-average-down {
    width: 78px !important;
}

.app-body .holdings-table col.holdings-col-target {
    width: 302px !important;
}

.app-body .holdings-table col.holdings-col-order {
    width: 190px !important;
}

.app-body .asset-table.holdings-table thead th {
    padding: 7px 7px !important;
    vertical-align: middle !important;
    text-align: center !important;
}

.app-body .holdings-table thead .sort-button {
    justify-content: center !important;
    align-items: center !important;
    gap: 3px !important;
    min-height: 28px !important;
    width: 100% !important;
    color: #475569 !important;
    font-size: 0.68rem !important;
    font-weight: 850 !important;
    line-height: 1.12 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    white-space: normal !important;
}

.app-body .holdings-table thead .sort-button::after {
    flex: 0 0 auto !important;
    margin: 0 !important;
    font-size: 0.6rem !important;
    line-height: 1 !important;
}

.app-body .holdings-table th:nth-child(n+3):nth-child(-n+12) .sort-button {
    justify-content: center !important;
    text-align: center !important;
}

@media (max-width: 1180px) {
    .app-body .holdings-table {
        min-width: 1700px !important;
    }

    .app-body .holdings-table col.holdings-col-age {
        width: 132px !important;
    }

    .app-body .holdings-table col.holdings-col-target {
        width: 278px !important;
    }

    .app-body .holdings-table thead .sort-button {
        font-size: 0.66rem !important;
    }
}

@media (max-width: 860px) {
    .app-body .holdings-table {
        min-width: 1580px !important;
    }

    .app-body .holdings-table col.holdings-col-age {
        width: 120px !important;
    }

    .app-body .holdings-table col.holdings-col-target {
        width: 252px !important;
    }

    .app-body .holdings-table thead .sort-button {
        font-size: 0.64rem !important;
    }
}

/* Sell intelligence: dense decision panels for sell quality and rebuy timing. */
.app-body .sell-intelligence-section .panel-collapsible-body {
    display: grid;
    gap: 16px;
}

.app-body .sell-intelligence-grid {
    display: grid;
    grid-template-columns: minmax(180px, 0.7fr) minmax(260px, 1fr) minmax(300px, 1.1fr) minmax(300px, 1.2fr);
    gap: 12px;
    align-items: stretch;
}

.app-body .sell-intelligence-lists {
    display: grid;
    grid-template-columns: minmax(420px, 1.5fr) minmax(260px, 1fr) minmax(260px, 1fr) minmax(240px, 0.8fr);
    gap: 12px;
    align-items: start;
}

.app-body .sell-intel-card {
    min-width: 0;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #ffffff;
    padding: 14px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.app-body .sell-intel-card-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.app-body .sell-intel-card-head strong {
    color: var(--text-strong);
    font-size: 0.92rem;
}

.app-body .sell-score-card {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;
}

.app-body .sell-score-value {
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.app-body .sell-score-value strong {
    color: var(--text-strong);
    font-size: 2.7rem;
    line-height: 0.95;
    letter-spacing: 0;
}

.app-body .sell-score-value span {
    color: var(--text-muted);
    font-weight: 800;
}

.app-body .quality-bars,
.app-body .mode-correlation-list,
.app-body .compact-intel-list,
.app-body .period-stat-list,
.app-body .coin-reversion-list {
    display: grid;
    gap: 9px;
}

.app-body .sell-kpi-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.app-body .sell-kpi-row > div,
.app-body .period-stat-item {
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 7px;
    background: #f8fafc;
    padding: 10px;
}

.app-body .sell-kpi-row span,
.app-body .period-stat-item span,
.app-body .period-stat-item em {
    display: block;
    color: var(--text-muted);
    font-size: 0.72rem;
    font-style: normal;
    font-weight: 700;
}

.app-body .sell-kpi-row strong,
.app-body .period-stat-item strong {
    display: block;
    margin-top: 4px;
    color: var(--text-strong);
    font-size: 1rem;
}

.app-body .mode-correlation-item {
    display: grid;
    grid-template-columns: minmax(110px, 0.8fr) minmax(120px, 1fr) auto;
    gap: 10px;
    align-items: center;
}

.app-body .mode-correlation-item > div:first-child {
    display: grid;
    gap: 2px;
}

.app-body .mode-correlation-item span,
.app-body .mode-correlation-item em {
    color: var(--text-muted);
    font-size: 0.72rem;
    font-style: normal;
    font-weight: 700;
}

.app-body .coin-reversion-item {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(100px, auto);
    gap: 10px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.24);
    padding-bottom: 10px;
}

.app-body .coin-reversion-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.app-body .coin-reversion-score {
    display: grid;
    justify-items: end;
    gap: 2px;
}

.app-body .coin-reversion-score strong {
    font-size: 1.4rem;
    line-height: 1;
}

.app-body .coin-reversion-score span,
.app-body .coin-reversion-metrics span {
    color: var(--text-muted);
    font-size: 0.72rem;
    font-weight: 750;
}

.app-body .coin-reversion-metrics {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
}

.app-body .compact-intel-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.24);
    padding-bottom: 9px;
}

.app-body .compact-intel-item:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.app-body .compact-intel-item > div {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.app-body .compact-intel-item > div:last-child {
    justify-items: end;
    text-align: right;
}

.app-body .compact-intel-item strong {
    color: var(--text-strong);
    font-size: 0.84rem;
}

.app-body .compact-intel-item span {
    color: var(--text-muted);
    font-size: 0.72rem;
    font-weight: 700;
}

.app-body .strategy-summary {
    margin-top: 12px;
    border-top: 1px solid rgba(148, 163, 184, 0.26);
    padding-top: 12px;
}

.app-body .strategy-summary span {
    display: block;
    margin-bottom: 4px;
    color: var(--text-muted);
    font-size: 0.72rem;
    font-weight: 800;
}

.app-body .strategy-summary strong {
    color: var(--text-strong);
    font-size: 0.86rem;
    line-height: 1.45;
}

@media (max-width: 1320px) {
    .app-body .sell-intelligence-grid,
    .app-body .sell-intelligence-lists {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .app-body .sell-intelligence-grid,
    .app-body .sell-intelligence-lists,
    .app-body .sell-kpi-row {
        grid-template-columns: 1fr;
    }

    .app-body .mode-correlation-item,
    .app-body .coin-reversion-item {
        grid-template-columns: 1fr;
    }

    .app-body .coin-reversion-score {
        justify-items: start;
    }

    .app-body .compact-intel-item,
    .app-body .compact-intel-item > div:last-child {
        display: grid;
        justify-items: start;
        text-align: left;
    }
}

/* View-only sell target recommendations. These never affect order creation. */
.app-body .sell-target-section .panel-collapsible-body {
    display: grid;
    gap: 14px;
}

.app-body .sell-target-overview {
    display: grid;
    grid-template-columns: minmax(280px, 1.5fr) repeat(3, minmax(180px, 0.8fr));
    gap: 10px;
}

.app-body .sell-target-current-levels {
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 8px;
    background: #f8fafc;
    padding: 12px;
}

.app-body .sell-target-current-levels strong {
    display: block;
    margin-top: 4px;
    color: var(--text-strong);
    font-size: 1rem;
}

.app-body .sell-target-dev-toggle {
    display: grid;
    gap: 4px;
    align-content: center;
    min-width: 0;
    cursor: pointer;
    border: 1px solid rgba(37, 99, 235, 0.22);
    border-radius: 8px;
    background: #eff6ff;
    padding: 12px;
}

.app-body .sell-target-dev-toggle span {
    color: #1d4ed8;
    font-size: 0.72rem;
    font-weight: 850;
}

.app-body .sell-target-dev-toggle strong {
    color: var(--text-strong);
    font-size: 0.9rem;
}

.app-body .sell-target-dev-checkbox:checked ~ .sell-target-overview .sell-target-dev-toggle {
    border-color: rgba(37, 99, 235, 0.5);
    background: #dbeafe;
}

.app-body .sell-target-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.app-body .sell-target-card {
    min-width: 0;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: #ffffff;
    padding: 14px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
}

.app-body .sell-target-card-head,
.app-body .sell-target-card-subhead {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.app-body .sell-target-card-head em {
    font-style: normal;
    font-weight: 850;
}

.app-body .sell-target-range {
    display: grid;
    justify-items: end;
    gap: 2px;
    text-align: right;
}

.app-body .sell-target-range span,
.app-body .sell-target-card-subhead span,
.app-body .sell-target-meta span,
.app-body .sell-target-chip small {
    color: var(--text-muted);
    font-size: 0.72rem;
    font-weight: 750;
}

.app-body .sell-target-range strong {
    color: var(--rise-color);
    font-size: 1.15rem;
    line-height: 1;
}

.app-body .sell-target-comparison {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
}

.app-body .sell-target-comparison > div {
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 7px;
    background: #f8fafc;
    padding: 9px;
}

.app-body .sell-target-comparison span {
    display: block;
    color: var(--text-muted);
    font-size: 0.7rem;
    font-weight: 800;
}

.app-body .sell-target-comparison strong {
    display: block;
    margin-top: 4px;
    color: var(--text-strong);
    font-size: 0.95rem;
}

.app-body .sell-target-warning {
    display: grid;
    gap: 8px;
    margin-top: 12px;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 8px;
    background: #f8fafc;
    padding: 11px;
}

.app-body .sell-target-warning > div:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.app-body .sell-target-warning span {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    border-radius: 999px;
    padding: 3px 8px;
    font-size: 0.68rem;
    font-weight: 900;
}

.app-body .sell-target-warning strong {
    color: var(--text-strong);
    font-size: 0.82rem;
}

.app-body .sell-target-warning p {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.45;
}

.app-body .sell-target-warning-causes {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.app-body .sell-target-warning-causes em {
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    padding: 4px 8px;
    color: var(--text-strong);
    font-size: 0.7rem;
    font-style: normal;
    font-weight: 800;
}

.app-body .sell-target-warning.warning-danger {
    border-color: rgba(220, 38, 38, 0.28);
    background: #fff1f1;
}

.app-body .sell-target-warning.warning-danger span {
    color: #b91c1c;
    background: rgba(220, 38, 38, 0.12);
}

.app-body .sell-target-warning.warning-positive {
    border-color: rgba(22, 163, 74, 0.28);
    background: #f0fdf4;
}

.app-body .sell-target-warning.warning-positive span {
    color: #15803d;
    background: rgba(22, 163, 74, 0.12);
}

.app-body .sell-target-warning.warning-neutral,
.app-body .sell-target-warning.warning-watch {
    border-color: rgba(202, 138, 4, 0.28);
    background: #fefce8;
}

.app-body .sell-target-warning.warning-neutral span,
.app-body .sell-target-warning.warning-watch span {
    color: #854d0e;
    background: rgba(202, 138, 4, 0.14);
}

.app-body .sell-target-level-table {
    display: grid;
    gap: 0;
    margin-top: 12px;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, 0.26);
    border-radius: 8px;
}

.app-body .sell-target-level-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: center;
    min-height: 32px;
    border-top: 1px solid rgba(148, 163, 184, 0.22);
    background: #ffffff;
}

.app-body .sell-target-level-row:first-child {
    border-top: 0;
}

.app-body .sell-target-level-row.heading {
    min-height: 28px;
    background: #f1f5f9;
}

.app-body .sell-target-level-row span,
.app-body .sell-target-level-row strong,
.app-body .sell-target-level-row em {
    padding: 7px 9px;
    color: var(--text-strong);
    font-size: 0.76rem;
    font-style: normal;
    font-weight: 800;
}

.app-body .sell-target-level-row.heading span {
    color: var(--text-muted);
    font-size: 0.68rem;
    text-transform: none;
}

.app-body .sell-target-pump-history {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.app-body .sell-target-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.app-body .sell-target-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 28px;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 999px;
    background: #ffffff;
    padding: 5px 9px;
    color: var(--text-strong);
    font-size: 0.76rem;
    font-weight: 850;
}

.app-body .sell-target-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin-top: 12px;
    border-top: 1px solid rgba(148, 163, 184, 0.24);
    padding-top: 10px;
}

.app-body .sell-target-reason {
    margin: 8px 0 0;
    color: var(--text-muted);
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.45;
}

.app-body .sell-target-explain {
    margin-top: 12px;
    border-top: 1px solid rgba(148, 163, 184, 0.24);
    padding-top: 10px;
}

.app-body .sell-target-explain summary {
    cursor: pointer;
    color: var(--text-strong);
    font-size: 0.78rem;
    font-weight: 900;
}

.app-body .sell-target-explain-body {
    display: grid;
    gap: 12px;
    margin-top: 10px;
}

.app-body .sell-target-explain-block {
    display: grid;
    gap: 8px;
}

.app-body .sell-target-explain-block > strong,
.app-body .sell-target-dev-log > strong {
    color: var(--text-strong);
    font-size: 0.78rem;
}

.app-body .sell-target-factor-table {
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, 0.26);
    border-radius: 8px;
}

.app-body .sell-target-factor-row {
    display: grid;
    grid-template-columns: minmax(96px, 1fr) minmax(70px, 0.7fr) minmax(70px, 0.6fr) minmax(70px, 0.6fr);
    gap: 0;
    border-top: 1px solid rgba(148, 163, 184, 0.22);
    background: #ffffff;
}

.app-body .sell-target-factor-row:first-child {
    border-top: 0;
}

.app-body .sell-target-factor-row.heading {
    background: #f1f5f9;
}

.app-body .sell-target-factor-row span,
.app-body .sell-target-factor-row strong,
.app-body .sell-target-factor-row em {
    padding: 7px 8px;
    color: var(--text-strong);
    font-size: 0.72rem;
    font-style: normal;
    font-weight: 800;
}

.app-body .sell-target-factor-row.heading span {
    color: var(--text-muted);
    font-size: 0.66rem;
}

.app-body .sell-target-factor-row small {
    grid-column: 1 / -1;
    border-top: 1px dashed rgba(148, 163, 184, 0.26);
    padding: 6px 8px 8px;
    color: var(--text-muted);
    font-size: 0.68rem;
    font-weight: 700;
}

.app-body .sell-target-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
}

.app-body .sell-target-flow-item {
    position: relative;
    display: grid;
    gap: 3px;
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 8px;
    background: #f8fafc;
    padding: 9px;
}

.app-body .sell-target-flow-item span {
    color: var(--text-muted);
    font-size: 0.68rem;
    font-weight: 850;
}

.app-body .sell-target-flow-item strong {
    color: var(--text-strong);
    font-size: 0.9rem;
}

.app-body .sell-target-flow-item em {
    color: var(--text-muted);
    font-size: 0.66rem;
    font-style: normal;
    font-weight: 700;
}

.app-body .sell-target-dev-log {
    display: none;
    gap: 6px;
    border: 1px solid rgba(37, 99, 235, 0.22);
    border-radius: 8px;
    background: #eff6ff;
    padding: 10px;
}

.app-body .sell-target-dev-checkbox:checked ~ .sell-target-grid .sell-target-dev-log {
    display: grid;
}

.app-body .sell-target-dev-log code {
    white-space: normal;
    word-break: break-word;
    color: #1e3a8a;
    font-size: 0.72rem;
}

.app-body .sell-target-floor-note {
    margin: 0;
    border: 1px solid rgba(202, 138, 4, 0.28);
    border-radius: 8px;
    background: #fefce8;
    padding: 9px;
    color: #854d0e;
    font-size: 0.74rem;
    font-weight: 800;
}

@media (max-width: 1180px) {
    .app-body .sell-target-overview,
    .app-body .sell-target-grid {
        grid-template-columns: 1fr;
    }

    .app-body .sell-target-flow {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .app-body .sell-target-card-head,
    .app-body .sell-target-card-subhead,
    .app-body .sell-target-range {
        display: grid;
        justify-items: start;
        text-align: left;
    }

    .app-body .sell-target-comparison {
        grid-template-columns: 1fr;
    }

    .app-body .sell-target-factor-row,
    .app-body .sell-target-flow {
        grid-template-columns: 1fr;
    }
}

.app-body .mentor-page {
    gap: 16px;
}

.app-body .mentor-import-panel,
.app-body .mentor-summary-panel {
    border-radius: 8px;
    background: #121821;
}

.app-body .mentor-import-form .settings-section {
    align-content: start;
}

.app-body .mentor-option-stack {
    display: grid;
    gap: 10px;
    margin: 12px 0;
}

.app-body .primary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    border: 1px solid rgba(255, 159, 28, 0.55);
    border-radius: 7px;
    background: #ff9f1c;
    padding: 0 14px;
    color: #111827;
    font-size: 0.86rem;
    font-weight: 900;
    text-decoration: none;
    cursor: pointer;
}

.app-body .primary-button:hover {
    background: #f97316;
}

.app-body .mentor-stat-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, 0.26);
    border-radius: 8px;
    background: rgba(148, 163, 184, 0.24);
}

.app-body .mentor-stat-grid .metric {
    min-height: 86px;
    background: #151b24;
    padding: 14px;
}

.app-body .table-scroll {
    overflow-x: auto;
}

.app-body .mentor-table-scroll {
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 8px;
}

.app-body .terminal-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    background: #151b24;
}

.app-body .terminal-table th,
.app-body .terminal-table td {
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
    padding: 10px 12px;
    color: var(--text);
    font-size: 0.78rem;
    line-height: 1.35;
    text-align: left;
    vertical-align: top;
}

.app-body .terminal-table th {
    background: #101720;
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.app-body .terminal-table tr:last-child td {
    border-bottom: 0;
}

.app-body .terminal-table a {
    color: var(--text);
    font-weight: 900;
    text-decoration: none;
}

.app-body .terminal-table a:hover {
    color: var(--accent);
}

.app-body .terminal-table small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 800;
}

.app-body .mentor-frequency-list,
.app-body .mentor-pattern-list,
.app-body .mentor-compact-list {
    display: grid;
    gap: 8px;
}

.app-body .mentor-bar-row {
    display: grid;
    grid-template-columns: 36px minmax(120px, 0.8fr) minmax(120px, 2fr) 64px;
    gap: 10px;
    align-items: center;
    min-height: 42px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
}

.app-body .mentor-bar-row:last-child {
    border-bottom: 0;
}

.app-body .mentor-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 999px;
    background: rgba(255, 159, 28, 0.14);
    color: #ffc46b;
    font-size: 0.78rem;
    font-weight: 900;
}

.app-body .mentor-bar-row strong,
.app-body .mentor-compact-list strong,
.app-body .mentor-pattern-head strong {
    color: var(--text);
    font-size: 0.84rem;
}

.app-body .mentor-bar-row small,
.app-body .mentor-compact-list small,
.app-body .mentor-pattern-list small,
.app-body .mentor-cache-note {
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 800;
}

.app-body .mentor-bar-track {
    height: 9px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.18);
}

.app-body .mentor-bar-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #20b26b;
}

.app-body .mentor-bar-row em {
    color: var(--text);
    font-size: 0.82rem;
    font-style: normal;
    font-weight: 900;
    text-align: right;
}

.app-body .mentor-two-column {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.app-body .mentor-compact-list > div {
    display: grid;
    grid-template-columns: minmax(100px, 1fr) max-content max-content;
    gap: 10px;
    align-items: baseline;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    padding: 9px 0;
}

.app-body .mentor-compact-list > div:last-child {
    border-bottom: 0;
}

.app-body .mentor-compact-list span {
    color: var(--text);
    font-size: 0.9rem;
    font-weight: 900;
}

.app-body .mentor-pattern-list > div,
.app-body .mentor-dna-grid > div {
    display: grid;
    gap: 7px;
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
    padding: 10px 0;
}

.app-body .mentor-pattern-list > div:last-child,
.app-body .mentor-dna-grid > div:last-child {
    border-bottom: 0;
}

.app-body .mentor-pattern-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.app-body .mentor-pattern-head span,
.app-body .mentor-dna-grid strong {
    color: var(--accent);
    font-size: 1rem;
    font-weight: 950;
}

.app-body .mentor-dna-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 14px;
}

.app-body .mentor-dna-grid span {
    color: var(--text);
    font-size: 0.82rem;
    font-weight: 900;
}

.app-body .mentor-dna-grid small {
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 800;
}

.app-body .mentor-header-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.app-body .mentor-page {
    --text: #0f172a;
    --muted: #475569;
    --accent: #0f766e;
    color: #0f172a;
}

.app-body .mentor-import-panel,
.app-body .mentor-summary-panel {
    border: 1px solid #cbd5e1;
    background: #ffffff;
    box-shadow: 0 14px 30px rgba(15, 23, 42, 0.12);
}

.app-body .mentor-page .panel-heading h2,
.app-body .mentor-page .panel-header h2,
.app-body .mentor-page h3,
.app-body .mentor-page label,
.app-body .mentor-page strong,
.app-body .mentor-page td {
    color: #0f172a;
}

.app-body .mentor-page .eyebrow {
    color: #0f766e;
}

.app-body .mentor-page .muted,
.app-body .mentor-page .field-hint,
.app-body .mentor-page small {
    color: #475569;
}

.app-body .mentor-import-form input,
.app-body .mentor-import-form textarea {
    border-color: #cbd5e1;
    background: #f8fafc;
    color: #0f172a;
}

.app-body .mentor-import-form input::placeholder,
.app-body .mentor-import-form textarea::placeholder {
    color: #64748b;
}

.app-body .mentor-stat-grid {
    border-color: #cbd5e1;
    background: #cbd5e1;
}

.app-body .mentor-stat-grid .metric {
    background: #f8fafc;
}

.app-body .mentor-page .metric-label {
    color: #475569;
}

.app-body .mentor-page .metric strong,
.app-body .mentor-page .terminal-metric strong {
    color: #0f172a;
}

.app-body .mentor-page .metric strong.trend-positive,
.app-body .mentor-page .metric strong.status-positive {
    color: #047857;
}

.app-body .mentor-page .metric strong.status-warning {
    color: #b45309;
}

.app-body .mentor-page .status-badge.status-neutral {
    border-color: #cbd5e1;
    background: #f1f5f9;
    color: #334155;
}

.app-body .mentor-page .status-badge.status-positive {
    border-color: #86efac;
    background: #dcfce7;
    color: #166534;
}

.app-body .mentor-page .status-badge.status-warning {
    border-color: #fbbf24;
    background: #fef3c7;
    color: #92400e;
}

.app-body .mentor-table-scroll {
    border-color: #cbd5e1;
    background: #ffffff;
}

.app-body .mentor-page .terminal-table {
    background: #ffffff;
}

.app-body .mentor-page .terminal-table th {
    border-bottom-color: #cbd5e1;
    background: #e2e8f0;
    color: #334155;
}

.app-body .mentor-page .terminal-table td {
    border-bottom-color: #e2e8f0;
    background: #ffffff;
    color: #0f172a;
}

.app-body .mentor-page .terminal-table tbody tr:nth-child(even) td {
    background: #f8fafc;
}

.app-body .mentor-page .terminal-table a {
    color: #0f172a;
}

.app-body .mentor-page .terminal-table a:hover {
    color: #0f766e;
}

.app-body .mentor-page .terminal-table small {
    color: #475569;
}

.app-body .mentor-bar-row,
.app-body .mentor-compact-list > div,
.app-body .mentor-pattern-list > div,
.app-body .mentor-dna-grid > div {
    border-bottom-color: #e2e8f0;
}

.app-body .mentor-rank {
    background: #dbeafe;
    color: #1d4ed8;
}

.app-body .mentor-bar-row strong,
.app-body .mentor-compact-list strong,
.app-body .mentor-pattern-head strong,
.app-body .mentor-dna-grid span,
.app-body .mentor-compact-list span,
.app-body .mentor-bar-row em {
    color: #0f172a;
}

.app-body .mentor-bar-row small,
.app-body .mentor-compact-list small,
.app-body .mentor-pattern-list small,
.app-body .mentor-cache-note,
.app-body .mentor-dna-grid small {
    color: #475569;
}

.app-body .mentor-bar-track,
.app-body .mentor-page .progress-bar {
    background: #dbe4ef;
}

.app-body .mentor-bar-track span,
.app-body .mentor-page .progress-bar span {
    background: #0f766e;
}

.app-body .mentor-pattern-head span,
.app-body .mentor-dna-grid strong {
    color: #0f766e;
}

.app-body .mentor-calculation-note {
    margin: 14px 0 0;
    border: 1px solid #fde68a;
    border-radius: 8px;
    background: #fffbeb;
    padding: 11px 12px;
    color: #78350f;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.5;
}

@media (max-width: 980px) {
    .app-body .mentor-stat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .app-body .mentor-two-column,
    .app-body .mentor-dna-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .app-body .mentor-bar-row,
    .app-body .mentor-compact-list > div {
        grid-template-columns: 1fr;
        justify-items: start;
    }

    .app-body .mentor-bar-row em {
        text-align: left;
    }

    .app-body .mentor-stat-grid {
        grid-template-columns: 1fr;
    }

    .app-body .mentor-header-actions {
        justify-content: flex-start;
    }
}

/* Keep the operating dashboard short while preserving quick access to detail. */
.app-body [data-panel-section] {
    scroll-margin-top: 16px;
}

.app-body .collapsible-panel.panel-is-collapsed {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
}

.app-body .collapsible-panel.panel-is-collapsed > .panel-heading {
    margin-bottom: 0;
}

.app-body .panel-collapse-toggle {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 82px;
    margin-left: auto;
}

.app-body .panel-collapse-toggle-state {
    font-size: 0.76rem;
    font-weight: 800;
}

.app-body .panel-collapse-toggle-icon {
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    background: rgba(100, 116, 139, 0.14);
    font-size: 0.92rem;
    font-weight: 900;
    line-height: 1;
}

.app-body .holdings-table-wrap {
    max-height: min(68vh, 760px) !important;
}

.app-body .dashboard-scroll-table-wrap {
    max-height: min(62vh, 680px);
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
}

.app-body .dashboard-floating-nav {
    position: fixed;
    right: calc(18px + var(--safe-right));
    bottom: calc(18px + var(--safe-bottom));
    z-index: 75;
    display: flex;
    gap: 8px;
    padding: 8px;
    border: 1px solid var(--panel-border);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.14);
}

.app-body .dashboard-floating-nav a {
    text-decoration: none;
}

@media (max-width: 768px) {
    .app-body .panel-heading {
        width: 100%;
    }

    .app-body .panel-collapse-toggle {
        margin-left: 0;
    }

    .app-body .dashboard-floating-nav {
        right: calc(10px + var(--safe-right));
        bottom: calc(10px + var(--safe-bottom));
        left: calc(10px + var(--safe-left));
        justify-content: center;
    }
}

/* Recommendation list readability and score explanation. */
.app-body #recommended-coins .panel-collapsible-body {
    display: grid;
    gap: 14px;
}

.app-body .recommendation-scan-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.app-body .recommendation-scan-strip > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
    border: 1px solid var(--panel-border);
    border-radius: 8px;
    background: #f8fafc;
    padding: 10px 12px;
}

.app-body .recommendation-scan-strip span {
    color: var(--muted);
    font-size: 0.76rem;
    font-weight: 800;
}

.app-body .recommendation-scan-strip strong {
    white-space: nowrap;
    font-size: 0.96rem;
}

.app-body .recommendation-scan-strip .recommendation-scan-result {
    border-color: rgba(37, 99, 235, 0.26);
    background: #eff6ff;
}

.app-body .recommendation-scan-result strong {
    color: #1d4ed8 !important;
}

.app-body .recommendation-hit-history {
    display: grid;
    gap: 9px;
    min-width: 0;
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 8px;
    background: #ffffff;
    padding: 12px;
}

.app-body .recommendation-hit-history-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}

.app-body .recommendation-hit-history-head strong {
    color: #1d4ed8 !important;
    font-size: 0.9rem;
    font-weight: 950;
    line-height: 1.2;
}

.app-body .recommendation-hit-history-head span {
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.35;
    text-align: right;
}

.app-body .recommendation-hit-list {
    display: grid;
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--panel-border);
    border-radius: 8px;
    background: var(--panel-border);
}

.app-body .recommendation-hit-row {
    display: grid;
    grid-template-columns: minmax(260px, 0.82fr) minmax(430px, 1.18fr);
    gap: 12px;
    align-items: center;
    min-width: 0;
    background: #ffffff;
    padding: 12px;
}

.app-body .recommendation-hit-market {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    min-width: 0;
}

.app-body .recommendation-hit-market > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.app-body .recommendation-hit-market strong {
    overflow: hidden;
    color: var(--text-strong);
    font-size: 0.86rem;
    font-weight: 950;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-body .recommendation-hit-market span:last-child {
    overflow: hidden;
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 760;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-body .recommendation-hit-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 46px;
    min-height: 26px;
    border: 1px solid rgba(22, 163, 74, 0.22);
    border-radius: 999px;
    background: #ecfdf5;
    color: #15803d !important;
    font-size: 0.72rem;
    font-weight: 950;
    line-height: 1;
}

.app-body .recommendation-hit-timeline {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    min-width: 0;
}

.app-body .recommendation-hit-timeline > div {
    display: grid;
    gap: 3px;
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 7px;
    background: #f8fafc;
    padding: 8px;
}

.app-body .recommendation-hit-timeline span {
    color: var(--muted);
    font-size: 0.66rem;
    font-weight: 850;
    line-height: 1.2;
}

.app-body .recommendation-hit-timeline strong {
    overflow-wrap: anywhere;
    color: var(--text-strong);
    font-size: 0.8rem;
    font-weight: 930;
    line-height: 1.25;
}

.app-body .recommendation-hit-timeline small {
    overflow-wrap: anywhere;
    color: var(--muted);
    font-size: 0.67rem;
    font-weight: 730;
    line-height: 1.35;
}

.app-body .recommendation-threshold-progress {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
    min-width: 0;
}

.app-body .recommendation-threshold-progress > span {
    display: grid;
    gap: 2px;
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 7px;
    background: #f8fafc;
    padding: 7px 8px;
}

.app-body .recommendation-threshold-progress > span.is-hit {
    border-color: rgba(22, 163, 74, 0.22);
    background: #ecfdf5;
}

.app-body .recommendation-threshold-progress > span.is-waiting {
    background: #f8fafc;
}

.app-body .recommendation-threshold-progress strong {
    color: var(--text-strong);
    font-size: 0.72rem;
    font-weight: 930;
    line-height: 1.2;
}

.app-body .recommendation-threshold-progress > span.is-hit strong {
    color: #15803d !important;
}

.app-body .recommendation-threshold-progress small {
    overflow: hidden;
    color: var(--muted);
    font-size: 0.62rem;
    font-weight: 730;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-body .recommendation-comparison-metrics {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: repeat(9, minmax(0, 1fr));
    gap: 6px;
    min-width: 0;
}

.app-body .recommendation-comparison-metrics > span {
    display: grid;
    gap: 2px;
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 7px;
    background: #f8fafc;
    padding: 7px 8px;
}

.app-body .recommendation-comparison-metrics small {
    overflow: hidden;
    color: var(--muted);
    font-size: 0.6rem;
    font-weight: 820;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-body .recommendation-comparison-metrics strong {
    overflow: hidden;
    color: var(--text-strong);
    font-size: 0.68rem;
    font-weight: 930;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-body .recommendation-repeat-panel {
    display: grid;
    gap: 9px;
    min-width: 0;
    border: 1px solid rgba(14, 165, 233, 0.2);
    border-radius: 8px;
    background: #ffffff;
    padding: 12px;
}

.app-body .recommendation-repeat-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    min-width: 0;
}

.app-body .recommendation-repeat-head strong {
    color: #0369a1 !important;
    font-size: 0.9rem;
    font-weight: 950;
    line-height: 1.2;
}

.app-body .recommendation-repeat-head span {
    color: var(--muted);
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.35;
    text-align: right;
}

.app-body .recommendation-repeat-list {
    display: grid;
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--panel-border);
    border-radius: 8px;
    background: var(--panel-border);
}

.app-body .recommendation-repeat-row {
    display: grid;
    grid-template-columns: minmax(240px, 0.7fr) minmax(520px, 1.3fr);
    gap: 12px;
    align-items: center;
    min-width: 0;
    background: #ffffff;
    padding: 12px;
}

.app-body .recommendation-repeat-market {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    min-width: 0;
}

.app-body .recommendation-repeat-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    min-height: 26px;
    border: 1px solid rgba(14, 165, 233, 0.24);
    border-radius: 999px;
    background: #f0f9ff;
    color: #0369a1 !important;
    font-size: 0.72rem;
    font-weight: 950;
    line-height: 1;
}

.app-body .recommendation-repeat-market > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.app-body .recommendation-repeat-market strong,
.app-body .recommendation-repeat-metrics strong {
    overflow-wrap: anywhere;
    color: var(--text-strong);
    font-size: 0.82rem;
    font-weight: 930;
    line-height: 1.25;
}

.app-body .recommendation-repeat-market span:last-child,
.app-body .recommendation-repeat-metrics span,
.app-body .recommendation-repeat-metrics small {
    color: var(--muted);
    font-size: 0.67rem;
    font-weight: 730;
    line-height: 1.35;
}

.app-body .recommendation-repeat-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    min-width: 0;
}

.app-body .recommendation-repeat-metrics > div {
    display: grid;
    gap: 3px;
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 7px;
    background: #f8fafc;
    padding: 8px;
}

.app-body .recommendation-score-guide {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.app-body .recommendation-score-card {
    display: grid;
    align-content: start;
    gap: 9px;
    min-width: 0;
    border: 1px solid var(--panel-border);
    border-radius: 8px;
    background: #ffffff;
    padding: 13px;
}

.app-body .dna-score-card {
    border-color: rgba(37, 99, 235, 0.24);
    background: #f8fbff;
}

.app-body .engine-score-card {
    border-color: rgba(202, 138, 4, 0.26);
    background: #fffdf6;
}

.app-body .recommendation-score-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.app-body .recommendation-score-card h3 {
    margin: 0;
    font-size: 0.98rem;
}

.app-body .recommendation-score-card p {
    margin: 0;
    color: var(--muted);
    font-size: 0.78rem;
    line-height: 1.55;
}

.app-body .recommendation-score-scale {
    white-space: nowrap;
    border-radius: 999px;
    background: rgba(37, 99, 235, 0.08);
    padding: 5px 8px;
    color: #1d4ed8 !important;
    font-size: 0.74rem;
}

.app-body .engine-score-card .recommendation-score-scale {
    background: rgba(202, 138, 4, 0.1);
    color: #a16207 !important;
}

.app-body .recommendation-score-method {
    border-top: 1px solid var(--panel-border);
    padding-top: 8px;
}

.app-body .recommendation-score-method summary,
.app-body .recommendation-criteria-panel > summary {
    color: #334155;
    cursor: pointer;
    font-size: 0.76rem;
    font-weight: 850;
}

.app-body .recommendation-score-method p {
    margin-top: 8px;
}

.app-body .recommendation-score-method code {
    color: #334155;
    font-size: 0.72rem;
}

.app-body .recommendation-factor-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.app-body .recommendation-factor-list span {
    border: 1px solid var(--panel-border);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    padding: 5px 7px;
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 750;
}

.app-body .recommendation-factor-list strong {
    color: #334155 !important;
}

.app-body .recommendation-sort-note {
    margin: 0;
    border-left: 3px solid rgba(37, 99, 235, 0.45);
    background: #f8fafc;
    padding: 8px 10px;
    color: #526174;
    font-size: 0.76rem;
    font-weight: 750;
    line-height: 1.5;
}

.app-body .coin-signal-list {
    gap: 10px;
}

.app-body .coin-item {
    grid-template-columns: 42px minmax(220px, 0.84fr) minmax(170px, 0.4fr) minmax(420px, 1.4fr) !important;
    gap: 12px !important;
    align-items: start !important;
    border-color: rgba(148, 163, 184, 0.3) !important;
    background: #ffffff !important;
    padding: 13px !important;
}

.app-body .coin-item-rank {
    width: 36px;
    height: 36px;
    border-color: rgba(37, 99, 235, 0.2);
    background: #eff6ff;
    color: #1d4ed8;
}

.app-body .coin-item-main {
    display: grid;
    gap: 8px;
}

.app-body .coin-item-main .coin-item-reason {
    margin: 0;
    color: #64748b !important;
    font-size: 0.75rem;
    line-height: 1.45;
}

.app-body .coin-item-signal {
    display: grid;
    gap: 3px;
    border-radius: 6px;
    background: #f8fafc;
    padding: 7px 8px;
}

.app-body .coin-item-signal span,
.app-body .recommendation-score-box span {
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 850;
}

.app-body .coin-item-signal strong {
    color: #334155 !important;
    font-size: 0.74rem;
    line-height: 1.45;
}

.app-body .coin-item-scores {
    display: grid;
    gap: 7px;
}

.app-body .recommendation-score-box {
    display: grid;
    gap: 4px;
    min-width: 0;
    border: 1px solid var(--panel-border);
    border-radius: 7px;
    background: #f8fafc;
    padding: 9px;
}

.app-body .recommendation-score-box strong {
    color: #1d4ed8 !important;
    font-size: 1.16rem;
}

.app-body .recommendation-score-box small {
    color: var(--muted) !important;
    font-size: 0.67rem;
    line-height: 1.35;
}

.app-body .engine-score-box strong {
    color: #a16207 !important;
}

.app-body .coin-item-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 7px !important;
}

.app-body .coin-item-metrics .metric {
    min-width: 0;
    border: 1px solid rgba(148, 163, 184, 0.2) !important;
    border-radius: 7px;
    background: #f8fafc !important;
    padding: 8px;
}

.app-body .coin-item-metrics .metric-label {
    margin-bottom: 4px;
    font-size: 0.68rem;
}

.app-body .coin-item-metrics .metric strong {
    overflow-wrap: anywhere;
    font-size: 0.82rem;
    line-height: 1.35;
}

.app-body .coin-item-metrics .metric small {
    margin-top: 3px;
    font-size: 0.68rem;
}

.app-body .coin-item-details {
    grid-column: 2 / -1 !important;
}

.app-body .recommendation-criteria-panel {
    border: 1px solid var(--panel-border);
    border-radius: 8px;
    background: #f8fafc;
}

.app-body .recommendation-criteria-panel > summary {
    padding: 11px 12px;
}

.app-body .recommendation-criteria-body {
    display: grid;
    gap: 10px;
    padding: 0 12px 12px;
}

.app-body .recommendation-footnote {
    gap: 7px;
}

@media (max-width: 1400px) {
    .app-body .coin-item {
        grid-template-columns: 42px minmax(220px, 1fr) minmax(170px, 0.5fr) !important;
    }

    .app-body .coin-item-metrics,
    .app-body .coin-item-details {
        grid-column: 2 / -1 !important;
    }
}

@media (max-width: 860px) {
    .app-body .recommendation-score-guide {
        grid-template-columns: minmax(0, 1fr);
    }

    .app-body .recommendation-hit-history-head {
        display: grid;
        gap: 3px;
    }

    .app-body .recommendation-hit-history-head span {
        text-align: left;
    }

    .app-body .recommendation-hit-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 9px;
    }

    .app-body .recommendation-repeat-head {
        display: grid;
        gap: 3px;
    }

    .app-body .recommendation-repeat-head span {
        text-align: left;
    }

    .app-body .recommendation-repeat-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 9px;
    }

    .app-body .coin-item {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .app-body .coin-item-metrics,
    .app-body .coin-item-details {
        grid-column: 1 / -1 !important;
    }

    .app-body .coin-item-scores {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .app-body .recommendation-comparison-metrics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .app-body .recommendation-scan-strip,
    .app-body .recommendation-hit-timeline,
    .app-body .recommendation-threshold-progress,
    .app-body .recommendation-comparison-metrics,
    .app-body .recommendation-repeat-metrics,
    .app-body .coin-item-metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .app-body .recommendation-score-card-head {
        display: grid;
    }

    .app-body .recommendation-score-scale {
        width: fit-content;
    }

    .app-body .recommendation-hit-market {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .app-body .recommendation-repeat-market {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .app-body .recommendation-hit-market .coin-logo-wrap,
    .app-body .recommendation-repeat-market .coin-logo-wrap {
        display: none;
    }
}

/* Holdings table grouped columns: reduce horizontal scanning without hiding values. */
.app-body .holdings-table {
    min-width: 1500px !important;
}

.app-body .holdings-table col.holdings-col-price-summary {
    width: 128px !important;
}

.app-body .holdings-table col.holdings-col-profit-summary {
    width: 126px !important;
}

.app-body .holdings-table col.holdings-col-amount-summary {
    width: 124px !important;
}

.app-body .holdings-summary-cell {
    display: grid;
    gap: 0;
    min-width: 0;
    white-space: normal;
    font-variant-numeric: tabular-nums;
}

.app-body .holdings-summary-cell > div {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: baseline;
    gap: 6px;
    min-width: 0;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    padding: 4px 0;
}

.app-body .holdings-summary-cell > div:first-child {
    padding-top: 0;
}

.app-body .holdings-summary-cell > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.app-body .holdings-summary-cell span {
    color: var(--muted);
    font-size: 0.67rem;
    font-weight: 800;
    line-height: 1.2;
}

.app-body .holdings-summary-cell strong {
    min-width: 0;
    color: var(--text-strong);
    font-size: 0.75rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: right;
    overflow-wrap: anywhere;
}

.app-body .holdings-summary-cell .holdings-summary-primary span {
    color: #475569;
}

.app-body .holdings-summary-cell .holdings-summary-primary strong {
    font-weight: 900;
}

@media (max-width: 1180px) {
    .app-body .holdings-table {
        min-width: 1440px !important;
    }

    .app-body .holdings-table col.holdings-col-price-summary {
        width: 118px !important;
    }

    .app-body .holdings-table col.holdings-col-profit-summary {
        width: 120px !important;
    }

    .app-body .holdings-table col.holdings-col-amount-summary {
        width: 118px !important;
    }
}

@media (max-width: 860px) {
    .app-body .holdings-table {
        min-width: 1320px !important;
    }

    .app-body .holdings-table col.holdings-col-coin {
        width: 130px !important;
    }

    .app-body .holdings-table col.holdings-col-price-summary,
    .app-body .holdings-table col.holdings-col-profit-summary {
        width: 112px !important;
    }

    .app-body .holdings-table col.holdings-col-amount-summary {
        width: 110px !important;
    }

    .app-body .holdings-table col.holdings-col-change {
        width: 74px !important;
    }

    .app-body .holdings-table col.holdings-col-pump {
        width: 90px !important;
    }

    .app-body .holdings-table col.holdings-col-order {
        width: 170px !important;
    }
}

.app-body .engine-score-details {
    display: grid;
    gap: 6px;
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
}

.app-body .engine-score-details li {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding-top: 6px;
    border-top: 1px solid rgba(139, 148, 158, 0.14);
    color: var(--muted);
    font-size: 0.7rem;
    line-height: 1.4;
}

.app-body .engine-score-details li span {
    margin: 0;
    color: var(--muted);
    font-size: inherit;
    font-weight: 700;
    text-transform: none;
    overflow-wrap: anywhere;
}

.app-body .engine-score-details li b {
    flex: 0 0 auto;
}

.app-body .engine-score-formula {
    margin: 10px 0 0;
    padding-top: 8px;
    border-top: 1px solid rgba(139, 148, 158, 0.14);
    color: var(--text);
    font-size: 0.7rem;
    line-height: 1.4;
}

.app-body .portfolio-health-details {
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px solid rgba(139, 148, 158, 0.16);
}

.app-body .portfolio-health-details summary {
    color: var(--muted);
    cursor: pointer;
    font-size: 0.72rem;
    font-weight: 800;
}

.app-body .portfolio-health-details p {
    margin: 8px 0 0;
    color: var(--text);
    font-size: 0.72rem;
    line-height: 1.4;
}

.app-body .portfolio-health-details ul {
    display: grid;
    gap: 6px;
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
}

.app-body .portfolio-health-details li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2px 8px;
    padding-top: 6px;
    border-top: 1px solid rgba(139, 148, 158, 0.14);
    font-size: 0.7rem;
}

.app-body .portfolio-health-details li > span {
    color: var(--text);
    font-weight: 800;
}

.app-body .portfolio-health-details li > small {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--muted);
    line-height: 1.35;
}

/* These rules must stay last because dashboard layout rules use !important. */
.app-body .panel-collapsible-body[hidden] {
    display: none !important;
}

.app-body .mobile-nav-toggle,
.app-body .terminal-sidebar-head,
.app-body .mobile-sidebar-backdrop {
    display: none;
}

.app-body .terminal-nav-label {
    display: block;
    margin: 6px 4px 2px;
    color: var(--muted);
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.08em;
}

@media (max-width: 900px) {
    .app-body .mobile-nav-toggle {
        display: inline-flex;
        align-items: center;
        gap: 8px;
    }

    .app-body .mobile-nav-toggle-icon {
        display: grid;
        gap: 3px;
        width: 16px;
    }

    .app-body .mobile-nav-toggle-icon span {
        display: block;
        height: 2px;
        border-radius: 999px;
        background: currentColor;
    }

    .app-body .terminal-sidebar {
        position: fixed !important;
        top: calc(10px + var(--safe-top)) !important;
        right: auto !important;
        bottom: calc(10px + var(--safe-bottom)) !important;
        left: calc(10px + var(--safe-left)) !important;
        z-index: 130;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-rows: auto;
        align-content: start;
        width: min(84vw, 320px) !important;
        height: calc(100vh - 20px - var(--safe-top) - var(--safe-bottom)) !important;
        height: calc(100dvh - 20px - var(--safe-top) - var(--safe-bottom)) !important;
        max-height: calc(100vh - 20px - var(--safe-top) - var(--safe-bottom)) !important;
        max-height: calc(100dvh - 20px - var(--safe-top) - var(--safe-bottom)) !important;
        padding: 10px !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior-y: contain;
        -webkit-overflow-scrolling: touch;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateX(calc(-100% - 24px));
        transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
    }

    .app-body.mobile-sidebar-open .terminal-sidebar {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(0);
    }

    .app-body.mobile-sidebar-open {
        overflow: hidden;
    }

    .app-body .terminal-sidebar-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 2px 2px 6px;
        border-bottom: 1px solid var(--panel-border);
    }

    .app-body .mobile-sidebar-backdrop {
        position: fixed;
        inset: 0;
        z-index: 120;
        display: block;
        border: 0;
        border-radius: 0;
        background: rgba(15, 23, 42, 0.42);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity 160ms ease, visibility 160ms ease;
    }

    .app-body.mobile-sidebar-open .mobile-sidebar-backdrop {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }
}

/* Mobile dashboard navigation and asset cards. */
.app-body .mobile-bottom-nav,
.app-body .holdings-mobile-card-list,
.app-body .mobile-app-header,
.app-body .mobile-home-heading,
.app-body .mobile-more-profile,
.app-body .mobile-more-settings-link,
.app-body .mobile-more-actions,
.app-body .mobile-asset-overview,
.app-body .mobile-assets-profit-trend,
.app-body .mobile-holdings-action-row,
.app-body .mobile-profit-analytics,
.app-body .mobile-order-card-list {
    display: none;
}

@media (max-width: 900px) {
    body.app-body {
        padding-bottom: calc(92px + var(--safe-bottom)) !important;
    }

    .app-body .dashboard-floating-nav-desktop {
        display: none;
    }

    .app-body .mobile-bottom-nav {
        position: fixed;
        right: calc(10px + var(--safe-right));
        bottom: calc(10px + var(--safe-bottom));
        left: calc(10px + var(--safe-left));
        z-index: 90;
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 2px;
        padding: 6px;
        border: 1px solid var(--panel-border);
        border-radius: 16px;
        background: rgba(255, 255, 255, 0.97);
        box-shadow: 0 12px 30px rgba(15, 23, 42, 0.16);
        backdrop-filter: blur(14px);
    }

    .app-body .mobile-bottom-nav-item {
        display: flex;
        min-width: 0;
        min-height: 54px;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 3px;
        padding: 4px 2px;
        border: 0;
        border-radius: 11px;
        color: var(--muted);
        background: transparent;
        font-size: 0.68rem;
        font-weight: 800;
        line-height: 1;
        text-decoration: none;
    }

    .app-body .mobile-bottom-nav-item.active {
        color: var(--accent);
        background: rgba(37, 99, 235, 0.08);
    }

    .app-body .mobile-bottom-nav-item svg {
        width: 20px;
        height: 20px;
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.8;
    }

    .app-body .mobile-bottom-nav .mobile-nav-toggle {
        display: flex;
        gap: 4px;
    }

    .app-body .mobile-bottom-nav .mobile-nav-toggle-icon {
        gap: 3px;
        width: 18px;
        min-height: 20px;
        align-content: center;
    }

    .app-body .terminal-section,
    .app-body [data-panel-section] {
        scroll-margin-top: 12px;
    }

    .app-body .panel-collapse-toggle {
        min-height: 38px;
        padding: 0 12px;
    }

    .app-body .holdings-mobile-card-list {
        display: grid;
        gap: 10px;
    }

    .app-body .holdings-mobile-card-list:empty {
        display: none;
    }

    .app-body .holdings-table-wrap {
        display: none !important;
    }

    .app-body .holdings-mobile-card {
        display: grid;
        gap: 12px;
        padding: 14px;
        border: 1px solid var(--panel-border);
        border-radius: 14px;
        background: var(--panel-subtle);
    }

    .app-body .holdings-mobile-card[hidden] {
        display: none !important;
    }

    .app-body .holdings-mobile-card-head,
    .app-body .holdings-mobile-card-identity,
    .app-body .holdings-mobile-card-price,
    .app-body .holdings-mobile-card-actions,
    .app-body .holdings-mobile-card-order {
        display: flex;
        align-items: center;
    }

    .app-body .holdings-mobile-card-head {
        justify-content: space-between;
        gap: 12px;
    }

    .app-body .holdings-mobile-card-head > strong {
        flex: 0 0 auto;
        font-size: 1.02rem;
    }

    .app-body .holdings-mobile-card-identity {
        min-width: 0;
        gap: 7px;
    }

    .app-body .holdings-mobile-card-identity > div {
        display: grid;
        min-width: 0;
        gap: 2px;
    }

    .app-body .holdings-mobile-card-identity .market-link {
        overflow: hidden;
        font-size: 0.92rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .app-body .holdings-mobile-card-identity span {
        color: var(--muted);
        font-size: 0.7rem;
    }

    .app-body .holdings-mobile-card-price {
        flex-wrap: wrap;
        gap: 5px 8px;
    }

    .app-body .holdings-mobile-card-price span,
    .app-body .holdings-mobile-card-order span {
        color: var(--muted);
        font-size: 0.72rem;
        font-weight: 800;
    }

    .app-body .holdings-mobile-card-price strong {
        font-size: 1.14rem;
    }

    .app-body .holdings-mobile-card-price small {
        margin-left: auto;
        font-size: 0.72rem;
        font-weight: 800;
    }

    .app-body .holdings-mobile-card-metrics {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1px;
        margin: 0;
        overflow: hidden;
        border: 1px solid var(--panel-border);
        border-radius: 10px;
        background: var(--panel-border);
    }

    .app-body .holdings-mobile-card-metrics div {
        display: grid;
        gap: 4px;
        min-width: 0;
        padding: 9px;
        background: #ffffff;
    }

    .app-body .holdings-mobile-card-metrics dt {
        color: var(--muted);
        font-size: 0.66rem;
        font-weight: 800;
    }

    .app-body .holdings-mobile-card-metrics dd {
        margin: 0;
        overflow: hidden;
        color: var(--text-strong);
        font-size: 0.78rem;
        font-weight: 850;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .app-body .holdings-mobile-card-order {
        flex-wrap: wrap;
        gap: 5px 8px;
        padding-top: 2px;
    }

    .app-body .holdings-mobile-card-order strong {
        overflow-wrap: anywhere;
        font-size: 0.78rem;
        line-height: 1.35;
    }

    .app-body .holdings-mobile-card-order small {
        margin-left: auto;
        color: var(--muted);
        font-size: 0.7rem;
    }

    .app-body .holdings-mobile-card-actions {
        gap: 7px;
    }

    .app-body .holdings-mobile-card-actions .table-button,
    .app-body .mobile-holding-order-actions .table-button {
        min-height: 34px;
        padding: 0 11px;
        font-size: 0.72rem;
    }

    .app-body .mobile-holding-order-actions {
        gap: 7px;
        padding-top: 10px;
        border-top: 1px solid var(--panel-border);
    }

    .app-body .mobile-holding-order-actions .inline-order-details {
        width: 100%;
    }

    .app-body .mobile-holding-order-actions .inline-order-form {
        width: 100%;
    }

    .app-body .holdings-panel-heading .table-actions {
        width: 100%;
    }
}

/* App-style mobile information architecture. */
@media (max-width: 900px) {
    body.app-body.mobile-app-layout {
        padding-top: calc(8px + var(--safe-top)) !important;
        background: #f7f9fc !important;
    }

    .app-body.mobile-app-layout > .terminal-topbar {
        display: none !important;
    }

    .app-body .mobile-app-header {
        position: sticky;
        top: 0;
        z-index: 70;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        margin: 0 -4px 10px;
        padding: 8px 4px 12px;
        background: rgba(247, 249, 252, 0.94);
        backdrop-filter: blur(14px);
    }

    .app-body .mobile-app-brand,
    .app-body .mobile-app-brand > span:last-child,
    .app-body .mobile-app-header-side {
        display: flex;
        align-items: center;
    }

    .app-body .mobile-app-brand {
        gap: 9px;
        color: var(--text-strong);
        text-decoration: none;
    }

    .app-body .mobile-app-brand-mark,
    .app-body .mobile-more-profile-mark {
        display: inline-flex;
        width: 38px;
        height: 38px;
        align-items: center;
        justify-content: center;
        flex: 0 0 auto;
        border-radius: 14px;
        color: #ffffff;
        background: linear-gradient(135deg, #2d6cff, #1751dc);
        box-shadow: 0 8px 18px rgba(37, 99, 235, 0.2);
        font-size: 1.08rem;
        font-weight: 900;
    }

    .app-body .mobile-app-brand > span:last-child,
    .app-body .mobile-app-header-side {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
    }

    .app-body .mobile-app-brand strong {
        font-size: 0.96rem;
    }

    .app-body .mobile-app-brand small {
        color: var(--muted);
        font-size: 0.68rem;
    }

    .app-body .mobile-app-header-side {
        align-items: flex-end;
    }

    .app-body .mobile-app-header-side > strong {
        font-size: 0.76rem;
    }

    .app-body .mobile-live-pill {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        color: var(--success);
        font-size: 0.66rem;
        font-weight: 850;
    }

    .app-body .mobile-live-pill i {
        width: 6px;
        height: 6px;
        border-radius: 999px;
        background: currentColor;
        box-shadow: 0 0 0 3px rgba(14, 159, 110, 0.12);
    }

    .app-body.mobile-app-layout .page-grid:not(.single-column) {
        display: block !important;
    }

    .app-body.mobile-app-layout .page-grid > [data-mobile-section] {
        display: none !important;
    }

    .app-body.mobile-app-layout .page-grid > [data-mobile-section].mobile-section-visible {
        display: block !important;
        margin: 0 !important;
    }

    .app-body.mobile-app-layout .page-grid > #mobile-activity-center.mobile-section-visible {
        display: grid !important;
    }

    .app-body.mobile-app-layout #market-command-center,
    .app-body.mobile-app-layout #holdings-dashboard,
    .app-body.mobile-app-layout #portfolio-status,
    .app-body.mobile-app-layout #open-sell-orders,
    .app-body.mobile-app-layout #telegram-signal-center {
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .app-body .mobile-home-heading {
        display: flex;
        align-items: flex-start;
        justify-content: space-between;
        gap: 10px;
        margin: 4px 0 14px;
    }

    .app-body .mobile-home-heading p,
    .app-body .mobile-home-heading h2 {
        margin: 0;
    }

    .app-body .mobile-home-heading p {
        color: var(--muted);
        font-size: 0.76rem;
        font-weight: 750;
    }

    .app-body .mobile-home-heading h2 {
        margin-top: 4px;
        font-size: 1.18rem;
        line-height: 1.32;
    }

    .app-body .mobile-home-heading > span {
        padding: 5px 8px;
        border-radius: 999px;
        color: var(--accent);
        background: rgba(37, 99, 235, 0.08);
        font-size: 0.68rem;
        font-weight: 850;
        white-space: nowrap;
    }

    .app-body.mobile-app-layout #market-command-center .terminal-dashboard-grid {
        display: none !important;
    }

    .app-body.mobile-app-layout #market-command-center .terminal-hero-grid {
        display: grid !important;
        gap: 10px !important;
        overflow: visible;
        border: 0 !important;
        background: transparent !important;
    }

    .app-body.mobile-app-layout #market-command-center .market-mode-hero,
    .app-body.mobile-app-layout #market-command-center .hero-metric-stack {
        min-height: 0 !important;
        padding: 16px !important;
        border: 1px solid var(--panel-border) !important;
        border-radius: 16px !important;
        background: #ffffff !important;
        box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
    }

    .app-body.mobile-app-layout #market-command-center .market-mode-hero h2 {
        font-size: 2rem;
    }

    .app-body.mobile-app-layout #market-command-center .portfolio-health-details {
        display: none;
    }

    .app-body.mobile-app-layout #holdings-dashboard > .panel-heading,
    .app-body.mobile-app-layout #open-sell-orders > .panel-heading,
    .app-body.mobile-app-layout #telegram-signal-center > .panel-heading {
        gap: 10px;
        margin: 0 0 12px;
        padding: 0;
    }

    .app-body.mobile-app-layout #holdings-dashboard > .panel-heading .panel-collapse-toggle,
    .app-body.mobile-app-layout #open-sell-orders > .panel-heading .panel-collapse-toggle,
    .app-body.mobile-app-layout #telegram-signal-center > .panel-heading .panel-collapse-toggle,
    .app-body.mobile-app-layout #recent-activity > .panel-heading .panel-collapse-toggle {
        display: none;
    }

    .app-body.mobile-app-layout #holdings-dashboard > .panel-collapsible-body,
    .app-body.mobile-app-layout #open-sell-orders > .panel-collapsible-body,
    .app-body.mobile-app-layout #telegram-signal-center > .panel-collapsible-body {
        display: block !important;
    }

    .app-body .mobile-asset-overview {
        display: block;
        margin-bottom: 12px;
        padding: 18px;
        border: 1px solid rgba(37, 99, 235, 0.16);
        border-radius: 18px;
        background: linear-gradient(145deg, #ffffff, #f2f6ff);
        box-shadow: 0 10px 24px rgba(37, 99, 235, 0.08);
    }

    .app-body .mobile-asset-overview > p {
        margin: 0;
        color: var(--muted);
        font-size: 0.76rem;
        font-weight: 800;
    }

    .app-body .mobile-asset-overview > strong {
        display: block;
        margin-top: 4px;
        font-size: 1.74rem;
        letter-spacing: -0.04em;
    }

    .app-body .mobile-asset-overview-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px 12px;
        margin-top: 20px;
    }

    .app-body .mobile-asset-overview-grid div {
        display: grid;
        gap: 4px;
        min-width: 0;
    }

    .app-body .mobile-asset-overview-grid span {
        color: var(--muted);
        font-size: 0.68rem;
        font-weight: 750;
    }

    .app-body .mobile-asset-overview-grid strong {
        overflow: hidden;
        font-size: 0.85rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .app-body.mobile-app-layout #holdings-dashboard .filter-toolbar {
        padding: 0;
        border: 0;
        background: transparent;
    }

    .app-body.mobile-app-layout #holdings-dashboard .table-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .app-body.mobile-app-layout #holdings-dashboard .table-actions > span {
        grid-column: 1 / -1;
    }

    .app-body.mobile-app-layout #holdings-dashboard .table-actions form:last-child {
        grid-column: 1 / -1;
    }

    .app-body.mobile-app-layout #holdings-dashboard .table-actions button {
        width: 100%;
        min-height: 36px;
        white-space: normal;
    }

    .app-body .mobile-order-card-list {
        display: grid;
        gap: 9px;
    }

    .app-body .mobile-order-card {
        padding: 14px;
        border: 1px solid var(--panel-border);
        border-radius: 14px;
        background: #ffffff;
        box-shadow: 0 6px 16px rgba(15, 23, 42, 0.035);
    }

    .app-body .mobile-order-card-head,
    .app-body .mobile-order-card-head > div {
        display: flex;
    }

    .app-body .mobile-order-card-head {
        align-items: center;
        justify-content: space-between;
        gap: 10px;
    }

    .app-body .mobile-order-card-head > div {
        min-width: 0;
        flex-direction: column;
        gap: 2px;
    }

    .app-body .mobile-order-card-head span,
    .app-body .mobile-order-card-head em {
        color: var(--muted);
        font-size: 0.7rem;
        font-style: normal;
    }

    .app-body .mobile-order-card-head em {
        color: var(--accent);
        font-weight: 850;
    }

    .app-body .mobile-order-card dl {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
        margin: 14px 0 0;
    }

    .app-body .mobile-order-card dl div {
        display: grid;
        gap: 3px;
    }

    .app-body .mobile-order-card dt {
        color: var(--muted);
        font-size: 0.66rem;
        font-weight: 750;
    }

    .app-body .mobile-order-card dd {
        margin: 0;
        overflow: hidden;
        font-size: 0.78rem;
        font-weight: 800;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .app-body.mobile-app-layout #open-sell-orders .dashboard-scroll-table-wrap {
        display: none;
    }

    .app-body.mobile-app-layout #telegram-signal-center .terminal-console-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .app-body.mobile-app-layout #mobile-activity-center {
        gap: 10px !important;
        margin-top: 10px !important;
    }

    .app-body.mobile-app-layout #mobile-activity-center > .panel {
        padding: 14px !important;
    }

    .app-body .mobile-more-profile {
        display: flex;
        align-items: center;
        gap: 12px;
        margin: 10px 0 14px;
        padding: 12px;
        border-radius: 14px;
        background: #f4f7fb;
    }

    .app-body .mobile-more-profile > div {
        display: grid;
        gap: 3px;
    }

    .app-body .mobile-more-profile small {
        color: var(--muted);
        font-size: 0.7rem;
    }

    .app-body .mobile-more-settings-link {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        padding: 12px;
        border: 1px solid rgba(37, 99, 235, 0.16);
        border-radius: 14px;
        color: var(--text-strong);
        background: rgba(37, 99, 235, 0.06);
        text-decoration: none;
    }

    .app-body .mobile-more-settings-link span {
        display: grid;
        gap: 3px;
    }

    .app-body .mobile-more-settings-link small {
        color: var(--muted);
        font-size: 0.7rem;
    }

    .app-body .mobile-more-settings-link b {
        color: var(--accent);
        font-size: 1.3rem;
    }

    .app-body .mobile-more-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
        margin-top: 12px;
        padding-top: 12px;
        border-top: 1px solid var(--panel-border);
    }

    .app-body .mobile-more-actions button {
        width: 100%;
        min-height: 38px;
    }

    .app-body.mobile-app-layout .terminal-sidebar {
        top: var(--safe-top) !important;
        right: var(--safe-right) !important;
        bottom: calc(78px + var(--safe-bottom)) !important;
        left: var(--safe-left) !important;
        width: auto !important;
        height: auto !important;
        max-height: none !important;
        padding: 14px !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        transform: translateX(calc(100% + 24px));
    }

    .app-body.mobile-app-layout.mobile-sidebar-open .terminal-sidebar {
        transform: translateX(0);
    }

    .app-body.mobile-app-layout .terminal-nav-label {
        margin-top: 12px;
    }

    .app-body.mobile-app-layout .terminal-nav-item {
        display: flex;
        min-height: 42px;
        align-items: center;
        justify-content: space-between;
        padding: 0 4px;
        border: 0 !important;
        border-bottom: 1px solid var(--panel-border) !important;
        border-radius: 0 !important;
        font-size: 0.82rem;
    }

    .app-body.mobile-app-layout .terminal-nav-item::after {
        content: "›";
        color: var(--soft-muted);
        font-size: 1.15rem;
    }

    .app-body.mobile-app-layout .mobile-sidebar-backdrop {
        display: none;
    }
}

@media (max-width: 900px) {
    body.settings-page-body {
        padding:
            calc(8px + var(--safe-top))
            calc(10px + var(--safe-right))
            calc(18px + var(--safe-bottom))
            calc(10px + var(--safe-left)) !important;
    }

    .settings-page-body > .topbar {
        position: sticky;
        top: 0;
        z-index: 50;
        gap: 10px;
        margin: 0 0 10px;
        padding: 12px !important;
        border-radius: 14px !important;
        backdrop-filter: blur(14px);
    }

    .settings-page-body > .topbar h1 {
        margin: 2px 0 0;
        font-size: 1.08rem;
    }

    .settings-page-body > .topbar .topbar-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
    }

    .settings-page-body > .topbar .pill {
        width: 100%;
    }

    .settings-page-body > .topbar .ghost-link,
    .settings-page-body > .topbar button {
        min-height: 36px;
        padding: 0 11px;
        font-size: 0.74rem;
    }

    .settings-page-body .page-grid.single-column {
        gap: 10px;
    }

    .settings-page-body .form-panel {
        padding: 13px !important;
        border-radius: 14px !important;
    }

    .settings-page-body .settings-note {
        padding: 10px;
        border-radius: 10px;
        background: #f8fafc;
    }

    .settings-page-body .settings-section {
        padding: 12px;
        border-radius: 10px;
    }

    .settings-page-body .settings-section h3 {
        font-size: 0.98rem;
    }

    .settings-page-body .settings-grid {
        gap: 10px;
    }
}

/* Mobile usability refinements for compact app screens. */
@media (max-width: 900px) {
    .app-body .holdings-mobile-card {
        gap: 10px;
        padding: 13px;
        background: #ffffff;
        box-shadow: 0 5px 14px rgba(15, 23, 42, 0.035);
    }

    .app-body .holdings-mobile-card-order {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        gap: 7px 9px;
        padding: 9px 0;
        border-top: 1px solid var(--panel-border);
        border-bottom: 1px solid var(--panel-border);
    }

    .app-body .holdings-mobile-card-order > small {
        grid-column: 1 / -1;
        margin: 0;
    }

    .app-body .holdings-mobile-order-levels {
        display: flex;
        flex-wrap: wrap;
        gap: 5px;
        min-width: 0;
    }

    .app-body .holdings-mobile-order-levels span {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        padding: 4px 6px;
        border: 1px solid rgba(37, 99, 235, 0.14);
        border-radius: 999px;
        color: var(--accent);
        background: rgba(37, 99, 235, 0.06);
        font-size: 0.68rem;
        font-weight: 850;
        line-height: 1.15;
        white-space: nowrap;
    }

    .app-body .holdings-mobile-order-levels b {
        font-size: inherit;
    }

    .app-body .holdings-mobile-order-levels small {
        color: #475569;
        font-size: 0.66rem;
        font-weight: 800;
    }

    .app-body .holdings-mobile-card-actions {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 4px;
        align-items: start;
    }

    .app-body .holdings-mobile-card-actions > .table-button,
    .app-body .mobile-holding-order-actions .table-button {
        width: 100%;
        min-width: 0;
        min-height: 34px;
        padding: 0 3px;
        justify-content: center;
        border-radius: 8px;
        font-size: 0.64rem;
        line-height: 1.15;
        text-align: center;
        white-space: normal;
    }

    .app-body .mobile-holding-order-actions {
        display: contents;
    }

    .app-body .mobile-holding-order-actions .inline-order-details {
        width: auto;
        min-width: 0;
    }

    .app-body .mobile-holding-order-actions .inline-order-details[open] {
        grid-column: 1 / -1;
        order: 10;
    }

    .app-body .mobile-holding-order-actions .inline-order-details[open] .inline-order-summary {
        width: calc((100% - 12px) / 4);
        margin-bottom: 7px;
    }

    .app-body .mobile-holding-order-actions .inline-order-form {
        width: 100%;
        padding: 11px;
        border-radius: 10px;
    }

    .app-body .mobile-holding-order-actions .inline-order-cancel-form {
        min-width: 0;
    }

    .app-body .mobile-order-card {
        padding: 13px;
    }

    .app-body .mobile-order-level-list {
        display: grid;
        gap: 0;
        margin-top: 10px;
        border-top: 1px solid var(--panel-border);
    }

    .app-body .mobile-order-level-list > div {
        display: grid;
        grid-template-columns: 32px minmax(0, 1fr) minmax(0, 1fr);
        gap: 7px;
        align-items: center;
        min-width: 0;
        padding: 8px 0;
        border-bottom: 1px solid var(--panel-border);
    }

    .app-body .mobile-order-level-list > div:last-child {
        border-bottom: 0;
    }

    .app-body .mobile-order-level-list span {
        color: var(--accent);
        font-size: 0.68rem;
        font-weight: 850;
    }

    .app-body .mobile-order-level-list strong,
    .app-body .mobile-order-level-list small {
        overflow: hidden;
        font-size: 0.74rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .app-body .mobile-order-level-list strong b {
        margin-left: 4px;
        color: var(--accent);
        font-size: 0.68rem;
    }

    .app-body .mobile-order-level-list small {
        color: var(--muted);
        text-align: right;
    }

    .app-body.mobile-app-layout #telegram-signal-center .signal-console {
        gap: 8px;
    }

    .app-body.mobile-app-layout #telegram-signal-center .alert-item {
        grid-template-columns: minmax(0, 1fr);
        gap: 7px;
        padding: 12px;
        border-radius: 12px !important;
        background: #ffffff !important;
        box-shadow: 0 5px 14px rgba(15, 23, 42, 0.035);
    }

    .app-body.mobile-app-layout #telegram-signal-center .alert-item-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 5px;
        justify-items: start;
    }

    .app-body.mobile-app-layout #telegram-signal-center .alert-item-meta span {
        padding: 3px 6px;
        border-radius: 999px;
        background: #f1f5f9;
        font-size: 0.66rem;
    }

    .app-body.mobile-app-layout #telegram-signal-center .telegram-alert-card {
        padding: 12px !important;
        border-radius: 12px !important;
        box-shadow: none !important;
    }

    .app-body.mobile-app-layout #recent-activity .activity-feed {
        gap: 7px;
    }

    .app-body.mobile-app-layout #recent-activity .activity-item {
        padding: 10px;
        border-radius: 10px !important;
        background: #ffffff !important;
    }

    .app-body.mobile-app-layout #mobile-activity-center .system-status {
        padding: 10px;
        border-radius: 10px !important;
        background: #ffffff !important;
    }

    .app-body.mobile-app-layout .page-grid > [data-mobile-section].mobile-section-visible:not(#market-command-center):not(#holdings-dashboard):not(#portfolio-status):not(#open-sell-orders):not(#telegram-signal-center):not(#mobile-activity-center) {
        padding: var(--mobile-detail-section-padding, 14px) !important;
        border-radius: var(--mobile-detail-section-radius, 14px) !important;
        background: var(--mobile-detail-section-bg, #ffffff) !important;
        box-shadow: var(--mobile-detail-section-shadow, 0 6px 16px rgba(15, 23, 42, 0.035)) !important;
    }
}

/* Installable web app shell. */
[data-pwa-install][hidden],
[data-pwa-install-hint][hidden],
[data-pwa-ios-install][hidden],
[data-pwa-ios-guide][hidden],
[data-pwa-ios-browser-note][hidden] {
    display: none !important;
}

.pwa-ios-install-fab {
    position: fixed;
    right: calc(14px + var(--safe-right));
    bottom: calc(14px + var(--safe-bottom));
    z-index: 105;
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    gap: 7px;
    padding: 0 13px;
    border: 1px solid rgba(29, 78, 216, 0.22);
    border-radius: 999px;
    color: #ffffff;
    background: #2563eb;
    box-shadow: 0 10px 24px rgba(37, 99, 235, 0.26);
    font-size: 0.76rem;
    font-weight: 850;
}

.pwa-ios-install-fab svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.9;
}

.pwa-ios-guide {
    position: fixed;
    inset: 0;
    z-index: 300;
    display: grid;
    align-items: end;
}

.pwa-ios-guide-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    border-radius: 0;
    background: rgba(15, 23, 42, 0.46);
}

.pwa-ios-guide-card {
    position: relative;
    display: grid;
    gap: 14px;
    max-height: min(84vh, 680px);
    overflow-y: auto;
    padding:
        20px
        calc(18px + var(--safe-right))
        calc(18px + var(--safe-bottom))
        calc(18px + var(--safe-left));
    border-radius: 22px 22px 0 0;
    color: #334155;
    background: #ffffff;
    box-shadow: 0 -16px 36px rgba(15, 23, 42, 0.18);
}

.pwa-ios-guide-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.pwa-ios-guide-head p,
.pwa-ios-guide-head h2,
.pwa-ios-guide-description,
.pwa-ios-browser-note {
    margin: 0;
}

.pwa-ios-guide-head p {
    color: #2563eb;
    font-size: 0.72rem;
    font-weight: 850;
}

.pwa-ios-guide-head h2 {
    margin-top: 4px;
    color: #0f172a;
    font-size: 1.28rem;
}

.pwa-ios-guide-close {
    display: grid;
    width: 34px;
    height: 34px;
    place-items: center;
    flex: 0 0 auto;
    border: 0;
    border-radius: 999px;
    color: #64748b;
    background: #f1f5f9;
    font-size: 1.4rem;
    line-height: 1;
}

.pwa-ios-guide-description,
.pwa-ios-browser-note {
    font-size: 0.8rem;
    line-height: 1.55;
}

.pwa-ios-browser-note {
    padding: 10px;
    border: 1px solid rgba(217, 119, 6, 0.18);
    border-radius: 10px;
    color: #92400e;
    background: #fffbeb;
    font-weight: 750;
}

.pwa-ios-guide-steps {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pwa-ios-guide-steps li {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    padding: 11px;
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 12px;
    background: #f8fafc;
}

.pwa-ios-guide-steps b {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border-radius: 999px;
    color: #ffffff;
    background: #2563eb;
    font-size: 0.74rem;
}

.pwa-ios-guide-steps span {
    color: #475569;
    font-size: 0.78rem;
    line-height: 1.55;
}

.pwa-ios-guide-confirm {
    min-height: 44px;
    border: 1px solid #2563eb;
    border-radius: 10px;
    color: #ffffff;
    background: #2563eb;
    font-size: 0.84rem;
    font-weight: 850;
}

body.pwa-ios-guide-open {
    overflow: hidden;
}

.app-body .mobile-pwa-install {
    display: none;
}

.auth-body .auth-pwa-install {
    display: grid;
    gap: 8px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--panel-border);
}

.auth-body .auth-pwa-install:not(:has([data-pwa-install]:not([hidden]))) {
    display: none;
}

.auth-body .auth-pwa-install p {
    margin: 0;
    font-size: 0.76rem;
    line-height: 1.45;
}

.auth-body .stack-form .auth-remember-row {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 2px 0;
    cursor: pointer;
}

.auth-body .auth-remember-row input {
    width: 18px;
    height: 18px;
    min-height: 18px;
    margin: 1px 0 0;
    padding: 0;
    accent-color: var(--accent);
}

.auth-body .auth-remember-row span {
    display: grid;
    gap: 3px;
}

.auth-body .auth-remember-row strong {
    color: var(--text-strong);
    font-size: 0.82rem;
}

.auth-body .auth-remember-row small {
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 700;
    line-height: 1.45;
}

@media (max-width: 900px) {
    body.app-body {
        padding-bottom: calc(76px + var(--safe-bottom)) !important;
    }

    .app-body .mobile-bottom-nav {
        right: 0;
        bottom: 0;
        left: 0;
        gap: 0;
        padding:
            6px
            calc(6px + var(--safe-right))
            calc(6px + var(--safe-bottom))
            calc(6px + var(--safe-left));
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
        border-radius: 18px 18px 0 0;
        box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.1);
    }

    .app-body .mobile-bottom-nav-item {
        min-height: 52px;
        border-radius: 10px;
    }

    .app-body .pwa-ios-install-fab {
        bottom: calc(76px + var(--safe-bottom));
    }

    .app-body .mobile-app-brand-mark,
    .app-body .mobile-more-profile-mark {
        object-fit: cover;
    }

    .app-body .mobile-more-profile {
        margin-bottom: 10px;
    }

    .app-body .mobile-more-profile > div {
        min-width: 0;
    }

    .app-body .mobile-more-profile small {
        overflow-wrap: anywhere;
        line-height: 1.4;
    }

    .app-body .mobile-more-actions {
        margin: 10px 0 14px;
        padding: 0 0 14px;
        border-top: 0;
        border-bottom: 1px solid var(--panel-border);
    }

    .app-body .mobile-more-actions .mobile-more-logout-button {
        border-color: rgba(217, 45, 32, 0.24) !important;
        color: var(--danger) !important;
        background: rgba(217, 45, 32, 0.06) !important;
    }

    .app-body.mobile-app-layout .desktop-sidebar-settings-link {
        display: none;
    }

    .app-body.mobile-app-layout .terminal-sidebar {
        bottom: calc(70px + var(--safe-bottom)) !important;
    }

    .settings-page-body > .topbar .topbar-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        width: 100%;
    }

    .settings-page-body > .topbar .pill {
        grid-column: 1 / -1;
    }

    .settings-page-body > .topbar .ghost-link,
    .settings-page-body > .topbar form,
    .settings-page-body > .topbar button {
        width: 100%;
    }

    body.pwa-standalone {
        min-height: 100vh;
        min-height: 100dvh;
        overscroll-behavior-y: none;
        -webkit-tap-highlight-color: transparent;
    }

    body.pwa-standalone .pwa-ios-install-fab {
        display: none;
    }

    .app-body .mobile-pwa-install {
        display: grid;
        gap: 7px;
        margin-top: 12px;
        padding-top: 12px;
        border-top: 1px solid var(--panel-border);
    }

    .app-body .mobile-pwa-install:not(:has([data-pwa-install]:not([hidden])),
    .app-body.pwa-standalone .mobile-pwa-install {
        display: none;
    }

    .app-body .mobile-pwa-install button {
        width: 100%;
        min-height: 40px;
        color: #ffffff !important;
        background: var(--accent) !important;
        border-color: var(--accent) !important;
    }

    .app-body .mobile-pwa-install p {
        margin: 0;
        color: var(--muted);
        font-size: 0.7rem;
        line-height: 1.45;
    }

    .app-body.pwa-standalone .mobile-app-header {
        padding-top: max(8px, var(--safe-top));
    }

    .app-body.pwa-standalone .mobile-bottom-nav {
        box-shadow: 0 -6px 24px rgba(15, 23, 42, 0.1);
    }

    .app-body.pwa-standalone .mobile-bottom-nav-item {
        touch-action: manipulation;
    }

    .app-body.pwa-standalone .mobile-bottom-nav-item:active,
    .app-body.pwa-standalone .holdings-mobile-card-actions .table-button:active {
        transform: scale(0.97);
    }
}

/* Keep the mobile More sheet usable on short screens and iPhone safe areas. */
.app-body .terminal-sidebar-scroll {
    display: contents;
}

@media (max-width: 900px) {
    .app-body.mobile-app-layout .terminal-sidebar {
        display: grid !important;
        grid-template-rows: auto minmax(0, 1fr) !important;
        align-content: stretch !important;
        min-height: 0 !important;
        height: auto !important;
        max-height: none !important;
        overflow: hidden !important;
        overscroll-behavior: none;
    }

    .app-body.mobile-app-layout .terminal-sidebar-head {
        position: relative;
        z-index: 1;
        padding: 4px 2px 10px;
        background: #ffffff;
    }

    .app-body.mobile-app-layout .terminal-sidebar-scroll {
        display: block;
        min-height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior-y: contain;
        padding-bottom: calc(18px + var(--safe-bottom));
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
    }
}

.app-body .market-mode-layout,
.app-body .market-mode-copy {
    display: grid;
    min-width: 0;
}

.app-body .market-mode-layout {
    gap: 10px;
}

.app-body .market-mode-copy {
    gap: 8px;
    justify-items: start;
}

@media (max-width: 900px) {
    .app-body.mobile-app-layout .terminal-sidebar {
        height: calc(100vh - var(--safe-top) - var(--safe-bottom) - 70px) !important;
        height: calc(100svh - var(--safe-top) - var(--safe-bottom) - 70px) !important;
        height: calc(100dvh - var(--safe-top) - var(--safe-bottom) - 70px) !important;
        max-height: calc(100vh - var(--safe-top) - var(--safe-bottom) - 70px) !important;
        max-height: calc(100svh - var(--safe-top) - var(--safe-bottom) - 70px) !important;
        max-height: calc(100dvh - var(--safe-top) - var(--safe-bottom) - 70px) !important;
    }

    .app-body.mobile-app-layout #market-command-center .market-mode-layout {
        grid-template-columns: minmax(0, 1fr) max-content;
        align-items: center;
        gap: 10px;
    }

    .app-body.mobile-app-layout #market-command-center .market-mode-copy {
        gap: 4px;
    }

    .app-body.mobile-app-layout #market-command-center .market-mode-hero h2 {
        overflow-wrap: anywhere;
        font-size: 1.82rem !important;
        line-height: 1.06 !important;
    }

    .app-body.mobile-app-layout #market-command-center .hero-action-row {
        grid-template-columns: minmax(0, 1fr) !important;
        align-content: center;
        gap: 6px !important;
        margin-top: 0 !important;
    }

    .app-body.mobile-app-layout #market-command-center .hero-action-row .status-badge {
        min-height: 28px;
        padding: 0 8px;
        color: var(--mobile-muted, #475569) !important;
        background: #f1f5f9 !important;
        border-color: #dbe4ef !important;
        font-size: 0.64rem;
    }

    .app-body.mobile-app-layout #market-command-center .hero-metric-stack .terminal-mini-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }

    .app-body.mobile-app-layout #market-command-center .hero-metric-stack .terminal-metric.compact {
        padding: 8px 6px !important;
    }

    .app-body.mobile-app-layout #market-command-center .hero-metric-stack .terminal-metric.compact .metric-label {
        margin-bottom: 4px;
        font-size: 0.58rem;
        white-space: nowrap;
    }

    .app-body.mobile-app-layout #market-command-center .hero-metric-stack .terminal-metric.compact strong {
        font-size: 0.82rem !important;
        line-height: 1.15;
    }

    .app-body .mobile-asset-overview-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
    }

    .app-body .mobile-asset-overview-head p {
        margin: 0;
        color: var(--muted);
        font-size: 0.76rem;
        font-weight: 800;
    }

    .app-body .mobile-asset-overview-head span {
        display: inline-flex;
        min-width: 0;
        align-items: center;
        gap: 5px;
        color: var(--muted);
        font-size: 0.68rem;
        font-weight: 800;
        white-space: nowrap;
    }

    .app-body .mobile-asset-overview-head strong {
        overflow: hidden;
        max-width: 150px;
        color: var(--text-strong);
        text-overflow: ellipsis;
    }
}

/* Compact mobile calculator sheet and shared long-running task indicator. */
.average-down-section-title {
    margin: 0;
    color: var(--text-strong);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.02em;
}

.average-down-field-primary {
    border-color: rgba(37, 99, 235, 0.28);
    background: rgba(37, 99, 235, 0.06) !important;
}

.average-down-field-primary strong {
    color: var(--accent) !important;
}

.mobile-work-indicator[hidden] {
    display: none !important;
}

.mobile-work-indicator {
    position: fixed;
    right: calc(14px + var(--safe-right));
    bottom: calc(14px + var(--safe-bottom));
    left: calc(14px + var(--safe-left));
    z-index: 220;
    display: none;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 10px 14px;
    border: 1px solid rgba(37, 99, 235, 0.22);
    border-radius: 14px;
    color: #1d4ed8;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.18);
    backdrop-filter: blur(14px);
    font-size: 0.82rem;
    font-weight: 850;
    line-height: 1.35;
    text-align: center;
}

.mobile-work-spinner {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    border: 2px solid rgba(37, 99, 235, 0.2);
    border-top-color: #2563eb;
    border-radius: 50%;
    animation: mobile-work-spin 760ms linear infinite;
}

@keyframes mobile-work-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 900px) {
    .mobile-work-indicator:not([hidden]) {
        display: flex;
    }

    .app-body .mobile-work-indicator {
        bottom: calc(72px + var(--safe-bottom));
    }

    .average-down-modal {
        place-items: end center;
        padding: calc(10px + var(--safe-top)) 0 0;
    }

    .average-down-dialog {
        gap: 10px;
        width: 100%;
        max-height: calc(100dvh - 10px - var(--safe-top));
        padding:
            14px
            calc(14px + var(--safe-right))
            calc(14px + var(--safe-bottom))
            calc(14px + var(--safe-left));
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
        border-radius: 18px 18px 0 0;
    }

    .average-down-header {
        position: sticky;
        top: -14px;
        z-index: 2;
        display: flex;
        align-items: center;
        margin:
            -14px
            calc(-14px - var(--safe-right))
            0
            calc(-14px - var(--safe-left));
        padding:
            12px
            calc(14px + var(--safe-right))
            10px
            calc(14px + var(--safe-left));
        background: rgba(255, 255, 255, 0.98);
    }

    .average-down-header .eyebrow {
        display: none;
    }

    .average-down-header h2 {
        font-size: 1.08rem;
    }

    .average-down-header .muted {
        display: block;
        margin-top: 2px;
        font-size: 0.72rem;
    }

    .average-down-body {
        gap: 9px;
    }

    .average-down-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
    }

    .average-down-field {
        gap: 3px;
        min-height: 52px;
        padding: 8px;
        border-radius: 8px;
    }

    .average-down-field-wide,
    .average-down-field-primary {
        grid-column: 1 / -1;
    }

    .average-down-field span,
    .average-down-input-field span {
        font-size: 0.68rem;
    }

    .average-down-field strong {
        font-size: 0.9rem;
        line-height: 1.18;
    }

    .average-down-field-primary {
        min-height: 58px;
    }

    .average-down-field-primary strong {
        font-size: 1.08rem;
    }

    .average-down-input-field {
        gap: 5px;
        padding: 10px;
        border: 1px solid rgba(37, 99, 235, 0.22);
        border-radius: 9px;
        background: rgba(37, 99, 235, 0.04);
    }

    .average-down-input-field input {
        min-height: 40px;
        padding: 8px 10px;
        font-size: 0.92rem;
    }

    .average-down-korean-amount {
        min-height: 1.2em;
        font-size: 0.72rem;
    }

    .average-down-body > .muted {
        margin: 0;
        font-size: 0.72rem;
        line-height: 1.4;
    }
}

@media (max-width: 900px) {
    .app-body #market-command-center .market-mode-layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) max-content !important;
        align-items: center !important;
        gap: 10px !important;
    }

    .app-body #market-command-center .market-mode-copy {
        min-width: 0 !important;
        gap: 4px !important;
    }

    .app-body #market-command-center .hero-action-row {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        align-content: center !important;
        gap: 6px !important;
        margin-top: 0 !important;
    }

    .app-body #market-command-center .hero-action-row .status-badge {
        justify-content: center !important;
        min-height: 28px !important;
        padding: 0 8px !important;
        color: #475569 !important;
        background: #f1f5f9 !important;
        border-color: #dbe4ef !important;
        font-size: 0.64rem !important;
    }

    .app-body #market-command-center .hero-metric-stack .terminal-mini-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }

    .app-body #market-command-center .hero-metric-stack .terminal-metric.compact {
        min-width: 0 !important;
        padding: 8px 6px !important;
    }

    .app-body #market-command-center .hero-metric-stack .terminal-metric.compact .metric-label {
        margin-bottom: 4px !important;
        font-size: 0.58rem !important;
        white-space: nowrap !important;
    }

    .app-body #market-command-center .hero-metric-stack .terminal-metric.compact strong {
        display: block !important;
        overflow: hidden !important;
        font-size: 0.82rem !important;
        line-height: 1.15 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .app-body .terminal-sidebar-scroll {
        height: 100% !important;
        max-height: 100% !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }
}

.app-body .asset-breadth-section {
    display: grid;
    gap: 12px;
    margin-top: 4px;
    padding-top: 14px;
    border-top: 1px solid var(--panel-border);
}

@media (max-width: 900px) {
    .app-body.mobile-app-layout #market-command-center .terminal-dashboard-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        margin-top: 10px !important;
        overflow: visible !important;
        border: 0 !important;
        background: transparent !important;
    }

    .app-body.mobile-app-layout #market-command-center .terminal-dashboard-grid > .data-panel {
        grid-column: 1 / -1 !important;
        padding: 16px !important;
        border: 1px solid var(--panel-border) !important;
        border-radius: 16px !important;
        background: #ffffff !important;
        box-shadow: 0 8px 20px rgba(15, 23, 42, 0.04);
    }

    .app-body.mobile-app-layout #market-command-center #portfolio-operations {
        display: none !important;
    }

    .app-body.mobile-app-layout #market-command-center .ratio-row {
        grid-template-columns: 42px minmax(0, 1fr) minmax(92px, auto);
        gap: 8px;
        font-size: 0.74rem;
    }

    .app-body.mobile-app-layout #market-command-center .market-health-panel .terminal-mini-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }
}

/* Desktop holdings workspace: keep navigation and order actions available while scanning dense tables. */
.app-body .holdings-heading-description {
    max-width: 620px;
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 0.78rem;
    line-height: 1.45;
}

.app-body .holdings-action-buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
}

.app-body .holdings-danger-button {
    color: #b91c1c !important;
    border-color: rgba(185, 28, 28, 0.26) !important;
    background: rgba(254, 242, 242, 0.9) !important;
}

.app-body .holdings-danger-button:hover {
    border-color: rgba(185, 28, 28, 0.46) !important;
    background: #fee2e2 !important;
}

@media (min-width: 901px) {
    .app-body .page-grid:not(.single-column) {
        grid-template-columns: 190px minmax(0, 1fr) !important;
    }

    .app-body .terminal-sidebar {
        max-height: calc(100vh - 32px - var(--safe-top));
        overflow: hidden;
    }

    .app-body .terminal-sidebar-scroll {
        display: block;
        max-height: calc(100vh - 50px - var(--safe-top));
        overflow-x: hidden;
        overflow-y: auto;
        padding-right: 3px;
        scrollbar-gutter: stable;
        scrollbar-width: thin;
    }

    .app-body .terminal-nav-label {
        margin-top: 10px;
        padding: 0 4px;
        color: #94a3b8;
    }

    .app-body .terminal-nav-label:first-of-type {
        margin-top: 3px;
    }

    .app-body .terminal-nav-item {
        padding: 8px 9px;
    }

    .app-body #holdings-dashboard .holdings-heading-top {
        width: 100%;
        gap: 20px;
    }

    .app-body #holdings-dashboard .holdings-primary-actions {
        display: grid;
        justify-items: end;
        gap: 7px;
        min-width: min(100%, 430px);
    }

    .app-body #holdings-dashboard .filter-toolbar {
        display: grid;
        grid-template-columns: repeat(3, minmax(126px, 0.58fr)) minmax(250px, 1.35fr) auto;
        align-items: end;
        gap: 9px;
        margin-bottom: 12px;
        padding: 11px;
        border: 1px solid var(--panel-border);
        border-radius: 8px;
        background: var(--panel-subtle);
    }

    .app-body #holdings-dashboard .filter-field {
        min-width: 0;
        gap: 5px;
    }

    .app-body #holdings-dashboard .filter-field span {
        color: var(--muted);
        font-size: 0.7rem;
        font-weight: 850;
    }

    .app-body #holdings-dashboard .filter-field select,
    .app-body #holdings-dashboard .filter-field input {
        min-height: 34px;
        padding: 6px 9px;
        border-radius: 7px;
        font-size: 0.78rem;
    }

    .app-body #holdings-filter-summary {
        grid-column: 1 / -1;
        width: fit-content;
        padding: 3px 8px;
        border-radius: 999px;
        background: rgba(100, 116, 139, 0.1);
        font-size: 0.7rem;
        font-weight: 800;
    }

    .app-body .holdings-table-wrap {
        border-radius: 8px;
    }

    .app-body .holdings-table {
        min-width: 1900px !important;
    }

    .app-body .holdings-table col.holdings-col-order {
        width: 244px !important;
    }

    .app-body .holdings-table th:last-child,
    .app-body .holdings-table td:last-child {
        position: sticky;
        right: 0;
        background: #ffffff;
        box-shadow: -1px 0 0 rgba(226, 232, 240, 0.94);
    }

    .app-body .holdings-table th:last-child {
        z-index: 5;
        background: #f8fafc;
        box-shadow:
            -1px 0 0 rgba(226, 232, 240, 0.94),
            inset 0 -1px 0 rgba(226, 232, 240, 0.9);
    }

    .app-body .holdings-table td:last-child {
        z-index: 2;
    }

    .app-body .holdings-table tbody tr:hover td:last-child {
        background: #f8fbff;
    }

    .app-body .holdings-table .inline-order-form {
        width: 100%;
        border-radius: 8px;
    }

    .app-body .dashboard-floating-nav-desktop {
        gap: 6px;
        padding: 6px;
        border-radius: 8px;
        background: rgba(255, 255, 255, 0.98);
        box-shadow: 0 8px 22px rgba(15, 23, 42, 0.16);
    }
}

@media (min-width: 901px) and (max-width: 1280px) {
    .app-body #holdings-dashboard .filter-toolbar {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .app-body #holdings-dashboard .filter-field-wide {
        grid-column: span 2;
    }
}

@media (max-width: 900px) {
    .app-body .desktop-holdings-filter {
        display: none;
    }

    .app-body .holdings-action-buttons {
        justify-content: flex-start;
    }
}

/* Upbit-inspired exchange skin. Kept last to override legacy terminal themes. */
.app-body {
    --upbit-blue: #064aa8;
    --upbit-blue-dark: #003f92;
    --upbit-rise: #e23b3b;
    --upbit-fall: #1261d1;
    --upbit-bg: #edf1f6;
    --upbit-line: #d8e0ea;
    --upbit-line-soft: #edf1f5;
    --upbit-text: #1f2937;
    --upbit-muted: #6b7280;
    --upbit-panel: #ffffff;
    --bg: var(--upbit-bg);
    --panel: var(--upbit-panel);
    --panel-subtle: #f7f9fc;
    --panel-border: var(--upbit-line);
    --text: var(--upbit-text);
    --text-strong: #111827;
    --muted: var(--upbit-muted);
    --accent: var(--upbit-blue);
    --success: var(--upbit-rise);
    --danger: var(--upbit-fall);
    min-height: 100vh;
    padding: 0 !important;
    color: var(--upbit-text) !important;
    background: var(--upbit-bg) !important;
}

.app-body,
.app-body button,
.app-body input,
.app-body select,
.app-body textarea {
    font-family: "Noto Sans KR", "Apple SD Gothic Neo", "Segoe UI", Arial, sans-serif !important;
    letter-spacing: 0 !important;
}

.app-body .terminal-topbar,
.settings-page-body > .topbar {
    position: sticky;
    top: 0;
    z-index: 90;
    width: 100%;
    min-height: 46px;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #ffffff !important;
    background: var(--upbit-blue) !important;
    box-shadow: none !important;
}

.app-body .terminal-topbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px;
}

.settings-page-body > .topbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px;
}

.app-body .topbar-brand h1,
.settings-page-body > .topbar h1 {
    margin: 0 !important;
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 850 !important;
    line-height: 1.2;
}

.app-body .topbar-status-row,
.app-body .topbar-actions,
.settings-page-body > .topbar .topbar-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 6px;
}

.app-body .terminal-topbar .status-badge,
.app-body .terminal-topbar .live-badge,
.app-body .terminal-topbar .info-chip,
.app-body .terminal-topbar .topbar-session-remaining,
.settings-page-body > .topbar .pill {
    min-height: 24px;
    padding: 0 8px;
    border: 1px solid rgba(255, 255, 255, 0.24) !important;
    border-radius: 2px !important;
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.12) !important;
    font-size: 0.72rem;
    font-weight: 750;
    line-height: 22px;
}

.app-body .terminal-topbar .secondary-button,
.app-body .terminal-topbar .session-toggle-button,
.settings-page-body > .topbar .ghost-link,
.settings-page-body > .topbar .secondary-button {
    min-height: 28px;
    padding: 0 10px;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    border-radius: 2px !important;
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.12) !important;
    font-size: 0.74rem;
    font-weight: 750;
}

.app-body .session-toggle-button span {
    color: inherit !important;
}

.app-body .session-toggle-button strong {
    color: inherit !important;
    font-size: inherit;
}

.app-body .page-grid:not(.single-column) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100%;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 12px 72px !important;
}

.settings-page-body .page-grid.single-column,
.settings-page-body .single-column {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto !important;
    padding: 12px 12px 72px !important;
}

.app-body .page-grid:not(.single-column) > *,
.settings-page-body .single-column > * {
    grid-column: 1 / -1 !important;
    min-width: 0;
}

.app-body .terminal-sidebar {
    order: 0;
    position: sticky !important;
    top: 46px !important;
    z-index: 80;
    display: block !important;
    width: calc(100% + 24px);
    margin: 0 -12px !important;
    padding: 0 12px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--upbit-line) !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

.app-body .terminal-sidebar-head,
.app-body .mobile-more-profile,
.app-body .mobile-more-settings-link,
.app-body .mobile-more-actions,
.app-body .mobile-pwa-install,
.app-body .terminal-nav-label {
    display: none !important;
}

.app-body .terminal-sidebar-scroll {
    display: flex !important;
    align-items: center;
    gap: 0;
    height: 38px;
    max-height: 38px;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    scrollbar-width: none;
}

.app-body .terminal-sidebar-scroll::-webkit-scrollbar {
    display: none;
}

.app-body .terminal-nav-item {
    display: inline-flex !important;
    height: 38px;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 0 13px !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    color: #4b5563 !important;
    background: transparent !important;
    font-size: 0.82rem !important;
    font-weight: 800 !important;
    text-decoration: none;
}

.app-body .terminal-nav-item:hover,
.app-body .terminal-nav-item.active {
    color: var(--upbit-blue) !important;
    border-bottom-color: var(--upbit-blue) !important;
}

.app-body #market-command-center {
    order: 1;
}

.app-body #holdings-dashboard {
    order: 2;
}

.app-body #open-sell-orders {
    order: 3;
}

.app-body #sell-target-recommendation {
    order: 4;
}

.app-body #recommended-coins {
    order: 5;
}

.app-body #market-search {
    order: 6;
}

.app-body #capital-trend {
    order: 7;
}

.app-body #memo-board {
    order: 8;
}

.app-body #telegram-signal-center {
    order: 9;
}

.app-body #mobile-activity-center {
    order: 10;
}

.app-body #sell-intelligence {
    order: 11;
}

.app-body #profit-analytics {
    order: 12;
}

.app-body .panel,
.app-body .data-panel,
.app-body .info-panel,
.app-body .metric,
.app-body .metric-card,
.app-body .timestamp-card,
.app-body .form-panel,
.app-body .settings-section,
.app-body .runtime-preview,
.app-body .table-wrap,
.app-body .market-search-form,
.app-body .memo-editor-card,
.app-body .memo-board-card,
.app-body .memo-board-empty,
.app-body .coin-item,
.app-body .sell-intel-card,
.app-body .analytics-card,
.app-body .sell-target-card,
.app-body .mobile-order-card,
.app-body .holdings-mobile-card {
    color: var(--upbit-text) !important;
    border: 1px solid var(--upbit-line) !important;
    border-radius: 3px !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

.app-body .panel,
.app-body .form-panel {
    padding: 10px !important;
}

.app-body .panel-heading,
.app-body .panel-header {
    align-items: center !important;
    gap: 10px !important;
    min-height: 34px;
    margin: 0 0 8px !important;
    padding: 0 0 8px;
    border-bottom: 1px solid var(--upbit-line-soft);
}

.app-body .panel-heading h2,
.app-body .panel-header h3,
.app-body .settings-section h3 {
    color: #111827 !important;
    font-size: 0.94rem !important;
    font-weight: 850 !important;
    line-height: 1.25;
}

.app-body .muted,
.app-body .field-hint,
.app-body .cell-meta,
.app-body .metric-label,
.app-body small,
.app-body .panel-header-actions {
    color: var(--upbit-muted) !important;
}

.app-body .terminal-command-center {
    display: grid !important;
    gap: 8px !important;
    padding: 10px !important;
    border: 1px solid var(--upbit-line) !important;
    border-radius: 3px !important;
    background: #ffffff !important;
}

.app-body .terminal-hero-grid,
.app-body .terminal-dashboard-grid {
    gap: 1px !important;
    overflow: hidden;
    border: 1px solid var(--upbit-line) !important;
    border-radius: 2px !important;
    background: var(--upbit-line) !important;
}

.app-body .terminal-hero-grid {
    grid-template-columns: minmax(280px, 1.15fr) minmax(220px, 0.78fr) minmax(240px, 0.88fr) !important;
}

.app-body .terminal-dashboard-grid {
    grid-template-columns: minmax(360px, 0.95fr) minmax(300px, 0.78fr) minmax(420px, 1.25fr) !important;
}

.app-body .market-mode-hero,
.app-body .hero-metric-stack,
.app-body .data-panel,
.app-body .info-panel {
    min-width: 0;
    border: 0 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
}

.app-body .market-mode-hero,
.app-body .hero-metric-stack {
    min-height: 128px !important;
    padding: 14px !important;
}

.app-body .market-mode-hero h2 {
    color: var(--upbit-blue) !important;
    font-size: clamp(2rem, 3.2vw, 3.45rem) !important;
    font-weight: 900 !important;
    line-height: 0.98 !important;
}

.app-body .market-mode-hero p {
    color: var(--upbit-muted) !important;
    font-size: 0.78rem !important;
}

.app-body .hero-action-row {
    display: flex !important;
    flex-wrap: wrap;
    gap: 5px !important;
}

.app-body .terminal-mini-grid,
.app-body .engine-score-grid,
.app-body .portfolio-summary-cards,
.app-body .system-status-grid {
    gap: 1px !important;
    background: var(--upbit-line-soft);
}

.app-body .metric,
.app-body .terminal-metric,
.app-body .portfolio-summary-card,
.app-body .engine-score-grid > div,
.app-body .system-status {
    padding: 10px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #ffffff !important;
}

.app-body .metric-label {
    margin-bottom: 4px;
    font-size: 0.68rem !important;
    font-weight: 800;
    text-transform: none !important;
}

.app-body .metric-value,
.app-body .metric strong,
.app-body .terminal-metric strong,
.app-body .portfolio-summary-card strong {
    color: #111827 !important;
    font-weight: 850 !important;
}

.app-body .status-badge,
.app-body .pill,
.app-body .live-badge {
    min-height: 23px;
    padding: 0 7px;
    border-radius: 2px !important;
    font-size: 0.7rem;
    font-weight: 800;
}

.app-body .status-badge.status-neutral,
.app-body .pill {
    color: #4b5563 !important;
    border: 1px solid #dce3ed !important;
    background: #f7f9fc !important;
}

.app-body .status-badge.status-positive,
.app-body .live-badge {
    color: var(--upbit-rise) !important;
    border: 1px solid rgba(226, 59, 59, 0.18) !important;
    background: #fff4f4 !important;
}

.app-body .status-badge.status-warning,
.app-body .warning-pill {
    color: #b45309 !important;
    border-color: #fde3a8 !important;
    background: #fff8e8 !important;
}

.app-body .trend-positive,
.app-body .positive-text,
.app-body .positive,
.app-body .status-positive,
.app-body .signal-positive {
    color: var(--upbit-rise) !important;
}

.app-body .trend-negative,
.app-body .negative-text,
.app-body .negative,
.app-body .status-negative,
.app-body .signal-negative {
    color: var(--upbit-fall) !important;
}

.app-body .trend-neutral,
.app-body .muted-text,
.app-body .signal-muted,
.app-body .status-neutral {
    color: #64748b !important;
}

.app-body button,
.app-body .compact-button,
.app-body .secondary-button,
.app-body .ghost-link,
.app-body .table-button {
    min-height: 30px;
    border: 1px solid #cfd8e3 !important;
    border-radius: 2px !important;
    color: #1f2937 !important;
    background: #ffffff !important;
    font-size: 0.76rem;
    font-weight: 800;
    box-shadow: none !important;
}

.app-body button[type="submit"]:not(.secondary-button):not(.ghost-link),
.app-body .compact-button:not(.secondary-button):not(.ghost-link) {
    color: #ffffff !important;
    border-color: var(--upbit-blue) !important;
    background: var(--upbit-blue) !important;
}

.app-body .holdings-danger-button,
.app-body .mobile-more-logout-button {
    color: #ffffff !important;
    border-color: var(--upbit-fall) !important;
    background: var(--upbit-fall) !important;
}

.app-body input,
.app-body select,
.app-body textarea {
    min-height: 32px;
    border: 1px solid #cfd8e3 !important;
    border-radius: 2px !important;
    color: #111827 !important;
    background: #ffffff !important;
    font-size: 0.8rem;
}

.app-body input::placeholder,
.app-body textarea::placeholder {
    color: #9ca3af !important;
}

.app-body .filter-toolbar,
.settings-page-body .settings-grid,
.settings-page-body .settings-layout {
    gap: 8px !important;
}

.app-body #holdings-dashboard .filter-toolbar {
    margin-bottom: 8px !important;
    padding: 8px !important;
    border: 1px solid var(--upbit-line) !important;
    border-radius: 2px !important;
    background: #f7f9fc !important;
}

.app-body .table-wrap {
    overflow: auto;
    border: 1px solid var(--upbit-line) !important;
    border-radius: 2px !important;
    background: #ffffff !important;
}

.app-body .asset-table {
    color: #1f2937 !important;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.78rem;
}

.app-body .asset-table th {
    height: 32px;
    padding: 6px 8px !important;
    border-bottom: 1px solid var(--upbit-line) !important;
    color: #4b5563 !important;
    background: #f4f7fb !important;
    font-size: 0.72rem;
    font-weight: 850;
}

.app-body .asset-table td {
    padding: 7px 8px !important;
    border-bottom: 1px solid var(--upbit-line-soft) !important;
    color: #1f2937 !important;
    background: #ffffff !important;
}

.app-body .asset-table tbody tr:hover td,
.app-body .asset-table tbody tr:hover td:last-child {
    background: #f8fbff !important;
}

.app-body .asset-table th:last-child,
.app-body .asset-table td:last-child {
    background: #ffffff !important;
}

.app-body .rank-badge,
.app-body .coin-item-rank {
    color: var(--upbit-blue) !important;
    border: 1px solid rgba(6, 74, 168, 0.18) !important;
    background: #f1f6ff !important;
}

.app-body .coin-logo-wrap {
    border-radius: 999px !important;
    border-color: #dce3ed !important;
    background: #ffffff !important;
}

.app-body .mobile-bottom-nav,
.app-body .mobile-app-header {
    display: none;
}

.settings-page-body .settings-section {
    padding: 10px !important;
    border-color: var(--upbit-line) !important;
    background: #ffffff !important;
}

.settings-page-body .runtime-preview {
    padding: 8px 10px !important;
    border-color: #dce3ed !important;
    background: #f7f9fc !important;
}

.settings-page-body .runtime-preview span {
    color: var(--upbit-blue) !important;
    font-size: 0.68rem;
    font-weight: 850;
}

@media (min-width: 901px) {
    .app-body .dashboard-floating-nav-desktop {
        right: 14px;
        bottom: 14px;
        border: 1px solid var(--upbit-line);
        border-radius: 3px;
        background: #ffffff;
        box-shadow: 0 6px 16px rgba(15, 23, 42, 0.14);
    }

    .app-body #holdings-dashboard .holdings-panel-heading {
        align-items: center !important;
    }

    .app-body #holdings-dashboard .holdings-heading-top {
        align-items: center;
    }

    .app-body #holdings-dashboard .holdings-primary-actions {
        display: flex !important;
        min-width: 0 !important;
        flex: 1 1 auto !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 12px !important;
    }

    .app-body #holdings-dashboard .holdings-action-buttons {
        display: flex !important;
        flex: 0 0 auto !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 7px !important;
    }

    .app-body #holdings-dashboard .holdings-action-buttons form {
        flex: 0 0 auto !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    .app-body #holdings-dashboard .holdings-action-buttons button {
        width: auto !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 1180px) and (min-width: 901px) {
    .app-body .terminal-hero-grid,
    .app-body .terminal-dashboard-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

@media (max-width: 900px) {
    body.app-body.mobile-app-layout {
        --upbit-bg: #f2f4f8;
        padding:
            calc(48px + var(--safe-top))
            calc(0px + var(--safe-right))
            calc(66px + var(--safe-bottom))
            calc(0px + var(--safe-left)) !important;
        background: var(--upbit-bg) !important;
    }

    .app-body.mobile-app-layout > .terminal-topbar {
        display: none !important;
    }

    .app-body .mobile-app-header {
        position: fixed;
        top: 0;
        right: 0;
        left: 0;
        z-index: 120;
        display: flex !important;
        height: calc(48px + var(--safe-top));
        align-items: center;
        justify-content: space-between;
        padding:
            var(--safe-top)
            calc(12px + var(--safe-right))
            0
            calc(12px + var(--safe-left));
        color: #ffffff !important;
        background: var(--upbit-blue) !important;
        box-shadow: none !important;
    }

    .app-body .mobile-app-brand,
    .app-body .mobile-app-header-side {
        color: #ffffff !important;
    }

    .app-body .mobile-app-brand strong,
    .app-body .mobile-app-header-side > strong {
        color: #ffffff !important;
        font-size: 0.9rem !important;
        font-weight: 850;
    }

    .app-body .mobile-app-brand small {
        display: none;
    }

    .app-body .mobile-app-brand-mark {
        width: 26px;
        height: 26px;
        border-radius: 4px;
        background: #ffffff;
    }

    .app-body .mobile-live-pill {
        color: rgba(255, 255, 255, 0.88) !important;
        font-size: 0.66rem;
    }

    .app-body.mobile-app-layout .page-grid:not(.single-column) {
        display: block !important;
        padding: 8px 8px 12px !important;
    }

    .app-body.mobile-app-layout .page-grid > [data-mobile-section].mobile-section-visible {
        display: block !important;
        margin: 0 !important;
    }

    .app-body.mobile-app-layout #market-command-center,
    .app-body.mobile-app-layout #holdings-dashboard,
    .app-body.mobile-app-layout #portfolio-status,
    .app-body.mobile-app-layout #open-sell-orders,
    .app-body.mobile-app-layout #telegram-signal-center,
    .app-body.mobile-app-layout #mobile-activity-center {
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
    }

    .app-body .mobile-home-heading {
        display: none !important;
    }

    .app-body.mobile-app-layout #market-command-center .terminal-hero-grid {
        display: grid !important;
        gap: 8px !important;
        overflow: visible;
        border: 0 !important;
        background: transparent !important;
    }

    .app-body.mobile-app-layout #market-command-center .market-mode-hero,
    .app-body.mobile-app-layout #market-command-center .hero-metric-stack,
    .app-body .mobile-asset-overview,
    .app-body .holdings-mobile-card,
    .app-body .mobile-order-card,
    .app-body.mobile-app-layout #telegram-signal-center .alert-item,
    .app-body.mobile-app-layout #recent-activity .activity-item,
    .app-body.mobile-app-layout #mobile-activity-center .system-status {
        border: 1px solid var(--upbit-line) !important;
        border-radius: 2px !important;
        background: #ffffff !important;
        box-shadow: none !important;
    }

    .app-body.mobile-app-layout #market-command-center .market-mode-hero,
    .app-body.mobile-app-layout #market-command-center .hero-metric-stack {
        min-height: 0 !important;
        padding: 12px !important;
    }

    .app-body.mobile-app-layout #market-command-center .market-mode-layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
    }

    .app-body.mobile-app-layout #market-command-center .market-mode-hero h2 {
        color: var(--upbit-blue) !important;
        font-size: 2.05rem !important;
    }

    .app-body.mobile-app-layout #market-command-center .hero-action-row {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 4px !important;
    }

    .app-body.mobile-app-layout #market-command-center .hero-action-row .status-badge {
        width: 100% !important;
        justify-content: center;
        padding: 0 3px !important;
        font-size: 0.62rem !important;
    }

    .app-body .mobile-asset-overview {
        margin-bottom: 8px;
        padding: 12px !important;
    }

    .app-body .mobile-asset-overview > strong {
        color: #111827 !important;
        font-size: 1.45rem !important;
        letter-spacing: 0 !important;
    }

    .app-body .mobile-asset-overview-grid {
        gap: 8px;
        margin-top: 12px;
    }

    .app-body.mobile-app-layout #holdings-dashboard .filter-toolbar {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 6px;
        margin-bottom: 8px !important;
        padding: 7px !important;
        border-radius: 2px !important;
        background: #ffffff !important;
    }

    .app-body.mobile-app-layout #holdings-dashboard .filter-field-wide {
        grid-column: 1;
    }

    .app-body.mobile-app-layout #holdings-dashboard .filter-field-wide span {
        display: none;
    }

    .app-body.mobile-app-layout #holdings-filter-reset {
        grid-column: 2;
    }

    .app-body .holdings-mobile-card-list {
        display: grid;
        gap: 0;
        overflow: hidden;
        border: 1px solid var(--upbit-line);
        border-radius: 2px;
        background: #ffffff;
    }

    .app-body .holdings-mobile-card {
        gap: 8px !important;
        padding: 10px !important;
        border-width: 0 0 1px !important;
        border-radius: 0 !important;
    }

    .app-body .holdings-mobile-card:last-child {
        border-bottom: 0 !important;
    }

    .app-body .holdings-mobile-card-head {
        align-items: flex-start;
    }

    .app-body .holdings-mobile-card-price strong {
        font-size: 1rem;
    }

    .app-body .holdings-mobile-card-metrics {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 1px;
        overflow: hidden;
        border: 1px solid var(--upbit-line-soft);
        background: var(--upbit-line-soft);
    }

    .app-body .holdings-mobile-card-metrics div {
        padding: 7px 5px !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #f9fbfd !important;
    }

    .app-body .holdings-mobile-card-metrics dt {
        font-size: 0.6rem;
    }

    .app-body .holdings-mobile-card-metrics dd {
        font-size: 0.68rem;
    }

    .app-body .holdings-mobile-card-order {
        padding: 7px 0;
        border-top: 1px solid var(--upbit-line-soft);
        border-bottom: 1px solid var(--upbit-line-soft);
    }

    .app-body .holdings-mobile-card-actions {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 4px;
    }

    .app-body .holdings-mobile-card-actions .table-button,
    .app-body .mobile-holding-order-actions .table-button {
        min-height: 30px;
        border-radius: 2px !important;
        font-size: 0.62rem;
    }

    .app-body .mobile-order-card-list {
        gap: 0;
        overflow: hidden;
        border: 1px solid var(--upbit-line);
        border-radius: 2px;
        background: #ffffff;
    }

    .app-body .mobile-order-card {
        padding: 10px !important;
        border-width: 0 0 1px !important;
        border-radius: 0 !important;
    }

    .app-body .mobile-order-card:last-child {
        border-bottom: 0 !important;
    }

    .app-body .mobile-order-level-list > div {
        grid-template-columns: 34px minmax(0, 1fr) minmax(0, 0.82fr);
        padding: 7px 0;
    }

    .app-body .mobile-bottom-nav {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 120;
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        height: calc(56px + var(--safe-bottom));
        padding: 0 0 var(--safe-bottom);
        border-top: 1px solid var(--upbit-line);
        background: #ffffff;
        box-shadow: none;
    }

    .app-body .mobile-bottom-nav-item {
        display: flex;
        min-width: 0;
        min-height: 56px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        border: 0 !important;
        border-radius: 0 !important;
        color: #6b7280 !important;
        background: #ffffff !important;
        font-size: 0.64rem;
        font-weight: 800;
        text-decoration: none;
    }

    .app-body .mobile-bottom-nav-item svg {
        width: 18px;
        height: 18px;
        stroke: currentColor;
    }

    .app-body .mobile-bottom-nav-item.active {
        color: var(--upbit-blue) !important;
    }

    .app-body.mobile-app-layout .terminal-sidebar {
        top: calc(48px + var(--safe-top)) !important;
        right: 0 !important;
        bottom: calc(56px + var(--safe-bottom)) !important;
        left: 0 !important;
        width: auto !important;
        height: auto !important;
        padding: 12px !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #ffffff !important;
        transform: translateX(calc(100% + 18px));
    }

    .app-body.mobile-app-layout.mobile-sidebar-open .terminal-sidebar {
        transform: translateX(0);
    }

    .app-body.mobile-app-layout .terminal-sidebar-head {
        display: flex !important;
    }

    .app-body.mobile-app-layout .mobile-more-profile,
    .app-body.mobile-app-layout .mobile-more-settings-link,
    .app-body.mobile-app-layout .terminal-nav-label {
        display: flex !important;
    }

    .app-body.mobile-app-layout .mobile-more-actions {
        display: grid !important;
    }

    .app-body.mobile-app-layout .terminal-sidebar-scroll {
        display: block !important;
        height: 100% !important;
        max-height: 100% !important;
        overflow-y: auto;
    }

    .app-body.mobile-app-layout .terminal-nav-item {
        display: flex !important;
        height: 42px;
        justify-content: space-between;
        padding: 0 2px !important;
        border-bottom: 1px solid var(--upbit-line-soft) !important;
        color: #1f2937 !important;
    }

    .settings-page-body > .topbar {
        min-height: calc(46px + var(--safe-top));
        padding:
            var(--safe-top)
            calc(10px + var(--safe-right))
            0
            calc(10px + var(--safe-left)) !important;
    }

    .settings-page-body .page-grid.single-column,
    .settings-page-body .single-column {
        padding: 8px 8px 72px !important;
    }

    .settings-page-body .settings-section,
    .settings-page-body .form-panel {
        border-radius: 2px !important;
    }
}

/* Visible exchange workspace added after the theme pass. */
.app-body .exchange-pc-board {
    display: grid;
    grid-template-columns: minmax(420px, 1.35fr) minmax(220px, 0.65fr) minmax(300px, 0.86fr) minmax(300px, 0.86fr);
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--upbit-line);
    border-radius: 2px;
    background: var(--upbit-line);
}

.app-body .exchange-mobile-home {
    display: none;
}

.app-body .exchange-chart-panel,
.app-body .exchange-orderbook-panel,
.app-body .exchange-order-panel,
.app-body .exchange-market-panel {
    min-width: 0;
    padding: 10px;
    background: #ffffff;
}

.app-body .exchange-chart-panel {
    display: grid;
    min-height: 330px;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    gap: 10px;
}

.app-body .exchange-panel-head,
.app-body .exchange-price-row,
.app-body .exchange-orderbook-row,
.app-body .exchange-orderbook-mid,
.app-body .exchange-market-list > div,
.app-body .exchange-mobile-price,
.app-body .exchange-mobile-assets {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.app-body .exchange-panel-head {
    min-height: 28px;
    padding-bottom: 7px;
    border-bottom: 1px solid var(--upbit-line-soft);
}

.app-body .exchange-panel-head > div {
    display: grid;
    gap: 2px;
}

.app-body .exchange-panel-head strong {
    color: #111827 !important;
    font-size: 0.9rem;
    font-weight: 900;
}

.app-body .exchange-panel-head span,
.app-body .exchange-price-row span,
.app-body .exchange-market-summary span,
.app-body .exchange-market-list span,
.app-body .exchange-order-fields span,
.app-body .exchange-mobile-price span,
.app-body .exchange-mobile-assets span {
    color: var(--upbit-muted) !important;
    font-size: 0.68rem;
    font-weight: 800;
}

.app-body .exchange-panel-head em {
    font-style: normal;
    font-size: 0.78rem;
    font-weight: 900;
}

.app-body .exchange-price-row {
    justify-content: flex-start;
    gap: 6px;
}

.app-body .exchange-price-row strong {
    color: var(--upbit-rise) !important;
    font-size: clamp(1.9rem, 3vw, 2.8rem);
    font-weight: 900;
    line-height: 1;
}

.app-body .exchange-chart-visual {
    position: relative;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    align-items: end;
    gap: 7px;
    min-height: 190px;
    padding: 12px 14px 18px;
    border: 1px solid #edf1f5;
    background:
        linear-gradient(#edf1f5 1px, transparent 1px) 0 0 / 100% 25%,
        linear-gradient(90deg, #f1f4f8 1px, transparent 1px) 0 0 / 8.333% 100%,
        #ffffff;
}

.app-body .exchange-chart-visual::after {
    position: absolute;
    right: 0;
    bottom: 28%;
    left: 0;
    height: 2px;
    content: "";
    background: rgba(6, 74, 168, 0.22);
}

.app-body .exchange-candle {
    position: relative;
    display: block;
    width: 70%;
    height: 48%;
    justify-self: center;
    background: var(--upbit-rise);
}

.app-body .exchange-candle::before {
    position: absolute;
    top: -24px;
    bottom: -18px;
    left: 50%;
    width: 1px;
    content: "";
    background: currentColor;
    transform: translateX(-50%);
}

.app-body .exchange-candle.rise {
    color: var(--upbit-rise);
    background: var(--upbit-rise);
}

.app-body .exchange-candle.fall {
    height: 35%;
    color: var(--upbit-fall);
    background: var(--upbit-fall);
}

.app-body .exchange-candle.tall {
    height: 68%;
}

.app-body .exchange-chart-tabs {
    display: flex;
    gap: 4px;
}

.app-body .exchange-chart-tabs span,
.app-body .exchange-order-tabs span {
    display: inline-flex;
    min-height: 26px;
    align-items: center;
    justify-content: center;
    padding: 0 9px;
    border: 1px solid var(--upbit-line);
    color: #4b5563;
    background: #ffffff;
    font-size: 0.72rem;
    font-weight: 850;
}

.app-body .exchange-chart-tabs .active,
.app-body .exchange-order-tabs .active {
    color: #ffffff;
    border-color: var(--upbit-blue);
    background: var(--upbit-blue);
}

.app-body .exchange-orderbook-panel,
.app-body .exchange-order-panel,
.app-body .exchange-market-panel {
    display: grid;
    align-content: start;
    gap: 9px;
}

.app-body .exchange-orderbook-list {
    display: grid;
    gap: 1px;
    background: var(--upbit-line-soft);
}

.app-body .exchange-orderbook-row,
.app-body .exchange-orderbook-mid {
    min-height: 46px;
    padding: 0 9px;
    background: #ffffff;
}

.app-body .exchange-orderbook-row.ask {
    background: #fff4f4;
}

.app-body .exchange-orderbook-row.bid {
    background: #f2f7ff;
}

.app-body .exchange-orderbook-row span,
.app-body .exchange-orderbook-row em,
.app-body .exchange-orderbook-mid span {
    color: #4b5563;
    font-size: 0.72rem;
    font-style: normal;
    font-weight: 800;
}

.app-body .exchange-orderbook-row.ask strong,
.app-body .exchange-orderbook-row.ask em {
    color: var(--upbit-rise) !important;
}

.app-body .exchange-orderbook-row.bid strong,
.app-body .exchange-orderbook-row.bid em {
    color: var(--upbit-fall) !important;
}

.app-body .exchange-orderbook-mid {
    border-top: 1px solid var(--upbit-line);
    border-bottom: 1px solid var(--upbit-line);
    background: #f8fafc;
}

.app-body .exchange-orderbook-mid strong {
    color: var(--upbit-blue) !important;
    font-size: 0.8rem;
}

.app-body .exchange-order-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
}

.app-body .exchange-order-fields {
    display: grid;
    gap: 1px;
    overflow: hidden;
    border: 1px solid var(--upbit-line-soft);
    background: var(--upbit-line-soft);
}

.app-body .exchange-order-fields > div {
    display: grid;
    grid-template-columns: minmax(0, 0.72fr) minmax(0, 1fr);
    align-items: center;
    min-height: 40px;
    padding: 0 9px;
    background: #ffffff;
}

.app-body .exchange-order-fields strong {
    justify-self: end;
    color: #111827 !important;
    font-size: 0.82rem;
}

.app-body .exchange-order-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
}

.app-body .exchange-order-actions form {
    min-width: 0;
}

.app-body .exchange-order-actions button {
    width: 100%;
    min-height: 38px;
    color: #ffffff !important;
    border-color: var(--upbit-rise) !important;
    background: var(--upbit-rise) !important;
}

.app-body .exchange-order-actions .exchange-cancel-button {
    border-color: var(--upbit-fall) !important;
    background: var(--upbit-fall) !important;
}

.app-body .exchange-market-summary {
    display: grid;
    gap: 4px;
    padding: 10px;
    border: 1px solid var(--upbit-line-soft);
    background: #f8fafc;
}

.app-body .exchange-market-summary strong {
    color: #111827 !important;
    font-size: 1.2rem;
    font-weight: 900;
}

.app-body .exchange-market-summary em {
    font-style: normal;
    font-size: 0.78rem;
    font-weight: 900;
}

.app-body .exchange-market-list {
    display: grid;
    gap: 1px;
    background: var(--upbit-line-soft);
}

.app-body .exchange-market-list > div {
    min-height: 38px;
    padding: 0 9px;
    background: #ffffff;
}

.app-body .exchange-market-list strong {
    overflow: hidden;
    color: #111827 !important;
    font-size: 0.78rem;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (min-width: 901px) {
    .app-body #market-command-center > .terminal-hero-grid {
        display: none !important;
    }
}

@media (max-width: 1180px) and (min-width: 901px) {
    .app-body .exchange-pc-board {
        grid-template-columns: minmax(0, 1fr) minmax(260px, 0.75fr);
    }
}

@media (max-width: 900px) {
    .app-body .exchange-pc-board {
        display: none !important;
    }

    .app-body .exchange-mobile-home {
        display: grid;
        gap: 8px;
    }

    .app-body.mobile-app-layout #market-command-center > .terminal-hero-grid {
        display: none !important;
    }

    .app-body .exchange-mobile-price,
    .app-body .exchange-mobile-assets {
        padding: 12px;
        border: 1px solid var(--upbit-line);
        border-radius: 2px;
        background: #ffffff;
    }

    .app-body .exchange-mobile-price > div,
    .app-body .exchange-mobile-assets {
        display: grid;
        gap: 3px;
    }

    .app-body .exchange-mobile-price strong {
        color: var(--upbit-rise) !important;
        font-size: 1.45rem;
        font-weight: 900;
    }

    .app-body .exchange-mobile-price em,
    .app-body .exchange-mobile-assets em {
        font-style: normal;
        font-size: 0.78rem;
        font-weight: 900;
    }

    .app-body .exchange-mobile-assets strong {
        color: #111827 !important;
        font-size: 1.35rem;
        font-weight: 900;
    }

    .app-body .exchange-mobile-actions {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 1px;
        overflow: hidden;
        border: 1px solid var(--upbit-line);
        border-radius: 2px;
        background: var(--upbit-line);
    }

    .app-body .exchange-mobile-actions a {
        display: grid;
        min-height: 42px;
        place-items: center;
        color: var(--upbit-blue) !important;
        background: #ffffff;
        font-size: 0.72rem;
        font-weight: 900;
        text-decoration: none;
    }
}

/* Last layout guard: match the Upbit-like top menu and workspace widths. */
body.app-body .page-grid:not(.single-column) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 16px 72px !important;
}

body.app-body .page-grid:not(.single-column) > :not(.terminal-sidebar),
body.app-body .page-grid:not(.single-column) > .terminal-sidebar,
body.app-body .page-grid:not(.single-column) > .header-toggle-button,
body.app-body .page-grid:not(.single-column) > .terminal-command-center,
body.app-body .page-grid:not(.single-column) > .terminal-section,
body.app-body .page-grid:not(.single-column) > .terminal-lower-grid,
body.app-body .page-grid:not(.single-column) > .holdings-panel,
body.app-body .page-grid:not(.single-column) > .split-panel,
body.app-body .page-grid:not(.single-column) > .panel {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
}

body.app-body .page-grid:not(.single-column) > .terminal-sidebar {
    position: sticky !important;
    top: 46px !important;
    z-index: 80 !important;
    width: calc(100% + 32px) !important;
    margin: 0 -16px !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--upbit-line, #d8e0ea) !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

body.app-body .exchange-page-nav {
    position: sticky !important;
    top: 46px !important;
    z-index: 80 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--upbit-line, #d8e0ea) !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    box-shadow: none !important;
}

body.app-body .exchange-page-nav .terminal-sidebar-scroll,
body.app-body .page-grid:not(.single-column) > .terminal-sidebar .terminal-sidebar-scroll {
    display: flex !important;
    width: 100% !important;
    height: 38px !important;
    max-height: 38px !important;
    align-items: center !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    scrollbar-width: none !important;
}

body.app-body .exchange-page-nav .terminal-sidebar-scroll::-webkit-scrollbar,
body.app-body .page-grid:not(.single-column) > .terminal-sidebar .terminal-sidebar-scroll::-webkit-scrollbar {
    display: none !important;
}

body.app-body .exchange-page-nav .terminal-nav-item,
body.app-body .page-grid:not(.single-column) > .terminal-sidebar .terminal-nav-item {
    display: inline-flex !important;
    height: 38px !important;
    min-height: 38px !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 13px !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    color: #4b5563 !important;
    background: transparent !important;
    font-size: 0.82rem !important;
    font-weight: 800 !important;
    text-decoration: none !important;
}

body.app-body .exchange-page-nav .terminal-nav-item.active,
body.app-body .exchange-page-nav .terminal-nav-item:hover,
body.app-body .page-grid:not(.single-column) > .terminal-sidebar .terminal-nav-item.active,
body.app-body .page-grid:not(.single-column) > .terminal-sidebar .terminal-nav-item:hover {
    color: var(--upbit-blue, #064aa8) !important;
    border-bottom-color: var(--upbit-blue, #064aa8) !important;
}

body.app-body .page-grid.single-column,
body.app-body .single-column {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 12px 16px 72px !important;
}

body.app-body .terminal-command-center,
body.app-body .panel,
body.app-body .terminal-section,
body.app-body .holdings-panel,
body.app-body .split-panel {
    max-width: none !important;
}

body.app-body [id] {
    scroll-margin-top: 92px;
}

@media (max-width: 900px) {
    body.app-body.mobile-app-layout .page-grid:not(.single-column) {
        display: block !important;
        padding: 8px 8px 72px !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > .terminal-sidebar {
        width: auto !important;
        margin: 0 !important;
        padding: 12px !important;
    }

    body.app-body .exchange-page-nav {
        top: calc(46px + var(--safe-top)) !important;
        padding: 0 8px !important;
    }

    body.app-body .page-grid.single-column,
    body.app-body .single-column {
        padding: 8px 8px 72px !important;
    }
}

/* Final override after all layout guards. */
body.app-body > .terminal-topbar {
    position: sticky !important;
    top: 0 !important;
    z-index: 130 !important;
    display: flex !important;
    min-height: 46px !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #ffffff !important;
    background: var(--upbit-blue, #064aa8) !important;
    box-shadow: none !important;
}

body.app-body > .terminal-topbar .topbar-brand {
    min-height: 46px !important;
}

body.app-body > .terminal-topbar h1 {
    margin: 0 !important;
    color: #ffffff !important;
    font-size: 1rem !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
}

body.app-body > .terminal-topbar .topbar-status-row {
    display: none !important;
}

body.app-body .exchange-page-nav,
body.app-body .page-grid:not(.single-column) > .terminal-sidebar {
    top: 46px !important;
    z-index: 120 !important;
}

body.app-body .exchange-chart-panel {
    grid-template-rows: auto auto auto minmax(150px, 1fr) auto auto !important;
}

body.app-body .exchange-chart-visual {
    grid-template-columns: repeat(14, minmax(0, 1fr)) !important;
    min-height: 170px !important;
}

body.app-body .exchange-candle,
body.app-body .exchange-candle.fall,
body.app-body .exchange-candle.tall {
    height: var(--candle-height, 48%) !important;
}

body.app-body .exchange-candle {
    align-self: end !important;
}

body.app-body .exchange-chart-meta,
body.app-body .exchange-chart-stats,
body.app-body .exchange-tab-summary {
    display: grid !important;
}

body.app-body .exchange-chart-meta {
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
}

body.app-body .exchange-chart-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

body.app-body .exchange-tab-summary {
    grid-template-columns: minmax(0, 1fr) auto !important;
    min-height: 74px !important;
    padding: 12px !important;
    border: 1px solid #dbe4ef !important;
    border-radius: 6px !important;
    background: #f8fafc !important;
}

body.app-body .exchange-order-tab-panel .exchange-order-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    background: transparent !important;
}

body.app-body .exchange-order-tab-panel .exchange-order-fields > div {
    display: grid !important;
    min-height: 58px !important;
    align-content: center !important;
    gap: 5px !important;
    padding: 8px 10px !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 5px !important;
    background: #ffffff !important;
}

body.app-body .holdings-table {
    min-width: 1600px !important;
}

body.app-body .holdings-table col.holdings-col-target {
    width: 230px !important;
}

body.app-body .holdings-table col.holdings-col-order {
    width: 168px !important;
}

body.app-body .holdings-table th:nth-child(10),
body.app-body .holdings-table td.reservation-sell-cell,
body.app-body .holdings-table th:nth-child(11),
body.app-body .holdings-table td:nth-child(11) {
    text-align: left !important;
}

body.app-body .holdings-table th:nth-child(10) .sort-button,
body.app-body .holdings-table th:nth-child(11) .sort-button {
    justify-content: flex-start !important;
    text-align: left !important;
}

body.app-body .holdings-table td.reservation-sell-cell {
    font-size: 0.72rem !important;
    line-height: 1.3 !important;
}

body.app-body .holdings-table .reservation-sell-line {
    padding: 2px 0 3px 9px !important;
    font-size: 0.71rem !important;
    line-height: 1.28 !important;
}

body.app-body .holdings-table .inline-order-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 6px !important;
}

body.app-body .holdings-table .inline-order-summary,
body.app-body .holdings-table .inline-order-cancel-form button {
    width: auto !important;
    min-height: 28px !important;
    padding: 0 8px !important;
    font-size: 0.72rem !important;
    white-space: nowrap !important;
}

.individual-order-open {
    overflow: hidden;
}

.individual-order-modal[hidden] {
    display: none !important;
}

.individual-order-modal {
    position: fixed;
    inset: 0;
    z-index: 160;
    display: grid;
    place-items: center;
    padding: calc(18px + var(--safe-top)) calc(18px + var(--safe-right)) calc(18px + var(--safe-bottom)) calc(18px + var(--safe-left));
}

.individual-order-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.42);
}

.individual-order-dialog {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 16px;
    width: min(560px, 100%);
    max-height: min(720px, calc(100dvh - 36px));
    overflow: auto;
    padding: 20px;
    border: 1px solid rgba(100, 116, 139, 0.22);
    border-radius: 8px;
    color: var(--text);
    background: #ffffff;
    box-shadow: 0 24px 54px rgba(15, 23, 42, 0.2);
}

.individual-order-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.individual-order-header h2 {
    margin: 0;
    color: var(--text-strong);
    font-size: 1.2rem;
    letter-spacing: 0;
}

.individual-order-form {
    display: grid !important;
    gap: 12px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.individual-order-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
}

.individual-order-form .inline-order-field,
.individual-order-form .inline-order-checkbox {
    display: grid !important;
    gap: 7px !important;
    min-width: 0 !important;
    font-size: 0.82rem !important;
    font-weight: 800 !important;
}

.individual-order-form .inline-order-checkbox {
    display: flex !important;
    align-items: center !important;
}

.individual-order-form input,
.individual-order-form select {
    min-height: 40px !important;
    width: 100% !important;
    border-radius: 6px !important;
    font-size: 0.92rem !important;
}

.individual-order-actions {
    display: grid;
    grid-template-columns: minmax(0, 0.7fr) minmax(0, 1.3fr);
    gap: 8px;
}

.individual-order-actions button {
    width: 100%;
    min-height: 40px;
}

@media (max-width: 900px) {
    body.app-body > .terminal-topbar {
        min-height: calc(46px + var(--safe-top)) !important;
        padding-top: var(--safe-top) !important;
    }

    body.app-body .exchange-chart-meta,
    body.app-body .exchange-chart-stats,
    body.app-body .exchange-order-tab-panel .exchange-order-fields,
    .individual-order-grid,
    .individual-order-actions {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .individual-order-dialog {
        padding: 16px;
    }

    .individual-order-header {
        display: grid;
    }
}
/* Mobile app layout guard: keep the app shell from falling back to the PC top menu. */
@media (max-width: 900px) {
    body.app-body.mobile-app-layout {
        width: 100%;
        max-width: 100%;
        min-height: 100dvh;
        overflow-x: hidden;
        padding:
            calc(48px + var(--safe-top))
            var(--safe-right)
            calc(66px + var(--safe-bottom))
            var(--safe-left) !important;
    }

    body.app-body.mobile-app-layout > .terminal-topbar,
    body.app-body.mobile-app-layout > .exchange-page-nav,
    body.app-body.mobile-app-layout .dashboard-floating-nav-desktop {
        display: none !important;
    }

    body.app-body.mobile-app-layout .mobile-app-header {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        left: 0 !important;
        z-index: 150 !important;
        display: flex !important;
        height: calc(48px + var(--safe-top)) !important;
        margin: 0 !important;
        padding:
            var(--safe-top)
            calc(12px + var(--safe-right))
            0
            calc(12px + var(--safe-left)) !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding:
            8px
            calc(8px + var(--safe-right))
            calc(72px + var(--safe-bottom))
            calc(8px + var(--safe-left)) !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > [data-mobile-section] {
        display: none !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > [data-mobile-section].mobile-section-visible {
        display: block !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #mobile-activity-center.mobile-section-visible {
        display: grid !important;
    }

    body.app-body.mobile-app-layout .exchange-pc-board,
    body.app-body.mobile-app-layout #market-command-center > .terminal-hero-grid,
    body.app-body.mobile-app-layout #market-command-center .terminal-dashboard-grid {
        display: none !important;
    }

    body.app-body.mobile-app-layout .exchange-mobile-home,
    body.app-body.mobile-app-layout .holdings-mobile-card-list,
    body.app-body.mobile-app-layout .mobile-order-card-list {
        display: grid !important;
    }

    body.app-body.mobile-app-layout .holdings-table-wrap,
    body.app-body.mobile-app-layout #open-sell-orders .dashboard-scroll-table-wrap,
    body.app-body.mobile-app-layout .desktop-holdings-filter {
        display: none !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #terminal-sidebar.terminal-sidebar {
        position: fixed !important;
        top: calc(48px + var(--safe-top)) !important;
        right: var(--safe-right) !important;
        bottom: auto !important;
        left: var(--safe-left) !important;
        z-index: 145 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-rows: auto minmax(0, 1fr) !important;
        align-content: stretch !important;
        width: auto !important;
        height: calc(100vh - 48px - 56px - var(--safe-top) - var(--safe-bottom)) !important;
        height: calc(100svh - 48px - 56px - var(--safe-top) - var(--safe-bottom)) !important;
        height: calc(100dvh - 48px - 56px - var(--safe-top) - var(--safe-bottom)) !important;
        max-height: calc(100vh - 48px - 56px - var(--safe-top) - var(--safe-bottom)) !important;
        max-height: calc(100svh - 48px - 56px - var(--safe-top) - var(--safe-bottom)) !important;
        max-height: calc(100dvh - 48px - 56px - var(--safe-top) - var(--safe-bottom)) !important;
        margin: 0 !important;
        padding: 12px !important;
        overflow: hidden !important;
        overscroll-behavior: contain !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #ffffff !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translateX(calc(100% + 24px)) !important;
        transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
    }

    body.app-body.mobile-app-layout.mobile-sidebar-open .page-grid:not(.single-column) > #terminal-sidebar.terminal-sidebar {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translateX(0) !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #terminal-sidebar.terminal-sidebar .terminal-sidebar-head {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 10px !important;
        min-height: 40px !important;
        padding: 0 2px 10px !important;
        border-bottom: 1px solid var(--upbit-line, #d8e0ea) !important;
        background: #ffffff !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #terminal-sidebar.terminal-sidebar .terminal-sidebar-scroll {
        display: block !important;
        grid-row: 2 !important;
        align-self: stretch !important;
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        min-height: 0 !important;
        padding-bottom: calc(18px + var(--safe-bottom)) !important;
        overflow-x: hidden !important;
        overflow-y: scroll !important;
        overscroll-behavior-y: contain !important;
        touch-action: pan-y !important;
        white-space: normal !important;
        -webkit-overflow-scrolling: touch !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #terminal-sidebar.terminal-sidebar .mobile-more-profile,
    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #terminal-sidebar.terminal-sidebar .mobile-more-settings-link,
    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #terminal-sidebar.terminal-sidebar .terminal-nav-label {
        display: flex !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #terminal-sidebar.terminal-sidebar .mobile-more-actions {
        display: grid !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #terminal-sidebar.terminal-sidebar .desktop-sidebar-settings-link {
        display: none !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #terminal-sidebar.terminal-sidebar .terminal-nav-item {
        display: flex !important;
        width: 100% !important;
        height: auto !important;
        min-height: 42px !important;
        flex: none !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 0 2px !important;
        border: 0 !important;
        border-bottom: 1px solid var(--upbit-line-soft, #edf1f5) !important;
        color: #1f2937 !important;
        background: transparent !important;
        white-space: normal !important;
    }

    body.app-body.mobile-app-layout .mobile-bottom-nav {
        position: fixed !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        z-index: 150 !important;
        display: grid !important;
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        height: calc(56px + var(--safe-bottom)) !important;
        padding: 0 0 var(--safe-bottom) !important;
        border-top: 1px solid var(--upbit-line, #d8e0ea) !important;
        border-radius: 0 !important;
        background: #ffffff !important;
        box-shadow: none !important;
    }
}

.settings-mobile-header {
    display: none;
}

@media (max-width: 900px) {
    body.settings-page-body {
        width: 100%;
        max-width: 100%;
        min-height: 100dvh;
        overflow-x: hidden;
        padding:
            calc(48px + var(--safe-top))
            var(--safe-right)
            calc(18px + var(--safe-bottom))
            var(--safe-left) !important;
        background: var(--upbit-bg, #edf1f6) !important;
    }

    body.settings-page-body > .terminal-topbar,
    body.settings-page-body > .exchange-page-nav {
        display: none !important;
    }

    body.settings-page-body > .settings-mobile-header {
        position: fixed;
        top: 0;
        right: 0;
        left: 0;
        z-index: 150;
        display: grid;
        grid-template-columns: 64px minmax(0, 1fr) 64px;
        height: calc(48px + var(--safe-top));
        align-items: center;
        padding:
            var(--safe-top)
            calc(10px + var(--safe-right))
            0
            calc(10px + var(--safe-left));
        color: #ffffff;
    background: var(--upbit-blue, #064aa8);
}

/* Mobile portfolio status screen. */
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.app-body .mobile-status-section {
    display: none;
}

@media (min-width: 901px) {
    body.app-body #portfolio-status,
    body.app-body .mobile-status-section,
    body.app-body .mobile-bottom-nav,
    body.app-body .exchange-mobile-home,
    body.app-body .holdings-mobile-card-list,
    body.app-body .mobile-order-card-list,
    body.app-body .mobile-assets-profit-trend,
    body.app-body .mobile-holdings-action-row,
    body.app-body .mobile-profit-analytics,
    body.app-body .mobile-status-table-wrap {
        display: none !important;
    }
}

@media (max-width: 900px) {
    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #portfolio-status.mobile-status-section.mobile-section-visible,
    .app-body.mobile-app-layout .page-grid > #portfolio-status.mobile-status-section.mobile-section-visible {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .app-body .mobile-status-search {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        width: 100%;
        height: 32px;
        max-height: 32px;
        padding: 3px 8px;
        overflow: hidden;
        border-bottom: 1px solid var(--upbit-line, #d8e0ea);
        background: #ffffff;
    }

    .app-body .mobile-status-search svg {
        display: none;
    }

    .app-body .mobile-status-search input {
        display: block;
        flex: 0 1 168px;
        min-width: 0;
        width: 168px;
        max-width: calc(100vw - 24px);
        height: 26px;
        padding: 0 8px;
        border: 1px solid var(--upbit-line, #d8e0ea);
        border-radius: 4px;
        color: #374151;
        background: #ffffff;
        font-size: 0.68rem;
        font-weight: 800;
        line-height: 26px;
        outline: none;
        white-space: nowrap;
    }

    .app-body .mobile-status-search input::placeholder {
        color: #8b95a1;
        font-weight: 800;
    }

    .app-body .mobile-status-summary {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1px;
        overflow: hidden;
        margin: 0;
        padding: 0;
        border-bottom: 1px solid var(--upbit-line, #d8e0ea);
        background: var(--upbit-line-soft, #edf1f5);
    }

    .app-body .mobile-status-summary div {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        align-content: center;
        min-width: 0;
        min-height: 44px;
        gap: 2px;
        padding: 6px 8px;
        background: #f7f9fc;
    }

    .app-body .mobile-status-summary span {
        color: #697280;
        font-size: 0.62rem;
        font-weight: 750;
        line-height: 1.1;
    }

    .app-body .mobile-status-summary strong {
        display: flex;
        align-items: baseline;
        gap: 3px;
        min-width: 0;
        overflow: hidden;
        color: #2f3338;
        font-size: 0.8rem;
        font-weight: 800;
        line-height: 1.12;
        text-align: left;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .app-body .mobile-status-summary strong b {
        display: block;
        flex: 1 1 auto;
        min-width: 0;
        overflow: hidden;
        font: inherit;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .app-body .mobile-status-summary strong i {
        flex: 0 0 auto;
        color: #a0a8b3;
        font-style: normal;
        font-weight: 700;
    }

    .app-body .mobile-status-market-tabs {
        display: none;
    }

    .app-body .mobile-status-market-tabs::-webkit-scrollbar {
        display: none;
    }

    .app-body .mobile-status-market-tabs button {
        flex: 0 0 auto;
        min-width: 58px;
        height: 36px;
        padding: 0 11px;
        border: 1px solid var(--upbit-line, #d8e0ea);
        border-left-width: 0;
        border-radius: 0;
        color: #59616d;
        background: #ffffff;
        font-size: 0.84rem;
        font-weight: 850;
    }

    .app-body .mobile-status-market-tabs button:first-child {
        border-left-width: 1px;
        border-radius: 6px 0 0 6px;
    }

    .app-body .mobile-status-market-tabs button:last-child {
        border-radius: 0 6px 6px 0;
    }

    .app-body .mobile-status-market-tabs button.active {
        z-index: 1;
        color: var(--upbit-blue, #064aa8);
        border-color: var(--upbit-blue, #064aa8);
        background: #ffffff;
    }

    .app-body .mobile-status-market-tabs button:disabled {
        opacity: 1;
    }

    .app-body .mobile-status-table-wrap {
        display: block;
        overflow-x: hidden;
        border-top: 0;
        background: #ffffff;
    }

    .app-body .mobile-status-table {
        width: 100%;
        min-width: 0;
        table-layout: fixed;
        border-collapse: collapse;
        background: #ffffff;
    }

    .app-body .mobile-status-table th,
    .app-body .mobile-status-table td {
        min-width: 0;
        padding: 6px 4px;
        border-bottom: 1px solid var(--upbit-line-soft, #edf1f5);
        vertical-align: middle;
    }

    .app-body .mobile-status-table th {
        position: sticky;
        top: calc(48px + var(--safe-top));
        z-index: 3;
        background: #ffffff;
        color: #6b7280;
        font-size: 0.56rem;
        font-weight: 800;
    }

    .app-body .mobile-status-table th:nth-child(1),
    .app-body .mobile-status-table td:nth-child(1) {
        width: 18%;
        text-align: left;
    }

    .app-body .mobile-status-table th:nth-child(2),
    .app-body .mobile-status-table td:nth-child(2) {
        width: 26%;
        text-align: right;
    }

    .app-body .mobile-status-table th:nth-child(3),
    .app-body .mobile-status-table td:nth-child(3) {
        width: 18%;
        text-align: right;
    }

    .app-body .mobile-status-table th:nth-child(4),
    .app-body .mobile-status-table td:nth-child(4) {
        width: 22%;
        text-align: right;
    }

    .app-body .mobile-status-table th:nth-child(5),
    .app-body .mobile-status-table td:nth-child(5) {
        width: 16%;
        text-align: right;
    }

    .app-body .mobile-status-table .sort-button {
        justify-content: flex-end;
        gap: 2px;
        width: 100%;
        min-height: 24px;
        color: #6b7280;
        font-size: 0.56rem;
        font-weight: 800;
        line-height: 1.1;
        text-align: right;
        white-space: normal;
    }

    .app-body .mobile-status-table th:first-child .sort-button {
        justify-content: flex-start;
        text-align: left;
    }

    .app-body .mobile-status-table .sort-button::after {
        flex: 0 0 auto;
        color: #b7bec7;
        font-size: 0.7rem;
    }

    .app-body .mobile-status-stacked-sort {
        flex-direction: column;
        align-items: flex-end;
    }

    .app-body .mobile-status-coin,
    .app-body .mobile-status-stack {
        display: grid;
        width: 100%;
        min-width: 0;
        gap: 2px;
    }

    .app-body .mobile-status-coin strong,
    .app-body .mobile-status-stack strong {
        min-width: 0;
        overflow: hidden;
        color: #32363c;
        font-size: 0.72rem;
        font-weight: 700;
        line-height: 1.18;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .app-body .mobile-status-coin span,
    .app-body .mobile-status-stack span {
        min-width: 0;
        overflow: hidden;
        color: #9aa1aa;
        font-size: 0.62rem;
        font-weight: 500;
        line-height: 1.2;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .app-body .mobile-status-profit strong,
    .app-body .mobile-status-change strong {
        font-size: 0.7rem;
        font-weight: 700;
    }

    .app-body .mobile-status-stack strong.positive-text,
    .app-body .mobile-status-stack span.positive-text,
    .app-body .mobile-status-change strong.positive-text,
    .app-body .mobile-status-profit strong.positive-text,
    .app-body .mobile-status-profit span.positive-text,
    .app-body .mobile-status-summary strong.positive-text,
    .app-body .mobile-status-summary .positive-text,
    .app-body .mobile-status-summary strong b.positive-text {
        color: var(--upbit-rise, #e23b3b) !important;
    }

    .app-body .mobile-status-stack strong.negative-text,
    .app-body .mobile-status-stack span.negative-text,
    .app-body .mobile-status-change strong.negative-text,
    .app-body .mobile-status-profit strong.negative-text,
    .app-body .mobile-status-profit span.negative-text,
    .app-body .mobile-status-summary strong.negative-text,
    .app-body .mobile-status-summary .negative-text,
    .app-body .mobile-status-summary strong b.negative-text {
        color: var(--upbit-fall, #1261d1) !important;
    }

    .app-body .mobile-status-empty {
        margin: 0;
        padding: 24px 12px;
        text-align: center;
        background: #ffffff;
    }
}

    body.settings-page-body > .settings-mobile-header a,
    body.settings-page-body > .settings-mobile-header strong {
        color: #ffffff !important;
        text-decoration: none;
    }

    body.settings-page-body > .settings-mobile-header a {
        display: inline-flex;
        min-height: 32px;
        align-items: center;
        justify-content: flex-start;
        font-size: 0.82rem;
        font-weight: 850;
    }

    body.settings-page-body > .settings-mobile-header strong {
        overflow: hidden;
        font-size: 0.98rem;
        font-weight: 900;
        text-align: center;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    body.settings-page-body .page-grid.single-column,
    body.settings-page-body .single-column {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding:
            8px
            calc(8px + var(--safe-right))
            calc(24px + var(--safe-bottom))
            calc(8px + var(--safe-left)) !important;
    }

    body.settings-page-body .form-panel {
        width: 100% !important;
        max-width: 100% !important;
        padding: 10px !important;
        border-radius: 3px !important;
    }

    body.settings-page-body .panel-heading {
        display: flex !important;
        min-height: 34px !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
    }

    body.settings-page-body .panel-heading h2 {
        font-size: 0.98rem !important;
    }

    body.settings-page-body .settings-form,
    body.settings-page-body .settings-layout,
    body.settings-page-body .settings-grid,
    body.settings-page-body .settings-section {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    body.settings-page-body .settings-layout,
    body.settings-page-body .settings-grid {
        gap: 8px !important;
    }

    body.settings-page-body .settings-section {
        gap: 10px !important;
        padding: 10px !important;
        border-radius: 3px !important;
    }

    body.settings-page-body .settings-grid > div,
    body.settings-page-body .grid-span-2 {
        grid-column: 1 / -1 !important;
        min-width: 0 !important;
    }

    body.settings-page-body label,
    body.settings-page-body input,
    body.settings-page-body select,
    body.settings-page-body textarea,
    body.settings-page-body button {
        max-width: 100% !important;
    }

    body.settings-page-body input,
    body.settings-page-body select,
    body.settings-page-body textarea {
        width: 100% !important;
        min-height: 38px !important;
        font-size: 0.86rem !important;
    }

    body.settings-page-body .toggle-row {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        gap: 10px !important;
    }

    body.settings-page-body .runtime-preview {
        padding: 9px 10px !important;
    }

    body.settings-page-body .capital-deposit-column-headings {
        display: none !important;
    }

    body.settings-page-body .capital-deposit-row-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-areas:
            "date"
            "amount"
            "note"
            "actions" !important;
    }
}

/* Final mobile settings and more-menu guard. */
.app-body .mobile-settings-panel {
    display: none !important;
}

body.embedded-settings-body {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    color: #1f2937 !important;
    background: #ffffff !important;
}

body.embedded-settings-body .embedded-settings-shell {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 8px 8px 24px !important;
}

body.embedded-settings-body .panel.form-panel {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

body.embedded-settings-body .panel-heading {
    display: flex !important;
    min-height: 34px !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    margin-bottom: 8px !important;
}

body.embedded-settings-body .panel-heading h2 {
    font-size: 0.98rem !important;
}

body.embedded-settings-body .settings-form,
body.embedded-settings-body .settings-layout,
body.embedded-settings-body .settings-grid,
body.embedded-settings-body .settings-section {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    min-width: 0 !important;
}

body.embedded-settings-body .settings-layout,
body.embedded-settings-body .settings-grid {
    gap: 8px !important;
}

body.embedded-settings-body .settings-section {
    gap: 10px !important;
    padding: 10px !important;
    border-radius: 3px !important;
    background: #ffffff !important;
}

body.embedded-settings-body .settings-grid > div,
body.embedded-settings-body .grid-span-2 {
    grid-column: 1 / -1 !important;
    min-width: 0 !important;
}

body.embedded-settings-body label,
body.embedded-settings-body input,
body.embedded-settings-body select,
body.embedded-settings-body textarea,
body.embedded-settings-body button {
    max-width: 100% !important;
}

body.embedded-settings-body input,
body.embedded-settings-body select,
body.embedded-settings-body textarea {
    width: 100% !important;
    min-height: 38px !important;
    font-size: 0.86rem !important;
}

body.embedded-settings-body .toggle-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 10px !important;
}

body.embedded-settings-body .runtime-preview {
    padding: 9px 10px !important;
}

body.embedded-settings-body .capital-deposit-column-headings {
    display: none !important;
}

body.embedded-settings-body .capital-deposit-row-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-areas:
        "date"
        "amount"
        "note"
        "actions" !important;
}

@media (max-width: 900px) {
    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #settings-panel.mobile-settings-panel {
        width: 100% !important;
        min-width: 0 !important;
        min-height: calc(100dvh - 48px - 66px - var(--safe-top) - var(--safe-bottom)) !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #settings-panel.mobile-settings-panel.mobile-section-visible {
        display: block !important;
    }

    body.app-body.mobile-app-layout #settings-panel .settings-embed-frame {
        display: block !important;
        width: 100% !important;
        height: calc(100vh - 48px - 66px - var(--safe-top) - var(--safe-bottom)) !important;
        height: calc(100svh - 48px - 66px - var(--safe-top) - var(--safe-bottom)) !important;
        height: calc(100dvh - 48px - 66px - var(--safe-top) - var(--safe-bottom)) !important;
        min-height: 420px !important;
        max-height: calc(100dvh - 48px - 66px - var(--safe-top) - var(--safe-bottom)) !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #ffffff !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #terminal-sidebar.terminal-sidebar {
        overflow: hidden !important;
        overscroll-behavior: contain !important;
    }

    body.app-body.mobile-app-layout .page-grid:not(.single-column) > #terminal-sidebar.terminal-sidebar .terminal-sidebar-scroll {
        min-height: 0 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior-y: contain !important;
        touch-action: pan-y !important;
        -webkit-overflow-scrolling: touch !important;
    }
}

/* Final mobile assets layout. */
@media (max-width: 900px) {
    body.app-body.mobile-app-layout #holdings-dashboard > .panel-heading {
        display: none !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-asset-overview {
        display: block !important;
        margin: 0 0 8px !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 1px solid var(--upbit-line, #d8e0ea) !important;
        border-radius: 2px !important;
        background: var(--upbit-line-soft, #edf1f5) !important;
        box-shadow: none !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-asset-summary-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 1px !important;
        min-width: 0 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-asset-summary-grid > div {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        align-content: center !important;
        gap: 2px !important;
        min-width: 0 !important;
        min-height: 44px !important;
        padding: 6px 8px !important;
        background: #f7f9fc !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-asset-summary-grid span {
        color: #697280 !important;
        font-size: 0.62rem !important;
        font-weight: 750 !important;
        line-height: 1.1 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-asset-summary-grid strong {
        display: flex !important;
        min-width: 0 !important;
        align-items: baseline !important;
        gap: 3px !important;
        overflow: hidden !important;
        color: #2f3338 !important;
        font-size: 0.78rem !important;
        font-weight: 800 !important;
        line-height: 1.12 !important;
        text-align: left !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-asset-summary-grid strong b {
        display: block !important;
        flex: 1 1 auto !important;
        min-width: 0 !important;
        overflow: hidden !important;
        font: inherit !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-asset-summary-grid strong i {
        flex: 0 0 auto !important;
        color: #a0a8b3 !important;
        font-style: normal !important;
        font-weight: 700 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-asset-summary-grid .positive-text {
        color: var(--upbit-rise, #e23b3b) !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-asset-summary-grid .negative-text {
        color: var(--upbit-fall, #1261d1) !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-assets-profit-trend {
        display: block !important;
        margin: 0 0 8px !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-assets-profit-trend .profit-chart-shell {
        gap: 6px !important;
        padding: 8px !important;
        overflow: hidden !important;
        border: 1px solid var(--mobile-line, var(--upbit-line, #d8e0ea)) !important;
        border-radius: 2px !important;
        background: var(--mobile-surface, #ffffff) !important;
        box-shadow: none !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-assets-profit-trend .profit-chart-header {
        display: flex !important;
        min-height: 18px !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-assets-profit-trend .chart-legends {
        gap: 10px !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-assets-profit-trend .chart-legend {
        gap: 5px !important;
        color: #4b5563 !important;
        font-size: 0.62rem !important;
        font-weight: 750 !important;
        line-height: 1 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-assets-profit-trend .legend-swatch {
        width: 14px !important;
        height: 3px !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-assets-profit-trend .profit-chart {
        display: block !important;
        width: 100% !important;
        height: 152px !important;
        min-height: 152px !important;
        max-height: 152px !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-assets-profit-trend .chart-y-label,
    body.app-body.mobile-app-layout #holdings-dashboard .mobile-assets-profit-trend .chart-axis-label {
        font-size: 22px !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .filter-toolbar {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 6px !important;
        margin: 0 0 6px !important;
        padding: 7px !important;
        border: 1px solid var(--upbit-line, #d8e0ea) !important;
        border-radius: 2px !important;
        background: #ffffff !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .filter-field-wide {
        grid-column: 1 !important;
        min-width: 0 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .filter-field-wide span {
        display: none !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .filter-field-wide input {
        width: 100% !important;
        height: 28px !important;
        min-height: 28px !important;
        padding: 0 8px !important;
        border-radius: 2px !important;
        font-size: 0.72rem !important;
        font-weight: 750 !important;
        line-height: 28px !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard #holdings-filter-reset {
        grid-column: 2 !important;
        min-width: 58px !important;
        min-height: 28px !important;
        padding: 0 7px !important;
        border-radius: 2px !important;
        font-size: 0.62rem !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard #holdings-filter-summary {
        grid-column: 1 / -1 !important;
        min-height: 0 !important;
        font-size: 0.62rem !important;
        line-height: 1.1 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-holdings-action-row {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 4px !important;
        margin: 0 0 8px !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-holdings-action-row form {
        min-width: 0 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-holdings-action-row button {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 30px !important;
        padding: 0 3px !important;
        overflow: hidden !important;
        border-radius: 2px !important;
        font-size: 0.56rem !important;
        font-weight: 850 !important;
        line-height: 1.05 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-list {
        gap: 0 !important;
        overflow: hidden !important;
        border: 1px solid var(--upbit-line, #d8e0ea) !important;
        border-radius: 2px !important;
        background: #ffffff !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card {
        gap: 6px !important;
        padding: 8px !important;
        border: 0 !important;
        border-bottom: 1px solid var(--upbit-line-soft, #edf1f5) !important;
        border-radius: 0 !important;
        background: #ffffff !important;
        box-shadow: none !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card:last-child {
        border-bottom: 0 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-head {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 8px !important;
        align-items: center !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-identity {
        display: grid !important;
        grid-template-columns: auto auto minmax(0, 1fr) !important;
        gap: 6px !important;
        min-width: 0 !important;
        align-items: center !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-identity > div {
        display: grid !important;
        gap: 1px !important;
        min-width: 0 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-identity .market-link {
        overflow: hidden !important;
        color: var(--mobile-text-strong, #111827) !important;
        font-size: 0.78rem !important;
        font-weight: 900 !important;
        line-height: 1.12 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-identity span:not(.rank-badge) {
        overflow: hidden !important;
        color: var(--mobile-muted, #697280) !important;
        font-size: 0.58rem !important;
        font-weight: 750 !important;
        line-height: 1.1 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-profit {
        display: grid !important;
        gap: 1px !important;
        min-width: 58px !important;
        text-align: right !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-profit strong {
        font-size: 0.76rem !important;
        font-weight: 900 !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-profit span {
        overflow: hidden !important;
        font-size: 0.62rem !important;
        font-weight: 850 !important;
        line-height: 1.1 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-metrics.compact {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 1px !important;
        margin: 0 !important;
        overflow: hidden !important;
        border: 1px solid var(--upbit-line-soft, #edf1f5) !important;
        border-radius: 0 !important;
        background: var(--upbit-line-soft, #edf1f5) !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-metrics.compact > div {
        display: grid !important;
        grid-template-columns: minmax(38px, auto) minmax(0, 1fr) !important;
        grid-template-areas:
            "label value"
            "meta meta" !important;
        gap: 1px 6px !important;
        min-width: 0 !important;
        padding: 5px 6px !important;
        background: #f7f9fc !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-metrics.compact dt {
        grid-area: label !important;
        color: var(--mobile-muted, #697280) !important;
        font-size: 0.55rem !important;
        font-weight: 750 !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-metrics.compact dd {
        grid-area: value !important;
        min-width: 0 !important;
        margin: 0 !important;
        overflow: hidden !important;
        color: #1f2937 !important;
        font-size: 0.64rem !important;
        font-weight: 850 !important;
        line-height: 1.1 !important;
        text-align: right !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-metrics.compact small {
        grid-area: meta !important;
        min-width: 0 !important;
        overflow: hidden !important;
        color: #8b95a1 !important;
        font-size: 0.52rem !important;
        font-weight: 700 !important;
        line-height: 1.1 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-metrics.compact small.positive-text {
        color: var(--upbit-rise, #e23b3b) !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-metrics.compact small.negative-text {
        color: var(--upbit-fall, #1261d1) !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-details {
        min-width: 0 !important;
        border-top: 1px solid var(--upbit-line-soft, #edf1f5) !important;
        padding-top: 4px !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-details summary {
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr) auto !important;
        gap: 6px !important;
        min-height: 24px !important;
        align-items: center !important;
        cursor: pointer !important;
        color: #475569 !important;
        font-size: 0.6rem !important;
        font-weight: 850 !important;
        list-style: none !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-details summary::-webkit-details-marker {
        display: none !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-details summary::after {
        content: "" !important;
        width: 6px !important;
        height: 6px !important;
        border-right: 1px solid #8b95a1 !important;
        border-bottom: 1px solid #8b95a1 !important;
        transform: rotate(45deg) !important;
        justify-self: end !important;
        grid-column: 3 !important;
        grid-row: 1 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-details[open] summary::after {
        transform: rotate(225deg) !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-details summary span {
        color: #697280 !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-details summary strong {
        min-width: 0 !important;
        overflow: hidden !important;
        color: #334155 !important;
        font-size: 0.6rem !important;
        font-weight: 850 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-order {
        display: grid !important;
        grid-template-columns: auto minmax(0, 1fr) !important;
        gap: 5px 8px !important;
        align-items: center !important;
        padding: 6px 0 !important;
        border: 0 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-order > span {
        color: #697280 !important;
        font-size: 0.58rem !important;
        font-weight: 800 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-order-levels {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 4px !important;
        min-width: 0 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-order-levels span {
        padding: 3px 5px !important;
        border-radius: 2px !important;
        font-size: 0.58rem !important;
        line-height: 1.1 !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-order-levels small {
        font-size: 0.56rem !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-actions {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 4px !important;
        align-items: start !important;
        padding-top: 4px !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .holdings-mobile-card-actions .table-button,
    body.app-body.mobile-app-layout #holdings-dashboard .mobile-holding-order-actions .table-button {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 28px !important;
        padding: 0 3px !important;
        border-radius: 2px !important;
        font-size: 0.56rem !important;
        font-weight: 850 !important;
        line-height: 1.05 !important;
        text-align: center !important;
        white-space: normal !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-holding-order-actions {
        display: contents !important;
    }

    body.app-body.mobile-app-layout #holdings-dashboard .mobile-holding-order-actions .inline-order-details[open] {
        grid-column: 1 / -1 !important;
    }

    body.app-body.mobile-app-layout #profit-analytics > .panel-heading {
        display: none !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-analytics {
        display: grid !important;
        gap: 8px !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .analytics-grid,
    body.app-body.mobile-app-layout #profit-analytics .panel-collapsible-body > .table-wrap {
        display: none !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-tabs {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 4px !important;
        padding: 4px !important;
        border: 1px solid var(--upbit-line, #d8e0ea) !important;
        border-radius: 2px !important;
        background: #ffffff !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-tabs label {
        display: flex !important;
        min-height: 30px !important;
        align-items: center !important;
        justify-content: center !important;
        border-radius: 2px !important;
        color: #475569 !important;
        font-size: 0.68rem !important;
        font-weight: 850 !important;
    }

    body.app-body.mobile-app-layout #profit-analytics #mobile-profit-tab-daily:checked ~ .mobile-profit-tabs label[for="mobile-profit-tab-daily"],
    body.app-body.mobile-app-layout #profit-analytics #mobile-profit-tab-monthly:checked ~ .mobile-profit-tabs label[for="mobile-profit-tab-monthly"] {
        color: #ffffff !important;
        background: var(--upbit-blue, #064aa8) !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-panel {
        display: none !important;
        gap: 6px !important;
    }

    body.app-body.mobile-app-layout #profit-analytics #mobile-profit-tab-daily:checked ~ .mobile-profit-panels [data-mobile-profit-panel="daily"],
    body.app-body.mobile-app-layout #profit-analytics #mobile-profit-tab-monthly:checked ~ .mobile-profit-panels [data-mobile-profit-panel="monthly"] {
        display: grid !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-card {
        display: grid !important;
        gap: 7px !important;
        padding: 10px !important;
        border: 1px solid var(--upbit-line, #d8e0ea) !important;
        border-radius: 2px !important;
        background: #ffffff !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-card-head,
    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-card-main {
        display: flex !important;
        min-width: 0 !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-card-head strong {
        color: #111827 !important;
        font-size: 0.82rem !important;
        font-weight: 900 !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-card-head span,
    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-metrics span {
        color: #697280 !important;
        font-size: 0.6rem !important;
        font-weight: 750 !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-card-main strong {
        font-size: 0.98rem !important;
        font-weight: 900 !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-card-main small {
        color: #697280 !important;
        font-size: 0.68rem !important;
        font-weight: 800 !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-metrics {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 1px !important;
        overflow: hidden !important;
        border: 1px solid var(--mobile-line-soft, var(--upbit-line-soft, #edf1f5)) !important;
        background: var(--mobile-line-soft, var(--upbit-line-soft, #edf1f5)) !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-metrics div {
        display: grid !important;
        gap: 2px !important;
        min-width: 0 !important;
        padding: 7px !important;
        background: var(--mobile-surface-2, #f7f9fc) !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-metrics strong {
        overflow: hidden !important;
        color: #1f2937 !important;
        font-size: 0.72rem !important;
        font-weight: 850 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-details {
        border-top: 1px solid var(--upbit-line-soft, #edf1f5) !important;
        padding-top: 6px !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-details summary {
        color: #475569 !important;
        font-size: 0.66rem !important;
        font-weight: 850 !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-detail-list {
        display: grid !important;
        gap: 5px !important;
        margin-top: 6px !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-detail-item {
        display: grid !important;
        grid-template-columns: minmax(64px, 0.34fr) minmax(0, 1fr) !important;
        gap: 8px !important;
        min-width: 0 !important;
        padding-top: 7px !important;
        border-top: 1px solid var(--upbit-line-soft, #edf1f5) !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-detail-item:first-child {
        padding-top: 0 !important;
        border-top: 0 !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-detail-name,
    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-trade-list,
    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-trade-entry {
        display: grid !important;
        gap: 4px !important;
        min-width: 0 !important;
        align-content: start !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-detail-name strong {
        overflow-wrap: anywhere !important;
        color: #111827 !important;
        font-size: 0.7rem !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-detail-name span {
        overflow: hidden !important;
        color: #697280 !important;
        font-size: 0.58rem !important;
        font-weight: 750 !important;
        line-height: 1.15 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-trade-entry + .mobile-profit-trade-entry {
        padding-top: 6px !important;
        border-top: 1px dashed var(--upbit-line, #d8e0ea) !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-trade-lines {
        display: grid !important;
        gap: 1px !important;
        min-width: 0 !important;
        overflow: hidden !important;
        border: 1px solid var(--upbit-line-soft, #edf1f5) !important;
        background: var(--upbit-line-soft, #edf1f5) !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-trade-line {
        display: grid !important;
        grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.85fr) minmax(0, 1fr) minmax(0, 0.9fr) !important;
        gap: 1px !important;
        min-width: 0 !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-trade-line > div {
        display: grid !important;
        gap: 2px !important;
        min-width: 0 !important;
        padding: 5px 4px !important;
        background: #f7f9fc !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-trade-line span {
        overflow: hidden !important;
        color: #697280 !important;
        font-size: 0.52rem !important;
        font-weight: 750 !important;
        line-height: 1.1 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-trade-line strong {
        overflow: hidden !important;
        font-size: 0.6rem !important;
        font-weight: 850 !important;
        line-height: 1.15 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .mobile-profit-trade-line strong:not(.positive-text):not(.negative-text):not(.muted-text) {
        color: #1f2937 !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .positive-text {
        color: var(--upbit-rise, #e23b3b) !important;
    }

    body.app-body.mobile-app-layout #profit-analytics .negative-text {
        color: var(--upbit-fall, #1261d1) !important;
    }
}

/* Mobile sheets launched from the status action bar.
   Tune these variables first when the sheet needs to be denser or roomier. */
@media (max-width: 900px) {
    body.app-body {
        --status-sheet-line: var(--upbit-line-soft, #edf1f5);
        --status-sheet-cell: #f8fafc;
        --status-sheet-accent-cell: #eef5ff;
        --status-sheet-header-font: 0.8rem;
        --status-sheet-meta-font: 0.54rem;
        --status-sheet-section-font: 0.58rem;
        --status-sheet-label-font: 0.52rem;
        --status-sheet-value-font: 0.64rem;
        --status-sheet-key-value-font: 0.69rem;
        --status-sheet-input-font: 0.72rem;
        --status-sheet-button-font: 0.6rem;
        --status-sheet-radius: 6px;
        --status-sheet-gap: 6px;
    }

    body.app-body .average-down-modal,
    body.app-body .individual-order-modal {
        z-index: 230 !important;
        place-items: end center !important;
        padding: calc(8px + var(--safe-top)) 0 0 !important;
    }

    body.app-body .average-down-backdrop,
    body.app-body .individual-order-backdrop {
        background: rgba(15, 23, 42, 0.46) !important;
    }

    body.app-body .average-down-dialog,
    body.app-body .individual-order-dialog {
        width: 100% !important;
        max-height: calc(100dvh - 8px - var(--safe-top)) !important;
        gap: var(--status-sheet-gap) !important;
        padding:
            10px
            calc(10px + var(--safe-right))
            calc(12px + var(--safe-bottom))
            calc(10px + var(--safe-left)) !important;
        overflow-y: auto !important;
        border-right: 0 !important;
        border-bottom: 0 !important;
        border-left: 0 !important;
        border-radius: 8px 8px 0 0 !important;
        box-shadow: 0 -12px 34px rgba(15, 23, 42, 0.22) !important;
        font-family: "Segoe UI", "Apple SD Gothic Neo", "Noto Sans KR", sans-serif !important;
        -webkit-overflow-scrolling: touch !important;
    }

    body.app-body .average-down-header,
    body.app-body .individual-order-header {
        position: sticky !important;
        top: -10px !important;
        z-index: 3 !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 8px !important;
        align-items: center !important;
        margin:
            -10px
            calc(-10px - var(--safe-right))
            0
            calc(-10px - var(--safe-left)) !important;
        padding:
            9px
            calc(10px + var(--safe-right))
            8px
            calc(10px + var(--safe-left)) !important;
        border-bottom: 1px solid var(--status-sheet-line) !important;
        background: rgba(255, 255, 255, 0.98) !important;
    }

    body.app-body .average-down-header h2,
    body.app-body .individual-order-header h2 {
        margin: 0 !important;
        overflow: hidden !important;
        color: #111827 !important;
        font-size: var(--status-sheet-header-font) !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;
        letter-spacing: 0 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body .average-down-header .muted,
    body.app-body .individual-order-header .muted {
        display: block !important;
        margin-top: 2px !important;
        overflow: hidden !important;
        font-size: var(--status-sheet-meta-font) !important;
        font-weight: 750 !important;
        line-height: 1.1 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body .average-down-header .compact-button,
    body.app-body .individual-order-header .compact-button {
        min-width: 48px !important;
        min-height: 28px !important;
        padding: 0 8px !important;
        border-radius: 2px !important;
        font-size: var(--status-sheet-button-font) !important;
        font-weight: 850 !important;
    }

    body.app-body .average-down-body {
        gap: var(--status-sheet-gap) !important;
    }

    body.app-body .average-down-section-title {
        margin: 0 !important;
        color: #334155 !important;
        font-size: var(--status-sheet-section-font) !important;
        font-weight: 900 !important;
        line-height: 1 !important;
        letter-spacing: 0 !important;
    }

    body.app-body .average-down-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 1px !important;
        overflow: hidden !important;
        border: 1px solid var(--status-sheet-line) !important;
        border-radius: var(--status-sheet-radius) !important;
        background: var(--status-sheet-line) !important;
    }

    body.app-body .average-down-field {
        gap: 2px !important;
        min-height: 42px !important;
        padding: 6px 7px !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: var(--status-sheet-cell) !important;
    }

    body.app-body .average-down-field-wide {
        grid-column: 1 / -1 !important;
    }

    body.app-body .average-down-field-primary {
        grid-column: auto !important;
    }

    body.app-body .average-down-field span,
    body.app-body .average-down-input-field span {
        overflow: hidden !important;
        color: #697280 !important;
        font-size: var(--status-sheet-label-font) !important;
        font-weight: 800 !important;
        line-height: 1.1 !important;
        letter-spacing: 0 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body .average-down-field strong {
        overflow: hidden !important;
        color: #1f2937 !important;
        font-size: var(--status-sheet-value-font) !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;
        font-variant-numeric: tabular-nums !important;
        letter-spacing: 0 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body .average-down-field strong.positive-text {
        color: var(--upbit-rise, #e23b3b) !important;
    }

    body.app-body .average-down-field strong.negative-text {
        color: var(--upbit-fall, #1261d1) !important;
    }

    body.app-body .average-down-field-primary {
        background: var(--status-sheet-accent-cell) !important;
    }

    body.app-body .average-down-field-primary strong {
        font-size: var(--status-sheet-key-value-font) !important;
    }

    body.app-body .average-down-input-field {
        gap: 5px !important;
        padding: 7px !important;
        border: 1px solid rgba(6, 74, 168, 0.22) !important;
        border-radius: var(--status-sheet-radius) !important;
        background: #f7fbff !important;
    }

    body.app-body .average-down-input-field input {
        min-height: 32px !important;
        padding: 0 8px !important;
        border-radius: 4px !important;
        font-size: var(--status-sheet-input-font) !important;
        font-weight: 850 !important;
        line-height: 32px !important;
        letter-spacing: 0 !important;
    }

    body.app-body .average-down-korean-amount {
        min-height: 1.1em !important;
        font-size: var(--status-sheet-meta-font) !important;
        font-weight: 750 !important;
        line-height: 1.2 !important;
    }

    body.app-body .average-down-body > .muted {
        margin: 0 !important;
        font-size: var(--status-sheet-meta-font) !important;
        line-height: 1.25 !important;
    }

    body.app-body .individual-order-form {
        gap: var(--status-sheet-gap) !important;
    }

    body.app-body .individual-order-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: var(--status-sheet-gap) !important;
    }

    body.app-body .individual-order-form > .inline-order-field {
        padding: 7px !important;
        border: 1px solid rgba(6, 74, 168, 0.18) !important;
        border-radius: var(--status-sheet-radius) !important;
        background: #f7fbff !important;
    }

    body.app-body .individual-order-form .inline-order-field,
    body.app-body .individual-order-form .inline-order-checkbox {
        gap: 4px !important;
        color: #475569 !important;
        font-size: var(--status-sheet-label-font) !important;
        font-weight: 850 !important;
        line-height: 1.15 !important;
        letter-spacing: 0 !important;
    }

    body.app-body .individual-order-form .inline-order-field span,
    body.app-body .individual-order-form .inline-order-checkbox span {
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.app-body .individual-order-form input,
    body.app-body .individual-order-form select {
        min-height: 32px !important;
        width: 100% !important;
        padding: 0 8px !important;
        border-radius: 4px !important;
        color: #111827 !important;
        font-size: var(--status-sheet-input-font) !important;
        font-weight: 850 !important;
        line-height: 32px !important;
        letter-spacing: 0 !important;
    }

    body.app-body .individual-order-form select {
        padding-right: 24px !important;
    }

    body.app-body .individual-order-form .cell-meta {
        margin-top: 2px !important;
        color: #8b95a1 !important;
        font-size: 0.5rem !important;
        line-height: 1.15 !important;
    }

    body.app-body .individual-order-form .inline-order-checkbox {
        display: flex !important;
        min-height: 32px !important;
        align-items: center !important;
        gap: 7px !important;
        padding: 6px 7px !important;
        border: 1px solid var(--status-sheet-line) !important;
        border-radius: var(--status-sheet-radius) !important;
        background: var(--status-sheet-cell) !important;
    }

    body.app-body .individual-order-form .inline-order-checkbox input {
        flex: 0 0 auto !important;
        width: 16px !important;
        height: 16px !important;
        min-height: 16px !important;
        padding: 0 !important;
    }

    body.app-body .individual-order-actions {
        position: sticky !important;
        bottom: calc(-12px - var(--safe-bottom)) !important;
        display: grid !important;
        grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr) !important;
        gap: var(--status-sheet-gap) !important;
        margin:
            0
            calc(-10px - var(--safe-right))
            calc(-12px - var(--safe-bottom))
            calc(-10px - var(--safe-left)) !important;
        padding:
            8px
            calc(10px + var(--safe-right))
            calc(10px + var(--safe-bottom))
            calc(10px + var(--safe-left)) !important;
        border-top: 1px solid var(--status-sheet-line) !important;
        background: rgba(255, 255, 255, 0.98) !important;
    }

    body.app-body .individual-order-actions button {
        min-height: 34px !important;
        padding: 0 8px !important;
        border-radius: 4px !important;
        font-size: var(--status-sheet-button-font) !important;
        font-weight: 900 !important;
        line-height: 1.05 !important;
        letter-spacing: 0 !important;
        white-space: normal !important;
    }

    @media (max-width: 360px) {
        body.app-body {
            --status-sheet-value-font: 0.6rem;
            --status-sheet-key-value-font: 0.64rem;
            --status-sheet-input-font: 0.68rem;
            --status-sheet-button-font: 0.56rem;
        }

        body.app-body .individual-order-grid {
            grid-template-columns: minmax(0, 1fr) !important;
        }
    }
}

/* Home market judgment sits directly under market breadth. */
.app-body #market-command-center .terminal-dashboard-grid {
    grid-template-columns: minmax(0, 1fr) !important;
}

.app-body #market-command-center .market-health-panel,
.app-body #market-command-center .portfolio-terminal-card {
    grid-column: 1 / -1 !important;
}

.app-body #market-command-center .market-engine-inline {
    display: grid;
    gap: 10px;
    min-width: 0;
    margin-top: 2px;
    padding-top: 14px;
    border-top: 1px solid var(--upbit-line-soft, #edf1f5);
}

.app-body #market-command-center .market-engine-inline .panel-header {
    align-items: center;
}

.app-body #market-command-center .market-engine-inline .engine-score-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1px !important;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--upbit-line-soft, #edf1f5);
    border-radius: 2px;
    background: var(--upbit-line-soft, #edf1f5) !important;
}

.app-body #market-command-center .market-engine-inline .engine-score-card {
    min-width: 0;
    background: #ffffff !important;
}

.app-body #market-command-center .market-engine-inline .engine-score-card-sideways {
    grid-column: 1 / -1;
    display: grid !important;
    grid-template-columns: auto auto minmax(0, 1fr);
    align-items: center;
    gap: 10px;
}

.app-body #market-command-center .market-engine-inline .engine-score-card-sideways .engine-score-formula {
    min-width: 0;
    margin: 0;
    padding: 0;
    border-top: 0;
}

.app-body #market-command-center .market-engine-inline .engine-score-card-sideways code {
    white-space: normal;
    overflow-wrap: anywhere;
}

.app-body #market-command-center .market-engine-inline .engine-score-details li {
    font-size: 0.74rem;
}

@media (max-width: 720px) {
    .app-body #market-command-center .market-engine-inline .engine-score-grid {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .app-body #market-command-center .market-engine-inline .engine-score-card-sideways {
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
    }
}

/* Final mobile more menu and settings layout. */
.app-body #terminal-sidebar .mobile-sidebar-settings-link,
.settings-mobile-section-nav {
    display: none !important;
}

body.embedded-settings-body .settings-mobile-section-nav {
    position: sticky !important;
    top: 0 !important;
    z-index: 120 !important;
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    gap: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 56px !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-top: 1px solid var(--upbit-line-soft, #edf1f5) !important;
    border-bottom: 1px solid var(--upbit-line, #d8e0ea) !important;
    background: #ffffff !important;
}

body.embedded-settings-body .settings-mobile-tab-item {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: grid !important;
    grid-template-rows: 18px auto !important;
    gap: 3px !important;
    min-width: 0 !important;
    height: 56px !important;
    align-items: center !important;
    justify-items: center !important;
    padding: 7px 2px 6px !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #4b5563 !important;
    background: #ffffff !important;
    font-family: inherit !important;
    font-size: 0.58rem !important;
    font-weight: 900 !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
}

body.embedded-settings-body .settings-mobile-tab-item svg {
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    fill: none !important;
    stroke: currentColor !important;
}

body.embedded-settings-body .settings-mobile-tab-item span {
    display: block !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.embedded-settings-body .settings-mobile-tab-item.active,
body.embedded-settings-body .settings-mobile-tab-item[aria-current="true"] {
    color: var(--upbit-blue, #064aa8) !important;
    background: #eef5ff !important;
    box-shadow: inset 0 -2px 0 var(--upbit-blue, #064aa8) !important;
}

@media (max-width: 900px) {
    body.app-body #terminal-sidebar .terminal-nav-item.mobile-more-hidden {
        display: none !important;
    }

    body.settings-page-body,
    body.embedded-settings-body {
        --settings-mobile-bg: #f2f4f8;
        --settings-mobile-card: #ffffff;
        --settings-mobile-line: var(--upbit-line, #d8e0ea);
        --settings-mobile-line-soft: var(--upbit-line-soft, #edf1f5);
        --settings-mobile-muted: #697280;
        width: 100% !important;
        max-width: 100% !important;
        min-height: 100dvh !important;
        overflow-x: hidden !important;
        color: #1f2937 !important;
        background: var(--settings-mobile-bg) !important;
    }

    body.settings-page-body {
        padding:
            calc(48px + var(--safe-top))
            var(--safe-right)
            0
            var(--safe-left) !important;
    }

    body.settings-page-body > .terminal-topbar,
    body.settings-page-body > .exchange-page-nav {
        display: none !important;
    }

    body.settings-page-body > .settings-mobile-header {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        left: 0 !important;
        z-index: 180 !important;
        display: grid !important;
        grid-template-columns: 64px minmax(0, 1fr) 64px !important;
        height: calc(48px + var(--safe-top)) !important;
        align-items: center !important;
        padding:
            var(--safe-top)
            calc(10px + var(--safe-right))
            0
            calc(10px + var(--safe-left)) !important;
        color: #ffffff !important;
        background: var(--upbit-blue, #064aa8) !important;
        box-shadow: none !important;
    }

    body.settings-page-body > .settings-mobile-header a,
    body.settings-page-body > .settings-mobile-header strong {
        min-width: 0 !important;
        overflow: hidden !important;
        color: #ffffff !important;
        line-height: 1.1 !important;
        text-decoration: none !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.settings-page-body > .settings-mobile-header a {
        display: inline-flex !important;
        min-height: 32px !important;
        align-items: center !important;
        justify-content: flex-start !important;
        font-size: 0.82rem !important;
        font-weight: 850 !important;
    }

    body.settings-page-body > .settings-mobile-header strong {
        font-size: 0.98rem !important;
        font-weight: 900 !important;
        text-align: center !important;
    }

    body.settings-page-body > .settings-mobile-header span {
        display: block !important;
    }

    body.settings-page-body .page-grid.single-column,
    body.settings-page-body .single-column,
    body.embedded-settings-body .embedded-settings-shell {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding:
            8px
            calc(8px + var(--safe-right))
            calc(74px + var(--safe-bottom))
            calc(8px + var(--safe-left)) !important;
        background: var(--settings-mobile-bg) !important;
    }

    body.embedded-settings-body .embedded-settings-shell {
        min-height: 100dvh !important;
        padding-top: 8px !important;
    }

    body.settings-page-body .form-panel,
    body.embedded-settings-body .panel.form-panel {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    body.settings-page-body .panel-heading,
    body.embedded-settings-body .panel-heading {
        display: flex !important;
        min-height: 44px !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
        margin: 0 !important;
        padding: 10px 12px !important;
        border: 1px solid var(--settings-mobile-line) !important;
        border-radius: 2px !important;
        background: var(--settings-mobile-card) !important;
    }

    body.settings-page-body .panel-heading h2,
    body.embedded-settings-body .panel-heading h2 {
        margin: 0 !important;
        color: #111827 !important;
        font-size: 0.9rem !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;
    }

    body.settings-page-body .panel-heading .alert,
    body.embedded-settings-body .panel-heading .alert {
        min-height: 24px !important;
        padding: 3px 7px !important;
        border-radius: 2px !important;
        font-size: 0.64rem !important;
        white-space: nowrap !important;
    }

    body.settings-page-body .settings-mobile-section-nav,
    body.embedded-settings-body .settings-mobile-section-nav {
        position: sticky !important;
        right: 0 !important;
        left: 0 !important;
        z-index: 120 !important;
        display: grid !important;
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        gap: 0 !important;
        width: 100% !important;
        min-width: 0 !important;
        height: 56px !important;
        margin: 0 0 8px !important;
        padding:
            0
            var(--safe-right)
            0
            var(--safe-left) !important;
        overflow: hidden !important;
        border: 0 !important;
        border-top: 1px solid var(--settings-mobile-line-soft) !important;
        border-bottom: 1px solid var(--settings-mobile-line) !important;
        border-radius: 0 !important;
        background: var(--mobile-shell-bg, #ffffff) !important;
        box-shadow: none !important;
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch !important;
    }

    body.settings-page-body .settings-mobile-section-nav {
        top: calc(48px + var(--safe-top)) !important;
    }

    body.embedded-settings-body .settings-mobile-section-nav {
        top: 0 !important;
    }

    body.settings-page-body .settings-mobile-section-nav::-webkit-scrollbar,
    body.embedded-settings-body .settings-mobile-section-nav::-webkit-scrollbar {
        display: none !important;
    }

    body.settings-page-body .settings-mobile-tab-item,
    body.embedded-settings-body .settings-mobile-tab-item {
        appearance: none !important;
        -webkit-appearance: none !important;
        display: grid !important;
        grid-template-rows: 18px auto !important;
        gap: 3px !important;
        min-width: 0 !important;
        min-height: 56px !important;
        height: 56px !important;
        align-items: center !important;
        justify-content: center !important;
        justify-items: center !important;
        padding: 7px 2px 6px !important;
        overflow: hidden !important;
        border: 0 !important;
        border-radius: 0 !important;
        color: #4b5563 !important;
        background: #ffffff !important;
        font-family: inherit !important;
        font-size: 0.58rem !important;
        font-weight: 900 !important;
        line-height: 1.05 !important;
        text-decoration: none !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        box-shadow: none !important;
    }

    body.settings-page-body .settings-mobile-tab-item svg,
    body.embedded-settings-body .settings-mobile-tab-item svg {
        display: block !important;
        width: 17px !important;
        height: 17px !important;
        fill: none !important;
        stroke: currentColor !important;
        stroke-width: 1.9 !important;
        stroke-linecap: round !important;
        stroke-linejoin: round !important;
    }

    body.settings-page-body .settings-mobile-tab-item span,
    body.embedded-settings-body .settings-mobile-tab-item span {
        display: block !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.settings-page-body .settings-mobile-tab-item.active,
    body.settings-page-body .settings-mobile-tab-item[aria-current="true"],
    body.embedded-settings-body .settings-mobile-tab-item.active,
    body.embedded-settings-body .settings-mobile-tab-item[aria-current="true"] {
        color: var(--upbit-blue, #064aa8) !important;
        background: #eef5ff !important;
        box-shadow: inset 0 -2px 0 var(--upbit-blue, #064aa8) !important;
    }

    body.settings-page-body .settings-form,
    body.embedded-settings-body .settings-form,
    body.settings-page-body .settings-layout,
    body.embedded-settings-body .settings-layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    body.settings-page-body .settings-form,
    body.embedded-settings-body .settings-form {
        padding-bottom: calc(72px + var(--safe-bottom)) !important;
    }

    body.settings-page-body .settings-section,
    body.embedded-settings-body .settings-section {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 0 !important;
        min-width: 0 !important;
        scroll-margin-top: calc(58px + var(--safe-top)) !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 1px solid var(--settings-mobile-line) !important;
        border-radius: 4px !important;
        background: var(--settings-mobile-line-soft) !important;
        box-shadow: none !important;
    }

    body.settings-page-body .settings-section h3,
    body.embedded-settings-body .settings-section h3 {
        margin: 0 !important;
        padding: 11px 12px !important;
        border-bottom: 1px solid var(--settings-mobile-line-soft) !important;
        color: #111827 !important;
        background: var(--settings-mobile-card) !important;
        font-size: 0.82rem !important;
        font-weight: 900 !important;
        line-height: 1.18 !important;
    }

    body.embedded-settings-body .settings-section {
        scroll-margin-top: 12px !important;
    }

    body.settings-page-body .settings-grid,
    body.embedded-settings-body .settings-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 1px !important;
        min-width: 0 !important;
        background: var(--settings-mobile-line-soft) !important;
    }

    body.settings-page-body .settings-grid > div,
    body.settings-page-body .grid-span-2,
    body.embedded-settings-body .settings-grid > div,
    body.embedded-settings-body .grid-span-2 {
        grid-column: 1 / -1 !important;
        display: grid !important;
        gap: 5px !important;
        min-width: 0 !important;
        padding: 9px 12px !important;
        background: var(--settings-mobile-card) !important;
    }

    body.settings-page-body label,
    body.embedded-settings-body label {
        min-width: 0 !important;
        margin: 0 !important;
        overflow-wrap: anywhere !important;
        color: var(--settings-mobile-muted) !important;
        font-size: 0.66rem !important;
        font-weight: 800 !important;
        line-height: 1.18 !important;
    }

    body.settings-page-body input,
    body.settings-page-body select,
    body.settings-page-body textarea,
    body.embedded-settings-body input,
    body.embedded-settings-body select,
    body.embedded-settings-body textarea {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 42px !important;
        padding: 0 10px !important;
        border: 1px solid #cfd8e3 !important;
        border-radius: 5px !important;
        color: #111827 !important;
        background: #ffffff !important;
        font-size: 0.84rem !important;
        font-weight: 750 !important;
        line-height: 42px !important;
        box-shadow: none !important;
    }

    body.settings-page-body textarea,
    body.embedded-settings-body textarea {
        min-height: 92px !important;
        max-height: 180px !important;
        padding: 9px 10px !important;
        line-height: 1.45 !important;
        resize: vertical !important;
    }

    body.settings-page-body input[type="checkbox"],
    body.embedded-settings-body input[type="checkbox"] {
        width: 22px !important;
        height: 22px !important;
        min-height: 22px !important;
        padding: 0 !important;
    }

    body.settings-page-body .setting-toggle,
    body.embedded-settings-body .setting-toggle {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        gap: 10px !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 11px 12px !important;
        border: 0 !important;
        border-bottom: 1px solid var(--settings-mobile-line-soft) !important;
        border-radius: 0 !important;
        background: var(--settings-mobile-card) !important;
    }

    body.settings-page-body .toggle-copy,
    body.embedded-settings-body .toggle-copy {
        display: grid !important;
        gap: 2px !important;
        min-width: 0 !important;
    }

    body.settings-page-body .toggle-copy strong,
    body.embedded-settings-body .toggle-copy strong {
        min-width: 0 !important;
        overflow: hidden !important;
        color: #111827 !important;
        font-size: 0.78rem !important;
        font-weight: 900 !important;
        line-height: 1.16 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    body.settings-page-body .runtime-preview,
    body.embedded-settings-body .runtime-preview {
        display: grid !important;
        gap: 4px !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 10px 12px !important;
        border: 0 !important;
        border-top: 1px solid var(--settings-mobile-line-soft) !important;
        border-radius: 0 !important;
        background: #f8fbff !important;
    }

    body.settings-page-body .runtime-preview span,
    body.embedded-settings-body .runtime-preview span {
        color: var(--upbit-blue, #064aa8) !important;
        font-size: 0.62rem !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;
    }

    body.settings-page-body .runtime-preview strong,
    body.embedded-settings-body .runtime-preview strong {
        color: #374151 !important;
        font-size: 0.68rem !important;
        font-weight: 800 !important;
        line-height: 1.35 !important;
        overflow-wrap: anywhere !important;
    }

    body.settings-page-body .capital-deposit-editor,
    body.embedded-settings-body .capital-deposit-editor {
        gap: 8px !important;
    }

    body.settings-page-body .capital-deposit-editor-header,
    body.embedded-settings-body .capital-deposit-editor-header {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        gap: 8px !important;
        padding: 8px 10px !important;
        border: 1px solid var(--settings-mobile-line-soft) !important;
        border-radius: 2px !important;
        background: #f7f9fc !important;
    }

    body.settings-page-body .capital-deposit-editor-header strong,
    body.embedded-settings-body .capital-deposit-editor-header strong {
        margin: 0 !important;
        font-size: 0.76rem !important;
    }

    body.settings-page-body .capital-deposit-list,
    body.embedded-settings-body .capital-deposit-list {
        gap: 6px !important;
    }

    body.settings-page-body .capital-deposit-row,
    body.embedded-settings-body .capital-deposit-row {
        padding: 8px !important;
        border: 1px solid var(--settings-mobile-line-soft) !important;
        border-radius: 2px !important;
        background: #ffffff !important;
    }

    body.settings-page-body .capital-deposit-row-grid,
    body.embedded-settings-body .capital-deposit-row-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-areas:
            "date"
            "amount"
            "note"
            "actions" !important;
        gap: 7px !important;
        align-items: stretch !important;
    }

    body.settings-page-body .capital-deposit-field-label,
    body.embedded-settings-body .capital-deposit-field-label {
        display: block !important;
        margin-bottom: 4px !important;
    }

    body.settings-page-body .capital-deposit-row-actions,
    body.embedded-settings-body .capital-deposit-row-actions {
        justify-content: stretch !important;
    }

    body.settings-page-body .capital-deposit-row-actions button,
    body.embedded-settings-body .capital-deposit-row-actions button,
    body.settings-page-body #capital-deposit-add-row,
    body.embedded-settings-body #capital-deposit-add-row {
        min-height: 32px !important;
        padding: 0 8px !important;
        border-radius: 4px !important;
        font-size: 0.68rem !important;
        font-weight: 850 !important;
        white-space: nowrap !important;
    }

    body.settings-page-body .capital-deposit-row-actions button,
    body.embedded-settings-body .capital-deposit-row-actions button {
        width: 100% !important;
    }

    body.settings-page-body .settings-save-button,
    body.embedded-settings-body .settings-save-button {
        position: fixed !important;
        right: calc(8px + var(--safe-right)) !important;
        left: calc(8px + var(--safe-left)) !important;
        bottom: calc(8px + var(--safe-bottom)) !important;
        z-index: 79 !important;
        width: auto !important;
        min-height: 44px !important;
        margin: 0 !important;
        border-radius: 4px !important;
        color: #ffffff !important;
        border-color: var(--upbit-blue, #064aa8) !important;
        background: var(--upbit-blue, #064aa8) !important;
        font-size: 0.88rem !important;
        font-weight: 950 !important;
        box-shadow: 0 8px 18px rgba(6, 74, 168, 0.22) !important;
    }
}

/* Compact mobile settings form controls. */
@media (max-width: 900px) {
    body.settings-page-body .page-grid.single-column,
    body.settings-page-body .single-column,
    body.embedded-settings-body .embedded-settings-shell {
        gap: 6px !important;
        padding:
            6px
            calc(7px + var(--safe-right))
            calc(68px + var(--safe-bottom))
            calc(7px + var(--safe-left)) !important;
    }

    body.embedded-settings-body .embedded-settings-shell {
        padding-top: 6px !important;
    }

    body.settings-page-body .panel-heading,
    body.embedded-settings-body .panel-heading {
        min-height: 38px !important;
        padding: 8px 10px !important;
        border-radius: 8px 8px 0 0 !important;
    }

    body.settings-page-body .panel-heading h2,
    body.embedded-settings-body .panel-heading h2 {
        font-size: 0.84rem !important;
        line-height: 1.12 !important;
    }

    body.settings-page-body .settings-mobile-section-nav,
    body.embedded-settings-body .settings-mobile-section-nav {
        height: 52px !important;
        margin-bottom: 6px !important;
    }

    body.settings-page-body .settings-mobile-tab-item,
    body.embedded-settings-body .settings-mobile-tab-item {
        grid-template-rows: 16px auto !important;
        gap: 2px !important;
        min-height: 52px !important;
        height: 52px !important;
        padding: 6px 2px 5px !important;
        font-size: 0.56rem !important;
    }

    body.settings-page-body .settings-mobile-tab-item svg,
    body.embedded-settings-body .settings-mobile-tab-item svg {
        width: 16px !important;
        height: 16px !important;
    }

    body.settings-page-body .settings-form,
    body.embedded-settings-body .settings-form,
    body.settings-page-body .settings-layout,
    body.embedded-settings-body .settings-layout {
        gap: 7px !important;
    }

    body.settings-page-body .settings-form,
    body.embedded-settings-body .settings-form {
        padding-bottom: calc(62px + var(--safe-bottom)) !important;
    }

    body.settings-page-body .settings-section,
    body.embedded-settings-body .settings-section {
        border-radius: 8px !important;
    }

    body.settings-page-body .settings-section h3,
    body.embedded-settings-body .settings-section h3 {
        padding: 9px 10px !important;
        font-size: 0.78rem !important;
        line-height: 1.14 !important;
    }

    body.settings-page-body .settings-grid,
    body.embedded-settings-body .settings-grid {
        gap: 1px !important;
    }

    body.settings-page-body .settings-grid > div,
    body.settings-page-body .grid-span-2,
    body.embedded-settings-body .settings-grid > div,
    body.embedded-settings-body .grid-span-2 {
        gap: 4px !important;
        padding: 7px 10px !important;
    }

    body.settings-page-body label,
    body.embedded-settings-body label {
        font-size: 0.61rem !important;
        font-weight: 800 !important;
        line-height: 1.12 !important;
    }

    body.settings-page-body input,
    body.settings-page-body select,
    body.settings-page-body textarea,
    body.embedded-settings-body input,
    body.embedded-settings-body select,
    body.embedded-settings-body textarea {
        min-height: 34px !important;
        height: 34px !important;
        padding: 0 9px !important;
        border-radius: 6px !important;
        font-size: 0.76rem !important;
        font-weight: 650 !important;
        line-height: 34px !important;
    }

    body.settings-page-body textarea,
    body.embedded-settings-body textarea {
        height: auto !important;
        min-height: 74px !important;
        max-height: 142px !important;
        padding: 7px 9px !important;
        line-height: 1.35 !important;
    }

    body.settings-page-body select,
    body.embedded-settings-body select {
        padding-right: 28px !important;
    }

    body.settings-page-body input[type="checkbox"],
    body.embedded-settings-body input[type="checkbox"] {
        width: 18px !important;
        height: 18px !important;
        min-height: 18px !important;
    }

    body.settings-page-body .setting-toggle,
    body.embedded-settings-body .setting-toggle {
        gap: 8px !important;
        padding: 8px 10px !important;
    }

    body.settings-page-body .toggle-copy strong,
    body.embedded-settings-body .toggle-copy strong {
        font-size: 0.72rem !important;
    }

    body.settings-page-body .reference-mode-field,
    body.embedded-settings-body .reference-mode-field {
        display: grid !important;
        gap: 6px !important;
        margin: 0 !important;
        padding: 8px 10px !important;
        border: 0 !important;
        border-bottom: 1px solid var(--settings-mobile-line-soft, #edf1f5) !important;
        background: var(--settings-mobile-card, #ffffff) !important;
    }

    body.settings-page-body .reference-mode-field legend,
    body.embedded-settings-body .reference-mode-field legend {
        padding: 0 !important;
        color: var(--settings-mobile-muted, #697280) !important;
        font-size: 0.61rem !important;
        font-weight: 850 !important;
        line-height: 1.12 !important;
    }

    body.settings-page-body .reference-mode-options,
    body.embedded-settings-body .reference-mode-options {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 6px !important;
        min-width: 0 !important;
    }

    body.settings-page-body .reference-mode-option,
    body.embedded-settings-body .reference-mode-option {
        position: relative !important;
        min-width: 0 !important;
        margin: 0 !important;
        color: #1f2937 !important;
    }

    body.settings-page-body .reference-mode-option input,
    body.embedded-settings-body .reference-mode-option input {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        min-height: 1px !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    body.settings-page-body .reference-mode-option span,
    body.embedded-settings-body .reference-mode-option span {
        display: grid !important;
        min-height: 34px !important;
        place-items: center !important;
        padding: 0 8px !important;
        border: 1px solid #cfd8e3 !important;
        border-radius: 7px !important;
        color: #4b5563 !important;
        background: #ffffff !important;
        font-size: 0.72rem !important;
        font-weight: 900 !important;
        line-height: 1.1 !important;
        text-align: center !important;
        white-space: nowrap !important;
    }

    body.settings-page-body .reference-mode-option input:checked + span,
    body.embedded-settings-body .reference-mode-option input:checked + span {
        border-color: var(--upbit-blue, #064aa8) !important;
        color: var(--upbit-blue, #064aa8) !important;
        background: #eef5ff !important;
        box-shadow: inset 0 0 0 1px var(--upbit-blue, #064aa8) !important;
    }

    body.settings-page-body .runtime-preview,
    body.embedded-settings-body .runtime-preview {
        gap: 3px !important;
        padding: 8px 10px !important;
    }

    body.settings-page-body .runtime-preview span,
    body.embedded-settings-body .runtime-preview span {
        font-size: 0.58rem !important;
    }

    body.settings-page-body .runtime-preview strong,
    body.embedded-settings-body .runtime-preview strong {
        font-size: 0.64rem !important;
        line-height: 1.28 !important;
    }

    body.settings-page-body .settings-save-button,
    body.embedded-settings-body .settings-save-button {
        min-height: 40px !important;
        font-size: 0.8rem !important;
    }
}

/* Final modern settings override. Keep this at the end of the file. */
@media (max-width: 900px) {
    body.settings-page-body,
    body.embedded-settings-body {
        --settings-v2-bg: #f4f7fb;
        --settings-v2-surface: #ffffff;
        --settings-v2-soft: #f7f9fc;
        --settings-v2-line: #dde5ef;
        --settings-v2-line-strong: #cbd5e1;
        --settings-v2-text: #172033;
        --settings-v2-muted: #6b7688;
        --settings-v2-blue: #0b5ac2;
        --settings-v2-blue-soft: #eef5ff;
        color: var(--settings-v2-text) !important;
        background: var(--settings-v2-bg) !important;
    }

    body.settings-page-body .page-grid.single-column,
    body.settings-page-body .single-column,
    body.embedded-settings-body .embedded-settings-shell {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding:
            8px
            calc(10px + var(--safe-right))
            calc(72px + var(--safe-bottom))
            calc(10px + var(--safe-left)) !important;
        background: var(--settings-v2-bg) !important;
    }

    body.embedded-settings-body .embedded-settings-shell {
        min-height: 100dvh !important;
    }

    body.settings-page-body .form-panel,
    body.embedded-settings-body .panel.form-panel {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    body.settings-page-body .panel-heading,
    body.embedded-settings-body .panel-heading {
        min-height: 34px !important;
        margin: 0 !important;
        padding: 0 2px 2px !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    body.settings-page-body .panel-heading h2,
    body.embedded-settings-body .panel-heading h2 {
        margin: 0 !important;
        color: var(--settings-v2-text) !important;
        font-size: 1.02rem !important;
        font-weight: 950 !important;
        line-height: 1.14 !important;
        letter-spacing: 0 !important;
    }

    body.settings-page-body .settings-mobile-section-nav,
    body.embedded-settings-body .settings-mobile-section-nav {
        position: sticky !important;
        z-index: 120 !important;
        display: grid !important;
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        gap: 0 !important;
        width: 100% !important;
        height: 52px !important;
        margin: 0 0 8px !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 1px solid var(--settings-v2-line) !important;
        border-radius: 8px !important;
        background: var(--settings-v2-surface) !important;
        box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05) !important;
    }

    body.settings-page-body .settings-mobile-section-nav {
        top: calc(48px + var(--safe-top)) !important;
    }

    body.embedded-settings-body .settings-mobile-section-nav {
        top: 0 !important;
    }

    body.settings-page-body .settings-mobile-tab-item,
    body.embedded-settings-body .settings-mobile-tab-item {
        appearance: none !important;
        -webkit-appearance: none !important;
        display: grid !important;
        grid-template-rows: 17px auto !important;
        gap: 3px !important;
        min-width: 0 !important;
        min-height: 52px !important;
        height: 52px !important;
        align-items: center !important;
        justify-items: center !important;
        padding: 6px 2px 5px !important;
        overflow: hidden !important;
        border: 0 !important;
        border-radius: 0 !important;
        color: #536174 !important;
        background: var(--settings-v2-surface) !important;
        font-family: inherit !important;
        font-size: 0.56rem !important;
        font-weight: 900 !important;
        line-height: 1.05 !important;
        white-space: nowrap !important;
        box-shadow: none !important;
    }

    body.settings-page-body .settings-mobile-tab-item svg,
    body.embedded-settings-body .settings-mobile-tab-item svg {
        width: 16px !important;
        height: 16px !important;
        fill: none !important;
        stroke: currentColor !important;
    }

    body.settings-page-body .settings-mobile-tab-item.active,
    body.settings-page-body .settings-mobile-tab-item[aria-current="true"],
    body.embedded-settings-body .settings-mobile-tab-item.active,
    body.embedded-settings-body .settings-mobile-tab-item[aria-current="true"] {
        color: var(--settings-v2-blue) !important;
        background: var(--settings-v2-blue-soft) !important;
        box-shadow: inset 0 -2px 0 var(--settings-v2-blue) !important;
    }

    body.settings-page-body .settings-form,
    body.embedded-settings-body .settings-form,
    body.settings-page-body .settings-layout,
    body.embedded-settings-body .settings-layout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    body.settings-page-body .settings-form,
    body.embedded-settings-body .settings-form {
        padding-bottom: calc(72px + var(--safe-bottom)) !important;
    }

    body.settings-page-body .settings-section,
    body.embedded-settings-body .settings-section {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 0 !important;
        min-width: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        border: 1px solid var(--settings-v2-line) !important;
        border-radius: 8px !important;
        background: var(--settings-v2-surface) !important;
        box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05) !important;
    }

    body.settings-page-body .settings-section h3,
    body.embedded-settings-body .settings-section h3 {
        margin: 0 !important;
        padding: 14px 16px 10px !important;
        border: 0 !important;
        color: var(--settings-v2-text) !important;
        background: var(--settings-v2-surface) !important;
        font-size: 0.92rem !important;
        font-weight: 950 !important;
        line-height: 1.18 !important;
        letter-spacing: 0 !important;
    }

    body.settings-page-body .settings-grid,
    body.embedded-settings-body .settings-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        min-width: 0 !important;
        padding: 0 14px 14px !important;
        background: var(--settings-v2-surface) !important;
    }

    body.settings-page-body .settings-grid > div,
    body.settings-page-body .grid-span-2,
    body.embedded-settings-body .settings-grid > div,
    body.embedded-settings-body .grid-span-2 {
        display: grid !important;
        grid-column: 1 / -1 !important;
        gap: 6px !important;
        min-width: 0 !important;
        padding: 0 !important;
        background: transparent !important;
    }

    body.settings-page-body label,
    body.embedded-settings-body label,
    body.settings-page-body .reference-mode-field legend,
    body.embedded-settings-body .reference-mode-field legend {
        margin: 0 !important;
        color: var(--settings-v2-muted) !important;
        font-size: 0.72rem !important;
        font-weight: 850 !important;
        line-height: 1.15 !important;
    }

    body.settings-page-body input,
    body.settings-page-body select,
    body.settings-page-body textarea,
    body.embedded-settings-body input,
    body.embedded-settings-body select,
    body.embedded-settings-body textarea {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 38px !important;
        height: 38px !important;
        padding: 0 11px !important;
        border: 1px solid var(--settings-v2-line-strong) !important;
        border-radius: 8px !important;
        color: var(--settings-v2-text) !important;
        background: var(--settings-v2-soft) !important;
        font-family: inherit !important;
        font-size: 0.82rem !important;
        font-weight: 700 !important;
        line-height: 38px !important;
        box-shadow: none !important;
    }

    body.settings-page-body input:focus,
    body.settings-page-body select:focus,
    body.settings-page-body textarea:focus,
    body.embedded-settings-body input:focus,
    body.embedded-settings-body select:focus,
    body.embedded-settings-body textarea:focus {
        outline: 0 !important;
        border-color: var(--settings-v2-blue) !important;
        background: #ffffff !important;
        box-shadow: 0 0 0 3px rgba(11, 90, 194, 0.12) !important;
    }

    body.settings-page-body textarea,
    body.embedded-settings-body textarea {
        height: auto !important;
        min-height: 82px !important;
        max-height: 150px !important;
        padding: 9px 11px !important;
        line-height: 1.38 !important;
        resize: vertical !important;
    }

    body.settings-page-body select,
    body.embedded-settings-body select {
        padding-right: 30px !important;
        background-color: var(--settings-v2-soft) !important;
    }

    body.settings-page-body .reference-mode-field,
    body.embedded-settings-body .reference-mode-field {
        display: grid !important;
        gap: 8px !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 14px 12px !important;
        border: 0 !important;
        background: var(--settings-v2-surface) !important;
    }

    body.settings-page-body .reference-mode-options,
    body.embedded-settings-body .reference-mode-options {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 6px !important;
        min-width: 0 !important;
        padding: 4px !important;
        border: 1px solid var(--settings-v2-line) !important;
        border-radius: 8px !important;
        background: #eef2f7 !important;
    }

    body.settings-page-body .reference-mode-option,
    body.embedded-settings-body .reference-mode-option {
        position: relative !important;
        min-width: 0 !important;
        margin: 0 !important;
        color: var(--settings-v2-muted) !important;
    }

    body.settings-page-body .reference-mode-option input,
    body.embedded-settings-body .reference-mode-option input {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        min-height: 1px !important;
        padding: 0 !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    body.settings-page-body .reference-mode-option span,
    body.embedded-settings-body .reference-mode-option span {
        display: grid !important;
        min-height: 34px !important;
        place-items: center !important;
        padding: 0 8px !important;
        border: 0 !important;
        border-radius: 6px !important;
        color: #526173 !important;
        background: transparent !important;
        font-size: 0.76rem !important;
        font-weight: 900 !important;
        line-height: 1.1 !important;
        text-align: center !important;
        white-space: nowrap !important;
    }

    body.settings-page-body .reference-mode-option input:checked + span,
    body.embedded-settings-body .reference-mode-option input:checked + span {
        color: #ffffff !important;
        background: var(--settings-v2-blue) !important;
        box-shadow: 0 4px 10px rgba(11, 90, 194, 0.2) !important;
    }

    body.settings-page-body input[type="checkbox"],
    body.embedded-settings-body input[type="checkbox"] {
        appearance: none !important;
        -webkit-appearance: none !important;
        position: relative !important;
        width: 40px !important;
        height: 22px !important;
        min-height: 22px !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 999px !important;
        background: #cbd5e1 !important;
        transition: background 160ms ease !important;
    }

    body.settings-page-body input[type="checkbox"]::after,
    body.embedded-settings-body input[type="checkbox"]::after {
        content: "" !important;
        position: absolute !important;
        top: 3px !important;
        left: 3px !important;
        width: 16px !important;
        height: 16px !important;
        border-radius: 999px !important;
        background: #ffffff !important;
        box-shadow: 0 1px 4px rgba(15, 23, 42, 0.24) !important;
        transition: transform 160ms ease !important;
    }

    body.settings-page-body input[type="checkbox"]:checked,
    body.embedded-settings-body input[type="checkbox"]:checked {
        background: var(--settings-v2-blue) !important;
    }

    body.settings-page-body input[type="checkbox"]:checked::after,
    body.embedded-settings-body input[type="checkbox"]:checked::after {
        transform: translateX(18px) !important;
    }

    body.settings-page-body .setting-toggle,
    body.embedded-settings-body .setting-toggle {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 10px !important;
        align-items: center !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 12px 14px !important;
        border: 0 !important;
        border-top: 1px solid var(--settings-v2-line) !important;
        background: var(--settings-v2-surface) !important;
    }

    body.settings-page-body .toggle-copy strong,
    body.embedded-settings-body .toggle-copy strong {
        color: var(--settings-v2-text) !important;
        font-size: 0.8rem !important;
        font-weight: 900 !important;
        line-height: 1.18 !important;
    }

    body.settings-page-body .runtime-preview,
    body.embedded-settings-body .runtime-preview {
        display: grid !important;
        gap: 5px !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 10px 14px 12px !important;
        border: 0 !important;
        border-top: 1px solid var(--settings-v2-line) !important;
        background: #f8fbff !important;
    }

    body.settings-page-body .runtime-preview span,
    body.embedded-settings-body .runtime-preview span {
        color: var(--settings-v2-blue) !important;
        font-size: 0.64rem !important;
        font-weight: 950 !important;
        line-height: 1.1 !important;
    }

    body.settings-page-body .runtime-preview strong,
    body.embedded-settings-body .runtime-preview strong {
        color: #364152 !important;
        font-size: 0.7rem !important;
        font-weight: 760 !important;
        line-height: 1.34 !important;
        overflow-wrap: anywhere !important;
    }

    body.settings-page-body .settings-save-button,
    body.embedded-settings-body .settings-save-button {
        position: fixed !important;
        right: calc(10px + var(--safe-right)) !important;
        bottom: calc(8px + var(--safe-bottom)) !important;
        left: calc(10px + var(--safe-left)) !important;
        z-index: 140 !important;
        min-height: 44px !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 8px !important;
        color: #ffffff !important;
        background: var(--settings-v2-blue) !important;
        font-size: 0.86rem !important;
        font-weight: 950 !important;
        box-shadow: 0 12px 24px rgba(11, 90, 194, 0.24) !important;
    }
}
