/* Finance Center consolidated design system. Generated; edit source modules. */
/* Self-hosted font assets: Inter v20 and Manrope v20. */
@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url('/static/vendor/fonts/inter-400.ttf') format('truetype')}
@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url('/static/vendor/fonts/inter-500.ttf') format('truetype')}
@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url('/static/vendor/fonts/inter-600.ttf') format('truetype')}
@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url('/static/vendor/fonts/inter-700.ttf') format('truetype')}
@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url('/static/vendor/fonts/inter-800.ttf') format('truetype')}
@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url('/static/vendor/fonts/manrope-600.ttf') format('truetype')}
@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url('/static/vendor/fonts/manrope-700.ttf') format('truetype')}


/* module: tokens.css */
:root {
    --font-ui: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-display: "Manrope", "Inter", sans-serif;
    --bg-top: #05070d;
    --bg-bottom: #11141d;
    --bg-mid: #080b12;
    --surface-matte: #0c0f16;
    --surface-soft: rgba(14, 18, 28, 0.82);
    --surface-glass: rgba(21, 25, 37, 0.62);
    --surface-glass-strong: rgba(18, 23, 35, 0.78);
    --border-soft: rgba(255, 255, 255, 0.08);
    --border-strong: rgba(255, 255, 255, 0.14);
    --text-primary: #f6f7fb;
    --text-secondary: #a7adbd;
    --text-muted: #737a8c;
    --aurora-green: #62e6a7;
    --aurora-cyan: #57d7e8;
    --aurora-violet: #9b7bff;
    --aurora-blue: #3157d5;
    --positive: #56d89b;
    --warning: #f4b95e;
    --danger: #ff707a;
    --info: #6ea8ff;
    --shadow-card: 0 22px 60px rgba(0, 0, 0, 0.26), inset 0 1px 0 rgba(255,255,255,.05);
    --shadow-hover: 0 28px 70px rgba(0, 0, 0, 0.34), 0 0 36px rgba(87, 215, 232, 0.06);
    --radius-sm: 10px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --radius-xl: 28px;
    --sidebar-width: 270px;
    --ease-out: cubic-bezier(.2,.8,.2,1);
}

html[data-theme="pearl"] {
    --bg-top: #f3f6fb;
    --bg-bottom: #e8edf6;
    --bg-mid: #eef2f8;
    --surface-matte: #e9eef6;
    --surface-soft: rgba(255,255,255,.86);
    --surface-glass: rgba(255,255,255,.68);
    --surface-glass-strong: rgba(255,255,255,.9);
    --border-soft: rgba(20, 31, 52, .10);
    --border-strong: rgba(20, 31, 52, .16);
    --text-primary: #101522;
    --text-secondary: #4d586b;
    --text-muted: #7a8598;
    --shadow-card: 0 20px 50px rgba(31, 43, 68, .12), inset 0 1px 0 rgba(255,255,255,.8);
    --aurora-green: #15986a;
    --aurora-cyan: #168fa2;
    --aurora-violet: #7357d8;
    --aurora-blue: #3157d5;
    --positive: #14865d;
    --warning: #b87618;
    --danger: #d64e59;
    --info: #336fd1;
}

/* module: foundations.css */
/* Canonical foundations ported from the pre-Build-52 base layer. */
* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    min-height: 100%;
}

body {
    font-family: Arial, Helvetica, sans-serif;
    background-color: #f4f6f8;
    color: #1f2933;
}

a {
    color: inherit;
    text-decoration: none;
}

.app-layout {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    min-height: 100vh;
}

.sidebar {
    background-color: #17202a;
    color: white;
    padding: 28px 18px;
}

.sidebar-brand {
    margin-bottom: 32px;
    padding: 0 12px;
}

.sidebar-brand-title {
    margin: 0;
    font-size: 21px;
}

.sidebar-brand-subtitle {
    margin-top: 7px;
    color: #aeb8c2;
    font-size: 13px;
}

.sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.sidebar-link {
    display: block;
    padding: 12px 14px;
    border-radius: 9px;
    color: #d7dee5;
    font-size: 15px;
}

.sidebar-link:hover {
    background-color: #253442;
    color: white;
}

.sidebar-link.active {
    background-color: #ffffff;
    color: #17202a;
    font-weight: bold;
}

.main-content {
    min-width: 0;
}

.page-container {
    max-width: 1180px;
    margin: 0 auto;
    padding: 40px 32px;
}

.debt-plan-container {
    max-width: 1350px;
}

.page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 32px;
}

.page-header h1 {
    margin: 0 0 8px 0;
    font-size: 34px;
}

.page-header p {
    margin: 0;
    color: #667085;
    font-size: 16px;
}

.debt-header-actions {
    display: flex;
    gap: 10px;
}

.connection-status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 13px;
    border: 1px solid #d0d5dd;
    border-radius: 999px;
    background-color: white;
    color: #475467;
    font-size: 13px;
    white-space: nowrap;
}

.status-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background-color: #f79009;
}

.summary-grid,
.payoff-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 30px;
}

.summary-card {
    background-color: white;
    border-radius: 14px;
    padding: 24px;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.summary-label {
    color: #667085;
    font-size: 14px;
    margin-bottom: 10px;
}

.summary-value {
    font-size: 28px;
    font-weight: bold;
    overflow-wrap: anywhere;
}

.summary-detail {
    margin-top: 9px;
    color: #667085;
    font-size: 13px;
    line-height: 1.4;
}

.cash {
    color: #027a48;
}

.debt {
    color: #b42318;
}

.net-worth {
    color: #175cd3;
}

.section-heading-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 16px;
}

.section-title {
    margin: 0;
    font-size: 22px;
}

.account-count {
    color: #667085;
    font-size: 14px;
}

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

.account-card,
.form-card,
.account-list-item {
    background-color: white;
    border-radius: 14px;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.account-card {
    padding: 22px;
}

.account-top-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.account-name {
    margin: 0;
    font-size: 19px;
}

.account-type {
    margin-top: 6px;
    color: #667085;
    font-size: 14px;
}

.account-balance {
    font-size: 24px;
    font-weight: bold;
    text-align: right;
}

.account-number {
    margin-top: 18px;
    color: #667085;
    font-size: 13px;
}

.notice {
    margin-top: 32px;
    padding: 16px 18px;
    background-color: #fff7e6;
    border: 1px solid #f2c94c;
    border-radius: 10px;
    color: #694100;
}

.accounts-page-grid {
    display: grid;
    grid-template-columns: minmax(280px, 380px) minmax(0, 1fr);
    gap: 28px;
    align-items: start;
}

.form-card {
    padding: 24px;
}

.form-title {
    margin: 0 0 22px 0;
    font-size: 22px;
}

.account-form {
    display: flex;
    flex-direction: column;
    gap: 19px;
}

.form-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.form-field label {
    font-size: 14px;
    font-weight: bold;
    color: #344054;
}

.form-field input,
.form-field select {
    width: 100%;
    padding: 11px 12px;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    background-color: white;
    color: #1f2933;
    font: inherit;
}

.form-field input:focus,
.form-field select:focus {
    outline: 2px solid #84adff;
    border-color: #175cd3;
}

.form-help {
    color: #667085;
    font-size: 12px;
}

.primary-button,
.secondary-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 10px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: bold;
    cursor: pointer;
}

.primary-button {
    border: none;
    background-color: #175cd3;
    color: white;
}

.primary-button:hover {
    background-color: #1849a9;
}

.secondary-button {
    border: 1px solid #d0d5dd;
    background-color: white;
    color: #344054;
}

.secondary-button:hover {
    background-color: #f2f4f7;
}

.account-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.account-list-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 20px;
}

.account-main-details {
    min-width: 0;
    flex: 1;
}

.empty-state {
    padding: 30px;
    background-color: white;
    border-radius: 12px;
    color: #667085;
    text-align: center;
}

.form-error {
    margin-bottom: 24px;
    padding: 14px 16px;
    border: 1px solid #fda29b;
    border-radius: 9px;
    background-color: #fef3f2;
    color: #b42318;
}

.optional-fields-heading {
    margin-top: 6px;
    padding-top: 18px;
    border-top: 1px solid #eaecf0;
    color: #344054;
    font-size: 15px;
    font-weight: bold;
}

.debt-detail-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.debt-detail-grid > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 110px;
    padding: 9px 11px;
    border: 1px solid #eaecf0;
    border-radius: 8px;
    background-color: #f9fafb;
}

.debt-detail-grid span {
    color: #667085;
    font-size: 11px;
}

.debt-detail-grid strong {
    color: #344054;
    font-size: 13px;
}

.account-actions-area {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 14px;
    min-width: 150px;
}

.account-action-buttons {
    display: flex;
    align-items: center;
    gap: 10px;
}

.account-action-buttons form {
    margin: 0;
}

.edit-button,
.delete-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 72px;
    height: 36px;
    padding: 0 14px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

.edit-button {
    border: 1px solid #b2ccff;
    background-color: #eff4ff;
    color: #1849a9;
}

.delete-button {
    border: 1px solid #fda29b;
    background-color: #fef3f2;
    color: #b42318;
}

.delete-button:hover {
    background-color: #fee4e2;
}

.form-button-row {
    display: flex;
    gap: 12px;
}

.form-button-row .primary-button,
.form-button-row .secondary-button {
    flex: 1;
}

.edit-page-wrapper {
    max-width: 520px;
}

.data-warning-card {
    margin-bottom: 24px;
    padding: 18px 20px;
    border: 1px solid #fdb022;
    border-radius: 12px;
    background-color: #fffaeb;
    color: #7a2e0e;
}

.data-warning-card ul {
    margin: 10px 0;
    padding-left: 22px;
    line-height: 1.5;
}

.data-warning-card a {
    color: #175cd3;
    font-weight: bold;
}

.debt-settings-card {
    display: grid;
    grid-template-columns: minmax(250px, 1fr) minmax(500px, 1.5fr);
    gap: 28px;
    align-items: end;
    margin-bottom: 28px;
    padding: 24px;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.debt-settings-card p {
    margin: 0;
    color: #667085;
    line-height: 1.5;
}

.debt-settings-form {
    display: grid;
    grid-template-columns: 1.5fr 1fr auto;
    gap: 12px;
    align-items: end;
}

.selected-strategy-banner {
    display: flex;
    justify-content: space-between;
    gap: 30px;
    align-items: center;
    margin-bottom: 28px;
    padding: 25px;
    border: 1px solid #84adff;
    border-radius: 14px;
    background-color: #eff4ff;
}

.selected-strategy-banner h2 {
    margin: 6px 0;
    color: #1849a9;
}

.selected-strategy-banner p {
    margin: 0;
    color: #475467;
}

.recommendation-label {
    color: #175cd3;
    font-size: 12px;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.selected-target {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    min-width: 190px;
}

.selected-target span,
.selected-target small {
    color: #667085;
}

.selected-target strong {
    color: #175cd3;
    font-size: 20px;
}

.strategy-comparison-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 32px;
}

.strategy-card {
    display: flex;
    flex-direction: column;
    padding: 24px;
    border: 1px solid #eaecf0;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.strategy-card.strategy-recommended {
    border-color: #b2ccff;
}

.strategy-card.strategy-selected {
    border: 2px solid #175cd3;
    background-color: #f8faff;
}

.strategy-card-header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    min-height: 48px;
    margin-bottom: 18px;
}

.strategy-label {
    color: #101828;
    font-size: 20px;
    font-weight: bold;
}

.selected-badge {
    height: fit-content;
    padding: 6px 9px;
    border-radius: 999px;
    background-color: #175cd3;
    color: white;
    font-size: 11px;
    font-weight: bold;
}

.strategy-primary-result {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 18px;
    padding-bottom: 18px;
    border-bottom: 1px solid #eaecf0;
}

.strategy-primary-result span {
    color: #667085;
    font-size: 12px;
}

.strategy-primary-result strong {
    color: #175cd3;
    font-size: 22px;
}

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

.strategy-stat-grid > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 11px;
    border-radius: 8px;
    background-color: #f9fafb;
}

.strategy-stat-grid span {
    color: #667085;
    font-size: 11px;
}

.strategy-stat-grid strong {
    color: #344054;
    font-size: 14px;
}

.strategy-difference {
    margin-top: auto;
    padding-top: 18px;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.strategy-warning,
.simulation-warning {
    padding: 18px;
    border: 1px solid #fda29b;
    border-radius: 10px;
    background-color: #fef3f2;
    color: #b42318;
}

.strategy-warning p,
.simulation-warning p {
    margin: 8px 0 0;
    line-height: 1.5;
}

.chart-section {
    margin-bottom: 32px;
}

.chart-card {
    padding: 22px;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.chart-card canvas {
    display: block;
    width: 100%;
    height: 420px;
}

.chart-legend {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 14px;
    color: #475467;
    font-size: 13px;
}

.chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.legend-line {
    display: inline-block;
    width: 24px;
    height: 4px;
    border-radius: 999px;
}

.avalanche-line {
    background-color: #175cd3;
}

.snowball-line {
    background-color: #027a48;
}

.minimum-line {
    background-color: #b42318;
}

.payoff-table-wrapper {
    overflow-x: auto;
    margin-bottom: 32px;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.payoff-table {
    width: 100%;
    min-width: 900px;
    border-collapse: collapse;
}

.payoff-table th,
.payoff-table td {
    padding: 16px;
    border-bottom: 1px solid #eaecf0;
    text-align: left;
    vertical-align: top;
}

.payoff-table th {
    background-color: #f9fafb;
    color: #475467;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.payoff-table td {
    color: #344054;
    font-size: 14px;
}

.payoff-table tbody tr:last-child td {
    border-bottom: none;
}

.table-subtext {
    display: block;
    margin-top: 4px;
    color: #667085;
    font-size: 12px;
}

.schedule-details {
    margin-bottom: 30px;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.schedule-details summary {
    padding: 20px 22px;
    color: #344054;
    font-size: 17px;
    font-weight: bold;
    cursor: pointer;
}

.schedule-description {
    padding: 0 22px 16px;
    color: #667085;
    font-size: 13px;
}

.schedule-details .payoff-table-wrapper {
    margin: 0;
    border-radius: 0 0 14px 14px;
    box-shadow: none;
}

.schedule-table {
    min-width: 850px;
}

.debt-plan-note {
    margin-top: 28px;
    padding: 15px 17px;
    border: 1px solid #d0d5dd;
    border-radius: 9px;
    background-color: white;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.debt-empty-state {
    max-width: 600px;
    margin: 70px auto;
}

.empty-state-button {
    width: auto;
    margin-top: 10px;
}

@media (max-width: 1150px) {
    .payoff-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .strategy-comparison-grid {
        grid-template-columns: 1fr;
    }

    .debt-settings-card {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .app-layout {
        grid-template-columns: 190px minmax(0, 1fr);
    }

    .accounts-grid,
    .accounts-page-grid {
        grid-template-columns: 1fr;
    }

    .debt-settings-form {
        grid-template-columns: 1fr;
    }

    .debt-settings-form .primary-button {
        width: 100%;
    }
}

@media (max-width: 650px) {
    .app-layout {
        display: block;
    }

    .sidebar {
        padding: 18px;
    }

    .sidebar-brand {
        margin-bottom: 16px;
    }

    .sidebar-nav {
        flex-direction: row;
        overflow-x: auto;
    }

    .sidebar-link {
        white-space: nowrap;
    }

    .page-container {
        padding: 24px 16px;
    }

    .page-header,
    .selected-strategy-banner,
    .account-list-item {
        flex-direction: column;
    }

    .debt-header-actions {
        width: 100%;
    }

    .debt-header-actions > * {
        flex: 1;
    }

    .selected-target,
    .account-actions-area {
        width: 100%;
        min-width: 0;
        align-items: flex-start;
    }

    .payoff-summary-grid,
    .strategy-stat-grid {
        grid-template-columns: 1fr;
    }

    .form-button-row {
        flex-direction: column;
    }

    .chart-card canvas {
        height: 350px;
    }
}

@media print {
    body {
        background-color: white;
    }

    .app-layout {
        display: block;
    }

    .no-print {
        display: none ;
    }

    .page-container {
        max-width: none;
        padding: 0;
    }

    .summary-card,
    .strategy-card,
    .selected-strategy-banner,
    .payoff-table-wrapper,
    .schedule-details {
        box-shadow: none;
        break-inside: avoid;
    }

    .payoff-table-wrapper {
        overflow: visible;
    }

    .payoff-table {
        min-width: 0;
        font-size: 10px;
    }

    .schedule-details {
        display: block;
    }

    .schedule-details summary {
        display: none;
    }

    .schedule-details > * {
        display: block;
    }

    a {
        text-decoration: none;
    }
}

/* =========================================================
   Debt Plan visual cleanup
   ========================================================= */

.debt-plan-container {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.debt-plan-container .page-header {
    align-items: center;
    margin-bottom: 30px;
    padding-bottom: 24px;
    border-bottom: 1px solid #e4e7ec;
}

.debt-plan-container .page-header h1 {
    margin-bottom: 10px;
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -0.025em;
}

.debt-plan-container .page-header p {
    max-width: 680px;
    font-size: 16px;
    line-height: 1.6;
}

.debt-header-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}

.action-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 44px;
    padding: 0 17px;
    border-radius: 9px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition:
        background-color 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease,
        box-shadow 0.15s ease,
        transform 0.05s ease;
}

.action-button:hover {
    text-decoration: none;
}

.action-button:active {
    transform: translateY(1px);
}

.action-button:focus-visible {
    outline: 3px solid rgba(23, 92, 211, 0.24);
    outline-offset: 2px;
}

.action-button-primary {
    border: 1px solid #175cd3;
    background-color: #175cd3;
    color: white;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.08);
}

.action-button-primary:hover {
    border-color: #1849a9;
    background-color: #1849a9;
    color: white;
    box-shadow: 0 3px 8px rgba(23, 92, 211, 0.22);
}

.action-button-secondary {
    border: 1px solid #b8c0cc;
    background-color: white;
    color: #344054;
    box-shadow: 0 1px 2px rgba(16, 24, 40, 0.05);
}

.action-button-secondary:hover {
    border-color: #98a2b3;
    background-color: #f9fafb;
    color: #101828;
}

.action-button-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 16px;
    font-size: 15px;
    line-height: 1;
}

.debt-save-button {
    min-width: 190px;
}

.debt-settings-card {
    align-items: center;
    margin-bottom: 30px;
    padding: 28px;
}

.debt-settings-card .form-title {
    margin-bottom: 10px;
    font-size: 21px;
    line-height: 1.3;
}

.debt-settings-card p {
    max-width: 520px;
    font-size: 14px;
    line-height: 1.65;
}

.debt-settings-form {
    gap: 14px;
}

.debt-settings-form .form-field {
    gap: 9px;
}

.debt-settings-form .form-field label {
    font-size: 13px;
    letter-spacing: 0.01em;
}

.debt-settings-form input,
.debt-settings-form select {
    min-height: 44px;
}

.data-warning-card {
    margin-bottom: 28px;
    padding: 20px 22px;
    line-height: 1.55;
}

.data-warning-card > strong {
    display: block;
    margin-bottom: 8px;
    color: #7a2e0e;
    font-size: 16px;
}

.data-warning-card li {
    margin: 5px 0;
}

.inline-action-link {
    display: inline-flex;
    align-items: center;
    margin-top: 4px;
    padding: 5px 0;
    color: #175cd3;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.inline-action-link:hover {
    color: #1849a9;
    text-decoration: underline;
}

.selected-strategy-banner {
    margin-bottom: 30px;
    padding: 28px;
}

.selected-strategy-banner h2 {
    margin: 7px 0 9px;
    font-size: 25px;
    line-height: 1.25;
}

.selected-strategy-banner p {
    max-width: 700px;
    font-size: 14px;
    line-height: 1.6;
}

.selected-target {
    gap: 6px;
    padding: 14px 16px;
    border: 1px solid #b2ccff;
    border-radius: 10px;
    background-color: rgba(255, 255, 255, 0.7);
}

.selected-target span {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.selected-target strong {
    font-size: 20px;
    line-height: 1.25;
}

.selected-target small {
    font-size: 12px;
}

.payoff-summary-grid {
    gap: 20px;
    margin-bottom: 34px;
}

.payoff-summary-grid .summary-card {
    min-height: 155px;
    padding: 24px;
}

.payoff-summary-grid .summary-label {
    margin-bottom: 12px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.045em;
}

.payoff-summary-grid .summary-value {
    font-size: 27px;
    line-height: 1.2;
}

.payoff-summary-grid .summary-detail {
    margin-top: 11px;
    font-size: 13px;
    line-height: 1.5;
}

.debt-plan-container .section-heading-row {
    margin-top: 8px;
    margin-bottom: 18px;
    padding-top: 2px;
}

.debt-plan-container .section-title {
    font-size: 23px;
    line-height: 1.3;
    letter-spacing: -0.015em;
}

.debt-plan-container .account-count {
    padding: 6px 10px;
    border-radius: 999px;
    background-color: #eef2f6;
    color: #475467;
    font-size: 12px;
    font-weight: 600;
}

.strategy-comparison-grid {
    gap: 20px;
    margin-bottom: 38px;
}

.strategy-card {
    padding: 25px;
}

.strategy-card-header {
    align-items: flex-start;
    min-height: 52px;
    margin-bottom: 20px;
}

.strategy-label {
    font-size: 21px;
    line-height: 1.3;
}

.selected-badge {
    flex-shrink: 0;
}

.strategy-primary-result {
    gap: 7px;
    margin-bottom: 20px;
    padding-bottom: 20px;
}

.strategy-primary-result span {
    font-size: 12px;
    font-weight: 600;
}

.strategy-primary-result strong {
    font-size: 23px;
    line-height: 1.25;
}

.strategy-stat-grid {
    gap: 13px;
}

.strategy-stat-grid > div {
    min-height: 72px;
    padding: 12px;
}

.strategy-stat-grid span {
    font-size: 11px;
    line-height: 1.35;
}

.strategy-stat-grid strong {
    font-size: 14px;
    line-height: 1.4;
}

.strategy-difference {
    margin-top: 18px;
    padding-top: 17px;
    border-top: 1px solid #eaecf0;
    font-size: 13px;
    line-height: 1.65;
}

.chart-section {
    margin-bottom: 38px;
}

.chart-card {
    padding: 26px;
}

.chart-legend {
    margin-top: 18px;
    gap: 26px;
    font-weight: 600;
}

.payoff-table-wrapper {
    margin-bottom: 38px;
}

.payoff-table th {
    padding: 15px 17px;
    font-size: 11px;
    line-height: 1.4;
}

.payoff-table td {
    padding: 17px;
    font-size: 14px;
    line-height: 1.5;
}

.payoff-table tbody tr:hover {
    background-color: #f9fafb;
}

.table-subtext {
    margin-top: 5px;
    line-height: 1.45;
}

.schedule-details {
    margin-bottom: 34px;
    border: 1px solid #e4e7ec;
    overflow: hidden;
}

.schedule-details summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    padding: 21px 23px;
    background-color: white;
    color: #175cd3;
    font-size: 16px;
    font-weight: 700;
    list-style: none;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

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

.schedule-details summary:hover {
    background-color: #f8faff;
}

.schedule-details summary::after {
    content: "＋";
    flex-shrink: 0;
    color: #175cd3;
    font-size: 23px;
    font-weight: 400;
}

.schedule-details[open] summary::after {
    content: "−";
}

.schedule-summary-hint {
    margin-left: auto;
    color: #667085;
    font-size: 12px;
    font-weight: 500;
}

.schedule-description {
    padding: 17px 23px;
    border-top: 1px solid #eaecf0;
    font-size: 13px;
    line-height: 1.55;
}

.debt-plan-note {
    margin-top: 4px;
    padding: 18px 20px;
    font-size: 13px;
    line-height: 1.65;
}

.debt-plan-container button,
.debt-plan-container a,
.debt-plan-container summary,
.debt-plan-container select {
    -webkit-tap-highlight-color: transparent;
}

.debt-plan-container button:disabled,
.debt-plan-container a[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.55;
}

@media (max-width: 900px) {
    .debt-plan-container .page-header {
        align-items: flex-start;
    }

    .debt-header-actions {
        width: 100%;
    }

    .debt-header-actions .action-button {
        flex: 1;
    }

    .debt-settings-card {
        padding: 22px;
    }

    .selected-strategy-banner {
        align-items: flex-start;
    }

    .selected-target {
        align-items: flex-start;
    }
}

@media (max-width: 650px) {
    .debt-plan-container .page-header h1 {
        font-size: 31px;
    }

    .debt-header-actions {
        flex-direction: column;
    }

    .debt-header-actions .action-button {
        width: 100%;
    }

    .action-button {
        min-height: 46px;
    }

    .debt-save-button {
        width: 100%;
        min-width: 0;
    }

    .payoff-summary-grid .summary-card {
        min-height: 0;
    }

    .debt-plan-container .section-heading-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 9px;
    }

    .schedule-details summary {
        align-items: flex-start;
    }

    .schedule-summary-hint {
        display: none;
    }
}

/* =========================================================
   Transactions module
   ========================================================= */

.transactions-container {
    max-width: 1450px;
}

.transaction-header-actions {
    display: flex;
    align-items: center;
    gap: 11px;
    flex-shrink: 0;
}

.transaction-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 30px;
}

.transaction-summary-grid .summary-card {
    min-height: 128px;
}

.transaction-message {
    margin-bottom: 25px;
    padding: 15px 18px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
}

.transaction-message-success {
    border: 1px solid #86efac;
    background-color: #f0fdf4;
    color: #027a48;
}

.transaction-message-warning {
    border: 1px solid #fdb022;
    background-color: #fffaeb;
    color: #7a2e0e;
}

.transaction-message-error {
    border: 1px solid #fda29b;
    background-color: #fef3f2;
    color: #b42318;
}

.transaction-workspace {
    display: grid;
    grid-template-columns: minmax(340px, 440px) minmax(0, 1fr);
    gap: 25px;
    align-items: start;
    margin-bottom: 32px;
}

.transaction-entry-card,
.transaction-import-card,
.transaction-category-card,
.transaction-filter-card {
    border: 1px solid #eaecf0;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.transaction-entry-card {
    padding: 25px;
}

.transaction-side-column {
    display: grid;
    gap: 20px;
}

.transaction-import-card,
.transaction-category-card {
    padding: 23px;
}

.transaction-card-title {
    margin: 0;
    color: #101828;
    font-size: 21px;
    line-height: 1.3;
}

.transaction-card-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 18px;
}

.transaction-card-heading > span {
    padding: 5px 9px;
    border-radius: 999px;
    background-color: #f2f4f7;
    color: #667085;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

.transaction-card-heading p {
    margin: 7px 0 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.transaction-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-top: 21px;
}

.transaction-form-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.transaction-form textarea {
    width: 100%;
    min-height: 84px;
    padding: 11px 12px;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    color: #1f2933;
    font: inherit;
    resize: vertical;
}

.transaction-form textarea:focus {
    outline: 2px solid #84adff;
    border-color: #175cd3;
}

.transaction-submit-button {
    width: 100%;
    margin-top: 2px;
}

.transaction-import-card > p {
    margin: 8px 0 18px;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.transaction-import-form {
    display: flex;
    flex-direction: column;
    gap: 13px;
}

.file-upload-label {
    color: #344054;
    font-size: 13px;
    font-weight: 700;
}

.transaction-import-form input[type="file"] {
    width: 100%;
    padding: 12px;
    border: 1px dashed #98a2b3;
    border-radius: 9px;
    background-color: #f9fafb;
    color: #475467;
    cursor: pointer;
}

.category-spending-list {
    display: flex;
    flex-direction: column;
    gap: 17px;
}

.category-spending-item {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.category-spending-heading {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    color: #344054;
    font-size: 13px;
}

.category-spending-heading span {
    font-weight: 700;
}

.category-progress-track {
    width: 100%;
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background-color: #eaecf0;
}

.category-progress-bar {
    height: 100%;
    min-width: 2px;
    border-radius: 999px;
    background-color: #175cd3;
}

.category-spending-item small {
    color: #667085;
    font-size: 11px;
}

.transaction-empty-mini {
    padding: 22px;
    border-radius: 9px;
    background-color: #f9fafb;
    color: #667085;
    text-align: center;
    font-size: 13px;
}

.transaction-filter-card {
    margin-bottom: 34px;
    padding: 24px;
}

.transaction-filter-form {
    display: grid;
    grid-template-columns:
        minmax(210px, 1.7fr)
        repeat(3, minmax(135px, 1fr));
    gap: 15px;
    align-items: end;
}

.transaction-search-field {
    grid-column: span 2;
}

.transaction-filter-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.transaction-filter-actions .action-button {
    flex: 1;
}

.transaction-section-description {
    margin: 7px 0 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.transaction-table-wrapper {
    overflow-x: auto;
    margin-bottom: 35px;
    border: 1px solid #eaecf0;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.transaction-table {
    width: 100%;
    min-width: 1120px;
    border-collapse: collapse;
}

.transaction-table th,
.transaction-table td {
    padding: 16px;
    border-bottom: 1px solid #eaecf0;
    text-align: left;
    vertical-align: top;
}

.transaction-table th {
    background-color: #f9fafb;
    color: #475467;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.transaction-table td {
    color: #344054;
    font-size: 13px;
    line-height: 1.45;
}

.transaction-table tbody tr:last-child td {
    border-bottom: none;
}

.transaction-table tbody tr:hover {
    background-color: #fafcff;
}

.transaction-date-cell {
    color: #475467;
    white-space: nowrap;
}

.transaction-note {
    display: block;
    max-width: 310px;
    margin-top: 6px;
    color: #667085;
    font-size: 12px;
    line-height: 1.45;
}

.recurring-badge {
    display: inline-flex;
    margin-top: 8px;
    padding: 4px 7px;
    border-radius: 999px;
    background-color: #f4ebff;
    color: #6941c6;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.035em;
}

.category-badge,
.transaction-type-badge {
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.category-badge {
    background-color: #eff4ff;
    color: #1849a9;
}

.transaction-type-expense {
    background-color: #fef3f2;
    color: #b42318;
}

.transaction-type-income {
    background-color: #ecfdf3;
    color: #027a48;
}

.transaction-type-transfer {
    background-color: #f2f4f7;
    color: #475467;
}

.transaction-amount {
    font-size: 14px;
    font-weight: 800;
    text-align: right;
    white-space: nowrap;
}

.transaction-amount.income {
    color: #027a48;
}

.transaction-amount.expense {
    color: #b42318;
}

.transaction-amount.transfer {
    color: #475467;
}

.muted-text {
    color: #98a2b3;
}

.transaction-row-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.transaction-row-actions form {
    margin: 0;
}

.compact-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 10px;
    border-radius: 7px;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
}

.compact-action-edit {
    border: 1px solid #b2ccff;
    background-color: #eff4ff;
    color: #1849a9;
}

.compact-action-edit:hover {
    background-color: #dbe8ff;
}

.compact-action-delete {
    border: 1px solid #fda29b;
    background-color: #fef3f2;
    color: #b42318;
}

.compact-action-delete:hover {
    background-color: #fee4e2;
}

.transaction-empty-state {
    padding: 50px 25px;
    border: 1px solid #eaecf0;
    border-radius: 14px;
    background-color: white;
    color: #667085;
    text-align: center;
}

.transaction-empty-state h3 {
    margin: 0 0 8px;
    color: #344054;
    font-size: 20px;
}

.transaction-empty-state p {
    margin: 0;
    line-height: 1.5;
}

.edit-transaction-wrapper {
    max-width: 650px;
}

.transaction-edit-actions {
    display: flex;
    gap: 12px;
    margin-top: 3px;
}

.transaction-edit-actions .action-button {
    flex: 1;
}

@media (max-width: 1150px) {
    .transaction-summary-grid {
        grid-template-columns: repeat(
            2,
            minmax(0, 1fr)
        );
    }

    .transaction-workspace {
        grid-template-columns: 1fr;
    }

    .transaction-side-column {
        grid-template-columns: repeat(
            2,
            minmax(0, 1fr)
        );
    }

    .transaction-filter-form {
        grid-template-columns: repeat(
            3,
            minmax(0, 1fr)
        );
    }

    .transaction-search-field {
        grid-column: span 2;
    }
}

@media (max-width: 800px) {
    .transaction-header-actions {
        width: 100%;
    }

    .transaction-header-actions .action-button {
        flex: 1;
    }

    .transaction-side-column {
        grid-template-columns: 1fr;
    }

    .transaction-filter-form {
        grid-template-columns: repeat(
            2,
            minmax(0, 1fr)
        );
    }

    .transaction-search-field {
        grid-column: span 2;
    }

    .transaction-filter-actions {
        grid-column: span 2;
    }
}

@media (max-width: 650px) {
    .transaction-header-actions,
    .transaction-edit-actions {
        flex-direction: column;
    }

    .transaction-header-actions .action-button,
    .transaction-edit-actions .action-button {
        width: 100%;
    }

    .transaction-summary-grid,
    .transaction-form-row,
    .transaction-filter-form {
        grid-template-columns: 1fr;
    }

    .transaction-search-field,
    .transaction-filter-actions {
        grid-column: auto;
    }

    .transaction-filter-actions {
        flex-direction: column;
    }

    .transaction-filter-actions .action-button {
        width: 100%;
    }

    .transaction-card-heading {
        flex-direction: column;
    }
}

/* =========================================================
   Budgets module
   ========================================================= */

.budgets-container {
    max-width: 1450px;
}

.budget-page-header {
    align-items: center;
    margin-bottom: 28px;
    padding-bottom: 24px;
    border-bottom: 1px solid #e4e7ec;
}

.budget-page-header h1 {
    margin-bottom: 10px;
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -0.025em;
}

.budget-page-header p {
    max-width: 680px;
    line-height: 1.6;
}

.budget-header-actions {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex-shrink: 0;
}

.budget-month-form {
    display: flex;
    align-items: flex-end;
    gap: 10px;
}

.budget-month-form .form-field {
    min-width: 175px;
}

.budget-month-form input {
    min-height: 44px;
}

.budget-export-button {
    min-height: 44px;
}

.budget-month-banner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    margin-bottom: 28px;
    padding: 16px 19px;
    border: 1px solid #b2ccff;
    border-radius: 11px;
    background-color: #eff4ff;
}

.budget-month-banner > div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.budget-month-banner span {
    color: #475467;
    font-size: 12px;
}

.budget-month-banner strong {
    color: #1849a9;
    font-size: 18px;
}

.budget-current-month-badge {
    display: inline-flex;
    align-items: center;
    padding: 7px 10px;
    border-radius: 999px;
    background-color: #175cd3;
    color: white ;
    font-size: 11px ;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.035em;
}

.budget-summary-grid {
    display: grid;
    grid-template-columns: repeat(
        4,
        minmax(0, 1fr)
    );
    gap: 18px;
    margin-bottom: 30px;
}

.budget-summary-grid .summary-card {
    min-height: 145px;
}

.budget-alert-panel {
    margin-bottom: 30px;
    padding: 24px;
    border: 1px solid #fdb022;
    border-radius: 14px;
    background-color: #fffaeb;
}

.budget-alert-heading,
.budget-analysis-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
}

.budget-alert-heading {
    margin-bottom: 17px;
}

.budget-alert-heading h2,
.budget-analysis-heading h2 {
    margin: 0;
    color: #101828;
    font-size: 20px;
    line-height: 1.3;
}

.budget-alert-heading p,
.budget-analysis-heading p {
    margin: 6px 0 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.budget-alert-heading > span {
    padding: 6px 9px;
    border-radius: 999px;
    background-color: #f79009;
    color: white;
    font-size: 11px;
    font-weight: 700;
}

.budget-alert-list {
    display: grid;
    grid-template-columns: repeat(
        2,
        minmax(0, 1fr)
    );
    gap: 12px;
}

.budget-alert-item {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 15px 16px;
    border-radius: 10px;
    background-color: white;
}

.budget-alert-item strong {
    color: #344054;
    font-size: 14px;
}

.budget-alert-item p {
    margin: 5px 0 0;
    color: #667085;
    font-size: 12px;
    line-height: 1.45;
}

.budget-alert-item > span {
    flex-shrink: 0;
    font-size: 16px;
    font-weight: 800;
}

.budget-alert-warning {
    border-left: 4px solid #f79009;
}

.budget-alert-warning > span {
    color: #b54708;
}

.budget-alert-limit {
    border-left: 4px solid #f04438;
}

.budget-alert-limit > span {
    color: #b42318;
}

.budget-alert-over {
    border-left: 4px solid #b42318;
    background-color: #fef3f2;
}

.budget-alert-over > span {
    color: #b42318;
}

.budget-workspace {
    display: grid;
    grid-template-columns:
        minmax(300px, 0.8fr)
        minmax(500px, 1.4fr);
    gap: 24px;
    align-items: start;
    margin-bottom: 34px;
}

.budget-add-card,
.budget-settings-card,
.budget-recommendations-card,
.budget-unbudgeted-card,
.budget-chart-card {
    border: 1px solid #eaecf0;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.budget-add-card,
.budget-settings-card {
    padding: 24px;
}

.budget-card-title {
    margin: 0;
    color: #101828;
    font-size: 21px;
    line-height: 1.3;
}

.budget-add-card > p,
.budget-settings-card > div > p {
    margin: 8px 0 20px;
    color: #667085;
    font-size: 13px;
    line-height: 1.55;
}

.budget-add-form {
    display: flex;
    flex-direction: column;
    gap: 17px;
}

.budget-add-form .action-button {
    width: 100%;
}

.budget-settings-form {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(135px, 1fr))
        auto;
    gap: 13px;
    align-items: end;
}

.input-suffix-wrapper {
    display: flex;
    align-items: stretch;
}

.input-suffix-wrapper input {
    min-width: 0;
    border-radius: 8px 0 0 8px;
}

.input-suffix-wrapper span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 11px;
    border: 1px solid #d0d5dd;
    border-left: none;
    border-radius: 0 8px 8px 0;
    background-color: #f9fafb;
    color: #667085;
    font-size: 12px;
    white-space: nowrap;
}

.budget-section-description {
    margin: 7px 0 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.budget-progress-grid {
    display: grid;
    grid-template-columns: repeat(
        2,
        minmax(0, 1fr)
    );
    gap: 18px;
    margin-bottom: 36px;
}

.budget-progress-card {
    padding: 22px;
    border: 1px solid #eaecf0;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.budget-progress-warning {
    border-color: #fdb022;
}

.budget-progress-limit,
.budget-progress-over {
    border-color: #fda29b;
}

.budget-progress-over {
    background-color: #fffafa;
}

.budget-progress-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 20px;
}

.budget-progress-header h3 {
    margin: 0 0 8px;
    color: #101828;
    font-size: 19px;
    line-height: 1.3;
}

.budget-status-badge {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.035em;
}

.budget-status-healthy {
    background-color: #ecfdf3;
    color: #027a48;
}

.budget-status-warning {
    background-color: #fffaeb;
    color: #b54708;
}

.budget-status-limit,
.budget-status-over {
    background-color: #fef3f2;
    color: #b42318;
}

.budget-progress-percent {
    color: #344054;
    font-size: 23px;
    font-weight: 800;
    white-space: nowrap;
}

.budget-progress-values {
    display: grid;
    grid-template-columns: repeat(
        3,
        minmax(0, 1fr)
    );
    gap: 10px;
    margin-bottom: 17px;
}

.budget-progress-values > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 11px;
    border-radius: 8px;
    background-color: #f9fafb;
}

.budget-progress-values span {
    color: #667085;
    font-size: 11px;
}

.budget-progress-values strong {
    color: #344054;
    font-size: 14px;
}

.budget-progress-track {
    width: 100%;
    height: 11px;
    overflow: hidden;
    border-radius: 999px;
    background-color: #eaecf0;
}

.budget-progress-fill {
    height: 100%;
    min-width: 2px;
    border-radius: 999px;
}

.budget-progress-fill-healthy {
    background-color: #12b76a;
}

.budget-progress-fill-warning {
    background-color: #f79009;
}

.budget-progress-fill-limit,
.budget-progress-fill-over {
    background-color: #f04438;
}

.budget-progress-actions {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12px;
    margin-top: 19px;
    padding-top: 17px;
    border-top: 1px solid #eaecf0;
}

.budget-progress-actions > form:last-child {
    margin: 0;
}

.budget-inline-edit-form {
    display: grid;
    grid-template-columns: auto 115px auto;
    gap: 8px;
    align-items: center;
}

.budget-inline-edit-form label {
    color: #667085;
    font-size: 11px;
    font-weight: 700;
}

.budget-inline-edit-form input {
    width: 100%;
    height: 34px;
    padding: 6px 8px;
    border: 1px solid #d0d5dd;
    border-radius: 7px;
    font: inherit;
    font-size: 12px;
}

.budget-empty-state {
    margin-bottom: 36px;
    padding: 45px 25px;
    border: 1px solid #eaecf0;
    border-radius: 14px;
    background-color: white;
    color: #667085;
    text-align: center;
}

.budget-empty-state h3 {
    margin: 0 0 8px;
    color: #344054;
    font-size: 20px;
}

.budget-empty-state p {
    margin: 0;
    line-height: 1.55;
}

.budget-analysis-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.5fr)
        minmax(280px, 0.75fr);
    gap: 22px;
    align-items: start;
    margin-bottom: 36px;
}

.budget-recommendations-card,
.budget-unbudgeted-card {
    padding: 24px;
}

.budget-analysis-heading {
    margin-bottom: 19px;
}

.budget-recommendation-list,
.unbudgeted-spending-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.budget-recommendation-row,
.unbudgeted-spending-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 22px;
    padding: 14px 15px;
    border: 1px solid #eaecf0;
    border-radius: 9px;
    background-color: #f9fafb;
}

.budget-recommendation-row > div:first-child {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.budget-recommendation-row > div:first-child strong,
.unbudgeted-spending-row span {
    color: #344054;
    font-size: 14px;
}

.budget-recommendation-row > div:first-child span {
    color: #667085;
    font-size: 11px;
    line-height: 1.45;
}

.budget-recommendation-row > div:last-child {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    flex-shrink: 0;
}

.budget-recommendation-row > div:last-child span {
    color: #667085;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.035em;
}

.budget-recommendation-row > div:last-child strong,
.unbudgeted-spending-row strong {
    color: #175cd3;
    font-size: 17px;
}

.budget-analysis-empty {
    padding: 25px;
    border-radius: 9px;
    background-color: #f9fafb;
    color: #667085;
    font-size: 13px;
    line-height: 1.55;
    text-align: center;
}

.budget-chart-section {
    margin-bottom: 36px;
}

.budget-chart-card {
    padding: 24px;
}

.budget-chart-card canvas {
    display: block;
    width: 100%;
    height: 360px;
}

.budget-notification-note {
    padding: 19px 21px;
    border: 1px solid #b2ccff;
    border-radius: 11px;
    background-color: #eff4ff;
}

.budget-notification-note strong {
    display: block;
    color: #1849a9;
    font-size: 15px;
}

.budget-notification-note p {
    margin: 7px 0 0;
    color: #475467;
    font-size: 13px;
    line-height: 1.6;
}

@media (max-width: 1200px) {
    .budget-summary-grid {
        grid-template-columns: repeat(
            2,
            minmax(0, 1fr)
        );
    }

    .budget-workspace,
    .budget-analysis-grid {
        grid-template-columns: 1fr;
    }

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

    .budget-settings-form .action-button {
        grid-column: span 3;
        width: 100%;
    }
}

@media (max-width: 900px) {
    .budget-page-header {
        align-items: flex-start;
    }

    .budget-header-actions {
        width: 100%;
        align-items: stretch;
    }

    .budget-month-form {
        flex: 1;
    }

    .budget-month-form .form-field {
        flex: 1;
    }

    .budget-progress-grid {
        grid-template-columns: 1fr;
    }

    .budget-alert-list {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .budget-header-actions,
    .budget-month-form,
    .budget-month-banner,
    .budget-alert-heading,
    .budget-analysis-heading {
        flex-direction: column;
        align-items: stretch;
    }

    .budget-header-actions .action-button,
    .budget-month-form .action-button {
        width: 100%;
    }

    .budget-summary-grid,
    .budget-settings-form,
    .budget-progress-values {
        grid-template-columns: 1fr;
    }

    .budget-settings-form .action-button {
        grid-column: auto;
    }

    .budget-progress-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .budget-inline-edit-form {
        grid-template-columns: 1fr;
        width: 100%;
    }

    .budget-inline-edit-form input,
    .budget-inline-edit-form .compact-action,
    .budget-progress-actions > form:last-child,
    .budget-progress-actions > form:last-child button {
        width: 100%;
    }

    .budget-recommendation-row,
    .unbudgeted-spending-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .budget-recommendation-row > div:last-child {
        align-items: flex-start;
    }

    .budget-chart-card {
        padding: 15px;
    }

    .budget-chart-card canvas {
        height: 320px;
    }
}

/* =========================================================
   Notifications and Discord module
   ========================================================= */

.notifications-container {
    max-width: 1400px;
}

.notification-page-header {
    align-items: center;
    margin-bottom: 28px;
    padding-bottom: 24px;
    border-bottom: 1px solid #e4e7ec;
}

.notification-page-header h1 {
    margin-bottom: 10px;
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -0.025em;
}

.notification-page-header p {
    max-width: 720px;
    line-height: 1.6;
}

.notification-header-actions {
    display: flex;
    align-items: center;
    gap: 11px;
}

.notification-header-actions form {
    margin: 0;
}

.discord-status-banner {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 28px;
    padding: 18px 20px;
    border-radius: 12px;
}

.discord-status-connected {
    border: 1px solid #86efac;
    background-color: #f0fdf4;
}

.discord-status-disconnected {
    border: 1px solid #fda29b;
    background-color: #fef3f2;
}

.discord-status-icon {
    display: flex;
    flex: 0 0 38px;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background-color: white;
    font-size: 19px;
    font-weight: 800;
}

.discord-status-connected .discord-status-icon,
.discord-status-connected strong {
    color: #027a48;
}

.discord-status-disconnected .discord-status-icon,
.discord-status-disconnected strong {
    color: #b42318;
}

.discord-status-banner p {
    margin: 5px 0 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.notification-summary-grid {
    display: grid;
    grid-template-columns: repeat(
        4,
        minmax(0, 1fr)
    );
    gap: 18px;
    margin-bottom: 30px;
}

.notification-summary-grid .summary-card {
    min-height: 138px;
}

.notification-delivery-state {
    font-size: 25px;
    font-weight: 800;
}

.notification-delivery-state.enabled {
    color: #027a48;
}

.notification-delivery-state.disabled {
    color: #667085;
}

.notification-settings-card,
.notification-controls-card {
    margin-bottom: 30px;
    padding: 24px;
    border: 1px solid #eaecf0;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.notification-settings-heading {
    margin-bottom: 20px;
}

.notification-settings-heading h2 {
    margin: 0;
    color: #101828;
    font-size: 21px;
}

.notification-settings-heading p {
    margin: 7px 0 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.55;
}

.notification-settings-form {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.notification-toggle-grid {
    display: grid;
    grid-template-columns: repeat(
        3,
        minmax(0, 1fr)
    );
    gap: 13px;
}

.notification-toggle-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px;
    border: 1px solid #d0d5dd;
    border-radius: 10px;
    background-color: #f9fafb;
    cursor: pointer;
    transition:
        border-color 0.15s ease,
        background-color 0.15s ease;
}

.notification-toggle-card:hover {
    border-color: #84adff;
    background-color: #f8faff;
}

.notification-toggle-card input {
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    accent-color: #175cd3;
    cursor: pointer;
}

.notification-toggle-card span {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.notification-toggle-card strong {
    color: #344054;
    font-size: 14px;
}

.notification-toggle-card small {
    color: #667085;
    font-size: 11px;
    line-height: 1.45;
}

.notification-number-settings {
    display: grid;
    grid-template-columns:
        minmax(180px, 1fr)
        minmax(180px, 1fr)
        auto;
    gap: 15px;
    align-items: end;
    padding-top: 20px;
    border-top: 1px solid #eaecf0;
}

.notification-controls-card {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 22px;
}

.notification-filter-form {
    display: flex;
    align-items: flex-end;
    gap: 12px;
}

.notification-filter-form .form-field {
    min-width: 180px;
}

.notification-bulk-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.notification-bulk-actions form {
    margin: 0;
}

.action-button-danger {
    border: 1px solid #fda29b;
    background-color: #fef3f2;
    color: #b42318;
}

.action-button-danger:hover {
    border-color: #f97066;
    background-color: #fee4e2;
}

.notification-section-description {
    margin: 7px 0 0;
    color: #667085;
    font-size: 13px;
}

.notification-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-bottom: 32px;
}

.notification-card {
    display: grid;
    grid-template-columns:
        46px
        minmax(0, 1fr)
        auto;
    gap: 17px;
    align-items: start;
    padding: 20px;
    border: 1px solid #eaecf0;
    border-left-width: 5px;
    border-radius: 13px;
    background-color: white;
    box-shadow: 0 2px 9px rgba(0, 0, 0, 0.05);
}

.notification-card.notification-unread {
    background-color: #f8faff;
}

.notification-severity-info {
    border-left-color: #175cd3;
}

.notification-severity-success {
    border-left-color: #12b76a;
}

.notification-severity-warning {
    border-left-color: #f79009;
}

.notification-severity-critical {
    border-left-color: #f04438;
}

.notification-card-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background-color: #f2f4f7;
    color: #344054;
    font-size: 18px;
    font-weight: 800;
}

.notification-severity-info
.notification-card-icon {
    background-color: #eff4ff;
    color: #175cd3;
}

.notification-severity-success
.notification-card-icon {
    background-color: #ecfdf3;
    color: #027a48;
}

.notification-severity-warning
.notification-card-icon {
    background-color: #fffaeb;
    color: #b54708;
}

.notification-severity-critical
.notification-card-icon {
    background-color: #fef3f2;
    color: #b42318;
}

.notification-card-content {
    min-width: 0;
}

.notification-card-heading {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 11px;
}

.notification-card-heading h3 {
    margin: 6px 0 0;
    color: #101828;
    font-size: 17px;
    line-height: 1.35;
}

.notification-card-heading time {
    flex-shrink: 0;
    color: #98a2b3;
    font-size: 11px;
    white-space: nowrap;
}

.notification-meta-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.notification-type-label,
.notification-new-badge {
    display: inline-flex;
    padding: 4px 7px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.045em;
}

.notification-type-label {
    background-color: #f2f4f7;
    color: #475467;
}

.notification-new-badge {
    background-color: #175cd3;
    color: white;
}

.notification-message {
    color: #475467;
    font-size: 13px;
    line-height: 1.7;
}

.notification-message strong {
    color: #344054;
}

.notification-delivery-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 14px;
}

.discord-delivery-badge {
    display: inline-flex;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
}

.discord-delivery-sent {
    background-color: #ecfdf3;
    color: #027a48;
}

.discord-delivery-not_sent,
.discord-delivery-not_configured {
    background-color: #f2f4f7;
    color: #475467;
}

.discord-delivery-failed,
.discord-delivery-rate_limited {
    background-color: #fef3f2;
    color: #b42318;
}

.notification-error-text {
    max-width: 650px;
    color: #b42318;
    font-size: 11px;
    overflow-wrap: anywhere;
}

.notification-card-actions {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.notification-card-actions form {
    margin: 0;
}

.compact-action-resend {
    border: 1px solid #d6bbfb;
    background-color: #f4ebff;
    color: #6941c6;
}

.compact-action-resend:hover {
    background-color: #e9d7fe;
}

.notification-empty-state {
    margin-bottom: 32px;
    padding: 50px 25px;
    border: 1px solid #eaecf0;
    border-radius: 14px;
    background-color: white;
    color: #667085;
    text-align: center;
}

.notification-empty-state h3 {
    margin: 0 0 8px;
    color: #344054;
    font-size: 20px;
}

.notification-empty-state p {
    margin: 0;
    line-height: 1.5;
}

.notification-scheduling-note {
    padding: 19px 21px;
    border: 1px solid #b2ccff;
    border-radius: 11px;
    background-color: #eff4ff;
}

.notification-scheduling-note strong {
    display: block;
    color: #1849a9;
    font-size: 15px;
}

.notification-scheduling-note p {
    margin: 7px 0 0;
    color: #475467;
    font-size: 13px;
    line-height: 1.6;
}

@media (max-width: 1150px) {
    .notification-summary-grid {
        grid-template-columns: repeat(
            2,
            minmax(0, 1fr)
        );
    }

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

    .notification-controls-card {
        align-items: stretch;
        flex-direction: column;
    }
}

@media (max-width: 850px) {
    .notification-page-header {
        align-items: flex-start;
    }

    .notification-header-actions {
        width: 100%;
    }

    .notification-header-actions form {
        flex: 1;
    }

    .notification-header-actions button {
        width: 100%;
    }

    .notification-number-settings {
        grid-template-columns: 1fr;
    }

    .notification-filter-form {
        display: grid;
        grid-template-columns: repeat(
            2,
            minmax(0, 1fr)
        );
        width: 100%;
    }

    .notification-filter-form .form-field {
        min-width: 0;
    }

    .notification-card {
        grid-template-columns:
            42px
            minmax(0, 1fr);
    }

    .notification-card-actions {
        grid-column: 2;
        flex-direction: row;
        flex-wrap: wrap;
    }
}

@media (max-width: 650px) {
    .notification-header-actions,
    .notification-bulk-actions,
    .notification-card-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .notification-summary-grid,
    .notification-toggle-grid,
    .notification-filter-form {
        grid-template-columns: 1fr;
    }

    .notification-bulk-actions,
    .notification-bulk-actions form,
    .notification-bulk-actions button {
        width: 100%;
    }

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

    .notification-card-icon {
        width: 38px;
        height: 38px;
    }

    .notification-card-actions {
        grid-column: auto;
        flex-direction: column;
    }

    .notification-card-actions form,
    .notification-card-actions button {
        width: 100%;
    }

    .notification-card-heading time {
        white-space: normal;
    }
}

/* =========================================================
   Plaid connections and automated synchronization
   ========================================================= */

.connections-container {
    max-width: 1400px;
}

.connection-page-header {
    align-items: center;
    margin-bottom: 28px;
    padding-bottom: 24px;
    border-bottom: 1px solid #e4e7ec;
}

.connection-page-header h1 {
    margin-bottom: 10px;
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -0.025em;
}

.connection-page-header p {
    max-width: 720px;
    line-height: 1.6;
}

.connection-header-actions {
    display: flex;
    align-items: center;
    gap: 11px;
}

.connection-header-actions form {
    margin: 0;
}

.plaid-environment-banner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 22px;
    margin-bottom: 28px;
    padding: 19px 21px;
    border-radius: 12px;
}

.plaid-ready {
    border: 1px solid #86efac;
    background-color: #f0fdf4;
}

.plaid-not-ready {
    border: 1px solid #fda29b;
    background-color: #fef3f2;
}

.plaid-environment-banner > div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.plaid-environment-banner > div > span {
    color: #667085;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.045em;
}

.plaid-environment-banner strong {
    color: #101828;
    font-size: 19px;
}

.plaid-environment-banner p {
    margin: 2px 0 0;
    color: #667085;
    font-size: 13px;
}

.plaid-status-pill {
    padding: 7px 11px;
    border-radius: 999px;
    background-color: white;
    color: #344054;
    font-size: 11px;
    font-weight: 800;
}

.connection-summary-grid {
    display: grid;
    grid-template-columns: repeat(
        4,
        minmax(0, 1fr)
    );
    gap: 18px;
    margin-bottom: 30px;
}

.connection-summary-grid .summary-card {
    min-height: 138px;
}

.connection-auto-status {
    color: #027a48;
    font-size: 25px;
    font-weight: 800;
}

.connection-explanation-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
    margin-bottom: 32px;
    padding: 24px;
    border: 1px solid #b2ccff;
    border-radius: 14px;
    background-color: #eff4ff;
}

.connection-explanation-card h2 {
    margin: 0;
    color: #1849a9;
    font-size: 20px;
}

.connection-explanation-card p {
    max-width: 690px;
    margin: 7px 0 0;
    color: #475467;
    font-size: 13px;
    line-height: 1.6;
}

.connection-flow {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-shrink: 0;
}

.connection-flow span {
    padding: 8px 10px;
    border-radius: 8px;
    background-color: white;
    color: #1849a9;
    font-size: 11px;
    font-weight: 800;
}

.connection-flow i {
    color: #84adff;
    font-style: normal;
}

.connection-section-description {
    margin: 7px 0 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.connection-card-grid {
    display: grid;
    grid-template-columns: repeat(
        2,
        minmax(0, 1fr)
    );
    gap: 18px;
    margin-bottom: 32px;
}

.institution-card {
    padding: 23px;
    border: 1px solid #eaecf0;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.institution-status-error {
    border-color: #fda29b;
}

.institution-card-header {
    display: grid;
    grid-template-columns:
        45px
        minmax(0, 1fr)
        auto;
    gap: 13px;
    align-items: center;
    margin-bottom: 21px;
}

.institution-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 43px;
    height: 43px;
    border-radius: 11px;
    background-color: #eff4ff;
    color: #175cd3;
    font-size: 18px;
    font-weight: 800;
}

.institution-card-header h3 {
    margin: 0 0 4px;
    color: #101828;
    font-size: 18px;
}

.institution-card-header div > span {
    color: #667085;
    font-size: 12px;
}

.institution-status-badge {
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.035em;
}

.institution-status-badge-active {
    background-color: #ecfdf3;
    color: #027a48;
}

.institution-status-badge-error {
    background-color: #fef3f2;
    color: #b42318;
}

.institution-sync-details {
    display: grid;
    grid-template-columns: repeat(
        2,
        minmax(0, 1fr)
    );
    gap: 11px;
    margin-bottom: 18px;
}

.institution-sync-details > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 12px;
    border-radius: 9px;
    background-color: #f9fafb;
}

.institution-sync-details span {
    color: #667085;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.035em;
}

.institution-sync-details strong {
    color: #344054;
    font-size: 12px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.institution-error {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid #fda29b;
    border-radius: 9px;
    background-color: #fef3f2;
}

.institution-error strong {
    color: #b42318;
    font-size: 12px;
}

.institution-error p {
    margin: 6px 0 0;
    color: #b42318;
    font-size: 11px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.institution-actions {
    display: flex;
    gap: 10px;
    padding-top: 18px;
    border-top: 1px solid #eaecf0;
}

.institution-actions form {
    flex: 1;
    margin: 0;
}

.institution-actions button {
    width: 100%;
}

.connection-empty-state {
    margin-bottom: 32px;
    padding: 55px 25px;
    border: 1px solid #eaecf0;
    border-radius: 14px;
    background-color: white;
    text-align: center;
}

.connection-empty-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    margin: 0 auto 17px;
    border-radius: 50%;
    background-color: #eff4ff;
    color: #175cd3;
    font-size: 27px;
}

.connection-empty-state h3 {
    margin: 0 0 8px;
    color: #344054;
    font-size: 20px;
}

.connection-empty-state p {
    max-width: 520px;
    margin: 0 auto 20px;
    color: #667085;
    font-size: 13px;
    line-height: 1.55;
}

.connection-security-note {
    padding: 19px 21px;
    border: 1px solid #d0d5dd;
    border-radius: 11px;
    background-color: white;
}

.connection-security-note strong {
    color: #344054;
    font-size: 14px;
}

.connection-security-note p {
    margin: 7px 0 0;
    color: #667085;
    font-size: 12px;
    line-height: 1.6;
}

.plaid-loading-overlay {
    position: fixed;
    z-index: 5000;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background-color: rgba(16, 24, 40, 0.55);
}

.plaid-loading-overlay[hidden] {
    display: none;
}

.plaid-loading-card {
    min-width: 300px;
    padding: 30px;
    border-radius: 14px;
    background-color: white;
    text-align: center;
    box-shadow: 0 15px 45px rgba(0, 0, 0, 0.2);
}

.plaid-loading-card strong {
    display: block;
    margin-top: 17px;
    color: #101828;
    font-size: 17px;
}

.plaid-loading-card p {
    margin: 7px 0 0;
    color: #667085;
    font-size: 13px;
}

.plaid-spinner {
    width: 38px;
    height: 38px;
    margin: 0 auto;
    border: 4px solid #dbe8ff;
    border-top-color: #175cd3;
    border-radius: 50%;
    animation: plaid-spin 0.8s linear infinite;
}

@keyframes plaid-spin {
    to {
        transform: rotate(360deg);
    }
}

.plaid-source-badge,
.pending-transaction-badge {
    display: inline-flex;
    margin-top: 8px;
    margin-right: 5px;
    padding: 4px 7px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.035em;
}

.plaid-source-badge {
    background-color: #eff4ff;
    color: #175cd3;
}

.pending-transaction-badge {
    background-color: #fffaeb;
    color: #b54708;
}

.account-sync-text {
    display: block;
    margin-top: 6px;
    color: #667085;
    font-size: 11px;
}

@media (max-width: 1050px) {
    .connection-summary-grid {
        grid-template-columns: repeat(
            2,
            minmax(0, 1fr)
        );
    }

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

    .connection-explanation-card {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 700px) {
    .connection-page-header,
    .plaid-environment-banner {
        align-items: stretch;
        flex-direction: column;
    }

    .connection-header-actions {
        width: 100%;
        flex-direction: column;
    }

    .connection-header-actions form,
    .connection-header-actions button {
        width: 100%;
    }

    .connection-summary-grid,
    .institution-sync-details {
        grid-template-columns: 1fr;
    }

    .connection-flow {
        align-items: stretch;
        flex-direction: column;
        width: 100%;
    }

    .connection-flow span {
        text-align: center;
    }

    .connection-flow i {
        text-align: center;
        transform: rotate(90deg);
    }

    .institution-card-header {
        grid-template-columns:
            43px
            minmax(0, 1fr);
    }

    .institution-status-badge {
        grid-column: 2;
        justify-self: start;
    }

    .institution-actions {
        flex-direction: column;
    }
}

/* =========================================================
   Plaid production readiness
   ========================================================= */

.production-readiness-card {
    margin-bottom: 32px;
    padding: 24px;
    border: 1px solid #d0d5dd;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.production-readiness-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 20px;
}

.production-readiness-heading h2 {
    margin: 0;
    color: #101828;
    font-size: 21px;
}

.production-readiness-heading p {
    max-width: 700px;
    margin: 7px 0 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.55;
}

.production-readiness-heading > span {
    padding: 6px 10px;
    border-radius: 999px;
    background-color: #f2f4f7;
    color: #475467;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

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

.production-tool-grid article {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 18px;
    border: 1px solid #eaecf0;
    border-radius: 11px;
    background-color: #f9fafb;
}

.production-tool-grid h3 {
    margin: 0;
    color: #344054;
    font-size: 15px;
}

.production-tool-grid p {
    flex: 1;
    margin: 8px 0 17px;
    color: #667085;
    font-size: 12px;
    line-height: 1.55;
}

.production-tool-grid form {
    width: 100%;
    margin: 0;
}

.production-tool-grid .action-button {
    width: 100%;
}

.action-button-warning {
    border: 1px solid #fdb022;
    background-color: #fffaeb;
    color: #b54708;
}

.action-button-warning:hover {
    border-color: #f79009;
    background-color: #fef0c7;
}

.institution-actions {
    display: grid;
    grid-template-columns: repeat(
        2,
        minmax(0, 1fr)
    );
}

.institution-actions > form,
.institution-actions > button {
    width: 100%;
}

.account-match-warning {
    margin-bottom: 25px;
}

.account-match-list {
    display: flex;
    flex-direction: column;
    gap: 19px;
}

.account-match-card {
    display: grid;
    grid-template-columns:
        minmax(250px, 0.65fr)
        minmax(0, 1.35fr);
    gap: 24px;
    padding: 23px;
    border: 1px solid #eaecf0;
    border-radius: 14px;
    background-color: white;
    box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.account-match-source {
    padding: 18px;
    border-radius: 11px;
    background-color: #eff4ff;
}

.account-match-source > span {
    color: #175cd3;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.account-match-source h2 {
    margin: 8px 0 6px;
    color: #1849a9;
    font-size: 20px;
}

.account-match-source p {
    margin: 0 0 15px;
    color: #475467;
    font-size: 12px;
}

.account-match-source > strong {
    color: #101828;
    font-size: 24px;
}

.account-match-candidates h3 {
    margin: 0 0 13px;
    color: #344054;
    font-size: 16px;
}

.account-match-option {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    margin-bottom: 10px;
    padding: 14px;
    border: 1px solid #eaecf0;
    border-radius: 9px;
    background-color: #f9fafb;
}

.account-match-option > div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.account-match-option strong {
    color: #344054;
    font-size: 14px;
}

.account-match-option span,
.account-match-option small {
    color: #667085;
    font-size: 11px;
}

@media (max-width: 1050px) {
    .production-tool-grid {
        grid-template-columns: 1fr;
    }

    .account-match-card {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 700px) {
    .production-readiness-heading,
    .account-match-option {
        align-items: stretch;
        flex-direction: column;
    }

    .institution-actions {
        grid-template-columns: 1fr;
    }

    .account-match-option .action-button {
        width: 100%;
    }
}

/* module: base.css */
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg-bottom); scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100vh;
    color: var(--text-primary);
    background: linear-gradient(180deg, var(--bg-top) 0%, var(--bg-mid) 44%, var(--bg-bottom) 100%);
    font-family: var(--font-ui);
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
::selection { background: rgba(98,230,167,.25); color: var(--text-primary); }
.aurora-backdrop { position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.aurora-backdrop span { position: absolute; filter: blur(90px); opacity: .22; border-radius: 50%; }
.aurora-backdrop span:nth-child(1) { width: 48vw; height: 32vw; left: 7vw; top: -18vw; background: radial-gradient(circle, rgba(98,230,167,.7), transparent 68%); }
.aurora-backdrop span:nth-child(2) { width: 45vw; height: 34vw; right: -6vw; top: -14vw; background: radial-gradient(circle, rgba(155,123,255,.62), transparent 68%); }
.aurora-backdrop span:nth-child(3) { width: 38vw; height: 28vw; left: 38vw; bottom: -19vw; background: radial-gradient(circle, rgba(87,215,232,.36), transparent 70%); }
.mountain-horizon{position:fixed;z-index:0;left:var(--sidebar-width,0px);right:0;bottom:0;height:min(25vw,270px);min-height:120px;pointer-events:none;background:url('/static/img/arcfolio-mountains.svg') bottom center/100% 100% no-repeat;opacity:.78;mix-blend-mode:screen;mask-image:linear-gradient(to top,rgba(0,0,0,1),rgba(0,0,0,.75) 72%,transparent);-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,1),rgba(0,0,0,.75) 72%,transparent)}
html[data-theme="pearl"] .mountain-horizon{opacity:.3;mix-blend-mode:multiply;filter:brightness(1.35) saturate(.75)}
@media(max-width:1180px){.mountain-horizon{left:0;height:min(32vw,220px)}}
@media(max-width:600px){.mountain-horizon{height:150px;opacity:.52}}
.app-layout { position: relative; z-index: 1; min-height: 100vh; display: grid; grid-template-columns: var(--sidebar-width) minmax(0,1fr); }
.sidebar {
    position: sticky; top: 0; height: 100vh; padding: 22px 16px 18px;
    display: flex; flex-direction: column; gap: 24px;
    background: linear-gradient(180deg, rgba(7,10,17,.94), rgba(10,13,21,.86));
    border-right: 1px solid var(--border-soft); backdrop-filter: blur(26px) saturate(125%);
}
.sidebar-brand { display: flex; align-items: center; gap: 12px; padding: 8px 9px 14px; border-bottom: 1px solid var(--border-soft); }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 14px; color: var(--text-primary); background: linear-gradient(145deg, rgba(255,255,255,.11), rgba(255,255,255,.035)); border: 1px solid var(--border-strong); box-shadow: 0 12px 28px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.1); }
.brand-mark svg { width: 29px; height: 29px; }
.brand-copy { display: flex; flex-direction: column; min-width: 0; }
.brand-copy strong { font-family: var(--font-display); font-size: 17px; letter-spacing: -.025em; }
.brand-copy small { color: var(--text-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .11em; margin-top: 2px; }
.sidebar-nav { display: flex; flex-direction: column; gap: 5px; }
.sidebar-link { position: relative; display: flex; align-items: center; gap: 12px; min-height: 46px; padding: 0 13px; border-radius: 13px; color: var(--text-secondary); font-size: 13px; font-weight: 600; transition: .2s var(--ease-out); }
.sidebar-link:hover { color: var(--text-primary); transform: translateX(3px); background: rgba(255,255,255,.045); }
.sidebar-link.active { color: var(--text-primary); background: linear-gradient(110deg, rgba(98,230,167,.11), rgba(87,215,232,.08) 48%, rgba(155,123,255,.12)); border: 1px solid rgba(255,255,255,.11); box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 8px 24px rgba(0,0,0,.16); }
.sidebar-link.active::before { content:""; position:absolute; left:-1px; top:11px; bottom:11px; width:2px; border-radius:2px; background: linear-gradient(var(--aurora-green), var(--aurora-cyan), var(--aurora-violet)); box-shadow: 0 0 14px rgba(87,215,232,.65); }
.nav-icon { width: 19px; height: 19px; flex: 0 0 19px; opacity: .82; }
.nav-badge { margin-left: auto; min-width: 20px; height: 20px; border-radius: 10px; display:grid; place-items:center; padding: 0 6px; font-size:10px; background: rgba(255,112,122,.15); color: var(--danger); border:1px solid rgba(255,112,122,.22); }
.sidebar-footer { margin-top: auto; display: grid; gap: 10px; }
.sidebar-utility { width:100%; border:1px solid var(--border-soft); background:rgba(255,255,255,.025); border-radius:12px; min-height:42px; display:flex; align-items:center; gap:10px; padding:0 12px; cursor:pointer; color:var(--text-secondary); }
.sidebar-utility:hover { color:var(--text-primary); border-color:var(--border-strong); }
.sidebar-system { display:flex; align-items:center; gap:8px; padding: 4px 11px; color:var(--text-muted); font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.system-pulse { width:7px; height:7px; border-radius:50%; background:var(--positive); box-shadow:0 0 0 5px rgba(86,216,155,.08), 0 0 12px rgba(86,216,155,.4); }
.main-content { min-width:0; padding: 34px 42px 64px; background: transparent; }
.page-container { width:min(1440px,100%); margin:0 auto; }
.mobile-topbar { display:none; }
.mobile-brand{display:grid;gap:1px;align-items:center;color:var(--text-primary);text-decoration:none;line-height:1}
.mobile-brand strong{font:800 .86rem var(--font-display);letter-spacing:-.02em}
.mobile-brand small{color:var(--text-muted);font:700 .52rem var(--font-ui);letter-spacing:.12em;text-transform:uppercase}
.toast-region { position:fixed; right:24px; top:72px; z-index:9999; display:grid; gap:10px; width:min(380px,calc(100vw - 32px)); }

/* module: components.css */
/* Typography and hierarchy */
h1,h2,h3,h4,p { margin-top:0; }
h1,h2,h3 { font-family: var(--font-display); color:var(--text-primary); letter-spacing:-.025em; }
.page-header { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; margin-bottom:28px; padding:0; border:0; }
.page-header h1 { margin:0 0 7px; font-size:clamp(28px,3vw,42px); line-height:1.08; }
.page-header p { margin:0; color:var(--text-secondary); max-width:720px; }
.section-title { color:var(--text-primary); font-size:20px; }
.section-heading-row { margin-bottom:14px; }
.summary-label, .summary-detail, .account-type, .account-number, .form-help, label { color:var(--text-secondary); }
.summary-label, .account-count, .notification-type-label, .discord-status-label { text-transform:uppercase; letter-spacing:.09em; font-size:10px; font-weight:700; }

/* Glass surfaces */
.summary-card, .account-card, .account-list-item, .form-card, .notification-settings-card, .notification-center-card, .notification-controls-card, .institution-card, .connection-explanation-card, .production-readiness-card, .debt-summary-card, .debt-card, .budget-card, .budget-summary-card, .chart-card, .transaction-table-card, .transactions-table-wrapper, .filters-card, .recurring-card, .monthly-trend-card, .recommendations-card, .alert-card, .strategy-card, .comparison-card, .schedule-card {
    color:var(--text-primary);
    background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.018));
    border:1px solid var(--border-soft);
    border-radius:var(--radius-md);
    box-shadow:var(--shadow-card);
    backdrop-filter: blur(22px) saturate(125%);
}
.summary-card, .account-card, .account-list-item, .institution-card, .budget-card, .notification-card { transition: transform .22s var(--ease-out), border-color .22s, box-shadow .22s; }
.summary-card:hover, .account-card:hover, .account-list-item:hover, .institution-card:hover, .budget-card:hover, .notification-card:hover { transform:translateY(-3px); border-color:var(--border-strong); box-shadow:var(--shadow-hover); }
.summary-grid { gap:16px; }
.summary-card { position:relative; overflow:hidden; min-height:142px; padding:22px; }
.summary-card::after { content:""; position:absolute; width:130px; height:130px; right:-65px; top:-70px; border-radius:50%; background:radial-gradient(circle, rgba(87,215,232,.16), transparent 68%); }
.summary-value { color:var(--text-primary); font-family:var(--font-display); font-size:29px; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.summary-value.cash, .account-balance.cash { color:var(--positive); }
.summary-value.debt, .account-balance.debt { color:var(--danger); }
.summary-value.net-worth { color:var(--aurora-cyan); }
.account-name, .form-title, .notification-card h3, .institution-card h3 { color:var(--text-primary); }
.account-count, .connection-status, .plaid-status-pill { background:rgba(255,255,255,.045); border:1px solid var(--border-soft); color:var(--text-secondary); border-radius:999px; }
.notice, .transaction-message, .form-error, .institution-error, .notification-scheduling-note, .connection-security-note { background:rgba(244,185,94,.075); border:1px solid rgba(244,185,94,.28); color:#f6d69c; border-radius:14px; }

/* Buttons */
.primary-button, .action-button, .edit-button, .delete-button, .compact-action, button[type="submit"] { border-radius:11px; min-height:40px; font-weight:650; letter-spacing:-.01em; transition: transform .18s var(--ease-out), box-shadow .18s, border-color .18s, background .18s; }
.primary-button, .action-button-primary { color:#07100d; background:linear-gradient(120deg, var(--aurora-green), var(--aurora-cyan)); border:0; box-shadow:0 10px 26px rgba(87,215,232,.18); }
.action-button-secondary, .edit-button, .compact-action-edit { color:var(--text-primary); background:rgba(255,255,255,.055); border:1px solid var(--border-strong); }
.action-button-danger, .delete-button, .compact-action-delete { color:#ffb0b6; background:rgba(255,112,122,.09); border:1px solid rgba(255,112,122,.24); }
button:hover:not(:disabled), .action-button:hover, .edit-button:hover { transform:translateY(-2px); }
button:disabled { opacity:.42; cursor:not-allowed; }
.icon-button { display:grid; place-items:center; width:40px; height:40px; border-radius:12px; border:1px solid var(--border-soft); background:rgba(255,255,255,.04); cursor:pointer; }
.icon-button svg { width:20px; height:20px; }

/* Forms */
input, select, textarea { color:var(--text-primary); background:rgba(4,7,13,.64); border:1px solid var(--border-soft); border-radius:11px; outline:none; transition:border-color .18s, box-shadow .18s, background .18s; }
input::placeholder, textarea::placeholder { color:var(--text-muted); }
input:focus, select:focus, textarea:focus { border-color:rgba(87,215,232,.55); box-shadow:0 0 0 4px rgba(87,215,232,.09); background:rgba(5,9,16,.78); }
select option { background:#10141e; color:var(--text-primary); }
input[type="checkbox"] { accent-color:var(--aurora-green); }

/* Tables */
table { color:var(--text-secondary); border-collapse:separate; border-spacing:0; }
th { color:var(--text-muted); text-transform:uppercase; letter-spacing:.08em; font-size:10px; border-color:var(--border-soft); }
td { border-color:var(--border-soft); }
tbody tr { transition:background .16s; }
tbody tr:hover { background:rgba(255,255,255,.025); }

/* Hero treatment for dashboard */
.dashboard-hero { position:relative; overflow:hidden; padding:30px; margin-bottom:20px; border:1px solid var(--border-strong); border-radius:var(--radius-lg); background:linear-gradient(135deg, rgba(13,19,29,.82), rgba(14,18,29,.58)); box-shadow:var(--shadow-card); backdrop-filter:blur(28px) saturate(130%); }
.dashboard-hero::before { content:""; position:absolute; inset:-40%; background:radial-gradient(circle at 20% 20%, rgba(98,230,167,.22), transparent 38%), radial-gradient(circle at 80% 10%, rgba(155,123,255,.20), transparent 42%), radial-gradient(circle at 55% 90%, rgba(87,215,232,.12), transparent 45%); filter:blur(8px); }
.dashboard-hero > * { position:relative; z-index:1; }
.dashboard-hero-top { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.hero-eyebrow { color:var(--aurora-green); text-transform:uppercase; letter-spacing:.12em; font-size:10px; font-weight:800; }
.dashboard-hero h1 { margin:8px 0 9px; font-size:clamp(32px,4vw,52px); }
.dashboard-hero p { color:var(--text-secondary); margin:0; }
.hero-actions { display:flex; gap:9px; }
.hero-net-worth { margin-top:28px; display:grid; grid-template-columns:minmax(260px,1fr) repeat(2,minmax(150px,.35fr)); gap:14px; align-items:end; }
.hero-value-label { color:var(--text-muted); text-transform:uppercase; letter-spacing:.1em; font-size:10px; font-weight:700; }
.hero-value { display:block; margin-top:7px; font-family:var(--font-display); font-size:clamp(40px,5vw,68px); line-height:1; letter-spacing:-.055em; font-variant-numeric:tabular-nums; }
.hero-mini-stat { padding:16px; border-radius:14px; background:rgba(3,6,11,.28); border:1px solid var(--border-soft); }
.hero-mini-stat strong { display:block; font-size:22px; margin-top:5px; }
.dashboard-account-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; }
.dashboard-account-card { padding:18px; display:flex; justify-content:space-between; gap:16px; }
.dashboard-account-card .account-balance { font-size:21px; }
.privacy-hidden [data-sensitive], .privacy-hidden .summary-value, .privacy-hidden .account-balance, .privacy-hidden .hero-value { filter:blur(9px); user-select:none; }

/* Toasts */
.toast { padding:14px 16px; border-radius:14px; color:var(--text-primary); background:rgba(15,20,30,.9); border:1px solid var(--border-strong); box-shadow:var(--shadow-card); backdrop-filter:blur(20px); animation:toast-in .28s var(--ease-out) both; }
.toast.is-leaving { animation:toast-out .22s ease both; }

/* Build 27 command palette and loading states */
.sidebar-utility kbd{margin-left:auto}.command-backdrop{position:fixed;z-index:9000;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:12vh 20px 20px;background:rgba(2,4,9,.68);backdrop-filter:blur(12px)}.command-backdrop[hidden]{display:none}.command-palette{width:min(680px,100%);overflow:hidden;border:1px solid var(--border-strong);border-radius:20px;background:rgba(12,15,22,.94);box-shadow:0 35px 100px rgba(0,0,0,.55),0 0 60px rgba(87,215,232,.08)}html[data-theme="pearl"] .command-palette{background:rgba(250,252,255,.96)}.command-search-row{display:flex;align-items:center;gap:12px;padding:18px;border-bottom:1px solid var(--border-soft)}.command-search-row svg{width:22px;color:var(--aurora-cyan)}.command-search-row input{flex:1;border:0;outline:0;background:transparent;color:var(--text-primary);font:500 1rem var(--font-ui)}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:25px;padding:4px 7px;border:1px solid var(--border-strong);border-bottom-color:rgba(255,255,255,.22);border-radius:7px;background:var(--surface-matte);color:var(--text-muted);font:600 .66rem var(--font-ui)}.command-results{max-height:430px;overflow:auto;padding:8px}.command-item{display:flex;width:100%;justify-content:space-between;align-items:center;padding:12px 13px;border:0;border-radius:12px;background:transparent;color:var(--text-primary);text-align:left;cursor:pointer}.command-item span{display:flex;flex-direction:column;gap:4px}.command-item small{color:var(--text-secondary)}.command-item.is-selected{background:linear-gradient(100deg,rgba(87,215,232,.12),rgba(155,123,255,.12));box-shadow:inset 0 0 0 1px var(--border-soft)}.command-footer{display:flex;justify-content:flex-end;gap:18px;padding:11px 18px;border-top:1px solid var(--border-soft);color:var(--text-muted);font-size:.68rem}.command-empty{padding:35px;text-align:center;color:var(--text-muted)}.sync-skeleton{position:fixed;z-index:8500;inset:0 0 0 var(--sidebar-width);display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-content:start;padding:12vh 4vw;background:rgba(5,7,13,.72);backdrop-filter:blur(10px)}.sync-skeleton[hidden]{display:none}.skeleton-card{height:180px;border-radius:20px;background:linear-gradient(100deg,rgba(255,255,255,.04) 25%,rgba(255,255,255,.10) 45%,rgba(255,255,255,.04) 65%);background-size:220% 100%;animation:skeletonShimmer 1.4s infinite}.skeleton-card:first-child{grid-column:1/-1;height:240px}@keyframes skeletonShimmer{to{background-position:-220% 0}}html[data-density="compact"] .glass-card{padding:16px}html[data-density="compact"] .page-container{gap:14px}html[data-density="comfortable"] .glass-card{padding:30px}html[data-motion="reduced"] *,html[data-motion="reduced"] *::before,html[data-motion="reduced"] *::after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms;scroll-behavior:auto}@media(max-width:900px){.sync-skeleton{inset:0;grid-template-columns:1fr}}

/* Build 47 canonical budget workspace */
.build47-budget-page{max-width:1480px}.build47-budget-page>section{margin-top:22px}.plan-lifecycle-strip,.review-plan-panel,.paycheck-calendar-card,.daily-guidance-card,.liquidity-card,.liquidity-policy-card,.sinking-fund-card,.override-card,.plan-history-card,.active-progress-section,.build47-budget-page>.budget-chart-section{padding:24px;border:1px solid var(--border-soft);border-radius:var(--radius-xl)}
.plan-lifecycle-strip{display:grid;grid-template-columns:minmax(260px,1.1fr) minmax(440px,1.8fr) auto;align-items:center;gap:28px;overflow:hidden;position:relative}.plan-lifecycle-strip:before{content:"";position:absolute;width:300px;height:180px;right:25%;top:-140px;background:rgba(87,215,232,.14);filter:blur(55px);pointer-events:none}.plan-lifecycle-copy h2{margin:5px 0 7px;font:700 1.25rem var(--font-display)}.plan-lifecycle-copy p,.review-plan-panel p{margin:0;color:var(--text-secondary);font-size:.82rem;line-height:1.55}.plan-lifecycle-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:0;padding:0;list-style:none}.plan-lifecycle-steps li{position:relative;display:grid;gap:7px;justify-items:center;color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.plan-lifecycle-steps li:after{content:"";position:absolute;left:60%;right:-40%;top:14px;height:1px;background:var(--border-strong)}.plan-lifecycle-steps li:last-child:after{display:none}.plan-lifecycle-steps span{position:relative;z-index:1;display:grid;place-items:center;width:29px;height:29px;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface-matte);font-weight:700}.plan-lifecycle-steps li.current{color:var(--aurora-green)}.plan-lifecycle-steps li.current span{border-color:rgba(98,230,167,.5);background:rgba(98,230,167,.12);box-shadow:0 0 20px rgba(98,230,167,.16)}.plan-lifecycle-actions,.review-plan-actions{display:flex;gap:9px;flex-wrap:wrap}.review-plan-panel{display:flex;justify-content:space-between;align-items:center;gap:25px;border-color:rgba(87,215,232,.24);background:linear-gradient(135deg,rgba(87,215,232,.08),rgba(155,123,255,.05)),var(--surface-glass)}.review-plan-panel h2{margin:9px 0 6px;font:700 1.1rem var(--font-display)}
.status-pill{display:inline-flex;align-items:center;width:max-content;border:1px solid var(--border-strong);border-radius:999px;padding:5px 9px;color:var(--text-secondary);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.status-proposed{color:var(--aurora-cyan);border-color:rgba(87,215,232,.3);background:rgba(87,215,232,.08)}.status-active{color:var(--aurora-green);border-color:rgba(98,230,167,.3);background:rgba(98,230,167,.08)}.status-superseded,.status-archived{color:var(--text-muted)}.build47-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.cash-shortfall-panel{display:flex;align-items:flex-start;gap:14px;padding:18px 20px;border:1px solid rgba(255,132,144,.35);border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(255,132,144,.12),rgba(244,185,94,.06));color:#ff9da7}.cash-shortfall-panel svg{width:22px}.cash-shortfall-panel strong{display:block;margin-bottom:4px}.cash-shortfall-panel p{margin:0;color:var(--text-secondary);font-size:.82rem;line-height:1.55}
.budget-two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.build47-budget-page .section-heading-row{align-items:flex-start}.build47-budget-page .section-heading-row h2{margin:5px 0;font:700 1.15rem var(--font-display)}.build47-budget-page .section-heading-row p{margin:0;color:var(--text-secondary);font-size:.8rem;line-height:1.5}.confidence-chip{white-space:nowrap;border:1px solid rgba(87,215,232,.28);border-radius:999px;padding:6px 9px;color:var(--aurora-cyan);font-size:.68rem;font-weight:700}.paycheck-list{display:grid;gap:8px;margin-top:18px}.paycheck-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:13px;padding:11px 12px;border:1px solid var(--border-soft);border-radius:13px;background:rgba(255,255,255,.018)}.paycheck-row time{display:grid;grid-template-columns:auto auto;gap:5px;align-items:baseline}.paycheck-row time strong{color:var(--aurora-cyan);font-size:.7rem}.paycheck-row time span{font-size:.75rem}.paycheck-row>div{display:flex;flex-direction:column;gap:3px;min-width:0}.paycheck-row>div strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.paycheck-row small{color:var(--text-muted);font-size:.68rem}.paycheck-row>b{font-size:.9rem}.extra-paycheck-callout{display:flex;gap:11px;margin-top:14px;padding:13px;border:1px solid rgba(98,230,167,.25);border-radius:13px;background:rgba(98,230,167,.06)}.extra-paycheck-callout svg{width:18px;color:var(--aurora-green)}.extra-paycheck-callout div{display:flex;flex-direction:column;gap:3px}.extra-paycheck-callout strong{font-size:.8rem}.extra-paycheck-callout span{color:var(--text-secondary);font-size:.72rem;line-height:1.5}
.daily-allowance-value{margin:22px 0 13px;font:800 clamp(2.6rem,6vw,4.8rem)/.95 var(--font-display);letter-spacing:-.06em;color:var(--aurora-green);text-shadow:0 0 36px rgba(98,230,167,.17)}.daily-allowance-split{display:grid;grid-template-columns:1fr 1fr;gap:8px}.daily-allowance-split span{display:flex;justify-content:space-between;padding:10px 12px;border:1px solid var(--border-soft);border-radius:11px;color:var(--text-secondary);font-size:.75rem}.daily-allowance-split strong{color:var(--text-primary)}.daily-guidance-card>p{color:var(--text-secondary);font-size:.76rem;line-height:1.55}.evidence-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:15px 0 0;overflow:hidden;border:1px solid var(--border-soft);border-radius:12px;background:var(--border-soft)}.evidence-list div{display:flex;justify-content:space-between;gap:12px;padding:9px 11px;background:var(--surface-matte);font-size:.69rem}.evidence-list dt{color:var(--text-muted)}.evidence-list dd{margin:0;font-weight:600;text-align:right}
.hierarchical-plan-section>.section-heading-row{margin-bottom:14px}.hierarchical-budget-list{display:grid;gap:10px}.hierarchical-budget-card{overflow:hidden;padding:0;border-radius:15px}.hierarchical-budget-card>summary{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;cursor:pointer;padding:16px 18px;list-style:none}.hierarchical-budget-card>summary::-webkit-details-marker{display:none}.hierarchical-budget-identity{display:grid;gap:3px;min-width:0}.category-icon{display:grid;place-items:center;width:40px;height:40px;border:1px solid color-mix(in srgb,var(--category-color) 36%,var(--border-soft));border-radius:12px;background:color-mix(in srgb,var(--category-color) 12%,transparent);color:var(--category-color)}.category-icon-svg{width:18px;height:18px}.hierarchical-budget-card summary strong{overflow-wrap:anywhere;font-size:.9rem}.hierarchical-budget-card summary small{color:var(--text-muted);font-size:.68rem}.hierarchical-budget-card summary b{justify-self:end;font:700 1rem var(--font-display);white-space:nowrap}.sub-budget-table{border-top:1px solid var(--border-soft)}.sub-budget-row{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(100px,auto) minmax(300px,1.5fr);gap:16px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border-soft)}.sub-budget-row:last-child{border-bottom:0}.sub-budget-row>div:first-child{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}.sub-budget-row strong,.sub-budget-row>b{font-size:.8rem}.sub-budget-row>b{justify-self:end;white-space:nowrap}.allocation-type{border:1px solid var(--border-soft);border-radius:999px;padding:4px 7px;color:var(--text-muted);font-size:.6rem;text-transform:uppercase}.allocation-hard_constraint,.allocation-debt_minimum{color:#ffb0b7;border-color:rgba(255,132,144,.24)}.allocation-sinking_fund{color:var(--aurora-violet)}.allocation-flexible{color:var(--aurora-cyan)}.allocation-explanation{min-width:0}.allocation-explanation p{margin:0 0 4px;color:var(--text-secondary);font-size:.72rem;line-height:1.5}.allocation-explanation small{color:var(--text-muted);font-size:.64rem}
.liquidity-equation{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:10px;align-items:center;margin:21px 0}.liquidity-equation>span{display:flex;flex-direction:column;gap:3px;text-align:center;font:700 1rem var(--font-display)}.liquidity-equation small{color:var(--text-muted);font:500 .61rem var(--font-ui);text-transform:uppercase}.liquidity-equation i{color:var(--text-muted);font-style:normal}.cash-components{display:grid;gap:1px;overflow:hidden;border:1px solid var(--border-soft);border-radius:12px;background:var(--border-soft)}.cash-components>div{display:flex;justify-content:space-between;gap:20px;padding:9px 11px;background:var(--surface-matte);font-size:.71rem}.cash-components span{color:var(--text-secondary)}.required-transfer-list,.fund-list,.override-list{display:grid;gap:8px;margin-top:12px}.required-transfer-list>div,.fund-row,.override-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 12px;border:1px solid var(--border-soft);border-radius:11px}.required-transfer-list div>*,.fund-row>div,.override-row>div{display:flex;flex-direction:column;gap:3px}.required-transfer-list strong,.fund-row strong,.override-row strong{font-size:.76rem}.required-transfer-list span,.fund-row span,.override-row span{color:var(--text-muted);font-size:.66rem;line-height:1.45}.account-policy-list{display:grid;gap:8px;margin-top:16px}.account-policy-list>details{border:1px solid var(--border-soft);border-radius:12px;background:rgba(255,255,255,.015)}.account-policy-list summary{display:flex;justify-content:space-between;padding:12px 13px;cursor:pointer;font-size:.78rem}.compact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border-top:1px solid var(--border-soft)}.compact-form-grid>.form-field-wide{grid-column:1/-1}.compact-form-grid .setting-toggle{padding:5px 0}.compact-form-grid>.action-button{align-self:end;justify-self:start}.sinking-fund-card>.compact-form-grid,.override-card>.compact-form-grid{margin-top:15px;border:1px solid var(--border-soft);border-radius:14px}.fund-row.inactive,.override-row.inactive{opacity:.5}.override-row>div{min-width:0}
.plan-history-table{display:grid;min-width:720px;margin-top:15px}.plan-history-head,.plan-history-row{display:grid;grid-template-columns:.5fr .7fr .8fr 1fr 1fr 1fr;gap:12px;align-items:center;padding:10px 12px}.plan-history-head{color:var(--text-muted);font-size:.64rem;text-transform:uppercase;border-bottom:1px solid var(--border-strong)}.plan-history-row{border-bottom:1px solid var(--border-soft);font-size:.72rem}.plan-history-card{overflow-x:auto}.active-progress-section .budget-progress-grid{margin-top:15px}.build47-budget-page>.budget-chart-section{display:block}.build47-budget-page .budget-chart-card{position:relative;min-height:320px;padding:0;background:transparent;border:0}.build47-budget-page .budget-chart-card .chart-empty-state{min-height:320px}.danger{color:#ff8490}
.obligation-funding-list{display:grid;gap:7px}.obligation-funding-list form{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,.7fr) auto;gap:8px;align-items:center;padding:9px;border:1px solid var(--border-soft);border-radius:11px}.obligation-funding-list form>div{display:flex;flex-direction:column;gap:2px}.obligation-funding-list strong{font-size:.72rem}.obligation-funding-list span{color:var(--text-muted);font-size:.64rem}.obligation-funding-list select{min-width:0}

/* module: forms.css */
/* Shared progressive-form and exact-money presentation rules. */
.form-field-error{margin-top:5px;color:var(--danger);font-size:.72rem}
.dynamic-field-hidden{display:none}
.dynamic-more-options{grid-column:1/-1}
.dynamic-more-options>summary{cursor:pointer;color:var(--text-secondary);font-size:.76rem;font-weight:700}
.money-input-shell{position:relative}
.money-input-shell::before{content:"$";position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}
.money-input-shell>input{padding-left:26px}
.money-input-shell[data-negative="true"]::before{color:var(--danger)}

/* module: accounts.css */
/* Accounts directory, institution grouping, and type-change review. */
.account-view-toggle{display:flex;gap:7px;margin-left:auto}.account-view-toggle button{border:1px solid var(--border-soft);border-radius:9px;background:transparent;padding:7px 10px;color:var(--text-secondary);cursor:pointer}.account-view-toggle button.active{color:var(--text-primary);background:var(--page-accent-soft)}
.institution-account-groups{display:grid;gap:16px}.institution-account-group{border:1px solid var(--border-soft);border-radius:var(--radius-lg);background:var(--surface-glass);overflow:hidden}.institution-account-group>summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:16px 18px;cursor:pointer}.institution-account-group>summary::-webkit-details-marker{display:none}.institution-brand{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,var(--page-accent-soft),rgba(255,255,255,.03));border:1px solid var(--border-soft);overflow:hidden}.institution-brand img{width:100%;height:100%;object-fit:contain;padding:5px}.institution-brand abbr{text-decoration:none;font-weight:800;color:var(--page-accent)}.institution-group-title{display:grid;min-width:0}.institution-group-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.institution-group-title small{color:var(--text-muted)}.institution-group-total{text-align:right}.institution-group-total strong{display:block}.institution-group-total small{color:var(--text-muted)}
.institution-account-group .account-list{padding:0 14px 14px}.account-card-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.account-card-metrics>div{display:grid;gap:3px;padding:9px 10px;border:1px solid var(--border-soft);border-radius:10px;background:rgba(255,255,255,.018)}.account-card-metrics span{color:var(--text-muted);font-size:.64rem}.account-card-metrics strong{overflow:hidden;text-overflow:ellipsis;font-size:.75rem}.account-warning{margin-top:10px;padding:8px 10px;border:1px solid rgba(244,185,94,.25);border-radius:10px;background:rgba(244,185,94,.06);color:var(--warning);font-size:.7rem}
.institution-account-groups[data-account-layout="flat"]{gap:10px}.institution-account-groups[data-account-layout="flat"] .institution-account-group{display:contents}.institution-account-groups[data-account-layout="flat"] .institution-account-group>summary{display:none}.institution-account-groups[data-account-layout="flat"] .institution-account-group>.account-list{display:contents}
.account-type-impact{padding:16px;border:1px solid rgba(244,185,94,.28);border-radius:14px;background:rgba(244,185,94,.06)}.account-type-impact h3{margin:0 0 6px;font:700 .9rem var(--font-display)}.account-type-impact p,.account-type-impact li{color:var(--text-secondary);font-size:.76rem}.account-type-impact ul{margin:8px 0 14px;padding-left:20px}

/* One institution identity and status contract across Accounts, Institutions, and Sync & Health. */
.institution-brand{flex:0 0 42px}.institution-brand img{padding:7px;background:linear-gradient(145deg,rgba(255,255,255,.18),rgba(255,255,255,.045));opacity:.94}.institution-group-title .institution-status-chip{margin-top:6px}.institution-status-chip{justify-self:start;white-space:nowrap}.institution-status-chip.status-connected{color:var(--positive);border-color:rgba(98,230,167,.3);background:rgba(98,230,167,.08)}.institution-status-chip.status-attention{color:var(--warning);border-color:rgba(244,185,94,.3);background:rgba(244,185,94,.08)}.institution-status-chip.status-manual,.institution-status-chip.status-new{color:var(--text-secondary);border-color:var(--border-strong);background:rgba(255,255,255,.04)}.institutions-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.institution-card-header,.sync-health-card>header{grid-template-columns:42px minmax(0,1fr) auto;column-gap:14px}.institution-card-header .institution-brand,.sync-health-card>header .institution-brand{width:42px;height:42px;border-radius:13px}.institution-actions{gap:10px}
@media(max-width:760px){.institutions-summary-grid{grid-template-columns:1fr}.institution-card-header,.sync-health-card>header{grid-template-columns:42px minmax(0,1fr)}.institution-card-header .institution-status-chip,.sync-health-card>header .institution-status-chip{grid-column:2;justify-self:start}.institution-group-title .institution-status-chip{white-space:normal}}

/* module: animations.css */
@keyframes rise-in { from { opacity:0; transform:translateY(18px) scale(.99); } to { opacity:1; transform:none; } }
@keyframes toast-in { from { opacity:0; transform:translateY(-10px) scale(.97); } to { opacity:1; transform:none; } }
@keyframes toast-out { to { opacity:0; transform:translateY(-8px) scale(.97); } }
.reveal-on-load { opacity:0; animation:rise-in .48s var(--ease-out) forwards; animation-delay:var(--reveal-delay,0ms); }
.reveal-on-scroll { opacity:0; transform:translateY(20px); transition:opacity .52s var(--ease-out), transform .52s var(--ease-out); }
.reveal-on-scroll.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto; animation-duration:.01ms; animation-iteration-count:1; transition-duration:.01ms; } .reveal-on-scroll { opacity:1; transform:none; } }

/* Regression guard: content must remain visible when scripts fail or observers misfire. */
html:not(.motion-ready) .reveal-on-scroll,
html:not(.motion-ready) .reveal-on-load {
    opacity: 1 ;
    transform: none ;
}

/* module: responsive.css */
@media (max-width: 1050px) {
    :root { --sidebar-width: 230px; }
    .main-content { padding:28px 26px 54px; }
    .brand-copy small { display:none; }
    .hero-net-worth { grid-template-columns:1fr 1fr; }
    .hero-net-worth > div:first-child { grid-column:1 / -1; }
}
@media (max-width: 760px) {
    .app-layout { display:block; }
    .sidebar { position:fixed; z-index:1000; width:min(290px,86vw); left:0; transform:translateX(-105%); transition:transform .25s var(--ease-out); }
    body.sidebar-open .sidebar { transform:none; }
    body.sidebar-open::after { content:""; position:fixed; inset:0; z-index:999; background:rgba(0,0,0,.55); backdrop-filter:blur(3px); }
    .mobile-topbar { position:sticky; top:0; z-index:900; display:flex; align-items:center; justify-content:space-between; padding:10px 14px; border-bottom:1px solid var(--border-soft); background:rgba(6,9,15,.78); backdrop-filter:blur(22px); }
    .mobile-brand { font-family:var(--font-display); font-weight:700; }
    .main-content { padding:22px 15px 48px; }
    .page-header, .dashboard-hero-top { flex-direction:column; }
    .page-header > div:first-child, .dashboard-hero-top > div:first-child { flex:0 1 auto; width:100%; }
    .hero-actions { width:100%; }
    .hero-actions .action-button, .hero-actions button { flex:1; }
    .hero-net-worth { grid-template-columns:1fr; }
    .hero-net-worth > div:first-child { grid-column:auto; }
    .summary-grid, .notification-summary-grid, .connection-summary-grid { grid-template-columns:1fr; }
}
@media(max-width:1100px){.plan-lifecycle-strip{grid-template-columns:1fr}.plan-lifecycle-actions{justify-content:flex-start}.build47-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.budget-two-column{grid-template-columns:1fr}.sub-budget-row{grid-template-columns:minmax(180px,1fr) auto}.allocation-explanation{grid-column:1/-1}.compact-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.build47-summary-grid{grid-template-columns:1fr}.plan-lifecycle-steps{overflow-x:auto;min-width:480px;padding-bottom:8px}.plan-lifecycle-strip{overflow-x:auto}.review-plan-panel{align-items:flex-start;flex-direction:column}.paycheck-row{grid-template-columns:56px minmax(0,1fr)}.paycheck-row>b{grid-column:2}.daily-allowance-split,.evidence-list{grid-template-columns:1fr}.hierarchical-budget-card>summary{align-items:flex-start}.sub-budget-row{grid-template-columns:1fr}.sub-budget-row>b{grid-row:1;grid-column:1;justify-self:end}.allocation-explanation{grid-column:1}.liquidity-equation{grid-template-columns:1fr}.liquidity-equation i{display:none}.compact-form-grid{grid-template-columns:1fr}.compact-form-grid>.form-field-wide{grid-column:1}.plan-history-card{margin-left:-4px;margin-right:-4px}.build47-budget-page{overflow-x:hidden}}

/* module: dashboard.css */
.dashboard-v2{max-width:1500px}.command-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-bottom:22px}.command-header h1{font-size:clamp(32px,4vw,52px);margin:7px 0}.command-header p{color:var(--text-secondary);margin:0}.command-actions{display:flex;gap:10px;align-items:center}.sync-health{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:12px;padding:10px 12px;border:1px solid var(--border-soft);border-radius:999px;background:rgba(255,255,255,.025)}.sync-health i{width:7px;height:7px;border-radius:50%;background:var(--positive);box-shadow:0 0 12px var(--positive)}
.net-worth-command{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(350px,.8fr) minmax(400px,1.2fr);gap:30px;min-height:390px;padding:34px;margin-bottom:18px;border:1px solid var(--border-strong);border-radius:28px;background:linear-gradient(140deg,rgba(14,20,31,.88),rgba(10,14,24,.58));box-shadow:var(--shadow-card);backdrop-filter:blur(30px)}.net-worth-command:before{content:"";position:absolute;inset:-45%;background:radial-gradient(circle at 20% 25%,rgba(98,230,167,.25),transparent 30%),radial-gradient(circle at 75% 10%,rgba(155,123,255,.23),transparent 36%),radial-gradient(circle at 62% 88%,rgba(87,215,232,.14),transparent 38%);filter:blur(18px);animation:aurora-drift 13s ease-in-out infinite alternate}.net-worth-command>*{position:relative}.net-worth-copy{display:flex;flex-direction:column;justify-content:center}.money-display{font-family:var(--font-display);font-weight:750;font-size:clamp(48px,6.2vw,82px);letter-spacing:-.065em;line-height:1;margin:11px 0 15px}.money-display span,.metric-value span{font-size:.45em;vertical-align:top;margin-right:4px;color:var(--text-secondary)}.primary-change{font-weight:650}.primary-change.positive{color:var(--positive)}.primary-change.negative{color:var(--danger)}.period-change-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:28px}.period-change-grid>div{padding:12px;border:1px solid var(--border-soft);border-radius:13px;background:rgba(3,6,12,.28)}.period-change-grid span{display:block;color:var(--text-muted);font-size:9px;text-transform:uppercase;letter-spacing:.09em}.period-change-grid strong{display:block;margin-top:5px;font-size:14px}.hero-chart-wrap{position:relative;min-height:310px}.hero-chart-wrap canvas{height:310px}.chart-empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;color:var(--text-muted);font-size:13px;padding:30px}.chart-empty[hidden]{display:none}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric-card{position:relative;overflow:hidden;min-height:166px;padding:20px;border:1px solid var(--border-soft);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.018));box-shadow:var(--shadow-card);backdrop-filter:blur(22px);transition:.22s}.metric-card:hover{transform:translateY(-4px);border-color:var(--border-strong)}.metric-card:after{content:"";position:absolute;width:120px;height:120px;right:-55px;bottom:-65px;border-radius:50%;background:var(--tone);filter:blur(40px);opacity:.18}.tone-positive{--tone:var(--positive)}.tone-danger{--tone:var(--danger)}.tone-violet{--tone:var(--aurora-violet)}.tone-cyan{--tone:var(--aurora-cyan)}.metric-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.055);margin-bottom:17px}.metric-icon svg{width:18px}.metric-value{font-family:var(--font-display);font-size:28px;font-weight:750;letter-spacing:-.045em;margin:5px 0}.metric-spark{height:2px;width:60%;margin-top:13px;background:linear-gradient(90deg,var(--tone),transparent)}
.streak-strip{display:flex;align-items:center;gap:14px;padding:17px 20px;margin-bottom:18px;border:1px solid rgba(244,185,94,.22);border-radius:17px;background:linear-gradient(110deg,rgba(244,185,94,.08),rgba(155,123,255,.055));box-shadow:var(--shadow-card)}.streak-flame{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:rgba(244,185,94,.11);color:var(--warning)}.streak-flame svg{width:25px}.streak-strip strong{display:block;margin-top:3px}.streak-strip>span{margin-left:auto;color:var(--warning);font-weight:750}
.dashboard-grid{display:grid;gap:18px;margin-bottom:18px}.dashboard-grid-primary{grid-template-columns:1.15fr .85fr}.dashboard-grid-secondary{grid-template-columns:1.08fr .92fr}.dashboard-grid-tertiary{grid-template-columns:.8fr 1.2fr}.dashboard-grid-quaternary{grid-template-columns:.9fr 1.1fr}.dashboard-widget{padding:23px;border:1px solid var(--border-soft);border-radius:21px;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.015));box-shadow:var(--shadow-card);backdrop-filter:blur(23px)}.widget-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:18px}.widget-heading h2{font-size:19px;margin:5px 0 0}.widget-heading>a{font-size:12px;color:var(--aurora-cyan)}.widget-heading>span{font-size:12px;color:var(--text-secondary)}
.transaction-feed{display:flex;flex-direction:column}.feed-row{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border-soft);color:inherit}.feed-row:last-child{border:0}.merchant-avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:rgba(87,215,232,.08);color:var(--aurora-cyan)}.merchant-avatar svg{width:18px}.feed-main strong{display:block;font-size:13px}.feed-main span{display:block;color:var(--text-muted);font-size:10px;margin-top:3px}.feed-amount{font-weight:750;font-variant-numeric:tabular-nums}.feed-amount.expense{color:var(--text-primary)}.feed-amount.income{color:var(--positive)}
.donut-layout{display:grid;grid-template-columns:230px 1fr;gap:18px;align-items:center}.donut-wrap{position:relative;height:220px}.donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}.donut-center strong{font-size:22px}.donut-center span{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.09em}.category-legend>div{display:grid;grid-template-columns:9px 1fr auto;gap:8px;align-items:center;padding:7px 0}.category-legend i{width:8px;height:8px;border-radius:50%;background:var(--legend-color);box-shadow:0 0 9px var(--legend-color)}.category-legend span{font-size:12px;color:var(--text-secondary)}.category-legend strong{font-size:12px}
.budget-pulse-row{display:grid;grid-template-columns:minmax(160px,.7fr) 1fr 44px;gap:12px;align-items:center;margin:15px 0}.budget-pulse-row>div:first-child strong{display:block;font-size:12px}.budget-pulse-row .budget-pulse-values{display:block;font-size:10px;color:var(--text-muted);margin-top:3px}.progress-track{height:7px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}.progress-track i,.health-components i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--aurora-green),var(--aurora-cyan));transition:width 1.25s var(--ease-out)}.progress-track i.is-filled,.health-components i.is-filled{width:var(--progress)}.progress-track i.status-warning{background:linear-gradient(90deg,var(--warning),#f8d486)}.progress-track i.status-over,.progress-track i.status-limit{background:linear-gradient(90deg,var(--danger),#ff9ca4)}.budget-pulse-row em{font-style:normal;font-size:11px;color:var(--text-secondary);text-align:right}
.debt-date{font-family:var(--font-display);font-size:34px;font-weight:750;letter-spacing:-.04em;color:var(--aurora-green);margin:8px 0}.debt-widget>p{color:var(--text-secondary);font-size:12px}.next-target,.interest-saved{display:grid;grid-template-columns:1fr auto;gap:4px 14px;padding:13px;margin-top:12px;border-radius:14px;background:rgba(3,6,12,.28);border:1px solid var(--border-soft)}.next-target span,.interest-saved span{grid-column:1/-1;color:var(--text-muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.next-target em{font-style:normal;color:var(--danger)}.interest-saved strong{color:var(--positive)}.debt-free-state{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--aurora-green)}.debt-free-state svg{width:32px}.debt-free-state strong{margin:12px 0 5px}
.mini-calendar{padding:12px;border-radius:15px;background:rgba(3,6,12,.26);border:1px solid var(--border-soft)}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-weekdays span{text-align:center;color:var(--text-muted);font-size:9px;padding:5px}.calendar-day{position:relative;aspect-ratio:1;border:0;background:transparent;color:var(--text-secondary);min-height:0;padding:4px;border-radius:9px}.calendar-day:hover{background:rgba(255,255,255,.06)}.calendar-day.today{background:rgba(87,215,232,.12);color:var(--text-primary)}.calendar-day b{font-size:10px;font-weight:500}.calendar-day i{position:absolute;width:4px;height:4px;border-radius:50%;bottom:4px;left:50%;background:var(--aurora-violet)}.calendar-day i.event-income{background:var(--positive)}.calendar-day i.event-debt{background:var(--danger)}.calendar-day i.predicted{outline:1px solid var(--text-muted);background:transparent}.predicted-key{font-size:10px}.calendar-agenda{margin-top:12px}.calendar-agenda>div{display:grid;grid-template-columns:8px 1fr auto;gap:9px;align-items:center;padding:7px 0}.calendar-agenda>div>i,.signal>span{width:7px;height:7px;border-radius:50%;background:var(--aurora-violet)}.calendar-agenda span strong{display:block;font-size:11px}.calendar-agenda small{font-size:9px;color:var(--text-muted)}.calendar-agenda em{font-style:normal;font-size:11px}.cashflow-chart{height:285px}.net-chip{padding:5px 9px;border-radius:99px}.net-chip.positive{color:var(--positive);background:rgba(86,216,155,.08)}.net-chip.negative{color:var(--danger);background:rgba(255,112,122,.08)}
.health-score{display:grid;grid-template-columns:160px 1fr;gap:22px;align-items:center}.health-ring{--angle:calc(var(--score)*3.6deg);width:145px;height:145px;border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at center,var(--surface-matte) 58%,transparent 60%),conic-gradient(var(--aurora-green) var(--angle),rgba(255,255,255,.06) 0);box-shadow:0 0 35px rgba(98,230,167,.08)}.health-ring strong{font-size:35px}.health-ring span{font-size:9px;color:var(--text-muted)}.health-components>div{display:grid;grid-template-columns:90px 1fr 25px;gap:9px;align-items:center;margin:13px 0}.health-components span{font-size:10px;color:var(--text-secondary)}.health-components>div>div{height:5px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}.health-components strong{font-size:10px;text-align:right}.health-grade{color:var(--positive)}.signal-list{display:flex;flex-direction:column;gap:9px}.signal,.all-clear{display:flex;gap:12px;padding:13px;border:1px solid var(--border-soft);border-radius:14px;background:rgba(3,6,12,.25)}.signal>span,.all-clear>svg{flex:0 0 28px;width:28px;height:28px;padding:6px;border-radius:9px;background:rgba(244,185,94,.08);color:var(--warning)}.signal strong,.all-clear strong{font-size:12px}.signal p,.all-clear p{margin:3px 0 0;color:var(--text-secondary);font-size:10px}.signal-danger{border-color:rgba(255,112,122,.18)}.all-clear{align-items:center}.all-clear>svg{color:var(--positive);background:rgba(86,216,155,.08)}
@keyframes aurora-drift{0%{transform:translate3d(-2%,-1%,0) scale(1)}100%{transform:translate3d(3%,2%,0) scale(1.08)}}
@media(max-width:1150px){.net-worth-command{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.hero-chart-wrap{min-height:260px}.hero-chart-wrap canvas{height:260px}}@media(max-width:720px){.command-header{align-items:flex-start;flex-direction:column}.command-actions{flex-wrap:wrap}.sync-health{width:100%}.net-worth-command{padding:22px}.period-change-grid{grid-template-columns:repeat(2,1fr)}.metric-grid{grid-template-columns:1fr}.donut-layout,.health-score{grid-template-columns:1fr}.donut-wrap{height:200px}.health-ring{margin:auto}.budget-pulse-row{grid-template-columns:1fr 44px}.budget-pulse-row>.progress-track{grid-column:1/-1;grid-row:2}}
@media(prefers-reduced-motion:reduce){.net-worth-command:before{animation:none}.progress-track i,.health-components i{transition:none}}
/* Build 48: canonical dashboard, financial calendar, and persisted layout. */
/* Screen-recording remediation: compact, information-led dashboard geometry. */
.net-worth-command{min-height:350px}.money-display{font-size:clamp(44px,5.1vw,64px);font-variant-numeric:tabular-nums;letter-spacing:-.05em}
.net-worth-command .metric-grid{gap:0;margin-bottom:0;border-top:1px solid var(--border-soft)}.net-worth-command .metric-card{min-height:142px;padding:20px;border:0;border-left:1px solid var(--border-soft);border-radius:0;background:transparent;box-shadow:none}.net-worth-command .metric-card:first-child{border-left:0}.net-worth-command .metric-card:hover{transform:none;background:rgba(255,255,255,.025)}
.metric-title{display:flex;align-items:center;gap:10px;min-width:0}.metric-title>div{min-width:0}.metric-title .metric-icon{flex:0 0 auto;margin:0}.metric-title .summary-detail{margin-top:3px}.net-worth-command .metric-value{font-size:24px;font-variant-numeric:tabular-nums;letter-spacing:-.035em;margin:14px 0 4px}
.progress-track i,.health-components i{max-width:100%}.progress-track i.is-filled,.health-components i.is-filled{width:min(var(--progress),100%)}
.calendar-day.selected{background:rgba(87,215,232,.18);color:#fff;box-shadow:inset 0 0 0 1px rgba(87,215,232,.38)}
.calendar-widget[data-widget-size="compact"] .calendar-state-key{gap:6px}.calendar-widget[data-widget-size="compact"] .calendar-state-key span{font-size:.62rem}.calendar-widget[data-widget-size="compact"] .mini-calendar{padding:8px}.calendar-widget[data-widget-size="compact"] .calendar-weekdays,.calendar-widget[data-widget-size="compact"] .calendar-days{gap:2px}.calendar-widget[data-widget-size="compact"] .calendar-agenda{max-height:150px;overflow:auto}
@media(max-width:900px){.net-worth-command .metric-card:nth-child(odd){border-left:0}.net-worth-command .metric-card{border-top:1px solid var(--border-soft)}}
@media(max-width:720px){.net-worth-command .metric-card{border-left:0}}
.dashboard-layout-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px;align-items:start}.dashboard-layout-widget{grid-column:span 6;min-width:0}.dashboard-layout-widget[data-widget-size="compact"]{grid-column:span 4}.dashboard-layout-widget[data-widget-size="medium"]{grid-column:span 6}.dashboard-layout-widget[data-widget-size="large"]{grid-column:span 8}.dashboard-layout-widget[data-widget-size="wide"]{grid-column:1/-1}.dashboard-layout-widget[hidden]{display:none}.net-worth-command.dashboard-layout-widget{display:grid;grid-template-columns:minmax(250px,.7fr) minmax(360px,1.3fr);grid-column:1/-1}.net-worth-command .metric-grid{grid-column:1/-1;margin-top:8px}.context-link{color:var(--accent-cyan,#57d7e8);font-weight:700;text-decoration:none}
.metric-trend-band{position:relative;display:grid;grid-template-rows:auto 42px;gap:3px;height:69px;box-sizing:border-box;margin-top:10px;padding:8px 10px 6px;overflow:hidden;border:1px solid color-mix(in srgb,var(--tone) 22%,var(--border-soft));border-radius:12px;background:linear-gradient(120deg,color-mix(in srgb,var(--tone) 13%,transparent),rgba(255,255,255,.018) 58%,color-mix(in srgb,var(--tone) 5%,transparent));box-shadow:inset 0 1px 0 rgba(255,255,255,.055);isolation:isolate}.metric-trend-band::after{content:"";position:absolute;inset:auto -20% -28px 35%;height:58px;background:var(--tone);filter:blur(34px);opacity:.09;pointer-events:none}.metric-trend-cue,.spark-empty{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;font-size:.67rem}.metric-trend-cue span,.spark-empty span{color:var(--text-tertiary);font-weight:700;letter-spacing:.035em;text-transform:uppercase}.metric-trend-cue strong,.spark-empty strong{overflow:hidden;color:var(--text-primary);font-size:.7rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.metric-spark-stage{position:relative;z-index:1;width:100%;height:42px;min-height:42px;max-height:42px;overflow:hidden}.metric-card canvas.metric-spark{display:block;width:100%;height:42px;min-height:42px;max-height:42px;margin:0}.metric-trend-band.is-empty{grid-template-rows:1fr}.metric-trend-band.is-empty .spark-empty{height:100%}

.financial-ticker{display:flex;align-items:center;gap:10px;margin:0 0 18px;padding:8px 10px;border:1px solid var(--border-subtle);border-radius:14px;background:rgba(11,16,26,.72);overflow:hidden}.financial-ticker>button{border:0;background:transparent;color:var(--text-secondary);font:inherit;font-size:.75rem;cursor:pointer}.ticker-window{overflow:hidden;flex:1;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}.ticker-track{display:flex;width:max-content;gap:32px;animation:financial-ticker 30s linear infinite}.ticker-track a{color:var(--text-primary);text-decoration:none;white-space:nowrap}.ticker-track a span{color:var(--accent-cyan,#57d7e8);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-right:8px}.financial-ticker:hover .ticker-track,.financial-ticker.is-paused .ticker-track{animation-play-state:paused}@keyframes financial-ticker{to{transform:translateX(-50%)}}

.streak-widget .streak-strip{margin:0;border:0;background:transparent;padding:8px 0}.streak-widget .streak-strip+.streak-strip{margin-top:12px}.streak-strip>div:nth-child(2){min-width:0;flex:1}.streak-flame{flex:0 0 42px;min-width:42px}.streak-flame svg{flex:0 0 25px;min-width:25px;height:25px}.streak-duration{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:66px;margin-left:auto;padding:5px 9px;border:1px solid rgba(244,185,94,.28);border-radius:999px;background:rgba(244,185,94,.10);color:var(--warning);font-size:.7rem;font-weight:800;line-height:1;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.streak-strip small{display:block;color:var(--text-tertiary);margin-top:4px}.merchant-avatar{display:grid;place-items:center;overflow:hidden;font-weight:800}.merchant-avatar img{width:100%;height:100%;object-fit:contain;background:#fff}.feed-main small{display:block;color:var(--text-tertiary);font-size:.77rem;margin-top:4px}.feed-main small a{color:var(--text-secondary)}

@media(max-width:680px){.net-worth-command+.streak-widget{margin-top:24px}.streak-widget .streak-strip{align-items:flex-start;gap:10px}.streak-widget .streak-flame{margin-top:1px}.streak-duration{min-width:58px;padding:5px 7px;font-size:.66rem}}

.calendar-nav{display:flex;gap:6px;align-items:center}.calendar-nav a{display:grid;place-items:center;min-width:34px;height:32px;padding:0 9px;border:1px solid var(--border-subtle);border-radius:9px;color:var(--text-secondary);text-decoration:none;font-size:.78rem}.calendar-state-key,.heatmap-key{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 14px;font-size:.7rem;color:var(--text-tertiary)}.calendar-state-key span:before,.heatmap-key span:before{content:"";display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;background:var(--state-color,#737a8c)}.calendar-state-key .scheduled{--state-color:#57d7e8}.calendar-state-key .projected{--state-color:#9b7bff}.calendar-state-key .paid{--state-color:#62e6a7}.calendar-state-key .missed{--state-color:#ff707a}.calendar-day i.state-paid{background:#62e6a7}.calendar-day i.state-missed{background:#ff707a}.calendar-day i.state-projected{outline:1px dashed #9b7bff;background:transparent}.calendar-event-row{width:100%;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.calendar-event-row.state-paid{opacity:.72}.calendar-event-row.state-missed{border-left:2px solid #ff707a}.calendar-event-row small{display:block;color:var(--text-tertiary);margin-top:3px}.form-error,.timeline-warning{padding:9px 11px;border:1px solid rgba(255,112,122,.3);border-radius:9px;background:rgba(255,112,122,.08);color:#ff9da5}

.timeline-balance{display:grid;grid-template-columns:1fr auto;gap:6px 16px;padding:12px;border:1px solid var(--border-subtle);border-radius:12px;margin-bottom:12px}.cash-timeline{max-height:420px;overflow:auto;padding-right:5px}.cash-timeline details{border-left:1px solid var(--border-subtle);padding:0 0 14px 18px;margin-left:7px}.cash-timeline summary{display:grid;grid-template-columns:12px 1fr auto auto;gap:10px;align-items:center;cursor:pointer}.cash-timeline summary i{width:11px;height:11px;margin-left:-24px;border-radius:50%;background:#57d7e8;box-shadow:0 0 0 4px rgba(87,215,232,.12)}.cash-timeline summary .timeline-paycheck{background:#62e6a7}.cash-timeline summary .timeline-debt_payment{background:#ff707a}.cash-timeline summary .timeline-transfer{background:#9b7bff}.cash-timeline summary span small{display:block;color:var(--text-tertiary);margin-top:3px}.cash-timeline summary em{font-style:normal;color:var(--text-secondary)}.cash-timeline summary b{font-size:.8rem}.cash-timeline details p{margin:8px 0 0;color:var(--text-secondary);font-size:.78rem}.confidence-chip,.reconcile-chip{font-size:.7rem;padding:5px 8px;border-radius:999px;background:rgba(87,215,232,.1);color:#8ce6ef}

.heatmap-key .pre_collection{--state-color:#454b5a}.heatmap-key .missing_import{--state-color:#f4b95e}.heatmap-key .true_zero{--state-color:#183b36}.heatmap-key .spend{--state-color:#62e6a7}.spending-heat-map{display:grid;grid-template-rows:repeat(7,13px);grid-auto-flow:column;grid-auto-columns:13px;gap:4px;overflow-x:auto;padding:8px 2px}.heat-cell{width:13px;height:13px;border-radius:3px;border:1px solid transparent}.heat-cell.state-pre_collection{background:rgba(115,122,140,.18)}.heat-cell.state-missing_import{background:repeating-linear-gradient(135deg,rgba(244,185,94,.34) 0 2px,transparent 2px 4px);border-color:rgba(244,185,94,.48)}.heat-cell.state-true_zero{background:rgba(98,230,167,.1);border-color:rgba(98,230,167,.26)}.heat-cell.state-spend{background:rgba(98,230,167,calc(.25 + var(--heat,0)*.7));border-color:rgba(98,230,167,.6)}

.account-spark-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.account-spark-card{display:grid;grid-template-columns:1fr auto;gap:8px;padding:13px;border:1px solid var(--border-subtle);border-radius:12px;color:inherit;text-decoration:none;min-width:0}.account-spark-card div span,.account-spark-card small{display:block;color:var(--text-tertiary);font-size:.7rem;margin-top:4px}.account-spark-card canvas{grid-column:1/-1;width:100%;height:42px}.account-spark-card small{grid-column:1/-1}.milestone-timeline{display:flex;gap:0;overflow-x:auto;padding:12px 0}.milestone{position:relative;min-width:190px;color:inherit;text-decoration:none;padding:18px 16px 8px;border-top:2px solid var(--border-subtle)}.milestone i{position:absolute;top:-7px;left:16px;width:12px;height:12px;border-radius:50%;background:#9b7bff;box-shadow:0 0 0 5px rgba(155,123,255,.12)}.milestone.state-completed{border-color:#62e6a7}.milestone.state-completed i{background:#62e6a7}.milestone span{display:block;color:var(--text-tertiary);font-size:.72rem;margin-top:5px}

.sankey-diagram{min-height:260px;color:var(--text-primary);overflow:auto}.sankey-diagram svg{width:100%;min-width:650px}.sankey-fallback{width:100%;border-collapse:collapse;font-size:.8rem}.sankey-fallback caption{text-align:left;color:var(--text-tertiary);padding:8px 0}.sankey-fallback th,.sankey-fallback td{text-align:left;border-top:1px solid var(--border-subtle);padding:8px}.sankey-fallback th:last-child,.sankey-fallback td:last-child{text-align:right}

.health-components{display:grid;gap:8px}.health-components a{display:grid;grid-template-columns:34px minmax(150px,1fr) minmax(120px,auto);gap:6px 11px;align-items:center;padding:10px;border:1px solid var(--border-subtle);border-radius:12px;background:rgba(255,255,255,.022);color:inherit;text-decoration:none;transition:transform .2s var(--ease-out),border-color .2s var(--ease-out)}.health-components a:hover{transform:translateY(-1px);border-color:var(--border-strong)}.health-component-icon{grid-row:1/span 2;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:rgba(87,215,232,.08);color:var(--aurora-cyan)}.health-component-icon svg{width:16px}.health-component-copy,.health-component-result{display:grid;gap:3px}.health-component-copy>strong{font-size:.78rem}.health-component-copy>small,.health-component-result>small{color:var(--text-tertiary);font-size:.7rem;line-height:1.35}.health-component-result{justify-items:end;text-align:right}.health-component-result>strong{font-size:.78rem;color:var(--text-primary)}.health-component-track{grid-column:2/-1;height:5px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.06)}.health-component-track i{display:block;width:min(var(--progress),100%);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--aurora-green),var(--aurora-cyan))}.utilization-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.utilization-grid a{padding:9px;border:1px solid var(--border-subtle);border-radius:10px;color:inherit;text-decoration:none;display:grid;grid-template-columns:1fr auto}.utilization-grid small{grid-column:1/-1;color:var(--text-tertiary);margin-top:3px}.utilization-grid .utilization-high,.utilization-grid .utilization-critical{border-color:rgba(255,112,122,.38)}

.dashboard-layout-dialog{width:min(760px,calc(100vw - 30px));max-height:86vh;padding:0;border:1px solid var(--border-subtle);border-radius:18px;background:#0d121c;color:var(--text-primary);box-shadow:0 30px 90px rgba(0,0,0,.6)}.dashboard-layout-dialog::backdrop{background:rgba(2,4,8,.76);backdrop-filter:blur(8px)}.dashboard-layout-dialog .dialog-head{display:flex;justify-content:space-between;padding:20px;border-bottom:1px solid var(--border-subtle)}.dashboard-layout-dialog .dialog-head button,.event-drawer header button{border:0;background:transparent;color:var(--text-secondary);font-size:1.5rem;cursor:pointer}.dashboard-layout-dialog>[data-layout-form]{padding:16px 20px 20px;overflow:auto}.layout-editor{display:grid;gap:7px}.layout-editor [data-layout-item]{display:grid;grid-template-columns:30px 1fr auto 110px 34px 34px;gap:8px;align-items:center;padding:9px;border:1px solid var(--border-subtle);border-radius:10px;background:rgba(255,255,255,.02)}.layout-editor .dragging{opacity:.45}.drag-handle{cursor:grab;color:var(--text-tertiary)}.layout-editor label,.layout-options label{font-size:.76rem;color:var(--text-secondary)}.layout-editor select,.layout-options select{background:#111824;color:inherit;border:1px solid var(--border-subtle);border-radius:7px;padding:6px}.layout-editor button{border:1px solid var(--border-subtle);background:transparent;color:inherit;border-radius:7px;height:30px}.layout-options{display:flex;flex-wrap:wrap;gap:18px;margin:16px 0}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}

.event-drawer{position:fixed;inset:0;z-index:120;pointer-events:none;visibility:hidden}.event-drawer.is-open{pointer-events:auto;visibility:visible}.event-drawer-backdrop{position:absolute;inset:0;background:rgba(1,3,7,.7);opacity:0;transition:opacity .2s}.event-drawer.is-open .event-drawer-backdrop{opacity:1}.event-drawer>section{position:absolute;right:0;top:0;height:100%;width:min(470px,100vw);overflow:auto;padding:22px;background:#0c121c;border-left:1px solid var(--border-subtle);transform:translateX(100%);transition:transform .24s ease;box-shadow:-24px 0 80px rgba(0,0,0,.55)}.event-drawer.is-open>section{transform:none}.event-drawer header{display:flex;justify-content:space-between;align-items:start;margin-bottom:18px}.event-drawer form{display:grid;gap:12px;padding:14px 0;border-top:1px solid var(--border-subtle)}.event-drawer label{display:grid;gap:6px;color:var(--text-secondary);font-size:.78rem}.event-drawer input,.event-drawer select{width:100%;box-sizing:border-box;background:#111824;color:var(--text-primary);border:1px solid var(--border-subtle);border-radius:9px;padding:10px}.event-evidence dl{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.event-evidence dl div{padding:8px;border:1px solid var(--border-subtle);border-radius:8px}.event-evidence dt{font-size:.65rem;color:var(--text-tertiary);text-transform:uppercase}.event-evidence dd{margin:3px 0 0}.match-proposals article{display:flex;gap:6px;align-items:center;padding:8px 0;border-top:1px solid var(--border-subtle)}.match-proposals article span{flex:1}.match-proposals button{background:transparent;border:1px solid var(--border-subtle);color:inherit;border-radius:7px;padding:5px 7px}.event-history p{display:flex;justify-content:space-between;color:var(--text-secondary);font-size:.75rem;border-top:1px solid var(--border-subtle);padding:8px 0;margin:0}.event-history p strong{text-transform:capitalize}

@media(max-width:980px){.dashboard-layout-widget,.dashboard-layout-widget[data-widget-size="compact"],.dashboard-layout-widget[data-widget-size="medium"],.dashboard-layout-widget[data-widget-size="large"]{grid-column:1/-1}.net-worth-command.dashboard-layout-widget{grid-template-columns:1fr}.net-worth-command .hero-chart-wrap{min-height:230px}.account-spark-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.dashboard-layout-grid{display:block}.dashboard-layout-widget{margin-bottom:16px}.account-spark-grid,.utilization-grid{grid-template-columns:1fr}.cash-timeline summary{grid-template-columns:12px 1fr auto}.cash-timeline summary>b{grid-column:2/-1}.layout-editor [data-layout-item]{grid-template-columns:24px 1fr auto}.layout-editor select{grid-column:2}.layout-editor button{grid-row:2}.financial-ticker{display:none}.health-score{display:block}.health-components{margin-top:18px}.health-components a{grid-template-columns:34px minmax(0,1fr)}.health-component-result{grid-column:2;justify-items:start;text-align:left}.health-component-track{grid-column:2}.spending-heat-map{grid-auto-columns:12px;grid-template-rows:repeat(7,12px)}}@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}.event-drawer>section,.event-drawer-backdrop{transition:none}}

/* Atomic summary values and equal plot geometry at every supported width. */
.command-header h1{line-height:1.04;letter-spacing:-.04em;text-wrap:balance}.net-worth-copy>.hero-eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.1em}.net-worth-command .metric-grid{gap:12px;border-top:0}.net-worth-command .metric-card,.net-worth-command .metric-card:first-child{min-width:0;padding:18px;border:1px solid color-mix(in srgb,var(--tone) 18%,var(--border-soft));border-radius:17px;background:linear-gradient(145deg,color-mix(in srgb,var(--tone) 7%,rgba(255,255,255,.045)),rgba(255,255,255,.018));box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 14px 34px rgba(0,0,0,.12);backdrop-filter:blur(18px)}.net-worth-command .metric-card:hover{border-color:color-mix(in srgb,var(--tone) 30%,var(--border-strong));background:linear-gradient(145deg,color-mix(in srgb,var(--tone) 9%,rgba(255,255,255,.05)),rgba(255,255,255,.022))}.net-worth-command .metric-title{min-height:44px;align-items:flex-start}.net-worth-command .metric-title .summary-label{margin-bottom:0;color:var(--text-primary);font-size:.72rem;font-weight:800}.net-worth-command .metric-title .summary-detail{margin-top:1px;color:var(--text-secondary);font-size:.6rem;font-weight:700;letter-spacing:.055em;line-height:1.15;text-transform:uppercase;white-space:nowrap}.metric-trend-band{grid-template-rows:12px 42px;gap:1px;padding:7px 0 6px}.metric-trend-band::after{inset:auto -20% -28px -20%}.metric-trend-cue{min-height:12px;padding:0 8px;line-height:12px}.metric-trend-cue span,.metric-trend-cue strong,.period-change-grid strong{white-space:nowrap}.metric-trend-cue .money-value{color:var(--text-primary)}.period-change-grid strong>.money-value{font-size:16px;font-weight:750;letter-spacing:-.015em}

/* Health and signal guidance must remain readable at normal viewing distance. */
.health-ring span{font-size:.72rem;line-height:1.35}
.signal strong,.all-clear strong{font-size:.86rem}
.signal p,.all-clear p{font-size:.78rem;line-height:1.45}
.health-component-copy>strong,.health-component-result>strong{font-size:.88rem}
.health-component-copy>small,.health-component-result>small{font-size:.76rem;line-height:1.45}

/* module: analytics.css */
.analytics-page{max-width:1440px}.analytics-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}.analytics-header h1{font-size:clamp(2.1rem,4vw,3.35rem);margin:.25rem 0}.analytics-header p{max-width:760px;color:var(--text-secondary);line-height:1.65}.analytics-period{display:flex;padding:4px;border:1px solid var(--glass-border);border-radius:999px;background:var(--matte-surface)}.analytics-period button{border:0;background:transparent;color:var(--text-muted);padding:8px 13px;border-radius:999px;cursor:pointer}.analytics-period button.active{color:var(--text-primary);background:linear-gradient(135deg,rgba(98,230,167,.18),rgba(155,123,255,.18));box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.analytics-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.glass-stat,.analytics-card{position:relative;border:1px solid var(--glass-border);background:linear-gradient(145deg,rgba(22,27,40,.78),rgba(10,13,20,.62));backdrop-filter:blur(24px) saturate(135%);box-shadow:0 18px 50px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.05);border-radius:22px}.glass-stat{padding:20px}.glass-stat>span{display:block;color:var(--text-muted);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.glass-stat strong{display:block;font-size:1.75rem;margin:.55rem 0 .25rem}.glass-stat small{color:var(--text-secondary)}.danger-tint{background:linear-gradient(145deg,rgba(255,112,122,.12),rgba(10,13,20,.66))}.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.analytics-grid-wide{grid-template-columns:minmax(0,1.65fr) minmax(380px,.75fr)}.analytics-card{padding:22px;min-width:0}.chart-stage{height:330px;margin-top:14px}.chart-stage.tall{height:390px}.chart-stage.donut{height:250px}.split-chart-layout{display:grid;grid-template-columns:1fr;align-items:center}.analytics-legend{display:grid;gap:10px}.analytics-legend div{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:rgba(0,0,0,.18)}.analytics-legend i{width:10px;height:10px;border-radius:50%}.legend-recurring{background:#62E6A7}.legend-discretionary{background:#9B7BFF}.heatmap-card{margin-bottom:18px}.spending-heatmap{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,11px);grid-auto-columns:11px;gap:4px;overflow-x:auto;padding:18px 2px 10px}.heat-cell{width:11px;height:11px;border:0;border-radius:3px;background:rgba(255,255,255,.045);padding:0}.heat-cell[data-level="1"],.heatmap-scale i[data-level="1"]{background:rgba(87,215,232,.28)}.heat-cell[data-level="2"],.heatmap-scale i[data-level="2"]{background:rgba(87,215,232,.48)}.heat-cell[data-level="3"],.heatmap-scale i[data-level="3"]{background:rgba(98,230,167,.68)}.heat-cell[data-level="4"],.heatmap-scale i[data-level="4"]{background:#62E6A7;box-shadow:0 0 8px rgba(98,230,167,.35)}.heatmap-scale{display:flex;align-items:center;justify-content:flex-end;gap:5px;color:var(--text-muted);font-size:.72rem}.heatmap-scale i{width:11px;height:11px;border-radius:3px;background:rgba(255,255,255,.045)}.chart-note{color:var(--text-muted);font-size:.75rem;line-height:1.5;margin-top:10px}@media(max-width:1050px){.analytics-summary-grid{grid-template-columns:repeat(2,1fr)}.analytics-grid,.analytics-grid-wide{grid-template-columns:1fr}}@media(max-width:650px){.analytics-header{align-items:flex-start;flex-direction:column}.analytics-summary-grid{grid-template-columns:1fr}.chart-stage,.chart-stage.tall{height:290px}}

/* Build 49: synchronized analysis controls and complete intelligence evidence. */
.intelligence-page{min-width:0}.analysis-period-card{margin:16px 0;padding:18px 20px;border:1px solid var(--glass-border);border-radius:20px;background:linear-gradient(145deg,rgba(18,26,39,.78),rgba(9,12,19,.66));box-shadow:0 18px 50px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.05)}
.analysis-period-heading,.analysis-period-controls{display:flex;align-items:center;justify-content:space-between;gap:16px}.analysis-period-heading h2{margin:.18rem 0;font-size:1.45rem}.analysis-period-heading p,.analysis-coverage-note{margin:.22rem 0 0;color:var(--text-secondary);line-height:1.4}.analysis-period-actions,.analysis-period-presets,.analysis-custom-range{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.analysis-period-actions form{margin:0}.analysis-period-controls{margin-top:13px;padding-top:13px;border-top:1px solid var(--glass-border)}
.analysis-period-option{display:flex;align-items:center;justify-content:center;min-height:34px;padding:7px 12px;border:1px solid var(--glass-border);border-radius:999px;background:rgba(3,7,13,.24);color:var(--text-secondary);font-size:.76rem;font-weight:700;line-height:1;text-decoration:none;white-space:nowrap}.analysis-period-option.active{border-color:rgba(87,215,232,.38);background:linear-gradient(135deg,rgba(98,230,167,.16),rgba(87,215,232,.12));color:var(--text-primary)}.analysis-period-option.disabled{cursor:not-allowed;opacity:.42}
.analysis-custom-disclosure{position:relative;margin-left:auto}.analysis-custom-disclosure>summary{display:flex;align-items:center;min-height:34px;padding:7px 12px;border:1px solid var(--glass-border);border-radius:999px;background:rgba(255,255,255,.035);color:var(--text-secondary);font-size:.76rem;font-weight:700;cursor:pointer;list-style:none;white-space:nowrap}.analysis-custom-disclosure>summary::-webkit-details-marker{display:none}.analysis-custom-disclosure>summary::after{content:"+";margin-left:8px;color:var(--aurora-cyan);font-size:.9rem}.analysis-custom-disclosure[open]>summary::after{content:"\2212"}.analysis-custom-disclosure[open]{width:100%}.analysis-custom-disclosure[open]>summary{width:max-content;margin-left:auto}.analysis-custom-disclosure:not([open])>.analysis-custom-range{display:none}.analysis-custom-range{justify-content:flex-end;margin-top:12px;padding:12px;border:1px solid var(--glass-border);border-radius:14px;background:rgba(3,7,13,.22)}.analysis-custom-range label{display:grid;gap:4px;color:var(--text-muted);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.analysis-custom-range input{min-width:135px;padding:8px 10px;border:1px solid var(--glass-border);border-radius:10px;background:var(--matte-surface);color:var(--text-primary);color-scheme:dark}.analysis-coverage-note{padding:8px 10px;border-radius:10px;background:rgba(244,185,94,.075);color:var(--warning,#f4b95e);font-size:.74rem}.analysis-period-card>.analysis-coverage-note{margin-top:12px}
.chart-stage{position:relative}.chart-empty-state{display:grid;place-items:center;height:100%;min-height:150px;padding:24px;border:1px dashed var(--glass-border);border-radius:14px;color:var(--text-muted);text-align:center}.chart-empty-state[hidden]{display:none}.analytics-table-wrap{width:100%;overflow-x:auto;margin-top:12px}.analytics-data-table{width:100%;min-width:520px;border-collapse:collapse;font-size:.82rem}.analytics-data-table caption{padding:0 0 10px;color:var(--text-secondary);font-weight:700;text-align:left}.analytics-data-table th,.analytics-data-table td{padding:11px 12px;border-bottom:1px solid var(--glass-border);text-align:left;white-space:nowrap}.analytics-data-table th{color:var(--text-muted);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase}.analytics-data-table td:not(:first-child),.analytics-data-table th:not(:first-child){text-align:right}.interest-table-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.analytics-event-list{display:grid;gap:10px;margin-top:14px}.analytics-event-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 16px;padding:13px 14px;border:1px solid var(--glass-border);border-radius:14px;background:rgba(0,0,0,.14)}.analytics-event-row div{display:grid;gap:3px;min-width:0}.analytics-event-row strong,.analytics-event-row small{overflow-wrap:anywhere}.analytics-event-row small{color:var(--text-muted)}.analytics-event-row>span{color:var(--text-secondary);font-weight:700;white-space:nowrap}.analytics-event-row p{grid-column:1/-1;margin:3px 0 0;color:var(--text-secondary);font-size:.78rem;line-height:1.45}.analytics-event-row.risk-warning,.analytics-event-row.risk-high,.analytics-event-row.risk-danger{border-color:rgba(244,185,94,.28);background:rgba(244,185,94,.06)}
.insight-supporting-link{display:inline-flex;margin-top:12px;color:var(--accent-cyan,#57d7e8);font-size:.78rem;font-weight:700;text-decoration:none}.insight-supporting-link:hover{text-decoration:underline}.insight-actions,.insight-row-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.insight-actions form,.insight-row-actions form{margin:0}.insight-actions button,.insight-row-actions button{min-height:34px;padding:7px 10px;border:1px solid var(--glass-border);border-radius:9px;background:rgba(255,255,255,.035);color:var(--text-secondary);font:inherit;font-size:.72rem;cursor:pointer}.insight-actions button:hover,.insight-row-actions button:hover{border-color:rgba(87,215,232,.32);color:var(--text-primary)}
.heat-cell[data-state="missing_import"]{box-sizing:border-box;background:repeating-linear-gradient(135deg,rgba(244,185,94,.18),rgba(244,185,94,.18) 2px,rgba(244,185,94,.04) 2px,rgba(244,185,94,.04) 4px);border:1px solid rgba(244,185,94,.22);outline:0}.heat-cell[data-state="pre_collection"]{box-sizing:border-box;background:transparent;border:1px dashed rgba(167,173,189,.22);outline:0}.heat-cell[data-state="true_zero"]{background:rgba(255,255,255,.045)}
@media(max-width:1050px){.analysis-period-heading{align-items:flex-start}.analysis-period-controls{align-items:flex-start;flex-wrap:wrap}.interest-table-grid{grid-template-columns:1fr}.analysis-custom-disclosure{margin-left:0}}
@media(max-width:700px){.analysis-period-card{padding:16px}.analysis-period-heading{display:grid;grid-template-columns:1fr}.analysis-period-actions{justify-content:flex-start}.analysis-custom-disclosure,.analysis-custom-disclosure[open]{width:100%;margin-left:0}.analysis-custom-disclosure[open]>summary{margin-left:0}.analysis-custom-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.analysis-custom-range label,.analysis-custom-range input{min-width:0;width:100%}.analysis-custom-range button{grid-column:1/-1}.analytics-event-row{grid-template-columns:1fr}.analytics-event-row>span{white-space:normal}.analytics-event-row p{grid-column:1}.insight-row-actions{width:100%}}
@media(max-width:480px){.analysis-period-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.analysis-period-actions .action-button,.analysis-period-actions form{width:100%}.analysis-period-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.analysis-period-option{padding-inline:8px;border-radius:11px}.analysis-custom-range{grid-template-columns:1fr}.analysis-custom-range button{grid-column:1}}

/* Corrective FI layer: readable calendar axes and keyboard-visible day evidence. */
.analytics-card.heatmap-card{overflow:hidden}.heatmap-layout{--heatmap-month-axis-height:18px;display:grid;grid-template-columns:32px minmax(0,1fr);column-gap:8px;min-width:0;margin-top:12px}.heatmap-layout>.heatmap-weekdays{position:static;inset:auto;display:grid;grid-template-rows:repeat(7,11px);gap:4px;padding-top:var(--heatmap-month-axis-height);color:var(--text-muted);font-size:.58rem;line-height:11px;text-align:right}.heatmap-layout>.heatmap-weekdays span{display:block}.heatmap-layout .heatmap-scroll{min-width:0;overflow-x:auto;padding-bottom:5px}.heatmap-layout .heatmap-months{display:grid;grid-template-columns:repeat(var(--heatmap-weeks),11px);column-gap:4px;width:max-content;min-height:var(--heatmap-month-axis-height);margin:0;color:var(--text-muted);font-size:.62rem;line-height:14px}.heatmap-layout .heatmap-months span{white-space:nowrap}.heatmap-layout .spending-heatmap{grid-template-rows:repeat(7,11px);grid-auto-columns:11px;gap:4px;width:max-content;margin-left:0;padding:0 2px 4px;overflow:visible}.heat-cell-placeholder{visibility:hidden;pointer-events:none}.heatmap-layout .heat-cell{cursor:pointer;transition:transform .15s ease,outline-color .15s ease}.heatmap-layout .heat-cell:hover,.heatmap-layout .heat-cell:focus-visible{outline:2px solid var(--aurora-cyan);outline-offset:2px;transform:scale(1.16)}.heatmap-focus-detail{grid-column:1/-1;min-height:1.2rem;margin:8px 0 0;color:var(--text-secondary);font-size:.7rem}.heatmap-layout[hidden]{display:none}
@media(max-width:650px){.heatmap-layout{grid-template-columns:28px minmax(0,1fr)}}

/* Financial Intelligence headings keep labels and monetary metadata readable. */
.intelligence-page .analytics-card .widget-heading>span,.intelligence-page .analytics-card .widget-heading>strong{max-width:100%;white-space:nowrap}
@media(max-width:700px){.intelligence-page .analytics-card .widget-heading{align-items:flex-start;flex-direction:column;gap:5px}.intelligence-page .analytics-card .widget-heading>span,.intelligence-page .analytics-card .widget-heading>strong{overflow:hidden;text-overflow:ellipsis}}

/* module: settings.css */
.settings-page{max-width:1400px}.settings-hero{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding:34px}.settings-hero h1{margin:6px 0 8px;font:800 clamp(2rem,4vw,3.6rem)/1 var(--font-display);letter-spacing:-.05em}.settings-hero p{max-width:700px;margin:0;color:var(--text-secondary);line-height:1.65}.settings-orbit{position:relative;width:150px;height:100px;flex:0 0 auto}.settings-orbit span{position:absolute;border:1px solid rgba(155,123,255,.35);border-radius:50%;inset:10px 0;transform:rotate(-12deg);box-shadow:0 0 35px rgba(87,215,232,.12)}.settings-orbit span:nth-child(2){inset:22px 15px;transform:rotate(22deg);border-color:rgba(98,230,167,.35)}.settings-orbit span:nth-child(3){inset:38px 42px;background:radial-gradient(circle,#f6f7fb 0,#9b7bff 30%,transparent 70%);border:0;filter:blur(.2px)}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.settings-card{padding:24px}.settings-card-heading{display:flex;gap:14px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid var(--border-soft)}.settings-card-heading h2{margin:0 0 5px;font:700 1.15rem var(--font-display)}.settings-card-heading p{margin:0;color:var(--text-secondary);font-size:.84rem;line-height:1.5}.settings-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;color:var(--aurora-cyan);background:linear-gradient(145deg,rgba(87,215,232,.12),rgba(155,123,255,.1));border:1px solid var(--border-soft)}.settings-icon svg{width:21px}.setting-row,.setting-toggle{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;border-bottom:1px solid var(--border-soft)}.setting-row>div:first-child,.setting-toggle>span{display:flex;flex-direction:column;gap:5px}.setting-row strong,.setting-toggle strong{font-size:.88rem}.setting-row span,.setting-toggle small{color:var(--text-secondary);font-size:.75rem;line-height:1.45}.setting-row select,.shortcut-input{min-width:140px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface-matte);color:var(--text-primary);padding:10px 12px}.segmented-control{display:flex;padding:4px;border-radius:12px;background:var(--surface-matte);border:1px solid var(--border-soft)}.segmented-control button{border:0;border-radius:8px;background:transparent;color:var(--text-secondary);padding:8px 12px;font:600 .75rem var(--font-ui);cursor:pointer}.segmented-control button.active{color:var(--text-primary);background:linear-gradient(135deg,rgba(87,215,232,.16),rgba(155,123,255,.18));box-shadow:inset 0 0 0 1px var(--border-strong)}.setting-toggle{cursor:pointer}.setting-toggle input{position:absolute;opacity:0}.setting-toggle i{position:relative;width:44px;height:25px;flex:0 0 auto;border-radius:999px;background:var(--surface-matte);border:1px solid var(--border-strong);transition:.2s}.setting-toggle i:after{content:"";position:absolute;width:17px;height:17px;left:3px;top:3px;border-radius:50%;background:var(--text-muted);transition:.2s}.setting-toggle input:checked+i{background:rgba(98,230,167,.18);border-color:rgba(98,230,167,.45)}.setting-toggle input:checked+i:after{transform:translateX(19px);background:var(--aurora-green);box-shadow:0 0 16px rgba(98,230,167,.45)}.shortcut-list label{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px 0;border-bottom:1px solid var(--border-soft)}.shortcut-list label span{display:flex;flex-direction:column;gap:4px}.shortcut-list small{color:var(--text-secondary)}.shortcut-input{width:110px;min-width:110px;text-align:center}.settings-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.settings-card>.action-button{margin-top:18px}.settings-save-note{display:flex;align-items:center;justify-content:center;gap:9px;margin:24px 0;color:var(--text-muted);font-size:.75rem}@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.settings-orbit{display:none}}@media(max-width:620px){.settings-hero{padding:24px}.setting-row,.setting-toggle,.shortcut-list label{align-items:flex-start;flex-direction:column}.segmented-control,.setting-row select{width:100%}.shortcut-input{width:100%}}
.settings-card-wide{grid-column:1/-1}.settings-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.settings-split>.settings-form{padding:16px;border:1px solid var(--border-soft);border-radius:14px;background:rgba(255,255,255,.015)}.settings-form h3,.compensation-history h3{margin:0 0 13px;font:700 .9rem var(--font-display)}.semimonthly-days{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.compensation-history{margin-top:20px}.compensation-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px 0;border-bottom:1px solid var(--border-soft)}.compensation-row>div{display:flex;flex-direction:column;gap:4px}.compensation-row>div:last-child{align-items:flex-end}.compensation-row strong,.compensation-row b{font-size:.78rem}.compensation-row span{color:var(--text-muted);font-size:.68rem}.subcategory-add-form{display:flex;align-items:end;gap:10px;padding:14px;border-bottom:1px solid var(--border-soft)}.subcategory-add-form .form-field{flex:1}.subcategory-management-list{display:grid}.subcategory-management-row{padding:13px 14px;border-bottom:1px solid var(--border-soft)}.subcategory-management-row.inactive{background:rgba(255,255,255,.012)}.subcategory-identity{display:flex;flex-direction:column;gap:4px}.subcategory-identity strong{font-size:.78rem}.subcategory-identity span{color:var(--text-muted);font-size:.64rem}.subcategory-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.subcategory-actions form{display:flex;gap:5px}.subcategory-actions input{min-width:0;width:140px;padding:7px 8px}.subcategory-actions input[type=number]{width:62px}.subcategory-merge{margin-top:9px}.subcategory-merge>summary{color:var(--text-muted);font-size:.67rem;cursor:pointer}.subcategory-merge form{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.subcategory-merge select,.subcategory-merge input{min-width:180px;padding:8px}.category-main>summary{display:flex;justify-content:space-between;gap:14px;padding:14px;cursor:pointer}.category-main>summary small{color:var(--text-muted)}
@media(max-width:900px){.settings-split{grid-template-columns:1fr}}@media(max-width:620px){.compensation-row{align-items:flex-start;flex-direction:column}.compensation-row>div:last-child{align-items:flex-start}.subcategory-add-form{align-items:stretch;flex-direction:column}.subcategory-actions form{width:100%}.subcategory-actions input{flex:1;width:auto}.subcategory-merge form{flex-direction:column}.subcategory-merge select,.subcategory-merge input{width:100%;min-width:0}}

.transaction-ai-meter {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding: 18px 0;
    border-bottom: 1px solid var(--border-soft);
}

.settings-integration-check {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--border-soft);
}

.settings-integration-check .health-summary {
    margin-top: 0;
}

.settings-integration-check form {
    flex: 0 0 auto;
}

@media (max-width: 620px) {
    .settings-integration-check {
        align-items: stretch;
        flex-direction: column;
    }

    .settings-integration-check .action-button {
        width: 100%;
    }
}

.transaction-ai-meter-stat {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 14px 7px;
    border: 1px solid var(--border-soft);
    border-radius: 12px;
    background: var(--surface-matte);
}

.transaction-ai-meter-stat > span {
    color: var(--text-secondary);
    font-size: .72rem;
    line-height: 1.4;
    white-space: nowrap;
}

.transaction-ai-meter-stat > strong {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .35em;
    font-size: clamp(.95rem, 2vw, 1.1rem);
    line-height: 1.25;
    font-variant-numeric: tabular-nums;
}

.transaction-ai-meter-stat > strong > small {
    color: var(--text-secondary);
    font: 600 .7rem/1.4 var(--font-ui);
    white-space: nowrap;
}

.transaction-ai-meter-value {
    white-space: nowrap;
}

.transaction-ai-meter-note {
    grid-column: 1 / -1;
    margin: 0;
    color: var(--text-secondary);
    font-size: .72rem;
    line-height: 1.45;
}

@media (max-width: 620px) {
    .transaction-ai-meter {
        grid-template-columns: minmax(0, 1fr);
    }

    .transaction-ai-meter-stat {
        padding: 12px 14px;
    }

    .transaction-ai-meter-stat > span {
        white-space: normal;
    }

    .transaction-ai-meter-note {
        grid-column: 1;
    }
}

/* module: step28.css */
/* Step 28 — complete Aurora/Pearl reconciliation */
:root{--card-bg:rgba(17,21,32,.74);--card-border:rgba(255,255,255,.10);--matte:#0c0f16;--field-bg:rgba(7,10,16,.76)}
body{background:linear-gradient(180deg,#05070d 0%,#090c14 58%,#11141d 100%);color:var(--text-primary)}
.main-content{min-width:0}.page-container{max-width:1480px}
/* Global cards: legacy light surfaces become intentional glass/matte surfaces */
.form-card,.summary-card,.transaction-summary-card,.transaction-form-card,.transaction-import-card,.transaction-filter-card,.transaction-table-card,.budget-summary-card,.budget-form-card,.budget-recommendation-card,.budget-progress-card,.budget-alert-panel,.debt-plan-card,.strategy-card,.debt-summary-card,.debt-table-card,.notification-settings-card,.notification-controls-card,.notification-card,.institution-card,.production-readiness-card,.connection-empty-state,.empty-state,.form-panel,.settings-card,.account-list-item,.account-match-card,.discord-status-banner,.plaid-environment-banner,.connection-explanation-card,.connection-security-note{background:linear-gradient(145deg,rgba(25,30,44,.78),rgba(10,13,21,.70));border:1px solid var(--card-border);color:var(--text-primary);box-shadow:0 18px 50px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.045);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.form-card h2,.form-card h3,.transaction-import-card h2,.transaction-filter-card h2,.budget-form-card h2,.budget-recommendation-card h2,.empty-state h3,.notification-card h3,.institution-card h3{color:var(--text-primary)}
.form-card p,.summary-detail,.form-help,.transaction-filter-card p,.empty-state p,.notification-message,.institution-card p{color:var(--text-secondary)}
input,select,textarea,input[type=file]{background:var(--field-bg);color:var(--text-primary);border:1px solid rgba(255,255,255,.12);box-shadow:inset 0 1px rgba(255,255,255,.03)}
input::placeholder,textarea::placeholder{color:var(--text-muted)}select option{background:#111520;color:#f6f7fb}input:focus,select:focus,textarea:focus{border-color:rgba(87,215,232,.65);box-shadow:0 0 0 3px rgba(87,215,232,.12)}
label,.form-field label{color:var(--text-secondary);font-size:.72rem;font-weight:700;letter-spacing:.055em;text-transform:uppercase}
.action-button,.primary-button,.edit-button,.delete-button,.compact-action{border-radius:11px;font-weight:700;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.action-button:hover,.primary-button:hover,.edit-button:hover,.compact-action:hover{transform:translateY(-2px)}
.action-button-primary,.primary-button{background:linear-gradient(115deg,#62e6a7,#57d7e8);color:#06100d;border:0;box-shadow:0 10px 26px rgba(87,215,232,.16)}.action-button-secondary,.edit-button,.compact-action-edit{background:rgba(255,255,255,.065);color:var(--text-primary);border:1px solid rgba(255,255,255,.12)}.action-button-danger,.delete-button,.compact-action-delete{background:rgba(255,112,122,.09);color:#ff9ba3;border:1px solid rgba(255,112,122,.25)}
/* Persistent privacy control */
.privacy-icon-off{display:none}.privacy-hidden .privacy-icon-on{display:none}.privacy-hidden .privacy-icon-off{display:block}.privacy-hidden [data-sensitive],.privacy-hidden .account-balance,.privacy-hidden .available-balance,.privacy-hidden .transaction-amount,.privacy-hidden .summary-value:not(.count-only),.privacy-hidden .money,.privacy-hidden .currency{filter:none;color:transparent;text-shadow:none;position:relative;user-select:none;pointer-events:none}.privacy-hidden [data-sensitive]::after,.privacy-hidden .account-balance::after,.privacy-hidden .available-balance::after,.privacy-hidden .transaction-amount::after{content:'••••••';position:absolute;inset:0;color:var(--text-secondary);display:flex;align-items:center;justify-content:inherit;letter-spacing:.13em;background:linear-gradient(90deg,rgba(98,230,167,.13),rgba(155,123,255,.10));border-radius:8px}.privacy-hidden canvas{filter:blur(16px) brightness(.5);opacity:.5}.privacy-hidden .chart-stage{overflow:hidden}
/* Dashboard density and sizing */
.dashboard-grid{align-items:start}.dashboard-widget{min-height:0;height:auto}.spending-widget,.cash-flow-widget{min-height:420px}.category-visual{min-height:290px}.cashflow-chart{height:300px}.dashboard-widget .chart-stage{min-height:260px}.streak-icon svg{width:25px;height:25px;color:#f4b95e;filter:drop-shadow(0 0 12px rgba(244,185,94,.35))}.metric-icon svg{width:21px;height:21px}.primary-action.loading svg{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.calendar-day{cursor:pointer}.calendar-day.selected{background:linear-gradient(145deg,rgba(87,215,232,.19),rgba(155,123,255,.16));border-color:rgba(87,215,232,.38);box-shadow:0 0 0 1px rgba(87,215,232,.12),0 8px 22px rgba(0,0,0,.18)}.calendar-day.today b{color:#62e6a7}.calendar-agenda [hidden]{display:none}.calendar-agenda small{line-height:1.45}.calendar-agenda p{color:var(--text-muted);padding:16px 4px}
/* Accounts */
.account-list-item{padding:22px}.account-name{font-size:1.08rem;letter-spacing:-.015em}.account-type{color:var(--text-secondary);margin-top:5px}.account-number,.account-sync-text{color:var(--text-muted)}.plaid-source-badge{background:rgba(98,230,167,.09);color:#62e6a7;border:1px solid rgba(98,230,167,.18)}.connected-account-detail,.debt-detail-grid>div{background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.06)}.connection-status{display:none}
/* Transactions */
.transactions-container,.budgets-container{max-width:1480px}.transactions-page-grid,.transaction-top-grid{align-items:start}.transaction-table-wrapper,.transaction-table-container{background:transparent;overflow:auto;border-radius:14px}.transaction-table,table.transactions-table{width:100%;background:rgba(8,11,18,.68);color:var(--text-primary);border-collapse:separate;border-spacing:0}.transaction-table th,table.transactions-table th{position:sticky;top:0;z-index:2;background:#111622;color:var(--text-secondary);border-bottom:1px solid rgba(255,255,255,.10);font-size:.68rem;text-transform:uppercase;letter-spacing:.055em}.transaction-table td,table.transactions-table td{color:var(--text-primary);border-bottom:1px solid rgba(255,255,255,.055);background:transparent}.transaction-table tbody tr:nth-child(even),table.transactions-table tbody tr:nth-child(even){background:rgba(255,255,255,.018)}.transaction-table tbody tr:hover,table.transactions-table tbody tr:hover{background:rgba(87,215,232,.055)}.transaction-message{background:rgba(87,215,232,.08);color:var(--text-primary);border:1px solid rgba(87,215,232,.17)}.csv-file-input::file-selector-button{background:rgba(255,255,255,.08);color:var(--text-primary);border:0;padding:9px 12px;border-radius:8px}
/* Analytics */
.split-chart-layout{min-width:0}.chart-stage.donut{width:min(100%,310px);height:310px;margin:auto}.analytics-legend{min-width:0}.analytics-legend>div{min-width:0}.analytics-legend span{overflow:hidden;text-overflow:ellipsis}.merchant-stage,.category-stage{height:max(330px,calc(var(--chart-rows) * 42px))}.heatmap-card{position:relative}.spending-heatmap{margin-left:38px;overflow:visible}.heatmap-weekdays{position:absolute;left:18px;top:102px;height:86px;display:flex;flex-direction:column;justify-content:space-between;font-size:.62rem;color:var(--text-muted)}.heatmap-months{margin:0 0 5px 38px;display:grid;grid-template-columns:repeat(53,minmax(8px,1fr));font-size:.62rem;color:var(--text-muted);min-width:720px}.heatmap-months span{white-space:nowrap}.heatmap-card{overflow-x:auto}.analytics-card canvas{max-width:100%}
/* Budgets */
.budget-month-banner{display:none}.budget-summary-grid .summary-card{min-height:132px}.budget-progress-track,.progress-track{background:rgba(255,255,255,.07)}.budget-progress-fill,.progress-fill{background:linear-gradient(90deg,#62e6a7,#57d7e8)}.budget-alert-panel p{color:var(--text-secondary)}
/* Debt, notifications, connections */
.notification-scheduling-note,.discord-status-banner,.connection-explanation-card,.connection-security-note,.plaid-environment-banner{display:none}.notification-card{border-left-width:3px}.notification-card time,.notification-meta-row{color:var(--text-muted)}.notification-message{line-height:1.65}.institution-actions{gap:10px}.institution-sync-details>div{background:rgba(0,0,0,.17)}.debt-plan-container .empty-state,.debt-empty-state{padding:44px;text-align:center}.debt-plan-container table{background:rgba(8,11,18,.65);color:var(--text-primary)}.debt-plan-container th{background:#111622;color:var(--text-secondary)}.debt-plan-container td{color:var(--text-primary);border-color:rgba(255,255,255,.06)}
/* Pearl rebuilt */
html[data-theme='pearl']{--background-top:#f8fbff;--background-bottom:#e9eef7;--surface-matte:#f3f6fb;--surface-glass:rgba(255,255,255,.80);--text-primary:#101828;--text-secondary:#475467;--text-muted:#667085;--border-subtle:rgba(16,24,40,.10);--field-bg:rgba(255,255,255,.90);--card-bg:rgba(255,255,255,.82);--card-border:rgba(16,24,40,.10)}html[data-theme='pearl'] body{background:radial-gradient(circle at 18% 6%,rgba(98,230,167,.16),transparent 30%),radial-gradient(circle at 82% 0%,rgba(155,123,255,.14),transparent 32%),linear-gradient(180deg,#fbfdff 0%,#f4f7fc 55%,#e9eef7 100%);color:#101828}html[data-theme='pearl'] .sidebar{background:linear-gradient(180deg,rgba(245,249,255,.94),rgba(231,237,247,.96));border-right:1px solid rgba(16,24,40,.10);box-shadow:12px 0 40px rgba(60,72,98,.08)}html[data-theme='pearl'] .sidebar-link{color:#475467}html[data-theme='pearl'] .sidebar-link.active{background:linear-gradient(115deg,rgba(98,230,167,.18),rgba(155,123,255,.14));color:#101828;border-color:rgba(49,87,213,.13)}html[data-theme='pearl'] .form-card,html[data-theme='pearl'] .summary-card,html[data-theme='pearl'] .dashboard-widget,html[data-theme='pearl'] .analytics-card,html[data-theme='pearl'] .settings-card,html[data-theme='pearl'] .account-list-item,html[data-theme='pearl'] .notification-card,html[data-theme='pearl'] .institution-card,html[data-theme='pearl'] .production-readiness-card,html[data-theme='pearl'] .transaction-form-card,html[data-theme='pearl'] .transaction-import-card,html[data-theme='pearl'] .transaction-filter-card,html[data-theme='pearl'] .budget-form-card,html[data-theme='pearl'] .budget-recommendation-card{background:linear-gradient(145deg,rgba(255,255,255,.90),rgba(245,248,253,.78));border-color:rgba(16,24,40,.10);box-shadow:0 18px 45px rgba(68,82,110,.10),inset 0 1px #fff;color:#101828}html[data-theme='pearl'] input,html[data-theme='pearl'] select,html[data-theme='pearl'] textarea{background:rgba(255,255,255,.92);color:#101828;border-color:rgba(16,24,40,.14)}html[data-theme='pearl'] select option{background:#fff;color:#101828}html[data-theme='pearl'] .transaction-table,html[data-theme='pearl'] table.transactions-table,html[data-theme='pearl'] .debt-plan-container table{background:rgba(255,255,255,.72);color:#101828}html[data-theme='pearl'] .transaction-table th,html[data-theme='pearl'] table.transactions-table th,html[data-theme='pearl'] .debt-plan-container th{background:#edf2f9;color:#475467}html[data-theme='pearl'] .transaction-table td,html[data-theme='pearl'] table.transactions-table td,html[data-theme='pearl'] .debt-plan-container td{color:#101828;border-color:rgba(16,24,40,.08)}html[data-theme='pearl'] .aurora-backdrop{opacity:.42}
@media(max-width:1050px){.split-chart-layout{grid-template-columns:1fr}.analytics-legend{width:100%}.chart-stage.donut{height:260px}.spending-widget,.cash-flow-widget{min-height:360px}}
@media(max-width:700px){.spending-widget,.cash-flow-widget{min-height:0}.merchant-stage,.category-stage{height:max(300px,calc(var(--chart-rows) * 38px))}.heatmap-card{padding-bottom:20px}.sidebar-footer .sidebar-utility span{display:inline}}

/* module: regression-fixes.css */
/* =========================================================
   Step 28.1 regression repair
   Loaded after all legacy and theme styles.
   ========================================================= */

:root {
    --aurora-panel: linear-gradient(145deg, rgba(24, 29, 43, .84), rgba(8, 11, 18, .78));
    --aurora-panel-soft: linear-gradient(145deg, rgba(18, 23, 35, .76), rgba(8, 11, 18, .68));
    --aurora-panel-matte: rgba(9, 12, 19, .90);
    --aurora-line: rgba(255, 255, 255, .09);
}

/* Never hide the history table or other long content regions. */
.transaction-table-wrapper,
.transaction-table-wrapper.reveal-on-scroll,
.transaction-table,
.transaction-table tbody,
.transaction-table tr,
.transaction-table td,
.transaction-table th {
    opacity: 1 ;
    visibility: visible ;
}

.transaction-table-wrapper {
    display: block ;
    width: 100%;
    min-height: 120px;
    margin-top: 14px;
    overflow: auto;
    border: 1px solid var(--aurora-line);
    border-radius: 18px;
    background: rgba(7, 10, 16, .86) ;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .22);
}

.transaction-table {
    display: table ;
    min-width: 940px;
}

.transaction-table thead { display: table-header-group ; }
.transaction-table tbody { display: table-row-group ; }
.transaction-table tr { display: table-row ; }
.transaction-table th,
.transaction-table td { display: table-cell ; }

/* Fully theme all legacy transaction surfaces. */
body[data-page='transactions'] .transaction-entry-card,
body[data-page='transactions'] .transaction-import-card,
body[data-page='transactions'] .transaction-category-card,
body[data-page='transactions'] .transaction-filter-card,
body[data-page='transactions'] .transaction-empty-state,
body[data-page='transactions'] .transaction-empty-mini {
    color: var(--text-primary) ;
    border: 1px solid var(--aurora-line) ;
    background: var(--aurora-panel) ;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .22), inset 0 1px rgba(255, 255, 255, .045) ;
    backdrop-filter: blur(22px) saturate(130%);
}

body[data-page='transactions'] .transaction-workspace {
    align-items: start;
}

body[data-page='transactions'] .transaction-card-title,
body[data-page='transactions'] .transaction-card-heading,
body[data-page='transactions'] .category-spending-heading,
body[data-page='transactions'] .section-title,
body[data-page='transactions'] strong {
    color: var(--text-primary);
}

body[data-page='transactions'] .transaction-section-description,
body[data-page='transactions'] .table-subtext,
body[data-page='transactions'] .muted-text,
body[data-page='transactions'] .transaction-note {
    color: var(--text-secondary) ;
}

body[data-page='transactions'] .category-spending-item {
    border-color: rgba(255, 255, 255, .07) ;
    background: rgba(255, 255, 255, .025) ;
}

body[data-page='transactions'] .category-progress-track {
    background: rgba(255, 255, 255, .075) ;
}

body[data-page='transactions'] input,
body[data-page='transactions'] select,
body[data-page='transactions'] textarea,
body[data-page='transactions'] .file-upload-label {
    color: var(--text-primary) ;
    border-color: rgba(255, 255, 255, .11) ;
    background: rgba(5, 8, 14, .72) ;
}

body[data-page='transactions'] input::placeholder,
body[data-page='transactions'] textarea::placeholder {
    color: var(--text-muted) ;
}

body[data-page='transactions'] select option {
    color: var(--text-primary);
    background: #111622;
}

/* Analytics charts need explicit, stable dimensions. */
:is(body[data-page='analytics'], body[data-page='intelligence']) .analytics-card,
:is(body[data-page='analytics'], body[data-page='intelligence']) .glass-stat,
:is(body[data-page='analytics'], body[data-page='intelligence']) .heatmap-card {
    color: var(--text-primary) ;
    border: 1px solid var(--aurora-line) ;
    background: var(--aurora-panel) ;
}

:is(body[data-page='analytics'], body[data-page='intelligence']) .chart-stage {
    position: relative;
    width: 100%;
    min-width: 0;
    min-height: 300px;
}

:is(body[data-page='analytics'], body[data-page='intelligence']) .chart-stage canvas {
    display: block ;
    width: 100% ;
    height: 100% ;
    opacity: 1 ;
    visibility: visible ;
}

:is(body[data-page='analytics'], body[data-page='intelligence']) .merchant-stage,
:is(body[data-page='analytics'], body[data-page='intelligence']) .category-stage {
    min-height: 340px;
}

:is(body[data-page='analytics'], body[data-page='intelligence']) .split-chart-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    align-items: center;
}

:is(body[data-page='analytics'], body[data-page='intelligence']) .chart-stage.donut {
    width: 100% ;
    max-width: 250px;
    height: 290px ;
    margin-inline: auto;
}

:is(body[data-page='analytics'], body[data-page='intelligence']) .split-chart-layout .analytics-legend {
    width: 100%;
    min-width: 0;
}

/* Theme every remaining high-visibility legacy card. */
body[data-page='budgets'] .budget-add-card,
body[data-page='budgets'] .budget-settings-card,
body[data-page='budgets'] .budget-recommendations-card,
body[data-page='budgets'] .budget-chart-card,
body[data-page='budgets'] .budget-unbudgeted-card,
body[data-page='budgets'] .budget-alert-panel,
body[data-page='budgets'] .budget-empty-state,
body[data-page='debt'] .debt-settings-card,
body[data-page='debt'] .strategy-comparison-grid > *,
body[data-page='debt'] .chart-card,
body[data-page='debt'] .payoff-table-wrapper,
body[data-page='debt'] .schedule-table,
body[data-page='debt'] .debt-empty-state,
body[data-page='notifications'] .notification-settings-card,
body[data-page='notifications'] .notification-controls-card,
body[data-page='notifications'] .notification-card,
body[data-page='notifications'] .notification-empty-state,
body[data-page='connections'] .production-readiness-card,
body[data-page='connections'] .production-tool-grid article,
body[data-page='connections'] .institution-card,
body[data-page='connections'] .connection-empty-state,
body[data-page='connections'] .connection-explanation-card,
body[data-page='connections'] .connection-security-note,
body[data-page='accounts'] .form-card,
body[data-page='accounts'] .account-list-item,
body[data-page='accounts'] .empty-state,
body[data-page='settings'] .settings-card {
    color: var(--text-primary) ;
    border: 1px solid var(--aurora-line) ;
    background: var(--aurora-panel) ;
    box-shadow: 0 18px 50px rgba(0, 0, 0, .22), inset 0 1px rgba(255, 255, 255, .045) ;
}

body[data-page='budgets'] input,
body[data-page='budgets'] select,
body[data-page='budgets'] textarea,
body[data-page='debt'] input,
body[data-page='debt'] select,
body[data-page='debt'] textarea,
body[data-page='notifications'] input,
body[data-page='notifications'] select,
body[data-page='notifications'] textarea,
body[data-page='connections'] input,
body[data-page='connections'] select,
body[data-page='connections'] textarea,
body[data-page='accounts'] input,
body[data-page='accounts'] select,
body[data-page='accounts'] textarea {
    color: var(--text-primary) ;
    border-color: rgba(255, 255, 255, .11) ;
    background: rgba(5, 8, 14, .72) ;
}

body[data-page='budgets'] select option,
body[data-page='debt'] select option,
body[data-page='notifications'] select option,
body[data-page='connections'] select option,
body[data-page='accounts'] select option {
    color: var(--text-primary);
    background: #111622;
}

/* Keep tables readable across all operational pages. */
body[data-page='debt'] table,
body[data-page='notifications'] table,
body[data-page='connections'] table {
    color: var(--text-primary) ;
    background: rgba(7, 10, 16, .78) ;
}

body[data-page='debt'] th,
body[data-page='notifications'] th,
body[data-page='connections'] th {
    color: var(--text-secondary) ;
    background: #111622 ;
}

body[data-page='debt'] td,
body[data-page='notifications'] td,
body[data-page='connections'] td {
    color: var(--text-primary) ;
    border-color: rgba(255, 255, 255, .06) ;
}

/* Pearl must override the regression surfaces too. */
html[data-theme='pearl'] {
    --aurora-panel: linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(243, 247, 253, .92));
    --aurora-panel-soft: linear-gradient(145deg, rgba(255, 255, 255, .92), rgba(239, 244, 251, .88));
    --aurora-panel-matte: rgba(247, 250, 254, .96);
    --aurora-line: rgba(16, 24, 40, .11);
}

html[data-theme='pearl'] .transaction-table-wrapper,
html[data-theme='pearl'] .transaction-table,
html[data-theme='pearl'] body[data-page='debt'] table {
    background: rgba(255, 255, 255, .92) ;
}

html[data-theme='pearl'] .transaction-table th,
html[data-theme='pearl'] body[data-page='debt'] th {
    color: #475467 ;
    background: #edf2f9 ;
}

html[data-theme='pearl'] .transaction-table td,
html[data-theme='pearl'] body[data-page='debt'] td,
html[data-theme='pearl'] :is(body[data-page='analytics'], body[data-page='intelligence']) .analytics-card,
html[data-theme='pearl'] :is(body[data-page='analytics'], body[data-page='intelligence']) .glass-stat {
    color: #101828 ;
}

html[data-theme='pearl'] body[data-page] input,
html[data-theme='pearl'] body[data-page] select,
html[data-theme='pearl'] body[data-page] textarea,
html[data-theme='pearl'] body[data-page='transactions'] .file-upload-label {
    color: #101828 ;
    border-color: rgba(16, 24, 40, .14) ;
    background: rgba(255, 255, 255, .96) ;
}

html[data-theme='pearl'] body[data-page] select option {
    color: #101828;
    background: #ffffff;
}

@media (max-width: 780px) {
    :is(body[data-page='analytics'], body[data-page='intelligence']) .split-chart-layout {
        grid-template-columns: 1fr;
    }

    :is(body[data-page='analytics'], body[data-page='intelligence']) .chart-stage.donut {
        width: min(100%, 290px) ;
        margin-inline: auto;
    }
}

/* module: final-polish.css */
/* =========================================================
   Final visual consistency and responsive repair
   ========================================================= */

/* Global containment: no widget may force the page wider than its viewport. */
.page-container,
.page-container > *,
.page-header > *,
section,
article,
form,
.chart-stage,
.chart-stage canvas,
.account-main-details,
.account-actions-area {
    min-width: 0;
    max-width: 100%;
}

img, svg, canvas { max-width: 100%; }

.page-header,
.dashboard-hero-top,
.section-heading-row,
.transaction-card-heading,
.budget-progress-header,
.notification-card-heading,
.institution-card-header {
    flex-wrap: wrap;
}

.page-header > div:first-child,
.dashboard-hero-top > div:first-child {
    min-width: min(100%, 260px);
    flex: 1 1 420px;
}

.page-header h1,
.dashboard-greeting h1 {
    overflow-wrap: normal;
    word-break: normal;
    text-wrap: balance;
}

.page-header p,
.form-help,
.form-card-description,
.budget-section-description,
.transaction-section-description,
.summary-detail,
.account-sync-text,
.notification-section-description,
.connection-section-description {
    color: var(--text-secondary) ;
    opacity: 1 ;
}

/* Consistent readable headings and labels, overcoming legacy light-theme rules. */
body[data-page] h1,
body[data-page] h2,
body[data-page] h3,
body[data-page] h4,
body[data-page] .form-title,
body[data-page] .transaction-card-title,
body[data-page] .budget-card-title,
body[data-page] .section-title,
body[data-page] .account-name {
    color: var(--text-primary) ;
}

body[data-page] label,
body[data-page] .form-help,
body[data-page] .summary-detail,
body[data-page] .table-subtext,
body[data-page] .muted-text {
    color: var(--text-secondary) ;
}

/* Header controls wrap rather than running off screen. */
.hero-actions,
.transaction-header-actions,
.budget-header-actions,
.notification-header-actions,
.connection-header-actions,
.account-action-buttons,
.transaction-filter-actions,
.institution-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.hero-actions > *,
.transaction-header-actions > *,
.budget-header-actions > *,
.notification-header-actions > *,
.connection-header-actions > * {
    flex: 0 1 auto;
}

/* Aurora native surfaces: catch remaining legacy white cards. */
body[data-page] :is(
    .budget-recommendation-row,
    .unbudgeted-spending-row,
    .budget-analysis-grid > *,
    .budget-progress-grid > *,
    .transaction-entry-card,
    .transaction-import-card,
    .transaction-category-card,
    .transaction-filter-card,
    .notification-card,
    .institution-card,
    .production-tool-grid article,
    .account-match-card,
    .account-match-option,
    .debt-empty-state,
    .budget-empty-state,
    .transaction-empty-state,
    .connection-empty-state,
    .notification-empty-state
) {
    color: var(--text-primary) ;
    background: linear-gradient(145deg, rgba(22, 27, 40, .88), rgba(8, 11, 18, .82)) ;
    border: 1px solid var(--border-soft) ;
    box-shadow: var(--shadow-card) ;
}

body[data-page] :is(
    .budget-recommendation-row,
    .unbudgeted-spending-row,
    .account-match-option
) span,
body[data-page] :is(
    .budget-recommendation-row,
    .unbudgeted-spending-row,
    .account-match-option
) small {
    color: var(--text-secondary) ;
}

body[data-page] .budget-recommendation-row > div:last-child strong,
body[data-page] .unbudgeted-spending-row strong {
    color: var(--aurora-cyan) ;
}

/* All form elements retain a coherent theme. */
body[data-page] :is(input, select, textarea) {
    max-width: 100%;
    color: var(--text-primary) ;
    background: rgba(5, 8, 14, .76) ;
    border-color: var(--border-strong) ;
}
body[data-page] :is(input, textarea)::placeholder { color: var(--text-muted) ; }
body[data-page] select option { color: var(--text-primary); background: #111622; }

/* Modern account presentation. */
.accounts-page-grid {
    display: grid ;
    grid-template-columns: minmax(280px, 390px) minmax(0, 1fr) ;
    gap: 24px ;
    align-items: start ;
}

.account-list { display: grid; gap: 14px; }
.account-list-item.account-card-modern {
    display: grid ;
    grid-template-columns: minmax(0, 1fr) auto ;
    gap: 24px ;
    align-items: center ;
    padding: 22px ;
    overflow: hidden;
}
.account-card-topline {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 7px;
}
.account-card-modern .account-name {
    margin: 0 ;
    font-family: var(--font-display);
    font-size: clamp(17px, 1.5vw, 21px) ;
    line-height: 1.25;
}
.account-kind-pill,
.account-source-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    padding: 5px 9px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    border: 1px solid var(--border-soft);
    background: rgba(255,255,255,.045);
    color: var(--text-secondary);
}
.account-source-pill.connected {
    color: var(--aurora-green);
    border-color: rgba(98,230,167,.2);
    background: rgba(98,230,167,.075);
}
.account-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: 10px;
    color: var(--text-secondary);
    font-size: 12px;
}
.account-meta-item { display: inline-flex; align-items: center; gap: 6px; }
.account-meta-label {
    color: var(--text-muted);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.account-official-name-modern {
    margin-top: 5px;
    color: var(--text-secondary);
    font-size: 12px;
}
.account-balance-stack { text-align: right; min-width: 170px; }
.account-balance-label {
    margin-bottom: 3px;
    color: var(--text-muted);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.account-card-modern .account-balance {
    font-family: var(--font-display);
    font-size: clamp(24px, 2.4vw, 34px) ;
    line-height: 1.15;
    white-space: nowrap;
}
.account-available-modern {
    margin-top: 7px;
    color: var(--text-secondary);
    font-size: 11px;
}
.account-available-modern strong { color: var(--text-primary); font-weight: 650; }
.account-card-modern .account-action-buttons {
    justify-content: flex-end;
    margin-top: 15px;
}
.account-card-modern .debt-detail-grid { margin-top: 16px; }

/* Transactions: clean rows and category/status pills in both themes. */
.transaction-table-wrapper { overscroll-behavior-inline: contain; }
.transaction-table th { white-space: nowrap; }
.transaction-table td { vertical-align: middle; }
.category-badge,
.recurring-badge,
.plaid-source-badge,
.pending-transaction-badge {
    color: var(--text-primary) ;
    background: rgba(255,255,255,.065) ;
    border: 1px solid var(--border-soft) ;
    box-shadow: none ;
}
.plaid-source-badge { color: var(--aurora-green) ; background: rgba(98,230,167,.07) ; }
.pending-transaction-badge { color: var(--warning) ; background: rgba(244,185,94,.08) ; }
.recurring-badge { color: var(--aurora-violet) ; background: rgba(155,123,255,.08) ; }

/* Chart and hero containment. */
.hero-net-worth,
.dashboard-grid,
.analytics-grid,
.transaction-workspace,
.budget-workspace,
.budget-summary-grid,
.summary-grid,
.notification-summary-grid,
.connection-summary-grid {
    min-width: 0;
}
.hero-card,
.hero-net-worth,
.analytics-card,
.chart-card { overflow: hidden; }
.chart-stage { min-width: 0 ; overflow: hidden; }
.chart-stage canvas { max-width: 100% ; }
.net-worth-periods {
    display: grid ;
    grid-template-columns: repeat(5, minmax(0,1fr)) ;
    gap: 10px ;
}
.net-worth-period-card { min-width: 0; }

/* Pearl is a separately tuned light surface, not dark cards pasted on white. */
html[data-theme='pearl'] body[data-page] :is(
    .budget-recommendation-row,
    .unbudgeted-spending-row,
    .budget-analysis-grid > *,
    .budget-progress-grid > *,
    .transaction-entry-card,
    .transaction-import-card,
    .transaction-category-card,
    .transaction-filter-card,
    .notification-card,
    .institution-card,
    .production-tool-grid article,
    .account-match-card,
    .account-match-option,
    .debt-empty-state,
    .budget-empty-state,
    .transaction-empty-state,
    .connection-empty-state,
    .notification-empty-state
) {
    color: var(--text-primary) ;
    background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(241,246,253,.94)) ;
    border-color: rgba(20,31,52,.11) ;
    box-shadow: 0 18px 46px rgba(31,43,68,.10), inset 0 1px rgba(255,255,255,.9) ;
}
html[data-theme='pearl'] body[data-page] :is(input,select,textarea) {
    color: #101522 ;
    background: rgba(255,255,255,.96) ;
    border-color: rgba(20,31,52,.16) ;
}
html[data-theme='pearl'] body[data-page] select option { color:#101522; background:#fff; }
html[data-theme='pearl'] .category-badge,
html[data-theme='pearl'] .recurring-badge,
html[data-theme='pearl'] .plaid-source-badge,
html[data-theme='pearl'] .pending-transaction-badge {
    background: rgba(49,87,213,.065) ;
    border-color: rgba(20,31,52,.11) ;
}

/* Switch to the mobile navigation before the fixed sidebar crushes content. */
@media (max-width: 1180px) {
    .app-layout { display: block ; }
    .sidebar {
        position: fixed ;
        z-index: 1000;
        top: 0;
        left: 0;
        width: min(310px, 88vw) ;
        height: 100dvh;
        transform: translateX(-105%);
        transition: transform .25s var(--ease-out);
    }
    body.sidebar-open .sidebar { transform: translateX(0); }
    body.sidebar-open::after {
        content: "";
        position: fixed;
        inset: 0;
        z-index: 999;
        background: rgba(0,0,0,.58);
        backdrop-filter: blur(4px);
    }
    .mobile-topbar {
        position: sticky;
        top: 0;
        z-index: 900;
        display: flex ;
        align-items: center;
        justify-content: space-between;
        padding: 10px 16px;
        border-bottom: 1px solid var(--border-soft);
        background: rgba(6,9,15,.82);
        backdrop-filter: blur(22px);
    }
    .mobile-topbar-actions { display: flex; align-items: center; gap: 8px; }
    .main-content > .global-page-actions { display: none; }
    html[data-theme='pearl'] .mobile-topbar { background: rgba(248,250,254,.86); }
    .main-content { padding: 28px 24px 54px ; }
    .accounts-page-grid { grid-template-columns: minmax(270px, 360px) minmax(0,1fr) ; }
}

@media (max-width: 900px) {
    .main-content { padding: 24px 18px 48px ; }
    .page-header { gap: 16px; }
    .page-header h1 { font-size: clamp(28px, 6vw, 38px); }
    .hero-actions,
    .transaction-header-actions,
    .budget-header-actions,
    .notification-header-actions,
    .connection-header-actions { width: 100%; }
    .accounts-page-grid,
    .transaction-workspace,
    .budget-workspace,
    .dashboard-grid,
    .analytics-grid { grid-template-columns: 1fr ; }
    .account-list-item.account-card-modern { grid-template-columns: 1fr ; }
    .account-balance-stack { min-width: 0; text-align: left; }
    .account-card-modern .account-action-buttons { justify-content: flex-start; }
    .net-worth-periods { grid-template-columns: repeat(3,minmax(0,1fr)) ; }
}

@media (max-width: 640px) {
    .main-content { padding: 20px 13px 42px ; }
    .page-header h1,
    .dashboard-greeting h1 { font-size: 30px ; line-height: 1.08; }
    .page-header p { font-size: 13px; }
    .hero-actions > *,
    .transaction-header-actions > *,
    .budget-header-actions > *,
    .notification-header-actions > *,
    .connection-header-actions > * { flex: 1 1 100%; width: 100%; }
    .net-worth-periods { grid-template-columns: repeat(2,minmax(0,1fr)) ; }
    .account-list-item.account-card-modern { padding: 17px ; gap: 16px ; }
    .account-card-modern .account-balance { font-size: 27px ; }
    .transaction-table { min-width: 780px ; }
    .toast-region { top: 68px; right: 12px; width: calc(100vw - 24px); }
}

/* Build 32: manual loan reconciliation */
.loan-reconciliation-fields{margin-top:1.2rem;padding:1rem;border:1px solid rgba(98,230,167,.18);border-radius:18px;background:linear-gradient(145deg,rgba(98,230,167,.055),rgba(155,123,255,.045));display:grid;gap:1rem}.loan-match-toggle{display:flex;gap:.8rem;align-items:flex-start;padding:.85rem;border-radius:14px;background:rgba(255,255,255,.035);cursor:pointer}.loan-match-toggle input{margin-top:.25rem}.loan-match-toggle span{display:grid;gap:.18rem}.loan-match-toggle small,.loan-calculation-note{color:var(--text-muted);line-height:1.55}.loan-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.loan-reconciliation-fields textarea{width:100%;resize:vertical}.loan-calculation-note{padding:.8rem .9rem;border-left:3px solid var(--aurora-cyan);background:rgba(87,215,232,.045);border-radius:10px}.loan-reconciliation-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:.9rem}.loan-reconciliation-summary>div{display:flex;justify-content:space-between;gap:1rem;padding:.65rem .75rem;border:1px solid rgba(255,255,255,.07);border-radius:12px;background:rgba(255,255,255,.025)}.loan-reconciliation-summary span{color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.loan-reconciliation-summary strong{font-size:.82rem;text-align:right}.account-action-buttons form{margin:0}.account-action-buttons .secondary-button{white-space:nowrap}
[data-theme="pearl"] .loan-reconciliation-fields{background:linear-gradient(145deg,rgba(49,87,213,.04),rgba(155,123,255,.04));border-color:rgba(49,87,213,.15)}[data-theme="pearl"] .loan-match-toggle,[data-theme="pearl"] .loan-reconciliation-summary>div{background:rgba(49,87,213,.035);border-color:rgba(49,87,213,.1)}
@media(max-width:760px){.loan-field-grid,.loan-reconciliation-summary{grid-template-columns:1fr}.loan-reconciliation-summary>div{align-items:flex-start;flex-direction:column;gap:.25rem}.loan-reconciliation-summary strong{text-align:left}}

/* module: step33.css */
/* Step 33 — automatic budget and debt allocation */
.automatic-budget-hero,
.debt-budget-guidance {
    position: relative;
    overflow: hidden;
    margin-bottom: 24px;
    padding: 24px;
    border: 1px solid rgba(98, 230, 167, 0.2);
    border-radius: 18px;
    background:
        radial-gradient(circle at 15% 10%, rgba(98, 230, 167, 0.16), transparent 36%),
        radial-gradient(circle at 84% 16%, rgba(155, 123, 255, 0.14), transparent 38%),
        rgba(18, 23, 34, 0.72);
    backdrop-filter: blur(20px);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.22);
}
.automatic-budget-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(380px, .9fr); gap: 24px; }
.automatic-budget-copy h2,
.debt-budget-guidance h2 { margin: 7px 0 10px; color: var(--text-primary); font-size: clamp(22px, 2.4vw, 32px); }
.automatic-budget-copy p,
.debt-budget-guidance p { margin: 0; color: var(--text-secondary); line-height: 1.65; }
.automatic-budget-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.automatic-budget-metrics > div,
.automatic-debt-recommendation {
    padding: 15px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 13px;
    background: rgba(5,7,13,.46);
}
.automatic-budget-metrics span,
.automatic-debt-recommendation span { display:block; color:var(--text-muted); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.automatic-budget-metrics strong,
.automatic-debt-recommendation strong { display:block; margin-top:7px; color:var(--text-primary); font-size:22px; }
.automatic-budget-extra strong { color: var(--aurora-green); }
.automatic-budget-actions { grid-column: 1 / -1; display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:4px; }
.automatic-budget-actions p { margin:0; color:var(--text-secondary); }
.automatic-debt-recommendation { min-width:260px; }
.automatic-debt-recommendation small { display:block; margin-top:6px; color:var(--text-secondary); }
.debt-budget-guidance { display:flex; align-items:center; justify-content:space-between; gap:24px; }
[data-theme="pearl"] .automatic-budget-hero,
[data-theme="pearl"] .debt-budget-guidance {
    background:
        radial-gradient(circle at 15% 10%, rgba(44, 184, 126, .12), transparent 36%),
        radial-gradient(circle at 84% 16%, rgba(119, 87, 220, .10), transparent 38%),
        rgba(255,255,255,.86);
    border-color: rgba(49,87,213,.14);
}
[data-theme="pearl"] .automatic-budget-metrics > div,
[data-theme="pearl"] .automatic-debt-recommendation { background: rgba(244,247,252,.9); border-color: rgba(15,23,42,.08); }
@media (max-width: 980px) {
    .automatic-budget-hero { grid-template-columns: 1fr; }
    .automatic-budget-actions { grid-column:auto; }
}
@media (max-width: 650px) {
    .automatic-budget-metrics { grid-template-columns: 1fr; }
    .automatic-budget-actions,
    .debt-budget-guidance { align-items:stretch; flex-direction:column; }
    .automatic-budget-actions .action-button,
    .debt-budget-guidance .action-button { width:100%; }
}

/* module: step34.css */
.rule-builder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0 18px}.rule-toggle-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:22px}.notification-toggle-card.compact{min-height:0}.notification-intelligence-heading{margin:26px 0 14px;padding-top:22px;border-top:1px solid var(--border-subtle)}.notification-intelligence-heading h3{margin:0;color:var(--text-primary)}.notification-intelligence-heading p{margin:6px 0 0;color:var(--text-secondary)}@media(max-width:760px){.rule-builder-grid,.rule-toggle-row{grid-template-columns:1fr}}

/* module: debt-plan-fixes.css */
/* Build 30: Debt Plan visual and chart stabilization */
body[data-page="debt"] .debt-plan-container {
    width: min(100%, 1460px);
    min-width: 0;
}

body[data-page="debt"] .page-header h1,
body[data-page="debt"] .section-title,
body[data-page="debt"] .form-title,
body[data-page="debt"] .strategy-card h3,
body[data-page="debt"] .debt-alert h2 {
    color: var(--text-primary) ;
    text-shadow: none ;
}

body[data-page="debt"] .page-header p,
body[data-page="debt"] .debt-settings-card > div > p,
body[data-page="debt"] .summary-detail,
body[data-page="debt"] .strategy-card p,
body[data-page="debt"] .strategy-difference,
body[data-page="debt"] .debt-plan-note,
body[data-page="debt"] .section-heading-row .account-count {
    color: var(--text-secondary) ;
    opacity: 1 ;
}

body[data-page="debt"] .debt-settings-card,
body[data-page="debt"] .strategy-card,
body[data-page="debt"] .debt-balance-card,
body[data-page="debt"] .payoff-table-wrapper,
body[data-page="debt"] .schedule-table,
body[data-page="debt"] .debt-plan-note {
    color: var(--text-primary) ;
    background: linear-gradient(145deg, rgba(24, 29, 43, .82), rgba(8, 12, 19, .76)) ;
    border: 1px solid var(--border-soft) ;
    box-shadow: var(--shadow-card) ;
}

body[data-page="debt"] .debt-alert {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 15px;
    align-items: start;
    margin: 0 0 22px;
    padding: 19px 20px;
    border-radius: 17px;
    backdrop-filter: blur(18px) saturate(125%);
    -webkit-backdrop-filter: blur(18px) saturate(125%);
}

body[data-page="debt"] .debt-alert-warning {
    color: #f7d99e;
    background: linear-gradient(135deg, rgba(244,185,94,.115), rgba(18,19,26,.76));
    border: 1px solid rgba(244,185,94,.30);
}

body[data-page="debt"] .debt-alert-danger {
    color: #ffc0c5;
    background: linear-gradient(135deg, rgba(255,112,122,.12), rgba(20,16,23,.78));
    border: 1px solid rgba(255,112,122,.30);
}

body[data-page="debt"] .debt-alert-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    background: rgba(255,255,255,.055);
}

body[data-page="debt"] .debt-alert-icon svg {
    width: 22px;
    height: 22px;
}

body[data-page="debt"] .debt-alert-eyebrow {
    display: block;
    margin-bottom: 5px;
    color: currentColor;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

body[data-page="debt"] .debt-alert h2 {
    margin: 0;
    font-size: clamp(16px, 1.6vw, 20px);
    line-height: 1.25;
}

body[data-page="debt"] .debt-alert p,
body[data-page="debt"] .debt-alert-list {
    margin: 8px 0 0;
    color: var(--text-secondary) ;
    font-size: 13px;
    line-height: 1.6;
}

body[data-page="debt"] .debt-alert-list {
    display: grid;
    gap: 5px;
    padding-left: 18px;
}

body[data-page="debt"] .debt-alert-action {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 12px;
    color: var(--aurora-cyan) ;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
}

body[data-page="debt"] .debt-alert-action:hover {
    color: var(--aurora-green) ;
}

body[data-page="debt"] .debt-inline-alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px;
    border-radius: 12px;
    color: var(--text-primary) ;
    background: rgba(244,185,94,.07) ;
    border: 1px solid rgba(244,185,94,.18) ;
}

body[data-page="debt"] .debt-inline-alert-icon {
    flex: 0 0 22px;
    color: var(--warning);
}

body[data-page="debt"] .debt-inline-alert-icon svg {
    width: 20px;
    height: 20px;
}

body[data-page="debt"] .debt-inline-alert strong {
    display: block;
    color: var(--text-primary) ;
    font-size: 12px;
}

body[data-page="debt"] .debt-inline-alert p {
    margin: 3px 0 0;
    color: var(--text-secondary) ;
    font-size: 11px;
    line-height: 1.5;
}

body[data-page="debt"] .chart-section,
body[data-page="debt"] .debt-balance-card {
    min-width: 0;
    max-width: 100%;
}

body[data-page="debt"] .debt-balance-card {
    position: relative;
    overflow: hidden;
    padding: clamp(16px, 2vw, 24px) ;
}

body[data-page="debt"] .debt-chart-stage {
    position: relative;
    width: 100%;
    height: clamp(280px, 36vw, 430px);
    min-height: 280px;
    max-height: 430px;
    overflow: hidden;
}

body[data-page="debt"] .debt-chart-stage canvas {
    position: absolute ;
    inset: 0 ;
    display: block ;
    width: 100% ;
    height: 100% ;
    max-width: 100% ;
    max-height: 100% ;
}

body[data-page="debt"] .debt-chart-stage.is-empty::after {
    content: "A balance projection will appear after the required debt details are added.";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 30px;
    color: var(--text-muted);
    text-align: center;
}

body[data-page="debt"] .debt-chart-legend {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin-top: 16px;
    color: var(--text-secondary) ;
    font-size: 12px;
}

body[data-page="debt"] .debt-chart-legend span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

body[data-page="debt"] .payoff-table-wrapper,
body[data-page="debt"] .schedule-table {
    max-width: 100%;
    overflow-x: auto;
}

body[data-page="debt"] :is(.payoff-table, .schedule-table table) th {
    color: var(--text-secondary) ;
    background: rgba(255,255,255,.035) ;
}

body[data-page="debt"] :is(.payoff-table, .schedule-table table) td {
    color: var(--text-primary) ;
}

html[data-theme="pearl"] body[data-page="debt"] .debt-settings-card,
html[data-theme="pearl"] body[data-page="debt"] .strategy-card,
html[data-theme="pearl"] body[data-page="debt"] .debt-balance-card,
html[data-theme="pearl"] body[data-page="debt"] .payoff-table-wrapper,
html[data-theme="pearl"] body[data-page="debt"] .schedule-table,
html[data-theme="pearl"] body[data-page="debt"] .debt-plan-note {
    color: #101828 ;
    background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(241,246,253,.94)) ;
    border-color: rgba(16,24,40,.11) ;
    box-shadow: 0 18px 45px rgba(68,82,110,.10), inset 0 1px #fff ;
}

html[data-theme="pearl"] body[data-page="debt"] .debt-alert-warning {
    color: #9a5e0a;
    background: linear-gradient(135deg, rgba(244,185,94,.20), rgba(255,255,255,.94));
    border-color: rgba(184,118,24,.27);
}

html[data-theme="pearl"] body[data-page="debt"] .debt-alert-danger {
    color: #b42318;
    background: linear-gradient(135deg, rgba(255,112,122,.16), rgba(255,255,255,.95));
    border-color: rgba(180,35,24,.22);
}

html[data-theme="pearl"] body[data-page="debt"] .debt-inline-alert {
    color: #101828 ;
    background: rgba(244,185,94,.13) ;
    border-color: rgba(184,118,24,.20) ;
}

html[data-theme="pearl"] body[data-page="debt"] .debt-alert p,
html[data-theme="pearl"] body[data-page="debt"] .debt-alert-list,
html[data-theme="pearl"] body[data-page="debt"] .debt-inline-alert p {
    color: #475467 ;
}

/* Keep the primary plan concise; deeper projections remain available on demand. */
body[data-page="debt"] .debt-primary-action-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
    gap: 16px;
    margin-bottom: 22px;
}

body[data-page="debt"] .debt-primary-action-grid > * {
    min-width: 0;
    height: 100%;
    margin: 0;
}

body[data-page="debt"] .debt-primary-action-grid .debt-budget-guidance,
body[data-page="debt"] .debt-primary-action-grid .selected-strategy-banner {
    padding: clamp(18px, 2vw, 24px);
}

body[data-page="debt"] .debt-primary-action-grid .debt-budget-guidance h2 {
    max-width: 24ch;
    font-size: clamp(20px, 2vw, 28px);
    line-height: 1.2;
}

body[data-page="debt"] .debt-primary-action-grid .selected-strategy-banner {
    align-items: flex-start;
    flex-direction: column;
    justify-content: space-between;
    gap: 14px;
}

body[data-page="debt"] .debt-primary-action-grid .selected-strategy-banner h2 {
    margin-bottom: 0;
    font-size: clamp(20px, 2vw, 25px);
}

body[data-page="debt"] .debt-primary-action-grid .selected-target {
    width: 100%;
    box-sizing: border-box;
}

body[data-page="debt"] .debt-inline-disclosure {
    margin-top: 11px;
}

body[data-page="debt"] .debt-inline-disclosure > summary {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 700;
    list-style: none;
    cursor: pointer;
}

body[data-page="debt"] .debt-inline-disclosure > summary::-webkit-details-marker {
    display: none;
}

body[data-page="debt"] .debt-inline-disclosure > summary::after {
    content: "+";
    color: var(--aurora-cyan);
    font-size: 15px;
}

body[data-page="debt"] .debt-inline-disclosure[open] > summary::after {
    content: "−";
}

body[data-page="debt"] .debt-inline-disclosure p {
    max-width: 64ch;
    margin-top: 9px;
    font-size: 12px;
    line-height: 1.55;
}

body[data-page="debt"] .debt-section-disclosure {
    display: block;
    margin: 0 0 14px;
    padding: 0 ;
    overflow: hidden;
    color: var(--text-primary);
    background: linear-gradient(145deg, rgba(20, 25, 38, .82), rgba(8, 11, 19, .78)) ;
    border: 1px solid var(--border-soft) ;
    border-radius: 16px;
    box-shadow: var(--shadow-card);
}

body[data-page="debt"] .debt-section-disclosure > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    min-height: 66px;
    padding: 14px 18px;
    box-sizing: border-box;
    color: var(--text-primary);
    background: rgba(255, 255, 255, .025);
    list-style: none;
    cursor: pointer;
    transition: background .16s ease, border-color .16s ease;
}

body[data-page="debt"] .debt-section-disclosure > summary::-webkit-details-marker {
    display: none;
}

body[data-page="debt"] .debt-section-disclosure > summary:hover {
    background: rgba(255, 255, 255, .05);
}

body[data-page="debt"] .debt-section-disclosure > summary:focus-visible {
    outline: 2px solid var(--aurora-cyan);
    outline-offset: -3px;
}

body[data-page="debt"] .debt-section-disclosure > summary > span {
    display: grid;
    gap: 3px;
    min-width: 0;
}

body[data-page="debt"] .debt-section-disclosure > summary strong {
    color: var(--text-primary);
    font-size: 14px;
    line-height: 1.3;
}

body[data-page="debt"] .debt-section-disclosure > summary small {
    color: var(--text-muted);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.4;
}

body[data-page="debt"] .debt-section-disclosure > summary::after {
    content: "+";
    flex: 0 0 auto;
    color: var(--aurora-cyan);
    font-size: 21px;
    font-weight: 400;
}

body[data-page="debt"] .debt-section-disclosure[open] > summary::after {
    content: "−";
}

body[data-page="debt"] .debt-section-disclosure-body {
    padding: 18px;
    border-top: 1px solid var(--border-soft);
}

body[data-page="debt"] .debt-settings-card .debt-section-disclosure-body {
    display: grid;
    grid-template-columns: minmax(160px, .35fr) minmax(0, 1fr);
    align-items: end;
    gap: 18px;
}

body[data-page="debt"] .debt-settings-card .form-title,
body[data-page="debt"] .debt-section-disclosure .strategy-comparison-grid,
body[data-page="debt"] .debt-section-disclosure .payoff-table-wrapper {
    margin: 0;
}

body[data-page="debt"] .debt-settings-card .debt-settings-form {
    grid-template-columns: minmax(220px, 1fr) auto;
}

body[data-page="debt"] .debt-methodology-disclosure .debt-plan-note {
    margin: 0;
    border: 0 ;
    border-radius: 0;
    box-shadow: none ;
}

html[data-theme="pearl"] body[data-page="debt"] .debt-section-disclosure {
    color: #101828;
    background: linear-gradient(145deg, rgba(255, 255, 255, .98), rgba(241, 246, 253, .94)) ;
    border-color: rgba(16, 24, 40, .11) ;
}

html[data-theme="pearl"] body[data-page="debt"] .debt-section-disclosure > summary {
    color: #101828;
    background: rgba(244, 247, 252, .94);
}

html[data-theme="pearl"] body[data-page="debt"] .debt-section-disclosure > summary:hover {
    background: #eef3f9;
}

@media (max-width: 760px) {
    body[data-page="debt"] .debt-primary-action-grid,
    body[data-page="debt"] .debt-settings-card .debt-section-disclosure-body {
        grid-template-columns: 1fr;
    }

    body[data-page="debt"] .debt-settings-card .debt-settings-form {
        grid-template-columns: 1fr;
    }

    body[data-page="debt"] .debt-section-disclosure > summary {
        min-height: 62px;
        padding: 13px 15px;
    }

    body[data-page="debt"] .debt-section-disclosure-body {
        padding: 14px;
    }

    body[data-page="debt"] .debt-header-actions {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
    }

    body[data-page="debt"] .debt-alert {
        grid-template-columns: 36px minmax(0, 1fr);
        padding: 16px;
    }

    body[data-page="debt"] .debt-alert-icon {
        width: 36px;
        height: 36px;
    }

    body[data-page="debt"] .debt-chart-stage {
        height: 300px;
        min-height: 300px;
    }

    body[data-page="debt"] .debt-chart-legend {
        justify-content: flex-start;
    }
}

/* module: step35.css */
/* Build 35 final polish */
/* Mobile sidebar: dim the content without blurring the entire application. */
@media (max-width:1180px){
 body.sidebar-open::after{background:rgba(2,4,9,.68);backdrop-filter:none;-webkit-backdrop-filter:none}
 body.sidebar-open .sidebar{box-shadow:28px 0 90px rgba(0,0,0,.62)}
}

/* Prevent all grid children and text blocks from forcing overflow. */
.page-container,.page-header,.section-heading-row,.dashboard-widget,.glass-card,.form-card,.summary-card,.budget-workspace,.budget-progress-grid,.budget-alert-list,.strategy-grid,.notification-preference-grid,.institution-actions,.automatic-budget-hero,.automatic-budget-metrics,.coach-workspace,.coach-rules-grid{min-width:0}
.page-container *{min-width:0}
.page-container p,.page-container small,.page-container strong,.page-container span,.page-container h1,.page-container h2,.page-container h3,.page-container td,.page-container th{overflow-wrap:anywhere}

/* Rich category palette support and clearer chart surfaces. */
.chart-stage canvas,.donut-wrap canvas,.hero-chart-wrap canvas{max-width:100%}
.analytics-card,.dashboard-widget{overflow:hidden}

/* Progress bars always display the percentage, capped visually at 100%. */
.progress-track,.budget-progress-track{position:relative;overflow:hidden;background:rgba(255,255,255,.085);box-shadow:inset 0 1px 2px rgba(0,0,0,.3)}
.progress-track>i,.budget-progress-fill{display:block;min-width:2px;height:100%;border-radius:inherit;opacity:1}
.progress-track>i.status-healthy,.budget-progress-fill-healthy{background:linear-gradient(90deg,#62E6A7,#57D7E8)}
.progress-track>i.status-warning,.budget-progress-fill-warning{background:linear-gradient(90deg,#F4B95E,#FFD77D)}
.progress-track>i.status-limit,.progress-track>i.status-over,.budget-progress-fill-limit,.budget-progress-fill-over{background:linear-gradient(90deg,#FF707A,#FF9CA4)}

/* Final Aurora Midnight component coverage. */
.notification-toggle-card,.minimum-rule-card,.budget-alert-item,.budget-recommendation-item,.recommendation-card,.strategy-summary-card,.strategy-summary,.selected-strategy-card,.selected-strategy-summary,.payoff-schedule-toggle,.debt-plan-accordion,.transaction-summary-card,.transaction-type-card,.connection-flow span,.automatic-budget-toggle,.automatic-budget-card,.debt-stat,.strategy-metric,.strategy-card .summary-card,.strategy-card [class*="metric"]{
 background:linear-gradient(145deg,rgba(24,29,43,.88),rgba(8,12,20,.82));
 color:var(--text-primary);border:1px solid var(--glass-border);
 box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 12px 32px rgba(0,0,0,.18)
}
.notification-toggle-card span,.notification-toggle-card strong,.notification-toggle-card small,.minimum-rule-card span,.minimum-rule-card strong,.minimum-rule-card small,.budget-alert-item *,.budget-recommendation-item *,.recommendation-card *,.strategy-summary-card *,.selected-strategy-card *,.payoff-schedule-toggle *{color:inherit}
.notification-toggle-card small,.minimum-rule-card small,.budget-alert-item p,.budget-recommendation-item p,.recommendation-card p,.strategy-summary-card p,.selected-strategy-card p{color:var(--text-secondary)}
.notification-toggle-card input,.minimum-rule-card input{accent-color:var(--aurora-green)}
.budget-alert-item.budget-alert-over,.budget-alert-item.budget-alert-limit{background:linear-gradient(145deg,rgba(255,112,122,.13),rgba(18,13,22,.82));border-color:rgba(255,112,122,.28)}
.budget-alert-item.budget-alert-warning{background:linear-gradient(145deg,rgba(244,185,94,.13),rgba(18,15,20,.82));border-color:rgba(244,185,94,.28)}

/* Strategy and debt plan remnants. */
.strategy-card,.strategy-comparison-card,.selected-strategy-panel,.debt-plan-summary,.debt-plan-details,.debt-plan-schedule,.payoff-schedule-panel,details.debt-schedule-details,details.debt-schedule-details>summary{
 background:linear-gradient(145deg,rgba(22,27,41,.88),rgba(8,11,19,.86));color:var(--text-primary);border-color:var(--glass-border)
}
details.debt-schedule-details>summary{border-radius:15px}
.strategy-card [class*="metric"],.strategy-card .summary-card{background:rgba(4,7,13,.38);color:var(--text-primary)}

/* Transaction type/status badges stay colorful but restrained. */
.transaction-type-badge,.transaction-category-badge,.category-badge,.status-badge{background:rgba(87,215,232,.11);color:var(--aurora-cyan);border:1px solid rgba(87,215,232,.22)}
.transaction-type-income{background:rgba(98,230,167,.11);color:var(--aurora-green);border-color:rgba(98,230,167,.22)}
.transaction-type-expense{background:rgba(255,112,122,.10);color:#ff9ca4;border-color:rgba(255,112,122,.2)}
.transaction-type-transfer{background:rgba(155,123,255,.11);color:#c0aaff;border-color:rgba(155,123,255,.22)}

/* Long reasoning copy and utility cards. */
.automatic-plan-reason,.plan-reason,.reason-list li,.budget-reason-row,.unbudgeted-spending-card,.unbudgeted-spending-item{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.automatic-budget-hero,.budget-workspace,.automatic-budget-metrics{overflow:hidden}
.automatic-budget-metrics>div{min-width:0}

/* Consistent action placement. */
.page-header{flex-wrap:wrap}.page-header>div:first-child{flex:1 1 420px}.page-header>.action-button,.page-header>form,.page-header>[class*="actions"]{flex:0 1 auto}
.action-button{max-width:100%;white-space:normal;text-align:center;justify-content:center}
.form-actions,.account-action-buttons,.budget-progress-actions,.automatic-budget-actions,.institution-actions,.notification-control-actions,.debt-plan-actions,.strategy-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.form-actions>* ,.account-action-buttons>* ,.budget-progress-actions>* ,.automatic-budget-actions>* ,.institution-actions>*{min-width:0}

/* Transaction Coach answer history. */
.coach-history{padding:22px;margin-top:22px}.coach-history-list{display:grid;gap:9px;margin-top:15px}.coach-history-row{border:1px solid var(--glass-border);border-radius:14px;background:rgba(5,8,15,.34);overflow:hidden}.coach-history-row>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 17px;cursor:pointer;list-style:none}.coach-history-row>summary::-webkit-details-marker{display:none}.coach-history-row>summary span{display:flex;flex-direction:column;gap:5px}.coach-history-row>summary small{color:var(--text-secondary)}.coach-history-row>summary em{font-style:normal;font-weight:800}.coach-history-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end;padding:15px 17px;border-top:1px solid var(--glass-border);background:rgba(4,7,13,.28)}

/* Pearl is a first-class theme for all repaired components. */
[data-theme="pearl"] .notification-toggle-card,[data-theme="pearl"] .minimum-rule-card,[data-theme="pearl"] .budget-alert-item,[data-theme="pearl"] .budget-recommendation-item,[data-theme="pearl"] .recommendation-card,[data-theme="pearl"] .strategy-summary-card,[data-theme="pearl"] .strategy-summary,[data-theme="pearl"] .selected-strategy-card,[data-theme="pearl"] .selected-strategy-summary,[data-theme="pearl"] .payoff-schedule-toggle,[data-theme="pearl"] .debt-plan-accordion,[data-theme="pearl"] .transaction-summary-card,[data-theme="pearl"] .transaction-type-card,[data-theme="pearl"] .connection-flow span,[data-theme="pearl"] .coach-history-row{
 background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(239,245,252,.91));color:#152033;border-color:rgba(38,55,81,.14);box-shadow:0 12px 32px rgba(47,68,100,.09)
}
[data-theme="pearl"] .coach-history-form{background:rgba(237,244,252,.8)}
[data-theme="pearl"] .progress-track,[data-theme="pearl"] .budget-progress-track{background:rgba(35,55,82,.1)}

@media(max-width:900px){
 .coach-history-form{grid-template-columns:1fr 1fr}.coach-history-form .action-button{width:100%}
 .automatic-budget-metrics{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
 .coach-history-form,.automatic-budget-metrics{grid-template-columns:1fr}
 .coach-history-row>summary{align-items:flex-start;flex-direction:column}
 .page-header>form,.page-header>.action-button,.page-header>[class*="actions"]{width:100%}
 .page-header>form .action-button{width:100%}
 .form-actions,.account-action-buttons,.budget-progress-actions,.automatic-budget-actions,.institution-actions{align-items:stretch;flex-direction:column}
 .form-actions>*,.account-action-buttons>*,.budget-progress-actions>*,.automatic-budget-actions>*,.institution-actions>*{width:100%}
}

/* module: step36.css */
/* Build 36 — Finance Center Intelligence */
.insights-page{max-width:1500px}.page-header-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.insight-count-pill{padding:8px 12px;border:1px solid var(--border-soft);border-radius:999px;background:var(--surface-matte);color:var(--text-secondary);font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.insight-hero,.dashboard-insights,.all-insights-section{position:relative;border:1px solid var(--border-soft);background:linear-gradient(145deg,rgba(20,28,40,.78),rgba(10,13,21,.88));border-radius:24px;box-shadow:var(--shadow-card);overflow:hidden}.insight-hero:before,.dashboard-insights:before{content:"";position:absolute;inset:-35% 40% 25% -10%;background:radial-gradient(circle,rgba(98,230,167,.16),transparent 60%),radial-gradient(circle at 80% 20%,rgba(155,123,255,.14),transparent 55%);pointer-events:none}.insight-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:28px;margin-bottom:22px}.insight-hero h2{margin:5px 0 8px}.insight-hero p,.insight-hero>span{color:var(--text-secondary)}.top-insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:24px}.insight-card{position:relative;border:1px solid var(--border-soft);border-radius:20px;padding:22px;background:rgba(14,18,28,.78);box-shadow:var(--shadow-card);min-width:0}.insight-card.insight-featured:first-child{grid-column:1/-1;padding:28px;background:linear-gradient(145deg,rgba(20,33,39,.88),rgba(24,19,43,.82))}.insight-card:before,.insight-list-row:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:4px;background:var(--aurora-cyan)}.insight-card.insight-warning:before,.insight-list-row.insight-warning:before{background:var(--warning)}.insight-card.insight-critical:before,.insight-list-row.insight-critical:before{background:var(--danger)}.insight-card.insight-success:before,.insight-list-row.insight-success:before{background:var(--positive)}.insight-card.insight-action:before,.insight-list-row.insight-action:before{background:linear-gradient(var(--aurora-green),var(--aurora-violet))}.insight-card-head,.insight-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.insight-severity{color:var(--aurora-green)}.insight-card h2,.insight-card h3{margin:12px 0 8px}.insight-summary{font-size:1rem;line-height:1.6;color:var(--text-primary)}.insight-recommendation{display:flex;flex-direction:column;gap:5px;padding:14px 16px;margin-top:16px;border:1px solid rgba(98,230,167,.18);border-radius:14px;background:rgba(98,230,167,.07)}.insight-recommendation span{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:var(--aurora-green);font-weight:800}.insight-card details,.insight-list-row details{margin-top:14px;color:var(--text-secondary)}.insight-card summary,.insight-list-row summary{cursor:pointer;color:var(--aurora-cyan);font-weight:700}.insight-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.insight-actions form{margin:0}.insight-actions button,.insight-row-actions button{border:1px solid var(--border-soft);background:var(--surface-matte);color:var(--text-secondary);border-radius:10px;padding:8px 11px;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}.insight-actions button:hover,.insight-row-actions button:hover{color:var(--text-primary);border-color:rgba(98,230,167,.35)}.text-danger{color:var(--danger)}.all-insights-section{padding:24px}.insight-scroll-list,.dashboard-insight-scroll{display:flex;flex-direction:column;gap:12px;max-height:680px;overflow:auto;padding-right:5px}.insight-list-row{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:14px;padding:18px 18px 18px 22px;border:1px solid var(--border-soft);border-radius:16px;background:rgba(10,14,23,.68)}.insight-list-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(87,215,232,.08);color:var(--aurora-cyan)}.insight-list-main h3{margin:7px 0 5px}.insight-list-main p{margin:0;color:var(--text-secondary);line-height:1.5}.insight-list-main>strong{display:block;margin-top:9px;color:var(--aurora-green)}.insight-row-actions{display:flex;gap:6px;align-items:flex-start}.dashboard-insights{padding:22px;margin-bottom:22px}.dashboard-insight-scroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(300px,1fr);overflow-x:auto;overflow-y:hidden;max-height:none;padding:3px 2px 10px;scroll-snap-type:x proximity}.dashboard-insight-scroll .insight-card{scroll-snap-align:start}.dashboard-insight-scroll .insight-action{display:block;color:var(--aurora-green);margin-top:10px}.dashboard-insight-scroll .insight-actions{justify-content:space-between}.dashboard-insight-scroll .insight-actions a{color:var(--aurora-cyan);font-size:.78rem;font-weight:700}.dashboard-insight-scroll .insight-actions form{margin-left:auto}[data-theme="pearl"] .insight-hero,[data-theme="pearl"] .dashboard-insights,[data-theme="pearl"] .all-insights-section,[data-theme="pearl"] .insight-card,[data-theme="pearl"] .insight-list-row{background:rgba(255,255,255,.82);box-shadow:0 16px 36px rgba(62,75,104,.10)}@media(max-width:900px){.top-insight-grid{grid-template-columns:1fr}.insight-card.insight-featured:first-child{grid-column:auto}.insight-hero{flex-direction:column}.insight-list-row{grid-template-columns:36px minmax(0,1fr)}.insight-row-actions{grid-column:2;flex-wrap:wrap}.dashboard-insight-scroll{grid-auto-columns:minmax(270px,88vw)}}@media(max-width:560px){.insight-hero,.all-insights-section,.dashboard-insights{padding:18px}.insight-list-row{grid-template-columns:1fr}.insight-list-icon{display:none}.insight-row-actions{grid-column:auto}.dashboard-insight-scroll{grid-auto-columns:92vw}}

/* module: step37.css */
.action-center-page{display:grid;gap:24px}.today-plan-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:28px;padding:30px;border:1px solid var(--border-glass);border-radius:var(--radius-xl);background:linear-gradient(135deg,rgba(20,31,36,.82),rgba(25,19,45,.74));box-shadow:var(--shadow-card)}.today-plan-hero::before{content:"";position:absolute;inset:-45%;background:radial-gradient(circle at 25% 40%,rgba(98,230,167,.16),transparent 28%),radial-gradient(circle at 70% 25%,rgba(155,123,255,.16),transparent 31%);pointer-events:none}.today-plan-main,.today-plan-metrics{position:relative}.today-plan-main h2{margin:8px 0 10px;font-size:clamp(1.8rem,3vw,3rem);line-height:1.05}.today-plan-main p{max-width:760px;color:var(--text-secondary);font-size:1rem;line-height:1.65}.today-plan-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.today-plan-metrics>div,.decision-state-card{padding:16px;border:1px solid var(--border-soft);border-radius:16px;background:rgba(7,10,17,.42)}.today-plan-metrics span,.decision-state-card span{display:block;color:var(--text-muted);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.today-plan-metrics strong,.decision-state-card strong{display:block;margin-top:7px;color:var(--text-primary);font-size:1.35rem}.decision-state-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.decision-state-card small{display:block;margin-top:7px;color:var(--text-muted);line-height:1.4}.decision-workspace,.decision-explanation-card,.decision-preference-card,.decision-history{padding:24px;border:1px solid var(--border-glass);border-radius:var(--radius-xl);background:var(--surface-glass);box-shadow:var(--shadow-card)}.decision-list{display:grid;gap:14px}.decision-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:16px;align-items:start;padding:18px;border:1px solid var(--border-soft);border-radius:18px;background:var(--surface-matte)}.decision-card.decision-high{border-color:rgba(255,112,122,.35);background:linear-gradient(135deg,rgba(255,112,122,.08),var(--surface-matte))}.decision-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:rgba(87,215,232,.1);color:var(--aurora-cyan)}.decision-icon svg{width:21px;height:21px}.decision-meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--text-muted);font-size:.68rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.decision-copy h3{margin:7px 0 6px;font-size:1.05rem}.decision-copy p,.decision-copy details p{color:var(--text-secondary);line-height:1.55}.decision-copy summary{cursor:pointer;color:var(--aurora-cyan);font-size:.8rem;font-weight:700}.decision-actions{display:grid;min-width:145px;gap:7px}.decision-actions form,.decision-actions button{width:100%}.text-button{border:0;background:none;color:var(--text-secondary);padding:6px;cursor:pointer}.decision-explanation-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);gap:18px}.decision-explanation-card p{padding:12px 14px;border:1px solid var(--border-soft);border-radius:13px;background:rgba(7,10,17,.28);color:var(--text-secondary)}.decision-history-list{display:grid;gap:8px}.decision-history-list article{display:flex;justify-content:space-between;gap:20px;padding:13px 15px;border-bottom:1px solid var(--border-soft)}.decision-history-list span{display:block;margin-top:3px;color:var(--text-muted);font-size:.76rem}.dashboard-todays-plan{margin:0 0 20px;padding:22px;border:1px solid rgba(98,230,167,.18);border-radius:var(--radius-xl);background:linear-gradient(120deg,rgba(98,230,167,.07),rgba(155,123,255,.06),var(--surface-glass));box-shadow:var(--shadow-card)}.dashboard-todays-plan .widget-heading{margin-bottom:13px}.today-plan-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:12px 0;border-top:1px solid var(--border-soft)}.today-plan-row:first-of-type{border-top:0}.today-plan-row h3{margin:0 0 4px;font-size:.96rem}.today-plan-row p{margin:0;color:var(--text-secondary);font-size:.82rem}.today-plan-row span{font-weight:800;color:var(--aurora-green);white-space:nowrap}html[data-theme="pearl"] .today-plan-hero,html[data-theme="pearl"] .decision-workspace,html[data-theme="pearl"] .decision-explanation-card,html[data-theme="pearl"] .decision-preference-card,html[data-theme="pearl"] .decision-history{background:rgba(255,255,255,.78)}html[data-theme="pearl"] .today-plan-metrics>div,html[data-theme="pearl"] .decision-state-card,html[data-theme="pearl"] .decision-card,html[data-theme="pearl"] .decision-explanation-card p{background:rgba(242,247,252,.8)}@media(max-width:1050px){.today-plan-hero,.decision-explanation-grid{grid-template-columns:1fr}.decision-state-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.decision-state-grid,.today-plan-metrics{grid-template-columns:1fr}.decision-card{grid-template-columns:38px minmax(0,1fr)}.decision-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.today-plan-row{grid-template-columns:1fr}.decision-history-list article{align-items:flex-start;flex-direction:column}}

/* module: step40.css */
/* Build 40: progressive, context-aware forms */
[hidden], .dynamic-field-hidden { display: none ; }
.dynamic-field-enter { animation: dynamicFieldEnter .24s ease both; }
@keyframes dynamicFieldEnter { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: translateY(0); } }

.account-form[data-dynamic-form="account"] { align-content: start; }
.account-form[data-dynamic-form="account"] .form-field,
.dynamic-more-options .form-field { min-width: 0; }

.issuer-preset-summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
  margin: .25rem 0 1.25rem;
  padding: 1rem 1.1rem;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(87,215,232,.08), rgba(155,123,255,.055));
  border: 1px solid rgba(255,255,255,.11);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.issuer-preset-summary[data-accent="violet"] { background: linear-gradient(135deg, rgba(155,123,255,.13), rgba(49,87,213,.06)); }
.issuer-preset-summary[data-accent="orange"] { background: linear-gradient(135deg, rgba(244,185,94,.12), rgba(255,112,122,.045)); }
.issuer-preset-summary[data-accent="green"] { background: linear-gradient(135deg, rgba(98,230,167,.12), rgba(87,215,232,.055)); }
.issuer-preset-summary h3 { margin: .2rem 0 .35rem; font-size: 1rem; color: var(--text-primary); }
.issuer-preset-summary p { margin: 0; color: var(--text-secondary); line-height: 1.55; max-width: 72ch; }
.issuer-summary-eyebrow { font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); }
.issuer-confidence { flex: 0 0 auto; border: 1px solid rgba(98,230,167,.25); background: rgba(98,230,167,.09); color: var(--positive); padding: .4rem .65rem; border-radius: 999px; font-size: .72rem; font-weight: 750; white-space: nowrap; }

.dynamic-more-options,
.advanced-rule-builder {
  margin: .7rem 0 1rem;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 14px;
  background: rgba(4,7,13,.22);
  overflow: clip;
}
.dynamic-more-options > summary,
.advanced-rule-builder > summary {
  cursor: pointer;
  padding: .85rem 1rem;
  font-weight: 700;
  color: var(--text-secondary);
  list-style: none;
}
.dynamic-more-options > summary::-webkit-details-marker,
.advanced-rule-builder > summary::-webkit-details-marker { display: none; }
.dynamic-more-options > summary::before,
.advanced-rule-builder > summary::before { content: '+'; display: inline-grid; place-items: center; width: 1.25rem; margin-right: .4rem; color: var(--aurora-cyan); }
.dynamic-more-options[open] > summary::before,
.advanced-rule-builder[open] > summary::before { content: '–'; }
.dynamic-more-options > .form-field { margin: 0 1rem 1rem; }

html[data-theme="pearl"] .issuer-preset-summary,
html[data-theme="pearl"] .dynamic-more-options,
html[data-theme="pearl"] .advanced-rule-builder {
  border-color: rgba(25,35,55,.12);
  background: rgba(255,255,255,.72);
}

@media (max-width: 760px) {
  .issuer-preset-summary { flex-direction: column; }
  .issuer-confidence { white-space: normal; }
}

/* module: step41.css */
.global-page-actions{position:fixed;top:18px;right:22px;z-index:80;display:flex;gap:10px}.global-page-actions .icon-button{position:relative;background:rgba(12,15,22,.76);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(18px)}.global-badge{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:#ff707a;color:#080a0f;font-size:11px}.notification-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:119}.notification-drawer{position:fixed;right:0;top:0;bottom:0;width:min(440px,94vw);z-index:120;padding:22px;background:linear-gradient(180deg,rgba(17,21,31,.98),rgba(5,7,13,.99));border-left:1px solid rgba(255,255,255,.12);box-shadow:-30px 0 70px rgba(0,0,0,.45);transform:translateX(105%);transition:transform .22s ease;display:flex;flex-direction:column}.notification-drawer.open{transform:none}.notification-drawer header,.notification-drawer footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.notification-drawer-tabs{display:flex;gap:8px;margin:18px 0}.notification-drawer-tabs button{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.035);color:var(--text-secondary);padding:8px 12px;border-radius:999px}.notification-drawer-tabs button.active{color:var(--text-primary);background:rgba(98,230,167,.12);border-color:rgba(98,230,167,.3)}.notification-drawer-list{overflow:auto;display:grid;gap:10px;flex:1;padding-right:4px}.drawer-notification{padding:14px;border-radius:16px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08)}.drawer-notification.unread{border-color:rgba(87,215,232,.3);background:rgba(87,215,232,.07)}.drawer-notification h3{font-size:14px;margin:0 0 5px}.drawer-notification p{font-size:12px;color:var(--text-secondary);margin:0}.drawer-notification small{display:block;margin-top:8px;color:var(--text-muted)}.embedded-view .sidebar,.embedded-view .mobile-topbar,.embedded-view .global-page-actions,.embedded-view .aurora-backdrop{display:none}.embedded-view .app-layout{display:block}.embedded-view .main-content{margin:0;padding:0;min-height:0}.embedded-view .page-container{max-width:none;padding:12px}.module-tabs{display:flex;gap:8px;overflow:auto;padding:5px;margin-bottom:18px;position:sticky;top:10px;z-index:20;background:rgba(8,10,16,.72);backdrop-filter:blur(18px);border-radius:16px;border:1px solid rgba(255,255,255,.08)}.module-tab{white-space:nowrap;padding:10px 15px;border-radius:12px;color:var(--text-secondary);border:0;background:transparent}.module-tab.active{color:#f6f7fb;background:linear-gradient(135deg,rgba(98,230,167,.16),rgba(155,123,255,.16));box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}.module-panel{display:none}.module-panel.active{display:block}.module-frame{width:100%;height:calc(100vh - 170px);min-height:720px;border:0;border-radius:20px;background:transparent}.integrated-module{margin-top:28px}.integrated-module .module-frame{min-height:850px}.category-taxonomy{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.category-main{padding:15px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.035)}.category-main h3{margin:0 0 9px}.category-main p{font-size:12px;color:var(--text-secondary);margin:0}.settings-section-anchor{scroll-margin-top:80px}.formula-source-pill{display:inline-flex;gap:6px;align-items:center;padding:6px 10px;border-radius:999px;background:rgba(98,230,167,.1);border:1px solid rgba(98,230,167,.23);font-size:12px}html[data-theme="pearl"] .notification-drawer{background:#f5f7fb}html[data-theme="pearl"] .global-page-actions .icon-button{background:rgba(255,255,255,.9)}@media(max-width:760px){.global-page-actions{top:10px;right:10px}.module-frame{height:calc(100vh - 135px);min-height:650px}}

/* Build 41.1 native workspace repair */
.module-frame,.embedded-view{display:none}.native-workspace,.native-panel{min-width:0}.native-panel{display:none;animation:nativePanelIn .18s ease both}.native-panel.active{display:block}.native-tabs{position:sticky;top:12px;z-index:18;margin:0 0 22px;background:rgba(8,10,16,.88);box-shadow:0 14px 32px rgba(0,0,0,.22)}.native-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:8px 0 22px}.native-section-heading h2{margin:.25rem 0}.native-section-heading p{color:var(--text-secondary);margin:0}.intelligence-page .native-panel{padding-top:2px}.intelligence-overview-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:18px}.intelligence-overview-hero{margin:0}.compact-intelligence-insights{margin-top:18px}.rules-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.rules-summary-grid article{padding:18px}.rules-summary-grid span{display:block;color:var(--text-secondary);font-size:12px}.rules-summary-grid strong{display:block;font-size:30px;margin:8px 0}.native-health-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.tab-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:rgba(255,112,122,.16);font-size:11px}.connections-container,.coach-page,.action-center-page,.insights-page,.analytics-page{max-width:none;padding:0}.native-panel .page-header,.native-panel .analytics-header{display:none}.native-panel .page-container{padding:0}.native-panel .connection-summary-grid,.native-panel .production-readiness-card,.native-panel .connection-list,.native-panel .coach-layout{margin-top:0}html[data-theme="pearl"] .native-tabs{background:rgba(248,250,255,.92)}@keyframes nativePanelIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media(max-width:1050px){.intelligence-overview-grid{grid-template-columns:1fr}.rules-summary-grid{grid-template-columns:1fr}}@media(max-width:760px){.native-section-heading{flex-direction:column}.native-tabs{top:8px}}

/* Build 41.2: native workspace reliability */
.native-workspace [hidden]{display:none}
.native-workspace>.native-panel.active{display:block;visibility:visible;opacity:1}
.native-workspace>.native-panel{width:100%;min-width:0}
.native-workspace>.module-tabs{scrollbar-width:none}
.native-workspace>.module-tabs::-webkit-scrollbar{display:none}

/* Build 41.3: server-rendered native section navigation. */
.module-tabs a.module-tab{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:inherit}
.module-tabs a.module-tab:visited{color:inherit}
.module-tabs a.module-tab.active{pointer-events:none}
.native-panel[hidden]{display:none}

/* module: build42_3.css */
/* Build 42.3 — database and Plaid safety corrections */
.startup-safety-warning {
    margin: 0 0 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(244, 185, 94, 0.45);
    border-radius: 14px;
    background: rgba(244, 185, 94, 0.10);
    display: grid;
    gap: 0.35rem;
}
.startup-safety-warning strong {
    color: var(--text-primary, #f6f7fb);
}
.startup-safety-warning span {
    color: var(--text-secondary, #a7adbd);
}
.startup-safety-warning code {
    overflow-wrap: anywhere;
    color: var(--text-muted, #737a8c);
    font-size: 0.78rem;
}
.plaid-loading-card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* module: build42_4.css */
/* Build 42.4 — browser acceptance polish and consolidated-workspace repairs */

/* ---------- Consolidated native workspaces ---------- */
.native-workspace {
    width: 100%;
    min-width: 0;
}
.native-tabs {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    padding: 6px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    background: rgba(7,10,17,.88) ;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}
.native-tabs .module-tab {
    flex: 0 0 auto;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 8px 13px;
    border: 1px solid transparent;
    border-radius: 10px;
    color: var(--text-secondary);
    text-decoration: none;
    font-size: .78rem;
    font-weight: 750;
    white-space: nowrap;
}
.native-tabs .module-tab:hover,
.native-tabs .module-tab:focus-visible {
    color: var(--text-primary);
    background: rgba(255,255,255,.055);
    outline: none;
}
.native-tabs .module-tab.active {
    color: var(--text-primary);
    border-color: rgba(98,230,167,.25);
    background: linear-gradient(135deg,rgba(98,230,167,.15),rgba(87,215,232,.08),rgba(155,123,255,.12));
    box-shadow: inset 0 1px rgba(255,255,255,.06), 0 8px 20px rgba(0,0,0,.14);
}
.native-panel {
    width: 100%;
    min-width: 0;
    padding-top: 2px;
}
.native-panel.active:not([hidden]) { display: block ; }
.native-panel[hidden] { display: none ; }
.native-section-heading {
    padding: 4px 2px 0;
}
.native-section-heading h2 { font-size: clamp(1.35rem,2vw,1.8rem); }

/* ---------- Accounts: Institutions ---------- */
.connection-status-banner,
.connection-explanation-card,
.sync-health-maintenance,
.sync-health-card {
    border: 1px solid var(--card-border,rgba(255,255,255,.09));
    border-radius: 18px;
    background: linear-gradient(145deg,rgba(20,25,38,.76),rgba(9,12,20,.72));
    box-shadow: 0 18px 44px rgba(0,0,0,.17), inset 0 1px rgba(255,255,255,.04);
}
.connection-status-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding: 20px 22px;
    margin-bottom: 16px;
}
.connection-status-banner h3,
.connection-explanation-card h3,
.sync-health-maintenance h3 { margin: 4px 0 6px; }
.connection-status-banner p,
.connection-explanation-card p,
.sync-health-maintenance p { margin: 0; color: var(--text-secondary); line-height: 1.55; }
.connection-status-banner.is-ready { border-color: rgba(98,230,167,.24); }
.connection-status-banner.needs-setup { border-color: rgba(244,185,94,.32); }
.plaid-status-pill,
.connection-auto-status {
    display: inline-flex;
    align-items: center;
    width: max-content;
    padding: 6px 9px;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
    color: var(--positive);
    background: rgba(86,216,155,.12);
    border: 1px solid rgba(86,216,155,.18);
}
.connection-auto-status.is-paused { color: var(--warning); background: rgba(244,185,94,.11); border-color: rgba(244,185,94,.2); }
.connection-summary-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 14px;
    margin: 0 0 18px;
}
.connection-summary-grid .summary-card { min-height: 120px; padding: 19px; }
.connection-flow-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    padding: 20px 22px;
    margin-bottom: 18px;
}
.connection-flow {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    color: var(--text-secondary);
}
.connection-flow span {
    padding: 7px 10px;
    border-radius: 9px;
    background: rgba(255,255,255,.045);
    color: var(--text-primary);
    font-size: .75rem;
    font-weight: 700;
}
.connection-flow i { color: var(--aurora-cyan); font-style: normal; }
.production-readiness-card { margin: 0 0 22px ; padding: 22px ; }
.production-readiness-heading { align-items: flex-start; }
.production-tool-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 13px;
}
.production-tool-grid > article {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    min-height: 170px;
    padding: 17px;
    border: 1px solid rgba(255,255,255,.065);
    border-radius: 14px;
    background: rgba(4,7,13,.28);
}
.production-tool-grid h3 { margin: 0 0 7px; font-size: .98rem; }
.production-tool-grid p { margin: 0 0 16px; color: var(--text-secondary); line-height: 1.5; }
.production-tool-grid form,
.production-tool-grid .action-button { margin-top: auto; }
.connected-institutions-section { margin-top: 3px; }
.connection-card-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px;
}
.institution-card { padding: 19px ; min-width: 0; }
.institution-card-header {
    display: grid ;
    grid-template-columns: auto minmax(0,1fr) auto;
    gap: 12px;
    align-items: center;
}
.institution-card-title { min-width: 0; }
.institution-card-title h3 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.institution-sync-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 17px 0;
}
.institution-sync-details > div,
.sync-health-card dl > div {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid rgba(255,255,255,.055);
    border-radius: 11px;
    background: rgba(4,7,13,.28);
}
.institution-sync-details dt,
.sync-health-card dt { color: var(--text-muted); font-size: .67rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.institution-sync-details dd,
.sync-health-card dd { margin: 5px 0 0; color: var(--text-primary); font-size: .78rem; overflow-wrap: anywhere; }
.institution-error {
    margin-bottom: 12px;
    padding: 10px 12px;
    border: 1px solid rgba(255,112,122,.22);
    border-radius: 10px;
    background: rgba(255,112,122,.08);
    color: var(--danger);
    font-size: .78rem;
    overflow-wrap: anywhere;
}
.institution-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.institution-actions form { margin: 0; }
.institution-actions .action-button { min-height: 35px; padding: 8px 11px; font-size: .73rem; }
.action-button-danger { color: #ff9aa2 ; border-color: rgba(255,112,122,.24) ; background: rgba(255,112,122,.07) ; }
.connection-empty-state {
    display: grid;
    place-items: center;
    gap: 8px;
    min-height: 250px;
    padding: 32px;
    border: 1px dashed rgba(255,255,255,.12);
    border-radius: 18px;
    background: rgba(5,8,14,.28);
    text-align: center;
}
.connection-empty-state h3,
.connection-empty-state p { margin: 0; }
.connection-empty-state p { max-width: 620px; color: var(--text-secondary); }
.empty-state-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 17px; background: rgba(98,230,167,.1); color: var(--aurora-green); font-size: 1.75rem; }

/* ---------- Accounts: Sync & Health ---------- */
.sync-health-heading { margin-bottom: 18px; }
.sync-health-summary { margin-bottom: 18px; }
.sync-health-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px;
    margin-bottom: 18px;
}
.sync-health-card { padding: 19px; min-width: 0; }
.sync-health-card > header {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    align-items: center;
    gap: 12px;
}
.sync-health-card h3 { margin: 0 0 4px; }
.sync-health-card header p { margin: 0; color: var(--text-secondary); font-size: .78rem; }
.health-dot { width: 11px; height: 11px; border-radius: 50%; background: var(--text-muted); box-shadow: 0 0 0 5px rgba(115,122,140,.09); }
.sync-health-card.is-healthy .health-dot { background: var(--positive); box-shadow: 0 0 0 5px rgba(86,216,155,.11); }
.sync-health-card.has-error .health-dot { background: var(--danger); box-shadow: 0 0 0 5px rgba(255,112,122,.11); }
.sync-health-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 16px 0; }
.sync-health-account-list { display: grid; gap: 6px; margin: 0 0 16px; }
.sync-health-account-list > div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 11px; border-radius: 9px; background: rgba(255,255,255,.035); }
.sync-health-account-list span { color: var(--text-primary); font-size: .76rem; }
.sync-health-account-list strong { color: var(--text-muted); font-size: .68rem; text-align: right; }
.sync-health-empty { grid-column: 1/-1; }
.sync-health-maintenance { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 20px 22px; }
.native-health-actions { margin: 0; justify-content: flex-end; }

/* ---------- Transactions Coach / Rules ---------- */
.transactions-native-workspace .native-panel { min-height: 140px; }
.transactions-native-workspace .coach-summary-grid { margin-top: 0; }
.transactions-native-workspace .coach-workspace { margin-bottom: 22px; }
.transactions-native-workspace .completion-icon svg {
    display: block ;
    width: 34px ;
    height: 34px ;
    max-width: 34px ;
    max-height: 34px ;
}
.transactions-native-workspace .coach-complete { overflow: hidden; }
.transactions-native-workspace .coach-history { margin-top: 20px; padding: 22px; }
.coach-history-list { display: grid; gap: 9px; }
.coach-history-row {
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 12px;
    background: rgba(4,7,13,.3);
    overflow: hidden;
}
.coach-history-row summary {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: center;
    padding: 14px 15px;
    cursor: pointer;
}
.coach-history-row summary > span { display: grid; gap: 4px; min-width: 0; }
.coach-history-row summary strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.coach-history-row summary small { color: var(--text-muted); }
.coach-history-row summary em { color: var(--text-primary); font-style: normal; font-weight: 800; white-space: nowrap; }
.coach-history-form {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr)) auto;
    gap: 10px;
    align-items: end;
    padding: 14px 15px;
    border-top: 1px solid rgba(255,255,255,.065);
}
.rules-learning-panels { margin: 0 0 18px; }
.rules-summary-grid .glass-card { min-height: 126px; }
.rules-summary-grid p { margin: 0; color: var(--text-secondary); line-height: 1.45; }

/* ---------- Financial Intelligence ---------- */
.intelligence-native-workspace .top-insight-grid {
    overflow: visible ;
    grid-auto-flow: row ;
    grid-auto-columns: auto ;
}
.debt-intelligence-summary { grid-template-columns: repeat(4,minmax(0,1fr)); }
.debt-intelligence-grid { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(280px,.55fr); gap: 16px; margin: 17px 0; }
.debt-portfolio-card,
.debt-target-card { padding: 20px; }
.debt-intelligence-list { display: grid; gap: 8px; }
.debt-intelligence-row {
    display: grid;
    grid-template-columns: minmax(190px,1fr) auto auto auto;
    gap: 14px;
    align-items: center;
    padding: 12px 13px;
    border: 1px solid rgba(255,255,255,.055);
    border-radius: 11px;
    background: rgba(4,7,13,.28);
}
.debt-intelligence-row.is-target { border-color: rgba(98,230,167,.3); background: linear-gradient(120deg,rgba(98,230,167,.09),rgba(87,215,232,.035)); }
.debt-intelligence-row > div { display: grid; gap: 3px; min-width: 0; }
.debt-intelligence-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.debt-intelligence-row small { color: var(--text-muted); }
.debt-intelligence-row > span { color: var(--text-secondary); font-size: .78rem; font-weight: 700; text-align: right; white-space: nowrap; }
.debt-target-spotlight { display: grid; gap: 9px; padding: 18px; border: 1px solid rgba(98,230,167,.2); border-radius: 14px; background: linear-gradient(145deg,rgba(98,230,167,.11),rgba(155,123,255,.07)); }
.debt-target-spotlight > span { color: var(--aurora-green); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.debt-target-spotlight > strong { font-size: 1.3rem; }
.debt-target-spotlight p { margin: 0; color: var(--text-secondary); line-height: 1.55; }
.debt-decision-list { margin-top: 16px; }

/* ---------- Budgets: remove bright fields in Aurora ---------- */
html[data-theme="aurora-midnight"] body[data-page="budgets"] input:not([type="checkbox"]):not([type="radio"]),
html[data-theme="aurora-midnight"] body[data-page="budgets"] select,
html[data-theme="aurora-midnight"] body[data-page="budgets"] textarea,
html[data-theme="aurora-midnight"] body[data-page="debt"] input:not([type="checkbox"]):not([type="radio"]),
html[data-theme="aurora-midnight"] body[data-page="debt"] select,
html[data-theme="aurora-midnight"] body[data-page="debt"] textarea {
    background: rgba(5,8,15,.74) ;
    color: var(--text-primary) ;
    border-color: rgba(255,255,255,.11) ;
    box-shadow: inset 0 1px rgba(255,255,255,.025) ;
}
html[data-theme="aurora-midnight"] body[data-page="budgets"] input::placeholder,
html[data-theme="aurora-midnight"] body[data-page="debt"] input::placeholder { color: var(--text-muted) ; }

/* ---------- Debt Plan: remove legacy white panels in Aurora ---------- */
html[data-theme="aurora-midnight"] body[data-page="debt"] .selected-strategy-banner,
html[data-theme="aurora-midnight"] body[data-page="debt"] .selected-target,
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-card,
html[data-theme="aurora-midnight"] body[data-page="debt"] .debt-plan-note,
html[data-theme="aurora-midnight"] body[data-page="debt"] .schedule-details,
html[data-theme="aurora-midnight"] body[data-page="debt"] .payoff-table-wrapper {
    background: linear-gradient(145deg,rgba(20,25,38,.78),rgba(8,11,19,.76)) ;
    color: var(--text-primary) ;
    border-color: rgba(255,255,255,.09) ;
    box-shadow: 0 18px 42px rgba(0,0,0,.16), inset 0 1px rgba(255,255,255,.04) ;
}
html[data-theme="aurora-midnight"] body[data-page="debt"] .selected-strategy-banner h2,
html[data-theme="aurora-midnight"] body[data-page="debt"] .selected-target strong,
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-card strong { color: var(--text-primary) ; }
html[data-theme="aurora-midnight"] body[data-page="debt"] .selected-strategy-banner p,
html[data-theme="aurora-midnight"] body[data-page="debt"] .selected-target span,
html[data-theme="aurora-midnight"] body[data-page="debt"] .selected-target small,
html[data-theme="aurora-midnight"] body[data-page="debt"] .debt-plan-note { color: var(--text-secondary) ; }
html[data-theme="aurora-midnight"] body[data-page="debt"] .recommendation-label { color: var(--aurora-cyan) ; }
html[data-theme="aurora-midnight"] body[data-page="debt"] .selected-target { border-color: rgba(87,215,232,.22) ; }
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-card.strategy-selected { border-color: rgba(98,230,167,.35) ; }
html[data-theme="aurora-midnight"] body[data-page="debt"] .schedule-details > summary { color: var(--text-primary) ; background: rgba(255,255,255,.025) ; }

/* ---------- Pearl theme corrections ---------- */
html[data-theme="pearl"] .native-tabs {
    background: rgba(247,250,255,.92) ;
    border-color: rgba(16,24,40,.1) ;
    box-shadow: 0 12px 26px rgba(63,77,105,.08);
}
html[data-theme="pearl"] .native-tabs .module-tab { color: #5b6577; }
html[data-theme="pearl"] .native-tabs .module-tab:hover,
html[data-theme="pearl"] .native-tabs .module-tab:focus-visible { background: rgba(49,87,213,.06); color: #101828; }
html[data-theme="pearl"] .native-tabs .module-tab.active { color: #101828; background: linear-gradient(135deg,rgba(98,230,167,.2),rgba(87,215,232,.1),rgba(155,123,255,.14)); border-color: rgba(49,87,213,.12); }
html[data-theme="pearl"] .global-page-actions,
html[data-theme="pearl"] .notification-drawer { background: rgba(250,252,255,.95) ; border-color: rgba(16,24,40,.12) ; color: #101828 ; }
html[data-theme="pearl"] .connection-status-banner,
html[data-theme="pearl"] .connection-explanation-card,
html[data-theme="pearl"] .sync-health-maintenance,
html[data-theme="pearl"] .sync-health-card,
html[data-theme="pearl"] .production-tool-grid > article,
html[data-theme="pearl"] .institution-sync-details > div,
html[data-theme="pearl"] .sync-health-card dl > div,
html[data-theme="pearl"] .coach-history-row,
html[data-theme="pearl"] .debt-intelligence-row {
    background: rgba(255,255,255,.82) ;
    color: #101828 ;
    border-color: rgba(16,24,40,.1) ;
    box-shadow: 0 14px 32px rgba(63,77,105,.08);
}
html[data-theme="pearl"] .connection-status-banner p,
html[data-theme="pearl"] .connection-explanation-card p,
html[data-theme="pearl"] .sync-health-maintenance p,
html[data-theme="pearl"] .production-tool-grid p,
html[data-theme="pearl"] .sync-health-card header p,
html[data-theme="pearl"] .debt-target-spotlight p { color: #596579 ; }
html[data-theme="pearl"] .connection-flow span,
html[data-theme="pearl"] .sync-health-account-list > div { background: rgba(16,24,40,.045); color: #101828; }
html[data-theme="pearl"] .connection-empty-state { background: rgba(255,255,255,.54); border-color: rgba(16,24,40,.14); }
html[data-theme="pearl"] .debt-target-spotlight { background: linear-gradient(145deg,rgba(98,230,167,.17),rgba(155,123,255,.09)); border-color: rgba(49,87,213,.12); }
html[data-theme="pearl"] body[data-page="debt"] .selected-strategy-banner,
html[data-theme="pearl"] body[data-page="debt"] .selected-target,
html[data-theme="pearl"] body[data-page="debt"] .strategy-card,
html[data-theme="pearl"] body[data-page="debt"] .debt-plan-note,
html[data-theme="pearl"] body[data-page="debt"] .schedule-details,
html[data-theme="pearl"] body[data-page="debt"] .payoff-table-wrapper {
    background: rgba(255,255,255,.86) ;
    color: #101828 ;
    border-color: rgba(16,24,40,.1) ;
    box-shadow: 0 16px 34px rgba(63,77,105,.09) ;
}
html[data-theme="pearl"] body[data-page="debt"] .selected-strategy-banner h2,
html[data-theme="pearl"] body[data-page="debt"] .selected-target strong,
html[data-theme="pearl"] body[data-page="debt"] .strategy-card strong { color: #101828 ; }
html[data-theme="pearl"] body[data-page="debt"] .selected-strategy-banner p,
html[data-theme="pearl"] body[data-page="debt"] .selected-target span,
html[data-theme="pearl"] body[data-page="debt"] .selected-target small,
html[data-theme="pearl"] body[data-page="debt"] .debt-plan-note { color: #596579 ; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
    .connection-summary-grid,
    .debt-intelligence-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .production-tool-grid { grid-template-columns: 1fr; }
    .production-tool-grid > article { min-height: 0; }
    .connection-flow-card,
    .sync-health-maintenance { align-items: flex-start; flex-direction: column; }
    .native-health-actions { justify-content: flex-start; }
}
@media (max-width: 980px) {
    .connection-card-grid,
    .sync-health-grid,
    .debt-intelligence-grid { grid-template-columns: 1fr; }
    .debt-intelligence-row { grid-template-columns: minmax(170px,1fr) auto auto; }
    .debt-intelligence-row > span:last-child { grid-column: 2/-1; }
    .coach-history-form { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
    .native-tabs { position: relative; top: auto; }
    .connection-status-banner { align-items: flex-start; flex-direction: column; }
    .connection-summary-grid,
    .debt-intelligence-summary { grid-template-columns: 1fr; }
    .institution-card-header { grid-template-columns: auto minmax(0,1fr); }
    .institution-status-badge { grid-column: 2; justify-self: start; }
    .institution-sync-details,
    .sync-health-card dl { grid-template-columns: 1fr; }
    .institution-actions .action-button,
    .institution-actions form { flex: 1 1 150px; }
    .institution-actions button { width: 100%; }
    .coach-history-form { grid-template-columns: 1fr; }
    .coach-history-row summary { align-items: flex-start; }
    .debt-intelligence-row { grid-template-columns: 1fr 1fr; }
    .debt-intelligence-row > div { grid-column: 1/-1; }
    .debt-intelligence-row > span { text-align: left; }
}

/* ---------- Final Aurora cleanup found during visual acceptance ---------- */
html[data-theme="aurora-midnight"] body[data-page="budgets"] .budget-progress-values > div {
    background: rgba(7,10,18,.78) ;
    border: 1px solid rgba(255,255,255,.075) ;
    box-shadow: inset 0 1px rgba(255,255,255,.025) ;
}
html[data-theme="aurora-midnight"] body[data-page="budgets"] .budget-progress-values span,
html[data-theme="aurora-midnight"] body[data-page="budgets"] .budget-progress-percent {
    color: var(--text-secondary) ;
}
html[data-theme="aurora-midnight"] body[data-page="budgets"] .budget-progress-values strong {
    color: var(--text-primary) ;
}
html[data-theme="aurora-midnight"] body[data-page="budgets"] .budget-progress-track {
    background: rgba(255,255,255,.075) ;
}
html[data-theme="aurora-midnight"] body[data-page="budgets"] .budget-notification-note {
    background: linear-gradient(135deg,rgba(49,87,213,.12),rgba(87,215,232,.055)) ;
    border-color: rgba(110,168,255,.22) ;
    color: var(--text-secondary) ;
}
html[data-theme="aurora-midnight"] body[data-page="budgets"] .budget-notification-note strong {
    color: var(--info) ;
}
html[data-theme="aurora-midnight"] body[data-page="budgets"] .budget-notification-note p {
    color: var(--text-secondary) ;
}

html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-card h3,
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-card strong,
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-primary-result strong {
    color: var(--text-primary) ;
}
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-card p,
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-card span,
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-primary-result span,
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-difference {
    color: var(--text-secondary) ;
}
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-primary-result {
    border-color: rgba(255,255,255,.09) ;
}
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-stat-grid > div {
    background: rgba(7,10,18,.8) ;
    border: 1px solid rgba(255,255,255,.075) ;
    box-shadow: inset 0 1px rgba(255,255,255,.025) ;
}
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-stat-grid span {
    color: var(--text-muted) ;
}
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-stat-grid strong {
    color: var(--text-primary) ;
}
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-label {
    color: var(--text-primary) ;
}

/* module: build44_1-runtime.css */
.scheduler-runtime-card {
    margin: 18px 0 24px;
    padding: 22px;
}

.scheduler-runtime-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0 0;
}

.scheduler-runtime-grid > div {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.1));
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.025);
}

.scheduler-runtime-grid dt {
    color: var(--text-muted, #737a8c);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.scheduler-runtime-grid dd {
    margin: 7px 0 0;
    color: var(--text-primary, #f6f7fb);
    overflow-wrap: anywhere;
}

@media (max-width: 900px) {
    .scheduler-runtime-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .scheduler-runtime-grid {
        grid-template-columns: 1fr;
    }
}

/* Build 44.1 bounded transaction history rendering. */
.transaction-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.25rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.1));
    border-radius: 14px;
    background: rgba(12, 15, 22, 0.58);
}

.transaction-pagination-summary {
    color: var(--text-secondary, #a7adbd);
    font-size: 0.875rem;
}

.transaction-pagination-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.pagination-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 0.55rem;
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.1));
    border-radius: 9px;
    color: var(--text-secondary, #a7adbd);
    text-decoration: none;
}

.pagination-number:hover,
.pagination-number.active {
    border-color: rgba(87, 215, 232, 0.55);
    color: var(--text-primary, #f6f7fb);
    background: rgba(87, 215, 232, 0.12);
}

.pagination-disabled {
    opacity: 0.45;
    pointer-events: none;
}

.pagination-ellipsis {
    color: var(--text-muted, #737a8c);
    padding: 0 0.1rem;
}

@media (max-width: 760px) {
    .transaction-pagination {
        align-items: stretch;
        flex-direction: column;
    }

    .transaction-pagination-actions {
        justify-content: flex-start;
    }
}

.workspace-server-placeholder {
    min-height: 1px;
}

/* module: build44_2-formatting.css */
/* Build 44.2 — visual consistency, containment, and layout contracts */

:root {
    --layout-card-gap: 16px;
    --layout-section-gap: 24px;
    --layout-card-padding: 20px;
    --layout-control-min-height: 42px;
}

/* Global containment and typography contracts. */
body[data-page] :is(.summary-card,.glass-card,.form-card,.account-list-item,.institution-card,.production-readiness-card,.budget-progress-card,.budget-recommendations-card,.budget-unbudgeted-card,.strategy-card,.coach-review-card,.manager-panel,.migration-review-row) {
    min-width: 0;
}
body[data-page] :is(h1,h2,h3,h4,p,span,strong,small,label,dd,dt) {
    overflow-wrap: break-word;
}
body[data-page] :is(input,select,textarea,button,.action-button) {
    min-height: var(--layout-control-min-height);
}
body[data-page] select {
    text-overflow: ellipsis;
}
body[data-page] .summary-card {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    height: 100%;
}
body[data-page] .summary-card .summary-detail,
body[data-page] .summary-card > small,
body[data-page] .summary-card > p {
    margin-top: auto;
    padding-top: 10px;
    line-height: 1.45;
}

/* Tabs: clear selected state, quieter inactive state, no accidental clipping. */
.native-tabs,
.workspace-tabs {
    scrollbar-width: none;
}
.native-tabs::-webkit-scrollbar,
.workspace-tabs::-webkit-scrollbar { display: none; }
.native-tabs .module-tab:not(.active),
.workspace-tabs a:not(.active) { opacity: .74; }
.native-tabs .module-tab:not(.active):hover,
.workspace-tabs a:not(.active):hover { opacity: 1; }
.native-tabs .module-tab.active,
.workspace-tabs a.active { opacity: 1; }

/* Dashboard: category-consistent metric accents and readable insight cards. */
.metric-grid > :nth-child(1) .metric-icon { color: var(--positive); background: rgba(86,216,155,.12); }
.metric-grid > :nth-child(2) .metric-icon { color: var(--danger); background: rgba(255,112,122,.12); }
.metric-grid > :nth-child(3) .metric-icon { color: var(--aurora-violet); background: rgba(155,123,255,.12); }
.metric-grid > :nth-child(4) .metric-icon { color: var(--aurora-cyan); background: rgba(87,215,232,.12); }
.dashboard-insight-scroll {
    grid-auto-flow: row ;
    grid-template-columns: repeat(3,minmax(0,1fr)) ;
    grid-auto-columns: unset ;
    overflow: visible ;
    padding: 3px 2px ;
    align-items: stretch;
}
.dashboard-insight-scroll .insight-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 230px;
    overflow: visible;
}
.dashboard-insight-scroll .insight-card :is(h2,h3,.insight-summary,.insight-recommendation) {
    overflow: visible;
    text-overflow: clip;
    -webkit-line-clamp: unset;
    line-clamp: unset;
}
.dashboard-insight-scroll .insight-actions { margin-top: auto; padding-top: 16px; }

/* Accounts: prevent truncated controls and align account/institution cards. */
.accounts-page-grid {
    grid-template-columns: minmax(350px,430px) minmax(0,1fr) ;
}
.account-form .form-field,
.account-form .form-field label { min-width: 0; }
.account-form label { line-height: 1.35; }
.account-form :is(input,select,textarea) { width: 100%; }
.account-form .form-row,
.account-form .two-column-grid {
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    gap: 12px;
}
.account-list-item.account-card-modern { min-height: 136px; }
.account-card-modern .account-main-details { align-self: center; }
.account-card-modern .account-actions-area { min-width: 165px; }
.connection-summary-grid { align-items: stretch; }
.connection-summary-grid .summary-card { min-height: 132px; }
.production-tool-grid { align-items: stretch; }
.production-tool-grid > article { height: 100%; min-height: 190px; }
.production-tool-grid > article :is(form,.action-button) { width: 100%; }
.connection-card-grid { align-items: stretch; }
.institution-card { display: flex; flex-direction: column; height: 100%; }
.institution-actions { margin-top: auto; padding-top: 4px; }
.institution-actions form { flex: 1 1 130px; }
.institution-actions .action-button { width: 100%; }

/* Transactions: balanced filters, stable columns, and generous Coach spacing. */
.transaction-summary-grid { align-items: stretch; }
.transaction-summary-grid .summary-card { min-height: 124px; }
.transaction-filter-form {
    grid-template-columns: repeat(12,minmax(0,1fr)) ;
    gap: 13px ;
    align-items: end;
}
.transaction-search-field { grid-column: span 5; }
.transaction-filter-form > .form-field { grid-column: span 3; min-width: 0; }
.transaction-filter-form > .form-field:nth-of-type(n+5) { grid-column: span 3; }
.transaction-filter-actions { grid-column: span 3; justify-content: flex-end; }
.transaction-filter-form :is(input,select) { width: 100%; }
.transaction-row-main {
    grid-template-columns: 44px minmax(240px,1.5fr) minmax(210px,.9fr) minmax(150px,.75fr) minmax(100px,auto) minmax(82px,auto) ;
    column-gap: 20px ;
    row-gap: 10px ;
}
.transaction-identity,
.transaction-taxonomy-badges,
.transaction-flags { min-width: 0; }
.transaction-identity strong,
.transaction-identity span,
.transaction-taxonomy-badges strong,
.transaction-taxonomy-badges small {
    display: block;
    max-width: 100%;
    white-space: normal;
    line-height: 1.35;
}
.transaction-taxonomy-badges { column-gap: 10px; }
.transaction-amount { min-width: 86px; }
.transaction-row-compact .transaction-row-main {
    grid-template-columns: 34px minmax(240px,1.45fr) minmax(220px,.85fr) minmax(90px,auto) minmax(74px,auto) ;
}
.coach-review-card { padding: 24px ; }
.coach-review-card > header { margin-bottom: 18px; }
.coach-current-answer { margin: 0 0 20px ; padding: 16px ; }
.coach-scope-grid { gap: 14px ; }
.coach-scope-grid .form-field { min-width: 0; }
.coach-scope-grid :is(select,input) { width: 100%; }
.manager-panel > summary { min-height: 58px; align-items: center; }
.manager-form,
.migration-review-row { padding: 22px ; }
.manager-list > article { padding: 17px 20px ; }
.migration-review-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,.8fr); gap: 22px; align-items: start; }
.migration-review-row form { min-width: 0; width: 100%; }

/* Financial Intelligence: card and chart rhythm. */
.intelligence-overview-grid,
.top-insight-grid { align-items: stretch; }
.intelligence-overview-grid > *,
.top-insight-grid > * { height: 100%; }
.insight-card { overflow: hidden; }
.insight-card :is(h2,h3,p,strong,span) { max-width: 100%; }
.analytics-card,
.chart-card,
.budget-chart-card { overflow: hidden; }
.analytics-card canvas,
.chart-card canvas,
.budget-chart-card canvas { max-width: 100% ; }

/* Budgets: equal metrics, contained controls, readable explanations. */
.budget-summary-grid { align-items: stretch; }
.budget-summary-grid .summary-card { min-height: 142px; }
.automatic-budget-hero { align-items: stretch; }
.automatic-budget-copy,
.automatic-budget-metrics { min-width: 0; }
.automatic-budget-metrics { align-content: stretch; }
.automatic-budget-metrics > div { min-height: 92px; display: flex; flex-direction: column; justify-content: space-between; }
.budget-workspace { align-items: stretch; }
.budget-settings-card,
.budget-add-card { height: 100%; min-width: 0; }
.budget-settings-form,
.budget-add-form { min-width: 0; }
.budget-settings-form :is(input,select,button),
.budget-add-form :is(input,select,button) { width: 100%; max-width: 100%; }
.budget-progress-grid { align-items: stretch; }
.budget-progress-card { display: flex; flex-direction: column; height: 100%; min-height: 260px; }
.budget-progress-values { margin-top: auto; }
.budget-progress-actions { align-items: end; }
.budget-inline-edit-form { min-width: 0; }
.budget-inline-edit-form input { width: min(100%,160px); }
.budget-analysis-grid { grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr) ; align-items: stretch; }
.budget-analysis-grid > article { height: 100%; min-width: 0; }
.budget-recommendation-row,
.unbudgeted-spending-row { min-width: 0; }
.budget-recommendation-row strong,
.unbudgeted-spending-row :is(span,strong) { overflow-wrap: anywhere; }
.budget-chart-card { min-height: 420px; padding: 20px; }

/* Debt plan cards stay aligned even with different copy lengths. */
.strategy-grid { align-items: stretch; }
.strategy-grid > * { display: flex; flex-direction: column; height: 100%; }
.strategy-grid > * .action-button,
.strategy-grid > * form { margin-top: auto; }

@media (max-width: 1200px) {
    .dashboard-insight-scroll { grid-template-columns: repeat(2,minmax(0,1fr)) ; }
    .transaction-row-main,
    .transaction-row-compact .transaction-row-main { grid-template-columns: 40px minmax(0,1fr) auto ; }
    .transaction-taxonomy-badges,.transaction-flags { grid-column: 2; }
    .transaction-amount { grid-column: 3; grid-row: 1; }
    .inline-editor { grid-column: 3; }
    .migration-review-row { grid-template-columns: 1fr; }
}
@media (max-width: 980px) {
    .accounts-page-grid,
    .budget-analysis-grid { grid-template-columns: 1fr ; }
    .transaction-filter-form { grid-template-columns: repeat(2,minmax(0,1fr)) ; }
    .transaction-search-field,
    .transaction-filter-form > .form-field,
    .transaction-filter-actions { grid-column: auto ; }
}
@media (max-width: 700px) {
    .dashboard-insight-scroll { grid-template-columns: 1fr ; }
    .transaction-filter-form { grid-template-columns: 1fr ; }
    .transaction-filter-actions { justify-content: stretch; }
    .transaction-filter-actions > * { flex: 1 1 auto; }
    .account-form .form-row,
    .account-form .two-column-grid { grid-template-columns: 1fr; }
}
.category-icon-token .category-icon-svg {
    width: 17px;
    height: 17px;
    display: block;
}


/* Build 44.2 structural corrections found during narrated visual review. */
.metric-grid { align-items: stretch; }
.metric-card { height: 100%; }
.metric-card .metric-icon { border: 1px solid color-mix(in srgb,var(--tone) 28%,transparent); }

.account-form .rule-builder-grid {
    grid-template-columns: 1fr ;
    gap: 12px ;
}
.account-form .rule-builder-grid > * { min-width: 0; }

.build44-transactions .coach-workspace {
    grid-template-columns: minmax(0,1fr) ;
    gap: 22px ;
    width: 100%;
}
.build44-transactions .transaction-card-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 22px;
    margin-bottom: 2px;
}
.build44-transactions .transaction-card-heading > div { min-width: 0; }
.build44-transactions .transaction-card-heading p {
    margin: 8px 0 0;
    max-width: 76ch;
    color: var(--text-secondary);
    line-height: 1.55;
}
.coach-summary-grid,
.rules-summary-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 14px;
    align-items: stretch;
}
.coach-summary-grid > article,
.rules-summary-grid > article {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 0;
    min-height: 118px;
    padding: 18px 20px;
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    background: linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.02));
    box-shadow: var(--shadow-card);
}
.coach-summary-grid span,
.rules-summary-grid span {
    color: var(--text-secondary);
    font-size: .78rem;
    font-weight: 750;
    letter-spacing: .035em;
    line-height: 1.35;
}
.coach-summary-grid strong,
.rules-summary-grid strong {
    display: block;
    margin-top: 12px;
    color: var(--text-primary);
    font-family: var(--font-display);
    font-size: clamp(1.7rem,2.4vw,2.35rem);
    line-height: 1;
}
.coach-review-card { width: 100%; max-width: none; }
.coach-review-card > header > div { min-width: 0; }
.coach-review-card > header p { margin: 5px 0 0; color: var(--text-secondary); line-height: 1.45; }
.coach-decision-form { display: grid; gap: 20px; }
.coach-decision-form .taxonomy-pair { gap: 14px; }
.coach-actions { display: flex; justify-content: flex-end; gap: 10px; padding-top: 2px; }
.coach-review-card > form:last-child { margin-top: 12px; }

.transaction-taxonomy-badges > span:last-child {
    display: grid;
    gap: 3px;
    min-width: 0;
}
.category-icon-token {
    flex: 0 0 auto;
    font-size: 0 ;
}
.category-icon-token .category-icon-svg {
    width: 17px;
    height: 17px;
}
.transaction-flags { align-content: center; }

/* Budget copy must remain inside its glass surface at every supported width. */
.budget-progress-card :is(h2,h3,p,span,strong,small),
.automatic-budget-hero :is(h2,h3,p,span,strong,small),
.budget-analysis-grid :is(h2,h3,p,span,strong,small) {
    max-width: 100%;
    overflow-wrap: anywhere;
}
.budget-progress-card { overflow: hidden; }
.budget-progress-card > * { min-width: 0; }

/* Consistent chart presentation and captions. */
.analytics-card,
.chart-card,
.budget-chart-card,
.dashboard-widget {
    border-color: var(--border-soft);
}
:is(.analytics-card,.chart-card,.budget-chart-card) :is(h2,h3) {
    line-height: 1.2;
    text-wrap: balance;
}

@media (max-width: 900px) {
    .coach-summary-grid,
    .rules-summary-grid { grid-template-columns: 1fr; }
    .build44-transactions .transaction-card-heading { flex-direction: column; }
    .build44-transactions .transaction-card-heading form,
    .build44-transactions .transaction-card-heading .action-button { width: 100%; }
}

/* Final-audit Accounts/Transactions presentation repairs. */
.transaction-history-section { scroll-margin-top: 20px; }
.transaction-history-section:focus { outline: none; }
.transaction-history-header{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(0,1.3fr);gap:22px;align-items:end;margin-bottom:18px;padding:20px;border:1px solid var(--border-soft);border-radius:18px;background:linear-gradient(135deg,rgba(155,123,255,.10),rgba(87,215,232,.045) 52%,rgba(255,255,255,.02));box-shadow:var(--shadow-card);backdrop-filter:blur(20px)}
.transaction-history-header h2{margin:5px 0 0}.transaction-history-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.transaction-history-facts>div{display:grid;gap:3px;padding:11px 13px;border:1px solid var(--border-soft);border-radius:12px;background:rgba(255,255,255,.025)}.transaction-history-facts span,.transaction-history-facts small{color:var(--text-tertiary);font-size:.68rem}.transaction-history-facts strong{font-size:1rem;font-variant-numeric:tabular-nums}.analysis-job-heading,.analysis-stage-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.analysis-stage-row{padding-top:7px;border-top:1px solid var(--border-soft);color:var(--text-secondary);font-size:.7rem}.analysis-stage-row strong{margin-right:auto;color:var(--text-primary)}
.csv-file-picker { display: flex; align-items: center; gap: 11px; min-width: 0; padding: 10px; border: 1px solid var(--border-soft); border-radius: 12px; background: rgba(255,255,255,.025); }
.csv-file-button { flex: 0 0 auto; margin: 0 ; cursor: pointer; }
.csv-file-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-muted); font-size: .78rem; }
.csv-file-picker.has-file .csv-file-name { color: var(--text-primary); }

.recurring-series-list { display: grid; gap: 12px; padding: 18px; }
.recurring-series-card { min-width: 0; padding: 18px; border: 1px solid var(--border-soft); border-radius: 14px; background: rgba(255,255,255,.025); }
.recurring-series-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.recurring-series-heading > div { min-width: 0; }
.recurring-series-heading h3 { margin: 4px 0; overflow-wrap: anywhere; }
.recurring-series-heading small { color: var(--text-muted); }
.recurring-series-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; margin: 16px 0; }
.recurring-series-facts > div { min-width: 0; padding: 11px 12px; border: 1px solid rgba(255,255,255,.055); border-radius: 10px; background: rgba(4,7,13,.25); }
.recurring-series-facts dt { color: var(--text-muted); font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.recurring-series-facts dd { margin: 5px 0 0; overflow-wrap: anywhere; color: var(--text-primary); font-size: .78rem; }
.recurring-series-editor { border-top: 1px solid var(--border-soft); padding-top: 12px; }
.recurring-series-editor > summary { width: max-content; max-width: 100%; cursor: pointer; color: var(--aurora-cyan); font-size: .78rem; font-weight: 700; }
.recurring-series-editor .series-form { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)) auto; gap: 10px; align-items: end; margin-top: 12px; }
.recurring-series-editor .series-form .form-field { min-width: 0; }
.recurring-series-editor .series-form :is(input,select) { width: 100%; }
.recurring-override-list { border-top: 1px solid var(--border-soft); }

.migration-review-context { display: grid; gap: 12px; min-width: 0; }
.migration-transaction-link { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-width: 0; padding: 14px; border: 1px solid rgba(87,215,232,.18); border-radius: 12px; background: rgba(87,215,232,.055); color: var(--text-primary); text-decoration: none; }
.migration-transaction-link:hover { border-color: rgba(87,215,232,.42); background: rgba(87,215,232,.09); }
.migration-transaction-link > span { display: grid; min-width: 0; gap: 3px; }
.migration-transaction-link > span:last-child { justify-items: end; flex: 0 0 auto; }
.migration-transaction-link :is(strong,small) { overflow-wrap: anywhere; }
.migration-transaction-link small { color: var(--text-muted); }
.migration-review-evidence { display: grid; gap: 5px; color: var(--text-secondary); font-size: .78rem; }
.migration-transaction-missing { display: grid; gap: 4px; padding: 14px; border: 1px solid rgba(244,185,94,.24); border-radius: 12px; color: var(--warning); }
.migration-transaction-missing small { color: var(--text-muted); }

@media (max-width: 1100px) {
    .recurring-series-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .recurring-series-editor .series-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
    .transaction-history-header { grid-template-columns: 1fr; }
    .transaction-history-facts { grid-template-columns: 1fr; }
    .csv-file-picker,.migration-transaction-link,.recurring-series-heading { align-items: stretch; flex-direction: column; }
    .csv-file-button { width: 100%; text-align: center; }
    .recurring-series-facts,.recurring-series-editor .series-form { grid-template-columns: 1fr; }
    .migration-transaction-link > span:last-child { justify-items: start; }
}

/* Long automatic-plan explanations must shrink inside their grid track. */
.budget-recommendation-row > div,
.unbudgeted-spending-row > div {
    flex: 1 1 auto ;
    width: auto ;
    min-width: 0 ;
    max-width: 100%;
}
.budget-recommendation-row strong,
.budget-recommendation-row span,
.unbudgeted-spending-row strong,
.unbudgeted-spending-row span {
    width: auto ;
    min-width: 0;
    white-space: normal ;
    overflow-wrap: anywhere ;
}
body[data-page] .summary-card { overflow: hidden; }

/* Transaction taxonomy controls are a deliberate four-column group, not an implicit one-column grid item. */
.transaction-search-field { grid-column: span 4; }
.transaction-filter-form > .taxonomy-pair {
    grid-column: span 4;
    min-width: 0;
}
.transaction-filter-form > .form-field { grid-column: span 2; }
.transaction-filter-form > .form-field:nth-of-type(n+5) { grid-column: span 2; }
.transaction-filter-actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
}

/* The compact automatic-budget settings card is a vertical form. */
.budget-settings-form {
    grid-template-columns: minmax(0,1fr) ;
    align-items: stretch ;
}
.budget-settings-form .notification-toggle-card {
    width: 100%;
    min-width: 0;
}
.budget-settings-form .notification-toggle-card span {
    min-width: 0;
    flex: 1 1 auto;
}
.budget-settings-form .notification-toggle-card :is(strong,small) {
    display: block;
    white-space: normal;
    overflow-wrap: break-word;
}

/* module: build44-transactions.css */
.build44-transactions{max-width:1540px}.transaction-page-header{align-items:flex-end}.workspace-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 24px;padding:7px;border:1px solid var(--border-subtle);border-radius:16px;background:rgba(12,15,22,.62);backdrop-filter:blur(18px)}.workspace-tabs a{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:11px;color:var(--text-secondary);text-decoration:none;font-weight:700}.workspace-tabs a span{min-width:22px;padding:2px 7px;border-radius:999px;background:rgba(255,255,255,.08);font-size:.72rem;text-align:center}.workspace-tabs a.active{color:var(--text-primary);background:linear-gradient(115deg,rgba(98,230,167,.14),rgba(87,215,232,.10));border:1px solid rgba(98,230,167,.18)}.build44-entry-grid{grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr)}.taxonomy-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checkbox-row{display:flex;align-items:center;gap:9px;color:var(--text-secondary);font-size:.86rem;margin:8px 0}.checkbox-row input{width:auto}.analysis-job-summary{display:grid;gap:5px;margin-top:14px;padding:12px;border-radius:12px;background:rgba(255,255,255,.035)}.analysis-job-summary small{color:var(--text-muted)}.transaction-history-section{margin-top:26px}.date-group{margin:18px 0 28px}.date-group>header{display:flex;align-items:flex-end;justify-content:space-between;padding:0 4px 10px;border-bottom:1px solid var(--border-subtle)}.date-group>header h3{margin:0}.date-group>header span,.date-group>header small{color:var(--text-muted)}.transaction-row{border-bottom:1px solid rgba(255,255,255,.06);background:rgba(12,15,22,.50)}.transaction-row:first-of-type{border-radius:15px 15px 0 0}.transaction-row:last-of-type{border-radius:0 0 15px 15px}.transaction-row-main{display:grid;grid-template-columns:44px minmax(210px,1.5fr) minmax(170px,.8fr) minmax(150px,.7fr) auto minmax(92px,auto);gap:14px;align-items:center;padding:15px}.merchant-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;font-weight:800;color:#fff;background:linear-gradient(135deg,rgba(87,215,232,.55),rgba(155,123,255,.55));box-shadow:inset 0 1px rgba(255,255,255,.22)}.merchant-mark img{width:100%;height:100%;object-fit:contain;border-radius:10px;background:#fff}.merchant-tone-0{background:linear-gradient(135deg,#3157d5,#57d7e8)}.merchant-tone-1{background:linear-gradient(135deg,#62e6a7,#3157d5)}.merchant-tone-2{background:linear-gradient(135deg,#9b7bff,#57d7e8)}.merchant-tone-3{background:linear-gradient(135deg,#f4b95e,#9b7bff)}.merchant-tone-4{background:linear-gradient(135deg,#56d89b,#57d7e8)}.merchant-tone-5{background:linear-gradient(135deg,#ff707a,#9b7bff)}.merchant-tone-6{background:linear-gradient(135deg,#6ea8ff,#62e6a7)}.merchant-tone-7{background:linear-gradient(135deg,#737a8c,#3157d5)}.transaction-identity,.transaction-taxonomy-badges{display:grid;gap:3px}.transaction-identity span,.transaction-identity small,.transaction-taxonomy-badges small{color:var(--text-muted)}.transaction-taxonomy-badges{grid-template-columns:34px 1fr;align-items:center}.category-icon-token{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:color-mix(in srgb,var(--category-color) 18%,transparent);color:var(--category-color);font-size:.64rem;font-weight:800;text-transform:uppercase;overflow:hidden}.transaction-flags{display:flex;gap:6px;flex-wrap:wrap}.status-pill{padding:4px 7px;border:1px solid rgba(255,255,255,.10);border-radius:999px;color:var(--text-muted);font-size:.66rem;text-transform:capitalize}.status-info{color:var(--aurora-cyan);border-color:rgba(87,215,232,.25)}.status-warning{color:var(--warning);border-color:rgba(244,185,94,.26)}.transaction-amount{font-variant-numeric:tabular-nums;text-align:right}.transaction-income{color:var(--positive)}.transaction-expense{color:#ff9ca4}.inline-editor{position:relative}.inline-editor summary{cursor:pointer;color:var(--aurora-cyan);font-size:.78rem;font-weight:700;list-style:none}.inline-editor[open]{grid-column:1/-1;margin-top:8px}.inline-edit-form{display:grid;gap:12px;margin-top:12px;padding:16px;border-radius:14px;border:1px solid var(--border-subtle);background:rgba(255,255,255,.025)}.inline-grid,.manager-grid{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:10px}.inline-actions{display:flex;justify-content:flex-end}.text-danger-button,.manager-actions button,.series-form button,.merchant-edit-form button,.alias-form button{border:1px solid var(--border-subtle);background:rgba(255,255,255,.045);color:var(--text-secondary);padding:7px 10px;border-radius:8px;cursor:pointer}.text-danger-button,.manager-actions .danger,.manager-list .danger{color:#ff9ca4}.transaction-row-compact .transaction-row-main{padding:9px 14px;grid-template-columns:34px minmax(180px,1.5fr) minmax(160px,.8fr) auto auto}.transaction-row-compact .merchant-mark{width:30px;height:30px;border-radius:9px}.transaction-row-compact .transaction-flags{display:none}.coach-workspace,.rules-manager,.migration-review-workspace{display:grid;gap:18px}.coach-review-card,.manager-panel,.migration-review-row{border:1px solid var(--border-subtle);border-radius:16px;background:rgba(12,15,22,.62);box-shadow:0 16px 40px rgba(0,0,0,.12)}.coach-review-card{padding:20px}.coach-review-card>header{display:flex;align-items:center;gap:13px}.coach-review-card>header div{flex:1}.coach-review-card h3{margin:0}.coach-current-answer{display:grid;gap:3px;margin:18px 0;padding:14px;border-radius:12px;background:rgba(87,215,232,.06)}.coach-scope-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.confidence-meter{color:var(--aurora-green);font-weight:800}.manager-panel>summary{display:flex;justify-content:space-between;padding:17px 19px;cursor:pointer;font-weight:800}.manager-panel>summary span{color:var(--text-muted);font-size:.78rem}.manager-panel[open]>summary{border-bottom:1px solid var(--border-subtle)}.manager-form{display:grid;gap:12px;padding:18px}.manager-list{display:grid}.manager-list>article{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 18px;border-top:1px solid rgba(255,255,255,.055)}.manager-list>article:first-child{border-top:0}.manager-list>article>div{display:grid;gap:4px}.manager-list span,.manager-list small{color:var(--text-muted)}.manager-actions{display:flex;gap:6px;align-items:center}.manager-actions form{display:flex;gap:5px}.manager-actions input{width:80px}.merge-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap;padding:16px 18px;border-top:1px solid var(--border-subtle)}.series-form,.merchant-edit-form{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(4,minmax(110px,.55fr)) auto;gap:8px;align-items:center;width:100%}.merchant-edit-form{grid-template-columns:minmax(180px,1.3fr) repeat(5,minmax(110px,.6fr)) auto}.alias-form{display:flex;gap:6px}.taxonomy-manager-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px}.taxonomy-manager-grid article{padding:14px;border:1px solid var(--border-subtle);border-radius:12px}.taxonomy-manager-grid article>div{display:flex;justify-content:space-between;gap:8px;padding:6px 0}.taxonomy-manager-grid small{display:block;color:var(--text-muted);font-size:.65rem}.migration-review-row{padding:18px}.migration-review-row form{min-width:min(100%,520px)}.empty-manager-row{padding:16px;color:var(--text-muted)}
html[data-theme='pearl'] .workspace-tabs,html[data-theme='pearl'] .transaction-row,html[data-theme='pearl'] .coach-review-card,html[data-theme='pearl'] .manager-panel,html[data-theme='pearl'] .migration-review-row{background:rgba(255,255,255,.78)}html[data-theme='pearl'] .merchant-mark{box-shadow:inset 0 1px #fff,0 4px 12px rgba(16,24,40,.12)}html[data-theme='pearl'] .category-icon-token{filter:saturate(.9) contrast(1.15)}
@media(max-width:1100px){.transaction-row-main{grid-template-columns:40px 1fr auto}.transaction-taxonomy-badges,.transaction-flags{grid-column:2}.transaction-amount{grid-column:3;grid-row:1}.inline-editor{grid-column:3}.series-form,.merchant-edit-form{grid-template-columns:1fr 1fr}.inline-grid,.manager-grid,.taxonomy-manager-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.taxonomy-pair,.coach-scope-grid,.inline-grid,.manager-grid,.taxonomy-manager-grid{grid-template-columns:1fr}.build44-entry-grid{grid-template-columns:1fr}.transaction-row-main{grid-template-columns:34px 1fr auto;padding:12px}.transaction-taxonomy-badges,.transaction-flags{grid-column:2/4}.inline-editor{grid-column:2/4}.series-form,.merchant-edit-form{grid-template-columns:1fr}.manager-list>article{align-items:flex-start;flex-direction:column}.workspace-tabs{overflow-x:auto;flex-wrap:nowrap}.workspace-tabs a{white-space:nowrap}}

.transaction-table-wrap { overflow-x: auto; border: 1px solid var(--glass-border, rgba(255,255,255,.1)); border-radius: 18px; }
.transaction-table { width: 100%; border-collapse: collapse; min-width: 980px; }
.transaction-table th, .transaction-table td { padding: .78rem .7rem; border-bottom: 1px solid rgba(255,255,255,.07); text-align: left; vertical-align: top; }
.transaction-table th { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--text-muted, #737A8C); }
.transaction-table td small { display: block; color: var(--text-muted, #737A8C); margin-top: .2rem; }
.transaction-table .amount-column { text-align: right; white-space: nowrap; }
.table-inline-row > td { padding: 0; background: rgba(255,255,255,.015); }
.table-inline-row .transaction-row { border: 0; border-radius: 0; margin: 0; }
.table-edit-link { white-space: nowrap; }
.rule-editor { width: 100%; margin-top: .75rem; }
.rule-editor > summary { cursor: pointer; color: var(--text-secondary, #A7ADBD); }

/* module: build45-statements.css */
.statement-workspace{display:flex;flex-direction:column;gap:24px}.statement-page-header{align-items:flex-start}.eyebrow{display:block;color:var(--text-muted);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:7px}.statement-account-selector{padding:18px 22px}.statement-selector-form{display:grid;grid-template-columns:minmax(260px,1fr) repeat(2,minmax(150px,.35fr));gap:18px;align-items:end}.statement-selector-summary{display:flex;flex-direction:column;gap:5px;min-width:0}.statement-selector-summary span,.statement-result-hero span,.statement-fact-grid span,.statement-additions span,.apr-bucket-row span{color:var(--text-muted);font-size:.78rem}.statement-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px;align-items:start}.statement-main-column,.statement-sidebar{display:flex;flex-direction:column;gap:22px;min-width:0}.glass-card{min-width:0}.section-heading-row{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.section-heading-row h2{margin:0}.section-heading-row p{max-width:760px}.statement-status{display:inline-flex;border:1px solid var(--border-subtle);border-radius:999px;padding:6px 10px;font-size:.76rem;font-weight:700}.statement-status-exact{color:var(--positive)}.statement-status-estimated{color:var(--warning)}.statement-result-hero{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.statement-result-hero>div,.statement-fact-grid>div,.formula-branch,.account-bucket-list>div{background:rgba(255,255,255,.035);border:1px solid var(--border-subtle);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;min-width:0}.statement-result-hero strong{font-size:1.45rem}.formula-branch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.formula-branch-selected{border-color:rgba(98,230,167,.5);box-shadow:inset 0 0 0 1px rgba(98,230,167,.12)}.formula-branch small{color:var(--positive)}.statement-additions{border-top:1px solid var(--border-subtle);padding-top:15px}.statement-additions h3{font-size:.9rem;margin:0 0 9px}.statement-additions>div{display:flex;justify-content:space-between;gap:15px;padding:5px 0}.statement-warning{padding:12px 14px;border:1px solid rgba(244,185,94,.35);border-radius:10px;background:rgba(244,185,94,.08);color:var(--warning)}.statement-validation-actions{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-top:18px}.toggle-row{display:flex;align-items:center;gap:9px}.statement-fact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.statement-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.statement-form-grid .form-actions,.statement-source-field{grid-column:span 2}.compact-statement-form{margin-top:18px;padding-top:18px;border-top:1px solid var(--border-subtle)}.apr-bucket-list{display:flex;flex-direction:column;gap:10px}.apr-bucket-row{display:grid;grid-template-columns:1.2fr repeat(3,1fr) auto;gap:12px;align-items:center;border:1px solid var(--border-subtle);border-radius:12px;padding:12px}.apr-bucket-row>div{display:flex;flex-direction:column;gap:4px;min-width:0}.statement-history-list{display:flex;flex-direction:column;gap:8px}.statement-history-list a{display:grid;grid-template-columns:1fr auto;gap:3px 10px;padding:11px;border:1px solid var(--border-subtle);border-radius:10px;text-decoration:none;color:inherit}.statement-history-list a small{grid-column:1/-1;color:var(--text-muted)}.statement-history-list a.active{border-color:rgba(87,215,232,.5);background:rgba(87,215,232,.07)}.account-bucket-list{display:flex;flex-direction:column;gap:9px}.account-bucket-list>div small{color:var(--text-muted)}.bucket-reconciliation{margin:12px 0;padding:12px;border:1px solid currentColor;border-radius:10px;display:flex;flex-direction:column;gap:3px}.sidebar-bucket-form{display:flex;flex-direction:column;gap:11px;margin-top:15px}.status-banner{border-radius:10px;padding:12px 15px}.status-banner-success{background:rgba(86,216,155,.09);border:1px solid rgba(86,216,155,.3)}.status-banner-error{background:rgba(255,112,122,.09);border:1px solid rgba(255,112,122,.3)}.danger{color:var(--danger)}.positive{color:var(--positive)}
@media(max-width:1100px){.statement-layout{grid-template-columns:1fr}.statement-sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.statement-form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.statement-fact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.statement-selector-form,.statement-result-hero,.formula-branch-grid,.statement-sidebar{grid-template-columns:1fr}.statement-form-grid,.statement-fact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.statement-form-grid .form-actions,.statement-source-field{grid-column:1/-1}.apr-bucket-row{grid-template-columns:1fr 1fr}.statement-validation-actions{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.statement-form-grid,.statement-fact-grid{grid-template-columns:1fr}.apr-bucket-row{grid-template-columns:1fr}}

.build45-statement-summary{margin-top:22px}.statement-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.statement-summary-grid>div{display:flex;flex-direction:column;gap:5px;padding:12px;border:1px solid var(--border-subtle);border-radius:10px;background:rgba(255,255,255,.03)}.statement-summary-grid span{color:var(--text-muted);font-size:.78rem}
@media(max-width:760px){.statement-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* module: build44_2.css */
/* Build 46 debt-detail workspace */
.build46-workspace{display:grid;gap:24px}.build46-workspace .section-card{display:grid;gap:20px}.build46-promotion-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.build46-promotion-form .span-2{grid-column:1/-1}.promotion-card{display:grid;gap:16px}.callout-strip{display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.035);color:var(--text-secondary)}.metric-stack{display:grid;text-align:right}.metric-stack strong{font-size:1.35rem}.metric-stack small{color:var(--text-muted)}.stacked-card-list{display:grid;gap:14px}.nested-card{padding:18px;border:1px solid var(--glass-border);border-radius:16px;background:rgba(12,15,22,.58)}.inline-action-form,.inline-filter-row{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.inline-action-form input,.inline-action-form select{min-width:220px}.status-balanced{color:var(--positive)}.status-review{color:var(--warning)}
@media(max-width:760px){.build46-promotion-form{grid-template-columns:1fr}.build46-promotion-form .span-2{grid-column:auto}.metric-stack{text-align:left}}

/* Build 46 debt promotion and reconciliation workspace */
.build46-workspace .promotion-history { margin-top: 1rem; }
.build46-workspace .promotion-history summary { cursor: pointer; font-weight: 700; color: var(--text-secondary); }
.build46-workspace .compact-table code { white-space: normal; overflow-wrap: anywhere; }
.build46-allocation-form { margin-bottom: 1.25rem; }
.allocation-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 0.9rem; }
.allocation-grid label { min-width: 0; }
.build46-workspace .status-banner { margin-bottom: 1rem; padding: 0.85rem 1rem; border-radius: 12px; border: 1px solid var(--glass-border); }
.build46-workspace .status-success { background: rgba(86, 216, 155, 0.10); }
.build46-workspace .status-error { background: rgba(255, 112, 122, 0.10); }
@media (max-width: 720px) { .allocation-grid { grid-template-columns: 1fr; } }

/* module: transaction-coach.css */
.coach-page{max-width:1480px}.coach-header{align-items:flex-end}.coach-header .action-button svg{width:18px}.coach-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.coach-stat{padding:20px;min-height:126px}.coach-stat>span,.coach-facts dt{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:var(--text-muted);font-weight:800}.coach-stat strong{display:block;font-family:Manrope,Inter,sans-serif;font-size:32px;margin:10px 0 4px}.coach-stat small{color:var(--text-secondary)}.coach-workspace{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(520px,1.28fr);gap:20px;align-items:start}.coach-transaction,.coach-questions{padding:26px}.coach-card-topline{display:flex;justify-content:space-between;gap:12px;align-items:center}.coach-count,.confidence-pill{font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:800}.coach-count{color:var(--aurora-cyan)}.confidence-pill{padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.06);color:var(--text-secondary)}.confidence-pill.low{color:var(--danger);background:rgba(255,112,122,.12)}.confidence-pill.medium{color:var(--warning);background:rgba(244,185,94,.12)}.confidence-pill.high{color:var(--positive);background:rgba(86,216,155,.12)}.coach-merchant-mark{display:grid;place-items:center;width:66px;height:66px;border-radius:20px;margin:34px 0 18px;background:linear-gradient(145deg,rgba(98,230,167,.22),rgba(155,123,255,.2));border:1px solid rgba(255,255,255,.12);font:800 25px Manrope;color:var(--text-primary);box-shadow:0 18px 50px rgba(49,87,213,.15)}.coach-transaction h2{font-size:27px;margin:0 0 7px}.coach-description{color:var(--text-secondary);line-height:1.55}.coach-amount{font:800 42px Manrope;margin:26px 0}.coach-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.coach-facts>div{padding:13px;border-radius:12px;background:rgba(4,7,13,.38);border:1px solid rgba(255,255,255,.06)}.coach-facts dd{margin:6px 0 0;font-weight:700;color:var(--text-primary)}.coach-question{display:flex;gap:14px;align-items:flex-start;margin-bottom:17px}.coach-question.second{margin-top:30px;padding-top:26px;border-top:1px solid var(--glass-border)}.coach-question.compact{margin-top:27px;margin-bottom:11px}.question-number{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:12px;background:linear-gradient(145deg,rgba(87,215,232,.16),rgba(155,123,255,.17));color:var(--aurora-cyan);font:800 11px Manrope}.coach-question h2{margin:0;font-size:18px}.coach-question p{margin:6px 0 0;color:var(--text-secondary);line-height:1.5}.category-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.category-choice input,.recurring-choice-row input{position:absolute;opacity:0;pointer-events:none}.category-choice span,.recurring-choice-row span{display:flex;align-items:center;justify-content:center;min-height:43px;padding:9px 11px;border-radius:11px;border:1px solid var(--glass-border);background:rgba(5,8,15,.34);font-size:12px;font-weight:700;color:var(--text-secondary);cursor:pointer;transition:.18s ease}.category-choice input:checked+span,.recurring-choice-row input:checked+span{border-color:rgba(98,230,167,.55);background:linear-gradient(145deg,rgba(98,230,167,.16),rgba(87,215,232,.08));color:var(--text-primary);box-shadow:0 0 26px rgba(98,230,167,.08)}.recurring-choice-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.recurring-choice-row svg{width:16px;margin-right:6px}.coach-scope{width:100%}.coach-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.coach-complete{text-align:center;padding:64px 30px;margin-bottom:22px}.completion-icon{width:70px;height:70px;display:grid;place-items:center;margin:0 auto 18px;border-radius:23px;background:linear-gradient(145deg,rgba(98,230,167,.18),rgba(155,123,255,.2));color:var(--aurora-green)}.completion-icon svg{width:34px}.coach-complete h2{font-size:28px;margin:0}.coach-complete p{max-width:600px;margin:10px auto 23px;color:var(--text-secondary)}.coach-rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.rule-panel{padding:22px}.rule-list{display:grid;gap:8px}.rule-list>div{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:11px 13px;border-radius:10px;background:rgba(5,8,15,.34);border:1px solid rgba(255,255,255,.05)}.rule-list span{color:var(--text-secondary);font-size:12px}.rule-list strong{font-size:11px;color:var(--aurora-green)}.rule-status.rejected{color:var(--danger)}.muted-copy{color:var(--text-muted)}[data-theme="pearl"] .coach-facts>div,[data-theme="pearl"] .category-choice span,[data-theme="pearl"] .recurring-choice-row span,[data-theme="pearl"] .rule-list>div{background:rgba(255,255,255,.72)}@media(max-width:1100px){.coach-workspace{grid-template-columns:1fr}.coach-transaction{display:grid;grid-template-columns:auto 1fr;column-gap:20px}.coach-card-topline{grid-column:1/-1}.coach-merchant-mark{grid-row:2/5}.coach-amount{grid-column:1/-1}.coach-facts{grid-column:1/-1}}@media(max-width:760px){.coach-summary-grid,.coach-rules-grid{grid-template-columns:1fr}.category-choice-grid{grid-template-columns:1fr 1fr}.recurring-choice-row{grid-template-columns:1fr}.coach-transaction{display:block}.coach-facts{grid-template-columns:1fr}.coach-actions>*{width:100%}}@media(max-width:470px){.category-choice-grid{grid-template-columns:1fr}.coach-card-topline{align-items:flex-start;flex-direction:column}}

/* module: frontend-experience.css */
/* Build 50-53 shared interface states and page identities. */
:root{
    --page-accent:var(--aurora-green);
    --page-accent-soft:rgba(98,230,167,.10);
    --money-size-hero:clamp(2.5rem,4.4vw,3.5rem);
    --money-size-primary:1.75rem;
    --money-size-secondary:1rem;
    --money-size-body:.875rem;
    --money-size-compact:.75rem;
}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.money-value{display:inline-flex;align-items:baseline;white-space:nowrap;font-family:var(--font-ui);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"kern" 1}span.money-value{color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-transform:none}.money-value .money-symbol{position:relative;top:.08em;align-self:flex-start;margin-right:.1em;color:var(--text-muted);font-size:.45em;font-weight:650;line-height:1}.money-value .money-sign{margin-right:.03em;color:var(--text-secondary);font-size:.72em;line-height:1}.money-value .money-digits{margin-right:0;color:inherit;font-size:1em;line-height:inherit;letter-spacing:inherit;vertical-align:baseline}.money-value[data-sensitive]{display:inline-flex}

/* One liquid-glass surface contract for the application's primary card families. */
body[data-page] :is(.glass-card,.summary-card,.transaction-summary-card,.analytics-card,.glass-stat,.analysis-period-card,.settings-card,.dashboard-widget,.institution-card,.institution-account-group,.account-list-item,.account-match-card,.sync-health-card,.form-card,.transaction-entry-card,.transaction-import-card,.transaction-category-card,.transaction-filter-card,.coach-review-card,.coach-stat,.rules-stat,.manager-panel,.debt-plan-card,.debt-summary-card,.debt-section-disclosure,.strategy-card,.chart-card,.budget-progress-card,.notification-card,.notification-settings-card,.notification-controls-card,.production-readiness-card,.insight-card,.decision-state-card,.decision-workspace,.decision-explanation-card,.decision-preference-card,.decision-history){
    border-color:rgba(255,255,255,.105);
    background:radial-gradient(circle at 8% 0%,rgba(98,230,167,.045),transparent 38%),radial-gradient(circle at 100% 100%,rgba(155,123,255,.055),transparent 42%),linear-gradient(145deg,rgba(31,38,55,.64),rgba(11,15,24,.5) 52%,rgba(6,9,15,.4));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.075),0 18px 46px rgba(0,0,0,.2),0 0 0 1px rgba(87,215,232,.012);
    backdrop-filter:blur(24px) saturate(132%);
    -webkit-backdrop-filter:blur(24px) saturate(132%);
}

/* Every workspace now enters through the same Arcfolio glass header.  This
   keeps page identity, controls, and accent hierarchy consistent without
   requiring each router template to grow a separate visual implementation. */
body[data-page] .page-header:not(.auth-card){
    position:relative;
    isolation:isolate;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.105);
    border-radius:22px;
    padding:clamp(22px,3vw,34px);
    background:radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--page-accent) 10%,transparent),transparent 42%),linear-gradient(145deg,rgba(31,38,55,.66),rgba(7,11,19,.52));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 22px 54px rgba(0,0,0,.22);
    backdrop-filter:blur(26px) saturate(135%);
    -webkit-backdrop-filter:blur(26px) saturate(135%);
}
body[data-page] .page-header:not(.auth-card)::after{content:"";position:absolute;z-index:-1;right:-80px;bottom:-100px;width:260px;height:180px;border-radius:50%;background:var(--page-accent);filter:blur(54px);opacity:.10;pointer-events:none}
html[data-theme="pearl"] body[data-page] .page-header:not(.auth-card){border-color:rgba(22,37,64,.12);background:radial-gradient(circle at 8% 0%,color-mix(in srgb,var(--page-accent) 10%,transparent),transparent 42%),linear-gradient(145deg,rgba(255,255,255,.88),rgba(239,244,252,.66));box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 22px 50px rgba(44,57,83,.12)}
html[data-theme="pearl"] body[data-page] :is(.glass-card,.summary-card,.transaction-summary-card,.analytics-card,.glass-stat,.analysis-period-card,.settings-card,.dashboard-widget,.institution-card,.institution-account-group,.account-list-item,.account-match-card,.sync-health-card,.form-card,.transaction-entry-card,.transaction-import-card,.transaction-category-card,.transaction-filter-card,.coach-review-card,.coach-stat,.rules-stat,.manager-panel,.debt-plan-card,.debt-summary-card,.debt-section-disclosure,.strategy-card,.chart-card,.budget-progress-card,.notification-card,.notification-settings-card,.notification-controls-card,.production-readiness-card,.insight-card,.decision-state-card,.decision-workspace,.decision-explanation-card,.decision-preference-card,.decision-history){
    border-color:rgba(22,37,64,.12);
    background:radial-gradient(circle at 8% 0%,rgba(98,230,167,.085),transparent 38%),radial-gradient(circle at 100% 100%,rgba(155,123,255,.08),transparent 42%),linear-gradient(145deg,rgba(255,255,255,.86),rgba(247,250,255,.7) 54%,rgba(239,244,252,.62));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 18px 44px rgba(44,57,83,.11),0 0 0 1px rgba(87,215,232,.018);
}

/* Toggle labels are sentence-case controls, not uppercase field captions. */
label.setting-toggle{color:inherit;font-size:inherit;font-weight:inherit;letter-spacing:normal;text-transform:none}
label.setting-toggle strong{color:var(--text-primary);font-size:.88rem;font-weight:700;letter-spacing:normal;text-transform:none}
label.setting-toggle small{color:var(--text-secondary);font-size:.75rem;font-weight:500;letter-spacing:normal;line-height:1.45;text-transform:none}

/* Keep horizontally scrollable navigation polished without native scrollbar chrome. */
:is(.settings-nav,.native-tabs,.workspace-tabs,.module-tabs,.section-tabs){scrollbar-width:none}
:is(.settings-nav,.native-tabs,.workspace-tabs,.module-tabs,.section-tabs)::-webkit-scrollbar{display:none}
body[data-page="accounts"]{--page-accent:var(--aurora-cyan);--page-accent-soft:rgba(87,215,232,.10)}
body[data-page="transactions"]{--page-accent:var(--aurora-violet);--page-accent-soft:rgba(155,123,255,.10)}
body[data-page="intelligence"]{--page-accent:var(--info);--page-accent-soft:rgba(110,168,255,.10)}
body[data-page="budgets"]{--page-accent:var(--positive);--page-accent-soft:rgba(86,216,155,.10)}
body[data-page="debt"]{--page-accent:var(--warning);--page-accent-soft:rgba(244,185,94,.10)}
body[data-page="settings"]{--page-accent:var(--aurora-violet);--page-accent-soft:rgba(155,123,255,.10)}
.auth-shell{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:clamp(24px,5vw,64px)}
.auth-card{width:min(100%,480px);box-sizing:border-box;padding:clamp(26px,4vw,38px);border:1px solid var(--border-strong);border-radius:24px;background:linear-gradient(150deg,var(--surface-glass-strong),var(--surface-glass));box-shadow:0 28px 90px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(28px)}
.auth-card-header{display:grid;gap:30px;margin-bottom:20px}.auth-brand{display:flex;align-items:center;gap:12px;width:max-content;color:var(--text-primary);text-decoration:none}.auth-brand .brand-mark{flex:0 0 auto}.auth-heading{display:grid;gap:7px}.auth-heading .eyebrow,.auth-heading h1{margin:0}.auth-heading h1{font-size:clamp(2rem,5vw,2.7rem);letter-spacing:-.045em}.auth-intro,.auth-supporting-copy{margin:0;color:var(--text-secondary);font-size:.88rem;line-height:1.65}.auth-supporting-copy{font-size:.78rem}.auth-form{display:grid;gap:9px;margin-top:24px}.auth-form label{margin-top:7px;color:var(--text-secondary);font-size:.72rem;font-weight:750;letter-spacing:.045em;text-transform:uppercase}.auth-form input{width:100%;box-sizing:border-box;min-height:46px;padding:11px 13px;border:1px solid var(--border-strong);border-radius:11px;background:rgba(4,8,14,.56);color:var(--text-primary);font:500 .92rem var(--font-body);outline:none}.auth-form input:focus-visible{border-color:var(--aurora-cyan);box-shadow:0 0 0 3px rgba(87,215,232,.14)}.auth-submit{width:100%;min-height:46px;margin-top:13px;justify-content:center}.auth-recovery-links{display:flex;justify-content:space-between;gap:16px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border-soft)}.auth-recovery-links a,.auth-card a:not(.primary-button):not(.secondary-button){color:var(--aurora-cyan);font-size:.78rem;text-underline-offset:3px}.auth-alert,.form-notice{margin:0 0 18px;padding:12px 14px;border-radius:11px;font-size:.8rem;line-height:1.5}.form-notice{border:1px solid rgba(98,230,167,.28);background:rgba(98,230,167,.08);color:var(--positive)}.auth-command{max-width:100%;overflow-x:auto;margin:20px 0 12px;padding:14px;border:1px solid var(--border-soft);border-radius:12px;background:rgba(3,6,12,.48);color:var(--text-primary);font-size:.74rem;line-height:1.55}.auth-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.auth-actions .primary-button,.auth-actions .secondary-button{flex:1 1 170px;justify-content:center;text-align:center}.auth-actions-secondary{margin-top:14px}.auth-security-message{display:grid;gap:10px}
html[data-theme="pearl"] .auth-card{box-shadow:0 26px 70px rgba(25,38,58,.18),inset 0 1px 0 rgba(255,255,255,.8)}html[data-theme="pearl"] .auth-form input,html[data-theme="pearl"] .auth-command{background:rgba(255,255,255,.72)}
@media(max-width:560px){.auth-shell{place-items:start center;padding:20px 14px}.auth-card{padding:24px 20px;border-radius:19px}.auth-card-header{gap:24px}.auth-recovery-links{align-items:flex-start;flex-direction:column;gap:10px}}
@media(max-width:700px){body[data-page="budgets"] .plan-lifecycle-steps{grid-template-columns:repeat(5,minmax(112px,1fr));min-width:560px;overflow:visible}body[data-page="budgets"] .plan-lifecycle-steps li{font-size:.66rem;letter-spacing:.045em}body[data-page="budgets"] .plan-lifecycle-strip{overflow-x:auto}}
.transaction-import-form .csv-file-picker .csv-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.page-header h1::after{content:"";display:block;width:42px;height:2px;margin-top:10px;border-radius:2px;background:linear-gradient(90deg,var(--page-accent),transparent)}
.toast{display:grid;grid-template-columns:1fr auto;align-items:start;gap:12px;padding:14px 16px;border:1px solid var(--border-strong);border-left:3px solid var(--info);border-radius:14px;background:var(--surface-glass-strong);box-shadow:var(--shadow-card);backdrop-filter:blur(20px);animation:toast-in .24s var(--ease-out)}
.toast[data-kind="success"]{border-left-color:var(--positive)}.toast[data-kind="warning"]{border-left-color:var(--warning)}.toast[data-kind="error"]{border-left-color:var(--danger)}
.toast p{margin:0;color:var(--text-primary);font-size:.82rem;line-height:1.5}.toast button{border:0;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:1.1rem;line-height:1}
.toast.is-leaving{opacity:0;transform:translateY(-6px);transition:.18s var(--ease-out)}
@keyframes toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.component-skeleton{display:grid;gap:10px;min-height:120px;padding:18px;border:1px solid var(--border-soft);border-radius:var(--radius-md);background:var(--surface-glass)}
.component-skeleton span{display:block;height:14px;border-radius:7px;background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.11),rgba(255,255,255,.04));background-size:220% 100%;animation:skeleton-sheen 1.4s linear infinite}.component-skeleton span:nth-child(2){width:72%}.component-skeleton span:nth-child(3){height:58px}
@keyframes skeleton-sheen{to{background-position:-220% 0}}
.designed-empty-state{display:grid;place-items:center;gap:10px;min-height:210px;padding:30px;text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:linear-gradient(145deg,var(--page-accent-soft),transparent 65%)}
.designed-empty-state svg{width:54px;height:54px;color:var(--page-accent);opacity:.85}.designed-empty-state h3{margin:0;font:700 1rem var(--font-display)}.designed-empty-state p{max-width:460px;margin:0;color:var(--text-secondary);font-size:.8rem}
.drawer-notification{display:grid;gap:8px;padding:16px;border-bottom:1px solid var(--border-soft)}.drawer-notification.unread{background:var(--page-accent-soft)}.drawer-notification h3,.drawer-notification p{margin:0}.drawer-notification p,.drawer-notification li{color:var(--text-secondary);font-size:.78rem;line-height:1.5}.drawer-notification ul{margin:0;padding-left:20px}.drawer-notification a{color:var(--aurora-cyan);text-decoration:underline;text-underline-offset:2px}.drawer-notification-meta{display:flex;justify-content:space-between;gap:10px;color:var(--text-muted);font-size:.67rem}.drawer-notification-actions{display:flex;flex-wrap:wrap;gap:6px}.drawer-notification-actions button,.drawer-notification-actions a{padding:6px 9px;border:1px solid var(--border-soft);border-radius:9px;background:rgba(255,255,255,.025);color:var(--text-secondary);font-size:.67rem;text-decoration:none;cursor:pointer}.drawer-notification-actions [data-primary]{color:var(--aurora-cyan);border-color:rgba(87,215,232,.3)}
.drawer-error{display:grid;gap:10px;padding:22px;color:var(--text-secondary)}
.notification-drawer[aria-busy="true"] .notification-drawer-list{opacity:.75}
.settings-nav{position:sticky;top:12px;z-index:5;display:flex;gap:7px;overflow-x:auto;margin:0 0 20px;padding:7px;border:1px solid var(--border-soft);border-radius:14px;background:var(--surface-glass-strong);backdrop-filter:blur(22px)}.settings-nav a{flex:0 0 auto;white-space:nowrap;padding:8px 11px;border-radius:9px;color:var(--text-secondary);font-size:.72rem;font-weight:700}.settings-nav a:hover,.settings-nav a:focus-visible,.settings-nav a.active{color:var(--text-primary);background:var(--page-accent-soft)}
.settings-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.settings-field-grid .form-field-wide{grid-column:1/-1}.settings-card[id]{scroll-margin-top:90px}
.build46-workspace,.build46-workspace>.section-card,.build46-workspace>.section-card>*{min-width:0;max-width:100%}.build46-workspace code{overflow-wrap:anywhere;word-break:break-word}.build46-workspace textarea{width:100%;min-width:0;max-width:100%}
.privacy-boundary-note{margin-top:15px;padding:12px 14px;border:1px solid rgba(244,185,94,.24);border-radius:12px;background:rgba(244,185,94,.06);color:var(--text-secondary);font-size:.75rem;line-height:1.5}
.health-summary{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:center;margin-top:16px}.health-indicator{width:12px;height:12px;border-radius:50%;background:var(--positive);box-shadow:0 0 0 6px rgba(86,216,155,.09)}.health-indicator.degraded{background:var(--warning)}.health-indicator.unhealthy{background:var(--danger)}
.job-history{display:grid;margin-top:14px}.job-history-row{display:grid;grid-template-columns:minmax(130px,1fr) auto auto;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-soft);font-size:.72rem}.job-history-row span{color:var(--text-secondary)}
body.privacy-hidden [data-sensitive],body.privacy-hidden canvas{filter:blur(7px);user-select:none}body.privacy-hidden canvas{pointer-events:none}
html[data-motion="reduced"] *,html[data-motion="reduced"] *::before,html[data-motion="reduced"] *::after{scroll-behavior:auto;animation-duration:.001ms;animation-iteration-count:1;transition-duration:.001ms}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto;animation-duration:.001ms;animation-iteration-count:1;transition-duration:.001ms}.component-skeleton span{animation:none}}
@media(max-width:760px){.settings-field-grid{grid-template-columns:1fr}.settings-field-grid .form-field-wide{grid-column:1}.job-history-row{grid-template-columns:1fr}.institution-account-group>summary{grid-template-columns:auto minmax(0,1fr)}.institution-group-total{grid-column:2;text-align:left}.account-card-metrics{grid-template-columns:1fr}.toast-region{right:16px;top:68px}}

/* Focused Financial Intelligence, Budgets, and Debt Plan remediation. */
body[data-page="budgets"] .obligation-funding-card{display:block;margin-top:20px}
body[data-page="budgets"] .obligation-funding-list{display:grid;gap:10px;margin-top:16px}
body[data-page="budgets"] .obligation-funding-list form{display:grid;grid-template-columns:minmax(240px,1.25fr) minmax(230px,.8fr) auto;gap:16px;align-items:end;padding:14px 16px;border:1px solid var(--border-soft);border-radius:14px;background:rgba(255,255,255,.018)}
body[data-page="budgets"] .obligation-funding-list form.needs-assignment{border-color:rgba(244,185,94,.28);background:linear-gradient(115deg,rgba(244,185,94,.065),rgba(255,255,255,.012))}
body[data-page="budgets"] .obligation-funding-list form.is-assigned{border-color:rgba(98,230,167,.2)}
body[data-page="budgets"] .obligation-funding-identity{display:grid;gap:5px;align-self:center;min-width:0}
body[data-page="budgets"] .obligation-funding-identity strong{overflow-wrap:normal;word-break:normal;font-size:.84rem}
body[data-page="budgets"] .obligation-funding-identity span{color:var(--text-secondary);font-size:.72rem}
body[data-page="budgets"] .obligation-funding-list .form-field{display:grid;gap:6px;margin:0}
body[data-page="budgets"] .obligation-funding-list label{color:var(--text-secondary);font-size:.67rem;font-weight:750;letter-spacing:.045em;text-transform:uppercase}
body[data-page="budgets"] .obligation-funding-list select{width:100%;min-width:0}
body[data-page="budgets"] .budget-progress-unbudgeted{border-color:rgba(244,185,94,.38);box-shadow:0 18px 48px rgba(244,185,94,.08)}
body[data-page="budgets"] .budget-status-unbudgeted{color:var(--warning);border-color:rgba(244,185,94,.3);background:rgba(244,185,94,.09)}
body[data-page="budgets"] .budget-progress-fill-unbudgeted{background:linear-gradient(90deg,var(--warning),var(--danger))}
body[data-page="budgets"] .budget-progress-unbudgeted .budget-progress-percent{max-width:130px;color:var(--warning);font-size:.72rem;line-height:1.25;text-align:right}
body[data-page="budgets"] .budget-progressive-section{overflow:hidden;padding:0}
body[data-page="budgets"] .budget-progressive-section>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;cursor:pointer;list-style:none}
body[data-page="budgets"] .budget-progressive-section>summary::-webkit-details-marker{display:none}
body[data-page="budgets"] .budget-progressive-section>summary>span{display:grid;gap:4px}
body[data-page="budgets"] .budget-progressive-section>summary strong{font:700 1rem var(--font-display)}
body[data-page="budgets"] .budget-progressive-section>summary small{color:var(--text-secondary);font-size:.74rem}
body[data-page="budgets"] .budget-progressive-section>summary::after{content:"+";color:var(--aurora-cyan);font-size:1.35rem}
body[data-page="budgets"] .budget-progressive-section[open]>summary::after{content:"−"}
body[data-page="budgets"] .budget-progressive-section .plan-history-table{margin:0;border-top:1px solid var(--border-soft)}
body[data-page="budgets"] :is(.plan-history-head,.plan-history-row){grid-template-columns:.8fr .9fr 1.1fr 1.1fr 1fr}
body[data-page="debt"] .action-button-icon svg,body[data-page="debt"] .secondary-button>svg,body[data-page="debt"] .debt-alert-action svg{width:17px;height:17px;flex:0 0 auto}
body[data-page="debt"] .secondary-button{display:inline-flex;align-items:center;gap:8px}
body[data-page="debt"] .debt-guidance-paused{border-color:rgba(244,185,94,.28);background:linear-gradient(135deg,rgba(244,185,94,.085),rgba(15,18,27,.74))}
body[data-page="debt"] .schedule-details{border-color:var(--border-soft);background:linear-gradient(145deg,rgba(20,25,38,.82),rgba(8,11,19,.8));color:var(--text-primary)}
body[data-page="debt"] .schedule-details>summary,body[data-page="debt"] .schedule-details>summary:hover,body[data-page="debt"] .schedule-details>summary:focus-visible{background:rgba(255,255,255,.025);color:var(--text-primary)}
body[data-page="debt"] .schedule-details>summary:focus-visible{outline:2px solid var(--aurora-cyan);outline-offset:-2px}
body[data-page="debt"] .schedule-details>summary::after{color:var(--aurora-cyan)}
html[data-theme="pearl"] body[data-page="budgets"] .obligation-funding-list form{background:rgba(255,255,255,.7);border-color:rgba(16,24,40,.1)}
html[data-theme="pearl"] body[data-page="budgets"] .obligation-funding-list form.needs-assignment{background:rgba(244,185,94,.1);border-color:rgba(184,118,24,.24)}
html[data-theme="pearl"] body[data-page="debt"] .schedule-details{background:rgba(255,255,255,.9);color:#101828;border-color:rgba(16,24,40,.11)}
html[data-theme="pearl"] body[data-page="debt"] .schedule-details>summary,html[data-theme="pearl"] body[data-page="debt"] .schedule-details>summary:hover,html[data-theme="pearl"] body[data-page="debt"] .schedule-details>summary:focus-visible{background:rgba(244,247,252,.94);color:#101828}
@media(max-width:1100px){body[data-page="budgets"] .obligation-funding-list form{grid-template-columns:minmax(0,1fr) minmax(210px,.8fr)}body[data-page="budgets"] .obligation-funding-identity{grid-column:1 / -1}body[data-page="budgets"] .obligation-funding-list form>.action-button{grid-column:2;justify-self:start}}
@media(max-width:700px){body[data-page="budgets"] .obligation-funding-list form{grid-template-columns:minmax(0,1fr)}body[data-page="budgets"] .obligation-funding-identity{grid-column:1}body[data-page="budgets"] .obligation-funding-list form>.action-button{grid-column:1;width:100%;justify-content:center}body[data-page="budgets"] .budget-progressive-section{overflow-x:auto}}

/* Final cascade ownership for financial numerals. Page modules may arrange values,
   but they do not redefine the shared typeface or semantic scale. */
body[data-page] .money-value{
    font-family:var(--font-ui);
    font-variant-numeric:tabular-nums;
    font-feature-settings:"tnum" 1,"kern" 1;
    white-space:nowrap;
}
body[data-page] :is(.money-value.money-display,.daily-allowance-value>.money-value){
    font-family:var(--font-ui);
    font-size:var(--money-size-hero);
    font-weight:800;
    letter-spacing:-.05em;
    line-height:1;
}
body[data-page] :is(.summary-value,.metric-value,.account-balance),
body[data-page] :is(.summary-value,.metric-value,.account-balance).money-value,
body[data-page] :is(.summary-value,.metric-value,.account-balance)>.money-value,
body[data-page] .transaction-summary-grid .summary-card>strong,
body[data-page] .glass-stat>strong,
body[data-page] .decision-state-card>strong,
body[data-page] .coach-stat strong{
    font-family:var(--font-ui);
    font-size:var(--money-size-primary);
    font-weight:750;
    letter-spacing:-.035em;
    line-height:1.12;
    font-variant-numeric:tabular-nums;
}
body[data-page] :is(.today-plan-metrics strong,.period-change-grid strong,.liquidity-equation>span,.hierarchical-budget-card summary b,.paycheck-row>b,.cash-shortfall-panel strong)>.money-value{
    font-size:var(--money-size-secondary);
    font-weight:750;
    letter-spacing:-.015em;
}
body[data-page] :is(.analytics-data-table,.transaction-table,.sankey-fallback,.plan-history-table,.budget-progress-values) .money-value,
body[data-page] .sub-budget-row>b>.money-value{
    font-size:var(--money-size-body);
    letter-spacing:-.01em;
}
body[data-page] :is(.metric-trend-cue,.account-card-metrics,.analytics-legend,.cash-components,.evidence-list,.account-count,.obligation-funding-identity,.required-transfer-list,.fund-row,.override-row) .money-value,
body[data-page="budgets"] .account-policy-list summary .money-value{
    font-size:var(--money-size-compact);
    letter-spacing:0;
}
body[data-page="dashboard"] .donut-center .money-value{
    font-size:var(--money-size-primary);
    font-weight:750;
    letter-spacing:-.035em;
}
body[data-page="dashboard"] .timeline-balance .money-value,
body[data-page="dashboard"] :is(.account-spark-card,.today-plan-row) .money-value,
body[data-page="intelligence"] .widget-heading>.money-value,
body[data-page="intelligence"] .widget-heading>strong>.money-value,
body[data-page="accounts"] .institution-group-total .money-value{
    font-size:var(--money-size-secondary);
    font-weight:750;
    letter-spacing:-.015em;
}
body[data-page="dashboard"] :is(.feed-amount,.cash-timeline summary em,.cash-timeline summary b,.cash-timeline p) .money-value{
    font-size:var(--money-size-body);
    letter-spacing:-.01em;
}
body[data-page="dashboard"] .transaction-feed .merchant-avatar{
    color:#fff;
}
body[data-page="dashboard"] :is(.budget-pulse-row,.calendar-event-row,.utilization-grid) .money-value,
body[data-page="transactions"] .date-group>header .money-value{
    font-size:var(--money-size-compact);
    letter-spacing:0;
}
body[data-page="accounts"] .institution-actions{
    justify-content:flex-start;
    align-items:center;
}
body[data-page="accounts"] .institution-actions>form{
    flex:0 0 auto;
    width:auto;
}
body[data-page="accounts"] .institution-actions>button,
body[data-page="accounts"] .institution-actions .action-button{
    width:auto;
}
body[data-page="transactions"] .analysis-job-summary{
    grid-template-columns:minmax(0,1fr) 6.5rem 8rem;
}
body[data-page="transactions"] .analysis-job-heading{
    grid-column:1 / -1;
}
body[data-page="transactions"] .analysis-stage-row{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:subgrid;
    align-items:baseline;
    gap:8px;
}
body[data-page="transactions"] .analysis-stage-row strong{
    min-width:0;
    overflow-wrap:normal;
}
body[data-page="transactions"] .analysis-stage-row span{
    white-space:nowrap;
    word-break:normal;
    overflow-wrap:normal;
    text-align:right;
}
body[data-page="transactions"] .rules-learning-panels{
    display:grid;
    gap:14px;
}
body[data-page="transactions"] .migration-review-row>form{
    display:grid;
    gap:14px;
    align-content:start;
}
body[data-page="transactions"] .migration-review-row>form>.action-button{
    justify-self:start;
    margin-top:2px;
}
@media(max-width:1150px){
    body[data-page="transactions"] .transaction-workspace.build44-entry-grid{
        grid-template-columns:minmax(0,1fr);
    }
    body[data-page="transactions"] .transaction-side-column{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media(max-width:800px){
    body[data-page="transactions"] .transaction-side-column{
        grid-template-columns:minmax(0,1fr);
    }
}
@media(max-width:720px){
    body[data-page] .page-header{
        align-items:flex-start;
        flex-direction:column;
        gap:16px;
    }
    body[data-page] .page-header>div:first-child{
        flex:0 1 auto;
        width:100%;
    }
    body[data-page] .page-header>[class*="actions"]{
        width:100%;
    }
    body[data-page] :is(.workspace-tabs,.native-tabs,.module-tabs,.section-tabs)>a{
        flex:0 0 auto;
        min-width:max-content;
        white-space:nowrap;
    }
}

/* Dashboard-derived summary surfaces: the card communicates hierarchy even when
   no truthful trend series exists for a mini chart. */
body[data-page="transactions"] .transaction-summary-card{
    isolation:isolate;
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto 1fr;
    min-height:150px;
    padding:18px 18px 8px;
    overflow:hidden;
    border-color:color-mix(in srgb,var(--tone) 20%,var(--border-soft));
    border-radius:17px;
    background:linear-gradient(145deg,color-mix(in srgb,var(--tone) 7%,rgba(255,255,255,.045)),rgba(255,255,255,.018));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 16px 38px rgba(0,0,0,.18);
    backdrop-filter:blur(20px) saturate(132%);
}
body[data-page="transactions"] .transaction-summary-card::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:auto 0 0;
    height:46px;
    border-top:1px solid color-mix(in srgb,var(--tone) 18%,var(--border-soft));
    background:linear-gradient(90deg,color-mix(in srgb,var(--tone) 18%,transparent),color-mix(in srgb,var(--tone) 7%,transparent) 58%,transparent);
}
body[data-page="transactions"] .transaction-summary-card::after{
    content:"";
    position:absolute;
    z-index:-1;
    width:150px;
    height:96px;
    right:-42px;
    bottom:-48px;
    border-radius:50%;
    background:var(--tone);
    filter:blur(38px);
    opacity:.14;
}
body[data-page="transactions"] .transaction-summary-card>*{position:relative;z-index:1}
body[data-page="transactions"] .transaction-summary-title{align-items:flex-start;min-height:44px}
body[data-page="transactions"] .transaction-summary-title .summary-label{
    margin:0;
    color:var(--text-primary);
    font-size:.72rem;
    font-weight:800;
}
body[data-page="transactions"] .transaction-summary-title .summary-detail{
    margin-top:1px;
    color:var(--text-secondary);
    font-size:.6rem;
    font-weight:700;
    letter-spacing:.055em;
    line-height:1.15;
    text-transform:uppercase;
    white-space:nowrap;
}
body[data-page="transactions"] .transaction-summary-icon{margin:0;flex:0 0 auto}
body[data-page="transactions"] .transaction-summary-value{
    align-self:end;
    display:flex;
    align-items:baseline;
    width:100%;
    min-width:0;
    margin-top:18px;
    color:var(--text-primary);
    font-family:var(--font-ui);
    font-size:var(--money-size-primary);
    font-weight:750;
    letter-spacing:-.035em;
    line-height:1.12;
    white-space:nowrap;
}
html[data-theme="pearl"] body[data-page="transactions"] .transaction-summary-card{
    border-color:color-mix(in srgb,var(--tone) 20%,rgba(22,37,64,.12));
    background:linear-gradient(145deg,color-mix(in srgb,var(--tone) 6%,rgba(255,255,255,.88)),rgba(244,248,253,.72));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.94),0 16px 34px rgba(44,57,83,.11);
}

/* Secondary information cards use a restrained inset-glass treatment so they
   support their parent surface instead of competing with it. */
body[data-page] :is(.account-spark-card,.decision-card,.insight-list-row,.migration-review-row,.recurring-series-card){
    border:1px solid rgba(255,255,255,.085);
    background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.014));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 10px 24px rgba(0,0,0,.11);
    backdrop-filter:blur(14px) saturate(118%);
}
html[data-theme="pearl"] body[data-page] :is(.account-spark-card,.decision-card,.insight-list-row,.migration-review-row,.recurring-series-card){
    border-color:rgba(22,37,64,.1);
    background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(241,246,252,.62));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 10px 24px rgba(44,57,83,.075);
}
body[data-page] :is(.page-header.glass-card,.settings-card.glass-card,.obligation-funding-card.glass-card){
    overflow:hidden;
    border-radius:var(--radius-lg);
}
body[data-page] .page-header.glass-card{
    padding:24px;
}

/* Preserve semantic emphasis after the shared glass layer. */
body[data-page="intelligence"] .glass-stat.danger-tint{
    border-color:rgba(255,112,122,.2);
    background:radial-gradient(circle at 8% 0%,rgba(255,112,122,.1),transparent 38%),radial-gradient(circle at 100% 100%,rgba(155,123,255,.055),transparent 42%),linear-gradient(145deg,rgba(42,24,32,.68),rgba(11,15,24,.5) 54%,rgba(6,9,15,.4));
}
html[data-theme="pearl"] body[data-page="intelligence"] .glass-stat.danger-tint{
    border-color:rgba(214,78,89,.18);
    background:radial-gradient(circle at 8% 0%,rgba(214,78,89,.09),transparent 38%),linear-gradient(145deg,rgba(255,255,255,.88),rgba(248,242,246,.72));
}

/* A legacy emergency rule allowed every heading, value, label, and table cell to
   break at any character. Restore natural word-boundary wrapping globally;
   prose may still wrap normally, while the atomic UI elements below stay whole. */
body[data-page] .page-container :is(h1,h2,h3,h4,h5,h6,p,strong,span,small,label,legend,td,th){
    word-break:normal;
    overflow-wrap:normal;
}

/* Compact controls, monetary values, dates, badges, and statuses are atomic UI
   text. Their surrounding layout may reflow, but the text itself must not split. */
body[data-page] :is(
    button,
    .action-button,
    .primary-button,
    .secondary-button,
    .compact-action,
    .status-pill,
    .status-chip,
    .badge,
    .confidence-meter,
    .decision-confidence,
    .connection-status,
    .plaid-status-pill,
    .insight-count-pill,
    .formula-source-pill,
    .allocation-type,
    .statement-status,
    .issuer-confidence,
    .analysis-period-option,
    .eyebrow,
    .summary-detail,
    .account-count,
    .money-value,
    .transaction-summary-value,
    .transaction-history-facts strong,
    .pagination-link,
    .pagination-status,
    .transaction-pagination-summary,
    .pagination-number,
    .pagination-ellipsis,
    .table-edit-link,
    .workspace-tabs > a,
    .native-tabs > a,
    .module-tabs > a,
    .section-tabs > a
){
    white-space:nowrap;
    word-break:normal;
    overflow-wrap:normal;
}
body[data-page] .page-container time{
    white-space:nowrap;
    word-break:normal;
    overflow-wrap:normal;
}
body[data-page="dashboard"] .command-actions>.action-button,
body[data-page="debt"] .debt-budget-guidance>.action-button{flex-shrink:0}
body[data-page="transactions"] .transaction-meta-line{
    display:flex;
    align-items:center;
    gap:6px;
    min-width:0;
    white-space:nowrap;
}
body[data-page="transactions"] .transaction-meta-line :is(time,.meta-separator){
    flex:0 0 auto;
}
body[data-page="transactions"] .transaction-account-name{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
body[data-page="transactions"] .date-group-totals,
body[data-page="transactions"] .coach-transaction-facts{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px 10px;
}
body[data-page="transactions"] .date-group-total,
body[data-page="transactions"] .coach-transaction-facts > :is(.money-value,time){
    white-space:nowrap;
}
/* Heat-map cells are compact chart marks, not full-size form buttons. */
body[data-page="intelligence"] .heatmap-layout .heat-cell{
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    padding:0;
}

/* A later desktop Transactions rule intentionally gives filters a twelve-column
   grid. Reassert the mobile contract at the end of the cascade so labels,
   fields, and actions receive a real full-width track instead of collapsing to
   vertical letters or undersized buttons. */
@media(max-width:700px){
    body[data-page="transactions"] .transaction-filter-form{
        grid-template-columns:minmax(0,1fr);
    }
    body[data-page="transactions"] .transaction-filter-form > :is(
        .transaction-search-field,
        .taxonomy-pair,
        .form-field,
        .transaction-filter-actions
    ){
        grid-column:1 / -1;
        width:100%;
        min-width:0;
    }
    body[data-page="transactions"] .transaction-filter-form > .taxonomy-pair{
        grid-template-columns:minmax(0,1fr);
    }
    body[data-page="transactions"] .transaction-filter-actions{
        align-items:stretch;
        flex-direction:column;
        justify-content:stretch;
    }
    body[data-page="transactions"] .transaction-filter-actions > .action-button{
        width:100%;
        min-width:0;
    }
    body[data-page="transactions"] .transaction-identity > :is(strong,span),
    body[data-page="transactions"] .transaction-taxonomy-badges > span:last-child > :is(strong,small){
        display:block;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
    body[data-page="transactions"] .date-group > header{
        align-items:flex-start;
        flex-wrap:wrap;
        gap:10px 16px;
    }
    body[data-page="transactions"] .analysis-job-summary{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    body[data-page="transactions"] .analysis-stage-row{
        grid-template-columns:subgrid;
    }
    body[data-page="transactions"] .analysis-stage-row > strong{
        grid-column:1 / -1;
    }
    body[data-page="transactions"] .analysis-stage-row span{
        text-align:left;
    }
    body[data-page="transactions"] .analysis-stage-row span:last-child{
        text-align:right;
    }
    body[data-page="transactions"] .coach-review-card > header{
        display:grid;
        grid-template-columns:auto minmax(0,1fr);
        align-items:start;
    }
    body[data-page="transactions"] .coach-review-card > header > .confidence-meter{
        grid-column:2;
        justify-self:start;
    }
    body[data-page="transactions"] .manager-actions{
        flex-wrap:wrap;
    }
}

@media(max-width:720px){
    body[data-page="accounts"] .institution-actions{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        align-items:stretch;
    }
    body[data-page="accounts"] .institution-actions>form,
    body[data-page="accounts"] .institution-actions>button,
    body[data-page="accounts"] .institution-actions .action-button,
    body[data-page="transactions"] .migration-review-row>form>.action-button{
        width:100%;
    }
}
@media(max-width:430px){
    body[data-page="accounts"] .institution-actions{
        grid-template-columns:minmax(0,1fr);
    }
}

/* Mobile cards expand or reflow with their content. Nested scroll regions hide
   information and compete with normal page scrolling, so desktop timelines,
   tab rails, lifecycle tracks, heat maps, and data tables receive native mobile
   layouts instead of internal scrollbars. */
@media(max-width:700px){
    body[data-page] .page-header.glass-card{
        padding:20px;
    }
    body[data-page="intelligence"] .intelligence-hero h1{
        max-width:100%;
        font-size:clamp(1.55rem,6.8vw,1.75rem);
        letter-spacing:-.035em;
        white-space:nowrap;
    }
    body[data-page] :is(.settings-nav,.native-tabs,.workspace-tabs,.module-tabs,.section-tabs){
        display:flex;
        flex-wrap:wrap;
        overflow:visible;
        max-height:none;
    }
    body[data-page] :is(.settings-nav,.native-tabs,.workspace-tabs,.module-tabs,.section-tabs) > :is(a,button){
        flex:0 1 auto;
        min-width:0;
        max-width:100%;
    }
    body[data-page="dashboard"] .cash-timeline{
        max-height:none;
        overflow:visible;
        padding-right:0;
    }
    body[data-page="dashboard"] .milestone-timeline{
        display:grid;
        grid-template-columns:minmax(0,1fr);
        overflow:visible;
        padding:8px 0;
    }
    body[data-page="dashboard"] .milestone{
        min-width:0;
        padding:10px 12px 12px 20px;
        border-top:0;
        border-left:2px solid var(--border-subtle);
    }
    body[data-page="dashboard"] .milestone i{
        top:14px;
        left:-7px;
    }
    body[data-page="intelligence"] .heatmap-scroll{
        width:100%;
        max-height:none;
        overflow:visible;
        padding-bottom:0;
    }
    body[data-page="intelligence"] .heatmap-layout .heatmap-months{
        grid-template-columns:repeat(var(--heatmap-weeks),minmax(2px,1fr));
        column-gap:2px;
        width:100%;
    }
    body[data-page="intelligence"] .heatmap-layout .spending-heatmap{
        grid-auto-columns:minmax(2px,1fr);
        gap:4px 2px;
        width:100%;
    }
    body[data-page="budgets"] .plan-lifecycle-strip{
        overflow:visible;
    }
    body[data-page="budgets"] .plan-lifecycle-steps{
        grid-template-columns:minmax(0,1fr);
        gap:8px;
        min-width:0;
        overflow:visible;
        padding:0;
    }
    body[data-page="budgets"] .plan-lifecycle-steps li{
        grid-template-columns:29px minmax(0,1fr);
        align-items:center;
        justify-items:start;
        gap:10px;
        text-align:left;
    }
    body[data-page="budgets"] .plan-lifecycle-steps li::after{
        top:29px;
        right:auto;
        bottom:-8px;
        left:14px;
        width:1px;
        height:auto;
    }
    body[data-page="debt"] .payoff-table-wrapper{
        overflow:visible;
        max-height:none;
    }
    body[data-page="debt"] .payoff-table{
        display:block;
        width:100%;
        min-width:0;
    }
    body[data-page="debt"] .payoff-table thead{
        position:absolute;
        width:1px;
        height:1px;
        overflow:hidden;
        clip:rect(0 0 0 0);
        white-space:nowrap;
    }
    body[data-page="debt"] .payoff-table :is(tbody,tr){
        display:grid;
        width:100%;
        min-width:0;
    }
    body[data-page="debt"] .payoff-table tbody{
        gap:10px;
    }
    body[data-page="debt"] .payoff-table tr{
        gap:8px;
        padding:12px;
        border:1px solid var(--border-soft);
        border-radius:12px;
        background:rgba(255,255,255,.018);
    }
    body[data-page="debt"] .payoff-table td{
        display:flex;
        align-items:baseline;
        justify-content:space-between;
        gap:14px;
        width:100%;
        min-width:0;
        padding:0;
        border:0;
        text-align:right;
    }
    body[data-page="debt"] .payoff-table td::before{
        content:attr(data-label);
        flex:0 0 auto;
        color:var(--text-muted);
        font-size:.66rem;
        font-weight:700;
        letter-spacing:.055em;
        text-transform:uppercase;
        white-space:nowrap;
    }
    body[data-page="debt"] .payoff-table td > :is(strong,span){
        min-width:0;
    }
body[data-page="debt"] .payoff-table td:first-child > strong{
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
}

/* Exact screen-recording remediation: readable guidance, coherent semantic
   accents, and explicit spacing between native Financial Intelligence panels. */
.dashboard-insights::before{inset:-35% 35% -35% -10%}
body[data-page="intelligence"] .insight-hero::before{inset:0;background:linear-gradient(110deg,rgba(98,230,167,.14),rgba(87,215,232,.075) 48%,rgba(155,123,255,.12))}
body[data-page="intelligence"] .insight-hero>*{position:relative;z-index:1}
html[data-theme="pearl"] body[data-page="intelligence"] .insight-hero::before{background:linear-gradient(110deg,rgba(65,190,132,.12),rgba(57,168,196,.065) 48%,rgba(125,94,221,.1))}
body[data-page="intelligence"] .intelligence-native-workspace [data-native-panel="actions"].active{display:grid;gap:24px}
body[data-page="intelligence"] :is(.insight-card,.insight-list-row)::before{top:0;bottom:0}
body[data-page="intelligence"] .chart-stage>canvas[hidden]{display:none;visibility:hidden;opacity:0}
body[data-page="intelligence"] .chart-stage.is-empty>.chart-empty-state:not([hidden]){position:absolute;inset:0;display:grid;width:100%;height:100%;margin:0}
body[data-page="intelligence"] .glass-stat-heading{display:flex;align-items:center;gap:10px;color:var(--text-secondary);font-size:.7rem;font-weight:750;letter-spacing:.045em;text-transform:uppercase}
body[data-page="intelligence"] .glass-stat-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border:1px solid color-mix(in srgb,currentColor 22%,var(--border-soft));border-radius:11px;background:linear-gradient(145deg,color-mix(in srgb,currentColor 11%,transparent),rgba(255,255,255,.025));box-shadow:inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(12px)}
body[data-page="intelligence"] .glass-stat-icon svg{width:17px;height:17px}
body[data-page="intelligence"] .glass-stat-icon.tone-cyan{color:var(--aurora-cyan)}
body[data-page="intelligence"] .glass-stat-icon.tone-green{color:var(--aurora-green)}
body[data-page="intelligence"] .glass-stat-icon.tone-violet{color:var(--aurora-violet)}
body[data-page="intelligence"] .glass-stat-icon.tone-blue{color:#72a9ff}

body[data-page="budgets"] .budget-progress-identity{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px}
body[data-page="budgets"] .budget-progress-identity .category-icon{width:34px;height:34px;border-radius:10px}
body[data-page="budgets"] .budget-header-actions{align-items:flex-end}
body[data-page="budgets"] .budget-summary-card{isolation:isolate;display:grid;grid-template-rows:auto 1fr;min-height:150px;padding:18px 18px 8px;overflow:hidden;border-color:color-mix(in srgb,var(--tone) 20%,var(--border-soft));border-radius:17px;background:linear-gradient(145deg,color-mix(in srgb,var(--tone) 7%,rgba(255,255,255,.045)),rgba(255,255,255,.018));box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 16px 38px rgba(0,0,0,.18);backdrop-filter:blur(20px) saturate(132%)}
body[data-page="budgets"] .budget-summary-card::before{content:"";position:absolute;z-index:-1;inset:auto 0 0;height:46px;border-top:1px solid color-mix(in srgb,var(--tone) 18%,var(--border-soft));background:linear-gradient(90deg,color-mix(in srgb,var(--tone) 18%,transparent),color-mix(in srgb,var(--tone) 7%,transparent) 58%,transparent)}
body[data-page="budgets"] .budget-summary-card::after{content:"";position:absolute;z-index:-1;width:150px;height:96px;top:auto;right:-42px;bottom:-48px;border-radius:50%;background:var(--tone);filter:blur(38px);opacity:.14}
body[data-page="budgets"] .budget-summary-card>*{position:relative;z-index:1}
body[data-page="budgets"] .budget-summary-title{display:flex;align-items:flex-start;gap:10px;min-width:0;min-height:44px}
body[data-page="budgets"] .budget-summary-title>div{min-width:0}
body[data-page="budgets"] .budget-summary-title .summary-label{margin:0;color:var(--text-primary);font-size:.72rem;font-weight:800}
body[data-page="budgets"] .budget-summary-title .summary-detail{margin-top:1px;color:var(--text-secondary);font-size:.6rem;font-weight:700;letter-spacing:.055em;line-height:1.15;text-transform:uppercase;white-space:nowrap}
body[data-page="budgets"] .budget-summary-icon{margin:0;flex:0 0 auto}
body[data-page="budgets"] .budget-summary-card>.summary-value{align-self:end;display:flex;align-items:baseline;width:100%;min-width:0;margin-top:18px;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--money-size-primary);font-weight:750;letter-spacing:-.035em;line-height:1.12;white-space:nowrap}
html[data-theme="pearl"] body[data-page="budgets"] .budget-summary-card{border-color:color-mix(in srgb,var(--tone) 20%,rgba(22,37,64,.12));background:linear-gradient(145deg,color-mix(in srgb,var(--tone) 6%,rgba(255,255,255,.88)),rgba(244,248,253,.72));box-shadow:inset 0 1px 0 rgba(255,255,255,.94),0 16px 34px rgba(44,57,83,.11)}
body[data-page="budgets"] .paycheck-calendar-card{position:relative;isolation:isolate;overflow:hidden}
body[data-page="budgets"] .paycheck-calendar-card::before{content:"";position:absolute;z-index:-1;inset:-90px -70px auto auto;width:220px;height:180px;border-radius:50%;background:radial-gradient(circle,rgba(87,215,232,.14),rgba(155,123,255,.06) 46%,transparent 72%);filter:blur(10px);pointer-events:none}
body[data-page="budgets"] .paycheck-list{gap:10px}
body[data-page="budgets"] .paycheck-row{position:relative;grid-template-columns:74px minmax(0,1fr) auto;gap:14px;padding:12px 14px 12px 12px;overflow:hidden;border-color:rgba(87,215,232,.14);background:linear-gradient(115deg,rgba(87,215,232,.055),rgba(255,255,255,.018) 48%,rgba(155,123,255,.035));box-shadow:inset 0 1px 0 rgba(255,255,255,.045)}
body[data-page="budgets"] .paycheck-row::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(var(--aurora-cyan),var(--aurora-violet));opacity:.72}
body[data-page="budgets"] .paycheck-row time{display:grid;grid-template-columns:1fr;gap:2px;place-items:center;min-height:48px;padding:7px 8px;border:1px solid rgba(87,215,232,.18);border-radius:11px;background:rgba(5,10,18,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.055)}
body[data-page="budgets"] .paycheck-row time strong{font-size:.62rem;letter-spacing:.075em;text-transform:uppercase}
body[data-page="budgets"] .paycheck-row time span{color:var(--text-primary);font-size:.76rem;font-weight:750;white-space:nowrap}
body[data-page="budgets"] .paycheck-row>div{gap:4px}
body[data-page="budgets"] .paycheck-row>div strong{font-size:.84rem}
body[data-page="budgets"] .paycheck-row>b{justify-self:end;display:flex;align-items:baseline;font-size:var(--money-size-secondary);font-weight:750;white-space:nowrap}
html[data-theme="pearl"] body[data-page="budgets"] .paycheck-row{border-color:rgba(39,129,158,.14);background:linear-gradient(115deg,rgba(57,168,196,.075),rgba(255,255,255,.66) 48%,rgba(125,94,221,.045));box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}
html[data-theme="pearl"] body[data-page="budgets"] .paycheck-row time{background:rgba(255,255,255,.62);border-color:rgba(39,129,158,.16);box-shadow:inset 0 1px 0 #fff}
@media(max-width:700px){body[data-page="budgets"] .paycheck-row{grid-template-columns:68px minmax(0,1fr)}body[data-page="budgets"] .paycheck-row>b{grid-column:2;justify-self:start;margin-top:2px}}
body[data-page="budgets"] .budget-status-badge{border:1px solid transparent;background:transparent}
body[data-page="budgets"] .budget-status-healthy{color:var(--positive);border-color:rgba(98,230,167,.3);background:rgba(98,230,167,.09)}
body[data-page="budgets"] .budget-status-warning{color:var(--warning);border-color:rgba(244,185,94,.32);background:rgba(244,185,94,.09)}
body[data-page="budgets"] .budget-status-limit{color:var(--aurora-violet);border-color:rgba(155,123,255,.3);background:rgba(155,123,255,.09)}
body[data-page="budgets"] .budget-status-over{color:var(--danger);border-color:rgba(255,112,122,.3);background:rgba(255,112,122,.09)}
body[data-page="debt"] .strategy-card.strategy-selected{border:2px solid rgba(98,230,167,.55);box-shadow:0 0 0 1px rgba(98,230,167,.08),0 18px 42px rgba(0,0,0,.16),inset 0 1px rgba(255,255,255,.05)}
html[data-theme="aurora-midnight"] body[data-page="debt"] .strategy-card.strategy-selected{border-color:rgba(98,230,167,.55)}

/* Formula options keep whole words inside their cards even when the account
   editor is rendered in its narrower side column. */
body[data-page="accounts"] .rule-toggle-row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
body[data-page="accounts"] .notification-toggle-card.compact>span{min-width:0}

/* Author styles must preserve the native closed-details contract. An opened
   quick editor then occupies the full transaction row instead of the narrow
   action column. */
body[data-page="transactions"] details.inline-editor:not([open])>:not(summary){display:none}
body[data-page="transactions"] details.inline-editor[open]{grid-column:1/-1;width:100%;min-width:0}
body[data-page="transactions"] details.inline-editor[open]>.inline-edit-form{width:100%;box-sizing:border-box}

/* Mobile navigation uses a real sibling backdrop so the fixed drawer remains
   above the dimmed page and every navigation control remains interactive. */
.sidebar-backdrop{display:none}
@media(max-width:1180px){
    body.sidebar-open{overflow:hidden}
    body.sidebar-open::after{content:none}
    .sidebar-backdrop:not([hidden]){
        display:block;
        position:fixed;
        inset:0;
        z-index:999;
        width:100%;
        height:100%;
        margin:0;
        padding:0;
        border:0;
        border-radius:0;
        background:rgba(2,4,9,.68);
        box-shadow:none;
        backdrop-filter:none;
        -webkit-backdrop-filter:none;
        cursor:default;
    }
body.sidebar-open .sidebar{z-index:1000;filter:none;pointer-events:auto}
}

/* Subscriptions uses the same glass surfaces and action rhythm as the other
   financial workspaces.  Keep the row grid shrinkable so merchant names and
   amounts never collide at tablet/mobile widths. */
.subscriptions-page{--subscription-gap:clamp(14px,2vw,24px)}
.subscriptions-hero{align-items:flex-start}
.subscription-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--subscription-gap);margin:var(--subscription-gap) 0}
.subscription-summary-card{position:relative;isolation:isolate;min-width:0;display:flex;flex-direction:column;gap:8px;padding:22px 20px;border-radius:18px;overflow:hidden}
.subscription-summary-card::after{content:"";position:absolute;z-index:-1;right:-28px;bottom:-44px;width:130px;height:100px;border-radius:50%;background:var(--page-accent);filter:blur(28px);opacity:.13}
.subscription-summary-card strong{letter-spacing:-.035em}
.subscription-summary-card strong{font-size:clamp(1.35rem,2.4vw,2rem);line-height:1.1;color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap}
.subscription-summary-card small,.subscription-row p,.page-footnote{color:var(--text-muted)}
.subscription-list-card{padding:clamp(18px,2.5vw,28px)}
.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:16px}
.subscription-list{display:grid;gap:12px}
.subscription-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(270px,1.8fr) minmax(200px,1fr);align-items:center;gap:18px;padding:16px;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:linear-gradient(110deg,rgba(255,255,255,.055),rgba(255,255,255,.018));min-width:0}
.subscription-identity,.subscription-facts,.subscription-actions{min-width:0}
.subscription-identity{display:flex;align-items:center;gap:12px}
.subscription-identity h3{margin:0;color:var(--text-primary);font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.subscription-identity p{margin:4px 0 0;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.merchant-avatar{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,rgba(87,215,232,.24),rgba(155,123,255,.26));color:#fff;font-size:.75rem;font-weight:800;letter-spacing:.04em}
.subscription-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.subscription-facts div{min-width:0;display:grid;gap:4px}
.subscription-facts span{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);white-space:nowrap}
.subscription-facts strong{font-size:.92rem;color:var(--text-primary);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.subscription-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:8px}
.subscription-actions form{margin:0}
.confidence-chip{font-size:.72rem;color:var(--text-muted);white-space:nowrap}
.page-footnote{margin:16px 2px 0;font-size:.82rem;line-height:1.5}
@media(max-width:1050px){.subscription-row{grid-template-columns:minmax(180px,1fr) minmax(250px,1.2fr)}.subscription-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:700px){.subscription-summary-grid{grid-template-columns:1fr;gap:12px}.subscription-row{grid-template-columns:1fr;gap:14px}.subscription-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.subscription-actions{grid-column:auto}.subscription-summary-card{padding:20px}.subscription-summary-card strong{font-size:1.55rem}}
html[data-theme="pearl"] .subscription-row{border-color:rgba(16,24,40,.1);background:linear-gradient(110deg,rgba(255,255,255,.74),rgba(242,247,253,.82))}
html[data-theme="pearl"] .merchant-avatar{color:#10213a;background:linear-gradient(135deg,rgba(57,168,196,.18),rgba(125,94,221,.14))}
.form-disclosure{min-width:0;border:0}.form-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--border-soft);border-radius:15px;background:linear-gradient(110deg,rgba(255,255,255,.07),rgba(255,255,255,.025));color:var(--text-primary);font-weight:750;cursor:pointer;list-style:none}.form-disclosure>summary::-webkit-details-marker{display:none}.form-disclosure>summary::after{content:'+';font-size:1.25rem;color:var(--aurora-cyan)}.form-disclosure[open]>summary{border-radius:15px 15px 0 0}.form-disclosure[open]>summary::after{content:'−'}.form-disclosure>summary small{margin-left:auto;color:var(--text-muted);font-size:.72rem;font-weight:500}.form-disclosure>.form-card{margin-top:10px}
html[data-theme="pearl"] .form-disclosure>summary{border-color:rgba(16,24,40,.12);background:rgba(255,255,255,.74);color:#101828}

/* module: arcfolio.css */
/* Arcfolio's canonical visual shell. This final module owns brand, atmosphere,
   page depth, and the shared responsive surface contract. */
@font-face {
    font-family: "Brandink Sans";
    src: url('/static/vendor/fonts/brandink-sans-light.otf') format('opentype');
    font-style: normal;
    font-weight: 300;
    font-display: swap;
}
@font-face {
    font-family: "Brandink Sans";
    src: url('/static/vendor/fonts/brandink-sans-regular.otf') format('opentype');
    font-style: normal;
    font-weight: 500 900;
    font-display: swap;
}
:root { --font-display: "Brandink Sans", "Manrope", "Inter", sans-serif; }
@property --auth-login-focus-angle {
    syntax: "<angle>";
    initial-value: 0deg;
    inherits: false;
}

html { background: #05070b; }
body { background: transparent; }

body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(2,4,8,.32) 0%, rgba(3,5,9,.68) 55%, rgba(2,3,6,.88) 100%),
        radial-gradient(circle at 50% -15%, rgba(28,54,71,.28), transparent 58%),
        #05070b;
}

.aurora-backdrop { z-index: 0; opacity: .88; transform: translateZ(0); }
.aurora-backdrop::before,
.aurora-backdrop::after {
    content: "";
    position: absolute;
    width: 112vw;
    height: 124vh;
    top: -12vh;
    border-radius: 42%;
    filter: blur(82px);
    opacity: .24;
    transform-origin: 50% 50%;
    animation: arcfolio-aurora-drift 18s ease-in-out infinite alternate;
}
.aurora-backdrop::before {
    left: -24vw;
    background:
        linear-gradient(158deg, transparent 2% 15%, rgba(89,230,177,.64) 25%, rgba(78,211,228,.46) 34%, transparent 46% 58%, rgba(63,150,180,.24) 69%, transparent 82%),
        radial-gradient(ellipse at 30% 72%, rgba(77,220,182,.3), transparent 48%);
}
.aurora-backdrop::after {
    right: -28vw;
    background:
        linear-gradient(202deg, transparent 5% 19%, rgba(159,108,255,.46) 30%, rgba(92,130,255,.38) 41%, transparent 53% 64%, rgba(78,211,228,.24) 75%, transparent 88%),
        radial-gradient(ellipse at 68% 44%, rgba(145,105,255,.3), transparent 50%);
    animation-duration: 24s;
    animation-direction: alternate-reverse;
}
.aurora-backdrop span { animation: arcfolio-aurora-pulse 14s ease-in-out infinite alternate; }
.aurora-backdrop span:nth-child(1) { width: 70vw; height: 62vh; left: -14vw; top: 12vh; opacity: .19; }
.aurora-backdrop span:nth-child(2) { width: 68vw; height: 70vh; right: -10vw; top: 34vh; opacity: .18; animation-delay: -5s; animation-duration: 19s; }
.aurora-backdrop span:nth-child(3) { width: 76vw; height: 58vh; left: 12vw; bottom: -8vh; opacity: .16; animation-delay: -9s; animation-duration: 22s; }

@keyframes arcfolio-aurora-drift {
    0% { transform: translate3d(-3vw,-1vh,0) rotate(-4deg) scale(.94); }
    55% { transform: translate3d(4vw,4vh,0) rotate(2deg) scale(1.05); }
    100% { transform: translate3d(9vw,1vh,0) rotate(5deg) scale(.98); }
}
@keyframes arcfolio-aurora-pulse {
    from { transform: translate3d(-2vw,0,0) scale(.94); opacity: .13; }
    to { transform: translate3d(4vw,3vh,0) scale(1.08); opacity: .28; }
}

.mountain-horizon {
    position: fixed;
    z-index: 1;
    left: var(--sidebar-width, 0px);
    right: 0;
    bottom: 0;
    height: clamp(320px, 46vw, 560px);
    min-height: 0;
    pointer-events: none;
    background:
        linear-gradient(to top, rgba(1,2,4,.96) 0%, rgba(1,2,4,.4) 52%, transparent 92%),
        url('/static/img/arcfolio-mountains-hires-foreground.png') bottom center / 100% auto no-repeat;
    opacity: 1;
    mix-blend-mode: normal;
    mask-image: none;
    -webkit-mask-image: none;
    transform: translateZ(0);
}
body[data-page="auth"] .mountain-horizon { left: 0; }

.app-layout,
.auth-shell { z-index: 2; }
.sidebar {
    background: linear-gradient(180deg, rgba(5,8,14,.92), rgba(6,9,15,.8));
    box-shadow: 20px 0 70px rgba(0,0,0,.18);
}
.main-content { position: relative; }
.glass-card,
.dashboard-widget,
.page-header,
.settings-card {
    background: linear-gradient(145deg, rgba(19,24,34,.7), rgba(8,12,19,.58));
    border-color: rgba(255,255,255,.1);
    box-shadow: 0 24px 70px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.075);
    backdrop-filter: blur(26px) saturate(132%);
}
.arcfolio-wordmark { position: relative; display: inline-flex; width: 154px; max-width: 100%; aspect-ratio: 944 / 205; flex: 0 0 auto; }
.arcfolio-wordmark img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; }
.arcfolio-wordmark-pearl { opacity: 0; }
html[data-theme="pearl"] .arcfolio-wordmark-midnight { opacity: 0; }
html[data-theme="pearl"] .arcfolio-wordmark-pearl { opacity: 1; }
.auth-brand .arcfolio-wordmark { width: 174px; }
.mobile-brand .arcfolio-wordmark { width: 104px; }
.sidebar-signout { margin: 0; padding-top: 10px; border-top: 1px solid var(--border-soft); }
.sidebar-signout .sidebar-utility { width: 100%; color: var(--text-secondary); }
.sidebar-signout .sidebar-utility:hover { color: var(--text-primary); border-color: rgba(87,215,232,.2); background: rgba(87,215,232,.07); }
body[data-page="dashboard"] .command-header > div:first-child { min-width: 0; flex: 1 1 auto; }
body[data-page="dashboard"] .command-actions { flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; }
body[data-page="dashboard"] .sync-health { flex: 0 0 auto; white-space: nowrap; }
body[data-page="auth"][data-auth-view="login"] .auth-form { margin-top: 20px; }
body[data-page="auth"][data-auth-view="login"] .auth-recovery-links a {
    color: #f6f9ff;
    font-size: .7rem;
    font-weight: 650;
    letter-spacing: .085em;
    text-transform: uppercase;
}
html[data-theme="pearl"] body[data-page="auth"][data-auth-view="login"] .auth-recovery-links a { color: #17212c; }
body[data-page="auth"][data-auth-view="login"] .auth-form input:focus-visible {
    border-color: transparent;
    background:
        linear-gradient(rgba(4,8,14,.94),rgba(4,8,14,.94)) padding-box,
        conic-gradient(from var(--auth-login-focus-angle),#62e6a7,#57d7e8,#7b8dff,#9b7bff,#62e6a7) border-box;
    box-shadow: 0 0 0 3px rgba(87,215,232,.09), 0 0 18px rgba(98,230,167,.11), 0 0 22px rgba(155,123,255,.08);
    animation: auth-login-aurora-border 3.2s linear infinite;
}
html[data-theme="pearl"] body[data-page="auth"][data-auth-view="login"] .auth-form input:focus-visible {
    background:
        linear-gradient(rgba(255,255,255,.94),rgba(255,255,255,.94)) padding-box,
        conic-gradient(from var(--auth-login-focus-angle),#37b98b,#2ea9c7,#6673ef,#8c62e8,#37b98b) border-box;
}
@keyframes auth-login-aurora-border { to { --auth-login-focus-angle: 360deg; } }

html[data-theme="pearl"] { background: #edf2f4; }
html[data-theme="pearl"] body { background: transparent; }
html[data-theme="pearl"] body::before { background: linear-gradient(180deg, rgba(245,249,250,.68), rgba(226,234,238,.82)), #edf2f4; }
html[data-theme="pearl"] .mountain-horizon {
    opacity: .28;
    mix-blend-mode: multiply;
    filter: grayscale(.18) brightness(1.55) contrast(.8);
}
html[data-theme="pearl"] .aurora-backdrop { opacity: .34; }
html[data-theme="pearl"] .glass-card,
html[data-theme="pearl"] .dashboard-widget,
html[data-theme="pearl"] .page-header,
html[data-theme="pearl"] .settings-card {
    background: linear-gradient(145deg, rgba(255,255,255,.84), rgba(247,250,252,.67));
    border-color: rgba(30,53,68,.11);
    box-shadow: 0 22px 60px rgba(44,69,82,.1), inset 0 1px 0 rgba(255,255,255,.95);
}

@media (max-width: 1180px) { .mountain-horizon { left: 0; } }
@media (max-width: 600px) {
    .mountain-horizon { height: 190px; background-position: center bottom; background-size: auto 100%; }
    .aurora-backdrop::before, .aurora-backdrop::after { width: 160vw; height: 126vh; }
    .aurora-backdrop::before { left: -58vw; }
    .aurora-backdrop::after { right: -64vw; }
    .aurora-backdrop span:nth-child(1),
    .aurora-backdrop span:nth-child(2),
    .aurora-backdrop span:nth-child(3) { width: 118vw; }
    .mobile-brand .arcfolio-wordmark { width: 98px; }
    .sidebar-signout { padding-top: 8px; }
    body[data-page="dashboard"] .command-actions { width: 100%; justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
    .aurora-backdrop::before, .aurora-backdrop::after, .aurora-backdrop span { animation: none; }
    body[data-page="auth"][data-auth-view="login"] .auth-form input:focus-visible { animation: none; }
}

.subscription-add-card { padding: 0; overflow: hidden; }
.subscription-add-card > summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; cursor: pointer; list-style: none; }
.subscription-add-card > summary::-webkit-details-marker { display: none; }
.subscription-add-card > summary > span:first-child { display: grid; gap: 3px; }
.subscription-add-card > summary small { color: var(--text-muted); }
.subscription-add-form { display: grid; grid-template-columns: minmax(180px,1.5fr) repeat(3,minmax(150px,1fr)) auto; align-items: end; gap: 14px; padding: 0 20px 20px; border-top: 1px solid var(--border-soft); }
.subscription-add-form .form-field { padding-top: 16px; }
.subscription-add-form .action-button { margin-bottom: 1px; }
@media (max-width: 900px) { .subscription-add-form { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) { .subscription-add-form { grid-template-columns: 1fr; } }

.payoff-command-center {
    position: relative;
    display: grid;
    grid-template-columns: minmax(330px,.9fr) minmax(420px,1.1fr);
    gap: 20px 28px;
    margin: 0 0 24px;
    padding: clamp(24px,3vw,38px);
    overflow: hidden;
    border: 1px solid rgba(116,226,201,.18);
    border-radius: 28px;
    background:
        radial-gradient(circle at 4% 0%, rgba(91,226,174,.14), transparent 38%),
        radial-gradient(circle at 100% 0%, rgba(144,110,255,.15), transparent 42%),
        linear-gradient(145deg, rgba(19,27,37,.86), rgba(6,10,17,.76));
    box-shadow: 0 30px 90px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.1);
    backdrop-filter: blur(30px) saturate(140%);
}
.payoff-command-center::after { content:""; position:absolute; inset:auto 0 0; height:4px; background:linear-gradient(90deg,var(--aurora-green),var(--aurora-cyan),var(--aurora-violet)); opacity:.7; }
.payoff-command-primary { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.payoff-command-primary h2 { margin: 7px 0 2px; font-size: clamp(1.05rem,1.7vw,1.35rem); font-weight: 650; color: var(--text-secondary); }
.payoff-command-primary p { max-width: 540px; margin: 10px 0 20px; color: var(--text-secondary); }
.payoff-command-date { font: 800 clamp(2rem,4vw,4.3rem)/1.02 var(--font-display); letter-spacing: -.055em; color: #fff; text-shadow: 0 0 34px rgba(87,215,232,.18); }
.payoff-command-date-pending { font-size: clamp(1.7rem,3vw,2.8rem); }
.payoff-command-links { display: flex; flex-wrap: wrap; gap: 10px; }
.payoff-command-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-self: stretch; gap: 10px; }
.payoff-command-metrics > div { --payoff-metric-accent: 87,215,232; position:relative; isolation:isolate; min-width:0; min-height:126px; display:grid; grid-template-rows:auto 1fr; padding:15px 16px 8px; overflow:hidden; border:1px solid rgba(var(--payoff-metric-accent),.2); border-radius:16px; background:linear-gradient(140deg,rgba(var(--payoff-metric-accent),.105),rgba(255,255,255,.025) 52%,rgba(3,7,12,.48)); box-shadow:inset 0 1px 0 rgba(255,255,255,.065),0 14px 32px rgba(0,0,0,.14); }
.payoff-command-metrics > div::before { content:""; position:absolute; z-index:-1; inset:auto 0 0; height:45px; border-top:1px solid rgba(var(--payoff-metric-accent),.2); background:linear-gradient(90deg,rgba(var(--payoff-metric-accent),.2),rgba(var(--payoff-metric-accent),.07) 62%,transparent); }
.payoff-command-metrics > div::after { content:""; position:absolute; z-index:-1; width:130px; height:80px; right:-42px; bottom:-42px; border-radius:50%; background:rgba(var(--payoff-metric-accent),.8); filter:blur(36px); opacity:.15; }
.payoff-command-metrics .tone-debt { --payoff-metric-accent: 255,112,137; }
.payoff-command-metrics .tone-protected { --payoff-metric-accent: 98,230,167; }
.payoff-command-metrics .tone-extra { --payoff-metric-accent: 87,215,232; }
.payoff-command-metrics .tone-subscriptions { --payoff-metric-accent: 155,123,255; }
.payoff-metric-title { display:flex; align-items:flex-start; gap:9px; min-width:0; }
.payoff-metric-title > div { min-width:0; }
.payoff-metric-title > div > span { display:block; color:#fff; font-size:.69rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.payoff-metric-title > div > small { display:block; margin-top:3px; color:var(--text-muted); font-size:.58rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; white-space:nowrap; }
.payoff-metric-icon { display:grid; place-items:center; flex:0 0 auto; width:30px; height:30px; color:#fff; border-radius:9px; background:rgba(255,255,255,.07); }
.payoff-metric-icon svg { width:16px; height:16px; }
.payoff-command-metrics strong { align-self:end; display:flex; align-items:baseline; width:100%; min-width:0; white-space:nowrap; color:#fff; font:760 clamp(1.45rem,2.25vw,2rem)/1.05 var(--font-ui); letter-spacing:-.035em; }
.payoff-command-metrics .money-value { display:inline-flex; align-items:baseline; gap:.06em; color:#fff; }
.payoff-command-metrics .money-digits { color:#fff; }
.payoff-command-metrics strong > small { margin-left:4px; color:rgba(255,255,255,.6); font:650 .64rem var(--font-ui); letter-spacing:0; }
.payoff-action-list { grid-column:1 / -1; display: grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap: 10px; align-content: center; }
.payoff-action { display: grid; grid-template-columns: 8px minmax(0,1fr) auto; align-items: center; gap: 12px; min-width: 0; padding: 12px 14px; border: 1px solid rgba(255,255,255,.075); border-radius: 14px; background: rgba(255,255,255,.035); transition: transform .18s ease, border-color .18s ease; }
.payoff-action:hover { transform: translateX(3px); border-color: rgba(87,215,232,.26); }
.payoff-action > i { width: 7px; height: 28px; border-radius: 5px; background: var(--aurora-cyan); box-shadow: 0 0 15px rgba(87,215,232,.25); }
.payoff-action.tone-protected > i { background: var(--aurora-green); }
.payoff-action.tone-opportunity > i { background: var(--aurora-violet); }
.payoff-action span { min-width: 0; display: grid; gap: 2px; }
.payoff-action strong, .payoff-action small { overflow:visible; text-overflow:clip; white-space:normal; }
.payoff-action small { color: var(--text-muted); }
.payoff-action em { color: var(--text-primary); font-style: normal; font-weight: 760; white-space: nowrap; }
.payoff-opportunity { grid-column: 1 / -1; display: grid; grid-template-columns: auto auto minmax(0,1fr); align-items: baseline; gap: 8px 14px; padding:12px 14px; border:1px solid rgba(155,123,255,.13); border-radius:14px; background:linear-gradient(110deg,rgba(155,123,255,.085),rgba(255,255,255,.018)); color: var(--text-secondary); }
.payoff-opportunity > span { color: var(--aurora-violet); font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.payoff-opportunity > strong { color: var(--text-primary); }
.payoff-opportunity > small { color: var(--text-muted); }
html[data-theme="pearl"] .payoff-command-center { background: radial-gradient(circle at 0 0,rgba(96,214,173,.13),transparent 38%),radial-gradient(circle at 100% 0,rgba(139,110,255,.11),transparent 42%),rgba(255,255,255,.78); border-color:rgba(41,103,103,.15); box-shadow:0 28px 70px rgba(50,72,82,.12),inset 0 1px 0 #fff; }
html[data-theme="pearl"] .payoff-command-date { color: #132029; text-shadow:none; }
html[data-theme="pearl"] .payoff-command-metrics > div { background: linear-gradient(140deg,rgba(var(--payoff-metric-accent),.1),rgba(255,255,255,.82)); }
@media (max-width: 900px) {
    .payoff-command-center { grid-template-columns: 1fr; }
    .payoff-command-metrics, .payoff-action-list { grid-column:1; }
    .payoff-command-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .payoff-action-list { grid-template-columns:1fr; }
}
@media (max-width: 560px) {
    .payoff-command-center { padding: 21px 17px 25px; border-radius: 21px; }
    .payoff-command-metrics { grid-template-columns: 1fr 1fr; }
    .payoff-command-metrics > div { min-height:118px; padding:13px 11px 8px; }
    .payoff-command-metrics strong { font-size: 1.2rem; }
    .payoff-metric-title { gap:7px; }
    .payoff-metric-icon { width:27px; height:27px; }
    .payoff-metric-title > div > small { white-space:normal; }
    .payoff-action { grid-template-columns: 7px minmax(0,1fr); }
    .payoff-action em { grid-column: 2; }
    .payoff-action strong, .payoff-action small { white-space: normal; }
    .payoff-opportunity { grid-template-columns: 1fr; }
}

/* Dashboard Net Worth command only: keep its heading close to the card top. */
.net-worth-command .net-worth-copy {
    justify-content: flex-start;
    padding-top: 8px;
}
.net-worth-command.dashboard-layout-widget {
    margin-bottom: 4px;
}
.net-worth-command .period-change-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 20px;
}
.net-worth-command .period-change-grid > div {
    min-width: 0;
}
.net-worth-command::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 4px;
    background: linear-gradient(90deg, var(--aurora-green), var(--aurora-cyan), var(--aurora-violet));
    opacity: .7;
}
.net-worth-command .primary-change small,
.net-worth-command .period-change-grid small {
    color: var(--text-muted);
    font-size: .62rem;
    font-weight: 650;
    letter-spacing: .035em;
    white-space: nowrap;
}
.net-worth-command .primary-change small { margin-left: 5px; }
.net-worth-command .period-change-grid small { display: block; margin-top: 3px; }

@media (max-width: 420px) {
    .command-header h1 { font-size: clamp(1.75rem,9vw,2.15rem); line-height: 1.02; }
    body[data-page="intelligence"] .page-header.intelligence-hero h1 { max-width: 100%; white-space: normal; overflow-wrap: normal; font-size: 1.72rem; line-height: 1.02; }
    .analysis-period-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
    .analysis-period-actions > *, .analysis-period-actions .action-button { width: 100%; }
    .text-button { min-width: max-content; white-space: nowrap; }
    .subscription-row { overflow: hidden; padding: 14px; }
    .subscription-facts { grid-template-columns: 1fr; gap: 9px; }
    .subscription-facts div { grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: 12px; }
    .subscription-facts span, .subscription-facts strong { min-width: 0; }
    .subscription-actions { align-items: stretch; flex-direction: column; }
    .subscription-actions .action-button, .subscription-actions form { width: 100%; }
}

.workspace-more { position: relative; margin-left: auto; }
.workspace-more > summary { min-height: 42px; display: flex; align-items: center; padding: 0 15px; border-radius: 12px; color: var(--text-secondary); cursor: pointer; list-style: none; white-space: nowrap; }
.workspace-more > summary::-webkit-details-marker { display: none; }
.workspace-more > summary::after { content: "⌄"; margin-left: 7px; color: var(--text-muted); }
.workspace-more > summary.active { color: var(--text-primary); background: rgba(255,255,255,.06); }
.workspace-more > div { position: absolute; z-index: 20; top: calc(100% + 8px); right: 0; min-width: 210px; display: grid; gap: 3px; padding: 8px; border: 1px solid var(--border-strong); border-radius: 14px; background: rgba(8,12,19,.96); box-shadow: 0 18px 50px rgba(0,0,0,.34); backdrop-filter: blur(24px); }
.workspace-more > div a { padding: 10px 12px; border-radius: 9px; white-space: nowrap; }
.workspace-more > div a:hover, .workspace-more > div a.active { background: rgba(255,255,255,.06); color: var(--text-primary); }
.transaction-tool-disclosure { overflow: hidden; }
.transaction-tool-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px; cursor: pointer; list-style: none; }
.transaction-tool-disclosure > summary::-webkit-details-marker { display: none; }
.transaction-tool-disclosure > summary > span:first-child { display: grid; gap: 3px; }
.transaction-tool-disclosure > summary small { color: var(--text-muted); }
.transaction-tool-disclosure[open] > summary { border-bottom: 1px solid var(--border-soft); }
.transaction-tool-disclosure > form, .transaction-tool-disclosure > .analysis-job-summary { margin: 16px 18px 18px; }
.settings-streamlined .settings-grid { grid-template-columns: 1fr; }
.settings-streamlined .settings-card:not(.settings-card-selected):not(:target) { display: none; }
.settings-streamlined .settings-card-selected, .settings-streamlined .settings-card:target { grid-column: 1 / -1; }
.settings-streamlined .settings-nav { position: sticky; top: 12px; z-index: 18; display: flex; gap: 6px; overflow-x: auto; padding: 8px; border: 1px solid var(--border-soft); border-radius: 16px; background: rgba(7,11,17,.82); box-shadow: 0 18px 48px rgba(0,0,0,.18); backdrop-filter: blur(24px); scrollbar-width: none; }
.settings-streamlined .settings-nav::-webkit-scrollbar { display: none; }
.settings-streamlined .settings-nav a { flex: 0 0 auto; padding: 9px 13px; border-radius: 10px; white-space: nowrap; }
.settings-streamlined .settings-nav a.active { color: var(--text-primary); background: linear-gradient(120deg,rgba(98,230,167,.12),rgba(87,215,232,.09),rgba(155,123,255,.12)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
html[data-theme="pearl"] .workspace-more > div, html[data-theme="pearl"] .settings-streamlined .settings-nav { background: rgba(252,254,255,.94); }
@media (max-width: 650px) { .workspace-more { margin-left: 0; } .workspace-more > div { left: 0; right: auto; } }
body[data-page="dashboard"] .recent-widget .merchant-avatar{
    color:#fff;
    border:1px solid rgba(98,230,167,.28);
    background:linear-gradient(135deg,rgba(98,230,167,.58),rgba(87,215,232,.48) 52%,rgba(155,123,255,.58));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 8px 24px rgba(57,190,196,.12);
}
html[data-theme="pearl"] body[data-page="dashboard"] .recent-widget .merchant-avatar{
    color:#10213a;
    border-color:rgba(38,143,157,.24);
    background:linear-gradient(135deg,rgba(98,230,167,.42),rgba(87,215,232,.34) 52%,rgba(155,123,255,.32));
}

body[data-page="dashboard"] .category-widget .donut-center{
    display:block;
}
body[data-page="dashboard"] .category-widget .donut-center .category-total{
    position:absolute;
    top:50%;
    left:50%;
    width:max-content;
    max-width:82%;
    transform:translate(-50%,-50%);
}
body[data-page="dashboard"] .category-widget .donut-center .category-total .money-value{
    position:relative;
    justify-content:center;
    font-size:clamp(1.42rem,2vw,1.62rem);
    line-height:1;
    white-space:nowrap;
}
body[data-page="dashboard"] .category-widget .donut-center .category-total .money-symbol{
    position:absolute;
    top:.08em;
    right:calc(100% + .1em);
    margin-right:0;
}
body[data-page="dashboard"] .category-widget .donut-center>span{
    position:absolute;
    top:calc(50% + 22px);
    left:50%;
    transform:translateX(-50%);
}
body[data-page="dashboard"] .category-widget .category-legend>div{
    min-width:0;
}
body[data-page="dashboard"] .category-widget .category-legend span{
    min-width:0;
}
body[data-page="dashboard"] .category-widget .category-legend strong{
    white-space:nowrap;
}

body[data-page="dashboard"] .budget-widget .widget-heading{
    align-items:center;
    flex-wrap:wrap;
    margin-bottom:16px;
}
body[data-page="dashboard"] .budget-widget .budget-remaining-chip{
    display:inline-flex;
    flex:0 0 auto;
    align-items:baseline;
    gap:.32em;
    min-height:30px;
    padding:6px 10px;
    border:1px solid;
    border-radius:999px;
    font-size:.72rem;
    font-weight:800;
    line-height:1;
    white-space:nowrap;
}
body[data-page="dashboard"] .budget-widget .budget-remaining-chip.is-positive{
    color:var(--positive);
    border-color:rgba(98,230,167,.28);
    background:rgba(98,230,167,.09);
}
body[data-page="dashboard"] .budget-widget .budget-remaining-chip.is-nonpositive{
    color:var(--danger);
    border-color:rgba(255,112,122,.3);
    background:rgba(255,112,122,.09);
}
body[data-page="dashboard"] .budget-widget .budget-remaining-chip .money-value{
    color:inherit;
    font-size:.76rem;
    font-weight:800;
}
body[data-page="dashboard"] .budget-widget .budget-remaining-chip small{
    color:inherit;
    font-size:.62rem;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}
body[data-page="dashboard"] .budget-widget .budget-pulse{
    display:grid;
    gap:10px;
}
body[data-page="dashboard"] .budget-widget .budget-pulse-row{
    display:grid;
    grid-template-columns:minmax(130px,.85fr) minmax(96px,1.25fr) 44px;
    align-items:center;
    gap:10px;
    min-width:0;
    min-height:54px;
    margin:0;
    padding:10px 12px;
    border:1px solid rgba(255,255,255,.055);
    border-radius:13px;
    background:linear-gradient(110deg,rgba(255,255,255,.035),rgba(255,255,255,.012));
}
body[data-page="dashboard"] .budget-widget .budget-pulse-copy{
    min-width:0;
}
body[data-page="dashboard"] .budget-widget .budget-pulse-copy>strong{
    display:block;
    color:var(--text-primary);
    font-size:.76rem;
    line-height:1.15;
    white-space:nowrap;
}
body[data-page="dashboard"] .budget-widget .budget-pulse-values{
    display:flex;
    align-items:baseline;
    gap:.28em;
    min-width:0;
    margin-top:4px;
    color:var(--text-muted);
    font-size:.68rem;
    line-height:1;
    white-space:nowrap;
}
body[data-page="dashboard"] .budget-widget .budget-pulse-values .money-value{
    display:inline-flex;
    width:auto;
    color:inherit;
    font-size:inherit;
}
body[data-page="dashboard"] .budget-widget .budget-pulse-values small{
    color:var(--text-muted);
    font-size:.62rem;
}
body[data-page="dashboard"] .budget-widget .budget-pulse-row>em{
    min-width:0;
    color:var(--text-secondary);
    font-size:.7rem;
    font-weight:750;
    text-align:right;
    white-space:nowrap;
}
html[data-theme="pearl"] body[data-page="dashboard"] .budget-widget .budget-pulse-row{
    border-color:rgba(16,34,51,.08);
    background:linear-gradient(110deg,rgba(255,255,255,.68),rgba(235,242,248,.38));
}
@media(max-width:720px){
    body[data-page="dashboard"] .budget-widget .budget-pulse-row{
        grid-template-columns:minmax(0,1fr) auto;
        gap:8px 12px;
    }
    body[data-page="dashboard"] .budget-widget .budget-pulse-row>.progress-track{
        grid-column:1/-1;
        grid-row:2;
    }
}

/* Financial Calendar: status fidelity, contained agenda rows, and local navigation. */
body[data-page="dashboard"] #financial-calendar{
    --calendar-scheduled:#57d7e8;
    --calendar-projected:#9b7bff;
    --calendar-paid:#62e6a7;
    --calendar-missed:#ff707a;
}
body[data-page="dashboard"] #financial-calendar[aria-busy="true"]{
    opacity:.72;
    cursor:progress;
    transition:opacity .16s ease;
}
body[data-page="dashboard"] #financial-calendar[aria-busy="true"] :is(a,button){
    pointer-events:none;
}
body[data-page="dashboard"] #financial-calendar .calendar-state-key .scheduled::before{
    background:var(--calendar-scheduled);
}
body[data-page="dashboard"] #financial-calendar .calendar-state-key .projected::before{
    box-sizing:border-box;
    background:transparent;
    border:1px dashed var(--calendar-projected);
}
body[data-page="dashboard"] #financial-calendar .calendar-state-key .paid::before{
    background:var(--calendar-paid);
}
body[data-page="dashboard"] #financial-calendar .calendar-state-key .missed::before{
    background:var(--calendar-missed);
}
body[data-page="dashboard"] #financial-calendar .calendar-event-markers{
    position:absolute;
    left:50%;
    bottom:4px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:2px;
    max-width:calc(100% - 4px);
    transform:translateX(-50%);
    pointer-events:none;
}
body[data-page="dashboard"] #financial-calendar .calendar-event-markers>i{
    box-sizing:border-box;
    position:static;
    flex:0 0 4px;
    width:4px;
    height:4px;
    border:0;
    border-radius:50%;
    background:var(--calendar-scheduled);
    outline:0;
}
body[data-page="dashboard"] #financial-calendar .calendar-event-markers>i.state-scheduled{
    background:var(--calendar-scheduled);
}
body[data-page="dashboard"] #financial-calendar .calendar-event-markers>i.state-projected{
    background:transparent;
    border:1px dashed var(--calendar-projected);
}
body[data-page="dashboard"] #financial-calendar .calendar-event-markers>i.state-paid{
    background:var(--calendar-paid);
}
body[data-page="dashboard"] #financial-calendar .calendar-event-markers>i.state-missed{
    background:var(--calendar-missed);
}
body[data-page="dashboard"] #financial-calendar .calendar-agenda{
    max-height:none;
    overflow:visible;
}
body[data-page="dashboard"] #financial-calendar[data-widget-size="compact"] .calendar-agenda{
    max-height:none;
    overflow:visible;
}
body[data-page="dashboard"] #financial-calendar .calendar-event-row{
    display:grid;
    grid-template-columns:8px minmax(0,1fr) auto;
    align-items:center;
    gap:9px;
    min-width:0;
    padding:10px 4px;
    border-bottom:1px solid var(--border-soft);
    border-left:0;
    overflow:hidden;
}
body[data-page="dashboard"] #financial-calendar .calendar-event-row[hidden]{
    display:none;
}
body[data-page="dashboard"] #financial-calendar .calendar-event-row:last-of-type{
    border-bottom:0;
}
body[data-page="dashboard"] #financial-calendar .calendar-event-row>i{
    box-sizing:border-box;
    width:7px;
    height:7px;
    border-radius:50%;
    background:var(--calendar-scheduled);
}
body[data-page="dashboard"] #financial-calendar .calendar-event-row.state-projected>i{
    background:transparent;
    border:1px dashed var(--calendar-projected);
}
body[data-page="dashboard"] #financial-calendar .calendar-event-row.state-paid>i{
    background:var(--calendar-paid);
}
body[data-page="dashboard"] #financial-calendar .calendar-event-row.state-missed{
    border-left:0;
}
body[data-page="dashboard"] #financial-calendar .calendar-event-row.state-missed>i{
    background:var(--calendar-missed);
}
body[data-page="dashboard"] #financial-calendar .calendar-event-row>span{
    min-width:0;
}
body[data-page="dashboard"] #financial-calendar .calendar-event-row :is(strong,small){
    overflow-wrap:anywhere;
}
body[data-page="dashboard"] #financial-calendar .calendar-event-row>em,
body[data-page="dashboard"] #financial-calendar .calendar-event-row>em .money-value{
    width:auto;
    white-space:nowrap;
}
body[data-page="dashboard"] #financial-calendar .calendar-refresh-error{
    margin:-4px 0 12px;
}
body[data-page="dashboard"] .accounts-widget{
    min-width:0;
    overflow:hidden;
}
body[data-page="dashboard"] .accounts-widget .account-spark-grid{
    grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));
    align-items:stretch;
}
body[data-page="dashboard"] .accounts-widget .account-spark-card{
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:auto 64px auto;
    align-content:start;
    min-width:0;
    min-height:148px;
    overflow:hidden;
}
body[data-page="dashboard"] .accounts-widget .account-spark-heading{
    min-width:0;
}
body[data-page="dashboard"] .accounts-widget .account-spark-heading :is(strong,span){
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
body[data-page="dashboard"] .accounts-widget .account-spark-card>em{
    min-width:0;
    white-space:nowrap;
}
body[data-page="dashboard"] .accounts-widget .account-spark-chart{
    position:relative;
    grid-column:1/-1;
    width:100%;
    min-width:0;
    height:64px;
    overflow:hidden;
}
body[data-page="dashboard"] .accounts-widget .account-spark-chart canvas{
    display:block;
    width:100% ;
    max-width:100%;
    height:64px ;
}
body[data-page="dashboard"] .accounts-widget .account-spark-card>small{
    grid-column:1/-1;
    min-width:0;
    margin:0;
    overflow-wrap:anywhere;
}
body[data-page="dashboard"] .event-drawer .match-proposals article{
    flex-wrap:wrap;
}
body[data-page="dashboard"] .event-drawer .match-proposals article>span{
    min-width:180px;
}
body[data-page="dashboard"] .debt-widget .payoff-duration-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:66px;
    padding:5px 9px;
    border:1px solid rgba(244,185,94,.28);
    border-radius:999px;
    background:rgba(244,185,94,.10);
    color:var(--warning);
    font-size:.7rem;
    font-style:normal;
    font-weight:800;
    line-height:1;
    letter-spacing:.06em;
    text-transform:uppercase;
    white-space:nowrap;
}
@media(max-width:560px){
    body[data-page="dashboard"] #financial-calendar .widget-heading{
        display:grid;
        grid-template-columns:minmax(0,1fr);
        gap:12px;
    }
    body[data-page="dashboard"] #financial-calendar .calendar-nav{
        justify-self:start;
        flex-wrap:nowrap;
    }
    body[data-page="dashboard"] #financial-calendar .calendar-nav a{
        min-height:38px;
    }
    body[data-page="dashboard"] #financial-calendar .mini-calendar{
        padding:10px 7px;
    }
    body[data-page="dashboard"] #financial-calendar :is(.calendar-weekdays,.calendar-days){
        gap:2px;
    }
    body[data-page="dashboard"] #financial-calendar .calendar-day{
        min-width:0;
        overflow:hidden;
    }
    body[data-page="dashboard"] #financial-calendar .calendar-event-row{
        grid-template-columns:8px minmax(0,1fr);
        gap:8px;
    }
    body[data-page="dashboard"] #financial-calendar .calendar-event-row>em{
        grid-column:2;
        justify-self:start;
    }
    body[data-page="dashboard"] .event-drawer .match-proposals article{
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    body[data-page="dashboard"] .event-drawer .match-proposals article>span{
        grid-column:1/-1;
        min-width:0;
    }
    body[data-page="dashboard"] .event-drawer .match-proposals button{
        min-height:40px;
    }
}
