:root{--purple:#5b21b6;--purple2:#7c3aed;--purple3:#ede9fe;--ink:#23133d;--muted:#756a85;--line:#e9e3f1;--bg:#f7f5fb;--green:#16a34a;--red:#dc2626;--amber:#d97706;--shadow:0 24px 70px rgba(62,27,104,.14)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}button,input{font:inherit}.login-page{min-height:100vh;background:radial-gradient(circle at 10% 10%,#ede9fe,transparent 34%),linear-gradient(135deg,#faf8ff,#f3effb)}.landing-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.55fr)}.hero-panel{position:relative;overflow:hidden;padding:34px 5vw 44px;background:linear-gradient(140deg,#2e1065 0%,#5b21b6 55%,#7c3aed 100%);color:#fff}.hero-panel:after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:#ffffff0d;right:-180px;top:-160px}.topbar,.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:900;font-size:1.12rem;letter-spacing:.08em}.brand-mark,.mini-logo{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#fff;color:var(--purple);font-weight:1000;box-shadow:0 10px 30px #2e106544}.install-btn{border:1px solid #ffffff50;background:#ffffff18;color:#fff;border-radius:999px;padding:10px 16px;font-weight:800;cursor:pointer}.hero-copy{position:relative;z-index:2;max-width:690px;margin-top:8vh}.eyebrow{display:block;font-size:.73rem;letter-spacing:.16em;font-weight:900;color:var(--purple2);margin-bottom:12px}.eyebrow.light,.hero-panel .eyebrow{color:#ddd6fe}.hero-copy h1{font-size:clamp(3rem,6vw,6.7rem);line-height:.92;letter-spacing:-.07em;margin:0}.hero-copy h1 span{color:#c4b5fd}.hero-copy p{max-width:580px;color:#e9ddff;font-size:1.08rem;line-height:1.7}.plan-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:34px}.plan-strip div{border:1px solid #ffffff24;background:#ffffff12;backdrop-filter:blur(12px);padding:16px;border-radius:18px}.plan-strip strong{display:block;font-size:1.35rem}.plan-strip span{display:block;color:#ddd6fe;font-size:.75rem;margin-top:4px}.router-stage{position:absolute;right:-70px;bottom:-45px;width:min(52vw,740px);z-index:1}.router-stage img{width:100%;filter:drop-shadow(0 40px 60px #1a073e88)}.speed-chip{position:absolute;right:18%;top:29%;background:#fff;color:var(--purple);padding:11px 16px;border-radius:999px;font-weight:950;box-shadow:0 16px 40px #2e106544}.signal{position:absolute;border:2px solid #c4b5fd55;border-radius:50%;right:21%;top:10%}.signal-one{width:100px;height:100px}.signal-two{width:170px;height:170px;right:16.4%;top:3.3%}.signal-three{width:240px;height:240px;right:11.7%;top:-3.6%}.login-card{align-self:center;margin:40px clamp(24px,4vw,70px);background:#fff;border:1px solid #eee8f5;border-radius:34px;padding:34px;box-shadow:var(--shadow)}.login-heading{display:flex;gap:14px;align-items:center;margin-bottom:28px}.login-heading h2{margin:0;font-size:1.55rem}.login-heading p{margin:5px 0 0;color:var(--muted)}label{display:block;font-weight:850;font-size:.84rem;margin:16px 0 8px}.phone-field{height:58px;border:1px solid var(--line);border-radius:17px;display:flex;align-items:center;overflow:hidden;background:#fbfaff}.phone-field:focus-within{border-color:var(--purple2);box-shadow:0 0 0 4px #7c3aed14}.phone-field span{padding:0 14px;color:var(--muted);font-weight:800;border-right:1px solid var(--line)}.phone-field input{flex:1;height:100%;border:0;outline:0;background:transparent;padding:0 14px;font-size:1.05rem}.normal-input{width:100%;height:54px;border:1px solid var(--line);border-radius:16px;padding:0 14px;outline:0}.primary-btn{width:100%;border:0;border-radius:17px;background:linear-gradient(135deg,var(--purple),var(--purple2));color:#fff;padding:16px 18px;margin-top:20px;font-weight:900;display:flex;align-items:center;justify-content:space-between;cursor:pointer;box-shadow:0 14px 30px #5b21b633}.alert{padding:12px 14px;border-radius:14px;font-size:.9rem}.alert.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.registered-list{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap}.registered-list p{width:100%;margin:0 0 4px;color:var(--muted);font-size:.77rem;font-weight:800}.registered-list span{background:var(--purple3);color:var(--purple);padding:7px 10px;border-radius:999px;font-size:.75rem;font-weight:850}.secure-note{color:var(--muted);font-size:.76rem;margin:18px 0 0}.dashboard-page{min-height:100vh;background:linear-gradient(180deg,#2e1065 0 300px,var(--bg) 300px)}.app-header{max-width:1220px;margin:auto;padding:22px 20px;color:#fff}.header-actions{display:flex;align-items:center;gap:10px}.user-chip{background:#ffffff18;border:1px solid #ffffff28;padding:9px 13px;border-radius:999px;font-size:.82rem;font-weight:850}.logout-link{color:#fff;text-decoration:none;font-weight:800;font-size:.82rem}.install-btn.ghost{padding:8px 12px}.dashboard-wrap{max-width:1220px;margin:auto;padding:8px 20px 60px}.dashboard-hero{min-height:250px;background:linear-gradient(130deg,#4c1d95,#7c3aed);border:1px solid #ffffff24;border-radius:34px;padding:38px;display:flex;justify-content:space-between;align-items:center;color:#fff;overflow:hidden;box-shadow:0 28px 80px #2e106555}.dashboard-hero h1{font-size:clamp(2rem,4.5vw,4.2rem);line-height:1;margin:0 0 14px;letter-spacing:-.05em}.dashboard-hero p{margin:0;color:#e9ddff}.dashboard-hero img{width:360px;max-height:240px;object-fit:contain;margin-right:-35px}.summary-grid,.admin-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px}.admin-overview{grid-template-columns:repeat(3,1fr)}.metric-card{background:#fff;border:1px solid var(--line);border-radius:25px;padding:22px;box-shadow:0 16px 48px #3b176a0d}.metric-label{display:block;color:var(--muted);font-size:.78rem;font-weight:850}.metric-card>strong{display:block;font-size:2.35rem;letter-spacing:-.06em;margin:9px 0}.metric-card small{color:var(--muted)}.amount-card{background:linear-gradient(145deg,#21123d,#4c1d95);color:#fff}.amount-card .metric-label,.amount-card small{color:#ddd6fe}.date-value{font-size:2rem!important}.status-pill{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;font-size:.73rem;font-weight:900}.status-pill.paid{background:#dcfce7;color:#166534}.status-pill.upcoming{background:#fef3c7;color:#92400e}.status-pill.due{background:#ffedd5;color:#9a3412}.status-pill.overdue{background:#fee2e2;color:#991b1b}.payment-panel{margin-top:16px;background:#fff;border:1px solid var(--line);border-radius:28px;padding:26px;display:flex;align-items:center;justify-content:space-between;gap:30px}.payment-panel h2,.table-card h2,.side-card h2,.member-card h2,.cron-card h2{margin:0}.payment-panel p{color:var(--muted);max-width:690px;line-height:1.6}.pay-btn{min-width:250px;border:0;border-radius:20px;padding:18px;background:linear-gradient(135deg,#16a34a,#22c55e);color:#fff;cursor:pointer;box-shadow:0 16px 34px #16a34a30}.pay-btn:disabled{background:#d1d5db;box-shadow:none;cursor:not-allowed}.pay-btn span,.pay-btn small{display:block}.pay-btn span{font-size:1.25rem;font-weight:950}.pay-btn small{opacity:.82;margin-top:4px}.content-grid{display:grid;grid-template-columns:1fr 340px;gap:16px;margin-top:16px}.table-card,.side-card,.member-card,.cron-card{background:#fff;border:1px solid var(--line);border-radius:28px;padding:24px}.table-scroll{overflow:auto;margin-top:18px}table{width:100%;border-collapse:collapse;min-width:620px}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid var(--line);font-size:.87rem}th{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.table-status{font-size:.72rem;font-weight:900;padding:6px 9px;border-radius:999px}.table-status.paid{background:#dcfce7;color:#166534}.table-status.unpaid{background:#fee2e2;color:#991b1b}.table-status.partial{background:#fef3c7;color:#92400e}.plan-facts{display:grid;gap:10px;margin-top:18px}.plan-facts div,.member-meta div{display:flex;justify-content:space-between;gap:12px;background:#faf8ff;border:1px solid var(--line);border-radius:15px;padding:13px}.plan-facts span,.member-meta span{color:var(--muted);font-size:.78rem}.fine-print{color:var(--muted);font-size:.75rem;line-height:1.5;margin-top:18px}.member-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:20px}.member-top{display:flex;align-items:center;gap:12px}.member-top h2{font-size:1.15rem}.member-top p{margin:3px 0 0;color:var(--muted);font-size:.8rem}.member-top .status-pill{margin-left:auto}.avatar{width:48px;height:48px;border-radius:17px;background:var(--purple3);color:var(--purple);display:grid;place-items:center;font-weight:1000}.member-money{margin:20px 0;display:flex;align-items:end;justify-content:space-between}.member-money span{color:var(--muted)}.member-money strong{font-size:2.5rem;letter-spacing:-.06em}.member-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px}.member-meta div{display:block}.member-meta strong{display:block;margin-top:5px}.admin-buttons{display:flex;gap:10px;margin-top:16px}.admin-buttons form{flex:1}.secondary-btn,.primary-small{display:flex;align-items:center;justify-content:center;flex:1;border-radius:14px;padding:12px;text-decoration:none;font-weight:850;font-size:.82rem}.secondary-btn{border:1px solid var(--line);color:var(--ink)}.primary-small{width:100%;border:0;background:var(--purple);color:#fff;cursor:pointer}.cron-card{margin-top:16px;display:flex;justify-content:space-between;align-items:center;gap:20px}.cron-card p{color:var(--muted);max-width:720px}.cron-card code{background:#21123d;color:#e9ddff;padding:14px;border-radius:14px;max-width:400px;overflow:auto}.toast{position:fixed;right:20px;bottom:20px;transform:translateY(40px);opacity:0;pointer-events:none;background:#21123d;color:#fff;padding:14px 18px;border-radius:14px;box-shadow:var(--shadow);transition:.22s;z-index:100}.toast.show{transform:none;opacity:1}.toast.error{background:#991b1b}.result-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#ede9fe,#faf8ff)}.result-card{max-width:520px;background:#fff;border:1px solid var(--line);border-radius:32px;padding:40px;text-align:center;box-shadow:var(--shadow)}.result-icon{width:82px;height:82px;border-radius:28px;background:#fef3c7;color:#92400e;display:grid;place-items:center;margin:0 auto 20px;font-size:2.5rem;font-weight:1000}.result-icon.paid{background:#dcfce7;color:#166534}.result-card p{color:var(--muted);line-height:1.7}.link-btn{text-decoration:none;margin-top:22px}.brand.light{color:#fff}@media(max-width:1020px){.landing-shell{grid-template-columns:1fr}.hero-panel{min-height:620px}.login-card{position:relative;margin:-48px 20px 30px;z-index:5}.router-stage{width:680px;right:-200px}.summary-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}.side-card{order:-1}.member-grid{grid-template-columns:1fr}.cron-card{display:block}.cron-card code{display:block;max-width:none}}@media(max-width:680px){.hero-panel{padding:24px 20px 80px;min-height:670px}.hero-copy{margin-top:55px}.hero-copy h1{font-size:3.4rem}.plan-strip{grid-template-columns:1fr 1fr}.router-stage{width:560px;right:-220px;bottom:-35px}.login-card{padding:24px;border-radius:28px}.dashboard-wrap{padding:4px 12px 44px}.app-header{padding:16px 14px}.user-chip{display:none}.dashboard-hero{padding:26px 22px;min-height:270px;display:block}.dashboard-hero img{width:260px;float:right;margin-top:-20px;margin-right:-70px}.summary-grid,.admin-overview{grid-template-columns:1fr 1fr;gap:10px}.metric-card{padding:17px;border-radius:20px}.metric-card>strong{font-size:1.9rem}.payment-panel{display:block;padding:21px}.pay-btn{width:100%;min-width:0;margin-top:10px}.content-grid{grid-template-columns:1fr}.table-card,.side-card,.member-card,.cron-card{padding:19px;border-radius:23px}.member-meta{grid-template-columns:1fr}.member-top{align-items:flex-start}.member-top .status-pill{position:absolute;right:30px;margin-top:54px}.member-card{position:relative}.admin-buttons{margin-top:48px}.header-actions{gap:7px}.brand span:last-child{display:none}}@media(max-width:410px){.summary-grid,.admin-overview{grid-template-columns:1fr}.hero-copy h1{font-size:3rem}.router-stage{width:500px}.plan-strip div{padding:13px}.login-card{margin-left:10px;margin-right:10px}.app-header .brand span:last-child{display:none}}
