/* Fashion Lens Óptica — estilos de la tienda */
:root {
	--flo-cobalto: #13235B;
	--flo-violeta: #6C3CE1;
	--flo-verde: #19C3A6;
	--flo-ambar: #FFB020;
	--flo-coral: #FF5C7A;
}
.flo-app {
	--ink: var(--flo-cobalto);
	--ink-2: #4A5478;
	--ink-3: #7A83A3;
	--line: #E2E6F0;
	--bg: #FFFFFF;
	--bg-2: #F4F6FB;
	--r-sm: 8px;
	--r: 14px;
	--r-lg: 22px;
	--display: 'Bricolage Grotesque', 'Figtree', system-ui, sans-serif;
	--body: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
	font-family: var(--body);
	font-size: 16px;
	line-height: 1.55;
	color: var(--ink);
	-webkit-font-smoothing: antialiased;
}
.flo-app *, .flo-app *::before, .flo-app *::after { box-sizing: border-box; }
.flo-app :where(h1, h2, h3, p, ul, ol, dl, dd, fieldset, figure) { margin: 0; padding: 0; }
.flo-app :where(ul, ol) { list-style: none; }
.flo-app :where(button) { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; }
.flo-app :where(a) { color: inherit; }
.flo-app :where(img, svg) { display: block; max-width: 100%; }
.flo-app :where(input, select, textarea) { font: inherit; color: inherit; }
.flo-app :focus-visible { outline: 3px solid var(--flo-violeta); outline-offset: 2px; border-radius: 6px; }
.flo-app [hidden] { display: none !important; }
.flo-app .flo-ssr { padding: 24px; }
.flo-app.is-ready .flo-ssr { display: none; }

body.flo-fullpage { margin: 0; background: #fff; }
.flo-page { margin: 0; }
html.flo-lock { overflow: hidden; }
html.flo-has-header { scroll-padding-top: 84px; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html.flo-has-header { scroll-behavior: auto; } }

.flo-wrap { width: min(1240px, 100% - 40px); margin-inline: auto; }
.flo-ico { width: 20px; height: 20px; flex: none; }

/* Botones */
.flo-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 0 22px; border-radius: 999px; border: 2px solid transparent;
	font-weight: 700; font-size: 15px; text-decoration: none; letter-spacing: .01em;
	transition: transform .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.flo-btn:active { transform: translateY(1px); }
.flo-btn:disabled { opacity: .55; cursor: not-allowed; }
.flo-btn--ambar { background: var(--flo-ambar); color: var(--flo-cobalto); }
.flo-btn--ambar:hover { background: #ffc24d; }
.flo-btn--ghost { border-color: rgba(255,255,255,.5); color: #fff; }
.flo-btn--ghost:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.flo-btn--coral { background: var(--flo-coral); color: #fff; box-shadow: 0 6px 18px -8px var(--flo-coral); }
.flo-btn--coral:hover { background: #ff4369; }
.flo-btn--cobalto { background: var(--flo-cobalto); color: #fff; }
.flo-btn--cobalto:hover { background: #1c3080; }
.flo-btn--line { border-color: var(--line); background: #fff; color: var(--ink); }
.flo-btn--line:hover { border-color: var(--ink); }
.flo-btn--wa { background: #1FAF5A; color: #fff; }
.flo-btn--wa:hover { background: #18984d; }
.flo-btn--block { width: 100%; }
.flo-btn--grow { flex: 1; }
.flo-link { display: inline-flex; align-items: center; gap: 6px; color: var(--flo-violeta); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; font-size: 15px; }
.flo-link--center { display: flex; margin: 12px auto 0; }

/* Barra superior y cabecera */
.flo-topbar { background: var(--flo-cobalto); color: rgba(255,255,255,.82); font-size: 13.5px; }
.flo-topbar .flo-wrap { display: flex; gap: 24px; align-items: center; min-height: 38px; flex-wrap: wrap; }
.flo-topbar span, .flo-topbar a { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.flo-topbar a { margin-left: auto; color: #fff; font-weight: 600; }
.flo-topbar .flo-ico { width: 16px; height: 16px; color: var(--flo-ambar); }

.flo-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.94); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid var(--line); }
.admin-bar .flo-header { top: 32px; }
.flo-header .flo-wrap { display: flex; align-items: center; gap: 28px; min-height: 72px; }
.flo-logo { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--flo-cobalto); }
.flo-logo svg { width: 48px; height: 22px; }
.flo-logo span { display: flex; flex-direction: column; line-height: 1.05; }
.flo-logo strong { font-family: var(--display); font-weight: 800; font-size: 21px; letter-spacing: -.02em; }
.flo-logo small { font-size: 12.5px; color: var(--ink-3); font-weight: 500; }
.flo-nav { display: flex; gap: 4px; margin-left: auto; }
.flo-nav a { padding: 8px 12px; border-radius: 999px; text-decoration: none; font-weight: 600; font-size: 15px; color: var(--ink-2); }
.flo-nav a:hover { color: var(--ink); background: var(--bg-2); }
.flo-header-actions { display: flex; gap: 8px; align-items: center; }
.flo-cart-btn { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 999px; background: var(--flo-cobalto); color: #fff; font-weight: 700; font-size: 15px; }
.flo-cart-btn:hover { background: #1c3080; }
.flo-cart-btn b, .flo-fab b { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 99px; background: var(--flo-coral); color: #fff; font-size: 12.5px; }
.flo-menu-btn { display: none; width: 44px; height: 44px; place-items: center; border-radius: 12px; border: 1px solid var(--line); }

/* Hero */
.flo-hero { position: relative; overflow: hidden; background: var(--flo-cobalto); color: #fff; padding: 72px 0 0; isolation: isolate; }
.flo-hero::before {
	content: ""; position: absolute; inset: -20% -10% auto auto; width: 70%; height: 140%; z-index: -1;
	background: radial-gradient(closest-side, rgba(108,60,225,.55), transparent 70%);
}
.flo-hero::after {
	content: ""; position: absolute; inset: auto auto -40% -10%; width: 55%; height: 90%; z-index: -1;
	background: radial-gradient(closest-side, rgba(25,195,166,.28), transparent 70%);
}
.flo-hero > .flo-wrap:first-child { display: grid; grid-template-columns: 1fr 1.1fr; gap: 40px; align-items: center; }
.flo-hero h1 {
	font-family: var(--display); font-weight: 800; letter-spacing: -.012em;
	font-size: clamp(42px, 6.2vw, 80px); line-height: .98; margin-bottom: 22px;
	font-variation-settings: "opsz" 96;
}
.flo-hero-copy p { font-size: 19px; max-width: 34ch; color: rgba(255,255,255,.82); }
.flo-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.flo-hero-visual { position: relative; }
.flo-hero-art { width: 100%; height: auto; filter: drop-shadow(0 30px 40px rgba(5,10,40,.45)); }
.flo-sheen { animation: flo-sheen 2.4s cubic-bezier(.4,0,.2,1) .4s 1 both; }
@keyframes flo-sheen { from { transform: skewX(-18deg) translateX(0); } to { transform: skewX(-18deg) translateX(900px); } }
@media (prefers-reduced-motion: reduce) { .flo-sheen { animation: none; transform: skewX(-18deg) translateX(330px); } }

.flo-facts { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 64px; border-top: 1px solid rgba(255,255,255,.14); }
.flo-facts li { display: flex; gap: 14px; padding: 26px 24px 30px 0; align-items: flex-start; }
.flo-facts li + li { padding-left: 24px; border-left: 1px solid rgba(255,255,255,.14); }
.flo-facts .flo-ico { width: 28px; height: 28px; color: var(--flo-verde); margin-top: 2px; }
.flo-facts li:nth-child(2) .flo-ico { color: var(--flo-ambar); }
.flo-facts li:nth-child(3) .flo-ico { color: var(--flo-coral); }
.flo-facts strong { display: block; font-size: 16px; color: #fff; }
.flo-facts span { font-size: 14.5px; color: rgba(255,255,255,.72); }

/* Categorías */
.flo-cats { padding: 36px 0 0; }
.flo-cat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.flo-cat {
	position: relative; text-align: left; padding: 20px 20px 18px; border-radius: var(--r);
	background: color-mix(in srgb, var(--c) 10%, #fff); border: 1px solid color-mix(in srgb, var(--c) 28%, #fff);
	overflow: hidden; transition: border-color .15s, transform .15s;
}
.flo-cat::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--c); }
.flo-cat:hover { border-color: var(--c); transform: translateY(-2px); }
.flo-cat strong { display: block; font-family: var(--display); font-size: 19px; font-weight: 700; letter-spacing: -.01em; }
.flo-cat span { font-size: 14px; color: var(--ink-2); }

/* Encabezados de sección */
.flo-section-head { max-width: 640px; margin-bottom: 28px; }
.flo-section-head h2 { font-family: var(--display); font-weight: 800; font-size: clamp(30px, 3.6vw, 44px); line-height: 1.05; letter-spacing: -.03em; margin-bottom: 10px; }
.flo-section-head p { color: var(--ink-2); font-size: 17px; }
.flo-section-head--light h2 { color: #fff; }

/* Catálogo */
.flo-catalog { padding: 64px 0 80px; }
.flo-toolbar { display: flex; gap: 12px; align-items: center; margin-bottom: 24px; flex-wrap: wrap; }
.flo-search { flex: 1 1 320px; display: flex; align-items: center; gap: 10px; height: 50px; padding: 0 18px; border-radius: 999px; background: var(--bg-2); border: 1px solid transparent; }
.flo-search:focus-within { border-color: var(--flo-violeta); background: #fff; }
.flo-search .flo-ico { color: var(--ink-3); }
.flo-search input { flex: 1; border: 0; background: none; outline: none; height: 100%; font-size: 15.5px; min-width: 0; }
.flo-sort { display: flex; align-items: center; gap: 8px; font-size: 14.5px; color: var(--ink-2); }
.flo-sort select, .flo-filters select { height: 44px; padding: 0 36px 0 14px; border-radius: 12px; border: 1px solid var(--line); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313235B' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 16px; appearance: none; }
.flo-filter-toggle { display: none; }

.flo-catalog-body { display: grid; grid-template-columns: 250px 1fr; gap: 36px; align-items: start; }
.flo-filters { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 24px; }
.flo-filters fieldset { border: 0; }
.flo-filters legend { display: flex; justify-content: space-between; width: 100%; font-weight: 700; font-size: 15px; margin-bottom: 10px; }
.flo-filters legend output { font-weight: 600; color: var(--flo-violeta); }
.flo-filters select { width: 100%; }
.flo-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.flo-chip { padding: 7px 13px; border-radius: 999px; border: 1px solid var(--line); font-size: 14px; font-weight: 600; color: var(--ink-2); }
.flo-chip:hover { border-color: var(--ink-3); }
.flo-chip.is-on, .flo-chip[aria-pressed="true"] { background: var(--flo-cobalto); border-color: var(--flo-cobalto); color: #fff; }
.flo-shapes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.flo-shape { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 4px 8px; border-radius: 12px; border: 1px solid var(--line); font-size: 12.5px; font-weight: 600; color: var(--ink-2); }
.flo-shape svg { width: 34px; height: 26px; }
.flo-shape:hover { border-color: var(--ink-3); }
.flo-shape[aria-pressed="true"] { border-color: var(--flo-violeta); background: color-mix(in srgb, var(--flo-violeta) 9%, #fff); color: var(--flo-violeta); }
.flo-filters input[type="range"] { width: 100%; accent-color: var(--flo-violeta); }
.flo-filters .flo-link { align-self: flex-start; font-size: 14px; }

.flo-count { font-size: 14px; color: var(--ink-3); margin-bottom: 14px; }
.flo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(232px, 1fr)); gap: 20px; }
.flo-card { display: flex; flex-direction: column; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); overflow: hidden; transition: border-color .15s; }
.flo-card:hover { border-color: color-mix(in srgb, var(--pc) 45%, var(--line)); }
.flo-card-media { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 3; width: 100%; background: radial-gradient(120% 90% at 50% 100%, var(--pt), #fff 75%); padding: 18px; }
.flo-card-media img { width: 100%; height: 100%; object-fit: contain; }
.flo-card-media .flo-frame { width: 92%; transition: transform .25s ease; }
.flo-card:hover .flo-card-media .flo-frame { transform: scale(1.04); }
.flo-tag { position: absolute; top: 12px; padding: 4px 10px; border-radius: 99px; font-size: 12.5px; font-weight: 700; }
.flo-tag--oferta { left: 12px; background: var(--flo-coral); color: #fff; }
.flo-tag--rx { right: 12px; background: #fff; color: var(--flo-violeta); border: 1px solid color-mix(in srgb, var(--flo-violeta) 30%, #fff); }
.flo-card-body { display: flex; flex-direction: column; gap: 4px; padding: 14px 18px 18px; flex: 1; }
.flo-card-brand { font-size: 13px; color: var(--ink-3); font-weight: 600; }
.flo-card h3 { font-family: var(--display); font-size: 18.5px; font-weight: 700; letter-spacing: -.015em; line-height: 1.2; }
.flo-card h3 button { text-align: left; }
.flo-card h3 button:hover { color: var(--flo-violeta); }
.flo-card-color { display: flex; align-items: center; gap: 7px; font-size: 13.5px; color: var(--ink-2); }
.flo-card-color i { width: 12px; height: 12px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); }
.flo-card-foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 12px; }
.flo-price { display: flex; flex-direction: column; line-height: 1.15; }
.flo-price del { font-size: 13px; color: var(--ink-3); }
.flo-price strong { font-size: 19px; font-weight: 800; font-variant-numeric: tabular-nums; }
.flo-price small { font-size: 13px; color: var(--ink-3); font-weight: 500; }
.flo-price--lg { flex-direction: row; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 6px 0 14px; }
.flo-price--lg strong { font-size: 30px; font-family: var(--display); letter-spacing: -.02em; }
.flo-price--lg del { font-size: 16px; }
.flo-add { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px 0 10px; border-radius: 999px; background: var(--flo-cobalto); color: #fff; font-weight: 700; font-size: 14px; }
.flo-add:hover { background: var(--flo-violeta); }
.flo-add .flo-ico { width: 18px; height: 18px; }
.flo-soldout { font-size: 13.5px; font-weight: 700; color: var(--ink-3); }
.flo-empty { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 56px 20px; text-align: center; color: var(--ink-2); border: 1px dashed var(--line); border-radius: var(--r-lg); }

/* Proceso */
.flo-process { background: var(--flo-cobalto); color: #fff; padding: 72px 0; position: relative; overflow: hidden; }
.flo-process::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(108,60,225,.35), transparent 40%, transparent 65%, rgba(25,195,166,.25)); pointer-events: none; }
.flo-process .flo-wrap { position: relative; }
.flo-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; counter-reset: none; }
.flo-steps li { padding: 0 24px 0 0; position: relative; }
.flo-steps li + li { padding-left: 24px; border-left: 1px solid rgba(255,255,255,.16); }
.flo-step-n { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; font-family: var(--display); font-weight: 800; font-size: 19px; margin-bottom: 16px; background: var(--flo-ambar); color: var(--flo-cobalto); }
.flo-steps li:nth-child(2) .flo-step-n { background: var(--flo-coral); color: #fff; }
.flo-steps li:nth-child(3) .flo-step-n { background: var(--flo-violeta); color: #fff; }
.flo-steps li:nth-child(4) .flo-step-n { background: var(--flo-verde); color: var(--flo-cobalto); }
.flo-steps strong { display: block; font-size: 18px; margin-bottom: 6px; }
.flo-steps p { color: rgba(255,255,255,.75); font-size: 15px; }

/* Lunas */
.flo-lens { padding: 80px 0; }
.flo-lens-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.flo-lens-col { border-radius: var(--r-lg); padding: 28px 30px; background: var(--bg-2); }
.flo-lens-col--ar { background: linear-gradient(135deg, color-mix(in srgb, var(--flo-violeta) 13%, #fff), color-mix(in srgb, var(--flo-verde) 14%, #fff) 60%, color-mix(in srgb, var(--flo-ambar) 16%, #fff)); }
.flo-lens-col h3 { font-family: var(--display); font-size: 22px; font-weight: 700; margin-bottom: 12px; }
.flo-price-list li { display: flex; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid rgba(19,35,91,.1); font-size: 15.5px; }
.flo-price-list li:last-child { border-bottom: 0; }
.flo-price-list b { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Servicios */
.flo-services { padding: 80px 0; background: var(--bg-2); }
.flo-service-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 48px; }
.flo-service-list li { display: flex; gap: 18px; padding: 24px 0; border-top: 1px solid var(--line); }
.flo-service-ico { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 16px; background: var(--c); color: #fff; }
.flo-service-ico .flo-ico { width: 26px; height: 26px; }
.flo-service-list h3 { font-size: 18.5px; font-weight: 700; margin-bottom: 4px; }
.flo-service-list p { color: var(--ink-2); font-size: 15.5px; max-width: 52ch; }
.flo-service-meta { margin-top: 8px; font-size: 14px !important; font-weight: 600; color: var(--ink) !important; }
.flo-services-cta { margin-top: 28px; }

/* Citas y contacto */
.flo-booking { padding: 80px 0; }
.flo-booking-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: stretch; }
.flo-view-citas .flo-booking-grid { grid-template-columns: minmax(0, 640px); }
.flo-booking-form { padding: 36px; border-radius: var(--r-lg); border: 1px solid var(--line); background: #fff; }
.flo-booking-form h2 { font-family: var(--display); font-weight: 800; font-size: 34px; letter-spacing: -.03em; margin-bottom: 6px; }
.flo-booking-form > p { color: var(--ink-2); margin-bottom: 22px; }
.flo-app form label, .flo-overlays form label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; margin-bottom: 14px; }
.flo-app form :is(input:not([type="radio"]):not([type="checkbox"]):not([type="file"]), select, textarea),
.flo-overlays form :is(input:not([type="radio"]):not([type="checkbox"]):not([type="file"]), select, textarea) {
	width: 100%; min-height: 48px; padding: 10px 14px; border-radius: 12px; border: 1px solid #CDD3E3; background: #fff; font-weight: 500; font-size: 15.5px;
}
.flo-app form textarea, .flo-overlays form textarea { min-height: 72px; resize: vertical; }
.flo-app form :is(input, select, textarea):focus, .flo-overlays form :is(input, select, textarea):focus { outline: none; border-color: var(--flo-violeta); box-shadow: 0 0 0 3px color-mix(in srgb, var(--flo-violeta) 22%, transparent); }
.flo-app .is-invalid, .flo-overlays .is-invalid { border-color: var(--flo-coral) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--flo-coral) 20%, transparent) !important; }
.flo-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.flo-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.flo-form-msg { min-height: 22px; font-size: 14.5px; font-weight: 600; margin-bottom: 10px; }
.flo-form-msg.is-err { color: #D2264A; }
.flo-form-msg.is-ok { color: #0D8A72; }
.flo-form-msg a { color: inherit; }

.flo-contact { display: flex; flex-direction: column; border-radius: var(--r-lg); overflow: hidden; background: var(--flo-cobalto); color: #fff; }
.flo-map { flex: 1; min-height: 260px; background: #24346f; }
.flo-map iframe { display: block; width: 100%; height: 100%; min-height: 260px; border: 0; filter: saturate(.85); }
.flo-contact-info { padding: 28px 32px 32px; }
.flo-contact-info h3 { font-family: var(--display); font-size: 24px; font-weight: 700; margin-bottom: 14px; }
.flo-contact-info p { display: flex; gap: 12px; margin-bottom: 12px; color: rgba(255,255,255,.85); font-size: 15.5px; }
.flo-contact-info .flo-ico { color: var(--flo-ambar); margin-top: 2px; }
.flo-contact-info a { color: #fff; font-weight: 700; }
.flo-contact-info .flo-btn { margin-top: 8px; }

/* Pie */
.flo-footer { background: #0D1844; color: rgba(255,255,255,.72); padding: 48px 0 36px; font-size: 14.5px; }
.flo-footer .flo-wrap { display: grid; grid-template-columns: 1fr auto; gap: 24px 48px; }
.flo-footer .flo-logo { color: #fff; margin-bottom: 12px; }
.flo-footer .flo-logo small { color: rgba(255,255,255,.6); }
.flo-footer nav { display: flex; flex-wrap: wrap; gap: 6px 22px; align-content: start; }
.flo-footer nav a { text-decoration: none; color: #fff; font-weight: 600; }
.flo-footer nav a:hover { color: var(--flo-ambar); }
.flo-legal { grid-column: 1 / -1; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); font-size: 13px; }

/* ---------- Capas: carrito, modal, aviso ---------- */
.flo-overlays { position: relative; z-index: 99990; }
.flo-scrim { position: fixed; inset: 0; background: rgba(9,16,48,.55); backdrop-filter: blur(2px); z-index: 1; }
.flo-drawer {
	position: fixed; top: 0; right: 0; bottom: 0; width: min(440px, 100%); z-index: 2;
	display: flex; flex-direction: column; background: #fff; transform: translateX(105%); transition: transform .3s cubic-bezier(.3,.7,.2,1);
	visibility: hidden;
}
.flo-drawer.is-open { transform: none; visibility: visible; }
.flo-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid var(--line); }
.flo-drawer-head h2 { font-family: var(--display); font-size: 24px; font-weight: 800; letter-spacing: -.02em; }
.flo-x { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--bg-2); }
.flo-x:hover { background: var(--line); }
.flo-lines { flex: 1; overflow: auto; padding: 8px 24px; }
.flo-lines li { display: grid; grid-template-columns: 84px 1fr auto; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--line); align-items: start; }
.flo-line-media { display: grid; place-items: center; height: 70px; border-radius: 12px; background: var(--pt); padding: 6px; }
.flo-line-media img { width: 100%; height: 100%; object-fit: contain; }
.flo-line-info strong { display: block; font-size: 15px; line-height: 1.3; }
.flo-line-info small { display: block; font-size: 13px; color: var(--ink-2); margin-top: 2px; }
.flo-line-row { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; gap: 8px; }
.flo-line-row b { font-variant-numeric: tabular-nums; }
.flo-line-del { color: var(--ink-3); padding: 4px; border-radius: 8px; }
.flo-line-del:hover { color: var(--flo-coral); }
.flo-drawer-foot { padding: 18px 24px 24px; border-top: 1px solid var(--line); background: #fff; }
.flo-sub { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 14px; font-size: 15px; }
.flo-sub strong { font-size: 22px; font-family: var(--display); letter-spacing: -.02em; }
.flo-free { position: relative; display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; margin-bottom: 16px; padding-bottom: 12px; color: var(--ink-2); }
.flo-free::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; border-radius: 9px; background: var(--bg-2); }
.flo-free i { position: absolute; left: 0; bottom: 0; height: 6px; width: var(--w); border-radius: 9px; background: linear-gradient(90deg, var(--flo-violeta), var(--flo-verde)); z-index: 1; }
.flo-free.is-done { color: #0D8A72; padding-bottom: 0; }
.flo-free.is-done::after { display: none; }
.flo-free .flo-ico { color: var(--flo-verde); }
.flo-empty--cart { border: 0; margin: auto 24px; }
.flo-empty--cart .flo-frame { width: 160px; }

.flo-qty { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; height: 48px; }
.flo-qty button { display: grid; place-items: center; width: 42px; height: 100%; border-radius: 999px; }
.flo-qty button:hover { background: var(--bg-2); }
.flo-qty input { width: 38px; border: 0; text-align: center; font-weight: 700; background: none; -moz-appearance: textfield; }
.flo-qty input::-webkit-inner-spin-button { -webkit-appearance: none; }
.flo-qty--sm { height: 34px; }
.flo-qty--sm button { width: 32px; }
.flo-qty--sm .flo-ico { width: 16px; height: 16px; }
.flo-qty--sm span { min-width: 22px; text-align: center; font-weight: 700; font-size: 14px; }

.flo-modal { position: fixed; inset: 0; z-index: 3; display: grid; place-items: center; padding: 24px; pointer-events: none; visibility: hidden; }
.flo-modal.is-open { visibility: visible; }
.flo-modal-box {
	position: relative; width: min(1040px, 100%); max-height: calc(100vh - 48px); overflow: auto; pointer-events: auto;
	background: #fff; border-radius: 24px; box-shadow: 0 40px 80px -20px rgba(9,16,48,.5);
	opacity: 0; transform: translateY(16px) scale(.98); transition: opacity .2s ease, transform .25s ease;
}
.flo-modal.is-open .flo-modal-box { opacity: 1; transform: none; }
.flo-modal-box > .flo-x { position: absolute; top: 16px; right: 16px; z-index: 2; }

.flo-pd { display: grid; grid-template-columns: 1fr 1fr; }
.flo-pd-media { position: relative; display: flex; flex-direction: column; justify-content: center; gap: 14px; padding: 40px; background: radial-gradient(110% 80% at 50% 90%, var(--pt), #F8F9FC 75%); border-radius: 24px 0 0 24px; min-height: 380px; }
.flo-pd-media > .flo-frame { width: 100%; }
@media (min-width: 901px) { .flo-pd-media { position: sticky; top: 0; align-self: start; height: calc(100vh - 48px); max-height: 760px; } }
.flo-pd-media > img { width: 100%; max-height: 420px; object-fit: contain; }
.flo-thumbs { display: flex; gap: 8px; justify-content: center; }
.flo-thumbs button { width: 56px; height: 56px; border-radius: 10px; border: 1px solid var(--line); background: #fff; padding: 4px; }
.flo-thumbs img { width: 100%; height: 100%; object-fit: contain; }
.flo-pd-info { padding: 40px 40px 32px; }
.flo-pd-info h2 { font-family: var(--display); font-weight: 800; font-size: clamp(26px, 3vw, 34px); line-height: 1.08; letter-spacing: -.03em; padding-right: 40px; margin-top: 4px; }
.flo-pd-desc { color: var(--ink-2); font-size: 15.5px; }
.flo-pd-desc p + p { margin-top: 8px; }
.flo-specs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 20px; margin: 18px 0 6px; }
.flo-specs div { padding: 9px 0; border-bottom: 1px solid var(--line); }
.flo-specs dt { font-size: 12.5px; color: var(--ink-3); }
.flo-specs dd { font-size: 14.5px; font-weight: 600; }
.flo-config { margin-top: 22px; padding-top: 18px; border-top: 2px solid var(--bg-2); }
.flo-config fieldset, .flo-checkout fieldset { border: 0; margin-bottom: 18px; }
.flo-config legend, .flo-checkout legend { font-weight: 800; font-size: 16px; margin-bottom: 10px; }
.flo-config legend small, .flo-checkout legend small { font-weight: 500; color: var(--ink-3); font-size: 13px; margin-left: 6px; }
.flo-options { display: flex; flex-direction: column; gap: 8px; }
.flo-options--chips { flex-direction: row; flex-wrap: wrap; }
.flo-options--two { display: grid; grid-template-columns: 1fr 1fr; }
.flo-opt { position: relative; display: block; cursor: pointer; margin: 0 !important; }
.flo-opt input { position: absolute; opacity: 0; pointer-events: none; }
.flo-opt > span { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 14px 12px 42px; border-radius: 12px; border: 1px solid #CDD3E3; font-size: 14.5px; position: relative; transition: border-color .12s, background-color .12s; height: 100%; }
.flo-opt > span::before { content: ""; position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; margin-top: -9px; border-radius: 50%; border: 2px solid #AEB6CC; background: #fff; }
.flo-opt input[type="checkbox"] + span::before { border-radius: 5px; }
.flo-opt input:checked + span { border-color: var(--flo-violeta); background: color-mix(in srgb, var(--flo-violeta) 7%, #fff); }
.flo-opt input:checked + span::before { border-color: var(--flo-violeta); background: var(--flo-violeta); box-shadow: inset 0 0 0 3px #fff; }
.flo-opt input:checked[type="checkbox"] + span::before { box-shadow: none; background: var(--flo-violeta) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat; }
.flo-opt input:focus-visible + span { outline: 3px solid var(--flo-violeta); outline-offset: 2px; }
.flo-opt b { font-weight: 600; }
.flo-opt em { font-style: normal; font-weight: 700; white-space: nowrap; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.flo-opt--chip > span { padding: 9px 12px 9px 36px; gap: 8px; }
.flo-opt--chip > span::before { left: 12px; width: 16px; height: 16px; margin-top: -8px; }
.flo-opt--chip em { font-weight: 600; font-size: 13px; }
.flo-options--two .flo-opt > span { flex-direction: column; align-items: flex-start; gap: 2px; padding: 16px 16px 16px 44px; }
.flo-options--two .flo-opt > span::before { top: 18px; margin-top: 0; }
.flo-options--two .flo-opt .flo-ico { color: var(--flo-violeta); margin-bottom: 4px; }
.flo-options--two .flo-opt em { font-weight: 500; font-size: 13px; white-space: normal; }
.flo-opt--row > span { padding-block: 14px; }
.is-disabled { opacity: .45; }
.is-disabled .flo-opt { cursor: not-allowed; }
.flo-config-note { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: var(--ink-2); background: var(--bg-2); padding: 12px 14px; border-radius: 12px; }
.flo-config-note .flo-ico { color: var(--flo-violeta); width: 18px; height: 18px; margin-top: 2px; }
.flo-config-note a { color: var(--flo-violeta); font-weight: 600; }
.flo-pd-buy { display: flex; gap: 10px; margin-top: 22px; position: sticky; bottom: 0; background: #fff; padding: 12px 0; }
.flo-stock-low { font-size: 13.5px; font-weight: 700; color: #C2410C; margin-bottom: 8px; }

/* Checkout */
.flo-checkout { display: grid; grid-template-columns: 1.35fr 1fr; }
.flo-co-main { padding: 36px 40px; }
.flo-co-main h2 { font-family: var(--display); font-weight: 800; font-size: 32px; letter-spacing: -.03em; margin-bottom: 22px; }
.flo-co-sum { padding: 36px 32px; background: var(--bg-2); border-radius: 0 24px 24px 0; align-self: stretch; }
.flo-co-sum h3 { font-family: var(--display); font-size: 22px; margin-bottom: 10px; padding-right: 48px; }
.flo-co-sum ul { margin-bottom: 14px; }
.flo-co-sum li { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 14.5px; }
.flo-co-sum li b { white-space: nowrap; font-variant-numeric: tabular-nums; }
.flo-co-sum li small { display: block; color: var(--ink-3); font-size: 12.5px; }
.flo-co-sum .flo-sub { margin-bottom: 6px; }
.flo-sub--total { padding-top: 10px; margin: 6px 0 16px !important; border-top: 2px solid var(--ink); }
.flo-fine { font-size: 13px; color: var(--ink-3); margin-top: 12px; }
.flo-addr { margin-top: 12px; }
.flo-rx { background: linear-gradient(135deg, color-mix(in srgb, var(--flo-violeta) 7%, #fff), color-mix(in srgb, var(--flo-verde) 8%, #fff)); padding: 18px; border-radius: 16px; }
.flo-rx-table { display: grid; grid-template-columns: 44px repeat(3, 1fr); gap: 8px; align-items: center; margin-bottom: 12px; font-size: 13px; font-weight: 600; color: var(--ink-2); }
.flo-rx-table b { font-size: 14px; color: var(--ink); }
.flo-rx-table input { min-height: 42px !important; text-align: center; }
.flo-file { flex-direction: row !important; align-items: center; gap: 10px !important; padding: 14px; border-radius: 12px; border: 2px dashed #B9C1D8; background: #fff; cursor: pointer; color: var(--ink-2); margin: 0 !important; }
.flo-file:hover { border-color: var(--flo-violeta); color: var(--flo-violeta); }
.flo-file input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.flo-file:focus-within { outline: 3px solid var(--flo-violeta); outline-offset: 2px; }

.flo-done { text-align: center; padding: 56px 40px 40px; max-width: 560px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.flo-done-ico { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: linear-gradient(135deg, var(--flo-verde), var(--flo-violeta)); color: #fff; }
.flo-done-ico .flo-ico { width: 36px; height: 36px; stroke-width: 2.4; }
.flo-done h2 { font-family: var(--display); font-size: 34px; font-weight: 800; letter-spacing: -.03em; }
.flo-done-code { font-size: 16px; }
.flo-done p { color: var(--ink-2); }

.flo-toast {
	position: fixed; left: 50%; bottom: 24px; z-index: 4; display: flex; align-items: center; gap: 10px;
	padding: 12px 12px 12px 16px; border-radius: 14px; background: var(--flo-cobalto); color: #fff; font-size: 14.5px; font-weight: 600;
	transform: translate(-50%, 140%); transition: transform .3s cubic-bezier(.3,.7,.2,1), visibility 0s .3s; max-width: calc(100% - 32px); visibility: hidden;
}
.flo-toast.is-on { transform: translate(-50%, 0); visibility: visible; transition-delay: 0s; }
.flo-toast .flo-ico { color: var(--flo-verde); }
.flo-toast button { margin-left: 6px; padding: 7px 12px; border-radius: 10px; background: var(--flo-ambar); color: var(--flo-cobalto); font-weight: 700; white-space: nowrap; }
.flo-fab { position: fixed; right: 18px; bottom: 18px; z-index: 1; display: grid; place-items: center; width: 60px; height: 60px; border-radius: 50%; background: var(--flo-coral); color: #fff; box-shadow: 0 12px 28px -10px rgba(255,92,122,.8); }
.flo-fab .flo-ico { width: 26px; height: 26px; }
.flo-fab b { position: absolute; top: -2px; right: -2px; background: var(--flo-cobalto); }
html.flo-has-header .flo-fab { display: none; }

/* ---------- Responsive ---------- */
@media (max-width: 1080px) {
	.flo-nav a { padding: 8px 9px; font-size: 14.5px; }
}
@media (max-width: 900px) {
	.flo-menu-btn { display: grid; }
	.flo-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; padding: 12px 20px 20px; background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 20px 30px -20px rgba(9,16,48,.3); }
	.flo-header.is-menu .flo-nav { display: flex; }
	.flo-nav a { padding: 12px 8px; font-size: 16px; border-radius: 10px; }
	.flo-header-actions { margin-left: auto; }
	.flo-hero { padding-top: 44px; }
	.flo-hero > .flo-wrap:first-child { grid-template-columns: 1fr; gap: 28px; }
	.flo-hero-visual { max-width: 520px; }
	.flo-facts { grid-template-columns: 1fr; margin-top: 36px; }
	.flo-facts li, .flo-facts li + li { padding: 18px 0; border-left: 0; }
	.flo-facts li + li { border-top: 1px solid rgba(255,255,255,.14); }
	.flo-steps { grid-template-columns: 1fr 1fr; gap: 28px 0; }
	.flo-steps li:nth-child(3) { padding-left: 0; border-left: 0; }
	.flo-lens-cols, .flo-service-list, .flo-booking-grid { grid-template-columns: 1fr; }
	.flo-pd, .flo-checkout { grid-template-columns: 1fr; }
	.flo-pd-media { border-radius: 24px 24px 0 0; min-height: 240px; padding: 32px 24px; }
	.flo-co-sum { border-radius: 0 0 24px 24px; }
	.flo-co-sum h3 { padding-right: 0; }
	.flo-footer .flo-wrap { grid-template-columns: 1fr; }
	html.flo-has-header .flo-fab { display: grid; }
}
@media (max-width: 600px) {
	.flo-wrap { width: calc(100% - 32px); }
	.flo-topbar .flo-hide-sm { display: none; }
	.flo-topbar .flo-wrap { gap: 6px 16px; padding: 8px 0; font-size: 13px; }
	.flo-topbar a { margin-left: 0; }
	.flo-cart-btn span { display: none; }
	.flo-cart-btn { padding: 10px 12px; }
	.flo-logo small { display: none; }
	.flo-hero-copy p { font-size: 17px; }
	.flo-hero-cta .flo-btn { flex: 1 1 100%; }
	.flo-cat-row { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: -16px; padding: 0 16px 6px; scrollbar-width: none; }
	.flo-cat-row::-webkit-scrollbar { display: none; }
	.flo-cat { flex: 0 0 168px; scroll-snap-align: start; padding: 16px 16px 14px; }
	.flo-cat strong { font-size: 16.5px; }
	.flo-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.flo-card-body { padding: 12px 12px 14px; }
	.flo-card h3 { font-size: 16px; }
	.flo-card-foot { flex-direction: column; align-items: stretch; }
	.flo-add { justify-content: center; }
	.flo-tag--rx { display: none; }
	.flo-steps { grid-template-columns: 1fr; }
	.flo-steps li, .flo-steps li + li { padding: 0; border: 0; }
	.flo-row, .flo-options--two { grid-template-columns: 1fr; }
	.flo-booking-form { padding: 24px 20px; }
	.flo-lens-col { padding: 22px 20px; }
	.flo-modal { padding: 0; align-items: end; }
	.flo-modal-box { max-height: 94vh; border-radius: 22px 22px 0 0; }
	.flo-pd-info, .flo-co-main { padding: 24px 20px; }
	.flo-co-sum { padding: 24px 20px 28px; border-radius: 0; }
	.flo-specs { grid-template-columns: 1fr 1fr; }
	.flo-sort { flex: 1; }
	.flo-sort select { flex: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.flo-app *, .flo-overlays * { transition: none !important; }
}

/* ---------- Blindaje frente a estilos del tema ---------- */
/* El tema pinta los enlaces al pasar el mouse o enfocarlos (a:hover, a:focus) y fuerza su tipografía en p y títulos. */
.flo-app :is(p, li, a, span, label, legend, dt, dd, small, strong, b, em, del, output, button, input, select, textarea, h1, h2, h3, h4, h5, h6) { font-family: var(--body); }
.flo-app :is(.flo-hero h1, .flo-section-head h2, .flo-booking-form h2, .flo-cat strong, .flo-card h3, .flo-lens-col h3, .flo-contact-info h3, .flo-logo strong, .flo-drawer-head h2, .flo-pd-info h2, .flo-co-main h2, .flo-co-sum h3, .flo-done h2, .flo-step-n, .flo-sub strong, .flo-price--lg strong) { font-family: var(--display); }
.flo-app a.flo-btn, .flo-app a.flo-btn:is(:hover, :focus, :visited, :active) { text-decoration: none !important; }
.flo-app .flo-btn--wa, .flo-app .flo-btn--wa:is(:hover, :focus, :visited, :active),
.flo-app .flo-btn--coral, .flo-app .flo-btn--coral:is(:hover, :focus, :visited, :active),
.flo-app .flo-btn--cobalto, .flo-app .flo-btn--cobalto:is(:hover, :focus, :visited, :active),
.flo-app .flo-btn--ghost, .flo-app .flo-btn--ghost:is(:hover, :focus, :visited, :active) { color: #fff !important; }
.flo-app .flo-btn--ambar, .flo-app .flo-btn--ambar:is(:hover, :focus, :visited, :active) { color: var(--flo-cobalto) !important; }
.flo-app .flo-btn--line, .flo-app .flo-btn--line:is(:hover, :focus, :visited, :active) { color: var(--ink) !important; }
.flo-app .flo-link, .flo-app .flo-link:is(:hover, :focus, :visited, :active) { color: var(--flo-violeta) !important; }
.flo-app .flo-nav a:is(:hover, :focus, :visited), .flo-app .flo-logo:is(:hover, :focus, :visited) { color: inherit !important; }
.flo-app .flo-nav a:is(:hover, :focus) { color: var(--ink) !important; }
.flo-app .flo-topbar a:is(:hover, :focus, :visited), .flo-app .flo-contact-info a:is(:hover, :focus, :visited) { color: #fff !important; }
.flo-app .flo-footer nav a:is(:hover, :focus) { color: var(--flo-ambar) !important; }
.flo-app .flo-footer nav a:visited { color: #fff !important; }
.flo-app .flo-btn .flo-ico { color: inherit; }

.flo-ico--down { transform: rotate(180deg); }
.flo-done .flo-btn { min-width: 300px; }

/* ---------- Promoción, cupón, garantía y seguimiento (1.3.0) ---------- */
.flo-promobar { background: linear-gradient(90deg, var(--flo-violeta), #8B4DF0 45%, var(--flo-coral)); color: #fff; font-size: 14px; }
.flo-promobar .flo-wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 22px; min-height: 42px; padding: 6px 0; }
.flo-promobar-main { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.flo-promobar-main .flo-ico { width: 18px; height: 18px; color: var(--flo-ambar); }
.flo-promobar-main strong { font-weight: 800; }
.flo-promobar-main span { color: rgba(255,255,255,.88); }
.flo-promobar-main em { font-style: normal; font-weight: 700; padding: 2px 9px; border-radius: 99px; background: rgba(19,35,91,.35); font-size: 12.5px; }
.flo-app .flo-coupon-chip { display: inline-flex; align-items: center; gap: 7px; padding: 4px 12px 4px 9px; border-radius: 99px; border: 1.5px dashed rgba(255,255,255,.75); color: #fff; font-size: 13.5px; }
.flo-app .flo-coupon-chip:hover { background: rgba(255,255,255,.14); }
.flo-coupon-chip .flo-ico { width: 16px; height: 16px; }
.flo-coupon-chip b { letter-spacing: .04em; }

.flo-guarantee { padding: 8px 0 72px; }
.flo-guarantee-box { display: flex; gap: 28px; align-items: center; padding: 30px 34px; border-radius: var(--r-lg); background: linear-gradient(120deg, color-mix(in srgb, var(--flo-verde) 14%, #fff), #fff 70%); border: 1px solid color-mix(in srgb, var(--flo-verde) 35%, #fff); }
.flo-guarantee-seal { position: relative; flex: none; display: grid; place-items: center; width: 96px; height: 96px; border-radius: 50%; background: var(--flo-verde); color: #fff; box-shadow: 0 0 0 6px color-mix(in srgb, var(--flo-verde) 22%, #fff); }
.flo-guarantee-seal .flo-ico { width: 40px; height: 40px; margin-top: -14px; }
.flo-guarantee-seal b { position: absolute; bottom: 16px; font-family: var(--display); font-size: 17px; font-weight: 800; }
.flo-guarantee-box h2 { font-family: var(--display); font-weight: 800; font-size: clamp(24px, 2.6vw, 32px); letter-spacing: -.02em; margin-bottom: 6px; }
.flo-guarantee-box p { color: var(--ink-2); font-size: 16px; max-width: 70ch; }
.flo-guarantee-mini { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: color-mix(in srgb, var(--flo-verde) 10%, #fff); font-size: 13px; color: var(--ink-2); text-align: left; }
.flo-guarantee-mini .flo-ico { flex: none; width: 22px; height: 22px; color: #0D8A72; }
.flo-guarantee-mini b { color: var(--ink); }

.flo-promo-hint { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 12px; padding: 10px 12px; border-radius: 12px; background: color-mix(in srgb, var(--flo-violeta) 9%, #fff); color: var(--flo-violeta); font-size: 13.5px; font-weight: 600; }
.flo-promo-hint.is-on { background: color-mix(in srgb, var(--flo-verde) 12%, #fff); color: #0D8A72; }
.flo-promo-hint .flo-ico { flex: none; width: 18px; height: 18px; }

.flo-coupon { margin: 6px 0 14px; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.flo-overlays .flo-coupon label { font-size: 13.5px; font-weight: 700; margin-bottom: 8px !important; }
.flo-coupon-row { display: flex; gap: 8px; }
.flo-overlays .flo-coupon-row input { flex: 1; min-width: 0; text-transform: uppercase; letter-spacing: .04em; }
.flo-coupon-row .flo-btn { min-height: 48px; padding: 0 16px; }
.flo-coupon-msg { font-size: 13px; margin-top: 8px; min-height: 0; }
.flo-coupon-msg:empty { display: none; }
.flo-coupon-msg.is-ok { color: #0D8A72; font-weight: 600; }
.flo-coupon-msg.is-err { color: #D2264A; font-weight: 600; }
.flo-coupon-msg button { color: var(--flo-violeta); text-decoration: underline; font-weight: 600; }
.flo-coupon-msg small { font-weight: 500; color: var(--ink-2); }
.flo-app .flo-coupon-suggest { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: 13px; color: var(--flo-violeta); font-weight: 600; }
.flo-coupon-suggest .flo-ico { width: 16px; height: 16px; }
.flo-sub--disc b, .flo-sub--disc span { color: #0D8A72; }
.flo-sub--disc span { font-size: 13.5px; padding-right: 10px; }
.flo-saving { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 4px 0 12px; padding: 8px 12px; border-radius: 99px; background: color-mix(in srgb, var(--flo-ambar) 22%, #fff); color: #8A5A00; font-weight: 700; font-size: 13.5px; }
.flo-saving .flo-ico { width: 17px; height: 17px; }

.flo-track { padding: 72px 0; background: var(--bg-2); }
.flo-track-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 28px; align-items: start; }
.flo-track-intro h2 { font-family: var(--display); font-weight: 800; font-size: clamp(28px, 3.2vw, 40px); letter-spacing: -.03em; margin-bottom: 8px; }
.flo-track-intro p { color: var(--ink-2); margin-bottom: 20px; max-width: 46ch; }
.flo-track-form { padding: 22px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); }
.flo-track-result:empty { display: none; }
.flo-track-card { padding: 24px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); }
.flo-track-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
.flo-track-head h3 { font-family: var(--display); font-size: 24px; font-weight: 800; letter-spacing: -.02em; }
.flo-track-head .flo-btn { min-height: 40px; padding: 0 14px; font-size: 13.5px; }
.flo-track-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 18px; counter-reset: none; }
.flo-track-steps li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; font-size: 12.5px; font-weight: 600; color: var(--ink-3); }
.flo-track-steps li::before { content: ""; position: absolute; top: 16px; left: -50%; width: 100%; height: 3px; background: var(--line); z-index: 0; }
.flo-track-steps li:first-child::before { display: none; }
.flo-track-steps li span { position: relative; z-index: 1; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #fff; border: 2px solid var(--line); font-weight: 800; }
.flo-track-steps li span .flo-ico { width: 16px; height: 16px; }
.flo-track-steps li.is-done, .flo-track-steps li.is-current { color: var(--ink); }
.flo-track-steps li.is-done span { background: var(--flo-verde); border-color: var(--flo-verde); color: #fff; }
.flo-track-steps li.is-done::before, .flo-track-steps li.is-current::before { background: var(--flo-verde); }
.flo-track-steps li.is-current span { background: var(--flo-violeta); border-color: var(--flo-violeta); color: #fff; box-shadow: 0 0 0 5px color-mix(in srgb, var(--flo-violeta) 18%, transparent); }
.flo-track-meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 12px; }
.flo-track-meta div { padding: 10px 12px; border-radius: 12px; background: var(--bg-2); }
.flo-track-meta dt { font-size: 12px; color: var(--ink-3); }
.flo-track-meta dd { font-weight: 800; font-size: 14.5px; }
.flo-track-meta dd.is-due { color: #D2264A; }
.flo-track-meta dd.is-ok { color: #0D8A72; }
.flo-track-items { font-size: 13.5px; color: var(--ink-2); margin-bottom: 10px; }
.flo-track-cancel { padding: 12px 14px; border-radius: 12px; background: #FFE3EA; color: #B0203F; font-weight: 600; margin-bottom: 14px; }

@media (max-width: 900px) {
	.flo-track-grid { grid-template-columns: 1fr; }
	.flo-guarantee-box { flex-direction: column; text-align: center; align-items: center; padding: 26px 20px; }
}
@media (max-width: 600px) {
	.flo-promobar { font-size: 13px; }
	.flo-promobar-main span { display: none; }
	.flo-track-meta { grid-template-columns: 1fr 1fr; }
	.flo-track-steps li { font-size: 11px; }
	.flo-track-head { flex-direction: column; }
}
.flo-sub b, .flo-sub strong { white-space: nowrap; }

/* ===== 1.4.0 · idioma, ingreso, promociones ===== */
.flo-lang { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(255,255,255,.12); gap: 2px; flex: none; }
.flo-app .flo-lang button { min-width: 38px; height: 26px; padding: 0 10px; border-radius: 999px; font-size: 12.5px; font-weight: 800; letter-spacing: .06em; color: rgba(255,255,255,.8); }
.flo-app .flo-lang button[aria-pressed="true"] { background: #fff; color: var(--flo-cobalto); }
.flo-app .flo-lang button:hover { color: #fff; }
.flo-app .flo-lang button[aria-pressed="true"]:hover { color: var(--flo-cobalto); }
.flo-langbar { background: var(--flo-cobalto); }
.flo-langbar .flo-wrap { display: flex; align-items: center; min-height: 40px; }
.flo-promobar-link { color: #fff !important; font-weight: 800; font-size: 13.5px; text-decoration: underline; text-underline-offset: 3px; }
.flo-nav .flo-nav-promo { color: #D2264A !important; }

.flo-login-btn { display: inline-flex; align-items: center; gap: 7px; height: 44px; padding: 0 14px; border-radius: 999px; border: 1.5px solid var(--line); font-weight: 700; font-size: 14.5px; max-width: 160px; }
.flo-login-btn span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.flo-login-btn:hover { border-color: var(--ink); }

.flo-login { padding: 38px 40px 30px; max-width: 560px; margin-inline: auto; }
.flo-login-ico { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 16px; background: color-mix(in srgb, var(--flo-violeta) 12%, #fff); color: var(--flo-violeta); margin-bottom: 14px; }
.flo-login-ico .flo-ico { width: 28px; height: 28px; }
.flo-login h2 { font-family: var(--display); font-weight: 800; font-size: 30px; letter-spacing: -.03em; margin-bottom: 6px; }
.flo-login-lead { color: var(--ink-2); margin-bottom: 20px; font-size: 15.5px; }
.flo-tel { display: flex; align-items: stretch; border: 1px solid #CDD3E3; border-radius: 12px; overflow: hidden; background: #fff; }
.flo-tel b { display: grid; place-items: center; padding: 0 12px; background: var(--bg-2); font-weight: 700; color: var(--ink-2); border-right: 1px solid #CDD3E3; }
.flo-overlays form .flo-tel input { border: 0 !important; border-radius: 0 !important; }
.flo-overlays form .flo-tel:focus-within { border-color: var(--flo-violeta); box-shadow: 0 0 0 3px color-mix(in srgb, var(--flo-violeta) 22%, transparent); }
.flo-overlays form .flo-tel input:focus { box-shadow: none; }
.flo-ubigeo { border: 0; margin: 0 0 12px; padding: 0; border-radius: 14px; }
.flo-ubigeo legend { font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.flo-ubigeo legend small { font-weight: 500; color: var(--ink-3); margin-left: 6px; }
.flo-ubigeo.is-invalid { box-shadow: 0 0 0 3px color-mix(in srgb, var(--flo-coral) 25%, transparent) !important; }
.flo-ubigeo-row { display: grid; grid-template-columns: minmax(0, 170px) minmax(0, 1fr); gap: 8px; }
.flo-overlays .flo-ubigeo-q { height: 48px; margin: 0 !important; flex-direction: row !important; align-items: center; border: 1px solid #CDD3E3; background: #fff; padding: 0 12px; border-radius: 12px; }
.flo-overlays form .flo-ubigeo-q input { border: 0 !important; min-height: 44px !important; padding: 0 !important; box-shadow: none !important; }
.flo-overlays .flo-ubigeo-q:focus-within { border-color: var(--flo-violeta); }
.flo-ubigeo-list { margin-top: 8px !important; max-height: 236px; overflow-y: auto; border: 1px solid var(--line); border-radius: 12px; }
.flo-ubigeo-list li + li { border-top: 1px solid var(--line); }
.flo-overlays .flo-ubigeo-list button { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 14px; text-align: left; }
.flo-overlays .flo-ubigeo-list button:hover, .flo-overlays .flo-ubigeo-list button:focus-visible { background: color-mix(in srgb, var(--flo-violeta) 8%, #fff); }
.flo-ubigeo-list span { display: flex; flex-direction: column; line-height: 1.25; }
.flo-ubigeo-list b { font-size: 15px; }
.flo-ubigeo-list small { color: var(--ink-3); font-size: 12.5px; }
.flo-ubigeo-list code, .flo-ubigeo-pick em { font-family: ui-monospace, 'SF Mono', Menlo, monospace; font-size: 12.5px; font-style: normal; padding: 2px 8px; border-radius: 6px; background: var(--bg-2); color: var(--ink-2); }
.flo-ubigeo-more { padding: 10px 14px; font-size: 13px; color: var(--ink-3); }
.flo-ubigeo-pick { display: flex; align-items: center; gap: 10px; margin-top: 8px; padding: 10px 14px; border-radius: 12px; background: color-mix(in srgb, var(--flo-verde) 12%, #fff); border: 1px solid color-mix(in srgb, var(--flo-verde) 40%, #fff); }
.flo-ubigeo-pick .flo-ico { color: #0D8A72; }
.flo-ubigeo-pick span { flex: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.flo-ubigeo-pick .flo-link { font-size: 14px; }
.flo-login .flo-fine { display: flex; gap: 8px; align-items: center; justify-content: center; margin-top: 14px; }
.flo-login .flo-fine .flo-ico { width: 16px; height: 16px; color: #0D8A72; }
.flo-login .flo-link--center { display: flex; margin: 10px auto 0; }

.flo-who { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--bg-2); margin-bottom: 14px; }
.flo-who > .flo-ico { color: var(--flo-violeta); }
.flo-who span { flex: 1; display: flex; flex-direction: column; line-height: 1.3; min-width: 0; }
.flo-who em { font-style: normal; color: var(--ink-2); font-size: 13.5px; }
.flo-who .flo-link { font-size: 14px; }
.flo-addr small { font-weight: 500; color: var(--ink-3); }
.flo-overlays form label.flo-check, .flo-app form label.flo-check { flex-direction: row; align-items: center; gap: 10px; font-weight: 500; }
.flo-check input { width: 18px; height: 18px; accent-color: var(--flo-violeta); }
.flo-drawer-who { display: flex; gap: 8px; align-items: center; margin: 10px 0 8px; font-size: 13px; color: var(--ink-2); }
.flo-drawer-who .flo-ico { width: 16px; height: 16px; color: var(--flo-violeta); }
.flo-btn--wa-line { border-color: #1FAF5A; color: #128043; background: #fff; }
.flo-btn--wa-line:hover { background: #effaf3; }
.flo-btn--sm { min-height: 36px; padding: 0 14px; font-size: 14px; }

/* Promociones */
.flo-promos { padding: 72px 0; background: linear-gradient(180deg, #FFF6F8 0%, #F7F3FF 100%); }
.flo-promos--page { padding-top: 56px; }
.flo-pc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.flo-pc { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 26px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); box-shadow: 0 18px 40px -30px rgba(19,35,91,.45); overflow: hidden; }
.flo-pc::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; background: var(--flo-violeta); }
.flo-pc--gen::before { background: linear-gradient(90deg, var(--flo-coral), var(--flo-ambar)); }
.flo-pc--pub::before { background: linear-gradient(90deg, var(--flo-violeta), var(--flo-verde)); }
.flo-pc--promo { background: var(--flo-cobalto); color: #fff; border-color: var(--flo-cobalto); }
.flo-pc--promo::before { background: var(--flo-ambar); }
.flo-pc-badge { display: inline-flex; align-self: flex-start; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 99px; font-size: 12.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; background: color-mix(in srgb, var(--flo-coral) 12%, #fff); color: #C8183F; }
.flo-pc--pub .flo-pc-badge { background: color-mix(in srgb, var(--flo-violeta) 12%, #fff); color: var(--flo-violeta); }
.flo-pc--promo .flo-pc-badge { background: rgba(255,255,255,.14); color: var(--flo-ambar); }
.flo-pc-badge .flo-ico { width: 15px; height: 15px; }
.flo-pc h3 { font-family: var(--display); font-size: 28px; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.flo-pc-big { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.flo-pc-big b { font-family: var(--display); font-size: 46px; font-weight: 800; letter-spacing: -.03em; line-height: 1; color: var(--flo-coral); }
.flo-pc--pub .flo-pc-big b { color: var(--flo-violeta); }
.flo-pc-big span { font-weight: 700; color: var(--ink-2); }
.flo-pc-desc { color: var(--ink-2); }
.flo-pc--promo .flo-pc-desc { color: rgba(255,255,255,.82); }
.flo-pc-left { display: inline-flex; align-self: flex-start; align-items: center; gap: 6px; font-weight: 700; font-size: 14px; color: var(--flo-ambar); }
.flo-pc-cond li { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: var(--ink-2); padding: 2px 0; }
.flo-pc-cond .flo-ico { width: 16px; height: 16px; margin-top: 3px; color: #0D8A72; }
.flo-pc-note { font-size: 13px; color: var(--ink-3); }
.flo-pc--promo .flo-pc-note { color: rgba(255,255,255,.65); }
.flo-pc > .flo-btn, .flo-pc [data-flo-gen-slot] { margin-top: auto; }
.flo-pc-form label { margin-bottom: 8px !important; }
.flo-pc-form .flo-pc-note { margin-top: 8px; text-align: center; }
.flo-pc-code { padding: 14px; border-radius: 14px; border: 2px dashed color-mix(in srgb, var(--flo-violeta) 45%, #fff); background: color-mix(in srgb, var(--flo-violeta) 5%, #fff); }
.flo-pc-code-label { font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-3); }
.flo-pc-code-val { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 4px 0 10px !important; }
.flo-pc-code-val b { font-family: ui-monospace, 'SF Mono', Menlo, monospace; font-size: 24px; letter-spacing: .06em; }
.flo-pc-code .flo-pc-note { margin-bottom: 10px; color: #0D8A72; font-weight: 600; }
.flo-pc-how { margin-top: 32px; padding: 26px 28px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); }
.flo-pc-how h3 { font-size: 20px; font-weight: 800; margin-bottom: 16px; }
.flo-pc-how ol { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.flo-pc-how li { display: flex; gap: 12px; align-items: flex-start; }
.flo-pc-how .flo-step-n { flex: none; width: 36px; height: 36px; font-size: 16px; margin: 0; }
.flo-pc-how li:nth-child(2) .flo-step-n { background: var(--flo-coral); color: #fff; }
.flo-pc-how li:nth-child(3) .flo-step-n { background: var(--flo-violeta); color: #fff; }
.flo-pc-how p { color: var(--ink-2); font-size: 14.5px; }
@media (max-width: 900px) { .flo-pc-how ol { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
	.flo-login { padding: 30px 20px 24px; }
	.flo-ubigeo-row { grid-template-columns: 1fr; }
	.flo-login-btn span { display: none; }
	.flo-login-btn { padding: 0 12px; }
	.flo-topbar-addr { display: none !important; }
	.flo-pc-big b { font-size: 40px; }
}
.flo-modal-box:has(.flo-login) { width: min(580px, 100%); }
.flo-nav a { white-space: nowrap; }
.flo-app .flo-nav a.flo-nav-promo { color: #D2264A !important; }
@media (min-width: 901px) and (max-width: 1400px) {
	.flo-nav { gap: 0; }
	.flo-nav a { padding: 8px 8px; font-size: 14px; }
	.flo-login-btn span { display: none; }
	.flo-login-btn { padding: 0 12px; }
}
@media (min-width: 901px) and (max-width: 1120px) { .flo-nav a[href$="flo-contacto"] { display: none; } }
.flo-pc-grid { grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
.flo-pc-code-val b { font-size: 20px; white-space: nowrap; letter-spacing: .04em; }
.flo-pc--promo .flo-btn { background: var(--flo-ambar); color: var(--flo-cobalto); }
/* 1.4.1 · menú en orden de compra y tarjetas alineadas */
.flo-nav-sep { align-self: center; width: 1px; height: 22px; margin: 0 8px; background: var(--line); flex: none; }
@media (max-width: 900px) { .flo-nav-sep { width: auto; height: 1px; margin: 6px 8px; } }
.flo-pc { height: 100%; }
.flo-pc > .flo-btn, .flo-pc [data-flo-gen-slot], .flo-pc > .flo-pc-code { margin-top: auto; }
.flo-pc-grid { align-items: stretch; }
.flo-pc-form .flo-form-msg:empty { min-height: 0; margin: 0; }
.flo-footer nav a[class] { color: inherit !important; }
.flo-pc-act { display: flex; flex-direction: column; gap: 12px; margin-top: auto; }
.flo-pc [data-flo-gen-slot] { display: flex; flex-direction: column; }
.flo-pc-form { display: flex; flex-direction: column; }
.flo-pc-form .flo-pc-note { margin: 0 0 12px; text-align: left; }
.flo-pc-code .flo-pc-note { margin-bottom: 0; }
.flo-pc-code-val { margin-bottom: 4px !important; }
/* 1.4.2 · Mi pedido sin montos */
.flo-track-meta--2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.flo-track-now { display: flex; gap: 12px; align-items: flex-start; margin: 4px 0 18px; padding: 14px 16px; border-radius: 14px; background: color-mix(in srgb, var(--flo-violeta) 7%, #fff); border: 1px solid color-mix(in srgb, var(--flo-violeta) 22%, #fff); color: var(--ink); font-size: 15px; }
.flo-track-now .flo-ico { flex: none; width: 22px; height: 22px; color: var(--flo-violeta); margin-top: 1px; }
.flo-track-items { margin-top: 16px; }
.flo-track-items ul { margin-top: 6px !important; display: grid; gap: 4px; }
.flo-track-items li { font-size: 15px; color: var(--ink-2); padding-left: 16px; position: relative; }
.flo-track-items li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 6px; height: 6px; border-radius: 50%; background: var(--flo-coral); }
/* 1.4.3 · botón del equipo en la barra superior */
.flo-app .flo-topbar a.flo-team-btn { margin-left: 0; display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,.35); font-size: 12.5px; font-weight: 700; color: #fff; }
.flo-app .flo-topbar a.flo-team-btn:hover { background: rgba(255,255,255,.12); }
.flo-app .flo-topbar a.flo-team-btn.is-admin { background: var(--flo-ambar); border-color: var(--flo-ambar); color: var(--flo-cobalto) !important; }
.flo-topbar .flo-team-btn .flo-ico { color: currentColor; }
@media (max-width: 600px) { .flo-topbar .flo-team-btn span { display: none; } .flo-app .flo-topbar a.flo-team-btn { padding: 4px 8px; margin-left: auto; } }
@media (max-width: 1440px) { .flo-topbar .flo-hide-sm { display: none; } }
/* 1.4.4 · selector de idioma más visible */
.flo-lang { align-items: center; padding: 3px 3px 3px 10px; gap: 4px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28); }
.flo-lang .flo-lang-ico { width: 17px; height: 17px; color: var(--flo-ambar); margin-right: 2px; }
.flo-app .flo-lang button { height: 28px; padding: 0 12px; font-size: 13px; letter-spacing: 0; }
.flo-app .flo-lang button b { display: none; }
.flo-app .flo-lang button span { font-weight: 700; }
.flo-nav .flo-lang--menu { display: none; }
@media (max-width: 900px) {
	.flo-nav .flo-lang--menu { display: inline-flex; align-self: flex-start; margin: 10px 8px 4px; background: var(--flo-cobalto); }
}
@media (max-width: 600px) {
	.flo-topbar .flo-lang { padding-left: 8px; }
	.flo-app .flo-topbar .flo-lang button { padding: 0 9px; }
	.flo-app .flo-topbar .flo-lang button b { display: inline; }
	.flo-app .flo-topbar .flo-lang button span { display: none; }
}

/* ===== 1.5.0 · Entorno web del equipo ===== */
.flo-eq-sec { padding: 48px 0 80px; background: linear-gradient(180deg, var(--bg-2), #fff 60%); min-height: 70vh; }
.flo-eq-loading { padding: 40px 0; text-align: center; color: var(--ink-3); }
.flo-eq-card { max-width: 480px; margin: 0 auto; padding: 36px 36px 28px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); box-shadow: 0 30px 60px -40px rgba(19,35,91,.45); }
.flo-eq-card h1 { font-family: var(--display); font-weight: 800; font-size: 30px; letter-spacing: -.03em; margin: 10px 0 6px; }
.flo-eq-lead { color: var(--ink-2); margin-bottom: 18px; font-size: 15.5px; }
.flo-eq-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 99px; font-size: 12.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; background: color-mix(in srgb, var(--flo-violeta) 12%, #fff); color: var(--flo-violeta); }
.flo-eq-badge .flo-ico { width: 15px; height: 15px; }
.flo-eq-pass { display: flex; align-items: stretch; gap: 0; }
.flo-app form .flo-eq-pass input { border-radius: 12px 0 0 12px !important; }
.flo-app .flo-eq-pass button { width: 48px; border: 1px solid #CDD3E3; border-left: 0; border-radius: 0 12px 12px 0; display: grid; place-items: center; color: var(--ink-2); }
.flo-eq-fine { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 18px; font-size: 13px; color: var(--ink-3); }
.flo-eq-fine .flo-ico { width: 16px; height: 16px; color: #0D8A72; }
.flo-eq-card .flo-link--center { display: flex; margin: 12px auto 0; }

.flo-eq-top { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.flo-eq-top h1 { font-family: var(--display); font-weight: 800; font-size: clamp(28px, 3vw, 38px); letter-spacing: -.03em; }
.flo-eq-tabs { display: flex; gap: 6px; flex-wrap: wrap; padding: 6px; border-radius: 16px; background: #fff; border: 1px solid var(--line); margin-bottom: 22px; }
.flo-app .flo-eq-tabs button { padding: 10px 16px; border-radius: 11px; font-weight: 700; font-size: 14.5px; color: var(--ink-2); }
.flo-app .flo-eq-tabs button:hover { background: var(--bg-2); color: var(--ink); }
.flo-app .flo-eq-tabs button[aria-selected="true"] { background: var(--flo-cobalto); color: #fff; }
.flo-eq-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; margin-bottom: 16px; }
.flo-eq-month { display: flex !important; flex-direction: row !important; align-items: center; gap: 10px !important; margin: 0 !important; font-weight: 700; }
.flo-app .flo-eq-month input { width: auto !important; min-height: 42px !important; }
.flo-eq-note { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: var(--ink-2); max-width: 760px; }
.flo-eq-note .flo-ico { flex: none; width: 18px; height: 18px; color: var(--flo-violeta); margin-top: 2px; }
.flo-eq-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 20px; }
.flo-eq-kpi { padding: 16px 18px; border-radius: 16px; background: #fff; border: 1px solid var(--line); }
.flo-eq-kpi span { display: block; font-size: 13px; color: var(--ink-3); font-weight: 600; }
.flo-eq-kpi b { display: block; font-family: var(--display); font-size: 24px; letter-spacing: -.02em; margin-top: 4px; }
.flo-eq-kpi.is-due { background: color-mix(in srgb, var(--flo-coral) 8%, #fff); border-color: color-mix(in srgb, var(--flo-coral) 30%, #fff); }
.flo-eq-kpi.is-due b { color: #C8183F; }
.flo-eq-table { overflow-x: auto; border-radius: 16px; border: 1px solid var(--line); background: #fff; margin-bottom: 22px; }
.flo-eq-table table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.flo-eq-table th { text-align: left; padding: 12px 14px; font-size: 12.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-3); background: var(--bg-2); white-space: nowrap; }
.flo-eq-table td { padding: 12px 14px; border-top: 1px solid var(--line); vertical-align: top; }
.flo-eq-table td small { display: block; color: var(--ink-3); font-size: 12.5px; margin-top: 2px; }
.flo-eq-table td.is-due b { color: #C8183F; }
.flo-eq-table tr.is-off td { opacity: .6; }
.flo-eq-table code, .flo-eq-note code, .flo-eq-link code { font-family: ui-monospace, Menlo, monospace; font-size: 13px; padding: 2px 6px; border-radius: 6px; background: var(--bg-2); }
.flo-app .flo-eq-table input, .flo-app .flo-eq-table select { min-height: 38px !important; padding: 6px 10px !important; max-width: 180px; }
.flo-eq-table .flo-eq-items { font-size: 13.5px; color: var(--ink-2); min-width: 220px; }
.flo-eq-table .flo-eq-items .flo-ico { width: 14px; height: 14px; display: inline; vertical-align: -2px; margin-right: 4px; }
.flo-eq-actions { white-space: nowrap; }
.flo-eq-actions .flo-link { font-size: 13.5px; margin-right: 12px; }
.flo-eq-pill { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: 12.5px; font-weight: 700; background: var(--bg-2); color: var(--ink-2); white-space: nowrap; }
.flo-eq-pill.is-on, .flo-eq-st-entregado { background: color-mix(in srgb, var(--flo-verde) 16%, #fff); color: #0D7C69; }
.flo-eq-pill.is-off, .flo-eq-st-cancelado { background: color-mix(in srgb, var(--flo-coral) 14%, #fff); color: #C8183F; }
.flo-eq-st-en_proceso { background: color-mix(in srgb, var(--flo-violeta) 12%, #fff); color: var(--flo-violeta); }
.flo-eq-st-por_entregar { background: color-mix(in srgb, var(--flo-ambar) 22%, #fff); color: #8A5A00; }
.flo-eq-ok { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: #0D7C69; font-weight: 700; }
.flo-eq-ok .flo-ico { width: 15px; height: 15px; }
.flo-eq-meta { display: block; width: 110px; height: 7px; border-radius: 99px; background: var(--bg-2); overflow: hidden; margin-top: 4px; }
.flo-eq-meta i { display: block; height: 100%; width: var(--w); background: linear-gradient(90deg, var(--flo-violeta), var(--flo-verde)); border-radius: 99px; }
.flo-eq-h3, .flo-eq-form h3 { font-size: 18px; font-weight: 800; margin: 4px 0 12px; }
.flo-eq-form { padding: 24px; border-radius: 18px; background: #fff; border: 1px solid var(--line); margin-bottom: 22px; }
.flo-eq-form--cfg { max-width: 760px; }
.flo-eq-form label small { font-weight: 500; color: var(--ink-3); }
.flo-eq-roles { border: 0; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.flo-eq-roles legend { font-weight: 700; font-size: 14px; margin-bottom: 8px; width: 100%; }
.flo-eq-roles legend small { font-weight: 500; color: var(--ink-3); margin-left: 6px; }
.flo-eq-roles .flo-check { margin-bottom: 4px !important; }
.flo-eq-form-act { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.flo-eq-link { padding: 14px 16px; border-radius: 14px; background: color-mix(in srgb, var(--flo-violeta) 6%, #fff); border: 1px dashed color-mix(in srgb, var(--flo-violeta) 40%, #fff); margin: 10px 0; }
.flo-eq-link code { display: block; word-break: break-all; margin: 8px 0 10px; background: #fff; padding: 8px 10px; }
.flo-eq-goal { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.flo-eq-goal > div { padding: 20px; border-radius: 16px; background: #fff; border: 1px solid var(--line); }
.flo-eq-goal h3 { font-family: var(--display); font-size: 26px; margin: 4px 0 8px; }
.flo-eq-goal .flo-eq-meta { width: 100%; height: 10px; margin: 6px 0 10px; }
.flo-eq-goal p { color: var(--ink-2); font-size: 15px; }
.flo-eq-list { list-style: disc !important; padding-left: 20px !important; color: var(--ink-2); margin-bottom: 14px !important; }
.flo-eq-list li { margin-bottom: 4px; }
@media (max-width: 600px) {
	.flo-eq-card { padding: 28px 20px 22px; }
	.flo-eq-top { align-items: center; }
	.flo-app .flo-eq-tabs button { padding: 9px 12px; font-size: 13.5px; }
}

/* ===== 1.6.0 · Cupones con QR y PDF ===== */
.flo-pc-who { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--bg-2); margin-bottom: 10px; }
.flo-pc-who > .flo-ico { color: var(--flo-violeta); }
.flo-pc-who span { flex: 1; display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.flo-pc-who em { font-style: normal; font-size: 12.5px; color: var(--ink-3); }
.flo-pc-who .flo-link { font-size: 13px; }
.flo-app label.flo-consent, .flo-overlays label.flo-consent { flex-direction: row !important; align-items: flex-start !important; gap: 8px !important; font-size: 12.5px !important; font-weight: 500 !important; color: var(--ink-2); margin: 4px 0 10px !important; }
.flo-consent input { margin-top: 2px; width: 16px; height: 16px; flex: none; accent-color: var(--flo-violeta); }
.flo-pc-code--qr { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; }
.flo-pc-code--qr > .flo-pc-note { grid-column: 1 / -1; margin: 0; }
.flo-pc-qr svg { display: block; width: 116px; height: 116px; border-radius: 8px; }
.flo-pc-code--qr .flo-pc-code-val { margin: 2px 0 4px !important; }
.flo-pc-code--qr .flo-pc-code-val b { font-size: 15px; white-space: normal; word-break: break-all; letter-spacing: .02em; }
.flo-pc-valid { font-size: 12.5px; color: #C8183F; font-weight: 700; margin-bottom: 8px !important; }
.flo-pc-two { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.flo-pc-two .flo-btn { width: 100%; padding: 0 10px; }
.flo-eq-search { flex: 0 1 340px !important; height: 44px !important; background: #fff !important; border: 1px solid var(--line) !important; }
.flo-app .flo-eq-search input { border: 0 !important; min-height: 40px !important; padding: 0 !important; box-shadow: none !important; background: transparent; }
.flo-eq-c-activa, .flo-eq-k-vigente { background: color-mix(in srgb, var(--flo-verde) 16%, #fff); color: #0D7C69; }
.flo-eq-c-pausada { background: color-mix(in srgb, var(--flo-ambar) 22%, #fff); color: #8A5A00; }
.flo-eq-c-programada { background: color-mix(in srgb, var(--flo-violeta) 12%, #fff); color: var(--flo-violeta); }
.flo-eq-c-finalizada, .flo-eq-k-vencido { background: var(--bg-2); color: var(--ink-3); }
.flo-eq-k-canjeado { background: color-mix(in srgb, var(--flo-violeta) 14%, #fff); color: var(--flo-violeta); }
.flo-eq-k-anulado { background: color-mix(in srgb, var(--flo-coral) 14%, #fff); color: #C8183F; }
.flo-eq-form h3 small { font-weight: 500; color: var(--ink-3); font-size: 13px; }
.flo-eq-canje { max-width: 760px; }
.flo-eq-canje-card { max-width: 760px; }
.flo-eq-canje-card .flo-eq-top h3 code { font-size: 18px; }
.flo-eq-canje-card .flo-eq-kpi b { font-size: 17px; }
.flo-eq-roles .flo-check b { font-weight: 700; }
@media (max-width: 600px) { .flo-pc-two { grid-template-columns: 1fr; } .flo-pc-code--qr { grid-template-columns: 1fr; justify-items: start; } }
/* 1.6.0 · caja del cupón en una sola columna */
.flo-pc-grid { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.flo-pc-code--qr { grid-template-columns: 1fr; justify-items: center; text-align: center; }
.flo-pc-code--qr > div { display: flex; flex-direction: column; align-items: center; }
.flo-pc-qr svg { width: 150px; height: 150px; }
.flo-pc-code--qr .flo-pc-code-val { justify-content: center; }
.flo-pc-code--qr .flo-pc-code-val b { font-size: 15px; white-space: nowrap; word-break: normal; }
.flo-pc-two { grid-template-columns: 1fr; }
.flo-app form label.flo-eq-search, .flo-app .flo-eq-search { flex-direction: row !important; align-items: center !important; gap: 10px !important; margin: 0 !important; padding: 0 14px !important; border-radius: 999px !important; }
.flo-eq-table td small code { white-space: nowrap; font-size: 11.5px; }
.flo-pc .flo-pc-name { font-family: var(--display); font-size: 20px; font-weight: 800; letter-spacing: -.01em; line-height: 1.15; }

/* ===== 1.6.1 · Panel master ordenado ===== */
.flo-eq-tabs--groups { gap: 4px 18px; align-items: flex-end; padding: 8px 10px; }
.flo-eq-group { display: flex; flex-direction: column; gap: 4px; }
.flo-eq-group > div { display: flex; gap: 4px; flex-wrap: wrap; }
.flo-eq-group-name { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); padding: 0 6px; }
.flo-eq-group + .flo-eq-group { border-left: 1px solid var(--line); padding-left: 14px; }
.flo-eq-home { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 16px; }
.flo-eq-home-card { display: flex; flex-direction: column; gap: 14px; padding: 22px; border-radius: 18px; background: #fff; border: 1px solid var(--line); box-shadow: 0 18px 40px -34px rgba(19,35,91,.5); }
.flo-eq-home-card > div:first-of-type { flex: 1; }
.flo-eq-home-ico { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: color-mix(in srgb, var(--flo-violeta) 12%, #fff); color: var(--flo-violeta); }
.flo-eq-home-card:nth-child(2) .flo-eq-home-ico { background: color-mix(in srgb, var(--flo-coral) 14%, #fff); color: #C8183F; }
.flo-eq-home-card:nth-child(3) .flo-eq-home-ico { background: color-mix(in srgb, var(--flo-ambar) 24%, #fff); color: #8A5A00; }
.flo-eq-home-card:nth-child(4) .flo-eq-home-ico { background: color-mix(in srgb, var(--flo-verde) 18%, #fff); color: #0D7C69; }
.flo-eq-home-card h3 { font-size: 17px; font-weight: 800; }
.flo-eq-home-num { font-family: var(--display); font-size: 28px; font-weight: 800; letter-spacing: -.02em; margin: 4px 0 !important; }
.flo-eq-home-card p:not(.flo-eq-home-num) { color: var(--ink-2); font-size: 14px; }
.flo-eq-matrix td, .flo-eq-matrix th { text-align: center; }
.flo-eq-matrix td:first-child, .flo-eq-matrix th:first-child { text-align: left; }
.flo-eq-no { color: var(--ink-3); }
@media (max-width: 900px) { .flo-eq-group + .flo-eq-group { border-left: 0; padding-left: 0; } }
.flo-app .flo-eq-tabs--groups button { padding: 8px 11px; font-size: 13.5px; }
.flo-eq-tabs--groups { gap: 4px 12px; }
.flo-eq-group + .flo-eq-group { padding-left: 10px; }
/* Panel master: menú lateral */
.flo-eq-layout { display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: 24px; align-items: start; }
.flo-eq-layout .flo-eq-tabs--groups { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 14px; padding: 14px 10px; position: sticky; top: 96px; margin: 0; }
.flo-eq-layout .flo-eq-group { gap: 4px; }
.flo-eq-layout .flo-eq-group + .flo-eq-group { border-left: 0; padding-left: 0; border-top: 1px solid var(--line); padding-top: 12px; }
.flo-eq-layout .flo-eq-group > div { flex-direction: column; gap: 2px; }
.flo-app .flo-eq-layout .flo-eq-tabs--groups button { width: 100%; text-align: left; padding: 9px 12px; font-size: 14px; }
@media (max-width: 900px) {
	.flo-eq-layout { grid-template-columns: minmax(0, 1fr); }
	.flo-eq-layout .flo-eq-tabs--groups { position: static; flex-direction: row; flex-wrap: wrap; }
	.flo-eq-layout .flo-eq-group + .flo-eq-group { border-top: 0; padding-top: 0; }
	.flo-eq-layout .flo-eq-group > div { flex-direction: row; flex-wrap: wrap; }
	.flo-app .flo-eq-layout .flo-eq-tabs--groups button { width: auto; }
}
@media (min-width: 901px) { .flo-eq-home { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.flo-eq-hero-prev { padding: 22px 24px; border-radius: 16px; background: var(--flo-cobalto); color: #fff; margin-bottom: 16px; }
.flo-eq-hero-prev .flo-card-brand { color: rgba(255,255,255,.7); }
.flo-eq-hero-prev h2 { font-family: var(--display); font-weight: 800; font-size: 32px; line-height: 1.02; letter-spacing: -.03em; margin: 6px 0 8px; color: #fff; }
.flo-eq-hero-prev p:last-child { color: rgba(255,255,255,.85); font-size: 15px; }

/* 1.6.4 — taller en Reservar cita */
.flo-taller { border: 1px solid #DCE1EE; border-radius: 14px; padding: 14px 16px 16px; margin: 0; display: grid; gap: 12px; background: #F7F9FD; min-width: 0; }
.flo-taller[hidden], .flo-taller-dir[hidden] { display: none !important; }
.flo-taller legend { display: flex; align-items: center; gap: 8px; font-weight: 700; padding: 0 6px; color: var(--ink, #1E2233); }
.flo-taller legend svg { width: 18px; height: 18px; }
.flo-taller-q { margin: 2px 0 -4px; font-weight: 600; font-size: 14px; }
.flo-taller-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.flo-taller-opts .flo-opt > span { flex-direction: column; align-items: flex-start; gap: 2px; }
.flo-taller-opts small { font-size: 12.5px; color: var(--ink-2, #5A6380); font-weight: 400; }
.flo-taller-dir { display: grid; gap: 10px; }
.flo-hint { margin: 0; font-size: 12.5px; color: var(--ink-2, #5A6380); }
.flo-cita-files { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.flo-cita-files .flo-file span, .flo-taller .flo-file span { font-size: 13.5px; line-height: 1.3; overflow-wrap: anywhere; }
.flo-service-meta a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) { .flo-taller-opts, .flo-cita-files { grid-template-columns: 1fr; } }
.flo-taller { margin-bottom: 4px; }

/* 1.6.5 — confirmación de cita/recojo y formulario de recojo */
.flo-booked { display: grid; gap: 10px; text-align: center; justify-items: center; padding: 22px 8px 6px; outline: none; }
.flo-booked-ico { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--flo-verde, #19C3A6) 16%, #fff); color: var(--flo-verde, #19C3A6); }
.flo-booked-ico svg { width: 30px; height: 30px; stroke-width: 2.6; }
.flo-booked .flo-card-brand { margin: 4px 0 0; }
.flo-booked h3 { margin: 0; font-size: 30px; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.flo-booked-when { margin: 0; font-weight: 600; color: var(--ink-2, #5A6380); }
.flo-booked-steps { list-style: none; margin: 6px 0 4px; padding: 0; display: grid; gap: 8px; text-align: left; width: 100%; max-width: 440px; }
.flo-booked-steps li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; background: #F4F6FB; font-size: 14.5px; }
.flo-booked-steps svg { width: 18px; height: 18px; flex: none; margin-top: 2px; color: var(--flo-verde, #19C3A6); }
.flo-booked .flo-btn--wa { max-width: 440px; }
.flo-booked .flo-fine { margin: 0; }
.flo-recojo .flo-cita-files { margin-top: 2px; }
.flo-taller-dir .flo-hint { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; }
.flo-taller-dir .flo-hint svg { width: 18px; height: 18px; flex: none; margin-top: 1px; }
.flo-cita-files[hidden] { display: none !important; }

/* 1.6.5 — Agenda del panel web */
.flo-eq-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.flo-eq-chip { border: 1px solid #CDD3E3; background: #fff; border-radius: 999px; padding: 7px 14px; font: inherit; font-size: 14px; cursor: pointer; color: var(--ink, #1E2233); }
.flo-eq-chip b { display: inline-block; min-width: 20px; padding: 0 6px; margin-left: 4px; border-radius: 999px; background: #EEF1F8; font-size: 12.5px; }
.flo-eq-chip[aria-pressed="true"] { background: var(--flo-cobalto, #1B2A6B); border-color: var(--flo-cobalto, #1B2A6B); color: #fff; }
.flo-eq-chip[aria-pressed="true"] b { background: rgba(255,255,255,.2); }
.flo-eq-citas { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; margin-top: 14px; }
.flo-eq-cita { border: 1px solid #DCE1EE; border-radius: 16px; padding: 16px; background: #fff; display: grid; gap: 8px; align-content: start; border-top: 4px solid var(--flo-violeta, #6C3CE1); }
.flo-eq-cita--recojo { border-top-color: var(--flo-ambar, #FFB020); }
.flo-eq-cita header { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.flo-eq-cita header > b { font-variant-numeric: tabular-nums; letter-spacing: .03em; }
.flo-eq-cita header .flo-eq-pill:last-child { margin-left: auto; }
.flo-eq-cita-tipo { display: inline-flex; align-items: center; gap: 5px; background: #F1EDFD; color: var(--flo-violeta, #6C3CE1); }
.flo-eq-cita--recojo .flo-eq-cita-tipo { background: #FFF4DC; color: #9A6400; }
.flo-eq-cita-tipo svg { width: 14px; height: 14px; }
.flo-eq-cita-when { margin: 2px 0 0; font-weight: 700; font-size: 16px; }
.flo-eq-cita-when.is-hoy { color: var(--flo-coral, #FF5C7A); }
.flo-eq-cita-srv { margin: 0; color: var(--ink-2, #5A6380); font-size: 14px; }
.flo-eq-cita dl { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; margin: 4px 0 0; font-size: 14px; }
.flo-eq-cita dt { color: var(--ink-2, #5A6380); }
.flo-eq-cita dd { margin: 0; overflow-wrap: anywhere; }
.flo-eq-cita dd small { display: block; color: var(--ink-2, #5A6380); }
.flo-eq-cita-files { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 0; }
.flo-eq-cita-files a { display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 999px; background: #EEF1F8; font-size: 13px; color: inherit; text-decoration: none; font-weight: 600; }
.flo-eq-cita-files svg { width: 14px; height: 14px; }
.flo-eq-cita footer { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; margin-top: 6px; padding-top: 10px; border-top: 1px solid #EEF1F8; }
.flo-eq-cita footer label { display: grid; gap: 4px; font-size: 12.5px; color: var(--ink-2, #5A6380); }
.flo-eq-cita footer select { padding: 7px 10px; border-radius: 10px; border: 1px solid #CDD3E3; font: inherit; font-size: 14px; }
.flo-eq-cita footer .flo-link { margin-left: auto; font-size: 13px; }
.flo-eq-steps { list-style: none; padding: 0; margin: 0 0 8px; display: grid; gap: 8px; }
.flo-eq-steps li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; background: #F4F6FB; border-radius: 12px; font-size: 14.5px; }
.flo-eq-steps svg { width: 18px; height: 18px; flex: none; margin-top: 2px; color: var(--flo-verde, #19C3A6); }
.flo-eq-tpl { margin: -6px 0 4px; font-size: 13.5px; padding: 8px 12px; border-left: 3px solid #DCE1EE; background: #FAFBFE; }
.flo-eq-tpl small { display: block; color: var(--ink-2, #5A6380); }
.flo-eq-st-confirmada { background: #E3F7F2; color: #0E7C67; }
.flo-eq-st-atendida { background: #E8EEFF; color: #2446C7; }
@media (max-width: 520px) { .flo-eq-citas { grid-template-columns: 1fr; } }

/* 1.6.6 — botón de recojo en la tarjeta del servicio */
.flo-service-btn { margin-top: 12px; display: inline-flex; align-items: center; gap: 8px; }
.flo-service-btn svg { width: 18px; height: 18px; }

/* 1.7.0 — Productos y precios (panel web) */
.flo-eq-psearch { flex: 1 1 280px; min-width: 0; }
.flo-eq-bar select[data-eq-prod-cat] { padding: 10px 12px; border-radius: 12px; border: 1px solid #CDD3E3; font: inherit; background: #fff; }
.flo-eq-pthumb { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 12px; background: #F4F6FB; overflow: hidden; flex: none; }
.flo-eq-pthumb img, .flo-eq-pthumb svg { width: 100%; height: 100%; object-fit: cover; }
.flo-eq-pthumb svg { object-fit: contain; padding: 6px; }
.flo-eq-pcell { display: flex; gap: 12px; align-items: center; min-width: 220px; }
.flo-eq-pcell small { display: block; color: var(--ink-2, #5A6380); }
.flo-eq-prods td s { display: block; color: var(--ink-2, #5A6380); font-size: 12.5px; }
.flo-eq-prods tr.is-off td { opacity: .6; }
.flo-eq-acts { white-space: nowrap; }
.flo-eq-acts .flo-btn + .flo-btn { margin-left: 6px; }
.flo-eq-pform-head { display: grid; gap: 6px; margin-bottom: 10px; }
.flo-eq-pform-head .flo-link { justify-self: start; }
.flo-eq-pform-grid { display: grid; grid-template-columns: 280px 1fr; gap: 24px; align-items: start; }
.flo-eq-pform h4 { margin: 16px 0 6px; font-size: 15px; }
.flo-eq-pform h4:first-child { margin-top: 0; }
.flo-eq-pimg { position: sticky; top: 90px; display: grid; gap: 10px; }
.flo-eq-pimg-prev .flo-eq-pthumb { width: 100%; height: auto; aspect-ratio: 1; border-radius: 16px; }
.flo-eq-pdata { display: grid; gap: 10px; min-width: 0; }
.flo-row3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.flo-eq-pcats { display: flex; flex-wrap: wrap; gap: 6px 16px; }
.flo-eq-pen { border: 1px solid #DCE1EE; border-radius: 12px; padding: 10px 14px; display: grid; gap: 10px; }
.flo-eq-pen summary { cursor: pointer; font-weight: 600; }
.flo-eq-danger { color: #C0263D !important; margin-left: auto; }
@media (max-width: 860px) { .flo-eq-pform-grid { grid-template-columns: 1fr; } .flo-eq-pimg { position: static; } .flo-eq-pimg-prev .flo-eq-pthumb { max-width: 260px; } .flo-row3 { grid-template-columns: 1fr 1fr; } }

/* 1.7.0 — Textos por sección */
.flo-eq-tw .flo-eq-chips { margin: 4px 0 14px; }
.flo-eq-tw-row { border: 1px solid #DCE1EE; border-radius: 14px; padding: 12px 14px; margin-bottom: 10px; background: #fff; display: grid; gap: 8px; }
.flo-eq-tw-row.is-changed { border-color: color-mix(in srgb, var(--flo-verde, #19C3A6) 55%, #fff); background: #FAFEFD; }
.flo-eq-tw-orig { margin: 0; font-weight: 600; }
.flo-eq-tw-orig small { display: block; font-weight: 400; color: var(--ink-2, #5A6380); font-size: 12px; }
.flo-eq-serv { margin-bottom: 14px; }
.flo-eq-serv h3 { margin-top: 0; }

/* 1.7.1 — traducir al inglés */
.flo-eq-pen { background: #F7F9FD; }
.flo-eq-pen-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.flo-eq-pen-head h4 { margin: 0 0 2px !important; }
.flo-eq-pen-head p { margin: 0; max-width: 460px; }
.flo-eq-pen-head .flo-btn svg, .flo-eq-form-act [data-eq-traducir] svg { width: 16px; height: 16px; }
[data-eq-traducir] { display: inline-flex; align-items: center; gap: 6px; }
.is-translated { box-shadow: 0 0 0 3px color-mix(in srgb, var(--flo-verde, #19C3A6) 45%, transparent) !important; transition: box-shadow .3s; }

/* 1.8.0 — colores disponibles */
.flo-card-img, .flo-pd-img { display: grid; place-items: center; width: 100%; height: 100%; }
.flo-pd-img > .flo-frame { width: 100%; }
.flo-pd-img > img { width: 100%; max-height: 420px; object-fit: contain; }
.flo-card-colors { display: grid; gap: 4px; }
.flo-sw { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.flo-sw-b { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 0; border: 0; background: none; cursor: pointer; font: inherit; color: inherit; }
.flo-sw-b i { width: 20px; height: 20px; border-radius: 50%; background: var(--sw); box-shadow: inset 0 0 0 1px rgba(0,0,0,.14), 0 0 0 2px #fff, 0 0 0 3px transparent; transition: box-shadow .15s, transform .15s; }
.flo-sw-b:hover i { transform: scale(1.1); }
.flo-sw-b.is-on i { box-shadow: inset 0 0 0 1px rgba(0,0,0,.14), 0 0 0 2px #fff, 0 0 0 4px var(--ink, #13235B); }
.flo-sw-b.is-out i { opacity: .45; background: linear-gradient(135deg, transparent 45%, #C0263D 45%, #C0263D 55%, transparent 55%), var(--sw); }
.flo-sw-b:focus-visible { outline: none; }
.flo-sw-b:focus-visible i { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--flo-violeta, #6C3CE1); }
.flo-sw-more { font-size: 12.5px; color: var(--ink-2, #5A6380); font-weight: 600; }
.flo-pd-colors { margin: 4px 0 16px; display: grid; gap: 10px; }
.flo-pd-colors-t { margin: 0; font-size: 14.5px; color: var(--ink-2, #5A6380); }
.flo-pd-colors-t b { color: var(--ink, #13235B); }
.flo-sw--big { gap: 8px; }
.flo-sw--big .flo-sw-b { padding: 6px 12px 6px 7px; border: 1px solid #CDD3E3; border-radius: 999px; background: #fff; font-size: 13.5px; font-weight: 600; }
.flo-sw--big .flo-sw-b i { width: 22px; height: 22px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.14); }
.flo-sw--big .flo-sw-b.is-on { border-color: var(--ink, #13235B); box-shadow: 0 0 0 1px var(--ink, #13235B); }
.flo-sw--big .flo-sw-b.is-on i { box-shadow: inset 0 0 0 1px rgba(0,0,0,.14); }
.flo-sw--big .flo-sw-b:disabled { cursor: not-allowed; color: #9AA2B8; text-decoration: line-through; }
.flo-eq-colors { border: 1px solid #DCE1EE; border-radius: 12px; padding: 12px 14px; display: grid; gap: 8px; }
.flo-eq-colors h4 { margin: 0 !important; }
.flo-eq-colors h4 small { font-weight: 400; color: var(--ink-2, #5A6380); }
.flo-eq-colors .flo-eq-fine { margin: 0; }
.flo-eq-color { display: grid; grid-template-columns: 44px 1.3fr 1fr auto auto auto; gap: 8px; align-items: center; }
.flo-eq-color input[type="color"] { width: 44px; height: 40px; padding: 2px; border-radius: 10px; border: 1px solid #CDD3E3; background: #fff; }
.flo-eq-color input:not([type]) { min-width: 0; }
.flo-eq-color .flo-check { margin: 0; white-space: nowrap; }
.flo-eq-color-foto { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 6px !important; padding: 4px 10px 4px 4px; border: 1px dashed #B9C1D8; border-radius: 10px; cursor: pointer; font-size: 13px; margin: 0 !important; white-space: nowrap; }
.flo-eq-color-foto img, .flo-eq-color-foto svg { width: 32px; height: 32px; object-fit: cover; border-radius: 7px; }
.flo-eq-color-foto svg { padding: 6px; }
.flo-eq-color-foto input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.flo-eq-color-add { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.flo-eq-chip--sw { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; font-size: 13px; }
.flo-eq-chip--sw i { width: 14px; height: 14px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.15); }
@media (max-width: 640px) { .flo-eq-color { grid-template-columns: 44px 1fr; } .flo-eq-color > :nth-child(n+3) { grid-column: 2; } }

/* 1.8.0 — importación masiva */
.flo-eq-imp-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.flo-eq-imp-steps > li { display: grid; grid-template-columns: 40px 1fr; gap: 14px; padding: 18px; border: 1px solid #DCE1EE; border-radius: 16px; background: #fff; }
.flo-eq-imp-steps > li > span { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--flo-cobalto, #13235B); color: #fff; font-weight: 800; }
.flo-eq-imp-steps > li > div { min-width: 0; display: grid; gap: 8px; }
.flo-eq-imp-steps h3 { margin: 4px 0 0; }
.flo-eq-imp-steps p { margin: 0; }
.flo-eq-imp-file { max-width: 460px; position: relative; }
.flo-eq-imp .flo-eq-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin: 4px 0 6px; }
.flo-eq-imp .flo-eq-kpis > div { padding: 12px 14px; border-radius: 12px; background: #F4F6FB; display: grid; gap: 2px; }
.flo-eq-imp .flo-eq-kpis b { font-size: 24px; line-height: 1; }
.flo-eq-imp .flo-eq-kpis span { font-size: 13px; color: var(--ink-2, #5A6380); }
.flo-eq-imp .flo-eq-kpis .is-err { background: #FDECEF; color: #A61E33; }
.flo-eq-imp-table { max-height: 460px; overflow: auto; }
.flo-eq-imp-table tr.is-err td { background: #FFF7F8; }
.flo-eq-imp-table small { display: block; color: var(--ink-2, #5A6380); }
.flo-eq-err { color: #A61E33 !important; }
.flo-eq-imp-opt { border: 1px solid #DCE1EE; border-radius: 12px; padding: 10px 14px 12px; margin: 6px 0; display: grid; gap: 6px; }
.flo-eq-imp-opt legend { padding: 0 6px; font-weight: 600; font-size: 14px; }
.flo-eq-imp-opt .flo-check { margin: 0; }
.flo-eq-progress { display: grid; gap: 6px; margin: 8px 0; }
.flo-eq-progress > div { height: 10px; border-radius: 99px; background: #EEF1F8; overflow: hidden; }
.flo-eq-progress i { display: block; height: 100%; width: 0; background: var(--flo-verde, #19C3A6); transition: width .3s; }
.flo-eq-progress p { margin: 0; font-size: 13.5px; color: var(--ink-2, #5A6380); }
[data-eq-imp-res] ul { margin: 6px 0 0; padding-left: 18px; font-weight: 400; }
@media (max-width: 560px) { .flo-eq-imp-steps > li { grid-template-columns: 1fr; } }
.flo-eq-imp-opt .flo-check { display: flex; gap: 8px; align-items: center; }
.flo-eq-imp-file { display: flex !important; flex-direction: row !important; align-items: center; }

/* 1.8.1 — códigos de barras */
.flo-eq-barras { border: 1px solid #DCE1EE; border-radius: 12px; padding: 12px 14px; display: grid; gap: 10px; margin-top: 6px; }
.flo-eq-barras h4 { margin: 0 !important; }
.flo-eq-barras-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.flo-eq-barras-opts .flo-opt > span { flex-direction: column; align-items: flex-start; gap: 2px; }
.flo-eq-barras-opts small { font-size: 12.5px; color: var(--ink-2, #5A6380); font-weight: 400; }
.flo-eq-barras [hidden] { display: none !important; }
.flo-eq-barras-prev { display: grid; gap: 4px; justify-items: start; }
.flo-eq-barras-svg { width: 240px; max-width: 100%; background: #fff; border: 1px solid #EEF1F8; border-radius: 8px; padding: 6px; }
.flo-eq-barras-svg svg, .flo-barcode { display: block; width: 100%; height: auto; }
.flo-eq-bc code { font-size: 12.5px; letter-spacing: .03em; }
.flo-eq-bc small { display: block; color: var(--ink-2, #5A6380); }
.flo-eq-prods th:first-child, .flo-eq-prods td:first-child { width: 28px; }
.flo-eq-dlg { position: fixed; inset: 0; z-index: 99999; background: rgba(15, 23, 42, .45); display: grid; place-items: center; padding: 16px; }
.flo-eq-dlg-box { background: #fff; border-radius: 16px; padding: 20px 22px; width: min(460px, 100%); display: grid; gap: 12px; box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.flo-eq-dlg-box h3 { margin: 0; }
.flo-eq-dlg-box label:not(.flo-check) { display: grid; gap: 4px; font-size: 14px; font-weight: 600; }
.flo-eq-dlg-box select, .flo-eq-dlg-box input[type="number"] { padding: 9px 10px; border-radius: 10px; border: 1px solid #CDD3E3; font: inherit; }
.flo-eq-dlg [hidden] { display: none !important; }
@media (max-width: 640px) { .flo-eq-barras-opts { grid-template-columns: 1fr; } }

/* 1.8.2 — imágenes del sitio */
.flo-logo--img img { height: 44px; width: auto; max-width: 180px; object-fit: contain; display: block; }
.flo-footer .flo-logo--img img { height: 48px; }
.flo-hero--bg { background-color: var(--flo-cobalto); }
.flo-hero--bg::before { inset: 0; width: auto; height: auto; background: var(--hero-bg) center / cover no-repeat; z-index: -2; }
.flo-hero--bg::after { inset: 0; width: auto; height: auto; z-index: -1; background: linear-gradient(90deg, color-mix(in srgb, var(--flo-cobalto) 88%, transparent) 0%, color-mix(in srgb, var(--flo-cobalto) 60%, transparent) 55%, color-mix(in srgb, var(--flo-cobalto) 25%, transparent) 100%); }
.flo-hero-photo { display: block; width: 100%; height: auto; max-height: 560px; object-fit: contain; filter: drop-shadow(0 30px 40px rgba(5,10,40,.35)); border-radius: 24px; }
.flo-cat--img { padding-top: 0; display: flex; flex-direction: column; }
.flo-cat-img { display: block; width: calc(100% + 40px); max-width: none; margin: 0 -20px 14px; aspect-ratio: 3 / 2; object-fit: cover; }
.flo-cat--img::before { z-index: 1; }
.flo-process--bg { background: var(--sec-bg) center / cover no-repeat, var(--flo-cobalto); }
.flo-process--bg::before { background: linear-gradient(100deg, color-mix(in srgb, var(--flo-cobalto) 92%, transparent), color-mix(in srgb, var(--flo-cobalto) 75%, transparent)); }
.flo-lens-cols--img { grid-template-columns: .9fr 1fr 1fr; align-items: start; }
.flo-lens-img { margin: 0; border-radius: var(--r, 18px); overflow: hidden; }
.flo-lens-img img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.flo-guarantee-img { flex: none; width: 110px; height: 110px; object-fit: contain; }
.flo-service-ico--img { background: #fff; overflow: hidden; padding: 0; }
.flo-service-ico--img img { width: 100%; height: 100%; object-fit: cover; }
.flo-store-photo { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 14px; margin-bottom: 16px; }
.flo-promos-banner { margin: 0 0 24px; border-radius: var(--r, 18px); overflow: hidden; }
.flo-promos-banner img { display: block; width: 100%; height: auto; max-height: 420px; object-fit: cover; }
@media (max-width: 900px) { .flo-lens-cols--img { grid-template-columns: 1fr; } }
.flo-eq-imgs section { margin-bottom: 22px; }
.flo-eq-imgs h3 { margin: 0 0 10px; }
.flo-eq-img-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; margin-bottom: 8px; }
.flo-eq-img { border: 1px solid #DCE1EE; border-radius: 14px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.flo-eq-img.is-busy { opacity: .6; pointer-events: none; }
.flo-eq-img-prev { aspect-ratio: 16 / 9; background: repeating-conic-gradient(#F1F3F8 0% 25%, #fff 0% 50%) 50% / 16px 16px; display: grid; place-items: center; overflow: hidden; }
.flo-eq-img-prev img { width: 100%; height: 100%; object-fit: cover; }
.flo-eq-img-prev.is-logo img { object-fit: contain; padding: 16px; }
.flo-eq-img-prev span { font-size: 13px; color: var(--ink-2, #5A6380); background: #fff; padding: 5px 12px; border-radius: 99px; border: 1px solid #DCE1EE; }
.flo-eq-img-body { padding: 12px 14px 14px; display: grid; gap: 6px; }
.flo-eq-img-body h4 { margin: 0; font-size: 15px; }
.flo-eq-img-body .flo-eq-fine { margin: 0; }
.flo-eq-img-body .flo-form-msg:empty { display: none; }
.flo-eq-img-up { position: relative; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.flo-eq-img-up input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.flo-eq-img-up svg { width: 16px; height: 16px; }

/* ---------- 1.9.0 · Filtros del catálogo (computadora: columna; celular: panel desde abajo) ---------- */
.flo-catalog-body { grid-template-columns: 264px minmax(0, 1fr); }
.flo-filters { gap: 0; max-height: calc(100vh - 120px); overflow: auto; overscroll-behavior: contain; padding-right: 6px; scrollbar-width: thin; }
.flo-fs-head, .flo-fs-foot, .flo-fs-scrim { display: none; }
.flo-fs-body { display: flex; flex-direction: column; gap: 22px; }
.flo-fg { border: 0; margin: 0; padding: 0 0 20px; border-bottom: 1px solid var(--line); min-width: 0; }
.flo-fg:last-child { border-bottom: 0; }
.flo-fg legend { float: left; width: 100%; font-family: var(--display); font-weight: 700; font-size: 16px; margin-bottom: 10px; }
.flo-fg-opts { clear: both; display: flex; flex-direction: column; gap: 2px; }
.flo-fo { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px; padding: 6px 8px; border-radius: 12px; text-align: left; font-size: 15px; font-weight: 500; color: var(--ink); transition: background .15s; }
.flo-fo:hover { background: var(--bg-2); }
.flo-fo-n { flex: 1; min-width: 0; }
.flo-fo-c { font-size: 12.5px; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.flo-fo-box { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; border: 2px solid #C4CADB; background: #fff; }
.flo-fo-box .flo-ico { width: 15px; height: 15px; stroke-width: 3; color: #fff; opacity: 0; }
.flo-fo[aria-pressed="true"] .flo-fo-box { background: var(--flo-cobalto); border-color: var(--flo-cobalto); }
.flo-fo[aria-pressed="true"] .flo-fo-box .flo-ico { opacity: 1; }
.flo-fo[aria-pressed="true"] { background: color-mix(in srgb, var(--flo-violeta) 9%, #fff); font-weight: 700; }
.flo-fo.is-hot .flo-fo-n { color: #0E9F6E; font-weight: 700; }
/* Categoría: ícono + nombre, como la referencia */
.flo-fg--genero .flo-fg-opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.flo-fo--genero { flex-direction: column; gap: 4px; padding: 10px 4px; border: 1px solid var(--line); text-align: center; font-size: 14px; }
.flo-fo--genero .flo-fo-c { display: none; }
.flo-fo-ico .flo-ico { width: 30px; height: 30px; stroke-width: 1.5; }
.flo-fo--genero[aria-pressed="true"] { border-color: var(--flo-violeta); color: var(--flo-violeta); }
/* Marcas: logo pequeño + nombre */
.flo-fo-logo { flex: none; display: grid; place-items: center; width: 56px; height: 28px; }
.flo-fo-logo img { max-width: 56px; max-height: 26px; object-fit: contain; }
.flo-fg-opts.is-short .flo-fo--extra { display: none; }
.flo-fg-more { margin: 6px 0 0 8px; font-size: 14px; }
/* Forma: dibujo de la montura + nombre */
.flo-fo-shape { flex: none; width: 58px; color: var(--ink); }
.flo-fo-shape svg { width: 58px; height: 22px; }
/* Color: círculos */
.flo-fg--color .flo-fg-opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 6px; }
.flo-fo-dot { flex: none; width: 22px; height: 22px; border-radius: 50%; background: var(--sw); box-shadow: inset 0 0 0 1px rgba(19,35,91,.18); }
.flo-fo--color[aria-pressed="true"] .flo-fo-dot { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--flo-violeta); }
.flo-fg--color .flo-fo-c { display: none; }
/* Precio: botones */
.flo-fg--precio .flo-fg-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.flo-fo--precio { justify-content: center; border: 1px solid var(--line); font-size: 14px; text-align: center; }
.flo-fo--precio .flo-fo-n { flex: none; }
.flo-fo--precio .flo-fo-c { display: none; }
.flo-fo--precio[aria-pressed="true"] { border-color: var(--flo-cobalto); background: var(--flo-cobalto); color: #fff; }
/* Atajos y filtros activos */
.flo-quick { display: none; }
.flo-active { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 12px; }
.flo-achip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 4px 10px 4px 14px; border-radius: 999px; background: var(--flo-cobalto); color: #fff; font-size: 14px; font-weight: 600; }
.flo-achip .flo-ico { width: 16px; height: 16px; }
.flo-active .flo-link { font-size: 14px; }
html.flo-noscroll, html.flo-noscroll body { overflow: hidden; }

@media (max-width: 1080px) and (min-width: 901px) { .flo-catalog-body { grid-template-columns: 232px minmax(0, 1fr); gap: 24px; } }
@media (max-width: 900px) {
	.flo-catalog { padding-top: 44px; }
	.flo-catalog-body { grid-template-columns: 1fr; gap: 0; }
	.flo-toolbar { margin-bottom: 12px; }
	.flo-sort { margin-left: auto; }
	/* Barra fija con atajos: un toque aplica el filtro. */
	.flo-quick { display: block; position: sticky; top: var(--flo-hh, 64px); z-index: 30; margin: 0 -16px 14px; padding: 8px 16px; background: rgba(255,255,255,.96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
	.flo-quick-row { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.flo-quick-row::-webkit-scrollbar { display: none; }
	.flo-quick-f, .flo-fo--q { flex: none; display: inline-flex; align-items: center; gap: 6px; width: auto; min-height: 40px; padding: 6px 14px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 14.5px; font-weight: 600; white-space: nowrap; }
	.flo-quick-f { background: var(--flo-cobalto); border-color: var(--flo-cobalto); color: #fff; }
	.flo-quick-f b { display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: var(--flo-coral); font-size: 12px; }
	.flo-fo--q .flo-fo-box, .flo-fo--q .flo-fo-c, .flo-fo--q .flo-fo-ico { display: none; }
	.flo-fo--q, .flo-fo--q.flo-fo--genero { flex-direction: row; }
	.flo-fo--q .flo-fo-n { flex: none; }
	html.flo-noscroll .flo-fab { display: none !important; }
	.flo-fo--q[aria-pressed="true"] { background: color-mix(in srgb, var(--flo-violeta) 12%, #fff); border-color: var(--flo-violeta); color: var(--flo-violeta); }
	.flo-fo--q.is-hot .flo-fo-n { color: #0E9F6E; }
	/* Panel desde abajo */
	.flo-filters { position: fixed; left: 0; right: 0; bottom: 0; top: auto; z-index: 1000; display: flex; flex-direction: column; max-height: 88vh; max-height: 88dvh; padding: 0; overflow: hidden; background: #fff; border-radius: 22px 22px 0 0; box-shadow: 0 -20px 50px -10px rgba(9,16,48,.35); transform: translateY(105%); visibility: hidden; transition: transform .28s ease, visibility 0s .28s; }
	.flo-filters.is-open { transform: none; visibility: visible; transition: transform .28s ease; }
	.flo-fs-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px 10px; border-bottom: 1px solid var(--line); }
	.flo-fs-head strong { font-family: var(--display); font-size: 19px; }
	.flo-fs-body { flex: 1; overflow: auto; overscroll-behavior: contain; padding: 16px; gap: 18px; }
	.flo-fs-foot { display: grid; grid-template-columns: auto 1fr; gap: 10px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: #fff; }
	.flo-fs-foot .flo-btn { min-height: 52px; }
	.flo-fs-scrim { position: fixed; inset: 0; z-index: 999; background: rgba(9,16,48,.45); }
	.flo-fs-on .flo-fs-scrim { display: block; }
	.flo-fg--genero .flo-fg-opts { grid-template-columns: repeat(3, 1fr); }
	.flo-fg--precio .flo-fg-opts { grid-template-columns: 1fr 1fr; }
	.flo-fo { min-height: 48px; font-size: 16px; }
	.flo-fo--genero, .flo-fo--precio { font-size: 15px; }
}
@media (prefers-reduced-motion: reduce) { .flo-filters { transition: none !important; } }

/* Mega-menú del Catálogo (computadora) */
.flo-mega-w { position: static; display: flex; }
.flo-mega { display: none; }
@media (min-width: 901px) {
	.flo-header .flo-wrap { position: relative; }
	.flo-mega { position: absolute; left: 0; right: 0; top: 100%; z-index: 60; display: block; visibility: hidden; opacity: 0; transform: translateY(-6px); transition: opacity .16s, transform .16s, visibility 0s .16s; background: #F7F8FB; border-top: 6px solid #7C7F88; box-shadow: 0 30px 40px -24px rgba(9,16,48,.35); }
	.flo-mega-w:hover .flo-mega, .flo-mega-w:focus-within .flo-mega { visibility: visible; opacity: 1; transform: none; transition: opacity .16s, transform .16s; }
	.flo-header.is-mega-off .flo-mega { display: none; }
	.flo-mega > .flo-wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; align-items: start; padding: 28px 0 32px; min-height: 0; }
	.flo-mega-h { font-family: var(--display); font-weight: 700; font-size: 17px; margin-bottom: 14px; color: var(--ink); }
	.flo-app .flo-mega a { display: flex; align-items: center; gap: 14px; padding: 8px 6px; margin: 0 -6px; border-radius: 10px; font-size: 16px; font-weight: 500; color: var(--ink) !important; text-decoration: none; white-space: nowrap; }
	.flo-app .flo-mega a:hover { background: #fff; }
	.flo-app .flo-mega a.is-hot { color: #0E9F6E !important; font-weight: 700; }
	.flo-app .flo-mega a.flo-mega-all { margin-top: 10px; font-weight: 700; font-family: var(--display); }
	.flo-mega-ico .flo-ico { width: 36px; height: 36px; stroke-width: 1.5; }
	.flo-mega-logo { flex: none; display: grid; place-items: center; width: 64px; height: 30px; }
	.flo-mega-logo img { max-width: 64px; max-height: 28px; object-fit: contain; }
	.flo-mega-shape { flex: none; width: 64px; }
	.flo-mega-shape svg { width: 64px; height: 24px; }
	.flo-mega-t::after { content: ""; display: inline-block; width: 6px; height: 6px; margin: 0 0 3px 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
}
.flo-results { scroll-margin-top: calc(var(--flo-hh, 0px) + 72px); }
.flo-catalog { scroll-margin-top: var(--flo-hh, 0px); }

/* 1.9.0 · Panel → Tienda → Formas y marcas */
.flo-eq-filt { display: grid; gap: 20px; }
.flo-eq-filt > section { display: grid; gap: 12px; }
.flo-eq-flist { display: grid; gap: 8px; }
.flo-eq-frow { display: grid; grid-template-columns: 78px minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr) auto; gap: 10px 12px; align-items: end; padding: 10px 12px; border: 1px solid #DCE1EE; border-radius: 14px; background: #fff; }
.flo-eq-frow label { display: grid; gap: 4px; font-size: 13px; font-weight: 600; color: var(--ink-2); margin: 0; }
.flo-eq-frow input, .flo-eq-frow select { min-height: 40px; }
.flo-eq-fprev { align-self: center; color: var(--ink); }
.flo-eq-fprev svg { width: 78px; height: 30px; }
.flo-eq-fuse { grid-column: 2 / -1; font-size: 12.5px; color: var(--ink-3); }
.flo-eq-fact { grid-column: 2 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.flo-eq-frow:not(.flo-eq-frow--marca) .flo-eq-fuse { grid-column: 2 / 4; align-self: center; }
.flo-eq-frow:not(.flo-eq-frow--marca) .flo-eq-fact { grid-column: 4 / -1; justify-content: flex-end; }
.flo-eq-frow--marca { grid-template-columns: 96px minmax(0, 1fr) auto; }
.flo-eq-frow--marca .flo-eq-fuse { grid-column: 3; align-self: center; }
.flo-eq-frow--marca .flo-eq-fact { grid-column: 2 / -1; }
.flo-eq-flogo { align-self: center; display: grid; place-items: center; width: 96px; height: 44px; border-radius: 10px; background: var(--bg-2); color: var(--ink-3); font-size: 12px; }
.flo-eq-flogo img { max-width: 88px; max-height: 38px; object-fit: contain; }
.flo-eq-fmv { width: 34px; height: 34px; border-radius: 9px; border: 1px solid #DCE1EE; font-weight: 700; }
.flo-eq-fmv:hover { background: var(--bg-2); }
.flo-eq-fact .flo-btn[disabled] { opacity: .45; cursor: not-allowed; }
@media (max-width: 760px) {
	.flo-eq-frow { grid-template-columns: 64px 1fr; }
	.flo-eq-frow > label, .flo-eq-frow .flo-eq-fuse, .flo-eq-frow .flo-eq-fact { grid-column: 2 !important; }
	.flo-eq-frow .flo-eq-fact { justify-content: flex-start !important; }
	.flo-eq-fprev svg { width: 60px; }
	.flo-eq-frow--marca { grid-template-columns: 72px 1fr; }
	.flo-eq-flogo { width: 72px; }
}
.flo-eq-fact .flo-eq-img-up { display: inline-flex; flex-direction: row; align-items: center; gap: 6px; }
.flo-eq-fact .flo-eq-img-up svg { width: 16px; height: 16px; }
.flo-eq-note { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; margin: 4px 0 14px; border-radius: 12px; background: color-mix(in srgb, var(--flo-verde) 10%, #fff); border: 1px solid color-mix(in srgb, var(--flo-verde) 35%, #fff); font-size: 14px; line-height: 1.5; }
.flo-eq-note .flo-ico { flex: none; width: 18px; height: 18px; margin-top: 2px; color: #0d7c69; }

/* ---------- 1.10.0 · Todo para tu visión (guía sin precios) ---------- */
.flo-guia { padding: 80px 0; background: var(--bg-2); }
.flo-guia-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 28px; }
.flo-gt { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-height: 132px; padding: 18px 18px 16px; border-radius: var(--r-lg); background: #fff; border: 2px solid transparent; text-align: left; overflow: hidden; box-shadow: 0 10px 24px -18px rgba(9,16,48,.35); transition: border-color .15s, transform .15s; }
.flo-gt:hover { transform: translateY(-2px); }
.flo-gt[aria-selected="true"] { border-color: var(--c); box-shadow: 0 14px 30px -16px color-mix(in srgb, var(--c) 60%, transparent); }
.flo-gt-ico { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 8px; border-radius: 14px; background: color-mix(in srgb, var(--c) 14%, #fff); color: var(--c); }
.flo-gt-ico .flo-ico { width: 26px; height: 26px; }
.flo-gt strong { font-family: var(--display); font-size: 18px; line-height: 1.2; }
.flo-gt > span:last-child { font-size: 13.5px; color: var(--ink-3); }
.flo-gt--img { justify-content: flex-end; min-height: 168px; color: #fff; }
.flo-gt--img .flo-gt-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.flo-gt--img::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(9,16,48,0) 30%, rgba(9,16,48,.78)); }
.flo-gt--img strong, .flo-gt--img > span:last-child { position: relative; z-index: 2; color: #fff; }
.flo-guia-sel { display: none; }
.flo-guia-lead { max-width: 720px; margin-bottom: 18px; color: var(--ink-2); }
.flo-gc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; }
.flo-gc { display: flex; flex-direction: column; border-radius: var(--r-lg); background: #fff; overflow: hidden; border: 1px solid var(--line); }
.flo-gc-media { position: relative; aspect-ratio: 4 / 3; display: grid; place-items: center; background: linear-gradient(135deg, color-mix(in srgb, var(--c) 16%, #fff), color-mix(in srgb, var(--c) 6%, #fff)); }
.flo-gc-media img { width: 100%; height: 100%; object-fit: cover; }
.flo-gc-ico { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 22px; background: #fff; color: var(--c); box-shadow: 0 10px 24px -16px rgba(9,16,48,.4); }
.flo-gc-ico .flo-ico { width: 36px; height: 36px; stroke-width: 1.5; }
.flo-gc-tag { position: absolute; top: 12px; left: 12px; padding: 4px 10px; border-radius: 999px; background: #fff; color: var(--ink); font-size: 12.5px; font-weight: 700; }
.flo-gc-body { flex: 1; display: flex; flex-direction: column; gap: 8px; padding: 16px 18px 18px; }
.flo-gc-body h4 { margin: 0; font-family: var(--display); font-size: 18px; line-height: 1.25; }
.flo-gc-body p { margin: 0; font-size: 14.5px; color: var(--ink-2); line-height: 1.5; }
.flo-gc-act { margin-top: auto; padding-top: 6px; }
.flo-gc-act .flo-btn { gap: 6px; }
.flo-gc-act .flo-btn svg { width: 16px; height: 16px; }
@media (max-width: 1080px) { .flo-guia-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
	.flo-guia { padding: 56px 0; }
	/* Celular: lista desplegable en lugar de los 4 botones grandes. */
	.flo-guia-tabs { display: none; }
	.flo-guia-sel { display: grid; gap: 6px; margin-bottom: 18px; font-weight: 700; font-size: 15px; }
	.flo-guia-sel select { height: 54px; padding: 0 44px 0 16px; border-radius: 14px; border: 2px solid var(--flo-cobalto); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2313235B' stroke-width='2.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 20px; appearance: none; font-size: 17px; font-weight: 700; color: var(--ink); }
	/* Tarjetas en fila: imagen a la izquierda, texto a la derecha. */
	.flo-gc-grid { grid-template-columns: 1fr; gap: 12px; }
	.flo-gc { flex-direction: row; }
	.flo-gc-media { flex: none; width: 108px; aspect-ratio: auto; min-height: 100%; }
	.flo-gc-ico { width: 52px; height: 52px; border-radius: 16px; }
	.flo-gc-ico .flo-ico { width: 26px; height: 26px; }
	.flo-gc-tag { top: 8px; left: 8px; font-size: 11px; padding: 3px 8px; }
	.flo-gc-body { padding: 12px 14px 14px; gap: 6px; }
	.flo-gc-body h4 { font-size: 16.5px; }
	.flo-gc-body p { font-size: 14px; }
	.flo-gc-act .flo-btn { min-height: 40px; }
}

/* Panel → Sitio web → Todo para tu visión */
.flo-eq-gtabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 14px; }
.flo-eq-gtabs button { min-height: 40px; padding: 6px 14px; border-radius: 999px; border: 1px solid #DCE1EE; background: #fff; font-weight: 600; }
.flo-eq-gtabs button[aria-selected="true"] { background: var(--flo-cobalto); border-color: var(--flo-cobalto); color: #fff; }
.flo-eq-gtabs small { opacity: .7; margin-left: 4px; }
.flo-eq-glist { display: grid; gap: 8px; margin-bottom: 14px; }
.flo-eq-gitem { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 12px; border: 1px solid #DCE1EE; border-radius: 14px; background: #fff; }
.flo-eq-gitem.is-off { opacity: .6; }
.flo-eq-gitem > div { display: grid; gap: 2px; min-width: 0; }
.flo-eq-gitem small { color: var(--ink-3); font-size: 13px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.flo-eq-gitem .flo-eq-gact { -webkit-line-clamp: 1; color: var(--flo-violeta); }
.flo-eq-off { display: inline !important; font-weight: 700; color: #D2264A !important; }
.flo-eq-gthumb { display: grid; place-items: center; width: 72px; height: 54px; border-radius: 10px; overflow: hidden; background: var(--bg-2); color: var(--flo-violeta); }
.flo-eq-gthumb img { width: 100%; height: 100%; object-fit: cover; }
.flo-eq-gthumb .flo-ico { width: 26px; height: 26px; }
.flo-eq-gthumb--big { width: 100%; height: 180px; }
.flo-eq-gthumb--big .flo-ico { width: 56px; height: 56px; }
.flo-eq-gvis { align-self: end; min-height: 44px; }
@media (max-width: 640px) {
	.flo-eq-gitem { grid-template-columns: 60px minmax(0, 1fr); }
	.flo-eq-gitem .flo-eq-fact { grid-column: 1 / -1; }
	.flo-eq-gthumb { width: 60px; height: 46px; }
}

/* ---------- 2.0.0 · Compra rápida ---------- */
.flo-add--cart { width: 44px; height: 44px; padding: 0; justify-content: center; position: relative; flex: none; }
.flo-add--cart .flo-ico { width: 20px; height: 20px; }
.flo-add--cart .flo-add-plus { position: absolute; right: 4px; top: 4px; width: 13px; height: 13px; padding: 1px; border-radius: 50%; background: var(--flo-coral); stroke-width: 3; }
.flo-qb-btn { margin-top: 10px; min-height: 46px; font-size: 15px; gap: 6px; }
.flo-qb-btn .flo-ico, .flo-pd-now .flo-ico { width: 18px; height: 18px; fill: currentColor; stroke: none; }
.flo-pd-buy { position: static; margin-bottom: 10px; padding-bottom: 0; }
.flo-pd-now { position: sticky; bottom: 12px; z-index: 2; box-shadow: 0 10px 24px -8px var(--flo-coral), 0 0 0 8px #fff; }
.flo-qb-l2 { display: none; }
@media (max-width: 600px) {
	.flo-card-foot { flex-direction: row; align-items: center; }
	.flo-qb-btn { font-size: 15px; padding: 0 10px; }
	.flo-qb-l1 { display: none; }
	.flo-qb-l2 { display: inline; }
}

.flo-modal-box.is-qb { width: min(540px, 100%); padding: 0; overflow: auto; overscroll-behavior: contain; }
.flo-qb { display: flex; flex-direction: column; min-height: min(640px, calc(100vh - 48px)); }
.flo-qb-head { position: sticky; top: 0; z-index: 3; display: grid; grid-template-columns: 44px 1fr 44px; align-items: center; gap: 10px; padding: 14px 16px 12px; background: #fff; border-bottom: 1px solid var(--line); }
.flo-qb-back { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--bg-2); }
.flo-qb-back[hidden] { display: block !important; visibility: hidden; }
.flo-qb-back .flo-ico { width: 22px; height: 22px; stroke-width: 2.4; }
.flo-qb-head .flo-x { width: 44px; height: 44px; }
.flo-qb-prog p { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 6px; font-size: 13px; color: var(--ink-3); }
.flo-qb-prog p b { font-size: 15.5px; color: var(--ink); font-family: var(--display); }
.flo-qb-prog i { display: block; height: 6px; border-radius: 9px; background: var(--bg-2); overflow: hidden; }
.flo-qb-prog s { display: block; height: 100%; width: 0; border-radius: 9px; background: linear-gradient(90deg, var(--flo-verde), var(--flo-violeta)); transition: width .3s ease; text-decoration: none; }
.flo-qb-body { flex: 1; padding: 20px 20px 8px; }
.flo-qb-t { display: block; font-family: var(--display); font-size: 24px; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; margin-bottom: 6px; outline: none; }
.flo-qb-lead { color: var(--ink-2); font-size: 15px; margin-bottom: 18px; }
.flo-qb-h { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-3); font-weight: 700; margin: 20px 0 10px; }
.flo-qb-pane > .flo-qb-tiles:first-of-type { margin-top: 16px; }

.flo-qb-prod { display: flex; gap: 14px; align-items: center; }
.flo-qb-prod-img, .flo-qb-line-img { flex: none; display: grid; place-items: center; width: 92px; height: 72px; border-radius: 14px; background: radial-gradient(110% 80% at 50% 90%, var(--pt), #F4F6FB 75%); overflow: hidden; }
.flo-qb-prod-img img, .flo-qb-line-img img { width: 100%; height: 100%; object-fit: contain; }
.flo-qb-prod-img svg, .flo-qb-line-img svg { width: 86%; }
.flo-qb-prod b.flo-qb-t { font-size: 19px; margin: 0; }
.flo-qb-prod em { font-style: normal; color: var(--ink-2); font-size: 14.5px; }

.flo-qb-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.flo-qb-chips.is-invalid { outline: 2px solid #D2264A; outline-offset: 4px; border-radius: 12px; }
.flo-qb-chips--col { flex-direction: column; }
.flo-qb-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 16px; border-radius: 999px; border: 1.5px solid #CDD3E3; background: #fff; font-weight: 600; font-size: 15px; text-align: left; transition: border-color .12s, background-color .12s; -webkit-tap-highlight-color: transparent; }
.flo-qb-chip i { width: 18px; height: 18px; border-radius: 50%; border: 1px solid rgba(0,0,0,.15); flex: none; }
.flo-qb-chip em { font-style: normal; font-weight: 500; color: var(--ink-3); font-size: 13.5px; }
.flo-qb-chip .flo-ico { width: 18px; height: 18px; }
.flo-qb-chip--row { justify-content: space-between; border-radius: 14px; padding: 10px 16px; width: 100%; }
.flo-qb-chip[aria-pressed="true"] { border-color: var(--flo-violeta); background: color-mix(in srgb, var(--flo-violeta) 9%, #fff); color: var(--flo-violeta); box-shadow: inset 0 0 0 1px var(--flo-violeta); }
.flo-qb-chip[aria-pressed="true"] em { color: var(--flo-violeta); }
.flo-qb-chip:active, .flo-qb-tile:active, .flo-qb-me:active { transform: scale(.98); }
.flo-qb-pane .flo-link { margin-top: 12px; min-height: 44px; font-size: 15px; }
.flo-qb-pane .flo-link .flo-ico { width: 18px; height: 18px; }
[data-qb-trats] { margin-top: 8px; }

.flo-qb-tiles { display: grid; gap: 10px; }
.flo-qb-tiles.is-invalid { outline: 2px solid #D2264A; outline-offset: 4px; border-radius: 18px; }
.flo-qb-tile { position: relative; display: flex; align-items: center; gap: 14px; width: 100%; min-height: 76px; padding: 14px 16px; border-radius: 18px; border: 1.5px solid #CDD3E3; background: #fff; text-align: left; transition: border-color .12s, background-color .12s, transform .1s; -webkit-tap-highlight-color: transparent; }
.flo-qb-tile:hover { border-color: var(--ink-3); }
.flo-qb-tile[aria-pressed="true"] { border-color: var(--flo-violeta); background: color-mix(in srgb, var(--flo-violeta) 7%, #fff); box-shadow: inset 0 0 0 1px var(--flo-violeta); }
.flo-qb-tile-ico { display: grid; place-items: center; flex: none; width: 48px; height: 48px; border-radius: 14px; background: var(--bg-2); color: var(--ink); }
.flo-qb-tile-ico .flo-ico { width: 24px; height: 24px; }
.flo-qb-tile-ico--txt { color: #fff; font-family: var(--display); font-weight: 800; font-size: 22px; }
.flo-qb-tile--yape .flo-qb-tile-ico { background: #742284; }
.flo-qb-tile--plin .flo-qb-tile-ico { background: #00A6A6; }
.flo-qb-tile--transferencia .flo-qb-tile-ico { background: var(--flo-cobalto); }
.flo-qb-tile-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.flo-qb-tile-txt b { font-size: 16.5px; }
.flo-qb-tile-txt em { font-style: normal; font-size: 13.5px; color: var(--ink-2); line-height: 1.35; }
.flo-qb-tile-txt i { font-style: normal; font-size: 13px; font-weight: 700; color: #0D8A72; }
.flo-qb-last { position: absolute; top: -9px; right: 14px; padding: 2px 9px; border-radius: 99px; background: var(--flo-ambar); color: var(--flo-cobalto); font-size: 11.5px; font-weight: 700; }
.flo-qb-file { margin-top: 10px !important; }
.flo-qb-file.is-invalid, .flo-qb-rx.is-invalid { outline: 2px solid #D2264A; outline-offset: 4px; border-radius: 14px; }
.flo-qb-rx .flo-qb-tile { min-height: 64px; }

.flo-qb-me { display: flex; align-items: center; gap: 14px; width: 100%; margin-top: 16px; padding: 18px; border-radius: 18px; border: 2px solid var(--flo-violeta); background: color-mix(in srgb, var(--flo-violeta) 7%, #fff); text-align: left; }
.flo-qb-me > .flo-ico:first-child { width: 44px; height: 44px; padding: 10px; border-radius: 50%; background: var(--flo-violeta); color: #fff; }
.flo-qb-me span { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.flo-qb-me b { font-size: 18px; }
.flo-qb-me em { font-style: normal; color: var(--ink-2); font-size: 14px; }
.flo-qb-me .flo-qb-ok { width: 26px; height: 26px; color: var(--flo-violeta); stroke-width: 2.6; }
.flo-qb-form { margin-top: 4px; }
.flo-overlays .flo-qb input[name="nombre"], .flo-overlays .flo-qb input[name="telefono"], .flo-overlays .flo-qb input[name="direccion"] { min-height: 50px; font-size: 16px; }
.flo-overlays form .flo-qb-dist { border: 0; padding: 0; margin: 4px 0 14px; }
.flo-qb-dist legend { font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.flo-qb-dist .flo-qb-chip { min-height: 44px; padding: 0 14px; font-size: 14.5px; }
[data-qb-ubbox] { margin-top: 12px; }
[data-qb-ubbox] .flo-ubigeo { margin: 0; }
.flo-qb-promo { font-size: 14px !important; }
.flo-qb .flo-fine { display: flex; gap: 8px; align-items: flex-start; }
.flo-qb .flo-fine .flo-ico { width: 16px; height: 16px; color: #0D8A72; margin-top: 2px; }
.flo-qb-addr { margin-top: 14px; }
.flo-qb-addr small { font-weight: 500; color: var(--ink-3); }

.flo-qb-lines { display: grid; gap: 10px; margin: 14px 0 4px; }
.flo-qb-lines li { display: flex; gap: 12px; align-items: center; }
.flo-qb-line-img { width: 64px; height: 50px; border-radius: 12px; }
.flo-qb-lines li > span:nth-child(2) { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.flo-qb-lines b { font-size: 15px; }
.flo-qb-lines em { font-style: normal; font-size: 13px; color: var(--flo-violeta); }
.flo-qb-lines strong { white-space: nowrap; font-size: 15px; }
.flo-qb-rev { display: grid; margin: 12px 0 6px; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.flo-qb-rev li { display: flex; align-items: center; gap: 12px; padding: 12px 14px; }
.flo-qb-rev li + li { border-top: 1px solid var(--line); }
.flo-qb-rev-ico { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 10px; background: var(--bg-2); }
.flo-qb-rev-ico .flo-ico { width: 18px; height: 18px; }
.flo-qb-rev li > span:nth-child(2) { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.flo-qb-rev b { font-size: 14.5px; }
.flo-qb-rev em { font-style: normal; font-size: 13px; color: var(--ink-2); overflow-wrap: anywhere; }
.flo-qb-rev .flo-link { margin: 0; font-size: 14px; min-height: 40px; }
.flo-qb-cup { margin: 6px 0 4px; }
.flo-qb-cup .flo-coupon-row { margin-top: 10px; }
.flo-qb-cup .flo-coupon-msg:empty { display: none; }
.flo-qb-totals { margin-top: 10px; }
.flo-qb-totals .flo-sub { margin-bottom: 6px; }

.flo-qb-foot { position: sticky; bottom: 0; z-index: 3; padding: 10px 20px calc(14px + env(safe-area-inset-bottom)); background: #fff; box-shadow: 0 -10px 20px -14px rgba(9,16,48,.35); }
.flo-qb-foot .flo-form-msg { margin-bottom: 8px; min-height: 0; }
.flo-qb-foot .flo-form-msg:empty { display: none; }
.flo-qb-go { min-height: 54px; font-size: 16.5px; }
.flo-qb-foot:has(.flo-qb-go[hidden]):has(.flo-form-msg:empty) { display: none; }

.flo-qb-done { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 36px 20px calc(24px + env(safe-area-inset-bottom)); text-align: center; outline: none; }
.flo-qb-done h2 { font-family: var(--display); font-size: 30px; font-weight: 800; letter-spacing: -.03em; }
.flo-qb-done .flo-btn { width: 100%; }
.flo-qb-done > .flo-fine { margin: 0; }
.flo-qb-next { display: flex; gap: 6px; width: 100%; margin: 4px 0; font-size: 12.5px; font-weight: 600; color: var(--ink-3); }
.flo-qb-next li { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.flo-qb-next span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--bg-2); color: var(--ink-3); font-weight: 800; }
.flo-qb-next .is-done span { background: var(--flo-verde); color: #fff; }
.flo-qb-next .is-on { color: var(--flo-violeta); }
.flo-qb-next .is-on span { background: var(--flo-violeta); color: #fff; }
.flo-qb-pay { width: 100%; padding: 18px; border-radius: 18px; background: var(--bg-2); border: 1.5px solid var(--line); text-align: center; }
.flo-qb-pay--yape { background: #F6EEF9; border-color: #E2C9EC; }
.flo-qb-pay--plin { background: #E8F8F8; border-color: #BFEAEA; }
.flo-qb-pay-t { font-size: 17px; margin-bottom: 10px; }
.flo-qb-pay-t b { font-family: var(--display); font-size: 22px; }
.flo-qb-pay-who { font-size: 14.5px; color: var(--ink-2); margin-top: 8px; }
.flo-qb-pay .flo-fine { margin-top: 8px; display: block; }
.flo-qb-qr { width: 200px; max-width: 70%; margin: 0 auto 12px; border-radius: 14px; background: #fff; padding: 8px; }
.flo-qb-num { display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; }
.flo-qb-num span { font-family: var(--display); font-size: 28px; font-weight: 800; letter-spacing: .02em; }
.flo-qb-num--sm span { font-size: 16px; letter-spacing: 0; font-family: var(--body); font-weight: 700; }
.flo-qb-copy { min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--flo-cobalto); color: #fff; font-weight: 700; font-size: 14px; }
.flo-qb-acc { padding: 10px 0; display: grid; gap: 6px; }
.flo-qb-acc + .flo-qb-acc { border-top: 1px solid var(--line); }
@media (max-width: 900px) {
	.flo-modal-box.is-qb { max-height: 96vh; max-height: 96dvh; }
	.flo-qb { min-height: min(560px, 90dvh); }
}
@media (max-width: 380px) {
	.flo-qb-body { padding: 16px 14px 8px; }
	.flo-qb-t { font-size: 21px; }
	.flo-qb-num span { font-size: 24px; }
}

/* ---------- 2.1.0 · Botón «Compra rápida» en el menú y la portada ---------- */
.flo-qb-open { --qb: var(--flo-coral); display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 999px; font-weight: 800; white-space: nowrap; touch-action: manipulation; -webkit-tap-highlight-color: transparent; transition: transform .12s ease, box-shadow .2s ease; }
.flo-app .flo-qb-open, .flo-overlays .flo-qb-open { background: var(--qb) !important; color: #fff !important; border: 0 !important; }
.flo-qb-open .flo-ico { width: 18px; height: 18px; fill: currentColor; stroke: none; flex: none; }
.flo-qb-open:active { transform: scale(.97); }
.flo-qb-open--nav { min-height: 40px; padding: 0 16px; margin-right: 6px; font-size: 14.5px; box-shadow: 0 6px 16px -8px var(--qb); }
.flo-qb-open--hero { min-height: 60px; padding: 0 30px; font-size: 18.5px; box-shadow: 0 14px 30px -12px var(--qb); }
.flo-qb-open--hero .flo-ico { width: 22px; height: 22px; }
.flo-qb-open--hero:hover { box-shadow: 0 18px 34px -12px var(--qb); }
.flo-hero-qb { margin-top: 26px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.flo-hero-qb + .flo-hero-cta { margin-top: 16px; }
.flo-qb-sub { margin: 0; font-size: 14px; color: var(--ink-2); max-width: 420px; }
.flo-hero--bg .flo-qb-sub { color: inherit; opacity: .85; }
.flo-nav .flo-nav-team { display: none; }
@media (max-width: 1180px) and (min-width: 901px) { .flo-qb-open--nav span { display: none; } .flo-qb-open--nav { width: 40px; padding: 0; } }
@media (max-width: 900px) {
	.flo-qb-open--nav { order: -1; width: 100%; min-height: 54px; margin: 2px 0 8px; font-size: 17px; }
	.flo-qb-open--nav .flo-ico { width: 20px; height: 20px; }
	.flo-app .flo-nav a.flo-nav-team { display: flex; align-items: center; gap: 10px; margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--line); border-radius: 0; color: var(--ink-2) !important; font-size: 15px; }
	.flo-nav-team .flo-ico { width: 20px; height: 20px; }
	.flo-hero-qb { align-items: stretch; }
	.flo-qb-open--hero { width: 100%; }
}

/* Paso «Producto» de la compra rápida */
.flo-qb-search { position: relative; display: block; margin: 14px 0 12px; }
.flo-qb-search .flo-ico { position: absolute; left: 16px; top: 50%; width: 20px; height: 20px; transform: translateY(-50%); color: var(--ink-3); pointer-events: none; }
.flo-overlays .flo-qb-search input { width: 100%; min-height: 52px; padding-left: 46px !important; border-radius: 999px !important; font-size: 16px !important; }
.flo-qb-chips--scroll { flex-wrap: nowrap; overflow-x: auto; margin: 0 -20px 14px; padding: 2px 20px 6px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.flo-qb-chips--scroll::-webkit-scrollbar { display: none; }
.flo-qb-chips--scroll .flo-qb-chip { flex: none; min-height: 44px; }
.flo-qb-pgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 640px) { .flo-qb-pgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.flo-qb-pcard { display: flex; flex-direction: column; align-items: stretch; width: 100%; padding: 8px 8px 12px; border-radius: 18px; border: 1.5px solid #CDD3E3; background: #fff; text-align: left; touch-action: manipulation; transition: border-color .15s ease, transform .12s ease; }
.flo-qb-pcard:hover { border-color: var(--flo-violeta); }
.flo-qb-pcard:active { transform: scale(.97); border-color: var(--flo-violeta); }
.flo-qb-pcard-img { display: grid; place-items: center; aspect-ratio: 4 / 3; border-radius: 12px; background: radial-gradient(110% 80% at 50% 90%, var(--pt), #F4F6FB 75%); overflow: hidden; }
.flo-qb-pcard-img img { width: 100%; height: 100%; object-fit: contain; }
.flo-qb-pcard-img svg { width: 84%; }
.flo-qb-pcard-txt { display: flex; flex-direction: column; gap: 2px; padding: 8px 4px 0; min-width: 0; }
.flo-qb-pcard-txt b { font-size: 14.5px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.flo-qb-pcard-txt em { font-style: normal; font-weight: 800; font-size: 15px; color: var(--ink); }
.flo-qb-pcard-txt del { font-weight: 500; font-size: 12.5px; color: var(--ink-3); }
.flo-qb-pcard-txt i { font-style: normal; font-size: 12px; font-weight: 700; color: var(--flo-violeta); }
.flo-qb-empty { padding: 18px 0; text-align: center; color: var(--ink-3); }
.flo-qb-cartrow { display: flex; align-items: center; gap: 12px; width: 100%; margin: 14px 0 4px; padding: 14px 16px; border-radius: 18px; border: 2px solid var(--flo-verde); background: color-mix(in srgb, var(--flo-verde) 8%, #fff); text-align: left; touch-action: manipulation; }
.flo-qb-cartrow > .flo-ico:first-child { width: 40px; height: 40px; padding: 9px; border-radius: 50%; background: var(--flo-verde); color: #fff; flex: none; }
.flo-qb-cartrow span { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.flo-qb-cartrow b { font-size: 16px; }
.flo-qb-cartrow em { font-style: normal; font-size: 13.5px; color: var(--ink-2); }
.flo-qb-cartrow .flo-qb-go-ico { width: 20px; height: 20px; transform: rotate(180deg); color: var(--ink-3); }
.flo-qb-servrow { margin-top: 18px; border-color: #CDD3E3; background: var(--bg-2); }
.flo-qb-servrow > .flo-ico:first-child { background: var(--flo-cobalto); }
/* Cupones de un toque en «Confirmar» */
.flo-qb-cupchips { display: grid; gap: 8px; margin-bottom: 6px; }
.flo-qb-cupchips .flo-qb-h { margin: 14px 0 2px; }
.flo-qb-cupchip { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 56px; padding: 10px 14px; border-radius: 14px; border: 1.5px dashed var(--flo-coral); background: color-mix(in srgb, var(--flo-coral) 6%, #fff); text-align: left; touch-action: manipulation; }
.flo-qb-cupchip .flo-ico { width: 20px; height: 20px; color: #C8183F; flex: none; }
.flo-qb-cupchip span { display: flex; flex-direction: column; }
.flo-qb-cupchip b { font-size: 15px; }
.flo-qb-cupchip em { font-style: normal; font-size: 12.5px; color: var(--ink-2); letter-spacing: .03em; }
.flo-qb-cupchip:active { transform: scale(.98); }

/* ---------- 2.1.0 · Panel master: Ajustes → Compra rápida ---------- */
.flo-eq-qb { display: grid; gap: 4px; max-width: 860px; }
.flo-eq-qb .flo-eq-form h3 { font-size: 18px; margin-bottom: 12px; }
.flo-eq-qb .flo-eq-form h4 { font-size: 16px; margin: 4px 0 10px; }
.flo-eq-qb h4 small { font-weight: 500; color: var(--ink-3); font-size: 13px; }
.flo-eq-lbl { margin: 16px 0 8px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); }
.flo-eq-lbl small { text-transform: none; letter-spacing: 0; font-weight: 500; }
.flo-eq-qbfine { margin: 8px 0; font-size: 13.5px; color: var(--ink-3); line-height: 1.5; }
.flo-eq-qbfine a, .flo-eq-sw em a { color: var(--flo-violeta); font-weight: 700; }
.flo-eq-warn { color: #B4231F; }
/* Los ajustes no son un formulario único: mismos estilos de campos que los formularios. */
.flo-app .flo-eq-qb label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; margin-bottom: 14px; }
.flo-app .flo-eq-qb label.flo-check { flex-direction: row; align-items: center; gap: 10px; font-weight: 500; }
.flo-app .flo-eq-qb :is(input:not([type="radio"]):not([type="checkbox"]):not([type="color"]), select, textarea) { width: 100%; min-height: 48px; padding: 10px 14px; border-radius: 12px; border: 1px solid #CDD3E3; background: #fff; font-weight: 500; font-size: 15.5px; }
.flo-app .flo-eq-qb :is(input, select, textarea):focus { outline: none; border-color: var(--flo-violeta); box-shadow: 0 0 0 3px color-mix(in srgb, var(--flo-violeta) 22%, transparent); }
/* Interruptor grande para el dedo */
.flo-eq-sw { display: flex !important; flex-direction: row !important; align-items: center; gap: 14px; min-height: 60px; padding: 10px 14px; margin: 0 0 8px !important; border-radius: 14px; border: 1.5px solid var(--line); background: #fff; cursor: pointer; font-weight: 500 !important; touch-action: manipulation; }
.flo-eq-sw input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.flo-eq-sw i { position: relative; flex: none; width: 50px; height: 30px; border-radius: 99px; background: #CDD3E3; transition: background .2s ease; }
.flo-eq-sw i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(9,16,48,.25); transition: transform .2s ease; }
.flo-eq-sw input:checked + i { background: var(--flo-verde); }
.flo-eq-sw input:checked + i::after { transform: translateX(20px); }
.flo-eq-sw input:focus-visible + i { outline: 3px solid color-mix(in srgb, var(--flo-violeta) 45%, transparent); outline-offset: 2px; }
.flo-eq-sw span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.flo-eq-sw b { font-size: 15.5px; }
.flo-eq-sw em { font-style: normal; font-size: 13px; color: var(--ink-3); }
.flo-eq-sw.is-off { opacity: .55; cursor: not-allowed; }
.flo-eq-sws { padding-left: 12px; border-left: 3px solid color-mix(in srgb, var(--flo-verde) 40%, #fff); margin: 4px 0 14px; }
.flo-eq-sws--grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 0 10px; padding-left: 0; border-left: 0; margin-bottom: 6px; }
.flo-eq-qbcolors { display: flex; flex-wrap: wrap; gap: 8px; }
.flo-eq-qbcol { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px 0 8px; border-radius: 999px; border: 1.5px solid #CDD3E3; background: #fff; font-size: 14px; font-weight: 600; cursor: pointer; margin: 0 !important; }
.flo-eq-qbcol i { width: 26px; height: 26px; border-radius: 50%; background: var(--c); }
.flo-eq-qbcol[aria-pressed="true"] { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); }
.flo-eq-qbcol--in input { width: 34px; height: 30px; padding: 0 !important; border: 0 !important; background: none; cursor: pointer; min-height: 0 !important; }
.flo-eq-qbprev { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 16px; padding: 16px; border-radius: 14px; background: var(--bg-2); }
.flo-eq-qbprev > span:first-child { font-size: 13px; color: var(--ink-3); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.flo-eq-qbprev .flo-qb-open { background: var(--qb); color: #fff; pointer-events: none; }
.flo-eq-qbsel { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.flo-eq-qbsel li { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 14px; border: 1.5px solid var(--line); background: #fff; }
.flo-eq-qbsel li.flo-eq-qbnone { justify-content: center; color: var(--ink-3); font-size: 14px; min-height: 56px; border-style: dashed; }
.flo-eq-qbthumb { flex: none; display: grid; place-items: center; width: 52px; height: 44px; border-radius: 10px; background: var(--bg-2); overflow: hidden; color: var(--ink-3); }
.flo-eq-qbthumb img { width: 100%; height: 100%; object-fit: contain; }
.flo-eq-qbname { display: flex; flex-direction: column; flex: 1; min-width: 0; text-align: left; }
.flo-eq-qbname b { font-size: 14.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.flo-eq-qbname em { font-style: normal; font-size: 13px; color: var(--ink-3); }
.flo-eq-qbord { display: flex; gap: 4px; flex: none; }
.flo-app .flo-eq-qbord button { width: 40px; height: 40px; border-radius: 10px; background: var(--bg-2); font-size: 17px; font-weight: 700; }
.flo-app .flo-eq-qbord button:disabled { opacity: .35; cursor: default; }
.flo-app .flo-eq-qbord button.is-del { color: #B4231F; background: color-mix(in srgb, var(--flo-coral) 10%, #fff); }
.flo-eq-qbsearch { position: relative; display: block !important; margin: 0 0 8px; }
.flo-eq-qbsearch .flo-ico { position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); color: var(--ink-3); }
.flo-app .flo-eq-qbsearch input { width: 100%; min-height: 48px; padding-left: 42px !important; border-radius: 999px !important; }
.flo-eq-qbpick { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr)); gap: 8px; }
.flo-app .flo-eq-qbadd { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 60px; padding: 8px 10px; border-radius: 14px; border: 1.5px dashed #CDD3E3; background: #fff; touch-action: manipulation; }
.flo-app .flo-eq-qbadd:hover { border-color: var(--flo-verde); border-style: solid; }
.flo-eq-qbadd > .flo-ico:last-child { width: 22px; height: 22px; padding: 3px; border-radius: 50%; background: var(--flo-verde); color: #fff; flex: none; }
.flo-eq-qbcats .flo-eq-chip { min-height: 42px; }
.flo-eq-qbcats .flo-eq-chip small { color: var(--ink-3); }
.flo-eq-qbcats .flo-eq-chip[aria-pressed="true"] { background: var(--flo-cobalto); border-color: var(--flo-cobalto); color: #fff; }
.flo-eq-qbcats .flo-eq-chip[aria-pressed="true"] small { color: rgba(255,255,255,.75); }
.flo-eq-qbcups { display: grid; gap: 10px; margin-bottom: 12px; }
.flo-eq-qbcup { padding: 14px; border-radius: 14px; border: 1.5px solid var(--line); background: #fff; }
.flo-eq-qbcup.is-paused { background: var(--bg-2); }
.flo-eq-qbcup > p { font-size: 14px; color: var(--ink-2); margin: 6px 0 10px; }
.flo-eq-qbcup-h { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.flo-eq-qbcode { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: 8px; border: 1.5px dashed var(--flo-coral); font-weight: 800; letter-spacing: .04em; font-size: 15px; }
.flo-eq-qbcode .flo-ico { width: 16px; height: 16px; color: #C8183F; }
.flo-eq-qbcup .flo-check { min-height: 40px; margin: 0 !important; }
.flo-eq-qbcup .flo-eq-form-act { margin-top: 6px; }
.flo-eq-qbnoauto { padding: 4px 4px 0; }
.flo-eq-qbnew { margin: 4px 0 16px; border-radius: 14px; border: 1.5px solid var(--line); background: var(--bg-2); }
.flo-eq-qbnew > summary { display: flex; align-items: center; gap: 8px; min-height: 54px; padding: 0 16px; cursor: pointer; font-weight: 800; list-style: none; color: var(--flo-cobalto); }
.flo-eq-qbnew > summary::-webkit-details-marker { display: none; }
.flo-eq-qbnew > summary .flo-ico { width: 20px; height: 20px; }
.flo-eq-qbnew[open] > summary { border-bottom: 1px solid var(--line); }
.flo-eq-qbcupform { padding: 14px 16px 16px; }
.flo-eq-seg { display: flex; flex-wrap: wrap; gap: 8px; }
.flo-eq-seg label { display: block !important; margin: 0 !important; }
.flo-eq-seg input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.flo-eq-seg span { display: inline-flex; align-items: center; min-height: 46px; padding: 0 16px; border-radius: 999px; border: 1.5px solid #CDD3E3; background: #fff; font-weight: 600; font-size: 14.5px; cursor: pointer; }
.flo-eq-seg input:checked + span { border-color: var(--flo-violeta); background: color-mix(in srgb, var(--flo-violeta) 9%, #fff); color: var(--flo-violeta); box-shadow: inset 0 0 0 1px var(--flo-violeta); }
.flo-eq-seg input:focus-visible + span { outline: 3px solid color-mix(in srgb, var(--flo-violeta) 40%, transparent); }
.flo-eq-qbpromo { margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--line); }
.flo-eq-qbsave { position: sticky; bottom: 0; z-index: 5; padding: 12px 0 calc(12px + env(safe-area-inset-bottom)); background: linear-gradient(transparent, var(--bg, #fff) 30%); }
.flo-eq-qbsave .flo-btn { min-height: 54px; font-size: 16.5px; }
.flo-eq-qbsave .flo-btn.is-dirty { box-shadow: 0 0 0 4px color-mix(in srgb, var(--flo-coral) 30%, transparent), 0 10px 24px -10px var(--flo-coral); }
.flo-eq-qbsave .flo-form-msg:empty { display: none; }
@media (max-width: 600px) {
	.flo-eq-qb .flo-row { grid-template-columns: 1fr; gap: 0; }
	.flo-eq-qb .flo-eq-form { padding: 18px 14px; }
	.flo-eq-qbpick { grid-template-columns: 1fr; }
}

/* ---------- 2.1.0 · Solicitar acceso y solicitudes ---------- */
.flo-eq-new { display: grid; gap: 8px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); text-align: center; }
.flo-eq-new > span { font-size: 14px; color: var(--ink-2); font-weight: 600; }
.flo-eq-new .flo-btn { min-height: 50px; }
.flo-eq-solcargo { border: 0; padding: 0; margin: 4px 0 14px; }
.flo-eq-solcargo legend { font-size: 14px; font-weight: 600; margin-bottom: 8px; }
.flo-eq-solcargo.is-invalid { outline: 2px solid #D2264A; outline-offset: 4px; border-radius: 12px; }
.flo-eq-solchips { display: flex; flex-wrap: wrap; gap: 8px; }
.flo-eq-solchips .flo-qb-chip { min-height: 46px; font-size: 14.5px; }
.flo-app .flo-eq-solcargo input[name="cargo_otro"] { margin-top: 10px; width: 100%; }
.flo-app form .flo-tel input { border: 0 !important; border-radius: 0 !important; flex: 1; min-width: 0; }
.flo-app form .flo-tel input:focus { box-shadow: none; }
.flo-eq-card .flo-done-ico { margin: 0 auto 14px; }
.flo-eq-card .flo-done-ico + h1 { text-align: center; }
.flo-eq-alert { display: flex; align-items: center; gap: 14px; width: 100%; margin: 0 0 16px; padding: 14px 16px; border-radius: 16px; border: 2px solid var(--flo-ambar); background: color-mix(in srgb, var(--flo-ambar) 14%, #fff); text-align: left; }
.flo-eq-alert > .flo-ico { width: 40px; height: 40px; padding: 9px; border-radius: 50%; background: var(--flo-ambar); color: var(--flo-cobalto); flex: none; }
.flo-eq-alert span { display: flex; flex-direction: column; font-size: 14px; color: var(--ink-2); }
.flo-eq-alert b { font-size: 16px; color: var(--ink); }
.flo-eq-h3 { display: flex; align-items: center; gap: 8px; font-size: 17px; margin: 18px 0 10px; }
.flo-eq-count { display: inline-grid; place-items: center; min-width: 26px; height: 26px; padding: 0 8px; border-radius: 99px; background: var(--flo-ambar); color: var(--flo-cobalto); font-size: 13px; }
.flo-eq-sols { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 14px; }
.flo-eq-bar .flo-eq-note b, .flo-eq-sol-data a { overflow-wrap: anywhere; }
.flo-eq-bar > .flo-eq-note { min-width: 0; }
.flo-eq-sol { margin: 0; }
.flo-eq-sol-h { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.flo-eq-sol-h b { display: block; font-size: 17px; }
.flo-eq-sol-h small { color: var(--ink-3); font-size: 13px; }
.flo-eq-sol-av { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--flo-violeta); color: #fff; font-weight: 800; font-size: 18px; flex: none; }
.flo-eq-sol-data { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 12px; font-size: 14px; }
.flo-eq-sol-data a { display: inline-flex; align-items: center; gap: 6px; color: var(--flo-violeta); font-weight: 600; text-decoration: none; }
.flo-eq-sol-data .flo-ico { width: 16px; height: 16px; }
.flo-eq-solroles { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 0 10px; }
.flo-eq-solroles .flo-check { min-height: 40px; }
.flo-eq-sol .flo-eq-form-act .flo-btn { min-height: 48px; }
.flo-eq-sol-ok { border-color: var(--flo-verde); background: color-mix(in srgb, var(--flo-verde) 7%, #fff); }
.flo-eq-sol-ok h3 { display: flex; align-items: center; gap: 8px; }
.flo-eq-sol-ok h3 .flo-ico { color: #0D8A72; }
.flo-eq-sol-pendiente { background: color-mix(in srgb, var(--flo-ambar) 22%, #fff); color: #8A5A00; }
.flo-eq-sol-aprobada { background: color-mix(in srgb, var(--flo-verde) 18%, #fff); color: #0D7C69; }
.flo-eq-sol-rechazada { background: color-mix(in srgb, var(--flo-coral) 14%, #fff); color: #C8183F; }
@media (max-width: 600px) {
	.flo-eq-sols { grid-template-columns: 1fr; }
	.flo-eq-sol .flo-row { grid-template-columns: 1fr; gap: 0; }
	.flo-eq-sol .flo-eq-form-act { flex-direction: column; }
	.flo-eq-sol .flo-eq-form-act .flo-btn { width: 100%; }
}
@media (max-width: 380px) { .flo-qb-chips--scroll { margin: 0 -14px 14px; padding: 2px 14px 6px; } }

/* ---------- 2.2.0 · Historia clínica y receta de refracción ---------- */
.hc { display: grid; gap: 4px; max-width: 980px; }
.hc-top { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
.hc-search { position: relative; flex: 1 1 280px; display: block; }
.hc-search .flo-ico { position: absolute; left: 14px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); color: var(--ink-3); }
.flo-app .hc-search input { width: 100%; min-height: 50px; padding: 0 14px 0 42px; border-radius: 999px; border: 1px solid #CDD3E3; background: #fff; font-size: 16px; }
.hc-top .flo-btn { min-height: 50px; }
.hc-me { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; color: var(--ink-2); margin: 0 0 10px; }
.hc-me .flo-ico { width: 18px; height: 18px; color: var(--flo-violeta); }
.hc-me .flo-link { margin: 0; min-height: 0; }
.hc-count { font-size: 13px; color: var(--ink-3); margin: 4px 0 8px; }
.hc-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 10px; }
.flo-app .hc-card { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 76px; padding: 12px 14px; border-radius: 16px; border: 1.5px solid var(--line); background: #fff; text-align: left; touch-action: manipulation; }
.flo-app .hc-card:hover { border-color: var(--flo-violeta); }
.hc-av { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: color-mix(in srgb, var(--flo-violeta) 14%, #fff); color: var(--flo-violeta); font-weight: 800; font-size: 18px; }
.hc-av--lg { width: 56px; height: 56px; font-size: 22px; background: var(--flo-violeta); color: #fff; }
.hc-card-t { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.hc-card-t b { font-size: 16px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hc-card-t em { font-style: normal; font-size: 13.5px; color: var(--ink-2); }
.hc-card-t small { font-size: 12.5px; color: var(--ink-3); }
.hc-go { width: 18px; height: 18px; transform: rotate(180deg); color: var(--ink-3); flex: none; }
.flo-app .hc-back { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 10px; min-height: 40px; font-size: 14.5px; }
.hc-back .flo-ico { width: 18px; height: 18px; }
.hc-pac-h { display: flex; gap: 14px; align-items: center; }
.hc-pac-h h3 { margin: 0 0 2px; }
.hc-pac-h p { margin: 0; font-size: 14px; color: var(--ink-2); }
.hc-pac-h a { color: var(--flo-violeta); font-weight: 700; }
.hc-ant { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--bg-2); font-size: 14px; }
.hc-pac .flo-eq-form-act { margin-top: 14px; flex-wrap: wrap; }
.hc-big { min-height: 54px; font-size: 16px; }
.hc-rxs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 12px; }
.hc-rx { padding: 14px; border-radius: 16px; border: 1.5px solid var(--line); background: #fff; }
.hc-rx-h { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.hc-rx-h b { font-family: var(--display); font-size: 17px; color: #1238D6; }
.hc-rx-h span { font-size: 13.5px; color: var(--ink-3); }
.hc-rx-v { margin: 2px 0; font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; }
.hc-rx-v span { display: inline-block; width: 30px; color: var(--ink-3); font-size: 12.5px; }
.hc-rx-who { margin: 6px 0 10px; font-size: 13px; color: var(--ink-3); }
.hc-rx-act { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.hc-rx-act .flo-btn { min-height: 40px; }
.flo-app .hc-del { color: #B4231F; font-size: 13px; margin-left: auto; }
/* Formulario de la receta */
.hc-form-h { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 16px 18px; margin-bottom: 14px; border-radius: 16px; background: linear-gradient(135deg, #1238D6, #3D6BF5); color: #fff; }
.hc-form-h .flo-card-brand { color: rgba(255,255,255,.8); text-transform: uppercase; letter-spacing: .06em; font-size: 12px; }
.hc-form-h h3 { color: #fff; margin: 2px 0; font-size: 20px; }
.hc-form-h p { margin: 0; color: rgba(255,255,255,.85); font-size: 14px; }
.hc-num { flex: none; padding: 6px 12px; border-radius: 10px; background: #fff; color: #1238D6; font-weight: 800; font-size: 15px; }
.hc-form .flo-eq-form h4 { font-size: 17px; margin: 0 0 12px; }
.hc-form h4 small, .hc-uso h5 small { display: block; font-weight: 500; font-size: 12.5px; color: var(--ink-3); margin-top: 2px; }
.hc-uso { margin-bottom: 14px; }
.hc-uso h5 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 15px; color: #1238D6; margin: 0 0 8px; text-transform: uppercase; letter-spacing: .04em; }
.hc-uso h5 .flo-ico { width: 18px; height: 18px; }
.hc-uso h5 small { flex-basis: 100%; text-transform: none; letter-spacing: 0; }
.hc-ojos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.hc-ojo { padding: 12px; border-radius: 14px; border: 1.5px solid #D5DCF2; background: #F7F9FF; }
.hc-ojo-t { display: block; font-size: 13px; color: var(--ink-2); margin-bottom: 8px; }
.hc-ojo-g { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px; }
.hc-f { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.hc-ojo-g > .hc-f:first-child { grid-column: 1 / -1; }
.hc-ctl--esf { flex-wrap: nowrap; }
.hc-l { font-size: 12.5px; font-weight: 700; color: var(--ink-2); }
.hc-l small { font-weight: 500; color: var(--ink-3); }
.hc-ctl { display: flex; gap: 6px; flex-wrap: wrap; align-items: stretch; }
.flo-app .hc-form .hc-ctl select { flex: 1 1 90px; min-width: 0; min-height: 48px; padding: 6px 10px; font-size: 16px; font-weight: 700; font-variant-numeric: tabular-nums; }
.flo-app .hc-form .hc-ctl input[data-hc-otra] { flex: 1 1 100%; min-height: 44px; font-size: 16px; }
.flo-app .hc-form .hc-f > input { min-height: 48px; font-size: 16px; }
.hc-ctl[data-hc-auto] select { background: #F2FBF8 !important; border-color: color-mix(in srgb, var(--flo-verde) 55%, #fff) !important; }
.hc-sign { display: inline-flex; flex: none; border-radius: 12px; overflow: hidden; border: 1.5px solid #CDD3E3; }
.flo-app .hc-sign button { width: 40px; min-height: 45px; font-size: 22px; font-weight: 800; background: #fff; color: var(--ink-2); line-height: 1; }
.flo-app .hc-sign button + button { border-left: 1.5px solid #CDD3E3; }
.flo-app .hc-sign button[aria-pressed="true"] { background: #1238D6; color: #fff; }
.hc-ojos--add, .hc-ojos--dc { margin-top: 4px; }
.hc-uso--add { padding: 10px 12px; border-radius: 14px; background: color-mix(in srgb, var(--flo-verde) 8%, #fff); }
.hc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.hc-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.hc-chips .flo-qb-chip { min-height: 46px; font-size: 14.5px; }
.hc-rens { display: grid; gap: 10px; margin: 18px 0 14px; padding: 12px; border-radius: 14px; background: var(--bg-2); }
.hc-ren { display: flex; flex-direction: column; gap: 6px; }
.flo-app .hc-ren select, .flo-app .hc-ren input { min-height: 48px; font-size: 16px; }
.hc-form .flo-eq-qbsave .flo-btn { min-height: 56px; }
.hc-firma { display: grid; place-items: center; min-height: 110px; padding: 12px; margin-bottom: 12px; border-radius: 14px; border: 1.5px dashed #CDD3E3; background: #fff; text-align: center; color: var(--ink-3); font-size: 14px; }
.hc-firma img { max-width: 100%; max-height: 140px; }
.hc-ok { text-align: center; max-width: 480px; margin: 0 auto; }
.hc-ok .flo-done-ico { margin: 0 auto 12px; }
.hc-ok-act { display: grid; gap: 10px; margin-top: 16px; }
.hc-ok-act .flo-btn { min-height: 52px; }
.hc-aj h4 { margin: 18px 0 10px; font-size: 16px; }
.hc-aj-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.hc-aj-ren { padding: 12px; border-radius: 12px; background: var(--bg-2); margin-bottom: 10px; }
@media (max-width: 760px) {
	.hc-ojos { grid-template-columns: 1fr; }
	.hc-ojos--add, .hc-ojos--dc { grid-template-columns: 1fr 1fr; }
	.hc-grid { grid-template-columns: 1fr 1fr; }
	.hc-aj-3, .hc-aj-ren .flo-row, .hc-pform .flo-row, .hc-perfil .flo-row { grid-template-columns: 1fr; gap: 0; }
	.hc-form .flo-row { grid-template-columns: 1fr; gap: 0; }
	.hc-form .flo-eq-form { padding: 16px 12px; }
}
@media (max-width: 380px) { .hc-ojo-g { grid-template-columns: 1fr; } }

/* ---------- 2.3.0 · Receta óptica: paciente, filtros, adjuntos y opciones ---------- */
.hc-pick { border: 2px solid color-mix(in srgb, #1238D6 30%, #fff); }
.hc-pick .hc-search { display: block; margin-bottom: 8px; }
.hc-pick-res { display: grid; gap: 8px; margin-bottom: 8px; }
.flo-app .hc-card--sm { min-height: 60px; padding: 8px 12px; }
.hc-pick-new { min-height: 48px; }
.hc-pick-form { margin-top: 12px; padding: 12px; border-radius: 14px; background: var(--bg-2); }
.hc-pick-sel { display: flex; align-items: center; gap: 12px; }
.hc-pick-sel .flo-link { margin: 0 0 0 auto; min-height: 40px; }
.hc-renf { position: relative; display: block !important; margin: 0 0 4px !important; }
.hc-renf .flo-ico { position: absolute; left: 12px; top: 50%; width: 16px; height: 16px; transform: translateY(-50%); color: var(--ink-3); }
.flo-app .hc-form .hc-renf input { min-height: 42px; padding-left: 36px; border-radius: 999px; font-size: 15px; }
.hc-ren .flo-qb-chip .flo-ico { width: 16px; height: 16px; }
.hc-ren .flo-qb-chip[hidden] { display: none; }
.hc-adj { display: grid; gap: 8px; margin-bottom: 10px; }
.hc-adj:empty { display: none; }
.hc-adj-i { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; font-size: 14px; }
.hc-adj-i.is-new { border-color: color-mix(in srgb, var(--flo-verde) 50%, #fff); background: color-mix(in srgb, var(--flo-verde) 6%, #fff); }
.hc-adj-i .flo-ico { width: 20px; height: 20px; flex: none; color: #1238D6; }
.hc-adj-i a, .hc-adj-i span { flex: 1; min-width: 0; overflow-wrap: anywhere; color: var(--ink); }
.hc-adj-i small { color: var(--ink-3); }
.flo-app .hc-adj-i button { flex: none; width: 36px; height: 36px; border-radius: 50%; background: color-mix(in srgb, var(--flo-coral) 12%, #fff); color: #B4231F; font-weight: 800; }
.hc-adj-in { min-height: 52px; }
.hc-rx-adj { display: flex; flex-direction: column; gap: 4px; margin: -4px 0 10px; font-size: 13.5px; }
.hc-rx-adj a { display: inline-flex; align-items: center; gap: 6px; color: var(--flo-violeta); font-weight: 600; overflow-wrap: anywhere; }
.hc-rx-adj .flo-ico { width: 16px; height: 16px; flex: none; }
.hc-opts { padding: 10px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; margin-bottom: 12px; }
.hc-opts-l { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.hc-opts-l:empty::before { content: "Sin opciones: el examinador escribe el valor."; font-size: 13px; color: var(--ink-3); }
.hc-opt { display: inline-flex; align-items: center; gap: 4px; min-height: 38px; padding: 0 4px 0 12px; border-radius: 999px; background: color-mix(in srgb, #1238D6 9%, #fff); color: #0B2AA8; font-size: 14px; font-weight: 600; }
.flo-app .hc-opt button { width: 30px; height: 30px; border-radius: 50%; color: #0B2AA8; font-size: 13px; }
.flo-app .hc-opt button:hover { background: rgba(18,56,214,.12); }
.hc-opts-add { display: flex; gap: 8px; }
.flo-app .hc-aj .hc-opts-add input { flex: 1; min-width: 0; min-height: 44px; }
.hc-opts-add .flo-btn { flex: none; min-height: 44px; }
.hc-aj-l { display: flex; flex-direction: column; gap: 6px; }
.hc-aj-ren .hc-l { display: block; margin-bottom: 6px; }
.flo-app form .hc-search input, .flo-app form .hc-renf input { padding-left: 42px !important; border-radius: 999px !important; }
.flo-app form .hc-renf input { padding-left: 36px !important; }
.flo-app form label.hc-search, .flo-app form label.hc-renf { flex-direction: row; margin-bottom: 8px; }

.hc-form h4.hc-sub { margin: 18px 0 10px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 15px; }

/* ---------- 2.4.0 · Montura, lente de contacto, ventana de WhatsApp y envíos a proveedores ---------- */
.hc-mon { margin-bottom: 12px; }
.hc-mon-sel { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; padding: 8px 12px; border-radius: 10px; background: color-mix(in srgb, var(--flo-verde) 9%, #fff); font-size: 14px; }
.hc-mon-sel .flo-ico { width: 18px; height: 18px; color: #0D8A72; flex: none; }
.hc-prod-res { display: grid; gap: 6px; }
.flo-app .hc-prod { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 56px; padding: 6px 10px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; text-align: left; }
.flo-app .hc-prod:hover { border-color: var(--flo-violeta); }
.hc-prod-img { flex: none; display: grid; place-items: center; width: 52px; height: 40px; border-radius: 8px; background: var(--bg-2); overflow: hidden; }
.hc-prod-img img, .hc-prod-img svg { width: 100%; height: 100%; object-fit: contain; }
.hc-prod span:last-child { display: flex; flex-direction: column; min-width: 0; }
.hc-prod b { font-size: 14.5px; }
.hc-prod em { font-style: normal; font-size: 12.5px; color: var(--ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hc-lc > summary { display: flex; align-items: center; gap: 8px; cursor: pointer; font-weight: 800; font-size: 17px; list-style: none; min-height: 32px; }
.hc-lc > summary::-webkit-details-marker { display: none; }
.hc-lc > summary .flo-ico { width: 20px; height: 20px; color: #1238D6; }
.hc-lc > summary small { font-weight: 500; font-size: 12.5px; color: var(--ink-3); }
.hc-lc[open] > summary { margin-bottom: 12px; }
.hc-rx-mon { display: flex; align-items: center; gap: 6px; margin: 2px 0; font-size: 13.5px; color: var(--ink-2); }
.hc-rx-mon .flo-ico { width: 16px; height: 16px; flex: none; }
.hc-rx-ots { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.ot-chip { display: inline-block; padding: 3px 9px; border-radius: 99px; font-size: 12px; font-weight: 700; background: var(--bg-2); color: var(--ink-2); }
.ot-chip.ot-enviado, .ot-enviado .ot-est [aria-pressed="true"] { background: color-mix(in srgb, var(--flo-ambar) 25%, #fff); color: #7A4F00; }
.ot-chip.ot-proceso, .ot-proceso .ot-est [aria-pressed="true"] { background: color-mix(in srgb, #1238D6 14%, #fff); color: #0B2AA8; }
.ot-chip.ot-entregado, .ot-entregado .ot-est [aria-pressed="true"] { background: color-mix(in srgb, var(--flo-verde) 22%, #fff); color: #0D7C69; }
.ot-chip.ot-anulado { text-decoration: line-through; }
/* Ventana (modal) */
.hc-modal { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: end center; padding: 0; background: rgba(9,16,48,.55); }
.hc-modal-box { position: relative; width: min(560px, 100%); max-height: 92vh; max-height: 92dvh; overflow: auto; padding: 22px 18px calc(18px + env(safe-area-inset-bottom)); border-radius: 22px 22px 0 0; background: #fff; box-shadow: 0 -20px 50px -20px rgba(9,16,48,.5); }
@media (min-width: 700px) { .hc-modal { place-items: center; padding: 20px; } .hc-modal-box { border-radius: 22px; padding: 26px; } }
.hc-modal-box h3 { display: flex; align-items: center; gap: 8px; margin: 0 40px 4px 0; font-size: 19px; }
.hc-modal-box h3 .flo-ico { width: 22px; height: 22px; color: #1238D6; }
.flo-app .hc-modal-x { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--bg-2); }
.hc-modal-x .flo-ico { width: 20px; height: 20px; }
.hc-modal-box .hc-l { display: block; margin: 14px 0 6px; }
.flo-app .hc-modal-box input:not([type="checkbox"]), .flo-app .hc-modal-box textarea { width: 100%; min-height: 48px; padding: 10px 14px; border-radius: 12px; border: 1px solid #CDD3E3; background: #fff; font-size: 16px; }
.flo-app .hc-modal-box .flo-tel input { border: 0; border-radius: 0; flex: 1; min-width: 0; }
.flo-app .hc-modal-box .hc-search input { padding-left: 42px; border-radius: 999px; }
.hc-modal-box .hc-search { display: block; position: relative; margin-bottom: 8px; }
.hc-modal-box .flo-btn--block { margin-top: 16px; min-height: 54px; }
.hc-modal-box [data-ot-provs] { margin-bottom: 4px; }
.hc-modal-box .flo-link { margin-top: 6px; min-height: 40px; }
/* Envíos */
.ot-filtros { display: grid; gap: 8px; margin-bottom: 12px; }
.ot-filtros .flo-eq-chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ot-filtros .flo-eq-chip { min-height: 40px; }
.ot-filtros .flo-eq-chip[aria-pressed="true"] { background: var(--flo-cobalto); border-color: var(--flo-cobalto); color: #fff; }
.flo-app .ot-filtros select { min-height: 40px; padding: 0 12px; border-radius: 999px; border: 1px solid #CDD3E3; background: #fff; font-size: 14px; }
.ot-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.ot-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 12px; }
.ot-card { padding: 14px; border-radius: 16px; border: 1.5px solid var(--line); background: #fff; }
.ot-card.is-off, .ot-card.ot-anulado { opacity: .6; }
.ot-card header { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.ot-card header b { font-family: var(--display); font-size: 17px; color: #1238D6; }
.ot-card header small { margin-left: auto; color: var(--ink-3); font-size: 13px; }
.ot-prov, .ot-pac { display: block; margin: 0 0 6px; font-size: 14px; color: var(--ink-2); }
.ot-prov .flo-ico, .ot-pac .flo-ico { width: 16px; height: 16px; vertical-align: -3px; margin-right: 4px; }
.ot-prov a { color: #0D8A72; font-weight: 700; }
.ot-est { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 10px 0; border-radius: 12px; overflow: hidden; border: 1.5px solid #CDD3E3; }
.flo-app .ot-est button { min-height: 44px; font-size: 13.5px; font-weight: 700; background: #fff; color: var(--ink-3); }
.flo-app .ot-est button + button { border-left: 1.5px solid #CDD3E3; }
.ot-pago { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ot-costo { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 6px; margin: 0 !important; font-weight: 700; color: var(--ink-2); }
.flo-app .ot-costo input { width: 110px; min-height: 42px; padding: 6px 10px; border-radius: 10px; border: 1px solid #CDD3E3; font-size: 16px; font-weight: 700; }
.ot-pago .flo-btn, .ot-act .flo-btn { min-height: 42px; }
.ot-act { display: flex; gap: 8px; align-items: center; margin-top: 10px; }
@media (max-width: 600px) { .ot-kpis { grid-template-columns: 1fr 1fr; } }
.hc-modal-box .flo-done-ico { margin: 0 auto 10px; } .hc-modal-box > h3:nth-child(3) { margin-right: 0; justify-content: center; text-align: center; }
.hc-center { text-align: center; }

/* ---------- 2.5.0 · Catálogo: control total ---------- */
.flo-eq-cathero { display: grid; grid-template-columns: auto 1fr; gap: 14px 18px; align-items: start; margin: 0 0 16px; padding: 22px; border-radius: 18px; background: linear-gradient(135deg, color-mix(in srgb, var(--flo-verde) 14%, #fff), #fff 70%); border: 2px solid color-mix(in srgb, var(--flo-verde) 45%, #fff); box-shadow: 0 18px 40px -34px rgba(19,35,91,.5); }
.flo-eq-cathero .flo-eq-home-ico { background: var(--flo-verde); color: #fff; }
.flo-eq-cathero h3 { font-size: 22px; font-weight: 800; margin: 2px 0 6px; }
.flo-eq-cathero p:not(.flo-card-brand) { color: var(--ink-2); font-size: 14.5px; max-width: 720px; }
.flo-eq-cathero .flo-eq-form-act { grid-column: 1 / -1; flex-wrap: wrap; }
.flo-app button.flo-eq-kpi { display: block; width: 100%; text-align: left; cursor: pointer; font: inherit; color: var(--ink); transition: border-color .15s, transform .15s; }
.flo-app button.flo-eq-kpi:hover { border-color: var(--flo-cobalto); transform: translateY(-1px); }
.flo-app button.flo-eq-kpi b { margin: 0 0 2px; }
.flo-eq-kpi.is-warn { background: color-mix(in srgb, var(--flo-ambar) 14%, #fff); border-color: color-mix(in srgb, var(--flo-ambar) 50%, #fff); }
.flo-eq-catgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 16px; }
.flo-eq-catbox { padding: 18px; border-radius: 18px; background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.flo-eq-catbox h3 { font-size: 17px; font-weight: 800; }
.flo-eq-catbox h3 small { color: var(--ink-3); font-weight: 600; margin-left: 4px; }
.flo-eq-catbox-h { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.flo-eq-catbox > .flo-btn { align-self: flex-start; }
.flo-eq-catmini { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.flo-app .flo-eq-catmini button { display: flex; width: 100%; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 11px; border: 1px solid var(--line); background: var(--bg-2, #F5F7FB); color: var(--ink); font-weight: 600; font-size: 14px; cursor: pointer; text-align: left; }
.flo-app .flo-eq-catmini button:hover { border-color: var(--flo-cobalto); }
.flo-eq-catmini b { min-width: 28px; text-align: center; padding: 0 8px; border-radius: 99px; background: #fff; }
.flo-eq-cattools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.flo-app .flo-eq-cattool { display: flex; gap: 12px; align-items: flex-start; padding: 14px; border-radius: 14px; border: 1px solid var(--line); background: #fff; color: var(--ink-2); text-align: left; font-size: 13.5px; cursor: pointer; }
.flo-app .flo-eq-cattool:hover { border-color: var(--flo-cobalto); }
.flo-eq-cattool > .flo-ico { flex: none; width: 36px; height: 36px; padding: 8px; border-radius: 11px; background: color-mix(in srgb, var(--flo-violeta) 12%, #fff); color: var(--flo-violeta); }
.flo-eq-cattool b { display: block; color: var(--ink); font-size: 15px; margin-bottom: 2px; }
.flo-eq-catlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.flo-eq-catrow { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px; border-radius: 16px; background: #fff; border: 1px solid var(--line); }
.flo-eq-catord { display: flex; flex-direction: column; gap: 4px; }
.flo-app .flo-eq-catord button { width: 34px; height: 30px; border-radius: 9px; border: 1px solid var(--line); background: #fff; color: var(--ink); font-weight: 800; cursor: pointer; }
.flo-app .flo-eq-catord button:disabled { opacity: .35; cursor: default; }
.flo-eq-catinfo { min-width: 0; }
.flo-eq-catinfo b { font-size: 15.5px; }
.flo-eq-catinfo small { display: block; color: var(--ink-3); font-size: 13px; margin-top: 2px; overflow-wrap: anywhere; }
.flo-eq-catrow .flo-eq-acts { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.flo-eq-form--danger { border-color: color-mix(in srgb, var(--flo-coral) 45%, #fff) !important; }
.flo-eq-catquick { display: flex; gap: 8px; margin: 8px 0 4px; flex-wrap: wrap; }
.flo-eq-catquick input { flex: 1 1 200px; min-width: 0; }
.flo-eq-lote { position: sticky; top: 8px; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0 0 12px; padding: 10px 14px; border-radius: 14px; background: var(--flo-cobalto); color: #fff; box-shadow: 0 14px 30px -18px rgba(19,35,91,.7); }
.flo-eq-lote > b { color: #fff; margin-right: 4px; }
.flo-eq-lote select { min-width: 0; max-width: 100%; padding: 8px 10px; border-radius: 10px; border: 0; font-size: 14px; }
.flo-app .flo-eq-lote .flo-link, .flo-app .flo-eq-lote .flo-link:is(:hover, :focus) { color: #fff !important; }
@media (max-width: 900px) {
	.flo-eq-catgrid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	.flo-eq-cathero { grid-template-columns: minmax(0, 1fr); padding: 18px; }
	.flo-eq-cathero .flo-eq-form-act .flo-btn { flex: 1 1 100%; justify-content: center; }
	.flo-eq-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.flo-eq-cattools { grid-template-columns: minmax(0, 1fr); }
	.flo-eq-catrow { grid-template-columns: auto minmax(0, 1fr); }
	.flo-eq-catrow .flo-eq-acts { grid-column: 1 / -1; justify-content: flex-start; }
	.flo-eq-lote select { flex: 1 1 100%; }
}
.flo-app .flo-eq-lote select { color: var(--ink); background: #fff; }
.flo-eq-prods td.flo-eq-acts { white-space: normal; min-width: 104px; }
.flo-eq-prods td.flo-eq-acts .flo-btn { display: flex; width: 100%; justify-content: center; margin: 0 0 6px; }
.flo-eq-prods td.flo-eq-acts .flo-btn + .flo-btn { margin-left: 0; }

/* ---------- 3.0.0 · Gestión integral ---------- */
.flo-g-modal .hc-modal-box.flo-g-modal--ancho { width: min(980px, 100%); }
@media (min-width: 720px) { .flo-g-modal { place-items: center; padding: 24px; } .flo-g-modal .hc-modal-box { border-radius: 22px; } }
.flo-g-modal .flo-eq-form { margin: 0; padding: 0; border: 0; }
.flo-g-modal h4, .flo-g-pos h4 { margin: 16px 0 8px; font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-3); }
.flo-g-ub { position: relative; }
.flo-g-ub-res { position: absolute; z-index: 20; left: 0; right: 0; top: 100%; max-height: 280px; overflow: auto; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 18px 40px -20px rgba(19,35,91,.45); padding: 6px; }
.flo-app .flo-g-ub-res button { display: flex; width: 100%; justify-content: space-between; gap: 10px; padding: 9px 10px; border: 0; border-radius: 9px; background: none; text-align: left; font-size: 14px; cursor: pointer; color: var(--ink); }
.flo-app .flo-g-ub-res button:hover { background: var(--bg-2); }
.flo-g-filtros { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: end; margin: 0 0 16px; }
.flo-g-filtros label { display: grid; gap: 4px; font-size: 13px; font-weight: 600; color: var(--ink-2); }
.flo-g-filtros input, .flo-g-filtros select { min-width: 0; padding: 9px 10px; border-radius: 10px; border: 1px solid #CDD3E3; font: inherit; background: #fff; }
.flo-g-alertas { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; margin: 0 0 18px; }
.flo-app .flo-g-alertas button { display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: 14px; border: 1px solid color-mix(in srgb, var(--flo-ambar) 55%, #fff); background: color-mix(in srgb, var(--flo-ambar) 12%, #fff); color: var(--ink); text-align: left; font-size: 14px; cursor: pointer; }
.flo-g-alertas .flo-ico { flex: none; width: 20px; height: 20px; color: #8A5A00; }
.flo-g-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0 0 16px; }
.flo-g-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.flo-g-card { min-width: 0; padding: 18px; border-radius: 18px; background: #fff; border: 1px solid var(--line); }
.flo-g-card.is-off { opacity: .6; }
.flo-g-card h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 16px; font-weight: 800; margin: 0 0 12px; }
.flo-g-card p { margin: 2px 0; font-size: 14px; color: var(--ink-2); }
.flo-g-bar { display: grid; grid-template-columns: minmax(70px, 30%) 1fr auto; gap: 4px 10px; align-items: center; margin: 0 0 10px; font-size: 13.5px; }
.flo-g-bar span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-2); }
.flo-g-bar i { display: block; height: 10px; border-radius: 99px; background: var(--bg-2); position: relative; overflow: hidden; }
.flo-g-bar i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w); border-radius: 99px; background: var(--flo-cobalto); }
.flo-g-bar b { font-variant-numeric: tabular-nums; }
.flo-g-bar small { grid-column: 2 / -1; color: var(--ink-3); font-size: 12px; margin-top: -4px; }
.flo-g-dl { display: grid; grid-template-columns: 1fr auto; gap: 6px 14px; margin: 8px 0; font-size: 14px; }
.flo-g-dl dt { color: var(--ink-2); }
.flo-g-dl dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.flo-g-dl .flo-g-total { font-size: 18px; color: var(--ink); padding-top: 6px; border-top: 1px solid var(--line); }
.flo-g-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.flo-g-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 6px 5px 12px; border-radius: 99px; background: var(--bg-2); font-size: 13.5px; }
.flo-app .flo-g-chip button { width: 24px; height: 24px; border: 0; border-radius: 50%; background: #fff; cursor: pointer; font-size: 16px; line-height: 1; color: var(--ink); }
.flo-g-zona { margin: 0 0 12px; padding: 14px; border-radius: 14px; border: 1px solid var(--line); background: #FBFCFE; }
.flo-g-seg { display: inline-flex; flex-wrap: wrap; gap: 0; border: 1px solid #CDD3E3; border-radius: 12px; overflow: hidden; background: #fff; margin: 0 0 10px; }
.flo-g-seg label { position: relative; margin: 0; }
.flo-g-seg input { position: absolute; opacity: 0; pointer-events: none; }
.flo-g-seg span { display: block; padding: 8px 12px; font-size: 13.5px; font-weight: 600; cursor: pointer; color: var(--ink-2); border-right: 1px solid #E5E9F2; }
.flo-g-seg label:last-child span { border-right: 0; }
.flo-g-seg input:checked + span { background: var(--flo-cobalto); color: #fff; }
.flo-g-seg input:focus-visible + span { outline: 2px solid var(--flo-violeta); outline-offset: -2px; }
.flo-g-seg input:disabled + span { opacity: .45; cursor: not-allowed; }
.flo-g-seg--grande span { padding: 10px 16px; }
.flo-g-matriz { display: grid; grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); gap: 14px; }
.flo-g-mgrupo { padding: 12px; border: 1px solid var(--line); border-radius: 14px; }
.flo-g-mgrupo > b { display: block; margin: 0 0 8px; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-3); }
.flo-g-mrow { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 10px; padding: 6px 0; border-top: 1px solid #F0F2F7; }
.flo-g-mrow > span { font-size: 14px; font-weight: 600; }
.flo-g-mrow .flo-g-seg { margin: 0; }
.flo-g-mrow .flo-g-seg span { padding: 6px 9px; font-size: 12.5px; }
.flo-g-edtable input, .flo-g-edtable select { width: 100%; min-width: 80px; padding: 7px 8px; border-radius: 8px; border: 1px solid #CDD3E3; font: inherit; font-size: 14px; }
.flo-app .flo-g-ord button { width: 30px; height: 30px; margin: 0 2px; border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: pointer; color: var(--ink); }
.flo-g-linea { display: grid; grid-template-columns: minmax(0, 2fr) minmax(70px, 1fr) minmax(90px, 1fr) 36px; gap: 8px; margin: 0 0 8px; align-items: center; }
.flo-g-linea select, .flo-g-linea input { min-width: 0; padding: 9px 10px; border-radius: 10px; border: 1px solid #CDD3E3; font: inherit; }
.flo-app .flo-g-linea > button { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; font-size: 18px; color: var(--ink); }
.flo-g-neg { color: #C8183F; }
.flo-g-pos { color: #0D7C69; }
.flo-g-lista { margin: 0 0 8px; padding-left: 18px; font-size: 14px; }
.flo-g-lista li { margin: 3px 0; }
.flo-g-unir { padding: 12px; border: 1px solid var(--line); border-radius: 14px; margin: 0 0 10px; }
.flo-g-unir-par { display: grid; grid-template-columns: 1fr auto 1fr; gap: 10px; align-items: center; }
.flo-g-unir-par > div { display: grid; gap: 2px; font-size: 14px; }
.flo-g-unir-par small { color: var(--ink-3); }
.flo-g-pago { margin: 10px 0 !important; padding: 14px !important; border: 1px solid var(--line) !important; border-radius: 14px; background: #FBFCFE; }
.flo-g-inline { display: flex; flex-wrap: wrap; gap: 8px; }
.flo-g-inline input { flex: 1 1 200px; padding: 9px 10px; border-radius: 10px; border: 1px solid #CDD3E3; font: inherit; }
.flo-eq-table tr.is-warn td { background: color-mix(in srgb, var(--flo-ambar) 10%, #fff); }
.flo-g-check-alto { align-self: end; padding-bottom: 10px; }
/* Punto de venta */
.flo-g-poshead { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 0 14px; padding: 12px 14px; border-radius: 16px; background: #fff; border: 1px solid var(--line); }
.flo-g-poshead label { display: grid; gap: 2px; font-size: 12px; font-weight: 700; color: var(--ink-3); }
.flo-g-poshead select { padding: 8px 10px; border-radius: 10px; border: 1px solid #CDD3E3; font: inherit; }
.flo-g-cajainfo { flex: 1 1 260px; display: grid; gap: 2px; font-size: 13.5px; }
.flo-g-cajainfo span { color: var(--ink-2); }
.flo-g-pos { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.flo-g-pos-izq, .flo-g-pos-der { min-width: 0; padding: 16px; border-radius: 18px; background: #fff; border: 1px solid var(--line); }
.flo-g-pos-der { position: sticky; top: 12px; }
.flo-g-pos-der form > label, .flo-g-mas label { display: grid; gap: 4px; margin: 0 0 10px; font-size: 14px; font-weight: 600; }
.flo-g-pos-der input, .flo-g-pos-der select { min-width: 0; padding: 10px; border-radius: 10px; border: 1px solid #CDD3E3; font: inherit; }
.flo-g-posres { display: grid; gap: 6px; margin: 10px 0; max-height: 300px; overflow: auto; }
.flo-app .flo-g-posprod { display: flex; justify-content: space-between; gap: 10px; width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; text-align: left; cursor: pointer; color: var(--ink); font-size: 14px; }
.flo-app .flo-g-posprod:hover { border-color: var(--flo-cobalto); }
.flo-app .flo-g-posprod:disabled { opacity: .45; cursor: not-allowed; }
.flo-g-posprod span { color: var(--ink-2); white-space: nowrap; }
.flo-g-lineas { display: grid; gap: 10px; margin-top: 12px; }
.flo-g-pl { display: grid; gap: 8px; padding: 12px; border-radius: 14px; background: #FBFCFE; border: 1px solid var(--line); }
.flo-g-pl label { display: grid; gap: 4px; font-size: 13px; font-weight: 600; }
.flo-g-pl input, .flo-g-pl select { min-width: 0; padding: 9px 10px; border-radius: 10px; border: 1px solid #CDD3E3; font: inherit; }
.flo-g-pl > .flo-link { justify-self: start; }
.flo-g-pl-top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.flo-g-pl-top b { flex: 1 1 160px; }
.flo-g-qty { display: inline-flex; align-items: center; gap: 4px; }
.flo-app .flo-g-qty button { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 10px; background: #fff; cursor: pointer; font-size: 18px; color: var(--ink); }
.flo-g-qty b { min-width: 26px; text-align: center; }
.flo-g-trat { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.flo-g-cli { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding: 10px 12px; border-radius: 12px; background: var(--bg-2); }
.flo-g-cli span { flex: 1 1 100%; font-size: 13px; color: var(--ink-2); order: 3; }
.flo-g-clibus { display: flex; gap: 8px; }
.flo-g-clibus input { flex: 1; }
.flo-g-mas { margin: 10px 0; }
.flo-g-mas summary { cursor: pointer; font-weight: 700; font-size: 14px; }
.flo-g-totales { margin: 12px 0; padding: 12px 14px; border-radius: 14px; background: var(--bg-2); }
.flo-g-cobrar { margin-top: 12px; min-height: 52px; font-size: 16px; }
.flo-g-ok { text-align: center; }
.flo-g-ok > .flo-ico { width: 54px; height: 54px; padding: 12px; border-radius: 50%; background: var(--flo-verde); color: #fff; }
.flo-g-ok h3 { justify-content: center; }
.flo-g-ok .flo-eq-form-act { justify-content: center; flex-wrap: wrap; }
.flo-g-vuelto { font-size: 22px; }
.flo-g-abrir { max-width: 460px; }
.flo-g-abrir label { display: grid; gap: 4px; margin: 0 0 12px; font-weight: 600; }
/* Accesos de una persona */
.flo-eq-mods { margin: 12px 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; }
.flo-eq-mods summary { cursor: pointer; font-weight: 700; }
.flo-eq-mods summary small { font-weight: 500; color: var(--ink-3); margin-left: 6px; }
.flo-eq-modgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-top: 10px; }
.flo-eq-modgrid > div > b { display: block; margin: 6px 0; font-size: 12.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-3); }
.flo-eq-modrow { display: flex !important; justify-content: space-between; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 13.5px; font-weight: 500 !important; }
.flo-eq-modrow select { padding: 6px 8px; border-radius: 8px; border: 1px solid #CDD3E3; font: inherit; font-size: 13px; }
.flo-usd-note { margin: 4px 0 0; text-align: right; }
@media (max-width: 900px) {
	.flo-g-pos, .flo-g-grid { grid-template-columns: minmax(0, 1fr); }
	.flo-g-pos-der { position: static; }
	.flo-g-matriz { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
	.flo-g-linea { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 36px; }
	.flo-g-linea > :nth-child(3) { grid-column: 1 / 3; }
	.flo-g-unir-par { grid-template-columns: minmax(0, 1fr); }
	.flo-g-unir-par > span { display: none; }
	.flo-g-filtros label { flex: 1 1 45%; }
	.flo-g-mrow .flo-g-seg { width: 100%; }
	.flo-g-mrow .flo-g-seg label { flex: 1; }
	.flo-g-mrow .flo-g-seg span { text-align: center; padding: 7px 4px; }
}
.flo-g-pl label.flo-check, .flo-g-pos-der label.flo-check { display: flex; align-items: center; gap: 8px; font-weight: 500; }
.flo-g-trat label.flo-check { font-size: 13px; }

/* ---------- 3.1.0 · Botón «Cotización», formulario y ubigeo en tres campos ---------- */
.flo-cot-open { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 999px; font-weight: 800; white-space: nowrap; cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; transition: transform .12s ease, box-shadow .2s ease; }
.flo-app .flo-cot-open, .flo-overlays .flo-cot-open { background: #fff !important; color: var(--flo-violeta) !important; border: 2px solid var(--flo-violeta) !important; }
.flo-cot-open .flo-ico { width: 18px; height: 18px; flex: none; }
.flo-cot-open:active { transform: scale(.97); }
.flo-cot-open--nav { min-height: 40px; padding: 0 14px; margin-right: 6px; font-size: 14.5px; }
.flo-app .flo-cot-open--hero { min-height: 56px; padding: 0 28px; font-size: 17px; background: var(--flo-violeta) !important; color: #fff !important; box-shadow: 0 14px 30px -14px var(--flo-violeta); }
.flo-cot-open--hero .flo-ico { width: 21px; height: 21px; }
.flo-hero-cot { margin-top: 14px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.flo-hero-cot + .flo-hero-cta { margin-top: 16px; }
@media (max-width: 1180px) and (min-width: 901px) { .flo-cot-open--nav span { display: none; } .flo-cot-open--nav { width: 40px; padding: 0; } }
@media (max-width: 900px) {
	.flo-cot-open--nav { order: -1; width: 100%; min-height: 50px; margin: 0 0 10px; font-size: 16.5px; }
	.flo-hero-cot { align-items: stretch; }
	.flo-cot-open--hero { width: 100%; }
}
.flo-cot-ico { background: #F1ECFE !important; color: var(--flo-violeta) !important; }
.flo-ub3 { margin: 0; padding: 0; border: 0; min-width: 0; }
.flo-ub3 legend { padding: 0; margin-bottom: 6px; font-weight: 700; font-size: 14px; color: var(--ink); }
.flo-ub3-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.flo-ub3-row label { min-width: 0; margin: 0 !important; font-size: 12.5px; }
.flo-ub3-row select { width: 100%; min-width: 0; }
.flo-ub3.is-invalid select[data-flo-ub3="dist"] { border-color: var(--flo-coral) !important; box-shadow: 0 0 0 3px rgba(255,92,122,.18); }
@media (max-width: 520px) { .flo-ub3-row { grid-template-columns: 1fr 1fr; } .flo-ub3-row label:last-child { grid-column: 1 / -1; } }
.flo-cot textarea { min-height: 86px; }
.flo-cot-files { display: grid; gap: 8px; }
.flo-cot-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.flo-cot-list:empty { display: none; }
.flo-cot-list li { display: flex; align-items: center; gap: 10px; padding: 8px 8px 8px 12px; border-radius: 12px; background: #F4F1FE; color: var(--ink); font-size: 14px; }
.flo-cot-list li .flo-ico { width: 20px; height: 20px; color: var(--flo-violeta); flex: none; }
.flo-cot-list li span { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.flo-cot-list li small { color: var(--ink-3); }
.flo-cot-list li button { display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #fff; color: var(--ink-2); cursor: pointer; flex: none; }
.flo-cot-list li button .flo-ico { width: 16px; height: 16px; color: inherit; }
.flo-cot .flo-btn--wa { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 54px; font-size: 16.5px; }
.flo-track-steps--3 { grid-template-columns: repeat(3, 1fr); }
.flo-cot-ok .flo-cot-steps { margin: 6px 0 12px; }
.flo-cot-ok .flo-cot-steps li.is-current span { background: var(--flo-violeta); border-color: var(--flo-violeta); color: #fff; }
.flo-cot-acc { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.flo-cot-acc .flo-btn { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 46px; padding: 0 10px; font-size: 14.5px; }
.flo-cot-acc .flo-ico { width: 18px; height: 18px; }
.flo-legal--links { margin-top: 4px; }
.flo-legal--links .flo-link { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; cursor: pointer; opacity: .85; }
/* Panel · Cotizaciones */
.cot .cot-kpi { border: 0; cursor: pointer; text-align: left; font: inherit; }
.cot .cot-kpi--recibido b { color: var(--flo-coral); }
.cot .cot-kpi--proceso b { color: #B7790A; }
.cot .cot-kpi--enviado b { color: #12957F; }
.cot-card.cot-recibido { border-left: 4px solid var(--flo-coral); }
.cot-card.cot-proceso { border-left: 4px solid var(--flo-ambar); }
.cot-card.cot-enviado { border-left: 4px solid var(--flo-verde); }
.cot-card.cot-anulado { opacity: .6; }
.cot-pill--recibido { background: #FFE9EE !important; color: #B4213F !important; }
.cot-pill--proceso { background: #FFF4DB !important; color: #8A5A00 !important; }
.cot-pill--enviado { background: #E2F8F3 !important; color: #0E7A68 !important; }
.cot-msg { margin: 8px 0; padding: 10px 12px; border-radius: 10px; background: #F5F7FD; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; }
.cot-adj { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.cot-mas { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--line); display: grid; gap: 8px; }
.cot-mas textarea { width: 100%; }
.cot-hist { margin: 0; padding-left: 18px; font-size: 13px; color: var(--ink-2); }

/* ---------- 3.2.0 · Menú en 4 módulos de gestión ---------- */
.flo-eq-mod { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.flo-eq-mod > div, .flo-eq-mod-b { display: flex; flex-direction: column; gap: 10px; }
.flo-eq-mod-b[hidden] { display: none; }
.flo-eq-tabs--groups .flo-eq-mod .flo-eq-group + .flo-eq-group { border-left: 0; padding-left: 0; }
.flo-app .flo-eq-tabs--groups .flo-eq-mod-h { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 8px; width: 100%; padding: 10px 10px; border: 1px solid var(--line); border-radius: 14px; background: #fff; text-align: left; cursor: pointer; color: var(--ink); font-size: 14px; }
.flo-eq-mod-h b { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; background: var(--flo-cobalto); color: #fff; font-size: 14px; }
.flo-eq-mod[data-eq-mod="log"] .flo-eq-mod-h b { background: #0D7C69; }
.flo-eq-mod[data-eq-mod="com"] .flo-eq-mod-h b { background: var(--flo-violeta); }
.flo-eq-mod[data-eq-mod="mas"] .flo-eq-mod-h b { background: #B4235A; }
.flo-eq-mod-h span { font-weight: 800; line-height: 1.2; }
.flo-eq-mod-h small { min-width: 24px; padding: 2px 7px; border-radius: 99px; background: var(--bg-2); color: var(--ink-3); font-size: 12px; text-align: center; }
.flo-eq-mod-h::after { content: ""; grid-column: 3; display: none; }
.flo-app .flo-eq-tabs--groups .flo-eq-mod-h[aria-expanded="true"] { border-color: color-mix(in srgb, var(--flo-cobalto) 35%, #fff); background: color-mix(in srgb, var(--flo-cobalto) 5%, #fff); }
.flo-eq-mod.is-cur .flo-eq-mod-h { box-shadow: inset 3px 0 0 var(--flo-violeta); }
.flo-eq-mod-b { padding: 0 0 4px 8px; }
.flo-eq-layout .flo-eq-tabs--groups { gap: 10px; }
@media (max-width: 900px) {
	.flo-eq-layout .flo-eq-tabs--groups { flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
	.flo-eq-mod-b { padding-left: 0; }
}
/* 3.2.0 · subfamilias dentro de Colecciones (tienda) */
.flo-app .flo-fo.is-sub { margin-left: 14px; font-size: .94em; }
.flo-app .flo-fo.is-sub::before { content: "↳"; margin-right: 4px; opacity: .55; }
.flo-app a.is-sub { padding-left: 14px; }
.flo-app a.is-sub span::before { content: "↳ "; opacity: .55; }
/* 3.2.0 · ficha del producto: almacén y familia */
.flo-eq-alm { margin: 14px 0; padding: 14px; border-radius: 14px; border: 1px solid var(--line); background: #FBFCFE; }
.flo-eq-alm h4 { margin-top: 0; }
.flo-eq-pos { border: 0; margin: 4px 0 10px; padding: 0; }
.flo-eq-pos legend { font-size: 13px; font-weight: 700; color: var(--ink-2); margin: 0 0 6px; }
.flo-eq-mascats { margin: 6px 0 12px; }
.flo-eq-mascats summary { cursor: pointer; font-weight: 700; font-size: 14px; padding: 6px 0; }
/* ---------- 3.2.0 · Logística y almacén ---------- */
.flo-al-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 12px 20px; margin: 0 0 16px; }
.flo-al-head > div:first-child { flex: 1 1 340px; min-width: 0; }
.flo-al-head h2 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0 6px; font-size: 22px; font-weight: 800; letter-spacing: -.01em; }
.flo-al-tool { display: flex; flex-wrap: wrap; gap: 8px; }
.flo-al-num { padding: 3px 10px; border-radius: 9px; background: var(--flo-cobalto); color: #fff; font-size: 16px; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.flo-al-num.is-new { background: var(--bg-2); color: var(--ink-2); font-size: 14px; }
.flo-al-serie { display: inline-grid; place-items: center; min-width: 40px; padding: 2px 6px; border-radius: 8px; background: var(--flo-cobalto); color: #fff; font-size: 13px; font-variant-numeric: tabular-nums; }
.flo-al-cod { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.flo-al-cod .flo-g-card h3 small { font-weight: 600; color: var(--ink-3); }
.flo-eq-table tr.is-sel td { background: color-mix(in srgb, var(--flo-cobalto) 9%, #fff); }
.flo-app .flo-al-fsel { font-weight: 800; text-align: left; }
.flo-eq-table td small { display: block; color: var(--ink-3); font-size: 12px; }
.flo-al-acts { white-space: nowrap; }
.flo-al-acts .flo-btn, .flo-al-acts .flo-g-ord { margin: 2px 4px 2px 0; }
.flo-al-q { flex: 1 1 260px; }
.flo-al-q input { width: 100%; }
.flo-al-ord h4 { margin: 18px 0 8px; font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-3); }
.flo-al-add { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.flo-al-add .flo-al-q { display: grid; gap: 4px; margin: 0; font-size: 14px; font-weight: 600; }
.flo-al-add .flo-al-q input { padding: 11px 12px; border-radius: 12px; border: 1px solid #CDD3E3; font: inherit; }
.flo-al-xls { display: flex; flex-wrap: wrap; gap: 8px; }
.flo-al-file { position: relative; overflow: hidden; cursor: pointer; }
.flo-al-file input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.flo-al-res { display: grid; gap: 6px; margin: 8px 0; max-height: 320px; overflow: auto; }
.flo-al-res:empty { display: none; }
.flo-al-num-in { width: 92px; min-width: 0; padding: 8px 9px; border-radius: 9px; border: 1px solid #CDD3E3; font: inherit; text-align: right; font-variant-numeric: tabular-nums; }
.flo-app .flo-al-x { width: 32px; height: 32px; border: 1px solid var(--line); border-radius: 9px; background: #fff; cursor: pointer; font-size: 18px; color: var(--ink); }
.flo-al-ltab td, .flo-al-ctab td { font-variant-numeric: tabular-nums; }
.flo-eq-table tr.is-err td { background: color-mix(in srgb, var(--flo-coral) 9%, #fff); }
.flo-eq-table tr.is-pos td { background: color-mix(in srgb, var(--flo-verde) 9%, #fff); }
.flo-al-tot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 16px; margin: 10px 0; padding: 12px 14px; border-radius: 12px; background: var(--bg-2); font-size: 14.5px; }
.flo-al-vacio { padding: 16px; border: 1px dashed #CDD3E3; border-radius: 12px; text-align: center; }
.flo-al-val { margin: 12px 0; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line); font-size: 14px; }
.flo-al-val p { margin: 0 0 4px; }
.flo-al-val ul { margin: 6px 0 0; padding-left: 18px; }
.flo-al-val.is-ok { border-color: color-mix(in srgb, var(--flo-verde) 50%, #fff); background: color-mix(in srgb, var(--flo-verde) 8%, #fff); }
.flo-al-val.is-warn { border-color: color-mix(in srgb, var(--flo-ambar) 55%, #fff); background: color-mix(in srgb, var(--flo-ambar) 10%, #fff); }
.flo-al-val.is-err { border-color: color-mix(in srgb, var(--flo-coral) 50%, #fff); background: color-mix(in srgb, var(--flo-coral) 8%, #fff); }
.flo-al-avisos li { color: #8A5A00; }
.flo-al-acciones { padding: 8px 0 0; border-top: 1px solid var(--line); margin-top: 8px; }
.flo-al-dl { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px 18px; margin: 0 0 16px; padding: 14px; border-radius: 14px; border: 1px solid var(--line); background: #fff; }
.flo-al-dl dt { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ink-3); }
.flo-al-dl dd { margin: 2px 0 0; font-size: 14.5px; }
.flo-eq-pill.flo-al-st-transito { background: color-mix(in srgb, var(--flo-violeta) 14%, #fff); color: var(--flo-violeta); }
.flo-eq-table tr.flo-al-grp td { background: #EEF1F8; border-top: 2px solid #D6DCEB; }
@media (max-width: 900px) {
	.flo-al-cod { grid-template-columns: minmax(0, 1fr); }
	.flo-al-head h2 { font-size: 19px; }
	.flo-al-tool .flo-btn { flex: 1 1 auto; justify-content: center; }
	.flo-al-acts { white-space: normal; }
}
@media print {
	.flo-eq-tabs, .flo-eq-top, .flo-al-tool, .flo-g-filtros, .flo-fab, .flo-wa-fab { display: none !important; }
	.flo-eq-layout { display: block !important; }
	.flo-eq-table { overflow: visible !important; }
}
.flo-al-ltab td, .flo-al-ctab td, .flo-al-otab td { white-space: nowrap; }
.flo-al-ltab td:nth-child(2), .flo-al-ctab td:nth-child(2) { white-space: normal; min-width: 180px; }
.flo-eq-table td code { white-space: nowrap; }
.flo-al-lead { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ink-2); max-width: 760px; }
.flo-al-lead code { white-space: nowrap; }
.flo-al-ftab .flo-al-acts { white-space: normal; min-width: 150px; }
.flo-al-ftab td { vertical-align: middle; }
@media (max-width: 600px) {
	.flo-al-ord .flo-row3, .flo-al-ord .flo-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
	.flo-al-ord .flo-row3 > span:empty { display: none; }
	.flo-al-add .flo-al-q { flex-basis: 100%; }
}

/* ===== 3.3.0 · Creación y edición masiva ===== */
.flo-ms-subs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; padding: 4px; border-radius: 14px; background: var(--bg-2); }
.flo-app .flo-ms-sub { flex: 1 1 auto; min-height: 42px; padding: 0 14px; border: 0; border-radius: 10px; background: transparent; font: inherit; font-size: 14px; font-weight: 700; color: var(--ink-2); cursor: pointer; }
.flo-app .flo-ms-sub:hover { background: #fff; color: var(--ink); }
.flo-app .flo-ms-sub.is-on { background: #fff; color: var(--flo-violeta); box-shadow: 0 1px 3px rgba(19,35,91,.12); }
.flo-ms-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.flo-ms-grid .flo-g-card { display: grid; gap: 10px; }
.flo-ms-grid .flo-g-card h3 { margin-bottom: 2px; }
.flo-ms-wide { grid-column: 1 / -1; }
.flo-ms-form label { display: grid; gap: 4px; font-size: 14px; font-weight: 600; margin: 0; min-width: 0; }
.flo-ms-form label.flo-check { display: flex; }
.flo-ms-form input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]), .flo-ms-form select, .flo-ms-form textarea, .flo-ms-filtros input, .flo-ms-filtros select, .flo-ms-ops input:not([type="checkbox"]), .flo-ms-ops select, .flo-ms-famtxt, .flo-ms-dic input, [data-ms-area] > .flo-g-card label > input { width: 100%; min-width: 0; padding: 10px 12px; border-radius: 11px; border: 1px solid #CDD3E3; background: #fff; font: inherit; font-size: 14.5px; color: var(--ink); box-sizing: border-box; }
.flo-ms-form textarea, .flo-ms-famtxt { resize: vertical; line-height: 1.45; }
.flo-ms-famtxt { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 14px; margin: 4px 0 8px; }
.flo-ms-n { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--flo-violeta); color: #fff; font-size: 13px; font-weight: 800; }
.flo-ms-lbl { margin: 4px 0 0 !important; font-size: 14px !important; font-weight: 700; color: var(--ink) !important; }
.flo-ms-lbl small { font-weight: 500; color: var(--ink-3); }
.flo-ms-chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 8px; border: 1px dashed #CDD3E3; border-radius: 12px; }
.flo-ms-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 4px 4px 10px; border-radius: 999px; background: var(--bg-2); border: 1px solid var(--line); font-size: 13.5px; }
.flo-ms-chip b { font-weight: 700; }
.flo-ms-chip small { color: var(--ink-3); font-size: 12px; }
.flo-ms-chip input[type="color"] { width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; background: none; cursor: pointer; margin-left: -4px; }
.flo-ms-chip input[type="color"]::-webkit-color-swatch-wrapper { padding: 0; }
.flo-ms-chip input[type="color"]::-webkit-color-swatch { border: 1px solid rgba(0,0,0,.15); border-radius: 50%; }
.flo-app .flo-ms-chip button { width: 24px; height: 24px; border: 0; border-radius: 50%; background: #fff; color: var(--ink-2); font-size: 16px; line-height: 1; cursor: pointer; }
.flo-app .flo-ms-chip button:hover { background: color-mix(in srgb, var(--flo-coral) 14%, #fff); color: #C8183F; }
.flo-ms-chipin { display: inline-flex; flex: 1 1 240px; gap: 6px; min-width: 0; }
.flo-ms-chipin input { flex: 1; min-width: 0; padding: 8px 10px !important; }
.flo-ms-toks { display: flex; flex-wrap: wrap; gap: 4px; margin: -4px 0 4px; }
.flo-app .flo-ms-toks button { padding: 3px 8px; border: 1px solid #D6DCEB; border-radius: 7px; background: #fff; font: 600 12.5px/1.3 ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--flo-violeta); cursor: pointer; }
.flo-app .flo-ms-toks button:hover { border-color: var(--flo-violeta); }
.flo-ms-calc { margin: 6px 0 !important; padding: 10px 12px; border-radius: 10px; background: color-mix(in srgb, var(--flo-violeta) 7%, #fff); font-size: 14px !important; color: var(--ink) !important; }
.flo-ms-det summary { cursor: pointer; font-size: 14px; font-weight: 700; color: var(--ink-2); margin-bottom: 8px; }
.flo-ms-det[open] { display: grid; gap: 10px; }
.flo-ms-actbar { position: sticky; bottom: 0; z-index: 3; display: flex; flex-wrap: wrap; gap: 10px; margin: 14px 0; padding: 12px; border-radius: 14px; background: rgba(255,255,255,.94); border: 1px solid var(--line); box-shadow: 0 -4px 18px rgba(19,35,91,.08); backdrop-filter: blur(6px); }
.flo-ms-rows { display: grid; gap: 6px; }
.flo-ms-rowed { display: grid; grid-template-columns: auto minmax(0, 1.4fr) 84px minmax(0, 1.2fr) auto; gap: 6px; align-items: center; }
.flo-ms-rowed .flo-check { margin: 0 !important; }
.flo-ms-rowed input:not([type="checkbox"]) { padding: 8px 10px !important; }
.flo-ms-pr { text-align: right; font-variant-numeric: tabular-nums; }
.flo-ms-vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.flo-ms-rows > .flo-btn { justify-self: start; }
.flo-ms-prev { margin-top: 14px; }
.flo-ms-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0 0 12px; }
.flo-ms-kpis > div { padding: 12px; border-radius: 12px; background: var(--bg-2); }
.flo-ms-kpis b { display: block; font-size: 24px; font-weight: 800; font-variant-numeric: tabular-nums; }
.flo-ms-kpis span { font-size: 13px; color: var(--ink-2); }
.flo-ms-ptab, .flo-ms-etab, .flo-ms-dtab { max-height: 520px; overflow: auto; }
.flo-ms-ptab td, .flo-ms-etab td { vertical-align: top; }
.flo-ms-dot { display: inline-block; width: 12px; height: 12px; margin-right: 6px; border-radius: 50%; vertical-align: -1px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.15); }
.flo-ms-bar { height: 12px; border-radius: 99px; background: var(--bg-2); overflow: hidden; margin: 12px 0 6px; }
.flo-ms-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--flo-violeta), var(--flo-cobalto, #2446C7)); transition: width .3s; }
.flo-ms-bar-t { font-size: 13.5px; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.flo-ms-filtros { margin-bottom: 14px; }
.flo-ms-fgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.flo-ms-fgrid label { display: grid; gap: 4px; font-size: 13.5px; font-weight: 600; margin: 0; min-width: 0; }
.flo-ms-fq { grid-column: span 2; }
.flo-ms-ops { margin-top: 14px; display: grid; gap: 8px; }
.flo-ms-op { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; }
.flo-ms-op.is-on { border-color: color-mix(in srgb, var(--flo-violeta) 45%, #fff); background: color-mix(in srgb, var(--flo-violeta) 3%, #fff); }
.flo-ms-oph { margin: 0 !important; }
.flo-ms-opb { display: grid; gap: 8px; margin-top: 10px; }
.flo-ms-opb label { display: grid; gap: 4px; font-size: 13.5px; font-weight: 600; margin: 0; min-width: 0; }
.flo-ms-opb label.flo-check { display: flex; }
.flo-ms-dtab del { color: var(--ink-3); }
.flo-ms-dic { display: grid; gap: 6px; }
.flo-ms-dicrow { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.flo-ms-dicout { min-height: 24px; margin: 8px 0 0 !important; padding: 10px 12px; border-radius: 10px; background: var(--bg-2); font-size: 15px !important; color: var(--ink) !important; font-weight: 600; }
.flo-ms-ltab td { white-space: nowrap; }
.flo-ms-ltab td:nth-child(4) { white-space: normal; min-width: 200px; }
@media (max-width: 900px) {
	.flo-ms-grid { grid-template-columns: minmax(0, 1fr); }
	.flo-ms-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.flo-ms-rowed { grid-template-columns: auto minmax(0, 1fr) 72px auto; }
	.flo-ms-rowed input[data-msr$=":e"] { grid-column: 2 / 4; grid-row: 2; }
	.flo-ms-fq { grid-column: auto; }
	.flo-ms-fgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.flo-ms-fq { grid-column: 1 / -1; }
	.flo-app .flo-ms-sub { flex: 1 1 45%; }
	.flo-ms-form .flo-row, .flo-ms-form .flo-row3, .flo-ms-opb .flo-row, .flo-ms-opb .flo-row3 { grid-template-columns: minmax(0, 1fr); }
}

/* ===== 3.3.0 · Tienda: un modelo con sus colores y tallas ===== */
.flo-var { display: grid; gap: 8px; margin: 4px 0 16px; }
.flo-var-t { margin: 0; font-size: 14.5px; color: var(--ink-2, #5A6380); }
.flo-var-t b { color: var(--ink, #13235B); }
.flo-var-row { display: flex; flex-wrap: wrap; gap: 8px; }
.flo-app .flo-var-b, .flo-overlays .flo-var-b { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 6px 12px; border: 1px solid #CDD3E3; border-radius: 999px; background: #fff; font: inherit; font-size: 13.5px; font-weight: 600; color: var(--ink, #13235B); cursor: pointer; }
.flo-var-b i { width: 20px; height: 20px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.15); }
.flo-app .flo-var-b.is-on, .flo-overlays .flo-var-b.is-on { border-color: var(--ink, #13235B); box-shadow: 0 0 0 1px var(--ink, #13235B); }
.flo-app .flo-var-b.is-out, .flo-overlays .flo-var-b.is-out { color: #9AA2B8; text-decoration: line-through; }
.flo-card-var { margin: 2px 0 0; font-size: 12.5px; color: var(--ink-2, #5A6380); display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.flo-card-var i { width: 12px; height: 12px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.15); }

/* ================= 3.4.0 · Catálogo digital ================= */
.flo-eq-chip.is-on { background: var(--flo-cobalto, #1B2A6B); border-color: var(--flo-cobalto, #1B2A6B); color: #fff; }
.flo-eq-chip.is-on b { background: rgba(255,255,255,.2); }
.flo-eq-kpi.is-on { outline: 2px solid var(--flo-cobalto, #1B2A6B); }
.flo-cd-head { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: flex-start; justify-content: space-between; margin-bottom: 14px; }
.flo-cd-head h2 { margin: 0 0 4px; }
.flo-cd-head > div { flex: 1 1 320px; min-width: 0; }
.flo-cd-fams { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.flo-cd-tabla td small, .flo-cd-rev td small { display: block; color: var(--ink-3); font-size: 12.5px; margin-top: 2px; }
.flo-cd-tabla tr.is-off td { opacity: .55; }
.flo-cd-ord { white-space: nowrap; }
.flo-cd-ord .flo-link { padding: 2px 6px; font-size: 16px; }
.flo-cd-ord .flo-link[disabled] { opacity: .3; cursor: default; }
.flo-cd-req { color: var(--flo-coral, #FF5C7A); font-weight: 800; }
.flo-cd-vis--filtro { background: color-mix(in srgb, var(--flo-verde, #19C3A6) 16%, #fff); color: #0d6b5b; }
.flo-cd-vis--ficha { background: color-mix(in srgb, var(--flo-violeta, #6C3CE1) 12%, #fff); color: #4b2aa3; }
.flo-cd-vis--interno { background: #EEF1F8; color: #3b4466; }
.flo-cd-req-card { margin-top: 22px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.flo-cd-req-card h3 { margin: 0 0 6px; font-size: 17px; }
.flo-cd-ed .flo-cd-fs { border: 1px solid var(--line); border-radius: 14px; padding: 10px 14px 14px; margin: 0; min-width: 0; }
.flo-cd-ed .flo-cd-fs legend { font-weight: 700; padding: 0 6px; }
.flo-cd-vis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px; }
.flo-cd-ed [data-cd-oplist] input[type="text"], .flo-cd-ed [data-cd-oplist] input:not([type]) { width: 100%; min-width: 110px; }
.flo-cd-reqchk { align-self: end; }
/* Bloque dentro de la ficha del producto */
.flo-cd-box { margin: 18px 0 8px; padding: 14px 16px; border-radius: 16px; border: 1px solid color-mix(in srgb, var(--flo-violeta, #6C3CE1) 30%, #fff); background: color-mix(in srgb, var(--flo-violeta, #6C3CE1) 4%, #fff); }
.flo-cd-box h4 { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; flex-wrap: wrap; }
.flo-cd-box h4 small { font-weight: 500; color: var(--ink-3); }
.flo-cd-box h4 .flo-ico { width: 20px; height: 20px; color: var(--flo-violeta, #6C3CE1); }
.flo-cd-grp { margin: 0 0 12px; }
.flo-cd-grp-t { display: flex; align-items: center; gap: 6px; margin: 4px 0 6px; font-size: 12.5px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; color: var(--ink-3); }
.flo-cd-grp-t .flo-ico { width: 15px; height: 15px; }
.flo-cd-f { margin: 0 0 10px; }
.flo-cd-l { margin: 0 0 6px; font-weight: 600; font-size: 14px; }
.flo-cd-l small { display: block; font-weight: 400; color: var(--ink-3); font-size: 12.5px; }
.flo-cd-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.flo-cd-chip { position: relative; display: inline-flex; cursor: pointer; }
.flo-cd-chip input { position: absolute; opacity: 0; pointer-events: none; }
.flo-cd-chip span { display: inline-flex; flex-direction: column; padding: 7px 12px; border-radius: 12px; border: 1px solid #CDD3E3; background: #fff; font-size: 13.5px; line-height: 1.25; min-height: 36px; justify-content: center; }
.flo-cd-chip span small { font-size: 11.5px; color: var(--ink-3); font-weight: 500; }
.flo-cd-chip input:checked + span { background: var(--flo-cobalto, #1B2A6B); border-color: var(--flo-cobalto, #1B2A6B); color: #fff; }
.flo-cd-chip input:checked + span small { color: rgba(255,255,255,.8); }
.flo-cd-chip input:focus-visible + span { outline: 2px solid var(--flo-violeta, #6C3CE1); outline-offset: 2px; }
.flo-cd-chip.is-off span { border-style: dashed; opacity: .75; }
.flo-cd-num { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.flo-cd-num input { width: 110px; }
.flo-cd-num small { color: var(--ink-3); }
.flo-cd-pend, .flo-cd-ult { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 10px 12px; border-radius: 12px; margin: 0 0 12px; font-size: 14px; }
.flo-cd-pend { background: color-mix(in srgb, var(--flo-ambar, #FFB020) 18%, #fff); border: 1px solid color-mix(in srgb, var(--flo-ambar, #FFB020) 55%, #fff); }
.flo-cd-ult { background: #F3F5FB; border: 1px solid var(--line); }
.flo-cd-ult span { flex: 1 1 240px; }
.flo-cd-pend .flo-ico, .flo-cd-ult .flo-ico { width: 18px; height: 18px; flex: none; }
.flo-cd-provs summary { cursor: pointer; font-weight: 600; margin: 6px 0; }
.flo-cd-provs summary small { font-weight: 400; color: var(--ink-3); }
.flo-cd-falta { display: block; color: #a4501a; font-size: 12px; margin-top: 3px; }
.flo-cd-falta-pill { display: inline-block; margin: 2px 4px 2px 0; padding: 2px 8px; border-radius: 99px; background: color-mix(in srgb, var(--flo-ambar, #FFB020) 22%, #fff); color: #7a4a00; font-size: 12.5px; font-weight: 700; }
.flo-cd-kpis { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 14px; }
.flo-cd-kpis .flo-eq-kpi { cursor: default; min-width: 120px; }
.flo-cd-kpis button.flo-eq-kpi { cursor: pointer; font: inherit; text-align: left; }
.flo-cd-subir { padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: #fff; margin: 0 0 16px; }
.flo-cd-subir h3 { margin: 0 0 8px; font-size: 17px; }
.flo-cd-dlg { width: min(560px, 100%); max-height: calc(100vh - 32px); overflow: auto; }
/* Tienda */
.flo-price-u { display: block; font-size: 11.5px; font-weight: 500; color: var(--ink-3); }
.flo-tech { margin: 4px 0 12px; border: 1px solid var(--line); border-radius: 12px; padding: 0 14px; }
.flo-tech summary { cursor: pointer; padding: 11px 0; font-weight: 700; font-size: 14.5px; }
.flo-tech .flo-specs { margin-top: 0; }
.flo-fg--rx { background: color-mix(in srgb, var(--flo-verde, #19C3A6) 7%, #fff); border-radius: 14px; padding: 12px 12px 14px; margin-bottom: 14px; border-bottom: 0; }
.flo-rx-note, .flo-rx-help { clear: both; margin: 0 0 8px; font-size: 13px; color: var(--ink-2); }
.flo-rx-help { margin: 8px 0 0; }
.flo-rx-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.flo-rx-row label { display: grid; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--ink-2); }
.flo-rx-row select { width: 100%; min-height: 40px; border-radius: 10px; border: 1px solid #CDD3E3; padding: 0 6px; font: inherit; font-size: 14px; background: #fff; }
.flo-achip--rx { background: color-mix(in srgb, var(--flo-verde, #19C3A6) 18%, #fff); }
@media (max-width: 600px) {
	.flo-cd-head .flo-btn { width: 100%; justify-content: center; }
	.flo-cd-num input { width: 92px; }
}
.flo-cd-fine { margin: 6px 0; font-size: 13px; line-height: 1.5; color: var(--ink-3); }
.flo-cd-fine .flo-ico { width: 15px; height: 15px; vertical-align: -3px; margin-right: 4px; }
.flo-eq-sw.flo-cd-sw { min-height: 0; padding: 4px 8px; gap: 8px; margin: 0 !important; border: 0; background: transparent; }
.flo-cd-sw i { width: 40px; height: 24px; }
.flo-cd-sw i::after { width: 18px; height: 18px; }
.flo-cd-sw input:checked + i::after { transform: translateX(16px); }
.flo-cd-sw span { font-size: 13px; }
.flo-cd-req-card input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--flo-cobalto, #1B2A6B); }
.flo-cd-ord .flo-link { min-width: 28px; min-height: 28px; }
.flo-cd-box .flo-cd-num { flex-wrap: wrap; }
.flo-cd-box .flo-cd-num input, .flo-cd-dlg .flo-cd-num input { width: 104px !important; max-width: 40%; flex: 0 1 auto; }
.flo-cd-box .flo-cd-num small { white-space: nowrap; }
.flo-cd-box [name="cd_factor"] { max-width: 140px; }
.flo-eq-sw.flo-cd-sw { position: relative; }

/* ================= 3.5.0 · Herramientas para vender y buscador del panel ================= */
.flo-eq-navq { position: relative; flex: 1 1 100%; width: 100%; margin: 0 0 10px; }
.flo-eq-navq .flo-search { display: flex; align-items: center; gap: 8px; width: 100%; padding: 0 12px; min-height: 44px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; box-sizing: border-box; }
.flo-eq-navq .flo-search:focus-within { border-color: var(--flo-violeta, #6C3CE1); box-shadow: 0 0 0 3px color-mix(in srgb, var(--flo-violeta, #6C3CE1) 18%, transparent); }
.flo-eq-navq input { flex: 1; min-width: 0; border: 0 !important; outline: 0; background: transparent !important; font: inherit; font-size: 15px; padding: 10px 0 !important; box-shadow: none !important; }
.flo-eq-navq .flo-ico { width: 18px; height: 18px; color: var(--ink-3); flex: none; }
.flo-eq-navres { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 50; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 14px 40px rgba(9,16,48,.16); padding: 6px; display: grid; gap: 2px; max-height: 60vh; overflow: auto; }
.flo-eq-navres button { all: unset; box-sizing: border-box; display: grid; gap: 2px; padding: 9px 12px; border-radius: 9px; cursor: pointer; width: 100%; }
.flo-eq-navres button b { font-weight: 700; color: var(--ink, #1E2233); font-size: 14.5px; }
.flo-eq-navres button small { font-size: 12px; color: var(--ink-3); }
.flo-eq-navres button:hover, .flo-eq-navres button:focus-visible, .flo-eq-navres button.is-first { background: color-mix(in srgb, var(--flo-violeta, #6C3CE1) 9%, #fff); outline: 0; }
.flo-eq-navres p { margin: 8px 10px; font-size: 13.5px; color: var(--ink-3); }
/* Tienda: niveles de lunas */
.flo-paq { border: 0; margin: 4px 0 12px; padding: 0; min-width: 0; }
.flo-paq legend { font-weight: 700; margin-bottom: 8px; }
.flo-paq legend small { font-weight: 500; color: var(--ink-3); }
.flo-paq-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.flo-paq-b { position: relative; display: flex; flex-direction: column; gap: 4px; text-align: left; padding: 14px 12px 12px; border-radius: 14px; border: 1.5px solid #CDD3E3; background: #fff; cursor: pointer; font: inherit; color: inherit; }
.flo-paq-b b { font-size: 15.5px; }
.flo-paq-d { font-size: 12.5px; color: var(--ink-2); line-height: 1.35; }
.flo-paq-inc { font-size: 12px; color: var(--ink-3); line-height: 1.45; flex: 1; }
.flo-paq-b strong { font-size: 17px; color: var(--flo-cobalto, #13235B); margin-top: 4px; }
.flo-paq-b.is-rec { border-color: var(--flo-violeta, #6C3CE1); }
.flo-paq-tag { position: absolute; top: -10px; left: 10px; padding: 2px 8px; border-radius: 99px; background: var(--flo-violeta, #6C3CE1); color: #fff; font-size: 11px; font-weight: 700; }
.flo-paq-b.is-on { background: color-mix(in srgb, var(--flo-cobalto, #13235B) 7%, #fff); border-color: var(--flo-cobalto, #13235B); box-shadow: 0 0 0 2px var(--flo-cobalto, #13235B) inset; }
.flo-paq.is-off .flo-paq-b { opacity: .85; }
.flo-paq-more summary { cursor: pointer; font-size: 13.5px; font-weight: 600; color: var(--ink-2); margin: 2px 0 8px; }
/* Tienda: parecidos */
.flo-sim { grid-column: 1 / -1; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.flo-sim h3 { margin: 0 0 10px; font-size: 16px; }
.flo-sim-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; }
.flo-sim-b { display: grid; gap: 4px; text-align: left; padding: 8px; border-radius: 12px; border: 1px solid var(--line); background: #fff; cursor: pointer; font: inherit; color: inherit; }
.flo-sim-img { display: grid; place-items: center; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 8px; background: #F5F7FC; }
.flo-sim-img img, .flo-sim-img svg { max-width: 100%; max-height: 100%; object-fit: contain; }
.flo-sim-n { font-size: 13px; font-weight: 600; line-height: 1.3; }
.flo-sim-p { font-size: 13.5px; font-weight: 800; color: var(--flo-cobalto, #13235B); }
/* Tienda: selección enviada por el vendedor */
.flo-selbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 12px 14px; margin: 0 0 12px; border-radius: 14px; background: color-mix(in srgb, var(--flo-violeta, #6C3CE1) 9%, #fff); border: 1px solid color-mix(in srgb, var(--flo-violeta, #6C3CE1) 30%, #fff); font-weight: 700; }
.flo-selbar span { flex: 1 1 200px; }
.flo-selbar .flo-ico { width: 20px; height: 20px; color: var(--flo-violeta, #6C3CE1); }
/* Panel: selección, paquetes, recompra */
.flo-vd-sbox { padding: 14px 16px; border: 1px solid var(--line); border-radius: 16px; background: #fff; margin: 0 0 14px; }
.flo-vd-cnt { margin: 0 0 8px; }
.flo-vd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 10px; }
.flo-vd-card { position: relative; display: grid; gap: 4px; padding: 8px; border: 1.5px solid var(--line); border-radius: 14px; background: #fff; cursor: pointer; }
.flo-vd-card input { position: absolute; top: 10px; left: 10px; width: 20px; height: 20px; z-index: 1; accent-color: var(--flo-cobalto, #1B2A6B); }
.flo-vd-card.is-on { border-color: var(--flo-cobalto, #1B2A6B); box-shadow: 0 0 0 2px var(--flo-cobalto, #1B2A6B) inset; }
.flo-vd-img { display: grid; place-items: center; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 10px; background: #F5F7FC; }
.flo-vd-img img, .flo-vd-img svg { max-width: 100%; max-height: 100%; object-fit: contain; }
.flo-vd-n b { display: block; font-size: 13.5px; line-height: 1.3; }
.flo-vd-n small { display: block; font-size: 12px; color: var(--ink-3); }
.flo-vd-p { font-weight: 800; font-size: 13.5px; color: var(--flo-cobalto, #13235B); }
.flo-vd-paqs { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin: 12px 0; }
.flo-vd-nivel { border: 1px solid var(--line); border-radius: 16px; padding: 12px 14px; margin: 0; min-width: 0; background: #fff; }
.flo-vd-nivel legend { font-weight: 800; padding: 0 6px; }
.flo-vd-rec td small { display: block; color: var(--ink-3); font-size: 12px; margin-top: 2px; }
.flo-vd-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.flo-vd-row label, .flo-vd-sbox > label { display: grid; gap: 4px; min-width: 0; }
.flo-vd-row select, .flo-vd-row input { width: 100%; min-width: 0; box-sizing: border-box; }
.flo-cd-kpis > .flo-eq-kpi { flex: 1 1 140px; width: auto; max-width: 240px; margin: 0; }
.flo-vd-rec td.flo-eq-acts { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; }
@media (max-width: 600px) { .flo-cd-kpis > .flo-eq-kpi { flex-basis: calc(50% - 6px); max-width: none; } }
/* 3.6.0 · Consulta de precios (vendedor) y lectura de listas (master) */
.flo-pl-buscar { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 6px 0 12px; }
.flo-pl-buscar .flo-search { background: #fff; border: 1.5px solid var(--line); }
.flo-pl-buscar .flo-search:focus-within { border-color: var(--flo-violeta, #6C3CE1); }
.flo-pl-filtros { display: grid; gap: 4px; margin: 0 0 10px; }
.flo-pl-f { min-width: 0; }
.flo-pl-f .flo-cd-fams { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.flo-pl-f .flo-eq-chip { flex: 0 0 auto; }
.flo-pl-tabla td small { display: block; font-size: 12px; color: var(--ink-3); line-height: 1.35; }
.flo-pl-tabla td b { line-height: 1.35; }
.flo-pl-tabla tr.is-sel td { background: color-mix(in srgb, var(--flo-violeta, #6C3CE1) 7%, #fff); }
.flo-pl-tabla input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--flo-cobalto, #1B2A6B); }
.flo-pl-tabla td:nth-child(5) { white-space: nowrap; }
.flo-pl-precio b { font-size: 16px; color: var(--flo-cobalto, #13235B); white-space: nowrap; }
.flo-pl-lp { color: #8A5A00 !important; font-weight: 600; }
.flo-pl-tabla mark, .flo-pl-prof mark { background: #FFF1B8; color: inherit; padding: 0 1px; border-radius: 3px; }
.flo-pl-prof { padding: 14px 16px; margin: 0 0 14px; border: 1.5px solid var(--flo-cobalto, #1B2A6B); border-radius: 16px; background: #fff; display: grid; gap: 10px; }
.flo-pl-prof h3 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 16px; }
.flo-pl-prof td small { display: block; font-size: 12px; color: var(--ink-3); }
.flo-pl-prof > label { display: grid; gap: 4px; }
.flo-pl-cant { width: 64px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; font-size: 15px; }
.flo-pl-total { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin: 0; font-weight: 700; }
.flo-pl-total b { font-size: 22px; color: var(--flo-cobalto, #13235B); }
.flo-pl-total small { font-weight: 400; color: var(--ink-3); }
.flo-pl-ayuda { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 14px; margin: 0 0 12px; border-radius: 14px; background: #F5F7FC; border: 1px solid var(--line); }
.flo-pl-ayuda p { flex: 1 1 280px; margin: 0; font-size: 13.5px; line-height: 1.5; }
.flo-pl-ayuda .flo-ico { width: 16px; height: 16px; vertical-align: -3px; margin-right: 4px; }
.flo-pl-est { min-width: 180px; }
.flo-pl-est small { display: block; font-size: 12px; color: var(--ink-3); margin-top: 3px; }
.flo-pl-acts { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; margin-top: 8px; }
.flo-pl-bar { height: 10px; border-radius: 99px; background: #EEF1F8; overflow: hidden; margin: 10px 0; }
.flo-pl-bar i { display: block; height: 100%; width: 0; background: var(--flo-violeta, #6C3CE1); transition: width .25s; }
.flo-pl-ej { margin: 0; padding: 10px 12px; border-radius: 10px; background: #F5F7FC; font-size: 13.5px; }
.flo-pl-base ul { margin: 8px 0 0; padding-left: 18px; font-size: 12.5px; color: var(--ink-3); max-height: 180px; overflow: auto; }
[data-pls] textarea { width: 100%; box-sizing: border-box; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; }
@media (max-width: 700px) {
	.flo-pl-buscar .flo-search { flex-basis: 100%; }
	.flo-pl-buscar .flo-btn { width: 100%; justify-content: center; }
	.flo-pl-tabla table, .flo-pl-tabla tbody, .flo-pl-tabla tr, .flo-pl-tabla td { display: block; width: auto; }
	.flo-pl-tabla thead { display: none; }
	.flo-pl-tabla tr { position: relative; padding: 10px 12px 10px 44px; border-bottom: 1px solid var(--line); }
	.flo-pl-tabla td { padding: 2px 0; border: 0; }
	.flo-pl-tabla td:first-child { position: absolute; left: 12px; top: 12px; }
	.flo-pl-tabla td[data-th]:not(:nth-child(2))::before { content: attr(data-th) ': '; font-size: 12px; color: var(--ink-3); }
	.flo-pl-tabla td.flo-pl-precio { font-size: 15px; }
	.flo-pl-prof .flo-eq-table td:nth-child(3) { white-space: nowrap; }
}
/* 3.7.0 · Promociones, precio fijado, descuento especial */
.flo-pl-antes { display: block; font-size: 12px; color: var(--ink-3); }
.flo-pl-promo { display: inline-block; margin-top: 4px; padding: 2px 8px; border-radius: 99px; background: #FFE7EF; color: #B0124A; font-size: 11.5px; font-weight: 700; line-height: 1.4; }
.flo-pl-fijar { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; margin-top: 4px; font-size: 12px; }
.flo-pl-fijar em { font-style: normal; color: #0B7A5B; font-weight: 700; }
.flo-pl-fijo { display: grid; gap: 6px; min-width: 180px; }
.flo-pl-fijo label { display: grid; gap: 3px; font-size: 12px; }
.flo-pl-fijo input { width: 100%; box-sizing: border-box; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; font-size: 15px; }
.flo-pl-desc { padding: 10px 12px; border-radius: 12px; background: #FFF7EC; border: 1px solid #F6D9B0; }
.flo-pl-desc .flo-cd-grp-t { margin: 0 0 6px; }
.flo-pl-desc input { padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; }
.flo-pl-total span { font-weight: 500; font-size: 13px; color: var(--ink-3); }
.flo-pl-pr { border: 1px solid var(--line); border-radius: 14px; padding: 12px 14px; margin: 0 0 12px; display: grid; gap: 10px; background: #fff; min-width: 0; }
.flo-pl-pr legend { font-weight: 800; padding: 0 6px; }
.flo-pl-pr input, .flo-pl-pr select, .flo-pl-max input { width: 100%; box-sizing: border-box; }
.flo-pl-pr .flo-eq-danger { justify-self: start; }
.flo-pl-on { display: flex !important; align-items: center; gap: 8px; align-self: end; padding-bottom: 8px; }
.flo-pl-on input { width: 18px !important; height: 18px; }
.flo-pl-max { display: grid; gap: 4px; max-width: 420px; margin-bottom: 12px; }
.flo-pl-sw { display: flex; align-items: center; gap: 8px; margin: 6px 0 0; font-size: 12.5px; }
/* 3.8.0 · Orden de venta rápida */
.flo-ov { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 400px); gap: 18px; align-items: start; }
.flo-ov-main { display: grid; gap: 14px; min-width: 0; }
.flo-ov-sec { padding: 14px 16px; border: 1px solid var(--line); border-radius: 16px; background: #fff; display: grid; gap: 10px; min-width: 0; }
.flo-ov-sec h3 { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 16px; }
.flo-ov-sec h3 span { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--flo-cobalto, #1B2A6B); color: #fff; font-size: 13px; }
.flo-ov-sec label { display: grid; gap: 4px; min-width: 0; }
.flo-ov-sec input, .flo-ov-sec select { width: 100%; box-sizing: border-box; padding: 9px 10px; border: 1px solid var(--line); border-radius: 10px; font-size: 15px; background: #fff; }
.flo-ov-sec .flo-cd-grp-t { margin: 2px 0 0; }
.flo-ov-seg { display: flex; flex-wrap: wrap; gap: 6px; }
.flo-ov-seg label { display: inline-flex; }
.flo-ov-rx table { min-width: 0; }
.flo-ov-rx th, .flo-ov-rx td { padding: 6px; }
.flo-ov-rx input { text-align: center; font-variant-numeric: tabular-nums; }
.flo-ov-rx2 { max-width: 420px; }
.flo-ov-desc { display: flex; gap: 6px; }
.flo-ov-desc input { flex: 1; min-width: 0; }
.flo-ov-desc select { width: 70px; flex: 0 0 70px; }
.flo-ov-tab td small { display: block; font-size: 12px; color: var(--ink-3); }
.flo-ov-tab td input { min-width: 0; }
.flo-ov-tab .flo-ov-pin-p { width: 96px; }
.flo-ov-tot dl { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; margin: 0; padding: 12px 14px; border-radius: 12px; background: #F5F7FC; }
.flo-ov-tot dt { color: var(--ink-3); font-size: 13.5px; }
.flo-ov-tot dd { margin: 0; text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.flo-ov-tot .is-desc { color: #B0124A; }
.flo-ov-tot .is-tot { font-size: 20px; color: var(--flo-cobalto, #13235B); font-weight: 800; padding-top: 6px; border-top: 1px solid var(--line); }
.flo-ov-tot dt.is-tot { color: var(--flo-cobalto, #13235B); }
.flo-ov-tot .is-mg { font-size: 12.5px; color: #8A5A00; }
.flo-ov-tot .is-neg { color: #C62828; }
.flo-ov-fin { padding: 14px 16px; border-radius: 14px; background: #E8F7EF; border: 1px solid #A6DEC0; }
.flo-ov-fin p { margin: 0 0 8px; display: flex; align-items: center; gap: 8px; }
.flo-ov-panel { min-width: 0; }
.flo-ov-pin { position: sticky; top: 90px; display: grid; gap: 10px; padding: 14px; border: 1.5px solid var(--flo-cobalto, #1B2A6B); border-radius: 16px; background: #fff; max-height: calc(100vh - 110px); overflow: hidden; grid-template-rows: auto auto auto minmax(0, 1fr); }
.flo-ov-pin h3 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 16px; }
.flo-ov-pin .flo-search { background: #fff; border: 1.5px solid var(--line); height: 44px; }
.flo-ov-pres { overflow-y: auto; display: grid; gap: 8px; align-content: start; min-height: 120px; }
.flo-ov-it { display: grid; gap: 6px; padding: 10px; border: 1px solid var(--line); border-radius: 12px; }
.flo-ov-it small { display: block; font-size: 11.5px; color: var(--ink-3); line-height: 1.35; }
.flo-ov-it small.is-ok { color: #0B7A5B; } .flo-ov-it small.is-no { color: #C62828; }
.flo-ov-it b { font-size: 13.5px; line-height: 1.3; }
.flo-ov-pr { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; justify-content: flex-end; }
.flo-ov-pr s { color: var(--ink-3); font-size: 12px; }
.flo-ov-pr > b, .flo-ov-sug b { color: var(--flo-cobalto, #13235B); font-size: 15px; }
.flo-ov-costo { font-size: 12px; font-weight: 700; color: #8A5A00; background: #FFF4DE; padding: 2px 8px; border-radius: 99px; }
.flo-ov-sug { font-size: 12px; color: var(--ink-3); }
.flo-pl-vc { margin-bottom: 10px; }
/* Editar la lista como lista */
.flo-pl-ed td { vertical-align: top; }
.flo-pl-ed input { width: 100%; box-sizing: border-box; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; font-size: 13.5px; min-width: 70px; }
.flo-pl-ed td:nth-child(3) input { min-width: 220px; }
.flo-pl-ed-cols { display: grid; gap: 4px; }
.flo-pl-ed-cols > div { display: grid; grid-template-columns: minmax(110px, 1fr) 84px 84px; gap: 4px; }
.flo-pl-ed tr.is-off td { opacity: .45; text-decoration: line-through; }
@media (max-width: 1100px) {
	.flo-ov { grid-template-columns: 1fr; }
	.flo-ov-panel { order: -1; }
	.flo-ov-pin { position: static; max-height: none; }
	.flo-ov-pres { max-height: 380px; }
}
@media (max-width: 600px) {
	.flo-ov-sec { padding: 12px; }
	.flo-ov-tab table, .flo-ov-tab tbody, .flo-ov-tab tr, .flo-ov-tab td { display: block; width: auto; }
	.flo-ov-tab thead { display: none; }
	.flo-ov-tab tr { padding: 10px 0; border-bottom: 1px solid var(--line); }
	.flo-ov-tab td { border: 0; padding: 2px 0; }
	.flo-ov-tab td .flo-pl-cant { width: 70px; }
	.flo-pl-ed-cols > div { grid-template-columns: 1fr 1fr 1fr; }
	.flo-pl-ed td:nth-child(3) input { min-width: 0; }
}
@media (min-width: 1101px) { .flo-ov { grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); } }
@media (min-width: 601px) { .flo-ov-tab td:first-child { min-width: 170px; } .flo-ov-tab td:not(:first-child) { white-space: nowrap; } }
.flo-ov-sec .flo-vd-row { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.flo-ov-sec .flo-vd-row label small { font-weight: 400; color: var(--ink-3); }
.flo-ov .flo-ov-rx { overflow: visible; }
.flo-ov .flo-ov-rx table { min-width: 0; width: 100%; table-layout: fixed; }
.flo-ov .flo-ov-rx th:first-child { width: 36px; }
.flo-ov .flo-ov-rx input { min-width: 0; padding: 8px 4px; }
.flo-ov .flo-ov-seg { min-width: 0; }
.flo-ov .flo-ov-seg label span { white-space: normal; }
.flo-ov-sec, .flo-ov-pin { grid-template-columns: minmax(0, 1fr); } .flo-ov-sec > * { min-width: 0; }
/* 3.8.1 · Receta táctil y avisos de búsqueda */
.flo-ov .flo-ov-rx select, .flo-ov-rx2 select { width: 100%; min-width: 0; height: 46px; padding: 0 6px; border: 1px solid var(--line); border-radius: 10px; font-size: 16px; text-align: center; text-align-last: center; background: #fff; font-variant-numeric: tabular-nums; }
.flo-ov-rx2 { align-items: end; }
.flo-ov-copia { align-self: end; height: 46px; }
.flo-ov-aviso { margin: 0 0 6px; padding: 8px 10px; border-radius: 10px; background: #FFF7EC; border: 1px solid #F6D9B0; font-size: 12.5px; color: #8A5A00; }
.flo-ov-panel .flo-empty .flo-btn { margin-top: 8px; }
/* 3.9.0 · Orden de venta: precio de venta, entrega y pago */
.flo-ov-tab .flo-ov-cant { width: 64px; min-width: 64px; padding: 8px 6px; text-align: center; font-size: 15px; }
.flo-ov-tab .flo-ov-pv { width: 104px; min-width: 90px; padding: 8px; font-size: 15px; font-weight: 700; color: var(--flo-cobalto, #13235B); }
.flo-ov-tab tr.is-err td { background: #FFF1F1; }
.flo-ov-tab small.is-no { display: block; color: #C62828; font-weight: 700; }
.flo-ov-pagos { display: grid; gap: 8px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line); background: #FBFCFF; }
.flo-ov-pagos .flo-cd-grp-t { margin: 0; }
.flo-ov-pagos .flo-eq-chip, .flo-ov-sec .flo-cd-fams .flo-eq-chip { min-height: 42px; }
@media (max-width: 600px) {
	.flo-ov-tab td[data-th] { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
	.flo-ov-tab td[data-th]::before { content: attr(data-th); font-size: 12px; color: var(--ink-3); }
	.flo-ov-tab .flo-ov-pv { width: 120px; }
}
/* 3.9.2 · Ventas realizadas */
.flo-ov-tabs { display: inline-flex; gap: 0; margin: 0 0 14px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #fff; }
.flo-ov-tabs button { border: 0; background: none; padding: 10px 18px; font-weight: 700; font-size: 14.5px; cursor: pointer; color: var(--ink-2, #3C4566); min-height: 44px; }
.flo-ov-tabs button.is-on { background: var(--flo-cobalto, #1B2A6B); color: #fff; }
.flo-ov-filtros { display: grid; gap: 8px; margin: 0 0 12px; }
.flo-ov-filtros .flo-pl-buscar select { height: 44px; padding: 0 10px; border: 1.5px solid var(--line); border-radius: 12px; background: #fff; }
.flo-ov-kpis { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 12px; }
.flo-ov-kpis .is-warn b { color: #B0124A; }
.flo-ov-wtab td small { display: block; font-size: 12px; color: var(--ink-3); }
.flo-ov-cobrar { background: #FFF1E3; color: #9A4A00; }
.flo-ov-wpago td { background: #FBFCFF; }
@media (max-width: 700px) {
	.flo-ov-tabs { display: flex; } .flo-ov-tabs button { flex: 1; }
	.flo-ov-wtab table, .flo-ov-wtab tbody, .flo-ov-wtab tr, .flo-ov-wtab td { display: block; width: auto; }
	.flo-ov-wtab thead { display: none; }
	.flo-ov-wtab tr { padding: 10px 0; border-bottom: 1px solid var(--line); }
	.flo-ov-wtab td { border: 0; padding: 3px 0; }
	.flo-ov-wtab td.flo-eq-acts { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
}
@media (min-width: 701px) {
	.flo-ov-wtab td:first-child b, .flo-ov-wtab td:nth-last-child(3) b { white-space: nowrap; }
	.flo-ov-wtab td:first-child { min-width: 110px; }
	.flo-ov-wtab td:nth-child(2) { min-width: 220px; }
}
.flo-ov-wtab td.flo-eq-acts { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
/* 4.0.0 · Precios de venta por proveedor */
.flo-pv-provs { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.flo-pv-prov { display: grid; gap: 10px; align-content: start; padding: 14px 16px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.flo-pv-prov header { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.flo-pv-prov h3 { margin: 0; font-size: 17px; }
.flo-pv-prov ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.flo-pv-prov li { padding: 8px 10px; border-radius: 10px; background: #F5F7FC; }
.flo-pv-prov li.is-off { opacity: .55; }
.flo-pv-prov li b { display: block; font-size: 13px; word-break: break-word; }
.flo-pv-prov li small { display: block; font-size: 12px; color: var(--ink-3); }
.flo-pv-prov .flo-btn { justify-self: start; }
.flo-pv-bulk { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; padding: 10px 12px; margin: 0 0 10px; border-radius: 12px; background: #F5F7FC; border: 1px solid var(--line); }
.flo-pv-bulk select, .flo-pv-bulk input[data-pv-val] { height: 40px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font-size: 14px; }
.flo-pv-bulk input[data-pv-val] { width: 100px; }
.flo-pv-all { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 13.5px; }
.flo-pv-all input { width: 18px; height: 18px; }
.flo-pv-n { font-size: 13px; color: var(--ink-3); }
.flo-pv-tab td small { display: block; font-size: 12px; color: var(--ink-3); }
.flo-pv-tab td small.is-no { color: #C62828; font-weight: 700; }
.flo-pv-tab tr.is-err td { background: #FFF1F1; }
.flo-pv-tab tr.is-sel:not(.is-err) td { background: #F4F0FF; }
.flo-pv-tab b.is-low { color: #B0124A; }
.flo-pv-tab input[type="checkbox"] { width: 18px; height: 18px; }
.flo-pv-tab .flo-ov-pv { width: 110px; padding: 8px; border: 1px solid var(--line); border-radius: 8px; font-size: 15px; font-weight: 700; }
@media (max-width: 700px) {
	.flo-pv-tab table, .flo-pv-tab tbody, .flo-pv-tab tr, .flo-pv-tab td { display: block; width: auto; }
	.flo-pv-tab thead { display: none; }
	.flo-pv-tab tr { position: relative; padding: 10px 0 10px 34px; border-bottom: 1px solid var(--line); }
	.flo-pv-tab td { border: 0; padding: 3px 0; }
	.flo-pv-tab td:first-child { position: absolute; left: 4px; top: 12px; }
	.flo-pv-tab td[data-th]:not(:nth-child(2)) { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
	.flo-pv-tab td[data-th]:not(:nth-child(2))::before { content: attr(data-th); font-size: 12px; color: var(--ink-3); }
	.flo-pv-bulk select, .flo-pv-bulk input[data-pv-val] { flex: 1 1 140px; }
}
.flo-pv-tab td small.is-falta { color: #B26A00; font-weight: 700; }
.flo-pv-tab tr.is-falta td { background: #FFF8EC; }

/* 4.0.1: buscador del panel siempre visible (menú + botón «Buscar» en la cabecera + ventana) */
.flo-eq-top-acc { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.flo-eq-qbtn .flo-ico { width: 18px; height: 18px; }
.flo-app .flo-eq-navq { display: block !important; visibility: visible !important; }
.flo-app .flo-eq-navq .flo-search { display: flex !important; }
.flo-app .flo-eq-navq input[data-eq-navq] { display: block !important; width: 100%; -webkit-appearance: none; appearance: none; }
.flo-eq-navq.is-pulso .flo-search { border-color: var(--flo-violeta, #6C3CE1); box-shadow: 0 0 0 4px color-mix(in srgb, var(--flo-violeta, #6C3CE1) 22%, transparent); }
.flo-eq-qmodal { position: fixed; inset: 0; z-index: 100000; background: rgba(15, 20, 45, .45); display: flex; align-items: flex-start; justify-content: center; padding: 12vh 16px 16px; box-sizing: border-box; }
.flo-eq-qmodal[hidden] { display: none !important; }
.flo-eq-qcaja { width: 100%; max-width: 620px; background: #fff; border-radius: 18px; padding: 16px; box-shadow: 0 24px 60px rgba(0, 0, 0, .25); }
.flo-app .flo-eq-navq--modal { margin: 0; }
.flo-eq-navq--modal .flo-eq-navres { position: static; box-shadow: none; border: 0; padding: 6px 0 0; max-height: 55vh; overflow: auto; }
.flo-eq-qayuda { margin: 10px 2px 0; font-size: 12.5px; color: var(--ink-3); }
html.flo-eq-qon { overflow: hidden; }
@media (max-width: 600px) { .flo-eq-qbtn span { display: none; } .flo-eq-qmodal { padding-top: 70px; } }
.flo-app .flo-eq-navq input[data-eq-navq], .flo-app .flo-eq-navq input[data-eq-navq]:focus, .flo-app .flo-eq-navq input[data-eq-navq]:focus-visible { border: 0 !important; outline: 0 !important; box-shadow: none !important; background: transparent !important; min-height: 0 !important; }
