*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{line-height:1.5;-webkit-text-size-adjust:100%}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter/inter-latin-300-normal.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter/inter-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter/inter-latin-500-normal.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter/inter-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter/inter-latin-700-normal.woff2) format("woff2")}:root{--color-primary: #7B93C0;--color-primary-dark: #6B80A7;--color-primary-hover: #7086AF;--btn-primary-hover-bg: #7086AF;--btn-primary-active-bg: #6B80A7;--color-primary-light: #9BADC8;--color-primary-lighter: #c8e0ff;--color-primary-rgb: 123, 147, 192;--color-primary-foreground: #ffffff;--color-primary-foreground-rgb: 255, 255, 255;--color-primary-icon-filter: brightness(0) invert(1);--color-background: #ebeef5;--color-surface: #F9FAFB;--color-surface-hover: #F3F4F6;--color-text-primary: #4A4A4A;--color-text-secondary: #6B7280;--color-border: #E5E7EB;--color-border-light: #F3F4F6;--color-gray-button: #dee0e4;--color-gray-button-hover: #D1D5DB;--color-gray-button-text: #4A4A4A;--color-success: #10B981;--color-error: #EF4444;--color-warning: #F59E0B;--color-info: #3B82F6;--color-grade-green: #10b981;--color-grade-yellow: #fbbf24;--color-grade-red: #ef4444;--color-grade-dark-red: #b91c1c;--grade-green-bg: #d4edda;--grade-yellow-bg: #fff3cd;--grade-red-bg: #f8d7da;--grade-green-text: #155724;--grade-yellow-text: #856404;--grade-red-text: #721c24;--grade-chart-green: #bfe6c9;--grade-chart-yellow: #ffe3a3;--grade-chart-red: #f0aeb7;--grade-chart-red-dark: #b25b66;--semantic-grade-green: var(--color-grade-green, #10b981);--semantic-grade-yellow: var(--color-grade-yellow, #fbbf24);--semantic-grade-red: var(--color-grade-red, #ef4444);--semantic-grade-red-dark: #b91c1c;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--page-title-content-gap: var(--spacing-lg);--page-title-font-size: var(--text-2xl);--page-title-icon-size: 1.5rem;--welcome-title-font-size: var(--text-3xl);--navbar-height: 48px;--page-content-padding-inline: var(--spacing-2xl);--page-content-padding-bottom: var(--spacing-2xl);--page-content-padding-top: var(--spacing-xl);--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--btn-height: 40px;--btn-padding-x: 20px;--btn-font-size: var(--text-base);--btn-font-weight: 600;--btn-line-height: 20px;--btn-radius: var(--radius-lg);--input-radius: var(--btn-radius);--btn-icon-size: 18px;--btn-icon-gap: 8px;--btn-transition: var(--transition-base);--btn-focus-ring: 0 0 0 3px rgba(var(--color-primary-rgb), .35);--btn-compact-height: 32px;--btn-compact-padding-x: 12px;--btn-compact-font-size: var(--text-sm);--btn-compact-font-weight: 500;--btn-compact-line-height: 18px;--btn-compact-radius: 10px;--btn-compact-icon-size: 16px;--segmented-track-height: 44px;--segmented-track-padding: 4px;--segmented-track-radius: var(--radius-lg);--segmented-segment-height: 36px;--segmented-segment-radius: calc(var(--radius-lg) - 2px);--segmented-segment-font-size: var(--btn-font-size);--segmented-segment-font-weight: var(--btn-font-weight);--table-header-font-weight: 500;--modal-backdrop-blur: 2px;--modal-backdrop-color: rgba(235, 238, 245, .65);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--breakpoint-xs: 320px;--breakpoint-sm: 640px;--breakpoint-md: 850px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px;--breakpoint-3xl: 1920px;--container-xs: 100%;--container-sm: 640px;--container-md: 850px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--spacing-responsive-sm: clamp(.5rem, 2vw, 1rem);--spacing-responsive-md: clamp(1rem, 3vw, 2rem);--spacing-responsive-lg: clamp(1.5rem, 4vw, 3rem);--spacing-responsive-xl: clamp(2rem, 5vw, 4rem)}[data-theme=dark]{--color-background: #1a2332;--color-surface: #24303f;--color-surface-hover: #3d4a5c;--color-text-primary: #F9FAFB;--color-text-secondary: #D1D5DB;--color-border: #3d4a5c;--color-border-light: #4f5d6f;--color-gray-button: #6d7585;--color-gray-button-hover: #7e8696;--color-gray-button-text: #F9FAFB;--modal-backdrop-color: rgba(26, 35, 50, .65);--grade-green-bg: #064e3b;--grade-yellow-bg: #78350f;--grade-red-bg: #7f1d1d;--grade-green-text: #6ee7b7;--grade-yellow-text: #fcd34d;--grade-red-text: #fca5a5;--grade-chart-green: #bfe6c9;--grade-chart-yellow: #ffe3a3;--grade-chart-red: #f0aeb7;--grade-chart-red-dark: #b25b66}@supports (color: color-mix(in srgb,#000 50%,#fff 50%)){:root{--color-primary-hover: color-mix(in srgb, black 9%, var(--color-primary));--color-primary-dark: color-mix(in srgb, black 13%, var(--color-primary));--btn-primary-hover-bg: color-mix(in srgb, black 9%, var(--color-primary));--btn-primary-active-bg: color-mix(in srgb, black 13%, var(--color-primary));--modal-backdrop-color: color-mix(in srgb, var(--color-background) 65%, transparent);--semantic-grade-green: color-mix(in srgb, var(--color-grade-green, #10b981) 82%, var(--color-background) 18%);--semantic-grade-yellow: color-mix(in srgb, var(--color-grade-yellow, #fbbf24) 82%, var(--color-background) 18%);--semantic-grade-red: color-mix(in srgb, var(--color-grade-red, #ef4444) 82%, var(--color-background) 18%);--semantic-grade-red-dark: color-mix(in srgb, #b91c1c 92%, var(--color-background) 8%)}[data-theme=dark]{--modal-backdrop-color: color-mix(in srgb, var(--color-background) 65%, transparent)}}.btn,.btn-primary,.btn-secondary,.btn-cancel,.btn-submit,.btn-duplicate,.btn-delete,.btn-add-task,.btn-add-expense,.btn-add-category,.btn-clear-filters,.btn-add-member,.btn-add-user,.btn-create,.btn-reset-password,.settings-btn,.logout-btn,.import-setup-btn,.logout-button,.bottom-sheet-btn,.landing-btn{box-sizing:border-box;height:var(--btn-height);min-height:var(--btn-height);padding:0 var(--btn-padding-x);min-width:0;font-family:var(--font-sans);font-size:var(--btn-font-size);font-weight:var(--btn-font-weight);line-height:var(--btn-line-height);text-transform:none;letter-spacing:normal;white-space:nowrap;border-radius:var(--btn-radius);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;justify-content:center;gap:var(--btn-icon-gap);vertical-align:middle;transition:background-color var(--btn-transition),border-color var(--btn-transition),color var(--btn-transition),box-shadow var(--btn-transition),opacity var(--btn-transition)}.btn:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-cancel:focus-visible,.btn-submit:focus-visible,.btn-duplicate:focus-visible,.btn-delete:focus-visible,.btn-add-task:focus-visible,.btn-add-expense:focus-visible,.btn-add-category:focus-visible,.btn-clear-filters:focus-visible,.btn-create:focus-visible,.btn-reset-password:focus-visible,.logout-button:focus-visible,.settings-btn:focus-visible,.logout-btn:focus-visible,.import-setup-btn:focus-visible{outline:none;box-shadow:var(--btn-focus-ring)}.btn-primary,.btn-submit,.btn-duplicate,.btn-add-task,.btn-add-expense,.btn-add-member,.btn-add-user,.btn-create,.settings-btn-save,.logout-btn-cancel,.import-setup-btn-confirm{background-color:var(--color-primary);color:var(--color-primary-foreground);border:none}.btn-primary:hover:not(:disabled),.btn-submit:hover:not(:disabled),.btn-duplicate:hover:not(:disabled),.btn-add-task:hover:not(:disabled),.btn-add-expense:hover:not(:disabled),.btn-add-member:hover:not(:disabled),.btn-add-user:hover:not(:disabled),.btn-create:hover:not(:disabled),.settings-btn-save:hover:not(:disabled),.logout-btn-cancel:hover:not(:disabled),.import-setup-btn-confirm:hover:not(:disabled){background-color:var(--btn-primary-hover-bg)}.btn-primary:active:not(:disabled),.btn-submit:active:not(:disabled),.btn-duplicate:active:not(:disabled),.btn-add-task:active:not(:disabled),.btn-add-expense:active:not(:disabled),.btn-add-member:active:not(:disabled),.btn-add-user:active:not(:disabled),.btn-create:active:not(:disabled),.settings-btn-save:active:not(:disabled),.logout-btn-cancel:active:not(:disabled),.import-setup-btn-confirm:active:not(:disabled){background-color:var(--btn-primary-active-bg)}.btn-secondary,.btn-cancel,.btn-clear-filters,.btn-add-category,.btn-reset-password,.settings-btn-cancel,.logout-btn-logout,.logout-button,.import-setup-btn-cancel{border:var(--btn-secondary-border, 1px solid var(--color-border));background-color:var(--color-surface);color:var(--color-text-secondary);box-shadow:none}.btn-secondary:hover:not(:disabled),.btn-cancel:hover:not(:disabled),.btn-clear-filters:hover:not(:disabled),.btn-add-category:hover:not(:disabled),.btn-reset-password:hover:not(:disabled),.settings-btn-cancel:hover:not(:disabled),.logout-btn-logout:hover:not(:disabled),.logout-button:hover:not(:disabled),.import-setup-btn-cancel:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface));color:var(--color-text-primary);border-color:var(--color-border)}.btn-secondary:active:not(:disabled),.btn-cancel:active:not(:disabled),.btn-clear-filters:active:not(:disabled),.btn-add-category:active:not(:disabled),.btn-reset-password:active:not(:disabled),.settings-btn-cancel:active:not(:disabled),.logout-btn-logout:active:not(:disabled),.logout-button:active:not(:disabled),.import-setup-btn-cancel:active:not(:disabled){transform:scale(.98)}.btn-delete,.settings-btn-delete{background-color:var(--color-error);color:var(--color-primary-foreground);border:none}.btn-delete:hover:not(:disabled),.settings-btn-delete:hover:not(:disabled){background-color:#dc2626}.btn-delete:active:not(:disabled),.settings-btn-delete:active:not(:disabled){background-color:#b91c1c}.btn:disabled,.btn-primary:disabled,.btn-secondary:disabled,.btn-cancel:disabled,.btn-submit:disabled,.btn-duplicate:disabled,.btn-delete:disabled,.settings-btn-delete:disabled,.btn-add-task:disabled,.btn-add-expense:disabled,.btn-add-category:disabled,.btn-clear-filters:disabled,.btn-create:disabled,.btn-reset-password:disabled,.logout-button:disabled,.import-setup-btn:disabled{opacity:.5;cursor:not-allowed}.btn-compact,.btn-small,.btn-add-small,.pagination-button{height:var(--btn-compact-height);min-height:var(--btn-compact-height);padding:0 var(--btn-compact-padding-x);font-size:var(--btn-compact-font-size);font-weight:var(--btn-compact-font-weight);line-height:var(--btn-compact-line-height);border-radius:var(--btn-compact-radius);gap:6px}.btn-add-small{background-color:var(--color-primary);color:var(--color-primary-foreground);border:none}.btn-add-small:hover:not(:disabled){background-color:var(--btn-primary-hover-bg)}.btn-add-small:active:not(:disabled){background-color:var(--btn-primary-active-bg)}.btn-manage-members,.btn-manage-members-small{height:var(--btn-compact-height);min-height:var(--btn-compact-height);padding:0 var(--btn-compact-padding-x);font-size:var(--btn-compact-font-size);font-weight:var(--btn-compact-font-weight);line-height:var(--btn-compact-line-height);border-radius:var(--btn-compact-radius);background-color:var(--color-primary);color:var(--color-primary-foreground);border:none}.btn-manage-members:hover:not(:disabled),.btn-manage-members-small:hover:not(:disabled){background-color:var(--btn-primary-hover-bg)}.btn-manage-members:active:not(:disabled),.btn-manage-members-small:active:not(:disabled){background-color:var(--btn-primary-active-bg)}.pagination-button{min-width:var(--btn-compact-height);width:var(--btn-compact-height);padding:0;font-weight:var(--btn-compact-font-weight);background-color:transparent;color:var(--color-text-primary);border:1px solid var(--color-border)}.pagination-button:hover:not(:disabled):not(.ellipsis){background-color:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.pagination-button.active{background-color:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.pagination-button:disabled{opacity:.35;cursor:not-allowed}.pagination-button.ellipsis{border:none;background:transparent;cursor:default;pointer-events:none;width:auto;min-width:0}.btn-icon-only,.btn-icon,.btn-search,.add-category-btn,.btn-add-grade,.btn-manage-members-icon,.sidebar-panel-toggle{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;width:var(--btn-height);min-width:var(--btn-height);height:var(--btn-height);min-height:var(--btn-height);padding:0;border-radius:var(--btn-radius);flex-shrink:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn-icon-only img,.btn-icon-only svg,.btn-icon img,.btn-icon svg,.btn-search img,.add-category-btn img,.btn-add-grade img,.sidebar-panel-toggle svg{width:var(--btn-icon-size);height:var(--btn-icon-size);object-fit:contain;flex-shrink:0;display:block}.btn-search,.add-category-btn,.btn-add-grade,.btn-manage-members-icon{background-color:var(--color-primary);color:var(--color-primary-foreground);border:none}.btn-search:hover:not(:disabled),.add-category-btn:hover:not(:disabled),.btn-add-grade:hover:not(:disabled),.btn-manage-members-icon:hover:not(:disabled){background-color:var(--btn-primary-hover-bg)}.btn-search:active:not(:disabled),.add-category-btn:active:not(:disabled),.btn-add-grade:active:not(:disabled),.btn-manage-members-icon:active:not(:disabled){background-color:var(--btn-primary-active-bg);transform:scale(.98)}.btn-search img,.add-category-btn img,.btn-add-grade img{filter:var(--color-primary-icon-filter)}.btn-icon{background-color:transparent;color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-icon:hover:not(:disabled){background-color:var(--color-surface-hover)}.btn-icon:active:not(:disabled){transform:scale(.98)}.btn-icon:disabled{opacity:.45;cursor:not-allowed}.btn-choice{flex:1;min-width:120px;height:var(--btn-height);min-height:var(--btn-height);padding:0 var(--btn-padding-x);border:1px solid var(--color-border);border-radius:var(--btn-radius);background-color:transparent;color:var(--color-text-primary);font-size:var(--btn-font-size);font-weight:var(--btn-font-weight);line-height:var(--btn-line-height);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background-color var(--btn-transition),border-color var(--btn-transition),color var(--btn-transition),box-shadow var(--btn-transition)}.btn-choice:hover:not(:disabled){border-color:var(--color-primary);background-color:color-mix(in srgb,var(--color-primary) 8%,transparent)}.btn-choice--selected{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-primary-foreground);box-shadow:var(--shadow-sm)}.btn-choice:disabled{opacity:.5;cursor:not-allowed}.segmented-control,.calendar-view-selector,.user-management-view-selector,.mobile-tab-buttons,.finances-mobile-wrapper .mobile-tabs,.calendar-navigation{display:flex;align-items:stretch;gap:0;background-color:var(--color-surface);border-radius:var(--segmented-track-radius);padding:var(--segmented-track-padding);box-sizing:border-box;min-height:var(--segmented-track-height);width:fit-content;flex-shrink:0}.segmented-control__segment,.view-btn,.user-management-view-selector .tab-button,.mobile-tab-buttons .tab-button,.finances-mobile-wrapper .tab-button{padding:0 var(--spacing-lg);border:none;background-color:transparent;color:var(--color-text-secondary);font-size:var(--segmented-segment-font-size);font-weight:var(--segmented-segment-font-weight);line-height:var(--btn-line-height);cursor:pointer;border-radius:var(--segmented-segment-radius);min-height:var(--segmented-segment-height);touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex:1;min-width:0;display:inline-flex;align-items:center;justify-content:center;text-transform:none;letter-spacing:normal;transition:background-color var(--btn-transition),color var(--btn-transition),box-shadow var(--btn-transition)}.segmented-control__segment:hover:not(.active):not(:disabled),.view-btn:hover:not(.active):not(:disabled),.user-management-view-selector .tab-button:hover:not(.active):not(:disabled),.mobile-tab-buttons .tab-button:hover:not(.active):not(:disabled),.finances-mobile-wrapper .tab-button:hover:not(.active):not(:disabled){background-color:color-mix(in srgb,var(--color-primary) 8%,transparent);color:var(--color-text-primary)}.segmented-control__segment.active,.segmented-control__segment.is-active,.view-btn.active,.user-management-view-selector .tab-button.active,.mobile-tab-buttons .tab-button.active,.finances-mobile-wrapper .tab-button.active{background-color:var(--color-primary);color:var(--color-primary-foreground);box-shadow:var(--shadow-sm)}.segmented-control__segment:active:not(:disabled),.view-btn:active:not(:disabled),.user-management-view-selector .tab-button:active:not(:disabled),.mobile-tab-buttons .tab-button:active:not(:disabled),.finances-mobile-wrapper .tab-button:active:not(:disabled){transform:scale(.98)}.segmented-control__segment:focus-visible,.view-btn:focus-visible,.user-management-view-selector .tab-button:focus-visible,.mobile-tab-buttons .tab-button:focus-visible,.finances-mobile-wrapper .tab-button:focus-visible{outline:none;box-shadow:var(--btn-focus-ring)}.btn.nav-btn,.nav-btn,.btn.today-btn,.today-btn{min-width:var(--segmented-segment-height);width:var(--segmented-segment-height);height:var(--segmented-segment-height);min-height:var(--segmented-segment-height);padding:0;border:none;background-color:transparent;color:var(--color-text-secondary);border-radius:var(--segmented-segment-radius);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--btn-transition),color var(--btn-transition)}.btn.nav-btn:hover:not(:disabled),.nav-btn:hover:not(:disabled),.btn.today-btn:hover:not(:disabled),.today-btn:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary) 8%,transparent);color:var(--color-text-primary)}.btn.nav-btn:active:not(:disabled),.nav-btn:active:not(:disabled),.btn.today-btn:active:not(:disabled),.today-btn:active:not(:disabled){transform:scale(.98)}.nav-btn img,.today-btn img:not(.calendar-period-title-icon){width:var(--btn-icon-size);height:var(--btn-icon-size);display:block;object-fit:contain;filter:brightness(0) saturate(100%) invert(42%) sepia(14%) saturate(500%) hue-rotate(180deg)}[data-theme=dark] .nav-btn img,[data-theme=dark] .today-btn img:not(.calendar-period-title-icon){filter:invert(1) brightness(1.2)}.transactions-toolbar-filter-btn,.transactions-table-pagination .transactions-toolbar-filter-btn{height:var(--btn-compact-height);min-height:var(--btn-compact-height);padding:0 var(--btn-compact-padding-x);font-size:var(--btn-compact-font-size);font-weight:var(--btn-compact-font-weight);line-height:var(--btn-compact-line-height);border-radius:var(--btn-compact-radius)}[data-theme=dark] .btn-secondary img,[data-theme=dark] .btn-cancel img,[data-theme=dark] .btn-clear-filters img,[data-theme=dark] .logout-button img{filter:brightness(0) invert(1)}.calendar-period-title-icon,.month-return-icon{filter:none!important}.btn-primary img,.btn-submit img,.btn-duplicate img,.btn-add-expense img,.btn-add-category img,.btn-add-task img,.btn-create img{width:var(--btn-icon-size);height:var(--btn-icon-size);object-fit:contain;flex-shrink:0;filter:var(--color-primary-icon-filter)}.btn-delete img{width:var(--btn-icon-size);height:var(--btn-icon-size);filter:brightness(0) invert(1)}.btn-secondary img,.btn-cancel img,.btn-clear-filters img{width:var(--btn-icon-size);height:var(--btn-icon-size);object-fit:contain;flex-shrink:0}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]),textarea,select{border-radius:var(--input-radius)}@media(hover:none)and (pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]),textarea,select{font-size:var(--text-base)!important}}thead th,.grades-table-header th{font-weight:var(--table-header-font-weight)}@media(max-width:850px){.responsive-table td:before{font-weight:var(--table-header-font-weight)}}.transaction-amount--expense{color:var(--semantic-grade-red)}.transaction-amount--income{color:var(--semantic-grade-green)}.transaction-amount--saving{color:var(--semantic-grade-yellow)}.transactions-table td.transaction-amount--expense,.expenses-table td.transaction-amount--expense,.budget-details-expenses-table td.transaction-amount--expense{color:var(--semantic-grade-red)}.transactions-table td.transaction-amount--income{color:var(--semantic-grade-green)}.transactions-table td.transaction-amount--saving{color:var(--semantic-grade-yellow)}body{font-family:var(--font-sans);background-color:var(--color-background);color:var(--color-text-primary);transition:background-color var(--transition-base),color var(--transition-base);margin:0;padding:0}#root{min-height:100vh;min-height:100dvh}.app-layout{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.app-layout--calendar{height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow:hidden}@media(max-width:1130px){.app-layout{padding-top:var(--navbar-height)}}.app-layout .page-transition{flex:1;display:flex;flex-direction:column;min-height:0;contain:layout}.app-layout .page-transition>*{flex:1;min-height:0;display:flex;flex-direction:column}.page-transition{width:100%;min-height:100vh;min-height:100dvh;height:100%}.page-transition--initial{animation:pageFadeIn .4s cubic-bezier(.32,.72,0,1)}.page-transition--forward{animation:pageSlideFromRight .5s cubic-bezier(.32,.72,0,1)}.page-transition--back{animation:pageSlideFromLeft .5s cubic-bezier(.32,.72,0,1)}.page-transition--none{animation:none}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes pageSlideFromRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pageSlideFromLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@media(max-width:850px){.page-transition--initial,.page-transition--forward,.page-transition--back{animation:pageFadeInMobile .4s cubic-bezier(.32,.72,0,1)}@keyframes pageFadeInMobile{0%{opacity:0}to{opacity:1}}}html{--btn-secondary-border: 1px solid var(--color-border)}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.hide-mobile{display:none}.show-mobile{display:block}@media(min-width:851px){.hide-mobile{display:block}.show-mobile,.hide-tablet{display:none}.show-tablet{display:block}}@media(min-width:1024px){.hide-tablet{display:block}.show-tablet,.hide-desktop{display:none}.show-desktop{display:block}}@media(min-width:1280px){.hide-desktop{display:block}.show-desktop{display:none}}.grid-responsive{display:grid;gap:var(--spacing-md);grid-template-columns:1fr}@media(min-width:851px){.grid-responsive{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid-responsive{grid-template-columns:repeat(3,1fr)}}.grid-auto-fit{display:grid;gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.grid-1-2-3{display:grid;gap:var(--spacing-md);grid-template-columns:1fr}@media(min-width:851px){.grid-1-2-3{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid-1-2-3{grid-template-columns:repeat(3,1fr)}}.grid-1-2-4{display:grid;gap:var(--spacing-md);grid-template-columns:1fr}@media(min-width:851px){.grid-1-2-4{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid-1-2-4{grid-template-columns:repeat(4,1fr)}}.flex-wrap-mobile{flex-wrap:wrap}@media(min-width:851px){.flex-wrap-mobile{flex-wrap:nowrap}}.flex-col-mobile{flex-direction:column}@media(min-width:851px){.flex-col-mobile{flex-direction:row}}.flex-row-desktop{flex-direction:column}@media(min-width:1024px){.flex-row-desktop{flex-direction:row}}.text-center-mobile{text-align:center}@media(min-width:851px){.text-center-mobile{text-align:left}}.text-responsive{font-size:clamp(.875rem,2vw,1rem)}.text-responsive-lg{font-size:clamp(1.125rem,3vw,1.5rem)}.text-responsive-xl{font-size:clamp(1.5rem,4vw,2.25rem)}.p-responsive{padding:var(--spacing-responsive-sm)}@media(min-width:851px){.p-responsive{padding:var(--spacing-responsive-md)}}@media(min-width:1024px){.p-responsive{padding:var(--spacing-responsive-lg)}}.gap-responsive{gap:var(--spacing-sm)}@media(min-width:851px){.gap-responsive{gap:var(--spacing-md)}}@media(min-width:1024px){.gap-responsive{gap:var(--spacing-lg)}}.responsive-table{width:100%;overflow-x:auto}@media(max-width:850px){.responsive-table table{display:block}.responsive-table thead{display:none}.responsive-table tbody,.responsive-table tr{display:block}.responsive-table tr{margin-bottom:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-md);background-color:var(--color-surface)}.responsive-table td{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border:none}.responsive-table td:before{content:attr(data-label);color:var(--color-text-secondary);margin-right:var(--spacing-md)}}.touch-target{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.container-fluid{width:100%;padding:0 var(--spacing-md)}@media(min-width:851px){.container-fluid{padding:0 var(--spacing-lg)}}@media(min-width:1280px){.container-fluid{padding:0 var(--spacing-xl)}}.modal-backdrop{position:fixed;inset:0;background-color:var(--modal-backdrop-color);backdrop-filter:blur(var(--modal-backdrop-blur));-webkit-backdrop-filter:blur(var(--modal-backdrop-blur));display:flex;justify-content:center;align-items:center;padding:20px;overflow-y:auto;overflow-x:hidden;box-sizing:border-box;z-index:3000;animation:fadeIn .25s cubic-bezier(.4,0,.2,1)}.modal-backdrop.is-closing{animation:fadeOut .25s cubic-bezier(.4,0,.2,1) forwards}.modal-container{position:relative;z-index:3001}.modal-backdrop.modal-nested{z-index:4000}.modal-backdrop.modal-nested .modal-container{z-index:4001}.modal-backdrop.has-nested-above{transition:transform .35s cubic-bezier(.4,0,.2,1),filter .35s cubic-bezier(.4,0,.2,1);transform:scale(.96);filter:brightness(.75)}.modal-backdrop.has-nested-above .modal-container{transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s cubic-bezier(.4,0,.2,1);transform:scale(.96);box-shadow:none}.modal-backdrop.modal-nested .modal-container{animation:slideDownIn .35s cubic-bezier(.34,1.56,.64,1)}.modal-backdrop.modal-nested.is-closing .modal-container{animation:slideUpOut .3s cubic-bezier(.4,0,1,1) forwards}@keyframes slideDownIn{0%{transform:translateY(-40px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes slideUpOut{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-30px) scale(.95);opacity:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.modal-container{background-color:var(--color-surface);border-radius:var(--radius-xl);width:90%;max-width:720px;max-height:calc(100vh - 40px);overflow:hidden;overflow-x:hidden;box-shadow:var(--shadow-xl);animation:slideUp .35s cubic-bezier(.34,1.56,.64,1);margin:auto;box-sizing:border-box;position:relative;min-width:0}.modal-container.is-closing{animation:slideDown .25s cubic-bezier(.4,0,1,1) forwards}@keyframes slideUp{0%{transform:translateY(30px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes slideDown{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(20px) scale(.95);opacity:0}}.modal-header{background-color:var(--color-primary);padding:var(--spacing-sm) var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.modal-title{color:var(--color-primary-foreground);font-size:var(--text-lg);font-weight:600;margin:0;font-family:var(--font-sans)}.modal-header-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.modal-close-btn{background:none;border:none;color:var(--color-primary-foreground);cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--btn-radius);transition:all var(--transition-base)}.modal-close-btn:hover{background-color:rgba(var(--color-primary-foreground-rgb),.1);transform:scale(1.1)}.modal-close-btn:active{background-color:rgba(var(--color-primary-foreground-rgb),.2)}.modal-close-btn img{width:20px;height:20px;filter:var(--color-primary-icon-filter)}.modal-delete-btn{background:none;border:none;color:var(--color-primary-foreground);cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--btn-radius);transition:all var(--transition-base)}.modal-delete-btn:hover{background-color:rgba(var(--color-primary-foreground-rgb),.1);transform:scale(1.1)}.modal-delete-btn:active{background-color:rgba(var(--color-primary-foreground-rgb),.2)}.modal-delete-btn:disabled{opacity:.5;cursor:not-allowed}.modal-delete-btn svg,.modal-delete-btn img{width:20px;height:20px;fill:var(--color-primary-foreground)}.modal-delete-btn img{filter:var(--color-primary-icon-filter)}.icon-button{background:none;border:none;color:var(--color-primary-foreground);cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--btn-radius);transition:all var(--transition-base)}.icon-button:hover{background-color:rgba(var(--color-primary-foreground-rgb),.1);transform:scale(1.1)}.icon-button:active{background-color:rgba(var(--color-primary-foreground-rgb),.2)}.icon-button:disabled{opacity:.5;cursor:not-allowed}.icon-button img{width:20px;height:20px;filter:var(--color-primary-icon-filter)}.modal-header-actions .btn-icon{width:auto;min-width:0;height:auto;min-height:0;padding:var(--spacing-xs);background:none;border:none;border-radius:var(--btn-radius);color:var(--color-primary-foreground);transition:all var(--transition-base)}.modal-header-actions .btn-icon:hover:not(:disabled){background-color:rgba(var(--color-primary-foreground-rgb),.1);transform:scale(1.1)}.modal-header-actions .btn-icon:active:not(:disabled){background-color:rgba(var(--color-primary-foreground-rgb),.2);transform:scale(1.1)}.modal-header-actions .btn-icon:disabled{opacity:.5;cursor:not-allowed}.modal-header-actions .btn-icon img{width:20px;height:20px;object-fit:contain}.modal-header-actions .btn-icon svg{width:20px;height:20px}.modal-body{padding:var(--spacing-lg);overflow-y:auto;overflow-x:hidden;max-height:calc(90vh - 80px);display:flex;flex-direction:column;box-sizing:border-box;width:100%;min-width:0;scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.modal-body::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.modal-body::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.modal-container.modal-large{max-width:560px}.modal-body:has(.delete-confirm),.modal-body:has(.delete-confirmation-text){padding:var(--spacing-md) var(--spacing-lg)}.modal-container:has(.delete-confirm),.modal-container:has(.delete-confirmation-text){max-width:500px}.modal-container.modal-narrow{max-width:440px}.modal-container.modal-fit-image{width:min(88vw,460px);max-width:none}.modal-container.app-alert-modal,.modal-container.app-confirm-modal{max-width:440px}.app-alert-content{padding:var(--spacing-sm) 0}.app-alert-message{margin:0 0 var(--spacing-lg);font-size:var(--text-base);color:var(--color-text-primary);white-space:pre-wrap;word-break:break-word}.modal-body>form,.modal-body>div:first-child{display:flex;flex-direction:column;min-height:0;min-width:0;flex:1 1 auto}.modal-body .modal-actions,.modal-body .form-actions{margin-top:auto;padding-top:var(--spacing-md);flex-shrink:0;position:relative;z-index:10;display:flex;gap:var(--spacing-sm);justify-content:flex-end;align-items:center;flex-wrap:wrap}.modal-body .form-actions .form-actions-left{display:flex;gap:var(--spacing-sm);margin-right:auto}.modal-body .form-actions .form-actions-right{display:flex;gap:var(--spacing-md);margin-left:auto}.modal-body .modal-actions .btn,.modal-body .form-actions .btn{opacity:1!important;visibility:visible!important;position:relative;z-index:1}.modal-body .modal-actions .btn-secondary,.modal-body .form-actions .btn-secondary,.modal-body .modal-actions .btn-cancel,.modal-body .form-actions .btn-cancel{background-color:var(--color-surface)!important;color:var(--color-text-secondary)!important;border:var(--btn-secondary-border, 1px solid var(--color-border))!important;box-shadow:none!important}.modal-body .modal-actions .btn-primary,.modal-body .form-actions .btn-primary,.modal-body .modal-actions .btn-submit,.modal-body .form-actions .btn-submit{background-color:var(--color-primary)!important;color:var(--color-primary-foreground)!important;border:none!important}.modal-body .modal-actions .btn-primary:hover:not(:disabled),.modal-body .form-actions .btn-primary:hover:not(:disabled),.modal-body .modal-actions .btn-submit:hover:not(:disabled),.modal-body .form-actions .btn-submit:hover:not(:disabled),.modal-body .modal-actions .btn-duplicate:hover:not(:disabled),.modal-body .form-actions .btn-duplicate:hover:not(:disabled){background-color:var(--btn-primary-hover-bg)!important}.modal-body .modal-actions .btn-primary:active:not(:disabled),.modal-body .form-actions .btn-primary:active:not(:disabled),.modal-body .modal-actions .btn-submit:active:not(:disabled),.modal-body .form-actions .btn-submit:active:not(:disabled),.modal-body .modal-actions .btn-duplicate:active:not(:disabled),.modal-body .form-actions .btn-duplicate:active:not(:disabled){background-color:var(--btn-primary-active-bg)!important}.modal-body .modal-actions .btn-delete,.modal-body .form-actions .btn-delete{background-color:var(--color-error)!important;color:#fff!important;border:none!important}.modal-body select,.modal-body input[type=select],.modal-body input[type=date],.modal-body input[type=time],.modal-body input[type=number],.modal-body textarea,.modal-body input[type=text],.modal-body input[type=email],.modal-body input[type=password]{font-size:var(--text-sm);box-sizing:border-box;max-width:100%;min-width:0}.modal-body input.form-input[type=number]{-moz-appearance:textfield;appearance:textfield}.modal-body input.form-input[type=number]::-webkit-outer-spin-button,.modal-body input.form-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.modal-body .form-group,.modal-body .datetime-group,.modal-body .datetime-inputs{min-width:0}.modal-body .datetime-inputs>.form-input,.modal-body .datetime-inputs>.time-input-12h{flex:1 1 0%;min-width:0}.modal-body input[type=date],.modal-body input[type=time]{box-sizing:border-box!important;max-width:100%!important;min-width:0!important;max-inline-size:100%;min-inline-size:0}.modal-body .datetime-inputs{max-width:100%}@media(max-width:1024px){.modal-container{width:90%;max-width:700px}.modal-body{padding:var(--spacing-lg)}.modal-header{padding:var(--spacing-sm) var(--spacing-md)}}@media(max-width:850px){.modal-backdrop{padding:16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));align-items:center}.modal-container{width:min(95vw,calc(100% - 32px));max-width:none;max-height:calc(100vh - 32px);margin:auto;box-sizing:border-box}.modal-header{padding:var(--spacing-sm) var(--spacing-md)}.modal-title{font-size:var(--text-lg)}.modal-body{padding:var(--spacing-md);max-height:calc(85vh - 64px);padding-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom,0px))}.modal-body:has(.delete-confirm),.modal-body:has(.delete-confirmation-text){padding:var(--spacing-md)}.modal-body .modal-actions,.modal-body .form-actions{padding-top:var(--spacing-md);gap:var(--spacing-sm);flex-wrap:wrap}.modal-body .form-actions .form-actions-left,.modal-body .form-actions .form-actions-right{margin-left:0;margin-right:0;width:100%}.modal-body .modal-actions .btn,.modal-body .form-actions .btn,.modal-body .modal-actions button,.modal-body .form-actions button,.modal-body .modal-actions .btn-primary,.modal-body .modal-actions .btn-cancel,.modal-body .modal-actions .btn-submit,.modal-body .modal-actions .btn-delete,.modal-body .modal-actions .btn-secondary,.modal-body .form-actions .btn-primary,.modal-body .form-actions .btn-cancel,.modal-body .form-actions .btn-submit,.modal-body .form-actions .btn-delete,.modal-body .form-actions .btn-secondary{flex:1 1 0!important;min-width:100px!important;height:var(--btn-height)!important;max-height:var(--btn-height)!important;min-height:var(--btn-height)!important;padding:0 var(--btn-padding-x)!important;border-radius:var(--btn-radius)!important;font-size:var(--btn-font-size)!important;font-weight:var(--btn-font-weight)!important;line-height:var(--btn-line-height)!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal-close-btn,.modal-delete-btn,.modal-edit-btn,.icon-button,.modal-header-actions .btn-icon{min-width:var(--btn-height);min-height:var(--btn-height);padding:var(--spacing-xs)}.modal-body select,.modal-body input[type=select]{min-height:40px;padding:.5rem .75rem;font-size:var(--text-sm)}.modal-body input[type=date],.modal-body input[type=time]{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;max-inline-size:100%!important;min-inline-size:0!important;overflow:hidden!important;clip-path:inset(0 round var(--radius-lg))}.modal-body .datetime-inputs{width:100%;min-width:0;max-width:100%;overflow:hidden;contain:paint}.modal-body .datetime-inputs input[type=date],.modal-body .datetime-inputs input[type=time]{align-self:stretch!important;flex:0 0 auto}.modal-body .native-control-clip{width:100%;max-width:100%;min-width:0;box-sizing:border-box;border:2px solid var(--color-border);border-radius:var(--input-radius);background-color:var(--color-surface);overflow:hidden;contain:paint}.modal-body .native-control-clip:focus-within{border-color:var(--color-primary)!important;box-shadow:0 0 0 4px rgba(var(--color-primary-rgb),.25)!important}.modal-body .native-control-clip>input[type=date],.modal-body .native-control-clip>input[type=time]{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:.5rem .75rem!important}.modal-body .datetime-inputs .form-input,.modal-body .datetime-inputs input,.modal-body .datetime-inputs .time-input-12h{min-width:0;max-width:100%}}@media(max-width:640px){.modal-backdrop{padding:12px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));align-items:center}.modal-container{width:min(calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)),calc(100% - 24px));max-height:calc(100vh - 24px);border-radius:var(--radius-xl);margin:auto;box-sizing:border-box}.modal-header{padding:var(--spacing-xs) var(--spacing-md)}.modal-title{font-size:var(--text-base);line-height:1.2}.modal-body{padding:var(--spacing-md);max-height:calc(90vh - 64px)}.modal-body:has(.delete-confirm),.modal-body:has(.delete-confirmation-text){padding:var(--spacing-md)}.modal-body .modal-actions,.modal-body .form-actions{flex-direction:column;gap:var(--spacing-sm);padding-top:var(--spacing-md)}.modal-body .form-actions .form-actions-left,.modal-body .form-actions .form-actions-right{margin-left:0;margin-right:0;width:100%}.modal-body .modal-actions .btn,.modal-body .form-actions .btn,.modal-body .modal-actions button,.modal-body .form-actions button,.modal-body .modal-actions .btn-primary,.modal-body .modal-actions .btn-cancel,.modal-body .modal-actions .btn-submit,.modal-body .modal-actions .btn-delete,.modal-body .modal-actions .btn-secondary,.modal-body .form-actions .btn-primary,.modal-body .form-actions .btn-cancel,.modal-body .form-actions .btn-submit,.modal-body .form-actions .btn-delete,.modal-body .form-actions .btn-secondary{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:var(--btn-height)!important;height:var(--btn-height)!important;max-height:var(--btn-height)!important;padding:0 var(--btn-padding-x)!important;border-radius:var(--btn-radius)!important;font-size:var(--btn-font-size)!important;font-weight:var(--btn-font-weight)!important;line-height:var(--btn-line-height)!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal-close-btn,.modal-delete-btn,.modal-edit-btn,.icon-button,.modal-header-actions .btn-icon{min-width:36px;min-height:36px}.modal-close-btn img,.modal-delete-btn img,.modal-delete-btn svg,.modal-edit-btn img,.icon-button img,.modal-header-actions .btn-icon img{width:24px;height:24px}.modal-header-actions .btn-icon svg{width:24px;height:24px}.modal-body select,.modal-body input[type=select]{min-height:36px;padding:.5rem .75rem;font-size:var(--text-sm)}.modal-body input[type=date],.modal-body input[type=time]{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;max-inline-size:100%!important;min-inline-size:0!important;overflow:hidden!important;clip-path:inset(0 round var(--radius-lg))}.modal-body .datetime-inputs .form-input,.modal-body .datetime-inputs input,.modal-body .datetime-inputs .time-input-12h{min-width:0;max-width:100%}}.modal-container.modal-large{max-width:560px!important}.modal-container.modal-fit-image{width:min(88vw,460px)!important;max-width:none!important}.modal-container.modal-fit-image .modal-body{padding:var(--spacing-lg)}.auth-form{display:flex;flex-direction:column;gap:.875rem;padding-bottom:0;min-width:0}.auth-form:has(.delete-confirmation-text){gap:0}.form-group{display:flex;flex-direction:column;gap:.375rem;min-width:0}.form-row{display:flex;gap:var(--spacing-md);align-items:flex-end}.form-row .form-group{flex:1 1 0;min-width:0}.form-row .form-input{min-width:0;width:100%;box-sizing:border-box}.form-label{display:block;font-size:.8125rem;font-weight:500;color:var(--color-text-primary);font-family:var(--font-sans)}.form-group--choice{gap:.375rem}.form-group--choice>.form-label{margin:0}.form-helper-text--choice{margin-top:var(--spacing-sm)}.checkbox-group{margin:.5rem 0}.checkbox-label{display:flex;align-items:center;gap:0;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--color-text-primary);font-family:var(--font-sans)}.checkbox-label span{margin-left:.5rem}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.form-input{padding:.5rem .75rem;font-size:.875rem;border:2px solid var(--color-border);border-radius:var(--input-radius);background-color:var(--color-surface);color:var(--color-text-primary);font-family:var(--font-sans);transition:border-color var(--transition-base),box-shadow var(--transition-base);outline:none;box-sizing:border-box;width:100%;max-width:100%;min-width:0}.form-input:focus{outline:none!important;border-color:var(--color-primary)!important;border-width:2px!important;box-shadow:0 0 0 4px #7b93c040!important}.form-input:disabled{opacity:.6;cursor:not-allowed}.form-textarea{resize:vertical;min-height:64px;font-family:inherit}.form-input--readonly{background-color:var(--color-surface-hover);cursor:default;color:var(--color-text-secondary)}.btn-link{background:none;border:none;padding:0;font-size:var(--text-base);color:var(--color-primary);cursor:pointer;text-decoration:underline;font-family:inherit}.btn-link:hover:not(:disabled){color:var(--color-primary-hover, var(--color-primary))}.btn-link:disabled{opacity:.6;cursor:not-allowed}select.form-input{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236B7280' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;padding-right:calc(var(--spacing-md) + 20px)}.form-input-error{border-color:var(--color-error)}.form-input-error:focus{border-color:var(--color-error);box-shadow:0 0 0 3px #ef44441a}.form-error-text{display:block;font-size:var(--text-sm);color:var(--color-error);font-family:var(--font-sans);margin-top:var(--spacing-xs)}.form-helper-text{display:block;font-size:var(--text-sm);color:var(--color-text-secondary);font-family:var(--font-sans);margin-top:var(--spacing-xs)}.form-error-general{padding:var(--spacing-md);background-color:#ef44441a;border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--text-sm);font-family:var(--font-sans);text-align:center;margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.form-success-message{padding:var(--spacing-md);background-color:#22c55e1a;border:1px solid #22c55e;border-radius:var(--radius-md);color:#166534;font-size:var(--text-sm);font-family:var(--font-sans);text-align:center;margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.auth-form-divider-section{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:0;margin-bottom:0}.auth-form-divider{text-align:center;color:var(--color-text-secondary);font-size:var(--text-sm);margin:0}.form-actions--column{flex-direction:column;justify-content:stretch}.form-actions--column .btn-google{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--text-base);font-weight:600;border:2px solid var(--color-border);border-radius:var(--btn-radius);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-base);font-family:var(--font-sans)}.form-actions--column .btn-google:hover:not(:disabled){border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.05)}.form-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md);justify-content:flex-end}.resend-verification-section{border-top:1px solid var(--color-border);padding-top:var(--spacing-md)}.form-link{align-self:flex-start;border:none;background:none;color:var(--color-primary);font-size:var(--text-sm);padding:0;cursor:pointer;font-family:var(--font-sans);display:block;width:100%;text-align:left;margin-top:var(--spacing-sm)}.form-link:disabled{opacity:.6;cursor:not-allowed}.btn-cancel:active:not(:disabled),.btn-submit:active:not(:disabled),.btn-delete:active:not(:disabled){transform:translateY(0)}.btn-cancel:disabled,.btn-submit:disabled,.btn-delete:disabled{opacity:.5;cursor:not-allowed}.color-picker-container{display:flex;align-items:center;gap:var(--spacing-md)}.color-picker-button{width:160px;height:36px;border:2px solid var(--color-border);border-radius:var(--input-radius);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.color-picker-button:hover:not(:disabled){border-color:var(--color-primary);box-shadow:var(--shadow-md);transform:scale(1.05)}.color-picker-button:disabled{opacity:.6;cursor:not-allowed}.category-color-presets{display:flex;gap:var(--spacing-md);flex-wrap:wrap;margin-bottom:var(--spacing-md)}.category-color-swatch{width:32px;height:32px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all var(--transition-base);padding:0}.category-color-swatch:hover:not(:disabled){transform:scale(1.1)}.category-color-swatch.active{border-color:var(--color-text-primary);box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-text-primary)}.category-graded-color-options{margin-bottom:var(--spacing-md)}.category-graded-default-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;font-size:var(--text-sm);transition:all var(--transition-base)}.category-graded-default-btn:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-surface-hover)}.category-graded-default-btn.active{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-primary)}.category-graded-default-btn:disabled{opacity:.6;cursor:not-allowed}.category-graded-default-swatch{display:inline-block;width:24px;height:24px;border-radius:50%;flex-shrink:0}.category-custom-color{align-items:center;gap:var(--spacing-sm)}.category-custom-color-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.delete-confirmation-text{font-size:var(--text-base);color:var(--color-text-primary);text-align:center;line-height:1.5;margin:0 0 var(--spacing-lg) 0}.form-actions-right{display:flex;gap:1rem}@media(max-width:850px){.auth-form{gap:.75rem}.form-input{padding:.5rem .75rem;font-size:.875rem;min-height:40px}.auth-form-divider-section{gap:var(--spacing-md)}.form-actions{flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.form-actions .btn-cancel,.form-actions .btn-submit,.form-actions .btn-delete,.form-actions button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:var(--btn-height)!important;height:var(--btn-height)!important;max-height:var(--btn-height)!important;padding:0 var(--btn-padding-x)!important;border-radius:var(--btn-radius)!important;font-size:var(--btn-font-size)!important;font-weight:var(--btn-font-weight)!important;line-height:var(--btn-line-height)!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}.color-picker-container{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.color-picker-button{width:100%;min-height:40px}}@media(max-width:640px){.auth-form{gap:var(--spacing-md)}.auth-form .form-group{gap:.375rem}.form-label{font-size:var(--text-sm)}.form-input{padding:.5rem .75rem;font-size:.875rem;min-height:36px}.form-helper-text,.form-error-text{font-size:var(--text-xs)}.form-error-text{margin-top:var(--spacing-sm)}.form-link{margin-top:var(--spacing-md)}.form-error-general,.form-success-message{padding:var(--spacing-sm);font-size:var(--text-xs);margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.auth-form-divider-section{gap:var(--spacing-lg);margin-top:var(--spacing-xs)}.form-actions{gap:var(--spacing-md);margin-top:var(--spacing-lg)}.color-picker-button{min-height:36px}.form-actions .btn-cancel,.form-actions .btn-submit,.form-actions .btn-delete,.form-actions button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:var(--btn-height)!important;height:var(--btn-height)!important;max-height:var(--btn-height)!important;padding:0 var(--btn-padding-x)!important;border-radius:var(--btn-radius)!important;font-size:var(--btn-font-size)!important;font-weight:var(--btn-font-weight)!important;line-height:var(--btn-line-height)!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}.student-choice-buttons{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.screen-size-guard{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-background, #ebeef5);z-index:10000;padding:var(--spacing-xl)}.screen-size-guard__content{text-align:center;max-width:400px;animation:screenSizeGuardFadeIn .3s ease-in-out}@keyframes screenSizeGuardFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.screen-size-guard__icon{margin-bottom:var(--spacing-xl);color:var(--color-text-primary);opacity:.7}.screen-size-guard__icon svg{display:inline-block}.screen-size-guard__title{font-size:var(--text-3xl);font-weight:700;margin-bottom:var(--spacing-md);color:var(--color-text-primary)}.screen-size-guard__message{font-size:var(--text-base);line-height:1.6;margin-bottom:var(--spacing-lg);color:var(--color-text-secondary)}.screen-size-guard__details{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);font-size:var(--text-sm);color:var(--color-text-secondary);box-shadow:var(--shadow-md)}.screen-size-guard__details p{margin:var(--spacing-xs) 0}.screen-size-guard__suggestion{font-size:var(--text-sm);color:var(--color-text-secondary);font-style:italic}.modal-container.settings-modal{max-width:600px;display:flex;flex-direction:column;max-height:calc(100vh - 40px)}.settings-modal .modal-body{padding:0;display:flex;flex-direction:column;overflow:hidden;min-height:0;flex:1 1 auto;max-height:none}.settings-form{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-lg);flex:1;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.settings-form::-webkit-scrollbar{width:6px}.settings-form::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.settings-form::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.settings-form::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.settings-form-group{display:flex;flex-direction:column;gap:.375rem}.settings-label{font-size:.8125rem;font-weight:500;color:var(--color-text-primary);font-family:var(--font-sans)}.settings-input{padding:.5rem .75rem;border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:.875rem;font-family:var(--font-sans);background-color:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--transition-base),box-shadow var(--transition-base);box-sizing:border-box;width:100%;max-width:100%}.settings-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.settings-input:disabled{background-color:var(--color-border-light);color:var(--color-text-secondary);cursor:not-allowed}.settings-input-error{border-color:var(--color-error)}.settings-input-error:focus{border-color:var(--color-error);box-shadow:0 0 0 3px #ef44441a}.settings-error-text{font-size:var(--text-sm);color:var(--color-error);font-family:var(--font-sans);margin-top:calc(var(--spacing-xs) * -1)}.settings-helper-text{font-size:var(--text-sm);color:var(--color-text-secondary);font-family:var(--font-sans);margin-top:calc(var(--spacing-xs) * -1)}.settings-toggle-list{display:flex;flex-direction:column;gap:0;margin-top:calc(var(--spacing-sm) * -1)}.settings-toggle-row{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-md);margin:0 calc(var(--spacing-md) * -1);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-base)}.settings-toggle-row:hover:not(:has(.settings-switch-input:disabled)){background-color:var(--color-surface-hover)}.settings-toggle-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.settings-toggle-label{font-weight:600;color:var(--color-text-primary);font-size:var(--text-sm);line-height:1.4}.settings-toggle-description{color:var(--color-text-secondary);font-size:var(--text-xs);line-height:1.45}.settings-switch{position:relative;display:inline-flex;flex-shrink:0}.settings-switch-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.settings-switch-track{display:block;width:44px;height:24px;border-radius:var(--radius-full);background-color:var(--color-gray-button);position:relative;transition:background-color var(--transition-base);cursor:pointer}.settings-switch-track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background-color:#f5f6f8;transition:transform var(--transition-base)}.settings-switch-input:checked+.settings-switch-track{background-color:var(--color-primary)}.settings-switch-input:checked+.settings-switch-track:after{transform:translate(20px)}.settings-switch-input:focus-visible+.settings-switch-track{box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.35)}.settings-switch-input:disabled+.settings-switch-track{opacity:.55;cursor:not-allowed}.settings-profile-picture-container{padding:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface)}.settings-profile-picture-wrapper{display:flex;align-items:center;gap:var(--spacing-xl);flex-wrap:wrap}.settings-profile-picture-preview,.settings-profile-picture-placeholder{flex-shrink:0;width:96px;height:96px;border-radius:50%;overflow:hidden;border:2px solid var(--color-primary);display:flex;align-items:center;justify-content:center}.settings-profile-picture-preview{padding:0}.settings-profile-picture-preview img{width:100%;height:100%;object-fit:cover}.settings-profile-picture-placeholder{background-color:var(--color-border-light);flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm);color:var(--color-text-secondary)}.settings-profile-picture-placeholder span{font-size:var(--text-xs);color:var(--color-text-secondary);text-align:center}.settings-icon{display:block;background-color:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}.settings-icon-plus{mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20width='24'%20height='24'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cline%20x1='12'%20y1='5'%20x2='12'%20y2='19'%3e%3c/line%3e%3cline%20x1='5'%20y1='12'%20x2='19'%20y2='12'%3e%3c/line%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20width='24'%20height='24'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cline%20x1='12'%20y1='5'%20x2='12'%20y2='19'%3e%3c/line%3e%3cline%20x1='5'%20y1='12'%20x2='19'%20y2='12'%3e%3c/line%3e%3c/svg%3e")}.settings-profile-picture-placeholder-icon{width:32px;height:32px;opacity:.65}.settings-profile-picture-actions{display:flex;gap:var(--spacing-md);align-items:center;flex-wrap:wrap;flex:1;min-width:0}.settings-upload-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.settings-upload-btn-icon{width:14px;height:14px;display:block}.settings-section{display:flex;flex-direction:column;gap:0;padding-bottom:0;border-bottom:1px solid var(--color-border);transition:padding-bottom var(--transition-slow)}.settings-section:last-of-type{border-bottom:none}.settings-section--expanded{padding-bottom:var(--spacing-lg)}.settings-section-heading{margin:0;font-size:inherit;font-weight:inherit}.settings-section-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);width:100%;min-height:44px;margin:0 calc(var(--spacing-sm) * -1);padding:var(--spacing-sm);border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-primary);font-family:var(--font-sans);text-align:left;cursor:pointer;transition:background-color var(--transition-base)}.settings-section-toggle:hover{background-color:var(--color-surface-hover)}.settings-section-toggle:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.35)}.settings-section-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--transition-slow)}.settings-section--expanded .settings-section-panel{grid-template-rows:1fr}.settings-section-panel-inner{min-height:0;overflow:hidden}.settings-section-content{display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-sm) 0;opacity:0;transform:translateY(-6px);transition:opacity var(--transition-base),transform var(--transition-base)}.settings-section--expanded .settings-section-content{opacity:1;transform:none}.settings-section-content>.settings-btn,.settings-form-group>.settings-btn{align-self:center}.settings-section-title{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0;font-family:var(--font-sans);opacity:.9}.settings-section-chevron{display:block;flex-shrink:0;width:8px;height:8px;margin-right:4px;margin-top:0;border-right:2px solid var(--color-text-secondary);border-bottom:2px solid var(--color-text-secondary);transform:rotate(-45deg);transition:transform var(--transition-base),margin-top var(--transition-base)}.settings-section--expanded .settings-section-chevron{transform:rotate(45deg);margin-top:-4px}@media(prefers-reduced-motion:reduce){.settings-section,.settings-section-toggle,.settings-section-panel,.settings-section-content,.settings-section-chevron{transition:none}}.settings-password-fields{display:flex;flex-direction:column;gap:var(--spacing-md)}.settings-password-section{display:flex;flex-direction:column;gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.settings-color-themes{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.settings-color-theme{width:50px;height:50px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all var(--transition-base);position:relative}.settings-color-theme:hover{transform:scale(1.1)}.settings-color-theme.active{border-color:var(--color-text-primary);box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-text-primary)}.settings-custom-color-theme{margin-top:var(--spacing-md)}.settings-custom-color-theme-button{width:120px;height:44px}.settings-custom-color-theme-button.active{border-color:var(--color-text-primary);box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-text-primary)}.settings-mode-options{display:flex;gap:var(--spacing-lg)}.settings-finance-mode-selector{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.settings-finance-mode-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--color-surface);color:var(--color-text-primary);font-family:var(--font-sans);text-align:left;cursor:pointer;transition:border-color var(--transition-base),background-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base)}.settings-finance-mode-card:hover:not(.settings-finance-mode-card--selected){border-color:color-mix(in srgb,var(--color-primary) 50%,var(--color-border));background-color:color-mix(in srgb,var(--color-primary) 4%,var(--color-surface))}.settings-finance-mode-card:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(var(--color-primary-rgb),.25)}.settings-finance-mode-card--selected{border-color:var(--color-primary);background-color:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));box-shadow:0 0 0 1px var(--color-primary)}.settings-finance-mode-card:active{transform:scale(.98)}.settings-finance-mode-card-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);line-height:1.3}.settings-finance-mode-card--selected .settings-finance-mode-card-title{color:var(--color-primary)}.settings-finance-mode-card-description{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.35}.settings-finance-mode-hint{font-size:var(--text-xs);color:var(--color-text-secondary);font-family:var(--font-sans);margin:0;opacity:.85;line-height:1.4}.settings-radio-label{display:flex;align-items:center;gap:var(--spacing-md);cursor:pointer;font-size:var(--text-base);color:var(--color-text-primary);font-family:var(--font-sans)}.settings-radio-label input[type=radio]{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;width:20px!important;height:20px!important;border:2px solid var(--color-border)!important;border-radius:50%!important;cursor:pointer!important;position:relative!important;background-color:var(--color-surface)!important;transition:all var(--transition-base)!important;margin:0!important}.settings-radio-label input[type=radio]:hover{border-color:var(--color-primary)!important}.settings-radio-label input[type=radio]:checked{border-color:var(--color-primary)!important}.settings-radio-label input[type=radio]:checked:after{content:""!important;position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;width:10px!important;height:10px!important;border-radius:50%!important;background-color:var(--color-primary)!important;display:block!important}.settings-modal-footer{padding:var(--spacing-xl);display:flex;justify-content:flex-end;align-items:center;gap:var(--spacing-md);flex-shrink:0;background-color:var(--color-surface);border-top:1px solid var(--color-border);padding-bottom:calc(var(--spacing-xl) + env(safe-area-inset-bottom,0px))}.settings-modal-credits{font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:var(--spacing-xl);text-align:center}.settings-modal-credits a{color:var(--color-primary);text-decoration:none}.settings-modal-credits a:hover{text-decoration:underline}.settings-modal-footer-buttons{display:flex;gap:var(--spacing-md)}.settings-btn{padding:var(--spacing-xs) var(--spacing-md)}.settings-archived-label-short{display:none}.settings-btn:active{transform:scale(.98)}.settings-google-calendar-connected{display:flex;flex-direction:column;gap:var(--spacing-lg)}.settings-google-calendar-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md)}.settings-google-calendar-row .settings-label,.settings-google-calendar-row .settings-btn{flex:0 0 auto}.settings-google-action{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);width:100%}.settings-google-action .settings-btn{flex:0 0 auto}.settings-google-action .settings-btn-save:disabled{opacity:.55;cursor:not-allowed;background-color:var(--color-gray-button, #e5e7eb);color:var(--color-text-muted, #9ca3af);box-shadow:none;transform:none;filter:grayscale(.25)}.feature-disabled-notice{font-size:.75rem;color:var(--color-text-muted, #6b7280);width:100%}@media(max-width:1024px){.settings-form{padding:var(--spacing-lg)}.settings-modal-footer{padding:var(--spacing-lg);padding-bottom:calc(var(--spacing-lg) + env(safe-area-inset-bottom,0px))}}@media(max-width:850px){.settings-form{padding:var(--spacing-md);gap:var(--spacing-xs)}.settings-section--expanded{padding-bottom:var(--spacing-md)}.settings-input{padding:.5rem .75rem;min-height:40px}.settings-profile-picture-container{padding:var(--spacing-md)}.settings-profile-picture-wrapper{flex-direction:column;align-items:stretch;gap:var(--spacing-lg)}.settings-profile-picture-preview,.settings-profile-picture-placeholder{margin:0 auto}.settings-profile-picture-actions,.settings-color-themes{justify-content:center}.settings-color-theme{width:44px;height:44px}.settings-modal-footer{flex-direction:column;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);padding-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom,0px))}.settings-modal-footer-buttons{width:100%;flex-direction:column}.settings-modal-footer .settings-btn,.settings-modal-footer button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:var(--btn-height)!important;height:var(--btn-height)!important;max-height:var(--btn-height)!important;padding:0 var(--btn-padding-x)!important;border-radius:var(--btn-radius)!important;font-size:var(--btn-font-size)!important;font-weight:var(--btn-font-weight)!important;line-height:var(--btn-line-height)!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}.settings-archived-label-long{display:none}.settings-archived-label-short{display:inline}}@media(max-width:640px){.modal-container.settings-modal{max-height:85dvh}.settings-form{padding:var(--spacing-md);gap:var(--spacing-xs)}.settings-form-group{gap:.375rem}.settings-label{font-size:var(--text-sm)}.settings-input{padding:.5rem .75rem;min-height:36px}.settings-helper-text,.settings-error-text{font-size:var(--text-xs)}.settings-profile-picture-container{padding:var(--spacing-sm)}.settings-profile-picture-preview,.settings-profile-picture-placeholder{width:80px;height:80px}.settings-profile-picture-actions{flex-direction:column}.settings-profile-picture-actions .settings-btn{width:100%}.settings-color-themes{justify-content:center;gap:var(--spacing-sm)}.settings-color-theme{width:40px;height:40px}.settings-mode-options{flex-direction:column;gap:var(--spacing-md)}.settings-finance-mode-selector{grid-template-columns:1fr}.settings-section-title{font-size:var(--text-base)}.settings-password-fields{gap:var(--spacing-sm)}.settings-modal-footer{padding:var(--spacing-md);padding-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom,0px))}.settings-modal-footer-buttons{flex-direction:column}.settings-modal-credits{margin-top:var(--spacing-lg);font-size:var(--text-xs)}.settings-modal-footer .settings-btn,.settings-modal-footer button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:var(--btn-height)!important;height:var(--btn-height)!important;max-height:var(--btn-height)!important;padding:0 var(--btn-padding-x)!important;border-radius:var(--btn-radius)!important;font-size:var(--btn-font-size)!important;font-weight:var(--btn-font-weight)!important;line-height:var(--btn-line-height)!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}.settings-enable-student-flow{display:flex;flex-direction:column;gap:var(--spacing-md)}.settings-form-actions-inline{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.modal-container.logout-modal{max-width:400px}.logout-modal .modal-body{padding:var(--spacing-lg)}.logout-modal-question{color:var(--color-text-primary);font-size:var(--text-base);font-weight:400;margin:0;font-family:var(--font-sans);text-align:center}.logout-modal-footer{padding:0 var(--spacing-lg) var(--spacing-lg) var(--spacing-lg);display:flex;gap:var(--spacing-md);justify-content:center}.logout-btn-logout:active{box-shadow:inset 0 2px 4px #00000026}.logout-btn-cancel:active{transform:scale(.98)}@media(max-width:850px){.logout-modal .modal-body{padding:var(--spacing-lg)}.logout-modal-footer{flex-direction:column;gap:var(--spacing-sm);padding:0 var(--spacing-lg) var(--spacing-lg) var(--spacing-lg)}.logout-modal-footer .logout-btn,.logout-modal-footer button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:var(--btn-height)!important;height:var(--btn-height)!important;max-height:var(--btn-height)!important;padding:0 var(--btn-padding-x)!important;border-radius:var(--btn-radius)!important;font-size:var(--btn-font-size)!important;font-weight:var(--btn-font-weight)!important;line-height:var(--btn-line-height)!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}@media(max-width:640px){.logout-modal .modal-body{padding:var(--spacing-md)}.logout-modal-question{font-size:var(--text-sm)}.logout-modal-footer{padding:0 var(--spacing-md) var(--spacing-md) var(--spacing-md)}.logout-modal-footer .logout-btn,.logout-modal-footer button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:var(--btn-height)!important;height:var(--btn-height)!important;max-height:var(--btn-height)!important;padding:0 var(--btn-padding-x)!important;border-radius:var(--btn-radius)!important;font-size:var(--btn-font-size)!important;font-weight:var(--btn-font-weight)!important;line-height:var(--btn-line-height)!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}}.notification-bell{position:relative;display:flex;align-items:center}.notification-bell-btn{position:relative}.notification-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;border-radius:var(--radius-md);background:var(--color-danger, #e53e3e);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;padding:0 3px;pointer-events:none}.notification-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:340px;max-width:calc(100vw - 16px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg, 12px);box-shadow:0 8px 24px #0000001f;z-index:1000;overflow:hidden}.notification-dropdown-header{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-primary);color:var(--color-primary-foreground)}.notification-dropdown-title{font-size:var(--text-base, 1rem);font-weight:600;color:var(--color-primary-foreground)}.notification-mark-all-btn{background:none;border:none;cursor:pointer;font-size:var(--text-xs, .75rem);color:rgba(var(--color-primary-foreground-rgb),.9);padding:0}.notification-mark-all-btn:hover{color:var(--color-primary-foreground);text-decoration:underline}.notification-dropdown-body{max-height:360px;overflow-y:auto}.notification-empty{padding:24px 16px;text-align:center;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #888)}.notification-item{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;cursor:pointer;transition:background .1s ease;border-bottom:1px solid var(--color-border, #e2e8f0)}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:var(--color-surface-hover)}.notification-item--read .notification-item-dot{opacity:0}.notification-item--read{cursor:default;opacity:.72}.notification-item-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--color-primary, #4285f4);margin-top:5px;transition:opacity .15s}.notification-item-content{flex:1;min-width:0}.notification-item-title{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-text-primary, #111);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-item-body{font-size:var(--text-xs, .75rem);color:var(--color-text-secondary, #666);margin-top:2px}.notification-item-time{font-size:var(--text-xs, .75rem);color:var(--color-text-secondary);margin-top:3px}.notification-item-delete{flex-shrink:0;background:none;border:none;cursor:pointer;font-size:16px;line-height:1;color:var(--color-text-secondary, #888);padding:0 0 0 4px;opacity:0;transition:opacity .15s;align-self:flex-start}.notification-item:hover .notification-item-delete{opacity:1}@media(max-width:480px){.notification-dropdown{right:-60px;width:300px}}.navbar{background-color:var(--color-primary);display:flex;align-items:center;justify-content:space-between;padding:.375rem 1.5rem;box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:100;height:var(--navbar-height);min-height:var(--navbar-height);flex-shrink:0;contain:layout;transform:none}.navbar-left{flex:0 0 auto;display:flex;align-items:center;gap:1rem}.navbar-logo{display:flex;align-items:center;text-decoration:none}.navbar-logo-img{height:28px;width:auto}.navbar-hamburger{display:none;flex-direction:column;justify-content:center;gap:4px;width:36px;height:36px;padding:8px;background:none;border:none;cursor:pointer;z-index:102;transition:transform var(--transition-slow),background-color var(--transition-slow)}.navbar-hamburger:hover{transform:scale(1.1)}.hamburger-line{width:100%;height:3px;background-color:var(--color-primary-foreground);border-radius:var(--radius-sm);transition:all .3s ease;transform-origin:center}.hamburger-line.open:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.navbar-overlay{display:none;position:fixed;top:var(--navbar-height);left:0;right:0;bottom:0;background-color:#00000080;z-index:98;pointer-events:auto}.navbar-center{flex:1;display:flex;justify-content:center;padding:0 2rem}.navbar-links{display:flex;list-style:none;gap:.5rem;margin:0;padding:0}.navbar-link-icon{width:20px;height:20px;margin-right:.5rem;object-fit:contain;flex-shrink:0}.navbar-link{display:flex;align-items:center;position:relative;padding:.375rem .875rem .5rem;color:color-mix(in srgb,var(--color-primary-foreground) 85%,var(--color-primary));text-decoration:none;border-radius:var(--radius-lg);font-size:var(--text-base);font-weight:500;white-space:nowrap;transition:color var(--transition-slow),text-shadow var(--transition-slow)}.navbar-link:hover{color:var(--color-primary-foreground);text-shadow:.2px 0 0 var(--color-primary-foreground),-.2px 0 0 var(--color-primary-foreground),0 .2px 0 var(--color-primary-foreground),0 -.2px 0 var(--color-primary-foreground)}.navbar-link:after{content:"";position:absolute;bottom:.25rem;left:0;right:0;height:2px;background:var(--color-primary-foreground);border-radius:1px;transform:scaleX(0);transform-origin:center;transition:transform var(--transition-slow)}.navbar-link:hover:after{transform:scaleX(1)}.navbar-link:active:after{opacity:.9}.navbar-link.active{color:var(--color-primary-foreground);text-shadow:.18px 0 0 var(--color-primary-foreground),-.18px 0 0 var(--color-primary-foreground),0 .18px 0 var(--color-primary-foreground),0 -.18px 0 var(--color-primary-foreground)}.navbar-link.active:after{transform:scaleX(1)}.navbar-link.active:hover{color:var(--color-primary-foreground);text-shadow:.18px 0 0 var(--color-primary-foreground),-.18px 0 0 var(--color-primary-foreground),0 .18px 0 var(--color-primary-foreground),0 -.18px 0 var(--color-primary-foreground)}.navbar-link.active:hover:after{transform:scaleX(1)}.navbar-link--temporary{color:var(--color-primary-lighter)}.navbar-link--temporary:hover{color:var(--color-primary-light);text-shadow:none}.navbar-link--temporary.active{color:var(--color-primary-lighter);text-shadow:.1px 0 0 var(--color-primary-lighter),-.1px 0 0 var(--color-primary-lighter),0 .1px 0 var(--color-primary-lighter),0 -.1px 0 var(--color-primary-lighter)}.navbar-link--temporary.active:hover{color:var(--color-primary-light);text-shadow:.1px 0 0 var(--color-primary-light),-.1px 0 0 var(--color-primary-light),0 .1px 0 var(--color-primary-light),0 -.1px 0 var(--color-primary-light)}.navbar-link--temporary:after{background:var(--color-primary-lighter)}.navbar-right{flex:0 0 auto;display:flex;align-items:center;gap:1.5rem}.navbar-icon-btn{background:none;border:none;color:var(--color-primary-foreground);cursor:pointer;padding:.375rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:transform var(--transition-slow),background-color var(--transition-slow)}.navbar-icon-btn:hover{transform:scale(1.1)}.navbar-icon-btn-icon{width:24px;height:24px;display:block;flex-shrink:0}.navbar-logout-icon{width:24px;height:24px;display:block;filter:var(--color-primary-icon-filter)}.navbar-user{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.25rem;border-radius:var(--radius-xl);transition:transform var(--transition-slow),background-color var(--transition-slow)}.navbar-user:hover{transform:scale(1.05)}.navbar-username{color:var(--color-primary-foreground);font-size:var(--text-base);font-weight:500;white-space:nowrap}.navbar-avatar{width:30px;height:30px;border-radius:50%;overflow:hidden;background-color:rgba(var(--color-primary-foreground-rgb),.2);display:flex;align-items:center;justify-content:center;border:2px solid var(--color-primary-foreground)}.navbar-avatar img{width:100%;height:100%;object-fit:cover}.navbar-avatar-initials{color:var(--color-primary-foreground);font-size:var(--text-sm);font-weight:700;text-transform:uppercase}@media(prefers-reduced-motion:reduce){.navbar-link:after{transition:none}.navbar-link:hover:after{transform:scaleX(1)}.navbar-hamburger:hover,.navbar-icon-btn:hover,.navbar-user:hover{transform:none}}@media(max-width:1024px){.navbar{padding:.5rem 1.25rem}.navbar-center{padding:0 1rem}.navbar-links{gap:.25rem}.navbar-link{padding:.4rem .85rem;font-size:var(--text-sm)}.navbar-username{font-size:var(--text-sm)}}@media(max-width:1130px){.navbar{padding:.4rem .75rem;position:fixed;width:100%;left:0;right:0;top:0;z-index:1010;margin:0}.navbar-hamburger{display:flex}.navbar-center{position:fixed;top:var(--navbar-height);left:0;width:280px;height:calc(100vh - var(--navbar-height));background-color:var(--color-primary);padding:1.5rem 0;transform:translate(-100%);transition:transform var(--transition-base);z-index:1002;box-shadow:var(--shadow-lg);overflow-y:auto}.navbar-center.mobile-open{transform:translate(0)}.navbar-overlay{display:block;position:fixed;top:var(--navbar-height);left:0;right:0;bottom:0;background-color:#00000080;z-index:1001}.navbar-links{flex-direction:column;gap:0;width:100%}.navbar-links li{width:100%}.navbar-link{width:100%;padding:1rem 1.5rem 1.1rem;font-size:var(--text-base);border-radius:0;justify-content:flex-start;min-height:48px}.navbar-link:after{left:1.5rem;right:1.5rem;bottom:.5rem}.navbar-username{display:none}.navbar-right{gap:.5rem}.navbar-avatar{width:32px;height:32px}.navbar-icon-btn{padding:.5rem}.navbar-icon-btn-icon,.navbar-logout-icon{width:28px;height:28px}}@media(max-width:1130px)and (min-width:769px){.navbar{z-index:100}.navbar.navbar--menu-open{z-index:1010}.navbar-center{z-index:98}.navbar-overlay{z-index:97}}@media(max-width:1130px){body.modal-open .navbar{z-index:100}body.modal-open .navbar-center{z-index:98}body.modal-open .navbar-overlay{z-index:97}body.modal-open .navbar-hamburger{z-index:98}}@media(max-width:640px){.navbar-logo-img{height:26px}.navbar-avatar{width:30px;height:30px}}.landing-container{height:100vh;height:100dvh;display:flex;flex-direction:column;background-color:var(--color-background);overflow:hidden;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-top:env(safe-area-inset-top);box-sizing:border-box}.landing-logo-corner{position:absolute;top:0;left:0;padding:var(--spacing-md) var(--spacing-xl);padding-top:calc(var(--spacing-md) + env(safe-area-inset-top));padding-left:calc(var(--spacing-xl) + env(safe-area-inset-left));z-index:1}.landing-logo{height:40px;width:auto;display:block}.landing-topbar{display:none}.landing-main{flex:1;display:flex;flex-direction:column;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}@media(max-width:1023px){.landing-card-wrapper{order:-1}}@media(min-width:1024px){.landing-main{flex-direction:row;align-items:stretch;position:relative;overflow:hidden}.landing-main:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:0;pointer-events:none;box-shadow:8px 0 24px #0000001f;z-index:1}.landing-card-wrapper{order:0;position:relative;z-index:0}}.landing-hero{flex:1;display:none;align-items:center;justify-content:center;min-height:200px;padding:var(--spacing-lg);background:var(--color-primary)}@media(min-width:1024px){.landing-hero{display:flex;min-height:0;overflow:hidden;padding:clamp(var(--spacing-md),3vh,var(--spacing-xl));flex:1 1 50%;border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}}.landing-hero-image{width:100%;max-width:520px;height:auto;object-fit:contain}@media(min-width:1024px){.landing-hero-image{max-width:100%;max-height:100%;object-fit:contain;object-position:center left}}.landing-card-wrapper{display:flex;align-items:center;justify-content:center;padding:clamp(var(--spacing-md),4vw,var(--spacing-2xl));padding-bottom:calc(clamp(var(--spacing-md),4vw,var(--spacing-2xl)) + env(safe-area-inset-bottom));background:var(--color-background);min-width:0;overflow-y:auto;-webkit-overflow-scrolling:touch}@media(min-width:1024px){.landing-card-wrapper{flex:1 1 50%;min-width:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:clamp(var(--spacing-md),3vh,var(--spacing-2xl));padding-bottom:calc(clamp(var(--spacing-md),3vh,var(--spacing-2xl)) + env(safe-area-inset-bottom))}}@media(min-width:1024px)and (max-height:700px){.landing-card-wrapper{align-items:flex-start;justify-content:flex-start}}.landing-card{width:100%;max-width:min(520px,calc(100vw - 2 * var(--spacing-lg)));min-width:0;min-height:420px;background-color:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:clamp(var(--spacing-xl),5vw,var(--spacing-2xl));display:flex;flex-direction:column;align-items:center;text-align:center;box-sizing:border-box}@media(min-width:1024px){.landing-card{padding:clamp(.75rem,3vh,var(--spacing-2xl));min-height:0}}.landing-card-icon{width:56px;height:56px;margin-bottom:var(--spacing-lg);flex-shrink:0;object-fit:contain}.landing-card-title{font-size:2.25rem;font-weight:700;color:var(--color-primary-dark);margin:0 0 var(--spacing-lg);line-height:1.2}@media(min-width:640px){.landing-card-title{font-size:2.75rem}}@media(min-width:1024px){.landing-card-title{font-size:clamp(1.75rem,3vh,2.75rem);margin-bottom:clamp(var(--spacing-sm),2vh,var(--spacing-lg))}.landing-card-icon{width:clamp(40px,8vh,56px);height:clamp(40px,8vh,56px);margin-bottom:clamp(var(--spacing-sm),2vh,var(--spacing-lg))}.landing-divider{margin:clamp(var(--spacing-sm),2vh,var(--spacing-lg)) 0}.landing-card-form{margin-bottom:clamp(var(--spacing-sm),2vh,var(--spacing-lg))}.landing-card-primary-actions{margin-top:clamp(var(--spacing-xs),1vh,var(--spacing-md))}}.landing-card-form{width:100%;margin-bottom:var(--spacing-lg);text-align:left}.landing-card .form-label,.landing-card .form-input{font-size:var(--text-lg)}.landing-card .form-link{font-size:var(--text-sm)}.landing-card .form-error-text,.landing-card .form-error-general{font-size:var(--text-base)}.landing-card-form .form-group{margin-bottom:0}.landing-card-primary-actions{display:flex;flex-direction:column;gap:var(--spacing-xs);width:100%;margin-top:var(--spacing-md)}.landing-card-auth-buttons{display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%}@media(min-width:1024px){.landing-card-auth-buttons{flex-direction:row;align-items:stretch;gap:var(--spacing-md)}}.landing-card-auth-buttons .landing-btn{flex:1;width:100%;min-width:0;height:var(--btn-height);min-height:var(--btn-height);max-height:var(--btn-height);box-sizing:border-box}.landing-card-auth-buttons .landing-btn-primary{border:1px solid transparent}.landing-divider{display:flex;align-items:center;width:100%;margin:var(--spacing-lg) 0;gap:var(--spacing-md)}.landing-divider:before,.landing-divider:after{content:"";flex:1;height:1px;background-color:var(--color-border)}.landing-divider-text{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.landing-card-actions{display:flex;flex-direction:column;gap:var(--spacing-md);width:100%}.landing-google-action{display:flex;flex-direction:column;align-items:stretch;gap:var(--spacing-xs);width:100%}.landing-google-action .landing-btn-google{width:100%}.feature-disabled-notice{font-size:.75rem;color:var(--color-text-muted, #6b7280);text-align:center;width:100%}.landing-contact-link{color:var(--color-primary);text-decoration:none}.landing-contact-link:hover,.landing-contact-link:focus-visible{text-decoration:underline}.landing-legal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--spacing-xs) var(--spacing-sm);margin-top:var(--spacing-sm);font-size:var(--text-sm);width:100%}.landing-legal-separator{color:var(--color-text-muted, #6b7280)}.landing-card .landing-btn,.landing-card-auth-buttons .btn-submit.landing-btn{width:100%;min-width:0;height:var(--btn-height);min-height:var(--btn-height);max-height:var(--btn-height);padding:0 var(--btn-padding-x);font-size:var(--btn-font-size);font-weight:600;border-radius:var(--btn-radius);line-height:var(--btn-line-height)}.landing-btn{width:100%;min-width:0;height:var(--btn-height);padding:0 var(--btn-padding-x);font-size:var(--btn-font-size);font-weight:600;border-radius:var(--btn-radius);line-height:var(--btn-line-height)}.landing-btn-primary{background-color:var(--color-primary);color:var(--color-primary-foreground)}.landing-btn-primary:hover:not(:disabled){filter:brightness(.97)}.landing-btn-primary:disabled{opacity:.5;cursor:not-allowed}.landing-btn-secondary{background-color:transparent;color:var(--color-text-primary);border:1px solid var(--color-border)}.landing-btn-secondary:hover:not(:disabled){background-color:var(--color-surface-hover)}.landing-btn-secondary:disabled{opacity:.55;cursor:not-allowed;background-color:var(--color-gray-button, #e5e7eb);color:var(--color-text-muted, #9ca3af);filter:grayscale(.25)}.landing-btn-google{background-color:var(--color-surface);color:var(--color-text-primary);border:2px solid var(--color-border);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.landing-card .landing-btn-google{border:2px solid var(--color-border)}.landing-btn-google:hover:not(:disabled){border-color:var(--color-primary);background-color:rgba(var(--color-primary-rgb),.05)}.landing-btn-google:disabled{opacity:.55;cursor:not-allowed;background-color:var(--color-gray-button, #e5e7eb);color:var(--color-text-muted, #9ca3af);border-color:var(--color-border);filter:grayscale(.25)}.landing-btn-google:disabled .landing-btn-google-icon{opacity:.6}[data-theme=dark] .landing-btn-secondary{background-color:#6b7280}[data-theme=dark] .landing-btn-secondary:hover:not(:disabled){background-color:var(--color-gray-button-hover)}[data-theme=dark] .landing-btn-secondary:disabled{background-color:var(--color-gray-button, #4b5563);color:var(--color-text-muted, #9ca3af)}.landing-card .landing-btn:hover:not(:disabled),.landing-card-auth-buttons .btn-submit.landing-btn:hover:not(:disabled){transform:none}.landing-card .landing-btn:active:not(:disabled),.landing-card-auth-buttons .btn-submit.landing-btn:active:not(:disabled){transform:none}.landing-btn-google-icon{width:20px;height:20px;object-fit:contain}@media(max-width:1023px){.landing-container{height:auto;min-height:100vh;min-height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.landing-logo-corner{display:none}.landing-topbar{display:flex;align-items:center;justify-content:flex-start;width:100%;padding:var(--spacing-sm) var(--spacing-lg);padding-top:calc(var(--spacing-sm) + env(safe-area-inset-top));padding-left:calc(var(--spacing-lg) + env(safe-area-inset-left));padding-right:calc(var(--spacing-lg) + env(safe-area-inset-right));background-color:var(--color-primary);border-bottom:1px solid var(--color-border);flex-shrink:0}.landing-topbar .landing-logo{height:32px}.landing-main{flex:1;min-height:0}.landing-card-wrapper{flex:1;min-height:0;padding:var(--spacing-lg);padding-bottom:calc(var(--spacing-lg) + env(safe-area-inset-bottom));overflow-y:auto}.landing-card{background:transparent;box-shadow:none;border-radius:0;padding:var(--spacing-md);min-height:0;max-width:min(400px,calc(100vw - 2 * var(--spacing-md)))}.landing-card .landing-btn-secondary{background-color:#d1d5db;color:var(--color-text-primary)}.landing-card .landing-btn-secondary:hover:not(:disabled){background-color:#9ca3af}[data-theme=dark] .landing-card .landing-btn-secondary{background-color:#6b7280;color:#fff}[data-theme=dark] .landing-card .landing-btn-secondary:hover:not(:disabled){background-color:#4b5563}.landing-card .landing-divider:before,.landing-card .landing-divider:after{background-color:#9ca3af}.landing-card .landing-divider-text{color:#6b7280}[data-theme=dark] .landing-card .landing-divider:before,[data-theme=dark] .landing-card .landing-divider:after{background-color:#6b7280}[data-theme=dark] .landing-card .landing-divider-text{color:#9ca3af}}@media(max-width:640px){.landing-card-wrapper{padding:var(--spacing-md);padding-bottom:calc(var(--spacing-md) + env(safe-area-inset-bottom))}.landing-card{max-width:min(400px,calc(100vw - 2 * var(--spacing-md)));padding:var(--spacing-sm)}.landing-card-icon{width:48px;height:48px;margin-bottom:var(--spacing-md)}.landing-card-title{font-size:1.5rem}.landing-card .form-label,.landing-card .form-input{font-size:var(--text-base)}}@media(max-width:320px){.landing-card{padding:var(--spacing-md)}.landing-card-title{font-size:1.25rem}}.month-navigator{display:flex;align-items:stretch;gap:0;background-color:var(--color-surface);border-radius:var(--radius-lg);padding:4px;min-height:44px;box-sizing:border-box;width:fit-content;max-width:100%}.month-navigator__center{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);flex:1 1 auto;min-width:0}.month-nav-btn{background-color:transparent;border:none;cursor:pointer;padding:0;min-width:40px;width:40px;height:36px;display:inline-flex;align-items:center;justify-content:center;line-height:1;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:var(--color-text-secondary);border-radius:calc(var(--radius-lg) - 2px);transition:background-color var(--transition-slow),color var(--transition-slow)}.month-nav-btn:hover{background-color:var(--color-surface-hover);color:var(--color-text-primary);transform:none}.month-nav-btn:disabled{opacity:.5;cursor:not-allowed}.month-nav-btn:disabled:hover{background-color:transparent;color:var(--color-text-secondary)}.month-nav-btn:active{transform:scale(.98)}.month-nav-btn img{width:20px;height:20px;display:block;filter:brightness(0) saturate(100%) invert(42%) sepia(14%) saturate(500%) hue-rotate(180deg)}[data-theme=dark] .month-nav-btn img{filter:invert(1) brightness(1.2)}.month-nav-btn img.month-return-icon{width:28px;height:28px;filter:none}[data-theme=dark] .month-nav-btn img.month-return-icon{filter:none}.month-display{position:relative;display:flex;align-items:center;justify-content:center;min-height:36px;padding:0 var(--spacing-md);text-align:center;margin:0;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;flex:0 0 auto;min-width:0}.month-text--measure{position:absolute;visibility:hidden;pointer-events:none;white-space:nowrap}.month-text{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);text-decoration:none;pointer-events:none;cursor:default;white-space:nowrap}@media(max-width:850px){.month-navigator{padding:3px;min-height:36px;width:fit-content}.month-nav-btn{min-width:36px;width:36px;height:30px}.month-display{min-height:30px;padding:0 10px}.month-text{font-size:14px}}@media(max-width:480px){.month-navigator{padding:2px}.month-nav-btn{min-width:32px;width:32px}.month-nav-btn img{width:20px;height:20px}.month-display{padding:0 8px}}.budget-category-tile{background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg) var(--spacing-xl);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%}.budget-category-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.category-name{font-size:var(--text-lg);font-weight:700;color:var(--color-text-primary);text-align:left;margin:0}.category-amount-row{display:flex;width:100%}.category-amount-block{display:flex;flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.category-amount{font-size:var(--text-base);font-weight:500;color:var(--color-text-primary)}.category-remaining{font-size:var(--text-sm);color:var(--color-text-secondary)}.category-remaining--overbudget{color:#b91c1c;font-weight:600}.progress-row{display:flex;align-items:center;gap:var(--spacing-md);width:100%}.progress-bar-container{flex:1;height:8px;background-color:var(--color-background);border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-percentage{font-size:var(--text-sm);font-weight:600;flex-shrink:0}.progress-percentage-green{color:var(--color-grade-green, #10b981)}.progress-percentage-yellow{color:var(--color-grade-yellow, #fbbf24)}.progress-percentage-red{color:var(--color-grade-red, #ef4444)}.progress-percentage-dark-red{color:#b91c1c}.progress-bar{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal);position:absolute;left:0;top:0}.progress-bar--behind{z-index:0}.progress-bar--actual{z-index:1}.progress-bar-pending{background-color:var(--color-primary-lighter)}.category-amount-pending-suffix,.category-remaining-incl-pending,.progress-percentage-incl-pending{font-size:var(--text-xs);color:var(--color-text-secondary)}.budget-category-tile--over-incl-pending .category-amount-pending-suffix,.budget-category-tile--over-incl-pending .category-remaining-incl-pending,.budget-category-tile--over-incl-pending .progress-percentage-incl-pending{color:#b91c1c;font-weight:600}.progress-bar-green{background-color:var(--color-grade-green, #10b981)}.progress-bar-yellow{background-color:var(--color-grade-yellow, #fbbf24)}.progress-bar-red{background-color:var(--color-grade-red, #ef4444)}.progress-bar-dark-red{background-color:#b91c1c}@supports (background-color: color-mix(in srgb,#000 50%,#fff 50%)){.progress-percentage-green{color:color-mix(in srgb,var(--color-grade-green, #10b981) 82%,var(--color-background) 18%)}.progress-percentage-yellow{color:color-mix(in srgb,var(--color-grade-yellow, #fbbf24) 82%,var(--color-background) 18%)}.progress-percentage-red{color:color-mix(in srgb,var(--color-grade-red, #ef4444) 82%,var(--color-background) 18%)}.progress-bar-green{background-color:color-mix(in srgb,var(--color-grade-green, #10b981) 82%,var(--color-background) 18%)}.progress-bar-yellow{background-color:color-mix(in srgb,var(--color-grade-yellow, #fbbf24) 82%,var(--color-background) 18%)}.progress-bar-red{background-color:color-mix(in srgb,var(--color-grade-red, #ef4444) 82%,var(--color-background) 18%)}.category-remaining--overbudget,.progress-percentage-dark-red,.budget-category-tile--over-incl-pending .category-amount-pending-suffix,.budget-category-tile--over-incl-pending .category-remaining-incl-pending,.budget-category-tile--over-incl-pending .progress-percentage-incl-pending{color:color-mix(in srgb,#b91c1c 92%,var(--color-background) 8%)}.progress-bar-dark-red{background-color:color-mix(in srgb,#b91c1c 92%,var(--color-background) 8%)}}@media(max-width:1024px){.budget-category-tile{padding:var(--spacing-md) var(--spacing-lg)}}@media(max-width:850px){.budget-category-tile{padding:var(--spacing-md);border:1px solid var(--color-border)}.category-name{font-size:var(--text-base)}.category-amount{font-size:var(--text-sm)}}@media(max-width:640px){.budget-category-tile{padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-xs)}.category-name{font-size:var(--text-base)}.progress-bar-container{height:6px}}.app-tooltip{display:inline-flex;vertical-align:middle}.app-tooltip__overlay{position:fixed;z-index:5000;padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--text-xs);font-weight:500;line-height:1.3;color:var(--color-text-primary);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--transition-fast),visibility var(--transition-fast)}.app-tooltip__overlay--visible{opacity:1;visibility:visible}.app-tooltip__arrow{position:absolute;left:var(--app-tooltip-arrow-left, 50%);transform:translate(-50%);width:0;height:0;border:5px solid transparent;pointer-events:none}.app-tooltip__overlay--above .app-tooltip__arrow{bottom:-6px;border-top-color:var(--color-border)}.app-tooltip__overlay--below .app-tooltip__arrow{top:-6px;border-bottom-color:var(--color-border)}.transaction-recurring-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:var(--spacing-xs);width:18px;height:18px;padding:2px;border-radius:var(--radius-full);background-color:#3b82f626;color:#3d68c4}[data-theme=dark] .transaction-recurring-badge{background-color:#60a5fa33;color:#60a5fa}.transaction-status-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px;border-radius:var(--radius-full);flex-shrink:0}.transaction-status-badge--sm{padding:3px}.transaction-status-badge--sm svg{width:13px;height:13px}.transaction-status-badge.settled{background-color:#d4edda;color:#155724}.transaction-status-badge.planned{background-color:#fff3cd;color:#856404}.transaction-status-badge.cancelled{background-color:#f8d7da;color:#721c24}[data-theme=dark] .transaction-status-badge.settled{background-color:#064e3b;color:#6ee7b7}[data-theme=dark] .transaction-status-badge.planned{background-color:#78350f;color:#fcd34d}[data-theme=dark] .transaction-status-badge.cancelled{background-color:#7f1d1d;color:#fca5a5}.transaction-status-dropdown{position:relative;display:inline-flex}.transaction-status-dropdown__trigger{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);background:none;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);color:var(--color-primary-foreground);transition:background-color var(--transition-base),transform var(--transition-base)}.transaction-status-dropdown__trigger:hover:not(:disabled),.transaction-status-dropdown__trigger--open{background-color:rgba(var(--color-primary-foreground-rgb),.1)}.transaction-status-dropdown__trigger:active:not(:disabled){background-color:rgba(var(--color-primary-foreground-rgb),.2)}.transaction-status-dropdown__trigger:disabled{opacity:.5;cursor:not-allowed}.transaction-status-dropdown__trigger--labeled{min-height:44px;padding:var(--spacing-xs) var(--spacing-sm)}.transaction-status-dropdown__trigger-label{font-size:var(--text-sm);font-weight:600;white-space:nowrap}.transaction-status-dropdown__menu{min-width:180px;max-width:min(260px,calc(100vw - 48px));max-height:min(220px,calc(100vh - 120px));overflow-y:auto;padding:var(--spacing-xs);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:2px}.transaction-status-dropdown__menu--portaled{position:fixed;z-index:5000}.transaction-status-dropdown__option{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-primary);text-align:left;cursor:pointer}.transaction-status-dropdown__option--selected{background-color:rgba(var(--color-primary-rgb),.08)}.transaction-status-dropdown__option--active,.transaction-status-dropdown__option:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.transaction-status-dropdown__option-label{font-size:var(--text-sm);font-weight:600;line-height:1.3}@media(max-width:480px){.transaction-status-dropdown__menu{min-width:160px;max-width:min(240px,calc(100vw - 32px))}.transaction-status-dropdown__trigger--labeled .transaction-status-dropdown__trigger-label{max-width:120px;overflow:hidden;text-overflow:ellipsis}}.transactions-table-outer{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden;display:flex;flex-direction:column;width:100%;min-height:0;flex:1}.transactions-table-wrapper{display:flex;flex-direction:column;width:100%;flex:1;min-height:0;overflow:hidden;max-height:calc(100vh - 420px);max-height:calc(100dvh - 420px)}.transactions-table-wrapper>.transactions-table:first-of-type{padding-right:8px;box-sizing:border-box}.transactions-table-pagination{flex-shrink:0}.transactions-table-container{flex:0 0 560px;min-height:0;height:560px;max-height:560px;overflow-y:auto;overflow-x:hidden;position:relative;width:100%}.transactions-table{width:100%;border-collapse:collapse;table-layout:fixed}.transactions-table thead{background-color:var(--color-primary);color:var(--color-primary-foreground)}.transactions-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-size:var(--text-sm);font-weight:var(--table-header-font-weight);color:var(--color-primary-foreground);background-color:var(--color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-fast)}.sortable-header:hover{background-color:rgba(var(--color-primary-foreground-rgb),.1)}.sort-indicator{font-size:var(--text-xs);margin-left:var(--spacing-xs)}.transactions-table-container::-webkit-scrollbar{width:8px}.transactions-table-container::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.transactions-table-container::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.transactions-table-container{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.transaction-row{cursor:pointer;transition:background-color .2s;border-bottom:1px solid var(--color-border)}.transaction-row:hover{background-color:var(--color-hover)}.transactions-table-container--end-of-list .transaction-row:last-child{border-bottom:1px solid var(--color-border)}.transactions-table-end-message{padding:var(--spacing-lg) var(--spacing-xl);text-align:center;color:var(--color-text-secondary);font-size:var(--text-sm);border-top:1px solid var(--color-border)}.transactions-table td{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--text-sm);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) .transactions-col-date{width:100px}.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) .transactions-col-description{width:36%}.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) .transactions-col-category{width:26%}.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) .transactions-col-amount{width:110px}.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) .transactions-col-status{width:95px}.transactions-table--with-type .transactions-col-type{width:62px}.transactions-table--with-type .transactions-col-date{width:92px}.transactions-table--with-type .transactions-col-description{width:28%}.transactions-table--with-type .transactions-col-category{width:20%}.transactions-table--with-type .transactions-col-amount{width:110px}.transactions-table--with-type .transactions-col-status{width:95px}.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) td:nth-child(1),.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) th:nth-child(1){padding-left:var(--spacing-md)}.transactions-table--with-type td:nth-child(1),.transactions-table--with-type th:nth-child(1){padding-left:var(--spacing-md);padding-right:var(--spacing-xs);text-align:center;overflow:visible}.transactions-table--with-type td:nth-child(2),.transactions-table--with-type th:nth-child(2){padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) td:nth-child(4),.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) th:nth-child(4),.transactions-table--with-type td:nth-child(5),.transactions-table--with-type th:nth-child(5){text-align:right}.transactions-table--compact td:nth-child(3){text-align:left}.transactions-table--compact th:nth-child(3){text-align:left}.transactions-table td.date-cell{font-variant-numeric:tabular-nums;letter-spacing:-.02em;overflow:visible;text-overflow:clip;padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.transactions-table td.amount-cell{font-weight:500;overflow:visible;text-overflow:clip}.category-cell--clickable{cursor:pointer;color:var(--color-primary);font-weight:500;transition:color var(--transition-fast)}.category-cell--clickable:hover{color:var(--color-primary-hover, var(--color-primary));text-decoration:underline}.type-cell{text-align:center;overflow:visible;padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}.type-header{padding-left:var(--spacing-sm);padding-right:var(--spacing-xs);overflow:visible}.transaction-type-icon{display:inline-flex;align-items:center;justify-content:center;padding:4px;border-radius:var(--radius-full);flex-shrink:0}.transaction-type-icon--income{background-color:#d4edda;color:#155724}.transaction-type-icon--expense{background-color:#f8d7da;color:#721c24}.transaction-type-icon--saving{background-color:#fff3cd;color:#856404}[data-theme=dark] .transaction-type-icon--income{background-color:#064e3b;color:#6ee7b7}[data-theme=dark] .transaction-type-icon--expense{background-color:#7f1d1d;color:#fca5a5}[data-theme=dark] .transaction-type-icon--saving{background-color:#78350f;color:#fcd34d}.transactions-table tbody td:last-child{overflow:visible}.status-header-text{display:inline}.status-header-icon{display:none}.table-empty{padding:var(--spacing-2xl);text-align:center;color:var(--color-text-secondary)}.transactions-table-pagination.pagination-container{--pagination-control-height: var(--btn-compact-height);--pagination-control-radius: var(--btn-compact-radius);display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-surface);border-top:1px solid var(--color-border);flex-wrap:wrap;gap:var(--spacing-xs)}.transactions-table-pagination .pagination-info{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--pagination-control-height)}.transactions-table-pagination .pagination-controls,.transactions-table-pagination .pagination-page-numbers{display:flex;gap:var(--spacing-xs);align-items:center}.transactions-table-pagination .pagination-current{display:none;padding:0 var(--spacing-xs);color:var(--color-text-secondary);font-size:var(--text-sm);white-space:nowrap;line-height:var(--pagination-control-height)}.transactions-table-pagination .page-size-selector{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-sm);color:var(--color-text-secondary)}.transactions-table-pagination .pagination-actions-right{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.transactions-table-pagination .page-size-selector label{display:none}.transactions-table-pagination .page-size-selector select{height:var(--pagination-control-height);padding:0 var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--pagination-control-radius);background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-sm);line-height:1;box-sizing:border-box}.transactions-table-pagination .transactions-toolbar-filter-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);min-width:auto;height:var(--pagination-control-height);min-height:var(--pagination-control-height);padding:0 var(--btn-compact-padding-x);border:1px solid var(--color-border);border-radius:var(--pagination-control-radius);background-color:transparent;color:var(--color-text-primary);font-size:var(--btn-compact-font-size);font-weight:var(--btn-compact-font-weight);line-height:var(--btn-compact-line-height);box-sizing:border-box;cursor:pointer;transition:background-color var(--btn-transition),border-color var(--btn-transition),color var(--btn-transition)}.transactions-table-pagination .transactions-toolbar-filter-btn:hover:not(:disabled){background-color:var(--color-surface-hover);border-color:var(--color-border)}.transactions-table-pagination .transactions-toolbar-filter-count{min-width:16px;height:16px;font-size:9px}@media(max-width:1279px){.transactions-table-wrapper{max-height:400px}.transactions-table-container{flex:1 1 auto;height:auto;max-height:400px}}@media(max-width:850px){.transactions-table-wrapper>.transactions-table:first-of-type{padding-right:0;width:100%}.transactions-table-container .transactions-table{width:100%}.transactions-table.transactions-table--compact:not(.transactions-table--with-type) col.transactions-col-date{width:4.65rem}.transactions-table.transactions-table--compact:not(.transactions-table--with-type) col.transactions-col-description{width:auto}.transactions-table.transactions-table--compact:not(.transactions-table--with-type) col.transactions-col-amount{width:27%}.transactions-table.transactions-table--compact:not(.transactions-table--with-type) col.transactions-col-status{width:3.75rem}.transactions-table--compact td{padding:var(--spacing-sm) var(--spacing-sm);font-size:var(--text-xs)}.transactions-table--compact th{padding:6px var(--spacing-sm);font-size:var(--text-sm);line-height:1.25;text-align:left;vertical-align:middle}.transactions-table--compact th:nth-child(1),.transactions-table--compact td:nth-child(1){width:4.65rem;min-width:4.65rem;max-width:4.65rem;padding-left:4px;padding-right:2px}.transactions-table--compact th:nth-child(2),.transactions-table--compact td:nth-child(2){width:auto;min-width:0;padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}.transactions-table--compact th:nth-child(3),.transactions-table--compact td:nth-child(3){width:27%;min-width:4.5rem;padding-left:var(--spacing-xs);padding-right:var(--spacing-xs);text-align:left}.transactions-table--compact th:nth-child(4),.transactions-table--compact td:nth-child(4){width:3.75rem;min-width:3.75rem;max-width:3.75rem;padding-left:3px;padding-right:3px}.transactions-table--compact th:nth-child(4){text-align:left;white-space:nowrap;overflow:visible}.transactions-table--compact th.status-header .status-header-icon{margin-right:1px}.transactions-table--compact th.status-header .sort-indicator{margin-left:0;font-size:10px;line-height:1;vertical-align:middle}.transactions-table--compact td:nth-child(4){text-align:left;white-space:nowrap;overflow:hidden}.transactions-table--compact td.date-cell{overflow:visible;text-overflow:clip;white-space:nowrap;padding-left:4px;padding-right:2px}.transactions-table--compact td.amount-cell{overflow:visible;text-overflow:clip;white-space:nowrap}.transactions-table--compact .transaction-status-badge{padding:3px}.transactions-table--compact .transaction-status-badge svg{width:13px;height:13px}.transactions-table--compact .transaction-recurring-badge{width:14px;height:14px;padding:2px;margin-left:0}.transactions-table--compact .transaction-recurring-badge svg{width:11px;height:11px}.transactions-table--compact .status-header-icon svg{width:14px;height:14px}.transactions-table--compact .status-header-text{display:none}.transactions-table--compact .status-header-icon{display:inline-flex;align-items:center;justify-content:flex-start;vertical-align:middle}}@media(min-width:851px)and (max-width:1024px){.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) .transactions-col-status{width:6.75rem;min-width:6.75rem}.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) th:nth-child(5),.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) td:nth-child(5){width:6.75rem;min-width:6.75rem;max-width:6.75rem}.transactions-table:not(.transactions-table--with-type):not(.transactions-table--compact) thead th:nth-child(5){overflow:visible;white-space:nowrap;padding-right:var(--spacing-sm)}}@media(max-width:850px){.transactions-table-pagination.pagination-container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"controls filters";padding:var(--spacing-xs) var(--spacing-sm);--pagination-control-height: 28px;align-items:center;gap:var(--spacing-sm);width:100%;box-sizing:border-box;overflow:visible}.transactions-table-pagination .pagination-info{display:none}.transactions-table-pagination .pagination-controls{grid-area:controls;justify-self:start;flex-shrink:0;gap:2px}.transactions-table-pagination .pagination-actions-right{display:contents}.transactions-table-pagination .page-size-selector{display:none}.transactions-table-pagination .transactions-toolbar-filter-wrap{grid-area:filters;justify-self:end;flex-shrink:0}.transactions-table-pagination .pagination-current{display:inline;font-size:.7rem;padding:0 4px;min-width:2.25rem;text-align:center}.transactions-table-pagination .pagination-controls .pagination-button:first-child,.transactions-table-pagination .pagination-controls .pagination-button:last-child,.transactions-table-pagination .pagination-page-numbers{display:none}.transactions-table-pagination .pagination-button{min-width:28px;height:28px;font-size:.65rem;padding:2px}.transactions-table-pagination .transactions-toolbar-filter-btn{height:var(--pagination-control-height);min-height:var(--pagination-control-height);font-size:.65rem}.transactions-table-outer{overflow-x:clip;overflow-y:hidden}}.dual-range-slider{position:relative;padding-top:4px;padding-bottom:var(--spacing-xs)}.dual-range-slider-track{position:absolute;top:10px;left:0;right:0;height:4px;background-color:var(--color-border);border-radius:var(--radius-full)}.dual-range-slider-range{position:absolute;top:0;height:100%;background-color:var(--color-primary);border-radius:var(--radius-full)}.dual-range-slider-input{position:absolute;top:0;left:0;width:100%;height:24px;margin:0;padding:0;pointer-events:none;-webkit-appearance:none;appearance:none;background:transparent}.dual-range-slider-input::-webkit-slider-runnable-track{-webkit-appearance:none;background:transparent;height:4px}.dual-range-slider-input::-moz-range-track{background:transparent;height:4px;border:none}.dual-range-slider-input::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:16px;height:16px;margin-top:-6px;border-radius:var(--radius-full);background-color:var(--color-primary);border:2px solid var(--color-surface);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--transition-fast)}.dual-range-slider-input::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;border-radius:var(--radius-full);background-color:var(--color-primary);border:2px solid var(--color-surface);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--transition-fast)}.dual-range-slider-input:focus-visible::-webkit-slider-thumb{outline:2px solid var(--color-primary);outline-offset:2px}.dual-range-slider-input:focus-visible::-moz-range-thumb{outline:2px solid var(--color-primary);outline-offset:2px}.dual-range-slider-input--min{z-index:3}.dual-range-slider-input--max{z-index:4}.dual-range-slider-input:hover::-webkit-slider-thumb{transform:scale(1.1)}.dual-range-slider-input:hover::-moz-range-thumb{transform:scale(1.1)}.dual-range-slider-values{display:flex;justify-content:space-between;margin-top:var(--spacing-md);font-size:var(--text-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.dual-range-slider--disabled{opacity:.5;pointer-events:none}.transactions-toolbar-filter-wrap{position:relative;flex-shrink:0}.transactions-toolbar-filter-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);min-width:auto;height:var(--btn-compact-height);min-height:var(--btn-compact-height);padding:0 var(--btn-compact-padding-x);border:1px solid var(--color-border);border-radius:var(--btn-compact-radius);background-color:transparent;color:var(--color-text-primary);font-size:var(--btn-compact-font-size);font-weight:var(--btn-compact-font-weight);line-height:var(--btn-compact-line-height);box-sizing:border-box;cursor:pointer;transition:background-color var(--btn-transition),border-color var(--btn-transition),color var(--btn-transition)}.transactions-toolbar-filter-btn:hover,.transactions-toolbar-filter-btn--open{background-color:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.transactions-toolbar-filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:var(--radius-full);background-color:var(--color-primary-foreground);color:var(--color-primary);font-size:10px;font-weight:600}.transactions-toolbar-filter-btn:hover .transactions-toolbar-filter-count,.transactions-toolbar-filter-btn--open .transactions-toolbar-filter-count{background-color:var(--color-surface);color:var(--color-primary)}.transactions-toolbar-filter-menu{min-width:260px;max-width:min(320px,calc(100vw - 2 * var(--spacing-lg)));padding:var(--spacing-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.transactions-toolbar-filter-menu--portaled{position:fixed;z-index:1200;width:min(320px,calc(100vw - 24px));max-height:min(70vh,calc(100vh - 24px));overflow-y:auto;opacity:0;pointer-events:none}.transactions-toolbar-filter-menu--portaled.transactions-toolbar-filter-menu--interactive{pointer-events:auto}.transactions-toolbar-filter-menu--enter{animation:panel-transition-in var(--panel-transition-duration) cubic-bezier(.32,.72,0,1) both}.transactions-toolbar-filter-menu--closing{animation:panel-transition-out var(--panel-transition-duration) cubic-bezier(.32,.72,0,1) both}@media(prefers-reduced-motion:reduce){.transactions-toolbar-filter-menu--enter,.transactions-toolbar-filter-menu--closing{animation:none!important;opacity:1}}.transactions-toolbar-filter-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.transactions-toolbar-filter-field label{font-size:var(--text-xs);color:var(--color-text-secondary)}.transactions-toolbar-filter-field select,.transactions-toolbar-filter-field input[type=search]{width:100%;box-sizing:border-box;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--input-radius);background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-sm);transition:border-color var(--panel-transition-duration) cubic-bezier(.32,.72,0,1),background-color var(--panel-transition-duration) cubic-bezier(.32,.72,0,1),color var(--panel-transition-duration) cubic-bezier(.32,.72,0,1)}.transactions-toolbar-filter-field select:hover,.transactions-toolbar-filter-field input[type=search]:hover,.transactions-toolbar-filter-field input[type=search]:focus{outline:none;border-color:var(--color-primary);background-color:var(--color-hover)}.transactions-toolbar-filter-field input[type=search]::placeholder{color:var(--color-text-secondary)}.transactions-toolbar-filter-field--slider{gap:var(--spacing-sm)}.transactions-toolbar-filter-actions{display:flex;gap:var(--spacing-sm)}.transactions-toolbar-filter-apply,.transactions-toolbar-filter-clear{flex:1;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;text-align:center;cursor:pointer;transition:border-color var(--transition-base),color var(--transition-base),background-color var(--transition-base),opacity var(--transition-base)}.transactions-toolbar-filter-apply{border:1px solid var(--color-primary);background-color:var(--color-primary);color:var(--color-primary-foreground)}.transactions-toolbar-filter-apply:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.transactions-toolbar-filter-clear{border:1px solid var(--color-border);background-color:transparent;color:var(--color-text-secondary)}.transactions-toolbar-filter-clear:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-hover)}.transactions-toolbar-filter-apply:disabled,.transactions-toolbar-filter-clear:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.transactions-toolbar-filter-btn{font-size:var(--text-xs)}}.finance-add-menu{position:relative;display:inline-flex}.finance-add-menu__trigger{display:inline-flex;align-items:center;justify-content:center}.finance-add-menu__trigger--open{background-color:var(--color-primary-hover)}.finance-add-menu__dropdown{position:absolute;top:calc(100% + 6px);right:0;z-index:30;min-width:180px;padding:var(--spacing-xs);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column}.finance-add-menu__item{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-primary);font-size:var(--text-sm);text-align:left;cursor:pointer}.finance-add-menu__dropdown--above{top:auto;bottom:calc(100% + 6px);right:0;left:0;min-width:unset}.finance-add-menu__trigger--labeled{width:auto;min-width:0;height:var(--btn-height);min-height:var(--btn-height);padding:0 var(--btn-padding-x);gap:var(--btn-icon-gap);text-transform:none;letter-spacing:normal;font-weight:var(--btn-font-weight);font-size:var(--btn-font-size);white-space:nowrap}.finance-add-menu__trigger-label{font-size:inherit;font-weight:inherit;white-space:nowrap}.finance-add-menu--mobile{position:relative;flex:1;min-width:0;display:flex}.finance-charts-accordion{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.finance-charts-accordion__header{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;min-height:44px;padding:var(--spacing-sm) var(--spacing-md);border:none;background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-sm);font-weight:650;text-align:left;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-fast)}.finance-charts-accordion__header:hover{background-color:var(--color-hover)}.finance-charts-accordion__chevron{flex-shrink:0;width:1rem;font-size:var(--text-xs);color:var(--color-text-secondary);text-align:center}.finance-charts-accordion__title{flex:1;min-width:0}.finance-charts-accordion__count{flex-shrink:0;color:var(--color-text-secondary);font-weight:500}.finance-charts-accordion__body{display:none;flex-direction:column;gap:var(--spacing-sm);padding:0 0 var(--spacing-sm)}.finance-charts-accordion__body--expanded{display:flex}.finance-charts-accordion__body .finances-chart-card{flex:0 0 auto}.finance-charts-accordion__body .finances-chart-header{padding:var(--spacing-sm) var(--spacing-sm);padding-bottom:var(--spacing-xs)}.finance-charts-accordion__body .finances-chart-content{min-height:220px;padding:var(--spacing-xs) var(--spacing-xs);padding-bottom:var(--spacing-sm)}.finance-charts-accordion__body .finances-chart-header-controls{gap:var(--spacing-xs)}.finance-charts-accordion__body .chart-view-mode-select{max-width:min(220px,100%)}@media(prefers-reduced-motion:reduce){.finance-charts-accordion__header{transition:none}}@media(min-width:851px){.finance-charts-accordion--phone-only{display:none}}.finance-reports-menu{position:relative;display:inline-flex;flex-shrink:0}.finance-reports-menu__trigger{background:none;border:none;padding:var(--spacing-xs);font-size:var(--text-xl);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-base);line-height:1;display:flex;align-items:center;justify-content:center;min-width:32px;height:32px}.finance-reports-menu__trigger:hover:not(:disabled){color:var(--color-primary);transform:scale(1.1)}.finance-reports-menu__trigger:disabled{opacity:.5;cursor:not-allowed}.finance-reports-menu__trigger--open{color:var(--color-primary)}.finance-reports-menu__arrow{display:block;transition:transform var(--transition-fast)}.finance-reports-menu__trigger--open .finance-reports-menu__arrow{transform:rotate(180deg)}.finance-reports-menu__dropdown{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:200px;padding:var(--spacing-xs);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;flex-direction:column}.finance-reports-menu__item{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-primary);font-size:var(--text-sm);text-align:left;cursor:pointer}.finance-reports-menu__item:disabled{opacity:.5;cursor:not-allowed}.finance-reports-menu__divider{height:1px;margin:var(--spacing-xs) 0;background-color:var(--color-border)}.number-stepper{display:flex;align-items:stretch;border:2px solid var(--color-border);border-radius:var(--input-radius);background-color:var(--color-surface);overflow:hidden;transition:border-color var(--transition-base),box-shadow var(--transition-base);flex:0 0 auto}.number-stepper:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.number-stepper-input{width:2.75rem;min-width:0;padding:.5rem .375rem;border:none;background:transparent;color:var(--color-text-primary);font-size:.875rem;font-family:inherit;text-align:center;outline:none;-moz-appearance:textfield}.number-stepper-input:disabled{opacity:.6;cursor:not-allowed}.number-stepper-controls{display:flex;flex-direction:column;border-left:1px solid var(--color-border);flex-shrink:0}.number-stepper-btn{display:flex;align-items:center;justify-content:center;width:1.75rem;flex:1;padding:0;border:none;background-color:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.number-stepper-btn+.number-stepper-btn{border-top:1px solid var(--color-border)}.number-stepper-btn:hover:not(:disabled){background-color:#7b93c026;color:var(--color-primary)}.number-stepper-btn:active:not(:disabled){background-color:#7b93c040}.number-stepper-btn:disabled{opacity:.5;cursor:not-allowed}.number-stepper-chevron{display:block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent}.number-stepper-chevron-up{border-bottom:5px solid currentColor}.number-stepper-chevron-down{border-top:5px solid currentColor}@media(max-width:850px){.number-stepper-input{width:3rem;padding:.5rem .375rem;font-size:.875rem;min-height:40px}.number-stepper-btn{width:2rem}}@media(max-width:640px){.number-stepper-input{width:2.75rem;min-height:36px}.number-stepper-btn{width:1.75rem}}.recurrence-fields{display:flex;flex-direction:column;gap:.75rem;min-width:0}.expense-repeat-section{padding:.875rem;background-color:var(--color-surface-hover);border-radius:var(--radius-lg);border:1px solid var(--color-border);display:flex;flex-direction:column;gap:.625rem;min-width:0}.expense-repeat-section-title{display:flex;align-items:center;margin:0;font-size:.8125rem;font-weight:600;color:var(--color-text-primary);letter-spacing:.01em;line-height:1}.expense-repeat-section-title .app-tooltip{display:inline-flex;align-items:center;line-height:0;margin-right:var(--spacing-sm)}.expense-repeat-section-title .transaction-recurring-badge{margin-left:0;flex-shrink:0}.expense-repeat-section-title .transaction-recurring-badge svg{display:block}.expense-repeat-section-title-text{line-height:1.2}.expense-repeat-section .recurrence-fields{gap:.625rem}.recurrence-fields .recurrence-group{display:flex;flex-direction:column;gap:.5rem;margin:0}.recurrence-fields .form-label{margin-bottom:0}.recurrence-presets,.recurrence-days{display:flex;flex-wrap:wrap;gap:.375rem}.recurrence-chip{padding:.375rem .75rem;border:2px solid var(--color-border);border-radius:var(--input-radius);background-color:var(--color-surface);color:var(--color-text-primary);font-size:.8125rem;font-weight:500;font-family:inherit;line-height:1.2;cursor:pointer;transition:border-color var(--transition-base),background-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-base);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.recurrence-chip:hover:not(:disabled){border-color:var(--color-primary)}.recurrence-chip:active:not(:disabled){transform:scale(.97)}.recurrence-chip.active{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-primary-foreground);box-shadow:none}.recurrence-chip:disabled{opacity:.6;cursor:not-allowed}.recurrence-day-chip{min-width:2.75rem;text-align:center}.recurrence-inline-row{display:flex;gap:.5rem;align-items:center;min-width:0;flex-wrap:wrap}.recurrence-inline-label,.recurrence-inline-suffix{font-size:.875rem;color:var(--color-text-secondary);flex-shrink:0}.recurrence-unit-select,.recurrence-select{flex:1;min-width:0;padding:.5rem .75rem;border:2px solid var(--color-border);border-radius:var(--input-radius);background-color:var(--color-surface);color:var(--color-text-primary);font-size:.875rem;font-family:inherit;outline:none;transition:border-color var(--transition-base),box-shadow var(--transition-base);cursor:pointer}.recurrence-unit-select:focus,.recurrence-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.recurrence-unit-select:disabled,.recurrence-select:disabled{opacity:.6;cursor:not-allowed}.recurrence-nth-row{margin-top:.25rem}.recurrence-ends-detail{margin-top:.125rem}.recurrence-date-clip{flex:1;min-width:0}.recurrence-date-input{width:100%;padding:.5rem .75rem;border:2px solid var(--color-border);border-radius:var(--input-radius);background-color:var(--color-surface);color:var(--color-text-primary);font-size:.875rem;font-family:inherit;outline:none;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.recurrence-date-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.recurrence-date-input:disabled{opacity:.6;cursor:not-allowed}@media(max-width:850px){.recurrence-chip{padding:.4375rem .75rem;font-size:.8125rem;min-height:36px}.recurrence-day-chip{min-width:2.5rem}}@media(max-width:640px){.recurrence-presets{gap:.5rem}.recurrence-chip:not(.recurrence-day-chip){flex:1 1 calc(50% - .25rem);min-width:0;text-align:center;min-height:36px;display:flex;align-items:center;justify-content:center}.recurrence-days{gap:.375rem}.recurrence-day-chip{flex:1 1 calc(14.28% - .32rem);min-width:2.25rem;min-height:36px;display:flex;align-items:center;justify-content:center;padding:.375rem .25rem}.recurrence-inline-row{flex-wrap:nowrap}.recurrence-unit-select,.recurrence-select,.recurrence-date-input{min-height:36px}}@media(max-width:480px){.recurrence-day-chip{flex:1 1 calc(25% - .3rem)}}.expense-details-section{display:flex;flex-direction:column;gap:.875rem}:root{--panel-transition-duration: .2s}@keyframes panel-transition-in{0%{opacity:0;transform:scale(.96) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes panel-transition-out{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.96) translateY(-4px)}}.panel-transition{animation:panel-transition-in var(--panel-transition-duration) cubic-bezier(.32,.72,0,1)}.panel-transition--closing{animation:panel-transition-out var(--panel-transition-duration) cubic-bezier(.32,.72,0,1) forwards}.panel-transition--origin-top-left{transform-origin:top left}.panel-transition--origin-top-right{transform-origin:top right}.panel-transition--origin-top-center{transform-origin:top center}.panel-transition--origin-bottom-right{transform-origin:bottom right}.floating-panel-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.floating-panel-header-title{flex:1;min-width:0}.floating-panel-header-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.floating-panel-close-btn{background:none;border:none;cursor:pointer;opacity:.75;padding:4px;color:inherit;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm, 6px);transition:opacity .1s,background .1s}.floating-panel-close-btn:hover{opacity:1;background:#ffffff26}.floating-panel-close-btn img{width:16px;height:16px;display:block}.floating-panel-menu-item{transition:background-color var(--panel-transition-duration) cubic-bezier(.32,.72,0,1),color var(--panel-transition-duration) cubic-bezier(.32,.72,0,1)}.floating-panel-menu-item:hover,.floating-panel-menu-item:focus{background-color:var(--color-hover);color:var(--color-primary);outline:none}@media(prefers-reduced-motion:reduce){.panel-transition,.panel-transition--closing{animation:none!important}}.edit-occurrence-info{font-size:.875rem;color:var(--color-text-primary);font-family:var(--font-sans);padding:var(--spacing-md) 0}.edit-occurrence-info p{margin:0 0 var(--spacing-sm) 0}.edit-occurrence-info p:last-of-type{margin-bottom:0}.edit-occurrence-info .info-label{font-weight:500;color:var(--color-text-secondary, #6b7280)}.edit-occurrence-modal.modal-container{max-width:570px}.edit-occurrence-edit-series-wrap{margin-bottom:var(--spacing-lg)}.edit-occurrence-modal-edit-series-btn:disabled{opacity:.6;cursor:not-allowed}.view-transaction-content{display:flex;flex-direction:column;gap:var(--spacing-md)}.view-transaction-type-value{display:flex;align-items:center;flex-wrap:wrap}.view-transaction-details{margin:0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.view-transaction-row{display:grid;grid-template-columns:minmax(100px,35%) 1fr;gap:var(--spacing-sm);align-items:start}.view-transaction-row dt{margin:0;color:var(--color-text-secondary);font-size:var(--text-sm)}.view-transaction-row dd{margin:0;color:var(--color-text-primary);word-break:break-word}@media(max-width:480px){.view-transaction-row{grid-template-columns:1fr;gap:var(--spacing-xs)}}.date-range-pill{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:6px 12px;border:none;border-radius:var(--radius-full);background-color:var(--color-background);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;white-space:nowrap}[data-theme=dark] .date-range-pill{background-color:var(--color-surface-hover)}.period-overview-card{container-type:inline-size;container-name:period-overview;background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;width:100%;box-sizing:border-box;min-width:0;overflow:hidden}.period-overview-card__header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);min-width:0}.period-overview-card__title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0;flex:1;min-width:0}.period-overview-card__content{flex:1;display:flex;flex-direction:column;gap:var(--spacing-md)}.period-overview-card__hero{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.period-overview-card__hero-metric{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);background-color:var(--color-background);min-width:0}.period-overview-card__hero-metric--positive{background-color:color-mix(in srgb,var(--semantic-grade-green) 10%,var(--color-surface))}.period-overview-card__hero-metric--negative,.period-overview-card__hero-metric--overbudget{background-color:color-mix(in srgb,var(--semantic-grade-red) 10%,var(--color-surface))}.period-overview-card__hero-metric-header{display:flex;align-items:center;gap:var(--spacing-xs);min-width:0}.period-overview-card__hero-label{font-size:var(--text-xs);font-weight:500;color:var(--color-text-secondary);line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.period-overview-card__hero-value{font-size:var(--text-lg);font-weight:700;color:var(--color-text-primary);line-height:1.3;min-width:0;overflow-wrap:normal;word-break:normal}.period-overview-card__hero-value .period-overview-card__pending{display:inline-block;font-size:var(--text-xs);font-weight:500;white-space:nowrap}.period-overview-card__hero-metric--positive .period-overview-card__hero-value{color:var(--semantic-grade-green)}.period-overview-card__hero-metric--negative .period-overview-card__hero-value{color:var(--semantic-grade-red)}.period-overview-card__hero-metric--overbudget .period-overview-card__hero-value{color:var(--semantic-grade-red-dark)}.period-overview-card__metric-icon{display:inline-flex;align-items:center;justify-content:center;width:1.375rem;height:1.375rem;border-radius:var(--radius-full);flex-shrink:0;background-color:var(--color-border-light);color:var(--color-text-secondary)}.period-overview-card__metric-icon--income{background-color:color-mix(in srgb,var(--semantic-grade-green) 16%,var(--color-surface));color:var(--semantic-grade-green)}.period-overview-card__metric-icon--expense{background-color:color-mix(in srgb,var(--semantic-grade-red) 16%,var(--color-surface));color:var(--semantic-grade-red)}.period-overview-card__metric-icon--saving{background-color:color-mix(in srgb,var(--semantic-grade-yellow) 20%,var(--color-surface));color:color-mix(in srgb,var(--semantic-grade-yellow) 70%,var(--color-text-primary))}.period-overview-card__metric-icon--positive{background-color:color-mix(in srgb,var(--semantic-grade-green) 16%,var(--color-surface));color:var(--semantic-grade-green)}.period-overview-card__metric-icon--negative,.period-overview-card__metric-icon--overbudget{background-color:color-mix(in srgb,var(--semantic-grade-red) 16%,var(--color-surface));color:var(--semantic-grade-red)}.period-overview-card__progress-row{display:flex;align-items:center;gap:var(--spacing-sm)}.period-overview-card__progress-bar-container{flex:1;min-width:0;height:14px;background-color:var(--color-background);border-radius:var(--radius-full);overflow:hidden;position:relative}.period-overview-card__progress-bar{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal);position:absolute;left:0;top:0}.period-overview-card__progress-bar--behind{z-index:0}.period-overview-card__progress-bar--actual{z-index:1}.period-overview-card__progress-bar--green{background-color:var(--color-grade-green, #10b981)}.period-overview-card__progress-bar--yellow{background-color:var(--color-grade-yellow, #fbbf24)}.period-overview-card__progress-bar--red{background-color:var(--color-grade-red, #ef4444)}.period-overview-card__progress-bar--dark-red{background-color:var(--color-grade-dark-red, #b91c1c)}@supports (background-color: color-mix(in srgb,#000 50%,#fff 50%)){.period-overview-card__progress-bar--green{background-color:color-mix(in srgb,var(--color-grade-green, #10b981) 82%,var(--color-background) 18%)}.period-overview-card__progress-bar--yellow{background-color:color-mix(in srgb,var(--color-grade-yellow, #fbbf24) 82%,var(--color-background) 18%)}.period-overview-card__progress-bar--red{background-color:color-mix(in srgb,var(--color-grade-red, #ef4444) 82%,var(--color-background) 18%)}.period-overview-card__progress-bar--dark-red{background-color:color-mix(in srgb,#b91c1c 92%,var(--color-background) 8%)}}.period-overview-card__progress-bar--pending{background-color:var(--color-primary-lighter)}.period-overview-card__progress-pct{font-size:var(--text-xs);font-weight:600;color:var(--color-text-primary);flex-shrink:0;white-space:nowrap;min-width:0}.period-overview-card__progress-pct--green,.period-overview-card__progress-pct--yellow{color:var(--color-text-primary)}.period-overview-card__progress-pct--red,.period-overview-card__progress-pct--dark-red{color:var(--semantic-grade-red)}.period-overview-card__metrics{display:flex;flex-direction:column;gap:var(--spacing-sm)}.period-overview-card__metrics .period-overview-card__progress-row{margin:0}.period-overview-card__metric-row{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);min-width:0}.period-overview-card__metric-label-group{display:flex;align-items:center;gap:var(--spacing-xs);min-width:0}.period-overview-card__section-divider{height:1px;background-color:var(--color-border);margin:var(--spacing-xs) 0}.period-overview-card__label{font-size:var(--text-sm);color:var(--color-text-secondary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.period-overview-card__value{font-size:var(--text-sm);color:var(--color-text-primary);text-align:right;flex-shrink:0;white-space:nowrap}.period-overview-card__value--income{color:var(--semantic-grade-green)}.period-overview-card__value--expense{color:var(--semantic-grade-red)}.period-overview-card__value--saving{color:var(--semantic-grade-yellow)}.period-overview-card__pending{font-size:var(--text-xs);color:var(--color-text-secondary);font-weight:400;white-space:nowrap}.period-overview-card__value .period-overview-card__pending{display:inline-block}.period-overview-card--compact{padding:var(--spacing-md) var(--spacing-lg)}.period-overview-card--compact .period-overview-card__title,.period-overview-card--compact .period-overview-card__hero-value{font-size:var(--text-base)}.period-overview-card--compact .period-overview-card__content{gap:var(--spacing-sm)}@media(max-width:640px){.period-overview-card{padding:var(--spacing-md)}.period-overview-card__hero{grid-template-columns:1fr}.period-overview-card__label,.period-overview-card__value{font-size:var(--text-sm)}}@container period-overview (max-width: 280px){.period-overview-card__hero{grid-template-columns:1fr}.period-overview-card__hero-value{font-size:var(--text-base)}}.chart-plot-area{flex:1 1 auto;min-height:120px;min-width:0;width:100%;position:relative}.chart-plot-area .recharts-wrapper,.chart-plot-area .recharts-surface{overflow:visible}.finance-chart{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;min-width:0;width:100%;height:100%}.finance-chart__legend{flex:0 0 auto}.net-income-chart .chart-loading,.net-income-chart .chart-empty,.savings-rate-chart .chart-loading,.savings-rate-chart .chart-empty{color:var(--color-text-secondary);font-size:var(--text-sm);margin:var(--spacing-lg) 0;text-align:center}.creatable-category-select__field{position:relative}.creatable-category-select__list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:40;margin:0;padding:var(--spacing-xs);list-style:none;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:220px;overflow-y:auto}.creatable-category-select__option{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-primary);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background-color var(--transition-fast)}.creatable-category-select__option:hover,.creatable-category-select__option.is-active{background-color:var(--color-surface-hover)}.creatable-category-select__option--create{color:var(--color-primary);font-weight:500}.creatable-category-select__option--empty{color:var(--color-text-secondary);cursor:default}.creatable-category-select__option--empty:hover{background:transparent}.creatable-category-select__plus-icon{width:14px;height:14px;flex-shrink:0;display:block;background-color:currentColor;mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20width='24'%20height='24'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cline%20x1='12'%20y1='5'%20x2='12'%20y2='19'%3e%3c/line%3e%3cline%20x1='5'%20y1='12'%20x2='19'%20y2='12'%3e%3c/line%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20width='24'%20height='24'%20fill='none'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3e%3cline%20x1='12'%20y1='5'%20x2='12'%20y2='19'%3e%3c/line%3e%3cline%20x1='5'%20y1='12'%20x2='19'%20y2='12'%3e%3c/line%3e%3c/svg%3e");mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}.recurrence-end-date-field{margin:0}.recurrence-end-date-input-wrapper{display:flex;align-items:center;gap:.5rem}.recurrence-end-date-input-wrapper .native-control-clip{position:relative;flex:1;min-width:0}.recurrence-end-date-placeholder{position:absolute;left:.625rem;right:2rem;top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none;font-size:.875rem;font-family:var(--font-sans);z-index:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recurrence-end-date-input-wrapper input[type=date].recurrence-end-date-empty:not(:focus){color:transparent}.recurrence-end-date-input-wrapper input[type=date].recurrence-end-date-empty:not(:focus)::-webkit-datetime-edit,.recurrence-end-date-input-wrapper input[type=date].recurrence-end-date-empty:not(:focus)::-webkit-datetime-edit-fields-wrapper,.recurrence-end-date-input-wrapper input[type=date].recurrence-end-date-empty:not(:focus)::-webkit-datetime-edit-text,.recurrence-end-date-input-wrapper input[type=date].recurrence-end-date-empty:not(:focus)::-webkit-datetime-edit-month-field,.recurrence-end-date-input-wrapper input[type=date].recurrence-end-date-empty:not(:focus)::-webkit-datetime-edit-day-field,.recurrence-end-date-input-wrapper input[type=date].recurrence-end-date-empty:not(:focus)::-webkit-datetime-edit-year-field{color:transparent}.recurrence-end-date-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:2px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-secondary);font-size:1.25rem;line-height:1;cursor:pointer;transition:color .15s,border-color .15s}.recurrence-end-date-clear:hover{color:var(--color-text-primary);border-color:var(--color-text-secondary)}.recurrence-end-date-clear:disabled{cursor:not-allowed;opacity:.6}.delete-category-confirm.auth-form .delete-confirmation-text,.delete-category-confirm.auth-form .form-label,.delete-category-confirm.auth-form .form-input{color:var(--color-text-primary);font-family:var(--font-sans)}.delete-category-confirm.auth-form .form-input::placeholder{color:var(--color-text-secondary)}.delete-category-confirm.auth-form .delete-confirmation-text{text-align:left;margin-bottom:var(--spacing-lg);line-height:1.6}.delete-category-confirm.auth-form .form-group{margin-bottom:var(--spacing-md)}.budget-details-modal .modal-body{max-height:70vh;overflow-y:auto}.budget-details-category-name{margin:0 0 var(--spacing-lg);font-size:var(--text-lg);font-weight:700;color:var(--color-text-primary)}.budget-details-modal-header-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.modal-edit-btn{background:none;border:none;color:var(--color-primary-foreground);cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--btn-radius);transition:all var(--transition-base)}.modal-edit-btn:hover{background-color:rgba(var(--color-primary-foreground-rgb),.1);transform:scale(1.1)}.modal-edit-btn:active{background-color:rgba(var(--color-primary-foreground-rgb),.2)}.modal-edit-btn img{width:20px;height:20px}.budget-details-content{display:flex;flex-direction:column;gap:var(--spacing-xl)}.budget-details-summary{display:flex;flex-direction:column;gap:var(--spacing-sm)}.budget-details-row{display:flex;align-items:center;justify-content:space-between}.budget-details-row--progress{margin-top:var(--spacing-xs)}.budget-details-label{font-size:var(--text-base);color:var(--color-text-secondary)}.budget-details-value{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary)}.budget-details-value--over{color:#b91c1c}.budget-details-progress-bar{flex:1;height:8px;background-color:var(--color-border-light);border-radius:var(--radius-full);overflow:hidden;margin-right:var(--spacing-sm)}.budget-details-progress-bar--container{position:relative}.budget-details-progress-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal)}.budget-details-progress-fill--actual{position:absolute;left:0;top:0;z-index:1}.budget-details-progress-fill--behind{position:absolute;top:0;z-index:0}.budget-details-progress-fill--pending{background-color:var(--color-primary-lighter)}.budget-details-value-pending-suffix,.budget-details-value-remaining-incl-pending,.budget-details-percentage-incl-pending{font-size:var(--text-xs);color:var(--color-text-secondary);font-weight:500}.budget-details-summary--over-incl-pending .budget-details-value-pending-suffix,.budget-details-summary--over-incl-pending .budget-details-value-remaining-incl-pending,.budget-details-summary--over-incl-pending .budget-details-percentage-incl-pending{color:#b91c1c;font-weight:600}.budget-details-percentage{font-size:var(--text-sm);font-weight:600;flex-shrink:0}.budget-details-percentage--green{color:var(--color-grade-green, #10b981)}.budget-details-percentage--yellow{color:var(--color-grade-yellow, #fbbf24)}.budget-details-percentage--red{color:var(--color-grade-red, #ef4444)}.budget-details-percentage--dark-red{color:#b91c1c}.budget-details-progress-fill--green{background-color:var(--color-grade-green, #10b981)}.budget-details-progress-fill--yellow{background-color:var(--color-grade-yellow, #fbbf24)}.budget-details-progress-fill--red{background-color:var(--color-grade-red, #ef4444)}.budget-details-progress-fill--dark-red{background-color:#b91c1c}@supports (background-color: color-mix(in srgb,#000 50%,#fff 50%)){.budget-details-percentage--green{color:color-mix(in srgb,var(--color-grade-green, #10b981) 82%,var(--color-background) 18%)}.budget-details-percentage--yellow{color:color-mix(in srgb,var(--color-grade-yellow, #fbbf24) 82%,var(--color-background) 18%)}.budget-details-percentage--red{color:color-mix(in srgb,var(--color-grade-red, #ef4444) 82%,var(--color-background) 18%)}.budget-details-percentage--dark-red{color:color-mix(in srgb,#b91c1c 92%,var(--color-background) 8%)}.budget-details-progress-fill--green{background-color:color-mix(in srgb,var(--color-grade-green, #10b981) 82%,var(--color-background) 18%)}.budget-details-progress-fill--yellow{background-color:color-mix(in srgb,var(--color-grade-yellow, #fbbf24) 82%,var(--color-background) 18%)}.budget-details-progress-fill--red{background-color:color-mix(in srgb,var(--color-grade-red, #ef4444) 82%,var(--color-background) 18%)}.budget-details-progress-fill--dark-red{background-color:color-mix(in srgb,#b91c1c 92%,var(--color-background) 8%)}.budget-details-value--over,.budget-details-summary--over-incl-pending .budget-details-value-pending-suffix,.budget-details-summary--over-incl-pending .budget-details-value-remaining-incl-pending,.budget-details-summary--over-incl-pending .budget-details-percentage-incl-pending{color:color-mix(in srgb,#b91c1c 92%,var(--color-background) 8%)}}.budget-details-expenses-section{display:flex;flex-direction:column;gap:var(--spacing-md);min-height:0}.budget-details-expenses-title{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0}.budget-details-expenses-table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;flex-shrink:1;display:flex;flex-direction:column}.budget-details-expenses-table-header{flex-shrink:0;border-bottom:1px solid var(--color-border)}.budget-details-expenses-table-container{max-height:400px;min-height:0;overflow-y:auto;overflow-x:hidden}.budget-details-expenses-table{width:100%;border-collapse:collapse;table-layout:fixed}.budget-details-expenses-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:var(--table-header-font-weight);font-size:var(--text-sm);color:var(--color-text-primary);background-color:var(--color-surface)}.budget-details-expenses-table td{padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-primary);font-size:var(--text-sm)}.budget-details-expenses-table-body tbody tr{border-bottom:1px solid var(--color-border);transition:background-color .2s}.budget-details-expenses-table-body tbody tr.clickable-row{cursor:pointer}.budget-details-expenses-table-body tbody tr.clickable-row:hover{background-color:var(--color-hover)}.budget-details-expenses-empty{text-align:center;padding:var(--spacing-xl)!important;color:var(--color-text-secondary)!important}.budget-details-delete-confirm{padding:var(--spacing-md) 0}.budget-details-delete-confirm .delete-confirmation-text,.budget-details-delete-confirm .form-label,.budget-details-delete-confirm .form-input,.budget-details-delete-confirm .form-input::placeholder{color:var(--color-text-primary);font-family:var(--font-sans)}.budget-details-delete-confirm .delete-confirmation-text{text-align:left;margin-bottom:var(--spacing-lg);line-height:1.6}.budget-details-delete-confirm .form-group{margin-bottom:var(--spacing-md)}.chart-time-navigator{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.chart-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;transition:background-color .15s,border-color .15s}.chart-nav-btn:hover:not(:disabled){background-color:var(--color-surface-hover, rgba(0, 0, 0, .05));border-color:var(--color-border-hover, var(--color-border))}.chart-nav-btn:disabled{opacity:.4;cursor:not-allowed}.chart-nav-btn img{display:block}[data-theme=dark] .chart-nav-btn img{filter:invert(1) brightness(1.2)}.chart-view-range-select{font-size:var(--text-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--input-radius);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;min-width:0;-webkit-appearance:none;appearance:none;padding-right:calc(var(--spacing-sm) + 18px);background-repeat:no-repeat;background-position:right var(--spacing-sm) center;background-size:12px 12px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%23222222' d='M7.41 8.59a1 1 0 0 1 1.41 0L12 11.76l3.18-3.17a1 1 0 1 1 1.41 1.41l-3.89 3.9a1 1 0 0 1-1.41 0l-3.89-3.9a1 1 0 0 1 0-1.41Z'/%3E%3C/svg%3E")}.chart-view-range-select:focus{outline:none;border-color:var(--color-primary)}[data-theme=dark] .chart-view-range-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M7.41 8.59a1 1 0 0 1 1.41 0L12 11.76l3.18-3.17a1 1 0 1 1 1.41 1.41l-3.89 3.9a1 1 0 0 1-1.41 0l-3.89-3.9a1 1 0 0 1 0-1.41Z'/%3E%3C/svg%3E")}.budget-vs-expense-chart .chart-loading,.budget-vs-expense-chart .chart-empty,.pacing-chart .chart-loading,.pacing-chart .chart-empty{color:var(--color-text-secondary);font-size:var(--text-sm);margin:var(--spacing-lg) 0;text-align:center}.pacing-chart-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(6px,1.2vw,14px);list-style:none;margin:6px 0 0;padding:0;font-size:11px;color:var(--color-text-secondary)}.pacing-chart-legend li{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.pacing-chart-legend li:focus{outline:2px solid color-mix(in srgb,var(--color-primary) 40%,transparent);outline-offset:2px;border-radius:var(--radius-md)}.pacing-chart-legend-swatch{width:10px;height:10px;border-radius:var(--radius-sm);flex:0 0 10px}.category-comparison-chart .chart-loading,.category-comparison-chart .chart-empty{color:var(--color-text-secondary);font-size:var(--text-sm);margin:var(--spacing-lg) 0;text-align:center}.category-comparison-chart--compact-x .recharts-xAxis .recharts-cartesian-axis-tick text{opacity:0;pointer-events:none}.finances-container{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background-color:var(--color-background);--finances-primary-chart-content-min-height: clamp(280px, 22vh, 380px);--finances-secondary-chart-content-min-height: clamp(200px, 16vh, 260px);--finances-chart-content-padding-bottom: var(--spacing-lg)}.finances-content{flex:1;padding:var(--page-content-padding-top) var(--page-content-padding-inline) var(--page-content-padding-bottom);max-width:1800px;margin:0 auto;width:100%}.finances-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--page-title-content-gap);gap:var(--spacing-lg)}.finances-title-row{display:flex;align-items:center;gap:var(--spacing-md);flex:1 1 auto;min-width:0}.finances-header-controls{display:none}.page-title{display:flex;align-items:center;gap:12px;font-size:var(--page-title-font-size);font-weight:700;color:var(--color-text-primary);text-align:left;margin:0;flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.finances-dashboard{display:flex;flex-direction:column;gap:var(--spacing-2xl)}.finances-categories-section{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:calc(-1 * var(--spacing-md))}.finances-categories-title{margin:0;font-size:var(--text-2xl);font-weight:700;color:var(--color-text-primary);display:inline-flex;align-items:center;gap:10px}.finances-categories-title-icon{width:26px;height:26px;flex-shrink:0}.finances-categories-header{display:flex;align-items:center;gap:var(--spacing-md);margin-top:0}.finances-categories-divider{flex:1;height:2px;background-color:var(--color-border);opacity:1}.finances-top-section{display:grid;grid-template-columns:1fr auto;gap:var(--spacing-xl);align-items:stretch}.finances-left-column{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) minmax(0,1fr);gap:var(--spacing-xl);height:100%}.finances-left-column:not(:has(.finances-chart-card--category)){grid-template-rows:auto minmax(0,1fr)}.finances-chart-card--budget-vs-expense,.finances-chart-card--category{width:100%;min-width:0;min-height:0;display:flex;flex-direction:column}.finances-chart-card--budget-vs-expense .finances-chart-content,.finances-chart-card--category .finances-chart-content{flex:1 1 auto;min-height:var(--finances-primary-chart-content-min-height)}.finances-right-column{display:grid;grid-template-rows:auto auto minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:var(--spacing-xl);min-width:0;min-width:450px;width:fit-content;max-width:100%;min-height:0;height:100%;flex-shrink:0}.finances-right-column:not(:has(.finances-chart-card--net-income)){grid-template-rows:auto auto minmax(0,1fr) minmax(0,1fr)}.finances-controls-strip{display:flex;align-items:center;gap:var(--spacing-md);width:100%;flex-shrink:0;min-width:0}.finances-controls-strip .btn-add-expense,.finances-controls-strip .btn-add-category,.finances-controls-strip .finance-add-menu{flex:0 0 auto}.finances-controls-strip .month-navigator{flex:1 1 auto;min-width:0;width:auto}.finances-controls-strip .month-navigator__center{flex:1 1 auto;min-width:0}.finances-summary-strip{min-width:0;width:100%;align-self:start}.finances-chart-card--pacing,.finances-chart-card--net-income,.finances-chart-card--savings-rate{width:100%;min-width:0;min-height:0;display:flex;flex-direction:column}.finances-chart-card--pacing .finances-chart-content,.finances-chart-card--net-income .finances-chart-content,.finances-chart-card--savings-rate .finances-chart-content{flex:1 1 auto;min-height:var(--finances-secondary-chart-content-min-height)}.finances-chart-card--category .finances-chart-content--category{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.finances-table-section{width:100%}.finances-transactions-section{display:flex;flex-direction:column;width:100%}.finances-transactions-section .transactions-table-outer{flex:1;min-height:0}.finances-chart-card--with-tiles{display:flex;flex-direction:column}.finances-chart-content--category{flex:1 1 auto;min-height:var(--finances-primary-chart-content-min-height);min-width:0}.finances-chart-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);font-weight:400}.finances-categories-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-md);background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-xl)}.finances-transition{animation-duration:.25s;animation-timing-function:ease;animation-fill-mode:both}.finances-transition--forward{animation-name:financeSlideLeft}.finances-transition--back{animation-name:financeSlideRight}.finances-transition--none{animation:none}@keyframes financeSlideLeft{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes financeSlideRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.finances-chart-card{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;display:flex;flex-direction:column}.finances-chart-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xl);padding-bottom:var(--spacing-sm)}.finances-chart-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0}.finances-chart-header-controls{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--spacing-sm)}.chart-view-mode-select,.chart-category-select{font-size:var(--text-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--input-radius);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;min-width:0;-webkit-appearance:none;appearance:none;padding-right:calc(var(--spacing-sm) + 18px);background-repeat:no-repeat;background-position:right var(--spacing-sm) center;background-size:12px 12px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%23222222' d='M7.41 8.59a1 1 0 0 1 1.41 0L12 11.76l3.18-3.17a1 1 0 1 1 1.41 1.41l-3.89 3.9a1 1 0 0 1-1.41 0l-3.89-3.9a1 1 0 0 1 0-1.41Z'/%3E%3C/svg%3E")}.chart-view-mode-select{width:220px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-view-mode-select:focus,.chart-category-select:focus{outline:none;border-color:var(--color-primary)}[data-theme=dark] .chart-view-mode-select,[data-theme=dark] .chart-category-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' d='M7.41 8.59a1 1 0 0 1 1.41 0L12 11.76l3.18-3.17a1 1 0 1 1 1.41 1.41l-3.89 3.9a1 1 0 0 1-1.41 0l-3.89-3.9a1 1 0 0 1 0-1.41Z'/%3E%3C/svg%3E")}.finances-chart-content{padding:var(--spacing-lg) var(--spacing-xl);padding-top:var(--spacing-sm);padding-bottom:var(--finances-chart-content-padding-bottom);min-height:0;box-sizing:border-box;flex:1 1 auto;display:flex;flex-direction:column}.finances-chart-content>.finance-chart{flex:1 1 auto;min-height:0;height:100%}.finances-chart-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;list-style:none;margin:6px 0 0;padding:0;font-size:11px;color:var(--color-text-secondary)}.finances-chart-legend li{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.finances-chart-legend li:focus{outline:2px solid color-mix(in srgb,var(--color-primary) 40%,transparent);outline-offset:2px;border-radius:var(--radius-md)}.finances-chart-legend-swatch{width:10px;height:10px;border-radius:var(--radius-sm);flex:0 0 10px}.finances-chart-legend-swatch--green{background-color:var(--semantic-grade-green)}.finances-chart-legend-swatch--red{background-color:var(--semantic-grade-red)}.finances-chart-legend-swatch--net-income{background-color:var(--color-info, #3b82f6)}.finances-container .categories-section{display:flex;flex-direction:column;gap:var(--spacing-md);background-color:transparent;box-shadow:none;padding:0;margin:0}.finances-container .finances-categories-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-md);background-color:transparent;box-shadow:none;padding:0;margin:0}.finances-categories-tiles>*,.finances-container .finances-categories-tiles>*{min-width:0}.loading-state{display:flex;justify-content:center;align-items:center;padding:var(--spacing-3xl);font-size:var(--text-lg);color:var(--color-text-secondary)}.finances-container .empty-state{display:flex;justify-content:center;align-items:flex-start;padding:var(--spacing-xl);padding-top:calc(var(--spacing-xl) * 2);background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.empty-state p{color:var(--color-text-secondary);font-size:var(--text-base);margin:0}.delete-icon-btn{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:none;border:none;color:#ef4444;cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base)}.delete-icon-btn:hover{background-color:#ef44441a;transform:scale(1.1)}.delete-confirm{padding:0}.delete-confirm p{margin-bottom:var(--spacing-lg);color:var(--color-text-primary);font-size:var(--text-base);text-align:center}.finances-mobile-wrapper,.finances-mobile-actions,.finances-charts-tablet-grid{display:none}@media(max-width:1279px){.finances-top-section{grid-template-columns:1fr}.finances-left-column,.finances-right-column{height:auto;grid-template-rows:none}.finances-left-column{display:flex;flex-direction:column}.finances-chart-card--budget-vs-expense,.finances-chart-card--category,.finances-chart-card--pacing,.finances-chart-card--net-income,.finances-chart-card--savings-rate{flex:0 0 auto;min-height:auto}.finances-header{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.finances-title-row{width:100%;min-width:0}.page-title{overflow:visible;text-overflow:unset;white-space:nowrap}.finances-header-controls{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--spacing-md);width:100%;justify-content:flex-start}.finances-header-controls .btn-add-expense,.finances-header-controls .finance-add-menu{flex:0 0 auto;width:auto}.finances-header-controls .finance-add-menu__trigger--labeled{width:auto;justify-content:center}.finances-header-controls .btn-add-expense{justify-content:center;text-transform:none;letter-spacing:normal}.finances-header-controls .month-navigator{flex:1 1 auto;min-width:0;width:auto;max-width:100%}.finances-controls-strip,.finances-chart-card--category{display:none}.finances-right-column{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:none;gap:var(--spacing-xl);align-items:stretch;width:100%;max-width:100%}.finances-summary-strip,.finances-chart-card--pacing,.finances-chart-card--net-income,.finances-chart-card--savings-rate{min-height:0}.finances-summary-strip{display:flex;align-self:start}.finances-summary-strip .monthly-total-card,.finances-summary-strip .period-overview-card{flex:1;min-height:0;width:100%}.finances-chart-card--pacing,.finances-chart-card--net-income,.finances-chart-card--savings-rate{display:flex;flex-direction:column}.finances-chart-card--pacing .finances-chart-content,.finances-chart-card--net-income .finances-chart-content,.finances-chart-card--savings-rate .finances-chart-content{flex:1;min-height:var(--finances-secondary-chart-content-min-height)}.finances-categories-tiles,.finances-container .finances-categories-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1024px){.finances-content{padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-xl);min-height:0}.finances-chart-header{padding:var(--spacing-md) var(--spacing-lg);padding-bottom:var(--spacing-xs)}.finances-chart-content{padding:var(--spacing-md) var(--spacing-lg);padding-top:var(--spacing-xs);padding-bottom:var(--finances-chart-content-padding-bottom)}.finances-header{margin-bottom:var(--page-title-content-gap);flex-shrink:0}.finances-categories-tiles{max-height:min(500px,calc(100dvh - 300px));overflow-y:auto;padding-right:var(--spacing-xs)}.finances-categories-tiles{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.finances-categories-tiles::-webkit-scrollbar{width:6px}.finances-categories-tiles::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.finances-categories-tiles::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.finances-categories-tiles::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}}@media(max-width:850px){.finances-container{--finances-primary-chart-content-min-height: 280px;--finances-secondary-chart-content-min-height: 220px;--finances-chart-content-padding-bottom: var(--spacing-lg)}.finances-content{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-lg)}.finances-dashboard{gap:var(--spacing-md)}.finances-mobile-actions{display:flex;flex-direction:column;gap:var(--spacing-sm);order:0;width:100%}.finances-mobile-actions .month-navigator{width:100%}.finances-header{margin-bottom:var(--page-title-content-gap);flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.finances-title-row{flex:0 0 auto;flex-wrap:wrap}.page-title{flex:0 0 auto;overflow:visible;text-overflow:unset}.finances-header-controls{display:none}.finances-table-section,.finances-chart-card--category.finances-chart-card--desktop-flow,.finances-categories-section,.finances-categories-header,.finances-categories-tiles,.finances-container .finances-categories-tiles,.finances-controls-strip,.finances-chart-card--desktop-flow{display:none!important}.finances-top-section{display:contents}.finances-left-column,.finances-right-column{display:contents;height:auto;grid-template-rows:none}.finances-summary-strip{order:1}.finance-charts-accordion--phone-only{order:2;width:100%;margin-left:0;margin-right:0}.finances-mobile-wrapper{order:3}.finances-summary-strip,.finances-summary-strip .monthly-total-card,.finances-summary-strip .period-overview-card{min-height:unset}.finances-summary-strip{min-width:100%;width:100%}.finances-mobile-wrapper{display:block;background-color:var(--color-surface);border-radius:var(--radius-lg);padding:var(--spacing-xs);margin-top:0;box-shadow:var(--shadow-sm)}.finances-chart-header-controls{flex-wrap:wrap}.finances-mobile-wrapper .mobile-tabs{width:100%;max-width:100%;padding:3px}.finances-mobile-wrapper .mobile-tabs .finance-add-menu--mobile{flex:1;min-width:0}.finances-mobile-wrapper .mobile-tabs .finance-add-menu--mobile .tab-button{width:100%;height:100%}.finances-mobile-wrapper .tab-button{flex:1;padding:0 var(--spacing-md);position:relative}.finances-mobile-wrapper .tab-button.active .tab-label{color:var(--color-primary-foreground)}.finances-mobile-wrapper .tab-label{text-align:center;line-height:1.1}.chart-view-mode-select{width:100%;max-width:100%}.mobile-content{display:block;margin-top:var(--spacing-sm);padding:0 var(--spacing-xs)}.mobile-content .expenses-table-wrapper,.mobile-content .categories-section-mobile{display:none}.mobile-content.show-expenses .expenses-table-wrapper{display:flex;flex-direction:column;min-height:0;max-height:calc(100vh - 360px);max-height:calc(100dvh - 360px)}.mobile-content.show-categories .categories-section-mobile{display:block}.categories-section-mobile{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-md);max-height:500px;overflow-y:auto;padding-right:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.categories-section-mobile{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.categories-section-mobile::-webkit-scrollbar{width:4px}.categories-section-mobile::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.categories-section-mobile::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.categories-section-mobile::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}}@media(max-width:640px){.finances-container{--finances-primary-chart-content-min-height: 280px;--finances-secondary-chart-content-min-height: 220px;--finances-chart-content-padding-bottom: var(--spacing-md)}.finances-content{padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md)}.finances-chart-card--budget-vs-expense{min-height:var(--finances-primary-chart-content-min-height)}.finances-chart-card--budget-vs-expense .finances-chart-content{flex:1 1 auto;min-height:0}.finances-categories-tiles,.finances-container .finances-categories-tiles,.categories-section-mobile{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-content.show-expenses .expenses-table-wrapper{max-height:calc(100vh - 320px);max-height:calc(100dvh - 320px)}.finances-header h1{font-size:var(--text-xl)}.finances-header{gap:var(--spacing-sm)}.finances-mobile-wrapper .tab-button{padding:0 10px;min-height:36px}}@media(max-width:480px){.finances-header h1{font-size:var(--text-xl)}}@media(min-width:851px)and (max-width:1024px){.finances-mobile-wrapper,.finances-mobile-actions,.finance-charts-accordion--phone-only{display:none!important}.finances-controls-strip{display:none}.finances-header-controls{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);align-items:stretch}.finances-header-controls .finance-add-menu,.finances-header-controls .btn-add-expense{width:100%;min-width:0}.finances-header-controls .finance-add-menu__trigger--labeled{width:100%}.finances-header-controls .month-navigator{width:100%;max-width:none}.finances-top-section{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);grid-template-areas:"summary pacing" "table table" "budget category" "net-income savings"}.finances-left-column,.finances-right-column{display:contents}.finances-table-section{grid-area:table;width:100%}.finances-summary-strip{grid-area:summary;min-height:unset}.finances-chart-card--pacing{grid-area:pacing}.finances-chart-card--budget-vs-expense{grid-area:budget}.finances-chart-card--category{grid-area:category;display:flex!important;flex-direction:column}.finances-chart-card--net-income{grid-area:net-income}.finances-chart-card--savings-rate{grid-area:savings}.finances-top-section:not(:has(.finances-chart-card--net-income)){grid-template-areas:"summary pacing" "table table" "budget category"}.finances-categories-section{display:flex!important}.finances-categories-tiles,.finances-container .finances-categories-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.finances-summary-strip .monthly-total-card,.finances-summary-strip .period-overview-card{min-height:unset}.finances-chart-card--budget-vs-expense .finances-chart-content,.finances-chart-card--category .finances-chart-content,.finances-chart-card--pacing .finances-chart-content,.finances-chart-card--net-income .finances-chart-content,.finances-chart-card--savings-rate .finances-chart-content{min-height:220px}}@media(min-width:851px)and (max-width:1024px)and (orientation:portrait),(min-width:851px)and (max-width:1024px)and (max-aspect-ratio:1/1){.finances-top-section{grid-template-areas:"summary pacing" "table table" "budget budget" "net-income savings"}.finances-top-section:not(:has(.finances-chart-card--net-income)){grid-template-areas:"summary pacing" "table table" "budget budget"}.finances-chart-card--category{display:none!important}}@media(min-width:851px)and (max-width:900px){.finances-categories-tiles,.finances-container .finances-categories-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.group-members-modal{max-width:900px}.group-members-content{display:flex;flex-direction:column;gap:var(--spacing-md)}.group-members-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.group-members-header .search-section{display:flex;gap:var(--spacing-sm);flex:1;min-width:250px}.group-members-header .search-input{flex:1;padding:.5rem .75rem;border:2px solid var(--color-border);border-radius:var(--input-radius);font-size:.875rem;color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.group-members-header .search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.group-members-header .search-input::placeholder{color:var(--color-text-secondary)}.group-members-header .btn-search{background-color:transparent;border:1px solid var(--color-border)}.group-members-header .btn-search:hover:not(:disabled){border-color:var(--color-primary);background-color:var(--color-surface-hover)}.group-members-header .btn-search img{width:var(--btn-icon-size);height:var(--btn-icon-size);opacity:.75;filter:none}.btn-add-member{gap:var(--btn-icon-gap)}.btn-add-member img,.btn-add-user img{width:var(--btn-icon-size);height:var(--btn-icon-size);filter:var(--color-primary-icon-filter)}.loading-state{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary)}.members-table-container{max-height:450px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.members-table{width:100%;border-collapse:collapse}.members-table thead{background-color:var(--color-surface-hover);position:sticky;top:0;z-index:1}.members-table th{padding:var(--spacing-md);text-align:left;font-weight:var(--table-header-font-weight);color:var(--color-text-primary);border-bottom:2px solid var(--color-border);font-size:var(--text-sm)}.members-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--transition-base)}.members-table tbody tr.clickable-row{cursor:pointer}.members-table tbody tr.clickable-row:hover{background-color:var(--color-surface-hover)}.members-table td{padding:var(--spacing-md);color:var(--color-text-primary);font-size:var(--text-base)}.members-table .no-data{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-xl);font-style:italic}.status-badge{display:inline-block;padding:4px 12px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.status-badge.active{background-color:#4caf501a;color:#4caf50}.status-badge.banned{background-color:#f443361a;color:#f44336}.gm-invert-icon{filter:brightness(0) saturate(100%)}[data-theme=dark] .gm-invert-icon{filter:brightness(0) invert(1)}.group-members-pagination{display:flex;justify-content:space-between;align-items:center;padding-top:var(--spacing-md);border-top:1px solid var(--color-border);flex-wrap:wrap;gap:var(--spacing-md)}.pagination-info{color:var(--color-text-secondary);font-size:var(--text-sm)}.pagination-current{padding:0 var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--text-sm);white-space:nowrap}.add-user-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.add-user-content .search-section{display:flex;gap:var(--spacing-sm)}.add-user-content .search-input{flex:1;padding:.5rem .75rem;border:2px solid var(--color-border);border-radius:var(--input-radius);font-size:.875rem;color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.add-user-content .search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.add-user-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:400px;overflow-y:auto}.add-user-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-base)}.add-user-item:hover{border-color:var(--color-primary);background-color:var(--color-surface-hover)}.user-info{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs)}.user-name{font-weight:600;color:var(--color-text-primary);font-size:var(--text-base)}.user-details{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--text-sm);color:var(--color-text-secondary)}.user-email,.user-separator,.user-username{color:var(--color-text-secondary)}.add-user-list .no-data{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-xl);font-style:italic}.user-details-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.user-detail-item{display:flex;flex-direction:column;gap:var(--spacing-xs);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.user-detail-item:last-of-type{border-bottom:none}.user-detail-label{font-weight:600;color:var(--color-text-secondary);font-size:var(--text-sm)}.user-detail-value{color:var(--color-text-primary);font-size:var(--text-base)}.permissions-section{margin-top:var(--spacing-md)}.permissions-section h4{margin:0 0 var(--spacing-md) 0;color:var(--color-text-primary);font-size:var(--text-lg)}.permissions-categorized{display:flex;flex-direction:column;gap:var(--spacing-md)}.permission-category{display:flex;flex-direction:column;gap:var(--spacing-sm)}.category-title{font-weight:600;color:var(--color-text-primary);font-size:var(--text-sm);text-transform:none;letter-spacing:normal}.permission-badge{display:inline-block;padding:4px 12px;background-color:rgba(var(--color-primary-rgb),.1);color:var(--color-primary);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.no-data{text-align:center;color:var(--color-text-secondary);font-style:italic}@media(min-width:769px)and (max-width:1024px){.group-members-modal .members-table th:nth-child(2),.group-members-modal .members-table td:nth-child(2){display:none}}@media(max-width:850px){.group-members-header{flex-direction:column;align-items:stretch}.group-members-header .search-section{width:100%}.btn-add-member{width:100%;justify-content:center}.members-table-container{max-height:calc(100vh - 300px);min-height:auto;overflow-x:auto;-webkit-overflow-scrolling:touch}.members-table{min-width:100%;font-size:var(--text-sm)}.members-table thead{display:table-header-group}.members-table tbody{display:table-row-group}.members-table tbody tr{display:table-row}.members-table td{display:table-cell;padding:var(--spacing-sm) var(--spacing-xs);font-size:var(--text-sm)}.members-table th{padding:var(--spacing-sm) var(--spacing-xs);font-size:var(--text-xs)}.group-members-modal .members-table th:nth-child(1),.group-members-modal .members-table td:nth-child(1),.group-members-modal .members-table th:nth-child(2),.group-members-modal .members-table td:nth-child(2),.group-members-modal .members-table th:nth-child(4),.group-members-modal .members-table td:nth-child(4){display:none}.group-members-modal .members-table th:nth-child(3),.group-members-modal .members-table td:nth-child(3){width:70%}.group-members-modal .members-table th:nth-child(5),.group-members-modal .members-table td:nth-child(5){width:30%;min-width:80px}.pagination-info{width:100%;text-align:center}.pagination-controls{width:100%;justify-content:center}.add-user-item{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.btn-add-user{width:100%}}@media(max-width:640px){.group-members-modal .members-table{font-size:.75rem}.group-members-modal .members-table th{font-size:.65rem;padding:var(--spacing-xs) 4px}.group-members-modal .members-table td{padding:var(--spacing-xs) 4px;font-size:.75rem}}@media(max-width:480px){.group-members-modal{max-width:100%;margin:0}.pagination-button{min-width:28px;height:28px;padding:var(--spacing-xs);font-size:var(--text-xs)}.pagination-current{font-size:var(--text-xs)}}.user-management-container{display:flex;flex-direction:column;height:calc(100vh - var(--navbar-height));height:calc(100dvh - var(--navbar-height));max-height:calc(100vh - var(--navbar-height));max-height:calc(100dvh - var(--navbar-height));overflow:hidden;background-color:var(--color-background)}.user-management-content{flex:1;display:flex;flex-direction:column;min-height:0;padding:var(--page-content-padding-top) var(--page-content-padding-inline) var(--page-content-padding-bottom);max-width:1800px;margin:0 auto;width:100%;overflow:hidden}.user-management-header{margin-bottom:var(--page-title-content-gap);display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-lg);flex-wrap:wrap}.user-management-header>*{min-width:0}.page-title{display:flex;align-items:center;gap:12px;font-size:var(--page-title-font-size);font-weight:700;color:var(--color-text-primary);margin:0}.page-title-icon{width:var(--page-title-icon-size);height:var(--page-title-icon-size);flex-shrink:0}.header-buttons{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:-2px}.tabs-container{display:flex;gap:var(--spacing-md);margin-bottom:0;justify-content:flex-end;align-items:center;flex-wrap:wrap;flex:0 0 auto;min-width:0;margin-left:auto}.tabs-container>*{min-width:0}@media(max-width:1200px){.tabs-container{flex:1 1 100%;margin-left:0;justify-content:flex-start}}@supports (-webkit-touch-callout: none){.tabs-container{flex:1 1 100%;margin-left:0;justify-content:flex-start}}.desktop-controls{display:flex;gap:var(--spacing-md);align-items:center;min-width:0}.mobile-tab-buttons{display:none;width:100%;overflow:hidden}.mobile-tab-buttons .tab-button{-webkit-appearance:none;appearance:none;position:relative;border-bottom:none;margin-bottom:0}.mobile-tab-buttons .tab-button.active .tab-label{color:var(--color-primary-foreground)}.mobile-search-section{display:none}.user-management-view-selector{min-width:260px}.user-management-view-selector .tab-button{white-space:nowrap;flex:0 0 160px;width:160px}.tab-content{width:100%;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.tab-transition{animation-duration:.25s;animation-timing-function:ease;animation-fill-mode:both}.tab-transition--forward{animation-name:tabSlideLeft}.tab-transition--back{animation-name:tabSlideRight}.tab-transition--none{animation:none}@keyframes tabSlideLeft{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes tabSlideRight{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.search-section{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:-2px}.search-input{flex:1;max-width:400px;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--input-radius);font-size:var(--text-base);color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-base)}.desktop-controls .search-section .search-input{width:220px;max-width:220px;flex:0 0 220px}.search-input:focus{outline:none;border-color:var(--color-primary)}.search-input::placeholder{color:var(--color-text-secondary)}.table-wrapper{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow-x:auto;overflow-y:hidden;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%}.table-wrapper>table:first-child{flex-shrink:0}.table-container{flex:1;min-height:0;overflow-y:auto;overflow-x:auto;position:relative;width:100%}.table-container::-webkit-scrollbar{width:8px}.table-container::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-sm)}.table-container::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-sm)}.table-container::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.table-container{scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.users-table{width:100%;min-width:600px;border-collapse:collapse;table-layout:fixed}.users-table thead{background-color:var(--color-primary);color:var(--color-primary-foreground)}.users-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:var(--table-header-font-weight);font-size:var(--text-sm);white-space:nowrap}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background-color var(--transition-fast)}.users-table thead th.sortable-header:hover{background-color:rgba(var(--color-primary-foreground-rgb),.1)}.sort-indicator{font-size:var(--text-xs);margin-left:var(--spacing-xs);color:var(--color-primary-foreground);display:inline-block;vertical-align:middle}.users-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--transition-base)}.users-table tbody tr:hover{background-color:var(--color-surface-hover)}.users-table tbody tr.clickable-row{cursor:pointer}.users-table td{padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-primary);font-size:var(--text-sm);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-table-name-cell{display:flex;align-items:center;gap:var(--spacing-sm)}.users-table-name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-table-avatar{width:28px;height:28px;border-radius:50%;overflow:hidden;background-color:rgba(var(--color-primary-rgb),.2);display:flex;align-items:center;justify-content:center;flex-shrink:0}.users-table-avatar-initials{color:var(--color-primary);font-size:var(--text-xs);font-weight:700}.users-table .status-badge{padding:4px}.users-table .status-badge.unverified,.users-table .status-badge.deletion-scheduled{padding:4px 8px}.users-table .status-badge.unverified.icon-only,.users-table .status-badge.deletion-scheduled.icon-only{padding:4px}@media(max-width:1024px){.users-table-avatar{width:24px;height:24px}.users-table-avatar-initials{font-size:.65rem}}@media(max-width:850px){.users-table-avatar{width:22px;height:22px}.users-table-avatar-initials{font-size:.65rem}.users-table-name-cell{gap:var(--spacing-sm)}}.users-table-avatar img{width:100%;height:100%;object-fit:cover}.tab-content:not(.groups-section) .users-table thead th:nth-child(1),.tab-content:not(.groups-section) .users-table tbody td:nth-child(1){width:18%}.tab-content:not(.groups-section) .users-table thead th:nth-child(2),.tab-content:not(.groups-section) .users-table tbody td:nth-child(2){width:22%}.tab-content:not(.groups-section) .users-table thead th:nth-child(3),.tab-content:not(.groups-section) .users-table tbody td:nth-child(3){width:16%}.tab-content:not(.groups-section) .users-table thead th:nth-child(4),.tab-content:not(.groups-section) .users-table tbody td:nth-child(4){width:25%}.tab-content:not(.groups-section) .users-table thead th:nth-child(5),.tab-content:not(.groups-section) .users-table tbody td:nth-child(5){width:10%;min-width:95px;max-width:100px}.tab-content:not(.groups-section) .users-table thead th:nth-child(5){padding-left:var(--spacing-sm);padding-right:var(--spacing-sm);min-width:95px;box-sizing:border-box}.tab-content:not(.groups-section) .users-table tbody td:nth-child(5){overflow:visible}.groups-section .users-table thead th:nth-child(1),.groups-section .users-table tbody td:nth-child(1){width:30%}.groups-section .users-table thead th:nth-child(2),.groups-section .users-table tbody td:nth-child(2){width:55%}.groups-section .users-table thead th:nth-child(3),.groups-section .users-table tbody td:nth-child(3){width:15%}.status-badge{display:inline-flex;align-items:center;justify-content:center;padding:6px;border-radius:var(--radius-full);white-space:nowrap}.status-badge svg{display:block;flex-shrink:0}.status-badge.active{background-color:#d4edda;color:#155724}.status-badge.banned{background-color:#f8d7da;color:#721c24}.status-badge.unverified{background-color:#fff3cd;color:#856404;gap:6px;padding:6px 10px;border-radius:var(--radius-lg)}.status-badge.unverified.icon-only{gap:0;padding:6px;border-radius:var(--radius-full)}.status-badges{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;overflow:visible}.status-badge.deletion-scheduled{background-color:#ffe8cc;color:#9a3412;gap:6px;padding:6px 10px;border-radius:var(--radius-lg)}.status-badge.deletion-scheduled.icon-only{gap:0;padding:6px;border-radius:var(--radius-full)}.user-detail-meta{margin-left:8px;font-weight:500}.user-detail-meta--block{display:block;margin-left:0;margin-top:4px}[data-theme=dark] .status-badge.active{background-color:#064e3b;color:#6ee7b7}[data-theme=dark] .status-badge.banned{background-color:#7f1d1d;color:#fca5a5}[data-theme=dark] .status-badge.unverified{background-color:#78350f;color:#fcd34d}[data-theme=dark] .status-badge.deletion-scheduled{background-color:#7c2d12;color:#fdba74}.modal-header-action-buttons{display:flex;gap:var(--spacing-xs);align-items:center;margin-right:var(--spacing-xs)}.modal-header-action-buttons .btn-icon.edit img,.modal-header-action-buttons .btn-icon.ban img,.modal-header-action-buttons .btn-icon.unban img,.modal-header-action-buttons .btn-icon.delete img{filter:var(--color-primary-icon-filter)}.modal-header-action-buttons .btn-icon.cancel-deletion svg{color:#fdba74}.btn-icon.edit img{filter:invert(45%) sepia(89%) saturate(2384%) hue-rotate(201deg) brightness(98%) contrast(94%)}.btn-icon.edit:hover:not(:disabled){border-color:var(--color-primary)}.btn-icon.ban img{filter:brightness(0) saturate(100%)}[data-theme=dark] .btn-icon.ban img{filter:brightness(0) saturate(100%) invert(1)}.btn-icon.ban:hover:not(:disabled),.btn-icon.unban:hover:not(:disabled),.btn-icon.delete:hover:not(:disabled),.btn-icon.cancel-deletion:hover:not(:disabled){border-color:var(--color-primary)}.btn-icon.unban img{filter:brightness(0) saturate(100%)}[data-theme=dark] .btn-icon.unban img{filter:brightness(0) saturate(100%) invert(1)}.btn-icon.cancel-deletion{color:#9a3412}[data-theme=dark] .btn-icon.cancel-deletion{color:#fdba74}.groups-section h2{font-size:var(--text-2xl);font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-lg)}.groups-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.groups-header h2{margin-bottom:0}.btn-create{min-width:120px}.modal-large{max-width:900px!important;width:95%!important}.modal-scroll .modal-body{max-height:70vh!important}.modal-body:has(.form-section){display:block!important}.modal-body:has(.form-section)>.form-section{display:block!important}.modal-body:has(.form-group){display:block!important}.modal-body h4{display:block!important;font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0;width:100%;clear:both;float:none!important}.modal-body p{color:var(--color-text-secondary);line-height:1.6;margin-bottom:var(--spacing-lg)}.form-section{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border);clear:both;flex:0 0 auto;width:100%;display:block}.form-section:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}.form-section>h4{display:block!important;clear:both;margin-top:0;width:100%;position:static}.form-group{margin-bottom:var(--spacing-lg);display:block;clear:both;width:100%}.form-group label{display:block;font-weight:500;color:var(--color-text-primary);margin-bottom:.5rem;font-size:.875rem;width:100%;clear:both}.modal-input{width:100%;padding:.625rem;border:2px solid var(--color-border);border-radius:var(--input-radius);font-size:.875rem;color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-base),box-shadow var(--transition-base);box-sizing:border-box}.modal-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.modal-input:disabled{opacity:.6;cursor:not-allowed;background-color:var(--color-surface-hover)}.modal-input::placeholder{color:var(--color-text-secondary)}.modal-select{width:100%;padding:.625rem;border:2px solid var(--color-border);border-radius:var(--input-radius);font-size:.875rem;color:var(--color-text-primary);background-color:var(--color-surface);transition:border-color var(--transition-base),box-shadow var(--transition-base);cursor:pointer;box-sizing:border-box}.modal-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.modal-textarea{width:100%;min-height:80px;padding:.625rem;border:2px solid var(--color-border);border-radius:var(--input-radius);font-size:.875rem;font-family:var(--font-sans);color:var(--color-text-primary);background-color:var(--color-surface);resize:vertical;transition:border-color var(--transition-base),box-shadow var(--transition-base);box-sizing:border-box}.modal-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #7b93c040}.modal-textarea::placeholder{color:var(--color-text-secondary)}.form-note{display:block;margin-top:var(--spacing-xs);font-size:var(--text-sm);color:var(--color-text-secondary);font-style:italic}.groups-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.group-chip{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-primary);color:var(--color-primary-foreground);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500}.chip-remove{background:none;border:none;color:inherit;font-size:var(--text-lg);line-height:1;cursor:pointer;padding:0;margin-left:var(--spacing-xs);transition:opacity var(--transition-base)}.chip-remove:hover:not(:disabled){opacity:.7}.chip-remove:disabled{color:inherit;cursor:not-allowed}.warning-message{background-color:#fef2f2;border:2px solid #fecaca;border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.warning-message p{color:#991b1b;margin-bottom:var(--spacing-sm)}.warning-message p:last-child{margin-bottom:0}.permissions-section{margin-top:var(--spacing-md);padding-top:var(--spacing-md)}.permissions-section h4{font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-xs);font-size:var(--text-sm)}.permissions-categorized{display:flex;flex-direction:column;gap:var(--spacing-lg)}.permission-category{background-color:var(--color-background);border-radius:var(--radius-md);padding:var(--spacing-md)}.category-title{font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-sm);font-size:var(--text-sm);text-transform:none;letter-spacing:normal}.permission-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.permission-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background-color:rgba(var(--color-primary-rgb),.1);color:var(--color-primary);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:500}.no-data{color:var(--color-text-secondary);font-style:italic;text-align:center;padding:var(--spacing-lg)}.user-detail-label-with-action{display:flex!important;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.user-detail-label-with-action .user-detail-label{margin-bottom:0}.permissions-management{display:flex;flex-direction:column;gap:var(--spacing-lg)}.permission-category-section{background-color:var(--color-background);border-radius:var(--radius-md);padding:var(--spacing-md);border:1px solid var(--color-border)}.category-header{font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-md);font-size:var(--text-base);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-border)}.permission-checkboxes{display:flex;flex-direction:column;gap:var(--spacing-sm)}.permission-checkbox-label{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-sm);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-base);min-width:0}.permission-label-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.permission-checkbox-label:hover{background-color:var(--color-surface-hover)}.permission-checkbox{appearance:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;margin-top:2px!important;width:18px!important;height:18px!important;border:2px solid var(--color-border)!important;border-radius:var(--radius-sm)!important;cursor:pointer!important;position:relative!important;background-color:var(--color-surface)!important;transition:all var(--transition-base)!important;flex-shrink:0!important}.permission-checkbox:hover{border-color:var(--color-primary)!important}.permission-checkbox:checked{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important}.permission-checkbox:checked:after{content:""!important;position:absolute!important;left:5px!important;top:2px!important;width:4px!important;height:8px!important;border:solid var(--color-primary-foreground)!important;border-width:0 2px 2px 0!important;transform:rotate(45deg)!important;display:block!important}.permission-name{font-weight:500;color:var(--color-text-primary);font-size:var(--text-sm);min-width:0;overflow-wrap:break-word;word-break:break-word}.permission-description{display:block;font-size:var(--text-xs);color:var(--color-text-secondary);min-width:0;overflow-wrap:break-word;word-break:break-word}.modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;align-items:center;margin-top:var(--spacing-lg)}.modal-actions-right{display:flex;gap:var(--spacing-md)}.user-basic-info-actions{display:flex;align-items:center;justify-content:flex-start}.user-basic-info-actions--stacked{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.user-basic-info-actions--below{margin-top:var(--spacing-sm);width:100%;flex-direction:row;gap:var(--spacing-md);align-items:stretch}.user-basic-info-actions .btn-reset-password{display:inline-flex;align-items:center;justify-content:center;min-height:var(--btn-height);width:auto;min-width:220px;max-width:100%}.user-basic-info-actions--below .btn-reset-password{flex:1 1 0;min-width:0;width:auto;margin-bottom:0}.user-basic-info-password-row{display:flex;align-items:stretch;gap:var(--spacing-md);margin-top:var(--spacing-xs)}.user-basic-info-password-row .modal-input{flex:1 1 auto;min-width:0}@media(max-width:640px){.user-basic-info-password-row{flex-direction:column;align-items:stretch}.user-basic-info-actions--below{flex-direction:column;gap:var(--spacing-sm)}.user-basic-info-actions .btn-reset-password{width:100%;min-width:0}}.modal-body:has(.user-detail-item){display:block!important}.user-detail-item{margin-bottom:var(--spacing-md);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border);display:block!important;width:100%;clear:both}.user-detail-item:last-child{border-bottom:none}.user-detail-label{display:block!important;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-xs);font-size:var(--text-sm);width:100%;clear:both}.user-detail-value{display:block!important;color:var(--color-text-secondary);font-size:var(--text-base);word-break:break-word;overflow-wrap:break-word;width:100%}.pagination-container{--pagination-control-height: var(--btn-compact-height);flex-shrink:0;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-surface);border-top:1px solid var(--color-border);flex-wrap:wrap;gap:var(--spacing-xs)}.pagination-info{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--pagination-control-height);white-space:nowrap}.pagination-controls{display:flex;gap:var(--spacing-xs);align-items:center}.page-size-selector{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap}.page-size-selector label{display:none}.page-size-selector select{height:var(--pagination-control-height);padding:0 var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--input-radius);background-color:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-sm);line-height:1;box-sizing:border-box;cursor:pointer;transition:border-color var(--transition-base)}.page-size-selector select:focus{outline:none;border-color:var(--color-primary)}.page-size-selector select:hover{border-color:var(--color-primary)}.loading-container{display:flex;justify-content:center;align-items:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--text-lg)}@media(min-width:1025px)and (max-width:1255px){.user-management-content{padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-xl)}.tab-content:not(.groups-section) .users-table thead th:nth-child(1),.tab-content:not(.groups-section) .users-table tbody td:nth-child(1){width:18%}.tab-content:not(.groups-section) .users-table thead th:nth-child(2),.tab-content:not(.groups-section) .users-table tbody td:nth-child(2){width:22%}.tab-content:not(.groups-section) .users-table thead th:nth-child(3),.tab-content:not(.groups-section) .users-table tbody td:nth-child(3){width:16%}.tab-content:not(.groups-section) .users-table thead th:nth-child(4),.tab-content:not(.groups-section) .users-table tbody td:nth-child(4){width:25%}.tab-content:not(.groups-section) .users-table thead th:nth-child(5),.tab-content:not(.groups-section) .users-table tbody td:nth-child(5){width:10%;min-width:95px;max-width:90px}}@media(hover:none)and (pointer:coarse){.user-management-header{flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:var(--spacing-md)}.user-management-header .page-title,.user-management-header .tabs-container{width:100%;max-width:100%}.user-management-header .tabs-container{margin-left:0}.tabs-container{gap:var(--spacing-md);flex-direction:column;flex-wrap:nowrap;align-items:stretch;border-bottom:none;margin-left:0;justify-content:flex-start}.tabs-container .mobile-tab-buttons,.tabs-container .mobile-search-section{flex:0 0 auto;align-self:stretch;width:100%;max-width:100%;min-width:0}.user-management-view-selector,.desktop-controls,.header-buttons{display:none}.mobile-tab-buttons{display:flex}.mobile-search-section{display:flex;width:100%;gap:var(--spacing-sm);align-items:center}}@media(max-width:1024px){.user-management-content{padding:var(--spacing-lg) var(--spacing-xl) var(--spacing-xl);min-height:0}.user-management-header{flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:var(--spacing-md)}.user-management-header .page-title,.user-management-header .tabs-container{width:100%;max-width:100%}.user-management-header .tabs-container{margin-left:0}.tab-content:not(.groups-section) .users-table thead th:nth-child(2),.tab-content:not(.groups-section) .users-table tbody td:nth-child(2){display:none}.tab-content:not(.groups-section) .users-table thead th:nth-child(1),.tab-content:not(.groups-section) .users-table tbody td:nth-child(1){width:24%}.tab-content:not(.groups-section) .users-table thead th:nth-child(3),.tab-content:not(.groups-section) .users-table tbody td:nth-child(3){width:24%}.tab-content:not(.groups-section) .users-table thead th:nth-child(4),.tab-content:not(.groups-section) .users-table tbody td:nth-child(4){width:42%}.tab-content:not(.groups-section) .users-table thead th:nth-child(5),.tab-content:not(.groups-section) .users-table tbody td:nth-child(5){width:10%;min-width:95px}.groups-section .users-table thead th:nth-child(1),.groups-section .users-table tbody td:nth-child(1){width:30%}.groups-section .users-table thead th:nth-child(2),.groups-section .users-table tbody td:nth-child(2){width:50%}.groups-section .users-table thead th:nth-child(3),.groups-section .users-table tbody td:nth-child(3){width:20%}.pagination-container{flex-wrap:nowrap}.pagination-info{flex-shrink:0;font-size:var(--text-xs)}}@media(max-width:850px){.modal-header-action-buttons{gap:var(--spacing-xs)}.user-management-content{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-lg)}.user-management-header h1{font-size:var(--text-xl)}.user-management-header{flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:var(--spacing-md)}.user-management-header .page-title,.user-management-header .tabs-container{width:100%;max-width:100%}.user-management-header .tabs-container{margin-left:0}.tabs-container{gap:var(--spacing-md);flex-direction:column;flex-wrap:nowrap;align-items:stretch;border-bottom:none}.tabs-container .mobile-tab-buttons,.tabs-container .mobile-search-section{flex:0 0 auto;align-self:stretch;width:100%;max-width:100%;min-width:0}.user-management-view-selector,.desktop-controls{display:none}.mobile-tab-buttons{display:flex}.tab-label{text-align:center;line-height:1.1}.tab-add-icon{display:none}.mobile-tab-buttons .tab-button:not(.active) .tab-add-icon{background-color:var(--color-primary);color:var(--color-primary-foreground)}.mobile-tab-buttons .tab-button:not(.active) .tab-add-icon:hover:not(:disabled){background-color:var(--color-primary-hover);transform:scale(1.05);box-shadow:var(--shadow-md)}.mobile-tab-buttons .tab-button:not(.active) .tab-add-icon img{filter:var(--color-primary-icon-filter) opacity(.9)}.mobile-tab-buttons .tab-button.active .tab-add-icon{background-color:var(--color-gray-button);color:var(--color-text-primary)}.mobile-tab-buttons .tab-button.active .tab-add-icon:hover:not(:disabled){background-color:var(--color-gray-button-hover);transform:scale(1.05);box-shadow:var(--shadow-md)}.mobile-tab-buttons .tab-button.active .tab-add-icon img{filter:brightness(0) saturate(100%) opacity(.7)}[data-theme=dark] .mobile-tab-buttons .tab-button.active .tab-add-icon img{filter:var(--color-primary-icon-filter) opacity(.9)}.tab-add-icon:disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-gray-button)}.tab-add-icon img{width:20px;height:20px;object-fit:contain}.header-buttons{display:none}.mobile-search-section{display:flex;width:100%;gap:var(--spacing-sm);align-items:center}.mobile-search-section .search-input{flex:1 1 calc(100% - 48px);max-width:none;padding:var(--spacing-xs) var(--spacing-sm);font-size:.875rem;height:40px}.mobile-search-section .btn-search{flex:0 0 auto;width:40px;height:40px;padding:8px}.table-container,.table-wrapper{overflow-x:auto}.users-table{min-width:100%;font-size:var(--text-sm)}.users-table thead{display:table-header-group}.users-table tbody{display:table-row-group}.users-table tbody tr{display:table-row}.users-table td{display:table-cell;padding:var(--spacing-sm) var(--spacing-sm);font-size:var(--text-sm)}.users-table th{padding:var(--spacing-sm) var(--spacing-sm);font-size:var(--text-xs)}.tab-content:not(.groups-section) .users-table thead th:nth-child(2),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(2){display:none}.tab-content:not(.groups-section) .users-table thead th:nth-child(4),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(4){display:none}.tab-content:not(.groups-section) .users-table thead th:nth-child(1),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(1){width:43%}.tab-content:not(.groups-section) .users-table thead th:nth-child(3),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(3){width:43%}.tab-content:not(.groups-section) .users-table thead th:nth-child(5),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(5){width:14%;min-width:95px}@media(max-width:470px){.tab-content:not(.groups-section) .users-table thead th:nth-child(1),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(1){width:41%}.tab-content:not(.groups-section) .users-table thead th:nth-child(3),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(3){width:41%}.tab-content:not(.groups-section) .users-table thead th:nth-child(5),.tab-content:not(.groups-section) .users-table tbody tr td:nth-child(5){width:18%;min-width:72px}.tab-content:not(.groups-section) .users-table thead th:nth-child(5){font-size:.6rem;padding-left:4px;padding-right:4px}}.groups-section .users-table thead th:nth-child(2),.groups-section .users-table tbody tr td:nth-child(2){display:none}.groups-section .users-table thead th:nth-child(1),.groups-section .users-table tbody td:nth-child(1){width:70%}.groups-section .users-table thead th:nth-child(3),.groups-section .users-table tbody tr td:nth-child(3){width:30%}.pagination-container{flex-wrap:nowrap;justify-content:space-between;align-items:center}.pagination-info{flex-shrink:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.pagination-controls{flex-shrink:0}.page-size-selector{flex-shrink:0;white-space:nowrap}.modal-content{min-width:auto;width:100%;max-width:500px}.modal-content.modal-large{min-width:auto;max-width:100%}.groups-header{margin-bottom:var(--spacing-md)}.groups-header h2{font-size:var(--text-xl)}.groups-list{justify-content:flex-start}.modal-actions{flex-direction:row;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--spacing-sm)}.modal-actions .btn-primary,.modal-actions .btn-cancel,.modal-actions .btn-delete,.modal-actions button{flex:1 1 0!important;min-width:100px!important;height:var(--btn-height)!important;max-height:var(--btn-height)!important;min-height:var(--btn-height)!important;padding:0 var(--btn-padding-x)!important;border-radius:var(--btn-radius)!important;font-size:var(--btn-font-size)!important;font-weight:var(--btn-font-weight)!important;line-height:var(--btn-line-height)!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal-actions-right{flex-direction:row;gap:var(--spacing-sm)}.modal-actions-right .btn-primary,.modal-actions-right .btn-cancel,.modal-actions-right button{flex:1 1 0!important;min-width:100px!important;height:var(--btn-height)!important;max-height:var(--btn-height)!important;min-height:var(--btn-height)!important;padding:0 var(--btn-padding-x)!important;border-radius:var(--btn-radius)!important;font-size:var(--btn-font-size)!important;font-weight:var(--btn-font-weight)!important;line-height:var(--btn-line-height)!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important}.btn-reset-password{flex:1 1 100%;margin-bottom:var(--spacing-sm)}.permission-category{padding:var(--spacing-sm)}.permission-badge{font-size:.65rem;padding:.25rem .5rem}}@media(max-width:640px){.modal-header-action-buttons{gap:var(--spacing-xs)}.user-management-content{padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md)}.user-management-header h1{font-size:var(--text-xl)}.tabs-container{overflow-x:visible;-webkit-overflow-scrolling:touch;gap:var(--spacing-md);flex-direction:column;flex-wrap:nowrap;align-items:stretch}.tabs-container .mobile-tab-buttons,.tabs-container .mobile-search-section{flex:0 0 auto;align-self:stretch;width:100%;max-width:100%;min-width:0}.mobile-tab-buttons .tab-button{padding:0 10px;min-height:36px}.tab-add-icon{display:none}.tab-add-icon img{width:18px;height:18px}.search-section{gap:var(--spacing-xs)}.mobile-search-section .search-input{height:38px;font-size:.8rem;padding:6px var(--spacing-sm)}.mobile-search-section .btn-search{width:38px;height:38px;padding:7px}.users-table{font-size:.75rem}.users-table th{font-size:.65rem;padding:var(--spacing-xs) 4px}.users-table td{padding:var(--spacing-sm) 6px;font-size:.75rem}.users-table .status-badge{padding:3px}.users-table .status-badge.unverified,.users-table .status-badge.deletion-scheduled{padding:3px 6px}.status-badge svg{width:12px;height:12px}.modal-actions{flex-direction:column;gap:var(--spacing-sm)}.modal-actions .btn-primary,.modal-actions .btn-cancel,.modal-actions .btn-delete,.modal-actions button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:var(--btn-height)!important;height:var(--btn-height)!important;max-height:var(--btn-height)!important;padding:0 var(--btn-padding-x)!important;border-radius:var(--btn-radius)!important;font-size:var(--btn-font-size)!important;font-weight:var(--btn-font-weight)!important;line-height:var(--btn-line-height)!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}.modal-actions-right{flex-direction:column;width:100%;gap:var(--spacing-sm)}.modal-actions-right .btn-primary,.modal-actions-right .btn-cancel,.modal-actions-right button{width:100%!important;min-width:100%!important;max-width:100%!important;min-height:var(--btn-height)!important;height:var(--btn-height)!important;max-height:var(--btn-height)!important;padding:0 var(--btn-padding-x)!important;border-radius:var(--btn-radius)!important;font-size:var(--btn-font-size)!important;font-weight:var(--btn-font-weight)!important;line-height:var(--btn-line-height)!important;box-sizing:border-box!important;flex:none!important;display:flex!important;align-items:center!important;justify-content:center!important}.pagination-container{padding:var(--spacing-xs) 4px;flex-wrap:nowrap}.pagination-info{min-width:0;flex-shrink:1}.pagination-controls,.page-size-selector{flex-shrink:0}.page-size-selector select{min-width:45px}}@media(max-width:768px){.pagination-container{padding:var(--spacing-xs) var(--spacing-sm);--pagination-control-height: 24px}.pagination-info,.pagination-button,.page-size-selector select{font-size:var(--text-xs)}}@media(max-width:480px){.user-management-header h1{font-size:var(--text-lg)}}.app-settings-tab{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--spacing-md) 0;scrollbar-width:thin;scrollbar-color:rgba(var(--color-primary-rgb),.4) rgba(var(--color-primary-rgb),.1)}.app-settings-tab::-webkit-scrollbar{width:8px}.app-settings-tab::-webkit-scrollbar-track{background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-full)}.app-settings-tab::-webkit-scrollbar-thumb{background:rgba(var(--color-primary-rgb),.4);border-radius:var(--radius-full)}.app-settings-tab::-webkit-scrollbar-thumb:hover{background:rgba(var(--color-primary-rgb),.6)}.app-settings-tab .form-section{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border)}.app-settings-tab .form-section:last-of-type{margin-bottom:0}.app-settings-tab .form-section>h4{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-md)}.app-settings-row{display:flex;align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);transition:background-color var(--transition-base)}.app-settings-row--boolean{cursor:pointer}.app-settings-row--boolean:hover:not(:has(.app-settings-switch-input:disabled)){background-color:var(--color-surface-hover)}.app-settings-row--text{flex-direction:column;gap:var(--spacing-sm)}.app-settings-row+.app-settings-row{margin-top:var(--spacing-xs)}.app-settings-row-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.app-settings-row-label{font-weight:600;color:var(--color-text-primary);font-size:var(--text-sm);line-height:1.4}.app-settings-row-description,.app-settings-row-updated{color:var(--color-text-secondary);font-size:var(--text-xs);line-height:1.45}.app-settings-row-control{width:100%}.app-settings-text-input{width:100%;min-height:3.75rem;padding:.625rem .875rem;border:2px solid var(--color-border);border-radius:var(--input-radius);font-size:var(--text-sm);line-height:1.45;color:var(--color-text-primary);background-color:var(--color-background);transition:border-color var(--transition-base),box-shadow var(--transition-base);box-sizing:border-box;font-family:var(--font-sans);resize:vertical}.app-settings-text-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(var(--color-primary-rgb),.2)}.app-settings-text-input:disabled{opacity:.6;cursor:not-allowed;background-color:var(--color-surface-hover)}.app-settings-switch{position:relative;display:inline-flex;flex-shrink:0;margin-top:2px}.app-settings-switch-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-settings-switch-track{display:block;width:44px;height:24px;border-radius:var(--radius-full);background-color:var(--color-gray-button);position:relative;transition:background-color var(--transition-base);cursor:pointer}.app-settings-switch-track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background-color:#f5f6f8;transition:transform var(--transition-base)}.app-settings-switch-input:checked+.app-settings-switch-track{background-color:var(--color-primary)}.app-settings-switch-input:checked+.app-settings-switch-track:after{transform:translate(20px)}.app-settings-switch-input:focus-visible+.app-settings-switch-track{box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.35)}.app-settings-switch-input:disabled+.app-settings-switch-track{opacity:.55;cursor:not-allowed}.app-settings-loading{padding:var(--spacing-lg);text-align:center;color:var(--color-text-secondary)}@media(min-width:640px){.app-settings-row--text{flex-direction:row;align-items:center;justify-content:space-between}.app-settings-row-control{width:auto;flex:1 1 22rem;min-width:22rem;max-width:65%}}.verify-email-page{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--color-background);padding:var(--spacing-xl)}.verify-email-card{max-width:480px;width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-md);text-align:center}.verify-email-card h1{margin-bottom:var(--spacing-md);font-size:var(--text-xl);color:var(--color-text-primary)}.verify-email-message{margin-bottom:var(--spacing-lg);font-size:var(--text-base);color:var(--color-text-secondary)}.verify-email-message.success{color:#166534}.verify-email-message.error{color:var(--color-error)}.verify-email-link{display:inline-block;color:var(--color-primary);font-weight:600;text-decoration:none}.verify-email-link:hover{text-decoration:underline}.legal-page{min-height:100vh;min-height:100dvh;display:flex;align-items:flex-start;justify-content:center;background:var(--color-background);padding:var(--spacing-xl)}.legal-page-card{max-width:720px;width:100%;max-height:calc(100vh - 2 * var(--spacing-xl));max-height:calc(100dvh - 2 * var(--spacing-xl));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-md);display:flex;flex-direction:column;overflow:hidden}.legal-page-header{flex-shrink:0;margin-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-md)}.legal-page-header h1{margin:0 0 var(--spacing-xs);font-size:var(--text-xl);color:var(--color-text-primary)}.legal-page-updated{margin:0;font-size:var(--text-sm);color:var(--color-text-secondary)}.legal-page-body{flex:1;overflow-y:auto;text-align:left;color:var(--color-text-primary);font-size:var(--text-base);line-height:1.6}.legal-page-body section{margin-bottom:var(--spacing-lg)}.legal-page-body h2{font-size:var(--text-lg);margin:0 0 var(--spacing-sm);color:var(--color-text-primary)}.legal-page-body p{margin:0 0 var(--spacing-sm);color:var(--color-text-secondary)}.legal-page-footer{flex-shrink:0;margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.legal-page-link{color:var(--color-primary);font-weight:600;text-decoration:none}.legal-page-link:hover{text-decoration:underline}@media(max-width:640px){.legal-page{padding:var(--spacing-md)}.legal-page-card{max-height:calc(100dvh - 2 * var(--spacing-md));padding:var(--spacing-lg)}}.deletion-pending-banner{position:sticky;top:0;z-index:100;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--spacing-sm) var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:#fef3c7;color:#92400e;border-bottom:1px solid #fcd34d;font-size:var(--text-sm)}.deletion-pending-banner__button{padding:.35rem .75rem;border:1px solid #92400e;border-radius:var(--radius-md);background:transparent;color:#92400e;font-weight:600;cursor:pointer;font-size:var(--text-sm)}.deletion-pending-banner__button:hover:not(:disabled){background:#92400e14}.deletion-pending-banner__button:disabled{opacity:.6;cursor:not-allowed}
