:root{--color-background: #F8F5F0;--color-surface: #FFFFFF;--color-primary: #E59819;--color-primary-hover: #d48a06;--color-secondary: #2C3E50;--color-text-primary: #2C3E50;--color-text-secondary: #5a6875;--color-accent: #C0392B;--color-border: #EAEAEA;--color-income: #27AE60;--color-expense: #C0392B;--color-text-on-primary: #FFFFFF;--font-family: "Montserrat", sans-serif;--border-radius: 12px;--shadow: 0 4px 12px rgba(0,0,0,.05);--input-background: #f9fafb;--input-focus-shadow: #fde68a;--color-surface-hover: #f9fafb;--color-accent-hover-bg: #fef2f2}body.dark{--color-background: #111827;--color-surface: #1F2937;--color-primary: #8B5CF6;--color-primary-hover: #7c3aed;--color-secondary: #4B5563;--color-text-primary: #F3F4F6;--color-text-secondary: #9CA3AF;--color-accent: #8B5CF6;--color-border: #374151;--color-income: #22C55E;--color-expense: #EF4444;--color-text-on-primary: #F3F4F6;--shadow: none;--input-background: var(--color-background);--input-focus-shadow: rgba(139, 92, 246, .25);--color-surface-hover: #374151;--color-accent-hover-bg: rgba(139, 92, 246, .1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--color-background);color:var(--color-text-primary);line-height:1.6;transition:background-color .3s ease,color .3s ease}.welcome-container{display:grid;grid-template-columns:40% 1fr;align-items:center;min-height:100vh;padding:4rem;gap:4rem;overflow-y:auto}.welcome-logo-main{width:100%;max-width:200px;height:auto;object-fit:contain;justify-self:center;border-radius:20px}.welcome-content{display:flex;flex-direction:column;justify-content:center}.welcome-card{width:100%;text-align:left}.instructions-list{list-style-position:inside;margin-bottom:2rem;padding-left:.5rem;display:flex;flex-direction:column;gap:.5rem}.session-notice{background-color:#fefbea;border:1px solid #F9E6A1;color:#9c7a20;padding:1rem;border-radius:8px;margin:2rem 0}.session-actions{display:flex;gap:1rem;margin-top:2rem}.session-actions .button{flex-grow:1}.app-container{display:flex;flex-direction:column;min-height:100vh}.app-header{background-color:var(--color-surface);padding:0 2rem;display:flex;flex-direction:column;border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10;transition:background-color .3s ease,border-color .3s ease;gap:.25rem}.header-top-row{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.75rem 0}.header-nav-container{display:flex;justify-content:space-between;align-items:center;width:100%;flex-wrap:wrap}.app-logo-title{display:flex;align-items:center;cursor:pointer}.app-header h1{font-family:Bungee,cursive;font-size:1.5rem;font-weight:400;color:var(--color-text-primary);margin:0;line-height:1}.header-right-side{display:flex;align-items:center;gap:1.5rem}.app-header nav{display:flex;gap:.5rem}.app-header nav button{position:relative;background:none;border:none;font-family:var(--font-family);font-size:1rem;font-weight:600;padding:1rem .75rem;cursor:pointer;transition:color .2s ease;color:var(--color-text-secondary)}.app-header nav button:hover{color:var(--color-text-primary);background-color:transparent}.app-header nav button.active{color:var(--color-accent);background-color:transparent;font-weight:700}.app-header nav button:after{content:"";position:absolute;bottom:0;left:.75rem;right:.75rem;height:3px;background-color:var(--color-secondary);border-radius:3px 3px 0 0;transform:scaleX(0);transition:transform .3s ease,background-color .3s ease}.app-header nav button:hover:after,.app-header nav button.active:after{transform:scaleX(1)}.app-header nav button.active:after{background-color:var(--color-accent)}.portfolio-nav{display:flex;gap:.5rem;padding-bottom:.5rem}.portfolio-nav button{font-size:.9rem;padding:.4rem 1rem;border:1px solid var(--color-border);background:transparent;border-radius:99px;cursor:pointer;color:var(--color-text-secondary);transition:all .2s ease}.portfolio-nav button:hover{background-color:var(--color-background);color:var(--color-text-primary);border-color:var(--color-primary)}.portfolio-nav button.active{background-color:var(--color-primary);color:var(--color-text-on-primary);font-weight:600;border-color:var(--color-primary)}.app-content{flex-grow:1;padding:2rem;max-width:1200px;width:100%;margin:0 auto}.panel{background:var(--color-surface);padding:2rem;border-radius:var(--border-radius);box-shadow:var(--shadow);margin-bottom:2rem;transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease;border:1px solid transparent}.panel h2{font-size:1.5rem;margin-bottom:.5rem}.panel h3{font-size:1.25rem;margin-bottom:1.5rem}.panel h4{margin-bottom:1rem;font-weight:600}.panel>p{color:var(--color-text-secondary);margin-bottom:1.5rem;max-width:70ch}.button{font-family:var(--font-family);font-weight:600;font-size:1rem;padding:.75rem 1.5rem;border-radius:8px;border:2px solid var(--color-primary);background-color:transparent;color:var(--color-primary);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.button:hover{background-color:var(--color-primary);color:var(--color-text-on-primary)}.button:disabled{opacity:.5;cursor:not-allowed;background-color:#eaeaea;border-color:#eaeaea;color:var(--color-text-secondary)}.button.primary{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary)}.button.primary:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-text-on-primary)}.button.primary:disabled{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary);opacity:.5}.button.text,.button.text-danger{background:none;border:none;color:var(--color-accent);padding:.5rem}.button.text:hover,.button.text-danger:hover{background-color:var(--color-accent-hover-bg)}.button.text-danger{margin:0 auto}input[type=file]{font-family:var(--font-family);font-size:1rem;padding:.5rem}input,select{font-family:var(--font-family);font-size:1rem;padding:.75rem 1rem;border:1px solid var(--color-border);border-radius:8px;width:100%;background-color:var(--input-background);transition:border-color .2s,box-shadow .2s,background-color .3s ease,color .3s ease;color:var(--color-text-primary)}select{cursor:pointer}input:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--input-focus-shadow)}body.dark input::placeholder{color:var(--color-text-secondary);opacity:1}.uncategorized{border:1px solid var(--color-accent)!important}input[type=date]{cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;transition:opacity .2s ease}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}.filters-container{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-start;padding:1.5rem;background-color:var(--color-background);border-radius:var(--border-radius);margin-top:1rem;margin-bottom:2rem}.filter-group{display:flex;flex-direction:column;gap:.5rem;flex-grow:1;min-width:180px}.filter-group label{font-weight:600;font-size:.9rem;color:var(--color-text-secondary)}.filter-actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;flex-grow:1;justify-content:flex-end;padding-top:1.5rem}.filter-group--dates{flex-grow:2;gap:.75rem}.date-inputs-container{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.quick-date-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.quick-date-buttons button{font-family:var(--font-family);font-size:.8rem;font-weight:600;padding:.4rem .8rem;border:1px solid var(--color-primary);background-color:transparent;color:var(--color-primary);border-radius:6px;cursor:pointer;transition:all .2s ease}.quick-date-buttons button:hover{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-primary)}.add-transaction-container{padding:1.5rem;background-color:var(--color-background);border-radius:var(--border-radius);margin-top:-1rem;margin-bottom:2rem}.add-transaction-container h3{margin-bottom:1.5rem}.add-transaction-form-grid{display:grid;grid-template-columns:150px 1fr 150px 1fr;gap:1rem 1.5rem;align-items:flex-end}.add-transaction-form-grid .form-grid-span-2{grid-column:span 2}.add-transaction-form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.summary-card{background-color:var(--color-surface);padding:1.5rem;border-radius:var(--border-radius);box-shadow:var(--shadow);border-left:5px solid var(--color-secondary);transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease}.summary-card h4{font-size:1rem;color:var(--color-text-secondary);margin-bottom:.5rem;font-weight:600}.summary-card p{font-size:2rem;font-weight:700;line-height:1.2}.summary-card.income{border-left-color:var(--color-income)}.summary-card.income p{color:var(--color-income)}.summary-card.expense{border-left-color:var(--color-expense)}.summary-card.expense p{color:var(--color-expense)}.expense-breakdown-panel{background-color:var(--color-background);padding:2rem;border-radius:var(--border-radius);margin-bottom:2rem}.breakdown-list{display:flex;flex-direction:column;gap:1.25rem}.breakdown-item{display:grid;grid-template-columns:1fr auto;gap:.25rem 1rem;align-items:center}.breakdown-item-info{grid-column:1 / 2;display:flex;justify-content:space-between;align-items:center;font-size:.9rem;margin-bottom:.25rem}.breakdown-item-name{font-weight:600}.breakdown-item-percentage{color:var(--color-text-secondary)}.progress-bar-container{grid-column:1 / 2;height:8px;background-color:#eaeaea;border-radius:99px;overflow:hidden}.progress-bar{height:100%;background-color:var(--color-expense);border-radius:99px;transition:width .4s ease-out}.breakdown-item-amount{grid-column:2 / 3;grid-row:1 / 3;font-weight:700;font-size:1.1rem;text-align:right}.column-mapping-panel{margin-top:2rem}.column-selectors{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:1rem}.selector-group label{display:block;margin-bottom:.5rem;font-weight:600}.number-format-selector{margin:2rem 0;padding:1.5rem;border-radius:var(--border-radius);background-color:var(--color-background)}.number-format-selector h4{margin-bottom:1rem}.radio-group{display:flex;flex-direction:column;gap:1rem}.radio-group label{display:flex;align-items:center;gap:.75rem;cursor:pointer}.radio-group input[type=radio]{width:auto;accent-color:var(--color-secondary)}.preview-table-container{margin-top:2rem;margin-bottom:2rem}.staging-footer{display:flex;justify-content:space-between;align-items:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-border)}.transactions-table-container,.staging-table-container{overflow-x:auto;max-height:60vh;border:1px solid var(--color-border);border-radius:var(--border-radius)}table.transactions-table{width:100%;border-collapse:collapse}table.transactions-table th,table.transactions-table td{padding:.9rem 1.2rem;text-align:left;border-bottom:1px solid var(--color-border);transition:background-color .3s ease,border-color .3s ease}table.transactions-table th{background-color:var(--color-background);font-weight:600;position:sticky;top:0}table.transactions-table tbody tr:last-child td{border-bottom:none}table.transactions-table tbody tr:hover{background-color:var(--color-surface-hover)}table.transactions-table .income{color:var(--color-income)}table.transactions-table .expense{color:var(--color-expense)}table.transactions-table .ignored{background-color:#f8f8f8;color:#aaa}body.dark table.transactions-table .ignored{background-color:#2a3441;color:#6b7280}table.transactions-table .ignored td:not(:last-child){text-decoration:line-through}.table-input{width:100%;background-color:transparent;border:1px solid transparent;border-radius:6px;padding:.5rem .25rem;font-family:inherit;font-size:inherit;color:inherit;transition:all .2s ease}table.transactions-table td .table-input{padding:0}.table-input:focus{outline:none;background-color:var(--color-surface);border-color:var(--color-primary);box-shadow:0 0 0 2px #fde68a}.table-input[type=number]{-moz-appearance:textfield}.table-input[type=number]::-webkit-outer-spin-button,.table-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.categories-panel p{margin-bottom:2rem}.categories-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.category-column h3{margin-bottom:1.5rem}.add-category-form{display:flex;gap:.5rem;position:relative;margin-bottom:1.5rem}.add-category-form input{padding-right:3rem}.add-category-form button{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-secondary);padding:.5rem;border-radius:50%;transition:all .2s ease}.add-category-form button:hover{background-color:var(--color-background);color:var(--color-text-primary)}.category-list{display:flex;flex-direction:column;gap:1rem}.empty-state{text-align:center;padding:2rem;border-radius:var(--border-radius);background-color:var(--color-background);color:var(--color-text-secondary)}.empty-state p{margin-top:1rem}.category-card{border:1px solid var(--color-border);border-radius:var(--border-radius);background-color:var(--color-surface);transition:all .3s ease;border-left:4px solid transparent}.category-card.income{border-left-color:var(--color-income)}.category-card.expense{border-left-color:var(--color-expense)}.category-card-header{padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;border-radius:var(--border-radius);transition:background-color .2s ease}.category-card:hover .category-card-header{background-color:var(--color-surface-hover)}.category-card.editing .category-card-header{background-color:#f5f5f5;border-bottom-left-radius:0;border-bottom-right-radius:0}body.dark .category-card.editing .category-card-header{background-color:#374151}.category-card-header span{font-weight:600}.keyword-count{font-size:.8rem;font-weight:500;color:var(--color-text-secondary);margin-left:.5rem}.edit-icon-container{width:24px;height:24px;display:grid;place-items:center;color:var(--color-text-secondary)}.icon-crossfade{position:relative;width:18px;height:18px}.icon-wrapper{position:absolute;top:0;left:0;transition:opacity .3s ease}.icon-wrapper.edit-icon{opacity:1}.icon-wrapper.close-icon,.category-card.editing .icon-wrapper.edit-icon{opacity:0}.category-card.editing .icon-wrapper.close-icon{opacity:1}.category-card.editing .edit-icon-container:hover{color:var(--color-accent)}.category-card-body{max-height:0;overflow:hidden;transition:max-height .3s ease,padding .3s ease;padding:0 1.5rem}.category-card.editing .category-card-body{max-height:500px;padding:1.5rem;border-top:1px solid var(--color-border)}.keyword-manager p{font-weight:600;margin-bottom:1rem}.add-keyword-form{margin-bottom:1rem}.keyword-pills{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.keyword-pill{display:inline-flex;align-items:center;gap:.5rem;background-color:var(--color-background);padding:.25rem .75rem;border-radius:99px;font-size:.9rem}.keyword-pill button{background:none;border:none;cursor:pointer;display:grid;place-items:center;color:var(--color-text-secondary);padding:.25rem;border-radius:50%;transition:color .2s ease,background-color .2s ease}.keyword-pill button:hover{color:var(--color-accent);background-color:var(--color-accent-hover-bg)}.category-delete-btn{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end}.how-it-works-panel .intro-text{font-size:1.1rem;color:var(--color-text-secondary);text-align:center;max-width:80ch;margin:0 auto 3rem}.steps-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-bottom:3rem}.step-card{background-color:var(--color-background);padding:2rem 1.5rem;border-radius:var(--border-radius);text-align:center;border:1px solid var(--color-border)}.step-icon-container{width:60px;height:60px;margin:0 auto 1.5rem;background-color:var(--color-surface);border-radius:50%;display:grid;place-items:center;color:var(--color-accent);box-shadow:0 0 0 8px var(--color-background)}.step-card h3{margin-bottom:.5rem}.step-card p{font-size:.95rem;color:var(--color-text-secondary);max-width:35ch;margin:0 auto}.privacy-note{margin-top:3rem;display:flex;gap:1.5rem;align-items:center;background-color:var(--color-background);padding:1.5rem;border-radius:var(--border-radius);color:var(--color-text-secondary)}.privacy-note svg{flex-shrink:0;width:32px;height:32px}.privacy-note h4{margin-bottom:.25rem;color:var(--color-text-primary)}.theme-toggle{display:flex;align-items:center;gap:.5rem;color:var(--color-text-secondary)}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:34px}.slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--color-secondary)}input:checked+.slider:before{transform:translate(20px)}.export-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:grid;place-items:center;z-index:100}.export-modal-content{background-color:var(--color-surface);padding:1.5rem;border-radius:var(--border-radius);width:90%;max-width:600px;display:flex;flex-direction:column;gap:1rem}.export-modal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border);padding-bottom:1rem}.export-modal-body{max-height:70vh;overflow-y:auto}.report-preview-container{padding:2rem;border:1px dashed var(--color-border);border-radius:var(--border-radius);background-color:var(--color-background)}.report-header{text-align:center;margin-bottom:2rem}.report-header h2{margin-bottom:.25rem}.report-header span{font-size:.9rem;color:var(--color-text-secondary)}.report-summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.report-summary-card{text-align:center;padding:1rem;background-color:var(--color-surface);border-radius:var(--border-radius)}.report-summary-card h4{margin-bottom:.5rem;font-size:.9rem;color:var(--color-text-secondary)}.report-summary-card p{font-weight:700;font-size:1.5rem}.report-summary-card p.income{color:var(--color-income)}.report-summary-card p.expense{color:var(--color-expense)}.report-breakdown{margin-top:2rem}.report-breakdown h3{text-align:center;margin-bottom:1.5rem}.report-breakdown-list{display:flex;flex-direction:column;gap:1rem}.report-breakdown-item{font-size:.9rem}.report-breakdown-info{display:flex;justify-content:space-between;margin-bottom:.25rem}.report-progress-bar-container{height:6px;background-color:#eaeaea;border-radius:99px;overflow:hidden}.report-progress-bar{height:100%;background-color:var(--color-expense);border-radius:99px}.export-modal-footer{display:flex;justify-content:flex-end;gap:1rem;border-top:1px solid var(--color-border);padding-top:1.5rem}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:2rem}.dashboard-charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem}.pie-chart-panel{display:flex;flex-direction:column;gap:1.5rem}.pie-chart-container{display:flex;align-items:center;justify-content:center;gap:2rem;flex-wrap:wrap}.pie-chart-svg{width:200px;height:200px;transform:rotate(-90deg);border-radius:50%}.pie-chart-slice{fill:none;stroke-width:32;transition:stroke-dashoffset .5s ease-out}.pie-chart-legend{list-style:none;display:flex;flex-direction:column;gap:.75rem;max-width:250px}.legend-item{display:flex;align-items:center;font-size:.9rem}.legend-color-box{width:14px;height:14px;border-radius:4px;margin-right:.75rem;flex-shrink:0}.legend-info{display:flex;justify-content:space-between;width:100%;gap:1rem}.legend-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend-percentage{font-weight:600;color:var(--color-text-secondary);flex-shrink:0}@media(max-width:1024px){.header-nav-container{flex-direction:column;align-items:flex-start;gap:.5rem}}@media(max-width:768px){.welcome-container{grid-template-columns:1fr;padding:2rem;text-align:center}.welcome-logo-main{max-width:150px;margin-bottom:1rem}.welcome-card{text-align:center}.instructions-list{text-align:left}.session-actions{flex-direction:column}.app-header{padding:0 1rem}.app-content{padding:1rem}.panel{padding:1.5rem}.filters-container{flex-direction:column;align-items:stretch}.filter-actions{justify-content:center}.add-transaction-form-grid{grid-template-columns:1fr}.add-transaction-form-grid .form-grid-span-2{grid-column:span 1}.categories-grid,.dashboard-charts-grid{grid-template-columns:1fr}table.transactions-table thead{display:none}table.transactions-table tr{display:block;margin-bottom:1rem;border:1px solid var(--color-border);border-radius:var(--border-radius);overflow:hidden}table.transactions-table td{display:block;text-align:right;border-bottom:1px solid var(--color-border);padding-left:50%;position:relative}table.transactions-table td:last-child{border-bottom:none}table.transactions-table td:before{content:attr(data-label);position:absolute;left:1.2rem;font-weight:600;text-align:left}.pie-chart-container{flex-direction:column}}
