/* ============================================================
   Badulakes · Taller — capa de marca y componentes propios
   Amarillo #EAE41E sobre negro #141109: el amarillo nunca va como
   texto sobre blanco (no se lee); se usa como fondo, resaltador o borde.
   ============================================================ */
:root{--amar:#EAE41E;--amar-osc:#C9C30F;--tinta-b:#141109;--rosa:#E0457B}

/* ---------- correcciones de contraste ---------- */
.rojo{color:var(--tinta-b);background:var(--amar);padding:0 4px;border-radius:4px}
.hub-cab h2 span{color:var(--tinta-b);background:linear-gradient(transparent 12%,var(--amar) 12%,var(--amar) 88%,transparent 88%);padding:0 6px}
.mod__ico{background:var(--amar);color:var(--tinta-b)}
.mod:hover .mod__ico{background:var(--tinta-b);color:var(--amar)}
.mod--dark .mod__ico{background:var(--amar);color:var(--tinta-b)}
.card--rojo{background:linear-gradient(135deg,#F2EC3A 0%,var(--amar) 55%,var(--amar-osc) 100%);border-color:var(--amar-osc);color:var(--tinta-b)}
.card--rojo .card__cab p,.card--rojo p{color:rgba(20,17,9,.72)}
.hecho b{color:var(--tinta-b)}
.hecho span{color:rgba(20,17,9,.75)}
.hallazgo .num{color:var(--tinta-b);background:var(--amar);border-radius:12px;width:52px;height:52px;display:grid;place-items:center;font-size:26px;transform:rotate(-4deg);box-shadow:3px 3px 0 var(--tinta-b)}
.btn--rojo{color:var(--tinta-b);font-weight:700}
.btn--rojo:hover{background:var(--tinta-b);border-color:var(--tinta-b);color:var(--amar)}
.precio-fila.yo .mk{color:var(--tinta-b);font-weight:800}
.carpeta .n{color:var(--tinta-b)}
.paso.on{border-color:var(--tinta-b);box-shadow:0 0 0 3px var(--amar)}
.paso.on .num{background:var(--amar);color:var(--tinta-b)}
.pin__err{color:var(--amar)}
.nav__it.on{background:rgba(234,228,30,.16);color:var(--amar)}
.chip--rojo{background:var(--amar);color:var(--tinta-b);border-color:var(--amar-osc)}
.tag--rojo{background:var(--amar);color:var(--tinta-b)}
.kpi::after{background:var(--amar)}
.gate__bg i{opacity:.12}
.boot{background:var(--tinta-b)}
.boot__barra i{background:var(--amar)}

/* ---------- logo de portada: sticker que se despega ---------- */
.gl{position:relative;width:170px;height:170px;margin:0 auto 6px;perspective:700px}
.gl__st{position:absolute;inset:0;border-radius:40px;background:var(--amar);display:grid;place-items:center;box-shadow:0 18px 40px rgba(0,0,0,.45);transform-origin:100% 0;animation:pegar 1.1s cubic-bezier(.2,.9,.25,1.2) .15s both}
.gl__st svg{width:66%;height:66%}
.gl__st::after{content:"";position:absolute;right:0;top:0;width:34px;height:34px;border-radius:0 40px 0 14px;background:linear-gradient(225deg,#F8F6C8 0 48%,#C9C30F 52%);box-shadow:-3px 3px 6px rgba(0,0,0,.25);animation:esquina 3.2s ease-in-out 1.4s infinite}
@keyframes pegar{0%{opacity:0;transform:rotate(-24deg) scale(1.6) translateY(-40px)}60%{opacity:1;transform:rotate(4deg) scale(.96)}100%{transform:rotate(-3deg) scale(1)}}
@keyframes esquina{0%,70%,100%{transform:scale(1)}80%{transform:scale(1.35)}}
.gl__wm{font-family:"Rubik",sans-serif;font-weight:900;font-size:40px;letter-spacing:1px;color:var(--amar);text-align:center;line-height:1;opacity:0;animation:subir .7s ease .55s forwards}
.gl__wm small{display:block;margin-top:8px;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:3px;color:#B9B39C}
.gate__t{color:#fff}

/* emblema chico (sidebar, wipe, boot) */
.emb{display:grid;place-items:center;width:100%;height:100%;border-radius:28%;background:var(--amar);color:var(--tinta-b)}
.emb svg{width:64%;height:64%}
.wipe{background:var(--amar)}
.wipe__emb .emb{background:var(--tinta-b)}
.wipe__emb .emb{color:var(--amar)}
.marca__txt strong{font-family:"Rubik",sans-serif;font-weight:900;letter-spacing:.6px;color:var(--amar)}

/* ---------- instagram ---------- */
.ig-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.ig-post{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:3/4;background:var(--fondo-2);min-width:0}
.ig-post img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.ig-post:hover img{transform:scale(1.06)}
.ig-post span{position:absolute;left:6px;right:6px;bottom:6px;padding:5px 7px;border-radius:7px;background:rgba(20,17,9,.82);color:#fff;font-size:10.5px;line-height:1.3}
.ig-post span b{display:block;color:var(--amar);font-size:10px;letter-spacing:.4px}
.hl-fila{display:flex;gap:12px;flex-wrap:wrap}
.hl{display:flex;flex-direction:column;align-items:center;gap:5px;width:74px;font-size:10.5px;font-weight:600;text-align:center;color:var(--tinta-70)}
.hl img{width:60px;height:60px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 0 0 2px var(--amar)}
@media (max-width:1100px){.ig-grid{grid-template-columns:repeat(4,1fr)}}
@media (max-width:640px){.ig-grid{grid-template-columns:repeat(2,1fr)}}

/* ---------- marcas atendidas ---------- */
.marcas{display:flex;flex-wrap:wrap;gap:10px}
.marca-st{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:#fff;border:2px solid var(--tinta-b);font-weight:800;font-size:13px;box-shadow:3px 3px 0 var(--tinta-b);transform:rotate(var(--r,0deg));transition:transform .25s}
.marca-st:hover{transform:rotate(0) translateY(-3px)}
.marca-st small{font-weight:600;font-size:10.5px;color:var(--tinta-45)}

/* ---------- cotizador ---------- */
.cotz{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;align-items:start}
.prods{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-bottom:14px}
.prod{border:2px solid var(--linea);border-radius:14px;padding:10px;background:#fff;text-align:left;transition:all .2s;min-width:0}
.prod b{display:block;font-size:12.5px}
.prod span{display:block;font-size:10.5px;color:var(--tinta-45);line-height:1.3;margin-top:2px}
.prod .ic{width:30px;height:30px;border-radius:9px;background:var(--fondo);display:grid;place-items:center;margin-bottom:6px}
.prod .ic svg{width:17px;height:17px}
.prod:hover{border-color:var(--tinta-25)}
.prod.on{border-color:var(--tinta-b);background:var(--rojo-50);box-shadow:3px 3px 0 var(--tinta-b);transform:translate(-1px,-1px)}
.prod.on .ic{background:var(--amar)}
.opc{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.opc label{display:block;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--tinta-45);margin-bottom:5px}
.seg2{display:flex;gap:5px;flex-wrap:wrap}
.seg2 button{padding:6px 10px;border-radius:8px;border:1px solid var(--linea-fuerte);background:#fff;font-size:12px;font-weight:600}
.seg2 button.on{background:var(--tinta-b);border-color:var(--tinta-b);color:var(--amar)}
.ticket{background:var(--tinta-b);color:#fff;border-radius:18px;padding:18px;position:relative;overflow:hidden}
.ticket::before{content:"";position:absolute;right:-40px;top:-40px;width:140px;height:140px;border-radius:50%;background:var(--amar);opacity:.12}
.ticket h4{margin:0;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#B9B39C}
.ticket .tot{font-family:var(--disp);font-weight:800;font-size:40px;color:var(--amar);line-height:1.05;margin:6px 0 2px}
.ticket .uni{font-size:12px;color:#D9D4C0}
.ticket .lin{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:6px 0;border-bottom:1px dashed #3A3420;color:#D9D4C0}
.ticket .lin b{color:#fff}
.ticket .esc{display:flex;gap:4px;margin:12px 0 4px}
.ticket .esc i{flex:1;height:28px;border-radius:6px;background:#2A2517;position:relative;font-style:normal;font-size:9.5px;display:grid;place-items:center;color:#B9B39C;transition:all .3s}
.ticket .esc i.on{background:var(--amar);color:var(--tinta-b);font-weight:800}
.ticket .wa-btn{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;width:100%;padding:12px;border-radius:12px;background:#25D366;color:#0B2E17;font-weight:800;font-size:13px}
.ticket .wa-btn svg{width:18px;height:18px}
.ticket .entrega{margin-top:10px;font-size:11.5px;color:#D9D4C0}
.ticket .entrega b{color:var(--amar)}
@media (max-width:1100px){.cotz{grid-template-columns:1fr}}

/* previsualización del sticker */
.preview-st{display:grid;place-items:center;height:150px;border-radius:14px;background:repeating-linear-gradient(45deg,#F4F2EA 0 10px,#EEEBE1 10px 20px);border:1px solid var(--linea);margin-bottom:12px;overflow:hidden}
.preview-st .forma{background:var(--amar);border:3px solid #fff;box-shadow:0 0 0 2px var(--tinta-b),6px 8px 0 rgba(20,17,9,.18);display:grid;place-items:center;font-family:"Rubik",sans-serif;font-weight:900;color:var(--tinta-b);transition:all .45s cubic-bezier(.3,1.4,.5,1);animation:flotar 4s ease-in-out infinite}
@keyframes flotar{0%,100%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(3deg) translateY(-6px)}}

/* ---------- kanban de producción ---------- */
.kanban{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;overflow-x:auto}
.kcol{background:var(--fondo);border:1px solid var(--linea);border-radius:14px;padding:8px;min-width:150px;min-height:220px;transition:background .2s}
.kcol.sobre{background:var(--rojo-50);border-color:var(--tinta-b)}
.kcol h5{margin:2px 4px 8px;font-size:11px;letter-spacing:.6px;text-transform:uppercase;display:flex;justify-content:space-between;color:var(--tinta-70)}
.kcol h5 i{font-style:normal;background:var(--tinta-b);color:var(--amar);border-radius:99px;padding:0 7px;font-size:10.5px}
.kcard{background:#fff;border:1px solid var(--linea);border-left:4px solid var(--c,var(--amar));border-radius:10px;padding:8px 9px;margin-bottom:7px;font-size:11.5px;cursor:grab;box-shadow:var(--sombra-1);animation:subir .35s ease both}
.kcard:active{cursor:grabbing}
.kcard b{display:block;font-size:12px}
.kcard span{display:block;color:var(--tinta-45);font-size:10.5px}
.kcard .kpie{display:flex;justify-content:space-between;align-items:center;margin-top:5px;font-size:10.5px;gap:6px}
.kcard .urg{color:#B3261E;font-weight:700}
@media (max-width:1100px){.kanban{grid-template-columns:repeat(6,170px)}}

/* ---------- aprobación de prueba ---------- */
.prueba{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.prueba__arte{border-radius:14px;background:#fff;border:1px solid var(--linea);padding:14px;display:grid;place-items:center;position:relative;min-height:220px}
.prueba__arte img{max-width:100%;max-height:230px;border-radius:10px;display:block}
.prueba__arte .corte{position:absolute;inset:22px;border:2px dashed #E0457B;border-radius:22px;pointer-events:none}
.prueba__arte .lb{position:absolute;top:8px;left:10px;font-size:10px;font-weight:700;color:#E0457B;background:#fff;padding:1px 6px;border-radius:5px}
.versiones{display:flex;flex-direction:column;gap:8px}
.ver{display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:12px;border:1px solid var(--linea);background:#fff;font-size:12px}
.ver .n{flex:0 0 34px;height:34px;border-radius:10px;background:var(--fondo-2);display:grid;place-items:center;font-weight:800}
.ver.ok .n{background:var(--amar)}
.ver small{display:block;color:var(--tinta-45);font-size:10.5px}
@media (max-width:900px){.prueba{grid-template-columns:1fr}}

/* ---------- temporadas ---------- */
.temporadas{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px}
.mes{border-radius:12px;background:var(--fondo);border:1px solid var(--linea);padding:8px 6px;min-height:150px;font-size:10.5px;min-width:0}

.mes>b{display:block;font-family:var(--disp);font-size:13px;text-transform:uppercase;margin-bottom:6px}
.mes .ev{display:block;padding:4px 5px;border-radius:6px;margin-bottom:4px;font-weight:600;line-height:1.25;background:#fff;border-left:3px solid var(--c,var(--amar));overflow-wrap:anywhere}
.mes .bar{height:44px;display:flex;align-items:flex-end;margin-top:6px}
.mes .bar i{display:block;width:100%;border-radius:5px 5px 2px 2px;background:var(--amar);border:1px solid var(--amar-osc);transition:height 1s cubic-bezier(.2,.8,.2,1)}
@media (max-width:1100px){.temporadas{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (max-width:640px){.temporadas{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- portal empresa ---------- */
.cuenta-cab{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.cuenta-av{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-family:"Rubik",sans-serif;font-weight:900;font-size:20px;color:#fff;flex:0 0 56px}
.reorden{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:8px;background:var(--amar);color:var(--tinta-b);font-size:11px;font-weight:800;border:1px solid var(--amar-osc)}
.reorden:hover{background:var(--tinta-b);color:var(--amar)}
.sel-cuenta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.sel-cuenta button{padding:7px 12px;border-radius:99px;border:2px solid var(--linea-fuerte);background:#fff;font-size:12px;font-weight:700}
.sel-cuenta button.on{border-color:var(--tinta-b);background:var(--amar)}

/* ---------- mapa de envíos ---------- */
.mapa-py .env circle.p{fill:var(--tinta-b);stroke:var(--amar);stroke-width:4}
.mapa-py .env circle.h{fill:none;stroke:var(--tinta-b);stroke-width:3;opacity:.35;transform-origin:center;transform-box:fill-box;animation:latir 2.4s ease-out infinite}
.mapa-py .env text{font-family:var(--sans);font-size:24px;font-weight:700;fill:var(--tinta-b)}
.mapa-py .ruta-env{fill:none;stroke:var(--tinta-b);stroke-width:3;stroke-dasharray:10 9;opacity:.45;animation:hormiga 1.6s linear infinite}
@keyframes latir{0%{transform:scale(.6);opacity:.6}100%{transform:scale(2.2);opacity:0}}
@keyframes hormiga{to{stroke-dashoffset:-38}}
.mapa-py .origen-env circle{fill:var(--amar);stroke:var(--tinta-b);stroke-width:5}

.nota-modelo{font-size:11px;color:var(--tinta-45);margin:8px 0 0}
.nota-modelo b{color:var(--tinta-70)}

/* ---------- ajustes tras QA visual ---------- */
.pin__btn{color:var(--tinta-b)!important;font-weight:800}
.nav__it{flex-wrap:nowrap}
.nav__it .pin{margin-left:auto;position:static}
.kcard .kpie span{display:inline;font-size:10.5px}

.kcard .kpie .mono{font-family:var(--mono);color:var(--tinta-45)}
.mes{hyphens:auto;-webkit-hyphens:auto}
.mes .ev{font-size:10px;overflow-wrap:break-word}
.mes.mes--hoy{border-color:var(--tinta-b);box-shadow:0 0 0 3px var(--amar)}
.pista::before{background:linear-gradient(90deg,var(--amar) 0 33%,var(--tinta-b) 33% 66%,var(--azul) 66%)}

/* ---------- logo por trazos (assets/js/logo.js) ---------- */
.gl__st svg{width:70%;height:70%}
.gl__traz{fill:transparent;stroke:var(--tinta-b);stroke-width:2.4;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:trazar 1.2s cubic-bezier(.45,.05,.3,1) .5s forwards,rellenar .45s ease 1.6s forwards}
.gl__traz--wm{stroke:var(--amar);stroke-width:2;animation-delay:calc(.75s + var(--i) * .07s),calc(1.9s + var(--i) * .05s)}
@keyframes trazar{to{stroke-dashoffset:0}}
@keyframes rellenar{to{fill:currentColor}}
.gl__st{color:var(--tinta-b)}
.gl__wm{color:var(--amar);opacity:1;animation:none}
.gl__wm svg{display:block;width:min(300px,78vw);height:auto;margin:0 auto}
.tour-invita__emb .emb{width:64px;height:64px;margin:0 auto}
.as-fab{background:var(--tinta-b);color:var(--amar)}
.as-fab svg{color:var(--amar)}
.tour-card__barra i{background:var(--amar)}
.nav__it .pin{margin-top:0;opacity:1;animation:none;color:#141109}
