:root{--ink:#17231d;--muted:#65736c;--bg:#f3f6f4;--card:#fff;--line:#dfe7e2;--brand:#0b6a43;--brand2:#128456;--soft:#e9f4ee;--gold:#a77a10;--warn:#fff5d8;--danger:#9f3030;--shadow:0 12px 36px rgba(17,49,33,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}a{color:inherit}.shell{max-width:1180px;margin:auto;padding:0 18px}.top{background:#10271d;color:white}.top .shell{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{font-weight:850;letter-spacing:-.02em}.brand small{display:block;color:#b8c8c0;font-weight:500;margin-top:3px}.badge{display:inline-block;padding:7px 10px;border-radius:999px;background:#fff2c4;color:#705200;font-size:12px;font-weight:800}.hero{padding:52px 0 26px}.hero h1{font-size:clamp(34px,6vw,62px);line-height:.98;letter-spacing:-.05em;margin:0 0 16px;max-width:840px}.hero p{font-size:18px;color:var(--muted);max-width:760px;line-height:1.55}.grid{display:grid;gap:16px}.cards{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.card h3{margin:0 0 8px}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:11px;padding:11px 15px;font-weight:800;cursor:pointer;text-decoration:none}.btn.primary{background:var(--brand);color:white}.btn.primary:hover{background:var(--brand2)}.btn.soft{background:var(--soft);color:var(--brand)}.btn.outline{background:white;border:1px solid var(--line)}.btn.danger{background:#fae9e9;color:var(--danger)}.section{padding:24px 0}.section-title{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:14px}.section-title h2{margin:0;font-size:26px}.service{cursor:pointer;transition:.15s}.service:hover{transform:translateY(-2px);border-color:#afcfc0}.service .price{font-size:22px;font-weight:900;margin-top:14px}.tag{display:inline-block;padding:5px 8px;border-radius:999px;background:var(--soft);color:var(--brand);font-size:11px;font-weight:800}.notice{padding:13px 14px;border-radius:12px;background:var(--warn);color:#694f07;border:1px solid #ead894}.form-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.field{grid-column:span 6}.field.w12{grid-column:span 12}.field.w4{grid-column:span 4}label{display:block;font-size:12px;font-weight:800;color:var(--muted);margin-bottom:6px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:white;font:inherit}textarea{min-height:84px}.modal{position:fixed;inset:0;background:rgba(9,25,17,.55);display:none;align-items:center;justify-content:center;padding:18px;z-index:30}.modal.open{display:flex}.modalbox{background:white;width:min(820px,100%);max-height:92vh;overflow:auto;border-radius:20px;padding:20px}.modalhead{display:flex;justify-content:space-between;gap:20px}.x{border:0;width:36px;height:36px;border-radius:50%;cursor:pointer}.requirements{display:grid;gap:9px}.req{border:1px solid var(--line);border-radius:12px;padding:12px}.req strong{display:block;margin-bottom:5px}.progress{display:flex;gap:8px;flex-wrap:wrap}.step{padding:7px 9px;border-radius:999px;background:#edf1ef;color:#52635a;font-size:11px;font-weight:800}.step.on{background:var(--soft);color:var(--brand)}.amount{font-size:28px;font-weight:900}.admin{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:#10271d;color:white;padding:20px 14px}.sidebar button{width:100%;text-align:left;border:0;background:transparent;color:#d7e4dd;padding:11px;border-radius:10px;cursor:pointer}.sidebar button.active,.sidebar button:hover{background:#1b3a2c;color:white}.main{padding:22px}.kpis{grid-template-columns:repeat(4,1fr)}.kpi b{font-size:28px;display:block;margin-top:7px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.table th{color:var(--muted);background:#fafcfb}.admin-page{display:none}.admin-page.active{display:block}.login{max-width:440px;margin:10vh auto}.docrow{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}.hidden{display:none!important}.footer{padding:35px 0 55px;color:var(--muted);font-size:13px}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f1f4f2;padding:2px 5px;border-radius:6px}
@media(max-width:900px){.cards,.kpis{grid-template-columns:1fr 1fr}.admin{display:block}.sidebar{position:sticky;top:0;z-index:10;display:flex;gap:6px;overflow:auto;padding:8px}.sidebar .brand{display:none}.sidebar button{width:auto;white-space:nowrap}.main{padding:16px}.field,.field.w4{grid-column:span 12}}
@media(max-width:620px){.cards,.kpis{grid-template-columns:1fr}.hero{padding-top:34px}.top .shell{min-height:62px}.form-grid{display:block}.field{margin-bottom:10px}.modal{padding:8px}.modalbox{border-radius:14px}}

/* Mobile + teclado virtual: Vantix Parroquias */
html{min-width:0;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-bottom:120px}
body{min-width:0;max-width:100%;overflow-x:hidden;min-height:100dvh}
img,svg,video,canvas{max-width:100%;height:auto}
button,input,select,textarea{max-width:100%}
input,select,textarea{font-size:16px;line-height:1.25;min-height:44px}
textarea{min-height:96px}
.btn{min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.modal{height:var(--app-vh,100dvh);min-height:0;top:var(--app-vv-top,0px);bottom:auto;overflow:hidden;overscroll-behavior:contain}
.modalbox{max-height:calc(var(--app-vh,100dvh) - 24px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-padding-bottom:140px}
body.modal-active{overflow:hidden;overscroll-behavior:none}
.table-wrap{-webkit-overflow-scrolling:touch}
.card,.field,.main,.shell{min-width:0}
pre{max-width:100%;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:900px){
  .admin{min-height:var(--app-vh,100dvh)}
  .sidebar{top:0;max-width:100vw;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .sidebar::-webkit-scrollbar{display:none}
  .main{padding-bottom:max(24px,env(safe-area-inset-bottom))}
}
@media(max-width:620px){
  .shell{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .top .shell{min-height:58px;gap:10px}
  .top .brand{font-size:14px;min-width:0}
  .top .brand small{font-size:11px}
  .top .btn{padding:9px 11px;white-space:nowrap;font-size:13px}
  .hero{padding:26px 0 12px}
  .hero h1{font-size:clamp(30px,10vw,42px);line-height:1.03;overflow-wrap:anywhere}
  .hero p{font-size:16px}
  .section{padding:18px 0}
  .section-title{align-items:flex-start;flex-wrap:wrap}
  .section-title h2{font-size:23px}
  .card{padding:14px;border-radius:15px}
  .modal{padding:0;align-items:flex-start}
  .modalbox{width:100%;height:auto;max-height:var(--app-vh,100dvh);border-radius:0;padding:16px 14px max(22px,env(safe-area-inset-bottom));margin:0;scroll-padding-top:72px;scroll-padding-bottom:180px}
  .modalhead{position:sticky;top:-16px;z-index:2;background:#fff;padding:16px 0 10px;margin-top:-16px;align-items:flex-start}
  .modalhead h2{font-size:23px;margin:.55rem 0}
  .x{flex:0 0 44px;width:44px;height:44px;font-size:18px}
  .form-grid{display:block}
  .field,.field.w4,.field.w12{width:100%;margin-bottom:12px}
  .req{overflow-wrap:anywhere}
  .req input[type=file]{padding:8px 0;border:0;min-height:44px}
  .req .btn{width:100%;margin-top:8px}
  .progress{gap:6px}
  .step{padding:6px 8px}
  .amount{font-size:25px}
  .login{margin:0 auto;padding-top:max(18px,env(safe-area-inset-top));min-height:var(--app-vh,100dvh);display:flex;align-items:center}
  .login>.card{width:100%}
  .admin{min-height:var(--app-vh,100dvh)}
  .sidebar{position:sticky;top:0;padding:7px max(8px,env(safe-area-inset-right)) 7px max(8px,env(safe-area-inset-left));gap:5px}
  .sidebar button{min-height:44px;padding:10px 12px}
  .main{padding:14px 12px max(24px,env(safe-area-inset-bottom))}
  .kpi b{font-size:25px}
  .docrow{align-items:flex-start;flex-direction:column}
  .docrow>div{width:100%;min-width:0}
  .docrow .btn{width:100%;margin-top:6px}
  .table{min-width:680px}
  body.keyboard-open .top{position:static}
  body.keyboard-open .sidebar{position:static}
  body.keyboard-open .modalbox{padding-bottom:24px}
  body.keyboard-open .login{align-items:flex-start;padding-top:12px}
}
.payment-portal{border:1px solid #cfe2d7;background:#f8fcfa;border-radius:16px;padding:15px;margin:14px 0}
.payment-title,.paypart-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.payment-title h3{margin:8px 0 4px}.payment-title p{margin:0;max-width:600px}
.paypart{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-top:11px}
.paypart.approved{border-color:#a8d2bb;background:#f3fbf6}.paypart.pending{border-color:#e8ce82;background:#fffaf0}.paypart.rejected{border-color:#e6b2b2;background:#fffafa}
.amount.small{font-size:20px;white-space:nowrap}.payment-status{display:inline-block;margin-top:9px;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:800}
.payment-status.ok{background:#e2f4e8;color:#19613b}.payment-status.wait{background:#fff0c8;color:#785900}.payment-status.bad{background:#fae5e5;color:#922f2f}
.danger-note{background:#fae9e9;color:#7f2929;border-color:#e9bcbc;margin-top:10px}.proof-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.proof-actions .btn{flex:1 1 130px}
@media(max-width:620px){.paypart input[type=file]{padding:8px 0;border:0;min-height:44px}.paypart .uploadPaymentBtn{width:100%;margin-top:8px}.payment-title{display:block}.payment-title>.amount{margin-top:10px}.paypart-head{align-items:center}.paypart{padding:12px}.payment-portal{padding:11px}}
