/* Lumifix Studio UI: ventanas propias (reemplazan alert/confirm/prompt) + reservas + carrito */
.ux-ov{--a:#f0b43c;--on:#111;--ink:#0f172a;--mut:#64748b;--ln:#e6e9f0;position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:18px;background:rgba(10,14,28,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:uxf .2s both;color:var(--ink);line-height:1.45;overflow-y:auto}
.ux-ov,.ux-ov *{box-sizing:border-box}.ux-ov *{margin:0}
@keyframes uxf{from{opacity:0}to{opacity:1}}@keyframes uxp{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}@keyframes uxk{0%{transform:scale(0)}60%{transform:scale(1.15)}100%{transform:scale(1)}}
.ux-card{position:relative;width:min(440px,100%);max-height:calc(100dvh - 36px);overflow-y:auto;background:#fff;border-radius:26px;padding:30px 28px 24px;box-shadow:0 40px 100px rgba(10,14,28,.45);animation:uxp .32s cubic-bezier(.2,.8,.2,1) both;text-align:center}
.ux-card.wide{width:min(560px,100%);text-align:left;padding:0}
.ux-ic{width:68px;height:68px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;background:color-mix(in srgb,var(--c,var(--a)) 16%,#fff);color:var(--c,var(--a));animation:uxk .45s .08s both}.ux-ic svg{width:32px;height:32px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ux-ic.ok{--c:#10b981}.ux-ic.er{--c:#ef4444}.ux-ic.wn{--c:#f59e0b}.ux-ic.in{--c:#6366f1}
.ux-t{font-size:20px;font-weight:800;letter-spacing:-.01em;margin-bottom:6px}.ux-m{color:var(--mut);font-size:14.5px;white-space:pre-line;margin-bottom:22px}
.ux-row{display:flex;gap:10px;justify-content:center}.ux-row .ux-b{flex:1}
.ux-ov button.ux-b{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;border-radius:14px;font:700 14px/1 inherit;font-family:inherit;cursor:pointer;background:var(--a);color:var(--on);box-shadow:0 8px 20px color-mix(in srgb,var(--a) 40%,transparent);transition:transform .15s,box-shadow .15s,filter .15s;text-align:center;user-select:none}
.ux-ov button.ux-b:hover{transform:translateY(-2px);filter:brightness(1.05)}.ux-ov button.ux-b:active{transform:none}.ux-ov button.ux-b:focus-visible{outline:3px solid color-mix(in srgb,var(--a) 50%,transparent);outline-offset:2px}
.ux-ov button.ux-b.g{background:#f1f3f8;color:#334155;box-shadow:none}.ux-ov button.ux-b.g:hover{background:#e7eaf2}
.ux-ov button.ux-b.d{background:#ef4444;color:#fff;box-shadow:0 8px 20px rgba(239,68,68,.35)}
.ux-ov button.ux-b[disabled]{opacity:.65;pointer-events:none}
.ux-ov input.ux-in,.ux-ov select.ux-in,.ux-ov textarea.ux-in{display:block;width:100%;margin:0;padding:13px 15px;border:1.5px solid var(--ln);border-radius:14px;background:#f8f9fc;color:var(--ink);font-family:inherit;font-weight:500;font-size:15px;line-height:1.3;outline:0;box-shadow:none;transition:.15s;-webkit-appearance:none;appearance:none}
.ux-ov textarea.ux-in{resize:none;min-height:76px}.ux-ov .ux-in:focus{border-color:var(--a);background:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--a) 22%,transparent)}.ux-ov .ux-in.bad{border-color:#ef4444;background:#fff5f5}
.ux-ov .ux-pi{margin-bottom:18px;text-align:left}
/* reserva / carrito */
.ux-hd{padding:26px 28px 18px;background:linear-gradient(135deg,color-mix(in srgb,var(--a) 20%,#fff),#fff 70%);border-radius:26px 26px 0 0;position:relative}
.ux-hd .ux-t{font-size:24px;margin:2px 0 4px}.ux-hd p{color:var(--mut);font-size:14px}
.ux-x{position:absolute;top:16px;right:16px}.ux-ov button.ux-xb{all:unset;box-sizing:border-box;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:#fff;color:#475569;box-shadow:0 4px 14px rgba(15,23,42,.14);font-size:16px;transition:.15s}.ux-ov button.ux-xb:hover{background:#f1f3f8;transform:rotate(90deg)}
.ux-bd{padding:6px 28px 26px}.ux-lb{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#475569;margin:16px 0 8px}
.ux-pks{display:grid;gap:10px}.ux-pk{position:relative;display:flex;align-items:center;gap:12px;padding:13px 15px;border:1.5px solid var(--ln);border-radius:16px;cursor:pointer;transition:.18s;background:#fff}.ux-pk:hover{border-color:color-mix(in srgb,var(--a) 60%,#fff)}
.ux-pk input{position:absolute;opacity:0;pointer-events:none}.ux-pk .r{width:22px;height:22px;border-radius:50%;border:2px solid #cbd2e0;flex:none;display:grid;place-items:center;transition:.18s}.ux-pk .r:after{content:'';width:10px;height:10px;border-radius:50%;background:var(--on);transform:scale(0);transition:.18s}
.ux-pk b{display:block;font-size:15px}.ux-pk small{display:block;color:var(--mut);font-size:12.5px}.ux-pk .p{margin-left:auto;font-weight:800;font-size:15px;white-space:nowrap}
.ux-pk.on{border-color:var(--a);background:color-mix(in srgb,var(--a) 10%,#fff);box-shadow:0 8px 22px color-mix(in srgb,var(--a) 22%,transparent)}.ux-pk.on .r{background:var(--a);border-color:var(--a)}.ux-pk.on .r:after{transform:scale(1)}
.ux-g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ux-f{display:block}.ux-f>span{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#475569;margin:14px 0 7px}.ux-f em{font-style:normal;text-transform:none;letter-spacing:0;color:#94a3b8;font-weight:500}
.ux-err{color:#dc2626;font-size:12.5px;font-weight:600;margin-top:5px;min-height:0}.ux-ban{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;padding:11px 14px;border-radius:12px;font-size:13.5px;font-weight:600;margin-top:16px}
.ux-ft{display:flex;gap:10px;margin-top:22px}.ux-ft .ux-b:first-child{flex:1.6}.ux-ft .ux-b.g{flex:1}
.ux-ok{padding:44px 30px 30px;text-align:center}.ux-sum{margin:6px 0 22px;background:#f8f9fc;border-radius:16px;padding:14px 16px;text-align:left;font-size:14px}.ux-sum div{display:flex;justify-content:space-between;gap:12px;padding:5px 0}.ux-sum span{color:var(--mut)}.ux-sum b{text-align:right}
.ux-li{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--ln)}.ux-li img{width:54px;height:54px;border-radius:12px;object-fit:cover;background:#f1f3f8;flex:none}.ux-li .n{flex:1;min-width:0}.ux-li b{display:block;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ux-li small{color:var(--mut)}
.ux-q{display:flex;align-items:center;gap:2px;background:#f1f3f8;border-radius:99px;padding:3px}.ux-ov button.ux-qb{all:unset;box-sizing:border-box;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;cursor:pointer;font-weight:800;font-size:16px;color:#334155}.ux-ov button.ux-qb:hover{background:#fff}.ux-q span{min-width:20px;text-align:center;font-weight:700;font-size:14px}
.ux-li .pr{font-weight:800;font-size:14px;min-width:70px;text-align:right}.ux-ov button.ux-rm{all:unset;cursor:pointer;color:#cbd2e0;font-size:16px;padding:4px}.ux-ov button.ux-rm:hover{color:#ef4444}
.ux-tot{display:flex;justify-content:space-between;font-size:18px;font-weight:800;padding:16px 0 4px}.ux-emp{text-align:center;padding:30px 0 6px;color:var(--mut)}.ux-emp .ux-ic{--c:#94a3b8}
/* toast */
.ux-ts{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);z-index:10000;display:grid;gap:10px;pointer-events:none;width:max-content;max-width:92vw}.ux-to{display:flex;gap:10px;align-items:center;background:#0f172a;color:#fff;padding:13px 20px;border-radius:99px;font:600 14px/1.3 inherit;font-family:inherit;box-shadow:0 14px 36px rgba(0,0,0,.35);animation:uxp .3s both}.ux-to i{font-style:normal;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#10b981;font-size:12px}.ux-to.er i{background:#ef4444}
@media(max-width:520px){.ux-card{padding:26px 20px 20px;border-radius:22px}.ux-hd{padding:22px 20px 14px}.ux-bd{padding:4px 20px 22px}.ux-g2{grid-template-columns:1fr}.ux-row{flex-direction:column-reverse}.ux-ov{align-items:end;padding:10px}}
@media(prefers-reduced-motion:reduce){.ux-ov,.ux-card,.ux-ic,.ux-to{animation:none!important}}
.ux-hd .ux-ic{margin:0 0 12px;width:50px;height:50px;animation:none}.ux-hd .ux-ic svg{width:24px;height:24px}

/* Producto a pantalla completa (fondo blanco, fotos limpias) */
.ux-ov.ux-full{background:#fff;padding:0;place-items:stretch;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:hidden}
.ux-card.prod{width:100%;max-height:none;height:100dvh;border-radius:0;box-shadow:none;padding:0;text-align:left;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(340px,.6fr);animation:uxf .3s both;overflow:hidden}
.uxp-x{position:absolute;top:18px;right:18px;z-index:5}
.uxp-l{display:flex;flex-direction:column;min-height:0;background:#fff}
.uxp-st{position:relative;flex:1;min-height:0;display:grid;place-items:center;padding:34px 70px 10px;background:#fff}
.uxp-img{max-width:100%;max-height:100%;object-fit:contain;border-radius:18px;display:block;background:#fff;user-select:none;-webkit-user-drag:none}.uxp-img.in{animation:uxi .35s both}@keyframes uxi{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
.uxp-n{all:unset;box-sizing:border-box;position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;background:#fff;border:1px solid var(--ln);box-shadow:0 8px 24px rgba(15,23,42,.14);display:grid;place-items:center;font-size:30px;line-height:1;color:#0f172a;cursor:pointer;transition:.2s}.uxp-n:hover{background:var(--a);color:var(--on);border-color:var(--a)}.uxp-n.l{left:14px}.uxp-n.r{right:14px}
.uxp-c{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:#0f172acc;color:#fff;font-size:12px;font-weight:700;padding:5px 14px;border-radius:99px}
.uxp-t video{width:100%;height:100%;object-fit:cover;display:block}.uxp-img[hidden],.uxp-vid[hidden]{display:none}.uxp-vid{background:#000}
.uxp-th{display:flex;gap:10px;overflow-x:auto;padding:12px 28px 24px;justify-content:center;scrollbar-width:thin}
.uxp-t{all:unset;box-sizing:border-box;flex:none;width:74px;height:74px;border-radius:14px;overflow:hidden;cursor:pointer;border:2px solid transparent;opacity:.6;transition:.2s;background:#f1f3f8}.uxp-t img{width:100%;height:100%;object-fit:cover;display:block}.uxp-t:hover{opacity:1}.uxp-t.on{border-color:var(--a);opacity:1;box-shadow:0 6px 16px rgba(15,23,42,.18)}
.uxp-i{padding:64px 44px 36px;overflow-y:auto;border-left:1px solid var(--ln);display:flex;flex-direction:column;gap:6px;background:#fff}
.uxp-eb{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--a) 62%,#1a1030)}
.uxp-i h2{font-size:clamp(28px,3.2vw,40px);font-weight:800;letter-spacing:-.02em;line-height:1.1;margin:4px 0}.uxp-pr{font-size:32px;font-weight:800;margin:6px 0 10px}.uxp-d{color:#475569;font-size:16px;line-height:1.65;margin-bottom:8px}
.uxp-s{align-self:flex-start;font-size:12.5px;font-weight:700;color:#b45309;background:#fef3c7;border-radius:99px;padding:5px 14px;margin-bottom:6px}
.uxp-bar{display:flex;gap:12px;align-items:center;margin-top:22px}.uxp-bar .ux-b{flex:1;min-height:54px;font-size:15px}.uxp-q{padding:5px}.uxp-q .ux-qb{width:36px;height:36px;font-size:20px}.uxp-q span{min-width:26px;font-size:16px}.uxp-back{margin-top:12px;min-height:50px}
@media(max-width:900px){.ux-card.prod{display:block;overflow-y:auto}.uxp-st{aspect-ratio:1/1;flex:none;padding:56px 14px 6px}.uxp-n{width:42px;height:42px;font-size:26px}.uxp-th{justify-content:flex-start;padding:10px 16px 14px}.uxp-i{border-left:0;padding:10px 20px 40px;overflow:visible}.uxp-bar{position:sticky;bottom:0;background:#fff;padding:12px 0;margin:18px 0 0;border-top:1px solid var(--ln)}.uxp-x{top:12px;right:12px}}
.uxp-img{max-height:calc(100dvh - 200px)}
@media(max-width:900px){.uxp-st{display:flex;align-items:center;justify-content:center}.uxp-img{max-height:100%;max-width:100%}}

/* v9: 16px evita el zoom automático de iOS al enfocar un campo */
@media(max-width:520px){.ux-ov input.ux-in,.ux-ov select.ux-in,.ux-ov textarea.ux-in{font-size:16px}}
