:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#0f172a;background-color:#f1f5f9;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--page-max-width: 1240px;--page-card-radius: 16px;--page-card-background: #ffffff;--page-card-shadow: 0 12px 28px rgba(15, 23, 42, .08);--page-card-padding: 2rem 2.25rem;--page-section-gap: 1.75rem}*,*:before,*:after{box-sizing:border-box}a,a:hover{color:inherit}body{margin:0;min-height:100vh;background:#f1f5f9}#root{min-height:100vh}.app-shell{max-width:3000px;margin:0 auto;padding:3rem 1.5rem 4rem}.app-brand{display:inline-flex;flex-direction:column;gap:.4rem;text-decoration:none;border:none;background:transparent;padding:0;cursor:pointer;color:inherit;text-align:left}.app-brand:focus-visible{outline:3px solid #2563eb;outline-offset:4px;border-radius:8px}.app-nav{display:inline-flex;gap:.75rem;align-items:center}.app-nav-link{text-decoration:none;font-weight:600;padding:.5rem 1.1rem;border-radius:999px;color:#1f2937;background:transparent;border:none;cursor:pointer;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.app-nav-link:hover{background:#2563eb14}.app-nav-link.active{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;box-shadow:0 10px 22px #2563eb40}.app-content{display:flex;flex-direction:column;gap:2rem;align-items:stretch}.ai-analysis-section,.uploads-section,.analysis-result{display:flex;flex-direction:column;gap:var(--page-section-gap)}.page-surface{width:100%;background:var(--page-card-background);border-radius:var(--page-card-radius);box-shadow:var(--page-card-shadow);padding:var(--page-card-padding)}@media(max-width:768px){.page-surface{padding:1.75rem}}@media(max-width:520px){.page-surface{padding:1.5rem}}.dashboard-page{display:grid;gap:var(--page-section-gap)}.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}.summary-section{background:#fff;border-radius:16px;box-shadow:0 12px 32px #0f172a14;padding:1.75rem;grid-column:1 / -1}.summary-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1.5rem;flex-wrap:wrap}.expenses-chart-section{background:#fff;border-radius:16px;box-shadow:0 12px 32px #0f172a14;padding:1.75rem;display:flex;flex-direction:column;gap:1.75rem;grid-column:1 / -1}.expenses-chart-header h2{margin:0;font-size:1.5rem;color:#0f172a}.expenses-chart-subtitle{margin:.35rem 0 0;color:#64748b;font-size:.95rem}.expenses-chart-grid{display:grid;gap:2rem;align-items:center;grid-template-columns:minmax(220px,280px) minmax(240px,1fr)}@media(max-width:900px){.expenses-chart-grid{grid-template-columns:1fr}.expenses-chart-figure{justify-self:center}}.expenses-chart-figure{position:relative;display:flex;flex-direction:column;align-items:center;gap:1rem}.expenses-chart-svg{width:220px;height:220px}.expenses-chart-track{fill:none;stroke:#e2e8f0;stroke-width:20;opacity:.65}.expenses-chart-segment{fill:none;stroke-width:20;stroke-linecap:round;transition:stroke-dashoffset .3s ease}.expenses-chart-caption{text-align:center;display:flex;flex-direction:column;gap:.3rem}.expenses-chart-total{font-size:1.75rem;font-weight:700;color:#0f172a}.expenses-chart-total-label{font-size:.9rem;color:#64748b;letter-spacing:.08em;text-transform:uppercase}.expenses-chart-legend{margin:0;padding:0;list-style:none;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.expenses-chart-legend-item{display:flex;gap:.75rem;align-items:center;padding:.9rem 1rem;border-radius:14px;background:#f8fafc;box-shadow:inset 0 1px #94a3b833}.expenses-chart-legend-swatch{width:14px;height:14px;border-radius:4px;flex-shrink:0;box-shadow:0 0 0 2px #0f172a0d}.expenses-chart-legend-details{display:flex;flex-direction:column;gap:.25rem}.expenses-chart-legend-label{font-weight:600;color:#0f172a}.expenses-chart-legend-value{font-size:.9rem;color:#475569}.summary-header h2{margin:0;font-size:1.5rem;color:#0f172a}.summary-subtitle{margin:.35rem 0 0;color:#64748b;font-size:.95rem}.summary-view-toggle{display:inline-flex;background:#e2e8f0;padding:.25rem;border-radius:999px;gap:.25rem}.summary-view-toggle-button{border:none;background:transparent;color:#475569;font-weight:600;font-size:.95rem;padding:.4rem .9rem;border-radius:999px;cursor:pointer;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease}.summary-view-toggle-button:hover{background:#ffffffb3;color:#0f172a}.summary-view-toggle-button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.summary-view-toggle-button.active{background:#fff;color:#0f172a;box-shadow:0 6px 20px #0f172a24}.summary-grid{display:grid;gap:1.5rem;margin:1.5rem 0 0;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.summary-card{background:#f8fafc;border-radius:14px;padding:1.25rem 1.5rem;display:grid;gap:.35rem;box-shadow:inset 0 1px #94a3b833}.summary-card dt{margin:0;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.summary-value{margin:0;font-size:1.6rem;font-weight:700;color:#0f172a}.summary-value.positive{color:#047857}.summary-value.negative{color:#b91c1c}.summary-value.neutral{color:#0f172a}.summary-footnote{margin-top:1.75rem;background:#f1f5f9;border-radius:14px;padding:1.5rem 1.75rem;display:grid;gap:1.25rem;box-shadow:inset 0 1px #94a3b826}.summary-footnote-header{display:flex;flex-direction:column;gap:.6rem}.summary-footnote-header p{margin:0;color:#475569;font-size:.95rem;line-height:1.6}.summary-footnote-meta-row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.summary-ai-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .75rem;border-radius:999px;background:#e0f2fe;color:#0369a1;font-weight:600;text-transform:capitalize;font-size:.75rem;letter-spacing:.04em}.summary-ai-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.summary-ai-session{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;color:#0f172a;background:#0f172a0d;border-radius:999px;padding:.25rem .75rem}.summary-ai-session code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.75rem}.summary-blend-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.summary-blend-card{background:#fff;border-radius:12px;border:1px solid rgba(148,163,184,.35);padding:1.1rem 1.35rem;display:grid;gap:.75rem;box-shadow:0 6px 18px #0f172a14}.summary-blend-card h3{margin:0;font-size:1rem;color:#0f172a}.summary-blend-card dl{margin:0;display:grid;gap:.6rem}.summary-blend-row{display:grid;gap:.25rem}.summary-blend-row dt{margin:0;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8}.summary-blend-row dd{margin:0;font-size:1.1rem;font-weight:600;color:#0f172a}.summary-footnote-meta{margin:0;font-size:.85rem;color:#64748b}.upload-section{background:#fff;border-radius:16px;box-shadow:0 12px 32px #0f172a14;padding:1.75rem;display:flex;flex-direction:column;gap:1.5rem;grid-column:1 / -1;position:relative}.analysis-section{background:#fff;border-radius:16px;box-shadow:0 12px 32px #0f172a14;padding:1.75rem;display:flex;flex-direction:column;gap:1.25rem;grid-column:1 / -1}.analysis-header h2{margin:0;font-size:1.5rem;color:#0f172a}.analysis-subtitle{margin:.35rem 0 0;color:#64748b;font-size:.95rem}.analysis-action-button{align-self:flex-start;background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;border:none;padding:.6rem 1.5rem;border-radius:999px;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;box-shadow:0 10px 20px #2563eb40}.analysis-action-button:disabled{opacity:.7;cursor:not-allowed;box-shadow:none}.analysis-action-button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 12px 24px #2563eb59}.analysis-hint{margin:0;color:#64748b;font-size:.95rem}.analysis-status{margin:0;display:grid;gap:.75rem}.analysis-progress{display:flex;align-items:center;gap:.9rem}.analysis-progress-spinner{width:1.35rem;height:1.35rem;border-radius:50%;border:2px solid rgba(37,99,235,.25);border-top-color:#2563eb;animation:analysis-progress-spin .85s linear infinite}@keyframes analysis-progress-spin{to{transform:rotate(360deg)}}.analysis-progress-copy{display:flex;flex-direction:column;gap:.2rem}.analysis-progress-title{margin:0;font-weight:600;color:#0f172a}.analysis-progress-detail{margin:0;font-weight:400;color:#475569;font-size:.9rem}.analysis-progress-detail.long-running{color:#b45309;font-weight:600}.analysis-message{margin:0;font-weight:600;color:#0f172a}.analysis-counts{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;color:#0f172a}.analysis-counts strong{font-size:1.05rem}.analysis-session-id,.analysis-timestamp{margin:0;color:#475569;font-size:.9rem;overflow-wrap:anywhere}.upload-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:center}.upload-header h2{margin:0;font-size:1.5rem;color:#0f172a}.upload-subtitle{margin:.35rem 0 0;color:#64748b;font-size:.95rem}.upload-dropzone{border:2px dashed #cbd5f5;border-radius:14px;padding:2.5rem 1rem;background:#f8fafc;color:#1f2937;text-align:center;cursor:pointer;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;display:block}.upload-dropzone.disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.upload-dropzone.dragging{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 4px #2563eb26}.upload-dropzone-content{display:flex;flex-direction:column;gap:.5rem;align-items:center}.upload-account-type{display:flex;flex-direction:column;gap:.5rem}.upload-account-type-label{margin:0;font-size:.95rem;font-weight:600;color:#0f172a}.upload-account-type-control{position:relative;width:100%;max-width:18rem}.upload-account-type-select{width:100%;padding:.6rem 2.5rem .6rem .9rem;border-radius:.75rem;border:1px solid #cbd5f5;background:#fff;color:#1f2937;font-weight:600;font-size:.95rem;transition:border-color .2s ease,box-shadow .2s ease;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#2563eb 50%),linear-gradient(135deg,#2563eb 50%,transparent 50%);background-position:calc(100% - 1.6rem) calc(50% - .2rem),calc(100% - 1.2rem) calc(50% - .2rem);background-size:.5rem .5rem;background-repeat:no-repeat}.upload-account-type-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb33}.upload-account-type-select:disabled{cursor:not-allowed;opacity:.7}.upload-dropzone-title{margin:0;font-size:1.1rem;font-weight:600;color:#0f172a}.upload-dropzone-subtitle{margin:0;color:#94a3b8;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.upload-dropzone-hint{margin:0;color:#94a3b8;font-size:.9rem}.upload-pending-list{border-top:1px solid #e2e8f0;padding-top:1rem;display:flex;flex-direction:column;gap:1rem}.upload-pending-list-header{display:flex;flex-direction:column;gap:.35rem}.upload-pending-list-title{margin:0;font-weight:600;color:#0f172a}.upload-pending-list-subtitle{margin:0;color:#475569;font-size:.95rem}.upload-pending-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.upload-pending-item{border:1px solid #e2e8f0;border-radius:1rem;padding:1rem 1.25rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;position:relative;background:#f8fafc}.upload-pending-original{display:flex;flex-direction:column;gap:.35rem}.upload-pending-original-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.upload-pending-original-value{font-weight:600;color:#0f172a;word-break:break-word}.upload-pending-original-size{font-size:.85rem;color:#64748b}.upload-pending-field{display:flex;flex-direction:column;gap:.35rem}.upload-pending-field-label{font-weight:600;font-size:.9rem;color:#0f172a}.upload-pending-input,.upload-pending-select{border-radius:.75rem;border:1px solid #cbd5f5;padding:.65rem .9rem;font-size:.95rem;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease}.upload-pending-input:focus,.upload-pending-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb33}.upload-pending-input.invalid,.upload-pending-select.invalid{border-color:#ef4444;box-shadow:none}.upload-pending-input.invalid:focus,.upload-pending-select.invalid:focus{border-color:#dc2626;box-shadow:0 0 0 2px #dc262640}.upload-pending-error{color:#b91c1c;font-size:.85rem}.upload-pending-remove{position:absolute;top:.75rem;right:.75rem;border:none;background:transparent;font-size:1.1rem;line-height:1;cursor:pointer;color:#c2410c;padding:.1rem}.upload-pending-remove:hover{color:#9a3412}.upload-empty-state{margin:0;color:#64748b;font-size:.95rem;text-align:center;padding:.75rem;border-radius:.9rem;background:#f8fafc}.upload-submit-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding-top:.25rem}.upload-submit-button{border:none;border-radius:999px;padding:.65rem 1.8rem;font-size:.95rem;font-weight:600;background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;box-shadow:0 12px 24px #0ea5e959}.upload-submit-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.upload-submit-button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 14px 26px #0ea5e973}.upload-submit-note{margin:0;color:#0f172a;font-size:.9rem}.upload-global-overlay{position:fixed;inset:0;background:#0f172ab3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;z-index:9999;color:#f8fafc;text-align:center;padding:1.5rem}.upload-global-overlay-spinner{width:3rem;height:3rem;border-radius:50%;border:3px solid rgba(248,250,252,.35);border-top-color:#f8fafc;animation:upload-overlay-spin .85s linear infinite}.upload-global-overlay-copy{margin:0;font-size:1.15rem;font-weight:600;max-width:28rem}@keyframes upload-overlay-spin{to{transform:rotate(360deg)}}.upload-manage-link{text-decoration:none;font-weight:600;color:#1d4ed8;padding:.55rem 1.1rem;border-radius:999px;background:#2563eb1f;border:none;cursor:pointer;transition:background .2s ease,color .2s ease}.upload-manage-link:hover{background:#2563eb33}.upload-manage-link:focus-visible{outline:3px solid #2563eb;outline-offset:2px}.upload-button{background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;border:none;padding:.6rem 1.5rem;border-radius:999px;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;box-shadow:0 10px 20px #2563eb40}.upload-button:disabled{opacity:.7;cursor:not-allowed;box-shadow:none}.upload-button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 12px 24px #2563eb59}.upload-status{margin:0;font-size:.95rem;color:#475569}.upload-status.uploading{color:#1d4ed8}.upload-status.success{color:#047857}.upload-status.error{color:#b91c1c}.upload-summary{margin-top:1rem;padding:1.25rem;border-radius:1rem;border:1px solid #e2e8f0;background:#f8fafc;display:flex;flex-direction:column;gap:1rem}.upload-summary-header{display:flex;flex-direction:column;gap:.35rem}.upload-summary-title{margin:0;font-size:1rem;font-weight:600;color:#0f172a}.upload-summary-details{margin:0;font-size:.9rem;color:#64748b;display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:baseline}.upload-summary-filename{font-weight:600;color:#1f2937}.upload-summary-meta{color:#64748b}.upload-summary-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.upload-summary-note{margin:0;font-size:.9rem;color:#475569}.upload-summary-clean{border:none;border-radius:999px;padding:.6rem 1.6rem;font-size:.95rem;font-weight:600;background:linear-gradient(135deg,#10b981,#0ea5e9);color:#fff;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;box-shadow:0 10px 20px #0ea5e940}.upload-summary-clean:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.upload-summary-clean:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 12px 24px #0ea5e959}.upload-summary-unavailable{margin:0;color:#9ca3af;font-size:.9rem}.upload-cleaning-progress{display:flex;align-items:center;gap:.75rem;color:#475569}.upload-cleaning-spinner{width:1.25rem;height:1.25rem;border-radius:50%;border:2px solid rgba(37,99,235,.25);border-top-color:#2563eb;animation:upload-cleaning-spin .8s linear infinite}@keyframes upload-cleaning-spin{to{transform:rotate(360deg)}}.upload-cleaning-message{margin:0;font-size:.95rem;color:#475569}.upload-cleaning-success{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:.9rem;border:1px solid rgba(16,185,129,.3);background:#10b98114}.upload-cleaning-success-message{margin:0;font-weight:600;color:#047857}.upload-cleaning-success-link{border:none;background:none;padding:0;font-size:.95rem;font-weight:600;color:#0f172a;cursor:pointer;display:inline-flex;align-items:center;gap:.35rem}.upload-cleaning-success-link:hover{color:#1d4ed8}.upload-cleaning-error{display:flex;flex-direction:column;gap:.75rem}.upload-cleaning-retry{align-self:flex-start;border:1px solid #0ea5e9;border-radius:999px;padding:.5rem 1.2rem;font-size:.9rem;font-weight:600;background:transparent;color:#0ea5e9;cursor:pointer;transition:background .2s ease,color .2s ease}.upload-cleaning-retry:hover{background:#0ea5e91a}.app-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:1.5rem}.app-header h1{margin:0;font-size:2.25rem;color:#0f172a}.app-tagline{margin:.25rem 0 0;color:#475569;font-size:1rem}.month-navigation{display:flex;flex-direction:column;gap:.65rem;font-weight:600;color:#1f2937}.month-navigation-label{font-size:.9rem;text-transform:uppercase;letter-spacing:.08em}.month-navigation-controls{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem}.month-navigation-select{min-width:200px;width:100%;padding:.55rem .75rem;border-radius:10px;border:1px solid #cbd5f5;background:#fff;font-size:1rem;color:#0f172a;box-shadow:0 1px 2px #0f172a14;transition:border-color .2s ease,box-shadow .2s ease}.month-navigation-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.month-navigation-button{border:none;background:#eff6ff;color:#1d4ed8;font-size:1.5rem;width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,background .2s ease;box-shadow:0 8px 18px #2563eb2e}.month-navigation-button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.month-navigation-button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 12px 24px #2563eb47;background:#dbeafe}.budget-section{background:#fff;border-radius:16px;box-shadow:0 12px 32px #0f172a14;padding:1.75rem;display:flex;flex-direction:column;gap:1.75rem}.budget-header h2{margin:0;font-size:1.5rem;color:#0f172a}.budget-subtitle{margin:.35rem 0 0;color:#64748b;font-size:.95rem}.budget-summary-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.budget-summary-card{background:#f8fafc;border-radius:14px;padding:1rem 1.25rem;box-shadow:inset 0 1px #94a3b83d;display:flex;flex-direction:column;gap:.35rem}.budget-summary-card h3{margin:0;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.budget-summary-card p{margin:0;font-size:1.35rem;font-weight:700;color:#0f172a}.budget-summary-card.positive p{color:#047857}.budget-summary-card.negative p{color:#b91c1c}.budget-overview{background:linear-gradient(135deg,#94a3b81f,#94a3b80a);border-radius:16px;padding:1.35rem 1.5rem;display:flex;flex-direction:column;gap:1.35rem}.budget-overview-header h3{margin:0;font-size:1.25rem;color:#0f172a}.budget-overview-header p{margin:.35rem 0 0;color:#475569;font-size:.95rem}.budget-overview-metrics{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.budget-overview-card{background:#fff;border-radius:14px;padding:1rem 1.2rem;box-shadow:0 12px 24px #0f172a14;display:flex;flex-direction:column;gap:.35rem}.budget-overview-card h4{margin:0;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.budget-overview-card p{margin:0;font-size:1.3rem;font-weight:700;color:#0f172a}.budget-bucket-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.budget-bucket-card{background:#fff;border-radius:16px;padding:1rem 1.25rem 1.2rem;box-shadow:0 10px 24px #0f172a14;display:flex;flex-direction:column;gap:.75rem}.budget-bucket-card header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.budget-bucket-card h4{margin:0;font-size:1.05rem;color:#0f172a}.budget-variance-pill{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;padding:.25rem .6rem;border-radius:999px;font-weight:700;background:#94a3b833;color:#475569}.budget-variance-pill.positive{background:#16a34a2e;color:#15803d}.budget-variance-pill.negative{background:#dc262626;color:#b91c1c}.budget-bucket-card dl{margin:0;display:grid;gap:.5rem;grid-template-columns:repeat(2,minmax(0,1fr))}.budget-bucket-card dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.budget-bucket-card dd{margin:0;font-size:1.05rem;font-weight:600;color:#0f172a}.budget-bucket-bars{display:grid;gap:.6rem}.budget-bucket-bar{position:relative;height:10px;border-radius:999px;background:#94a3b840;overflow:hidden}.budget-bucket-bar span:first-child{position:absolute;top:0;left:0;bottom:0;border-radius:inherit}.budget-bucket-bar.recommended span:first-child{background:linear-gradient(135deg,#93c5fd,#60a5fa)}.budget-bucket-bar.actual span:first-child{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.budget-bucket-label{display:block;margin-top:.35rem;font-size:.75rem;font-weight:600;color:#475569}.budget-insights{display:grid;gap:1.25rem}.budget-top-categories{background:linear-gradient(135deg,#2563eb14,#0ea5e914);border-radius:14px;padding:1.25rem 1.5rem}.budget-top-categories h3{margin:0 0 .75rem;font-size:1.1rem;color:#0f172a}.budget-top-categories ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.budget-top-categories li{display:flex;align-items:center;gap:.85rem}.budget-rank{width:32px;height:32px;border-radius:50%;background:#2563eb;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem}.budget-category-name{display:block;font-weight:600;color:#0f172a}.budget-category-amount{display:block;font-size:.85rem;color:#475569}.budget-empty{margin:0;color:#64748b}.budget-table-wrapper{overflow-x:auto}.budget-table-wrapper table{width:100%;border-collapse:collapse;min-width:480px}.budget-table-wrapper th,.budget-table-wrapper td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid #e2e8f0;vertical-align:middle}.budget-table-wrapper th{font-size:.9rem;font-weight:600;color:#475569}.budget-table-wrapper tbody tr:last-of-type th,.budget-table-wrapper tbody tr:last-of-type td{border-bottom:none}.budget-table-wrapper input[type=number]{width:100%;padding:.5rem .65rem;border-radius:10px;border:1px solid #cbd5f5;background:#f8fafc;font-size:.95rem;color:#0f172a;transition:border-color .2s ease,box-shadow .2s ease}.budget-table-wrapper input[type=number]:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26;background:#fff}.budget-progress{display:flex;align-items:center;gap:.75rem}.budget-progress-track{flex:1;height:.75rem;border-radius:999px;background:#e2e8f0;overflow:hidden;position:relative}.budget-progress-track span{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#3b82f6)}.budget-progress-track.over span{background:linear-gradient(90deg,#dc2626,#f87171)}.budget-progress-label{font-size:.85rem;font-weight:600;color:#475569}.budget-progress-label.over{color:#b91c1c}.over-budget-row{background:#f8717114}.over-budget-row th,.over-budget-row td{border-bottom-color:#f8717173}.over-budget-row .budget-progress-track{background:#f8717133}.transactions-section{background:#fff;border-radius:16px;box-shadow:0 12px 32px #0f172a14;padding:1.75rem}.transactions-header{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;margin-bottom:1.5rem}.transactions-header h2{margin:0;font-size:1.5rem;color:#0f172a}.transactions-subtitle{margin:.25rem 0 0;color:#64748b;font-size:.95rem}.transactions-count{font-size:.95rem;color:#475569;font-weight:600}.transactions-controls{display:grid;gap:1rem;margin-bottom:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.transactions-stats{display:grid;gap:1rem;margin-bottom:1.5rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.transactions-stat-card{background:#f8fafc;border-radius:14px;padding:1rem 1.25rem;box-shadow:inset 0 1px #94a3b833;display:flex;flex-direction:column;gap:.35rem}.transactions-stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.transactions-stat-value{font-size:1.25rem;font-weight:700;color:#0f172a}.transactions-stat-value.positive{color:#047857}.transactions-stat-value.negative{color:#b91c1c}.transactions-filter{display:flex;flex-direction:column;gap:.4rem}.filter-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.transactions-filter input,.transactions-filter select{appearance:none;border:1px solid #cbd5f5;border-radius:10px;padding:.55rem .75rem;font-size:.95rem;color:#0f172a;background:#f8fafc;transition:border-color .2s ease,box-shadow .2s ease}.transactions-filter input:focus,.transactions-filter select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26;background:#fff}.transactions-filter input::placeholder{color:#94a3b8}.sortable-column{border:none;background:transparent;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;padding:0;display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}.sortable-column:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.sort-indicator{font-size:.8rem;color:#94a3b8}.sort-indicator.active{color:#2563eb}.table-wrapper{overflow-x:auto}.transactions-table{width:100%;border-collapse:collapse;min-width:640px}.transactions-table th,.transactions-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid #e2e8f0;font-size:.95rem;color:#0f172a}.transactions-table thead th{background:#f8fafc;color:#475569;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.transactions-table tbody tr:hover td{background:#f1f5f9}.transactions-table .numeric,.transactions-table td.amount{text-align:right;font-variant-numeric:tabular-nums}.transactions-table td.amount.positive{color:#047857;font-weight:600}.transactions-table td.amount.negative{color:#dc2626;font-weight:600}.transactions-table td.amount.neutral{color:#0f172a}.category-cell{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.category-label-text{font-weight:500;color:#1e293b}.category-edit-button{border:1px solid #cbd5f5;background:#f8fafc;color:#1e293b;font-size:.75rem;font-weight:600;border-radius:999px;padding:.25rem .75rem;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.category-edit-button:hover:not(:disabled),.category-edit-button:focus-visible{background:#e2e8f0;border-color:#94a3b8;outline:none}.category-edit-button:disabled{opacity:.6;cursor:not-allowed}.category-editor{margin-top:.75rem;display:grid;gap:.5rem}.category-editor input{width:100%;padding:.5rem .75rem;border-radius:.5rem;border:1px solid #cbd5f5;font-size:.9rem;transition:border-color .2s ease,box-shadow .2s ease}.category-editor input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb33;outline:none}.category-editor-actions{display:flex;flex-wrap:wrap;gap:.5rem}.category-editor-actions button{border-radius:999px;font-size:.8rem;font-weight:600;padding:.3rem .9rem;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.category-editor-actions button[type=submit]{background:#2563eb;color:#fff;border:1px solid #1d4ed8}.category-editor-actions button[type=submit]:hover:not(:disabled),.category-editor-actions button[type=submit]:focus-visible{background:#1d4ed8;border-color:#1e40af;outline:none}.category-editor-actions button[type=button]{background:#f8fafc;color:#1e293b;border:1px solid #cbd5f5}.category-editor-actions button[type=button]:hover:not(:disabled),.category-editor-actions button[type=button]:focus-visible{background:#e2e8f0;border-color:#94a3b8;outline:none}.category-editor-actions button:disabled{opacity:.6;cursor:not-allowed}.category-error{margin:0;color:#b91c1c;font-size:.8rem}.status-message{margin:1.5rem 0 0;font-size:1rem;color:#475569}.status-message.error{color:#b91c1c}.status-message.muted{color:#94a3b8}.status-banner{padding:.75rem 1rem;border-radius:.75rem;border:1px solid rgba(148,163,184,.25);background:#94a3b81f;font-weight:600;overflow-wrap:anywhere;word-break:break-word}.status-banner.error{background:#fecaca73;border-color:#ef444459}.status-banner.success{background:#bbf7d073;border-color:#22c55e59;color:#047857}@media(max-width:640px){.transactions-section{padding:1.25rem}.transactions-table{min-width:100%}.transactions-controls{grid-template-columns:1fr}}@media(min-width:1024px){.app-content{grid-template-columns:minmax(0,360px) minmax(0,1fr);align-items:start}}.bills-section{background:#fff;border-radius:16px;box-shadow:0 12px 32px #0f172a14;padding:1.75rem}.bills-header{margin-bottom:1.5rem}.bills-header h2{margin:0;font-size:1.5rem;color:#0f172a}.bills-editing-note{margin:0;font-size:.95rem;color:#2563eb;font-weight:600}.bill-form-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}@media(min-width:640px){.bill-form-actions{flex-direction:row;align-items:center;flex-wrap:wrap}.bill-form-actions .bill-form-submit{align-self:center}}.bill-form-cancel,.bill-form-reset{background:transparent;border:1px solid #cbd5f5;color:#1f2937;padding:.7rem 1.25rem;border-radius:999px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.bill-form-cancel:disabled,.bill-form-reset:disabled{opacity:.6;cursor:not-allowed}.bill-form-cancel:not(:disabled):hover,.bill-form-reset:not(:disabled):hover{background:#eff6ff;border-color:#2563eb;color:#1d4ed8}.bills-list-card{background:#f8fafc;border-radius:14px;padding:1.5rem;box-shadow:inset 0 0 0 1px #94a3b859;display:flex;flex-direction:column;gap:1rem}.bills-list-header h3{margin:0;font-size:1.15rem;color:#0f172a}.bills-list-header p{margin:.35rem 0 0;font-size:.9rem;color:#64748b}.bills-total-recurring{margin:0;font-size:1rem;font-weight:600;color:#0f172a}.bills-month-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.bills-month-filter-button{border:none;background:#e2e8f0;color:#0f172a;padding:.45rem .9rem;border-radius:999px;font-weight:600;font-size:.85rem;cursor:pointer;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.bills-month-filter-button:hover{background:#cbd5f5}.bills-month-filter-button:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.bills-month-filter-button.active{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;box-shadow:0 8px 18px #2563eb40}.bills-list-status{margin:0;font-size:.95rem;color:#475569}.bills-list-status.error{color:#b91c1c}.bills-list-status.muted{color:#94a3b8}.bills-list-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1.5rem 0;color:#475569}.bills-list-spinner{width:1.5rem;height:1.5rem;border-radius:999px;border:3px solid rgba(37,99,235,.2);border-top-color:#2563eb;animation:bill-form-submit-spin .8s linear infinite}.bills-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.bill-item{background:#fff;border-radius:12px;padding:1rem 1.1rem;box-shadow:0 12px 24px #0f172a0f;display:grid;gap:.6rem}.bill-item.active{box-shadow:0 0 0 2px #2563eb73,0 12px 24px #2563eb2e;background:#eff6ff}.bill-item-main{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem}.bill-item-name{font-weight:600;color:#0f172a}.bill-item-amount{font-weight:600;color:#2563eb;font-variant-numeric:tabular-nums}.bill-item-meta{display:flex;flex-wrap:wrap;gap:.75rem;color:#475569;font-size:.9rem}.bill-item-actions{display:flex;flex-wrap:wrap;gap:.6rem}.bill-item-action{background:#e0f2fe;border:none;color:#0369a1;padding:.55rem 1.1rem;border-radius:999px;font-weight:600;font-size:.9rem;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,background .2s ease;box-shadow:0 8px 18px #0369a133}.bill-item-action:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 12px 24px #0369a147;background:#bae6fd}.bill-item-action.danger{background:#fee2e2;color:#b91c1c;box-shadow:0 8px 18px #b91c1c2e}.bill-item-action.danger:not(:disabled):hover{background:#fecaca;box-shadow:0 12px 24px #b91c1c3d}.bill-item-action:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.bills-send-analysis{margin-top:.5rem;display:flex;flex-direction:column;gap:.35rem}.bills-send-analysis-button{align-self:flex-start;border:none;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;padding:.6rem 1.4rem;border-radius:999px;font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,background .2s ease;box-shadow:0 10px 22px #2563eb47}.bills-send-analysis-button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 16px 28px #2563eb52}.bills-send-analysis-button:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.bills-send-analysis-helper{margin:0;font-size:.85rem;color:#64748b}.bills-subtitle{margin:.25rem 0 0;color:#64748b;font-size:.95rem}.upcoming-bills{background:#fff;border-radius:16px;box-shadow:0 12px 32px #0f172a14;padding:1.75rem;display:flex;flex-direction:column;gap:1rem}.upcoming-bills h2{margin:0;font-size:1.5rem;color:#0f172a}.upcoming-bills-subtitle{margin:0;color:#64748b;font-size:.95rem}.upcoming-bills-status{margin:0;font-size:.95rem;color:#475569}.upcoming-bills-status.error{color:#b91c1c}.upcoming-bills-status.muted{color:#94a3b8}.upcoming-bills-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.upcoming-bills-list li{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;border-radius:12px;background:#f8fafc;box-shadow:inset 0 0 0 1px #e2e8f0}.upcoming-bills-list .bill-name{font-weight:600;color:#0f172a}.upcoming-bills-list .bill-amount{font-variant-numeric:tabular-nums;color:#1d4ed8}.upcoming-bills-list .bill-due-day{color:#475569;font-size:.9rem}.bill-form{display:grid;gap:1rem}.bill-form-field{display:flex;flex-direction:column;gap:.5rem;font-weight:600;color:#1f2937}.bill-form-field span{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.bill-form-required-indicator{color:#dc2626;margin-left:.25rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.bill-form-field input[type=text],.bill-form-field input[type=number]{border-radius:10px;border:1px solid #cbd5f5;padding:.65rem .75rem;font-size:1rem;color:#0f172a;background:#fff;box-shadow:0 1px 2px #0f172a14}.bill-form-field input:focus{outline:2px solid #2563eb;outline-offset:2px}.bill-form-amount{display:flex;align-items:center;gap:.35rem}.bill-form-amount span{font-size:1rem;color:#475569}.bill-form-checkbox{display:flex;align-items:center;gap:.6rem;font-size:.95rem;color:#1f2937}.bill-form-checkbox input{width:1.1rem;height:1.1rem;accent-color:#16a34a}.bill-form-submit{align-self:start;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:999px;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;box-shadow:0 10px 20px #22c55e40}.bill-form-submit:disabled{opacity:.7;cursor:not-allowed;box-shadow:none}.bill-form-submit:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 12px 24px #22c55e59}.bill-form-submit-spinner{width:1rem;height:1rem;border-radius:999px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;animation:bill-form-submit-spin .8s linear infinite}@keyframes bill-form-submit-spin{to{transform:rotate(360deg)}}.bill-form-status{margin-top:1.25rem;font-size:.95rem;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:.75rem;font-weight:600;box-shadow:inset 0 0 0 1px #0f172a0d}.bill-form-status.success{color:#047857;background:#86efac40;border:1px solid rgba(16,185,129,.35)}.bill-form-status.error{color:#b91c1c;background:#fecaca40;border:1px solid rgba(239,68,68,.35)}.bill-form-status-dismiss{margin-left:auto;background:transparent;border:none;color:inherit;font:inherit;font-weight:600;cursor:pointer;padding:.25rem 0;text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:currentColor}.bill-form-status-dismiss:focus-visible{outline:2px solid currentColor;outline-offset:2px}.bill-form-status-dismiss:hover{text-decoration:none}.uploads-section{width:100%;display:flex;flex-direction:column;gap:var(--page-section-gap)}.uploads-header{display:flex;flex-direction:column;gap:1.5rem}.uploads-controls{display:flex;align-items:center;justify-content:flex-end}.uploads-year-selector{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.uploads-year-label{font-weight:600;color:#0f172a}.uploads-year-input{width:6rem;padding:.4rem .75rem;border-radius:.6rem;border:1px solid rgba(148,163,184,.6);font-size:1rem;text-align:center;color:#0f172a;background:#fff}.uploads-year-input:focus-visible{outline:2px solid rgba(37,99,235,.3);outline-offset:2px}.uploads-year-button{border:none;background:#94a3b82e;color:#1f2937;font-weight:600;padding:.4rem .9rem;border-radius:999px;cursor:pointer;transition:background .2s ease,transform .2s ease}.uploads-year-button:hover,.uploads-year-button:focus-visible{background:#3b82f62e;outline:none;transform:translateY(-1px)}.uploads-year-button:active{transform:translateY(0)}.uploads-header h2{margin:0;font-size:1.5rem;color:#0f172a}.uploads-subtitle{margin:.35rem 0 0;color:#64748b;font-size:.95rem}.uploads-status,.uploads-error,.uploads-empty{margin:0;font-size:.95rem;color:#475569}.uploads-error{color:#b91c1c}.uploads-groups{display:flex;flex-direction:column;gap:1.25rem}.uploads-month{border:1px solid #e2e8f0;border-radius:14px;padding:1.25rem 1.5rem;background:#f8fafc}.uploads-month-header{display:flex;justify-content:space-between;gap:1.25rem;align-items:center;flex-wrap:wrap}.uploads-month-header>div:first-child{flex:1 1 280px;min-width:220px}.uploads-month-header h3{margin:0;font-size:1.1rem;color:#0f172a}.uploads-month-count{margin:.35rem 0 0;color:#64748b;font-size:.9rem}.uploads-list{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-direction:column;gap:1rem}.uploads-item{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center}.uploads-month-actions{display:flex;gap:.75rem;align-items:center;flex-shrink:0;white-space:nowrap}.uploads-account-type{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:#475569}.uploads-account-type-label{font-weight:600;color:#0f172a;font-size:.85rem}.uploads-account-type-select{border:1px solid #cbd5f5;border-radius:.75rem;padding:.35rem .75rem;background:#fff;color:#0f172a;font:inherit}.uploads-account-type-select:focus-visible{outline:2px solid rgba(37,99,235,.4);outline-offset:2px}.uploads-account-type-select:disabled{opacity:.6;cursor:not-allowed}.uploads-month-status{margin:1rem 0 0;font-size:.95rem}.uploads-month-status.uploading{color:#1d4ed8}.uploads-analysis-section{margin:1.5rem 0;display:flex;flex-direction:column;gap:.75rem}.uploads-analysis-button{align-self:flex-start;border:none;border-radius:999px;padding:.65rem 1.8rem;font-size:1rem;font-weight:600;cursor:pointer;color:#fff;background:linear-gradient(135deg,#2563eb,#7c3aed);box-shadow:0 8px 20px #4f46e559;transition:opacity .2s ease,transform .2s ease}.uploads-analysis-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.uploads-analysis-button:not(:disabled):hover{transform:translateY(-1px)}.uploads-analysis-status{max-width:32rem}.uploads-empty-month{margin:1rem 0 0;font-size:.95rem;color:#64748b}.uploads-item-name{margin:0;font-size:1rem;font-weight:600;color:#0f172a;word-break:break-word}.uploads-item-meta{margin:.35rem 0 0;color:#64748b;font-size:.9rem}.uploads-item-badge{display:inline-flex;align-items:center;margin-top:.35rem;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;background:#facc1533;color:#854d0e}.uploads-item-actions{display:flex;gap:.5rem}.uploads-action-button{border:none;border-radius:999px;padding:.45rem 1.1rem;font-weight:600;cursor:pointer;background:#e2e8f0;color:#1f2937;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.uploads-action-button:hover:not(:disabled){background:#cbd5f5}.uploads-action-button:disabled{opacity:.6;cursor:not-allowed}.uploads-action-button.danger{background:#fee2e2;color:#b91c1c}.uploads-action-button.danger:hover:not(:disabled){background:#fecaca}.ai-analysis-section{width:100%;min-height:320px;display:grid;gap:var(--page-section-gap)}.ai-analysis-section h1{font-size:1.75rem;margin:0;color:var(--text-primary, #0f172a)}.analysis-box{flex:1;padding:1.25rem;border-radius:8px;border:1px solid rgba(15,23,42,.12);background:#0f172a08;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.95rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-secondary, #1e293b)}.analysis-summary{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.analysis-summary-header{display:flex;flex-direction:column;gap:.75rem;font-size:1.05rem;color:var(--text-secondary, #1e293b)}.analysis-status-badge{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;padding:.35rem .8rem;border-radius:999px;text-transform:capitalize;font-size:.85rem}.analysis-status-badge.positive{background:#16a34a1f;color:#15803d}.analysis-status-badge.neutral{background:#3b82f61f;color:#2563eb}.analysis-status-badge.negative{background:#dc26261f;color:#b91c1c}.analysis-metric-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.analysis-metric-card{background:#0f172a05;border:1px solid rgba(15,23,42,.08);border-radius:12px;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.4rem;min-height:110px}.analysis-metric-card h2{font-size:.95rem;text-transform:uppercase;letter-spacing:.05em;color:#0f172a99;margin:0}.analysis-metric-card p{font-size:1.35rem;font-weight:700;color:var(--text-primary, #0f172a);margin:0}.analysis-status-banner{padding:.85rem 1.1rem;border-radius:8px;font-weight:600;background:#2563eb14;color:#1d4ed8}.analysis-status-banner.error{background:#dc26261f;color:#b91c1c}.analysis-status-banner.muted{background:#0f172a0d;color:#0f172a99}.analysis-raw-heading{font-size:1.125rem;margin:0 0 .75rem;color:var(--text-primary, #0f172a)}.analysis-income{background:#0f172a05;border-radius:16px;padding:1.5rem;border:1px solid rgba(15,23,42,.08);display:flex;flex-direction:column;gap:1.25rem}.analysis-income-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem}.analysis-income-header h2{font-size:1.35rem;margin:0;color:var(--text-primary, #0f172a)}.analysis-income-total{font-size:1.5rem;font-weight:700;color:#0f172a}.analysis-income-note{margin:0;display:flex;align-items:center;gap:.75rem;font-size:.95rem;color:#0f172abf}.analysis-stability-badge{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;font-size:.85rem;padding:.35rem .9rem;border-radius:999px}.analysis-stability-badge.positive{background:#16a34a1f;color:#15803d}.analysis-stability-badge.neutral{background:#3b82f61f;color:#2563eb}.analysis-stability-badge.negative{background:#dc26261f;color:#b91c1c}.analysis-income-table-wrapper{border-radius:14px;border:1px solid rgba(15,23,42,.08);overflow:hidden;background:#fff}.analysis-income-table{width:100%;border-collapse:collapse;font-size:.95rem}.analysis-income-table th,.analysis-income-table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid rgba(15,23,42,.08)}.analysis-income-table th{font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;color:#0f172a99;background:#0f172a0a}.analysis-income-table tbody tr:last-child th,.analysis-income-table tbody tr:last-child td{border-bottom:none}.analysis-expenses{display:flex;flex-direction:column;gap:1.5rem}.analysis-expenses-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem}.analysis-expenses-header h2{margin:0;font-size:1.35rem;color:var(--text-primary, #0f172a)}.analysis-expense-tabs{display:inline-flex;gap:.5rem;background:#0f172a0f;padding:.35rem;border-radius:999px}.analysis-expense-tab{border:none;background:transparent;border-radius:999px;padding:.45rem 1.2rem;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.analysis-expense-tab.active{background:#fff;box-shadow:0 6px 18px #0f172a1f}.analysis-expense-panel{display:flex;flex-direction:column;gap:1rem}.analysis-expense-category{border:1px solid rgba(15,23,42,.12);border-radius:16px;background:#fff;box-shadow:0 12px 28px #0f172a14;overflow:hidden}.analysis-expense-category summary{list-style:none;padding:1.1rem 1.3rem;cursor:pointer}.analysis-expense-category summary::-webkit-details-marker{display:none}.analysis-expense-category[open] summary{border-bottom:1px solid rgba(15,23,42,.1)}.analysis-expense-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.analysis-expense-summary h3{margin:0;font-size:1.1rem;color:var(--text-primary, #0f172a)}.analysis-expense-metrics{display:inline-flex;gap:1rem;font-weight:600;color:#0f172abf}.analysis-expense-items{padding:1.1rem 1.3rem 1.3rem}.analysis-expense-items table{width:100%;border-collapse:collapse;font-size:.95rem}.analysis-expense-items th,.analysis-expense-items td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid rgba(15,23,42,.08)}.analysis-expense-items th{font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;color:#0f172a99;background:#0f172a0a}.analysis-expense-items tbody tr:last-child th,.analysis-expense-items tbody tr:last-child td{border-bottom:none}.analysis-budget-ratios{display:flex;flex-direction:column;gap:1.25rem}.analysis-budget-header h2{margin:0;font-size:1.35rem;color:var(--text-primary, #0f172a)}.analysis-budget-header p{margin:0;color:#0f172ab3;font-size:.95rem}.analysis-budget-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.budget-ratio-card{background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:1.1rem 1.25rem;box-shadow:0 10px 24px #0f172a14;display:flex;flex-direction:column;gap:.85rem}.budget-ratio-card header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.budget-ratio-card h3{margin:0;font-size:1.1rem;color:var(--text-primary, #0f172a)}.budget-variance{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;padding:.3rem .7rem;border-radius:999px;font-weight:700}.budget-variance.positive{background:#16a34a1f;color:#15803d}.budget-variance.warning{background:#facc1540;color:#b45309}.budget-variance.negative{background:#dc262626;color:#b91c1c}.budget-variance.neutral{background:#94a3b82e;color:#475569}.budget-bars{display:grid;gap:.65rem}.budget-bar{position:relative;height:10px;border-radius:999px;background:#0f172a14;overflow:hidden}.budget-bar span:first-child{position:absolute;top:0;left:0;bottom:0;border-radius:inherit}.budget-bar.recommended span:first-child{background:linear-gradient(135deg,#93c5fd,#60a5fa)}.budget-bar.actual span:first-child{background:linear-gradient(135deg,#2563eb,#1d4ed8)}.budget-label{display:block;font-size:.8rem;font-weight:600;margin-top:.35rem;color:#0f172ab3}.analysis-result{gap:var(--page-section-gap)}.analysis-result-grid{display:grid;gap:2rem;grid-template-columns:minmax(260px,320px) minmax(0,1fr)}@media(max-width:960px){.analysis-result-grid{grid-template-columns:1fr}}.analysis-result-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.analysis-result-header h1{margin:0;font-size:1.75rem;color:#0f172a}.analysis-result-header p{margin:.35rem 0 0;color:#0f172ab3}.analysis-result-pill{font-size:.85rem;font-weight:600;padding:.35rem .8rem;border-radius:999px;background:#2563eb1f;color:#1d4ed8}.analysis-result-meta{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.analysis-result-pill.source-incoming{background:#10b98126;color:#047857}.analysis-result-pill.source-cache{background:#a855f71f;color:#6d28d9}.analysis-result-pill.source-remote{background:#2563eb1f;color:#1d4ed8}.analysis-result-overview{border:1px solid rgba(15,23,42,.08);border-radius:12px;background:#f8fafc;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.analysis-result-overview h2{margin:0;font-size:1.25rem;color:#0f172a}.analysis-result-overview p{margin:0;color:#0f172abf}.analysis-result-overview details{border:1px solid rgba(15,23,42,.08);border-radius:10px;background:#fff;padding:.75rem 1rem}.analysis-result-overview details summary{font-weight:600;cursor:pointer;color:#0f172a}.analysis-result-overview details[open] summary{margin-bottom:.5rem}.analysis-result-overview ul{margin:0;padding-left:1.25rem;color:#0f172abf}.analysis-result-overview li{margin:.2rem 0;line-height:1.45}.analysis-result-normalised{border-radius:12px;border:1px solid rgba(15,23,42,.08);background:#fff;padding:.75rem 1rem}.analysis-result-normalised summary{font-weight:600;cursor:pointer;color:#0f172a}.analysis-result-normalised[open] summary{margin-bottom:.75rem}.analysis-json-viewer{border-radius:12px;border:1px solid rgba(15,23,42,.08);background:#f8fafc;padding:1rem 1.25rem;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.9rem;line-height:1.5;overflow-x:auto;max-height:70vh}.analysis-result-panel{display:flex;flex-direction:column;gap:1rem}.analysis-agent-panel{display:flex;flex-direction:column;gap:1.25rem;padding:1.5rem;border-radius:18px;background:#fff;box-shadow:0 12px 32px #18214d14}.analysis-agent-tabs{display:inline-flex;gap:.5rem;border-bottom:1px solid #d7dbe7;padding-bottom:.5rem}.analysis-agent-tab{border:none;background:transparent;font-size:1rem;font-weight:600;padding:.5rem .9rem;border-radius:.75rem;cursor:pointer;color:#4b5563;transition:background .15s ease,color .15s ease}.analysis-agent-tab.active,.analysis-agent-tab:hover{background:#e0e7ff;color:#1e1b4b}.analysis-agent-content{display:flex;flex-direction:column;gap:1.25rem}.analysis-agent-section{border:1px solid rgba(15,23,42,.08);border-radius:14px;background:#f8fafc;padding:1.1rem 1.35rem;display:flex;flex-direction:column;gap:.75rem}.analysis-agent-section header{display:flex;flex-direction:column;gap:.35rem}.analysis-agent-section header h3{margin:0;font-size:1.1rem;color:#0f172a}.analysis-agent-period{margin:.25rem 0 0;color:#0f172aa6;font-size:.9rem}.analysis-agent-meta{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.analysis-agent-meta dt{margin:0;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:#0f172a8c}.analysis-agent-meta dd{margin:.25rem 0 0;font-weight:600;color:#0f172a}.analysis-agent-budget{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.analysis-budget-label{display:block;font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#0f172a8c}.analysis-budget-value{display:block;font-size:.95rem;color:#0f172abf}.analysis-agent-subtitle{margin:0;color:#0f172a99;font-size:.9rem}.analysis-observations-list,.analysis-agreements-list,.analysis-conflicts-list{margin:0;padding-left:1.1rem;display:grid;gap:.75rem;color:#0f172a}.analysis-observations-list li,.analysis-agreements-list li,.analysis-conflicts-list li{line-height:1.5}.analysis-observation-severity{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;text-transform:capitalize;font-weight:600;background:#2563eb1f;color:#1d4ed8}.analysis-observation-severity.warning{background:#eab30826;color:#b45309}.analysis-observation-severity.critical{background:#dc262626;color:#b91c1c}.analysis-actions-list{margin:0;padding-left:1.25rem;display:grid;gap:.65rem;color:#0f172a}.analysis-actions-list li{display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:start}.analysis-action-rank{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:999px;background:#2563eb1f;color:#1d4ed8;font-weight:700}.analysis-insights-list{margin:0;padding-left:1.2rem;display:grid;gap:.5rem;color:#0f172a}.analysis-insights-list li{line-height:1.5}.analysis-insight-detail{margin:.15rem 0 0;color:#0f172ab3}.analysis-roundtable-summary{margin:0;color:#0f172acc;line-height:1.6}.analysis-conflict-positions{margin:.35rem 0 0;padding-left:1.2rem;display:grid;gap:.35rem;color:#0f172ad9}.analysis-conflict-positions li{line-height:1.4}.analysis-result-overview{border-radius:24px;background:linear-gradient(180deg,#2563eb14,#2563eb00);padding:1.75rem;box-shadow:inset 0 0 0 1px #2563eb14;display:flex;flex-direction:column;gap:1rem}.analysis-result-overview h1{margin:0;font-size:2rem;line-height:1.2}.analysis-result-overview p{margin:0;color:#0f172ab3}.analysis-spending{display:flex;flex-direction:column;gap:1.5rem}.analysis-spending-header h2{margin:0;font-size:1.35rem;color:var(--text-primary, #0f172a)}.analysis-spending-header p{margin:0;color:#0f172ab3}.analysis-monthly-comparison{display:flex;flex-direction:column;gap:1.25rem}.analysis-monthly-header h2{margin:0;font-size:1.35rem;color:var(--text-primary, #0f172a)}.analysis-monthly-header p{margin:.35rem 0 0;color:#0f172ab3;font-size:.95rem}.monthly-comparison-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.monthly-card{background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:1.1rem 1.25rem;box-shadow:0 10px 24px #0f172a14;display:flex;flex-direction:column;gap:.65rem}.monthly-card header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.monthly-card h3{margin:0;font-size:1.05rem;color:var(--text-primary, #0f172a)}.monthly-current{margin:0;font-size:1.4rem;font-weight:700;color:#0f172a}.monthly-previous{margin:0;font-size:.9rem;color:#0f172aa6}.monthly-delta{font-size:.8rem;font-weight:700;padding:.3rem .65rem;border-radius:999px;text-transform:uppercase;letter-spacing:.08em}.monthly-delta.positive{background:#16a34a1f;color:#15803d}.monthly-delta.negative{background:#dc26261f;color:#b91c1c}.monthly-delta.neutral{background:#94a3b82e;color:#475569}.analysis-spending-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.uploads-section{padding:2.5rem}.uploads-status,.uploads-error{margin:0}.uploads-groups{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.uploads-month{border-radius:20px;background:#f8fafc;border:1px solid rgba(15,23,42,.08);padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.uploads-month-header{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.uploads-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.uploads-item{border:1px solid rgba(15,23,42,.08);border-radius:16px;background:#fff;padding:1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.uploads-item-actions{display:flex;gap:.75rem;flex-wrap:wrap}.spending-card{background:#fff;border-radius:16px;border:1px solid rgba(15,23,42,.08);padding:1.25rem;box-shadow:0 12px 28px #0f172a14;display:flex;flex-direction:column;gap:1rem}.spending-card header h3{margin:0;font-size:1.1rem;color:var(--text-primary, #0f172a)}.spending-card.wide{grid-column:span 2}.spending-top-categories{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.85rem}.spending-top-categories li{display:flex;gap:.75rem;align-items:center}.category-rank{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center}.category-info{display:flex;flex-direction:column;gap:.25rem}.category-name{font-weight:600;color:#0f172a}.category-amount{font-size:.9rem;color:#0f172ab3}.spending-table-wrapper{border-radius:14px;border:1px solid rgba(15,23,42,.08);overflow:hidden}.spending-table-wrapper table{width:100%;border-collapse:collapse}.spending-table-wrapper th,.spending-table-wrapper td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid rgba(15,23,42,.08)}.spending-table-wrapper th{background:#0f172a0a;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:700;color:#0f172a99}.spending-table-wrapper tbody tr:last-child th,.spending-table-wrapper tbody tr:last-child td{border-bottom:none}.spending-recurring-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.8rem}.spending-recurring-list li{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;border-bottom:1px solid rgba(15,23,42,.08);padding-bottom:.75rem}.spending-recurring-list li:last-child{border-bottom:none}.recurring-name{font-weight:600;color:#0f172a}.recurring-frequency{display:block;font-size:.85rem;color:#0f172a99}.recurring-meta{display:flex;flex-direction:column;gap:.25rem;text-align:right;font-size:.9rem;color:#0f172ab3}.spending-unusual-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}.unusual-header{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between}.unusual-severity{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;padding:.3rem .7rem;border-radius:999px;font-weight:700}.unusual-severity.positive{background:#16a34a1f;color:#15803d}.unusual-severity.neutral{background:#3b82f61f;color:#2563eb}.unusual-severity.negative,.unusual-severity.warning{background:#dc26261f;color:#b91c1c}.unusual-description{font-weight:600;color:#0f172a}.unusual-amount{font-weight:700;color:#0f172a}.unusual-meta{margin:.4rem 0 0;font-size:.9rem;color:#0f172ab3}.analysis-findings{display:flex;flex-direction:column;gap:1rem}.analysis-findings-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.analysis-findings-header h2{margin:0;font-size:1.25rem;color:var(--text-primary, #0f172a)}.analysis-findings-filters select{border-radius:999px;padding:.4rem 1rem;border:1px solid rgba(15,23,42,.12);background:#ffffffe6;font-weight:600;color:#0f172a;cursor:pointer}.analysis-findings-list{display:flex;flex-direction:column;gap:1rem}.analysis-finding-card{border:1px solid rgba(15,23,42,.1);border-radius:12px;background:#fff;padding:0;overflow:hidden;box-shadow:0 10px 24px #0f172a14}.analysis-finding-card summary{list-style:none;display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;cursor:pointer;-webkit-user-select:none;user-select:none}.analysis-finding-card[open] summary{border-bottom:1px solid rgba(15,23,42,.08)}.analysis-finding-card summary::-webkit-details-marker{display:none}.analysis-severity-tag{display:inline-flex;align-items:center;justify-content:center;min-width:90px;font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.08em;padding:.35rem .75rem;border-radius:999px;background:#0f172a14;color:#0f172a}.analysis-severity-tag.positive{background:#16a34a1f;color:#15803d}.analysis-severity-tag.neutral{background:#3b82f61f;color:#2563eb}.analysis-severity-tag.negative{background:#dc26261f;color:#b91c1c}.analysis-finding-title{font-size:1.05rem;font-weight:600;color:#0f172a}.analysis-finding-body{padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.75rem}.analysis-finding-description{margin:0;color:#0f172abf;line-height:1.6}.analysis-finding-metrics{display:grid;gap:.75rem 1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:0}.analysis-finding-metrics div{background:#0f172a0a;border-radius:10px;padding:.75rem 1rem;display:grid;gap:.35rem}.analysis-finding-metrics dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#0f172a99;margin:0}.analysis-finding-metrics dd{margin:0;font-size:.95rem;font-weight:600;color:#0f172a}.page-layout{display:flex;flex-direction:column;gap:1.5rem;width:min(var(--page-max-width),100%);margin:0 auto}.page-layout__toolbar{display:flex;justify-content:flex-end}.page-layout__surface{width:100%}.ai-analysis-page{display:flex;flex-direction:column;gap:2rem}.ai-analysis-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1.5rem}.ai-analysis-header h1{margin-bottom:.35rem}.muted{color:var(--color-text-muted, #5d6470)}.tagline{margin-top:.25rem;font-weight:500;color:var(--color-text-strong, #1c2333)}.ai-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-radius:.75rem;background:var(--color-surface-subtle, #f5f7fb)}.payload-status{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.95rem}.payload-label{font-weight:600;color:var(--color-text-strong, #1c2333)}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:999px;font-size:.85rem;font-weight:600}.badge.loading{background:#eef2ff;color:#4338ca}.badge.error{background:#fee2e2;color:#b91c1c}.toolbar-actions{display:flex;gap:.75rem}.toolbar-actions .primary,.toolbar-actions .secondary,.agent-controls .primary,.agent-controls .secondary{border:none;border-radius:.75rem;font-weight:600;padding:.6rem 1.2rem;cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease}.primary{background:#4338ca;color:#fff}.primary:disabled{background:#c7d2fe;color:#4c51bf;cursor:not-allowed}.primary:not(:disabled):hover{background:#312e81}.secondary{background:#fff;color:#1c2333;border:1px solid #cbd5f5}.secondary:disabled{background:#f5f7fb;color:#8b92a0;cursor:not-allowed}.secondary:not(:disabled):hover{border-color:#4338ca;color:#312e81}.ai-tabs{display:inline-flex;gap:.5rem;border-bottom:1px solid #d7dbe7;padding-bottom:.5rem}.ai-tabs-button{border:none;background:transparent;font-size:1rem;font-weight:600;padding:.5rem .9rem;border-radius:.75rem;cursor:pointer;color:#4b5563;transition:background .15s ease,color .15s ease}.ai-tabs-button.active,.ai-tabs-button:hover{background:#e0e7ff;color:#1e1b4b}.agent-shell{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem;border-radius:1rem;background:#fff;box-shadow:0 12px 32px #18214d14}.agent-header{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:center;justify-content:space-between}.agent-header .avatar{width:3rem;height:3rem;border-radius:50%;background:#4338ca;color:#fff;display:grid;place-items:center;font-weight:700;font-size:1.1rem}.agent-controls{display:flex;gap:.75rem;align-items:center}.local-run-note{font-size:.9rem;font-weight:500}.status-banner{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;padding:.75rem 1rem;border-radius:.75rem;font-weight:600}.status-banner.idle{background:#f5f7fb;color:#4b5563}.status-banner.loading{background:#eef2ff;color:#3730a3}.status-banner.success{background:#ecfdf3;color:#166534}.status-banner.error{background:#fef2f2;color:#b91c1c}.agent-content{display:grid;gap:1.5rem}.budget-panel header,.observations-panel header,.actions-panel header,.guidance-panel header,.roundtable-summary header,.final-plan header{margin-bottom:.75rem}.budget-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.budget-card{padding:1rem;border:1px solid #e5e7eb;border-radius:.75rem;background:linear-gradient(180deg,#fff,#f8fafc);display:flex;flex-direction:column;gap:.75rem}.budget-card header{display:flex;align-items:center;justify-content:space-between}.variance-pill{padding:.15rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600}.variance-pill.neutral{background:#e5e7eb;color:#111827}.variance-pill.negative{background:#fee2e2;color:#b91c1c}.variance-pill.positive{background:#dcfce7;color:#166534}.budget-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.budget-card dt{font-weight:600;color:#4b5563}.budget-notes{margin:0;padding-left:1.2rem;color:#4b5563}.observations-list,.actions-list,.agreements-list,.conflicts-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.observation-item{display:flex;gap:.75rem;align-items:flex-start;padding:1rem;border-radius:.75rem;border:1px solid #e5e7eb;background:#fff}.severity-chip{padding:.25rem .65rem;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase}.severity-chip.info{background:#e0f2fe;color:#0369a1}.severity-chip.warning{background:#fef3c7;color:#b45309}.severity-chip.critical{background:#fee2e2;color:#b91c1c}.actions-list li,.final-plan ol li{padding:1rem;border-radius:.75rem;border:1px solid #e5e7eb;background:#fff}.action-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.action-priority{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:#4338ca;color:#fff;font-weight:700}.guidance-table-wrapper{overflow-x:auto}.guidance-table-wrapper table{width:100%;border-collapse:collapse;min-width:560px}.guidance-table-wrapper th,.guidance-table-wrapper td{padding:.75rem;border-bottom:1px solid #e5e7eb;text-align:left}.guidance-pill{display:inline-flex;align-items:center;padding:.25rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;text-transform:capitalize}.guidance-pill.increase{background:#dcfce7;color:#15803d}.guidance-pill.decrease{background:#fee2e2;color:#b91c1c}.guidance-pill.monitor{background:#e0e7ff;color:#3730a3}.guidance-toggle{display:inline-flex;margin-left:.5rem;border:none;background:none;color:#4338ca;font-weight:600;cursor:pointer}.roundtable-columns{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.roundtable-columns article{padding:1rem;border-radius:.75rem;border:1px solid #e5e7eb;background:#fff;display:flex;flex-direction:column;gap:.75rem}.final-plan ol{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.retry-panel{display:flex;justify-content:flex-end}@media(max-width:720px){.ai-analysis-header,.agent-header,.ai-toolbar{flex-direction:column;align-items:flex-start}.toolbar-actions,.agent-controls{width:100%;justify-content:flex-start;flex-wrap:wrap}.toolbar-actions button,.agent-controls button{width:100%}}.analysis-report-page{display:flex;flex-direction:column;gap:1.5rem}.analysis-header{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.analysis-kicker{text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;color:#818cf8;margin:0 0 .2rem}.analysis-header h1{margin:0;font-size:2rem;color:#111827}.analysis-subtitle{margin:.35rem 0 0;color:#475569;max-width:36rem}.analysis-actions{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.analysis-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin:0}.analysis-meta dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8}.analysis-meta dd{margin:.15rem 0 0;font-weight:600;color:#0f172a;word-break:break-word}.analysis-refresh-button{border:none;border-radius:999px;padding:.55rem 1.5rem;font-weight:600;cursor:pointer;background:#111827;color:#fff;transition:opacity .2s ease,transform .2s ease}.analysis-refresh-button:disabled{opacity:.6;cursor:not-allowed}.analysis-refresh-button:not(:disabled):hover{transform:translateY(-1px)}.analysis-error{padding:.85rem 1rem;border-radius:.75rem;background:#fee2e2;color:#b91c1c}.analysis-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.analysis-summary-card{border-radius:1rem;border:1px solid #e2e8f0;padding:1rem;background:#fff;box-shadow:0 8px 28px #0f172a0d}.analysis-summary-card h3{margin:0 0 .75rem;font-size:1rem;color:#0f172a}.analysis-summary-card dl{margin:0;display:grid;gap:.5rem}.analysis-summary-card dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:#94a3b8}.analysis-summary-card dd{margin:.1rem 0 0;font-size:1.2rem;font-weight:600;color:#0f172a}.analysis-summary-placeholder{margin:0;color:#64748b;font-size:.9rem}.analysis-dashboard{display:flex;flex-direction:column;gap:1.25rem}.analysis-metric-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.analysis-metric-card{border-radius:1rem;padding:1rem;background:linear-gradient(120deg,#2563eb26,#7c3aed26);color:#0f172a;display:flex;flex-direction:column;gap:.4rem}.analysis-metric-card span{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:#334155}.analysis-metric-card strong{font-size:1.5rem}.analysis-metric-card strong.negative{color:#dc2626}.analysis-data-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem}.analysis-panel{border-radius:1rem;border:1px solid #e2e8f0;padding:1rem;background:#fff;box-shadow:0 8px 32px #0f172a0d;display:flex;flex-direction:column;gap:.75rem}.analysis-panel header h3{margin:0;font-size:1.1rem;color:#0f172a}.analysis-panel header p{margin:.25rem 0 0;color:#64748b;font-size:.9rem}.analysis-panel-placeholder{margin:0;color:#94a3b8;font-size:.9rem}.analysis-panel-total{margin:0;font-size:.95rem;color:#0f172a}.analysis-panel-total strong{margin-left:.25rem}.analysis-panel-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.analysis-panel-list li{display:flex;justify-content:space-between;align-items:center;font-size:.95rem;color:#0f172a}.analysis-panel-list li strong{font-weight:600}.analysis-problem-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.analysis-problem-list h4{margin:0;font-size:.95rem;color:#111827}.analysis-problem-list p{margin:.25rem 0 0;color:#475569;font-size:.9rem}.analysis-tabs{border-radius:1.5rem;border:1px solid #e2e8f0;padding:1.25rem;background:#fff;box-shadow:0 10px 40px #0f172a14;display:flex;flex-direction:column;gap:1rem}.analysis-tab-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.analysis-tab-button{border:1px solid #cbd5f5;border-radius:1rem;padding:.85rem 1rem;text-align:left;background:#f8fafc;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}.analysis-tab-button.active{border-color:#7c3aed;background:#7c3aed14;box-shadow:0 8px 20px #7c3aed33}.analysis-tab-label{display:block;font-weight:600;color:#111827}.analysis-tab-description{display:block;margin-top:.35rem;font-size:.85rem;color:#475569}.analysis-tab-panel{border-radius:1rem;border:1px solid #e2e8f0;background:#0f172a;color:#f1f5f9;padding:1rem;min-height:320px;position:relative;overflow:auto}.analysis-loading{display:flex;align-items:center;gap:.75rem;color:#f8fafc}.analysis-spinner{width:20px;height:20px;border-radius:50%;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;animation:analysis-spin .8s linear infinite}@keyframes analysis-spin{to{transform:rotate(360deg)}}.analysis-json-view{margin:0;white-space:pre-wrap;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.9rem}.analysis-json-empty{margin:0;color:#f8fafccc}
