:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f0f5f1;--bg-accent:#e3f2e6;--card:#fff;--text:#0f2418;--muted:#5f7368;--accent:#43b02a;--accent-dark:#2d7a1c;--accent-soft:#e8f6e4;--border:#d9e5dc;--shadow-sm:0 4px 16px #0f24180f;--shadow-md:0 12px 40px #0f24181a;--shadow-lg:0 24px 60px #0f241829;--success-bg:#edf9f0;--success-border:#a8ddb5;--warn-bg:#fff9ed;--warn-border:#f0d998;--mpesa:#1fa463;--mpesa-dark:#168a51;--radius-sm:10px;--radius-md:16px;--radius-lg:22px;--font:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif}body{min-height:100vh;font-family:var(--font);background:radial-gradient(ellipse at top, var(--bg-accent) 0%, transparent 55%), linear-gradient(180deg, #f7fbf8 0%, var(--bg) 100%);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}#root{min-height:100vh}.app-shell{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;display:flex}.app-enter{animation:.5s fadeIn}.app-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);z-index:10;background:#ffffffd9;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex;position:sticky;top:0}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-logo{object-fit:cover;object-position:left center;border:1px solid var(--border);border-radius:10px;width:44px;height:44px}.brand-title{color:var(--text);margin:0;font-size:14px;font-weight:700}.brand-subtitle{color:var(--muted);margin:2px 0 0;font-size:11px;font-weight:500}.step-pill{letter-spacing:.03em;text-transform:uppercase;color:var(--accent-dark);background:var(--accent-soft);white-space:nowrap;border:1px solid #b8ddb0;border-radius:999px;padding:6px 12px;font-size:11px;font-weight:600}.page{width:100%;max-width:520px;margin:0 auto;padding:24px 20px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:32px 28px}.hero-copy h1{letter-spacing:-.02em;margin:0 0 10px;font-size:clamp(1.6rem,4vw,1.9rem);font-weight:800;line-height:1.15}.hero-copy p{color:var(--muted);margin:0 0 28px;font-size:15px;line-height:1.6}.badge{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-dark);background:var(--accent-soft);border:1px solid #b8ddb0;border-radius:999px;margin-bottom:14px;padding:5px 12px;font-size:11px;font-weight:700;display:inline-block}.limit-form{flex-direction:column;gap:4px;display:flex}.field-group{margin-bottom:12px}label{color:var(--text);margin-bottom:7px;font-size:13px;font-weight:600;display:block}input[type=text],input[type=tel]{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:#fafcfa;outline:none;width:100%;padding:14px 16px;font-family:inherit;font-size:16px;transition:border-color .2s,box-shadow .2s,background .2s}input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px #43b02a1f}button{cursor:pointer;border:none;font-family:inherit;transition:transform .15s,box-shadow .2s,background .2s,opacity .2s}button:active:not(:disabled){transform:translateY(1px)}.btn-primary{border-radius:var(--radius-sm);color:#fff;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);width:100%;margin-top:8px;padding:15px 20px;font-size:15px;font-weight:700;box-shadow:0 4px 14px #43b02a59}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #43b02a73}.btn-mpesa{border-radius:var(--radius-sm);color:#fff;background:linear-gradient(135deg, var(--mpesa) 0%, var(--mpesa-dark) 100%);justify-content:center;align-items:center;gap:10px;width:100%;padding:15px 20px;font-size:15px;font-weight:700;display:flex;box-shadow:0 4px 14px #1fa46359}.btn-mpesa:hover:not(:disabled){box-shadow:0 6px 20px #1fa46373}button:disabled{opacity:.65;cursor:not-allowed;transform:none}.splash-screen{opacity:0;z-index:50;background:linear-gradient(160deg,#f4faf2 0%,#fff 50%,#eef8ea 100%);justify-content:center;align-items:center;transition:opacity .45s,transform .45s;display:flex;position:fixed;inset:0;overflow:hidden}.splash-screen.show{opacity:1}.splash-screen.exit{opacity:0;transform:scale(1.02)}.splash-pattern{background-image:radial-gradient(circle at 20% 30%,#43b02a0f 0%,#0000 50%),radial-gradient(circle at 80% 70%,#43b02a0a 0%,#0000 50%);position:absolute;inset:0}.splash-glow{background:radial-gradient(circle,#43b02a26,#0000 70%);border-radius:50%;width:320px;height:320px;animation:2.4s ease-in-out infinite pulseGlow;position:absolute}.splash-content{z-index:1;text-align:center;max-width:400px;padding:32px 28px;position:relative}.splash-logo-card{border-radius:var(--radius-md);box-shadow:var(--shadow-md);background:#fff;margin-bottom:24px;padding:20px 24px;animation:2.8s ease-in-out infinite logoFloat}.safaricom-logo{object-fit:contain;width:min(260px,75vw);height:auto;max-height:80px;margin:0 auto;display:block}.splash-powered{color:var(--accent-dark);margin:0 0 6px;font-size:17px;font-weight:700}.splash-tagline{color:var(--muted);margin:0 0 28px;font-size:14px}.splash-loader{justify-content:center;gap:8px;margin-bottom:16px;display:flex}.splash-loader span{background:var(--accent);border-radius:50%;width:9px;height:9px;animation:1.2s ease-in-out infinite splashBounce}.splash-loader span:nth-child(2){animation-delay:.15s}.splash-loader span:nth-child(3){animation-delay:.3s}.splash-status{min-height:22px;color:var(--muted);margin:0 0 18px;font-size:13px}.splash-progress-track{background:#e3efe0;border-radius:999px;width:min(300px,80vw);height:5px;margin:0 auto 16px;overflow:hidden}.splash-progress-bar{background:linear-gradient(90deg, var(--accent), #6fd14f);border-radius:inherit;height:100%;transition:width .15s linear}.splash-footer{letter-spacing:.1em;text-transform:uppercase;color:#7a9a72;margin:0;font-size:11px;font-weight:600}.loading-screen{padding:8px 0}.loading-card{text-align:center;background:var(--accent-soft);border-radius:var(--radius-md);border:1px solid #c5e4bc;padding:20px 12px}.loading-rings{width:64px;height:64px;margin:0 auto 18px;position:relative}.loading-rings span{border:2.5px solid #0000;border-top-color:var(--accent);border-radius:50%;animation:1.2s linear infinite spin;position:absolute;inset:0}.loading-rings span:nth-child(2){border-top-color:#6fd14f;animation-duration:1.6s;animation-direction:reverse;inset:8px}.loading-rings span:nth-child(3){border-top-color:var(--accent-dark);animation-duration:2s;inset:16px}.loading-screen h2{margin:0 0 6px;font-size:1.15rem;font-weight:700}.loading-subtitle{color:var(--muted);margin:0 0 18px;font-size:13px}.loading-progress-track{background:#ffffffb3;border-radius:999px;width:100%;height:6px;margin-bottom:8px;overflow:hidden}.loading-progress-bar{background:linear-gradient(90deg, var(--accent), #6fd14f);border-radius:inherit;height:100%;transition:width .2s}.loading-percent{color:var(--accent-dark);margin:0 0 12px;font-size:12px;font-weight:700}.loading-status{min-height:40px;color:var(--text);margin:0;font-size:13px;animation:1.8s ease-in-out infinite fadeSwap}.loading-phone{color:var(--accent-dark);margin:10px 0 0;font-size:12px;font-weight:600}.dialog-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;z-index:30;background:#0a1e128c;justify-content:center;align-items:center;padding:24px;transition:opacity .35s;display:flex;position:fixed;inset:0}.dialog-backdrop.show{opacity:1}.dialog-card{border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);opacity:0;text-align:center;background:#fff;padding:32px 28px 28px;transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .35s;position:relative;overflow:hidden;transform:translateY(20px)scale(.97)}.dialog-card.show{opacity:1;transform:translateY(0)scale(1)}.dialog-top-accent{background:linear-gradient(90deg, var(--accent), #6fd14f);height:4px;position:absolute;top:0;left:0;right:0}.dialog-icon{width:48px;height:48px;color:var(--accent);background:var(--accent-soft);border-radius:14px;justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.dialog-icon svg{width:24px;height:24px}.dialog-eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px;font-size:12px;font-weight:700}.dialog-limit{color:var(--accent-dark);letter-spacing:-.02em;margin-bottom:16px;font-size:clamp(2rem,6vw,2.6rem);font-weight:800}.dialog-limit .currency{opacity:.8;margin-right:4px;font-size:.55em;font-weight:700}.dialog-message,.dialog-next-step{margin:0;font-size:15px;line-height:1.65}.dialog-next-step{color:var(--muted);margin-top:12px;font-size:14px}.dialog-wait{color:var(--muted);justify-content:center;align-items:center;gap:10px;margin-top:22px;font-size:14px;display:flex}.dialog-proceed{margin-top:22px}.payment-box{border-radius:var(--radius-md);background:var(--warn-bg);border:1px solid var(--warn-border);margin-top:4px;padding:24px}.payment-header{margin-bottom:12px}.mpesa-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--mpesa-dark);background:#e6f7ee;border:1px solid #a8dfc0;border-radius:999px;align-items:center;gap:7px;margin-bottom:10px;padding:5px 11px;font-size:11px;font-weight:700;display:inline-flex}.mpesa-dot{background:var(--mpesa);border-radius:50%;width:7px;height:7px;animation:1.5s ease-in-out infinite pulseDot}.payment-title{color:var(--text);margin:0;font-size:14px;font-weight:600}.limit-amount,.subscription-amount{color:var(--accent-dark);letter-spacing:-.02em;margin:6px 0 14px;font-size:clamp(1.8rem,5vw,2.2rem);font-weight:800}.subscription-amount .currency,.limit-amount .currency{opacity:.75;margin-right:3px;font-size:.55em;font-weight:700}.payment-note,.payment-status{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.payment-status{border-radius:var(--radius-sm);color:var(--text);background:#fff9;margin-top:14px;padding:10px 12px;font-size:13px}.stk-panel{border-radius:var(--radius-sm);background:#ffffffa6;border:1px solid #f0d99899;margin:18px 0;padding:16px}.checkbox-row{cursor:pointer;align-items:flex-start;gap:10px;margin-bottom:0;font-size:13px;font-weight:500;display:flex}.checkbox-row input{width:16px;height:16px;accent-color:var(--accent);flex-shrink:0;margin-top:2px}.stk-info{margin:10px 0 0;font-size:13px;line-height:1.55}.pay-button{margin-top:16px}.approved-card{text-align:center;background:var(--success-bg);border:1px solid var(--success-border);border-radius:var(--radius-md);padding:28px 20px}.approved-icon{width:56px;height:56px;color:var(--accent);margin:0 auto 14px}.approved-icon svg{width:100%;height:100%}.approved-label{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 6px;font-size:12px;font-weight:700}.approved-card .message{margin:12px 0 0;font-size:15px;line-height:1.65}.approved-badge{color:var(--accent-dark);border:1px solid var(--success-border);background:#fff;border-radius:999px;margin-top:18px;padding:6px 14px;font-size:12px;font-weight:600;display:inline-block}.approved-retry-btn{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);background:#fff;margin-top:20px;padding:14px 16px;font-size:15px;font-weight:600}.approved-retry-btn:hover{border-color:var(--accent);color:var(--accent-dark);background:var(--accent-soft)}.error{border-radius:var(--radius-sm);color:#8b1e1e;background:#fff5f5;border:1px solid #f3b4b4;margin-top:16px;padding:13px 15px;font-size:14px;line-height:1.5}.app-footer{text-align:center;color:var(--muted);padding:20px 24px 28px}.app-footer p{margin:0;font-size:12px;line-height:1.6}.app-footer p+p{opacity:.8;margin-top:4px;font-size:11px}.mini-spinner{border:2px solid #43b02a40;border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}.mini-spinner.light{border-color:#fff #ffffff4d #ffffff4d}.fade-in{animation:.5s fadeInUp}.slide-up{animation:.55s cubic-bezier(.22,1,.36,1) slideUp}.pulse-in{animation:.8s pulseIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeSwap{0%,to{opacity:.7}50%{opacity:1}}@keyframes pulseIn{0%{opacity:.5;transform:scale(.94)}60%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes pulseGlow{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes splashBounce{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1.1)}}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}@media (width<=480px){.app-header{padding:12px 16px}.page{padding:20px 16px 12px}.card{border-radius:18px;padding:24px 20px}.step-pill{padding:5px 9px;font-size:10px}}*{box-sizing:border-box}body{margin:0}.admin-login-page,.admin-dashboard{min-height:100vh}.admin-login-page{background:linear-gradient(#e8f5ec 0%,#f3f7f4 40%);justify-content:center;align-items:center;padding:24px;display:flex}.admin-card .field-group{margin-bottom:0}.admin-card .field-group label{color:#123524;margin-bottom:8px;font-size:14px;font-weight:600;display:block}.admin-card .field-group input{color:#123524;background:#fff;border:1px solid #d7e5dc;border-radius:12px;outline:none;width:100%;margin-bottom:16px;padding:14px 16px;font-family:inherit;font-size:16px;transition:border-color .2s,box-shadow .2s}.admin-card .field-group input:focus{border-color:#0f9d58;box-shadow:0 0 0 4px #0f9d581f}.admin-card .btn-primary{color:#fff;cursor:pointer;width:100%;box-shadow:none;background:#0f9d58;border:none;border-radius:12px;margin-top:0;padding:14px 16px;font-size:16px;font-weight:600}.admin-card .btn-primary:hover:not(:disabled){background:#0b7a45}.admin-card .btn-primary:disabled{opacity:.7;cursor:not-allowed}.admin-card .error{color:#8b1e1e;background:#fff1f1;border:1px solid #f3b4b4;border-radius:12px;margin:0 0 16px;padding:12px 14px;font-size:14px}.admin-card{background:#fff;border:1px solid #d7e5dc;border-radius:20px;width:100%;max-width:460px;padding:32px 28px;box-shadow:0 18px 40px #12352414}.admin-badge{letter-spacing:.04em;text-transform:uppercase;color:#0b7a45;background:#e8f8ef;border:1px solid #9ed9b8;border-radius:999px;margin-bottom:16px;padding:6px 12px;font-size:12px;font-weight:600;display:inline-block}.admin-card h1{color:#123524;margin:0 0 8px;font-size:28px;line-height:1.2}.admin-card p{color:#5d7468;margin:0 0 24px;line-height:1.5}.admin-back-link{color:var(--muted);margin-top:20px;font-size:14px;text-decoration:none;display:inline-block}.admin-back-link:hover{color:var(--accent-dark)}.admin-dashboard{max-width:1100px;margin:0 auto;padding:24px 20px 40px}.admin-topbar{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.admin-topbar h1{margin:0 0 4px;font-size:1.5rem}.admin-topbar p{color:var(--muted);margin:0;font-size:14px}.admin-topbar-actions{gap:10px;display:flex}.admin-link-btn,.admin-logout-btn{border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;font-weight:600;text-decoration:none}.admin-link-btn{background:var(--accent-soft);color:var(--accent-dark);border:1px solid #b8ddb0}.admin-logout-btn{color:#8b1e1e;background:#fff;border:1px solid #f3b4b4}.admin-stats{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;display:grid}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:18px}.stat-card span{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.stat-card strong{color:var(--accent-dark);font-size:1.6rem}.admin-panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:18px;padding:22px}.admin-panel h2{margin:0 0 16px;font-size:1.1rem}.admin-form-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.admin-form-grid label{flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.admin-form-grid .full-width{grid-column:1/-1}.admin-form-grid input,.admin-form-grid textarea{border:1.5px solid var(--border);border-radius:var(--radius-sm);background:#fafcfa;width:100%;padding:12px 14px;font-family:inherit;font-size:14px}.btn-secondary{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);background:#fff;padding:14px 16px;font-size:15px;font-weight:600}.admin-success{border-radius:var(--radius-sm);background:var(--success-bg);border:1px solid var(--success-border);color:var(--accent-dark);margin-bottom:16px;padding:12px 14px;font-size:14px}.admin-loading{min-height:100vh;color:var(--muted);justify-content:center;align-items:center;display:flex}.admin-table-wrap{overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}.admin-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:12px}.status-pill{text-transform:capitalize;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-block}.status-paid{background:var(--success-bg);color:var(--accent-dark)}.status-pending{background:var(--warn-bg);color:#8a6d00}.status-failed{color:#8b1e1e;background:#fff1f1}@media (width<=768px){.admin-stats,.admin-form-grid{grid-template-columns:1fr}.admin-topbar{flex-direction:column}}
