
/* =========================================================
   CHAMOGO — ACCESO Y REGISTRO MODERNO
   Solo presentación. No cambia IDs, datos, Firebase ni lógica.
   ========================================================= */

/* Base común */
#s-welcome,
#s-login,
#s-tipo,
#s-reg-cliente,
#s-reg-restaurante,
#s-reg-repartidor {
  --auth-green:#07502f;
  --auth-green-dark:#062f20;
  --auth-green-soft:#eef8f2;
  --auth-surface:#ffffff;
  --auth-bg:#f5f7f6;
  --auth-line:#e5ebe7;
  --auth-muted:#738078;
  --auth-text:#15251d;
  background:var(--auth-bg);
}

#s-login .content,
#s-tipo .content,
#s-reg-cliente .content,
#s-reg-restaurante .content,
#s-reg-repartidor .content {
  width:100%;
  max-width:560px;
  margin:0 auto;
}

/* Cabeceras públicas */
#s-login .bhdr,
#s-tipo .bhdr,
#s-reg-cliente .bhdr,
#s-reg-restaurante .bhdr,
#s-reg-repartidor .bhdr {
  min-height:74px;
  padding:calc(12px + env(safe-area-inset-top)) 16px 15px;
  background:linear-gradient(145deg,#082e20 0%,#0a4b2f 58%,#117145 100%);
  border-radius:0 0 26px 26px;
  box-shadow:0 12px 30px rgba(6,52,33,.14);
}
#s-login .bhdr::before,
#s-tipo .bhdr::before,
#s-reg-cliente .bhdr::before,
#s-reg-restaurante .bhdr::before,
#s-reg-repartidor .bhdr::before {
  width:150px;height:150px;top:-85px;right:-45px;
  background:rgba(255,255,255,.07);
}
#s-login .bbtn,
#s-tipo .bbtn,
#s-reg-cliente .bbtn,
#s-reg-restaurante .bbtn,
#s-reg-repartidor .bbtn {
  width:38px;height:38px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:none;
}
#s-login .bname,
#s-tipo .bname,
#s-reg-cliente .bname,
#s-reg-restaurante .bname,
#s-reg-repartidor .bname {
  font-size:16px;
  font-weight:900;
  letter-spacing:-.02em;
}
#s-login .bmeta,
#s-tipo .bmeta,
#s-reg-cliente .bmeta,
#s-reg-restaurante .bmeta,
#s-reg-repartidor .bmeta {
  font-size:9.5px;
  color:rgba(255,255,255,.68);
  font-weight:750;
}

/* Inputs: aspecto premium y simple */
#s-login .fgroup,
#s-reg-cliente .fgroup,
#s-reg-restaurante .fgroup,
#s-reg-repartidor .fgroup {
  margin-bottom:14px;
}
#s-login .flabel,
#s-reg-cliente .flabel,
#s-reg-restaurante .flabel,
#s-reg-repartidor .flabel {
  margin:0 0 6px 2px;
  font-size:9.5px;
  line-height:1.2;
  color:#627269;
  font-weight:900;
  letter-spacing:.065em;
}
#s-login .finput,
#s-reg-cliente .finput,
#s-reg-restaurante .finput,
#s-reg-repartidor .finput {
  min-height:49px;
  padding:12px 14px;
  border:1px solid #dfe6e2;
  border-radius:14px;
  background:#fbfcfb;
  color:var(--auth-text);
  font-size:13px;
  font-weight:650;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;
}
#s-login .finput::placeholder,
#s-reg-cliente .finput::placeholder,
#s-reg-restaurante .finput::placeholder,
#s-reg-repartidor .finput::placeholder {
  color:#9aa59f;
  font-weight:550;
}
#s-login .finput:focus,
#s-reg-cliente .finput:focus,
#s-reg-restaurante .finput:focus,
#s-reg-repartidor .finput:focus {
  background:#fff;
  border-color:#2a8b59;
  box-shadow:0 0 0 4px rgba(21,124,76,.09);
}

/* Botones */
#s-login .btn,
#s-tipo .btn,
#s-reg-cliente .btn,
#s-reg-restaurante .btn,
#s-reg-repartidor .btn {
  min-height:49px;
  border-radius:14px;
  font-size:13px;
  font-weight:900;
  box-shadow:0 8px 20px rgba(6,75,43,.15);
}
#s-login .btn-outline,
#s-reg-cliente .btn-outline,
#s-reg-restaurante .btn-outline,
#s-reg-repartidor .btn-outline {
  background:#fff;
  border:1.5px solid #d9e4dd;
  color:var(--auth-green);
  box-shadow:none;
}

/* ========== BIENVENIDA ========== */
#s-welcome .welcome-screen {
  min-height:100dvh;
  justify-content:flex-end;
  padding:calc(42px + env(safe-area-inset-top)) 22px calc(28px + env(safe-area-inset-bottom));
  background:
    radial-gradient(circle at 82% 12%,rgba(255,209,102,.16) 0 0,transparent 25%),
    radial-gradient(circle at 4% 78%,rgba(255,255,255,.08) 0 0,transparent 26%),
    linear-gradient(155deg,#061f17 0%,#073b27 46%,#0b6940 100%);
}
#s-welcome .welcome-screen::before {
  width:290px;height:290px;
  top:-155px;right:-100px;
  border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.025);
}
#s-welcome .welcome-screen::after {
  width:230px;height:230px;
  left:-120px;bottom:145px;
  background:rgba(255,209,102,.055);
}
#s-welcome .wlogo {
  margin:auto 0 0;
  width:100%;
  position:relative;
  z-index:2;
}
#s-welcome .wlogo img {
  width:min(285px,78vw) !important;
  height:auto !important;
  max-width:none !important;
  filter:drop-shadow(0 12px 28px rgba(0,0,0,.22));
}
#s-welcome .wsub {
  margin:12px 0 34px !important;
  color:rgba(255,255,255,.73) !important;
  font-size:12px !important;
  font-weight:750 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase;
  position:relative;
  z-index:2;
}
#s-welcome .wbtns {
  width:min(100%,430px);
  gap:10px;
  padding:14px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:22px;
  background:rgba(255,255,255,.075);
  box-shadow:0 20px 55px rgba(0,0,0,.18);
  backdrop-filter:blur(18px);
}
#s-welcome .wbtns .btn {
  min-height:52px;
  border-radius:15px;
  font-size:13px;
  font-weight:900;
  box-shadow:none;
}
#s-welcome .wbtns .btn:first-child {
  background:#fff;
  color:#073c28;
}
#s-welcome .wbtns .btn-outline {
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
}
#s-welcome .wbtns > div:last-child {
  margin-top:4px !important;
  padding:6px 0 2px;
  font-size:10px !important;
  color:rgba(255,255,255,.62) !important;
  text-decoration:none !important;
}

/* ========== SELECTOR DE ROL ========== */
#s-tipo .content {
  padding:22px 14px calc(30px + env(safe-area-inset-bottom)) !important;
}
#s-tipo .content > p {
  margin:0 2px 18px !important;
  color:var(--auth-muted) !important;
  font-size:11px !important;
  line-height:1.5;
}
#s-tipo .tipo-card {
  position:relative;
  min-height:94px;
  padding:15px 45px 15px 14px;
  margin-bottom:10px;
  gap:13px;
  border:1px solid var(--auth-line);
  border-radius:20px;
  background:#fff;
  box-shadow:0 5px 18px rgba(18,43,31,.05);
}
#s-tipo .tipo-card::after {
  content:'›';
  position:absolute;
  right:16px;top:50%;
  transform:translateY(-52%);
  font-size:27px;
  line-height:1;
  color:#b2bcb6;
  font-weight:450;
}
#s-tipo .tipo-card.sel {
  border-color:#2a8b59;
  background:linear-gradient(145deg,#fff 0%,#f1faf5 100%);
  box-shadow:0 8px 24px rgba(6,75,43,.10);
}
#s-tipo .tipo-card.sel::after { color:var(--auth-green); }
#s-tipo .tipo-icon {
  width:52px;height:52px;
  border:0;
  border-radius:17px;
  background:#eef5f1;
  color:#37614c;
  font-size:20px;
}
#s-tipo .tipo-icon i { font-size:19px; }
#s-tipo .tipo-card:nth-of-type(2) .tipo-icon { background:#eef7ff;color:#3976a8; }
#s-tipo .tipo-card:nth-of-type(3) .tipo-icon { background:#fff4e8;color:#b86a20; }
#s-tipo .tipo-card:nth-of-type(4) .tipo-icon { background:#eef5f1;color:#176e43; }
#s-tipo .tipo-info .tipo-nombre {
  font-size:14px;
  font-weight:950;
  letter-spacing:-.015em;
}
#s-tipo .tipo-info .tipo-desc {
  margin-top:4px;
  max-width:330px;
  font-size:10.5px;
  line-height:1.45;
  color:#79857f;
  font-weight:650;
}
#s-tipo #btn-continuar {
  margin-top:4px;
}

/* ========== LOGIN ========== */
#s-login {
  background:
    linear-gradient(180deg,#eef6f1 0,#f7f8f7 280px,#f7f8f7 100%);
}
#s-login .content {
  padding:0 14px calc(26px + env(safe-area-inset-bottom)) !important;
}
#s-login .content > div:first-child {
  margin:-1px -14px 0 !important;
  padding:30px 22px 40px !important;
  background:linear-gradient(145deg,#0a3c28 0%,#0b5d37 100%);
  border-radius:0 0 28px 28px;
  color:#fff;
  position:relative;
  overflow:hidden;
}
#s-login .content > div:first-child::after {
  content:'';
  position:absolute;
  width:160px;height:160px;
  right:-75px;bottom:-95px;
  border-radius:50%;
  background:rgba(255,209,102,.10);
}
#s-login .content > div:first-child img {
  width:190px !important;
  max-width:72% !important;
  margin-bottom:14px !important;
  filter:drop-shadow(0 8px 22px rgba(0,0,0,.18)) !important;
}
#s-login .content > div:first-child > div:nth-child(2) {
  color:#fff !important;
  font-size:18px !important;
  font-weight:950 !important;
  letter-spacing:-.02em;
}
#s-login .content > div:first-child > div:nth-child(3) {
  color:rgba(255,255,255,.68) !important;
  font-size:10.5px !important;
  font-weight:650;
}
#s-login .fgroup:first-of-type {
  margin-top:-18px;
}
#s-login .fgroup,
#s-login .content > .btn,
#s-login .content > div:last-child {
  position:relative;
  z-index:2;
}
#s-login .fgroup {
  background:#fff;
  border-left:1px solid var(--auth-line);
  border-right:1px solid var(--auth-line);
  padding:0 14px 12px;
  margin:0;
}
#s-login .fgroup:first-of-type {
  padding-top:18px;
  border-top:1px solid var(--auth-line);
  border-radius:20px 20px 0 0;
  box-shadow:0 8px 28px rgba(21,47,34,.07);
}
#s-login .fgroup:nth-of-type(2) {
  padding-bottom:16px;
  border-bottom:1px solid var(--auth-line);
  border-radius:0 0 20px 20px;
  margin-bottom:14px;
}
#s-login .content > .btn {
  margin-bottom:9px !important;
}
#s-login .content > div:last-child {
  margin-top:14px !important;
  gap:10px !important;
}
#s-login .content > div:last-child span:first-child {
  font-size:11px !important;
}
#s-login .content > div:last-child span:last-child {
  font-size:10px !important;
  color:#7d8982 !important;
  text-decoration:none !important;
}

/* ========== REGISTROS ========== */
#s-reg-cliente,
#s-reg-restaurante,
#s-reg-repartidor {
  background:#f5f7f6;
}
#s-reg-cliente .content,
#s-reg-restaurante .content,
#s-reg-repartidor .content {
  padding:16px 13px calc(30px + env(safe-area-inset-bottom)) !important;
}

/* Cada campo respira mejor y parece un formulario serio, no un listado crudo */
#s-reg-cliente .content > .fgroup,
#s-reg-restaurante .content > .fgroup,
#s-reg-repartidor .content > .fgroup {
  background:#fff;
  border:1px solid rgba(15,25,35,.055);
  border-radius:17px;
  padding:12px;
  margin-bottom:9px;
  box-shadow:0 3px 14px rgba(18,43,31,.035);
}

/* Evitar tarjeta dentro de tarjeta en grupos simples */
#s-reg-cliente .content > .fgroup:has(> .finput:only-child),
#s-reg-restaurante .content > .fgroup:has(> .finput:only-child),
#s-reg-repartidor .content > .fgroup:has(> .finput:only-child) {
  padding:12px;
}

/* Cliente: foto de perfil como avatar limpio */
#s-reg-cliente #c-foto-preview {
  width:88px !important;
  height:88px !important;
  margin:2px auto 5px !important;
  border-radius:28px !important;
  border:1.5px dashed #bcd4c5 !important;
  background:linear-gradient(145deg,#f4faf6,#e9f5ee) !important;
  color:var(--auth-green) !important;
  font-size:28px !important;
  box-shadow:0 7px 20px rgba(6,75,43,.07);
}

/* Subidas de fotos negocio/repartidor */
#s-reg-restaurante #foto-preview,
#s-reg-repartidor #rp-foto-preview,
#s-reg-repartidor #rp-cedula-foto-preview,
#s-reg-repartidor #rp-licencia-preview {
  height:132px !important;
  border-radius:16px !important;
  border:1.5px dashed #bfd0c6 !important;
  background:linear-gradient(145deg,#f8fbf9,#eef5f1) !important;
  box-shadow:none !important;
}

/* Bloques informativos existentes: convertirlos a tarjetas sobrias */
#s-reg-restaurante .content > div[style*="background:var(--verde3)"],
#s-reg-restaurante .content > div[style*="background:var(--amarillo2)"],
#s-reg-repartidor .content > div[style*="background:var(--verde3)"],
#s-reg-repartidor .content > div[style*="background:var(--amarillo2)"] {
  border-radius:17px !important;
  padding:13px !important;
  box-shadow:0 3px 14px rgba(18,43,31,.035);
  line-height:1.5 !important;
}

/* Pago móvil: aspecto de sección financiera */
#s-reg-restaurante .content > div[style*="background:var(--amarillo2)"]:has(#r-banco),
#s-reg-repartidor .content > div[style*="background:var(--amarillo2)"]:has(#rp-banco) {
  background:linear-gradient(145deg,#fffdf5,#fff9e8) !important;
  border:1px solid #efe1b2 !important;
  border-radius:19px !important;
  padding:14px !important;
}
#s-reg-restaurante .content > div[style*="background:var(--amarillo2)"]:has(#r-banco) .fgroup,
#s-reg-repartidor .content > div[style*="background:var(--amarillo2)"]:has(#rp-banco) .fgroup {
  margin-bottom:10px;
}

/* Horario */
#s-reg-restaurante .content > div:has(#r-hora-abre):has(#r-hora-cierra) {
  border:1px solid var(--auth-line) !important;
  border-radius:19px !important;
  padding:14px !important;
  box-shadow:0 3px 14px rgba(18,43,31,.035);
}

/* GPS como acción secundaria moderna */
#s-reg-cliente button[onclick*="capturarUbicacionExacta"],
#s-reg-restaurante button[onclick*="capturarUbicacionExacta"] {
  min-height:42px;
  margin-top:8px !important;
  border-radius:12px;
  background:#eff8f3 !important;
  border:1px solid #d4e8db !important;
  color:#176a42 !important;
  font-size:10.5px !important;
}

/* Términos */
#s-reg-cliente .content > div:has(#acepta-cliente),
#s-reg-restaurante .content > label:has(#acepta-restaurante),
#s-reg-repartidor .content > label:has(#acepta-repartidor) {
  background:#fff !important;
  border:1px solid var(--auth-line) !important;
  border-radius:17px !important;
  padding:13px !important;
  box-shadow:0 3px 14px rgba(18,43,31,.035);
  font-size:10.5px !important;
  line-height:1.5 !important;
  color:#69766f !important;
}
#s-reg-cliente #acepta-cliente,
#s-reg-restaurante #acepta-restaurante,
#s-reg-repartidor #acepta-repartidor {
  width:18px;height:18px;
  accent-color:var(--auth-green);
  flex:0 0 auto;
}

/* CTA final */
#s-reg-cliente .content > .btn:last-child,
#s-reg-restaurante .content > .btn:last-child,
#s-reg-repartidor .content > .btn:last-child {
  margin-top:5px;
  min-height:52px;
  position:relative;
}

/* Scroll y teclado */
#s-login.screen.active,
#s-tipo.screen.active,
#s-reg-cliente.screen.active,
#s-reg-restaurante.screen.active,
#s-reg-repartidor.screen.active {
  height:100dvh;
  min-height:100dvh;
  max-height:100dvh;
  overflow:hidden;
}
#s-login.screen.active > .content,
#s-tipo.screen.active > .content,
#s-reg-cliente.screen.active > .content,
#s-reg-restaurante.screen.active > .content,
#s-reg-repartidor.screen.active > .content {
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto !important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
}

/* Desktop: forma de panel móvil elegante */
@media (min-width:760px) {
  #s-login,
  #s-tipo,
  #s-reg-cliente,
  #s-reg-restaurante,
  #s-reg-repartidor {
    background:#eef2ef;
  }
  #s-login .bhdr,
  #s-tipo .bhdr,
  #s-reg-cliente .bhdr,
  #s-reg-restaurante .bhdr,
  #s-reg-repartidor .bhdr {
    width:560px;
    margin:20px auto 0;
    border-radius:24px 24px 0 0;
  }
  #s-login .content,
  #s-tipo .content,
  #s-reg-cliente .content,
  #s-reg-restaurante .content,
  #s-reg-repartidor .content {
    background:#f7f9f8;
    box-shadow:0 18px 60px rgba(20,45,32,.10);
    margin:0 auto 20px;
    border-radius:0 0 24px 24px;
  }
  #s-welcome .wbtns { width:410px; }
}

@media (max-width:380px) {
  #s-login .content,
  #s-tipo .content,
  #s-reg-cliente .content,
  #s-reg-restaurante .content,
  #s-reg-repartidor .content {
    padding-left:10px !important;
    padding-right:10px !important;
  }
  #s-tipo .tipo-card {
    min-height:88px;
    padding-left:12px;
    gap:10px;
  }
  #s-tipo .tipo-icon {
    width:47px;height:47px;border-radius:15px;
  }
}




/* ===== CHAMOGO AUTH — AJUSTE MOBILE-FIRST =====
   Optimizado para teléfonos. Mantiene la lógica intacta.
*/
@media (max-width: 759px) {

  /* Base */
  #s-login,
  #s-tipo,
  #s-reg-cliente,
  #s-reg-restaurante,
  #s-reg-repartidor {
    background:#f6f8f7 !important;
  }

  /* Headers más compactos */
  #s-login .bhdr,
  #s-tipo .bhdr,
  #s-reg-cliente .bhdr,
  #s-reg-restaurante .bhdr,
  #s-reg-repartidor .bhdr {
    min-height:58px !important;
    padding:calc(8px + env(safe-area-inset-top)) 12px 10px !important;
    border-radius:0 0 19px 19px !important;
    box-shadow:0 7px 18px rgba(6,52,33,.11) !important;
  }
  #s-login .bbtn,
  #s-tipo .bbtn,
  #s-reg-cliente .bbtn,
  #s-reg-restaurante .bbtn,
  #s-reg-repartidor .bbtn {
    width:32px !important;
    height:32px !important;
  }
  #s-login .bname,
  #s-tipo .bname,
  #s-reg-cliente .bname,
  #s-reg-restaurante .bname,
  #s-reg-repartidor .bname {
    font-size:14px !important;
  }
  #s-login .bmeta,
  #s-tipo .bmeta,
  #s-reg-cliente .bmeta,
  #s-reg-restaurante .bmeta,
  #s-reg-repartidor .bmeta {
    font-size:8.5px !important;
  }

  /* Contenedores */
  #s-login .content,
  #s-tipo .content,
  #s-reg-cliente .content,
  #s-reg-restaurante .content,
  #s-reg-repartidor .content {
    max-width:none !important;
    padding-left:10px !important;
    padding-right:10px !important;
  }

  /* Inputs más pequeños */
  #s-login .finput,
  #s-reg-cliente .finput,
  #s-reg-restaurante .finput,
  #s-reg-repartidor .finput {
    min-height:43px !important;
    padding:10px 11px !important;
    font-size:12px !important;
    border-radius:11px !important;
  }
  #s-login .flabel,
  #s-reg-cliente .flabel,
  #s-reg-restaurante .flabel,
  #s-reg-repartidor .flabel {
    font-size:8.5px !important;
    margin-bottom:4px !important;
  }
  #s-login .fgroup,
  #s-reg-cliente .fgroup,
  #s-reg-restaurante .fgroup,
  #s-reg-repartidor .fgroup {
    margin-bottom:9px !important;
  }

  /* Botones */
  #s-login .btn,
  #s-tipo .btn,
  #s-reg-cliente .btn,
  #s-reg-restaurante .btn,
  #s-reg-repartidor .btn {
    min-height:44px !important;
    padding:10px 12px !important;
    border-radius:12px !important;
    font-size:11.5px !important;
    box-shadow:0 5px 14px rgba(6,75,43,.12) !important;
  }

  /* Bienvenida */
  #s-welcome .welcome-screen {
    padding:calc(24px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom)) !important;
  }
  #s-welcome .wlogo img {
    width:min(225px,68vw) !important;
  }
  #s-welcome .wsub {
    margin:8px 0 22px !important;
    font-size:10px !important;
    letter-spacing:.06em !important;
  }
  #s-welcome .wbtns {
    width:100% !important;
    max-width:360px !important;
    padding:10px !important;
    border-radius:17px !important;
    gap:8px !important;
  }
  #s-welcome .wbtns .btn {
    min-height:45px !important;
    font-size:11.5px !important;
    border-radius:12px !important;
  }
  #s-welcome .wbtns > div:last-child {
    font-size:8.5px !important;
    padding-top:3px !important;
  }

  /* Selector tipo de usuario compacto */
  #s-tipo .content {
    padding-top:14px !important;
  }
  #s-tipo .content > p {
    font-size:9.5px !important;
    margin-bottom:11px !important;
  }
  #s-tipo .tipo-card {
    min-height:72px !important;
    padding:10px 36px 10px 10px !important;
    gap:10px !important;
    border-radius:14px !important;
    margin-bottom:7px !important;
    box-shadow:0 3px 11px rgba(18,43,31,.04) !important;
  }
  #s-tipo .tipo-card::after {
    right:12px !important;
    font-size:22px !important;
  }
  #s-tipo .tipo-icon {
    width:42px !important;
    height:42px !important;
    border-radius:13px !important;
  }
  #s-tipo .tipo-icon i {
    font-size:16px !important;
  }
  #s-tipo .tipo-info .tipo-nombre {
    font-size:12px !important;
  }
  #s-tipo .tipo-info .tipo-desc {
    font-size:9px !important;
    margin-top:2px !important;
    line-height:1.35 !important;
  }

  /* Login compacto */
  #s-login .content {
    padding-top:0 !important;
  }
  #s-login .content > div:first-child {
    margin:0 -10px 0 !important;
    padding:20px 16px 28px !important;
    border-radius:0 0 21px 21px !important;
  }
  #s-login .content > div:first-child img {
    width:145px !important;
    max-width:58% !important;
    margin-bottom:8px !important;
  }
  #s-login .content > div:first-child > div:nth-child(2) {
    font-size:15px !important;
  }
  #s-login .content > div:first-child > div:nth-child(3) {
    font-size:9px !important;
  }
  #s-login .fgroup:first-of-type {
    margin-top:-12px !important;
    padding-top:13px !important;
    border-radius:15px 15px 0 0 !important;
  }
  #s-login .fgroup {
    padding-left:10px !important;
    padding-right:10px !important;
  }
  #s-login .fgroup:nth-of-type(2) {
    padding-bottom:12px !important;
    border-radius:0 0 15px 15px !important;
  }
  #s-login .content > div:last-child span:first-child {
    font-size:9.5px !important;
  }
  #s-login .content > div:last-child span:last-child {
    font-size:8.5px !important;
  }

  /* Registros: tarjetas menos grandes */
  #s-reg-cliente .content,
  #s-reg-restaurante .content,
  #s-reg-repartidor .content {
    padding-top:10px !important;
  }
  #s-reg-cliente .content > .fgroup,
  #s-reg-restaurante .content > .fgroup,
  #s-reg-repartidor .content > .fgroup {
    border-radius:13px !important;
    padding:9px !important;
    margin-bottom:7px !important;
    box-shadow:0 2px 9px rgba(18,43,31,.03) !important;
  }

  /* Preview de fotos */
  #s-reg-cliente #c-foto-preview {
    width:70px !important;
    height:70px !important;
    border-radius:22px !important;
    font-size:23px !important;
  }
  #s-reg-restaurante #foto-preview,
  #s-reg-repartidor #rp-foto-preview,
  #s-reg-repartidor #rp-cedula-foto-preview,
  #s-reg-repartidor #rp-licencia-preview {
    height:105px !important;
    border-radius:13px !important;
  }

  /* Bloques secundarios */
  #s-reg-restaurante .content > div[style*="background:var(--verde3)"],
  #s-reg-restaurante .content > div[style*="background:var(--amarillo2)"],
  #s-reg-repartidor .content > div[style*="background:var(--verde3)"],
  #s-reg-repartidor .content > div[style*="background:var(--amarillo2)"] {
    padding:10px !important;
    border-radius:13px !important;
    font-size:9.5px !important;
  }

  #s-reg-restaurante .content > div[style*="background:var(--amarillo2)"]:has(#r-banco),
  #s-reg-repartidor .content > div[style*="background:var(--amarillo2)"]:has(#rp-banco),
  #s-reg-restaurante .content > div:has(#r-hora-abre):has(#r-hora-cierra) {
    padding:10px !important;
    border-radius:14px !important;
  }

  /* GPS y términos */
  #s-reg-cliente button[onclick*="capturarUbicacionExacta"],
  #s-reg-restaurante button[onclick*="capturarUbicacionExacta"] {
    min-height:38px !important;
    padding:8px 9px !important;
    font-size:9px !important;
    border-radius:10px !important;
  }
  #s-reg-cliente .content > div:has(#acepta-cliente),
  #s-reg-restaurante .content > label:has(#acepta-restaurante),
  #s-reg-repartidor .content > label:has(#acepta-repartidor) {
    padding:10px !important;
    border-radius:13px !important;
    font-size:9px !important;
    line-height:1.4 !important;
  }

  /* Botón final */
  #s-reg-cliente .content > .btn:last-child,
  #s-reg-restaurante .content > .btn:last-child,
  #s-reg-repartidor .content > .btn:last-child {
    min-height:46px !important;
    margin-top:3px !important;
  }
}

@media (max-width: 360px) {
  #s-welcome .wlogo img { width:200px !important; }
  #s-tipo .tipo-card { min-height:68px !important; }
  #s-tipo .tipo-icon { width:39px !important; height:39px !important; }
  #s-login .content > div:first-child img { width:130px !important; }
  #s-reg-restaurante #foto-preview,
  #s-reg-repartidor #rp-foto-preview,
  #s-reg-repartidor #rp-cedula-foto-preview,
  #s-reg-repartidor #rp-licencia-preview { height:94px !important; }
}




/* Acceso web en iPhone; no autentica con Apple. */
.acceso-iphone{margin:12px 0;border:1px solid #dfe8e2;border-radius:14px;background:#f5f8f6;color:#173c2b;text-align:left;overflow:hidden}
.acceso-iphone>summary{display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 13px;cursor:pointer;font-size:13px;font-weight:750;list-style:none}
.acceso-iphone>summary::-webkit-details-marker{display:none}
.acceso-iphone>summary i{font-size:21px;color:#17251d}.acceso-iphone>summary span:last-child{margin-left:auto}.acceso-iphone[open]>summary{border-bottom:1px solid #dfe8e2}
.acceso-iphone-pasos{padding:2px 14px 10px;font-size:12px;line-height:1.55}.acceso-iphone-pasos ol{padding-left:19px}.acceso-iphone-pasos li{margin:9px 0}.acceso-iphone-pasos a{color:#15623d;font-weight:750}.acceso-iphone summary:focus-visible{outline:2px solid #24764e;outline-offset:-3px}

/* Acceso Google con marca propia y formulario de perfil existente. */
.acceso-google{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:44px;margin:12px 0;padding:10px 14px;border:1px solid #c4c7c5;border-radius:12px;background:#fff;color:#1f1f1f;font:600 14px Arial,sans-serif;cursor:pointer}.acceso-google svg{flex-shrink:0}.acceso-google:disabled{opacity:.65;cursor:wait}.acceso-google:focus-visible{outline:2px solid #4285f4;outline-offset:2px}.acceso-google-web{font-size:12px;color:#54625b;text-align:center}.registro-google-info{font-size:12px;line-height:1.5;padding:12px;border-radius:12px;background:#edf6ef;color:#19492d;margin:12px 0}.registro-google-info button{display:block;background:none;border:0;text-decoration:underline;color:inherit;padding:8px 0;font:inherit;font-weight:700;cursor:pointer}#s-reg-cliente .fgroup[hidden],.registro-google-info[hidden],.acceso-google-web[hidden]{display:none!important}

.acceso-correo-separador{display:flex;align-items:center;gap:10px;margin:18px 0;color:var(--texto2,#617168);font-size:11px;text-align:center}.acceso-correo-separador:before,.acceso-correo-separador:after{content:"";height:1px;background:#dfe7e1;flex:1}

.acceso-opciones-extra{display:grid;gap:8px;margin-top:18px}.acceso-opciones-extra .invitado-seguir{justify-self:center}

/* Pantalla única de acceso: estructura compacta, sin tarjetas anidadas. */
#s-login{background:#f5f7f5}
#s-login .bhdr{width:100%;max-width:480px;min-height:54px!important;margin:0 auto!important;padding:calc(10px + env(safe-area-inset-top)) 18px 8px!important;background:transparent!important;border-radius:0!important;box-shadow:none!important;color:#173b2b;gap:10px}
#s-login .bhdr:before{display:none}
#s-login .bhdr .bbtn{width:34px!important;height:34px!important;background:#fff;border:1px solid #e1e9e3;color:#254d38;border-radius:50%;flex-shrink:0}
#s-login .bhdr .bname{color:#254d38;font-size:13px!important;font-weight:700}
#s-login .acceso-marca{margin-left:auto;font-size:12px;font-weight:800;letter-spacing:-.3px;color:#436450}
#s-login .content.acceso-contenido{width:100%;max-width:440px!important;padding:4px 18px calc(20px + env(safe-area-inset-bottom))!important;margin:0 auto;background:transparent!important;border-radius:0!important;box-shadow:none!important}
#s-login .acceso-presentacion{text-align:center;padding:10px 0 20px}
#s-login .acceso-logo{display:grid;place-items:center;width:64px;height:60px;margin:0 auto 12px;background:#eaf2ec;border:1px solid #e0eae2;border-radius:20px}
#s-login .acceso-logo img{display:block;width:47px;height:40px;object-fit:contain;filter:none}
#s-login .acceso-presentacion h1{margin:0;font-size:23px;font-weight:800;letter-spacing:-.8px;line-height:1.2;color:#173b2b}
#s-login .acceso-presentacion p{margin:7px 0 0;font-size:12px;line-height:1.5;color:#728076}
#s-login .acceso-panel{padding:16px;background:#fff;border:1px solid #e3eae5;border-radius:22px;box-shadow:0 8px 30px rgba(22,62,38,.035)}
#s-login .acceso-google{margin:0;min-height:44px;border:1px solid #dce4df;border-radius:12px;font-size:13px;font-weight:600;box-shadow:none}
#s-login .acceso-iphone{margin:9px 0 0;border:1px solid #e7ece8;border-radius:12px;background:#f6f8f6}
#s-login .acceso-iphone>summary{min-height:41px;padding:9px 12px;font-size:12px;font-weight:650;gap:10px}
#s-login .acceso-iphone>summary i{font-size:19px}
#s-login .acceso-correo-separador{margin:16px 0;font-size:10px;color:#8a958e}
#s-login .acceso-form .fgroup{margin:0 0 12px!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important}
#s-login .acceso-form .flabel{display:block;margin:0 0 6px!important;font-size:11px!important;line-height:1.3;font-weight:650;letter-spacing:0;text-transform:none;color:#52665a}
#s-login .acceso-form .finput{width:100%;min-height:45px!important;padding:10px 12px!important;border:1px solid #e2e8e3;border-radius:11px;background:#f8faf8;font-size:16px!important;font-weight:500;box-shadow:none}
#s-login .acceso-form .finput::placeholder{font-size:12px;color:#9ba79e}
#s-login .acceso-recuperar{display:block;margin:-1px 0 14px auto;padding:0;background:none;border:0;font:inherit;font-size:10px;font-weight:600;color:#467156;cursor:pointer}
#s-login .btn.acceso-entrar{display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px!important;margin:0!important;border:0;border-radius:12px;background:#075333;font-size:13px!important;font-weight:750;box-shadow:0 4px 10px rgba(7,83,51,.10)}
#s-login .acceso-entrar span{font-size:18px;font-weight:400}
#s-login .acceso-registro{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;margin:16px 0 0;font-size:11px;color:#8a968d}
#s-login .acceso-registro button{padding:3px 0;border:0;background:none;color:#175d39;font:inherit;font-weight:750;cursor:pointer}
#s-login .acceso-colaboradores{margin-top:17px}
#s-login .acceso-colaboradores>p{margin:0 0 9px;text-align:center;font-size:10px;color:#7f8d83}
#s-login .acceso-roles{display:grid;grid-template-columns:1fr 1fr;gap:9px}
#s-login .acceso-roles button{display:flex;align-items:center;gap:9px;min-height:60px;padding:11px;border:1px solid #dfe9e1;border-radius:14px;background:#edf4ef;color:#234e35;text-align:left;font:inherit;font-size:11px;font-weight:700;cursor:pointer;line-height:1.4}
#s-login .acceso-roles button i{font-size:17px;color:#4a795a}
#s-login .acceso-roles button>span:last-child{margin-left:auto;font-weight:500;color:#789181;font-size:14px}
#s-login .acceso-pie{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:14px 1px 0}
#s-login .acceso-pie button{padding:6px 0;border:0;background:none;font:inherit;font-size:10px;font-weight:600;color:#7b8a7e;cursor:pointer}
#s-login .acceso-pie .invitado-seguir{color:#426d50}
#s-login button:focus-visible,#s-login summary:focus-visible{outline:2px solid #4a8a5d;outline-offset:3px}
@media(max-width:360px){#s-login .content.acceso-contenido{padding-left:13px!important;padding-right:13px!important}#s-login .acceso-panel{padding:14px}#s-login .acceso-presentacion{padding:6px 0 15px}#s-login .acceso-presentacion h1{font-size:21px}#s-login .acceso-roles button{gap:7px;padding:9px;font-size:10px}}

/* Marca anterior: M original sobre el verde de ChamoGo. */
#s-login .acceso-logo{width:86px;height:66px;background:#075333;border-color:#075333;border-radius:19px}#s-login .acceso-logo img{width:64px;height:40px;max-width:none;object-fit:contain}

#s-login .acceso-web-oficial{display:flex;align-items:center;justify-content:center;gap:8px;margin:12px 0 0;padding:10px;border:1px solid #e0e8e2;border-radius:12px;background:#fff;color:#356047;font-size:12px;font-weight:650;text-decoration:none}#s-login .acceso-web-oficial>span:last-child{font-size:14px;color:#7a9582}#s-login .acceso-web-oficial:focus-visible{outline:2px solid #4a8a5d;outline-offset:3px}
