/* 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 14px 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 14px 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{position:relative;display:grid;place-items:center;height:clamp(168px,44vw,200px);padding:18px 22px;background:linear-gradient(180deg,var(--banda),var(--superficie))}
.az-fig .armazon{max-width:190px}
/* Hueco listo para la foto real 4:3 del cliente (pendiente): llena la figura y recorta sin deformar. */
.az-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.az-ilus{position:absolute;left:10px;top:10px;padding:2px 10px;border-radius:999px;background:color-mix(in srgb,var(--superficie) 85%,transparent);color:var(--tinta-2);font-size:var(--t-chico);font-weight:700;line-height:1.5}
.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{margin:0 0 16px}
.az-filtros-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:10px}
.az-filtrar,.az-ver{display:none}
.az-filtrar{align-items:center;gap:8px}
.az-filtrar-n{font-weight:800}
/* Celular: solo «Filtrar»; los campos se abren en la hoja (adoptados: dentro de .hm ya no están en #azFiltros). */
@media (max-width:759px){.az-filtrar{display:inline-flex}#azFiltros .az-filtros-campos{display:none}}
.hm .az-filtros-campos{grid-template-columns:minmax(0,1fr);gap:14px;padding-bottom:4px}
.hm .az-ver{display:flex;width:100%;margin-top:4px}
.az-filtros-campos 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 a[href^="tel:"]{display:inline-flex;align-items:center;min-height:44px}
.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)}

/* Botones de acción (compartir, copiar, imprimir, descargar, WhatsApp…) con el emoji 3D del set (regla del dueño,
   24-oct-2026); si la imagen no carga, ocultarRotos() la esconde y queda el texto (o el SVG de respaldo, si lo hay). */
.emoji.accion{width:24px;height:24px;flex:none}
.emoji.accion:not([hidden]) + svg{display:none}
.btn:has(>.emoji.accion){gap:8px}

/* Patrón de fluoresceína (js/clinico.js › fluoSVG): córnea con luz azul cobalto, película verde-amarilla y toque oscuro.
   Lo usan la hoja de contactología del Optometrista y cualquier explicación del Sitio (reuse-first). */
.fluo-svg{display:block;width:56px;height:56px}
.fl-cornea,.fl-toque{fill:var(--fluo-fondo)}
.fl-v{fill:var(--fluo)}
.fl-aro{fill:none;stroke:var(--fluo)}
.fl-lente{fill:none;stroke:color-mix(in srgb,var(--superficie) 55%,transparent);stroke-width:1}
.fluo-svg .o2{opacity:.25}.fluo-svg .o3{opacity:.35}.fluo-svg .o8{opacity:.8}.fluo-svg .o9{opacity:.95}

/* Receta óptica (hoja verde «Prescripción óptica»): tabla OD/OI con los 8 campos; en angosto, cada ojo en su bloque. */
.rx-optica{container-type:inline-size;border-top:6px solid var(--acento-claro)}
.rx-paciente{margin:4px 0 0;color:var(--tinta-2);font-size:var(--t-chico);font-weight:600}
.rx-tabla-env{overflow-x:auto;max-width:100%;margin-top:8px}
.rx-tabla th,.rx-tabla td{white-space:nowrap}
@container (max-width:560px){
  .rx-tabla thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .rx-tabla tbody tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 10px;padding:10px 0;border-bottom:1px solid var(--linea)}
  .rx-tabla tbody th{grid-column:1/-1;border:0;padding:0;color:var(--marca);font-family:var(--display);font-size:1.125rem}
  .rx-tabla tbody td{display:grid;border:0;padding:0;font-weight:700}
  .rx-tabla tbody td::before{content:attr(data-t);font-size:var(--t-chico);font-weight:600;color:var(--tinta-2)}
}
.rx-datos{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(180px,100%),1fr));gap:8px 16px;margin:12px 0 0}
.rx-datos div{min-width:0}.rx-datos dt{font-size:var(--t-chico);color:var(--tinta-2);font-weight:600}.rx-datos dd{margin:0;font-weight:700}
.rx-firma{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:14px 0 0;font-size:var(--t-chico);color:var(--tinta-2)}
.firma-trazo{display:inline-block;width:120px;height:26px;background:var(--marca);-webkit-mask:no-repeat center/100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 26'%3E%3Cpath d='M4 20c10-14 16-14 18-4s8 6 14-6 10-2 12 6 12-12 20-8 6 12 16 4 14-10 30-2M2 24h116' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");mask:no-repeat center/100% 100% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 26'%3E%3Cpath d='M4 20c10-14 16-14 18-4s8 6 14-6 10-2 12 6 12-12 20-8 6 12 16 4 14-10 30-2M2 24h116' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")}

/* Detalle de un armazón (armazones.js › detalleArmazon): página del Sitio armazon.html y pantalla #armazon de la app. */
.az-enlace{color:inherit;text-decoration:none}.az-enlace:hover,.az-enlace:focus-visible{text-decoration:underline}
.az h3 .az-enlace::after{content:"";position:absolute;inset:0}.az{position:relative}.az-elegir{position:relative;z-index:1}
.por-confirmar{color:var(--aviso);font-weight:700}
.azd{display:grid;gap:20px;align-items:start}
@media (min-width:900px){.azd{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:36px}}
.azd-galeria{display:grid;gap:10px;min-width:0}
.azd-principal{position:relative;aspect-ratio:4/3;border-radius:var(--radio-tarjeta);overflow:hidden;background:var(--superficie);box-shadow:var(--sombra)}
.azd-principal img{display:block;width:100%;height:100%;object-fit:cover}
.azd-ilus{display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,var(--banda),var(--superficie))}.azd-ilus .armazon{width:min(320px,80%)}
.azd-minis{display:flex;gap:10px;overflow-x:auto;padding:2px}
.azd-mini{flex:0 0 88px;min-height:66px;padding:0;border:2px solid var(--linea);border-radius:var(--radio-chico);overflow:hidden;background:var(--superficie);cursor:pointer}
.azd-mini img{display:block;width:100%;height:100%;object-fit:cover}
.azd-mini[aria-pressed="true"]{border-color:var(--marca)}
.azd-info{display:flex;flex-direction:column;gap:12px;min-width:0}
.azd-marca{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;color:var(--tinta-2);font-weight:700;font-size:var(--t-chico);text-transform:uppercase;letter-spacing:.06em}
.azd-titulo{margin:0;font-family:var(--display);font-size:clamp(1.6rem,5vw,2.2rem);line-height:1.15;color:var(--tinta)}
.azd-precio{margin:0;font-size:1.25rem;font-weight:800}
.azd-datos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
.azd-datos div{padding:10px 12px;border-radius:var(--radio-chico);background:var(--banda)}
.azd-datos dt{color:var(--tinta-2);font-size:var(--t-chico)}.azd-datos dd{margin:0;font-weight:700}
.azd-medidas h2{margin:0 0 8px;font-size:var(--t-3)}
.azd-medidas ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.azd-medidas li{display:flex;flex-direction:column;padding:10px;border:1px solid var(--linea);border-radius:var(--radio-chico);text-align:center}
.azd-medidas b{font-size:1.25rem;font-variant-numeric:tabular-nums}.azd-medidas small{color:var(--tinta-2);font-size:var(--t-chico)}
.azd-medidas p{margin:0}
@media (max-width:420px){.azd-medidas ul{grid-template-columns:repeat(2,minmax(0,1fr))}.azd-datos{grid-template-columns:repeat(2,minmax(0,1fr))}}
.azd-acciones{display:flex;flex-wrap:wrap;gap:10px}.azd-acciones .btn{flex:1 1 160px;justify-content:center}
.azd-estado{margin:0;min-height:1.4em;color:var(--acento-texto);font-weight:700}
.volver-sitio{display:inline-flex;align-items:center;min-height:44px;margin-bottom:8px;color:var(--marca-oscura);font-weight:800;text-decoration:none}
.azd-medidas h2{font-family:var(--sans);font-size:var(--t-3);color:var(--tinta)}

/* Guía «¿Qué forma de cara tengo?» (js/guia-rostro.js) y sus retratos con silueta (js/caras.js). */
.guia-cara-btn{margin:0 0 12px}
.az-f-cara{display:grid;gap:2px}
.enlace-guia{justify-self:start;min-height:44px;padding:0 4px;border:0;background:none;color:var(--marca-oscura);font:inherit;font-size:var(--t-chico);font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.hoja.gr-hoja{width:min(760px,calc(100% - 32px))}
@media (max-width:640px){.hoja.gr-hoja{width:100%}}
.gr-paso{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:6px 0 0;font-weight:800}
.gr-paso b{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--marca);color:var(--sobre-marca);font-size:var(--t-chico)}
.gr-formas{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(128px,calc(50% - 6px)),1fr));gap:10px}
.gr-forma{display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:6px 6px 10px;border:2px solid var(--linea);border-radius:var(--radio);background:var(--superficie);color:var(--tinta);font:inherit;text-align:left;cursor:pointer}
.gr-forma[aria-pressed="true"]{border-color:var(--acento);background:var(--acento-suave)}
.gr-forma:hover{border-color:var(--marca)}
.gr-nombre{padding:4px 4px 0;font-weight:800}
.gr-forma small{padding:0 4px;color:var(--tinta-2);font-size:var(--t-chico);line-height:1.3}
.gr-fig{position:relative;display:block;aspect-ratio:4/5;border-radius:var(--radio-chico);overflow:hidden;background:var(--banda)}
.gr-fig img{display:block;width:100%;height:100%;object-fit:cover}
.gr-fig svg{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 0 1.5px color-mix(in srgb,var(--noche) 70%,transparent))}
.gr-silueta{fill:none;stroke:var(--acento-claro);stroke-width:3;stroke-dasharray:7 4;vector-effect:non-scaling-stroke}
.gr-fig.chica{width:64px;flex:none}
.gr-fig.chica .gr-silueta{stroke-width:2;stroke-dasharray:none}
.gr-nota{margin:0;color:var(--tinta-2);font-size:var(--t-chico)}
.gr-preguntas{display:grid;gap:12px}
.gr-pregunta{margin:0;padding:0;border:0;min-width:0}
.gr-pregunta legend{padding:0;margin-bottom:6px;font-weight:700}
.gr-ops{display:flex;flex-wrap:wrap;gap:8px}
.gr-ops label{position:relative}
.gr-ops input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.gr-ops label:has(input:checked){background:var(--marca);border-color:var(--marca);color:var(--sobre-marca)}
.gr-ops label:has(input:focus-visible){outline:3px solid var(--marca);outline-offset:2px}
.gr-resultado{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px;border-radius:var(--radio);background:var(--marca-suave)}
.gr-resultado div{display:flex;flex-direction:column;flex:1 1 140px;min-width:0}
.gr-resultado b{font-family:var(--display);font-size:var(--t-3)}
.gr-resultado small{color:var(--tinta-2);font-size:var(--t-chico)}
.gr-resultado .btn{flex:1 1 200px}
.gr-cam{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--linea)}
.gr-cam .btn{justify-self:start}
.gr-video{position:relative;aspect-ratio:4/3;max-width:420px;border-radius:var(--radio);overflow:hidden;background:var(--noche)}
.gr-video video{display:block;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.gr-video svg{position:absolute;inset:0;width:100%;height:100%}
.gr-video ellipse{fill:none;stroke:var(--acento-claro);stroke-width:.8;stroke-dasharray:3 2}
.gr-cam-msg{margin:0;color:var(--tinta-2);font-size:var(--t-chico)}

/* Detalle del armazón: selector de vista, «Va con cara» y ficha de especificaciones con cotas sobre la foto. */
.azd-vistas{display:flex;flex-wrap:wrap;gap:8px}
.azd-vista-nota{margin:0;color:var(--tinta-2);font-size:var(--t-chico)}
.azd-caras{display:grid;gap:10px}
.azd-caras h2,.azd-ficha h2{margin:0;font-family:var(--sans);font-size:var(--t-3);color:var(--tinta)}
.azd-caras-lista{display:flex;flex-wrap:wrap;gap:12px;margin:0;padding:0;list-style:none}
.azd-caras-lista li{display:flex;flex-direction:column;align-items:center;gap:4px;font-weight:700;font-size:var(--t-chico)}
.azd-caras .btn{justify-self:start}
.azd-cara-res{margin:0}
.azd-cara-res a{color:var(--marca-oscura);font-weight:700}
.azd-ficha{grid-column:1/-1;display:grid;gap:14px;margin-top:8px}
.spec-figs{display:grid;gap:12px}
@media (min-width:700px){.spec-figs{grid-template-columns:repeat(2,minmax(0,1fr))}}
.spec-fig{margin:0;display:grid;gap:6px;min-width:0}
.spec-fig figcaption{color:var(--tinta-2);font-size:var(--t-chico);font-weight:700}
.spec-foto{position:relative;aspect-ratio:4/3;border-radius:var(--radio-tarjeta);overflow:hidden;background:var(--superficie);box-shadow:var(--sombra)}
.spec-foto img{display:block;width:100%;height:100%;object-fit:cover}
.azd-principal img.recorte,.spec-foto img.recorte{object-fit:contain;padding:0 6%;background:var(--superficie);box-sizing:border-box}
.spec-capa{position:absolute;inset:0;width:100%;height:100%}
.spec-capa path{fill:none;stroke:var(--marca);stroke-width:1.6;vector-effect:non-scaling-stroke}
.spec-m{position:absolute;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--marca);color:var(--sobre-marca);font-size:var(--t-chico);font-weight:800;line-height:1;transform:translate(-50%,-50%);box-shadow:0 0 0 2px var(--superficie)}
.spec-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:8px;margin:0;padding:0;list-style:none;counter-reset:spec}
.spec-lista li{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 12px;border:1px solid var(--linea);border-radius:var(--radio-chico);counter-increment:spec}
.spec-n{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--marca-suave-2);color:var(--marca-oscura);font-size:var(--t-chico);font-weight:800}
.spec-n::before{content:counter(spec)}
.spec-t{flex:1 1 auto;min-width:0}
.spec-v{font-weight:800;text-align:right;font-variant-numeric:tabular-nums}
.spec-v .por-confirmar{font-weight:700}
.spec-grabado{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:0;padding:12px;border-radius:var(--radio-chico);background:var(--banda)}
.grabado{padding:2px 10px;border-radius:6px;background:var(--superficie);border:1px solid var(--linea);font-family:ui-monospace,monospace;letter-spacing:.08em}
.spec-grabado small{color:var(--tinta-2);font-size:var(--t-chico)}
