/* Piezas compartidas Sitio ↔ Apps ↔ Marca (reuse-first). Sin #hex: todo sale de tokens.css. */
/* Logo en línea (js/logo.js): colores por clase. */
.lg-disco{fill:var(--superficie)}
.lg-aro-a{fill:var(--acento)}
.lg-aro-b{fill:var(--acento-claro)}
.lg-centro,.lg-i{fill:var(--marca)}
.lg-tinta{fill:var(--logo-gris)}
.logo-iso,.logo-h{display:block}
.ap-simbolo{background:var(--marca)}
.ap-simbolo svg{width:30px;height:30px}

/* Chips del giro */
.chip{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:2px 12px;border-radius:999px;background:var(--marca-suave-2);color:var(--marca-oscura);font-size:var(--t-chico);font-weight:700;white-space:nowrap}
.chip.muestra{background:var(--acento-suave);color:var(--acento-texto);border:1px dashed color-mix(in srgb,var(--acento) 60%,transparent)}
.chip.receta{background:var(--aviso-suave);color:var(--aviso)}
.chip.ok{background:var(--ok-suave);color:var(--ok)}
.chip.aviso{background:var(--aviso-suave);color:var(--aviso)}
.chip.error{background:var(--error-suave);color:var(--error)}
.chip.info{background:var(--marca-suave-2);color:var(--marca-oscura)}
.chip.lealtad-chip{background:var(--acento-suave);color:var(--acento-texto)}
.semaforo{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-chico);font-weight:700;white-space:nowrap}
.semaforo i,.punto{display:inline-block;width:12px;height:12px;border-radius:50%;flex:none}
.s-rojo i,.punto.s-rojo{background:var(--luz-roja)}.s-ambar i,.punto.s-ambar{background:var(--luz-ambar)}.s-verde i,.punto.s-verde{background:var(--luz-verde)}
.semaforo.s-rojo{color:var(--error)}.semaforo.s-ambar{color:var(--aviso)}.semaforo.s-verde{color:var(--ok)}

/* Buscador y filtros */
.buscador{display:block;margin:0 0 12px}
.buscador input{width:100%;min-height:52px;padding:12px 16px 12px 46px;border:1px solid var(--linea);border-radius:999px;background:var(--superficie) no-repeat 16px 50%/20px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234F5870' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E");font-size:1rem;box-shadow:var(--sombra)}
.chips-filtro{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;margin:0 0 8px;scrollbar-width:none}
.chips-filtro::-webkit-scrollbar{display:none}
.chip-f{display:inline-flex;align-items:center;gap:6px;flex:none;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--linea);background:var(--superficie);color:var(--tinta);font-weight:700;font-size:var(--t-chico);cursor:pointer}
.chip-f[aria-pressed="true"]{background:var(--marca);border-color:var(--marca);color:var(--sobre-marca)}

/* Tarjeta de producto */
.prods{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:14px}
.prod{display:flex;flex-direction:column;background:var(--superficie);border-radius:var(--radio-tarjeta);box-shadow:var(--sombra);overflow:hidden;min-width:0}
.prod-img{position:relative;display:grid;place-items:center;height:132px;background:radial-gradient(circle at 50% 60%,var(--banda),var(--fondo) 70%)}
.prod-img .chip{position:absolute;left:10px;top:10px;white-space:normal;line-height:1.2}
.emoji.prod-emoji{width:92px;height:92px}
.prod-cuerpo{display:flex;flex-direction:column;gap:4px;padding:12px 14px 14px;flex:1}
.prod-cuerpo small{color:var(--acento-texto);font-weight:700}
.prod h3{margin:0;font-size:1rem;line-height:1.3;font-weight:700}
.prod p{margin:0;color:var(--tinta-2);font-size:var(--t-chico)}
.prod-pie{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:auto 0 8px;padding-top:8px}
.precio{font-family:var(--display);font-weight:700;font-size:1.125rem;color:var(--tinta)}
.prod .btn{width:100%}
.prods.compactos{grid-template-columns:repeat(auto-fill,minmax(min(180px,100%),1fr))}
.prods.compactos .prod-img{height:96px}.prods.compactos .emoji.prod-emoji{width:64px;height:64px}

/* Anillo de dosis (el anillo del logo, uno por dosis) */
.anillo-dosis{margin:0;width:min(260px,70vw);aspect-ratio:1;flex:none}
.anillo-dosis svg{width:100%;height:100%;overflow:visible}
.ad-seg{fill:var(--acento-suave);stroke:color-mix(in srgb,var(--acento) 35%,transparent);stroke-width:1;transition:fill .35s var(--curva)}
.ad-seg.hecho{fill:var(--acento);stroke:none}
.ad-seg.prox{fill:color-mix(in srgb,var(--acento) 30%,var(--superficie));animation:late 1.6s ease-in-out infinite;transform-origin:100px 100px}
@keyframes late{50%{fill:color-mix(in srgb,var(--acento) 55%,var(--superficie))}}
.ad-hora{font:700 11px var(--sans);fill:var(--marca-oscura);text-anchor:middle;pointer-events:none}
.ad-seg.hecho+.ad-hora{fill:var(--superficie)}
.ad-centro{fill:var(--superficie)}
.ad-n{font:700 30px var(--display);fill:var(--marca);text-anchor:middle}
.ad-sub{font:600 12px var(--sans);fill:var(--tinta-2);text-anchor:middle}
.anillo-dosis.completo .ad-centro{fill:var(--acento-suave)}

/* Barras y serie */
.barras-ic{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.barras-ic li{display:grid;grid-template-columns:minmax(96px,150px) 1fr auto;gap:10px;align-items:center;font-size:var(--t-chico)}
.bi-pista{height:12px;border-radius:999px;background:var(--marca-suave);overflow:hidden}
.bi-pista i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--marca),var(--acento));transform:scaleX(0);transform-origin:left}
.serie{margin:0}.serie svg{width:100%;height:140px;display:block}
.serie-area{fill:color-mix(in srgb,var(--acento) 16%,transparent)}.serie-linea{fill:none;stroke:var(--acento-texto);stroke-width:2.5;vector-effect:non-scaling-stroke}
.serie-punto{fill:var(--superficie);stroke:var(--acento-texto);stroke-width:2}
.serie figcaption{display:flex;justify-content:space-between;font-size:var(--t-chico);color:var(--tinta-2);margin-top:4px}

/* Hoja (<dialog>) */
.hoja{border:0;padding:0;width:min(520px,100%);max-height:88dvh;border-radius:24px;background:var(--superficie);color:var(--tinta);box-shadow:var(--sombra-alta)}
.hoja::backdrop{background:color-mix(in srgb,var(--noche) 55%,transparent)}
.hoja-cab{display:flex;align-items:flex-start;gap:12px;padding:18px 18px 8px}
.hoja-cab h2{margin:0;font-family:var(--display);font-size:var(--t-3)}
.hoja-cab p{margin:2px 0 0;color:var(--tinta-2);font-size:var(--t-chico)}
.hoja-x{margin-left:auto;flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--linea);background:var(--superficie);font-size:1.5rem;line-height:1;cursor:pointer}
.hoja-cuerpo{padding:8px 18px calc(18px + env(safe-area-inset-bottom));display:grid;gap:12px}
@media (max-width:640px){.hoja{margin:auto 0 0;width:100%;max-width:100%;border-radius:24px 24px 0 0}}
.hoja{overscroll-behavior:contain}
.hoja::backdrop{transition:opacity .3s var(--curva)}
@starting-style{.hoja[open]::backdrop{opacity:0}}
html.con-hoja{overflow:hidden}
html.con-hoja-barra{scrollbar-gutter:stable}

.vacio{display:grid;justify-items:center;text-align:center;gap:6px;padding:28px 16px;background:var(--superficie);border-radius:var(--radio-tarjeta);box-shadow:var(--sombra)}
.vacio p{margin:0;color:var(--tinta-2)}
.total-linea{display:flex;justify-content:space-between;align-items:baseline;margin:6px 0;font-size:1.0625rem}
.total-linea b{font-family:var(--display);font-size:1.375rem}
.aviso-receta{margin:0 0 12px;padding:12px 14px;border-radius:var(--radio-chico);background:var(--aviso-suave);color:var(--aviso);font-weight:600;border-left:4px solid var(--aviso)}
.aviso-receta a{color:inherit}
.btn.ancho{width:100%}
.opciones{border:0;margin:0;padding:0;display:grid;gap:8px}
.opciones legend{font-weight:700;margin-bottom:6px}
.opciones label{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--linea);border-radius:var(--radio);cursor:pointer;min-height:44px}
.opciones label:has(input:checked){border-color:var(--marca);background:var(--marca-suave)}
.opciones input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--marca)}
.opciones small{display:block;color:var(--tinta-2)}
.consentimiento{display:flex;gap:10px;align-items:flex-start;font-size:var(--t-chico);font-weight:500;line-height:1.45}
.consentimiento input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--marca)}
.consentimiento.falta{color:var(--error)}

/* Armazones (js/armazones.js): dibujo en mm, tarjeta, filtros. */
.armazon{display:block;width:100%;height:auto;overflow:visible}
.armazon .az-lente{fill:var(--az-lente)}
.armazon .az-lente,.armazon .az-linea{stroke:currentColor;fill-rule:nonzero}
.armazon .az-linea{fill:none}
.tono-carey{color:var(--az-carey)}.tono-marino{color:var(--marca)}.tono-dorado{color:var(--az-dorado)}.tono-rosa{color:var(--az-rosa)}
.tono-negro{color:var(--az-negro)}.tono-grafito{color:var(--az-grafito)}.tono-teal{color:var(--acento)}.tono-cielo{color:var(--acento-texto)}
.azs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr));gap:14px}
.az{display:flex;flex-direction:column;background:var(--superficie);border-radius:var(--radio-tarjeta);box-shadow:var(--sombra);overflow:hidden;min-width:0;border:2px solid transparent;transition:border-color var(--dur-normal) var(--curva)}
.az:has(input:checked){border-color:var(--acento)}
.az-fig{display:grid;place-items:center;height:128px;padding:18px 22px;background:linear-gradient(180deg,var(--banda),var(--superficie))}
.az-fig .armazon{max-width:190px}
.az-cuerpo{display:flex;flex-direction:column;gap:2px;padding:12px 14px 14px;flex:1}
.az h3{margin:0;font-family:var(--display);font-size:1.125rem;color:var(--marca)}
.az p{margin:0;color:var(--tinta-2);font-size:var(--t-chico)}
.az-medidas{font-variant-numeric:tabular-nums}
.az-pie{display:flex;align-items:center;gap:8px;margin:8px 0}
.az-elegir{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:1px solid var(--linea);border-radius:999px;font-weight:700;cursor:pointer}
.az-elegir input{width:22px;height:22px;accent-color:var(--acento-texto)}
.az-elegir:has(input:checked){background:var(--acento-suave);border-color:var(--acento)}
.az-elegir:has(input:disabled){opacity:.5;cursor:not-allowed}
.az-filtros{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:10px;margin:0 0 16px}
.az-filtros select,.agenda select{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--linea);border-radius:var(--radio-chico);background:var(--superficie);font-size:1rem}

/* Agenda (js/agenda.js): tarjetas de tipo de cita → agenda por pasos, en <dialog> (Sitio, Escuelas) o en la pantalla
   #agendar de la app. Los pasos (.ag-marco) se acomodan al ancho de su caja, no de la ventana: por eso container queries. */
.ag-tarjetas{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr))}
.ag-tarjetas>li{display:grid}
.ag-tarjeta{display:grid;grid-template-rows:auto 1fr auto;gap:6px;width:100%;min-height:44px;padding:14px 16px;border:1px solid var(--linea);border-radius:var(--radio-tarjeta);background:var(--superficie);color:var(--tinta);font:inherit;text-align:left;text-decoration:none;cursor:pointer;box-shadow:var(--sombra);transition:transform var(--dur-normal) var(--curva),border-color var(--dur-normal) var(--curva),box-shadow var(--dur-normal) var(--curva)}
@media (hover:hover){.ag-tarjeta:hover{transform:translateY(-2px);border-color:var(--acento);box-shadow:var(--sombra-alta)}}
.ag-tarjeta:active{transform:scale(.98)}
.ag-tarjeta:focus-visible{outline:3px solid var(--marca);outline-offset:2px}
.ag-tarjeta-cab{display:flex;align-items:center;gap:12px}
.ag-tarjeta-cab .emoji{width:44px;height:44px;flex:none}
.ag-tarjeta-cab b{font-family:var(--display);font-size:1.125rem;line-height:1.25;color:var(--marca)}
.ag-tarjeta-lead{color:var(--tinta-2);font-size:var(--t-chico);line-height:1.45}
.ag-tarjeta-pie{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}
.ag-tarjeta-ir{font-weight:800;font-size:var(--t-chico);color:var(--acento-texto)}

.agenda{display:grid;gap:14px;grid-template-columns:minmax(0,1fr);background:var(--superficie);border-radius:var(--radio-tarjeta);box-shadow:var(--sombra);padding:18px;scroll-margin-top:88px}
.agenda fieldset{border:0;margin:0;padding:0;min-width:0}
.agenda legend{padding:0;margin-bottom:12px;font-weight:800;font-size:1.0625rem}
.ag-legend-dia{font-weight:600;color:var(--tinta-2)}
.agenda .nota-s{margin:12px 0 0;font-size:var(--t-chico);color:var(--tinta-2)}
.agenda .estado-form{margin:0;font-size:var(--t-chico);font-weight:700;color:var(--acento-texto)}
.agenda .estado-form:empty{display:none}
.ag-progreso{display:grid;gap:10px}
.ag-pasos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 10px}
.ag-pasos li{display:flex;align-items:center;gap:6px;font-size:var(--t-chico);font-weight:700;color:var(--tinta-2)}
.ag-n{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1px solid var(--linea);font-size:var(--t-chico);font-variant-numeric:tabular-nums;transition:background var(--dur-normal) var(--curva),color var(--dur-normal) var(--curva)}
.ag-pasos li[aria-current="step"]{color:var(--marca)}
.ag-pasos li[aria-current="step"] .ag-n{background:var(--marca);border-color:var(--marca);color:var(--sobre-marca)}
.ag-pasos li.hecho .ag-n{background:var(--acento-suave);border-color:var(--acento);color:var(--acento-texto)}
.ag-barra{display:block;height:4px;border-radius:999px;background:var(--marca-suave-2);overflow:hidden}
.ag-barra i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--marca),var(--acento));transform:scaleX(0);transform-origin:left}
.ag-marco{container-type:inline-size;min-width:0}
.ag-dia,.ag-slot{position:relative}
.ag-dia input,.ag-slot input{position:absolute;opacity:0;pointer-events:none}
.ag-dia:has(input:focus-visible),.ag-slot:has(input:focus-visible){outline:3px solid var(--marca);outline-offset:2px;border-radius:var(--radio)}
.ag-dias{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
@container (min-width:420px){.ag-dias{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ag-dia{display:grid;min-height:68px;padding:8px 6px;border:1px solid var(--linea);border-radius:var(--radio);background:var(--superficie);text-align:center;text-transform:capitalize;cursor:pointer;transition:border-color var(--dur-normal) var(--curva),background var(--dur-normal) var(--curva)}
.ag-dia>span{display:grid;align-content:center;gap:2px}
.ag-dia small{color:var(--tinta-2);font-size:var(--t-chico)}
@media (hover:hover){.ag-dia:not(:has(input:disabled)):hover{border-color:var(--marca)}.ag-slot:not(:has(input:disabled)):hover span{border-color:var(--acento)}}
.ag-dia:has(input:checked){background:var(--marca);border-color:var(--marca);color:var(--sobre-marca)}
.ag-dia:has(input:checked) small{color:inherit}
.ag-dia:has(input:disabled){background:var(--fondo);border-style:dashed;cursor:not-allowed;color:var(--tinta-2)}
.ag-sin{text-transform:none}
.ag-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ag-slot span{display:grid;place-items:center;min-height:48px;border:1px solid var(--linea);border-radius:999px;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--dur-normal) var(--curva),border-color var(--dur-normal) var(--curva)}
.ag-slot:has(input:checked) span{background:var(--acento);border-color:var(--acento);color:var(--sobre-acento)}
.ag-slot:has(input:disabled) span{color:var(--tinta-2);background:var(--fondo);text-decoration:line-through;cursor:not-allowed}
.ag-resumen{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:12px 14px;border-radius:var(--radio);background:var(--banda)}
.ag-resumen .emoji{width:44px;height:44px;flex:none}
.ag-resumen>span{display:grid;gap:2px;min-width:0}
.ag-resumen b{color:var(--marca)}
.ag-resumen [data-resumen]{color:var(--tinta-2);font-size:var(--t-chico)}
.ag-datos{display:grid;gap:12px;margin-bottom:12px}
.agenda .campo input{width:100%;min-width:0}
.ag-listo{display:grid;justify-items:center;gap:8px;padding:16px 0 4px;text-align:center}
.ag-listo h3{margin:0;font-family:var(--display);font-size:var(--t-3);color:var(--marca)}
.ag-listo h3 small{font-family:var(--sans);font-size:var(--t-chico);color:var(--tinta-2)}
.ag-listo p{margin:0;max-width:40ch}
.ag-listo [data-listo-txt]{font-weight:700}
.ag-palomita{width:72px;height:72px}
.ag-palomita circle{fill:var(--ok-suave);stroke:var(--ok);stroke-width:3}
.ag-palomita path{fill:none;stroke:var(--ok);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.ag-nav{display:flex;gap:10px}
.ag-nav .btn{flex:1 1 auto}
.ag-nav [data-atras]{flex:0 0 auto}

/* La agenda dentro de la hoja: cabecera y botones fijos, los pasos se desplazan en medio. Computadora: diálogo
   centrado que crece con el paso. Celular: hoja inferior casi a pantalla completa, lejos de la isla y del indicador. */
.hoja.ag-hoja{width:min(560px,calc(100% - 32px));max-width:none;max-height:min(760px,calc(100dvh - 48px));overflow:hidden}
.hoja.ag-hoja[open]{display:flex;flex-direction:column}
.ag-hoja .hoja-cab{flex:none;padding:18px 18px 12px}
.ag-hoja .hoja-cuerpo{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:0;padding:0}
.ag-hoja .agenda{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:0;padding:0;border-radius:0;background:none;box-shadow:none}
.ag-hoja .ag-progreso{flex:none;padding:0 18px 12px}
.ag-hoja .ag-marco{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px 18px 18px}
.ag-hoja .estado-form{flex:none;padding:0 18px 10px}
.ag-hoja .ag-nav{flex:none;padding:12px 18px;border-top:1px solid var(--linea);background:var(--superficie)}
@media (max-width:640px){
  .hoja.ag-hoja{width:100%;height:calc(100dvh - max(24px,calc(env(safe-area-inset-top) + 12px)));max-height:none}
  .ag-hoja .hoja-cab,.ag-hoja .ag-progreso,.ag-hoja .ag-marco,.ag-hoja .ag-nav{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
  .ag-hoja .ag-nav{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
}
/* Celular acostado (poca altura): se desplaza el diálogo entero y solo los botones quedan fijos abajo. */
@media (max-height:520px){
  .hoja.ag-hoja[open]{display:block;overflow-y:auto}
  .ag-hoja .hoja-cuerpo,.ag-hoja .agenda{display:block}
  .ag-hoja .ag-marco{overflow:visible}
  .ag-hoja .ag-nav{position:sticky;bottom:0;padding-top:10px;padding-bottom:10px}
}

/* Sucursal (js/contacto.js) */
.sucursal{display:grid;gap:20px;grid-template-columns:minmax(0,1fr);align-items:start}
@media (min-width:860px){.sucursal{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}}
.mapa-sucursal{margin:0}.mapa-sucursal img{display:block;width:100%;height:auto;border-radius:var(--radio-tarjeta);box-shadow:var(--sombra)}
.mapa-sucursal figcaption{font-size:var(--t-chico);color:var(--tinta-2);margin-top:6px}
.mapa-sucursal figcaption a{color:inherit}
.fachada{color:var(--marca-oscura);font-weight:700;margin:0 0 8px}
.datos{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;margin:0 0 14px}
.datos dt{font-weight:800}.datos dd{margin:0}.datos .pendiente,.sucursal .pendiente{color:var(--tinta-2);font-style:italic}
.datos .chip{white-space:normal}
.como-llegar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.btn.wa{background:var(--ok);color:var(--sobre-marca)}
