@keyframes payment-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.summary-item,.year-card,.year-header{background:#fff;border-radius:.75rem;box-shadow:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);border:1px solid #e5e7eb}.year-card{margin-bottom:1rem;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}.year-card:hover{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);transform:translateY(-1px)}.amortization-table th,.year-header{background:linear-gradient(135deg,#f8fafc,#f1f5f9)}.year-header{cursor:pointer;padding:1.25rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e5e7eb;position:relative;transition:background-color .3s}.year-header:hover{background:linear-gradient(135deg,#f1f5f9,#e2e8f0)}.year-content{display:none;padding:0}.year-content.active{display:block}.chevron{transition:transform .3s ease;transform:rotate(0deg)}.chevron.rotated{transform:rotate(180deg)}.part-payment-badge,.part-payment-btn,.year-badge{color:#fff}.part-payment-badge,.part-payment-btn,.remove-part-payment-btn,.year-badge{background:linear-gradient(135deg,#3b82f6,#60a5fa)}.year-badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-weight:600;font-size:.75rem;margin-right:1rem}.year-title{font:600 1.125rem/1.2 system-ui,sans-serif;color:#1e293b}.compact-label,.summary-label,.year-subtitle{font:400 .75rem/1.4 system-ui,sans-serif;color:#64748b}.compact-stats,.payment-actions,.year-summary{display:flex;gap:1.5rem}.compact-stat,.summary-item{display:flex;flex-direction:column;align-items:center;text-align:center}.amortization-table{width:100%;font-size:.75rem;border-collapse:separate;border-spacing:0}.amortization-table thead{position:sticky;top:0;z-index:10}.amortization-table th{padding:.75rem .5rem;font-weight:600;color:#374151;text-transform:uppercase;font-size:.65rem;letter-spacing:.05em;border-bottom:2px solid #e5e7eb;border-right:1px solid #e5e7eb;white-space:nowrap}.amortization-table td:last-child,.amortization-table th:last-child{border-right:none}.amortization-table td{padding:.6rem .5rem;border-bottom:1px solid #f3f4f6;border-right:1px solid #f3f4f6;vertical-align:middle}.amortization-table tr{transition:background-color .2s ease}.amortization-table tr:hover{background:#f8fafc}.principal-amount{color:#059669;font-weight:600}.interest-amount{color:#dc2626;font-weight:600}.balance-amount{color:#7c3aed;font-weight:600}.part-payment-btn,.remove-part-payment-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border-radius:8px;font-size:.65rem;font-weight:600;border:1px solid #d1d5db;transition:all .3s ease;cursor:pointer;min-width:60px;justify-content:center}.part-payment-btn:hover{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-color:#3b82f6}.remove-part-payment-btn{background:#fff;color:#dc2626;border-color:#fecaca}.remove-part-payment-btn:hover{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}@media (max-width:767px){.hide-mobile{display:none}.year-header{border-radius:12px;padding:12px 14px;position:relative}.balanced-reduced-backround,.no-extra-background,.total-paid-backround{border:1px solid #d2e5ff;border-radius:12px;padding:9px 6px;text-align:center;box-shadow:0 3px 8px rgba(0,0,0,.06);transition:transform .15s ease,box-shadow .15s ease}.no-extra-background{background:linear-gradient(135deg,#ebf3ff,#d7e8ff)}.total-paid-backround{background:linear-gradient(135deg,#e9fff6,#d6faeb)}.balanced-reduced-backround{background:linear-gradient(135deg,#f7ecff,#eadcff)}.year-header .year-badge{width:36px;height:36px;font-size:.8rem;background:linear-gradient(135deg,#3b82f6,#60a5fa);box-shadow:0 4px 10px rgba(59,130,246,.25)}.year-header .chevron-wrapper{position:absolute;right:10px;top:10px}.year-header *{min-width:0}.amortization-table{font-size:.7rem}.amortization-table td,.amortization-table th{padding:.5rem .25rem}}@media print{.year-card{box-shadow:none;border:1px solid #000;break-inside:avoid}.year-header{background:#fff!important;color:#000!important}.amortization-table{font-size:10pt}}