:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--text-primary: #213547;--text-secondary: #666666;--border-color: #e0e0e0;--accent-color: #646cff;--accent-hover: #535bf2;--card-bg: #ffffff;--input-bg: #ffffff;--shadow-color: rgba(0, 0, 0, .1);color-scheme:light dark;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #242424;--text-primary: rgba(255, 255, 255, .87);--text-secondary: #a1a1a1;--border-color: #333333;--accent-color: #646cff;--accent-hover: #747bff;--card-bg: #242424;--input-bg: #333333;--shadow-color: rgba(0, 0, 0, .5)}a{font-weight:500;color:var(--accent-color);text-decoration:inherit}a:hover{color:var(--accent-hover)}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:var(--bg-primary);color:var(--text-primary)}h1{font-size:3.2em;line-height:1.1;color:var(--text-primary)}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--accent-color)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-primary: #1a1a1a;--bg-secondary: #242424;--text-primary: rgba(255, 255, 255, .87);--text-secondary: #a1a1a1;--border-color: #333333;--card-bg: #242424;--input-bg: #333333;--shadow-color: rgba(0, 0, 0, .5)}}.networth-chart-container{background:var(--card-bg);border-radius:12px;padding:20px;box-shadow:0 4px 6px -1px var(--shadow-color);border:1px solid var(--border-color);height:340px}.custom-tooltip{background-color:var(--card-bg);border:1px solid var(--border-color);padding:10px;border-radius:6px;box-shadow:0 4px 12px var(--shadow-color)}.custom-tooltip .label{margin:0;font-weight:600;color:var(--text-secondary);font-size:.9rem}.custom-tooltip .intro{margin:4px 0 0;color:var(--accent-color);font-weight:700;font-size:1rem}.home-container{padding:20px;width:100%;box-sizing:border-box;color:var(--text-primary)}.welcome-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:60vh;padding:40px 20px}.welcome-title{font-size:3rem;font-weight:800;margin-bottom:20px;background:linear-gradient(135deg,var(--accent-color),#2196f3);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.welcome-subtitle{font-size:1.25rem;color:var(--text-secondary);max-width:600px;margin-bottom:40px;line-height:1.6}.login-btn-large{background-color:var(--accent-color);color:#fff;text-decoration:none;padding:15px 40px;border-radius:30px;font-size:1.2rem;font-weight:600;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 15px #4caf504d}.login-btn-large:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4caf5066}.dashboard-grid{display:flex;flex-direction:column;gap:20px;margin-bottom:30px}.top-row{grid-template-columns:1fr 1fr 1fr}@media(max-width:1100px){.top-row{grid-template-columns:1fr 1fr}}@media(max-width:768px){.top-row{grid-template-columns:1fr}}.chart-row{grid-template-columns:1fr}.summary-tile,.chart-tile{background:var(--card-bg);border-radius:12px;padding:20px;box-shadow:0 4px 6px -1px var(--shadow-color);border:1px solid var(--border-color)}.summary-tile{display:flex;flex-direction:column;justify-content:center;min-height:200px}.summary-tile h3{margin:0;font-size:1.1rem;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.summary-tile .total-amount{font-size:3rem;font-weight:700;color:#2e7d32;margin:10px 0}.chart-tile .chart-container{height:300px;width:100%}@media(max-width:768px){.home-container{padding:10px}.welcome-title{font-size:2rem}.top-row{grid-template-columns:1fr}.summary-tile .total-amount{font-size:2.2rem}.pie-chart-wrapper{display:none}}.networth-container{padding:20px;width:100%;box-sizing:border-box;color:var(--text-primary)}.networth-header{text-align:center;margin-bottom:30px;background:var(--card-bg);padding:20px;border-radius:12px;box-shadow:0 2px 8px var(--shadow-color)}.networth-dashboard-grid{display:flex;flex-direction:column;gap:20px;margin-bottom:30px}.dashboard-row{display:grid;gap:20px}.table-row{grid-template-columns:1fr}.networth-tile,.pie-chart-tile,.chart-tile,.table-tile{background:var(--card-bg);border-radius:12px;padding:20px;box-shadow:0 4px 6px -1px var(--shadow-color);border:1px solid var(--border-color)}.networth-tile{display:flex;flex-direction:column;justify-content:center;position:relative;min-height:200px}.networth-tile h3{margin:0;font-size:1.1rem;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.networth-tile .total-amount{font-size:3rem;font-weight:700;color:var(--accent-color);color:#2e7d32;margin:10px 0}.pie-chart-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:visible}.pie-chart-tile .networth-chart-container{border:none;box-shadow:none;padding:0;height:100%;width:100%;margin:0}.chart-tile h3{margin:0 0 15px;font-size:1.1rem;color:var(--text-secondary)}.chart-tile .networth-chart-container{border:none;box-shadow:none;padding:0;margin:0;height:300px}.table-tile{padding:0;overflow:hidden}.table-tile .table-header-actions{padding:20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-color)}.table-tile .table-header-actions h3{margin:0;font-size:1.1rem;color:var(--text-secondary)}.table-tile .table-header-actions .table-header-controls{display:flex;align-items:center;gap:15px}.table-tile .table-header-actions .table-header-controls .filter-checkbox{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.table-tile .table-header-actions .table-header-controls .filter-checkbox input[type=checkbox]{accent-color:var(--accent-color);cursor:pointer;width:16px;height:16px}.table-tile .table-header-actions .table-header-controls .date-selector{display:flex;align-items:center;gap:8px}.table-tile .table-header-actions .table-header-controls .date-selector .date-label{font-size:.9rem;font-weight:500;color:var(--text-secondary)}.table-tile .table-header-actions .table-header-controls .date-selector .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.table-tile .table-header-actions .table-header-controls .date-selector input{background:var(--input-bg);border:1px solid var(--border-color);color:var(--text-primary);padding:6px;border-radius:4px;font-size:.9rem}.table-tile .table-header-actions .table-header-controls .date-selector .reset-btn{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);padding:6px 10px;border-radius:4px;cursor:pointer;font-size:.85rem}.table-tile .table-header-actions .table-header-controls .date-selector .reset-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.table-tile .networth-table-container{box-shadow:none;border-radius:0}@media(max-width:768px){.networth-container{padding:10px}.top-row{grid-template-columns:1fr}.pie-chart-tile{display:none}.networth-tile .total-amount{font-size:2.2rem}}.networth-table{width:100%;border-collapse:collapse}.networth-table th,.networth-table td{padding:12px 15px;color:var(--text-primary)}.networth-table th{background-color:var(--bg-secondary);font-weight:600;color:var(--text-secondary);border-bottom:2px solid var(--border-color)}.source-row{background-color:transparent;border-bottom:1px solid var(--border-color)}.source-row:hover{background-color:var(--bg-secondary)}.source-name-cell{font-weight:700;font-size:1.05rem;color:var(--accent-color)}.source-balance-cell{font-weight:700;text-align:right;color:var(--text-primary)}.product-row{border-bottom:1px solid var(--border-color)}.product-name-cell{padding-left:40px!important;font-size:.95rem;color:var(--text-primary)}.product-balance-cell{text-align:right;font-family:monospace;font-size:1rem;color:var(--text-primary);padding:0!important}.product-balance-cell input{width:100%;border:1px solid transparent;border-bottom:1px dashed var(--text-secondary);background:transparent;padding:12px 15px;text-align:right;font-family:monospace;font-size:1rem;color:var(--text-primary);box-sizing:border-box;-moz-appearance:textfield;appearance:textfield;border-radius:4px;transition:all .2s}.product-balance-cell input::placeholder{color:var(--text-secondary);opacity:.5}.product-balance-cell input::-webkit-outer-spin-button,.product-balance-cell input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.product-balance-cell input:hover{background-color:var(--bg-secondary);border-bottom:1px solid var(--accent-color);cursor:text}.product-balance-cell input:focus{background:var(--bg-secondary);border:1px solid var(--accent-color);outline:none;box-shadow:0 0 0 2px #2196f333}.add-product-row td:not(:first-child){padding-left:40px!important;background-color:var(--bg-secondary);opacity:.5}.add-product-row td:first-child{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.add-product-btn-sm{background:none;border:none;color:var(--accent-color);cursor:pointer;font-size:.85rem;display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px}.add-product-btn-sm:hover{background-color:var(--bg-secondary);opacity:1}.action-cell{text-align:left;white-space:nowrap}.edit-btn-icon,.history-btn-icon,.delete-btn-icon{background:none;border:none;cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;border-radius:4px;opacity:.7;transition:all .2s}.edit-btn-icon:hover,.history-btn-icon:hover,.delete-btn-icon:hover{opacity:1;background-color:var(--bg-secondary)}.edit-btn-icon{color:var(--accent-color)}.history-btn-icon{color:#1976d2}.delete-btn-icon{color:#ef5350}.delete-btn-icon:hover{background-color:#ef53501a}.footer-actions{padding:20px;display:flex;justify-content:center;background:var(--card-bg);border-top:1px solid var(--border-color)}.add-source-btn-lg{background-color:var(--accent-color);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;box-shadow:0 2px 4px #0003;transition:background .2s,transform .1s}.add-source-btn-lg:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.col-actions{width:1%;text-align:left;white-space:nowrap}.col-name{width:69%}.col-balance{width:30%;text-align:right}@media(max-width:768px){.networth-container{padding:10px}.networth-header{padding:15px;margin-bottom:15px}.total-networth{font-size:2rem}.networth-table th,.networth-table td{padding:8px 5px}.col-actions{width:15%}.col-name{width:50%}.col-balance{width:35%}.product-name-cell,.add-product-row td{padding-left:15px!important}.source-name-cell input,.product-name-cell input,.source-balance-cell,.product-balance-cell input{font-size:.9rem}}.time-travel-controls{margin-top:20px;padding:15px;background:var(--bg-secondary);border-radius:8px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color)}.time-travel-controls label{margin-right:10px;font-weight:700;color:var(--text-primary)}.time-travel-controls input[type=date]{padding:8px;border-radius:6px;border:1px solid var(--border-color);background:var(--input-bg);color:var(--text-primary);font-family:inherit}.time-travel-controls input[type=date]:focus{outline:none;border-color:var(--accent-color)}.time-travel-controls button{margin-left:10px;background-color:var(--accent-color);color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-weight:500}.time-travel-controls button:hover{background-color:var(--accent-hover)}.history-dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.history-dialog{background:var(--card-bg);width:90%;max-width:600px;border-radius:12px;box-shadow:0 4px 12px var(--shadow-color);display:flex;flex-direction:column;max-height:80vh;color:var(--text-primary)}.history-dialog-header{padding:16px 20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.history-dialog-header h3{margin:0;font-size:1.25rem;color:var(--text-primary)}.close-btn{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:4px}.close-btn:hover{color:var(--text-primary)}.history-dialog-content{padding:20px;overflow-y:auto}.history-form{background:var(--bg-secondary);padding:15px;border-radius:8px;margin-bottom:20px;border:1px solid var(--border-color)}.history-form h4{margin-top:0;margin-bottom:10px;color:var(--text-secondary);font-size:.95rem}.form-row{display:flex;gap:10px;align-items:center}.form-row input{padding:8px;border:1px solid var(--border-color);border-radius:4px;background-color:var(--input-bg);color:var(--text-primary)}.form-row input[type=date],.form-row input[type=time],.form-row input[type=number]{flex:1}.form-actions{display:flex;gap:5px}.save-btn,.cancel-btn{background:none;border:none;cursor:pointer;padding:6px;border-radius:4px;display:flex;align-items:center;justify-content:center}.save-btn{color:#fff;background-color:#2e7d32}.cancel-btn{color:var(--text-primary);background-color:var(--bg-primary);border:1px solid var(--border-color)}.add-history-btn{display:flex;align-items:center;gap:6px;background-color:var(--accent-color);color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;margin-bottom:20px;font-size:.9rem}.add-history-btn:hover{background-color:var(--accent-hover)}.history-table{width:100%;border-collapse:collapse}.history-table th,.history-table td{padding:10px;text-align:left;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.history-table th{background-color:var(--bg-secondary);color:var(--text-secondary);font-weight:600;font-size:.9rem}.history-table td{font-size:.95rem}.no-data{text-align:center;color:var(--text-secondary);padding:20px}.icon-btn{background:none;border:none;cursor:pointer;padding:4px;margin-right:4px;opacity:.6}.icon-btn:hover{opacity:1}.icon-btn.edit{color:var(--accent-color)}.icon-btn.delete{color:#ef5350}@media(max-width:600px){.history-dialog{width:95%;max-height:90vh}.form-row{flex-direction:column;align-items:stretch;gap:8px}.form-actions{flex-direction:row;justify-content:flex-end;margin-top:8px}.history-table th,.history-table td{padding:8px 4px;font-size:.85rem}.history-dialog-header h3{font-size:1.1rem}}.confirmation-dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease-out}.confirmation-dialog{background:var(--card-bg);width:90%;max-width:400px;border-radius:12px;box-shadow:0 4px 20px var(--shadow-color);display:flex;flex-direction:column;color:var(--text-primary);border:1px solid var(--border-color);animation:slideUp .2s ease-out;overflow:hidden}.confirmation-header{padding:20px 20px 10px;display:flex;align-items:center;gap:12px}.confirmation-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.warning-icon{color:#ef5350;flex-shrink:0}.confirmation-body{padding:0 20px 20px}.confirmation-body p{margin:0;color:var(--text-secondary);font-size:.95rem;line-height:1.5}.confirmation-footer{padding:15px 20px;background-color:var(--bg-secondary);display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--border-color)}.confirmation-footer button{padding:8px 16px;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;border:none;transition:all .2s}.confirm-btn{background-color:var(--accent-color);color:#fff}.confirm-btn:hover{background-color:var(--accent-hover)}.confirm-btn.destructive{background-color:#d32f2f}.confirm-btn.destructive:hover{background-color:#b71c1c}.add-source-dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease-out}.add-source-dialog{background:var(--card-bg);width:90%;max-width:400px;border-radius:12px;box-shadow:0 4px 20px var(--shadow-color);display:flex;flex-direction:column;color:var(--text-primary);border:1px solid var(--border-color);animation:slideUp .2s ease-out}.add-source-header{padding:20px;border-bottom:1px solid var(--border-color)}.add-source-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.add-source-body{padding:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group input,.form-group select{padding:10px;border-radius:6px;border:1px solid var(--border-color);background:var(--input-bg);color:var(--text-primary);font-size:1rem;width:100%;box-sizing:border-box}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 2px #646cff1a}.add-source-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.add-source-footer button{padding:8px 16px;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;border:none;transition:all .2s}.add-product-dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease-out}.add-product-dialog{background:var(--card-bg);width:90%;max-width:400px;border-radius:12px;box-shadow:0 4px 20px var(--shadow-color);display:flex;flex-direction:column;color:var(--text-primary);border:1px solid var(--border-color);animation:slideUp .2s ease-out}.add-product-header{padding:20px;border-bottom:1px solid var(--border-color)}.add-product-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.add-product-body{padding:20px}.form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.form-group label{font-size:.9rem;font-weight:500;color:var(--text-primary)}.form-group input{padding:10px;border-radius:6px;border:1px solid var(--border-color);background:var(--input-bg);color:var(--text-primary);font-size:1rem}.form-group input:focus{outline:none;border-color:var(--accent-color);box-shadow:0 0 0 2px #646cff1a}.hint-text{font-size:.85rem;color:var(--text-secondary);margin:4px 0 0}.add-product-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.add-product-footer button{padding:8px 16px;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;border:none;transition:all .2s}.cancel-btn{background-color:transparent;color:var(--text-primary);border:1px solid var(--border-color)!important}.cancel-btn:hover{background-color:var(--bg-primary)}.add-btn{background-color:var(--accent-color);color:#fff}.add-btn:disabled{opacity:.5;cursor:not-allowed}.add-btn:not(:disabled):hover{background-color:var(--accent-hover)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}#root{max-width:1280px;margin:0 auto;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em rgba(100,108,255,.6666666667))}.logo.react:hover{filter:drop-shadow(0 0 2em rgba(97,218,251,.6666666667))}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em;background-color:var(--card-bg);border-radius:8px}.read-the-docs{color:var(--text-secondary)}.layout-container{display:flex;flex-direction:column;height:100vh;width:100vw;position:absolute;top:0;left:0;background-color:var(--bg-primary);color:var(--text-primary)}.top-bar{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-bottom:1px solid var(--border-color);background-color:var(--bg-primary);flex-shrink:0;width:100%;box-sizing:border-box;z-index:20;transition:background-color .3s,border-color .3s}.brand-logo{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.signout-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;color:var(--text-secondary);transition:all .2s}.signout-btn:hover{background-color:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}.content-wrapper{display:flex;flex:1;overflow:hidden;position:relative}.sidebar{background-color:var(--bg-primary);border-right:1px solid var(--border-color);color:var(--text-primary);display:flex;flex-direction:column;padding:1rem .5rem;transition:width .3s ease,transform .3s ease,background-color .3s,border-color .3s;overflow:hidden;z-index:100;height:100%;position:absolute}.sidebar.collapsed{width:60px}.sidebar.expanded{width:250px;box-shadow:2px 0 8px var(--shadow-color)}.sidebar-nav{display:flex;flex-direction:column;gap:1rem;padding-top:1rem}.sidebar-nav a{display:flex;align-items:center;padding:.75rem;border-radius:4px;text-decoration:none;color:var(--text-secondary);font-weight:500;white-space:nowrap;transition:background-color .2s,color .2s}.sidebar-nav a svg{flex-shrink:0;min-width:24px}.sidebar-nav a .link-text{margin-left:1rem;opacity:0;transition:opacity .2s ease}.sidebar.expanded .sidebar-nav a .link-text{opacity:1}.sidebar-nav a:hover,.sidebar-nav a.active{background-color:var(--bg-secondary);color:var(--text-primary)}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;margin-left:60px;background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s}.page-content{padding:2rem;overflow-y:auto;flex:1;text-align:left}.home-container{text-align:center}.mobile-menu-btn{display:none;background:none;border:none;cursor:pointer;color:var(--text-primary);padding:0}.mobile-backdrop{display:none}@media(max-width:768px){.mobile-menu-btn{display:block}.top-bar{padding:1rem}.brand-logo{position:absolute;left:50%;transform:translate(-50%)}.signout-text{display:none}.signout-btn{padding:.5rem;border:none;color:var(--text-primary)}.sidebar{position:absolute;top:0;left:0;height:100%;transform:translate(-100%);width:250px!important;border-right:1px solid var(--border-color);box-shadow:2px 0 8px var(--shadow-color);z-index:100}.sidebar.mobile-open{transform:translate(0)}.sidebar.mobile-open .sidebar-nav a .link-text{opacity:1}.mobile-backdrop{display:block;position:absolute;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.main-content{margin-left:0}}
