:root{--primary-color: #4285F4;--primary-hover-color: #5a95f5;--background-color: #f8f9fa;--card-background-color: #ffffff;--text-color: #202124;--subtle-text-color: #5f6368;--border-color: #dadce0;--success-color: #1e8e3e;--success-background-color: #e6f4ea;--danger-color: #d93025;--danger-background-color: #fce8e6;--font-family: "Inter", sans-serif;--border-radius: 8px;--box-shadow: 0 1px 2px 0 rgba(60,64,67,.3), 0 1px 3px 1px rgba(60,64,67,.15);--box-shadow-light: 0 1px 2px 0 rgba(60,64,67,.3)}*{box-sizing:border-box;margin:0;padding:0}html,body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background-color:var(--background-color);color:var(--text-color);line-height:1.6}#root{max-width:1400px;margin:0 auto;padding:2rem 1.5rem}.container{display:flex;flex-direction:column;gap:2rem}header{text-align:center;border-bottom:1px solid var(--border-color);padding-bottom:1.5rem}.client-name-container{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem}.client-name-container label{font-size:1.25rem;font-weight:500;color:var(--subtle-text-color)}.client-name-container input{font-size:1.25rem;font-weight:500;color:var(--text-color);border:none;border-bottom:2px solid transparent;background-color:transparent;text-align:center;padding:.25rem .5rem;transition:border-color .2s}.client-name-container input:focus{outline:none;border-bottom-color:var(--primary-color)}header h1{font-size:2.5rem;font-weight:700;color:var(--text-color);margin-bottom:.5rem}header p{font-size:1.1rem;color:var(--subtle-text-color);max-width:700px;margin:0 auto}.card{background-color:var(--card-background-color);border-radius:var(--border-radius);box-shadow:var(--box-shadow);padding:1.5rem;border:1px solid var(--border-color)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;border-bottom:1px solid var(--border-color);padding-bottom:1rem}.card-header.no-border{border-bottom:none;margin-bottom:0;padding-bottom:0}.card h2{font-size:1.5rem;margin:0;padding:0;border:none}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}.form-group{display:flex;flex-direction:column}.form-group label{font-size:.9rem;font-weight:500;margin-bottom:.5rem;color:var(--subtle-text-color)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:1rem;font-family:var(--font-family);transition:border-color .2s,box-shadow .2s;background-color:#fff;color:var(--text-color)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4285f44d}.form-group-full{grid-column:1 / -1}.button{padding:.75rem 1.5rem;border:none;border-radius:var(--border-radius);font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s,transform .1s,opacity .2s;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.button:active{transform:translateY(1px)}.button:disabled,.button.disabled{opacity:.6;cursor:not-allowed}.button-primary{background-color:var(--primary-color);color:#fff}.button-primary:hover{background-color:var(--primary-hover-color);box-shadow:var(--box-shadow-light)}.button-secondary{background-color:#fff;color:var(--primary-color);border:1px solid var(--border-color);padding:.6rem 1.2rem;font-size:.9rem}.button-secondary:hover:not(:disabled){background-color:#f1f3f4}.form-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;margin-top:1rem}.table-container{overflow-x:auto;width:100%}.comparison-table,.repayment-table{width:100%;border-collapse:collapse}.repayment-table th,.repayment-table td{padding:.75rem 1rem;text-align:left;border:1px solid var(--border-color);vertical-align:middle}.comparison-table th,.comparison-table td{padding:.25rem .2rem;text-align:left;border:1px solid var(--border-color);vertical-align:top;overflow-wrap:break-word}.comparison-table thead th,.repayment-table thead th{background-color:#e9f0fe;font-weight:600;color:var(--text-color);position:sticky;top:0;z-index:2;white-space:nowrap}.comparison-table .metric-header{font-weight:600;background-color:#f8f9fa;position:sticky;left:0;z-index:1;white-space:nowrap;padding:.6rem .4rem}.comparison-table td input,.comparison-table td select,.comparison-table td textarea{width:100%;min-width:70px;padding:.6rem .4rem;border:none;border-radius:4px;font-size:1rem;font-family:var(--font-family);background-color:transparent;color:var(--text-color);text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;line-height:1.5}.comparison-table td textarea{resize:none;overflow:hidden;white-space:normal}.comparison-table td input:focus,.comparison-table td select:focus,.comparison-table td textarea:focus{outline:none;background-color:#e9f0fe;box-shadow:0 0 0 2px var(--primary-color) inset}.comparison-table .calculated-value{font-weight:500;color:var(--subtle-text-color);white-space:nowrap;padding:.6rem .4rem}.proposal-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;min-width:150px}.bank-name-input{font-weight:700;font-size:1rem!important;text-align:left!important;flex-grow:1}.bank-name-display{font-weight:700;font-size:1rem;text-align:left;padding:.6rem .4rem;flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proposal-header-actions{display:flex;gap:.25rem}.button-icon{display:flex;align-items:center;justify-content:center;padding:0;font-size:1.2rem;border:none;border-radius:50%;cursor:pointer;line-height:1;width:32px;height:32px;transition:background-color .2s,transform .1s;background-color:transparent;flex-shrink:0}.button-icon:active{transform:translateY(1px)}.button-icon.delete{color:var(--danger-color)}.button-icon.delete:hover{background-color:var(--danger-background-color)}.button-icon.edit{color:var(--primary-color)}.button-icon.edit:hover{background-color:#e9f0fe}.button-icon.edit svg{fill:currentColor}.empty-state{text-align:center;padding:3rem;border:2px dashed var(--border-color);border-radius:var(--border-radius)}.empty-state.minimal{padding:1.5rem;border:none}.empty-state p{font-size:1.1rem;color:var(--subtle-text-color)}.display-value{padding:.6rem .4rem;white-space:pre-wrap;line-height:1.5;min-height:calc(1.5em + 1.2rem);display:flex;align-items:center;width:100%;font-size:1rem}.comparison-table td.editing-cell{background-color:#4285f426!important}.comparison-table th.editing-cell{background-color:#4285f440!important}.rank-row .metric-header{font-size:1.1rem;font-weight:700}.rank-row .rank-cell{font-size:1.5rem;font-weight:700;text-align:center;vertical-align:middle;padding:.5rem!important}.rank-row .rank-1{color:#fbbc05}.rank-row .rank-2{color:#757575}.rank-row .rank-3{color:#cd7f32}.section-header-row th{background-color:#f1f3f4;font-size:1.1rem;font-weight:600;padding:.75rem 1rem;text-align:left;position:sticky;left:0;z-index:3}.section-header-row.collapsible{cursor:pointer}.section-header-row.collapsible:hover th{background-color:#e8eaed}.section-header-row.non-collapsible{cursor:default}.section-header-row.non-collapsible:hover th{background-color:#f1f3f4}.section-header-content{display:flex;justify-content:space-between;align-items:center;width:100%}.toggle-icon{transition:transform .2s ease-in-out;font-size:.8em}.toggle-icon.collapsed{transform:rotate(-90deg)}.comparison-table .metric-header.total-metric-header{font-weight:700}.comparison-table .calculated-value.total-metric-value{font-weight:700;color:var(--text-color)}.comparison-table .metric-header.sub-metric-header{padding-left:1.5rem;font-weight:400;background-color:#fafafa}.comparison-table .grand-total-header{font-size:1.1rem!important;background-color:#e9f0fe!important;border-top:2px solid var(--primary-color)}.comparison-table .grand-total-value{font-size:1.1rem;font-weight:700;color:var(--text-color);background-color:#e9f0fe;border-top:2px solid var(--primary-color)}.light-theme,.light-theme .chart-wrapper,.light-theme .custom-tooltip{background-color:#fff!important}.light-theme h3,.light-theme .recharts-text,.light-theme .recharts-legend-item-text,.light-theme .custom-tooltip .label,.light-theme .custom-tooltip .intro{color:#202124!important;fill:#202124!important}.light-theme .recharts-cartesian-grid-line line,.light-theme .custom-tooltip{stroke:#dadce0!important;border-color:#dadce0!important}.charts-container{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:1rem}.chart-wrapper{display:flex;flex-direction:column;align-items:center;width:100%;padding:1rem}.chart-wrapper.full-width{grid-column:1 / -1}.chart-wrapper h3{font-size:1.1rem;color:var(--text-color);margin-bottom:1rem;text-align:center}.chart-controls{width:100%;margin-bottom:1rem;display:flex;justify-content:center}.chart-controls select{max-width:250px;padding:.5rem;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:.9rem;font-family:var(--font-family);background-color:#fff;color:var(--text-color)}.custom-tooltip{background-color:#fffffff2;border:1px solid var(--border-color);padding:.75rem;border-radius:var(--border-radius);box-shadow:var(--box-shadow)}.custom-tooltip .label{font-weight:600;margin-bottom:.25rem;color:var(--text-color)}.custom-tooltip .intro{color:var(--subtle-text-color)}.comparison-table tfoot td{padding:0;text-align:center;border:none}.button-add-row{width:100%;padding:.75rem;font-size:1rem;font-weight:600;background-color:transparent;color:var(--primary-color);border:2px dashed var(--border-color);border-radius:var(--border-radius);margin-top:1rem;cursor:pointer;transition:all .2s ease-in-out}.button-add-row:hover{background-color:#e9f0fe;border-color:var(--primary-color)}.repayment-analysis-container{max-height:500px;overflow:auto}.repayment-table td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.pdf-extractor-card .pdf-extractor-content{text-align:center;padding:1rem 0 0}.pdf-extractor-card p{color:var(--subtle-text-color);margin-bottom:1.5rem;max-width:500px;margin-left:auto;margin-right:auto}.pdf-upload-hint{font-size:.85rem;margin-top:.75rem}.pdf-upload-hint+.status-message{margin-top:0}.pdf-extractor-card .button.disabled{background-color:var(--primary-color)}.status-message{margin-top:1.5rem;font-weight:500}.status-message.success{color:var(--success-color)}.status-message.error{color:var(--danger-color)}.common-costs-card .common-costs-content{display:grid;grid-template-columns:1fr 2fr;gap:2rem;align-items:start}.common-costs-card .costs-basis{display:flex;flex-direction:column;gap:1rem;border-right:1px solid var(--border-color);padding-right:2rem;height:100%}.common-costs-card .costs-basis h4{margin-bottom:.5rem;font-size:1.1rem;color:var(--subtle-text-color)}.common-costs-card .costs-basis ul{list-style:none;padding:0;flex-grow:1}.common-costs-card .costs-basis li{display:flex;justify-content:space-between;padding:.5rem 0;font-size:1rem}.common-costs-card .costs-basis strong{font-weight:600;font-variant-numeric:tabular-nums}.costs-basis-note{font-size:.85rem;color:var(--subtle-text-color);font-style:italic;margin-top:auto}.common-costs-card .costs-results h4{margin-bottom:1rem;font-size:1.1rem;color:var(--subtle-text-color)}.common-costs-card .costs-results ul{list-style:none;padding:0}.common-costs-card .costs-results li{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid var(--border-color)}.common-costs-card .costs-results li:last-child{border-bottom:none}.common-costs-card .costs-results strong{font-weight:600;font-variant-numeric:tabular-nums}.common-costs-card .costs-results .total-cost{font-size:1.1rem;font-weight:700;color:var(--text-color);padding-top:1rem;border-top:2px solid var(--text-color)}.chat-fab{position:fixed;bottom:2rem;right:2rem;width:60px;height:60px;border-radius:50%;background-color:var(--primary-color);color:#fff;border:none;box-shadow:var(--box-shadow);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s ease-in-out,background-color .2s;z-index:1000}.chat-fab:hover{background-color:var(--primary-hover-color);transform:scale(1.05)}.chat-modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:flex-end;justify-content:flex-end;z-index:999;animation:fadeIn .3s ease}.chat-modal-content{width:100%;max-width:450px;height:70vh;max-height:600px;background-color:var(--card-background-color);margin:1.5rem;border-radius:var(--border-radius);box-shadow:var(--box-shadow);display:flex;flex-direction:column;overflow:hidden;animation:slideInUp .4s ease}.chat-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);background-color:#f1f3f4}.chat-header h3{margin:0;font-size:1.2rem}.button-icon.close{font-size:1.8rem;color:var(--subtle-text-color)}.button-icon.close:hover{background-color:var(--border-color)}.chat-messages{flex-grow:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.chat-message{max-width:85%;padding:.75rem 1rem;border-radius:18px;line-height:1.5}.chat-message p{margin:0;white-space:pre-wrap}.user-message{background-color:var(--primary-color);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}.ai-message{background-color:#e9f0fe;color:var(--text-color);border-bottom-left-radius:4px;align-self:flex-start}.chat-input-form{display:flex;padding:1rem 1.5rem;border-top:1px solid var(--border-color);gap:.5rem}.chat-input-form input{flex-grow:1;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:1rem;font-family:var(--font-family);transition:border-color .2s,box-shadow .2s}.chat-input-form input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4285f44d}.chat-input-form button{flex-shrink:0;width:48px;height:48px;border:none;background-color:var(--primary-color);color:#fff;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.chat-input-form button:hover:not(:disabled){background-color:var(--primary-hover-color)}.chat-input-form button:disabled{background-color:var(--border-color);cursor:not-allowed}.typing-indicator span{height:8px;width:8px;background-color:var(--subtle-text-color);border-radius:50%;display:inline-block;animation:wave 1.3s infinite}.typing-indicator span:nth-of-type(2){animation-delay:-1.1s}.typing-indicator span:nth-of-type(3){animation-delay:-.9s}@keyframes wave{0%,60%,to{transform:initial}30%{transform:translateY(-8px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:992px){.charts-container{grid-template-columns:1fr}}@media(max-width:768px){#root{padding:1rem}header h1{font-size:2rem}.card-header{flex-direction:column;align-items:flex-start;gap:1rem}.common-costs-card .common-costs-content{grid-template-columns:1fr}.common-costs-card .costs-basis{border-right:none;border-bottom:1px solid var(--border-color);padding-right:0;padding-bottom:2rem}}@media(max-width:500px){.chat-modal-content{margin:0;border-radius:0;max-width:100%;height:100vh;max-height:100vh}.chat-fab{bottom:1rem;right:1rem}}
