:root, [data-bs-theme="light"] { color-scheme: light; --fundsy-primary: #6366f1; --fundsy-primary-dark: #4f46e5; --fundsy-primary-soft: #eef2ff; --fundsy-page-bg: #f8fafc; --fundsy-surface: #fff; --fundsy-surface-raised: #fff; --fundsy-text: #0f172a; --fundsy-text-muted: #64748b; --fundsy-border: #e2e8f0; --fundsy-hover: #f8faff; --fundsy-shadow: rgba(15, 23, 42, .10); --bs-body-bg: #f8fafc; --bs-body-color: #0f172a; --bs-border-color: #e2e8f0; --bs-secondary-color: #64748b; --bs-tertiary-bg: #f1f5f9; --bs-primary: #6366f1; --bs-primary-rgb: 99, 102, 241; --bs-link-color: #4f46e5; --bs-link-hover-color: #4338ca; }
[data-bs-theme="dark"] { color-scheme: dark; --fundsy-primary: #818cf8; --fundsy-primary-dark: #a5b4fc; --fundsy-primary-soft: #202c5a; --fundsy-page-bg: #0f172a; --fundsy-surface: #111c2e; --fundsy-surface-raised: #162238; --fundsy-text: #e2e8f0; --fundsy-text-muted: #94a3b8; --fundsy-border: #283752; --fundsy-hover: #182741; --fundsy-shadow: rgba(0, 0, 0, .28); --bs-body-bg: #0f172a; --bs-body-color: #e2e8f0; --bs-border-color: #283752; --bs-secondary-color: #94a3b8; --bs-tertiary-bg: #162238; --bs-primary: #818cf8; --bs-primary-rgb: 129, 140, 248; --bs-link-color: #a5b4fc; --bs-link-hover-color: #c7d2fe; --bs-card-bg: #111c2e; --bs-card-color: #e2e8f0; --bs-modal-bg: #162238; --bs-modal-color: #e2e8f0; --bs-dropdown-bg: #162238; --bs-dropdown-color: #e2e8f0; --bs-dropdown-link-color: #e2e8f0; --bs-dropdown-link-hover-color: #fff; --bs-dropdown-link-hover-bg: #223150; --bs-dropdown-border-color: #283752; --bs-form-control-bg: #111c2e; --bs-form-control-color: #e2e8f0; --bs-form-control-border-color: #3a4b68; --bs-form-select-bg: #111c2e; --bs-form-select-color: #e2e8f0; --bs-form-select-border-color: #3a4b68; }
body.fundsy-app-shell { min-width: 320px; background: var(--fundsy-page-bg); color: var(--fundsy-text); font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.fundsy-profile-option > .mdi-account-circle-outline { color: var(--fundsy-primary); font-size: 19px; }
.fundsy-app-shell .mdi::before { font-family: "Material Design Icons"; font-style: normal; font-weight: normal; }
.fundsy-app { min-height: 100vh; }.fundsy-skip-link { position: fixed; z-index: 1100; top: .75rem; left: .75rem; }
.fundsy-topbar { position: sticky; z-index: 1020; top: 0; display: flex; height: 72px; align-items: center; justify-content: space-between; padding: 0 24px; border-bottom: 1px solid var(--fundsy-border); background: var(--fundsy-surface); }.fundsy-topbar__start, .fundsy-topbar__end { display: flex; align-items: center; gap: 12px; }
.fundsy-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--fundsy-text); font-size: 20px; font-weight: 700; text-decoration: none; }.fundsy-brand:hover { color: var(--fundsy-primary-dark); }.fundsy-brand__mark { width: 32px; height: 32px; object-fit: contain; }
.fundsy-icon-button { display: inline-grid; width: 40px; height: 40px; padding: 0; place-items: center; border: 1px solid var(--fundsy-border); border-radius: 10px; color: var(--fundsy-text-muted); background: var(--fundsy-surface); }.fundsy-icon-button:hover { border-color: var(--fundsy-primary); color: var(--fundsy-primary-dark); background: var(--fundsy-primary-soft); }.fundsy-icon-button i { font-size: 21px; }
.fundsy-quick-action { display: inline-flex; min-height: 40px; align-items: center; gap: 6px; padding: 0 13px; border-radius: 10px; color: #fff; background: var(--fundsy-primary); font-size: 14px; font-weight: 600; }.fundsy-quick-action:hover { color: #fff; background: var(--fundsy-primary-dark); }.fundsy-quick-action i { font-size: 18px; }
.fundsy-profile-toggle { display: inline-flex; align-items: center; gap: 9px; padding: 3px; border: 0; color: var(--fundsy-text); }.fundsy-profile-toggle strong { font-size: 13px; line-height: 1.2; }.fundsy-profile-toggle small { color: var(--fundsy-text-muted); font-size: 11px; }.fundsy-profile-avatar { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; color: var(--fundsy-primary-dark); background: var(--fundsy-primary-soft); }.fundsy-profile-avatar i { font-size: 20px; }
.fundsy-profile-menu { border: 1px solid var(--fundsy-border); border-radius: 12px; box-shadow: 0 12px 28px var(--fundsy-shadow); }.fundsy-profile-menu .dropdown-item { display: flex; align-items: center; gap: 9px; padding: 9px 13px; font-size: 14px; }.fundsy-profile-menu i { color: var(--fundsy-text-muted); font-size: 18px; }
.fundsy-sidebar { position: fixed; z-index: 1010; top: 72px; bottom: 0; left: 0; width: 248px; flex-direction: column; overflow-y: auto; padding: 22px 14px; border-right: 1px solid var(--fundsy-border); background: var(--fundsy-surface); }.fundsy-sidebar__nav { display: flex; flex-direction: column; gap: 3px; }.fundsy-nav-label { margin: 21px 10px 6px; color: #94a3b8; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.fundsy-active-profile { margin-bottom: 16px; padding: 0 3px 17px; border-bottom: 1px solid var(--fundsy-border); }.fundsy-active-profile__label { display: block; margin: 0 7px 6px; color: var(--fundsy-text-muted); font-size: 11px; font-weight: 600; }.fundsy-active-profile__toggle { display: flex; width: 100%; align-items: center; gap: 9px; padding: 7px; border: 1px solid var(--fundsy-border); border-radius: 10px; color: var(--fundsy-text); background: var(--fundsy-surface-raised); text-align: left; }.fundsy-active-profile__toggle:hover { border-color: var(--fundsy-primary); color: var(--fundsy-text); background: var(--fundsy-hover); }.fundsy-active-profile__toggle > .mdi-chevron-down { margin-left: auto; color: var(--fundsy-text-muted); font-size: 18px; }.fundsy-active-profile__icon { display: grid; width: 32px; height: 32px; flex: 0 0 32px; place-items: center; border-radius: 9px; color: var(--fundsy-primary-dark); background: var(--fundsy-primary-soft); }.fundsy-active-profile__icon i { font-size: 19px; }.fundsy-active-profile__content { display: flex; min-width: 0; flex-direction: column; }.fundsy-active-profile__content strong, .fundsy-active-profile__content small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.fundsy-active-profile__content strong { font-size: 13px; line-height: 1.35; }.fundsy-active-profile__content small { color: var(--fundsy-text-muted); font-size: 11px; line-height: 1.35; }.fundsy-profile-selector-menu { width: 230px; padding: 8px; }.fundsy-profile-selector-menu__title { margin: 4px 7px 7px; color: var(--fundsy-text-muted); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }.fundsy-profile-option { display: flex; align-items: center; gap: 9px; padding: 8px; border-radius: 8px; }.fundsy-profile-option > .mdi-account-group-outline { color: var(--fundsy-primary); font-size: 19px; }.fundsy-profile-option span { display: flex; min-width: 0; flex: 1; flex-direction: column; color: var(--fundsy-text); font-size: 13px; font-weight: 600; }.fundsy-profile-option small { color: var(--fundsy-text-muted); font-size: 11px; font-weight: 400; }.fundsy-profile-option > .mdi-check { color: var(--fundsy-primary); font-size: 18px; }.fundsy-profile-option.is-current { background: var(--fundsy-primary-soft); }.fundsy-profile-manage-link { display: flex; align-items: center; gap: 9px; padding: 8px; border-radius: 8px; color: var(--fundsy-primary-dark); font-size: 13px; font-weight: 600; }.fundsy-profile-manage-link i { font-size: 19px; }
.fundsy-nav-item { display: flex; min-height: 42px; align-items: center; gap: 12px; padding: 0 11px; border-radius: 10px; color: var(--fundsy-text-muted); font-size: 14px; font-weight: 500; text-decoration: none; }.fundsy-nav-item i { width: 20px; color: #94a3b8; font-size: 20px; text-align: center; }.fundsy-nav-item:hover { color: var(--fundsy-primary-dark); background: var(--fundsy-hover); }.fundsy-nav-item.is-active { color: var(--fundsy-primary-dark); background: var(--fundsy-primary-soft); font-weight: 600; }.fundsy-nav-item.is-active i { color: var(--fundsy-primary); }
.fundsy-main { min-height: calc(100vh - 72px); margin-left: 248px; }.fundsy-page-container { width: 100%; max-width: 1440px; min-height: calc(100vh - 144px); margin: 0 auto; padding: 32px; }.fundsy-footer { display: flex; gap: 8px; margin-left: 248px; padding: 20px 32px 28px; color: #94a3b8; font-size: 12px; }.fundsy-footer__divider { color: #cbd5e1; }
.fundsy-mobile-navigation { width: min(88vw, 320px); background: var(--fundsy-surface); }.fundsy-mobile-navigation .offcanvas-header { padding: 18px 20px; border-bottom: 1px solid var(--fundsy-border); }.fundsy-sidebar--mobile { position: static; width: auto; padding: 16px 14px; border: 0; }.fundsy-sidebar--mobile .fundsy-sidebar__nav { width: 100%; }
.fundsy-processing-modal { border: 1px solid var(--fundsy-border); border-radius: 16px; box-shadow: 0 18px 48px var(--fundsy-shadow); }.fundsy-processing-modal .modal-body { padding: 32px 28px; }.fundsy-processing-modal .spinner-border { width: 2rem; height: 2rem; border-width: .2em; }.fundsy-processing-modal h2 { margin: 18px 0 6px; font-size: 17px; font-weight: 600; }.fundsy-processing-modal p { color: var(--fundsy-text-muted); font-size: 14px; }
.fundsy-quick-add-modal { border: 1px solid var(--fundsy-border); border-radius: var(--fundsy-radius-card, 1rem); box-shadow: 0 18px 48px var(--fundsy-shadow); }.fundsy-quick-add-modal .modal-header { padding: 24px 24px 0; }.fundsy-quick-add-modal .modal-body { padding: 18px 24px 24px; }.fundsy-quick-add-modal__eyebrow { color: var(--fundsy-primary); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }.fundsy-quick-add-grid { display: grid; gap: 8px; }.fundsy-quick-add-option { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--fundsy-border); border-radius: 12px; color: var(--fundsy-text); text-decoration: none; transition: border-color .15s ease, background-color .15s ease, transform .15s ease; }.fundsy-quick-add-option:hover { border-color: var(--fundsy-primary); color: var(--fundsy-text); background: var(--fundsy-hover); transform: translateY(-1px); }.fundsy-quick-add-option > span:not(.fundsy-quick-add-option__icon) { display: flex; min-width: 0; flex: 1; flex-direction: column; }.fundsy-quick-add-option strong { font-size: 14px; }.fundsy-quick-add-option small { margin-top: 2px; color: var(--fundsy-text-muted); font-size: 12px; }.fundsy-quick-add-option > .mdi { color: var(--fundsy-text-muted); font-size: 20px; }.fundsy-quick-add-option__icon { display: grid; width: 40px; height: 40px; flex: 0 0 40px; place-items: center; border-radius: 10px; }.fundsy-quick-add-option__icon i { font-size: 21px; }.fundsy-quick-add-option__icon.is-transaction { color: #4f46e5; background: #eef2ff; }.fundsy-quick-add-option__icon.is-wallet { color: #0284c7; background: #e0f2fe; }.fundsy-quick-add-option__icon.is-goal { color: #c2410c; background: #ffedd5; }.fundsy-quick-add-option__icon.is-budget { color: #a16207; background: #fef9c3; }.fundsy-quick-add-option__icon.is-investment { color: #047857; background: #d1fae5; }[data-bs-theme="dark"] .fundsy-quick-add-option__icon.is-transaction { color: #a5b4fc; background: #202c5a; }[data-bs-theme="dark"] .fundsy-quick-add-option__icon.is-wallet { color: #7dd3fc; background: #0c3653; }[data-bs-theme="dark"] .fundsy-quick-add-option__icon.is-goal { color: #fdba74; background: #4a2814; }[data-bs-theme="dark"] .fundsy-quick-add-option__icon.is-budget { color: #fde68a; background: #4a3c0b; }[data-bs-theme="dark"] .fundsy-quick-add-option__icon.is-investment { color: #6ee7b7; background: #123d36; }
.modal-backdrop.show { opacity: .58; backdrop-filter: blur(3px); }
.fundsy-dashboard-profile-empty__icon { width: 64px; height: 64px; flex: 0 0 64px; line-height: 1; }.fundsy-dashboard-profile-empty__icon i { font-size: 28px; line-height: 1; }
.fundsy-app-shell .card, .fundsy-app-shell .modal-content, .fundsy-app-shell .dropdown-menu, .fundsy-app-shell .offcanvas, .fundsy-app-shell .form-control, .fundsy-app-shell .form-select, .fundsy-app-shell .input-group-text { background-color: var(--fundsy-surface-raised); border-color: var(--fundsy-border); color: var(--fundsy-text); }.fundsy-app-shell .form-control::placeholder { color: var(--fundsy-text-muted); opacity: .8; }.fundsy-app-shell .form-control:focus, .fundsy-app-shell .form-select:focus { border-color: var(--fundsy-primary); box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .18); }.fundsy-app-shell .table { --bs-table-bg: var(--fundsy-surface-raised); --bs-table-color: var(--fundsy-text); --bs-table-border-color: var(--fundsy-border); --bs-table-striped-bg: var(--fundsy-hover); --bs-table-striped-color: var(--fundsy-text); --bs-table-hover-bg: var(--fundsy-hover); --bs-table-hover-color: var(--fundsy-text); }.fundsy-app-shell .btn-light { --bs-btn-color: var(--fundsy-text); --bs-btn-bg: var(--fundsy-hover); --bs-btn-border-color: var(--fundsy-border); --bs-btn-hover-color: var(--fundsy-text); --bs-btn-hover-bg: var(--fundsy-primary-soft); --bs-btn-hover-border-color: var(--fundsy-primary); }.fundsy-app-shell .btn-close { filter: var(--fundsy-close-filter, none); }
.fundsy-app-shell .btn-primary { --bs-btn-bg: var(--fundsy-primary); --bs-btn-border-color: var(--fundsy-primary); --bs-btn-hover-bg: var(--fundsy-primary-dark); --bs-btn-hover-border-color: var(--fundsy-primary-dark); --bs-btn-active-bg: var(--fundsy-primary-dark); --bs-btn-active-border-color: var(--fundsy-primary-dark); }.fundsy-app-shell .btn-outline-secondary { --bs-btn-color: var(--fundsy-text-muted); --bs-btn-border-color: var(--fundsy-border); --bs-btn-hover-bg: var(--fundsy-hover); --bs-btn-hover-border-color: var(--fundsy-border); --bs-btn-hover-color: var(--fundsy-text); }
[data-bs-theme="dark"] .fundsy-app-shell { --fundsy-close-filter: invert(1) grayscale(100%) brightness(200%); }
@media (max-width: 991.98px) { .fundsy-main, .fundsy-footer { margin-left: 0; }.fundsy-page-container { padding: 24px; }.fundsy-footer { padding: 16px 24px 24px; } }
@media (max-width: 575.98px) { .fundsy-topbar { height: 64px; padding: 0 14px; }.fundsy-main { min-height: calc(100vh - 64px); }.fundsy-brand { font-size: 18px; }.fundsy-brand__mark { width: 29px; height: 29px; }.fundsy-topbar__start, .fundsy-topbar__end { gap: 7px; }.fundsy-quick-action { width: 40px; justify-content: center; padding: 0; }.fundsy-notification-button { display: none; }.fundsy-page-container { padding: 20px 16px; }.fundsy-footer { flex-wrap: wrap; padding: 16px; }.fundsy-footer__divider { display: none; } }

/* Shared surface token: use Wallet Overview's rounded-4 geometry everywhere. */
:root { --fundsy-radius-card: 1rem; }
.fundsy-app-shell .card { --bs-card-border-radius: var(--fundsy-radius-card); --bs-card-inner-border-radius: calc(var(--fundsy-radius-card) - var(--bs-border-width)); border-radius: var(--fundsy-radius-card); }
