/* Concepto: la web es una galería de una idea por pantalla (foto a todo lo ancho, letra grande, esquinas rectas, negro y beige HOMI);
   el Portal es la mesa de trabajo: barra negra, tablas densas, mosaicos beige. El naranja solo marca la acción. Look único claro, a propósito. */
:root{
  --negro:#000000; --tinta:#0E0D0C; --blanco:#FFFFFF; --beige:#F5EBDD; --beige2:#FBF6EF; --beige3:#E9DAC5;
  --naranja:#DB4A2B; --naranja2:#B83A1F; --verdewa:#1FAF54;
  --gris:#5F5850; --gris2:#8B8378; --linea:#E6DED2; --linea2:#CFC5B6;
  --ok:#1E7A46; --okfondo:#E2F2E8; --alerta:#9A6200; --alertafondo:#FBF0D5; --mal:#B3261E; --malfondo:#FBE6E3;
  --f:'Montserrat',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --s1:13px; --s2:15px; --s3:17px; --s4:22px; --s5:clamp(28px,3.4vw,40px); --s6:clamp(34px,5vw,60px); --s7:clamp(40px,6.6vw,84px);
  --cab:64px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--cab) + 12px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--blanco);color:var(--tinta);font-family:var(--f);font-size:var(--s2);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:clip}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--negro)}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3,h4{font-weight:700;letter-spacing:-.025em;line-height:1.08;text-wrap:balance}
a{color:inherit}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit;border-radius:0}
button{cursor:pointer;background:none;border:0;padding:0}
:focus-visible{outline:2px solid var(--naranja);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
.arranque{min-height:70vh;display:grid;place-content:center;justify-items:center;gap:18px;text-align:center;padding:24px;color:var(--gris)}
.env{max-width:1240px;margin-inline:auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.etq{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.tenue{color:var(--gris)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ico{width:20px;height:20px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.num{font-variant-numeric:tabular-nums}

/* Botones */
.bt{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;font-size:14px;font-weight:600;text-decoration:none;border:1px solid var(--negro);background:var(--negro);color:var(--blanco);transition:background .2s,color .2s,border-color .2s;white-space:nowrap}
.bt:hover{background:var(--naranja);border-color:var(--naranja)}
.bt.acc{background:var(--naranja);border-color:var(--naranja)}
.bt.acc:hover{background:var(--naranja2);border-color:var(--naranja2)}
.bt.lin{background:transparent;color:var(--negro)}
.bt.lin:hover{background:var(--negro);color:var(--blanco);border-color:var(--negro)}
.bt.blanco{background:var(--blanco);color:var(--negro);border-color:var(--blanco)}
.bt.blanco:hover{background:var(--beige);border-color:var(--beige)}
.bt.fant{background:transparent;color:var(--blanco);border-color:rgba(255,255,255,.5)}
.bt.fant:hover{background:var(--blanco);color:var(--negro);border-color:var(--blanco)}
.bt.wa{background:var(--verdewa);border-color:var(--verdewa)}
.bt.wa:hover{background:#178a42;border-color:#178a42}
.bt.ch{min-height:36px;padding:0 12px;font-size:13px}
.bt[disabled]{opacity:.45;cursor:not-allowed}
.enl{font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.enl:hover{color:var(--naranja2)}

/* ------- WEB ------- */
.prueba{background:var(--beige);color:var(--tinta);font-size:12.5px;font-weight:500;text-align:center;padding:6px 16px}
.cab{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--negro);color:var(--blanco)}
.cab .env{display:flex;align-items:center;gap:22px;height:var(--cab)}
.cab .marca img{height:26px;width:auto}
.menu{display:flex;align-items:center;gap:2px;margin-left:auto}
.menu>li{position:relative}
.menu a,.menu button{display:flex;align-items:center;gap:6px;padding:10px 12px;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.82);text-decoration:none}
.menu a:hover,.menu button:hover,.menu a[aria-current=page]{color:var(--blanco)}
.menu a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--naranja)}
.sub{position:absolute;top:100%;left:0;min-width:220px;background:var(--negro);padding:8px 0;display:none;border-top:1px solid rgba(255,255,255,.14)}
.menu>li:hover .sub,.menu>li:focus-within .sub{display:block}
.sub a{padding:10px 18px}
.cab .contacta{min-height:38px;padding:0 16px;font-size:13px}
.tuerca{display:grid;place-items:center;width:34px;height:34px;color:rgba(255,255,255,.42);transition:color .2s,transform .4s}
.tuerca:hover{color:var(--blanco);transform:rotate(60deg)}
.btmenu{display:none;width:44px;height:44px;place-items:center;margin-left:auto}
.movil{position:fixed;inset:0;z-index:70;background:var(--negro);color:var(--blanco);padding:calc(env(safe-area-inset-top,0px) + 14px) max(20px,env(safe-area-inset-right,0px)) 28px max(20px,env(safe-area-inset-left,0px));overflow:auto;display:grid;gap:4px;align-content:start}
.movil .fila{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.movil a.g{font-size:26px;font-weight:700;letter-spacing:-.02em;padding:9px 0;text-decoration:none}
.movil a.c{font-size:15px;color:rgba(255,255,255,.72);padding:6px 0 6px 2px;text-decoration:none}
.movil h4{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--beige3);margin-top:18px}
@media (max-width:1080px){.menu,.cab .contacta{display:none}.btmenu{display:grid;margin-left:0}.cab .tuerca{margin-left:auto}.cab .env{gap:10px}}

.heroe{position:relative;background:var(--negro);color:var(--blanco);overflow:hidden}
.heroe-fotos{position:absolute;inset:0}
.heroe-fotos div{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1s ease;transform:scale(1.02)}
.heroe-fotos div.on{opacity:1}
.heroe::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.18) 30%,rgba(0,0,0,.5) 62%,rgba(0,0,0,.82) 100%)}
.heroe .env{position:relative;z-index:2;min-height:clamp(540px,78vh,780px);display:grid;align-content:end;gap:30px;padding-block:64px 92px}
.heroe h1{font-size:var(--s7);font-weight:700;letter-spacing:-.035em;line-height:1;max-width:13em}
.heroe .lema{font-size:var(--s3);max-width:40em;color:rgba(255,255,255,.88)}
.heroe-pie{display:flex;flex-wrap:wrap;gap:20px 40px;align-items:flex-end;justify-content:space-between}
.heroe-prop{display:grid;gap:3px;text-decoration:none;min-width:0;padding-right:8px}
.heroe-prop strong{font-size:var(--s4);font-weight:700;letter-spacing:-.02em}
.heroe-prop span{font-size:var(--s1);color:rgba(255,255,255,.82)}
.heroe-prop:hover strong{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.marcas{display:flex;gap:6px}
.marcas i{display:block;width:28px;height:2px;background:rgba(255,255,255,.35)}
.marcas i.on{background:var(--blanco)}

.buscador{position:relative;z-index:5;margin-top:-54px}
.buscador form{display:grid;grid-template-columns:repeat(3,1fr) auto;background:var(--blanco);border:1px solid var(--linea);box-shadow:0 18px 50px rgba(0,0,0,.12)}
.buscador label{display:grid;gap:2px;padding:14px 20px;border-right:1px solid var(--linea);min-width:0}
.buscador label span{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.buscador select{border:0;background:transparent;font-size:var(--s3);font-weight:600;padding:2px 0;width:100%;min-height:30px;-webkit-appearance:none;appearance:none;cursor:pointer;outline-offset:6px}
.buscador .bt{min-height:100%;padding:0 40px;font-size:15px}
@media (max-width:760px){.buscador{margin-top:-40px}.buscador form{grid-template-columns:1fr}.buscador label{border-right:0;border-bottom:1px solid var(--linea)}.buscador .bt{min-height:56px}}

.banda{padding-block:clamp(64px,8.5vw,120px)}
.banda.b{background:var(--beige)}
.banda.n{background:var(--negro);color:var(--blanco)}
.banda.c{background:var(--beige2)}
.cabsec{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 40px;margin-bottom:clamp(28px,4vw,52px)}
.cabsec h2{font-size:var(--s6);max-width:15em}
.cabsec p{max-width:44em;color:var(--gris);font-size:var(--s3);margin-top:12px}
.banda.n .cabsec p{color:rgba(255,255,255,.72)}

.rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:40px 24px}
.tarjeta{display:grid;gap:12px;min-width:0;position:relative}
.tarjeta .foto{position:relative;display:block;aspect-ratio:4/3;background:var(--beige3);overflow:hidden}
.tarjeta .foto img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.6,.2,1)}
.tarjeta:hover .foto img{transform:scale(1.035)}
.sello{position:absolute;left:0;top:12px;background:var(--blanco);color:var(--negro);font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px}
.sello.d{left:auto;right:0;background:var(--negro);color:var(--blanco)}
.corazon{position:absolute;right:10px;bottom:10px;width:40px;height:40px;display:grid;place-items:center;background:rgba(255,255,255,.94);color:var(--negro)}
.corazon[aria-pressed=true]{color:var(--naranja)}
.corazon[aria-pressed=true] .ico{fill:currentColor}
.tarjeta .precio{font-size:21px;font-weight:700;letter-spacing:-.02em}
.tarjeta h3{font-size:var(--s2);font-weight:600;letter-spacing:-.01em;line-height:1.35}
.tarjeta h3 a{text-decoration:none}
.tarjeta h3 a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.tarjeta .meta{font-size:var(--s1);color:var(--gris)}
.foto-vacia{width:100%;height:100%;display:grid;place-items:center;text-align:center;font-size:12px;color:var(--gris);padding:12px;background:var(--beige3)}
.tarjeta-tx{display:grid;gap:4px}

.proy3d{position:relative;display:grid;align-content:end;min-height:clamp(420px,56vw,620px);padding:clamp(24px,4vw,56px);color:var(--blanco);text-decoration:none;background:linear-gradient(180deg,#14100D 0%,#2B1810 55%,#6C2C17 100%);overflow:hidden}
.proy3d>svg{position:absolute;inset:0;width:100%;height:100%}
.proy3d>div{position:relative;display:grid;gap:12px;max-width:34em}
.proy3d h3{font-size:var(--s6);letter-spacing:-.03em}
.dos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:24px}
.prop-card{display:grid;align-content:start;gap:16px;background:var(--blanco);padding:clamp(24px,3.4vw,44px);min-width:0}
.prop-card h3{font-size:var(--s5)}
.prop-card p{color:var(--gris);max-width:36em}
.prop-card .acciones{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.cuatro{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:36px 32px}
.cuatro h3{font-size:var(--s4);margin-bottom:10px}
.cuatro p{color:var(--gris)}
.banda.n .cuatro p{color:rgba(255,255,255,.7)}
.tres{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}
.testi{display:grid;gap:14px;align-content:start;border-top:2px solid var(--negro);padding-top:18px;min-width:0}
.testi h3{font-size:18px;letter-spacing:-.015em}
.testi blockquote{margin:0;font-size:var(--s3);font-weight:500}
.pend{display:inline-block;background:var(--alertafondo);color:var(--alerta);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;justify-self:start}
.art{display:grid;gap:12px;text-decoration:none;min-width:0}
.art .foto{aspect-ratio:16/10;background:var(--beige3);overflow:hidden}
.art .foto img{width:100%;height:100%;object-fit:cover}
.art h3{font-size:var(--s4)}
.art:hover h3{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.art p{color:var(--gris)}
.preg{border-top:1px solid var(--linea2)}
.preg:last-child{border-bottom:1px solid var(--linea2)}
.preg summary{list-style:none;display:flex;justify-content:space-between;gap:16px;cursor:pointer;padding:20px 0;font-size:var(--s3);font-weight:600}
.preg summary::-webkit-details-marker{display:none}
.preg summary::after{content:"+";font-size:24px;line-height:1;font-weight:400}
.preg[open] summary::after{content:"–"}
.preg p{padding:0 0 22px;color:var(--gris);max-width:62ch}
.boletin{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.boletin input{flex:1 1 240px;min-height:46px;padding:0 14px;border:1px solid rgba(255,255,255,.4);background:transparent;color:var(--blanco);min-width:0}
.boletin input::placeholder{color:rgba(255,255,255,.6)}

.pie{background:var(--negro);color:var(--blanco);padding-block:64px calc(40px + env(safe-area-inset-bottom,0px))}
.pie-rej{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:36px 40px}
.pie h4{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--beige3);margin-bottom:12px}
.pie a{display:block;padding:4px 0;text-decoration:none;color:rgba(255,255,255,.82);font-size:14px}
.pie a:hover{color:var(--blanco)}
.pie p{color:rgba(255,255,255,.72);font-size:14px;max-width:34em}
.pie-fin{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;align-items:center;margin-top:44px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);font-size:12.5px;color:rgba(255,255,255,.6)}
.pie-fin .tuerca{display:inline-grid;padding:0}
@media (max-width:820px){.pie-rej{grid-template-columns:1fr 1fr}.pie-rej>:first-child{grid-column:1/-1}}

.flotante{position:fixed;z-index:45;right:calc(16px + env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));width:56px;height:56px;display:grid;place-items:center;background:var(--verdewa);color:#fff;border-radius:50%;box-shadow:0 8px 24px rgba(0,0,0,.28)}
.flotante svg{width:28px;height:28px;fill:currentColor}

.pag-cab{background:var(--beige);padding-block:clamp(44px,6vw,84px)}
.pag-cab h1{font-size:var(--s6);max-width:16em}
.pag-cab p{font-size:var(--s3);color:var(--gris);max-width:44em;margin-top:14px}
.pag-cab.n{background:var(--negro);color:var(--blanco)}
.pag-cab.n p{color:rgba(255,255,255,.76)}
.migas{font-size:13px;color:var(--gris);margin-bottom:14px}
.migas a{text-decoration:none}
.migas a:hover{text-decoration:underline}
.filtros{position:sticky;top:calc(var(--cab) + env(safe-area-inset-top,0px));z-index:20;background:var(--blanco);border-bottom:1px solid var(--linea)}
.filtros .env{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding-block:12px}
.filtros select{min-height:40px;padding:0 10px;border:1px solid var(--linea2);background:var(--blanco);font-size:13.5px;font-weight:500;max-width:100%;min-width:0;flex:0 1 auto}
.filtros .chip{min-height:40px}
.chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border:1px solid var(--linea2);font-size:13px;font-weight:500;background:var(--blanco);white-space:nowrap}
.chip[aria-pressed=true]{background:var(--negro);border-color:var(--negro);color:var(--blanco)}
.empuja{margin-left:auto}
.conteo{font-size:13.5px;color:var(--gris)}
.mapa{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:start}
.mapa svg{width:100%;height:auto;background:var(--beige2);border:1px solid var(--linea)}
.mapa .zona{cursor:pointer}
.mapa .zona rect{fill:var(--beige);stroke:var(--linea2);transition:fill .2s}
.mapa .zona:hover rect,.mapa .zona.on rect{fill:var(--negro)}
.mapa .zona text{fill:var(--tinta);font:600 15px var(--f)}
.mapa .zona .cuenta{font-size:12px;font-weight:500;fill:var(--gris)}
.mapa .zona:hover text,.mapa .zona.on text{fill:#fff}
.mapa .lista{display:grid;gap:18px}
.mini{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;text-decoration:none;align-items:center}
.mini .foto{aspect-ratio:4/3;background:var(--beige3);overflow:hidden}
.mini .foto img{width:100%;height:100%;object-fit:cover}
.mini strong{display:block;font-size:16px}
.mini span{font-size:13px;color:var(--gris)}
@media (max-width:820px){.mapa{grid-template-columns:1fr}}

.ficha-gal{display:grid;grid-template-columns:2fr 1fr;gap:6px;background:var(--blanco)}
.ficha-gal .grande{grid-row:span 2;aspect-ratio:16/10;background:var(--beige3);overflow:hidden}
.ficha-gal .ch{background:var(--beige3);overflow:hidden;min-height:0}
.ficha-gal img{width:100%;height:100%;object-fit:cover}
@media (max-width:720px){.ficha-gal{grid-template-columns:1fr 1fr}.ficha-gal .grande{grid-column:1/-1;grid-row:auto}.ficha-gal .ch{aspect-ratio:4/3}}
.ficha{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:clamp(28px,5vw,72px);align-items:start;padding-block:clamp(28px,4vw,52px) 90px}
.ficha h1{font-size:var(--s5)}
.ficha .precio{font-size:var(--s5);font-weight:700;letter-spacing:-.025em;margin-top:8px}
.hechos{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:1px;background:var(--linea);border-block:1px solid var(--linea);margin-block:24px}
.hechos div{background:var(--blanco);padding:14px 4px}
.hechos span{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gris)}
.hechos strong{font-size:18px}
.lista-pts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:8px 24px}
.lista-pts li{padding-left:18px;position:relative}
.lista-pts li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:2px;background:var(--naranja)}
.lateral{position:sticky;top:calc(var(--cab) + 20px);display:grid;gap:16px;background:var(--beige2);padding:24px;min-width:0}
.lateral h2{font-size:var(--s4)}
@media (max-width:900px){.ficha{grid-template-columns:1fr}.lateral{position:static}}
.calc{display:grid;gap:12px;border:1px solid var(--linea2);padding:20px;margin-top:28px}
.calc .camps{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}
.calc output{font-size:var(--s5);font-weight:700;letter-spacing:-.02em}

.campo{display:grid;gap:5px;min-width:0}
.campo>span,.campo>label{font-size:12.5px;font-weight:600}
.campo input,.campo select,.campo textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--linea2);background:var(--blanco);font-size:15px;min-width:0}
.campo textarea{min-height:96px;resize:vertical}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--negro);outline:0;box-shadow:0 0 0 1px var(--negro)}
.campo .err{color:var(--mal);font-size:12.5px}
.form{display:grid;gap:14px}
.form .dobles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px}
.acepto{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--gris)}
.acepto input{margin-top:3px;width:16px;height:16px;flex:none}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.gracias{background:var(--okfondo);color:var(--ok);padding:16px;font-weight:600;font-size:14px;display:grid;gap:6px}
.gracias .enl{color:inherit}

.texto{max-width:68ch;font-size:var(--s3);line-height:1.7}
.texto h2{font-size:var(--s5);margin:38px 0 12px}
.texto p{margin-bottom:18px}
.texto ul{list-style:disc;padding-left:22px;margin-bottom:18px}
.pasos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:28px;counter-reset:p}
.pasos li{counter-increment:p;border-top:2px solid var(--negro);padding-top:14px;display:grid;gap:8px;align-content:start}
.pasos li::before{content:counter(p);font-size:13px;font-weight:700;color:var(--naranja2)}
.pasos h3{font-size:18px}
.pasos p{color:var(--gris);font-size:14.5px}
.val{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1px;background:rgba(255,255,255,.14)}
.val>div{background:var(--negro);padding:26px 24px 28px;display:grid;gap:8px;align-content:start}
.val h3{font-size:19px}
.val p{color:rgba(255,255,255,.7);font-size:14.5px}
.barra-movil{display:none}
@media (max-width:900px){.barra-movil{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:44;background:var(--blanco);border-top:1px solid var(--linea);padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}.con-barra .flotante{display:none}.con-barra .pie{padding-bottom:110px}}

/* ------- PORTAL ------- */
.portal{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh;background:var(--blanco)}
.lado{position:sticky;top:0;height:100vh;overflow:auto;background:var(--negro);color:var(--blanco);padding:22px 12px calc(20px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:2px;scrollbar-width:thin;scrollbar-color:#333 transparent}
.lado .marca{display:block;padding:2px 12px 16px}
.lado .marca img{height:24px;width:auto}
.lado h5{margin:16px 12px 4px;font-size:10.5px;font-weight:700;letter-spacing:.14em;color:#EE7F63;text-transform:uppercase}
.lado a{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:13.5px;text-decoration:none;color:rgba(255,255,255,.88)}
.lado a .ico{width:17px;height:17px;opacity:.75}
.lado a:hover{background:rgba(255,255,255,.1)}
.lado a[aria-current=page]{background:var(--beige);color:var(--negro);font-weight:600}
.lado a[aria-current=page] .ico{opacity:1}
.lado a.bloq{color:rgba(255,255,255,.52)}
.lado a .cand{margin-left:auto;width:13px;height:13px;opacity:.7}
.lado .pieza{margin-top:auto;padding:16px 12px 0;font-size:12px;color:rgba(255,255,255,.6);display:grid;gap:8px}
.lado .pieza a{padding:0;color:rgba(255,255,255,.88);text-decoration:underline;text-underline-offset:3px;font-size:12.5px}
.lado .pieza a:hover{background:none}
.mesa{min-width:0;display:flex;flex-direction:column}
.barra{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;display:flex;align-items:center;gap:12px;min-height:58px;padding:8px max(24px,env(safe-area-inset-right,0px)) 8px 24px;background:var(--blanco);border-bottom:1px solid var(--linea)}
.barra h1{font-size:18px;letter-spacing:-.015em;min-width:0}
.barra .btlado{display:none;width:40px;height:40px;place-items:center;margin-left:-8px}
.barra .der{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:0}
.quien{display:flex;align-items:center;gap:8px;border:1px solid var(--linea2);padding:4px 8px 4px 4px;min-height:40px;min-width:0}
.quien select{border:0;background:transparent;font-size:13px;font-weight:600;max-width:190px;min-width:0;cursor:pointer}
.ini{display:grid;place-items:center;flex:none;width:30px;height:30px;background:var(--naranja);color:#fff;font-size:11px;font-weight:700}
.ini.n{background:var(--negro)}
.ini.ch{width:24px;height:24px;font-size:9.5px}
.cuerpo{padding:24px max(24px,env(safe-area-inset-right,0px)) 96px 24px;display:grid;grid-template-columns:minmax(0,1fr);gap:24px;min-width:0;align-content:start}
.cuerpo>*{min-width:0}
.aviso-ej{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;background:var(--beige2);border:1px solid var(--linea);padding:10px 14px;font-size:13px}
.mosaicos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px}
.mos{background:var(--beige);padding:16px 18px;display:grid;gap:4px;text-decoration:none;min-width:0}
a.mos:hover{background:var(--beige3)}
.mos span{font-size:12px;font-weight:600}
.mos strong{font-size:34px;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.mos em{font-style:normal;font-size:12px;color:var(--gris)}
.mos.alerta strong{color:var(--naranja2)}
.mos.neg{background:var(--negro);color:var(--blanco)}
.col2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:24px}
.caja{display:grid;gap:12px;min-width:0;align-content:start}
.caja>h2,.tit{font-size:17px;letter-spacing:-.015em;display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.caja>h2 a{font-size:13px;font-weight:500}
.tabla{overflow-x:auto;border:1px solid var(--linea)}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{background:var(--beige);text-align:left;font-size:11.5px;font-weight:700;letter-spacing:.04em;color:var(--naranja2);padding:9px 12px;white-space:nowrap;position:sticky;top:0}
td{padding:10px 12px;border-top:1px solid var(--linea);vertical-align:middle}
tr.clic{cursor:pointer}
tr.clic:hover td{background:var(--beige2)}
td .sec{display:block;font-size:12px;color:var(--gris)}
.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;font-size:11.5px;font-weight:600;white-space:nowrap;background:var(--beige);color:var(--tinta)}
.pill.ok{background:var(--okfondo);color:var(--ok)}
.pill.al{background:var(--alertafondo);color:var(--alerta)}
.pill.ma{background:var(--malfondo);color:var(--mal)}
.pill.ne{background:var(--negro);color:var(--blanco)}
.pill.li{background:transparent;box-shadow:inset 0 0 0 1px var(--linea2)}
.etiq{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:500;padding:1px 7px 1px 6px;background:var(--beige2);border:1px solid var(--linea);white-space:nowrap}
.etiq i{width:8px;height:8px;flex:none}
.etiqs{display:flex;flex-wrap:wrap;gap:4px}
.herram{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center}
.herram input[type=search],.herram select,.ctl{min-height:40px;padding:0 10px;border:1px solid var(--linea2);background:var(--blanco);font-size:13.5px;min-width:0;max-width:100%}
.herram input[type=search]{flex:1 1 220px}
.seleccion{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;background:var(--negro);color:var(--blanco);padding:10px 14px;font-size:13px}
.seleccion select{min-height:36px;background:var(--blanco);color:var(--tinta);border:0;padding:0 8px;font-size:13px;max-width:100%;min-width:0}
.tablero{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x proximity;align-items:flex-start;-webkit-overflow-scrolling:touch}
.colum{flex:0 0 min(84vw,272px);scroll-snap-align:start;background:var(--beige2);display:flex;flex-direction:column;gap:8px;padding:10px;min-height:240px;transition:background .15s}
.colum.sobre{background:var(--beige3)}
.colum h3{font-size:12.5px;font-weight:700;letter-spacing:-.005em;line-height:1.3;display:flex;justify-content:space-between;gap:8px;padding:2px 2px 6px}
.colum h3 span{font-weight:500;color:var(--gris);font-variant-numeric:tabular-nums}
.op{background:var(--blanco);border:1px solid var(--linea);padding:10px 12px;display:grid;gap:6px;text-align:left;cursor:grab;width:100%;min-width:0}
.op:hover{border-color:var(--negro)}
.op.estanca{box-shadow:inset 3px 0 0 var(--naranja)}
.op strong{font-size:13.5px;font-weight:600;line-height:1.3}
.op small{font-size:12px;color:var(--gris);line-height:1.35}
.op .pie-op{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:2px}
.temp{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:600}
.temp i{width:8px;height:8px;border-radius:50%;background:var(--gris2)}
.temp.Caliente i{background:var(--naranja)}
.temp.Tibio i{background:#D9A441}
.temp.Frío i{background:#5B8DB8}
.vacio{padding:28px 16px;text-align:center;color:var(--gris);font-size:13.5px;border:1px dashed var(--linea2)}
.fila-chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.selector-usuario{min-height:100vh;display:grid;place-content:center;background:var(--negro);color:var(--blanco);padding:32px max(20px,env(safe-area-inset-right,0px)) 40px max(20px,env(safe-area-inset-left,0px))}
.selector-usuario .caj{width:min(100%,640px);display:grid;gap:18px}
.selector-usuario h1{font-size:var(--s5)}
.selector-usuario p{color:rgba(255,255,255,.72);font-size:14px}
.usuario-bt{display:flex;align-items:center;gap:14px;width:100%;padding:14px 16px;background:rgba(255,255,255,.07);color:var(--blanco);text-align:left;transition:background .2s}
.usuario-bt:hover{background:rgba(255,255,255,.16)}
.usuario-bt strong{display:block;font-size:15px}
.usuario-bt small{font-size:12.5px;color:rgba(255,255,255,.66)}
.usuario-bt .pill{margin-left:auto;background:var(--beige);color:var(--negro)}
.lista-tareas{display:grid}
.lista-tareas label{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--linea);font-size:14px;cursor:pointer;min-height:44px}
.lista-tareas label:first-child{border-top:0}
.lista-tareas input{margin-top:3px;width:17px;height:17px;flex:none}
.lista-tareas s{color:var(--gris2)}
.lista-tareas small{display:block;font-size:12px;color:var(--gris)}
.barras{display:grid;gap:8px}
.bar{display:grid;grid-template-columns:minmax(90px,170px) minmax(0,1fr) 34px;gap:10px;align-items:center;font-size:13px}
.bar .tr{height:14px;background:var(--beige2)}
.bar .re{display:block;height:100%;background:var(--negro);border-radius:0 3px 3px 0;min-width:2px}
.bar:hover .re{background:var(--naranja)}
.bar b{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.nom-corte{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.inv{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:16px}
.inv-c{border:1px solid var(--linea);display:grid;grid-template-rows:auto 1fr;min-width:0}
.inv-c .foto{aspect-ratio:16/9;background:var(--beige3);overflow:hidden;position:relative}
.inv-c .foto img{width:100%;height:100%;object-fit:cover}
.inv-c .tx{padding:12px 14px 14px;display:grid;gap:8px;align-content:start;min-width:0}
.inv-c h3{font-size:14.5px;letter-spacing:-.01em;line-height:1.3}
.inv-c .acc{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:2px}
.publicar{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 12px;font-size:13px;font-weight:600;border:1px solid var(--negro);background:var(--negro);color:var(--blanco)}
.publicar:hover{background:var(--naranja);border-color:var(--naranja)}
.publicar.on{background:var(--okfondo);border-color:var(--ok);color:var(--ok)}
.publicar.on:hover{background:var(--malfondo);border-color:var(--mal);color:var(--mal)}
.interruptor{display:inline-flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}
.interruptor input{position:absolute;opacity:0;width:1px;height:1px}
.interruptor i{display:block;width:36px;height:20px;background:var(--linea2);position:relative;transition:background .15s;flex:none}
.interruptor i::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;background:#fff;transition:left .15s}
.interruptor input:checked+i{background:var(--negro)}
.interruptor input:checked+i::after{left:18px}
.interruptor input:focus-visible+i{outline:2px solid var(--naranja);outline-offset:2px}
.matriz th:first-child,.matriz td:first-child{position:sticky;left:0;background:var(--blanco);z-index:1;font-weight:600}
.matriz th:first-child{background:var(--beige);z-index:2}
.matriz select{min-height:32px;border:1px solid var(--linea2);background:var(--blanco);font-size:12.5px;padding:0 4px}
.matriz select.no{color:var(--gris2)}
.matriz select.editar{background:var(--negro);color:var(--blanco);border-color:var(--negro)}
.matriz select.ver{background:var(--beige)}
.calendario{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--linea);border-top:1px solid var(--linea)}
.calendario .dsem{background:var(--beige);font-size:11px;font-weight:700;padding:6px 8px;color:var(--naranja2);border-right:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.dia{min-height:96px;border-right:1px solid var(--linea);border-bottom:1px solid var(--linea);padding:5px 6px;display:grid;gap:3px;align-content:start;text-align:left;width:100%;min-width:0}
.dia:hover{background:var(--beige2)}
.dia.fuera{background:#FAF8F5;color:var(--gris2)}
.dia .n{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}
.dia.hoy .n{background:var(--naranja);color:#fff;width:22px;height:22px;display:grid;place-items:center}
.ev{display:block;font-size:11px;line-height:1.3;padding:2px 5px;background:var(--beige);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.ev.Visita{background:var(--negro);color:var(--blanco)}
.ev.Tarea{background:var(--alertafondo);color:var(--alerta)}
@media (max-width:640px){.dia{min-height:58px;padding:3px}.ev{font-size:0;height:6px;padding:0}}
.bloqueo{display:grid;gap:14px;justify-items:start;max-width:62ch;padding:clamp(24px,4vw,44px);background:var(--beige2);border:1px dashed var(--linea2)}
.bloqueo h2{font-size:var(--s5)}
.integ{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px}
.integ>div{border:1px solid var(--linea);padding:16px;display:grid;gap:8px;align-content:start;min-width:0}
.integ h3{font-size:15px;letter-spacing:-.01em;display:flex;justify-content:space-between;gap:8px;align-items:flex-start;flex-wrap:wrap}
.integ p{font-size:13px;color:var(--gris)}
.compo{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:6px 12px;align-items:center;padding:10px 12px;border-top:1px solid var(--linea)}
.compo:first-child{border-top:0}
.orden{display:flex;gap:2px}
.orden button{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--linea2)}
.orden button[disabled]{opacity:.3}
.subida{display:grid;gap:6px;border:1px dashed var(--linea2);padding:12px;font-size:13px}
.fotos-ed{display:flex;flex-wrap:wrap;gap:8px}
.fotos-ed figure{position:relative;width:96px;height:72px;background:var(--beige3)}
.fotos-ed img{width:100%;height:100%;object-fit:cover}
.fotos-ed button{position:absolute;right:0;top:0;width:24px;height:24px;background:var(--negro);color:#fff;font-size:14px;line-height:1}
.logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.logo-op{display:grid;gap:10px;justify-items:start;border:1px solid var(--linea);padding:14px;text-align:left;width:100%}
.logo-op[aria-pressed=true]{border-color:var(--negro);box-shadow:0 0 0 1px var(--negro)}
.logo-op .pre{width:100%;height:96px;display:grid;place-items:center;background:var(--blanco)}
.logo-op .pre.n{background:var(--negro)}
.logo-op img{max-height:44px;max-width:80%}
.nota{font-size:12.5px;color:var(--gris)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--linea);overflow-x:auto;scrollbar-width:none}
.tabs button{padding:10px 14px;font-size:13.5px;font-weight:500;color:var(--gris);white-space:nowrap}
.tabs button[aria-selected=true]{color:var(--negro);font-weight:600;box-shadow:inset 0 -2px 0 var(--negro)}
.nota-op{background:var(--beige2);padding:10px 12px;font-size:13.5px;display:grid;gap:2px}
.nota-op small{font-size:11.5px;color:var(--gris)}
.hist{display:grid;gap:0}
.hist li{padding:8px 0;border-top:1px solid var(--linea);font-size:13px}
.hist small{display:block;font-size:11.5px;color:var(--gris)}
#capaPanel{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.42);display:flex;justify-content:flex-end}
#capaPanel[hidden]{display:none}
.panel{width:min(100%,560px);height:100%;background:var(--blanco);display:flex;flex-direction:column;animation:entra .22s ease-out;padding-top:env(safe-area-inset-top,0px)}
.panel.ancho{width:min(100%,780px)}
@keyframes entra{from{transform:translateX(26px);opacity:.3}to{transform:none;opacity:1}}
.panel-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--linea)}
.panel-cab h2{font-size:18px;letter-spacing:-.015em;min-width:0}
.panel-cab button{flex:none;width:40px;height:40px;display:grid;place-items:center;margin:-8px -8px 0 0}
.panel-cuerpo{flex:1;overflow:auto;padding:18px 20px 28px;display:grid;gap:16px;align-content:start;min-height:0}
.panel-pie{display:flex;flex-wrap:wrap;gap:8px;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--linea);background:var(--blanco)}
#avisos{position:fixed;z-index:90;left:50%;transform:translateX(-50%);bottom:calc(24px + env(safe-area-inset-bottom,0px));display:grid;gap:8px;width:min(92vw,440px);pointer-events:none}
.aviso{background:var(--negro);color:var(--blanco);padding:12px 16px;font-size:13.5px;font-weight:500;animation:sube .2s ease-out;pointer-events:auto;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.aviso.mal{background:var(--mal)}
.aviso a{color:inherit;font-weight:700}
@keyframes sube{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
.tabbar{display:none}
.solo-movil{display:none}
@media (max-width:900px){
  .portal{grid-template-columns:minmax(0,1fr)}
  .lado{position:fixed;inset:0 auto 0 0;width:min(84vw,300px);z-index:75;transform:translateX(-102%);transition:transform .22s;padding-top:calc(env(safe-area-inset-top,0px) + 16px)}
  .lado.abierto{transform:none;box-shadow:0 0 0 100vmax rgba(0,0,0,.45)}
  .barra{padding:6px max(16px,env(safe-area-inset-right,0px)) 6px max(16px,env(safe-area-inset-left,0px))}
  .barra .btlado{display:grid}
  .barra h1{font-size:16px}
  .quien select{max-width:112px;font-size:12px}
  .cuerpo{padding:16px max(16px,env(safe-area-inset-right,0px)) 92px max(16px,env(safe-area-inset-left,0px));gap:18px}
  .mos strong{font-size:28px}
  .mosaicos{grid-template-columns:1fr 1fr}
  .mos:last-child:nth-child(odd){grid-column:1/-1}
  .tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--negro);padding-bottom:env(safe-area-inset-bottom,0px)}
  .tabbar a,.tabbar button{display:grid;justify-items:center;gap:2px;padding:9px 2px 8px;font-size:10.5px;color:rgba(255,255,255,.76);text-decoration:none}
  .tabbar a[aria-current=page]{color:var(--blanco);box-shadow:inset 0 2px 0 var(--naranja)}
  .solo-movil{display:initial}
  .solo-esc{display:none}
  .resp thead{display:none}
  .resp,.resp tbody,.resp tr,.resp td{display:block;width:100%}
  .resp tr{padding:10px 12px;border-top:1px solid var(--linea)}
  .resp tr:first-child{border-top:0}
  .resp td{border:0;padding:2px 0}
  .resp td[data-e]::before{content:attr(data-e) ": ";font-size:12px;color:var(--gris)}
  .resp td.prin{font-weight:600}
  .bar{grid-template-columns:minmax(80px,120px) minmax(0,1fr) 28px}
}

@media (max-width:760px){.filtros{position:static}.filtros select{flex:1 1 44%}.empuja{display:none}}
