*{margin:0;padding:0;box-sizing:border-box}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-color:#f5f5f5;color:#2c3e50;line-height:1.6}a{color:#3498db;text-decoration:none}a:hover{text-decoration:underline}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@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}.read-the-docs{color:#888}.dashboard{max-width:1200px;margin:0 auto}.dashboard-content,.savings-charts-container{display:flex;flex-direction:column;gap:1.5rem}@media(min-width:1024px){.savings-charts-container{flex-direction:row}.savings-chart-item{flex:1;min-width:0}}.dashboard-header h1{margin:0;color:#0f172a;font-size:2.1rem;font-weight:700}.greeting-subline{display:block;font-size:1.05rem;font-weight:500;color:#334155;margin-top:.35rem}.fun-spotlight{display:flex;align-items:flex-start;gap:1rem;background:linear-gradient(135deg,#6366f114,#2dd4bf14);border:1px solid rgba(99,102,241,.18);border-radius:18px;padding:1.25rem 1.5rem;margin-bottom:1.5rem;box-shadow:0 12px 32px #0f172a14;position:relative;overflow:hidden}.fun-spotlight:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right,rgba(45,212,191,.18),transparent 60%);opacity:.8;pointer-events:none}.fun-spotlight-icon{font-size:2.5rem;filter:drop-shadow(0 6px 12px rgba(79,70,229,.25));animation:spotlight-bounce 3s ease-in-out infinite}.fun-spotlight-body{display:flex;flex-direction:column;gap:.45rem;position:relative;z-index:1}.fun-spotlight-title{font-weight:700;font-size:1.1rem;color:#1e293b;letter-spacing:-.01em}.fun-spotlight-text{font-size:.98rem;line-height:1.5;color:#334155}.fun-spotlight-visual{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}.fun-spotlight-image-button{border:none;background:transparent;padding:0;cursor:zoom-in;border-radius:16px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.fun-spotlight-image-button:focus-visible{outline:3px solid rgba(59,130,246,.6);outline-offset:4px}.fun-spotlight-image-button:hover{transform:translateY(-2px);box-shadow:0 18px 30px #1e40af26}.fun-spotlight-illustration{width:min(320px,90%);border-radius:16px;box-shadow:0 10px 20px #1e40af2e}.fun-spotlight-caption{font-size:.85rem;color:#475569;font-style:italic}.fun-spotlight-meta{font-size:.78rem;text-transform:uppercase;letter-spacing:.18em;color:#64748b}.fun-spotlight-overlay{position:fixed;inset:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:1200;padding:2rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.fun-spotlight-modal{background:#fff;border-radius:18px;padding:1.75rem;box-shadow:0 20px 80px #0f172a59;max-width:min(90vw,720px);max-height:90vh;overflow:auto;position:relative;display:flex;flex-direction:column;gap:1rem}.fun-spotlight-modal-close{position:absolute;top:1rem;right:1rem;background:#0f172a14;color:#0f172a;border:none;border-radius:999px;width:40px;height:40px;font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease,transform .2s ease}.fun-spotlight-modal-close:hover{background:#0f172a29;transform:scale(1.05)}.fun-spotlight-modal-close:focus-visible{outline:3px solid rgba(59,130,246,.6);outline-offset:3px}.fun-spotlight-modal-image{width:100%;height:auto;border-radius:14px;box-shadow:0 16px 40px #0f172a33}.fun-spotlight-modal-meta h3{margin:0;font-size:1.2rem;color:#1e293b}.fun-spotlight-modal-meta p{margin:.4rem 0 0;color:#475569;font-size:.95rem}.weather-card{background:linear-gradient(135deg,#111827,#1e293b);color:#f8fafc;border-radius:18px;padding:1.25rem 1.5rem;box-shadow:0 20px 40px #0f172a59;display:flex;flex-direction:column;gap:.9rem}.weather-top{display:flex;flex-wrap:wrap;gap:1rem;padding-bottom:.35rem;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:.25rem}.weather-current{display:flex;flex-direction:column;gap:.5rem;flex:1;min-width:240px}.weather-location{display:flex;align-items:center;gap:.35rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:#38bdf8;font-size:.85rem}.weather-main{display:flex;align-items:baseline;gap:1.25rem}.weather-temp{font-size:3rem;font-weight:700;letter-spacing:-.07em}.weather-details{display:flex;flex-direction:column;gap:.25rem}.weather-description{font-size:1.1rem;font-weight:500;display:flex;align-items:center;gap:.35rem}.weather-meta{display:flex;gap:1rem;font-size:.95rem;color:#cbd5f5}.weather-updated{font-size:.8rem;color:#94a3b8}.weather-daily{display:flex;flex-wrap:wrap;gap:.75rem;padding-top:.1rem;background:#080f1ebf;border-radius:14px;padding:.65rem;box-shadow:inset 0 1px 6px #00000059}.weather-day-chip{flex:1;min-width:140px;background:#161f32a6;border:1px solid rgba(148,163,184,.25);border-radius:14px;padding:.75rem;display:flex;flex-direction:column;gap:.3rem;font-size:.85rem}.weather-day-label{font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:#bae6fd}.weather-day-desc{color:#cbd5f5;display:flex;align-items:center;gap:.35rem}.weather-day-temps{display:flex;gap:.5rem;font-weight:600}.weather-day-max{color:#f8fafc}.weather-day-min{color:#94a3b8}.weather-day-rain{font-size:.78rem;color:#93c5fd}.weather-hourly{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.4rem;flex:1.2;min-width:280px}.weather-hour-chip{background:#0f172a73;border:1px solid rgba(148,163,184,.3);border-radius:14px;padding:.75rem;display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;min-height:100px}.weather-icon{font-size:2.2rem;color:#f8fafc}.weather-day-icon{font-size:1.4rem;color:#f1f5f9}.weather-hour-icon .weather-icon-small{font-size:1.4rem}.weather-hour-icon{display:flex;align-items:center}.weather-icon-small{font-size:1.4rem;color:#e0f2fe}.weather-hour-time{font-weight:600;letter-spacing:.05em;color:#bae6fd}.weather-hour-temp{font-size:1.2rem;font-weight:600}.weather-hour-desc{color:#cbd5f5}.weather-hour-rain{font-size:.8rem;color:#93c5fd}.weather-hour-precip{font-size:.78rem;color:#e0f2fe}.dashboard-alerts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem}.alert-card{background:#fff;border-radius:10px;padding:1.2rem 1.4rem;box-shadow:0 1px 3px #0f172a14;border-left:4px solid #2ecc71;display:flex;flex-direction:column;gap:.75rem;min-height:210px}.alert-card.ok{border-color:#2ecc71}.alert-card.warn{border-color:#f39c12;background:linear-gradient(135deg,#f39c1214,#f39c1205)}.alert-card.alert{border-color:#e74c3c;background:linear-gradient(135deg,#e74c3c1a,#e74c3c08)}.alert-card.neutral{border-color:#3498db;background:linear-gradient(135deg,#3498db14,#3498db05)}.alert-header{display:flex;align-items:center;gap:.6rem;font-weight:600;color:#2c3e50}.alert-icon{font-size:1.3rem}.alert-title{font-size:.95rem;letter-spacing:.01em}.alert-value{font-size:2rem;font-weight:700;color:#1f7a3f}.alert-card.warn .alert-value{color:#d35400}.alert-card.alert .alert-value{color:#c0392b}.alert-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;flex:1}.alert-list li{display:grid;grid-template-columns:auto 1fr;gap:.5rem .75rem;align-items:baseline;font-size:.85rem;color:#2c3e50}.alert-item-date{font-weight:600;color:#34495e;white-space:nowrap}.alert-item-amount{font-weight:600}.alert-item-desc{grid-column:1 / -1;color:#34495e}.transaction-link-button{background:none;border:none;padding:0;margin:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:#3b82f659}.transaction-link-button:hover{color:#2563eb;text-decoration-color:#2563eb}.alert-item-meta{grid-column:1 / -1;color:#7f8c8d;font-size:.8rem}.import-history{grid-column:1 / -1;display:flex;flex-direction:column;gap:.2rem;margin-top:.25rem}.import-history-label{font-size:.78rem;color:#546e7a;margin-right:.4rem}.import-history-entry{display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;color:#1f2a37}.import-history-missing{font-size:.78rem;color:#b0b8c1}.import-badge{display:inline-flex;align-items:center;padding:.1rem .45rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.import-badge.type-pdf{background:#3498db26;color:#1b6ca8}.import-badge.type-csv{background:#2ecc712e;color:#185c34}.import-badge.type-unknown{background:#95a5a640;color:#455a64}.import-history-date{font-weight:600;color:#1f2a37}.alert-explanation{font-size:.875rem;color:#64748b;line-height:1.5;margin:.5rem 0;padding:.75rem;background:#94a3b814;border-radius:8px;border-left:3px solid #94a3b8}.alert-empty{margin:0;color:#7f8c8d;font-size:.85rem}.alert-link{align-self:flex-start;margin-top:auto;font-size:.85rem;font-weight:600;color:#1f7a3f;text-decoration:none;padding:.25rem .4rem;border-radius:4px;transition:background .2s ease,color .2s ease}.alert-meta{font-size:.8rem;color:#7f8c8d}.health-banner{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;border-radius:10px;background:linear-gradient(135deg,#2ecc711f,#2ecc710d);border:1px solid rgba(46,204,113,.2)}.health-banner .health-icon{font-size:2rem}.health-banner .health-info{display:flex;flex-direction:column;gap:.2rem}.health-banner .health-title{font-weight:700;color:#2c3e50;font-size:1rem}.health-banner .health-message{color:#34495e;font-size:.9rem}.health-banner.status-partly_cloudy{background:linear-gradient(135deg,#f1c40f26,#f1c40f0d);border-color:#f1c40f40}.health-banner.status-rainy{background:linear-gradient(135deg,#3498db26,#3498db0d);border-color:#3498db40}.health-banner.status-stormy{background:linear-gradient(135deg,#e74c3c2e,#e74c3c14);border-color:#e74c3c59}.alert-card.warn .alert-link{color:#d35400}.alert-card.alert .alert-link{color:#c0392b}.alert-link:hover{background:#2ecc711f}.alert-card.warn .alert-link:hover{background:#f39c121f}.alert-card.alert .alert-link:hover{background:#e74c3c1f}.dashboard-section{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.dashboard-top{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1.5rem}.dashboard-widget{flex:1 1 280px;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 1px 3px #0f172a14;min-width:260px}.dashboard-widget .widget-title{font-size:.95rem;font-weight:600;color:#34495e;margin-bottom:.75rem}.dashboard-widget .widget-amount{font-size:1.75rem;font-weight:700;margin-bottom:.35rem}.dashboard-widget .widget-caption{font-size:.85rem;color:#7f8c8d}.accounts-card{padding-right:1rem}.accounts-grouped{display:flex;flex-direction:column;gap:1.25rem}.account-group{display:flex;flex-direction:column;gap:.5rem}.account-group-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:#0f172a08;border-radius:6px;border-left:3px solid #3498db;margin-bottom:.25rem}.account-group-title{font-weight:600;font-size:.95rem;color:#2c3e50}.account-group-subtotal{font-weight:700;font-size:1rem;font-variant-numeric:tabular-nums}.account-group-subtotal.positive{color:#27ae60}.account-group-subtotal.negative{color:#e74c3c}.account-group-loan .account-group-header{border-left-color:#e67e22;background:#e67e220d}.account-row-loan .account-amount.loan{color:#e67e22;font-weight:700}.accounts-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.account-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.95rem;padding-left:.5rem}.account-name-link{text-decoration:none;color:inherit;flex:1;transition:color .2s}.account-name-link:hover{color:#3498db}.account-name-link:hover .account-name{text-decoration:underline}.account-name{color:#2c3e50;font-weight:500;display:flex;align-items:center;gap:.5rem;cursor:pointer}.account-badge{display:inline-flex;align-items:center;padding:.15rem .4rem;border-radius:999px;background:#f5f0ff;color:#5a31d5;font-size:.75rem;font-weight:600}.account-amount{font-variant-numeric:tabular-nums;font-weight:600}.account-amount.positive{color:#27ae60}.account-amount.negative{color:#e74c3c}.account-amount.loan{color:#e67e22}.net-worth-card .widget-amount{font-size:2rem}.dashboard-section h2{margin-top:0;color:#34495e}.table{width:100%;border-collapse:collapse;margin-top:1rem}.loading,.error{text-align:center;padding:2rem;font-size:1.2rem}.category-deviations-section{width:100%;margin-top:1.5rem;padding:1rem;background:#fff;border-radius:10px;box-shadow:0 2px 8px #00000014;border:1px solid rgba(0,0,0,.06)}.category-deviations-header{display:flex;flex-direction:column;gap:.3rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #e9ecef}.category-deviations-icon{font-size:1.4rem;margin-bottom:.15rem}.category-deviations-title{font-size:1.1rem;font-weight:700;color:#1f2d3d;letter-spacing:-.01em}.category-deviations-subtitle{font-size:.8rem;color:#6c757d;font-weight:500}.category-deviations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.category-deviation-card{background:#fff;border-radius:8px;padding:.75rem;border:2px solid;box-shadow:0 1px 4px #0000000f;transition:transform .2s ease,box-shadow .2s ease}.category-deviation-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.category-deviation-card.positive{border-color:#27ae6066;background:linear-gradient(135deg,#27ae600d,#27ae6005)}.category-deviation-card.negative{border-color:#e74c3c66;background:linear-gradient(135deg,#e74c3c0d,#e74c3c05)}.category-deviation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;gap:.5rem}.category-deviation-badge{flex:1;padding:.35rem .5rem;border-radius:4px;color:#fff;font-weight:600;font-size:.75rem;text-align:center;box-shadow:0 1px 2px #00000026;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-deviation-trend{font-size:.85rem;font-weight:700;padding:.25rem .45rem;border-radius:4px;white-space:nowrap}.category-deviation-trend.positive{color:#1e7b4d;background:#27ae6026}.category-deviation-trend.negative{color:#a93226;background:#e74c3c26}.category-deviation-content{display:flex;flex-direction:column;gap:.5rem}.category-deviation-amounts{display:flex;flex-direction:column;gap:.4rem}.category-deviation-current,.category-deviation-average{display:flex;justify-content:space-between;align-items:center;padding:.2rem 0}.category-deviation-label{font-size:.7rem;color:#6c757d;font-weight:500}.category-deviation-value{font-size:.9rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.category-deviation-value.positive{color:#27ae60}.category-deviation-value.negative{color:#e74c3c}.category-deviation-value.neutral{color:#2c3e50}.category-deviation-delta{padding:.5rem;border-radius:6px;text-align:center;font-weight:700;border:2px solid}.category-deviation-delta.positive{background:#27ae601a;border-color:#27ae604d;color:#1e7b4d}.category-deviation-delta.negative{background:#e74c3c1a;border-color:#e74c3c4d;color:#a93226}.category-deviation-delta-label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;opacity:.8}.category-deviation-delta-value{display:block;font-size:1rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ai-charts-gallery{padding:20px 0;width:100%;max-width:100%;box-sizing:border-box;position:relative}.charts-section{margin-bottom:50px;clear:both;position:relative;display:block;width:100%;max-width:100%;box-sizing:border-box;overflow:visible}.projection-section{margin-top:60px;padding-top:40px;border-top:2px solid #e9ecef;clear:both;display:block;width:100%;max-width:100%;box-sizing:border-box;overflow:visible}.charts-section h2{color:#2c3e50;margin-bottom:30px;font-size:1.8em;border-bottom:3px solid #667eea;padding-bottom:10px}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:30px;margin-bottom:30px;width:100%;max-width:100%;box-sizing:border-box;position:relative}.charts-grid-full{grid-template-columns:1fr}.cumulative-savings-chart{max-width:800px;margin:0 auto}.charts-section .chart-container{width:100%;margin-bottom:30px}.charts-stack{display:flex;flex-direction:column;gap:40px;margin-bottom:30px;width:100%;max-width:100%;box-sizing:border-box;position:relative}.charts-stack>*{flex-shrink:0;width:100%;max-width:100%;box-sizing:border-box}.charts-stack .chart-container{width:100%;max-width:100%;position:relative;overflow:visible;box-sizing:border-box;margin-left:0;margin-right:0}.charts-stack .chart-container.chart-large{height:800px;max-height:800px!important;overflow:hidden!important;position:relative;display:flex;flex-direction:column;box-sizing:border-box}.charts-vertical .charts-grid{display:flex;flex-direction:column;gap:30px}.charts-stack .chart-container:not(.chart-large),.charts-vertical .chart-container:not(.chart-large){overflow:visible}.chart-container{background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 12px #00000014;transition:transform .2s,box-shadow .2s;overflow:visible;min-height:480px;width:100%;max-width:100%;box-sizing:border-box;position:relative;display:block;margin-left:0;margin-right:0}.chart-container:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000001f}.chart-container h3{color:#2c3e50;margin-top:0;margin-bottom:15px;font-size:1.2em;display:flex;align-items:center;gap:8px;flex-shrink:0}.chart-container.chart-large h3{margin-bottom:10px}.chart-description{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-left:4px solid #667eea;border-radius:0 8px 8px 0;padding:12px 16px;margin-bottom:20px;font-size:.9em;flex-shrink:0}.chart-container.chart-large .chart-description{margin-bottom:12px;padding:10px 14px}.chart-description-header{display:flex;align-items:center;gap:8px;margin-bottom:6px;color:#2c3e50}.chart-description-icon{font-size:1.1em}.chart-description-header strong{font-weight:600}.chart-description-text{color:#495057;margin:0 0 8px;line-height:1.5}.chart-description-action{color:#28a745;margin:0;font-weight:500;display:flex;align-items:flex-start;gap:6px}.chart-description-action .action-label{white-space:nowrap}.budget-table-container{height:auto;min-height:400px;max-height:600px;overflow:hidden;display:flex;flex-direction:column;width:100%!important;min-width:100%!important}.budget-table-container>h3{flex-shrink:0}.budget-table-container .chart-description{flex-shrink:0}.budget-table-section{margin-bottom:25px;overflow-x:visible;overflow-y:visible;width:100%!important;min-width:100%!important}.budget-table-section:last-child{margin-bottom:0}.budget-table-section h4{margin:0 0 12px;font-size:1.1em;color:#2c3e50;font-weight:600;padding-bottom:8px;border-bottom:2px solid #e9ecef}.budget-table-section.expenses-section h4{border-bottom-color:#dc3545}.budget-table-section.incomes-section h4{border-bottom-color:#28a745}.budget-comparison-table{width:100%!important;min-width:100%!important;border-collapse:collapse!important;font-size:.9em;table-layout:fixed!important;border-spacing:0!important;display:table!important}.budget-comparison-table th:nth-child(1),.budget-comparison-table td:nth-child(1){width:35%!important;max-width:35%!important;min-width:35%!important;padding:10px 12px!important;box-sizing:border-box;overflow:hidden}.budget-comparison-table th:nth-child(2),.budget-comparison-table td:nth-child(2){width:15%!important;max-width:15%!important;min-width:15%!important;padding:10px 12px!important;text-align:right!important;box-sizing:border-box;overflow:hidden}.budget-comparison-table th:nth-child(3),.budget-comparison-table td:nth-child(3){width:15%!important;max-width:15%!important;min-width:15%!important;padding:10px 12px!important;text-align:right!important;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.budget-comparison-table th:nth-child(4),.budget-comparison-table td:nth-child(4){width:20%!important;max-width:20%!important;min-width:20%!important;padding:10px 12px!important;text-align:right!important;box-sizing:border-box;overflow:hidden}.budget-comparison-table th:nth-child(5),.budget-comparison-table td:nth-child(5){width:15%!important;max-width:15%!important;min-width:15%!important;padding:10px 12px!important;text-align:center!important;box-sizing:border-box;overflow:hidden}.budget-table-wrapper{width:100%!important;min-width:100%!important;overflow-x:visible!important;overflow-y:visible;border-radius:8px;display:block!important}.budget-tables-wrapper{flex:1;display:flex;flex-direction:column;overflow-y:auto;overflow-x:visible;min-height:0;max-height:500px;padding-right:5px;width:100%!important;min-width:100%!important}.budget-tables-wrapper::-webkit-scrollbar{width:6px}.budget-tables-wrapper::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.budget-tables-wrapper::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.budget-tables-wrapper::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.budget-comparison-table th{background:#f8f9fa;font-weight:600;color:#495057;border-bottom:2px solid #dee2e6;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.budget-comparison-table td{border-bottom:1px solid #e9ecef;vertical-align:middle;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap}.budget-comparison-table tr:hover{background:#f8f9fa}.budget-comparison-table .category-cell{font-weight:500;color:#2c3e50;word-wrap:break-word;overflow-wrap:break-word;white-space:normal;line-height:1.4}.budget-comparison-table .amount-cell{font-family:SF Mono,Monaco,monospace;color:#495057}.budget-comparison-table .amount-cell.suggested{font-weight:600;color:#2c3e50}.budget-comparison-table .ecart-cell{font-weight:600;font-family:SF Mono,Monaco,monospace}.budget-comparison-table .ecart-cell.positive{color:#28a745}.budget-comparison-table .ecart-cell.negative{color:#dc3545}.budget-comparison-table .ecart-pct{display:block;font-size:.8em;font-weight:400;opacity:.8}.budget-comparison-table td>*,.budget-comparison-table th>*{max-width:100%;overflow:hidden;box-sizing:border-box}.action-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:12px;font-size:.85em;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-badge.augmenter{background:#fff3cd;color:#856404}.action-badge.diminuer{background:#d4edda;color:#155724}.action-badge.maintenir{background:#e9ecef;color:#495057}@media(max-width:700px){.budget-comparison-table{font-size:.8em}.budget-comparison-table th,.budget-comparison-table td{padding:8px 6px!important}.budget-comparison-table .category-cell{max-width:100px}.action-badge{padding:3px 6px;font-size:.75em}}.recharts-tooltip-wrapper{outline:none;z-index:1000!important;pointer-events:none}.chart-container .recharts-wrapper{overflow:visible!important}.chart-container{position:relative;overflow:visible!important}.chart-container.chart-large{overflow:hidden!important}.chart-container .recharts-surface{overflow:visible}.recharts-default-tooltip{background:#fffffffa!important;border:1px solid #dee2e6!important;border-radius:8px!important;box-shadow:0 4px 12px #00000026!important;padding:12px!important;z-index:1001!important}.recharts-tooltip-label{color:#2c3e50!important;font-weight:600!important;margin-bottom:8px!important}.recharts-tooltip-item{color:#495057!important;font-size:.95em!important}.recharts-legend-wrapper{padding-top:10px!important;position:relative!important;bottom:auto!important}.chart-container.pie-chart{padding-bottom:40px;min-height:480px}.chart-container.chart-pie-large{min-height:520px;padding-bottom:50px}.recharts-legend-item{margin-right:15px!important}.recharts-legend-item-text{color:#495057!important;font-size:.95em!important;font-weight:500!important}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chart-container{animation:fadeInUp .5s ease-out}.recharts-cartesian-axis-tick-value{fill:#6c757d;font-size:.85em}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:#e9ecef}.chart-loading{display:flex;justify-content:center;align-items:center;height:300px;color:#6c757d}.chart-loading:after{content:"";width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@media(max-width:768px){.charts-grid{grid-template-columns:1fr;gap:20px}.chart-container{padding:20px 15px}.chart-container h3{font-size:1.1em}.charts-section h2{font-size:1.5em}.recharts-wrapper{font-size:12px}.recharts-legend-wrapper{font-size:.85em}}@media(max-width:480px){.charts-grid{gap:15px}.chart-container{padding:15px 10px}.chart-container h3{font-size:1em}.charts-section h2{font-size:1.3em}.recharts-wrapper{font-size:11px}}.chart-container:focus{outline:2px solid #667eea;outline-offset:2px}.chart-empty{display:flex;flex-direction:column;justify-content:center;align-items:center;height:250px;color:#6c757d;background:#f8f9fa;border-radius:8px;border:2px dashed #dee2e6}.chart-empty-icon{font-size:3em;margin-bottom:15px;opacity:.5}.chart-empty-text{font-size:1.1em;font-weight:500}.recharts-bar-rectangle{transition:opacity .3s}.recharts-bar-rectangle:hover{opacity:.8}.recharts-area{transition:opacity .3s}.recharts-area:hover{opacity:.9}.recharts-line{transition:stroke-width .3s}.recharts-line:hover{stroke-width:3px!important}.recharts-pie-sector{transition:transform .3s;transform-origin:center}.recharts-pie-sector:hover{transform:scale(1.05);filter:brightness(1.1);cursor:pointer}.recharts-pie-label-text{font-size:.85em;font-weight:600;fill:#2c3e50}.recharts-cartesian-grid{opacity:.5}.recharts-dot{transition:r .3s}.recharts-dot:hover{r:8!important}.chart-container.full-width,.chart-container.chart-large{grid-column:1 / -1}.comparison-chart{margin-bottom:12px;padding:8px;background:#fafbfc;border-radius:10px;border:1px solid #e9ecef;height:185px!important;max-height:185px!important;position:relative;overflow:hidden!important;display:flex;flex-direction:column;flex-shrink:0;box-sizing:border-box;width:100%;max-width:100%}.comparison-chart:last-child{margin-bottom:0}.comparison-chart h4{margin:0 0 6px;font-size:.95em;color:#495057;font-weight:600;height:20px;flex-shrink:0;line-height:20px}.comparison-chart .recharts-responsive-container{height:160px!important;max-height:160px!important;width:100%!important;max-width:100%!important;flex:0 0 160px;overflow:hidden!important;box-sizing:border-box;position:relative}.comparison-chart .recharts-wrapper{position:relative!important}.comparison-chart .recharts-legend-wrapper{bottom:0!important;font-size:.8em!important}.year-legend{display:flex;gap:20px;justify-content:center;margin-bottom:15px;padding:10px;background:#f8f9fa;border-radius:8px}.year-legend-item{display:flex;align-items:center;gap:8px;font-size:.9em;font-weight:500}.year-legend-item .line-solid{width:20px;height:3px;border-radius:2px}.year-legend-item .line-dashed{width:20px;height:0;border-top:2px dashed;opacity:.6}.recharts-bar-rectangles{cursor:pointer}.chart-container:before{content:"";position:absolute;inset:0;border-radius:12px;border:2px solid transparent;transition:border-color .3s;pointer-events:none}.chart-container:hover:before{border-color:#667eea}.chart-insight{background:linear-gradient(135deg,#fff9e6,#fff3cd);padding:12px 16px;border-radius:8px;margin-top:15px;border-left:4px solid #ffc107;font-size:.95em;color:#856404;line-height:1.6}.chart-insight strong{color:#664d03}@media(prefers-color-scheme:dark){.chart-container{background:#2d3748;color:#e2e8f0}.chart-container h3{color:#e2e8f0}.recharts-cartesian-axis-tick-value{fill:#a0aec0}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:#4a5568}.recharts-default-tooltip{background:#2d3748fa!important;border-color:#4a5568!important}.recharts-tooltip-label{color:#e2e8f0!important}.recharts-tooltip-item,.recharts-legend-item-text{color:#cbd5e0!important}}.budget-projection-container{min-height:500px;max-height:800px;width:100%;max-width:100%;margin:0 auto;padding:20px;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;position:relative;display:block;clear:both;background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014;outline:none;border:none}.budget-projection-container h3{color:#2c3e50;margin-bottom:25px;font-size:1.8em;border-bottom:3px solid #667eea;padding-bottom:10px;font-weight:600}.projection-description{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-left:4px solid #667eea;border-radius:0 8px 8px 0;padding:12px 16px;margin-bottom:20px;font-size:.9em;width:100%;max-width:100%;box-sizing:border-box;overflow-wrap:break-word;word-wrap:break-word}.projection-description p{margin:0 0 8px;line-height:1.5}.projection-description p:last-child{margin-bottom:0}.projection-description strong{color:#2c3e50}.inflation-control{margin-bottom:20px;padding:15px;background:#f8f9fa;border-radius:8px;border:1px solid #dee2e6;width:100%;max-width:100%;box-sizing:border-box}.inflation-control label{display:flex;align-items:center;gap:10px;font-weight:500;color:#495057}.inflation-control input[type=number]{width:80px;padding:6px 10px;border:1px solid #ced4da;border-radius:4px;font-size:.95em}.inflation-percent{color:#667eea;font-weight:600}.projection-summary{display:flex;gap:20px;margin-bottom:25px;padding:15px;background:#f8f9fa;border-radius:8px;flex-wrap:wrap;width:100%;max-width:100%;box-sizing:border-box;contain:layout}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-label{font-size:.85em;color:#6c757d;font-weight:500}.summary-value{font-size:1.2em;font-weight:600;color:#2c3e50;font-family:SF Mono,Monaco,monospace}.summary-value.projected{color:#667eea}.summary-value.exceptional{color:#dc3545}.summary-value.adjusted{color:#28a745}.projections-list{margin-bottom:25px;width:100%;max-width:100%;box-sizing:border-box;overflow-x:auto;overflow-y:visible;position:relative;contain:layout}.projections-list h4{margin:0 0 15px;font-size:1.1em;color:#2c3e50;font-weight:600}.projections-table-wrapper{width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;margin-bottom:20px;box-sizing:border-box;position:relative;border-radius:8px;border:1px solid #e9ecef;display:block;clear:both;contain:layout}.projections-table{width:100%;max-width:100%;border-collapse:collapse;table-layout:fixed;box-sizing:border-box;margin:0;font-size:.9em;word-wrap:break-word;overflow-wrap:break-word}.projections-table th{background:#f8f9fa;padding:12px;text-align:left;font-weight:600;color:#495057;border-bottom:2px solid #dee2e6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box}.projections-table th:nth-child(2),.projections-table th:nth-child(3),.projections-table th:nth-child(4),.projections-table th:nth-child(5){text-align:right}.projections-table td{padding:10px 12px;border-bottom:1px solid #e9ecef;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;word-wrap:break-word;overflow-wrap:break-word}.projections-table tr:hover{background:#f8f9fa}.projections-table .category-name{font-weight:500;color:#2c3e50;display:flex;align-items:center;gap:8px}.type-badge{font-size:.75em;padding:2px 6px;border-radius:4px;font-weight:500}.type-badge.income{background:#d4edda;color:#155724}.projections-table .amount{text-align:right;font-family:SF Mono,Monaco,monospace;color:#495057}.projections-table .amount.projected{color:#667eea;font-weight:600}.profile-months{text-align:center;font-size:.85em;width:100%;max-width:100%;box-sizing:border-box;overflow-wrap:break-word;word-wrap:break-word}.profile-badge{display:inline-block;padding:4px 8px;background:#d1ecf1;color:#0c5460;border-radius:4px;font-size:.85em;font-weight:500;margin-bottom:4px}.profile-detail{display:block;color:#6c757d;font-size:.75em;margin-top:2px;font-style:italic}.pattern-badge{font-size:.75em;padding:2px 6px;border-radius:4px;font-weight:500;margin-left:6px}.pattern-badge.recurring{background:#d4edda;color:#155724}.exceptional-months{text-align:center}.exceptional-badge{display:inline-block;padding:4px 8px;background:#fff3cd;color:#856404;border-radius:4px;font-size:.85em;font-weight:500}.no-exceptional{color:#6c757d;font-style:italic;font-size:.9em}.initialization-section{margin-top:30px;padding-top:25px;border-top:2px solid #e9ecef;text-align:center;width:100%;max-width:100%;box-sizing:border-box;clear:both;display:block}.initialize-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:14px 28px;border-radius:8px;font-size:1em;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px #667eea4d;width:auto;max-width:100%;box-sizing:border-box;display:inline-block}.initialize-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.initialize-button:disabled{opacity:.6;cursor:not-allowed}.success-message{margin-top:15px;padding:12px;background:#d4edda;color:#155724;border-radius:6px;border:1px solid #c3e6cb;font-weight:500}.success-message small{display:block;margin-top:4px;font-size:.85em;opacity:.8}.error-message{margin-top:15px;padding:12px;background:#f8d7da;color:#721c24;border-radius:6px;border:1px solid #f5c6cb;font-weight:500}.loading-message,.empty-message{text-align:center;padding:40px 20px;color:#6c757d;font-size:1em}.error-message{text-align:center;padding:40px 20px;color:#dc3545;font-size:1em}.projection-options-summary{margin-bottom:25px;padding:20px;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden;contain:layout}.projection-options-summary h4{margin:0 0 20px;font-size:1.1em;color:#2c3e50;font-weight:600}.options-list{display:flex;flex-direction:column;gap:20px;width:100%;max-width:100%;box-sizing:border-box}.option-item{display:flex;gap:15px;padding:15px;background:#fff;border-radius:6px;border-left:4px solid #667eea;width:100%;max-width:100%;box-sizing:border-box;overflow-wrap:break-word;word-wrap:break-word}.option-item.info{border-left-color:#17a2b8;background:#e7f3f5}.option-icon{font-size:1.5em;flex-shrink:0;line-height:1}.option-content{flex:1;min-width:0;overflow-wrap:break-word;word-wrap:break-word}.option-content strong{display:block;margin-bottom:6px;color:#2c3e50;font-size:1em}.option-content p{margin:0;color:#6c757d;font-size:.9em;line-height:1.5}.exceptional-details{margin-top:12px;padding-top:12px;border-top:1px solid #dee2e6;width:100%;max-width:100%;box-sizing:border-box;overflow-wrap:break-word;word-wrap:break-word}.exceptional-details strong{display:block;margin-bottom:8px;color:#495057;font-size:.9em}.exceptional-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;width:100%;max-width:100%;box-sizing:border-box}.exceptional-list li{display:flex;align-items:center;gap:10px;padding:6px 10px;background:#fff3cd;border-radius:4px;font-size:.85em;flex-wrap:wrap;width:100%;max-width:100%;box-sizing:border-box;overflow-wrap:break-word;word-wrap:break-word}.exceptional-category{font-weight:500;color:#856404;flex:1;min-width:120px}.exceptional-month{color:#856404;font-weight:600;min-width:35px}.exceptional-description{color:#495057;font-size:.85em;font-style:italic;flex:1;min-width:150px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exceptional-amount{font-family:SF Mono,Monaco,monospace;color:#dc3545;font-weight:600;min-width:80px;text-align:right}.exceptional-reason{color:#6c757d;font-size:.85em;font-style:italic;flex:1;min-width:120px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.exceptional-deviation{color:#dc3545;font-weight:600;font-size:.9em}.exceptional-more{font-style:italic;color:#6c757d;background:#f8f9fa!important}@media(max-width:768px){.budget-projection-container h3{font-size:1.5em}.projection-summary{flex-direction:column;gap:15px}.projections-table{font-size:.85em}.projections-table th,.projections-table td{padding:8px 6px}.initialize-button{padding:12px 20px;font-size:.9em}.option-item{flex-direction:column;gap:10px}.option-icon{font-size:1.2em}.exceptional-list li{flex-direction:column;align-items:flex-start;gap:4px}.exceptional-amount,.exceptional-deviation{text-align:left}}.ai-insights-dashboard{max-width:1200px;margin:0 auto;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.dashboard-header{text-align:center;margin-bottom:30px}.dashboard-header h1{font-size:2em;color:#2c3e50;margin-bottom:5px}.dashboard-header .subtitle{color:#7f8c8d;font-size:.9em}.ai-loading-container{min-height:500px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;position:relative;overflow:hidden;margin:20px 0}.ai-loading-content{text-align:center;color:#fff;z-index:2;padding:40px}.ai-robot{margin-bottom:30px;animation:robotBounce 2s ease-in-out infinite}@keyframes robotBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.robot-head{width:80px;height:60px;background:linear-gradient(180deg,#e0e5ec,#c9ced6);border-radius:15px;margin:0 auto;position:relative;box-shadow:0 4px 15px #0003}.robot-antenna{position:absolute;top:-20px;left:50%;transform:translate(-50%);width:4px;height:20px;background:#667eea;border-radius:2px}.robot-antenna:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%);width:12px;height:12px;background:#ff6b6b;border-radius:50%;animation:antennaBlink 1s ease-in-out infinite}@keyframes antennaBlink{0%,to{opacity:1;box-shadow:0 0 10px #ff6b6b}50%{opacity:.5;box-shadow:0 0 5px #ff6b6b}}.robot-eyes{display:flex;justify-content:center;gap:20px;padding-top:15px}.robot-eye{width:16px;height:16px;background:#333;border-radius:50%;position:relative;animation:eyeBlink 3s ease-in-out infinite}.robot-eye:after{content:"";position:absolute;top:3px;left:3px;width:6px;height:6px;background:#fff;border-radius:50%}@keyframes eyeBlink{0%,45%,55%,to{transform:scaleY(1)}50%{transform:scaleY(.1)}}.robot-body{width:100px;height:80px;background:linear-gradient(180deg,#c9ced6,#a8adb5);border-radius:10px 10px 20px 20px;margin:5px auto 0;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #0003}.robot-screen{width:60px;height:50px;background:#1a1a2e;border-radius:8px;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 2px 10px #00000080}.robot-emoji{font-size:28px;animation:emojiPop .5s ease-out}@keyframes emojiPop{0%{transform:scale(0)}50%{transform:scale(1.3)}to{transform:scale(1)}}.ai-loading-text h2{font-size:1.5em;margin-bottom:20px;font-weight:500;min-height:40px}.progress-bar{width:300px;height:8px;background:#ffffff4d;border-radius:4px;margin:0 auto;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#4ade80,#22d3ee,#818cf8);border-radius:4px;transition:width .5s ease-out;background-size:200% 100%;animation:progressGradient 2s linear infinite}@keyframes progressGradient{0%{background-position:100% 0}to{background-position:-100% 0}}.ai-fun-fact p{transition:opacity .3s ease-in-out;min-height:1.5em}.ai-fun-fact p.weather-visible{opacity:1}.ai-fun-fact p.weather-hidden{opacity:0}.ai-fun-fact{margin-top:40px;padding:20px;background:#ffffff26;border-radius:12px;max-width:400px;margin-left:auto;margin-right:auto;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.ai-fun-fact p{margin:0;font-size:.95em;line-height:1.6}.floating-particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.particle{position:absolute;font-size:24px;animation:float 6s ease-in-out infinite;opacity:.6}.particle:nth-child(1){left:10%;top:20%;animation-delay:0s}.particle:nth-child(2){left:80%;top:30%;animation-delay:1s}.particle:nth-child(3){left:20%;top:70%;animation-delay:2s}.particle:nth-child(4){left:70%;top:80%;animation-delay:3s}.particle:nth-child(5){left:50%;top:10%;animation-delay:4s}@keyframes float{0%,to{transform:translateY(0) rotate(0);opacity:.6}50%{transform:translateY(-30px) rotate(180deg);opacity:1}}.ai-dashboard-loading{text-align:center;padding:60px 20px}.spinner{border:4px solid #f3f3f3;border-top:4px solid #667eea;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ai-dashboard-loading p{font-size:1.2em;color:#2c3e50;margin-bottom:10px}.ai-dashboard-loading small{color:#95a5a6}.ai-dashboard-error{background:linear-gradient(135deg,#f8d7da,#f5c6cb);padding:30px;border-radius:12px;text-align:center;border-left:6px solid #dc3545}.ai-dashboard-error h3{color:#721c24;margin-bottom:10px}.ai-dashboard-error p{color:#721c24;margin-bottom:20px}.retry-button{background:#dc3545;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:1em;transition:background .3s}.retry-button:hover{background:#c82333}.tabs{display:flex;gap:10px;margin-bottom:20px;border-bottom:2px solid #ecf0f1}.tab{background:none;border:none;padding:12px 20px;font-size:1em;cursor:pointer;color:#7f8c8d;border-bottom:3px solid transparent;transition:all .3s}.tab:hover{color:#667eea;background:#f8f9fa}.tab.active{color:#667eea;border-bottom-color:#667eea;font-weight:600}.tab-content{animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.summary-tab{display:flex;flex-direction:column;gap:20px}.ai-insights-dashboard .summary-card,.summary-tab .summary-card{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;padding:30px;border-radius:12px;box-shadow:0 4px 12px #667eea4d;display:flex;gap:20px;align-items:flex-start;border:none!important}.card-icon{font-size:3em}.summary-tab .card-content{flex:1}.summary-tab .card-content h2{margin-top:0;margin-bottom:15px;font-size:1.5em;color:#fff}.ai-summary-content{font-size:1.1em;line-height:1.8;margin:0;display:block;color:#fff}.ai-summary-content p{margin:0 0 1em}.ai-summary-content p:last-child{margin-bottom:0}.ai-summary-content strong{color:#fff;font-weight:700}.ai-summary-content em{font-style:italic;opacity:.9}.ai-summary-content br{display:block;content:"";margin-top:.5em}.summary-tab .summary-card.empty{background:linear-gradient(135deg,#6c757d,#495057)!important}.info-box{background:#f8f9fa;padding:20px;border-radius:8px;border-left:4px solid #667eea}.info-box h3{margin-top:0;color:#667eea}.info-box p{color:#5a6c7d;line-height:1.6;margin-bottom:0}.no-anomalies{text-align:center;padding:60px 20px;background:linear-gradient(135deg,#d4edda,#c3e6cb);border-radius:12px;border-left:6px solid #28a745}.success-icon{font-size:4em;margin-bottom:20px}.no-anomalies h2{color:#155724;margin-bottom:10px}.no-anomalies p{color:#155724;font-size:1.1em}.anomalies-summary{margin-bottom:30px}.anomalies-summary h2{color:#2c3e50;margin-bottom:15px}.severity-badges{display:flex;gap:10px;flex-wrap:wrap}.badge{padding:6px 12px;border-radius:20px;font-size:.9em;font-weight:500}.severity-high{background:#f8d7da;color:#721c24}.severity-medium{background:#fff3cd;color:#856404}.severity-low{background:#d1ecf1;color:#0c5460}.ai-analysis-box{background:#f8f9fa;padding:25px;border-radius:12px;margin-bottom:30px;border-left:6px solid #667eea}.ai-analysis-box h3{color:#667eea;margin-top:0;margin-bottom:15px}.analysis-content{color:#2c3e50;line-height:1.8}.analysis-content strong{color:#667eea;font-weight:600}.analysis-content em{font-style:italic;color:#7f8c8d}.analysis-content br{display:block;content:"";margin-top:.8em}.anomalies-section{margin-bottom:25px}.anomalies-section:last-child{margin-bottom:0}.anomalies-section-title{display:flex;align-items:center;gap:8px;font-size:1rem;font-weight:600;color:#374151;margin:0 0 12px;padding-bottom:8px;border-bottom:2px solid #e5e7eb}.anomalies-section-title .section-icon{font-size:1.1rem}.anomalies-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}@media(max-width:900px){.anomalies-grid{grid-template-columns:1fr}}.anomaly-card-compact{background:#fff;border-radius:10px;padding:14px 16px;box-shadow:0 2px 6px #00000014;border-left:4px solid #667eea;transition:transform .2s,box-shadow .2s}.anomaly-card-compact:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.anomaly-header-compact{display:flex;align-items:center;gap:10px;margin-bottom:8px}.severity-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.anomaly-category{font-size:.8em;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.anomaly-amount{margin-left:auto;font-weight:700;color:#dc3545;font-size:.95em}.anomaly-desc{font-size:.92em;color:#2c3e50;line-height:1.4;margin:0 0 10px}.anomaly-action{display:flex;align-items:flex-start;gap:6px;padding:8px 10px;background:#f8f9fa;border-radius:6px;font-size:.85em;color:#5a6c7d;line-height:1.4}.anomaly-action .action-icon{flex-shrink:0}.anomaly-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:transform .2s,box-shadow .2s}.anomaly-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.anomaly-card.severity-high{border-left:6px solid #dc3545}.anomaly-card.severity-medium{border-left:6px solid #ffc107}.anomaly-card.severity-low{border-left:6px solid #17a2b8}.anomaly-header{display:flex;align-items:center;gap:15px;padding:20px;background:#f8f9fa;border-bottom:1px solid #dee2e6}.severity-icon{font-size:1.5em}.anomaly-title{flex:1}.anomaly-title h4{margin:0 0 5px;color:#2c3e50;font-size:1.1em}.category-badge{display:inline-block;padding:3px 8px;background:#e9ecef;color:#495057;border-radius:4px;font-size:.85em}.severity-badge{padding:4px 12px;border-radius:20px;font-size:.85em;font-weight:600}.anomaly-body{padding:20px}.anomaly-body .explanation{color:#2c3e50;margin-bottom:15px;line-height:1.6}.anomaly-details{background:#f8f9fa;padding:15px;border-radius:8px;margin-bottom:15px}.detail-item{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid #dee2e6}.detail-item:last-child{border-bottom:none}.detail-label{color:#6c757d;font-size:.9em}.detail-value{font-weight:600;color:#2c3e50}.anomaly-suggestion{background:linear-gradient(135deg,#fff9e6,#fff3cd);padding:15px;border-radius:8px;color:#856404;line-height:1.6}.advice-tab{display:flex;flex-direction:column;gap:30px}.advice-summary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:30px;border-radius:12px;box-shadow:0 4px 12px #667eea4d}.advice-summary h2{margin-top:0;margin-bottom:15px}.advice-summary-content{font-size:1.1em;line-height:1.8;color:#fff}.advice-summary-content strong{color:#fff;font-weight:700}.advice-summary-content em{font-style:italic;opacity:.9}.advice-summary-content br{display:block;content:"";margin-top:.5em}.recommendations-section h3,.opportunities-section h3{color:#2c3e50;margin-bottom:20px}.projection-toggle-section{margin-top:30px;margin-bottom:20px;padding:20px;background:#f8f9fa;border-radius:8px;border:2px solid #3498db;box-shadow:0 2px 4px #0000001a}.projection-toggle-label{display:flex;align-items:center;gap:12px;cursor:pointer;font-size:1.1em;font-weight:500;color:#2c3e50;-webkit-user-select:none;user-select:none}.projection-toggle-label:hover{color:#3498db}.projection-toggle-label:has(input:disabled){opacity:.6;cursor:not-allowed}.projection-toggle-checkbox{width:20px;height:20px;cursor:pointer;accent-color:#3498db;flex-shrink:0}.projection-toggle-checkbox:disabled{cursor:not-allowed}.projection-section-wrapper{margin-top:20px;width:100%;max-width:100%;box-sizing:border-box;clear:both}.recommendations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:20px}.recommendation-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;border-left:6px solid #667eea;transition:transform .2s,box-shadow .2s}.recommendation-card.compact{padding:16px}.recommendation-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.rec-header{display:flex;align-items:center;gap:10px;margin-bottom:15px}.rec-header-compact{display:flex;align-items:center;gap:12px;margin-bottom:12px}.rec-header-compact .rec-icon{font-size:1.5em}.rec-title-group{display:flex;align-items:center;gap:10px;flex:1}.rec-title-group h4{margin:0;font-size:1.1em;color:#2c3e50}.rec-budget-change{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#f8f9fa;border-radius:8px;margin-bottom:10px;font-size:.95em}.budget-current{color:#6c757d}.budget-arrow{color:#adb5bd}.budget-suggested{font-weight:700;color:#2c3e50}.budget-diff{font-size:.85em;padding:2px 6px;border-radius:4px}.budget-diff.increase{background:#ffebee;color:#c62828}.budget-diff.decrease{background:#e8f5e9;color:#2e7d32}.rec-rationale-compact{font-size:.9em;color:#5a6c7d;line-height:1.5;margin:0 0 8px}.rec-impact-badge{display:inline-block;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#2e7d32;padding:6px 12px;border-radius:20px;font-size:.85em;font-weight:600}.rec-icon{font-size:1.8em}.rec-header h4{flex:1;margin:0;color:#2c3e50}.action-badge{padding:4px 12px;background:#667eea;color:#fff;border-radius:20px;font-size:.85em;font-weight:600}.rec-amounts{display:flex;align-items:center;gap:15px;margin-bottom:15px;padding:15px;background:#f8f9fa;border-radius:8px}.amount-item{display:flex;flex-direction:column;gap:5px}.amount-label{font-size:.85em;color:#6c757d}.amount-value{font-size:1.3em;font-weight:700;color:#2c3e50}.amount-value.highlighted{color:#667eea}.arrow{font-size:1.5em;color:#667eea}.rec-rationale{color:#2c3e50;line-height:1.6;margin-bottom:10px}.rec-rationale strong{color:#667eea;font-weight:700}.rec-rationale em{font-style:italic;color:#5a6c7d}.rec-impact{color:#5a6c7d;font-size:.95em;line-height:1.6;margin-bottom:10px}.rec-impact strong{color:#2c3e50}.rec-impact span strong,.rec-impact span em{color:inherit}} .monthly-impact{background:linear-gradient(135deg,#d4edda,#c3e6cb);padding:10px 15px;border-radius:6px;color:#155724;font-size:.95em;text-align:center}.opportunities-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px}.opportunity-card{background:#fff;border-radius:8px;padding:15px;box-shadow:0 2px 6px #00000014;border-left:4px solid #28a745}.opp-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}.opp-header h4{margin:0;color:#2c3e50;font-size:1em;flex:1}.savings-badge{padding:4px 10px;background:#d4edda;color:#155724;border-radius:12px;font-size:.8em;font-weight:600;white-space:nowrap}.opp-details{color:#5a6c7d;font-size:.9em;line-height:1.6}.opp-action{margin-top:10px;padding-top:10px;border-top:1px solid #dee2e6}.opp-action strong{color:#2c3e50}.opp-action span strong,.opp-action span em{color:inherit}.opp-header h4 strong{color:#28a745}.opp-header h4 em{font-style:italic}.dashboard-footer{text-align:center;margin-top:40px;padding-top:20px;border-top:1px solid #dee2e6}.dashboard-footer small{color:#95a5a6}@media(max-width:768px){.ai-insights-dashboard{padding:15px}.dashboard-header h1{font-size:1.5em}.tabs{overflow-x:auto}.tab{white-space:nowrap}.summary-tab .summary-card{flex-direction:column}.summary-tab .card-icon{font-size:2.5em}.recommendations-grid{grid-template-columns:1fr}.rec-amounts{flex-direction:column;align-items:stretch}.arrow{transform:rotate(90deg);align-self:center}}.ai-analysis-buttons-container{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:16px;padding:30px;margin:20px 0;box-shadow:0 4px 12px #00000014}.ai-buttons-header{text-align:center;margin-bottom:30px}.ai-buttons-header h3{font-size:1.8em;color:#2c3e50;margin:0 0 10px}.ai-buttons-header p{color:#6c757d;font-size:1.1em;margin:0}.ai-buttons-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin-bottom:20px}.ai-action-button{background:#fff;border:2px solid transparent;border-radius:12px;padding:25px;display:flex;align-items:flex-start;gap:20px;cursor:pointer;transition:all .3s ease;text-align:left;position:relative;overflow:hidden}.ai-action-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s}.ai-action-button:hover:before{left:100%}.ai-action-button:hover{transform:translateY(-4px);box-shadow:0 8px 20px #00000026}.ai-action-button.monthly{border-color:#667eea}.ai-action-button.monthly:hover{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.ai-action-button.annual{border-color:#f093fb}.ai-action-button.annual:hover{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.button-icon{font-size:3em;line-height:1;flex-shrink:0}.button-content{flex:1}.button-content h4{margin:0 0 8px;font-size:1.3em;color:#2c3e50;transition:color .3s}.ai-action-button:hover .button-content h4{color:#fff}.button-content p{margin:0 0 15px;color:#6c757d;font-size:.95em;transition:color .3s}.ai-action-button:hover .button-content p{color:#ffffffe6}.button-features{list-style:none;padding:0;margin:0}.button-features li{font-size:.9em;color:#5a6c7d;margin-bottom:5px;transition:color .3s}.ai-action-button:hover .button-features li{color:#fffffff2}.button-arrow{font-size:2em;color:#667eea;align-self:center;transition:all .3s}.ai-action-button:hover .button-arrow{color:#fff;transform:translate(5px)}.ai-info-badge{background:linear-gradient(135deg,#fff9e6,#fff3cd);border-left:4px solid #ffc107;padding:15px 20px;border-radius:8px;display:flex;align-items:center;gap:12px;font-size:.95em;color:#856404}.badge-icon{font-size:1.5em}.period-selector-overlay{position:fixed;inset:60px 0 0;background:#0009;display:flex;align-items:flex-start;justify-content:center;padding-top:50px;z-index:1000;animation:fadeIn .3s;overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.period-selector-modal{background:#fff;border-radius:16px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:25px 30px;border-bottom:1px solid #e9ecef}.modal-header h3{margin:0;color:#2c3e50;font-size:1.5em}.modal-close-btn{background:none;border:none;font-size:2em;color:#6c757d;cursor:pointer;line-height:1;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s}.modal-close-btn:hover{background:#f8f9fa;color:#2c3e50}.modal-body{padding:30px}.selector-group{margin-bottom:30px}.selector-group label{display:block;font-weight:600;color:#2c3e50;margin-bottom:15px;font-size:1.1em}.year-selector{display:flex;gap:15px}.year-btn{flex:1;padding:15px 20px;border:2px solid #dee2e6;background:#fff;border-radius:10px;font-size:1.1em;font-weight:600;color:#495057;cursor:pointer;transition:all .3s}.year-btn:hover{border-color:#667eea;background:#f8f9fa}.year-btn.active{border-color:#667eea;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.month-selector{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px}.month-btn{padding:12px 15px;border:2px solid #dee2e6;background:#fff;border-radius:8px;font-size:.95em;font-weight:500;color:#495057;cursor:pointer;transition:all .3s}.month-btn:hover{border-color:#667eea;background:#f8f9fa}.month-btn.active{border-color:#667eea;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.selection-summary{background:linear-gradient(135deg,#d4edda,#c3e6cb);border-left:4px solid #28a745;padding:15px 20px;border-radius:8px;margin-top:20px}.selection-summary strong{display:block;margin-bottom:5px;color:#155724}.selection-summary span{color:#155724;font-size:1.1em;font-weight:600}.modal-footer{display:flex;justify-content:flex-end;gap:15px;padding:20px 30px;border-top:1px solid #e9ecef;background:#f8f9fa}.btn-cancel,.btn-launch{padding:12px 30px;border:none;border-radius:8px;font-size:1em;font-weight:600;cursor:pointer;transition:all .3s}.btn-cancel{background:#fff;color:#6c757d;border:2px solid #dee2e6}.btn-cancel:hover{background:#f8f9fa;border-color:#adb5bd}.btn-launch{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea4d}.btn-launch:hover{box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.ai-analysis-modal-overlay{position:fixed;inset:60px 0 0;background:#00000080;z-index:999;display:flex;align-items:flex-start;justify-content:center;padding-top:20px;animation:fadeIn .3s;overflow-y:auto}.ai-analysis-modal{background:#f8f9fa;width:95%;max-width:1400px;max-height:calc(100vh - 100px);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease-out;margin-bottom:20px}@keyframes slideUp{0%{opacity:0;transform:translateY(50px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.ai-analysis-controls{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex-shrink:0}.controls-left,.controls-center,.controls-right{display:flex;align-items:center;gap:10px}.controls-left{flex:1}.controls-center{flex:2;justify-content:center}.controls-right{flex:1;justify-content:flex-end}.current-period{font-size:1.1em;font-weight:600;margin-left:10px}.control-btn{background:#fff3;border:none;color:#fff;padding:8px 16px;border-radius:8px;font-size:.9em;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}.control-btn:hover{background:#ffffff4d;transform:translateY(-1px)}.control-btn.close{background:#ff64644d;padding:8px 12px;font-size:1.1em}.control-btn.close:hover{background:#ff646480}.control-btn.nav{padding:8px 14px;font-size:1em}.control-btn.regenerate{background:#4ade804d}.control-btn.regenerate:hover{background:#4ade8080}.control-btn.switch{background:#fbbf244d}.control-btn.switch:hover{background:#fbbf2480}.control-btn.period{background:#ffffff40}.ai-analysis-content{flex:1;overflow-y:auto;padding:20px}@media(max-width:768px){.ai-analysis-buttons-container{padding:20px}.ai-buttons-grid{grid-template-columns:1fr;gap:15px}.ai-action-button{padding:20px}.button-icon{font-size:2.5em}.button-arrow{display:none}.period-selector-modal{width:95%;margin:20px}.modal-header,.modal-body,.modal-footer{padding:20px}.month-selector{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.month-btn{padding:10px;font-size:.9em}.year-selector{flex-direction:column}.ai-analysis-modal-overlay{top:60px;padding-top:10px}.ai-analysis-modal{width:100%;max-height:calc(100vh - 80px);border-radius:0;margin-bottom:0}.ai-analysis-controls{flex-wrap:wrap;padding:10px 15px;gap:8px}.controls-left,.controls-center,.controls-right{flex:none;width:100%;justify-content:center}.controls-left{order:1}.controls-center{order:2}.controls-right{order:3}.current-period{font-size:.95em}.control-btn{padding:6px 12px;font-size:.85em}.ai-analysis-content{padding:10px}.period-selector-overlay{top:60px;padding-top:20px}}@media(max-width:480px){.ai-buttons-header h3{font-size:1.5em}.ai-buttons-header p{font-size:1em}.button-content h4{font-size:1.1em}.button-features{font-size:.85em}.month-selector{grid-template-columns:repeat(2,1fr)}}.ai-action-button:focus,.year-btn:focus,.month-btn:focus,.btn-cancel:focus,.btn-launch:focus{outline:3px solid #667eea;outline-offset:2px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.ai-action-button.loading{animation:pulse 1.5s infinite;pointer-events:none}.monthly-savings-chart-container{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0f172a14;margin-bottom:2rem}.monthly-savings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.monthly-savings-header h3{margin:0;color:#2c3e50;font-size:1.25rem}.month-selector{display:flex;align-items:center;gap:.75rem}.month-nav-btn{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:.5rem .75rem;cursor:pointer;font-size:1rem;color:#495057;transition:all .2s}.month-nav-btn:hover{background:#e9ecef;border-color:#adb5bd}.month-nav-btn:active{transform:scale(.95)}.current-month{font-weight:600;color:#2c3e50;min-width:120px;text-align:center}.monthly-savings-legend{display:flex;gap:1.5rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#495057}.legend-color{width:16px;height:16px;border-radius:2px}.legend-color.realized{background:#3498db}.legend-color.projected{background:#95a5a6}.legend-item.today-marker{margin-left:auto;color:#e74c3c;font-weight:600}.monthly-savings-tooltip{background:#fffffffa;border:1px solid #dee2e6;border-radius:6px;padding:.75rem;box-shadow:0 2px 8px #00000026}.tooltip-label{font-weight:600;margin-bottom:.5rem;color:#2c3e50;font-size:.875rem}.tooltip-item{display:flex;justify-content:space-between;gap:1rem;margin-top:.5rem;font-size:.875rem}.tooltip-label-name{color:#6c757d}.tooltip-value{font-weight:600;color:#2c3e50}.tooltip-value.projected{color:#95a5a6}.monthly-savings-summary{display:flex;gap:2rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e9ecef;flex-wrap:wrap}.summary-label{font-size:.875rem;color:#6c757d}.summary-value{font-size:1.25rem;font-weight:700;color:#2c3e50}.summary-value.projected{color:#95a5a6}.monthly-savings-loading,.monthly-savings-error,.monthly-savings-empty{padding:2rem;text-align:center;color:#6c757d;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0f172a14}.monthly-savings-error{color:#dc3545}@media(max-width:768px){.monthly-savings-header{flex-direction:column;align-items:flex-start;gap:1rem}.month-selector{width:100%;justify-content:center}.monthly-savings-legend{flex-direction:column;align-items:flex-start;gap:.75rem}.legend-item.today-marker{margin-left:0}.monthly-savings-summary{flex-direction:column;gap:1rem}}.annual-savings-chart-container{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}.annual-savings-chart-container .chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.annual-savings-chart-container .chart-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937}.annual-savings-summary{display:flex;gap:2rem;margin-bottom:1rem;padding:.75rem;background:#f9fafb;border-radius:6px}.annual-savings-summary .summary-item{display:flex;flex-direction:column;gap:.25rem}.annual-savings-summary .summary-item span{font-size:.875rem;color:#6b7280}.annual-savings-summary .summary-item strong{font-size:1.125rem;font-weight:600;color:#1f2937}.annual-savings-legend{display:flex;gap:1.5rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}.annual-savings-legend .legend-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.annual-savings-legend .legend-color{width:12px;height:12px;border-radius:2px}.annual-savings-legend .legend-color.realized{background-color:#3498db}.annual-savings-legend .legend-color.projected{background-color:#95a5a6}.annual-savings-legend .today-marker{color:#e74c3c;font-weight:500}.annual-savings-tooltip{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:.75rem;box-shadow:0 4px 6px #0000001a}.annual-savings-tooltip .tooltip-label{font-weight:600;margin-bottom:.5rem;color:#1f2937}.annual-savings-tooltip .tooltip-item{margin:.25rem 0;font-size:.875rem}.annual-savings-tooltip .tooltip-intro{margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e5e7eb;font-size:.75rem;color:#6b7280}.annual-savings-chart-container .loading,.annual-savings-chart-container .error{padding:2rem;text-align:center;color:#6b7280}.annual-savings-chart-container .error{color:#dc2626}.accounts{max-width:1200px;margin:0 auto}.accounts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.accounts-header h1{margin:0;color:#2c3e50}.btn-primary:hover{background-color:#2980b9;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.accounts-by-bank{display:flex;flex-direction:column;gap:2.5rem}.bank-section{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.bank-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #3498db}.bank-name{margin:0;color:#2c3e50;font-size:1.5rem;font-weight:700}.bank-summary{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.bank-count{color:#7f8c8d;font-size:.9rem}.bank-total{color:#27ae60;font-size:1.1rem;font-weight:600}.accounts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.account-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;transition:transform .2s,box-shadow .2s}.account-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.account-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee}.account-card-header h3{margin:0;color:#2c3e50;flex:1}.account-card-actions{display:flex;gap:.5rem}.btn-icon{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:background-color .2s}.btn-icon:hover:not(:disabled){background-color:#f0f0f0}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.btn-danger:hover:not(:disabled){background-color:#fee}.account-card-body{display:flex;flex-direction:column;gap:.5rem}.account-type{color:#7f8c8d;margin:0;font-size:.9rem}.account-bank{color:#34495e;font-weight:600;margin:0;font-size:.95rem}.account-balance{font-size:1.5rem;font-weight:700;color:#27ae60;margin:.5rem 0}.account-description{color:#7f8c8d;font-size:.9rem;margin:.5rem 0;font-style:italic}.account-bank-info{margin:.75rem 0;padding:.75rem;background-color:#f8f9fa;border-radius:6px;border-left:3px solid #3498db}.bank-info-item{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;font-size:.85rem}.bank-info-item:last-child{margin-bottom:0}.bank-info-label{font-weight:600;color:#34495e;min-width:45px;flex-shrink:0}.bank-info-value{color:#2c3e50;word-break:break-all;font-family:Monaco,Menlo,Courier New,monospace;font-size:.8rem}.account-cards,.account-loans{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #eee}.cards-label,.loans-label{font-size:.85rem;color:#7f8c8d;margin:0 0 .5rem;font-weight:600}.card-badge,.loan-badge{display:inline-block;padding:.25rem .5rem;margin:.25rem .25rem .25rem 0;background-color:#e3f2fd;color:#1976d2;border-radius:4px;font-size:.8rem;font-weight:500}.loan-badge{background-color:#fff3e0;color:#e65100}.loan-item{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.btn-loan-schedule{padding:.25rem .75rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-loan-schedule:hover{background-color:#2980b9;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.account-status{margin-top:.5rem;padding-top:.5rem;border-top:1px solid #eee}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600}.status-badge.active{background-color:#d4edda;color:#155724}.status-badge.inactive{background-color:#f8d7da;color:#721c24}.empty-state{text-align:center;padding:3rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.notification-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:10px;max-width:400px;pointer-events:none}.notification{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:0;min-width:300px;max-width:400px;pointer-events:auto;transform:translate(420px);opacity:0;transition:transform .3s ease-out,opacity .3s ease-out}.notification-show{transform:translate(0);opacity:1}.notification-hide{transform:translate(420px);opacity:0}.notification-content{display:flex;align-items:center;padding:16px;gap:12px}.notification-success{border-left:4px solid #28a745}.notification-error{border-left:4px solid #dc3545}.notification-info{border-left:4px solid #17a2b8}.notification-warning{border-left:4px solid #ffc107}.notification-icon{font-size:20px;flex-shrink:0}.notification-message{flex:1;font-size:14px;line-height:1.4;color:#333}.notification-close{background:none;border:none;font-size:24px;color:#999;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .2s}.notification-close:hover{color:#333}.notification-close:focus{outline:2px solid #007bff;outline-offset:2px}@keyframes slideIn{0%{transform:translate(420px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(420px);opacity:0}}.account-form-container{max-width:800px;margin:0 auto;background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.account-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #eee}.account-form-header h1{margin:0;color:#2c3e50}.account-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.required{color:#e74c3c}.form-group input,.form-group select,.form-group textarea{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit;transition:border-color .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#e74c3c}.form-group textarea{resize:vertical;min-height:80px}.checkbox-group{flex-direction:row;align-items:center;gap:.5rem}.checkbox-group label{font-weight:400;display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto;cursor:pointer}.field-error{color:#e74c3c;font-size:.875rem;margin-top:-.25rem}.error-message{background-color:#fee;color:#c33;padding:1rem;border-radius:4px;border:1px solid #fcc;margin-bottom:1rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1rem;padding-top:1.5rem;border-top:1px solid #eee}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-primary{background-color:#3498db;color:#fff}.btn-primary:disabled{background-color:#95a5a6;cursor:not-allowed;transform:none}.btn-secondary{background-color:#ecf0f1;color:#2c3e50}.btn-secondary:hover{background-color:#bdc3c7}.calculated-info{padding:1rem;background:#f8f9fa;border-radius:4px;border:1px solid #dee2e6;margin-top:.5rem}.calculated-info-label{font-weight:700;margin-bottom:.75rem;color:#495057}.calculated-info-item{display:flex;justify-content:space-between;align-items:center;padding:.25rem 0}.calculated-info-label-text{color:#6c757d}.calculated-info-value{color:#2c3e50;font-weight:600}.categories{max-width:1200px;margin:0 auto;padding:2rem}.categories-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.categories-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.btn-secondary{padding:.5rem 1rem;background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;color:#495057;font-size:.9rem;cursor:pointer;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:#e9ecef;border-color:#adb5bd}.btn-import{position:relative;display:inline-block;cursor:pointer}.btn-import input[type=file]{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.categories-sections{display:flex;flex-direction:column;gap:2rem}.category-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.category-section-header{padding:1rem 1.5rem;display:flex;align-items:center;gap:.75rem;font-weight:700;font-size:1.1rem;color:#2c3e50;border-bottom:2px solid #e0e0e0;position:relative;transition:all .2s ease;min-height:60px;cursor:default}.category-section-header.drag-over-root{background:#3498db40!important;border-bottom-color:#3498db;border-bottom-width:4px;box-shadow:0 2px 8px #3498db4d;transform:scale(1.02)}.category-section-header .drop-hint{margin-left:auto;font-size:.85rem;font-weight:600;color:#3498db;padding:.5rem 1rem;background:#3498db26;border:2px dashed #3498db;border-radius:6px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.category-section-header:after{content:"💡 Glissez une sous-catégorie ici pour la transformer en racine";position:absolute;right:1.5rem;font-size:.75rem;color:#95a5a6;font-weight:400;opacity:0;transition:opacity .3s ease;pointer-events:none}.category-section-header:hover:after{opacity:.6}.category-section-header.income-section{background:linear-gradient(90deg,#27ae601a,#27ae600d);border-bottom-color:#27ae60}.category-section-header.expense-section{background:linear-gradient(90deg,#e74c3c1a,#e74c3c0d);border-bottom-color:#e74c3c}.category-section-header.loan-section{background:linear-gradient(90deg,#e67e221a,#e67e220d);border-bottom-color:#e67e22}.category-section-header.savings-section{background:linear-gradient(90deg,#9b59b61a,#9b59b60d);border-bottom-color:#9b59b6}.category-section-header h2{margin:0;font-size:1.2rem}.category-section-header .section-icon{font-size:1.3rem}.category-section .categories-tree{padding:1rem}.categories h1{margin:0;color:#2c3e50}.btn-secondary{padding:.75rem 1.5rem;background-color:#ecf0f1;color:#2c3e50;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-secondary:hover:not(:disabled){background-color:#bdc3c7}.btn-icon{background:none;border:none;cursor:pointer;padding:.5rem;font-size:1.2rem;transition:transform .2s;opacity:.7}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.btn-small{font-size:1rem;padding:.25rem .5rem}.btn-add-child{display:inline-flex;align-items:center;gap:.25rem;font-size:.9rem;padding:.45rem .9rem;background-color:#ecf0f1;border:1px solid #d5dde3;border-radius:4px;color:#2c3e50;font-weight:600;cursor:pointer;transition:all .2s}.btn-add-child:hover{background-color:#3498db;border-color:#2980b9;color:#fff;box-shadow:0 2px 6px #3498db33}.categories-tree{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.category-item{margin-bottom:1.5rem;padding:1rem;border:1px solid #eee;border-radius:6px;background:#fafafa;transition:all .2s}.category-item:hover{border-color:#3498db;box-shadow:0 2px 8px #3498db1a}.category-item:last-child{margin-bottom:0}.category-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.category-main{display:flex;align-items:center;gap:.75rem;flex:1}.drag-handle{cursor:grab;color:#95a5a6;font-size:1.2rem;padding:.25rem;-webkit-user-select:none;user-select:none;opacity:.5;transition:opacity .2s}.drag-handle:hover{opacity:1}.drag-handle:active{cursor:grabbing}.drag-handle-child{cursor:grab;color:#95a5a6;font-size:1rem;padding:.2rem;-webkit-user-select:none;user-select:none;opacity:.7;margin-right:.5rem;display:inline-flex;align-items:center;flex-shrink:0;transition:opacity .2s,color .2s}.drag-handle-child:hover{opacity:1;color:#3498db}.drag-handle-child:active{cursor:grabbing}.expand-btn{background:none;border:none;cursor:pointer;font-size:.85rem;color:#7f8c8d;padding:.25rem .5rem;width:24px;text-align:center}.expand-btn:hover{color:#3498db}.expand-spacer{width:24px}.category-badge{display:inline-block;width:20px;height:20px;border-radius:4px;flex-shrink:0;box-shadow:0 1px 3px #0003}.category-badge.child-badge{width:16px;height:16px}.category-name{font-size:1.1rem;font-weight:600;color:#2c3e50}.category-id{font-size:.85rem;font-weight:400;color:#95a5a6;margin-left:.25rem;font-family:monospace}.category-description{font-size:.85rem;color:#7f8c8d;margin-left:.5rem;font-style:italic}.category-actions{display:flex;gap:.5rem;align-items:center}.category-children{list-style:none;padding:0;margin:1rem 0 0 3rem;border-left:2px solid #e0e0e0;padding-left:1rem}.category-child{display:flex;justify-content:space-between;align-items:center;padding:.75rem;margin-bottom:.5rem;background:#fff;border-radius:4px;border:1px solid #e0e0e0;transition:all .2s}.category-child:hover{border-color:#3498db;box-shadow:0 1px 4px #3498db1a}.category-child:last-child{margin-bottom:0}.child-content{display:flex;align-items:center;gap:.5rem;flex:1}.child-name{color:#34495e;font-weight:500}.child-description{font-size:.8rem;color:#95a5a6;margin-left:.5rem;font-style:italic}.child-actions{display:flex;gap:.25rem}.drag-overlay{background:#fff;padding:.75rem 1rem;border-radius:6px;box-shadow:0 4px 12px #00000026;border:2px solid #3498db;font-weight:600;color:#2c3e50}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.modal-content{background:#fff;border-radius:8px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #eee}.modal-header h2{margin:0;color:#2c3e50;font-size:1.5rem}.modal-close{background:none;border:none;font-size:2rem;color:#95a5a6;cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background:#ecf0f1;color:#2c3e50}.category-form{padding:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.form-group label{font-weight:600;color:#2c3e50;font-size:.95rem}.checkbox-label{display:inline-flex;align-items:center;font-weight:600;color:#2c3e50}.checkbox-label input[type=checkbox]{width:18px;height:18px;flex-shrink:0;margin-right:.5rem}.form-input{padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit;transition:border-color .3s}.form-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.form-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-input-readonly{background-color:#f9f9f9;color:#7f8c8d;font-family:monospace;font-size:.9rem}.color-picker{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.color-option{width:40px;height:40px;border:3px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s;box-shadow:0 1px 3px #0003}.color-option:hover{transform:scale(1.1);box-shadow:0 2px 6px #0000004d}.color-option.selected{border-color:#2c3e50;transform:scale(1.15);box-shadow:0 2px 8px #0006}.color-input{font-family:monospace}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #eee}.empty-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.empty-state p{color:#7f8c8d;font-size:1.1rem;margin-bottom:1.5rem}.loading,.error{text-align:center;padding:2rem;font-size:1.1rem}.transaction-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.transaction-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-width:500px;width:100%;max-height:90vh;overflow-y:auto}.transaction-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb}.transaction-modal-header h3{margin:0;font-size:1.25rem;color:#2c3e50}.close-btn{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.close-btn:hover{background-color:#f3f4f6}.transaction-modal-form{padding:1.5rem}.transaction-modal-form .form-group{margin-bottom:1.25rem}.transaction-modal-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.25rem}.transaction-modal-form label{display:block;margin-bottom:.5rem;font-weight:500;color:#374151;font-size:.9rem}.transaction-modal-form .form-input,.transaction-modal-form .form-select,.transaction-modal-form textarea.form-input{width:100%;padding:.625rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem;transition:border-color .2s,box-shadow .2s;font-family:inherit}.transaction-modal-form .form-input:focus,.transaction-modal-form .form-select:focus,.transaction-modal-form textarea.form-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.transaction-modal-form .form-hint{display:block;margin-top:.375rem;font-size:.8rem;color:#6b7280}.transaction-modal-form .form-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid #e5e7eb}.transaction-modal-form .btn-primary,.transaction-modal-form .btn-secondary{padding:.625rem 1.25rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.transaction-modal-form .btn-primary{background-color:#3498db;color:#fff}.transaction-modal-form .btn-primary:hover:not(:disabled){background-color:#2980b9}.transaction-modal-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.transaction-modal-form .btn-secondary{background-color:#f3f4f6;color:#374151}.transaction-modal-form .btn-secondary:hover{background-color:#e5e7eb}.transaction-modal.compact{max-width:400px}.transaction-modal.compact .transaction-modal-form{padding:1rem 1.5rem}.custom-description-wrapper{display:flex;gap:.5rem;align-items:flex-start}.custom-description-wrapper .form-input{flex:1}.transaction-modal.compact .custom-description-wrapper textarea.form-textarea-large{min-height:5rem;padding:.875rem 1rem;font-size:1rem;line-height:1.5;resize:vertical;font-family:inherit}@media(hover:none)and (pointer:coarse){.transaction-modal-form .form-input,.transaction-modal-form .form-select,.transaction-modal-form textarea.form-input{min-height:44px;padding:.75rem 1rem;font-size:16px}.transaction-modal-form textarea.form-textarea-large{min-height:6rem;font-size:16px}.transaction-modal-form .form-input:focus,.transaction-modal-form .form-select:focus,.transaction-modal-form textarea.form-input:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db33;outline:none}.transaction-modal-form .btn-primary,.transaction-modal-form .btn-secondary,.btn-inline{min-height:44px;padding:.75rem 1.5rem}}.custom-description-actions{display:flex;gap:.5rem;flex-shrink:0}.btn-inline{padding:.625rem 1rem;font-size:.9rem;white-space:nowrap}.form-readonly{padding:.625rem .75rem;background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#6b7280;font-size:.95rem}.pdf-details-toggle{margin-top:.5rem;font-size:.85rem}.pdf-details-toggle summary{cursor:pointer;color:#6b7280;padding:.25rem 0;-webkit-user-select:none;user-select:none}.pdf-details-toggle summary:hover{color:#3498db}.pdf-details-content{margin:.5rem 0 0;padding:.75rem;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;font-size:.8rem;font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;color:#475569;white-space:pre-wrap;word-break:break-word;line-height:1.4}@media(max-width:640px){.transaction-modal-form .form-row{grid-template-columns:1fr}.custom-description-wrapper{flex-direction:column}.custom-description-actions{width:100%}.custom-description-actions .btn-inline{flex:1}}.transactions{max-width:1200px;margin:0 auto}.transactions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.transactions-header-actions{display:flex;gap:.75rem;align-items:center}.btn-add-transaction{width:32px;height:32px;border-radius:50%;background-color:#f3f4f6;color:#6b7280;border:1px solid #d1d5db;font-size:1.25rem;font-weight:300;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0;line-height:1}.btn-add-transaction:hover{background-color:#e5e7eb;color:#374151;border-color:#9ca3af}.btn-add-transaction:active{transform:scale(.95)}.filters-bar{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.filter-input,.filter-select{padding:.5rem .75rem;border:1px solid #ddd;border-radius:6px}.filter-account-dropdown{position:relative}.filter-account-toggle{padding:.5rem .75rem;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;display:flex;align-items:center;gap:.35rem;min-width:190px;justify-content:space-between}.filter-account-toggle .arrow{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #9ca3af;transition:transform .2s}.filter-account-dropdown.open .filter-account-toggle .arrow{transform:rotate(180deg)}.filter-account-menu{position:absolute;top:calc(100% + 6px);left:0;width:240px;max-height:280px;overflow:auto;background:#fff;border:1px solid #e5e7eb;border-radius:10px;box-shadow:0 16px 32px #0f172a26;z-index:10;padding:.4rem 0}.account-group{padding:.15rem 0}.account-group-title{font-size:.7rem;font-weight:700;color:#475569;padding:.35rem 1rem;text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-bottom:1px solid #d9e0ea}.account-item{width:100%;text-align:left;padding:.45rem 1rem .45rem 1.75rem;border:none;background:none;cursor:pointer;font-size:.85rem;color:#1f2937;display:flex;align-items:flex-start;gap:.5rem}.account-item:hover{background:#f1f5f9}.account-item.selected{background:#eef2ff;font-weight:600}.account-item-dot{color:#94a3b8;font-size:.65rem;line-height:1.6}.account-item-label{display:flex;flex-direction:column}.account-item-sub{font-size:.72rem;color:#94a3b8;margin-top:.15rem}.filter-quick-actions{display:flex;gap:.4rem}.filter-quick-actions button{padding:.4rem .75rem;border:1px solid #d1d5db;border-radius:6px;background:#f3f4f6;color:#374151;cursor:pointer;transition:background .2s}.filter-quick-actions button:hover{background:#e5e7eb}.filter-quick-actions button.active{background:#eef2ff;border-color:#6366f1;color:#1f2937;font-weight:600;box-shadow:0 0 0 2px #6366f126}.filter-checkbox{display:flex;align-items:center;gap:.45rem;font-size:.85rem;color:#4b5563;padding:.3rem .6rem;border:1px solid transparent;border-radius:6px}.filter-checkbox input[type=checkbox]{width:16px;height:16px;margin:0}.category-dropdown{position:relative}.category-dropdown .dropdown-toggle{padding:.5rem .75rem;border:1px solid #ddd;border-radius:6px;background:#fff;cursor:pointer;min-width:220px;display:flex;align-items:center;justify-content:space-between}.category-dropdown .dropdown-toggle:after{content:"";width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #9CA3AF}.category-dropdown .dropdown-menu{position:absolute;z-index:10;top:calc(100% + 6px);left:0;width:320px;max-height:300px;overflow:auto;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 8px 24px #00000014}.category-dropdown .dropdown-header{padding:8px 10px;border-bottom:1px solid #f0f0f0;font-weight:600;color:#374151}.category-dropdown .dropdown-item{padding:8px 10px;cursor:pointer;display:flex;align-items:center;gap:6px}.category-dropdown .dropdown-item .item-label{flex:1}.category-dropdown .dropdown-item.selected{background:#eef2ff}.category-dropdown .dropdown-item.selected .item-label{font-weight:600}.category-dropdown .checkmark{color:#4f46e5;font-weight:700}.category-dropdown .dropdown-item:hover{background:#f9fafb}.category-dropdown .dot{width:6px;height:6px;border-radius:50%;background:#9ca3af}.category-dropdown .parent{font-weight:700}.category-dropdown .dropdown-item.disabled{cursor:not-allowed}.category-dropdown .dropdown-item.disabled:hover{background:inherit}.category-dropdown .dropdown-item.disabled .item-label{font-weight:700}.category-dropdown .indent-0{padding-left:4px}.category-dropdown .indent-1{padding-left:14px}.category-dropdown .indent-2{padding-left:24px}.category-dropdown .indent-3{padding-left:34px}.category-dropdown .indent-4{padding-left:44px}.infinite-loader{text-align:center;padding:.75rem;color:#7f8c8d}.transactions h1{margin:0;color:#2c3e50}.btn-import-link{padding:.75rem 1.5rem;background-color:#3498db;color:#fff;text-decoration:none;border-radius:4px;font-weight:600;transition:all .3s;display:inline-flex;align-items:center;gap:.5rem}.btn-import-link:hover{background-color:#2980b9;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.btn-export-link{padding:.75rem 1.5rem;background-color:#10b981;color:#fff;text-decoration:none;border:none;border-radius:4px;font-weight:600;transition:all .3s;display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-family:inherit}.btn-export-link:hover:not(:disabled){background-color:#059669;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.btn-export-link:disabled{background-color:#9ca3af;cursor:not-allowed;opacity:.6;transform:none}.transactions-table-container{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.table{width:100%;border-collapse:collapse}.transactions-count{font-size:.95rem;color:#4b5563;margin-bottom:.75rem}.table th,.table td{padding:.75rem;text-align:left;border-bottom:1px solid #ddd}.table th{background-color:#f8f9fa;font-weight:600;color:#2c3e50}.table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.table th.sortable span{display:inline-flex;align-items:center;gap:.3rem}.table th.sortable .sort-icon{font-size:.75rem;color:#94a3b8}.table th.sortable:hover{background-color:#edf2f7}.table td.id-cell{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;color:#475569;white-space:nowrap}.amount-header{text-align:right;width:120px}.amount-cell{text-align:right;font-variant-numeric:tabular-nums}.table tr:hover{background-color:#f8f9fa}.positive{color:#27ae60;font-weight:600}.negative{color:#e74c3c;font-weight:600}.pending-note{color:#6b7280;font-style:italic;margin-left:6px}.transaction-label{display:flex;flex-direction:column;gap:.15rem}.transaction-main-label{font-weight:600;color:#0f172a}.transaction-sub-label{color:#94a3b8;font-size:.8rem}.actions-cell{display:flex;gap:.35rem;align-items:center;white-space:nowrap}.btn-danger.btn-small{padding:.25rem .6rem;background:transparent;color:#e74c3c;border:1px solid #e74c3c;border-radius:6px;cursor:pointer;font-weight:600}.btn-danger.btn-small:hover:not(:disabled){background:#e74c3c14}.btn-danger.btn-small:focus{outline:none;box-shadow:0 0 0 3px #e74c3c26}.btn-danger.btn-small:disabled{opacity:.5;cursor:not-allowed}.btn-secondary.btn-small{padding:.25rem .6rem;border:1px solid #94a3b8;border-radius:6px;background:#f8fafc;color:#475569;cursor:pointer}.btn-secondary.btn-small:hover{background:#e2e8f0}.dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:2px dashed rgba(99,102,241,.4);background:#f8fafcd9;border-radius:18px;padding:1.75rem 1.5rem;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease,transform .2s ease;cursor:pointer;min-height:180px}.dropzone:hover{border-color:#4f46e5cc;background:#dbeafe59;box-shadow:0 12px 26px #4f46e51f}.dropzone-dragging{border-style:solid;border-color:#0e7490e6;background:#0e74901f;transform:translateY(-4px);box-shadow:0 18px 32px #0e749033}.dropzone-disabled{cursor:not-allowed;opacity:.6;box-shadow:none;transform:none}.dropzone-input{display:none}.dropzone-content{display:flex;flex-direction:column;align-items:center;gap:.5rem;max-width:28rem}.dropzone-icon{font-size:2.5rem;line-height:1}.dropzone-prompt{font-weight:600;color:#1e293b;letter-spacing:-.01em;font-size:1rem}.dropzone-helper{font-size:.9rem;color:#475569;max-width:26rem}.dropzone-file{display:flex;align-items:center;gap:.5rem;margin-top:.65rem;background:#ffffffd9;padding:.55rem .9rem;border-radius:999px;box-shadow:inset 0 0 0 1px #94a3b84d;color:#0f172a;font-weight:500}.dropzone-file-icon{font-size:1.2rem}.dropzone-file-name{max-width:220px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.dropzone-file-size{font-size:.85rem;color:#64748b}.dropzone-disabled .dropzone-file{background:#f1f5f9cc;color:#475569}.import-transactions{max-width:1400px;margin:0 auto;padding:2rem}.import-header{margin-bottom:2rem;text-align:center}.import-header h1{font-size:2rem;color:#2c3e50;margin-bottom:.5rem}.subtitle{color:#7f8c8d;font-size:1rem}.import-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.label-text{display:block}.label-hint{display:block;font-weight:400;font-size:.85rem;color:#7f8c8d;margin-top:.25rem}.form-select{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:4px;font-size:1rem;background:#fff;transition:border-color .3s}.form-select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.file-input-wrapper{display:flex;flex-direction:column;gap:.5rem}.file-input{padding:.75rem;border:2px dashed #e0e0e0;border-radius:4px;background:#f8f9fa;cursor:pointer;transition:all .3s;font-size:1rem}.file-input:hover{border-color:#3498db;background:#f0f8ff}.file-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.file-info{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#e8f5e9;border-radius:4px;font-size:.9rem}.file-name{font-weight:600;color:#2c3e50}.file-size{color:#7f8c8d;font-size:.85rem}.advanced-options{border:1px dashed #dfe4ea;border-radius:8px;padding:.75rem 1rem 1rem;margin-top:1.25rem;background:#f8f9fb;color:#576574}.advanced-options[open]{background:#f1f4f8}.advanced-options summary{cursor:pointer;font-weight:600;color:#2c3e50;outline:none;list-style:none}.advanced-options summary::-webkit-details-marker{display:none}.advanced-options summary:before{content:"➕";display:inline-block;margin-right:.5rem;transition:transform .2s}.advanced-options[open] summary:before{transform:rotate(45deg)}.advanced-grid{display:grid;gap:1rem;margin-top:1rem}.form-group.compact{margin-bottom:0}.form-group.compact .label-hint{font-size:.8rem}.form-group.compact.toggle-sound{display:flex;align-items:center;justify-content:space-between;gap:1.25rem}.toggle-sound-text{flex:1;min-width:0}.toggle-switch{position:relative;display:inline-flex;width:48px;height:26px;flex-shrink:0}.toggle-switch .slider{position:absolute;cursor:pointer;inset:0;background-color:#d1d5db;border-radius:26px;transition:background-color .25s ease,box-shadow .25s ease}.toggle-switch .slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;top:3px;background-color:#fff;border-radius:50%;transition:transform .25s ease;box-shadow:0 1px 3px #0003}.toggle-switch input:checked+.slider{background-color:#2563eb;box-shadow:0 0 0 3px #2563eb40}.toggle-switch input:checked+.slider:before{transform:translate(20px)}.toggle-switch input:focus-visible+.slider{box-shadow:0 0 0 3px #2563eb59}.form-actions{margin-top:2rem;display:flex;justify-content:center;gap:1rem}.analysis-panel{margin-top:2rem;background:#f4f8ff;border:1px solid #d6e4ff;border-left:4px solid #1d4ed8;border-radius:8px;padding:1.5rem 1.75rem;box-shadow:0 4px 12px #1d4ed814}.analysis-panel h2{margin:0 0 .5rem;color:#1d4ed8}.analysis-subtitle{margin:0;color:#4263eb;font-size:.95rem}.analysis-summary{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-top:1.5rem}.analysis-summary-item{background:#fff;border-radius:6px;padding:1rem;border:1px solid #e0e7ff;display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}.analysis-summary-item.import-ready{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;box-shadow:0 10px 25px #2563eb40}.analysis-summary-value{font-size:1.8rem;font-weight:700;color:#1e3a8a}.analysis-summary-item.import-ready .analysis-summary-value{color:#fff}.analysis-summary-value.error{color:#dc2626}.analysis-summary-value.ok{color:#16a34a}.analysis-summary-label{font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.analysis-summary-item.import-ready .analysis-summary-label{color:#ffffffd9}.analysis-details{display:grid;gap:1rem;margin-top:1.5rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.analysis-detail-card{background:#fff;border-radius:6px;border:1px solid #e0e7ff;padding:1rem;color:#1e293b}.analysis-detail-card-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}.analysis-detail-card.warning{border-color:#facc15;background:linear-gradient(135deg,#fffbea,#fef3c7)}.analysis-detail-card ul{margin:.5rem 0 0 1rem;padding:0;list-style:disc;color:#27364b}.analysis-missing-list{margin:.75rem 0 0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.75rem}.analysis-missing-list>li{list-style:disc}.analysis-missing-samples{margin:.5rem 0 .25rem;padding-left:1.25rem;list-style:circle;font-size:.85rem;color:#334155;display:flex;flex-direction:column;gap:.25rem}.analysis-missing-samples code{background:#0000000d;padding:.1rem .4rem;border-radius:4px;font-size:.85rem}.badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;letter-spacing:.02em}.badge-info{background:#e0f2fe;color:#0369a1}.label-mismatch-card .analysis-note{margin-bottom:.75rem}.label-mismatch-table{width:100%;min-width:720px;border-collapse:collapse}.label-mismatch-table th,.label-mismatch-table td{border-bottom:1px solid #e2e8f0;padding:.6rem .5rem;vertical-align:top;text-align:left}.label-mismatch-table th{background:#f8fafc;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:#475569}.label-mismatch-table .amount-cell{text-align:right;white-space:nowrap}.existing-transaction-list{margin:0;padding-left:1.15rem;display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:#334155}.existing-transaction-list li{list-style:disc}.existing-tx-date{font-weight:600;color:#1e293b}.existing-tx-description{color:#1f2937}.existing-tx-amount{font-weight:600;color:#1d4ed8;margin-left:.25rem}.existing-tx-category{color:#64748b}.analysis-messages{margin-top:2rem}.analysis-messages-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.analysis-message-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1rem;box-shadow:0 4px 12px #0f172a0d;min-height:180px}.analysis-message-card.has-error{border-color:#f87171;box-shadow:0 8px 18px #f8717133}.analysis-message-card h3{margin-top:0;margin-bottom:.75rem;font-size:1.05rem;color:#1e293b}.analysis-message-list{margin:0;padding-left:1.2rem;display:flex;flex-direction:column;gap:.6rem;color:#1f2937;font-size:.92rem}.analysis-message-list li{white-space:pre-wrap;line-height:1.35}.analysis-message-empty{color:#64748b;font-size:.9rem;font-style:italic;margin:0}.analysis-message-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.btn-small{padding:.25rem .6rem;font-size:.85rem;border-radius:4px}.btn-small.btn-secondary{background:#f1f5f9;border:1px solid #cbd5f5;color:#1e293b}.btn-small.btn-secondary:hover{background:#e2e8f0}.btn-small.btn-primary{background:#3498db;border:none;color:#fff}.btn-small.btn-primary:hover{background:#2980b9}.pdf-running-balance{margin-top:.85rem;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden;background:#f8fafc}.pdf-running-balance table{width:100%;border-collapse:collapse;font-size:.88rem}.pdf-running-balance thead th{background:#e2e8f0;color:#1e293b;padding:.45rem .6rem;text-align:left;border-bottom:1px solid #cbd5f5}.pdf-running-balance tbody td{padding:.45rem .6rem;border-bottom:1px solid #e2e8f0;color:#1f2937}.pdf-running-balance tbody tr:last-child td{border-bottom:none}.pdf-running-balance .amount-cell{text-align:right;font-variant-numeric:tabular-nums}.pdf-running-balance tbody td:nth-child(2){max-width:260px;word-break:break-word}.modal-overlay{position:fixed;inset:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem}.modal-content{background:#fff;border-radius:10px;box-shadow:0 12px 28px #0f172a4d;max-width:800px;width:100%;max-height:90vh;display:flex;flex-direction:column}.modal-header{padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.modal-body{padding:1rem 1.25rem;overflow-y:auto}.modal-footer{padding:.75rem 1.25rem;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end}.pdf-running-balance-table{width:100%;border-collapse:collapse;font-size:.9rem}.pdf-running-balance-table thead th{background:#f1f5f9;color:#1e293b;padding:.55rem .75rem;text-align:left;border-bottom:1px solid #d8e0f0}.pdf-running-balance-table tbody td{padding:.5rem .75rem;border-bottom:1px solid #e2e8f0}.pdf-running-balance-table .amount-cell{text-align:right;font-variant-numeric:tabular-nums}.pdf-running-balance-table tbody tr:last-child td{border-bottom:none}.pdf-running-balance-summary td{font-weight:600;background:#eafff3;color:#1e293b}.pdf-running-balance-diff td{font-weight:600;background:#fff3cd;color:#92400e}.analysis-note-list{margin:.5rem 0 0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.35rem}.analysis-note-list li{list-style:disc;color:#1f2937;font-size:.95rem}.analysis-table-wrapper{margin-top:.75rem;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;box-shadow:inset 0 1px #fff9;max-height:260px;overflow-y:auto;overflow-x:auto}.analysis-uncategorized-table{width:100%;min-width:680px;border-collapse:collapse;font-size:.92rem;background:#fff}.analysis-uncategorized-table thead th{position:sticky;top:0;background:#f8fafc;color:#1f2937;text-align:left;padding:.5rem .75rem;border-bottom:1px solid #e2e8f0;font-weight:600;letter-spacing:.01em}.analysis-uncategorized-table tbody td{padding:.45rem .75rem;border-bottom:1px solid #f1f5f9;color:#1f2937}.analysis-uncategorized-table tbody tr:last-child td{border-bottom:none}.analysis-uncategorized-table .amount-cell{text-align:right;font-variant-numeric:tabular-nums}.analysis-detail-card.info{background:linear-gradient(135deg,#eef2ff,#e0f2fe);border-color:transparent}.analysis-note{color:#64748b;font-size:.85rem}.analysis-note.emphasis{margin-top:.5rem;font-size:.85rem;color:#92400e;font-weight:600}.btn-primary{padding:.75rem 2rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:.5rem}.btn-primary:disabled{opacity:.6;cursor:not-allowed;background-color:#95a5a6}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.weather-loading-message{display:inline-block;margin-left:.5rem;min-width:250px;text-align:left;opacity:1;transition:opacity .3s ease-in-out;vertical-align:middle}.weather-loading-message.visible{opacity:1}.weather-loading-message.hidden{opacity:0;pointer-events:none}.import-info{background:#f8f9fa;padding:1.5rem;border-radius:8px;border-left:4px solid #3498db}.import-info h3{color:#2c3e50;margin-top:0;margin-bottom:1rem;font-size:1.1rem}.import-info ul{margin:0;padding-left:1.5rem;color:#555}.import-info li{margin-bottom:.5rem;line-height:1.5}.import-info li strong{color:#2c3e50}.balance-panel{margin-top:2rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 2px 4px #0f172a14;overflow:hidden}.balance-panel summary{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;cursor:pointer;font-weight:600;font-size:1.05rem;color:#1f2937}.balance-panel summary::-webkit-details-marker{display:none}.balance-panel[open] summary{border-bottom:1px solid #e2e8f0}.balance-summary{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.balance-summary-badge{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:999px;font-size:.85rem;font-weight:600}.balance-summary-badge.ok{background:#e6f4ea;color:#1e7e34}.balance-summary-badge.warn{background:#fdecea;color:#b71c1c}.balance-summary-badge.info{background:#e8f4fd;color:#0c4a6e}.balance-content{padding:1.25rem;display:grid;gap:1rem}.balance-section{border:1px solid #e2e8f0;border-radius:8px;padding:1rem;background:#f8fafc}.balance-section.ok{border-color:#c6f6d5;background:#f0fff4}.balance-section.warn{border-color:#fed7d7;background:#fff5f5}.balance-section.info{border-color:#bfdbfe;background:#eff6ff}.balance-section header{display:flex;align-items:center;justify-content:space-between;font-weight:600;margin-bottom:.75rem;color:#1f2937}.balance-section-status{font-size:.9rem;color:#475569}.balance-values{list-style:none;padding:0;margin:0;display:grid;gap:.35rem;font-size:.95rem}.balance-values li{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.balance-values li span:first-child{color:#64748b}.balance-inline-note{font-size:.85rem;color:#6b7280}.balance-inline-note.ok{color:#1e7e34}.balance-inline-note.warn{color:#b91c1c}.balance-period{padding:.5rem 0;margin-bottom:.75rem;border-bottom:1px solid #e9ecef}.balance-period-label{font-weight:600;color:#495057;margin-right:.5rem}.balance-period-value{color:#212529;font-family:Courier New,monospace;font-size:.9rem}.balance-subnote{margin-top:.75rem;font-size:.9rem;color:#475569}.review-panel{margin-top:2rem;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.review-details{border:1px solid #e2e8f0;border-radius:6px;padding:.75rem 1rem}.review-details summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-weight:600;color:#1f2937;font-size:1.05rem;outline:none}.review-details summary::-webkit-details-marker{display:none}.review-details[open]{background:#f8fafc}.review-details[open] .preview-info,.review-details[open] .uncategorized-alert,.review-details[open] .review-table-wrapper{margin-top:1rem}.summary-count{font-size:.9rem;color:#475569;background:#e2e8f0;border-radius:999px;padding:.25rem .75rem;font-weight:600}.review-table-wrapper{overflow-x:auto}.review-table-scroll{max-height:420px;overflow-y:auto;margin-top:1rem;border:1px solid #e2e8f0;border-radius:6px;background:#fff;box-shadow:inset 0 1px 2px #0f172a0d}.review-table-scroll::-webkit-scrollbar{width:8px}.review-table-scroll::-webkit-scrollbar-thumb{background:#94a3b899;border-radius:999px}.review-table-scroll::-webkit-scrollbar-thumb:hover{background:#64748bcc}.review-table{width:100%;border-collapse:collapse}.review-table th,.review-table td{padding:.75rem;border-bottom:1px solid #eee;text-align:left}.review-table th{background:#f8f9fa;font-weight:600}.review-table tr.uncategorized{background:#fff3cd!important;border-left:4px solid #ffc107!important;animation:pulse-uncategorized 2s ease-in-out infinite;position:relative}.review-table tr.uncategorized:hover{background:#ffe69c!important;box-shadow:0 2px 8px #ffc1074d}@keyframes pulse-uncategorized{0%,to{box-shadow:0 0 #ffc10766}50%{box-shadow:0 0 0 4px #ffc10700}}.review-table tr.uncategorized td{font-weight:500;position:relative}.review-table tr.uncategorized td:first-child:before{content:"⚠️";margin-right:.5rem;font-size:1.1rem;display:inline-block}.review-table tr.preview-row{background:#f1f5f9}.category-preview-label{display:inline-block;padding:.35rem .6rem;background:#e2e8f0;color:#475569;border-radius:4px;font-size:.85rem;font-weight:600}.preview-info{margin-bottom:1rem;padding:.75rem 1rem;background:#fffbea;border-left:4px solid #f59e0b;border-radius:6px;color:#78350f}.inline-select{padding:6px 10px;border:1px solid #ddd;border-radius:4px;background:#fff}.duplicates-panel{margin-top:2rem;background:#fffaf0;border:1px solid #ffedd5;border-left:4px solid #f97316;border-radius:8px;padding:1.5rem;box-shadow:0 2px 6px #f973161a}.duplicates-panel h2{margin-top:0;margin-bottom:.75rem;color:#c2410c;display:flex;align-items:center;gap:.5rem}.duplicates-panel h2:before{content:"⚠️"}.duplicates-panel p{margin:0 0 1rem;color:#92400e;font-size:.95rem}.duplicates-panel.preview-duplicates{background:#fff7ed;border-color:#fed7aa;border-left-color:#fb923c}.duplicates-subpanel{margin-top:1.5rem;padding:1rem 1.25rem;border-radius:6px;border:1px solid #fed7aa;background:linear-gradient(135deg,#fffaf0,#fff7ed)}.duplicates-subpanel+.duplicates-subpanel{margin-top:1.25rem}.duplicates-subpanel h3{margin-top:0;margin-bottom:.5rem;color:#c2410c}.duplicates-actions{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.duplicates-actions .btn-secondary,.duplicates-actions .btn-tertiary{padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:transform .2s,box-shadow .2s}.duplicates-actions .btn-secondary{background:#fde68a;color:#92400e}.duplicates-actions .btn-secondary:hover{background:#fcd34d}.duplicates-actions .btn-tertiary{background:#f1f5f9;color:#475569}.duplicates-actions .btn-tertiary:hover{background:#e2e8f0}.duplicates-table-wrapper{overflow-x:auto;margin-bottom:1rem}.duplicates-table-wrapper.scrollable{max-height:320px;overflow-y:auto;border-radius:6px;border:1px solid #ffe4b5;background:#fff}.duplicates-table-wrapper.scrollable::-webkit-scrollbar{width:8px}.duplicates-table-wrapper.scrollable::-webkit-scrollbar-thumb{background:#fb923c80;border-radius:999px}.duplicates-table-wrapper.scrollable::-webkit-scrollbar-thumb:hover{background:#ea580cb3}.duplicates-table{width:100%;border-collapse:collapse;background:#fff;border-radius:6px;overflow:hidden}.duplicates-table th,.duplicates-table td{padding:.75rem;border-bottom:1px solid #ffe4b5;text-align:left;font-size:.95rem}.duplicates-table th{background:#fff7ed;color:#9a3412;font-weight:600}.duplicates-table td.amount-cell{font-variant-numeric:tabular-nums;text-align:right}.duplicates-note{margin-bottom:.75rem;font-size:.85rem;color:#b45309}.duplicates-warning{margin-bottom:.75rem;font-size:.85rem;color:#b91c1c;font-weight:600}.preview-existing-row{opacity:.7;background:#fff1f2}.duplicates-table tr:last-child td{border-bottom:none}.btn-import-duplicates{padding:.75rem 1.5rem;background:#f97316;color:#fff;border:none;border-radius:4px;font-weight:600;cursor:pointer;transition:background .2s,transform .2s}.btn-import-duplicates:hover:not(:disabled){background:#ea580c;transform:translateY(-1px)}.btn-import-duplicates:disabled{background:#fbbf24;cursor:not-allowed;opacity:.7}.pdf-details-inline{margin-top:.25rem;font-size:.75rem}.pdf-details-inline summary{cursor:pointer;color:#6b7280;-webkit-user-select:none;user-select:none}.pdf-details-inline summary:hover{color:#3b82f6}.pdf-details-inline pre{margin:.25rem 0 0;padding:.5rem;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;font-size:.7rem;font-family:SF Mono,Monaco,Inconsolata,monospace;color:#475569;white-space:pre-wrap;word-break:break-word;line-height:1.3}.account-mappings{max-width:1000px;margin:0 auto;padding:2rem}.form-input,.form-select{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:4px;font-size:1rem;transition:border-color .3s}.form-input:focus,.form-select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.mappings-table th{background-color:#f8f9fa;font-weight:600;color:#2c3e50}.mappings-table tr:hover{background-color:#f8f9fa}.csv-label-cell{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem}.csv-label-cell code{background:#f0f0f0;padding:.25rem .5rem;border-radius:3px;color:#e74c3c}.transaction-label-mappings{max-width:1200px;margin:0 auto;padding:2rem}.mappings-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.mappings-header h1{margin:0 0 .5rem;color:#2c3e50}.subtitle{color:#7f8c8d;font-size:1rem;margin:0}.mapping-form-container{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.mapping-form h3{margin-top:0;margin-bottom:1.5rem;color:#2c3e50}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#2c3e50}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.form-input,.form-select,.form-textarea{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:4px;font-size:1rem;transition:border-color .3s;font-family:inherit}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.form-textarea{resize:vertical;min-height:60px}.form-hint{display:block;margin-top:.25rem;font-size:.85rem;color:#7f8c8d}.form-checkbox{width:18px;height:18px;cursor:pointer}.form-actions{display:flex;gap:1rem;margin-top:1.5rem}.btn-secondary{padding:.75rem 1.5rem;background-color:#95a5a6;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-secondary:hover{background-color:#7f8c8d}.mappings-list{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.filters-bar{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin-bottom:1.5rem;align-items:flex-end}.filter-item{display:flex;flex-direction:column;min-width:220px}.filter-item label{font-weight:600;color:#2c3e50;margin-bottom:.35rem}.filter-input,.filter-select{padding:.6rem .75rem;border:2px solid #e0e0e0;border-radius:4px;font-size:.95rem;font-family:inherit;transition:border-color .3s}.filter-input:focus,.filter-select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.category-filter-dropdown .dropdown-toggle{padding:.6rem .75rem;border:2px solid #e0e0e0;border-radius:4px;font-size:.95rem;font-weight:500;color:#2c3e50}.category-filter-dropdown .dropdown-toggle:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.mappings-list h2{margin-top:0;margin-bottom:1.5rem;color:#2c3e50}.amount-labels-section{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #00000014;margin-bottom:2rem}.amount-labels-section h2{margin:0 0 .75rem;color:#2c3e50}.amount-labels-section .section-description{margin:0 0 1.5rem;color:#5f6c7b}.amount-labels-form{margin-bottom:1.5rem}.amount-labels-preview{margin:1rem 0 1.5rem;padding:1rem;background-color:#f8fafc;border:1px solid #e3e8ef;border-radius:8px}.amount-labels-preview-title{margin:0 0 .75rem;font-weight:600;color:#2c3e50}.amount-labels-chips{display:flex;flex-wrap:wrap;gap:.5rem}.amount-label-chip{display:inline-flex;align-items:center;padding:.35rem .75rem;border-radius:999px;border:1px solid #dfe4ea;background-color:#fff;color:#2c3e50;font-size:.9rem}.amount-label-chip-account{margin-left:.35rem;color:#7f8c8d;font-size:.8rem}.amount-labels-table{width:100%;border-collapse:collapse}.amount-labels-table th,.amount-labels-table td{padding:.85rem 1rem;border-bottom:1px solid #e0e0e0;text-align:left}.amount-labels-table th{background-color:#f8f9fa;font-weight:600;color:#2c3e50}.amount-labels-table code{background:#f0f4f8;padding:.15rem .3rem;border-radius:4px;font-size:.85rem}.amount-labels-section .form-actions{margin-top:.5rem}.amount-labels-section .btn-icon{margin-right:.25rem}.amount-labels-section .btn-icon:last-child{margin-right:0}.amount-labels-section .empty-state{padding:2rem}.table-container{overflow-x:auto}.mappings-table{width:100%;border-collapse:collapse}.mappings-table th,.mappings-table td{padding:1rem;text-align:left;border-bottom:1px solid #e0e0e0}.mappings-table th{background-color:#f8f9fa;font-weight:600;color:#2c3e50;font-size:.9rem}.mappings-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sort-indicator{margin-left:6px;color:#7f8c8d}.mappings-table tr:hover:not(.inactive){background-color:#f8f9fa}.mappings-table tr.inactive{opacity:.6;background-color:#f8f9fa}.pattern-cell{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem}.pattern-cell code{background:#f0f0f0;padding:.25rem .5rem;border-radius:3px;color:#e74c3c}.badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.badge-match-type{background-color:#3498db;color:#fff}.badge-tx-type{background-color:#16a085;color:#fff}.badge-priority{background-color:#9b59b6;color:#fff}.badge-explicit,.badge-learned{background:transparent;color:#6b7280;border:1px solid #e5e7eb;padding:.1rem .4rem;font-size:.78rem;border-radius:9999px}.badge-explicit:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background-color:#6bbf8a;margin-right:6px}.badge-learned:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background-color:#eab308;margin-right:6px}.badge-active{background-color:#27ae60;color:#fff}.badge-inactive{background-color:#95a5a6;color:#fff}.priority-cell{text-align:center}.actions-cell{display:flex;gap:.5rem}.btn-icon{background:none;border:none;cursor:pointer;padding:.5rem;font-size:1.2rem;transition:transform .2s;border-radius:4px}.btn-icon:hover{transform:scale(1.1)}.btn-view:hover{background-color:#2ecc711f}.btn-close:hover{background-color:#95a5a633}.btn-small{padding:.5rem 1rem;font-size:.9rem}.btn-edit:hover{background-color:#3498db1a}.btn-delete:hover{background-color:#e74c3c1a}.btn-apply:hover{background-color:#0066cc1a}.empty-state .hint{font-size:.9rem;margin-top:.5rem}.mappings-info{background:#f8f9fa;padding:1.5rem;border-radius:8px;border-left:4px solid #3498db}.mappings-info h3{margin-top:0;color:#2c3e50}.mappings-info ol{margin:1rem 0;padding-left:1.5rem}.mappings-info li{margin-bottom:.75rem;line-height:1.6}.mappings-info ul{margin:.5rem 0;padding-left:1.5rem}.mappings-info code{background:#e0e0e0;padding:.1rem .3rem;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem}.info-box{margin-top:1.5rem;padding:1rem;background:#e8f5e9;border-radius:4px;border-left:3px solid #27ae60}.loading{text-align:center;padding:2rem;color:#7f8c8d}.test-pattern{background:#f8f9fa;padding:1rem;border-radius:4px;border:1px solid #e0e0e0}.test-input-group{display:flex;gap:.5rem}.test-input-group .form-input{flex:1}.btn-test{padding:.75rem 1.5rem;background-color:#9b59b6;color:#fff;border:none;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s;white-space:nowrap}.btn-test:hover:not(:disabled){background-color:#8e44ad}.btn-test:disabled{opacity:.5;cursor:not-allowed}.test-result{margin-top:.75rem;padding:.75rem;border-radius:4px;font-size:.9rem;font-weight:500}.test-result.match{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.test-result.no-match{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.category-cell{font-weight:500}.category-editable{cursor:pointer;padding:4px 8px;border-radius:4px;display:inline-flex;align-items:center;gap:4px;transition:background-color .2s}.category-editable:hover{background-color:#f0f0f0}.category-editable .edit-hint{opacity:0;font-size:.8em;transition:opacity .2s}.category-editable:hover .edit-hint{opacity:.6}.inline-select{padding:4px 8px;border:1px solid #ddd;border-radius:4px;font-size:.9em;min-width:200px;background-color:#fff}.inline-select:focus{outline:2px solid #4CAF50;outline-offset:2px}.amount-mappings-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1.5rem}.amount-mappings-modal{background:#fff;border-radius:12px;max-width:640px;width:100%;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0003}.amount-mappings-modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem;border-bottom:1px solid #e5e7eb}.amount-mappings-modal-header h3{margin:0;color:#1f2933}.amount-mappings-modal-subtitle{margin:.25rem 0 0;color:#6b7280;font-size:.9rem}.amount-mappings-modal-body{padding:1.5rem;overflow-y:auto}.amount-mappings-modal-table{width:100%;border-collapse:collapse}.amount-mappings-modal-table th,.amount-mappings-modal-table td{padding:.75rem;text-align:left;border-bottom:1px solid #e5e7eb;font-size:.95rem}.amount-mappings-modal-table th{background-color:#f5f7fa;font-weight:600;color:#1f2933}.amount-mappings-modal-footer{padding:1rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end}.modal-error{color:#e74c3c;font-weight:600}.budget-calendar{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.calendar-controls{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.calendar-month-year{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.calendar-month-year h2{margin:0;color:#2c3e50;font-size:1.5rem;text-transform:capitalize}.btn-today{background:#3498db;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;cursor:pointer;transition:all .2s}.calendar-month-selector{display:flex;justify-content:center;margin-top:1rem}.month-input{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;cursor:pointer}.month-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.budget-grid{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.grid-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #3498db}.grid-header h2{margin:0;color:#2c3e50;font-size:1.3rem;text-transform:capitalize}.budget-table{display:flex;flex-direction:column}.table-header{display:grid;grid-template-columns:2.6fr 1.2fr 1.2fr 1fr;gap:1.2rem;padding:1rem;background:#f8f9fa;border-radius:4px;font-weight:600;color:#2c3e50;margin-bottom:.5rem}.table-header .col-budget,.table-header .col-expenses{text-align:right}.table-body{display:flex;flex-direction:column}.budget-row{display:grid;grid-template-columns:2.6fr 1.2fr 1.2fr 1fr;gap:1.2rem;padding:.6rem 1rem;border-bottom:1px solid #eee;transition:background-color .2s;min-height:auto;line-height:1.4}.budget-row:hover{background-color:#f8f9fa}.budget-row.level-0{font-weight:600}.budget-row.level-1{font-size:.95rem;background-color:#fafafa;padding:.5rem 1rem}.category-cell{display:flex;align-items:center}.category-info{display:flex;align-items:center;gap:.5rem}.tree-toggle{border:none;background:none;cursor:pointer;font-size:1.4rem;line-height:1;padding:.5rem;min-width:40px;min-height:40px;color:#5f6c7b;transition:color .2s,background-color .2s;border-radius:6px;display:inline-flex;align-items:center;justify-content:center}.tree-toggle:hover{color:#3498db;background-color:#3498db26}.category-badge{display:inline-block;width:16px;height:16px;border-radius:4px;flex-shrink:0;box-shadow:0 1px 3px #0003}.category-name{color:#2c3e50}.budget-cell{background:linear-gradient(90deg,#3498db14,#3498db08);padding:.35rem .5rem;border-radius:4px;display:flex;align-items:center;justify-content:flex-end}.budget-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;width:100%}.budget-amount{color:#2c3e50;font-weight:500;font-size:.95rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right;display:inline-flex;justify-content:flex-end;width:100%}.budget-amount.editable{cursor:pointer;padding:.2rem .4rem;border-radius:3px;transition:all .2s ease;-webkit-user-select:none;user-select:none;background:#3498db0d}.budget-amount.editable:hover{background:#3498db26;transform:scale(1.02);box-shadow:0 1px 3px #3498db33}.budget-input-group{display:flex;align-items:center;gap:.25rem}.budget-input{width:100px;padding:.4rem .5rem;border:1px solid #3498db;border-radius:4px;font-size:.9rem}.budget-input:focus{outline:none;box-shadow:0 0 0 3px #3498db1a}.btn-save,.btn-cancel{background:none;border:none;width:24px;height:24px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.btn-save{color:#27ae60}.btn-save:hover{background:#27ae60;color:#fff}.btn-cancel{color:#e74c3c}.btn-cancel:hover{background:#e74c3c;color:#fff}.btn-icon{background:none;border:none;cursor:pointer;padding:.25rem;font-size:1rem;transition:transform .2s;opacity:.7}.btn-icon:hover{opacity:1;transform:scale(1.1)}.btn-small{font-size:.85rem;padding:.2rem}.btn-danger{color:#e74c3c}.expenses-cell{color:#e74c3c;font-weight:600;font-size:.95rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:linear-gradient(90deg,#e74c3c14,#e74c3c08);padding:.35rem .5rem;border-radius:4px;display:flex;align-items:center;justify-content:flex-end}.budgets.compact-mode .budget-grid .expenses-cell{padding:.2rem 1.6rem}.remaining-cell{font-weight:600;display:flex;align-items:center;justify-content:flex-end}.remaining-cell .positive,.remaining-cell .negative{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.95rem}.remaining-cell .positive{color:#27ae60}.remaining-cell .negative{color:#e74c3c}.amount-cell{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:600;display:inline-flex;justify-content:flex-end;width:100%}.progress-cell{display:flex;align-items:center}.progress-bar-container{position:relative;width:100%;height:24px;background:#ecf0f1;border-radius:12px;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,#2ecc71,#27ae60);transition:width .3s,background-color .3s;border-radius:12px}.progress-bar.warning{background:linear-gradient(90deg,#f5b041,#f39c12)}.progress-bar.over-budget{background:linear-gradient(90deg,#e74c3c,#c0392b)}.progress-bar-container .percentage{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.75rem;font-weight:600;color:#1f7a3f;z-index:1}.progress-bar-container .percentage.warning{color:#d35400}.progress-bar-container .percentage.over-budget{color:#c0392b}.progress-bar-container .percentage.safe{color:#1f7a3f}.category-children{grid-column:1 / -1;margin-left:1.5rem;border-left:2px solid #e0e0e0;padding-left:1rem}.empty-state{padding:3rem;text-align:center;color:#7f8c8d}.section-header{grid-column:1 / -1;background:#f8f9fa!important;border-top:3px solid #3498db;border-bottom:2px solid #e0e0e0;font-weight:800;font-size:1.15rem;padding:.75rem 1.5rem;margin:1.25rem 0 .75rem;border-radius:4px;letter-spacing:.02em}.section-header.income-section{background:linear-gradient(90deg,#27ae6040,#27ae6026)!important;border-top-color:#27ae60;border-top-width:4px;border-bottom:2px solid rgba(39,174,96,.3);margin-top:1.5rem;box-shadow:0 2px 6px #27ae6033;color:#1a5d2e;font-weight:900}.section-header.expense-section{background:linear-gradient(90deg,#e74c3c40,#e74c3c26)!important;border-top-color:#e74c3c;border-top-width:4px;border-bottom:2px solid rgba(231,76,60,.3);margin-top:1.5rem;box-shadow:0 2px 6px #e74c3c33;color:#a93226;font-weight:900}.section-header.loan-section{background:linear-gradient(90deg,#e67e221a,#e67e220d)!important;border-top-color:#e67e22}.section-header.savings-section{background:linear-gradient(90deg,#9b59b61a,#9b59b60d)!important;border-top-color:#9b59b6}.section-title{display:flex;align-items:center;gap:.75rem;color:#2c3e50}.budget-grid.compact .table-header,.budget-grid.compact .budget-row{grid-template-columns:2.5fr 1.5fr;gap:1rem}.budget-summary-panel{margin-top:1.5rem;padding:1rem 1.25rem;border-radius:8px;background:#fdfdfd;border:1px solid #e9ecef;box-shadow:inset 0 0 0 1px #fff9}.budget-summary-header{font-weight:700;color:#1f2d3d;margin-bottom:.75rem;text-transform:uppercase;font-size:.85rem;letter-spacing:.06em}.budget-summary-body{display:flex;flex-direction:column;gap:.4rem}.summary-panel-row{display:flex;justify-content:space-between;align-items:baseline;font-size:.95rem;padding:.35rem 0;border-bottom:1px dashed rgba(0,0,0,.05)}.summary-panel-discreet{font-style:italic;font-weight:500;background:transparent!important;padding:.3rem 0}.summary-panel-discreet .summary-panel-label,.summary-panel-discreet .summary-panel-amount{font-weight:500;color:#546e7a}.summary-total-row{font-weight:800;padding:.5rem .6rem;border-radius:6px;margin:.3rem 0;border-bottom:2px solid}.summary-total-income{background:linear-gradient(90deg,#27ae6026,#27ae6014);border-bottom-color:#27ae6066}.summary-total-income .summary-panel-label{font-weight:800;color:#185c34;font-size:1rem}.summary-total-income .summary-panel-amount{font-weight:800;font-size:1.1rem}.summary-total-expense{background:linear-gradient(90deg,#e74c3c26,#e74c3c14);border-bottom-color:#e74c3c66}.summary-total-expense .summary-panel-label{font-weight:800;color:#a93226;font-size:1rem}.summary-total-expense .summary-panel-amount{font-weight:800;font-size:1.1rem}.summary-panel-row:last-child{border-bottom:none}.summary-panel-row.subtle{background:#fff8f280;border-radius:4px;padding:.45rem .5rem}.summary-panel-label-group{display:flex;flex-direction:column;gap:.2rem}.summary-panel-label{font-weight:600;color:#374151}.summary-panel-value-with-action{display:flex;align-items:center;gap:.75rem}.summary-panel-detail{font-size:.8rem;color:#6b7280}.summary-panel-amount{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.summary-panel-amount.positive{color:#1f7a3f}.summary-panel-amount.negative{color:#c0392b}.summary-panel-amount.neutral{color:#6c757d}.transfer-details-btn{background:transparent;border:1px solid #6c757d;border-radius:4px;padding:.15rem .5rem;font-size:.75rem;color:#6c757d;cursor:pointer;transition:all .2s ease}.transfer-details-btn:hover{background:#6c757d1a}.transfer-details-panel{margin-top:.5rem;border:1px solid #f1c40f;border-radius:6px;background:#fffdf5;padding:.75rem}.transfer-details-status{font-size:.85rem;color:#8c6d1f}.transfer-details-status.error{color:#c0392b}.transfer-details-list{display:flex;flex-direction:column;gap:.35rem;max-height:220px;overflow-y:auto}.transfer-details-item{display:grid;grid-template-columns:65px 1.2fr 2fr auto;gap:.5rem;font-size:.85rem;align-items:center;padding:.35rem .25rem;border-bottom:1px solid rgba(0,0,0,.05)}.transfer-details-item:last-child{border-bottom:none}.transfer-details-date{color:#6c7384;font-weight:600}.transfer-details-account{font-weight:600;color:#1f2d3d}.transfer-details-description{color:#4b5563}.transfer-details-amount{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.transfer-details-amount.positive{color:#1f7a3f}.transfer-details-amount.negative{color:#c0392b}.summary-panel-note{margin-top:.75rem;font-size:.8rem;color:#6c7384;font-style:italic}.budget-grid.compact .col-budget,.budget-grid.compact .col-remaining,.budget-grid.compact .col-progress,.budget-grid.compact .budget-cell,.budget-grid.compact .remaining-cell,.budget-grid.compact .progress-cell{display:none}.budget-grid.compact .expenses-cell{background:linear-gradient(90deg,#34495e14,#34495e08);color:#2c3e50}.budget-grid.compact .budget-row.level-0{font-weight:600}.budgets.compact-mode .budget-grid{box-shadow:none;border:1px dashed #dfe4ea;background:#fdfdfd}.budgets.compact-mode .budget-grid .table-header{background:#f1f3f5}.budgets.compact-mode .budget-grid .expenses-cell{font-weight:600}.budget-grid.compact{padding:1.1rem 1.5rem}.budget-grid.compact .table-header,.budget-grid.compact .budget-row{grid-template-columns:2.3fr minmax(7rem,1fr);gap:.75rem;padding:.2rem 1.2rem}.budget-grid.compact .col-expenses{text-align:right;font-variant-numeric:tabular-nums}.budget-grid.compact .expenses-cell{display:flex;justify-content:flex-end;align-items:center;padding:.2rem 1.2rem;font-variant-numeric:tabular-nums;font-weight:600;background:linear-gradient(90deg,#34495e14,#34495e08);color:#2c3e50}.budget-grid.compact .budget-row.level-0 .expenses-cell{font-weight:700}.budget-grid.compact .compact-realized{justify-content:flex-end}.budget-grid.compact .compact-amount{font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums}.totals-row{font-weight:700;border-top:2px solid #e0e0e0;background-color:#fafafa}.totals-row:hover{background-color:#f5f5f5}.totals-label{font-weight:700;color:#2c3e50;font-size:.95rem}.totals-row.uncategorized-row,.totals-row.transfer-row{background-color:#fefefe;border-top:1px dashed #ddd}.totals-row.income-totals-row{background:linear-gradient(90deg,#27ae6014,#27ae6008);border-top:2px solid rgba(39,174,96,.3);font-weight:800}.totals-row.expense-totals-row{background:linear-gradient(90deg,#e74c3c14,#e74c3c08);border-top:2px solid rgba(231,76,60,.3);font-weight:800}.totals-row.balance-row{background:linear-gradient(90deg,#3498db26,#3498db14);border-top:3px solid #3498db;font-weight:900;margin-top:.5rem}.balance-label{font-weight:900;color:#2980b9;font-size:1rem}.totals-row .expenses-cell,.totals-row .budget-amount{font-weight:700}.totals-row .amount-cell.positive{color:#27ae60}.totals-row .amount-cell.negative{color:#e74c3c}.budget-year-view{background:#fff;padding:.75rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.year-header{margin-bottom:0;padding-bottom:.5rem;border-bottom:2px solid #3498db;display:flex;align-items:center;justify-content:space-between;position:static}.yearly-summary-banner{position:sticky;top:.5rem;z-index:10;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;padding:.75rem 0;background:linear-gradient(180deg,#fffffff2,#ffffffb3);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid rgba(0,0,0,.05);margin-bottom:.5rem}.summary-item{border-radius:10px;padding:.65rem .85rem;background:#f8f9fa;border:1px solid rgba(0,0,0,.05);display:flex;align-items:center;justify-content:space-between;gap:.75rem;box-shadow:inset 0 0 0 1px #fff6}.summary-item.positive{border-color:#27ae604d;background:linear-gradient(135deg,#27ae6014,#27ae6005)}.summary-item.negative{border-color:#e74c3c4d;background:linear-gradient(135deg,#e74c3c14,#e74c3c05)}.summary-item.balance{border-color:#3498db4d;background:linear-gradient(135deg,#3498db14,#3498db05)}.summary-text{display:flex;flex-direction:column;gap:.15rem}.summary-label{text-transform:uppercase;font-size:.7rem;letter-spacing:.08em;color:#6b7280;font-weight:700}.summary-item strong{font-size:1.1rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.summary-item strong.positive{color:#1e7b4d}.summary-item strong.negative{color:#c0392b}.summary-sublabel{font-size:.7rem;color:#6b7280;margin-top:.1rem}.summary-chart{flex:0 0 auto;width:120px;height:36px}.summary-sparkline{display:flex;align-items:flex-end;gap:3px;height:100%;width:100%}.summary-sparkline--empty{height:100%}.spark-line{flex:1;background:#3498db66;border-radius:2px}.spark-line.negative{background:#e74c3c99}.status-dot{width:11px;height:11px;border-radius:999px;border:1px solid rgba(0,0,0,.1);display:inline-block;margin-right:.4rem;flex-shrink:0;background-color:#bdc3c7}.status-dot{width:11px;height:11px;border-radius:999px;border:1px solid rgba(0,0,0,.1);display:inline-block;flex-shrink:0;background-color:#bdc3c7}.status-dot.status-positive,.status-positive .status-dot{background-color:#2ecc71}.status-dot.status-negative,.status-negative .status-dot{background-color:#e74c3c}.status-dot.status-neutral,.status-neutral .status-dot{background-color:#bdc3c7}.year-header h2{margin:0;color:#2c3e50;font-size:1.2rem}.today-button{background:none;border:none;color:#3498db;font-weight:600;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:background-color .2s ease,color .2s ease}.today-button:hover{background:#3498db1f;color:#2980b9}.table-container{overflow-x:auto;overflow-y:auto;max-width:100%;max-height:calc(100vh - 150px);position:relative}.budget-year-table{width:100%;border-collapse:separate;border-spacing:0;min-width:1900px;font-size:.85rem;table-layout:auto}.section-title-spacer{padding:0;border:none;background:inherit}.budget-year-table thead{background:#f8f9fa}.budget-year-table th{padding:.35rem .4rem;text-align:center;font-weight:600;color:#2c3e50;border-bottom:2px solid #3498db;background:#f8f9fa!important;font-size:.85rem;opacity:1!important;height:auto;min-height:2.5rem;display:table-cell;vertical-align:middle;position:sticky!important;top:0!important;z-index:15!important}.category-header{text-align:left!important;min-width:200px;background:#f8f9fa!important;opacity:1!important;height:auto;min-height:2.5rem;vertical-align:middle;position:sticky!important;left:0!important;top:0!important;z-index:30!important}.month-header{min-width:170px;background:#f8f9fa!important;transition:background-color .2s ease;height:auto;min-height:2.5rem;vertical-align:middle;position:sticky!important;top:0!important;z-index:15!important}.month-header.current-month{background-color:#3498db4f!important;opacity:1!important}.month-header.current-month *{opacity:1!important}.month-name{font-size:.85rem;color:#2c3e50;font-weight:600}.current-indicator{color:#3498db;font-size:.75rem}.total-header{min-width:150px;background:#eaf3ff!important;color:#1f3c88!important;position:sticky!important;top:0!important;z-index:15!important}.total-label{font-size:.75rem;font-weight:600;opacity:.9}.total-year{font-size:.85rem;font-weight:700;margin-top:.2rem}.budget-year-table tbody{background:#fff}.budget-year-table td{padding:0;border:1px solid #e0e0e0;vertical-align:top}.budget-year-table tbody tr{transition:background-color .15s ease}.budget-year-table tbody tr.level-0{font-size:1rem}.budget-year-table tbody tr.level-0 .category-name{font-size:.8rem!important}.budget-year-table tbody tr.level-1{font-size:.95rem}.budget-year-table tbody tr.level-1 .category-name{font-size:.8rem!important}.category-name-cell{background:#fff!important;padding:.4rem .6rem;min-width:200px;opacity:1!important;font-size:.85rem!important;position:sticky!important;left:0!important;z-index:10!important}.budget-year-table tbody tr.totals-row td:first-child{background-color:#f8f9fa!important;z-index:11!important;position:sticky!important;left:0!important}.budget-year-table tbody td:first-child{position:sticky!important;left:0!important}.budget-year-table tbody tr:hover td:first-child{background-color:#f8f9fa!important}.budget-year-table tbody tr.parent-category td:first-child{background-color:#fafafa!important}.budget-year-table tbody tr.parent-category:hover td:first-child{background-color:#f0f0f0!important}.budget-year-table tbody tr.section-header:hover td:first-child,.budget-year-table tbody tr.totals-row:hover td:first-child{background-color:#f8f9fa!important}.budget-year-table tbody tr:hover .category-name-cell{background-color:#f8f9fa!important;opacity:1!important}.budget-year-table tbody tr.parent-category .category-name-cell{background-color:#fafafa!important;opacity:1!important}.budget-year-table tbody tr.parent-category:hover .category-name-cell{background-color:#f0f0f0!important;opacity:1!important}.category-info{display:flex;align-items:center;gap:.5rem;min-height:48px;cursor:pointer}.expand-btn{background:none;border:none;cursor:pointer;font-size:1.4rem;color:#7f8c8d;padding:.5rem;min-width:40px;min-height:40px;text-align:center;transition:color .2s,background-color .2s;border-radius:6px;display:inline-flex;align-items:center;justify-content:center}.expand-btn:hover{color:#3498db;background-color:#3498db26}.expand-spacer{width:40px;display:inline-block}.tree-indent{color:#95a5a6;margin-right:.25rem}.category-badge{display:inline-block;width:14px;height:14px;border-radius:3px;flex-shrink:0;box-shadow:0 1px 2px #0003}.category-name{color:#2c3e50;font-size:.8rem!important}.budget-month-cell{padding:0;text-align:left;vertical-align:top;min-width:220px;background:linear-gradient(135deg,#f8f9fa,#fff);transition:background-color .2s ease}.budgets.compact-mode .budget-year-view .budget-month-cell{min-width:100px;padding:0}.budget-month-cell.clickable-cell{cursor:pointer}.budget-month-cell.clickable-cell:hover{background:linear-gradient(135deg,#e8f4f8,#f0f8fa);box-shadow:inset 0 0 0 2px #3498db33}.budget-month-cell:hover{background:linear-gradient(135deg,#e8f4f8,#f0f8fa)}.total-year-cell{background:linear-gradient(135deg,#e8f4f8,#f0f8fa)!important;border-left:2px solid #3498db;opacity:1!important}.budgets.compact-mode .budget-year-view .total-year-cell{min-width:120px}.total-year-cell .budget-cell-content{background:#fff!important;border:1px solid rgba(52,152,219,.3);opacity:1!important}.totals-row.balance-row .budget-cell-content{opacity:1!important;background:#fff!important}.totals-row.balance-row .budget-month-cell{opacity:1!important;background-color:#fff!important}td.totals-row.balance-row .budget-month-cell,.totals-row.balance-row .budget-month-cell .budget-cell-content{opacity:1!important;background:#fff!important;background-color:#fff!important}.budget-cell-content{padding:.35rem .4rem;position:relative;min-height:64px;display:flex;flex-direction:column;gap:.25rem;background:transparent;border:none;border-radius:4px;margin:.2rem;transition:all .2s ease}.budgets.compact-mode .budget-year-view .budget-cell-content{min-height:24px;padding:.2rem .3rem}.budget-cell-content.compact-mode-content{flex-direction:row;justify-content:flex-end;align-items:center;gap:.5rem}.budget-cell-content.compact-mode-content .compact-realized-value{font-size:.95rem;font-weight:600;text-align:right;font-variant-numeric:tabular-nums;min-width:80px}.budget-realized-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.budget-label{color:#7f8c8d;font-weight:500;font-size:.85rem}.budget-value{font-weight:600;color:#2c3e50;font-size:.9rem}.budget-value,.realized-value,.remaining-value,.budget-cell-content .amount-value,.budget-month-cell .amount-value{color:#2c3e50;font-size:.95rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;text-align:right;display:inline-flex;justify-content:flex-end;width:100%}.amount-value.editable{cursor:pointer;transition:background .2s ease,box-shadow .2s ease;padding:.1rem .35rem;border-radius:4px;background:#27ae6014}.amount-value.editable:hover{background:#27ae602e;box-shadow:0 0 0 1px #27ae6040}.amount-value.loan-budget{color:#7f8c8d;font-style:italic}.loan-indicator{margin-left:.25rem;font-size:.7rem}.no-budget{color:#95a5a6;font-style:italic}.no-budget.editable{cursor:pointer;transition:background .2s ease,box-shadow .2s ease;padding:.1rem .35rem;border-radius:4px;background:#27ae6014}.no-budget.editable:hover{background:#27ae602e;box-shadow:0 0 0 1px #27ae6040}.realized-value{color:#e74c3c;font-weight:600;font-size:.95rem}.realized-value.positive{color:#27ae60}.realized-value.neutral{color:#6c757d}.realized-value.has-expenses{color:#e74c3c}.remaining-row{margin-top:.15rem;padding-top:.15rem;border-top:1px solid rgba(224,224,224,.5)}.remaining-value{font-weight:700;font-size:.95rem}.remaining-value.positive{color:#27ae60}.remaining-value.negative{color:#e74c3c}.progress-mini{margin-top:.3rem;height:18px;background-color:#ecf0f1;border-radius:4px;overflow:hidden;position:relative;width:100%;display:flex;align-items:center}.progress-bar-mini{height:100%;background:linear-gradient(90deg,#2ecc71,#27ae60);transition:width .3s ease;border-radius:4px;position:absolute;top:0;left:0;z-index:1}.progress-bar-mini.warning{background:linear-gradient(90deg,#f5b041,#f39c12)}.progress-bar-mini.over-budget{background:linear-gradient(90deg,#e74c3c,#c0392b)}.percentage-mini{position:absolute;right:.3rem;top:50%;transform:translateY(-50%);font-size:.7rem;font-weight:700;color:#fff;z-index:1;text-shadow:0 0 2px rgba(0,0,0,.4),0 0 4px rgba(0,0,0,.3);pointer-events:none}.percentage-mini.warning-text,.percentage-mini.over-budget-text{color:#fff!important;text-shadow:0 0 2px rgba(0,0,0,.5),0 0 4px rgba(0,0,0,.3)}.cell-actions{display:flex;gap:.35rem;margin-top:.25rem;justify-content:flex-end;flex-wrap:nowrap;align-items:center}.btn-icon{background:#3498db1a;border:none;border-radius:3px;padding:.2rem .4rem;cursor:pointer;font-size:.75rem;transition:all .2s ease;color:#3498db}.btn-icon:hover{background:#3498db33;transform:scale(1.05);box-shadow:0 2px 4px #3498db4d}.btn-icon.btn-tiny{padding:.15rem .3rem;font-size:.7rem}.btn-icon.btn-danger{background:#e74c3c1a;color:#e74c3c}.btn-icon.btn-danger:hover{background:#e74c3c33}.budget-input-group{display:flex;gap:.25rem;align-items:center}.budget-input{flex:1;padding:.4rem;border:2px solid #3498db;border-radius:4px;font-size:.85rem;min-width:80px}.budget-input:focus{outline:none;border-color:#2980b9;box-shadow:0 0 0 3px #3498db1a}.btn-save-inline,.btn-cancel-inline{padding:.4rem .6rem;border:none;border-radius:4px;cursor:pointer;font-size:.75rem;font-weight:600;transition:all .2s ease}.btn-save-inline{background:#27ae60;color:#fff}.btn-save-inline:hover{background:#229954}.btn-cancel-inline{background:#95a5a6;color:#fff}.btn-cancel-inline:hover{background:#7f8c8d}.btn-delete-inline{padding:.4rem .6rem;border:none;border-radius:4px;cursor:pointer;font-size:.75rem;font-weight:600;transition:all .2s ease;background:#fceae9;color:#c0392b}.btn-delete-inline:hover{background:#f8d7d3;color:#a93226}.current-month-cell{background:linear-gradient(135deg,#3498db14,#3498db0a)!important;background-color:#3498db0f!important;border-left:2px solid #3498db;opacity:1!important}td.current-month-cell{opacity:1!important;background:linear-gradient(135deg,#3498db14,#3498db0a)!important;background-color:#3498db0f!important}.current-month-cell *{opacity:1!important}.current-month-cell .budget-cell-content{background:transparent!important;background-color:transparent!important;opacity:1!important}.current-month-cell .budget-cell-content *{opacity:1!important}.section-header{background:#f8f9fa!important;border-top:none!important;border-bottom:none!important;font-weight:700;font-size:1rem;display:table-row!important;width:100%!important}.section-header td{border-top:none!important;border-bottom:none!important}.section-title{border:none!important}.section-header.income-section,.section-header.expense-section,.section-header.loan-section,.section-header.savings-section{background:linear-gradient(90deg,#6c757d0a,#6c757d05)!important}.section-header.transfer-section{background:linear-gradient(90deg,#95a5a614,#95a5a608)!important}.section-title{padding:.4rem .6rem!important;display:flex;align-items:center;gap:.5rem;color:#2c3e50;font-weight:700;text-transform:uppercase;letter-spacing:.5px;font-size:.8rem!important;box-sizing:border-box!important;border:none!important;position:sticky!important;left:0!important;z-index:11!important;background:#f8f9fa!important}.section-title span:not(.section-icon){font-weight:700;text-transform:uppercase;letter-spacing:.5px}.section-title-sticky{min-width:200px;background:inherit!important;opacity:1!important}.budget-year-table tbody tr.section-header.income-section td:first-child,.budget-year-table tbody tr.section-header.expense-section td:first-child,.budget-year-table tbody tr.section-header.loan-section td:first-child,.budget-year-table tbody tr.section-header.savings-section td:first-child{background:linear-gradient(90deg,#f8f9fafa,#f8f9faf2)!important;background-color:#f8f9fafa!important}.section-title-spacer{background:inherit;border:none;padding:0}.section-icon{font-size:1.3rem}.totals-row{background:#f8f9fbf2;font-weight:700;border-top:2px solid rgba(52,152,219,.2)}.totals-row:not(.balance-row){background:linear-gradient(90deg,#3498db1f,#3498db14)!important;border-top:3px solid rgba(52,152,219,.4)!important;font-weight:800!important}.totals-row:not(.balance-row) .totals-label{font-weight:800!important;font-size:.85rem!important;color:#1f3c88!important;background:linear-gradient(90deg,#3498db26,#3498db1a)!important}.totals-row:not(.balance-row) .budget-cell-content{background:#fffffffa!important;border:1px solid rgba(52,152,219,.25)!important;box-shadow:inset 0 0 0 1px #3498db1a!important}.totals-row:not(.balance-row) .realized-value,.totals-row:not(.balance-row) .amount-value{font-weight:800!important;font-size:1.05rem!important}.totals-row.income-totals-row{background:linear-gradient(90deg,#27ae6026,#27ae6014)!important;border-top:3px solid rgba(39,174,96,.5)!important}.totals-row.income-totals-row .totals-label{background:linear-gradient(90deg,#27ae602e,#27ae601f)!important;color:#185c34!important}.totals-row.income-totals-row .budget-cell-content{border-color:#27ae604d!important}.totals-row.expense-totals-row{background:linear-gradient(90deg,#e74c3c26,#e74c3c14)!important;border-top:3px solid rgba(231,76,60,.5)!important}.totals-row.expense-totals-row .totals-label{background:linear-gradient(90deg,#e74c3c2e,#e74c3c1f)!important;color:#a93226!important}.totals-row.expense-totals-row .budget-cell-content{border-color:#e74c3c4d!important}.totals-row.transfer-control-row{background:linear-gradient(90deg,#fff8f2e6,#fffffff2)}.transfer-control-cell .budget-cell-content.transfer-control-content{display:flex;flex-direction:column;gap:.35rem}.transfer-details-toggle{align-self:flex-start;padding:.15rem .45rem;font-size:.7rem;border:1px solid #c27c13;border-radius:4px;background:#fff9;color:#c27c13;cursor:pointer;transition:all .2s ease}.transfer-details-toggle:hover{background:#c27c131a}.transfer-tooltip-panel{background:#fffdf5;border:1px solid #f7c948;border-radius:6px;max-height:220px;overflow-y:auto;padding:.5rem;box-shadow:0 8px 16px #0000001a}.transfer-tooltip-status{font-size:.75rem;color:#936618}.transfer-tooltip-status.error{color:#c0392b}.transfer-tooltip-list{display:flex;flex-direction:column;gap:.35rem}.transfer-tooltip-item{display:grid;grid-template-columns:60px 120px 1fr auto;gap:.35rem;font-size:.75rem;align-items:center;padding:.25rem 0;border-bottom:1px solid rgba(0,0,0,.05)}.transfer-tooltip-item:last-child{border-bottom:none}.transfer-tooltip-date{font-weight:600;color:#7b6c45}.transfer-tooltip-account{font-weight:600;color:#1f2d3d}.transfer-tooltip-description{color:#4b5563}.transfer-tooltip-amount{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.transfer-tooltip-amount.positive{color:#1f7a3f}.transfer-tooltip-amount.negative{color:#c0392b}.transfer-control-cell .realized-value.neutral{color:#6c757d}.totals-row .totals-label{font-size:.85rem;color:#1f2d3d;letter-spacing:.04em;text-transform:uppercase;padding:.6rem .8rem!important}.totals-row .budget-cell-content{background:#fffffff2;border:1px solid rgba(0,0,0,.05);box-shadow:inset 0 0 0 1px #ffffff80}.totals-row .budget-realized-row{font-size:.95rem}.totals-row .realized-value{font-size:1rem}.totals-row .remaining-value{font-size:.95rem}.balance-row{background:linear-gradient(90deg,#2ecc711a,#e74c3c1a);border-top:2px solid rgba(46,204,113,.25)}.balance-row .totals-label{color:#0f5132}.balance-row .budget-cell-content{border:1px solid rgba(46,204,113,.2)}.balance-row .realized-value{font-size:1.05rem}.totals-row{background:#f8f9fa!important;font-weight:700;border-top:2px solid #e0e0e0}.totals-row.balance-row{background:linear-gradient(90deg,#2ecc712e,#3498db26)!important;background-color:#2ecc711f!important;border-top:4px solid #3498db!important;font-weight:800!important;opacity:1!important;box-shadow:0 2px 4px #0000000d!important}tr.totals-row.balance-row td{opacity:1!important;background:#fff!important;background-color:#fff!important}.totals-label{padding:.5rem .8rem!important;font-size:.8rem!important;color:#2c3e50;text-align:left;background:inherit!important;position:sticky!important;left:0!important;z-index:10!important;font-weight:600;min-width:200px;opacity:1!important}.totals-row .totals-label{background:#f8f9fa!important;opacity:1!important}.totals-row.balance-row .totals-label{background:linear-gradient(90deg,#3498db40,#2ecc7133)!important;background-color:#3498db33!important;opacity:1!important;font-weight:800!important;font-size:.9rem!important;color:#0f5132!important}.totals-row.balance-row .total-year-cell{background:linear-gradient(135deg,#3498db40,#3498db33)!important;background-color:#3498db38!important;opacity:1!important}.totals-row.balance-row .total-year-cell .budget-cell-content{opacity:1!important;background:#fff!important}.totals-cell{background:linear-gradient(135deg,#f8f9fa,#fff)}.income-totals{background:linear-gradient(135deg,#6c757d0d,#6c757d05)!important}.expense-totals{background:linear-gradient(135deg,#e74c3c0d,#e74c3c05)!important}.uncategorized-totals{background:linear-gradient(135deg,#95a5a60d,#95a5a605)!important}.budget-year-table tbody tr:hover .total-year-cell{background:linear-gradient(135deg,#d9ecf2,#e8f4f8)}.budget-year-table tbody tr.parent-category .total-year-cell{background:linear-gradient(135deg,#eef5f8,#f0f8fa)}.budget-year-table tbody tr.parent-category:hover .total-year-cell{background:linear-gradient(135deg,#d9e8f0,#eef5f8)}.comment-indicator-wrapper{position:relative;width:0;height:0}.comment-triangle{position:absolute;top:0;right:0;width:0;height:0;border-style:solid;border-width:0 20px 20px 0;border-color:transparent #3498db transparent transparent;z-index:5;pointer-events:none}.comment-touch-target{position:absolute;top:-4px;right:-4px;width:28px;height:28px;cursor:help;z-index:6;display:flex;align-items:flex-start;justify-content:flex-end}.comment-touch-target .comment-icon{display:none;font-size:.9rem;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.comment-touch-target .comment-count{position:absolute;top:2px;right:2px;font-size:.55rem;color:#fff;font-weight:700;background:#2980b9;border-radius:50%;width:12px;height:12px;display:flex;align-items:center;justify-content:center;z-index:7}.budget-cell-content .tooltip-wrapper{position:absolute;top:0;right:0;display:block;z-index:5}@media(hover:none)and (pointer:coarse){.comment-triangle{display:none}.comment-touch-target{width:36px;height:36px;top:-6px;right:-6px;background:#3498db26;border-radius:0 0 0 8px}.comment-touch-target .comment-icon{display:block;margin-top:4px;margin-right:4px}.comment-touch-target .comment-count{top:16px;right:0}}@media(hover:none)and (pointer:coarse)and (max-width:768px){.comment-touch-target{width:40px;height:40px;top:-8px;right:-8px}.comment-touch-target .comment-icon{font-size:1rem}}.parent-indicator{position:absolute;top:.25rem;left:.25rem}.parent-badge{background:#3498db1a;color:#3498db;padding:.15rem .4rem;border-radius:12px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.notification{position:fixed;top:20px;right:20px;padding:1rem 1.5rem;border-radius:8px;box-shadow:0 4px 12px #0000004d;z-index:9999;animation:slideIn .3s ease-out;max-width:400px;font-weight:500}.notification.success{background:#27ae60;color:#fff}.notification.error{background:#e74c3c;color:#fff}.notification.info{background:#3498db;color:#fff}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.totals-row .total-year-cell,.totals-row .total-year-cell.income-totals,.totals-row .total-year-cell.expense-totals{background:linear-gradient(135deg,#f8f9faf2,#f8f9fae6)!important}.totals-row.uncategorized-row,.totals-row.transfer-control-row{background:transparent!important;border-top:1px dashed rgba(84,110,122,.4)!important;font-weight:500!important;font-style:italic}.totals-row.uncategorized-row .totals-label,.totals-row.transfer-control-row .totals-label{background:transparent!important;color:#546e7a!important;font-weight:500!important;font-style:italic}.totals-row.uncategorized-row .budget-cell-content,.totals-row.transfer-control-row .budget-cell-content{background:transparent!important;border:none!important;box-shadow:none!important}.uncategorized-totals,.transfer-control-cell{background:transparent!important}.uncategorized-totals .budget-cell-content,.transfer-control-cell .budget-cell-content{border:none!important;background:transparent!important}.totals-row .total-year-cell.balance-cell{background:linear-gradient(135deg,#3498db40,#3498db33)!important;opacity:1!important;background-color:#3498db38!important}.totals-row .total-year-cell.balance-cell .budget-cell-content{opacity:1!important;background:#fff!important}.budgets.compact-mode .budget-year-view{box-shadow:none;border:1px dashed #dfe4ea;background:#fefefe}.budgets.compact-mode .budget-year-view .budget-cell-content .realized-value{font-weight:600}.budgets.compact-mode .budget-year-view table{font-size:.85rem}.budgets.compact-mode .budget-year-view th,.budgets.compact-mode .budget-year-view td{padding:.15rem .8rem}.budgets.compact-mode .budget-year-view .budget-year-table{min-width:1850px}.budgets.compact-mode .budget-year-view .month-header,.budgets.compact-mode .budget-year-view .total-header{min-width:170px}.budgets.compact-mode .budget-year-view .category-header,.budgets.compact-mode .budget-year-view .category-name-cell{min-width:200px;padding:.25rem .5rem!important}.budgets.compact-mode .budget-year-view .budget-cell-content{gap:.1rem}.budgets.compact-mode .budget-year-view .budget-realized-row{margin-bottom:.02rem;font-size:.8rem}.budgets.compact-mode .budget-year-view .budget-month-cell .budget-realized-row{justify-content:flex-end;align-items:center;gap:.4rem}.budgets.compact-mode .budget-year-view .budget-month-cell .realized-value,.budgets.compact-mode .budget-year-view .budget-month-cell .amount-value{text-align:right;justify-content:flex-end;width:auto;min-width:80px;font-variant-numeric:tabular-nums;font-weight:600;display:inline-flex;align-items:center}.tooltip-wrapper{position:relative;display:inline-block;cursor:help}.tooltip{position:absolute;z-index:9999;padding:.5rem .75rem;background:#2c3e50;color:#fff;border-radius:4px;font-size:.75rem;white-space:nowrap;box-shadow:0 2px 8px #0000004d;max-width:400px;min-width:200px;white-space:normal;word-wrap:break-word;pointer-events:none;animation:tooltipFadeIn .2s ease-in}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.tooltip-top{bottom:100%;left:50%;transform:translate(-50%);margin-bottom:.5rem}.tooltip-top:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#2c3e50}.tooltip-bottom{top:100%;left:50%;transform:translate(-50%);margin-top:.5rem}.tooltip-bottom:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#2c3e50}.tooltip-left{right:100%;top:50%;transform:translateY(-50%);margin-right:.5rem}.tooltip-left:after{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:5px solid transparent;border-left-color:#2c3e50}.tooltip-right{left:100%;top:50%;transform:translateY(-50%);margin-left:.5rem}.tooltip-right:after{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:#2c3e50}@media(hover:none)and (pointer:coarse){.tooltip{font-size:.875rem;padding:.75rem 1rem;box-shadow:0 4px 12px #0006}.tooltip-wrapper{cursor:pointer}}.tooltip-touch{pointer-events:auto;padding-right:2rem;min-width:150px}.tooltip-close-btn{position:absolute;top:4px;right:4px;background:transparent;border:none;color:#ffffffb3;font-size:.9rem;cursor:pointer;padding:2px 6px;line-height:1;border-radius:50%;transition:background .2s,color .2s}.tooltip-close-btn:hover,.tooltip-close-btn:active{background:#fff3;color:#fff}.tooltip-wrapper.touch-device{-webkit-tap-highlight-color:transparent}.budget-details-modal{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;max-width:800px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem;border-bottom:2px solid #e0e0e0;background:linear-gradient(135deg,#f8f9fa,#fff)}.modal-header h2{margin:0;font-size:1.5rem;color:#2c3e50;font-weight:700}.budget-period{margin:.5rem 0 0;color:#7f8c8d;font-size:.95rem;font-weight:500}.modal-close{background:none;border:none;font-size:2rem;color:#7f8c8d;cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.budget-details-content{padding:1.5rem}.budget-summary-section{margin-bottom:2rem}.summary-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;padding:1.5rem;background:linear-gradient(135deg,#f8f9fa,#fff);border-radius:8px;border:1px solid #e0e0e0}.summary-card.summary-readonly{background:linear-gradient(135deg,#f0f0f0,#f8f8f8);opacity:.95}.readonly-value{-webkit-user-select:none;user-select:none;cursor:default}.readonly-note{margin-top:.75rem;padding:.75rem;background:#e8f4f8;border-left:3px solid #3498db;border-radius:4px;font-size:.85rem;color:#2c3e50;font-style:italic;text-align:center}.summary-item{display:flex;flex-direction:column;gap:.5rem}.summary-label{font-size:.85rem;color:#7f8c8d;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.summary-value{font-size:1.5rem;font-weight:700;color:#2c3e50}.summary-value.budget-value{color:#3498db}.summary-value.realized-value{color:#e74c3c}.summary-value.positive{color:#27ae60}.summary-value.negative{color:#e74c3c}.comments-section,.transactions-section{margin-bottom:2rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #e0e0e0}.section-header h3{margin:0;font-size:1.2rem;color:#2c3e50;font-weight:600}.btn-edit-comment{background:#3498db;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-edit-comment:hover{background:#2980b9;transform:translateY(-1px)}.comment-editor{margin-top:1rem}.comment-textarea{width:100%;padding:1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;resize:vertical;min-height:120px;transition:border-color .2s}.comment-textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.comment-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem}.comment-display{margin-top:1rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e0e0e0;min-height:60px}.comment-text{margin:0;color:#2c3e50;line-height:1.6;white-space:pre-wrap}.comment-empty{margin:0;color:#95a5a6;font-style:italic;text-align:center;padding:1rem}.comments-section-readonly{opacity:.8}.comment-info{margin:.5rem 0 0;padding:1rem;background:linear-gradient(135deg,#f0f4f8,#e8f4fc);border-radius:8px;border:1px dashed #b8c9d9;color:#5a6a7a;font-size:.9rem;text-align:center;line-height:1.5}.transactions-list{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}.transaction-item{display:grid;grid-template-columns:110px 1fr auto;gap:1rem;align-items:start;padding:1rem;background:#fff;border:1px solid #e0e0e0;border-radius:8px;transition:all .2s}.transaction-item:hover{background:#f8f9fa;border-color:#3498db;box-shadow:0 2px 8px #3498db1a;transform:translate(2px)}.transaction-item.large-amount{border-left:4px solid #f39c12;background:linear-gradient(90deg,#fffbf0,#fff)}.transaction-item.expense-transaction{border-left:3px solid #e74c3c}.transaction-item.income-transaction{border-left:3px solid #27ae60}.transaction-date{font-size:.9rem;color:#7f8c8d;font-weight:600}.transaction-description{font-size:1rem;color:#2c3e50;font-weight:500;display:flex;align-items:center;gap:.5rem}.transaction-link-button{background:none;border:none;padding:0;margin:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:#3498db59}.transaction-link-button:hover{color:#1a73e8;text-decoration-color:#1a73e8}.large-amount-badge{font-size:.9rem;opacity:.8}.transaction-amount{display:flex;align-items:baseline;gap:.25rem;font-size:1.1rem;font-weight:700;text-align:right;white-space:nowrap}.transaction-amount.expense{color:#e74c3c}.transaction-amount.income{color:#27ae60}.amount-sign{font-size:.9rem}.amount-value{font-size:1.2rem}.transactions-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:1.5rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e0e0e0}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.85rem;color:#7f8c8d;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:1.2rem;font-weight:700;color:#2c3e50}.transactions-summary{display:flex;gap:.75rem}.income-badge{background:#27ae60;color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:600}.expense-badge{background:#e74c3c;color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:600}.transactions-filters{margin-bottom:1rem}.filter-select{padding:.5rem 1rem;border:1px solid #e0e0e0;border-radius:4px;font-size:.9rem;background:#fff;cursor:pointer;transition:border-color .2s}.filter-select:focus{outline:none;border-color:#3498db}.loading,.empty-state{text-align:center;padding:2rem;color:#7f8c8d}.empty-state p{margin:0;font-size:1rem}.btn-primary:hover:not(:disabled){background:#2980b9;transform:translateY(-1px)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.copy-year-modal{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-width:600px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:1.5rem;color:#2c3e50}.modal-close{background:none;border:none;font-size:2rem;color:#7f8c8d;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background:#f0f0f0;color:#2c3e50}.copy-year-form{padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#2c3e50;font-size:.95rem}.form-control{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s}.form-control:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.form-help{display:block;margin-top:.5rem;color:#7f8c8d;font-size:.85rem}.adjustment-display{font-weight:700;color:#3498db;margin-left:.5rem}input[type=range]{width:100%;height:8px;border-radius:4px;background:#e0e0e0;outline:none;-webkit-appearance:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#3498db;cursor:pointer;transition:background .2s}input[type=range]::-webkit-slider-thumb:hover{background:#2980b9}input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#3498db;cursor:pointer;border:none;transition:background .2s}input[type=range]::-moz-range-thumb:hover{background:#2980b9}.adjustment-slider-container{position:relative;margin-bottom:.5rem}.adjustment-slider{width:100%;margin-bottom:0}.adjustment-labels{display:flex;justify-content:space-between;margin-top:.25rem;font-size:.75rem;color:#7f8c8d;position:relative}.adjustment-labels .label-left{position:absolute;left:0}.adjustment-labels .label-center{position:absolute;left:calc(33.33% - .5em);transform:translate(-50%)}.adjustment-labels .label-right{position:absolute;right:0}.form-checkbox{margin-right:.5rem;width:18px;height:18px;cursor:pointer}.category-selection{margin-top:1rem;padding:1rem;background:#f8f9fa;border-radius:4px;border:1px solid #e0e0e0}.category-list{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.category-checkbox{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:4px;cursor:pointer;transition:background .2s}.category-checkbox:hover{background:#e8f4f8}.category-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.category-badge{display:inline-block;width:16px;height:16px;border-radius:3px;flex-shrink:0}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e0e0e0}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.btn-primary{background:#3498db;color:#fff}.btn-primary:hover:not(:disabled){background:#2980b9;transform:translateY(-1px);box-shadow:0 2px 8px #3498db4d}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#ecf0f1;color:#2c3e50}.btn-secondary:hover:not(:disabled){background:#d5dbdb}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.error-message{margin-top:1rem;padding:1rem;background:#fee;border:1px solid #fcc;border-radius:4px;color:#c33}.budgets{max-width:1800px;margin:0 auto;padding:2rem}.budgets-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.budgets-header-actions{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;justify-content:flex-end}.budgets-header h1{margin:0;color:#2c3e50}.compact-toggle{display:inline-flex;align-items:center;gap:.6rem;font-size:.9rem;color:#2c3e50;cursor:pointer;-webkit-user-select:none;user-select:none}.compact-toggle input{display:none}.compact-toggle .toggle-indicator{width:42px;height:22px;border-radius:999px;background:#dfe6e9;position:relative;transition:background .2s ease}.compact-toggle .toggle-indicator:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s ease}.compact-toggle input:checked+.toggle-indicator{background:#3498db}.compact-toggle input:checked+.toggle-indicator:after{transform:translate(20px)}.compact-toggle .toggle-label{font-weight:500}.view-mode-selector{display:flex;gap:.5rem}.view-btn{padding:.5rem 1rem;border:2px solid #3498db;background:#fff;color:#3498db;border-radius:4px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.view-btn:hover{background:#ecf0f1}.view-btn.active{background:#3498db;color:#fff}.year-selector{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:2rem;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.year-selector h2{margin:0;color:#2c3e50;font-size:2rem;min-width:120px;text-align:center}.btn-nav{background:#ecf0f1;border:none;width:40px;height:40px;border-radius:50%;font-size:1.5rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-nav:hover{background:#3498db;color:#fff;transform:scale(1.1)}.btn-today{background:#3498db;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;cursor:pointer;transition:all .2s;margin-left:1rem}.btn-today:hover{background:#2980b9;transform:translateY(-1px)}.btn-copy-year{background:linear-gradient(90deg,#3498db26,#3498db0d);color:#1b4f72;font-weight:600;padding:.4rem .8rem;border-radius:6px;font-size:.85rem}.btn-reset-year{background:linear-gradient(90deg,#2ecc7126,#2ecc710d);color:#1e8449;font-weight:600;padding:.4rem .8rem;border-radius:6px;font-size:.85rem}.btn-reset-year:disabled{opacity:.6;cursor:not-allowed}.btn-reset-year:not(:disabled):hover{background:linear-gradient(90deg,#2ecc7140,#2ecc711f)}.btn-export-pdf{background:linear-gradient(90deg,#e74c3c26,#e74c3c0d);color:#c0392b;font-weight:600;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;border:none;cursor:pointer;transition:all .3s}.btn-export-pdf:disabled{opacity:.6;cursor:not-allowed}.btn-export-pdf:not(:disabled):hover{background:linear-gradient(90deg,#e74c3c40,#e74c3c1f);transform:translateY(-1px);box-shadow:0 2px 4px #0003}.budgets.compact-mode .year-selector{box-shadow:none;border:1px dashed #dfe4ea}.budgets.compact-mode .year-selector h2{font-size:1.8rem}.loading,.error{text-align:center;padding:3rem;font-size:1.1rem}.error{color:#e74c3c}.btn-primary{padding:.75rem 1.5rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-primary:disabled{background-color:#95a5a6;cursor:not-allowed}.budget-calendar{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1.5rem}.loan-schedule{max-width:1400px;margin:0 auto;padding:2rem}.btn-primary{padding:.75rem 1.5rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s;position:relative;z-index:1000;pointer-events:auto;-webkit-user-select:none;user-select:none}.btn-primary:hover:not(:disabled){background-color:#2980b9;transform:translateY(-1px);box-shadow:0 2px 4px #0003}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 2px #0003}.btn-primary:disabled{opacity:.6;cursor:not-allowed;background-color:#95a5a6;pointer-events:none}.loan-schedule-header{margin-bottom:2rem}.btn-back{background:none;border:none;color:#3498db;cursor:pointer;font-size:.9rem;margin-bottom:1rem;padding:.5rem 0;transition:color .2s}.btn-back:hover{color:#2980b9;text-decoration:underline}.header-content h1{margin:0 0 1.5rem;color:#2c3e50}.loan-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.summary-item{display:flex;flex-direction:column;gap:.25rem}.summary-label{font-size:.85rem;color:#7f8c8d;font-weight:500}.summary-value{font-size:1.2rem;font-weight:700;color:#2c3e50}.year-selector{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;background:#fff;padding:1rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.year-select{padding:.5rem 1rem;border:2px solid #3498db;border-radius:4px;font-size:1rem;font-weight:600;color:#2c3e50;background:#fff;cursor:pointer}.btn-nav,.btn-today{padding:.5rem 1rem;border:1px solid #3498db;border-radius:4px;background:#fff;color:#3498db;font-size:1rem;cursor:pointer;transition:all .2s}.btn-nav:hover:not(:disabled),.btn-today:hover{background:#3498db;color:#fff}.btn-nav:disabled{opacity:.5;cursor:not-allowed}.schedule-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.schedule-table{width:100%;border-collapse:collapse}.schedule-table thead{background:#f8f9fa;border-bottom:2px solid #3498db}.schedule-table th{padding:1rem;text-align:left;font-weight:700;color:#2c3e50;white-space:nowrap}.schedule-table td{padding:.75rem 1rem;border-bottom:1px solid #e0e0e0}.schedule-row{transition:background-color .2s}.schedule-row:hover{background-color:#f8f9fa}.schedule-row.paid{background-color:#27ae600d}.schedule-row.overdue{background-color:#e74c3c1a}.col-month{width:80px;text-align:center;font-weight:600;color:#7f8c8d}.col-date{min-width:180px;font-weight:500}.col-amount{text-align:right;font-family:Courier New,monospace;white-space:nowrap}.col-amount.total-payment{font-weight:700;color:#2c3e50}.col-amount.remaining{color:#e67e22;font-weight:600}.col-status{text-align:center}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.85rem;font-weight:600}.status-badge.paid{background:#27ae60;color:#fff}.status-badge.overdue{background:#e74c3c;color:#fff}.status-badge.pending{background:#f39c12;color:#fff}.totals-row{background:linear-gradient(90deg,#3498db1a,#3498db0d);font-weight:700;border-top:2px solid #3498db}.totals-label{text-align:right;padding-right:1rem;color:#3498db}.empty-state{text-align:center;padding:3rem;color:#7f8c8d}.cards-container{padding:2rem}.cards-table{width:100%;border-collapse:collapse}.cards-table th{background:#f8f9fa;font-weight:600;color:#495057}.cards-table td,.cards-table th{padding:.75rem;border:1px solid #dee2e6;text-align:left}.cards-table tbody tr:hover{background:#f8f9fa}.analytics-page{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem}.analytics-header h1{margin:0;font-size:1.8rem;font-weight:600}.analytics-header p{margin:.25rem 0 0;color:var(--text-muted, #5f6b7a)}.analytics-filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;background:var(--surface, #fff);border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:1rem;box-shadow:0 4px 12px #0000000d}.analytics-filters .filter-group{display:flex;flex-direction:column;gap:.25rem;min-width:160px;font-size:.9rem}.analytics-filters .filter-group.checkbox{flex-direction:row;align-items:center;gap:.5rem;min-width:0}.analytics-filters input[type=date],.analytics-filters select{padding:.45rem .6rem;border-radius:8px;border:1px solid rgba(0,0,0,.15);font-size:.95rem}.analytics-filters .filter-group.presets{min-width:220px}.preset-label{font-size:.9rem;font-weight:600;color:var(--text-muted, #5f6b7a)}.preset-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.preset-button{border:1px solid rgba(0,0,0,.15);border-radius:999px;padding:.35rem .9rem;background:#fff;font-size:.85rem;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease}.preset-button:hover,.preset-button:focus{border-color:#1f77b4;color:#1f77b4;outline:none}.preset-button.active{background:#1f77b4;border-color:#1f77b4;color:#fff;font-weight:600;box-shadow:0 2px 6px #1f77b433}.chart-hint{margin-top:.75rem;font-size:.85rem;color:var(--text-muted, #5f6b7a);font-style:italic}.chart-legend{margin-top:.75rem;display:flex;gap:1.2rem;justify-content:center;flex-wrap:wrap;font-size:.85rem;color:var(--text-muted, #5f6b7a)}.chart-legend .legend-item{display:inline-flex;align-items:center;gap:.4rem}.legend-swatch{width:16px;height:16px;border-radius:4px;display:inline-block}.legend-line{width:20px;border-top:3px solid;display:inline-block}.analytics-tooltip{background:#fff;border:1px solid rgba(0,0,0,.15);border-radius:10px;padding:.75rem;box-shadow:0 8px 24px #0f172a1f;max-width:320px;display:flex;flex-direction:column;gap:.45rem;pointer-events:auto;z-index:1000;position:relative}.analytics-tooltip strong{font-size:.95rem}.analytics-tooltip .tooltip-row{display:flex;justify-content:space-between;gap:1rem;font-size:.85rem}.analytics-tooltip .tooltip-row.income span:last-child{color:#2ca02c}.analytics-tooltip .tooltip-row.expense span:last-child{color:#d62728}.analytics-tooltip .tooltip-row.balance span:last-child{font-weight:600}.tooltip-exceptionals{border-top:1px solid rgba(0,0,0,.08);padding-top:.5rem;display:flex;flex-direction:column;gap:.4rem}.tooltip-section-title{font-size:.8rem;font-weight:600;color:var(--text-muted, #5f6b7a);text-transform:uppercase;letter-spacing:.04em}.tooltip-subsection{display:flex;flex-direction:column;gap:.25rem}.tooltip-subsection em{font-size:.8rem;color:var(--text-muted, #5f6b7a)}.tooltip-subsection ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.tooltip-subsection li{display:flex;flex-direction:column;gap:.15rem;font-size:.8rem}.tooltip-subsection li .amount{font-weight:600}.tooltip-subsection li .description{color:var(--text-muted, #5f6b7a)}.tooltip-subsection li .category,.tooltip-subsection li .date{font-size:.75rem;color:var(--text-muted, #5f6b7a)}.analytics-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.overview-card{padding:1rem;border-radius:12px;color:#fff;display:flex;flex-direction:column;gap:.35rem;box-shadow:inset 0 1px #fff3}.overview-card span{font-size:.9rem;opacity:.9}.overview-card strong{font-size:1.2rem;font-weight:600}.overview-card.positive{background:linear-gradient(135deg,#2ca02c,#3cb44b)}.overview-card.negative{background:linear-gradient(135deg,#d62728,#ff4c41)}.overview-card.neutral{background:linear-gradient(135deg,#3358f4,#5c7cfa)}.overview-card small{font-size:.8rem;opacity:.85;line-height:1.2}.analytics-loading,.analytics-error,.empty-message{padding:1rem;border-radius:10px;background:#3358f414;color:#2140b1}.analytics-error{background:#d627281a;color:#a62528}.analytics-section{background:var(--surface, #fff);border-radius:12px;padding:1.5rem;border:1px solid rgba(0,0,0,.05);box-shadow:0 6px 18px #091e4214}.analysis-toolbar{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;justify-content:space-between;margin-bottom:1.5rem}.analysis-toolbar-left,.analysis-toolbar-right{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.analysis-toolbar .filter-group{display:flex;flex-direction:column;gap:.25rem;min-width:200px;font-size:.9rem}.analysis-toolbar select{padding:.45rem .6rem;border-radius:8px;border:1px solid rgba(0,0,0,.15);font-size:.95rem}.toolbar-category-dropdown{width:100%}.toolbar-category-dropdown .dropdown-toggle{width:100%;justify-content:space-between}.analytics-section h2,.analytics-section h3{margin:0 0 1rem;font-weight:600}.analytics-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.analytics-panel{display:flex;flex-direction:column;gap:1rem}.chart-container{width:100%;height:320px}.chart-container.small{height:300px}.chart-container.category{height:360px}.category-details-summary{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}.category-parent{color:var(--text-muted, #5f6b7a);font-size:.9rem}.category-summary-metrics{display:flex;flex-wrap:wrap;gap:1rem;font-weight:600}.category-summary-metrics span{font-size:.95rem}.category-legend-info{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;color:var(--text-muted, #5f6b7a);font-size:.9rem}.legend-pill{display:flex;align-items:center;gap:.4rem}.legend-pill.average:before,.legend-pill.median:before{content:"";width:24px;height:0;border-top:3px dashed}.legend-pill.average:before{border-color:#3358f4}.legend-pill.median:before{border-color:#ff7f0e}.category-section-header td{font-weight:600;background:#0000000a}.category-section-header.income td{color:#2ca02c}.category-section-header.expense td{color:#d62728}.category-section-header.neutral td{color:var(--text-muted, #5f6b7a)}.category-cell{display:flex;align-items:center;gap:.4rem}.toggle-button{background:none;border:none;cursor:pointer;font-size:.85rem;line-height:1;padding:0;color:var(--text-muted, #5f6b7a)}.toggle-button:hover,.toggle-button:focus{color:#1f77b4}.toggle-button:focus{outline:2px solid rgba(31,119,180,.35);outline-offset:2px}.toggle-placeholder{display:inline-block;width:.9rem}.balance{font-weight:600}.category-summary-metrics .light-text{font-weight:400;font-size:.9rem}.category-table-wrapper{overflow-x:auto}.category-table{width:100%;border-collapse:collapse;font-size:.95rem}.category-table th,.category-table td{padding:.65rem .75rem;text-align:left;border-bottom:1px solid rgba(0,0,0,.06)}.category-table th{font-weight:600;background:#00000008}.category-table td.positive{color:#2ca02c}.category-table td.negative{color:#d62728}.category-table .empty-message{text-align:center;font-style:italic;color:var(--text-muted, #5f6b7a)}.category-evolution-header{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;margin-bottom:1rem}.category-select-inline{display:flex;flex-direction:column;gap:.35rem;min-width:220px}.category-select-inline select{padding:.45rem .6rem;border-radius:8px;border:1px solid rgba(0,0,0,.15);font-size:.95rem}@media(max-width:768px){.analytics-page{padding:1rem}.analytics-filters{flex-direction:column;align-items:stretch}.analytics-overview{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}}.scheduled-payments{display:flex;flex-direction:column;gap:1.5rem;padding:1rem}.scheduled-payments-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.scheduled-payments-header h1{margin:0}.scheduled-payments .subtitle{margin:.25rem 0 0;color:var(--text-secondary, #6c757d)}.year-filter{display:flex;align-items:center;gap:.5rem}.year-filter input[type=number]{width:6rem;padding:.4rem}.scheduled-payments-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.5rem}.card{background:var(--bg-primary, #fff);border-radius:12px;padding:1.5rem;box-shadow:0 10px 30px #0000000d}.card h2{margin-top:0}.scheduled-form{display:flex;flex-direction:column;gap:.75rem}.scheduled-form label{display:flex;flex-direction:column;font-size:.9rem;color:var(--text-secondary, #6c757d);gap:.35rem}.scheduled-form input,.scheduled-form select,.scheduled-form textarea{width:100%;padding:.65rem .75rem;border-radius:6px;border:1px solid rgba(0,0,0,.12);font-size:.95rem}.two-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem}.form-actions{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem}.btn-link{background:none;border:none;color:var(--primary-color, #0066ff);cursor:pointer;padding:0}.icon-button{background:none;border:none;font-size:1.1rem;cursor:pointer;padding:.15rem .35rem;transition:transform .1s ease,color .1s ease}.icon-button:hover{transform:scale(1.1)}.icon-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.icon-button.danger{color:#d9534f}.btn-danger-link{background:none;border:none;color:#d9534f;cursor:pointer;padding:0}.btn-primary,.btn-secondary{padding:.6rem 1rem;border-radius:6px;border:none;cursor:pointer;font-weight:600}.btn-primary{background:var(--primary-color, #0066ff);color:#fff}.btn-primary.ghost{background:#0066ff1a;color:var(--primary-color, #0066ff)}.btn-secondary.compact{padding:.35rem .6rem;font-size:.85rem;display:inline-flex;align-items:center;gap:.25rem}.btn-secondary{background:#00000014;color:var(--text-primary, #222)}.list-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.table-wrapper{overflow-x:auto}.scheduled-table{width:100%;border-collapse:collapse;table-layout:fixed}.scheduled-table th,.scheduled-table td{text-align:left;padding:.6rem .4rem;border-bottom:1px solid rgba(0,0,0,.05)}.scheduled-table th{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #6c757d)}.scheduled-table th:nth-child(1),.scheduled-table td:nth-child(1){width:20%}.scheduled-table th:nth-child(2),.scheduled-table td:nth-child(2){width:10%}.scheduled-table th:nth-child(3),.scheduled-table td:nth-child(3){width:10%}.scheduled-table th:nth-child(4),.scheduled-table td:nth-child(4){width:16%}.scheduled-table th:nth-child(5),.scheduled-table td:nth-child(5){width:22%}.scheduled-table th:nth-child(6),.scheduled-table td:nth-child(6){width:12%}.scheduled-table th:nth-child(7),.scheduled-table td:nth-child(7){width:10%}.scheduled-table tr.consumed-row{background:#4caf500d}.scheduled-table tr.consumed-row:hover{background:#4caf501a}.series-divider td{background:#00000005;border-top:2px solid rgba(0,0,0,.05)}.series-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.4rem 0}.series-toggle{display:inline-flex;align-items:center;gap:.4rem;background:none;border:none;padding:0;cursor:pointer;font-size:1rem;font-weight:600;color:inherit}.series-toggle:disabled{cursor:default;opacity:.7}.chevron{display:inline-block;transition:transform .15s ease;font-size:.8rem}.chevron.open{transform:rotate(90deg)}.chevron.closed{transform:rotate(0)}.chevron-static{opacity:.4}.series-title{margin:0;font-weight:600}.series-meta{margin:.1rem 0 0;font-size:.85rem;color:var(--text-secondary, #6c757d)}.series-actions{display:inline-flex;gap:.4rem;align-items:center}.cell-name{line-height:1.2}.cell-primary{font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-date,.cell-amount,.cell-category,.cell-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-amount{font-weight:600}.cell-ellipsis{display:inline-block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-chip{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600}.status-chip.created{background:#9e9e9e26;color:#616161}.status-chip.planned{background:#ffc10726;color:#b78600}.status-chip.consumed{background:#4caf5033;color:#1b5e20;font-weight:700}.notes{font-size:.85rem;color:var(--text-secondary, #6c757d);margin-top:.25rem}.match-info{font-size:.8rem;color:#148f2b;margin-top:.2rem;display:flex;align-items:center;gap:.2rem}.actions{display:flex;gap:.35rem;flex-wrap:nowrap;justify-content:flex-end;align-items:center;min-width:120px}.empty-state{padding:2rem;text-align:center;color:var(--text-secondary, #6c757d)}.loading{padding:2rem;text-align:center}.helper-text{font-size:.85rem;color:var(--text-secondary, #6c757d);margin:.35rem 0 0}.helper-inline{margin-top:-.5rem;margin-bottom:1rem}.helper-text.small{font-size:.75rem;margin-top:.2rem}@media(max-width:768px){.scheduled-payments-header{flex-direction:column}.year-filter{flex-wrap:wrap;justify-content:flex-start}}.admin-backups-page{display:flex;flex-direction:column;gap:20px;padding:20px}.admin-backups-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.admin-backups-header h1{margin:0;font-size:20px;font-weight:600}.admin-backups-subtitle{margin:4px 0 0;color:#4b5563;font-size:13px}.admin-backups-content{background:#fff;border-radius:10px;border:1px solid #e2e8f0;overflow:hidden;box-shadow:0 8px 24px #0f172a0d}.admin-backups-empty{padding:24px;text-align:center;color:#6b7280}.admin-backups-table{width:100%;border-collapse:collapse}.admin-backups-table thead{background:#f9fafb}.admin-backups-table th,.admin-backups-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #f1f5f9;font-size:13px}.admin-backups-table th{font-weight:600;color:#374151}.admin-backups-table td.filename{font-family:SFMono-Regular,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px}.admin-backups-table td.actions{text-align:right;display:flex;justify-content:flex-end;gap:10px}.admin-backups-alert{padding:16px 20px;border-radius:8px;font-size:14px}.admin-backups-alert.error{background:#fee2e2;border:1px solid #fecaca;color:#b91c1c}.admin-backups-refresh{text-align:center;font-size:13px;color:#6b7280}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;padding:9px 15px;font-size:13px;font-weight:600;cursor:pointer;border:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;box-shadow:0 10px 18px #2563eb2e}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#1e40af)}.btn-secondary{background:#f3f4f6;color:#1f2937;border:1px solid #e5e7eb}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;cursor:pointer}.btn-icon svg{width:16px;height:16px}.btn-icon:hover:not(:disabled){background:#fecaca}.btn-icon:disabled{opacity:.6;cursor:not-allowed}.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}.fun-library{display:flex;flex-direction:column;gap:1.5rem}.fun-library-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;padding:1.5rem;background:#f8fafc;border-radius:12px}.fun-library-header h1{margin:0;font-size:1.5rem}.fun-library-header p{margin:.35rem 0 0;color:#475569}.fun-library-table-wrapper{overflow-x:auto;border-radius:12px;border:1px solid #e2e8f0}.fun-library-table{width:100%;border-collapse:collapse;min-width:780px}.fun-library-table thead th{text-align:left;background:#f1f5f9;padding:.75rem 1rem;font-weight:600;font-size:.9rem;color:#0f172a}.fun-library-table tbody td{padding:.9rem 1rem;border-top:1px solid #e2e8f0;vertical-align:top;font-size:.92rem;color:#1e293b}.fun-library-image-cell{display:flex;align-items:center;gap:.75rem}.fun-library-image-cell img{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid #e2e8f0;background:#fff}.fun-library-image-cell strong,.fun-library-text-cell strong{display:block;margin-bottom:.35rem}.fun-library-text-cell p{margin:0;color:#475569;line-height:1.45}.fun-library-actions{display:flex;gap:.5rem;justify-content:flex-end}.fun-library-alert{padding:.85rem 1.1rem;border-radius:10px;font-size:.95rem}.fun-library-alert.error{background:#fef2f2;color:#b91c1c;border:1px solid rgba(239,68,68,.25)}.fun-library-empty{padding:1.5rem;text-align:center;border:1px dashed #cbd5f5;border-radius:12px;color:#475569;background:#f8fafc}.fun-library .badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.fun-library .badge-joke{background:#3b82f626;color:#1d4ed8}.fun-library .badge-image{background:#10b9812e;color:#047857}.fun-library .badge-active{background:#22c55e2e;color:#15803d}.fun-library .badge-inactive{background:#94a3b840;color:#475569}.fun-library-form-wrapper{border:1px solid #e2e8f0;border-radius:12px;background:#fff;padding:1.5rem}.fun-library-form{display:flex;flex-direction:column;gap:1.5rem}.fun-library-form .form-header{display:flex;align-items:center;justify-content:space-between}.fun-library-form h2{margin:0;font-size:1.25rem}.form-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.form-field{display:flex;flex-direction:column;gap:.45rem}.form-field.checkbox{flex-direction:row;align-items:center;gap:.65rem}.form-field-full{grid-column:1 / -1}.form-field label{font-weight:600;font-size:.85rem;color:#0f172a}.form-field input[type=text],.form-field input[type=datetime-local],.form-field select,.form-field textarea{width:100%;border:1px solid #cbd5f5;border-radius:8px;padding:.55rem .65rem;font-size:.95rem;background:#fff;transition:border-color .2s ease}.form-field input[type=text]:focus,.form-field input[type=datetime-local]:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.form-field textarea{resize:vertical;min-height:110px}.image-preview{display:flex;align-items:center;gap:1rem;margin-top:.75rem}.image-preview img{width:120px;height:120px;object-fit:cover;border-radius:12px;border:1px solid #e2e8f0;background:#f8fafc}.image-preview.image-preview-removed img{opacity:.35;filter:grayscale(.6)}.remove-image-toggle{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#b91c1c}.form-actions{display:flex;gap:.75rem;justify-content:flex-end}.fun-library .btn-primary,.fun-library .btn-secondary,.fun-library .btn-danger,.fun-library .btn-tertiary{border:none;border-radius:8px;font-size:.9rem;font-weight:600;padding:.55rem 1rem;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.fun-library .btn-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff}.fun-library .btn-primary:disabled{opacity:.65;cursor:not-allowed}.fun-library .btn-secondary{background:#f1f5f9;color:#1e293b}.fun-library .btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.fun-library .btn-tertiary{background:transparent;color:#1e293b}.fun-library .btn-primary:not(:disabled):hover,.fun-library .btn-secondary:hover,.fun-library .btn-danger:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 14px #0f172a1a}.fun-library .btn-tertiary:hover{text-decoration:underline}.admin-budget-summaries-page{padding:2rem;max-width:1200px;margin:0 auto}.admin-budget-summaries-header{margin-bottom:2rem}.admin-budget-summaries-header h1{font-size:2rem;font-weight:600;margin-bottom:.5rem;color:#1f2937}.admin-budget-summaries-subtitle{color:#6b7280;font-size:1rem;margin:0}.admin-budget-summaries-content{display:flex;flex-direction:column;gap:2rem}.admin-budget-summaries-section{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.admin-budget-summaries-section-header{margin-bottom:1.5rem}.admin-budget-summaries-section-header h2{font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:#1f2937;display:flex;align-items:center;gap:.5rem}.admin-budget-summaries-section-header h2 .icon{width:1.5rem;height:1.5rem;color:#3b82f6}.section-description{color:#6b7280;font-size:.875rem;margin:0;line-height:1.5}.info-box{background:#e3f2fd;border-left:4px solid #3b82f6;padding:12px 16px;margin-top:12px;border-radius:4px;font-size:.875rem;color:#1e40af;line-height:1.5}.info-box strong{color:#1e3a8a}.admin-budget-summaries-month-selector{display:flex;gap:1rem;margin-bottom:1.5rem;padding:1rem;background:#f9fafb;border-radius:6px}.admin-budget-summaries-month-selector label{display:flex;flex-direction:column;gap:.5rem;font-weight:500;color:#374151}.admin-budget-summaries-month-selector select{padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:1rem;background:#fff;color:#1f2937}.admin-budget-summaries-actions{display:flex;gap:1rem;flex-wrap:wrap}.btn{padding:.75rem 1.5rem;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s;border:none;display:inline-flex;align-items:center;gap:.5rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.icon-inline{width:1rem;height:1rem}.admin-budget-summaries-preview{margin-top:1.5rem;padding:1.5rem;background:#f9fafb;border-radius:6px;border:1px solid #e5e7eb}.admin-budget-summaries-preview h3{font-size:1.125rem;font-weight:600;margin-bottom:1rem;color:#1f2937}.preview-content{display:flex;flex-direction:column;gap:1.5rem}.preview-section{padding:1rem;background:#f9fafb;border-radius:6px;border-left:3px solid #3b82f6}.preview-section h4{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:#1f2937}.preview-item.highlight{background:#dbeafe;padding:.5rem;border-radius:4px;font-weight:600;margin-top:.5rem}.preview-item{padding:.75rem;background:#fff;border-radius:4px;border:1px solid #e5e7eb}.preview-item strong{display:block;margin-bottom:.25rem;color:#6b7280;font-size:.875rem;font-weight:500}.preview-item{color:#1f2937;font-size:1rem}@media(max-width:768px){.admin-budget-summaries-page{padding:1rem}.admin-budget-summaries-actions{flex-direction:column}.admin-budget-summaries-actions .btn{width:100%;justify-content:center}.preview-content{grid-template-columns:1fr}}.email-subjects-config{display:flex;flex-direction:column;gap:1.5rem}.subject-config-item,.subject-config-item label{display:flex;flex-direction:column;gap:.5rem}.subject-config-item strong{font-size:1rem;font-weight:600;color:#1f2937}.subject-help{color:#6b7280;font-size:.875rem;margin:0;line-height:1.5}.subject-help code{background:#f3f4f6;padding:2px 6px;border-radius:3px;font-size:.875rem;font-family:Courier New,monospace;color:#d63384}.subject-input{padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;font-family:inherit;color:#1f2937;transition:border-color .2s}.subject-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.subject-input::placeholder{color:#9ca3af}.users-selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:15px}.user-selection-item{display:flex;align-items:flex-start;gap:12px;padding:15px;border:2px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s}.user-selection-item:hover{border-color:#3b82f6;background:#f8f9fa}.user-selection-item.selected{border-color:#3b82f6;background:#eff6ff}.user-selection-item.current-user{border-left:4px solid #10b981}.user-selection-item.current-user.selected{border-color:#3b82f6;border-left:4px solid #10b981}.current-user-label{color:#10b981;font-weight:600;font-size:12px}.user-selection-item.disabled{opacity:.6;cursor:not-allowed}.user-selection-item input[type=checkbox]{margin-top:2px;cursor:pointer;width:18px;height:18px}.user-selection-item.disabled input[type=checkbox]{cursor:not-allowed}.user-selection-info{flex:1;display:flex;flex-direction:column;gap:4px}.user-selection-name{font-weight:600;color:#1f2937;font-size:14px}.user-selection-email{color:#6b7280;font-size:12px}.user-selection-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.badge{padding:2px 8px;border-radius:12px;font-size:10px;font-weight:500;text-transform:uppercase}.badge-success{background:#d1fae5;color:#065f46}.badge-info{background:#dbeafe;color:#1e40af}.badge-warning{background:#fef3c7;color:#92400e}.badge-admin{background:#f3e8ff;color:#6b21a8}.badge-error{background:#fee2e2;color:#991b1b}@media(max-width:768px){.users-selection-grid{grid-template-columns:1fr}}.email-preferences-page{max-width:800px;margin:0 auto;padding:20px}.email-preferences-header{margin-bottom:30px}.email-preferences-header h1{display:flex;align-items:center;gap:10px;color:#2c3e50;margin-bottom:10px}.email-preferences-header .icon{width:32px;height:32px}.email-preferences-header .subtitle{color:#6c757d;font-size:14px}.email-preferences-content{background:#fff;border-radius:8px;padding:30px;box-shadow:0 2px 4px #0000001a}.preference-section{margin-bottom:30px;padding-bottom:30px;border-bottom:1px solid #e9ecef}.preference-section:last-of-type{border-bottom:none}.preference-section h2{color:#2c3e50;font-size:18px;margin-bottom:20px}.preference-item{display:flex;justify-content:space-between;align-items:center;padding:20px;background:#f8f9fa;border-radius:8px;margin-bottom:15px}.preference-item.expanded{flex-direction:column;align-items:stretch}.preference-info{flex:1;margin-right:20px}.preference-item.expanded .preference-info{margin-right:0}.preference-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.preference-header h3{margin:0;flex:1}.frequency-selection{margin-top:20px;padding-top:20px;border-top:1px solid #dee2e6}.frequency-label{font-weight:500;color:#2c3e50;margin-bottom:12px;font-size:14px}.preference-info h3{color:#2c3e50;font-size:16px;margin-bottom:5px}.preference-description{color:#6c757d;font-size:13px;margin:0}.toggle-switch{position:relative;display:inline-block;width:50px;height:26px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.3s;border-radius:26px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background-color:#3498db}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 1px #3498db}.toggle-switch input:checked+.toggle-slider:before{transform:translate(24px)}.toggle-switch input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.frequency-options{display:flex;gap:15px}.frequency-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.frequency-option{display:flex;flex-direction:column;gap:8px;padding:15px 20px;background:#f8f9fa;border-radius:6px;cursor:pointer;transition:background .2s,border-color .2s;border:2px solid transparent}.frequency-option:hover{background:#e9ecef}.frequency-option input[type=radio]{margin:0;cursor:pointer;align-self:flex-start}.frequency-option>div{display:flex;align-items:center;gap:8px}.frequency-option span{color:#2c3e50;font-weight:500;font-size:15px}.frequency-option input[type=radio]:checked+span{color:#3498db}.frequency-option input[type=radio]:checked~.frequency-description{color:#3498db}.frequency-option:has(input[type=radio]:checked){background:#e3f2fd;border-color:#3498db}.frequency-description{color:#6c757d;font-size:12px;margin:4px 0 0}.info-section{background:#e3f2fd;padding:15px;border-radius:6px;margin-bottom:20px}.info-section p{margin:0;color:#1565c0;font-size:14px}.actions{margin-top:30px;text-align:right}.loading,.error-message{text-align:center;padding:40px;color:#6c757d}.error-message{color:#e74c3c}.error-message .icon{width:48px;height:48px;margin-bottom:15px}.section-description{color:#6c757d;font-size:13px;margin-bottom:20px;line-height:1.5}.subject-input{width:100%;padding:10px 15px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s;margin-top:10px}.subject-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.subject-input::placeholder{color:#adb5bd}.preference-description code{background:#f1f3f5;padding:2px 6px;border-radius:3px;font-size:12px;font-family:Courier New,monospace;color:#495057}.layout{min-height:100vh;display:flex;flex-direction:column}.mac-navbar{position:fixed!important;top:0!important;left:0!important;right:0!important;z-index:10000!important;background:#fffc;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(0,0,0,.1);box-shadow:0 1px 3px #0000001a;width:100%;will-change:transform}.mac-navbar-content{max-width:1400px;margin:0 auto;padding:.75rem 2rem;display:flex;justify-content:space-between;align-items:center}.mac-navbar-brand{font-size:1.25rem;font-weight:600;color:#1d1d1f;margin-right:2rem}.mac-navbar-brand-link{display:inline-flex;align-items:center;gap:.85rem;color:#1d1d1f;text-decoration:none;transition:transform .2s ease,opacity .2s ease}.mac-navbar-brand-link:hover{opacity:.88;transform:translateY(-1px)}.mac-navbar-brand-link:focus-visible{outline:2px solid rgba(0,102,204,.35);outline-offset:4px;border-radius:16px}.logo-badge{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center}.logo-emoji{font-size:1.6rem;transform:translateY(1px)}.logo-text{display:flex;flex-direction:column;gap:2px;line-height:1.1}.logo-title{font-size:1.05rem;font-weight:700;letter-spacing:-.01em;color:#0f172a}.logo-subtitle{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.24em;color:#64748b}.mac-navbar-toggle{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:.5rem;z-index:1001}.mac-navbar-toggle span{width:24px;height:2px;background:#1d1d1f;border-radius:2px;transition:all .3s}.mac-navbar-toggle:hover span{background:#06c}.mac-navbar-nav{display:flex;list-style:none;gap:.5rem;margin:0;padding:0;align-items:center}.mac-navbar-nav li{position:relative}.mac-navbar-nav a,.mac-navbar-dropdown-toggle{color:#1d1d1f;text-decoration:none;padding:.5rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;transition:all .2s;display:flex;align-items:center;gap:.5rem;background:none;border:none;cursor:pointer;font-family:inherit}.mac-navbar-nav a:hover,.mac-navbar-dropdown-toggle:hover{background:#0000000d;color:#06c}.mac-navbar-nav a.active,.mac-navbar-dropdown-toggle.active{background:#0066cc1a;color:#06c}.mac-navbar-user-menu{margin-left:1rem;position:relative}.user-menu-trigger{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid rgba(15,23,42,.12);background:#ffffffe6;color:#1d1d1f;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 16px #0f172a14}.user-menu-trigger:hover,.user-menu-trigger.open{background:#0066cc1a;color:#0b3d91;border-color:#06c6}.user-avatar{font-size:.9rem;font-weight:600}.user-avatar.avatar-image{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;overflow:hidden;background:#e2e8f0}.user-avatar.avatar-image img{width:100%;height:100%;object-fit:cover;display:block}.user-menu-dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:#fffffff7;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(0,0,0,.08);border-radius:12px;box-shadow:0 12px 32px #0f172a2e;list-style:none;padding:.5rem;margin:0;width:220px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s ease;pointer-events:none;z-index:12000}.user-menu-dropdown.open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:all}.user-menu-dropdown li{margin:0;padding:0}.user-menu-dropdown button{width:100%;background:transparent;border:none;text-align:left;padding:.6rem .75rem;border-radius:8px;font-size:.85rem;font-weight:500;color:#1d1d1f;cursor:pointer;transition:background .2s ease,color .2s ease;font-family:inherit}.user-menu-dropdown button:hover{background:#0066cc1f;color:#0b3d91}.user-menu-email{display:block;font-size:.8rem;color:#6b7280;padding:.5rem .75rem;border-bottom:1px solid rgba(15,23,42,.08);margin-bottom:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-arrow{font-size:.7rem;transition:transform .2s}.mac-navbar-dropdown:hover .dropdown-arrow,.mac-navbar-dropdown-toggle.active~.dropdown-arrow{transform:rotate(180deg)}.mac-navbar-dropdown{position:relative}.mac-navbar-submenu{position:absolute;top:100%;left:0;margin-top:.5rem;background:#fffffff2;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid rgba(0,0,0,.1);border-radius:12px;box-shadow:0 4px 20px #00000026;list-style:none;padding:.5rem;margin:0;min-width:220px;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s ease;pointer-events:none}.mac-navbar-submenu.open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:all}.mac-navbar-submenu li{margin:0}.mac-navbar-submenu a{display:block;padding:.75rem 1rem;border-radius:8px;white-space:nowrap;width:100%}.mac-navbar-submenu a:hover{background:#0066cc1a}.mac-navbar-submenu a.active{background:#0066cc26;color:#06c}.main-content{flex:1;padding:2rem;background-color:#f5f5f5;margin-top:60px}@media(max-width:768px){.mac-navbar-toggle{display:flex}.logo-title{font-size:.95rem}.logo-subtitle{display:none}.mac-navbar-content{padding:.75rem 1rem}.mac-navbar-nav{position:fixed;top:60px;left:0;right:0;flex-direction:column;align-items:stretch;background:#fffffffa;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(0,0,0,.1);box-shadow:0 4px 20px #00000026;padding:1rem;gap:.5rem;max-height:calc(100vh - 60px);overflow-y:auto;transform:translate(-100%);transition:transform .3s ease}.mac-navbar-nav.open{transform:translate(0)}.mac-navbar-nav li{width:100%}.mac-navbar-nav a,.mac-navbar-dropdown-toggle{width:100%;padding:1rem;justify-content:space-between}.mac-navbar-submenu{position:static;margin-top:.5rem;margin-left:1rem;box-shadow:none;border:none;background:#00000008;border-radius:8px;transform:none;opacity:1;visibility:visible;pointer-events:all;max-height:0;overflow:hidden;transition:max-height .3s ease}.mac-navbar-submenu.open{max-height:300px}.main-content{padding:1rem;margin-top:60px}.mac-navbar-user-menu{align-self:flex-end}.user-menu-dropdown{position:static;margin-top:.5rem;width:100%;box-shadow:none;border-radius:10px;transform:none;opacity:1;visibility:visible;pointer-events:all;display:none}.user-menu-dropdown.open{display:block}.user-menu-email{white-space:normal}}@media(max-width:480px){.mac-navbar-brand{font-size:1rem;margin-right:1rem}.logo-title{font-size:.9rem}.mac-navbar-content{padding:.5rem 1rem}.main-content{padding:.75rem}}.auth-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#1f2a44,#2d4467);padding:20px}.auth-card{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0e1a2c4d;padding:40px;max-width:400px;width:100%;text-align:center}.auth-card h1{font-size:28px;margin-bottom:8px;color:#1f2a44}.auth-subtitle{color:#6b7a99;margin-bottom:30px}.auth-form{display:flex;flex-direction:column;gap:16px;text-align:left}.auth-form label{font-weight:500;color:#1f2a44}.auth-form input{padding:12px 14px;border-radius:10px;border:1px solid #d0d7e2;font-size:16px;transition:border-color .2s ease,box-shadow .2s ease}.auth-form input:focus{border-color:#3f7cff;box-shadow:0 0 0 3px #3f7cff26;outline:none}.auth-button{background:linear-gradient(135deg,#3f7cff,#5a9bff);color:#fff;border:none;padding:12px 14px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;margin-top:12px}.auth-button:hover{transform:translateY(-1px);box-shadow:0 12px 24px #3f7cff40}.auth-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.auth-links{margin-top:20px;display:flex;justify-content:center;gap:16px}.auth-links a{color:#3f7cff;text-decoration:none;font-weight:500}.auth-links a:hover{text-decoration:underline}.auth-error{background:#ff595e1f;border:1px solid rgba(255,89,94,.4);color:#a11a1d;padding:12px 16px;border-radius:12px;margin-bottom:12px;text-align:left}.auth-info{background:#3f7cff1a;border:1px solid rgba(63,124,255,.2);color:#1f2a44;padding:10px 14px;border-radius:12px;margin-bottom:16px;text-align:left}.auth-separator{display:flex;align-items:center;justify-content:center;gap:12px;color:#9aa8c7;font-size:14px}.auth-separator:before,.auth-separator:after{content:"";flex:1;height:1px;background:#e2e8f5}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:18px;color:#fff;background:linear-gradient(135deg,#1f2a44,#2d4467)}.settings-container{display:flex;justify-content:center;padding:40px;background:#f5f7fb;min-height:calc(100vh - 70px)}.settings-card{background:#fff;border-radius:16px;box-shadow:0 18px 40px #0f172a14;padding:32px;max-width:1100px;width:100%}.settings-layout{display:flex;gap:32px}.settings-main{flex:1}.settings-sidebar{width:220px;position:sticky;top:100px;align-self:flex-start}.settings-nav{display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.settings-nav strong{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:#475569}.settings-nav-link{border:none;background:#fff;border-radius:10px;padding:10px 12px;text-align:left;font-weight:600;color:#1d4ed8;cursor:pointer;transition:background .2s ease,color .2s ease}.settings-nav-link:hover{background:#e0e7ff;color:#1e3a8a}.settings-nav-save{margin-top:8px;background:linear-gradient(135deg,#f43f5e,#fb7185);color:#fff;font-weight:700;text-transform:uppercase;text-align:center;padding:12px;border:none;border-radius:12px;box-shadow:0 10px 20px #0f172a1a;cursor:pointer}.settings-nav-save:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.settings-card h1{font-size:28px;margin-bottom:8px;color:#16213a}.settings-identity{display:flex;align-items:center;gap:12px;margin-bottom:24px}.settings-email{color:#64748b;margin:0}.settings-role{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;line-height:1;padding:6px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.5px}.settings-role-user{background:#e2e8f0;color:#1f2937}.settings-role-admin{background:#fde68a;color:#92400e}.settings-role-override-badge{font-size:.75rem;font-weight:500;color:#dc2626;margin-left:4px}.settings-warning{margin-top:1rem;padding:1rem;background:#fef3c7;border:1px solid #fbbf24;border-radius:8px;color:#92400e}.settings-warning strong{display:block;margin-bottom:.5rem;font-size:.95rem}.settings-warning p{margin:0;font-size:.9rem;line-height:1.5}.settings-section h2{font-size:22px;margin-bottom:8px}.settings-section p{color:#4b5563;margin-bottom:20px}.settings-primary,.settings-secondary,.settings-danger{border:none;border-radius:12px;padding:12px 18px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.settings-primary{background:linear-gradient(135deg,#3f7cff,#5a9bff);color:#fff}.settings-secondary{background:#eef2ff;color:#1e3a8a}.settings-danger{background:#fee2e2;color:#b91c1c}.settings-primary:hover,.settings-secondary:hover,.settings-danger:hover{transform:translateY(-1px);box-shadow:0 10px 20px #0f172a14}.settings-error,.settings-success{padding:12px 16px;border-radius:12px;margin-bottom:16px;border:1px solid}.settings-error{background:#f871711f;border-color:#f8717166;color:#b91c1c}.settings-success{background:#22c55e1f;border-color:#22c55e66;color:#047857}.profile-section{margin-bottom:32px}.profile-grid{display:grid;grid-template-columns:minmax(180px,220px) 1fr;gap:24px;align-items:flex-start}.profile-avatar{display:flex;flex-direction:column;gap:12px}.avatar-preview{width:164px;height:164px;border-radius:999px;overflow:hidden;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:700;color:#475569}.avatar-preview img{width:100%;height:100%;object-fit:cover}.avatar-upload{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border-radius:10px;font-weight:600;background:#eef2ff;color:#1e3a8a;cursor:pointer}.avatar-upload input{display:none}.avatar-remove{background:#fee2e2;color:#b91c1c}.avatar-removed-note{font-size:.85rem;color:#b91c1c}.profile-form{display:flex;flex-direction:column;gap:16px}.form-row{display:flex;flex-direction:column;gap:6px}.form-row-inline{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.profile-form label{font-weight:600;color:#1f2937}.profile-form input{padding:10px 14px;border-radius:10px;border:1px solid #cbd5f5;font-size:16px}.form-actions{display:flex;justify-content:flex-end}.twofactor-setup,.twofactor-enabled{background:#f8fafc;border-radius:14px;padding:20px;margin-top:16px}.twofactor-secret{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;background:#fff;padding:12px;border-radius:10px;border:1px solid #e2e8f0}.twofactor-confirm{margin-top:16px;display:flex;gap:12px;align-items:center}.twofactor-confirm input,.twofactor-actions input{padding:10px 14px;border-radius:10px;border:1px solid #cbd5f5;font-size:16px}.twofactor-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-top:16px}.twofactor-card{background:#fff;border-radius:12px;padding:16px;border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:10px}.backup-codes{margin-top:20px;background:#111827;color:#e0f2fe;padding:16px;border-radius:12px}.backup-codes ul{list-style:none;padding:0;margin:10px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.backup-codes li{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:15px;letter-spacing:1px}.settings-preference{background:#f8fafc;border-radius:12px;padding:20px;margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:20px}.settings-preference.select{flex-wrap:wrap}.settings-preference select{min-width:220px;padding:10px 14px;border-radius:10px;border:1px solid #cbd5e1;font-weight:600;background:#fff;color:#0f172a}.settings-preference>div{flex:1}.settings-preference-group{border:1px solid #e2e8f0;border-radius:14px;padding:16px;margin-top:16px;background:#fff}.settings-preference-group header{border-bottom:1px solid #edf2f7;margin:0 -16px;padding:0 16px 12px}.settings-preference-group header h3{margin:0 0 4px;font-size:1rem;color:#0f172a}.settings-preference-group header p{margin:0;color:#64748b;font-size:.9rem}.settings-preference-group .settings-preference{margin-top:12px;background:#f8fafc}.settings-preference strong{display:block;color:#1f2937;margin-bottom:4px;font-size:16px}.settings-preference p{color:#64748b;font-size:14px;margin:0}.settings-toggle-btn{width:56px;height:32px;border-radius:999px;border:none;background:#cbd5e1;position:relative;cursor:pointer;transition:background .2s ease,box-shadow .2s ease;padding:0;flex-shrink:0}.settings-toggle-btn:focus-visible{outline:2px solid #3f7cff;outline-offset:2px}.settings-toggle-btn.checked{background:#3f7cff}.settings-toggle-thumb{position:absolute;width:26px;height:26px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .2s ease;box-shadow:0 2px 6px #0f172a4d}.settings-toggle-btn.checked .settings-toggle-thumb{transform:translate(24px)}.settings-header{margin-bottom:24px}@media(max-width:768px){.settings-container,.settings-card{padding:20px}.settings-layout{flex-direction:column}.settings-sidebar{width:100%;position:static}.profile-grid{grid-template-columns:1fr}.avatar-preview{margin:0 auto}.form-actions{justify-content:stretch}.form-actions .settings-primary{width:100%}.twofactor-confirm{flex-direction:column;align-items:stretch}}.city-search-wrapper{position:relative;width:100%}.city-search-input-wrapper{position:relative;display:flex;align-items:center}.city-search-input{width:100%;padding:10px 60px 10px 14px;border-radius:10px;border:1px solid #cbd5e1;font-size:16px;transition:border-color .2s ease,box-shadow .2s ease}.city-search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.city-search-spinner{position:absolute;right:40px;font-size:18px;pointer-events:none}.city-search-clear{position:absolute;right:10px;background:transparent;border:none;font-size:24px;line-height:1;color:#64748b;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .2s ease,color .2s ease}.city-search-clear:hover{background:#f1f5f9;color:#1e293b}.city-search-suggestions{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 10px 25px #0f172a26;max-height:300px;overflow-y:auto;z-index:1000;list-style:none;padding:8px;margin:0}.city-search-suggestion{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .2s ease}.city-search-suggestion:hover,.city-search-suggestion:focus{background:#f1f5f9;outline:none}.city-search-suggestion-name{font-weight:500;color:#1e293b}.city-search-suggestion-code{font-size:.9rem;color:#64748b;font-weight:600}.city-search-no-results{position:absolute;top:100%;left:0;right:0;margin-top:4px;padding:12px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 10px 25px #0f172a26;color:#64748b;text-align:center;z-index:1000}.statements-page{padding:32px}.statements-header{margin-bottom:24px}.statements-header h1{margin:0;font-size:28px}.statements-header .subtitle{margin-top:8px;color:#6c7a89}.statements-filters{display:flex;align-items:center;gap:12px;margin-bottom:24px}.statements-filters select{padding:8px 12px;border-radius:8px;border:1px solid #d0d7e4}.statements-content{background:#fff;border-radius:12px;box-shadow:0 12px 32px #0f172a14;padding:24px}.statements-table{width:100%;border-collapse:collapse}.statements-table th,.statements-table td{padding:12px 16px;border-bottom:1px solid #edf2f7;text-align:left;font-size:14px}.statements-table th{background:#f8fafc;font-weight:600;color:#1f2a44}.statements-table tbody tr:hover{background:#f3f6ff}.statements-loading,.statements-empty{text-align:center;padding:32px;color:#6c7a89}.btn-secondary{background:#eef2ff;color:#1f3b8f;border:none;border-radius:8px;padding:8px 12px;cursor:pointer;font-size:13px;font-weight:600}.btn-secondary:hover{background:#dde4ff}.statements-actions{display:flex;align-items:center;gap:8px}.icon-button{background:transparent;border:none;padding:6px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#475569;transition:background .2s ease,color .2s ease}.icon-button:hover{background:#6366f11a;color:#1f3b8f}.icon-button:disabled{opacity:.6;cursor:not-allowed}.icon-button svg{width:18px;height:18px}.icon-button.danger{color:#b91c1c}.icon-button.danger:hover{background:#f871711f;color:#7f1d1d}.badge{display:inline-block;padding:4px 8px;border-radius:8px;font-size:12px;font-weight:600}.badge-warning{background:#ffeab6;color:#7f3d00}.documentation-page{padding:2rem;max-width:1400px;margin:0 auto}.documentation-container{display:flex;gap:2rem;min-height:calc(100vh - 200px)}.documentation-sidebar{flex:0 0 280px;background:var(--bg-secondary, #f8f9fa);border-radius:8px;padding:1.5rem;position:sticky;top:2rem;max-height:calc(100vh - 4rem);overflow-y:auto;overflow-x:hidden}.documentation-sidebar h2{margin:0 0 1.5rem;font-size:1.5rem;color:var(--text-primary, #333);border-bottom:2px solid var(--primary-color, #007bff);padding-bottom:.5rem}.documentation-search{position:relative;margin-bottom:1.5rem;z-index:100}.documentation-search-no-results{margin-top:.5rem;padding:.5rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;font-size:.85rem;text-align:center}.documentation-search-results-count{margin-top:.5rem;padding:.25rem .5rem;background:#d1ecf1;border:1px solid #bee5eb;border-radius:4px;color:#0c5460;font-size:.8rem;text-align:center;font-weight:500}.documentation-search-faq-count{color:#007bff;font-weight:600}.documentation-search-dropdown{margin-top:.5rem;background:#fff;border:2px solid var(--primary-color, #007bff);border-radius:6px;box-shadow:0 4px 12px #00000026;max-height:400px;overflow-y:auto;z-index:1001;position:relative}.documentation-search-dropdown-header{padding:.75rem 1rem;background:var(--primary-color, #007bff);color:#fff;font-weight:600;font-size:.9rem;border-radius:4px 4px 0 0;position:sticky;top:0;z-index:10}.documentation-search-dropdown-list{max-height:350px;overflow-y:auto}.documentation-search-dropdown-item{width:100%;padding:.75rem 1rem;text-align:left;border:none;background:#fff;border-bottom:1px solid #e9ecef;cursor:pointer;transition:background-color .2s;display:flex;flex-direction:column;gap:.25rem;position:relative;z-index:1}.documentation-search-dropdown-item:hover{background:#f8f9fa}.documentation-search-dropdown-item:last-child{border-bottom:none}.documentation-search-dropdown-item-group{font-size:.75rem;color:#6c757d;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.documentation-search-dropdown-item-title{font-size:.9rem;color:var(--text-primary, #333);font-weight:500}.documentation-search-dropdown-item-title mark{background:#ffeb3b;color:var(--text-primary, #333);padding:.1em .2em;border-radius:3px;font-weight:600}.documentation-search-input{width:100%;padding:.75rem 2.5rem .75rem 1rem;border:2px solid var(--border-color, #dee2e6);border-radius:6px;font-size:.95rem;transition:all .2s;background:#fff;color:var(--text-primary, #333)}.documentation-search-input:focus{outline:none;border-color:var(--primary-color, #007bff);box-shadow:0 0 0 3px #007bff1a}.documentation-search-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-secondary, #666);cursor:pointer;padding:.25rem .5rem;border-radius:4px;font-size:1rem;transition:all .2s;z-index:10}.documentation-search-clear:hover{background:var(--bg-hover, #e9ecef);color:var(--text-primary, #333)}.documentation-nav{display:flex;flex-direction:column;gap:.5rem}.documentation-nav-group{margin-bottom:.5rem}.documentation-nav-group-header{width:100%;display:flex;justify-content:space-between;align-items:center;background:var(--bg-tertiary, #e9ecef);border:none;text-align:left;padding:.75rem 1rem;border-radius:6px;cursor:pointer;transition:all .2s;font-size:.9rem;font-weight:600;color:var(--text-primary, #333);margin-bottom:.25rem}.documentation-nav-group-header:hover{background:var(--bg-hover, #dee2e6)}.documentation-nav-group-header.expanded{background:var(--primary-color, #007bff);color:#fff}.documentation-nav-group-header:disabled{cursor:not-allowed;opacity:.7}.documentation-nav-group-title{flex:1}.documentation-nav-group-icon{font-size:.75rem;transition:transform .2s;margin-left:.5rem}.documentation-nav-group-header.expanded .documentation-nav-group-icon{transform:rotate(0)}.documentation-nav-group-content{display:flex;flex-direction:column;gap:.25rem;padding-left:.5rem;margin-top:.25rem}.documentation-nav-item{background:transparent;border:none;text-align:left;padding:.75rem 1rem;border-radius:6px;cursor:pointer;transition:all .2s;font-size:.9rem;color:var(--text-secondary, #666);font-weight:500;margin-left:.5rem}.documentation-nav-item mark{background:#ffeb3b;color:var(--text-primary, #333);padding:.1em .2em;border-radius:3px;font-weight:600}.documentation-nav-item:hover{background:var(--bg-hover, #e9ecef);color:var(--text-primary, #333)}.documentation-nav-item.active{background:var(--primary-color, #007bff);color:#fff;font-weight:600}.documentation-content{flex:1;background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 8px #0000001a}.documentation-loading{text-align:center;padding:3rem;color:var(--text-secondary, #666)}.documentation-content .doc-h1{margin-top:0;margin-bottom:1.5rem;font-size:2rem;color:var(--text-primary, #333);border-bottom:3px solid var(--primary-color, #007bff);padding-bottom:.75rem}.documentation-content .doc-h2{margin-top:2.5rem;margin-bottom:1.25rem;font-size:1.75rem;color:var(--text-primary, #333);border-bottom:2px solid var(--primary-color, #007bff);padding-bottom:.5rem}.documentation-content .doc-h3{margin-top:2rem;margin-bottom:1rem;font-size:1.4rem;color:var(--text-primary, #333)}.documentation-content .doc-h4{margin-top:1.5rem;margin-bottom:.75rem;font-size:1.2rem;color:var(--text-primary, #333);font-weight:600;scroll-margin-top:2rem;transition:background-color .3s ease}.documentation-content .doc-h4 mark{background:#ffeb3b;color:var(--text-primary, #333);padding:.1em .2em;border-radius:3px;font-weight:700}.documentation-content mark{background:#ffeb3b;color:var(--text-primary, #333);padding:.1em .2em;border-radius:3px;font-weight:600}.documentation-content .doc-p mark,.documentation-content .doc-li mark,.documentation-content .doc-strong mark,.documentation-content .doc-h5 mark{background:#ffeb3b;color:var(--text-primary, #333);padding:.1em .2em;border-radius:3px;font-weight:600}.documentation-faq-matches{background:#f8f9fa;border-left:4px solid var(--primary-color, #007bff);padding:1.5rem;border-radius:6px;margin-bottom:2rem}.documentation-faq-matches .doc-ul{list-style:none;padding-left:0}.documentation-faq-matches .doc-li{padding:.75rem;background:#fff;border-radius:4px;margin-bottom:.5rem;border-left:3px solid var(--primary-color, #007bff)}.documentation-content .doc-h5{margin-top:1.25rem;margin-bottom:.5rem;font-size:1.1rem;color:var(--text-secondary, #666);font-weight:600}.documentation-content .doc-p{line-height:1.7;color:var(--text-secondary, #666);margin-bottom:1rem}.documentation-content .doc-ul,.documentation-content .doc-ol{margin-left:1.5rem;margin-bottom:1.5rem;line-height:1.8}.documentation-content .doc-li{margin-bottom:.5rem;color:var(--text-secondary, #666)}.documentation-content .doc-ul .doc-ul,.documentation-content .doc-ol .doc-ol{margin-top:.5rem;margin-bottom:.5rem}.documentation-content .doc-strong{color:var(--text-primary, #333);font-weight:600}.documentation-content .doc-code-inline{background:var(--bg-secondary, #f8f9fa);padding:.2em .4em;border-radius:3px;font-family:Monaco,Courier New,monospace;font-size:.9em;color:var(--code-color, #e83e8c)}.documentation-content .doc-code-block{display:block;background:var(--bg-secondary, #f8f9fa);padding:1rem;border-radius:6px;font-family:Monaco,Courier New,monospace;font-size:.9em;overflow-x:auto;margin:1rem 0;border-left:4px solid var(--primary-color, #007bff)}.documentation-content .doc-blockquote{border-left:4px solid var(--primary-color, #007bff);padding-left:1rem;margin:1.5rem 0;color:var(--text-secondary, #666);font-style:italic}.documentation-content .doc-table{width:100%;border-collapse:collapse;margin:1.5rem 0}.documentation-content .doc-th,.documentation-content .doc-td{border:1px solid var(--border-color, #dee2e6);padding:.75rem;text-align:left}.documentation-content .doc-th{background:var(--bg-secondary, #f8f9fa);font-weight:600;color:var(--text-primary, #333)}.documentation-content .doc-tr:nth-child(2n){background:var(--bg-secondary, #f8f9fa)}.documentation-content .doc-link{color:var(--primary-color, #007bff);text-decoration:none;border-bottom:1px solid transparent;transition:all .2s}.documentation-content .doc-link:hover{color:var(--primary-color-hover, #0056b3);border-bottom-color:var(--primary-color, #007bff)}.documentation-content .doc-link-internal{cursor:pointer;font-weight:500}.documentation-content .doc-link-internal:hover{text-decoration:underline}@media(max-width:768px){.documentation-container{flex-direction:column}.documentation-sidebar{position:static;flex:1}.documentation-nav{flex-direction:column}.documentation-nav-group-header{font-size:.85rem;padding:.6rem .75rem}.documentation-nav-item{font-size:.85rem;padding:.6rem .75rem;margin-left:.25rem}.documentation-content{padding:1.5rem}.documentation-search-input{font-size:.9rem;padding:.6rem 2.5rem .6rem .75rem}}
