.input-group{margin-bottom:1rem}.input-group-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1rem}.input-group-col{display:flex;flex-direction:column}.input-group-col label{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-weight:500;position:relative}.input-group-col input{width:100%;padding:.75rem;border:1px solid var(--gray-medium);border-radius:var(--border-radius);font-size:1rem}.input-group label{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-weight:500;position:relative}.input-group input,.input-group select{width:100%;padding:.75rem;border:1px solid var(--gray-medium);border-radius:var(--border-radius);font-size:1rem}.help-icon{cursor:help;font-size:1rem;margin-left:auto;display:inline-block;vertical-align:middle;opacity:.7;transition:opacity .2s ease;position:relative}.help-icon:hover{opacity:1}.help-icon::after{content:attr(data-tooltip);position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%);background:#333;color:#fff;padding:.75rem 1rem;border-radius:6px;font-size:.95rem;line-height:1.4;white-space:nowrap;width:auto;max-width:none;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:1000;box-shadow:0 4px 12px rgba(0,0,0,.15);font-weight:400}.help-icon::before{content:'';position:absolute;left:50%;top:calc(100% + 2px);transform:translateX(-50%);border:6px solid transparent;border-bottom-color:#333;opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:1001}.help-icon:hover::after,.help-icon:hover::before{opacity:1;transition-delay:.1s}.help-icon-wide::after{white-space:pre-line;width:350px;max-width:350px;text-align:left}.help-icon-above::after{top:auto;bottom:calc(100% + 8px)}.help-icon-above::before{top:auto;bottom:calc(100% + 2px);border-bottom-color:transparent;border-top-color:#333}.plan-table tbody tr:last-child .help-icon::after{top:auto;bottom:calc(100% + 8px)}.plan-table tbody tr:last-child .help-icon::before{top:auto;bottom:calc(100% + 2px);border-bottom-color:transparent;border-top-color:#333}.plan-table td:last-child .help-icon::after{left:auto;right:0;transform:translateX(0)}.plan-table td:last-child .help-icon::before{left:auto;right:12px;transform:translateX(0)}.unit-selector-input{display:flex;flex-direction:row;gap:.5rem;align-items:center}.unit-selector-input input{flex:1;font-size:1.1rem;font-weight:400}.unit-buttons{display:flex;gap:.5rem}.unit-buttons button{padding:.5rem;border:2px solid var(--gray-medium);background:#fff;border-radius:var(--border-radius);cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.unit-buttons button:hover{border-color:var(--secondary-color);background:#f8f9fa}.unit-buttons button.active{border-color:var(--secondary-color);background:var(--secondary-color);color:#fff}.unit-buttons-btn{padding:.35rem .6rem;border:2px solid var(--gray-medium);background:#fff;border-radius:var(--border-radius);cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.unit-buttons-btn:hover:not(:disabled){border-color:var(--secondary-color);background:#f8f9fa}.unit-buttons-btn:disabled{opacity:.5;cursor:not-allowed}.mode-toggle{display:flex;gap:.5rem;margin-top:.5rem}.mode-toggle button{flex:1;padding:.5rem .875rem;border:2px solid var(--gray-medium);background:#fff;border-radius:var(--border-radius);cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.mode-toggle button:hover{border-color:var(--secondary-color);background:#f8f9fa}.mode-toggle button.active{border-color:var(--secondary-color);background:var(--secondary-color);color:#fff}.mode-toggle button.btn-clear-all{border-color:#e74c3c;color:#c0392b;background:#fff}.mode-toggle button.btn-clear-all:hover{background:#dc3545;border-color:#dc3545;color:#fff}.share-button{padding:.5rem 1rem;border:2px solid var(--secondary-color);background:#fff;color:var(--secondary-color);border-radius:var(--border-radius);cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.share-button:hover:not(:disabled){background:var(--secondary-color);color:#fff}.share-button:disabled{opacity:.5;cursor:not-allowed}.share-button.btn-clear-all{border-color:#e74c3c;color:#c0392b;background:0 0}.share-button.btn-clear-all:hover:not(:disabled){background:#dc3545;border-color:#dc3545;color:#fff}.multi-unit-input{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.unit-box{display:flex;flex-direction:column;gap:.25rem}.unit-box input{text-align:center;font-weight:600}.unit-label{text-align:center;font-size:.85rem;color:var(--text-secondary);font-weight:500}.combo-input{display:grid;grid-template-columns:1fr auto;gap:.5rem}.combo-input input{width:100%}.combo-input select{width:auto;min-width:120px}.button-row{display:flex;gap:1rem;align-items:flex-end;margin-top:1rem}.start-month-selector{flex:1}.start-month-selector label{display:block;margin-bottom:.5rem;font-weight:700;color:#333}.start-month-selector input[type=month]{width:100%;padding:.75rem;border:2px solid #ddd;border-radius:4px;font-size:1rem;background:#fff;cursor:pointer}.calculate-btn,.view-slides,.use-tool{background:var(--secondary-color);color:#fff;padding:.75rem 1.5rem;border:none;border-radius:var(--border-radius);cursor:pointer;text-decoration:none;display:inline-block;margin-top:0;transition:var(--transition);flex-shrink:0}.calculate-btn:hover,.view-slides:hover,.use-tool:hover{background:var(--primary-color)}.calculate-btn:disabled{background:var(--gray-medium);cursor:not-allowed}.results{background:#fff;padding:1.5rem;border-radius:var(--border-radius);margin-top:1rem;border-left:4px solid var(--secondary-color)}.results h4{margin-bottom:1rem;color:var(--primary-color)}.summary-table{width:100%;border-collapse:collapse;margin-bottom:1rem}.summary-table th,.summary-table td{padding:.75rem;border-bottom:1px solid #eee}.summary-table th{background:0 0!important;font-weight:700;color:#374151}.summary-table th:first-child,.summary-table td:first-child{text-align:left}.summary-table th:not(:first-child),.summary-table td:not(:first-child){text-align:right}.summary-table td:first-child{font-weight:500;color:var(--text-color)}.summary-table td.highlight{font-weight:700;color:var(--secondary-color);font-size:1.2rem}.summary-table .total-row{font-weight:600;border-top:2px solid var(--gray-medium)}.target-group{background-color:#e3f2fd;padding:10px;border-radius:8px;border:1px solid #90caf9;margin-bottom:20px}.investment-params-group{background-color:#fff3e0;padding:10px;border-radius:8px;border:1px solid #ffb74d}.placeholder{display:flex;align-items:center;justify-content:center;min-height:400px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:var(--border-radius);text-align:center}.placeholder-content h4{color:var(--gray-medium);margin-bottom:1rem}.placeholder-content p{color:var(--gray-medium);margin-bottom:1.5rem}.placeholder-features p{color:#6c757d;margin:.5rem 0;font-size:.9rem}.investment-plan{margin-top:2rem}.investment-plan h4{margin-bottom:1rem;color:var(--primary-color)}.plan-table-wrapper{max-height:400px;overflow-y:auto;overflow-x:hidden;border:1px solid #ddd;border-radius:4px}.plan-table{width:100%;border-collapse:collapse;display:table}.plan-table thead{position:sticky;top:-1px;background:var(--secondary-color);color:#fff;z-index:10}.plan-table thead th{border-bottom:2px solid #ddd;background:inherit}.plan-table th,.plan-table td{padding:.35rem .5rem;vertical-align:middle;border-bottom:1px solid #ddd}.plan-table th{font-weight:700;text-align:center}.plan-table tbody tr:hover{background:#f5f5f5}.plan-table td:first-child{text-align:center}.plan-table td:not(:first-child){text-align:right}.chart-section{margin-top:2rem}.chart-container{margin-top:1rem}#sip-chart{width:100%;height:350px;min-height:300px}.sip-container{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}.sip-inputs{background:#fff;padding:1.5rem;border-radius:var(--border-radius);box-shadow:var(--box-shadow);border-left:4px solid #f7b733}.sip-inputs h4{margin-bottom:1.5rem;color:var(--primary-color);font-size:1.2rem}.sip-outputs{background:#fff;padding:1.5rem;border-radius:var(--border-radius);box-shadow:var(--box-shadow);border-left:4px solid #27ae60}.sip-outputs h4{margin-bottom:1.5rem;color:var(--primary-color);font-size:1.2rem}.sip-summary{margin-bottom:1.5rem}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid #eee}.summary-item:last-child{border-bottom:none}.summary-item .label{font-weight:500;color:var(--text-color)}.summary-item .value{font-weight:700;color:var(--primary-color)}.summary-item .value.highlight{color:var(--secondary-color);font-size:1.2rem}.ef-container{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}.ef-inputs{background:#fff;padding:1.5rem;border-radius:var(--border-radius);box-shadow:var(--box-shadow);border-left:4px solid #f7b733}.ef-inputs h4{margin-bottom:1.5rem;color:var(--primary-color);font-size:1.2rem}.ef-outputs{background:#fff;padding:1.5rem;border-radius:var(--border-radius);box-shadow:var(--box-shadow);border-left:4px solid #27ae60}.ef-outputs h4{margin-bottom:1.5rem;color:var(--primary-color);font-size:1.2rem}.input-summary{background:#e8f5e8;padding:1rem;border-radius:var(--border-radius);margin:1rem 0;border-left:3px solid #27ae60}.input-summary p{margin:0;color:#2c5530;font-weight:500}.fund-summary{margin-bottom:1.5rem}.progress-bar-container{margin:1.5rem 0;position:relative}.progress-bar{width:100%;height:20px;background-color:#f0f0f0;border-radius:10px;overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,.2)}.progress-fill{height:100%;background:linear-gradient(90deg,#27ae60,#2ecc71);border-radius:10px;transition:width .5s ease-in-out;animation:progressPulse 2s ease-in-out infinite alternate}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#333;font-weight:700;font-size:.875rem}@keyframes progressPulse{0%{box-shadow:0 0 5px rgba(46,204,113,.7)}100%{box-shadow:0 0 20px rgba(46,204,113,.3)}}.savings-timeline{margin-top:1.5rem}.savings-timeline h5{margin-bottom:1rem;color:var(--primary-color);font-size:1rem}.timeline{position:relative;padding-left:1.5rem}.timeline::before{content:'';position:absolute;left:.5rem;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--secondary-color),var(--accent-color))}.timeline-item{position:relative;margin-bottom:1rem;padding:.75rem 1rem;background:#f8f9fa;border-radius:var(--border-radius);border-left:3px solid var(--secondary-color);transition:var(--transition)}.timeline-item::before{content:'';position:absolute;left:-1.75rem;top:50%;transform:translateY(-50%);width:12px;height:12px;background:var(--secondary-color);border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 2px var(--secondary-color)}.timeline-item.goal-achieved{background:linear-gradient(135deg,#e8f5e8,#d4edda);border-left-color:#27ae60;animation:goalAchieved .6s ease-in-out}.timeline-item.goal-achieved::before{background:#27ae60;box-shadow:0 0 0 2px #27ae60}@keyframes goalAchieved{0%{transform:scale(1)}50%{transform:scale(1.02)}100%{transform:scale(1)}}.recommendations-section{grid-column:1/-1;margin-top:1rem}.recommendations{background:#fff;padding:1.5rem;border-radius:var(--border-radius);box-shadow:var(--box-shadow);border-left:4px solid #f39c12}.recommendations h4{margin-bottom:1.5rem;color:var(--primary-color);font-size:1.2rem}.recommendations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem}.recommendation-card{background:#fff8e1;padding:1rem;border-radius:var(--border-radius);border-left:3px solid #f39c12;transition:var(--transition)}.recommendation-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.contribution-table-section{margin-top:2rem;margin-bottom:0}.contribution-grid{font-size:.9rem}.contribution-grid thead{background:#f39c12!important;color:#2c3e50!important}.investment-plan .plan-table thead{background:#f39c12!important;color:#2c3e50!important}.investment-plan{margin-top:2rem}.investment-plan h3{margin-top:0;margin-bottom:0}.contribution-grid .help-icon::after{width:auto;max-width:none;white-space:nowrap}.summary-table .help-icon::after{width:auto;max-width:none;white-space:nowrap}.summary-table .help-icon-wide::after{white-space:pre-line;width:350px;max-width:350px;text-align:left}.summary-table .help-icon.help-icon-wide::after{white-space:pre-line;width:350px;max-width:350px;text-align:left}.multi-asset-allocator{padding:1rem}.investors-group{margin-bottom:1.5rem}.investors-group h4{margin-top:0;margin-bottom:1rem;color:var(--primary-color)}.assets-group{margin-bottom:1.5rem}.assets-group h4{margin-top:0;margin-bottom:1rem;color:var(--primary-color)}.section-block{background:var(--gray-light);padding:1.5rem;border-radius:var(--border-radius);margin-bottom:1.5rem}.section-block h4{margin-top:0;margin-bottom:1rem;color:var(--primary-color)}.investor-row,.asset-row{margin-bottom:1rem}.investor-fields,.asset-fields{display:grid;grid-template-columns:2fr 1.5fr auto auto auto;gap:.5rem;align-items:center}.investor-name-input,.asset-name-input{min-width:0;padding:.5rem;border:1px solid var(--gray-medium);border-radius:var(--border-radius)}.investor-amount-input,.asset-target-input,.asset-current-input{min-width:0;padding:.5rem;border:1px solid var(--gray-medium);border-radius:var(--border-radius)}.checkbox-label{display:flex;align-items:center;gap:.25rem;font-size:.9rem;margin:0;white-space:nowrap}.checkbox-label input[type=checkbox]{width:auto;margin:0;cursor:pointer}.btn-remove{background:var(--danger-color,#ef4444);color:#fff;border:none;border-radius:var(--border-radius);padding:.5rem .75rem;cursor:pointer;font-size:1rem;transition:all .2s ease}.btn-remove:hover{background:#dc2626;transform:scale(1.05)}.btn-remove-subtle{background:0 0;color:#999;border:none;padding:0;margin:0;cursor:pointer;font-size:1rem;line-height:1;transition:all .2s ease;opacity:.5}.btn-remove-subtle:hover{color:#ef4444;opacity:1;transform:scale(1.2)}.btn-add{background:var(--success-color,#10b981);color:#fff;border:none;border-radius:var(--border-radius);padding:.75rem 1rem;cursor:pointer;font-size:1rem;width:100%;transition:all .2s ease;font-weight:500}.btn-add:hover{background:#059669;transform:translateY(-1px)}.validation-errors{background:#fef2f2;border:1px solid #fecaca;border-radius:var(--border-radius);padding:1rem;margin-bottom:1rem}.error-message{color:#dc2626;margin-bottom:.5rem;font-size:.95rem}.error-message:last-child{margin-bottom:0}.asset-table{width:100%;border-collapse:collapse;font-size:.85rem}.asset-table th,.asset-table td{padding:.4rem;text-align:left;border-bottom:1px solid #e5e7eb;font-size:1rem}.asset-table th{background:0 0!important;font-weight:700;color:#374151;white-space:nowrap}.asset-table tbody tr:hover{background:#f9fafb}.investor-allocation{margin-bottom:1rem;padding:1rem;background:var(--gray-light);border-radius:var(--border-radius);border:1px solid var(--gray-medium)}.allocation-table{width:100%;border-collapse:collapse;font-size:.9rem;border:1px solid var(--gray-light)}.allocation-table th,.allocation-table td{padding:.5rem;text-align:left;border-bottom:1px solid var(--gray-light);font-size:1rem}.allocation-table th{background:0 0;font-weight:600;color:var(--text-dark);border-bottom:2px solid var(--gray-medium)}.allocation-table td:last-child,.allocation-table th:last-child{text-align:right}.allocation-table .total-row{background:0 0;font-weight:600}.allocation-table .total-row td{border-top:2px solid var(--gray-medium)}.diff-neutral{color:var(--gray-dark,#4b5563)}.diff-positive{color:var(--danger-color,#ef4444);font-weight:600}.diff-negative{color:var(--success-color,#10b981);font-weight:600}.chart-container{width:100%;height:400px;margin-top:1rem}@media(max-width:768px){.ef-container,.sip-container{grid-template-columns:1fr;gap:1rem}.recommendations-grid{grid-template-columns:1fr}.summary-item{flex-direction:column;align-items:flex-start;gap:.25rem}.timeline{padding-left:1rem}.timeline-item{margin-left:.5rem}.input-group-row{grid-template-columns:1fr}.investor-fields,.asset-fields{grid-template-columns:1fr}.chart-container{height:300px}}.asset-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background-color:#e3f2fd;border:1px solid #90caf9;border-radius:4px;font-size:.875rem;color:#1976d2}.asset-badge-remove{border:none;background:0 0;color:#1976d2;cursor:pointer;padding:0;font-size:.875rem;line-height:1;font-weight:700}.asset-badge-remove:hover{color:#d32f2f}