*,*:before,*:after{box-sizing:border-box}*{margin:0}html,body{max-width:100vw}body{line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root,#__next,app-root{isolation:isolate;max-width:100vw}:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}:root{color-scheme:dark;--bg-color: #1a1b26;--bg-surface: #24283b;--bg-muted: #2f334d;--text-color: #c0caf5;--text-muted: #9aa5ce;--text-inverse: #ffffff;--primary-color: #f7768e;--primary-hover: #ff9eaf;--accent-color: #bb9af7;--accent-hover: #cfc9c2;--btn-primary-bg: var(--primary-color);--btn-primary-text: #1a1b26;--btn-accent-bg: var(--accent-color);--btn-accent-text: #1a1b26;--btn-disabled-bg: #414868;--btn-disabled-text: #565f89;--border-color: #414868;--border-soft: #2f334d}body{color:var(--text-color);background-color:var(--bg-color)}button{cursor:pointer;border-radius:6px;padding:.5rem 1rem;border:none;transition:background-color .2s ease,opacity .2s ease}button:disabled{background-color:var(--btn-disabled-bg);color:var(--btn-disabled-text);cursor:not-allowed}.btn-primary{background-color:var(--btn-primary-bg);color:var(--btn-primary-text);font-weight:600}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover)}.btn-accent{background-color:var(--btn-accent-bg);color:var(--btn-accent-text);font-weight:600}.btn-accent:hover:not(:disabled){background-color:var(--accent-hover)}.section-card{background-color:var(--bg-surface);border-radius:12px;padding:1.5rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;border:1px solid var(--border-soft);width:100%;display:flex;flex-direction:column;flex:1;height:100%;min-height:0;overflow:hidden}.section-content{flex:1;overflow-y:auto;min-height:0}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:2px solid var(--primary-color)}.section-header h2{color:var(--primary-color);font-size:1.5rem;font-weight:700;margin:0}.section-header .section-total{font-weight:700;font-size:1.25rem;color:var(--accent-color)}.sub-section{margin-bottom:2.5rem}.sub-section:last-child{margin-bottom:0}.sub-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-soft)}.sub-header h3{color:var(--accent-color);font-size:1.25rem;font-weight:600;margin:0}.sub-header .sub-total{font-weight:600;font-size:1.1rem;color:var(--text-color)}.actual-input{width:100px;background-color:var(--bg-app);border:1px solid var(--border-color);color:var(--text-color);padding:4px 8px;border-radius:4px;text-align:right;font-family:inherit;font-size:inherit}.actual-input:focus{outline:none;border-color:var(--primary-color);background-color:var(--bg-surface)}.actual-input::-webkit-outer-spin-button,.actual-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.actual-input{appearance:textfield}.styled-table{width:100%;border-collapse:collapse;text-align:left;margin:0}.styled-table.table-centered{width:60%;min-width:600px;margin:0 auto}@media(max-width:1024px){.styled-table.table-centered{width:90%;min-width:0}}.styled-table th{padding:1rem;background-color:var(--bg-muted);color:var(--text-muted);font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color)}.styled-table th.mini-toolbar{width:50px}.styled-table th.amount-col{text-align:right}.styled-table td{padding:1rem;border-bottom:1px solid var(--border-soft);color:var(--text-color);vertical-align:middle}.styled-table td.mini-toolbar{text-align:center}.styled-table td.amount-col{text-align:right;font-family:JetBrains Mono,monospace}.styled-table tbody tr{transition:background-color .2s ease}.styled-table tbody tr:hover{background-color:var(--bg-muted)}.styled-table tbody tr:last-child td{border-bottom:none}.styled-table.sticky-header th,.styled-table:not(.no-sticky) th{position:sticky;top:0;z-index:10}.amount-col{text-align:right;font-family:JetBrains Mono,monospace}.negative{color:var(--color-danger, #ef4444)}.positive{color:var(--color-success, #10b981)}.action-icon{cursor:pointer;width:20px;height:20px;opacity:.7;transition:opacity .2s ease,transform .2s ease}.action-icon:hover{opacity:1;transform:scale(1.1)}input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],select,textarea{background-color:var(--bg-muted);color:var(--text-color);border:none;border-radius:6px;padding:.75rem 1rem;width:100%;transition:background-color .2s ease,outline .1s ease;appearance:none}input::placeholder{color:var(--text-muted)}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-color);background-color:var(--bg-muted)}select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23c0caf5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:1.25rem;padding-right:3rem}select option{background-color:var(--bg-surface);color:var(--text-color)}input[type=date]{color-scheme:dark}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(75%) sepia(20%) saturate(800%) hue-rotate(200deg) brightness(100%) contrast(90%)}.mini-toolbar{display:flex;gap:.75rem;align-items:center}.mini-toolbar img{width:18px;height:18px;cursor:pointer;opacity:.7;transition:opacity .2s ease,transform .2s ease}.mini-toolbar img:hover{opacity:1;transform:scale(1.1)}.form-card{background-color:var(--bg-surface);padding:2.5rem;border-radius:12px;box-shadow:0 10px 15px -3px #0003;width:30%;min-width:320px;display:flex;flex-direction:column;gap:1.5rem}.form-card h1{margin:0;text-align:center;color:var(--primary-color);font-size:1.75rem;font-weight:700}.form-card form{display:flex;flex-direction:column;gap:1.25rem}.form-field{display:flex;flex-direction:column;gap:.5rem}.form-field label{font-size:.875rem;font-weight:600;color:var(--text-muted)}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem}.form-actions button{flex:1}.alert{color:var(--primary-color);font-size:.75rem;margin-top:.25rem}.btn-secondary{background-color:var(--bg-muted);color:var(--text-color);font-weight:600}.btn-secondary:hover:not(:disabled){background-color:var(--border-color)}.pointer{cursor:pointer}.add-item-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-title{font-weight:700}.toast-message{word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;text-shadow:0 1px 0 #ffffff}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container *{box-sizing:border-box}.toast-container .ngx-toastr{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 12px #999;color:#fff}.toast-container .ngx-toastr:hover{box-shadow:0 0 12px #000;opacity:1;cursor:pointer}.toast-info{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgMTEwYzIzLjE5NiAwIDQyIDE4LjgwNCA0MiA0MnMtMTguODA0IDQyLTQyIDQyLTQyLTE4LjgwNC00Mi00MiAxOC44MDQtNDIgNDItNDJ6bTU2IDI1NGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC04OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMnYtNjRoLTEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDY0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTAwaDEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjR6Jy8+PC9zdmc+)}.toast-error{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTEyMS42IDMxMy4xYzQuNyA0LjcgNC43IDEyLjMgMCAxN0wzMzggMzc3LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwyNTYgMzEybC02NS4xIDY1LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwxMzQuNCAzMzhjLTQuNy00LjctNC43LTEyLjMgMC0xN2w2NS42LTY1LTY1LjYtNjUuMWMtNC43LTQuNy00LjctMTIuMyAwLTE3bDM5LjYtMzkuNmM0LjctNC43IDEyLjMtNC43IDE3IDBsNjUgNjUuNyA2NS4xLTY1LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDM5LjYgMzkuNmM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzEyIDI1Nmw2NS42IDY1LjF6Jy8+PC9zdmc+)}.toast-success{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTE3My44OTggNDM5LjQwNGwtMTY2LjQtMTY2LjRjLTkuOTk3LTkuOTk3LTkuOTk3LTI2LjIwNiAwLTM2LjIwNGwzNi4yMDMtMzYuMjA0YzkuOTk3LTkuOTk4IDI2LjIwNy05Ljk5OCAzNi4yMDQgMEwxOTIgMzEyLjY5IDQzMi4wOTUgNzIuNTk2YzkuOTk3LTkuOTk3IDI2LjIwNy05Ljk5NyAzNi4yMDQgMGwzNi4yMDMgMzYuMjA0YzkuOTk3IDkuOTk3IDkuOTk3IDI2LjIwNiAwIDM2LjIwNGwtMjk0LjQgMjk0LjQwMWMtOS45OTggOS45OTctMjYuMjA3IDkuOTk3LTM2LjIwNC0uMDAxeicvPjwvc3ZnPg==)}.toast-warning{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1NzYgNTEyJyB3aWR0aD0nNTc2JyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTU2OS41MTcgNDQwLjAxM0M1ODcuOTc1IDQ3Mi4wMDcgNTY0LjgwNiA1MTIgNTI3Ljk0IDUxMkg0OC4wNTRjLTM2LjkzNyAwLTU5Ljk5OS00MC4wNTUtNDEuNTc3LTcxLjk4N0wyNDYuNDIzIDIzLjk4NWMxOC40NjctMzIuMDA5IDY0LjcyLTMxLjk1MSA4My4xNTQgMGwyMzkuOTQgNDE2LjAyOHpNMjg4IDM1NGMtMjUuNDA1IDAtNDYgMjAuNTk1LTQ2IDQ2czIwLjU5NSA0NiA0NiA0NiA0Ni0yMC41OTUgNDYtNDYtMjAuNTk1LTQ2LTQ2LTQ2em0tNDMuNjczLTE2NS4zNDZsNy40MTggMTM2Yy4zNDcgNi4zNjQgNS42MDkgMTEuMzQ2IDExLjk4MiAxMS4zNDZoNDguNTQ2YzYuMzczIDAgMTEuNjM1LTQuOTgyIDExLjk4Mi0xMS4zNDZsNy40MTgtMTM2Yy4zNzUtNi44NzQtNS4wOTgtMTIuNjU0LTExLjk4Mi0xMi42NTRoLTYzLjM4M2MtNi44ODQgMC0xMi4zNTYgNS43OC0xMS45ODEgMTIuNjU0eicvPjwvc3ZnPg==)}.toast-container.toast-top-center .ngx-toastr,.toast-container.toast-bottom-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width .ngx-toastr,.toast-container.toast-bottom-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.ngx-toastr{background-color:#030303;pointer-events:auto}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4}@media all and (max-width:240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:241px)and (max-width:480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width:481px)and (max-width:768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}
