/* Letras del formato incluidas en la app (Android no trae Calibri ni Verdana): vista previa y sello de las fotos */
@font-face{font-family:"Carlito";src:url(../fonts/carlito.ttf) format("truetype");font-weight:400 600;font-display:swap}
@font-face{font-family:"Carlito";src:url(../fonts/carlito-b.ttf) format("truetype");font-weight:700 900;font-display:swap}
@font-face{font-family:"DejaVu Sans";src:url(../fonts/dejavu.ttf) format("truetype");font-weight:400 600;font-display:swap}
@font-face{font-family:"DejaVu Sans";src:url(../fonts/dejavu-b.ttf) format("truetype");font-weight:700 900;font-display:swap}
:root{
  --navy:#0a1a33; --navy-2:#11284d; --azul:#1652d8; --azul-2:#0e3ea8; --azul-suave:#e8efff;
  --verde:#1f9d45; --verde-2:#167a35; --verde-suave:#e4f5e9;
  --fondo:#f2f5f9; --tarjeta:#fff; --texto:#13233a; --muted:#5b6c80; --borde:#d8e0ea; --borde-2:#c3cfdc;
  --rojo:#c3313d; --rojo-suave:#fdecee; --ambar:#a86400; --ambar-suave:#fff4e0;
  --radio:16px; --sombra:0 1px 2px rgba(10,26,51,.06),0 6px 20px rgba(10,26,51,.06);
  --barra-alto:60px; --seguro-abajo:env(safe-area-inset-bottom,0px);
  color-scheme:light;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0}
body{background:var(--fondo);color:var(--texto);font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;min-height:100dvh;overscroll-behavior-y:contain}
img{display:block;max-width:100%}
button,input,textarea,select{font:inherit;color:inherit}
a{color:var(--azul)}
[hidden]{display:none!important}
svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- Barra superior ---------- */
.barra{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;height:calc(var(--barra-alto) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 12px 0;background:linear-gradient(100deg,var(--navy),var(--navy-2));color:#fff;box-shadow:0 2px 12px rgba(0,0,0,.18)}
.barra::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--azul),var(--verde))}
.marca{display:flex;align-items:center;gap:9px;text-decoration:none;color:#fff;min-width:0}
.marca img{width:38px;height:38px;border-radius:10px;background:#fff;object-fit:cover}
.marca-texto{display:flex;align-items:baseline;gap:1px;font-weight:900;letter-spacing:-.3px;font-size:21px;white-space:nowrap}
.marca-texto .g{color:#5b8cff}.marca-texto .p{color:#4cd46b}
.marca-texto small{margin-left:6px;font-size:10px;letter-spacing:2.5px;color:#b9c7dc;font-weight:700}
.barra-atras{display:grid;place-items:center;width:40px;height:40px;margin-left:-6px;border:0;border-radius:12px;background:transparent;color:#fff;cursor:pointer}
.barra-atras:active{background:rgba(255,255,255,.12)}
.barra-der{margin-left:auto;display:flex;align-items:center;gap:6px}
.icono{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:#fff}
.icono:active{background:rgba(255,255,255,.12)}
.chip-lic{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#dfe8f5;font-size:11px;font-weight:800;letter-spacing:.8px;padding:6px 10px;border-radius:999px;cursor:pointer;text-transform:uppercase}
.chip-lic.ok{border-color:rgba(76,212,107,.55);color:#9ff0b3}
.chip-lic.demo{border-color:rgba(255,196,84,.6);color:#ffd88a}
.chip-lic.mal{border-color:rgba(255,120,120,.6);color:#ffb3b3}

/* ---------- Contenido ---------- */
main{max-width:980px;margin:0 auto;padding:18px 16px calc(120px + var(--seguro-abajo));outline:none}
h1{font-size:26px;line-height:1.15;letter-spacing:-.6px;margin:6px 0 4px}
h2{font-size:18px;letter-spacing:-.3px;margin:26px 0 10px}
.sub{color:var(--muted);margin:0 0 14px}
.cargando{display:grid;place-items:center;min-height:50vh}
.giro{width:34px;height:34px;border-radius:50%;border:3px solid var(--borde);border-top-color:var(--azul);animation:giro .8s linear infinite}
@keyframes giro{to{transform:rotate(360deg)}}

.tarjeta{background:var(--tarjeta);border:1px solid var(--borde);border-radius:var(--radio);box-shadow:var(--sombra);padding:16px}
.lista{display:grid;gap:12px}
@media(min-width:720px){.lista.dos{grid-template-columns:1fr 1fr}}

/* Tarjeta de obra */
.obra{display:flex;gap:14px;align-items:center;text-decoration:none;color:inherit;padding:12px;transition:transform .12s}
.obra:active{transform:scale(.99)}
.obra .portada{width:76px;height:76px;border-radius:12px;background:var(--azul-suave) center/cover no-repeat;flex:none;display:grid;place-items:center;color:var(--azul)}
.obra .portada svg{width:30px;height:30px}
.obra h3{margin:0 0 2px;font-size:17px;letter-spacing:-.2px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.obra p{margin:0;color:var(--muted);font-size:14px}
.contadores{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--azul-2);background:var(--azul-suave);border-radius:999px;padding:3px 9px}
.pill.verde{color:var(--verde-2);background:var(--verde-suave)}
.pill.ambar{color:var(--ambar);background:var(--ambar-suave)}
.pill svg{width:13px;height:13px}
.flecha{margin-left:auto;color:var(--borde-2)}

/* Vacio */
.vacio{text-align:center;padding:30px 18px 26px}
.vacio img{width:180px;margin:0 auto 10px;border-radius:20px}
.vacio h2{margin:6px 0}
.vacio p{color:var(--muted);max-width:34ch;margin:0 auto 18px}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:13px;border:1px solid var(--borde-2);background:#fff;color:var(--texto);font-weight:700;font-size:15px;cursor:pointer;text-decoration:none;user-select:none;transition:background .12s,transform .08s}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.5;pointer-events:none}
.btn.prim{background:var(--azul);border-color:var(--azul);color:#fff;box-shadow:0 4px 14px rgba(22,82,216,.25)}
.btn.prim:active{background:var(--azul-2)}
.btn.verde{background:var(--verde);border-color:var(--verde);color:#fff;box-shadow:0 4px 14px rgba(31,157,69,.25)}
.btn.peligro{color:var(--rojo);border-color:#efc8cd;background:var(--rojo-suave)}
.btn.texto{border-color:transparent;background:transparent;color:var(--azul);padding:0 10px}
.btn.chico{min-height:38px;padding:0 12px;font-size:14px;border-radius:11px}
.btn.ancho{width:100%}
.fila{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.fila>.btn{flex:1 1 auto}

.fab{position:fixed;right:18px;bottom:calc(22px + var(--seguro-abajo));z-index:15;border-radius:18px;min-height:56px;padding:0 22px;font-size:16px}

/* Avisos */
.aviso{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:14px;border:1px solid;margin:0 0 14px;font-size:14px}
.aviso svg{margin-top:1px}
.aviso.info{background:var(--azul-suave);border-color:#c9d8fb;color:#163a8f}
.aviso.ambar{background:var(--ambar-suave);border-color:#f3d7a6;color:#6d4300}
.aviso.rojo{background:var(--rojo-suave);border-color:#efc3c8;color:#8a1d27}
.aviso b{display:block}
.aviso .btn{margin-top:8px}

/* Cabecera de obra / informe */
.cabecera{padding:18px}
.cabecera .tipo{font-size:11px;font-weight:800;letter-spacing:1.6px;color:var(--verde-2);text-transform:uppercase}
.datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 16px;margin:12px 0 4px;font-size:14px}
.datos div{min-width:0}
.datos span{display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.datos b{font-weight:600;overflow-wrap:anywhere}
.acciones{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}

/* Informe en lista */
.informe{display:block;text-decoration:none;color:inherit;padding:14px}
.informe .top{display:flex;align-items:center;gap:10px}
.informe .num{display:grid;place-items:center;min-width:44px;height:44px;border-radius:12px;background:var(--navy);color:#fff;font-weight:800;font-size:16px;padding:0 6px}
.informe h3{margin:0;font-size:16px}
.informe p{margin:0;color:var(--muted);font-size:13px}
.tira{display:flex;gap:6px;margin-top:10px;overflow:hidden}
.tira img{width:56px;height:56px;border-radius:9px;object-fit:cover;background:var(--acero,#e9eef4)}
.tira .mas{display:grid;place-items:center;width:56px;height:56px;border-radius:9px;background:var(--azul-suave);color:var(--azul-2);font-weight:800;font-size:14px}

/* Fotos */
.fotos{display:grid;gap:14px}
@media(min-width:760px){.fotos{grid-template-columns:1fr 1fr}.fotos .par{grid-column:1/-1}}
.foto{padding:0;overflow:hidden}
.foto .lado{position:relative}
.foto .lienzo{position:relative;background:#e7ecf2;aspect-ratio:4/3;cursor:zoom-in;overflow:hidden}
.foto .lienzo img{width:100%;height:100%;object-fit:contain}
.etq{position:absolute;left:10px;top:10px;background:rgba(10,26,51,.82);color:#fff;font-weight:800;font-size:13px;border-radius:9px;padding:4px 9px;backdrop-filter:blur(4px)}
.etq.antes{background:rgba(195,49,61,.9)}.etq.despues{background:rgba(31,157,69,.92)}
.sello-prev{position:absolute;left:0;right:0;bottom:0;padding:18px 10px 7px;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;font-size:11.5px;font-weight:600;line-height:1.3;text-shadow:0 1px 2px rgba(0,0,0,.6);pointer-events:none}
.metas{display:flex;gap:6px;flex-wrap:wrap;padding:10px 12px 0}
.meta{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);background:#f1f4f8;border-radius:8px;padding:3px 8px}
.meta svg{width:13px;height:13px}
.meta.sin{color:var(--ambar);background:var(--ambar-suave)}
.obs{padding:8px 12px 0}
.obs label{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:5px}
textarea,input[type=text],input[type=search],input[type=tel],input[type=email],input[type=date],input[type=number],select{width:100%;border:1px solid var(--borde-2);border-radius:12px;background:#fbfcfe;padding:12px 13px;font-size:16px;line-height:1.4;outline:none;transition:border-color .12s,box-shadow .12s}
textarea{min-height:84px;resize:vertical}
textarea:focus,input:focus,select:focus{border-color:var(--azul);box-shadow:0 0 0 3px rgba(22,82,216,.14);background:#fff}
.mic{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--borde-2);background:#fff;color:var(--azul-2);font-size:12px;font-weight:800;border-radius:999px;padding:4px 10px;cursor:pointer;text-transform:none;letter-spacing:0}
.mic svg{width:15px;height:15px}
.mic.oyendo{background:var(--rojo);border-color:var(--rojo);color:#fff;animation:pulso 1.2s ease-in-out infinite}
@keyframes pulso{50%{box-shadow:0 0 0 6px rgba(195,49,61,.18)}}
.herr{display:flex;gap:6px;padding:10px 12px 12px;align-items:center}
.herr .btn{min-height:40px;padding:0 12px;font-size:14px}
.herr .der{margin-left:auto}
.par .lados{display:grid;grid-template-columns:1fr 1fr}
.par .lado+.lado{border-left:1px solid var(--borde)}
@media(max-width:520px){.par .lados{grid-template-columns:1fr}.par .lado+.lado{border-left:0;border-top:1px solid var(--borde)}}
.hueco{display:grid;place-items:center;gap:6px;aspect-ratio:4/3;background:repeating-linear-gradient(45deg,#f4f7fb,#f4f7fb 12px,#eef2f7 12px,#eef2f7 24px);color:var(--verde-2);font-weight:800;border:0;width:100%;cursor:pointer}
.hueco svg{width:34px;height:34px}

/* Barra inferior de captura */
.captura{position:fixed;left:0;right:0;bottom:0;z-index:15;padding:10px 12px calc(10px + var(--seguro-abajo));background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-top:1px solid var(--borde);box-shadow:0 -6px 20px rgba(10,26,51,.08)}
.captura .in{max-width:980px;margin:0 auto;display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:8px}
.captura .btn{min-height:54px;flex-direction:column;gap:2px;font-size:12.5px;padding:0 6px}
.captura .btn svg{width:24px;height:24px}

/* Modal (hoja inferior) */
dialog.hoja{border:0;padding:0;width:100%;max-width:620px;max-height:92dvh;margin:auto auto 0;border-radius:22px 22px 0 0;background:#fff;color:var(--texto);box-shadow:0 -10px 40px rgba(0,0,0,.25)}
@media(min-width:700px){dialog.hoja{margin:auto;border-radius:22px}}
dialog.hoja::backdrop{background:rgba(6,16,32,.55);backdrop-filter:blur(2px)}
dialog.hoja[open]{animation:sube .22s ease-out}
@keyframes sube{from{transform:translateY(30px);opacity:.4}}
.mcab{position:sticky;top:0;background:#fff;z-index:2;display:flex;align-items:center;gap:10px;padding:16px 18px 12px;border-bottom:1px solid var(--borde)}
.mcab h2{margin:0;font-size:19px}
.mcab .cerrar{margin-left:auto;width:38px;height:38px;border-radius:12px;border:0;background:#f1f4f8;display:grid;place-items:center;cursor:pointer}
.mcuerpo{padding:14px 18px 8px;overflow:auto}
.mpie{position:sticky;bottom:0;background:#fff;padding:12px 18px calc(14px + var(--seguro-abajo));border-top:1px solid var(--borde);display:flex;gap:10px}
.mpie .btn{flex:1}
.campo{margin:0 0 14px}
.campo>label{display:block;font-size:13px;font-weight:800;color:#33465d;margin:0 0 6px}
.campo small{display:block;color:var(--muted);font-size:12.5px;margin-top:5px}
.req::after{content:" *";color:var(--rojo)}
.grupo{border:1px solid var(--borde);border-radius:14px;padding:12px 14px;margin:6px 0 16px}
.grupo>legend{font-size:12px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--verde-2);padding:0 6px}
.dos-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.interruptor{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;font-weight:600;font-size:15px;cursor:pointer}
.interruptor+.interruptor{border-top:1px dashed var(--borde)}
.interruptor input{appearance:none;width:46px;height:28px;border-radius:999px;background:#cfd8e3;position:relative;flex:none;cursor:pointer;transition:background .15s}
.interruptor input::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.interruptor input:checked{background:var(--verde)}
.interruptor input:checked::after{transform:translateX(18px)}
.opciones{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.opcion{position:relative}
.opcion input{position:absolute;opacity:0}
.opcion span{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;border:2px solid var(--borde);border-radius:14px;font-weight:800;font-size:14px;cursor:pointer}
.opcion input:checked+span{border-color:var(--azul);background:var(--azul-suave);color:var(--azul-2)}
.opcion i{display:grid;grid-template-columns:1fr 1fr;gap:3px;width:34px}
.opcion i b{display:block;height:9px;background:currentColor;opacity:.55;border-radius:2px}
.logo-prev{display:flex;align-items:center;gap:12px}
.logo-prev .caja{width:84px;height:56px;border:1px dashed var(--borde-2);border-radius:10px;display:grid;place-items:center;background:#fafbfd center/contain no-repeat;color:var(--muted);font-size:11px}
.resultado{text-align:center;padding:8px 0 4px}
.resultado .ico{width:64px;height:64px;margin:4px auto 10px;border-radius:20px;display:grid;place-items:center;background:var(--verde-suave);color:var(--verde-2)}
.resultado .ico svg{width:34px;height:34px}
.resultado h3{margin:0 0 4px;font-size:19px}
.resultado p{margin:0 0 16px;color:var(--muted);font-size:14px}
.pila{display:grid;gap:10px}
.barra-prog{height:8px;border-radius:999px;background:#e6ebf2;overflow:hidden;margin:16px 0 8px}
.barra-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--azul),var(--verde));transition:width .2s}
.whatsapp{background:#1faa53;border-color:#1faa53;color:#fff;box-shadow:0 4px 14px rgba(31,170,83,.25)}

/* Visor */
dialog.visor{border:0;padding:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;background:#000}
dialog.visor::backdrop{background:#000}
.visor .v-escena{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:70px 84px 104px}
.visor img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.5);transition:opacity .15s;user-select:none;-webkit-user-drag:none}
.visor .v-arriba{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top,0px)) 12px 12px 18px;background:linear-gradient(rgba(0,0,0,.55),transparent);color:#fff;pointer-events:none}
.visor .v-arriba>*{pointer-events:auto}
.visor .v-cont{font-weight:800;font-size:14px;letter-spacing:.5px}
.visor .v-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(6px)}
.visor .v-nav:hover{background:rgba(255,255,255,.28)}
.visor .v-nav svg{width:26px;height:26px}
.visor .v-ant{left:14px}.visor .v-sig{right:14px}
.visor .v-pie{position:absolute;left:0;right:0;bottom:0;padding:28px 18px calc(16px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;font-size:14px;line-height:1.4;max-height:40%;overflow:auto}
.visor .v-pie b{display:block;font-size:15px;margin-bottom:2px}
.visor .v-obs{color:#dbe3ec}
@media(max-width:600px){.visor .v-escena{padding:60px 0 96px}.visor img{border-radius:0}.visor .v-nav{width:44px;height:44px;background:rgba(0,0,0,.35)}.visor .v-ant{left:8px}.visor .v-sig{right:8px}}
.visor .cerrar{width:44px;height:44px;border-radius:14px;border:0;background:rgba(255,255,255,.16);color:#fff;display:grid;place-items:center;cursor:pointer}

/* Ajustes */
.ajuste{display:flex;gap:12px;align-items:center;padding:14px 0}
.ajuste+.ajuste{border-top:1px solid var(--borde)}
.ajuste .tx{flex:1;min-width:0}
.ajuste .tx b{display:block}
.ajuste .tx span{color:var(--muted);font-size:13.5px}
.ajuste .ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--azul-suave);color:var(--azul-2);flex:none}
.ajuste .ic.v{background:var(--verde-suave);color:var(--verde-2)}
.licencia-ok{display:flex;gap:14px;align-items:center}
.licencia-ok .ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--verde-suave);color:var(--verde-2)}
.medidor{height:10px;border-radius:999px;background:#e6ebf2;overflow:hidden;margin:8px 0 4px}
.medidor i{display:block;height:100%;background:var(--azul)}
.pie-app{text-align:center;color:var(--muted);font-size:12.5px;margin:30px 0 0}
.pie-app img{width:120px;margin:0 auto 8px;border-radius:14px}

/* Toasts */
#toasts{position:fixed;left:0;right:0;bottom:calc(92px + var(--seguro-abajo));z-index:60;display:grid;justify-items:center;gap:8px;pointer-events:none;padding:0 14px}
.toast{pointer-events:auto;max-width:520px;background:var(--navy);color:#fff;border-radius:14px;padding:12px 16px;font-size:14.5px;box-shadow:0 10px 30px rgba(0,0,0,.25);display:flex;gap:12px;align-items:center;animation:sube .2s ease-out}
.toast.error{background:#8a1d27}
.toast button{border:0;background:rgba(255,255,255,.16);color:#fff;font-weight:800;border-radius:9px;padding:7px 11px;cursor:pointer}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media(max-width:380px){.marca-texto{font-size:18px}.marca-texto small{display:none}.marca img{width:34px;height:34px}.chip-lic{padding:5px 8px;font-size:10px}}
.sync-barra{display:flex;align-items:center;gap:12px;padding:12px 14px;margin:0 0 14px}
.sync-barra>svg{width:28px;height:28px;color:var(--azul);flex:none}
.sync-barra div{flex:1;min-width:0}.sync-barra b{display:block;font-size:14.5px}.sync-barra span{color:var(--muted);font-size:13px}
.sync-barra.pend{border-color:#f3d7a6;background:var(--ambar-suave)}.sync-barra.pend>svg{color:var(--ambar)}
.enc-fila{display:grid;grid-template-columns:1fr 1.4fr auto;gap:8px;margin-bottom:8px}
.enc-fila input{padding:10px 11px;font-size:15px}
.enc-fila .btn{min-height:44px;padding:0 10px}
@media(max-width:480px){.enc-fila{grid-template-columns:1fr auto}.enc-fila .e-v{grid-column:1}.enc-fila .btn{grid-row:1/3;grid-column:2}}
.lista-inf{border:1px solid var(--borde);border-radius:14px;padding:2px 14px;max-height:260px;overflow:auto}

/* ---------- Boton sincronizar (barra) ---------- */
.icono.sync{position:relative;border:0;background:transparent;cursor:pointer;color:#b9c7dc}
.icono.sync svg{width:20px;height:20px}
.icono.sync .punto{position:absolute;top:8px;right:7px;width:9px;height:9px;border-radius:50%;background:#ffb020;border:2px solid var(--navy);display:none}
.icono.sync.pend{color:#fff}
.icono.sync.pend .punto{display:block;animation:latido 1.8s ease-in-out infinite}
.icono.sync.girando svg{animation:giro 1s linear infinite;color:#9ff0b3}
@keyframes latido{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,176,32,.6)}50%{transform:scale(1.15);box-shadow:0 0 0 5px rgba(255,176,32,0)}}

/* ---------- Inicio ---------- */
.hero{position:relative;overflow:hidden;border-radius:22px;padding:20px 20px 18px;margin:0 0 16px;color:#fff;
  background:radial-gradient(120% 140% at 100% 0%,rgba(76,212,107,.28),transparent 55%),radial-gradient(90% 120% at 0% 100%,rgba(91,140,255,.35),transparent 60%),linear-gradient(135deg,var(--navy),#123468);box-shadow:0 10px 30px rgba(10,26,51,.18)}
.hero::after{content:"";position:absolute;right:-30px;top:-30px;width:150px;height:150px;border-radius:50%;border:18px solid rgba(255,255,255,.05)}
.hero-fecha{font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:#9fb4d4}
.hero h1{margin:4px 0 4px;font-size:25px;letter-spacing:-.5px;color:#fff}
.hero p{margin:0;color:#d4def0;font-size:14.5px;max-width:46ch}.hero p b{color:#9ff0b3}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px;position:relative;z-index:1}
.kpis>*{display:block;text-align:left;font:inherit;color:inherit;text-decoration:none;cursor:pointer;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:10px 12px;transition:background .15s,transform .15s}
.kpis>*{position:relative}.kpi-ir{position:absolute;top:6px;right:10px;font-style:normal;font-size:20px;line-height:1;color:rgba(255,255,255,.55);font-weight:700}
.kpis>*:hover{background:rgba(255,255,255,.16)}.kpis>*:active{transform:scale(.97)}
.kpis b{display:block;font-size:22px;line-height:1.1;letter-spacing:-.5px}
.kpis span{font-size:11.5px;color:#b9c7dc;font-weight:700;text-transform:uppercase;letter-spacing:.6px}

.continuar{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--borde);border-radius:var(--radio);box-shadow:var(--sombra);padding:10px;margin-bottom:6px;transition:transform .12s}
.continuar:active{transform:scale(.99)}
.cont-img{width:64px;height:64px;border-radius:12px;background:var(--azul-suave) center/cover no-repeat;flex:none}
.cont-txt{flex:1;min-width:0}.cont-txt .eti{font-size:11px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;color:var(--verde-2)}
.cont-txt h3{margin:2px 0 1px;font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cont-txt p{margin:0;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cont-ir{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--azul);color:#fff;flex:none;box-shadow:0 4px 14px rgba(22,82,216,.3)}

h2.sec{margin:22px 0 10px}
.sec-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 10px}.sec-cab h2.sec{margin:0}
.sec-cab .btn{min-height:38px;font-size:13.5px;padding:0 12px}.sec-cab .btn svg{width:17px;height:17px}
.recientes{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px;margin:0 -16px;padding-left:16px;padding-right:16px;scrollbar-width:none}
.recientes::-webkit-scrollbar{display:none}
.recientes a{flex:none;scroll-snap-align:start}
.recientes img{width:84px;height:84px;border-radius:14px;object-fit:cover;background:#e9eef4;box-shadow:0 2px 8px rgba(10,26,51,.1)}
.buscador{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--borde-2);border-radius:13px;padding:0 12px;margin-bottom:12px;color:var(--muted)}
.buscador input{border:0;background:transparent;box-shadow:none!important;padding:11px 0;flex:1;min-width:0;outline:none;font-size:16px}

.obra-card{display:block;padding:0;overflow:hidden;text-decoration:none;color:inherit;transition:transform .12s,box-shadow .12s}
.obra-card:active{transform:scale(.99)}
@media(hover:hover){.obra-card:hover{box-shadow:0 2px 4px rgba(10,26,51,.06),0 12px 28px rgba(10,26,51,.12)}}
.mosaico{display:grid;gap:2px;height:120px;background:linear-gradient(135deg,var(--azul-suave),#eef6f0)}
.mosaico i{background:#dfe6ee center/cover no-repeat}
.mosaico.n2{grid-template-columns:1fr 1fr}
.mosaico.n3{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}.mosaico.n3 i:first-child{grid-row:1/3}
.mosaico span{display:grid;place-items:center;color:var(--azul)}.mosaico span svg{width:38px;height:38px;opacity:.6}
.obra-info{padding:12px 14px 14px}
.obra-info h3{margin:0 0 2px;font-size:16.5px;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.obra-info p{margin:0;color:var(--muted);font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.rasgos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:14px 0}
.rasgos div{background:#fff;border:1px solid var(--borde);border-radius:14px;padding:14px}
.rasgos svg{color:var(--verde);width:26px;height:26px;margin-bottom:6px}
.rasgos b{display:block;font-size:15px}.rasgos span{color:var(--muted);font-size:13.5px}

/* ---------- Formato de informes ---------- */
.enlace-formato{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1px solid #c9d8fb;background:var(--azul-suave);color:#163a8f;border-radius:14px;padding:12px 14px;cursor:pointer;margin:4px 0 6px}
.enlace-formato>svg:first-child{width:26px;height:26px;color:var(--azul)}
.enlace-formato span{flex:1;font-size:13px}.enlace-formato b{display:block;font-size:14.5px;color:var(--texto)}
.nota-form{margin:0 0 12px;color:var(--muted);font-size:14px}
.etq-mini{display:block;font-size:13px;font-weight:800;color:#33465d;margin:4px 0 6px}
.ayuda{display:block;color:var(--muted);margin-top:8px;font-size:12.5px}
.enc-fila.uno{grid-template-columns:1fr auto auto}
@media(max-width:480px){.enc-fila.uno{grid-template-columns:1fr auto auto}.enc-fila.uno .btn{grid-row:auto;grid-column:auto}}
#fObra textarea.e-v{resize:vertical;min-height:46px}
@media(max-width:560px){.solo-pc{display:none}}

/* ---------- Hoja vertical / horizontal ---------- */
.opciones.dos{grid-template-columns:1fr 1fr}
.opcion em.dib{display:grid;place-items:center;height:40px;font-style:normal}
.opcion i.mini-hoja{display:grid;gap:2px;padding:3px;border:1.5px solid currentColor;border-radius:3px;opacity:.8}
.opcion i.mini-hoja.v{width:28px;height:38px}
.opcion i.mini-hoja.h{width:40px;height:28px}
.opcion i.mini-hoja b{height:auto;opacity:.5}
.opcion i.hoja-ic{display:block;border:2px solid currentColor;border-radius:3px;opacity:.75}
.opcion i.hoja-ic.v{width:22px;height:30px}.opcion i.hoja-ic.h{width:30px;height:22px;margin:4px 0}

/* ---------- Informe: cabecera de fotos, barra y vista ajustada ---------- */
.fotos-cab{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 10px}
.fotos-cab h2{margin:0}
.interruptor.mini{padding:4px 0;font-size:13.5px;font-weight:700;color:var(--muted);gap:8px}
.fotos.ajustadas .foto .lienzo{aspect-ratio:var(--caja,4/3)}
.fotos.ajustadas .foto .lienzo img{object-fit:fill}
.captura .btn.verde{box-shadow:none}
.informe .top{position:relative}
.btn-menu{display:grid;place-items:center;width:38px;height:38px;margin:-6px -8px -6px 0;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;flex:none}
.btn-menu:hover{background:#eef2f7}

/* ---------- Inicio: franja de formato ---------- */
.franja-formato{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:0;border-radius:16px;padding:13px 16px;margin:-4px 0 16px;cursor:pointer;color:#fff;
  background:linear-gradient(100deg,var(--verde),#27b552);box-shadow:0 6px 18px rgba(31,157,69,.28);transition:transform .12s}
.franja-formato:active{transform:scale(.99)}
.franja-formato>svg:first-child{width:28px;height:28px;flex:none}
.franja-formato span{flex:1;font-size:13px;color:#e6f8ec}.franja-formato b{display:block;font-size:15.5px;color:#fff}
@media(max-width:420px){.marca-texto small{display:none}}
.enc-fila .e-l.tok{background:var(--verde-suave);border-color:#bfe3c9;color:var(--verde-2);font-weight:700}
.fila-btns{display:flex;flex-wrap:wrap;gap:8px}.fila-btns span{display:contents}
.dos-btn{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.btn.azul-w{background:#2b579a;border-color:#2b579a;color:#fff;box-shadow:0 4px 14px rgba(43,87,154,.25)}
.nota-word{text-align:center;margin-top:8px}
.selectores{position:fixed;left:0;top:0;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.selectores input{width:1px;height:1px}

/* ---------- Bienvenida: instalar la app ---------- */
.bienvenida{position:fixed;inset:0;z-index:90;overflow-y:auto;color:#fff;transition:opacity .3s;
  background:radial-gradient(120% 70% at 50% 0%,#0b3fb0 0%,#04185a 45%,#000a38 100%)}
.bienvenida.fuera{opacity:0}
.bv-caja{max-width:460px;margin:0 auto;padding:calc(28px + env(safe-area-inset-top,0px)) 22px calc(90px + env(safe-area-inset-bottom,0px));text-align:center}
.bv-logo{width:112px;height:112px;border-radius:26px;margin:0 auto 14px;box-shadow:0 10px 40px rgba(60,140,255,.45)}
.bienvenida h1{margin:0;font-size:28px;letter-spacing:-.5px;color:#fff}
.bienvenida h1 .g{color:#7aa5ff}.bienvenida h1 .p{color:#5ee07c}
.bv-lema{margin:4px 0 18px;color:#a9c4ef}
.bv-ventajas{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:8px;text-align:left}
.bv-ventajas li{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:10px 12px;font-size:14.5px}
.bv-ventajas svg{color:#5ee07c;width:20px;height:20px}
.btn.prim.bv-btn{min-height:56px;font-size:17px;border-radius:16px;background:#22a34a;border-color:#22a34a;box-shadow:0 8px 24px rgba(34,163,74,.4)}
.bv-sub{color:#a9c4ef;font-size:13.5px;margin:8px 0 0}
.bv-pasos{text-align:left;background:#fff;color:var(--texto);border-radius:18px;padding:14px 16px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.bv-pasos ol{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.bv-pasos li{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.4}
.bv-pasos .n{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--azul);color:#fff;font-weight:800;font-size:14px}
.bv-pasos .ios-ic{width:22px;height:22px;vertical-align:-5px;color:#0a84ff;display:inline-block}
.bv-aviso{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:var(--ambar-suave);color:#6d4300;font-size:14px;display:flex;gap:8px}
.bv-nota{margin:12px 0 0;padding:10px 12px;border-radius:12px;background:var(--azul-suave);color:#163a8f;font-size:13.5px;display:flex;gap:8px}
.bv-aviso svg,.bv-nota svg{flex:none;width:18px;height:18px;margin-top:1px}
.bv-ok{display:flex;gap:12px;text-align:left;background:#fff;color:var(--texto);border-radius:18px;padding:16px}
.bv-ok>svg{flex:none;width:30px;height:30px;color:#fff;background:var(--verde);border-radius:50%;padding:5px}
.bv-ok div>b:first-child{display:block;font-size:16px}
.btn.texto.bv-seguir{color:#a9c4ef;margin-top:16px;font-weight:600;font-size:14px}
.bv-flecha{position:fixed;left:50%;bottom:calc(8px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);width:46px;height:46px;border-radius:50%;background:#0a84ff;color:#fff;display:grid;place-items:center;animation:rebote 1.2s ease-in-out infinite;box-shadow:0 6px 20px rgba(10,132,255,.5)}
.bv-flecha svg{width:26px;height:26px}
@keyframes rebote{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}
.plan-info{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.plan-info span{display:inline-flex;align-items:center;gap:6px;background:var(--azul-suave);color:#163a8f;border-radius:999px;padding:5px 11px;font-size:13px}.plan-info svg{width:15px;height:15px}

/* ---------- Planes y pago ---------- */
.mini-t{font-size:13px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--verde-2);margin:18px 0 8px}
.mini-t:first-child{margin-top:0}
.seg-fila{display:flex;flex-wrap:wrap;gap:6px;background:#eef2f7;border-radius:14px;padding:5px;margin-bottom:12px}
.seg{flex:1 1 120px;min-height:44px;border:0;border-radius:10px;background:transparent;font-weight:700;font-size:14px;cursor:pointer;color:var(--muted)}
.seg.on{background:#fff;color:var(--texto);box-shadow:0 1px 4px rgba(10,26,51,.12)}
.planes-op{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.plan-op{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:2px solid var(--borde);border-radius:14px;background:#fff;padding:12px 14px;cursor:pointer}
.plan-op.on{border-color:var(--verde);background:var(--verde-suave)}
.plan-op b{font-size:16px}.plan-op .eq{font-size:13px;color:var(--muted)}.plan-op .pr{font-size:20px;font-weight:800;margin-top:4px}.plan-op .pr small{font-size:12px;color:var(--muted);font-weight:600}
.plan-op .pa{font-size:12.5px;color:var(--muted)}
.seg small{display:block;font-size:11px;font-weight:700;opacity:.75}
.stepper{display:flex;align-items:center;gap:12px}.stepper .btn{min-width:48px;font-size:20px;padding:0}.stepper b{min-width:28px;text-align:center;font-size:18px}
.bono-fila{display:flex;gap:8px}.bono-fila input{flex:1;text-transform:uppercase}
.resumen{border:1px solid var(--borde);border-radius:14px;padding:12px 14px;margin-bottom:12px}
.res-l{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:14.5px}.res-l.desc b{color:var(--verde-2)}
.res-l.total{border-top:1px solid var(--borde);margin-top:4px;padding-top:10px;font-size:17px}.res-l.total b{font-size:20px}
.res-n{margin:8px 0 0;font-size:13px;color:var(--muted)}
.resultado-pago{text-align:center;padding:30px 20px}.resultado-pago>svg{width:56px;height:56px;color:#fff;background:var(--ambar);border-radius:50%;padding:12px;margin:0 auto 6px;display:block}
.resultado-pago.ok>svg{background:var(--verde)}.resultado-pago.mal>svg{background:var(--rojo)}
.resultado-pago .pila{max-width:320px;margin:14px auto 0}

/* ---------- Mis formatos ---------- */
.formatos{display:grid;gap:10px}
.fmt-card{display:flex;align-items:center;gap:12px;border:1px solid var(--borde);border-left:5px solid var(--c1);border-radius:14px;padding:10px 12px;background:#fff}
.fmt-logo{width:52px;height:40px;flex:none;border-radius:8px;background:#f4f6f9 center/contain no-repeat;display:grid;place-items:center;font-weight:900;font-size:18px;color:var(--c1)}
.fmt-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.fmt-txt b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fmt-txt>span:not(.pill){font-size:12.5px;color:var(--muted)}
.fmt-txt .pill{align-self:flex-start}
.fmt-col{display:flex;gap:4px}.fmt-col em{width:22px;height:6px;border-radius:3px;background:var(--c1)}.fmt-col em+em{background:var(--c2)}
.paleta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.pcol{width:34px;height:34px;border-radius:50%;border:3px solid #fff;background:var(--c);box-shadow:0 0 0 1px var(--borde-2);cursor:pointer;padding:0;position:relative}
.pcol.on{box-shadow:0 0 0 2px var(--texto)}
.pcol.otro{width:auto;border-radius:999px;padding:0 10px 0 30px;display:flex;align-items:center;font-size:12px;font-weight:700;background:#fff;color:var(--texto)}
.pcol.otro::before{content:"";position:absolute;left:4px;top:4px;width:20px;height:20px;border-radius:50%;background:conic-gradient(red,#ff0,lime,cyan,blue,#f0f,red)}
.pcol.otro.on::before{background:var(--c)}
.pcol.otro input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.letras{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.letra{border:1px solid var(--borde-2);border-radius:12px;padding:10px 12px;font-size:15px;cursor:pointer;display:flex;align-items:center;gap:8px;background:#fff}
.letra input{accent-color:var(--azul)}
.letra.on{border-color:var(--azul);background:var(--azul-suave)}
.fmt-prev{display:grid;grid-template-columns:auto 1fr auto;border:1px solid #c4cdd8;border-radius:6px;background:#fff;overflow:hidden;font-size:12px}
.fmt-prev>div{padding:8px;border-right:1px solid #c4cdd8;display:flex;flex-direction:column;justify-content:center}
.fmt-prev .fp-logo{width:64px;background:center/contain no-repeat;background-origin:content-box}
.fmt-prev .fp-cen{text-align:center}
.fmt-prev .fp-cen b{color:var(--c1);font-size:14px}.fmt-prev .fp-cen span{color:var(--c2);font-weight:700}
.fmt-prev .fp-der{border-right:0;text-align:center;color:#5f6c7a;font-size:10px;display:block}.fmt-prev .fp-der b{color:var(--c1);font-size:16px}
.fmt-prev.con2 .fp-der{grid-column:1/-1;border-top:1px solid #c4cdd8;padding:4px 8px}
.fmt-prev.con2 #fpLogo2{border-right:0;border-left:1px solid #c4cdd8}
.fmt-prev [hidden]{display:none}
.fmt-prev .fp-foto{grid-column:1/-1;border:0;border-top:1px solid #c4cdd8;background:var(--c1);color:#fff;font-weight:700;padding:5px 8px;display:block}
.fmt-card .btn-menu{margin:0 -4px 0 -4px}
.formatos{grid-template-columns:minmax(0,1fr)}.fmt-card{min-width:0}
.fmt-txt b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}
@media (max-width:440px){.fmt-card [data-fedit]{font-size:0;padding:0 10px;gap:0}.fmt-card [data-fedit] svg{width:20px;height:20px}}

/* ---------- Marcas en las fotos ---------- */
.meta.marcar{border:0;cursor:pointer;color:#a3141f;background:#fdecee;font-weight:700}
.con-marcas{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:#E53935;color:#fff;display:grid;place-items:center;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.con-marcas svg{width:15px;height:15px}
.visor .v-der{display:flex;gap:8px;align-items:center}
.visor .v-marcar{height:44px;border-radius:14px;border:0;background:#E53935;color:#fff;font-weight:800;font-size:14px;display:flex;align-items:center;gap:6px;padding:0 14px;cursor:pointer}
.visor .v-marcar svg{width:18px;height:18px}
dialog.marcador{border:0;padding:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;background:#0b0f16;color:#fff;display:flex;flex-direction:column}
dialog.marcador:not([open]){display:none}
dialog.marcador::backdrop{background:#000}
.mk-arriba{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px}
.mk-arriba b{font-size:15px;text-align:center;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mk-arriba .btn:not(.prim):not(.peligro){background:rgba(255,255,255,.12);color:#fff;border-color:transparent}
.mk-escena{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:6px}
.mk-marco{position:relative;max-width:100%;max-height:100%;display:flex}
.mk-marco img{max-width:100%;max-height:calc(100dvh - 250px);object-fit:contain;user-select:none;-webkit-user-drag:none;display:block}
.mk-marco canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}
.mk-texto{display:flex;gap:8px;padding:8px 12px;background:#161d29}
.mk-texto input{flex:1;min-width:0;border-radius:11px;border:1px solid #33435a;background:#0b0f16;color:#fff;padding:0 12px;min-height:40px;font-size:16px}
.mk-barra{padding:8px 10px calc(10px + env(safe-area-inset-bottom,0px));background:#161d29;display:flex;flex-direction:column;gap:8px}
.mk-fila{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}
.mk-h{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:64px;padding:6px 8px;border-radius:12px;border:1px solid #2c3a4f;background:transparent;color:#cfd8e3;font-size:11.5px;font-weight:700;cursor:pointer}
.mk-h.on{background:#E53935;border-color:#E53935;color:#fff}
.mk-c{width:32px;height:32px;border-radius:50%;border:3px solid #161d29;background:var(--c);box-shadow:0 0 0 1px #4a5a70;cursor:pointer;padding:0}
.mk-c.on{box-shadow:0 0 0 3px #fff}
.mk-sep{width:1px;height:26px;background:#33435a;margin:0 4px}
.mk-g{width:40px;height:34px;border-radius:10px;border:1px solid #2c3a4f;background:transparent;display:grid;place-items:center;cursor:pointer;padding:0}
.mk-g i{display:block;width:22px;background:#cfd8e3;border-radius:3px}
.mk-g.on{background:#2c3a4f;border-color:#fff}
.mk-barra .btn{background:rgba(255,255,255,.1);color:#fff;border-color:transparent}
.mk-barra .btn.peligro{background:rgba(229,57,53,.18);color:#ff8a86}
.mk-barra .btn:disabled{opacity:.4}
.mk-etq{font-size:12px;font-weight:800;color:#8fa0b5;min-width:52px;text-align:right;margin-right:2px}
.mk-g{width:auto;height:36px;padding:0 10px;display:flex;align-items:center;gap:7px;color:#cfd8e3;font-size:12px;font-weight:700}
.mk-g i{width:18px}
.mk-ayuda{margin:0;padding:6px 14px;font-size:13px;color:#b7c4d4;text-align:center;min-height:30px;background:#0f1520}
.mk-marco img{max-height:calc(100dvh - 330px)}
.mk-barra{gap:7px}
.gps-fila{display:flex;gap:8px}.gps-fila input{flex:1;min-width:0}
.meta.toca{border:0;cursor:pointer}
.mk-escena{position:relative}
.mk-texto{position:absolute;left:8px;right:8px;bottom:8px;border-radius:14px;box-shadow:0 6px 20px rgba(0,0,0,.5);z-index:2}
.mk-ayuda{height:44px;display:flex;align-items:center;justify-content:center;line-height:1.25;font-size:12.5px}
.mk-barra .mk-fila:last-child{flex-wrap:nowrap}
.mk-barra .mk-fila:last-child .btn{padding:0 10px;font-size:13px}
.mk-h:disabled{opacity:.35;cursor:default}
.volver{display:inline-flex;align-items:center;gap:6px;margin:0 0 10px;padding:8px 14px 8px 8px;border-radius:12px;background:#fff;border:1px solid var(--borde);color:var(--azul-2);font-weight:800;font-size:14.5px;text-decoration:none;max-width:100%;box-shadow:var(--sombra)}
.volver svg{width:20px;height:20px;flex:none}
.volver:active{transform:scale(.98)}

/* ---------- Centro de ayuda ---------- */
.ayuda-cab .buscador{margin:12px 0 0}
.ayuda-temas{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:14px 0 6px}
.ayuda-temas a{display:flex;align-items:center;gap:8px;padding:12px;border-radius:14px;background:#fff;border:1px solid var(--borde);text-decoration:none;color:var(--texto);font-weight:700;font-size:14px;box-shadow:var(--sombra)}
.ayuda-temas a svg{color:var(--azul);width:22px;height:22px}
.ayuda-tema h2.sec{display:flex;align-items:center;gap:8px}
.ayuda-tema h2.sec svg{color:var(--verde)}
.ayuda-tema{scroll-margin-top:calc(var(--barra-alto) + 12px)}
.ayuda-p{padding:0;margin:0 0 8px;overflow:hidden}
.ayuda-p summary{cursor:pointer;padding:14px 44px 14px 16px;font-weight:700;list-style:none;position:relative}
.ayuda-p summary::-webkit-details-marker{display:none}
.ayuda-p summary::after{content:"+";position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:22px;font-weight:600;color:var(--azul)}
.ayuda-p[open] summary::after{content:"–"}
.ayuda-p[open] summary{color:var(--azul-2)}
.ayuda-r{padding:0 16px 14px;color:#33465d;font-size:15px;line-height:1.55}
.ayuda-r ol,.ayuda-r ul{margin:6px 0 4px;padding-left:22px}.ayuda-r li{margin:4px 0}
.ayuda-nada{text-align:center;color:var(--muted);margin:20px 0}
.ayuda-contacto{display:flex;flex-direction:column;gap:6px;align-items:flex-start;margin-top:18px}
.ayuda-contacto span{color:var(--muted);font-size:14px}
.ayuda-contacto .btn{margin-top:6px}
.enlace-ayuda{display:flex;align-items:center;gap:12px;margin:18px 0 90px;padding:12px 14px;border-radius:14px;background:#fff;border:1px dashed var(--borde-2);text-decoration:none;color:var(--muted);font-size:13px}
.enlace-ayuda b{display:block;color:var(--texto);font-size:14.5px}
.enlace-ayuda span{flex:1}.enlace-ayuda>svg:first-child{color:var(--azul)}

/* ---------- Mi equipo ---------- */
.kpi-eq{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.kpi-eq div{background:#f3f6fa;border-radius:12px;padding:10px;text-align:center}
.kpi-eq b{display:block;font-size:22px}.kpi-eq span{font-size:12px;color:var(--muted)}
.kpi-eq .si{background:var(--verde-suave)}.kpi-eq .si b{color:var(--verde-2)}
.lista-eq{display:grid;gap:10px;margin-top:12px}
.miembro{padding:14px}
.m-cab{display:flex;align-items:center;gap:10px}
.m-av{width:40px;height:40px;border-radius:50%;background:var(--azul-suave);color:var(--azul-2);display:grid;place-items:center;font-weight:800;flex:none}
.m-tx{flex:1;min-width:0}.m-tx b{display:block;font-size:15px}.m-tx span{display:block;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.m-eq{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font-size:13.5px;margin:10px 0 0}
.m-ult{color:var(--muted)}
.m-dev{margin-top:8px;border-top:1px solid var(--borde);padding-top:6px}
.dev{display:flex;align-items:center;gap:8px;font-size:13.5px;padding:4px 0}
.dev span{flex:1}.dev svg{color:var(--muted);width:18px;height:18px}

@media(max-width:430px){.marca-texto{font-size:18px}.marca img{width:34px;height:34px}.barra-der{gap:2px}.chip-lic{padding:5px 8px;font-size:10px;letter-spacing:.4px}.barra .icono{width:36px}}
@media(max-width:350px){.marca-texto{display:none}}
.pill.tu{font-style:normal;margin-left:4px;vertical-align:2px}

/* ---------- Recopilar fotos ---------- */
.filtros-rec{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0 10px}
.rec-inf{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.rec-inf small{color:var(--muted);font-weight:600;font-size:13px}
.rec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.rec-foto{position:relative;border:2px solid transparent;border-radius:12px;padding:0;overflow:hidden;background:#e7ecf2;cursor:pointer;aspect-ratio:4/3;text-align:left}
.rec-foto img{width:100%;height:100%;object-fit:cover;display:block}
.rec-foto.on{border-color:var(--verde);box-shadow:0 0 0 3px rgba(31,157,69,.25)}
.rec-et{position:absolute;left:6px;top:6px;background:rgba(10,26,51,.75);color:#fff;font-size:11px;font-weight:800;border-radius:6px;padding:2px 6px}
.rec-chk{position:absolute;right:6px;top:6px;width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.85);border:2px solid #fff;display:grid;place-items:center;color:transparent}
.rec-chk svg{width:16px;height:16px;stroke-width:3}
.rec-foto.on .rec-chk{background:var(--verde);color:#fff}
.rec-nota{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;font-size:11px;padding:14px 6px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rec-cont{flex:1;font-weight:700;align-self:center}
.solo-ver .herr,.solo-ver .meta.marcar,.solo-ver .mic,.solo-ver .hueco{display:none!important}
.solo-ver .meta.toca{pointer-events:none}
.m-obras{display:flex;align-items:center;gap:8px;width:100%;margin-top:10px;padding:9px 12px;border-radius:10px;border:1px solid var(--borde);background:#f7f9fc;color:var(--texto);font-size:13.5px;font-weight:700;cursor:pointer;text-align:left}
.m-obras span{flex:1}.m-obras svg{width:18px;height:18px;color:var(--azul)}.m-obras:disabled{cursor:default;color:var(--muted)}
.perm-obra{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--borde)}
.perm-obra span{flex:1;font-size:14.5px}.perm-obra select{width:auto;min-width:130px;padding:8px 10px}
.pap-fila{display:flex;align-items:center;gap:10px;padding:12px 14px;margin-bottom:8px}
.pap-fila>div:first-child{flex:1;min-width:0}.pap-botones{display:flex;gap:6px;flex:none}.pap-botones .peligro{padding-left:10px;padding-right:10px}.pap-botones svg{width:18px;height:18px}.pap-fila b{display:block}.pap-fila span{font-size:13px;color:var(--muted)}

/* Todos los informes / Todas las fotos */
.grupo-obra a{display:inline-flex;align-items:center;gap:8px;color:inherit;text-decoration:none}
.grupo-obra svg{width:20px;height:20px;color:var(--azul-2);flex:none}
.chips-obras{display:flex;gap:8px;overflow-x:auto;margin:4px -16px 12px;padding:0 16px 4px;scrollbar-width:none}
.chips-obras::-webkit-scrollbar{display:none}
.chips-obras .chip{flex:none;padding:7px 14px;border-radius:999px;background:#fff;border:1px solid var(--borde);color:var(--texto,#16233a);font-weight:700;font-size:13.5px;text-decoration:none;white-space:nowrap}
.chips-obras .chip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:4px}
.gal-dia{grid-column:1/-1;margin:14px 2px 4px;font-size:14px;color:var(--muted);font-weight:800}
.gal-foto{padding:0;border:0;aspect-ratio:1;background:#e3e9f1;border-radius:8px;overflow:hidden;cursor:pointer}
.gal-foto img{width:100%;height:100%;object-fit:cover;display:block}
.gal-foto img:not([src]){visibility:hidden}
.visor .v-ir{height:44px;border-radius:14px;border:0;background:#fff;color:var(--navy);font-weight:800;font-size:14px;display:flex;align-items:center;gap:6px;padding:0 14px;cursor:pointer}
.visor .v-ir svg{width:18px;height:18px}

/* v1.21 */
#selloOpc.apagado{opacity:.55}
.inf-lugar{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:2px!important}
.inf-lugar b{font-weight:700;color:var(--texto)}
.filtros-obra{margin-bottom:14px}
.filtros-obra .fila-btns{justify-content:space-between;align-items:center}
.f-cuenta{color:var(--muted);font-size:14px}.f-cuenta b{color:var(--texto)}
#bFiltrar.on{border-color:var(--azul);color:var(--azul);background:var(--azul-suave)}
#bFiltrar .pill{padding:1px 7px;font-size:12px;margin-left:2px}
details.multi{position:relative}
details.multi summary{list-style:none;cursor:pointer;border:1px solid var(--borde-2);border-radius:12px;padding:11px 34px 11px 12px;background:#fff;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}
details.multi summary::-webkit-details-marker{display:none}
details.multi summary::after{content:"";position:absolute;right:13px;top:50%;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:translateY(-70%) rotate(45deg)}
details.multi.con summary{border-color:var(--azul);background:var(--azul-suave);font-weight:700;color:var(--azul)}
details.multi .mops{position:absolute;z-index:30;left:0;right:0;min-width:240px;top:calc(100% + 4px);background:#fff;border:1px solid var(--borde);border-radius:12px;box-shadow:0 12px 30px rgba(10,26,51,.18);max-height:300px;overflow:auto;padding:6px}
details.multi .mops label{display:flex;gap:10px;align-items:flex-start;padding:9px 8px;border-radius:8px;cursor:pointer;font-size:14.5px;line-height:1.3}
details.multi .mops label:hover{background:var(--fondo)}
details.multi .mops input{width:20px;height:20px;flex:none;margin:0;accent-color:var(--azul)}
.rec-inf{align-items:center}
.rec-todo{flex:none;width:30px;height:30px;border-radius:8px;border:2px solid var(--borde-2);background:#fff;display:grid;place-items:center;cursor:pointer;padding:0}
.rec-todo svg{width:18px;height:18px;stroke:#fff;stroke-width:3;fill:none;opacity:0}
.rec-todo.on{background:var(--verde);border-color:var(--verde)}.rec-todo.on svg{opacity:1}
.rec-todo.medio{border-color:var(--verde);background:var(--verde-suave)}.rec-todo.medio svg{opacity:1;stroke:var(--verde)}
.firma-ctrl{border:1px dashed var(--borde-2);border-radius:12px;padding:8px;background:#fbfcfe}
.firma-ctrl .fprev{height:64px;border-radius:8px;background:#fff center/contain no-repeat;display:grid;place-items:center;color:var(--muted);font-size:13px;margin-bottom:6px;border:1px solid var(--borde)}
.firma-ctrl .fbtns{display:flex;flex-wrap:wrap;gap:6px}
dialog.firma-pad{max-width:760px}
dialog.firma-pad .mcuerpo{padding:0 16px 8px}
dialog.firma-pad canvas{width:100%;aspect-ratio:900/330;background:#fff;border:2px dashed var(--borde-2);border-radius:14px;touch-action:none;cursor:crosshair;display:block;background-image:linear-gradient(transparent calc(100% - 46px),#c3cfdc calc(100% - 46px),#c3cfdc calc(100% - 44px),transparent calc(100% - 44px))}
.btn-google{display:inline-flex;align-items:center;gap:10px;background:#fff;color:#1f1f1f;border:1px solid #747775;border-radius:999px;padding:10px 22px;font:600 15px/1.2 system-ui,-apple-system,Roboto,sans-serif;cursor:pointer}
.btn-google svg{width:20px;height:20px}
.filtros-obra .fila-btns span.f-cuenta{display:block}
.titulo-inf{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.orden-inf select{width:auto;padding:8px 34px 8px 12px;font-size:14px;border-radius:10px}
html.es-beta body::after{content:"VERSIÓN DE PRUEBA";position:fixed;left:50%;bottom:6px;transform:translateX(-50%);z-index:9999;background:#E5322D;color:#fff;font:800 12px/1 system-ui,sans-serif;letter-spacing:.06em;padding:6px 12px;border-radius:999px;box-shadow:0 4px 12px rgba(0,0,0,.25);pointer-events:none}
