/* ─── NyotaFund Loan Plugin — Frontend Styles ─── */
.nyotafund-wrapper{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;max-width:900px;margin:0 auto;color:#1a1a2e;line-height:1.6}
.nyotafund-wrapper *{box-sizing:border-box}

/* Header */
.nyotafund-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#fff;border-bottom:1px solid #e5e7eb;border-radius:12px;margin-bottom:32px;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.nyotafund-logo{display:flex;align-items:center;gap:10px}
.nyotafund-logo-icon{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#10b981,#14b8a6);display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;font-weight:800}
.nyotafund-logo-text{font-size:22px;font-weight:800;background:linear-gradient(135deg,#10b981,#14b8a6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* Nav */
.nyotafund-nav{display:flex;gap:8px;flex-wrap:wrap}
.nyotafund-nav-btn{padding:8px 16px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;cursor:pointer;font-size:14px;font-weight:500;color:#374151;transition:all .2s}
.nyotafund-nav-btn:hover{border-color:#10b981;color:#10b981;background:#ecfdf5}
.nyotafund-nav-btn.active{background:linear-gradient(135deg,#10b981,#14b8a6);color:#fff;border-color:transparent}

/* Pages */
.nyotafund-page{display:none}
.nyotafund-page.active{display:block}

/* Hero */
.nyotafund-hero{background:linear-gradient(135deg,#ecfdf5,#f0fdfa,#fff);border-radius:20px;padding:60px 40px;text-align:center;margin-bottom:40px;position:relative;overflow:hidden}
.nyotafund-hero::before{content:'';position:absolute;top:-50px;left:-50px;width:300px;height:300px;background:#a7f3d0;border-radius:50%;opacity:.2}
.nyotafund-hero::after{content:'';position:absolute;bottom:-80px;right:-80px;width:400px;height:400px;background:#99f6e4;border-radius:50%;opacity:.15}
.nyotafund-hero h1{font-size:36px;font-weight:800;margin-bottom:16px;position:relative;z-index:1}
.nyotafund-hero h1 span{background:linear-gradient(135deg,#10b981,#14b8a6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.nyotafund-hero p{font-size:18px;color:#4b5563;max-width:600px;margin:0 auto 32px;position:relative;z-index:1}
.nyotafund-hero-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}

/* Buttons */
.nyotafund-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;border:none;transition:all .2s;text-decoration:none}
.nyotafund-btn-primary{background:linear-gradient(135deg,#10b981,#14b8a6);color:#fff;box-shadow:0 4px 14px rgba(16,185,129,.3)}
.nyotafund-btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(16,185,129,.4)}
.nyotafund-btn-outline{background:#fff;color:#10b981;border:2px solid #a7f3d0}
.nyotafund-btn-outline:hover{background:#ecfdf5}
.nyotafund-btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #e5e7eb}
.nyotafund-btn-secondary:hover{background:#e5e7eb}
.nyotafund-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}

/* Loan Cards */
.nyotafund-loan-types{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-bottom:40px}
.nyotafund-loan-card{background:#fff;border-radius:16px;padding:28px;border:1px solid #e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:all .3s;cursor:pointer}
.nyotafund-loan-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,.08)}
.nyotafund-loan-card-icon{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:16px}
.nyotafund-loan-card-icon.business{background:#ecfdf5;color:#10b981}
.nyotafund-loan-card-icon.personal{background:#f0fdfa;color:#14b8a6}
.nyotafund-loan-card-icon.emergency{background:#fff7ed;color:#f97316}
.nyotafund-loan-card h3{font-size:20px;font-weight:700;margin-bottom:8px}
.nyotafund-loan-card p{font-size:14px;color:#6b7280;margin-bottom:16px;line-height:1.6}
.nyotafund-loan-card ul{list-style:none;padding:0;margin-bottom:20px}
.nyotafund-loan-card ul li{font-size:14px;color:#374151;padding:4px 0;display:flex;align-items:center;gap:8px}
.nyotafund-loan-card ul li::before{content:'✓';color:#10b981;font-weight:700}

/* How It Works */
.nyotafund-how-it-works{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;margin-bottom:40px}
.nyotafund-step{text-align:center}
.nyotafund-step-circle{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#10b981,#14b8a6);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:#fff;font-size:28px;box-shadow:0 4px 14px rgba(16,185,129,.3)}
.nyotafund-step-badge{position:absolute;margin-top:-52px;margin-left:44px;width:28px;height:28px;border-radius:50%;background:#fff;border:2px solid #a7f3d0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#10b981}
.nyotafund-step h3{font-size:18px;font-weight:700;margin-bottom:8px}
.nyotafund-step p{font-size:14px;color:#6b7280}

/* Section */
.nyotafund-section-title{font-size:28px;font-weight:800;text-align:center;margin-bottom:8px}
.nyotafund-section-subtitle{text-align:center;color:#6b7280;margin-bottom:40px;font-size:16px}

/* Features */
.nyotafund-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:40px}
.nyotafund-feature-card{background:#fff;padding:20px;border-radius:12px;border:1px solid #f3f4f6;transition:all .2s}
.nyotafund-feature-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.06)}
.nyotafund-feature-icon{width:44px;height:44px;border-radius:10px;background:#ecfdf5;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:12px}
.nyotafund-feature-card h4{font-size:15px;font-weight:700;margin-bottom:4px}
.nyotafund-feature-card p{font-size:13px;color:#6b7280}

/* CTA */
.nyotafund-cta{background:linear-gradient(135deg,#10b981,#14b8a6);border-radius:20px;padding:48px 32px;text-align:center;margin-bottom:32px}
.nyotafund-cta h2{font-size:28px;font-weight:800;color:#fff;margin-bottom:12px}
.nyotafund-cta p{color:#d1fae5;font-size:16px;margin-bottom:24px;max-width:500px;margin-left:auto;margin-right:auto}
.nyotafund-cta .nyotafund-btn{background:#fff;color:#10b981;box-shadow:0 4px 14px rgba(0,0,0,.15)}
.nyotafund-cta .nyotafund-btn:hover{transform:translateY(-1px)}

/* Footer */
.nyotafund-footer{background:#111827;color:#9ca3af;padding:40px 24px 24px;border-radius:12px;margin-top:32px}
.nyotafund-footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;margin-bottom:24px}
.nyotafund-footer h4{color:#fff;font-size:15px;font-weight:700;margin-bottom:12px}
.nyotafund-footer p,.nyotafund-footer li{font-size:13px;line-height:1.8}
.nyotafund-footer ul{list-style:none;padding:0}
.nyotafund-footer a{color:#9ca3af;text-decoration:none;transition:color .2s}
.nyotafund-footer a:hover{color:#10b981}
.nyotafund-footer-divider{border-top:1px solid #374151;margin:20px 0}
.nyotafund-footer-copy{text-align:center;font-size:13px}

/* Calculator */
.nyotafund-calc-card{background:#fff;border-radius:16px;padding:32px;border:1px solid #e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.06);margin-bottom:24px}
.nyotafund-calc-card h2{font-size:28px;font-weight:800;margin-bottom:4px}
.nyotafund-calc-header{text-align:center;margin-bottom:32px}
.nyotafund-calc-icon{width:56px;height:56px;border-radius:16px;background:#ecfdf5;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;font-size:24px}
.nyotafund-slider-group{margin-bottom:28px}
.nyotafund-slider-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.nyotafund-slider-label label{font-size:14px;font-weight:600;color:#374151}
.nyotafund-slider-value{font-size:22px;font-weight:800;color:#10b981}
.nyotafund-slider{width:100%;-webkit-appearance:none;appearance:none;height:6px;border-radius:3px;background:#e5e7eb;outline:none}
.nyotafund-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#10b981,#14b8a6);cursor:pointer;box-shadow:0 2px 6px rgba(16,185,129,.4)}
.nyotafund-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#10b981,#14b8a6);cursor:pointer;border:none}
.nyotafund-slider-range{display:flex;justify-content:space-between;font-size:12px;color:#9ca3af;margin-top:4px}

/* Congratulations */
.nyotafund-congrats-box{background:linear-gradient(135deg,#ecfdf5,#f0fdfa);border:1px solid #a7f3d0;border-radius:16px;padding:32px;text-align:center;animation:nyotafundSlideIn .4s ease}
@keyframes nyotafundSlideIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.nyotafund-congrats-check{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#10b981,#14b8a6);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:#fff;font-size:36px;box-shadow:0 4px 14px rgba(16,185,129,.3);animation:nyotafundPop .5s ease}
@keyframes nyotafundPop{0%{transform:scale(0)}70%{transform:scale(1.1)}100%{transform:scale(1)}}
.nyotafund-congrats-box h3{font-size:20px;font-weight:700;color:#065f46;margin-bottom:4px}
.nyotafund-congrats-box .subtitle{font-size:14px;color:#047857;margin-bottom:20px}
.nyotafund-result-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #a7f3d0}
.nyotafund-result-row:last-of-type{border-bottom:none}
.nyotafund-result-label{font-size:14px;color:#374151}
.nyotafund-result-value{font-size:16px;font-weight:700;color:#1a1a2e}
.nyotafund-result-value.interest{color:#f97316}
.nyotafund-result-value.highlight{font-size:20px;color:#10b981}
.nyotafund-result-note{background:#fff;border:1px solid #a7f3d0;border-radius:10px;padding:12px 16px;margin-top:16px;text-align:left;font-size:13px;color:#4b5563}

/* Multi-Step */
.nyotafund-step-indicators{display:flex;justify-content:space-between;margin-bottom:8px}
.nyotafund-step-dot{display:flex;flex-direction:column;align-items:center;flex:1}
.nyotafund-step-dot-circle{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;transition:all .3s;background:#e5e7eb;color:#9ca3af}
.nyotafund-step-dot-circle.completed{background:#10b981;color:#fff}
.nyotafund-step-dot-circle.active{background:linear-gradient(135deg,#10b981,#14b8a6);color:#fff;box-shadow:0 0 0 4px #d1fae5}
.nyotafund-step-dot-label{font-size:11px;margin-top:6px;color:#9ca3af;font-weight:500;display:none}
@media(min-width:640px){.nyotafund-step-dot-label{display:block}}
.nyotafund-step-dot-label.active{color:#10b981;font-weight:600}
.nyotafund-progress-bar{width:100%;height:6px;background:#e5e7eb;border-radius:3px;margin-bottom:28px;overflow:hidden}
.nyotafund-progress-fill{height:100%;background:linear-gradient(135deg,#10b981,#14b8a6);border-radius:3px;transition:width .3s ease}

/* Form */
.nyotafund-form-card{background:#fff;border-radius:16px;border:1px solid #e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.06);overflow:hidden}
.nyotafund-form-header{padding:24px 28px;border-bottom:1px solid #f3f4f6}
.nyotafund-form-title{font-size:22px;font-weight:700;display:flex;align-items:center;gap:12px;margin-bottom:4px}
.nyotafund-form-title-icon{width:40px;height:40px;border-radius:10px;background:#ecfdf5;display:flex;align-items:center;justify-content:center;font-size:18px}
.nyotafund-form-desc{font-size:14px;color:#6b7280}
.nyotafund-form-body{padding:24px 28px}
.nyotafund-form-footer{padding:16px 28px;border-top:1px solid #f3f4f6;display:flex;justify-content:space-between;gap:12px}
.nyotafund-form-group{margin-bottom:20px}
.nyotafund-form-group label{display:block;font-size:14px;font-weight:600;color:#374151;margin-bottom:6px}
.nyotafund-form-group label .required{color:#ef4444}
.nyotafund-input{width:100%;padding:10px 14px;border:1.5px solid #d1d5db;border-radius:10px;font-size:14px;transition:border-color .2s;background:#fff;color:#1a1a2e}
.nyotafund-input:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 3px #d1fae5}
.nyotafund-textarea{width:100%;padding:10px 14px;border:1.5px solid #d1d5db;border-radius:10px;font-size:14px;min-height:80px;resize:vertical;font-family:inherit;transition:border-color .2s}
.nyotafund-textarea:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 3px #d1fae5}
.nyotafund-select{width:100%;padding:10px 14px;border:1.5px solid #d1d5db;border-radius:10px;font-size:14px;background:#fff;color:#1a1a2e;cursor:pointer}
.nyotafund-select:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 3px #d1fae5}

/* Radio Cards */
.nyotafund-radio-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.nyotafund-radio-card{display:flex;align-items:center;gap:10px;padding:14px 16px;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;transition:all .2s}
.nyotafund-radio-card:hover{border-color:#d1d5db}
.nyotafund-radio-card.selected{border-color:#10b981;background:#ecfdf5}
.nyotafund-radio-card input[type="radio"]{accent-color:#10b981;width:18px;height:18px}
.nyotafund-radio-card span{font-size:14px;font-weight:500}

/* Review */
.nyotafund-review-section{margin-bottom:20px}
.nyotafund-review-section h4{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#6b7280;margin-bottom:12px}
.nyotafund-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.nyotafund-review-item{background:#f9fafb;border-radius:10px;padding:12px}
.nyotafund-review-item .label{font-size:12px;color:#9ca3af;margin-bottom:2px}
.nyotafund-review-item .value{font-size:14px;font-weight:600;color:#1a1a2e}
.nyotafund-divider{border:none;border-top:1px solid #f3f4f6;margin:20px 0}

/* Notice */
.nyotafund-notice{border-radius:12px;padding:16px;display:flex;align-items:flex-start;gap:12px}
.nyotafund-notice-success{background:#ecfdf5;border:1px solid #a7f3d0}
.nyotafund-notice-success .notice-title{color:#065f46;font-weight:700;font-size:15px}
.nyotafund-notice-success .notice-text{color:#047857;font-size:13px;margin-top:2px}
.nyotafund-notice-success .notice-icon{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#10b981,#14b8a6);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;flex-shrink:0}

/* Payment */
.nyotafund-payment-card{background:linear-gradient(135deg,#ecfdf5,#f0fdfa);border-radius:12px;padding:24px;display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.nyotafund-payment-amount-label{font-size:14px;color:#10b981;font-weight:600}
.nyotafund-payment-amount{font-size:32px;font-weight:800;color:#1a1a2e}
.nyotafund-payment-icon{width:52px;height:52px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.08);display:flex;align-items:center;justify-content:center;font-size:24px;color:#10b981}
.nyotafund-payment-methods{margin-bottom:16px}
.nyotafund-payment-method{display:flex;align-items:center;gap:16px;padding:18px 20px;border:2px solid #e5e7eb;border-radius:14px;margin-bottom:12px;cursor:pointer;transition:all .2s}
.nyotafund-payment-method:hover{border-color:#d1d5db;background:#f9fafb}
.nyotafund-payment-method.selected{border-color:#10b981;background:#ecfdf5;box-shadow:0 2px 8px rgba(16,185,129,.15)}
.nyotafund-payment-method-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.nyotafund-payment-method-icon.mpesa{background:#dcfce7;color:#16a34a}
.nyotafund-payment-method-icon.pesapal{background:#dbeafe;color:#2563eb}
.nyotafund-payment-method-icon.intasend{background:#ffedd5;color:#ea580c}
.nyotafund-payment-method-info{flex:1}
.nyotafund-payment-method-info h4{font-size:15px;font-weight:600}
.nyotafund-payment-method-info p{font-size:13px;color:#6b7280}
.nyotafund-payment-method-radio{width:20px;height:20px;border-radius:50%;border:2px solid #d1d5db;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}
.nyotafund-payment-method.selected .nyotafund-payment-method-radio{border-color:#10b981}
.nyotafund-payment-method.selected .nyotafund-payment-method-radio::after{content:'';width:10px;height:10px;border-radius:50%;background:#10b981}

/* Spinner */
.nyotafund-spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#10b981;border-radius:50%;animation:nyotafundSpin .8s linear infinite;margin:0 auto 12px}
@keyframes nyotafundSpin{to{transform:rotate(360deg)}}
.nyotafund-processing{background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;padding:24px;text-align:center;margin-top:16px}

/* Confirmation */
.nyotafund-confirm-check{width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,#10b981,#14b8a6);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:#fff;font-size:44px;box-shadow:0 8px 24px rgba(16,185,129,.3);animation:nyotafundPop .5s ease}
.nyotafund-confirm-title{font-size:32px;font-weight:800;margin-bottom:8px}
.nyotafund-confirm-summary{background:#fff;border-radius:14px;border:1px solid #e5e7eb;overflow:hidden;margin-bottom:28px}
.nyotafund-confirm-row{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid #f3f4f6}
.nyotafund-confirm-row:last-child{border-bottom:none}
.nyotafund-confirm-row .label{font-size:14px;color:#6b7280}
.nyotafund-confirm-row .value{font-size:14px;font-weight:600}
.nyotafund-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600}
.nyotafund-badge-pending,.nyotafund-badge-processing{background:#fef3c7;color:#92400e}
.nyotafund-badge-under_review{background:#dbeafe;color:#1e40af}
.nyotafund-badge-approved,.nyotafund-badge-paid,.nyotafund-badge-completed{background:#d1fae5;color:#065f46}
.nyotafund-badge-rejected{background:#fee2e2;color:#991b1b}
.nyotafund-confirm-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* Responsive */
@media(max-width:640px){
    .nyotafund-hero{padding:36px 20px}
    .nyotafund-hero h1{font-size:26px}
    .nyotafund-hero p{font-size:16px}
    .nyotafund-section-title{font-size:22px}
    .nyotafund-form-header,.nyotafund-form-body,.nyotafund-form-footer{padding-left:16px;padding-right:16px}
    .nyotafund-review-grid{grid-template-columns:1fr}
    .nyotafund-nav{gap:4px}
    .nyotafund-nav-btn{padding:6px 12px;font-size:13px}
}
