:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}#root{width:100%}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:300px;padding:var(--spacing-xl);background:var(--color-bg-primary)}.error-boundary__container{max-width:500px;text-align:center;background:var(--color-bg-primary);border:1px solid var(--color-divider);border-radius:var(--radius-lg);padding:var(--spacing-xl);box-shadow:0 4px 12px #0000001a}.error-boundary__icon{font-size:48px;margin-bottom:var(--spacing-lg)}.error-boundary__content{margin-bottom:var(--spacing-xl)}.error-boundary__title{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.error-boundary__message{font-size:16px;color:var(--color-text-secondary);line-height:1.5;margin:0 0 var(--spacing-lg) 0}.error-boundary__details{text-align:left;background:var(--color-bg-secondary);border:1px solid var(--color-divider);border-radius:var(--radius-sm);padding:var(--spacing-md);margin-top:var(--spacing-lg)}.error-boundary__details summary{cursor:pointer;font-weight:500;color:var(--color-text-primary);padding:var(--spacing-sm);-webkit-user-select:none;user-select:none}.error-boundary__details summary:hover{background:var(--color-bg-primary);border-radius:var(--radius-sm)}.error-boundary__error-info{padding:var(--spacing-md) 0 0 0;font-size:14px;color:var(--color-text-secondary)}.error-boundary__error-info p{margin:var(--spacing-sm) 0}.error-boundary__stack{background:var(--color-bg-primary);border:1px solid var(--color-divider);border-radius:var(--radius-sm);padding:var(--spacing-md);margin:var(--spacing-md) 0;overflow:auto;max-height:200px;font-size:12px;line-height:1.4}.error-boundary__stack code{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;color:var(--color-text-primary)}.error-boundary__actions{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap;margin-bottom:var(--spacing-lg)}.error-boundary__button{padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none;min-width:120px}.error-boundary__button--primary{background:var(--color-primary);color:#fff}.error-boundary__button--primary:hover{background:var(--color-primary);opacity:.9;transform:translateY(-1px)}.error-boundary__button--secondary{background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-divider)}.error-boundary__button--secondary:hover{background:var(--color-divider);transform:translateY(-1px)}.error-boundary__button--tertiary{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-divider);min-width:auto;padding:var(--spacing-sm) var(--spacing-md)}.error-boundary__button--tertiary:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.error-boundary__help{font-size:12px;color:var(--color-text-secondary);line-height:1.4}.error-boundary--compact{min-height:auto;padding:var(--spacing-md);background:#ffc1071a;border:1px solid #ffc107;border-radius:var(--radius-sm)}.error-boundary__compact-content{display:flex;align-items:center;gap:var(--spacing-sm);justify-content:center}.error-boundary__compact-icon{font-size:16px}.error-boundary__compact-message{font-size:14px;color:var(--color-text-primary)}.error-boundary__compact-button{background:transparent;border:1px solid var(--color-divider);border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;font-size:14px;color:var(--color-text-secondary);transition:all .2s ease}.error-boundary__compact-button:hover{background:var(--color-bg-secondary);color:var(--color-text-primary);transform:rotate(180deg)}@media(max-width:480px){.error-boundary{padding:var(--spacing-lg);min-height:250px}.error-boundary__container{padding:var(--spacing-lg)}.error-boundary__title{font-size:20px}.error-boundary__message{font-size:14px}.error-boundary__actions{flex-direction:column;align-items:center}.error-boundary__button{width:100%;max-width:200px}.error-boundary__stack{font-size:11px;max-height:150px}}@media(prefers-contrast:high){.error-boundary__container{border:2px solid var(--color-text-primary)}.error-boundary__button--primary{border:2px solid white}.error-boundary__button--secondary{border:2px solid var(--color-text-primary)}}@media(prefers-reduced-motion:reduce){.error-boundary__button{transition:none}.error-boundary__button:hover,.error-boundary__compact-button:hover{transform:none}}.loading-spinner{display:flex;gap:4px;align-items:center;justify-content:center}.loading-spinner--small{gap:2px}.loading-spinner--medium{gap:4px}.loading-spinner--large{gap:6px}.loading-spinner__dot{border-radius:50%;animation:loading-bounce 1.4s ease-in-out infinite both}.loading-spinner--small .loading-spinner__dot{width:4px;height:4px}.loading-spinner--medium .loading-spinner__dot{width:6px;height:6px}.loading-spinner--large .loading-spinner__dot{width:8px;height:8px}.loading-spinner--primary .loading-spinner__dot{background-color:var(--color-primary)}.loading-spinner--secondary .loading-spinner__dot{background-color:var(--color-text-secondary)}.loading-spinner--white .loading-spinner__dot{background-color:#fff}.loading-spinner__dot:nth-child(1){animation-delay:-.32s}.loading-spinner__dot:nth-child(2){animation-delay:-.16s}.loading-spinner__dot:nth-child(3){animation-delay:0s}@keyframes loading-bounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.loading-skeleton{background:linear-gradient(90deg,var(--color-bg-secondary) 25%,var(--color-divider) 50%,var(--color-bg-secondary) 75%);background-size:200% 100%;animation:loading-shimmer 1.5s infinite}@keyframes loading-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.table-skeleton{width:100%;border-spacing:0}.table-skeleton__header,.table-skeleton__row{display:grid;gap:6px;padding:var(--spacing-sm) 0;align-items:center}.table-skeleton__header{border-bottom:1px solid var(--color-divider);padding-bottom:var(--spacing-md)}.table-skeleton__row{border-bottom:1px solid var(--color-divider);padding:var(--spacing-md) 0}.table-skeleton__row:last-child{border-bottom:none}.view-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:var(--spacing-lg);padding:var(--spacing-xl)}.view-loading__message{color:var(--color-text-secondary);font-size:16px;text-align:center;margin:0}.button-loading{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);transition:all .2s ease;position:relative;overflow:hidden}.button-loading--loading{cursor:not-allowed;opacity:.8}.button-loading__text{font-size:12px}@media(max-width:480px){.view-loading{min-height:150px;padding:var(--spacing-lg)}.view-loading__message{font-size:14px}.loading-spinner--large .loading-spinner__dot{width:6px;height:6px}}@media(prefers-contrast:high){.loading-skeleton{background:linear-gradient(90deg,transparent 25%,var(--color-text-primary) 50%,transparent 75%);opacity:.3}}@media(prefers-reduced-motion:reduce){.loading-spinner__dot,.loading-skeleton{animation:none}.loading-skeleton{background:var(--color-bg-secondary)}}:root{--color-primary: #007AFF;--color-text-primary: #111111;--color-text-secondary: #222222;--color-text-tertiary: #6E6E6E;--color-success: #28A745;--color-warning: #D93025;--color-info: #FFC107;--color-bg-primary: #FFFFFF;--color-bg-secondary: #F8F8F8;--color-divider: #E5E5E5;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--radius-sm: 8px;--radius-md: 12px;--shadow-card: 0 0 8px rgba(0, 0, 0, .1);--shadow-nav: 0 -8px 8px rgba(0, 0, 0, .15)}.auth-container{max-width:400px;margin:0 auto;padding:var(--spacing-xl)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-group label{font-size:16px;font-weight:600;color:var(--color-text-primary)}.form-group input{padding:var(--spacing-md);border:1px solid var(--color-divider);border-radius:var(--radius-sm);font-size:16px;background:var(--color-bg-primary);color:var(--color-text-primary);-webkit-text-fill-color:var(--color-text-primary);-webkit-background-clip:text}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #007aff33}.form-group input:disabled{opacity:.6;cursor:not-allowed}.form-group input:-webkit-autofill,.form-group input:-webkit-autofill:hover,.form-group input:-webkit-autofill:focus,.form-group input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px var(--color-bg-primary) inset!important;-webkit-text-fill-color:var(--color-text-primary)!important}.primary-button{padding:var(--spacing-lg);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:16px;font-weight:600;cursor:pointer;transition:opacity .2s}.primary-button:hover:not(:disabled){opacity:.9}.primary-button:disabled{opacity:.6;cursor:not-allowed}.link-button{background:none;border:none;color:var(--color-primary);font-size:16px;cursor:pointer;padding:var(--spacing-sm)}.link-button:hover:not(:disabled){text-decoration:underline}.link-button:disabled{opacity:.6;cursor:not-allowed}.auth-switch{text-align:center;margin-top:var(--spacing-lg)}.biometric-section{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.biometric-button{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-lg);background-color:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:17px;font-weight:600;cursor:pointer;transition:opacity .2s}.biometric-button:hover:not(:disabled){opacity:.85}.biometric-button:disabled{opacity:.5;cursor:not-allowed}.biometric-icon{width:24px;height:24px;flex-shrink:0}.biometric-prompt{position:fixed;bottom:0;left:0;right:0;background:var(--color-bg-primary);border-top:1px solid var(--color-divider);padding:var(--spacing-lg) var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-md);z-index:1000;box-shadow:0 -2px 12px #00000014}.biometric-prompt-text{font-size:15px;font-weight:500;color:var(--color-text-primary);text-align:center}.biometric-prompt-actions{display:flex;gap:var(--spacing-sm)}.biometric-prompt-btn{flex:1;padding:var(--spacing-md);border-radius:var(--radius-sm);font-size:15px;font-weight:600;border:none;cursor:pointer;transition:opacity .2s}.biometric-prompt-btn:disabled{opacity:.5;cursor:not-allowed}.biometric-prompt-btn--confirm{background-color:var(--color-primary);color:#fff}.biometric-prompt-btn--confirm:hover:not(:disabled){opacity:.85}.biometric-prompt-btn--dismiss{background-color:var(--color-bg-secondary);color:var(--color-text-secondary)}.biometric-prompt-btn--dismiss:hover:not(:disabled){background-color:var(--color-divider)}.error-message{background:#d930251a;color:var(--color-warning);padding:var(--spacing-md);border-radius:var(--radius-sm);border:1px solid rgba(217,48,37,.2);font-size:14px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--color-bg-secondary);color:var(--color-text-primary);line-height:1.4}.app{display:flex;flex-direction:column;height:100vh;height:100svh;overflow:hidden}.view-header{flex-shrink:0;background:var(--color-bg-primary);border-bottom:1px solid var(--color-divider);box-shadow:0 2px 8px #0000001a;z-index:100;position:relative}.view-header-content{padding:var(--spacing-lg);padding-bottom:var(--spacing-md)}.view-header-title{font-size:28px;font-weight:700;color:var(--color-text-primary);margin:0;line-height:1.1}.view-header-subtitle{font-size:18px;font-weight:400;color:var(--color-text-secondary);margin:0;margin-top:var(--spacing-xs);line-height:1.1}.content{flex:1;min-height:0;padding:var(--spacing-lg);overflow-y:auto;overflow-x:hidden;background:var(--color-bg-secondary)}.section-title{font-size:18px;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-sm);margin-top:var(--spacing-xl);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-divider)}.section-title:first-child{margin-top:0}.section-subtitle{font-size:14px;color:var(--color-text-secondary);margin-bottom:var(--spacing-md);margin-top:var(--spacing-xs)}.card{background:var(--color-bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--spacing-lg);margin-bottom:var(--spacing-md)}.bottom-navigation{flex-shrink:0;background:var(--color-bg-primary);box-shadow:var(--shadow-nav);display:flex;justify-content:space-around;padding:var(--spacing-sm) var(--spacing-md);padding-bottom:calc(var(--spacing-sm) + env(safe-area-inset-bottom));border-top:1px solid var(--color-divider);overflow-x:auto;overscroll-behavior-x:contain}.nav-item{flex-shrink:0}.view{padding-bottom:var(--spacing-xl)}.bottom-navigation::-webkit-scrollbar{display:none}.nav-item{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--color-text-tertiary);transition:color .2s;padding:var(--spacing-sm)}.nav-item.active{color:var(--color-primary)}.nav-icon{font-size:24px;margin-bottom:var(--spacing-xs)}.nav-label{font-size:12px;font-weight:400}.account-table{width:100%}.table-header,.table-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:var(--spacing-sm);padding:var(--spacing-md) 0}.table-header{border-bottom:1px solid var(--color-divider);margin-bottom:var(--spacing-sm)}.table-row{border-bottom:1px solid var(--color-divider)}.table-row:last-child{border-bottom:none;margin-bottom:var(--spacing-md)}.table-cell{font-size:14px;color:var(--color-text-primary);text-align:center}.header-cell{font-weight:600;color:var(--color-text-secondary);font-size:12px}.account-label{text-align:left!important;font-weight:500}.summary-title{font-size:16px;font-weight:600;color:var(--color-text-primary);margin-top:var(--spacing-lg);margin-bottom:0;text-align:center;border-top:1px solid var(--color-divider);padding-top:var(--spacing-md)}.advisor-card{border-radius:var(--radius-md);padding:var(--spacing-lg);display:flex;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.advisor-card.warning{background:#ffc1071f}.advisor-card.normal{background:#28a7451f}.advisor-icon{font-size:20px;flex-shrink:0}.advisor-text{font-size:14px;color:var(--color-text-primary);line-height:1.4}.summary-line{background:var(--color-bg-secondary);padding:var(--spacing-lg);border-radius:var(--radius-md);text-align:left;margin-top:var(--spacing-md)}.summary-text{font-size:16px;font-weight:700;color:var(--color-text-primary)}.input-group{position:relative;display:flex;align-items:center}.sparrate-input{width:100%;padding:var(--spacing-md);padding-right:30px;border:1px solid var(--color-divider);border-radius:var(--radius-sm);font-size:16px;background:var(--color-bg-primary);color:var(--color-text-primary)}.sparrate-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #007aff33}.currency-symbol{position:absolute;right:var(--spacing-md);color:var(--color-text-tertiary);font-size:16px;font-weight:500}.trend-arrow{font-size:18px;font-weight:700;margin-left:var(--spacing-sm)}.trend-arrow-up{color:#28a745}.trend-arrow-down{color:#dc3545}.trend-arrow-neutral{color:var(--color-text-tertiary)}.expense-table{background:var(--color-bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--spacing-md);margin-bottom:var(--spacing-xl);width:100%;max-width:100%;overflow-x:auto}.expense-table .table-header{display:flex;width:100%;padding-bottom:var(--spacing-md);border-bottom:2px solid var(--color-divider);margin-bottom:var(--spacing-md);gap:4px}.header-cell:nth-child(1){flex:2;min-width:0}.header-cell:nth-child(2){flex:1;min-width:0}.header-cell:nth-child(3){flex:1;min-width:0}@media(max-width:375px){.expense-table{padding:var(--spacing-sm)}.expense-table .table-header{gap:2px}.header-cell{font-size:12px}}.header-cell{font-size:14px;font-weight:600;color:var(--color-text-secondary);text-align:left}.expense-table .add-expense-row{display:flex;width:100%;align-items:center;gap:4px}.add-row-section{border-top:1px solid var(--color-divider);margin-top:var(--spacing-md);padding-top:var(--spacing-xs)}.add-expense-row>.add-btn{flex:0 0 auto;margin-right:4px}.add-expense-row>.expense-input:nth-child(2){flex:2;min-width:0}.add-expense-row>.expense-input:nth-child(3){flex:1;min-width:0}.add-expense-row>.expense-input:nth-child(4){flex:1;min-width:0}.add-btn{width:32px;height:32px;background:var(--color-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;cursor:pointer;transition:background-color .2s}.add-btn:hover{background:#005bb5}.add-row-link{font-size:12px;font-weight:500;color:var(--color-primary);cursor:pointer;padding:8px 2px;-webkit-user-select:none;user-select:none}.confirm-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--color-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.confirm-btn[aria-disabled=true]{cursor:not-allowed;opacity:.6}.expense-input{padding:var(--spacing-sm);border:1px solid var(--color-divider);border-radius:var(--radius-sm);font-size:14px;background:var(--color-bg-primary);color:var(--color-text-primary)}.expense-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #007aff33}.expenses-list{margin-bottom:0}.expense-table .expense-row{display:flex;width:100%;padding:var(--spacing-md) 0;border-bottom:1px solid var(--color-divider);gap:4px}.expense-cell:nth-child(1){flex:2;min-width:0}.expense-cell:nth-child(2){flex:1;min-width:0}.expense-cell:nth-child(3){flex:1;min-width:0}@media(max-width:375px){.expense-cell{font-size:12px}}.expense-row:last-child{border-bottom:none}.expense-cell{font-size:14px;color:var(--color-text-primary);display:flex;align-items:center}.expense-summary{background:var(--color-bg-secondary);padding:var(--spacing-lg);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);text-align:center;position:relative;z-index:1}.fixedcost-summary{background:#28a7451f;border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:var(--spacing-sm) var(--spacing-lg);margin-bottom:var(--spacing-xl);width:100%}.fixedcost-summary .metric{padding:var(--spacing-md) 0}.fixedcost-summary .metric+.metric{border-top:1px solid rgba(40,167,69,.3)}.fixedcost-summary .metric-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--spacing-md)}.fixedcost-summary .metric-label{font-size:14px;color:var(--color-text-primary)}.fixedcost-summary .metric-value{font-size:14px;font-weight:600;color:var(--color-text-primary);white-space:nowrap}.fixedcost-summary .metric-detail{margin-top:var(--spacing-sm);display:flex;flex-direction:column;gap:4px}.fixedcost-summary .metric-detail-row{display:flex;justify-content:space-between;gap:var(--spacing-sm);font-size:13px;color:var(--color-text-secondary)}.fixedcost-summary .metric-detail-date{white-space:nowrap}.fixedcost-summary .metric-detail-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixedcost-summary .metric-detail-hint{font-size:13px;color:var(--color-text-secondary)}.expense-summary p{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0}.expense-comparison{padding:var(--spacing-lg);text-align:center;position:relative;z-index:1}.expense-comparison p{font-size:14px;color:var(--color-text-secondary);margin:0;line-height:1.4}.content-placeholder{text-align:center;color:var(--color-text-tertiary);padding:var(--spacing-xl)}.menu-overlay{position:fixed;inset:0;background:#0000004d;z-index:200;display:flex;align-items:flex-end;justify-content:flex-end;padding:0 var(--spacing-lg) 80px var(--spacing-lg)}.admin-menu{background:var(--color-bg-primary);border-radius:var(--radius-md);box-shadow:0 4px 12px #00000026;min-width:160px;overflow:hidden;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.menu-item{display:flex;align-items:center;padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;transition:background-color .2s;border-bottom:1px solid var(--color-divider)}.menu-item:last-child{border-bottom:none}.menu-item:hover{background:var(--color-bg-secondary)}.menu-item-logout{color:var(--color-warning)}.menu-item-logout:hover{background:#d930251a}.menu-icon{font-size:18px;margin-right:var(--spacing-md);flex-shrink:0}.menu-text{font-size:16px;font-weight:500;color:var(--color-text-primary)}.menu-item-logout .menu-text{color:var(--color-warning)}.menu-arrow{margin-left:auto;font-size:12px;color:var(--color-text-secondary);transition:transform .2s}.submenu{background:var(--color-bg-secondary);border-top:1px solid var(--color-divider)}.submenu-item{padding-left:calc(var(--spacing-lg) + 24px);font-size:14px}.submenu-item .menu-icon{font-size:16px}.submenu-item .menu-text{font-size:14px;font-weight:400}.anschaffungen-skeleton .table-skeleton__header,.anschaffungen-skeleton .table-skeleton__row{grid-template-columns:120px 75px 65px}.extra-skeleton .table-skeleton__header,.extra-skeleton .table-skeleton__row{grid-template-columns:180px 80px}.konto-skeleton .table-skeleton__header,.konto-skeleton .table-skeleton__row{grid-template-columns:1fr 60px 60px 60px}
