.loan-amortization{display:flex;flex-direction:column;gap:1.5rem}.loan-amortization__disclaimer{background:var(--color-warning-bg, #fff3cd);border-left:4px solid var(--color-warning, #ffc107);padding:.75rem 1rem;border-radius:var(--radius-sm, 4px);font-size:.875rem;color:var(--color-warning-text, #856404);display:flex;align-items:flex-start;gap:.5rem}.loan-amortization__disclaimer-icon{font-size:1.1rem;line-height:1;flex-shrink:0}.loan-amortization__inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;padding:1rem;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);background:var(--color-surface, #fafafa)}.loan-amortization__field{display:flex;flex-direction:column;gap:.25rem}.loan-amortization__field-label{font-size:.8125rem;font-weight:500;color:var(--color-text-muted, #4b5563)}.loan-amortization__field-row{display:flex;gap:.25rem}.loan-amortization__field-row>input{flex:1;min-width:0}.loan-amortization__field-row>select{width:5.5rem;flex-shrink:0}.loan-amortization__field input,.loan-amortization__field select{padding:.5rem .625rem;border:1px solid var(--color-border, #d1d5db);border-radius:var(--radius-sm, 4px);background:var(--color-background, #fff);color:var(--color-text, #111);font-size:.9375rem;font-family:inherit}.loan-amortization__field input:focus,.loan-amortization__field select:focus{outline:2px solid var(--color-theme, #3b82f6);outline-offset:1px;border-color:transparent}.loan-amortization__field--error input,.loan-amortization__field--error select{border-color:var(--color-error, #dc2626)}.loan-amortization__field-error{font-size:.75rem;color:var(--color-error, #dc2626)}.loan-amortization__field-hint{font-size:.75rem;color:var(--color-text-muted, #6b7280)}.loan-amortization__header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem}.loan-amortization__actions{display:flex;gap:.5rem;align-items:center}.loan-amortization__button{padding:.5rem .875rem;border:1px solid var(--color-border, #d1d5db);border-radius:var(--radius-sm, 4px);background:var(--color-background, #fff);color:var(--color-text, #111);font-size:.875rem;cursor:pointer;font-family:inherit}.loan-amortization__button:hover{background:var(--color-border-light, #f3f4f6)}.loan-amortization__button--primary{background:var(--color-theme, #3b82f6);color:var(--color-background, #fff);border-color:transparent}.loan-amortization__button--primary:hover{background:var(--color-theme-dark, #2a6f93)}.loan-amortization__tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border, #e5e7eb)}.loan-amortization__tab{padding:.625rem 1rem;border:none;background:transparent;color:var(--color-text-muted, #4b5563);font-size:.9375rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:inherit}.loan-amortization__tab[aria-selected=true]{color:var(--color-theme, #3b82f6);border-bottom-color:var(--color-theme, #3b82f6);font-weight:500}.loan-amortization__tab:focus-visible{outline:2px solid var(--color-theme, #3b82f6);outline-offset:-2px}.loan-amortization__tabpanel{padding:1rem 0}.loan-amortization__advanced{border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);padding:.5rem 1rem;background:var(--color-surface, #fafafa)}.loan-amortization__advanced>summary{cursor:pointer;font-weight:500;font-size:.9375rem;color:var(--color-text, #555);list-style:none;display:flex;align-items:center;gap:.5rem}.loan-amortization__advanced>summary::-webkit-details-marker{display:none}.loan-amortization__advanced>summary:before{content:"▸";display:inline-block;transition:transform .15s}.loan-amortization__advanced[open]>summary:before{transform:rotate(90deg)}.loan-amortization__advanced-body{margin-top:1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.loan-amortization__schedule-summary{margin-bottom:.5rem;font-size:.875rem;color:var(--color-text-muted, #555)}.loan-amortization__schedule-table{width:100%;border-collapse:collapse;font-size:.875rem;font-variant-numeric:tabular-nums}.loan-amortization__schedule-table caption{text-align:left;font-size:.8125rem;color:var(--color-text-muted, #555);padding:.5rem 0;caption-side:top}.loan-amortization__schedule-table th,.loan-amortization__schedule-table td{padding:.4rem .625rem;text-align:right;border-bottom:1px solid var(--color-border-light, #f3f4f6)}.loan-amortization__schedule-table th{background:var(--color-surface, #f9fafb);font-weight:500;color:var(--color-text-muted, #555);position:sticky;top:0;z-index:1}.loan-amortization__schedule-table th:first-child,.loan-amortization__schedule-table td:first-child{text-align:left}.loan-amortization__schedule-table tbody tr:hover{background:var(--color-border-light, #f9fafb)}.loan-amortization__schedule-table tr.loan-amortization__schedule-row--final{font-weight:500}.loan-amortization__schedule-scroller{max-height:480px;overflow-y:auto;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px)}.loan-amortization__schedule-toggle{margin-bottom:.75rem;font-size:.875rem;color:var(--color-theme, #3b82f6);background:none;border:none;cursor:pointer;padding:0;font-family:inherit}.loan-amortization__schedule-toggle:hover{text-decoration:underline}.loan-amortization__summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.loan-amortization__summary-card{padding:1rem;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);background:var(--color-surface, #fafafa);display:flex;flex-direction:column;gap:.25rem}.loan-amortization__summary-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted, #6b7280);font-weight:500}.loan-amortization__summary-value{font-size:1.25rem;font-weight:600;color:var(--color-text, #555);font-variant-numeric:tabular-nums}.loan-amortization__summary-value--accent{color:var(--color-theme, #3b82f6)}.loan-amortization__summary-sub{font-size:.75rem;color:var(--color-text-muted, #4b5563)}.loan-amortization__chart{width:100%;height:420px;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);background:var(--color-surface, #fafafa)}.loan-amortization__toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);background:var(--color-text, #333);color:var(--color-background, #fff);padding:.625rem 1rem;border-radius:var(--radius-sm, 4px);font-size:.875rem;z-index:1000;box-shadow:var(--shadow-lg, 0 4px 12px rgba(0, 0, 0, .15));animation:loan-amortization-toast-in .2s ease-out}@keyframes loan-amortization-toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.loan-amortization__preset{display:inline-block;margin:0 .5rem .5rem 0;padding:.25rem .625rem;border:1px solid var(--color-border, #d1d5db);border-radius:12px;background:var(--color-surface, #f9fafb);color:var(--color-text-muted, #4b5563);font-size:.8125rem;cursor:pointer;font-family:inherit}.loan-amortization__preset:hover{background:var(--color-border-light, #f3f4f6)}[data-theme=dark] .loan-amortization__disclaimer{background:#ffd43b1f;border-left-color:var(--color-warning, #ffd43b);color:var(--color-warning, #ffd43b)}[data-theme=dark] .loan-amortization__schedule-table th{background:var(--color-surface, #1e1e1e)}[data-theme=dark] .loan-amortization__schedule-table tbody tr:hover{background:var(--color-border-light, #2a2a2a)}[data-theme=dark] .loan-amortization__toast{background:var(--color-text, #e5e5e5);color:var(--color-background, #121212)}@media(max-width:768px){.loan-amortization__inputs,.loan-amortization__advanced-body,.loan-amortization__summary{grid-template-columns:1fr 1fr}.loan-amortization__chart{height:320px}}
