*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--canvas: #f4f6f9;--surface: #ffffff;--surface-2: #f0f3f8;--surface-3: #e8edf5;--line: #e2e8f2;--line-strong: #c8d0de;--ink: #0f172a;--ink-2: #334155;--ink-3: #64748b;--ink-4: #94a3b8;--brand: #01bbec;--brand-dark: #007ca0;--brand-hover: #0099c2;--brand-tint: #e3f6fc;--brand-tint-2: #c9effa;--on-brand: #ffffff;--success: #059669;--success-bg: #ecfdf5;--warning: #d97706;--warning-bg: #fffbeb;--danger: #dc2626;--danger-bg: #fef2f2;--danger-hover: #b91c1c;--shadow-sm: 0 1px 2px 0 rgba(15,23,42,.04);--shadow-md: 0 0 0 1px rgba(15,23,42,.04), 0 4px 16px -4px rgba(15,23,42,.1);--shadow-lg: 0 0 0 1px rgba(15,23,42,.04), 0 16px 40px -8px rgba(15,23,42,.14);--shadow-btn: 0 1px 2px rgba(0,124,160,.3);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--t-fast: .15s ease;--t-med: .25s ease}html{scroll-behavior:smooth}body{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;min-height:100vh}.font-display{font-family:Syne,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.checkout-wrapper{min-height:100vh;display:flex;flex-direction:column}.checkout-header{background:var(--surface);border-bottom:1px solid var(--line);padding:0 1.5rem;height:64px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;box-shadow:var(--shadow-sm)}.checkout-logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}.checkout-logo-mark{width:36px;height:36px;background:linear-gradient(135deg,var(--brand-dark) 0%,var(--brand) 100%);border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;color:#fff;letter-spacing:-.5px}.checkout-logo-text{font-weight:700;font-size:15px;color:var(--ink);line-height:1.1}.checkout-logo-sub{font-size:10px;color:var(--ink-3);font-weight:500;letter-spacing:.5px;text-transform:uppercase}.checkout-secure-badge{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3);font-weight:500}.checkout-secure-badge svg{color:var(--success)}.checkout-main{flex:1;max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem;width:100%}.checkout-banner{background:linear-gradient(135deg,var(--brand-dark) 0%,#005f7a 40%,#003d52 100%);border-radius:var(--radius-xl);padding:2.5rem 2rem;margin-bottom:2.5rem;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;overflow:hidden;position:relative}.checkout-banner:before{content:"";position:absolute;top:-60px;right:-60px;width:260px;height:260px;background:#01bbec1f;border-radius:50%;pointer-events:none}.checkout-banner:after{content:"";position:absolute;bottom:-80px;right:120px;width:200px;height:200px;background:#ffffff0a;border-radius:50%;pointer-events:none}.banner-content{flex:1;position:relative;z-index:1}.banner-tag{display:inline-flex;align-items:center;gap:6px;background:#ffffff26;border:1px solid rgba(255,255,255,.2);border-radius:99px;padding:4px 12px;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:#ffffffe6;margin-bottom:1rem}.banner-title{font-family:Syne,sans-serif;font-size:clamp(1.5rem,4vw,2.25rem);font-weight:800;line-height:1.1;margin-bottom:.75rem;color:#fff}.banner-desc{font-size:.9rem;color:#ffffffbf;max-width:480px;line-height:1.6}.banner-stats{display:flex;gap:1.5rem;margin-top:1.5rem}.banner-stat{display:flex;flex-direction:column;gap:2px}.banner-stat-value{font-weight:800;font-size:1.25rem;color:var(--brand)}.banner-stat-label{font-size:11px;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.section-label{display:flex;align-items:center;gap:10px;margin-bottom:1.25rem}.section-number{width:28px;height:28px;background:var(--brand-dark);color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.section-title{font-size:1rem;font-weight:700;color:var(--ink)}.checkout-grid{display:grid;grid-template-columns:1fr 380px;gap:2rem;align-items:start}.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.plan-card{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius-lg);padding:1.25rem;cursor:pointer;transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);position:relative;display:flex;flex-direction:column;gap:.75rem}.plan-card:hover{border-color:var(--brand-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.plan-card.selected{border-color:var(--brand-dark);box-shadow:0 0 0 4px var(--brand-tint),var(--shadow-md);transform:translateY(-2px)}.plan-card.highlighted{border-color:var(--brand-dark)}.plan-badge{position:absolute;top:-1px;right:12px;background:var(--brand-dark);color:#fff;font-size:10px;font-weight:700;padding:3px 10px;border-radius:0 0 8px 8px;text-transform:uppercase;letter-spacing:.5px}.plan-radio{width:18px;height:18px;border:2px solid var(--line-strong);border-radius:50%;flex-shrink:0;transition:all var(--t-fast);display:flex;align-items:center;justify-content:center}.plan-card.selected .plan-radio{border-color:var(--brand-dark);background:var(--brand-dark)}.plan-radio:after{content:"";width:6px;height:6px;background:#fff;border-radius:50%;opacity:0;transition:opacity var(--t-fast)}.plan-card.selected .plan-radio:after{opacity:1}.plan-header{display:flex;align-items:flex-start;gap:10px}.plan-info{flex:1}.plan-name{font-weight:700;font-size:.95rem;color:var(--ink)}.plan-price{font-family:Syne,sans-serif;font-size:1.4rem;font-weight:800;color:var(--brand-dark);margin-top:2px}.plan-desc{font-size:.75rem;color:var(--ink-3);line-height:1.5}.plan-features{display:flex;flex-direction:column;gap:4px}.plan-feature{display:flex;align-items:flex-start;gap:6px;font-size:.72rem;color:var(--ink-2);line-height:1.4}.plan-feature svg{color:var(--success);flex-shrink:0;margin-top:1px}.form-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.25rem;box-shadow:var(--shadow-sm)}.form-row{display:grid;gap:1rem;margin-bottom:1rem}.form-row-2{grid-template-columns:1fr 1fr}.field{display:flex;flex-direction:column;gap:6px}.field:last-child{margin-bottom:0}label{font-size:.8rem;font-weight:600;color:var(--ink-2);letter-spacing:.2px}.field-input{position:relative;display:flex;align-items:center}.field-icon{position:absolute;left:12px;color:var(--ink-4);pointer-events:none;display:flex}input[type=text],input[type=email],input[type=password],input[type=tel]{width:100%;height:44px;background:var(--surface-2);border:1.5px solid var(--line);border-radius:var(--radius-sm);color:var(--ink);font-family:inherit;font-size:.875rem;font-weight:500;padding:0 12px 0 38px;outline:none;transition:border-color var(--t-fast),background var(--t-fast),box-shadow var(--t-fast)}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=tel]:focus{border-color:var(--brand-dark);background:var(--surface);box-shadow:0 0 0 3px var(--brand-tint)}input.has-error{border-color:var(--danger);background:var(--danger-bg)}input.has-error:focus{box-shadow:0 0 0 3px #dc26261a}.pw-toggle{position:absolute;right:12px;background:none;border:none;cursor:pointer;color:var(--ink-4);display:flex;padding:0;transition:color var(--t-fast)}.pw-toggle:hover{color:var(--ink-2)}.field-error{font-size:.75rem;color:var(--danger);font-weight:500;display:flex;align-items:center;gap:4px}.field-hint{font-size:.72rem;color:var(--ink-4)}.payment-methods{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}.payment-method-btn{border:2px solid var(--line);border-radius:var(--radius-md);padding:1rem;cursor:pointer;background:var(--surface);transition:all var(--t-fast);display:flex;flex-direction:column;align-items:center;gap:8px;position:relative}.payment-method-btn:hover{border-color:var(--brand-hover);box-shadow:var(--shadow-sm)}.payment-method-btn.selected{border-color:var(--brand-dark);background:var(--brand-tint);box-shadow:0 0 0 3px var(--brand-tint-2)}.payment-method-logo{height:28px;display:flex;align-items:center}.mpesa-logo{font-size:1.1rem;font-weight:900;letter-spacing:-.5px;color:#e2001a}.emola-logo{font-size:1.1rem;font-weight:900;letter-spacing:-.5px;color:#f60}.payment-method-name{font-size:.78rem;font-weight:600;color:var(--ink-2)}.payment-method-check{position:absolute;top:8px;right:8px;width:18px;height:18px;background:var(--brand-dark);border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.7);transition:all var(--t-fast)}.payment-method-btn.selected .payment-method-check{opacity:1;transform:scale(1)}.order-summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.5rem;position:sticky;top:80px;box-shadow:var(--shadow-sm)}.order-summary-title{font-weight:700;font-size:.875rem;color:var(--ink);margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.summary-plan-name{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.summary-plan-label{font-weight:600;font-size:.875rem;color:var(--ink)}.summary-plan-price{font-weight:800;color:var(--brand-dark);font-size:1.1rem;font-family:Syne,sans-serif}.summary-divider{height:1px;background:var(--line);margin:1rem 0}.summary-total{display:flex;align-items:center;justify-content:space-between}.summary-total-label{font-weight:700;font-size:.875rem;color:var(--ink)}.summary-total-value{font-family:Syne,sans-serif;font-size:1.5rem;font-weight:800;color:var(--brand-dark)}.summary-note{font-size:.72rem;color:var(--ink-3);margin-top:.5rem;text-align:right}.summary-features{margin-top:1.25rem;display:flex;flex-direction:column;gap:6px}.summary-feature{display:flex;align-items:center;gap:8px;font-size:.775rem;color:var(--ink-2)}.summary-feature svg{color:var(--success);flex-shrink:0}.btn-primary{width:100%;height:52px;background:linear-gradient(135deg,var(--brand-dark) 0%,var(--brand-hover) 100%);color:#fff;border:none;border-radius:var(--radius-md);font-family:inherit;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all var(--t-fast);box-shadow:var(--shadow-btn);margin-top:1.25rem;letter-spacing:.2px}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--brand-hover) 0%,var(--brand) 100%);box-shadow:0 4px 16px #007ca066;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{height:44px;background:var(--surface-2);color:var(--ink-2);border:1.5px solid var(--line);border-radius:var(--radius-md);font-family:inherit;font-size:.875rem;font-weight:600;cursor:pointer;padding:0 1.25rem;transition:all var(--t-fast);display:flex;align-items:center;gap:6px}.btn-secondary:hover{background:var(--surface-3);border-color:var(--line-strong)}.spinner{width:20px;height:20px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.alert{border-radius:var(--radius-md);padding:.875rem 1rem;font-size:.8rem;font-weight:500;display:flex;align-items:flex-start;gap:10px;line-height:1.5}.alert-error{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(220,38,38,.2)}.alert-success{background:var(--success-bg);color:var(--success);border:1px solid rgba(5,150,105,.2)}.alert-info{background:var(--brand-tint);color:var(--brand-dark);border:1px solid rgba(1,187,236,.2)}.alert-warning{background:var(--warning-bg);color:var(--warning);border:1px solid rgba(217,119,6,.2)}.alert svg{flex-shrink:0;margin-top:1px}.status-page{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem 1.5rem}.status-icon{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.status-icon.success{background:var(--success-bg);color:var(--success)}.status-icon.pending{background:var(--warning-bg);color:var(--warning)}.status-icon.failed{background:var(--danger-bg);color:var(--danger)}.status-title{font-family:Syne,sans-serif;font-size:clamp(1.5rem,4vw,2rem);font-weight:800;color:var(--ink);margin-bottom:.75rem}.status-desc{font-size:.95rem;color:var(--ink-3);max-width:440px;margin:0 auto 2rem;line-height:1.7}.status-actions{display:flex;flex-direction:column;gap:.75rem;align-items:center;width:100%;max-width:320px}.trust-strip{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1.25rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}.trust-item{display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--ink-3);font-weight:500}.trust-item svg{color:var(--success)}.checkout-footer{background:var(--surface);border-top:1px solid var(--line);padding:1.25rem 1.5rem;text-align:center;font-size:.72rem;color:var(--ink-4);line-height:1.6}.existing-account-notice{background:var(--brand-tint);border:1px solid var(--brand-tint-2);border-radius:var(--radius-md);padding:.875rem 1rem;font-size:.8rem;color:var(--brand-dark);display:flex;align-items:flex-start;gap:8px;margin-bottom:1rem}.pulse-ring{width:80px;height:80px;border-radius:50%;background:var(--warning-bg);display:flex;align-items:center;justify-content:center;position:relative;margin:0 auto 1.5rem}.pulse-ring:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;border:2px solid var(--warning);animation:pulse-out 1.6s ease-out infinite;opacity:0}@keyframes pulse-out{0%{transform:scale(1);opacity:.6}to{transform:scale(1.3);opacity:0}}@media(max-width:900px){.checkout-grid{grid-template-columns:1fr}.order-summary{position:static;order:-1}.plans-grid{grid-template-columns:1fr}}@media(max-width:600px){.checkout-banner{padding:1.5rem;border-radius:var(--radius-lg)}.banner-stats{gap:1rem}.form-row-2{grid-template-columns:1fr}.checkout-main{padding:1.25rem 1rem 3rem}.payment-methods{grid-template-columns:1fr 1fr}}
