@charset "UTF-8";.navigation{position:fixed;bottom:var(--spacing-lg);left:50%;z-index:1000;padding:var(--spacing-sm);overflow:hidden;background:#fff0;backdrop-filter:var(--blur-sm) saturate(180%);-webkit-backdrop-filter:var(--blur-sm) saturate(180%);border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-lg);will-change:backdrop-filter;transform:translate(-50%) translateZ(0)}@media (prefers-color-scheme: dark){.navigation{background:#1c1c1e00;border:1px solid rgba(255,255,255,.15)}}.dark .navigation{background:#1c1c1e00;border:1px solid rgba(255,255,255,.15)}.navigation{box-shadow:0 4px 16px #0003,0 8px 32px #0000004d,0 16px 64px #00000026,inset 0 1px #fff3;width:auto;max-width:calc(100% - var(--spacing-lg) * 2)}@media (max-width: 1024px){.navigation{bottom:var(--spacing-md);padding:var(--spacing-xs);max-width:calc(100% - var(--spacing-md) * 2)}}@media (max-width: 768px){.navigation{bottom:calc(var(--spacing-md) + 10px);left:50%;right:auto;max-width:calc(100% - var(--spacing-sm) * 2);width:calc(100% - var(--spacing-sm) * 2);border-radius:var(--radius-lg);padding:var(--spacing-sm);margin-bottom:env(safe-area-inset-bottom)}.navigation.navigation-browser{bottom:var(--spacing-xs);margin-bottom:calc(var(--spacing-xs) + env(safe-area-inset-bottom))}}@media (max-width: 480px){.navigation{padding:var(--spacing-xs)}}@media (max-width: 375px){.navigation{padding:6px 4px}}.navigation-container{display:flex;gap:var(--spacing-xs);width:100%;justify-content:center;align-items:center;overflow:hidden;position:relative;z-index:1}@media (max-width: 768px){.navigation-container{justify-content:space-between;gap:var(--spacing-xs);padding:0}}@media (max-width: 480px){.navigation-container{gap:4px}}@media (max-width: 375px){.navigation-container{gap:2px}}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);background:transparent;white-space:nowrap;min-height:44px;min-width:44px;position:relative;z-index:1;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-moz-user-select:none;user-select:none;-webkit-user-select:none}.nav-item svg{width:20px;height:20px;flex-shrink:0}.nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.nav-item-active{background:var(--color-primary);color:#fff}.nav-item-active:hover{background:var(--color-primary-hover)}@media (max-width: 1024px){.nav-item{padding:var(--spacing-xs) var(--spacing-sm);gap:5px}.nav-item svg{width:18px;height:18px}}@media (max-width: 768px){.nav-item{flex:1;justify-content:center;padding:var(--spacing-sm) var(--spacing-xs);gap:4px;min-width:0;min-height:56px}.nav-item svg{width:22px;height:22px}}@media (max-width: 480px){.nav-item{padding:var(--spacing-sm) var(--spacing-xs);min-height:56px;gap:4px}.nav-item svg{width:20px;height:20px}}@media (max-width: 375px){.nav-item{padding:var(--spacing-xs);min-height:52px;gap:3px}.nav-item svg{width:18px;height:18px}}.nav-label{font-size:10px;font-weight:500;line-height:1.2;text-align:center}@media (max-width: 1024px){.nav-label{font-size:9px}}@media (max-width: 768px){.nav-label{font-size:9px;line-height:1.1}}@media (max-width: 480px){.nav-label{font-size:8px;line-height:1.1}}@media (max-width: 375px){.nav-label{font-size:8px;line-height:1}}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;border-radius:var(--radius-sm, 12px);font-size:12px;font-weight:500;transition:all .2s ease;cursor:pointer;border:none;outline:none;position:relative}.button svg{pointer-events:none;width:16px;height:16px;flex-shrink:0}.button:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.button:disabled{pointer-events:none;opacity:.5;cursor:not-allowed}.button--default,.button--primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground));box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .12))}.button--default:hover:not(:disabled),.button--primary:hover:not(:disabled){background:hsl(var(--primary)/.9);box-shadow:var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, .12), 0 2px 4px -1px rgba(0, 0, 0, .08));transform:translateY(-1px)}.button--default:active:not(:disabled),.button--primary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .12))}.button--destructive,.button--danger{background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .12))}.button--destructive:hover:not(:disabled),.button--danger:hover:not(:disabled){background:hsl(var(--destructive)/.9);box-shadow:var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, .12), 0 2px 4px -1px rgba(0, 0, 0, .08));transform:translateY(-1px)}.button--destructive:active:not(:disabled),.button--danger:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .12))}.button--outline{border:1px solid var(--border-color, rgba(0, 0, 0, .08));background:hsl(var(--background));color:hsl(var(--foreground));box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .12))}.button--outline:valid:not(:focus-visible){border-color:var(--border-color, rgba(0, 0, 0, .08));box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .12))}.button--outline:invalid:not(:focus-visible){border-color:var(--border-color, rgba(0, 0, 0, .08));box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .12))}.button--outline:hover:not(:disabled){background:hsl(var(--accent));color:hsl(var(--accent-foreground));box-shadow:var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, .12), 0 2px 4px -1px rgba(0, 0, 0, .08));transform:translateY(-1px)}.button--outline:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .12))}.button--secondary{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .12))}.button--secondary:hover:not(:disabled){background:hsl(var(--secondary)/.8);box-shadow:var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, .12), 0 2px 4px -1px rgba(0, 0, 0, .08));transform:translateY(-1px)}.button--secondary:active:not(:disabled){transform:translateY(0);box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .12))}.button--ghost{background:transparent;color:hsl(var(--foreground));box-shadow:none}.button--ghost:hover:not(:disabled){background:hsl(var(--accent));color:hsl(var(--accent-foreground));box-shadow:var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .12))}.button--link{background:transparent;color:hsl(var(--primary));text-decoration:underline;text-underline-offset:4px;box-shadow:none}.button--link:hover:not(:disabled){text-decoration:underline}.button--size-default{height:40px;padding:8px 16px}.button--size-sm{height:36px;padding:6px 12px;border-radius:var(--radius-sm, 12px)}.button--size-lg{height:44px;padding:10px 32px;border-radius:var(--radius-sm, 12px)}.button--size-icon{height:40px;width:40px;padding:0}.input-wrapper{width:100%}.input-container{position:relative}.input{display:flex;height:40px;width:100%;border-radius:var(--radius-sm, 12px);border:1px solid var(--border-color, rgba(0, 0, 0, .08));background:hsl(var(--background));padding:8px 12px;font-size:12px;color:hsl(var(--foreground));transition:all .2s ease;outline:none}.input::-moz-placeholder{color:hsl(var(--muted-foreground))}.input::placeholder{color:hsl(var(--muted-foreground))}.input::file-selector-button{border:0;background:transparent;font-size:12px;font-weight:500}.input:focus-visible{outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 2px hsl(var(--ring)/.2)}.input:disabled{cursor:not-allowed;opacity:.5}.input:valid:not(:focus-visible):not(.input--error){border-color:var(--border-color, rgba(0, 0, 0, .08));box-shadow:none}.input:invalid:not(:focus-visible):not(.input--error){border-color:var(--border-color, rgba(0, 0, 0, .08));box-shadow:none}.input--with-left-icon{padding-left:40px}.input--with-right-icon{padding-right:40px}.input--error{border-color:hsl(var(--destructive))}.input--error:focus-visible{border-color:hsl(var(--destructive));box-shadow:0 0 0 2px hsl(var(--destructive)/.2)}.input-icon-left{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:hsl(var(--muted-foreground));pointer-events:none;display:flex;align-items:center;justify-content:center}.input-icon-right{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:hsl(var(--muted-foreground));pointer-events:none;display:flex;align-items:center;justify-content:center}.input-label-wrapper{margin-bottom:8px;display:block}.input-required{color:hsl(var(--destructive));margin-left:4px}.input-error{font-size:12px;color:hsl(var(--destructive));margin-top:4px;display:block}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#0003;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal-drawer-content{position:fixed;bottom:0;left:0;right:0;z-index:1100;display:flex;flex-direction:column;height:80vh;max-height:80vh;border-top-left-radius:10px;border-top-right-radius:10px;border:2px solid var(--border-color);background:hsl(var(--background));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 25px 50px -12px #00000040;overflow:hidden}.modal-drawer-content.modal-drawer-compact{height:auto;max-height:80vh;min-height:auto;overflow:visible}.modal-drawer-handle{margin:16px auto 0;height:4px;width:100px;border-radius:9999px;background:hsl(var(--muted));flex-shrink:0}.modal-drawer-close{position:absolute;right:16px;top:16px;border-radius:4px;opacity:.7;transition:opacity .2s;outline:none;border:none;background:transparent;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.modal-drawer-close:hover{opacity:1}.modal-drawer-close:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.modal-drawer-close:disabled{pointer-events:none}.modal-drawer-content-wrapper{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0;position:relative}.modal-drawer-content.modal-drawer-compact .modal-drawer-content-wrapper{flex:0 1 auto;overflow:visible}.modal-drawer-header{margin-bottom:16px;flex-shrink:0;padding:16px 16px 0}.modal-drawer-title{font-size:18px;font-weight:600;line-height:1.2}.modal-drawer-description{font-size:14px;color:hsl(var(--muted-foreground));margin-top:4px}.modal-drawer-close-icon{width:16px;height:16px}.modal-drawer-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 16px 16px;-webkit-overflow-scrolling:touch;min-height:0;touch-action:pan-y;overscroll-behavior:contain}.modal-drawer-body::-webkit-scrollbar{width:4px}.modal-drawer-body::-webkit-scrollbar-track{background:transparent;margin:8px 0}.modal-drawer-body::-webkit-scrollbar-thumb{background:hsl(var(--muted));border-radius:2px;-webkit-transition:background .2s ease;transition:background .2s ease}.modal-drawer-body::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground))}.modal-drawer-body{scrollbar-width:thin;scrollbar-color:hsl(var(--muted)) transparent}.modal-drawer-content.modal-drawer-compact .modal-drawer-body{flex:0 1 auto;overflow:visible;padding-bottom:16px}.modal-dialog-content{position:fixed;left:50%;top:50%;z-index:1100;transform:translate(-50%,-50%)!important;display:grid;width:100%;max-width:32rem;gap:16px;border:2px solid var(--border-color);background:hsl(var(--background));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:24px;box-shadow:0 25px 50px -12px #00000040;border-radius:8px;margin:0;max-height:90vh;overflow-y:auto}@media (max-width: 768px){.modal-dialog-content{border-radius:12px}}@media (min-width: 1024px){.modal-dialog-content{max-width:36rem}}@media (min-width: 1440px){.modal-dialog-content{max-width:40rem}}.modal-dialog-header,.modal-dialog-content-wrapper{margin-top:16px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pin-input-wrapper{width:100%}.pin-input-label{margin-bottom:16px;display:block;text-align:center}.pin-input-display{display:flex;justify-content:center;gap:8px;margin-bottom:32px}.pin-input-cell{height:56px;width:56px;border-radius:var(--radius-sm, 12px);border:2px solid;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:600;transition:all .2s ease;background:hsl(var(--background));border-color:var(--border-color, rgba(0, 0, 0, .08));color:hsl(var(--foreground))}.pin-input-cell--filled{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}.pin-input-cell--error{border-color:hsl(var(--destructive))}.pin-input-cell--disabled{opacity:.5;cursor:not-allowed}.pin-input-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:320px;margin:0 auto}.pin-input-key{height:56px;font-size:20px;font-weight:600;transition:transform .1s ease}.pin-input-key:active{transform:scale(.95)}.theme-toggle{padding:var(--spacing-xs);border:1px solid var(--border-color);background:var(--bg-glass);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-primary);transition:all .2s ease;box-shadow:var(--shadow-sm);min-width:32px;min-height:32px;flex-shrink:0;background:var(--bg-glass)!important;color:var(--text-primary)!important}.theme-toggle:hover{background:var(--bg-glass-hover)!important;color:var(--text-primary)!important;border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.theme-toggle:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.theme-toggle svg{width:16px;height:16px;color:inherit}@media (max-width: 768px){.theme-toggle{min-width:28px;min-height:28px;padding:6px}.theme-toggle svg{width:14px;height:14px}}.color-picker{position:relative;display:inline-block;width:100%}.color-picker-preview{display:flex;align-items:center;gap:8px}.color-picker-trigger{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-glass);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);cursor:pointer;transition:all .2s ease;width:100%}.color-picker-trigger:hover{border-color:var(--color-primary);background:var(--bg-glass-hover)}.color-picker-trigger:focus{outline:2px solid var(--color-primary);outline-offset:2px}.color-picker-preview-color{width:24px;height:24px;border-radius:4px;border:1px solid var(--border-color);flex-shrink:0;box-shadow:var(--shadow-sm)}.color-picker-preview-text{font-size:14px;color:var(--text-primary)}.color-picker-popover{position:absolute;top:100%;left:0;margin-top:8px;z-index:1000;background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:12px;width:100%;max-width:100%;box-sizing:border-box}@media (max-width: 768px){.color-picker-popover{padding:10px}}.color-picker-popover-content{display:flex;flex-direction:column;gap:12px}.color-picker-section{display:flex;flex-direction:column;gap:8px}.color-picker-presets{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:4px}.color-picker-preset{width:100%;aspect-ratio:1;min-height:36px;border-radius:8px;border:2px solid transparent;cursor:pointer;transition:all .15s ease;box-shadow:var(--shadow-sm);position:relative}.color-picker-preset:hover{transform:scale(1.05);box-shadow:var(--shadow-md);z-index:1}.color-picker-preset:active{transform:scale(.95)}.color-picker-preset-active{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary);z-index:2}@media (max-width: 768px){.color-picker-preset{min-height:32px;border-radius:6px}}.color-picker-custom{display:flex;gap:8px;align-items:center;margin-top:4px}.color-picker-input{width:50px;height:40px;border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;padding:2px}@media (max-width: 768px){.color-picker-input{width:44px;height:36px}}.color-picker-text-input{flex:1;padding:10px 12px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);font-size:14px;font-family:monospace;min-width:0}.color-picker-text-input:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary)}.color-picker-text-input:invalid{border-color:var(--color-danger)}@media (max-width: 768px){.color-picker-text-input{padding:8px 10px;font-size:13px}}.color-picker-actions{display:flex;gap:8px;margin-top:8px;flex-direction:column}@media (max-width: 768px){.color-picker-actions{flex-direction:row}}.color-picker-button{padding:12px 16px;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-glass);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);color:var(--text-primary);font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;flex:1;min-height:44px;display:flex;align-items:center;justify-content:center}.color-picker-button:hover{background:var(--bg-glass-hover);border-color:var(--color-primary);transform:translateY(-1px);box-shadow:var(--shadow-md)}.color-picker-button:active{transform:translateY(0)}.color-picker-button:focus{outline:2px solid var(--color-primary);outline-offset:2px}@media (max-width: 768px){.color-picker-button{padding:10px 16px;font-size:14px;min-height:40px}}.color-picker-button-select{background:var(--color-primary);color:#fff;border-color:var(--color-primary);order:-1}.color-picker-button-select:hover{background:var(--color-primary-hover, #0051D5);box-shadow:0 4px 12px #007aff66;transform:translateY(-1px)}.color-picker-button-select:active{transform:translateY(0);box-shadow:0 2px 6px #007aff4d}.color-picker-button-reset{background:var(--bg-secondary);color:var(--text-secondary);order:0}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:var(--bg-primary);position:relative;overflow:hidden}@media (max-width: 768px){.login-page{padding:var(--spacing-md)}}@media (max-width: 480px){.login-page{padding:var(--spacing-sm)}}.login-container{width:100%;max-width:440px;padding:var(--spacing-2xl);position:relative;z-index:1;animation:fadeInUp .5s ease-out}@media (max-width: 768px){.login-container{padding:var(--spacing-xl);max-width:100%}}@media (max-width: 480px){.login-container{padding:var(--spacing-lg)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:var(--spacing-xl)}@media (max-width: 480px){.login-header{margin-bottom:var(--spacing-lg)}}.login-title{font-size:28px;font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-sm);letter-spacing:-.5px;background:linear-gradient(135deg,var(--text-primary) 0%,var(--text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media (max-width: 768px){.login-title{font-size:24px}}@media (max-width: 480px){.login-title{font-size:22px}}.login-subtitle{font-size:15px;color:var(--text-secondary);font-weight:400;line-height:1.5}@media (max-width: 768px){.login-subtitle{font-size:14px}}.login-error{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);background:#ff3b301a;border:1px solid rgba(255,59,48,.25);border-radius:var(--radius-sm);color:var(--color-danger);font-size:13px;margin-bottom:var(--spacing-md);animation:slideIn .3s ease-out;backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm)}.login-error svg{flex-shrink:0;width:18px;height:18px}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.biometric-section{margin-bottom:var(--spacing-md);animation:fadeIn .4s ease-out;animation-delay:.2s;animation-fill-mode:both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.biometric-button{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-lg);font-size:15px;font-weight:600;letter-spacing:.2px}.biometric-button svg{width:20px;height:20px}@media (max-width: 480px){.biometric-button{font-size:14px;padding:var(--spacing-sm) var(--spacing-md)}}.login-divider{display:flex;align-items:center;margin:var(--spacing-lg) 0;text-align:center}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--border-color),transparent)}.login-divider span{padding:0 var(--spacing-md);color:var(--text-muted);font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.login-form{display:flex;flex-direction:column;gap:var(--spacing-lg);animation:fadeIn .4s ease-out;animation-delay:.1s;animation-fill-mode:both}@media (max-width: 480px){.login-form{gap:var(--spacing-md)}}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.password-toggle{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);border-radius:var(--radius-sm)}.password-toggle:hover{color:var(--text-primary);background:var(--bg-tertiary)}.login-submit-button{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:15px;font-weight:600;margin-top:var(--spacing-sm);letter-spacing:.3px}@media (max-width: 480px){.login-submit-button{font-size:14px;padding:var(--spacing-sm) var(--spacing-md)}}.login-footer{margin-top:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-md);align-items:center;animation:fadeIn .4s ease-out;animation-delay:.3s;animation-fill-mode:both}.login-toggle{background:transparent;border:none;color:var(--color-primary);cursor:pointer;font-size:14px;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-weight:500}.login-toggle:hover{color:var(--color-primary-hover);background:#007aff1a;text-decoration:none}.biometric-register-button{display:flex;align-items:center;gap:var(--spacing-xs);background:var(--bg-glass);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;font-size:13px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm)}.biometric-register-button:hover:not(:disabled){background:var(--bg-glass-hover);border-color:var(--border-hover);color:var(--text-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.biometric-register-button:disabled{opacity:.5;cursor:not-allowed}.biometric-register-button svg{width:16px;height:16px}.login-demo{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);text-align:center;animation:fadeIn .4s ease-out;animation-delay:.4s;animation-fill-mode:both}.demo-text{font-size:12px;color:var(--text-muted);margin-bottom:var(--spacing-sm);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.demo-button{background:var(--bg-glass);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;font-size:12px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);transition:all .2s cubic-bezier(.4,0,.2,1);font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,monospace;box-shadow:var(--shadow-sm);letter-spacing:.3px}.demo-button:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);color:var(--text-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.pin-icon{color:var(--color-primary);margin-bottom:var(--spacing-md);animation:pulse 2s ease-in-out;animation-iteration-count:infinite;filter:drop-shadow(0 0 8px rgba(0,122,255,.3))}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.pin-setup-section,.pin-verify-section{display:flex;flex-direction:column;gap:var(--spacing-xl);align-items:center;margin-top:var(--spacing-lg);animation:fadeIn .4s ease-out;animation-delay:.2s;animation-fill-mode:both}.biometric-setup-message{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--text-secondary);font-size:14px;padding:var(--spacing-md);background:var(--bg-glass);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);border-radius:var(--radius-sm);border:1px solid var(--border-color);animation:pulse 2s ease-in-out;animation-iteration-count:infinite}.biometric-setup-message svg{width:20px;height:20px;color:var(--color-primary)}.biometric-alternative{width:100%;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);animation:fadeIn .4s ease-out;animation-delay:.3s;animation-fill-mode:both}.login-back-button{display:flex;align-items:center;gap:var(--spacing-xs);background:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-size:14px;padding:var(--spacing-sm);margin-bottom:var(--spacing-md);border-radius:var(--radius-sm);transition:all .2s cubic-bezier(.4,0,.2,1);font-weight:500}.login-back-button:hover{color:var(--text-primary);background:var(--bg-tertiary)}.login-back-button svg{width:18px;height:18px}.login-success{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);background:#34c7591a;border:1px solid rgba(52,199,89,.25);border-radius:var(--radius-sm);color:var(--color-success);font-size:13px;margin-bottom:var(--spacing-md);animation:slideIn .3s ease-out;backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm)}.login-success svg{flex-shrink:0;width:18px;height:18px}.password-forgot-link{background:transparent;border:none;color:var(--color-primary);cursor:pointer;font-size:13px;padding:var(--spacing-xs) 0;text-align:right;transition:all .2s cubic-bezier(.4,0,.2,1);font-weight:500;margin-top:var(--spacing-xs)}.password-forgot-link:hover{color:var(--color-primary-hover);text-decoration:underline}.password-reset-section{display:flex;flex-direction:column;gap:var(--spacing-md);animation:fadeIn .3s ease-out}.password-reset-text{font-size:14px;color:var(--text-secondary);text-align:center;line-height:1.5;margin-bottom:var(--spacing-sm)}.pin-forgot-link{background:transparent;border:none;color:var(--color-primary);cursor:pointer;font-size:13px;padding:var(--spacing-sm);text-align:center;transition:all .2s cubic-bezier(.4,0,.2,1);font-weight:500;margin-top:var(--spacing-sm)}.pin-forgot-link:hover{color:var(--color-primary-hover);text-decoration:underline}.pin-reset-section{display:flex;flex-direction:column;gap:var(--spacing-lg);align-items:center;margin-top:var(--spacing-md);animation:fadeIn .5s ease-out;width:100%}.pin-forgot-email-display{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-lg);background:var(--bg-glass);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:15px;font-family:monospace;width:100%;max-width:320px}.pin-forgot-email-display svg{width:18px;height:18px;color:var(--text-muted)}.pin-reset-code-section{display:flex;flex-direction:column;gap:var(--spacing-lg);align-items:center;animation:fadeIn .3s ease-out;width:100%}.pin-reset-code-text{font-size:14px;color:var(--text-secondary);text-align:center;line-height:1.5;margin-bottom:var(--spacing-sm)}.pin-reset-code-input{width:100%;display:flex;justify-content:center}.balance-modal-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.balance-summary{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-glass);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);border-radius:var(--radius);border:1px solid var(--border-color)}.balance-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0}.balance-label-wrapper{display:flex;align-items:center;gap:var(--spacing-xs)}.balance-info-tooltip{position:relative;display:inline-flex;align-items:center;cursor:help;flex-shrink:0}.balance-info-tooltip:hover .balance-info-icon{color:var(--color-primary)}.balance-info-tooltip:hover .balance-info-text{opacity:1;pointer-events:auto;transform:translateY(-50%) translate(4px)}.balance-info-icon{color:var(--text-muted);transition:color .2s ease}.balance-info-text{position:absolute;top:50%;left:calc(100% + var(--spacing-sm));transform:translateY(-50%);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);font-size:12px;color:var(--text-primary);white-space:normal;width:-moz-max-content;width:max-content;max-width:min(280px,100vw - 100px);min-width:180px;text-align:left;line-height:1.5;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:2147483647;isolation:isolate;will-change:opacity,transform}.balance-info-text:before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:var(--bg-glass);filter:drop-shadow(-2px 0 4px rgba(0,0,0,.1))}.balance-section{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.balance-section-title{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.5px}.balance-label{font-size:14px;color:var(--text-secondary);font-weight:500}.balance-value{font-size:18px;font-weight:700}.balance-value.positive{color:var(--color-success)}.balance-value.negative{color:var(--color-danger)}.balance-events{display:flex;flex-direction:column;gap:var(--spacing-md)}.balance-events-title{font-size:14px;font-weight:600;color:var(--text-primary)}.balance-events-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.balance-event{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-radius:var(--radius-sm);border:1px solid var(--border-color);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);box-shadow:var(--shadow-sm)}.balance-event-income{background:#10b9811a;border-color:#10b98133}.balance-event-expense{background:#ef44441a;border-color:#ef444433}.balance-event-loan_payment{background:#fbbf241a;border-color:#fbbf2433}.balance-event-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.balance-event-title{font-weight:500;font-size:14px;color:var(--text-primary)}.balance-event-category{font-size:12px;color:var(--text-muted)}.balance-event-amount{font-weight:600;font-size:14px}.balance-empty{text-align:center;padding:var(--spacing-xl);color:var(--text-muted)}.confirm-modal-content{padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg)}@media (max-width: 768px){.confirm-modal-content{padding:var(--spacing-md);gap:var(--spacing-md)}}.confirm-modal-message{font-size:14px;line-height:1.6;color:var(--text-primary);margin:0}@media (max-width: 768px){.confirm-modal-message{font-size:15px}}.confirm-modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-sm)}@media (max-width: 768px){.confirm-modal-actions{flex-direction:column-reverse;gap:var(--spacing-sm)}.confirm-modal-actions .btn{width:100%}}.early-payment-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.early-payment-info{padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-sm);border-left:3px solid var(--color-info)}.info-text{font-size:14px;color:var(--text-secondary);line-height:1.5;margin:0}.early-payment-recurring{margin:var(--spacing-md) 0}.form-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md);flex-wrap:wrap}@media (max-width: 768px){.form-actions{flex-direction:column}.form-actions .btn{width:100%}}.edit-early-payment-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.early-payment-recurring{display:flex;align-items:center;padding:var(--spacing-sm)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:14px;color:var(--text-primary)}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.early-payment-info{padding:var(--spacing-sm);background:rgba(var(--color-info-rgb, 59, 130, 246),.1);border-radius:var(--radius-sm);border:1px solid rgba(var(--color-info-rgb, 59, 130, 246),.2)}.info-text{font-size:12px;color:var(--text-secondary);line-height:1.5;margin:0}.form-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin-top:var(--spacing-md)}@media (max-width: 768px){.form-actions{flex-direction:column}.form-actions button{width:100%}}.edit-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.edit-form-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md);flex-wrap:wrap}@media (max-width: 768px){.edit-form-actions{flex-direction:column}.edit-form-actions .btn{width:100%}}.calendar-page{padding:var(--spacing-lg);padding-bottom:100px;display:flex;flex-direction:column;min-height:100vh;width:100%;min-width:0;box-sizing:border-box;transition:all .4s cubic-bezier(.4,0,.2,1);transition-property:transform,opacity;position:relative;overflow-x:hidden;perspective:1000px}.calendar-page-swiping{transition:transform .6s cubic-bezier(.25,.1,.25,1),opacity .6s cubic-bezier(.25,.1,.25,1)}.calendar-page-swipe-left{animation:swipeLeft .4s linear forwards}.calendar-page-swipe-right{animation:swipeRight .4s linear forwards}.calendar-page-swiping-active{transition:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:pan-y}.calendar-page-swiping-active *{pointer-events:none}.calendar-page>.container{width:100%;min-width:0;box-sizing:border-box}.calendar-page[data-view-mode=week]{height:100vh;overflow:hidden;display:flex;flex-direction:column}.calendar-page[data-view-mode=week]>.container{display:flex;flex-direction:column;flex:1;min-height:0}.calendar-page[data-view-mode=week] .calendar-wrapper{flex:1;min-height:0;max-height:calc(100% - 70px - env(safe-area-inset-bottom));display:flex;flex-direction:column;margin-bottom:calc(70px + env(safe-area-inset-bottom))}@media (max-width: 1440px){.calendar-page{padding:var(--spacing-md);padding-bottom:90px}}@media (max-width: 768px){.calendar-page{padding:var(--spacing-sm);padding-bottom:calc(100px + env(safe-area-inset-bottom))}.calendar-page[data-view-mode=week]{padding-bottom:80px;height:100vh;overflow:hidden;display:flex;flex-direction:column}.calendar-page[data-view-mode=week] .container{display:flex;flex-direction:column;flex:1;min-height:0;padding:var(--spacing-sm);width:100%;min-width:0;box-sizing:border-box}}@media (max-width: 480px){.calendar-page{padding:var(--spacing-xs) var(--spacing-sm);padding-bottom:70px}}@media (max-width: 375px){.calendar-page{padding:var(--spacing-xs);padding-bottom:65px}}.swipe-indicators{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);pointer-events:none;z-index:1;display:flex;justify-content:space-between;padding:0 var(--spacing-md);opacity:0;transition:opacity .3s ease}@media (max-width: 768px){.swipe-indicators{opacity:.3}.calendar-page:hover .swipe-indicators,.calendar-page:active .swipe-indicators{opacity:.5}}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);gap:var(--spacing-md);width:100%;min-width:0}@media (max-width: 768px){.calendar-header{margin-bottom:var(--spacing-md)}}.calendar-nav-btn{padding:var(--spacing-sm);border:1px solid var(--border-color);background:var(--bg-glass);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-primary);transition:all .3s cubic-bezier(.4,0,.2,1);width:36px;height:36px;min-width:36px;min-height:36px;flex-shrink:0;box-shadow:var(--shadow-sm);box-sizing:border-box}.calendar-nav-btn svg{width:20px!important;height:20px!important;flex-shrink:0}.calendar-nav-btn:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}@media (max-width: 768px){.calendar-nav-btn{width:32px;height:32px;min-width:32px;min-height:32px;padding:var(--spacing-xs)}.calendar-nav-btn svg{width:20px!important;height:20px!important}}.calendar-title{font-size:24px;font-weight:700;text-transform:capitalize;flex:1;text-align:center;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1024px){.calendar-title{font-size:20px}}@media (max-width: 768px){.calendar-title{font-size:18px}}@media (max-width: 480px){.calendar-title{font-size:14px}}@media (max-width: 375px){.calendar-title{font-size:12px}}.calendar-view-toggle{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);padding:var(--spacing-xs);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md);width:-moz-fit-content;width:fit-content}@media (max-width: 480px){.calendar-view-toggle{margin-bottom:var(--spacing-sm)}}@media (max-width: 768px){.calendar-view-toggle{width:100%;justify-content:space-between}}.view-toggle-btn{padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:14px;font-weight:500}.view-toggle-btn:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.view-toggle-btn.active{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.view-toggle-btn.active:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-md)}@media (max-width: 768px){.view-toggle-btn{flex:1;padding:var(--spacing-sm);font-size:13px}}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}@media (min-width: 1024px) and (max-width: 1440px){.metrics-grid{grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm)}.metrics-grid .metric-card-balance{grid-column:span 3}}@media (min-width: 1440px){.metrics-grid{grid-template-columns:repeat(5,1fr)}}@media (max-width: 480px){.metrics-grid{display:none}}@media (max-width: 768px){.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.metrics-grid .metric-card-balance{grid-column:span 1}}@media (max-width: 768px){.metrics-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-xs)}.metrics-grid .metric-card-balance{grid-column:span 2}}.metrics-compact{display:none;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md)}@media (max-width: 480px){.metrics-compact{display:flex}}.metrics-compact-item{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) 0;font-size:12px}.metrics-compact-item svg{flex-shrink:0;width:16px;height:16px;color:var(--text-secondary)}.metrics-compact-label{color:var(--text-secondary);font-weight:500;min-width:60px}.metrics-compact-value{font-weight:700;font-size:13px;margin-left:auto}.metrics-compact-value.income{color:var(--color-success)}.metrics-compact-value.expense{color:var(--color-danger)}.metric-card{padding:var(--spacing-sm)}.metric-card-balance{grid-column:span 2}.metric-header{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.metric-header svg{width:18px;height:18px}.metric-label{font-size:12px;color:var(--text-secondary)}.metric-value{font-size:18px;font-weight:700;line-height:1.2}.metric-value.income{color:var(--color-success)}.metric-value.expense{color:var(--color-danger)}.metric-subtitle{font-size:10px;color:var(--text-muted);margin-top:var(--spacing-xs);line-height:1.3}.calendar-wrapper{padding:0;overflow:hidden;display:flex;flex-direction:column;flex:1;width:100%;min-width:100%;max-width:100%;background:var(--bg-glass);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);border-radius:var(--radius);border:1px solid var(--border-color);box-sizing:border-box;table-layout:fixed}.calendar-page[data-view-mode=week] .calendar-wrapper{flex:1 1 0;min-height:0;max-height:calc(100% - 70px - env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow:hidden;margin-bottom:calc(70px + env(safe-area-inset-bottom))}@media (max-width: 768px){.calendar-page[data-view-mode=week] .calendar-wrapper{flex:1;min-height:0;max-height:calc(100% - 70px - env(safe-area-inset-bottom));display:flex;flex-direction:column;margin-bottom:calc(70px + env(safe-area-inset-bottom))}}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--bg-glass);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);border-bottom:2px solid var(--border-color);width:100%;min-width:100%;box-sizing:border-box;flex-shrink:0}.calendar-weekday{padding:var(--spacing-md);text-align:center;font-weight:600;font-size:14px;color:var(--text-secondary);border-right:1px solid var(--border-color);width:100%;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.calendar-weekday:last-child{border-right:none}@media (max-width: 1024px){.calendar-weekday{padding:var(--spacing-sm);font-size:12px}}@media (max-width: 768px){.calendar-weekday{padding:var(--spacing-xs) var(--spacing-sm);font-size:11px}}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--border-color);grid-auto-rows:120px;flex:1;width:100%;min-width:100%;box-sizing:border-box}.calendar-page[data-view-mode=week] .calendar-grid{grid-auto-rows:1fr;height:100%}@media (max-width: 1024px){.calendar-grid{grid-auto-rows:80px}.calendar-page[data-view-mode=week] .calendar-grid{grid-auto-rows:1fr;height:100%}}@media (max-width: 768px){.calendar-page[data-view-mode=week] .calendar-grid{grid-auto-rows:1fr;flex:1;min-height:0;height:100%}.calendar-page[data-view-mode=month] .calendar-grid{grid-auto-rows:60px}}@media (max-width: 375px){.calendar-page[data-view-mode=week] .calendar-grid{grid-auto-rows:1fr}.calendar-page[data-view-mode=month] .calendar-grid{grid-auto-rows:55px}}.calendar-day{width:100%;min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden;position:relative;background:var(--bg-secondary);min-height:120px;height:120px;padding:var(--spacing-sm);display:flex;flex-direction:column;gap:var(--spacing-xs);border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);cursor:pointer;transition:all .2s ease}:root:not(.dark) .calendar-day{border-right-color:#00000014;border-bottom-color:#00000014}.calendar-page[data-view-mode=week] .calendar-day{min-height:0;height:100%}.calendar-day:hover{background:var(--bg-tertiary);z-index:1}.calendar-day:nth-child(7n){border-right:none}.calendar-day-today{background:var(--bg-tertiary);border:1px solid var(--color-primary)!important;z-index:2;position:relative}:root:not(.dark) .calendar-day-today{outline:.5px solid var(--color-primary);outline-offset:-1px}.calendar-day-today.calendar-day-last-row-left{border-radius:0;border-bottom-left-radius:var(--radius)}.calendar-day-today.calendar-day-last-row-right{border-radius:0;border-bottom-right-radius:var(--radius)}.calendar-day-other-month{background:var(--bg-primary);opacity:.5}.calendar-day-other-month .calendar-day-number{color:var(--text-muted)}.calendar-page[data-view-mode=week] .calendar-day-weekend{background:var(--bg-primary);opacity:.5}.calendar-day-number{font-weight:600;font-size:14px;color:var(--text-primary);flex-shrink:0}@media (max-width: 1024px){.calendar-day-number{font-size:12px}}@media (max-width: 768px){.calendar-day-number{font-size:11px}}.calendar-day-events{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs);overflow-y:auto;overflow-x:hidden;min-height:0;width:100%;min-width:0;max-width:100%;box-sizing:border-box}.calendar-page[data-view-mode=week] .calendar-day-events{gap:var(--spacing-sm)}@media (max-width: 768px){.calendar-page[data-view-mode=week] .calendar-day-events{overflow-y:auto;-webkit-overflow-scrolling:touch;gap:var(--spacing-xs)}.calendar-day-events{gap:1px}}.calendar-day-indicators{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:auto;padding:var(--spacing-xs) 0 var(--spacing-sm) 0;justify-content:flex-start}@media (max-width: 768px){.calendar-day-indicators{gap:3px;padding:var(--spacing-xs) 0 var(--spacing-xs) 0}}@media (max-width: 1024px){.calendar-day{min-height:80px;height:80px;padding:var(--spacing-xs)}.calendar-page[data-view-mode=week] .calendar-day{min-height:0;height:100%}}@media (max-width: 768px){.calendar-page[data-view-mode=week] .calendar-day{min-height:0;height:100%;padding:var(--spacing-xs);gap:var(--spacing-xs)}.calendar-page[data-view-mode=month] .calendar-day{min-height:60px;height:60px;padding:2px;gap:1px}}@media (max-width: 375px){.calendar-page[data-view-mode=week] .calendar-day{min-height:0;height:100%;padding:6px}.calendar-page[data-view-mode=month] .calendar-day{min-height:55px;height:55px;padding:2px}}.calendar-event{padding:4px 6px;border-radius:var(--radius-sm);font-size:11px;display:flex;flex-direction:column;gap:2px;overflow:hidden;flex-shrink:0;backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);box-shadow:var(--shadow-sm);transition:all .2s ease;width:100%;min-width:0;max-width:100%;box-sizing:border-box}.calendar-event-income{background:#10b9811a;border-left:3px solid var(--color-success)}.calendar-event-expense{background:#ef44441a;border-left:3px solid var(--color-danger)}.calendar-event-loan_payment{background:#fbbf241a;border-left:3px solid var(--color-warning)}.calendar-event-early_payment{background:#3b82f61a;border-left:3px solid var(--color-info)}.calendar-event-title{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2;min-width:0;max-width:100%}@media (max-width: 768px){.calendar-event-title{font-size:8px;line-height:1.1}.calendar-page[data-view-mode=week] .calendar-event-title{font-size:10px}}.calendar-event-amount{font-size:10px;opacity:.8;line-height:1.1}@media (max-width: 768px){.calendar-event-amount{font-size:7px}.calendar-page[data-view-mode=week] .calendar-event-amount{font-size:9px}}.calendar-event-more{font-size:10px;color:var(--text-muted);padding:2px 4px}@media (max-width: 768px){.calendar-event-more{font-size:7px;padding:1px 2px}}@media (max-width: 1024px){.calendar-event{padding:3px 4px;font-size:10px}}@media (max-width: 768px){.calendar-event{padding:2px 3px;font-size:9px;gap:1px;border-radius:2px}.calendar-page[data-view-mode=week] .calendar-event{padding:3px 4px;font-size:10px;gap:2px}}.calendar-event-indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0;border:1px solid rgba(255,255,255,.8);box-shadow:0 1px 2px #0000001a;cursor:pointer;transition:transform .2s ease}:root:not(.dark) .calendar-event-indicator{border-color:#ffffffe6;box-shadow:0 1px 2px #00000026}.calendar-event-indicator:hover{transform:scale(1.2)}@media (max-width: 768px){.calendar-event-indicator{width:10px;height:10px;border-width:1px}}@media (max-width: 375px){.calendar-event-indicator{width:9px;height:9px;border-width:1px}}.calendar-event-item{padding:3px 6px;border-radius:var(--radius-sm);border:1px solid;display:flex;flex-direction:column;gap:1px;overflow:hidden;flex-shrink:0;backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);box-shadow:0 2px 4px #0000001a,0 1px 2px #00000014;transition:all .2s ease;width:100%;min-width:0;max-width:100%;box-sizing:border-box;cursor:pointer}.calendar-event-item-title{font-weight:500;font-size:10px;line-height:1.4;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:100%}@media (max-width: 1024px){.calendar-event-item-title{font-size:11px;line-height:1.35}}@media (max-width: 768px){.calendar-event-item-title{font-size:10px;line-height:1.4}}@media (max-width: 375px){.calendar-event-item-title{font-size:9px;line-height:1.3}}.calendar-event-item-amount{font-size:9px;font-weight:600;line-height:1.3;color:var(--text-secondary);opacity:.85;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:100%}@media (max-width: 1024px){.calendar-event-item-amount{font-size:10px;line-height:1.35}}@media (max-width: 768px){.calendar-event-item-amount{font-size:9px;line-height:1.3}}@media (max-width: 375px){.calendar-event-item-amount{font-size:8px;line-height:1.25}}.forecast-page{padding:var(--spacing-lg);padding-bottom:100px;min-height:100vh;overflow-x:hidden;transition:all .4s cubic-bezier(.4,0,.2,1);transition-property:transform,opacity;position:relative;perspective:1000px}.forecast-page-swiping{transition:transform .6s cubic-bezier(.25,.1,.25,1),opacity .6s cubic-bezier(.25,.1,.25,1)}.forecast-page-swipe-left{animation:forecastSwipeLeft .4s linear forwards}.forecast-page-swipe-right{animation:forecastSwipeRight .4s linear forwards}.forecast-page-swiping-active{transition:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:pan-y}.forecast-page-swiping-active *{pointer-events:none}@media (max-width: 1440px){.forecast-page{padding:var(--spacing-md);padding-bottom:90px}}@media (max-width: 768px){.forecast-page{padding:var(--spacing-sm);padding-bottom:calc(100px + env(safe-area-inset-bottom))}}@media (max-width: 480px){.forecast-page{padding:var(--spacing-xs) var(--spacing-sm);padding-bottom:70px}}@media (max-width: 375px){.forecast-page{padding:var(--spacing-xs);padding-bottom:65px}}.swipe-indicators{display:none}.swipe-indicator{width:32px;height:32px;border-radius:50%;background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-muted);box-shadow:var(--shadow-md);animation:pulse 2s ease-in-out infinite}.swipe-indicator-left{animation-delay:0s}.swipe-indicator-right{animation-delay:1s}@keyframes pulse{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.5;transform:scale(1.05)}}.forecast-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg)}.forecast-nav-btn{padding:var(--spacing-sm);border:1px solid var(--border-color);background:var(--bg-glass);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-primary);transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-sm);width:36px;height:36px;min-width:36px;min-height:36px;flex-shrink:0;box-sizing:border-box}.forecast-nav-btn svg{width:20px!important;height:20px!important;flex-shrink:0}.forecast-nav-btn:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}@media (max-width: 768px){.forecast-nav-btn{width:32px;height:32px;min-width:32px;min-height:32px;padding:var(--spacing-sm)}.forecast-nav-btn svg{width:20px!important;height:20px!important}}.forecast-title{font-size:24px;font-weight:700;text-transform:capitalize;flex:1;text-align:center;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1024px){.forecast-title{font-size:20px}}@media (max-width: 768px){.forecast-title{font-size:18px}}@media (max-width: 480px){.forecast-title{font-size:14px}}@media (max-width: 375px){.forecast-title{font-size:12px}}.forecast-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}@media (max-width: 1024px){.forecast-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-md)}}@media (max-width: 768px){.forecast-grid{grid-template-columns:1fr}}.forecast-card{padding:var(--spacing-lg);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:visible;position:relative;isolation:isolate}.forecast-card-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.forecast-card-header h2{font-size:20px;font-weight:600}@media (max-width: 480px){.forecast-card{padding:var(--spacing-md)}.forecast-card-header h2{font-size:18px}}@media (max-width: 375px){.forecast-card{padding:var(--spacing-sm)}.forecast-card-header h2{font-size:16px}}.forecast-content{display:flex;flex-direction:column;gap:var(--spacing-md)}.recommendation-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-color)}.recommendation-item:last-child{border-bottom:none}.recommendation-label{color:var(--text-secondary)}.recommendation-value{font-weight:600;font-size:16px}.recommendation-section{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.recommendation-section h3{font-size:14px;font-weight:600;margin-bottom:var(--spacing-sm);color:var(--text-secondary)}.critical-dates-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.critical-date-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm);background:#ef44441a;border-radius:var(--radius-sm);border-left:3px solid var(--color-danger)}.critical-date-info{display:flex;flex-direction:column;gap:2px}.critical-date-title{font-weight:500;font-size:14px}.critical-date-date{font-size:12px;color:var(--text-muted)}.critical-date-amount{font-weight:600;font-size:16px}.forecast-empty{color:var(--text-muted);text-align:center;padding:var(--spacing-md)}.summary-item{display:flex;justify-content:space-between;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--border-color)}.summary-item:last-child{border-bottom:none}.summary-item span:first-child{color:var(--text-secondary)}.summary-item span:last-child{font-weight:600}.loans-section{margin-top:var(--spacing-xl)}.section-title{font-size:24px;font-weight:700;margin-bottom:var(--spacing-lg)}@media (max-width: 375px){.section-title{font-size:20px}}.loan-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.loan-header h3{font-size:18px;font-weight:600}.loan-detail-tooltip{position:relative;display:inline-flex;align-items:center;cursor:help;flex-shrink:0}.loan-detail-tooltip:hover .loan-detail-info-icon{color:var(--color-primary)}.loan-detail-tooltip:hover .loan-detail-info-text{opacity:1;pointer-events:auto;transform:translateY(-50%) translate(4px)}.loan-detail-info-text{position:absolute;top:50%;left:calc(100% + var(--spacing-sm));transform:translateY(-50%);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);font-size:12px;color:var(--text-primary);white-space:normal;width:-moz-max-content;width:max-content;max-width:min(280px,100vw - 100px);min-width:180px;text-align:left;line-height:1.5;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:2147483647;isolation:isolate;will-change:opacity,transform}.loan-detail-info-text:before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:6px solid transparent;border-right-color:var(--bg-glass);filter:drop-shadow(-2px 0 4px rgba(0,0,0,.1))}.create-bottom-sheet-content,.create-bottom-sheet-content form{display:flex;flex-direction:column;gap:var(--spacing-md)}.create-tabs{display:flex;gap:var(--spacing-xs);padding:var(--spacing-xs);margin-bottom:var(--spacing-md);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md)}@media (max-width: 768px){.create-tab{font-size:13px;padding:var(--spacing-sm);min-height:44px}}.form-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-md)}@media (max-width: 768px){.form-actions{flex-direction:column}}.records-page{padding:var(--spacing-lg);padding-bottom:100px;min-height:100vh;overflow-x:hidden}@media (max-width: 1440px){.records-page{padding:var(--spacing-md);padding-bottom:90px}}@media (max-width: 768px){.records-page{padding:var(--spacing-sm);padding-bottom:calc(100px + env(safe-area-inset-bottom))}}@media (max-width: 480px){.records-page{padding:var(--spacing-xs) var(--spacing-sm);padding-bottom:70px}}@media (max-width: 375px){.records-page{padding:var(--spacing-xs);padding-bottom:65px}}.records-page .tabs{display:flex;gap:var(--spacing-xs);padding:var(--spacing-xs);margin-bottom:var(--spacing-lg);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--text-muted) transparent}.records-page .tabs::-webkit-scrollbar{height:4px}.records-page .tabs::-webkit-scrollbar-track{background:transparent}.records-page .tabs::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:2px}@media (max-width: 768px){.records-page .tabs{margin-bottom:var(--spacing-md);padding:var(--spacing-sm);gap:var(--spacing-sm);flex-wrap:wrap;overflow-x:visible}}@media (max-width: 480px){.records-page .tabs{padding:var(--spacing-sm);gap:var(--spacing-xs);flex-wrap:wrap}.records-page .tabs .tab:nth-child(5){min-width:100%;flex:1 1 100%}}@media (max-width: 375px){.records-page .tabs{padding:var(--spacing-xs);gap:var(--spacing-xs)}.records-page .tabs .tab:nth-child(5){min-width:100%;flex:1 1 100%}}.records-page .tab{flex:1;min-width:-moz-fit-content;min-width:fit-content;padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:14px;font-weight:500;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.records-page .tab:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.records-page .tab-active{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.records-page .tab-active:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-md)}@media (max-width: 768px){.records-page .tab{font-size:14px;padding:var(--spacing-md) var(--spacing-lg);min-height:48px;min-width:120px;display:flex;align-items:center;justify-content:center;flex:0 1 auto}}@media (max-width: 480px){.records-page .tab{font-size:13px;padding:var(--spacing-md);min-height:48px;min-width:calc(50% - var(--spacing-xs));flex:1 1 calc(50% - var(--spacing-xs))}}@media (max-width: 375px){.records-page .tab{font-size:12px;padding:var(--spacing-sm) var(--spacing-md);min-height:48px;min-width:calc(50% - var(--spacing-xs));flex:1 1 calc(50% - var(--spacing-xs))}}@media (max-width: 480px){.page-title{font-size:20px}}@media (max-width: 375px){.page-title{font-size:18px}}.create-tabs{display:flex;gap:var(--spacing-xs);padding:var(--spacing-xs);margin-bottom:var(--spacing-lg);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md)}.create-tab{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:14px;font-weight:500}.create-tab:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.create-tab-active{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.create-tab-active:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-md)}.create-form-card{padding:var(--spacing-xl);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md)}@media (max-width: 1024px){.create-form-card{padding:var(--spacing-lg)}}@media (max-width: 768px){.create-form-card{padding:var(--spacing-md)}}@media (max-width: 480px){.create-form-card{padding:var(--spacing-sm)}}.create-form-card form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-lg)}@media (max-width: 1024px){.form-actions{gap:var(--spacing-sm)}}@media (max-width: 768px){.form-actions{flex-direction:column;margin-top:var(--spacing-md)}}.items-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.item-type{padding:4px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:500}.item-type-income{background:#10b9811a;color:var(--color-success)}.item-type-expense{background:#ef44441a;color:var(--color-danger)}.item-category,.item-frequency,.item-rate,.item-term{padding:4px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary)}.amount-income{color:var(--color-success)}.amount-expense{color:var(--color-danger)}.empty-state{padding:var(--spacing-xl);text-align:center;color:var(--text-muted);border-color:#ffffff1a!important}.settings-card{padding:var(--spacing-xl);margin-top:var(--spacing-lg);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md)}.settings-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.settings-header h2{font-size:20px;font-weight:600;color:var(--text-primary)}.settings-description{color:var(--text-secondary);margin-bottom:var(--spacing-lg);line-height:1.6}.settings-form{display:flex;flex-direction:column;gap:var(--spacing-md);max-width:400px}@media (max-width: 768px){.settings-form{max-width:100%}}.settings-info{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-secondary)}.settings-info strong{color:var(--text-primary);font-weight:600}.settings-container{display:flex;flex-direction:column;gap:var(--spacing-lg)}.settings-theme-toggle{display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);margin-top:var(--spacing-sm)}.loans-page{padding:var(--spacing-lg);padding-bottom:100px;min-height:100vh;overflow-x:hidden}@media (max-width: 1440px){.loans-page{padding:var(--spacing-md);padding-bottom:90px}}@media (max-width: 768px){.loans-page{padding:var(--spacing-sm);padding-bottom:calc(100px + env(safe-area-inset-bottom))}}@media (max-width: 480px){.loans-page{padding:var(--spacing-xs) var(--spacing-sm);padding-bottom:70px}}@media (max-width: 375px){.loans-page{padding:var(--spacing-xs);padding-bottom:65px}}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);gap:var(--spacing-md)}@media (max-width: 768px){.page-header{margin-bottom:var(--spacing-md);gap:var(--spacing-sm)}}@media (max-width: 375px){.page-header{gap:var(--spacing-xs)}}.page-title{font-size:32px;font-weight:700;margin:0;flex:1;min-width:0}@media (max-width: 768px){.page-title{font-size:24px}}@media (max-width: 480px){.page-title{font-size:18px;margin-bottom:var(--spacing-md)}}@media (max-width: 375px){.page-title{font-size:14px}}.create-button{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0;width:auto!important;min-width:auto!important}@media (max-width: 768px){.create-button{padding:10px 14px!important;min-height:auto!important}.create-button span{display:none}.create-button svg{width:18px;height:18px}}@media (max-width: 480px){.create-button{padding:8px 12px!important}.create-button svg{width:16px;height:16px}}@media (max-width: 375px){.create-button{padding:8px 10px!important}.create-button svg{width:16px;height:16px}}.loans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--spacing-lg)}@media (max-width: 1024px){.loans-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--spacing-md)}}@media (max-width: 768px){.loans-grid{grid-template-columns:1fr}}.loan-card{padding:var(--spacing-lg);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow:visible;position:relative;isolation:isolate}@media (max-width: 480px){.loan-card{padding:var(--spacing-md)}}@media (max-width: 375px){.loan-card{padding:var(--spacing-sm)}}.loan-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color);gap:var(--spacing-sm)}.loan-header-info{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;min-width:0}.loan-header-info h3{font-size:18px;font-weight:600;margin:0}.loan-header-actions{display:flex;gap:var(--spacing-xs);flex-shrink:0}.loan-action-button{padding:8px!important;min-width:auto!important;width:auto!important}.loan-action-button svg{width:16px;height:16px}.loan-rate{font-size:14px;color:var(--text-secondary);background:#ffffff1a;padding:4px 8px;border-radius:var(--radius-sm)}.loan-details{display:flex;flex-direction:column;gap:var(--spacing-sm);overflow:visible}.loan-detail-item{display:flex;justify-content:space-between;align-items:center;font-size:14px}.loan-detail-item span:first-child{color:var(--text-secondary)}.loan-detail-label-wrapper{display:flex;align-items:center;gap:var(--spacing-xs)}.loan-detail-info-icon{color:var(--text-muted);transition:color .2s ease}.loan-next-payment{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.loan-next-date{font-size:12px;color:var(--text-muted)}.income{color:var(--color-success)}.expense{color:var(--color-danger)}.loan-early-payments{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.loan-early-payments-title{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.loan-early-payments-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.loan-early-payment-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);background:#10b9810d;border-radius:var(--radius-sm);border-left:2px solid var(--color-success)}.loan-early-payment-info{display:flex;flex-direction:column;gap:2px}.loan-early-payment-date{font-size:13px;font-weight:500;color:var(--text-primary)}.loan-early-payment-recurring{font-size:11px;color:var(--text-muted)}.loan-early-payment-amount{font-weight:600;font-size:14px}.loan-closure-dates{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color);margin-top:var(--spacing-xs)}.loan-closure-info{display:flex;flex-direction:column;gap:var(--spacing-xs);width:100%}.loan-closure-item{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);font-size:13px}@media (max-width: 768px){.loan-closure-item{flex-direction:column;align-items:flex-start;gap:2px}}.loan-closure-label{color:var(--text-secondary);font-size:12px}@media (max-width: 768px){.loan-closure-label{font-size:11px}}.loan-closure-date{font-weight:600;font-size:13px;color:var(--text-primary)}.loan-closure-date.income{color:var(--color-success)}@media (max-width: 768px){.loan-closure-date{font-size:12px}}.empty-state{padding:var(--spacing-xl);text-align:center;color:var(--text-secondary);border-color:#ffffff1a!important}.tabs{display:flex;gap:var(--spacing-xs);padding:var(--spacing-xs);margin-bottom:var(--spacing-lg);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md);overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 768px){.tabs{margin-bottom:var(--spacing-md);padding:var(--spacing-sm);gap:var(--spacing-sm);flex-wrap:wrap;overflow-x:visible}}@media (max-width: 480px){.tabs .tab{font-size:13px;padding:var(--spacing-md);min-height:48px;min-width:calc(50% - var(--spacing-xs));flex:1 1 calc(50% - var(--spacing-xs))}}@media (max-width: 375px){.tabs .tab{font-size:12px;padding:var(--spacing-sm) var(--spacing-md);min-height:48px;min-width:calc(50% - var(--spacing-xs));flex:1 1 calc(50% - var(--spacing-xs))}}.tab{flex:1;min-width:-moz-fit-content;min-width:fit-content;padding:var(--spacing-sm) var(--spacing-md);border:none;background:transparent;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:14px;font-weight:500;white-space:nowrap;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.tab:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.tab-active{background:var(--color-primary);color:var(--text-secondary);box-shadow:var(--shadow-sm)}.tab-active:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-md)}@media (max-width: 768px){.tab{font-size:14px;padding:var(--spacing-md) var(--spacing-lg);min-height:48px;min-width:120px;display:flex;align-items:center;justify-content:center;flex:0 1 auto}}.items-list{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.items-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);flex-wrap:wrap;gap:var(--spacing-sm)}.items-header h2{font-size:20px;font-weight:600;color:var(--text-primary)}.item-card{padding:var(--spacing-lg);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md)}@media (max-width: 768px){.item-card{padding:var(--spacing-md)}}@media (max-width: 480px){.item-card{padding:var(--spacing-md)}}@media (max-width: 375px){.item-card{padding:var(--spacing-sm)}}.item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}@media (max-width: 768px){.item-header{flex-direction:column;gap:var(--spacing-sm)}}.item-info{flex:1}.item-title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:var(--spacing-xs)}@media (max-width: 480px){.item-title{font-size:14px}}@media (max-width: 375px){.item-title{font-size:12px}}.item-meta{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.item-frequency,.item-category{padding:4px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:12px;color:var(--text-secondary)}.item-amount{text-align:right}@media (max-width: 768px){.item-amount{text-align:left}}.amount{font-size:20px;font-weight:700}@media (max-width: 480px){.amount{font-size:18px}}@media (max-width: 375px){.amount{font-size:14px}}.item-details{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.item-detail{display:flex;gap:var(--spacing-sm);font-size:14px}.detail-label{font-weight:500;color:var(--text-secondary);min-width:120px}.item-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}@media (max-width: 768px){.item-actions{flex-direction:column}.item-actions .btn{width:100%}}.settings-page{padding:var(--spacing-md);padding-bottom:100px;min-height:100vh;overflow-x:hidden}.settings-page .page-title{font-size:24px;font-weight:700;margin-bottom:var(--spacing-md)}@media (max-width: 768px){.settings-page .page-title{font-size:20px;margin-bottom:var(--spacing-sm)}}@media (max-width: 480px){.settings-page .page-title{font-size:18px}}@media (max-width: 1440px){.settings-page{padding:var(--spacing-md);padding-bottom:90px}}@media (max-width: 768px){.settings-page{padding:var(--spacing-sm);padding-bottom:calc(100px + env(safe-area-inset-bottom))}}@media (max-width: 480px){.settings-page{padding:var(--spacing-xs) var(--spacing-sm);padding-bottom:70px}}@media (max-width: 375px){.settings-page{padding:var(--spacing-xs);padding-bottom:65px}}.settings-card{padding:var(--spacing-md);margin-top:var(--spacing-md);background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md)}@media (max-width: 768px){.settings-card{padding:var(--spacing-sm);margin-top:var(--spacing-sm)}}@media (max-width: 480px){.settings-card{padding:var(--spacing-xs) var(--spacing-sm)}}.settings-header{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.settings-header svg{width:18px;height:18px;flex-shrink:0}.settings-header h2{font-size:14px;font-weight:600;color:var(--text-primary)}@media (max-width: 480px){.settings-header h2{font-size:15px}}.settings-header-compact{justify-content:space-between;margin-bottom:0}.settings-header-compact svg{width:16px;height:16px}.settings-header-compact h2{font-size:15px}.settings-header-left{display:flex;align-items:center;gap:var(--spacing-xs)}.settings-description{color:var(--text-secondary);margin-bottom:var(--spacing-sm);line-height:1.5;font-size:13px}@media (max-width: 480px){.settings-description{font-size:12px}}.settings-import-export{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:var(--spacing-sm)}.settings-export-section,.settings-import-section{display:flex;flex-direction:column;gap:var(--spacing-xs)}.settings-export-btn,.settings-import-btn{width:100%;max-width:300px;display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);font-size:14px}.settings-export-btn svg,.settings-import-btn svg{width:16px;height:16px}@media (max-width: 768px){.settings-export-btn,.settings-import-btn{max-width:100%}}.settings-hint{font-size:12px;color:var(--text-muted);line-height:1.4;margin:0}.settings-import-result{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:12px;margin-top:var(--spacing-xs)}.settings-import-result svg{width:16px;height:16px;flex-shrink:0}.settings-import-result.success{background:#10b9811a;color:var(--color-success);border:1px solid rgba(16,185,129,.3)}.settings-import-result.error{background:#ef44441a;color:var(--color-danger);border:1px solid rgba(239,68,68,.3)}.settings-logout{margin-top:var(--spacing-sm)}.settings-logout-btn{width:100%;max-width:300px;display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);font-size:14px}.settings-logout-btn svg{width:16px;height:16px}@media (max-width: 768px){.settings-logout-btn{max-width:100%}}.settings-theme{margin-top:var(--spacing-sm);display:flex;justify-content:flex-start}.settings-theme-toggle{display:flex;align-items:center;gap:var(--spacing-sm)}.settings-theme-label{font-size:14px;color:var(--text-secondary);font-weight:500}.settings-theme-switch{position:relative;width:48px;height:24px;border-radius:12px;background:#fffc;border:1px solid var(--border-color, rgba(0, 0, 0, .08));cursor:pointer;transition:all .3s ease;padding:2px;box-sizing:border-box}.settings-theme-switch:hover{background:#ffffffe6}.settings-theme-switch.active{background:#000;border-color:#ffffff1a}.settings-theme-switch-slider{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#0009;transition:transform .3s ease,background .3s ease;box-shadow:0 1px 3px #0003}.settings-theme-switch.active .settings-theme-switch-slider{transform:translate(24px);background:#fff;box-shadow:0 1px 3px #00000026}/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-x-reverse:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-4{top:calc(var(--spacing)*4)}.right-4{right:calc(var(--spacing)*4)}.left-2{left:calc(var(--spacing)*2)}.z-50{z-index:50}.z-\[1101\]{z-index:1101}.z-\[1102\]{z-index:1102}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.my-1{margin-block:calc(var(--spacing)*1)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.aspect-square{aspect-ratio:1}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-\[--cell-size\]{width:--cell-size;height:--cell-size}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-\[--cell-size\]{height:--cell-size}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-96{max-height:calc(var(--spacing)*96)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-72{width:calc(var(--spacing)*72)}.w-\[--cell-size\]{width:--cell-size}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-\[--cell-size\]{min-width:--cell-size}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.border-collapse{border-collapse:collapse}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:--radix-popover-content-transform-origin}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:--radix-tooltip-content-transform-origin}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1.5)*calc(1 - var(--tw-space-y-reverse)))}.overflow-hidden{overflow:hidden}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-\[--cell-size\]{padding-inline:--cell-size}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.pt-0{padding-top:calc(var(--spacing)*0)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.\[--cell-size\:2rem\]{--cell-size:2rem}.group-data-\[focused\=true\]\/day\:relative:is(:where(.group\/day)[data-focused=true] *){position:relative}.group-data-\[focused\=true\]\/day\:z-10:is(:where(.group\/day)[data-focused=true] *){z-index:10}.group-data-\[focused\=true\]\/day\:ring-\[3px\]:is(:where(.group\/day)[data-focused=true] *){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-70:is(:where(.peer):disabled~*){opacity:.7}@media (hover:hover){.hover\:opacity-100:hover{opacity:1}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-focus\:ring-\[3px\]:has(:focus){--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:var(--radius-md)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:var(--radius-md)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}@media (min-width:40rem){.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}:where(.sm\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.sm\:text-left{text-align:left}}@media (min-width:48rem){.md\:flex-row{flex-direction:row}}.\[\&_\.input-icon-right\]\:pointer-events-auto .input-icon-right{pointer-events:auto}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}:is(.rtl\:\*\*\:\[\.rdp-button\\_next\>svg\]\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_next>svg),:is(.rtl\:\*\*\:\[\.rdp-button\\_previous\>svg\]\:rotate-180:where(:dir(rtl),[dir=rtl],[dir=rtl] *) *):is(.rdp-button_previous>svg){rotate:180deg}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.\[\&\>span\]\:text-xs>span{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:#0000}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@theme{ --color-background: hsl(0 0% 100%); --color-foreground: hsl(222.2 84% 4.9%); --color-card: hsl(0 0% 100%); --color-card-foreground: hsl(222.2 84% 4.9%); --color-popover: hsl(0 0% 100%); --color-popover-foreground: hsl(222.2 84% 4.9%); --color-primary: hsl(221.2 83.2% 53.3%); --color-primary-foreground: hsl(210 40% 98%); --color-secondary: hsl(210 40% 96.1%); --color-secondary-foreground: hsl(222.2 47.4% 11.2%); --color-muted: hsl(210 40% 96.1%); --color-muted-foreground: hsl(215.4 16.3% 46.9%); --color-accent: hsl(210 40% 96.1%); --color-accent-foreground: hsl(222.2 47.4% 11.2%); --color-destructive: hsl(0 84.2% 60.2%); --color-destructive-foreground: hsl(210 40% 98%); --color-border: rgba(255, 255, 255, .1); --color-input: rgba(255, 255, 255, .1); --color-ring: hsl(221.2 83.2% 53.3%); --radius: .5rem; --color-chart-1: hsl(12 76% 61%); --color-chart-2: hsl(173 58% 39%); --color-chart-3: hsl(197 37% 24%); --color-chart-4: hsl(43 74% 66%); --color-chart-5: hsl(27 87% 67%); }@layer base{:root{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 221.2 83.2% 53.3%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 255 255 255 / .1;--input: 255 255 255 / .1;--ring: 221.2 83.2% 53.3%;--color-border: rgba(255, 255, 255, .1);--color-input: rgba(255, 255, 255, .1);--radius: .5rem;--chart-1: 12 76% 61%;--chart-2: 173 58% 39%;--chart-3: 197 37% 24%;--chart-4: 43 74% 66%;--chart-5: 27 87% 67%;--bg-primary: #f5f7fa;--bg-secondary: rgba(255, 255, 255, .7);--bg-tertiary: rgba(248, 249, 250, .6);--bg-glass: rgba(255, 255, 255, .8);--bg-glass-hover: rgba(255, 255, 255, .9);--text-primary: #1a202c;--text-secondary: #4a5568;--text-muted: #718096;--border-color: rgba(0, 0, 0, .08);--border-hover: rgba(0, 0, 0, .12);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .12);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .12), 0 2px 4px -1px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .15), 0 4px 6px -2px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .18), 0 10px 10px -5px rgba(0, 0, 0, .12);--blur: blur(20px);--blur-sm: blur(10px);--blur-md: blur(30px);--blur-lg: blur(40px);--radius: 16px;--radius-sm: 12px;--radius-lg: 20px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--color-primary: #007AFF;--color-primary-hover: #0051D5;--color-success: #34C759;--color-danger: #FF3B30;--color-warning: #FF9500;--color-info: #5AC8FA;--color-event-income: #10B981;--color-event-expense: #EF4444;--color-event-loan-payment: #F59E0B;--color-event-early-payment: #3B82F6}.dark{--color-background: hsl(0 0% 0%);--color-foreground: hsl(210 40% 98%);--color-card: hsl(0 0% 3.9%);--color-card-foreground: hsl(210 40% 98%);--color-popover: hsl(0 0% 3.9%);--color-popover-foreground: hsl(210 40% 98%);--color-primary: hsl(217.2 91.2% 59.8%);--color-primary-foreground: hsl(222.2 47.4% 11.2%);--color-secondary: hsl(217.2 32.6% 17.5%);--color-secondary-foreground: hsl(210 40% 98%);--color-muted: hsl(217.2 32.6% 17.5%);--color-muted-foreground: hsl(215 20.2% 65.1%);--color-accent: hsl(217.2 32.6% 17.5%);--color-accent-foreground: hsl(210 40% 98%);--color-destructive: hsl(0 62.8% 30.6%);--color-destructive-foreground: hsl(210 40% 98%);--color-ring: hsl(224.3 76.3% 48%);--color-chart-1: hsl(220 70% 50%);--color-chart-2: hsl(160 60% 45%);--color-chart-3: hsl(30 80% 55%);--color-chart-4: hsl(280 65% 60%);--color-chart-5: hsl(340 75% 55%);--background: 0 0% 0%;--foreground: 210 40% 98%;--card: 0 0% 3.9%;--card-foreground: 210 40% 98%;--popover: 0 0% 3.9%;--popover-foreground: 210 40% 98%;--primary: 217.2 91.2% 59.8%;--primary-foreground: 222.2 47.4% 11.2%;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 40% 98%;--border: 255 255 255 / .1;--input: 255 255 255 / .1;--ring: 224.3 76.3% 48%;--color-border: rgba(255, 255, 255, .1);--color-input: rgba(255, 255, 255, .1);--chart-1: 220 70% 50%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%;--bg-primary: #000000;--bg-secondary: rgba(28, 28, 30, .8);--bg-tertiary: rgba(44, 44, 46, .6);--bg-glass: rgba(28, 28, 30, .75);--bg-glass-hover: rgba(28, 28, 30, .85);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .8);--text-muted: rgba(255, 255, 255, .6);--border-color: rgba(255, 255, 255, .1);--border-hover: rgba(255, 255, 255, .2);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5), 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .5), 0 2px 4px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .6), 0 4px 6px -2px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .7), 0 10px 10px -5px rgba(0, 0, 0, .6);--color-event-income: #34D399;--color-event-expense: #F87171;--color-event-loan-payment: #FBBF24;--color-event-early-payment: #60A5FA}}html{min-width:375px;overflow-x:auto}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);min-height:100vh;min-width:375px;color:var(--text-primary);line-height:1.6;overflow-x:auto}#root{min-height:100vh;min-width:375px}.glass{background:var(--bg-glass);backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-md);transition:all .3s cubic-bezier(.4,0,.2,1)}.rounded-lg.border{border-color:#ffffff1a!important}.glass-hover{transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-hover:hover{background:var(--bg-glass-hover);border-color:var(--border-hover);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.container{max-width:1200px;margin:0 auto;padding:var(--spacing-lg)}@media (max-width: 1440px){.container{max-width:100%;padding:var(--spacing-md)}}@media (max-width: 768px){.container{padding:var(--spacing-sm)}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items: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)}.text-center{text-align:center}.text-sm{font-size:14px}.text-lg{font-size:18px}.text-xl{font-size:24px}.text-2xl{font-size:32px}.font-bold{font-weight:700}.font-semibold{font-weight:600}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}[data-theme=dark],.dark{color-scheme:dark}:root{color-scheme:dark}
