:root{--navy:#173b67;--blue:#2b67ad;--light:#edf4fb;--ink:#10243f;--muted:#718096;--line:#dce6f0;--white:#fff;--green:#16834f;--shadow:0 14px 34px rgba(23,59,103,.12)}
*{box-sizing:border-box}html,body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:linear-gradient(#f8fbff,#eef4fa);color:var(--ink)}body{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;background:linear-gradient(135deg,#153963,#245c9c);color:#fff;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 4px 16px rgba(0,0,0,.12)}.brand-mark{display:flex;gap:10px;align-items:center}.brand-mark .cap{font-size:32px}.brand-mark strong{display:block;font-size:18px}.brand-mark span{display:block;font-size:12px;opacity:.85}.install-btn{background:#fff;color:var(--navy);border:0;border-radius:12px;padding:10px 14px;font-weight:800}main{max-width:760px;margin:auto;padding:18px 16px 48px}.view{display:none}.view.active{display:block}.card{background:#fff;border-radius:22px;padding:20px;box-shadow:var(--shadow);border:1px solid #e8eef6}.hero{margin-bottom:18px}.eyebrow{letter-spacing:.16em;font-weight:900;color:var(--blue);font-size:13px;margin:0 0 8px}.hero h1,.card h2{margin:.1em 0}.hero p{color:#5f6f82;line-height:1.5}.concept-grid{display:grid;grid-template-columns:1fr;gap:12px}.concept-btn{display:flex;align-items:center;gap:13px;width:100%;border:1px solid #dce7f5;background:linear-gradient(135deg,#f6faff,#eaf3ff);padding:16px;border-radius:16px;text-align:left;color:var(--ink);font-size:16px;font-weight:800;box-shadow:0 7px 18px rgba(23,59,103,.05)}.concept-btn:nth-child(3n+2){background:linear-gradient(135deg,#f5f1ff,#ece6ff)}.concept-btn:nth-child(3n){background:linear-gradient(135deg,#eefaf4,#e2f5ea)}.concept-btn .icon{font-size:25px}.concept-btn .arrow{margin-left:auto;color:var(--blue)}.wide{width:100%}.admin-btn{margin-top:18px;border:1px solid #bed5ee;background:#eef6ff;color:var(--navy);padding:16px;border-radius:16px;font-weight:900;font-size:15px}.signature{text-align:center;color:#678;line-height:1.7;margin:26px 0 0}.back{border:0;background:transparent;color:var(--navy);font-weight:800;font-size:15px;margin:0 0 12px;padding:8px 0}.form-card{padding:18px}.form-title{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:16px}.form-title .circle{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#eaf3ff;font-size:25px}.form-title h2{margin:0}.form-title p{margin:4px 0 0;color:var(--muted)}form{display:grid;gap:14px}label{font-weight:800;font-size:14px}label span{font-weight:600;color:var(--muted)}input,textarea{width:100%;margin-top:7px;padding:14px 13px;border:1px solid #cdd9e7;border-radius:12px;font:inherit;background:#fff;color:var(--ink);outline:none}input:focus,textarea:focus{border-color:#6ea0d6;box-shadow:0 0 0 3px rgba(58,119,184,.12)}.money-input{display:flex;align-items:center;margin-top:7px;border:1px solid #cdd9e7;border-radius:12px;overflow:hidden;background:#fff}.money-input span{padding:0 14px;font-size:22px;font-weight:900;color:var(--navy)}.money-input input{margin:0;border:0;border-left:1px solid #dbe3ec;border-radius:0}.primary,.secondary{border:0;border-radius:14px;padding:14px 16px;font-weight:900;font-size:15px}.primary{background:linear-gradient(135deg,#153963,#2c69ad);color:#fff}.secondary{background:#edf2f7;color:var(--navy);border:1px solid #d6e0eb}.records-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.records-head .back{margin:0}.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.stats>div{background:#f2f7fc;border-radius:14px;padding:12px}.stats span{display:block;font-size:12px;color:var(--muted)}.stats strong{font-size:19px}.records-list{display:grid;gap:10px}.record{border:1px solid #dce6f0;border-radius:14px;padding:12px}.record-top{display:flex;justify-content:space-between;gap:10px}.record .folio{font-weight:900;color:var(--blue)}.record .amount{font-weight:900}.record small{color:var(--muted);display:block;margin-top:4px}.empty{text-align:center;color:var(--muted);padding:26px 8px}.overlay{position:fixed;inset:0;background:rgba(14,28,46,.68);z-index:100;display:none;align-items:stretch;justify-content:center;padding:0}.overlay.open{display:flex}.ticket-shell{width:min(100%,560px);height:100dvh;background:#fff;display:flex;flex-direction:column}.ticket-scroll{overflow:auto;flex:1;padding:24px 18px 12px}.ticket-actions{display:grid;gap:10px;padding:12px 16px max(12px,env(safe-area-inset-bottom));background:#fff;border-top:1px solid #e1e8f0}.ticket{max-width:420px;margin:auto;background:#fff;color:#111}.ticket .ticket-brand{text-align:center}.ticket .ticket-brand .bigcap{font-size:44px}.ticket h2{text-align:center;color:var(--navy);margin:4px 0}.ticket .meta{display:grid;grid-template-columns:90px 1fr;gap:6px 10px;border-top:1px dashed #999;border-bottom:1px dashed #999;padding:14px 0;margin:14px 0}.ticket .field{margin:12px 0}.ticket .label{font-size:12px;color:#666;text-transform:uppercase;letter-spacing:.08em}.ticket .value{font-size:18px;font-weight:800;margin-top:3px}.ticket .concept{background:#eaf3ff;border-radius:10px;padding:10px;text-align:center;font-weight:900;color:var(--navy);margin:8px 0}.ticket .money{display:flex;justify-content:space-between;border-top:1px dashed #999;padding-top:12px;margin-top:14px;font-size:20px;font-weight:900}.ticket .footer{text-align:center;color:#666;margin-top:22px;font-size:13px}.ticket .folio-bottom{text-align:center;font-size:22px;font-weight:900;letter-spacing:.12em;margin-top:18px}
@media(min-width:640px){.concept-grid{grid-template-columns:1fr 1fr}.overlay{padding:28px}.ticket-shell{height:calc(100dvh - 56px);border-radius:24px;overflow:hidden}}
@media print{body *{visibility:hidden!important}.ticket,.ticket *{visibility:visible!important}.ticket{position:absolute;left:0;top:0;width:80mm;padding:4mm;font-size:12px}.ticket-actions,.topbar{display:none!important}}

/* v3 CloudSystemsPay + acceso solo desde app instalada */
#appShell{display:none}#appShell.unlocked{display:block}.install-gate{position:fixed;inset:0;z-index:1000;min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 20%,#eaf4ff 0,#dcecff 34%,#173b67 100%);text-align:center}.install-gate.hidden{display:none}.install-card{width:min(100%,420px);padding:36px 24px;border-radius:30px;background:rgba(255,255,255,.96);box-shadow:0 24px 60px rgba(8,32,61,.28)}.install-logo{width:92px;height:92px;margin:0 auto 18px;display:grid;place-items:center;border-radius:26px;background:linear-gradient(135deg,#153963,#2c69ad);font-size:48px;box-shadow:0 12px 28px rgba(23,59,103,.25)}.install-card h1{font-size:32px;margin:0;color:#10243f}.install-card>p{font-size:17px;color:#5f6f82}.install-main{width:100%;margin-top:18px;font-size:18px;padding:17px}.install-help{font-size:13px!important;line-height:1.45;margin:16px 4px 0!important}.choice-block{margin:2px 0 14px}.choice-label{font-weight:800;font-size:14px;margin-bottom:8px}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.choice-grid.days{grid-template-columns:1fr 1fr}.choice-grid.days .choice-btn:last-child{grid-column:1/-1}.choice-grid.qty{grid-template-columns:repeat(5,1fr)}.choice-btn{border:1px solid #bfd1e5;background:#f5f9fd;color:#173b67;border-radius:12px;padding:12px 8px;font:inherit;font-weight:800;min-height:46px}.choice-btn.selected{background:#173b67;color:#fff;border-color:#173b67;box-shadow:0 5px 12px rgba(23,59,103,.2)}.tuition-options[hidden],#timeBlock[hidden],#regularScheduleField[hidden]{display:none!important}@media(max-width:390px){.choice-grid.days{grid-template-columns:1fr}.choice-grid.days .choice-btn:last-child{grid-column:auto}.choice-grid.qty{grid-template-columns:repeat(5,1fr);gap:6px}.choice-grid.qty .choice-btn{padding:10px 3px}}

/* v4: la liga siempre muestra instalación; el icono instalado abre ?app=1 */
@media print{.overlay{position:static!important;background:#fff!important}.ticket-shell{height:auto!important;min-height:0!important}.ticket-scroll{overflow:visible!important;padding:0!important}.ticket{break-inside:avoid;page-break-inside:avoid}}

.login-gate{position:fixed;inset:0;z-index:1001;min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 20%,#eaf4ff 0,#dcecff 34%,#173b67 100%);text-align:center}.login-gate[hidden]{display:none!important}.login-card{width:min(100%,420px);padding:36px 24px;border-radius:30px;background:rgba(255,255,255,.96);box-shadow:0 24px 60px rgba(8,32,61,.28)}.login-card h1{font-size:30px;margin:0;color:#10243f}.login-card p{color:#5f6f82}.login-card input{text-align:center;font-size:18px}.login-error{color:#b42318!important;font-weight:800}
