/* Mostrador · identidad visual v2 (08-11-2026, sobre el logo original del casco). ÚNICO archivo de estilos de marca.
   Azul marino + amarillo del casco (colores muestreados del logo). Tipografía: Atkinson Hyperlegible Next (SIL OFL 1.1), autoalojada.
   Todos los colores del producto salen de los tokens de abajo; las parejas usadas están medidas en IDENTIDAD/PALETA_Y_CONTRASTE.md. */

/* ---------- Tipografía (woff2 local, sin CDN) ---------- */
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:400;font-display:swap;src:url(fuentes/atkinson-hyperlegible-next-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:600;font-display:swap;src:url(fuentes/atkinson-hyperlegible-next-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Atkinson Hyperlegible Next";font-style:normal;font-weight:700;font-display:swap;src:url(fuentes/atkinson-hyperlegible-next-latin-700-normal.woff2) format("woff2")}

/* ---------- Tokens ---------- */
:root{
  /* Marino (muestreado del logo: #011D46) y grises azulados */
  --mk-marino-900:#011D46; --mk-marino-700:#1B3A6E; --mk-marino-600:#34507F; --mk-marino-500:#4A5C7A;
  --mk-marino-400:#667592; --mk-marino-300:#A9B5C9; --mk-marino-200:#D3DAE6; --mk-marino-100:#E7ECF4; --mk-marino-50:#F3F6FA; --mk-blanco:#FFFFFF;
  /* Amarillo del casco (muestreado: #FEC60F). SOLO fondo de la acción principal e iconos/logo; nunca como texto sobre claro */
  --mk-amarillo-500:#FEC60F; --mk-amarillo-600:#F2B400; --mk-amarillo-700:#D99D00; --mk-amarillo-100:#FFF6D1;
  --mk-azul-enlace:#0A4DA6;
  /* Estados */
  --mk-error:#B3261E; --mk-error-fondo:#FDECEA; --mk-ok:#0F7A5A; --mk-ok-fondo:#E3F4EE;
  --mk-borde-campo:#68789A; --mk-dis-fondo:#E9EDF3; --mk-dis-texto:#66758F;

  /* Semánticos (lo que usa la interfaz) */
  --fondo:var(--mk-marino-50); --superficie:var(--mk-blanco); --texto:var(--mk-marino-900); --texto-2:var(--mk-marino-500);
  --linea:var(--mk-marino-200); --cabecera:var(--mk-marino-900); --cabecera-texto:var(--mk-blanco);
  --accion:var(--mk-amarillo-500); --accion-hover:var(--mk-amarillo-600); --accion-activa:var(--mk-amarillo-700); --accion-texto:var(--mk-marino-900);
  --enlace:var(--mk-azul-enlace); --foco:var(--mk-marino-900); --foco-sobre-oscuro:var(--mk-amarillo-500);

  /* Medidas */
  --tactil:52px;          /* botones y campos (mínimo exigido 44 px) */
  --radio:12px; --radio-s:10px; --sombra:0 1px 2px rgba(1,29,70,.10),0 2px 8px rgba(1,29,70,.06);
  --fuente:"Atkinson Hyperlegible Next",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --nav-alto:68px;
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:400 17px/1.4 var(--fuente);background:var(--fondo);color:var(--texto);padding-bottom:calc(var(--nav-alto) + env(safe-area-inset-bottom) + 12px)}
h2,h3{line-height:1.2;margin:.4em 0 .5em} h3{font-size:1.25rem} h2{font-size:1.6rem}
small{color:var(--texto-2)} label{color:var(--texto-2)}
a{color:var(--enlace);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--foco);outline-offset:2px}
header :focus-visible{outline-color:var(--foco-sobre-oscuro)}
.hide{display:none!important}
pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* ---------- Cabecera carbón ---------- */
header{background:var(--cabecera);color:var(--cabecera-texto);padding:10px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:60px}
header .marca{display:flex;align-items:center;gap:12px;min-width:0}
header .marca img{height:34px;width:auto;display:block;flex:none}
header #neg{font-size:.9rem;color:var(--mk-marino-200);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46vw}
#cuenta{min-height:44px;padding:0 16px;border-radius:var(--radio-s);border:2px solid var(--mk-marino-300);background:transparent;color:var(--mk-blanco);font:600 1rem var(--fuente)}
#cuenta:hover{background:var(--mk-marino-700)}

/* ---------- Pestañas con icono: barra inferior en móvil, una mano ---------- */
nav{position:fixed;left:0;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px 6px calc(8px + env(safe-area-inset-bottom));background:var(--superficie);border-top:1px solid var(--linea);box-shadow:0 -2px 10px rgba(1,29,70,.08)}
nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;padding:6px 4px;border:0;border-radius:var(--radio);background:transparent;color:var(--texto-2);font:600 .82rem/1.1 var(--fuente)}
nav button svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
nav button.on{background:var(--cabecera);color:var(--mk-blanco)}
nav button.on svg{stroke:var(--mk-amarillo-500)}
nav button:not(.on):hover{background:var(--mk-marino-100)}
@media (min-width:760px){
  body{padding-bottom:24px}
  nav{position:sticky;top:0;bottom:auto;grid-template-columns:repeat(4,max-content);justify-content:center;gap:10px;border-top:0;border-bottom:1px solid var(--linea);box-shadow:none;padding:8px 12px}
  nav button{flex-direction:row;gap:10px;padding:0 22px;min-height:48px;font-size:1rem}
  header #neg{max-width:none}
}

main{padding:14px;max-width:960px;margin:0 auto}

/* ---------- Campos ---------- */
input[type=search],input[type=text],input[type=number],input[type=email],input[type=password],select{width:100%;min-height:var(--tactil);padding:10px 14px;font:400 18px var(--fuente);color:var(--texto);background:var(--superficie);border:2px solid var(--mk-borde-campo);border-radius:var(--radio)}
input::placeholder{color:var(--texto-2);opacity:1}
input[type=search]:focus,input[type=text]:focus,input[type=number]:focus,input[type=email]:focus,input[type=password]:focus,select:focus{border-color:var(--texto)}
input[type=checkbox]{width:24px;height:24px;vertical-align:middle;accent-color:var(--mk-marino-900);margin-right:8px}
label{display:block;margin:12px 0 4px;font-size:.95rem;font-weight:600}
.row{display:flex;gap:10px}.row>*{flex:1;min-width:0}
@media (max-width:520px){.row{flex-direction:column;gap:0}}

/* ---------- Botones: primario amarillo (uno por pantalla), secundario blanco con borde marino ---------- */
button.b,a.b{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tactil);padding:0 22px;border:2px solid transparent;border-radius:var(--radio);background:var(--accion);color:var(--accion-texto);font:700 1.05rem var(--fuente);text-decoration:none;margin:8px 8px 0 0;cursor:pointer}
button.b:hover,a.b:hover{background:var(--accion-hover)}
button.b:active,a.b:active{background:var(--accion-activa)}
button.b.s{background:var(--superficie);color:var(--texto);border-color:var(--mk-marino-600)}
button.b.s:hover{background:var(--mk-marino-100)}
button.b.s:active{background:var(--mk-marino-200)}
button.b:disabled,button.b[aria-disabled=true]{background:var(--mk-dis-fondo);color:var(--mk-dis-texto);border-color:var(--mk-marino-200);cursor:not-allowed}
.acciones{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.acciones .b{margin:0;width:100%}
.acciones .b:not(.s){grid-column:1/-1;order:-1;min-height:60px;font-size:1.15rem}
/* Cuando ya se armó el texto y aparece «Abrir WhatsApp» (a.b), el único naranja pasa a ese enlace */
#v-p:has(#p-out a.b) #p-wa{background:var(--superficie);color:var(--texto);border-color:var(--mk-marino-600)}
#v-p:has(#p-out a.b) #p-wa:hover{background:var(--mk-marino-100)}
.item .b{min-height:44px;padding:0 16px;font-size:1rem}

/* ---------- Artículos con miniatura ---------- */
.item{background:var(--superficie);border:1px solid var(--linea);border-radius:var(--radio);padding:10px 12px;margin:10px 0;display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:start;box-shadow:var(--sombra)}
.item:not(:has(.th)){grid-template-columns:minmax(0,1fr) auto}
.item small{color:var(--texto-2)}
.p{font-weight:700;font-size:1.15rem;text-align:right;white-space:nowrap}
.item .cod{font-weight:700}
.th{position:relative;width:56px;height:56px;border-radius:var(--radio-s);background:var(--mk-marino-100);border:1px solid var(--linea);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--mk-marino-400);flex:none;contain:strict}
.th img{width:100%;height:100%;object-fit:cover;display:block}
.th svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.th .ej{position:absolute;left:0;right:0;bottom:0;background:var(--mk-marino-900);color:var(--mk-blanco);font:700 10px/14px var(--fuente);text-align:center;letter-spacing:.03em}
.fam{margin:6px 0 0;padding:8px 10px;background:var(--mk-marino-100);border-radius:var(--radio-s);font-size:.95rem}

/* ---------- Chips, tablas, avisos ---------- */
.k{display:inline-block;background:var(--superficie);border:1px solid var(--linea);border-radius:var(--radio);padding:8px 12px;margin:4px 6px 0 0}
table{width:100%;border-collapse:collapse;font-size:.95rem;background:var(--superficie);border-radius:var(--radio-s)}
td,th{padding:8px 6px;border-bottom:1px solid var(--linea);text-align:left;vertical-align:middle}
th{color:var(--texto-2);font-weight:600;font-size:.85rem}
.rev{background:var(--mk-amarillo-100)}
#p-lin input{width:84px!important;min-height:48px;text-align:center;padding:6px}
#p-lin button.b{min-width:48px;min-height:48px;padding:0;margin:0;font-size:1.3rem}
#p-tot{background:var(--cabecera);color:var(--mk-blanco);border-radius:var(--radio);padding:14px 16px;margin:14px 0 0;font-size:1.5rem}
#p-out pre{background:var(--superficie)!important;border:1px solid var(--linea);border-radius:var(--radio-s);padding:12px!important}
.err{color:var(--mk-error);font-weight:600}
.ok{color:var(--mk-ok);font-weight:600}
[id$="-msg"]{min-height:1.4em;margin:10px 0 0}

/* ---------- Entrar / poner contraseña ---------- */
#v-e,#v-pw{max-width:440px;margin:12px auto 0;background:var(--superficie);border:1px solid var(--linea);border-radius:16px;padding:20px 18px 22px;box-shadow:var(--sombra)}
#v-e .logo-grande,#v-pw .logo-grande{display:block;height:44px;width:auto;margin:4px 0 14px}
#v-e .b,#v-pw .b{width:100%;margin-right:0}
#v-e #e-ok,#v-pw #pw-ok{min-height:60px;font-size:1.15rem}

@media (prefers-reduced-motion:no-preference){button.b,nav button,#cuenta{transition:background-color .12s}}

/* ---------- Ajustes finos ---------- */
input[type=file]{width:100%;font:400 1rem var(--fuente);color:var(--texto-2)}
input[type=file]::file-selector-button{min-height:48px;padding:0 18px;margin-right:12px;border:2px solid var(--mk-marino-600);border-radius:var(--radio);background:var(--superficie);color:var(--texto);font:700 1rem var(--fuente);cursor:pointer}
#p-lin td:nth-last-child(2){white-space:nowrap}
#prev .b,#hist .b{margin-top:12px}

/* ---------- Buscar (retoque 08-11): precio protagonista, gremio pequeño, UNA acción principal por tarjeta, botones compactos en una fila ---------- */
.item{grid-template-columns:56px minmax(0,1fr);padding:10px 12px}
.item:not(:has(.th)){grid-template-columns:minmax(0,1fr)}
.item .pg{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 12px}
.item .precio{font-weight:800;font-size:1.75rem;line-height:1.1;letter-spacing:-.01em;color:var(--texto)}
.item .gremio{font-size:.9rem;color:var(--texto-2)}
.item .desc{margin-top:4px;line-height:1.3;overflow-wrap:anywhere}
.item .desc .exacto{font-size:.8rem;font-weight:600;color:var(--texto-2)}
.item .desc .prov{display:block;margin-top:2px}
.item .acc{display:flex;gap:8px;margin-top:8px;justify-content:flex-end}
.item .acc .b{margin:0;flex:0 0 auto;min-height:44px;padding:0 16px}
/* móvil: las dos acciones en la MISMA fila (Agregar ocupa el resto, Ver familia compacto) y tarjetas bajas para ver 3 o más por pantalla */
@media (max-width:520px){
  .item{grid-template-columns:40px minmax(0,1fr);gap:10px;padding:8px 10px;margin:8px 0}
  .th{width:40px;height:40px}.th svg{width:22px;height:22px}
  .item .desc{font-size:.95rem}
  .item .acc{justify-content:stretch}
  .item .acc{gap:6px}
  .item .acc .b{padding:0 10px;font-size:.9rem;white-space:nowrap}
  .item .acc .b.s{padding:0 12px}
  .item .acc .b:not(.s){flex:1 1 auto;min-width:0;padding:0 6px}
}
/* aviso breve («Agregado (N artículos)»): aparece sobre la barra inferior, no tapa los resultados y se va solo */
.aviso{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nav-alto) + env(safe-area-inset-bottom) + 14px);z-index:30;display:flex;align-items:center;gap:12px;max-width:min(92vw,520px);
  background:var(--cabecera);color:var(--mk-blanco);border-radius:var(--radio);padding:8px 8px 8px 14px;box-shadow:0 4px 18px rgba(1,29,70,.35);font-weight:600;font-size:.95rem;white-space:nowrap}
.aviso .b{margin:0;min-height:44px;padding:0 12px;white-space:nowrap;font-size:.95rem}
@media (min-width:760px){.aviso{bottom:24px}}
/* contador de artículos sobre la pestaña Presupuesto */
nav button{position:relative}
nav .cnt{position:absolute;top:2px;right:calc(50% - 30px);min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--mk-amarillo-500);color:var(--mk-marino-900);font:700 .8rem/22px var(--fuente);text-align:center}
nav .cnt[hidden]{display:none}
@media (min-width:760px){nav .cnt{position:static;margin-left:2px}}
/* cabecera en móvil: el nombre del negocio baja bajo el logo, en hasta dos líneas, sin cortarse ni tapar «Entrar» */
@media (max-width:520px){
  header{align-items:flex-start}
  header .marca{flex-wrap:wrap;gap:4px 12px;flex:1 1 0}
  header #neg{flex-basis:100%;white-space:normal;max-width:none;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2}
  #cuenta{flex:none}
}

/* precio marcado «a revisar» */
.item .rev-precio{font-size:.85rem;font-weight:700;color:var(--mk-error);background:var(--mk-error-fondo);border-radius:8px;padding:2px 8px}

/* ---------- V1: pestañas internas, tarjetas de panel, formularios ---------- */
.seg{display:flex;gap:6px;margin:0 0 12px}.seg button{flex:1;min-height:44px;padding:0 8px;border:2px solid var(--mk-marino-600);border-radius:var(--radio);background:var(--superficie);color:var(--texto);font:600 .95rem var(--fuente)}
.seg button.on{background:var(--cabecera);color:var(--mk-blanco);border-color:var(--cabecera)}
.chico{font-size:.9rem;color:var(--texto-2);margin:4px 0}
.tarjeta{background:var(--superficie);border:1px solid var(--linea);border-radius:var(--radio);padding:12px;margin:10px 0;box-shadow:var(--sombra)}
.tarjeta h3{margin:0 0 6px;font-size:1.1rem}.tarjeta .fila{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}
.pend{background:var(--mk-amarillo-100);border:1px solid var(--mk-amarillo-700);border-radius:var(--radio-s);padding:8px 10px;margin:8px 0;font-size:.95rem}
.acon{display:inline-block;background:var(--mk-amarillo-100);border:1px solid var(--mk-amarillo-700);border-radius:8px;padding:2px 8px;font-size:.85rem;font-weight:700;color:var(--texto)}
.barato{display:inline-block;background:var(--mk-ok-fondo);color:var(--mk-ok);border-radius:8px;padding:2px 8px;font-size:.85rem;font-weight:700}
.cmp{margin-top:6px;font-size:.9rem;color:var(--texto-2)}.cmp div{display:flex;justify-content:space-between;gap:8px}
.vp{background:var(--mk-marino-100);border-radius:var(--radio-s);padding:8px 10px;margin:8px 0;font-size:.95rem}
.acc2{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.acc2 .b{margin:0;min-height:44px;padding:0 14px;font-size:.95rem}
.vacio{padding:16px;text-align:center;color:var(--texto-2)}
@media (max-width:360px){nav button{font-size:.74rem}}
