:root{--iris-50:#f3f1ff;--iris-100:#e7e3ff;--iris-200:#cfc6ff;--iris-300:#b0a2ff;--iris-400:#8e79fb;--iris-500:#6e56f0;--iris-600:#5a40dc;--iris-700:#4832b4;--iris-800:#38288c;--iris-900:#2a1f6b;--coral-400:#ff8a6b;--coral-500:#ff6b4a;--gold-400:#ffc24b;--gold-500:#f5a623;--success:#2fbf71;--success-bg:#e3f8ed;--warning:#f5a623;--warning-bg:#fef3e0;--error:#ff4d4a;--error-bg:#fde7e7;--info:#3b9eff;--info-bg:#e6f2ff;--font-text:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Helvetica Neue", Arial, sans-serif;--font-display:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter", "Helvetica Neue", Arial, sans-serif;--sp-1:2px;--sp-2:4px;--sp-3:8px;--sp-4:12px;--sp-5:16px;--sp-6:20px;--sp-7:24px;--sp-8:32px;--sp-9:40px;--sp-10:48px;--sp-11:64px;--r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-2xl:28px;--r-full:999px;--sh-xs:0 1px 2px #1414280a;--sh-sm:0 2px 8px #1414280f;--sh-md:0 8px 24px #14142814;--sh-lg:0 16px 40px #1414281f;--sh-focus:0 0 0 4px #6e56f040;--d-fast:.15s;--d-base:.25s;--d-slow:.35s;--d-sheet:.42s;--e-standard:cubic-bezier(.4, 0, .2, 1);--e-spring:cubic-bezier(.32, .72, 0, 1);--accent-solid:#6e56f0;--accent-solid-pressed:#5a40dc}:root,[data-theme=light]{--bg:#fff;--bg-grouped:#f5f5f8;--surface:#fff;--surface-2:#f0f0f5;--surface-elevated:#fff;--fill:#ededf2;--separator:#e4e4ec;--text:#15151e;--text-secondary:#5b5b6b;--text-tertiary:#9494a4;--accent:#6e56f0;--accent-pressed:#5a40dc;--text-on-accent:#fff}[data-theme=dark]{--bg:#0d0d12;--bg-grouped:#08080b;--surface:#17171f;--surface-2:#20202b;--surface-elevated:#1d1d27;--fill:#2a2a36;--separator:#2c2c38;--text:#f5f5f7;--text-secondary:#a6a6b6;--text-tertiary:#6e6e7e;--accent:#9c86ff;--accent-pressed:#8e79fb;--text-on-accent:#fff;--sh-xs:0 1px 2px #0000004d;--sh-sm:0 2px 8px #0006;--sh-md:0 8px 24px #00000080;--sh-lg:0 16px 40px #0009}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#0d0d12;--bg-grouped:#08080b;--surface:#17171f;--surface-2:#20202b;--surface-elevated:#1d1d27;--fill:#2a2a36;--separator:#2c2c38;--text:#f5f5f7;--text-secondary:#a6a6b6;--text-tertiary:#6e6e7e;--accent:#9c86ff;--accent-pressed:#8e79fb}}[data-biz-theme]{--hero-from:var(--iris-700);--hero-to:var(--iris-500);--hero-accent:var(--iris-200);--hero-text:#fff}[data-biz-theme=barberia]{--hero-from:#2b2118;--hero-to:#5c4029;--hero-accent:#e0a875;--hero-text:#fdf6ef}[data-biz-theme=peluqueria]{--hero-from:#4a1f3d;--hero-to:#8d3f6d;--hero-accent:#f2b8d8;--hero-text:#fdf2f8}[data-biz-theme=spa]{--hero-from:#0f4c45;--hero-to:#2b8a72;--hero-accent:#a7e0cd;--hero-text:#f0fbf7}[data-biz-theme=unas]{--hero-from:#5a1e46;--hero-to:#b04a7d;--hero-accent:#ffc9e0;--hero-text:#fff5fa}[data-biz-theme=estetica]{--hero-from:#3d2a52;--hero-to:#7a5a9e;--hero-accent:#d9c4f0;--hero-text:#f9f5ff}[data-biz-theme=odontologia]{--hero-from:#0d3a63;--hero-to:#2b7ac0;--hero-accent:#b8dbf7;--hero-text:#f2f9ff}[data-biz-theme=tatuajes]{--hero-from:#16161c;--hero-to:#3a3a48;--hero-accent:#c8c8d8;--hero-text:#f5f5f7}[data-biz-theme=mascotas]{--hero-from:#7a4a12;--hero-to:#c98b2e;--hero-accent:#ffdca8;--hero-text:#fffaf0}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-text);background:var(--bg-grouped);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.4}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em}a{color:var(--accent);text-decoration:none}button{font-family:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-shell{background:var(--bg);flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}.s-body{flex:1}.s-pad{padding:0 18px}.nav-lg{padding:20px 18px 10px}.nav-lg h1{letter-spacing:-.02em;font-size:30px;font-weight:700}.nav-in{border-bottom:1px solid var(--separator);background:var(--bg);z-index:10;justify-content:space-between;align-items:center;padding:14px 16px;display:flex;position:sticky;top:0}.nav-in .t{font-size:16px;font-weight:600}.nav-in .back{color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;min-height:44px;font-size:16px;font-weight:600;display:inline-flex}.section-t{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:16px 0 10px;font-size:13px;font-weight:700}.btn{font-family:var(--font-text);border-radius:var(--r-full);cursor:pointer;transition:transform var(--d-fast) var(--e-spring), background var(--d-fast), opacity .2s;letter-spacing:-.01em;border:none;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:13px 22px;font-size:16px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.96)}.btn-primary{background:var(--accent-solid);color:#fff;box-shadow:0 6px 18px #6e56f04d}.btn-primary:hover{background:var(--accent-solid-pressed)}.btn-secondary{background:var(--fill);color:var(--text)}.btn-ghost{color:var(--accent);background:0 0}.btn-destructive{background:var(--error);color:#fff}.btn-sm{min-height:38px;padding:9px 16px;font-size:14px}.btn-lg{width:100%;padding:16px 26px;font-size:17px}.btn-icon{border-radius:var(--r-full);background:var(--fill);width:44px;height:44px;color:var(--text);padding:0}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.p-btn{background:var(--accent-solid);color:#fff;border-radius:var(--r-md);width:100%;font-size:16px;font-weight:600;font-family:var(--font-text);cursor:pointer;border:none;min-height:44px;padding:15px;box-shadow:0 6px 16px #6e56f047}.p-btn:disabled{opacity:.45;cursor:not-allowed}.field{margin-bottom:14px}.field label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.input{width:100%;font-family:var(--font-text);color:var(--text);background:var(--surface-2);border-radius:var(--r-md);border:1.5px solid #0000;outline:none;min-height:44px;padding:13px 14px;font-size:16px;transition:all .2s}.input::placeholder{color:var(--text-tertiary)}.input:focus{border-color:var(--accent);background:var(--surface);box-shadow:var(--sh-focus)}.input.error{border-color:var(--error);background:var(--error-bg)}[data-theme=dark] .input.error{background:#ff4d4a1f}.hint{color:var(--text-tertiary);margin-top:6px;font-size:12px}.hint.err{color:var(--error)}.input-icon{position:relative}.input-icon .input{padding-left:42px}.input-icon svg{color:var(--text-tertiary);position:absolute;top:50%;left:13px;transform:translateY(-50%)}.switch{border-radius:var(--r-full);background:var(--fill);cursor:pointer;border:none;flex-shrink:0;width:51px;height:31px;padding:0;transition:all .25s;position:relative}.switch.on{background:var(--success)}.switch:after{content:"";width:27px;height:27px;transition:.25s var(--e-spring);box-shadow:var(--sh-sm);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.switch.on:after{left:22px}.chip{border-radius:var(--r-full);background:var(--fill);color:var(--text);cursor:pointer;border:none;align-items:center;gap:6px;min-height:32px;padding:7px 13px;font-size:13px;font-weight:600;display:inline-flex}.chip.active{background:var(--accent-solid);color:#fff}.badge{border-radius:var(--r-full);align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.badge.success{background:var(--success-bg);color:#1a8b4e}.badge.warn{background:var(--warning-bg);color:#b5760a}.badge.err{background:var(--error-bg);color:#c4322f}[data-theme=dark] .badge.success{color:#5fe0a0;background:#2fbf7129}[data-theme=dark] .badge.warn{color:#ffca6b;background:#f5a62329}[data-theme=dark] .badge.err{color:#ff8785;background:#ff4d4a29}.avatar{background:linear-gradient(135deg, var(--iris-400), var(--iris-600));color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;font-weight:700;display:grid}.avatar-lg{background:linear-gradient(135deg, var(--iris-400), var(--iris-600));color:#fff;border-radius:50%;place-items:center;width:76px;height:76px;margin:0 auto;font-size:28px;font-weight:700;display:grid}.stars{color:var(--gold-500);letter-spacing:2px;font-size:14px}.card{background:var(--surface);border:1px solid var(--separator);border-radius:var(--r-xl);box-shadow:var(--sh-xs);padding:16px}.muted{color:var(--text-secondary);font-size:13px}.list{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--separator);overflow:hidden}.row{border-bottom:1px solid var(--separator);text-align:left;cursor:default;width:100%;min-height:44px;color:inherit;font:inherit;background:0 0;border-top:none;border-left:none;border-right:none;align-items:center;gap:12px;padding:13px 16px;transition:all .15s;display:flex}a.row,button.row{cursor:pointer}.row:last-child{border-bottom:none}.row:hover{background:var(--fill)}.row .ico{color:#fff;border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.row .grow{flex:1;min-width:0}.row .grow b{font-size:15px;font-weight:600;display:block}.row .grow small{color:var(--text-secondary);font-size:12px}.row .chev{color:var(--text-tertiary)}.segmented{background:var(--fill);border-radius:var(--r-md);gap:2px;padding:3px;display:flex}.segmented button{font-family:var(--font-text);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;min-height:38px;padding:8px;font-size:14px;font-weight:600;transition:all .2s}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:var(--sh-sm)}.toast{background:var(--surface-elevated);border:1px solid var(--separator);border-radius:var(--r-lg);box-shadow:var(--sh-lg);align-items:center;gap:12px;max-width:360px;padding:14px 16px;display:flex}.toast .dot{border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.banner{border-radius:var(--r-md);align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;display:flex}.banner.info{background:var(--info-bg);color:#1f6fc4}.banner.err{background:var(--error-bg);color:#c4322f}[data-theme=dark] .banner.info{color:#77bcff;background:#3b9eff24}[data-theme=dark] .banner.err{color:#ff8785;background:#ff4d4a24}.skel{background:linear-gradient(90deg, var(--fill) 25%, var(--surface-2) 37%, var(--fill) 63%);background-size:400% 100%;border-radius:8px;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.spinner{border:3px solid var(--fill);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;color:var(--text-secondary);padding:26px 16px}.empty .em-ic{background:var(--fill);width:64px;height:64px;color:var(--text-tertiary);border-radius:20px;place-items:center;margin:0 auto 14px;display:grid}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:200;opacity:0;pointer-events:none;transition:opacity var(--d-base);background:#0a0a1473;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.overlay.show{opacity:1;pointer-events:auto}.modal{background:var(--surface-elevated);border-radius:var(--r-2xl);text-align:center;width:100%;max-width:340px;box-shadow:var(--sh-lg);transition:transform var(--d-base) var(--e-spring);padding:26px;transform:scale(.92)}.overlay.show .modal{transform:scale(1)}.sheet-overlay{z-index:200;opacity:0;pointer-events:none;transition:opacity var(--d-base);background:#0a0a1473;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-overlay.show{opacity:1;pointer-events:auto}.sheet{background:var(--surface-elevated);border-radius:var(--r-2xl) var(--r-2xl) 0 0;width:100%;max-width:560px;box-shadow:var(--sh-lg);transition:transform var(--d-sheet) var(--e-spring);padding:10px 20px 28px;transform:translateY(100%)}.sheet-overlay.show .sheet{transform:translateY(0)}.grabber{background:var(--separator);border-radius:3px;width:38px;height:5px;margin:0 auto 16px}.tabbar{padding:10px 0 max(4px, env(safe-area-inset-bottom));border-top:1px solid var(--separator);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-shrink:0;justify-content:space-around;align-items:center;display:flex;position:sticky;bottom:0}.tabbar .tab{color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:44px;min-height:44px;font-size:10px;font-weight:600;display:flex}.tabbar .tab.on{color:var(--accent)}.cat-scroll{gap:10px;padding:6px 18px 10px;display:flex;overflow-x:auto}.cat{cursor:pointer;background:0 0;border:none;flex-direction:column;flex-shrink:0;align-items:center;gap:7px;width:74px;display:flex}.cat .cir{background:var(--surface-2);width:60px;height:60px;color:var(--accent);border:1px solid var(--separator);border-radius:20px;place-items:center;display:grid}.cat.on .cir{background:var(--accent-solid);color:#fff;border-color:#0000;box-shadow:0 6px 16px #6e56f04d}.cat small{text-align:center;color:var(--text-secondary);font-size:11px;font-weight:600}.cat.on small{color:var(--text)}.portfolio-scroll{gap:8px;padding:10px 0;display:flex;overflow-x:auto}.portfolio-photo{object-fit:cover;border-radius:var(--r-md);flex-shrink:0;width:140px;height:100px}.video-card{aspect-ratio:16/9;border-radius:var(--r-lg);background:linear-gradient(135deg, var(--iris-100), var(--iris-200));cursor:pointer;width:100%;box-shadow:var(--sh-xs);border:none;margin-bottom:10px;padding:0;position:relative;overflow:hidden}[data-theme=dark] .video-card{background:linear-gradient(135deg,#9c86ff33,#5a40dc47)}.video-card .play-btn{color:var(--iris-600);place-items:center;display:grid;position:absolute;inset:0}.video-card .play-btn span{background:var(--surface);width:56px;height:56px;box-shadow:var(--sh-sm);border-radius:50%;place-items:center;display:grid}.video-embed{aspect-ratio:16/9;border-radius:var(--r-lg);border:0;width:100%;margin-bottom:10px}.biz-hero{text-align:center;color:var(--hero-text);background:linear-gradient(160deg, var(--hero-from), var(--hero-to));background-position:50%;background-size:cover;margin:0 -16px 8px;padding:28px 16px 20px;position:relative}.biz-hero.has-cover:after{content:"";background:linear-gradient(#00000040,#0009);position:absolute;inset:0}.biz-hero>*{z-index:1;position:relative}.biz-hero h1{color:var(--hero-text);font-size:22px;font-weight:700}.biz-hero .biz-hero-meta{color:var(--hero-accent);font-size:12px}.svc{background:var(--surface);border:1px solid var(--separator);border-radius:var(--r-lg);box-shadow:var(--sh-xs);text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;align-items:center;gap:12px;margin-bottom:10px;padding:14px;display:flex}.svc .thumb{border-radius:var(--r-md);background:linear-gradient(135deg, var(--iris-100), var(--iris-200));width:64px;height:64px;color:var(--iris-600);flex-shrink:0;place-items:center;display:grid;overflow:hidden}.svc .thumb img{object-fit:cover;width:100%;height:100%}[data-theme=dark] .svc .thumb{background:linear-gradient(135deg,#9c86ff33,#5a40dc47)}.svc .grow{flex:1;min-width:0}.svc .grow b{font-size:15px;display:block}.svc .grow small{color:var(--text-secondary);font-size:12px}.svc .price{color:var(--accent);font-size:15px;font-weight:700}.daypick{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.day{text-align:center;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--separator);cursor:pointer;width:56px;color:inherit;font:inherit;flex-shrink:0;padding:10px 0}.day.on{background:var(--accent-solid);color:#fff;border-color:#0000}.day small{opacity:.8;font-size:11px;display:block}.day b{font-size:18px}.slot{border-radius:var(--r-md);border:1.5px solid var(--separator);background:var(--surface);color:var(--text);cursor:pointer;justify-content:center;align-items:center;min-height:44px;padding:11px 0;font-size:14px;font-weight:600;display:inline-flex}.slot.on{border-color:var(--accent);background:var(--iris-50);color:var(--accent)}[data-theme=dark] .slot.on{background:#9c86ff24}.slot:disabled{opacity:.4;cursor:not-allowed}.dots{justify-content:center;gap:7px;display:flex}.dots i{background:var(--separator);border-radius:50%;width:7px;height:7px;display:block}.dots i.on{background:var(--accent);border-radius:4px;width:22px}.grid-3{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.admin-shell{background:var(--bg-grouped);min-height:100dvh;display:flex}.admin-sidebar{background:var(--surface);border-right:1px solid var(--separator);width:220px;padding:var(--sp-6) var(--sp-4);gap:var(--sp-2);flex-direction:column;flex-shrink:0;display:flex}.admin-sidebar .brand{font-family:var(--font-display);padding:0 var(--sp-3) var(--sp-6);color:var(--text);font-size:18px;font-weight:700}.admin-nav-link{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);color:var(--text-secondary);transition:background var(--d-fast) var(--e-standard);font-size:14px;font-weight:600;text-decoration:none;display:flex}.admin-nav-link:hover{background:var(--fill)}.admin-nav-link.active{background:var(--accent);color:var(--text-on-accent)}.admin-nav-link.disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.admin-main{flex-direction:column;flex:1;min-width:0;display:flex}.admin-topbar{padding:var(--sp-5) var(--sp-7);border-bottom:1px solid var(--separator);background:var(--surface);justify-content:space-between;align-items:center;display:flex}.admin-topbar h1{margin:0;font-size:18px;font-weight:700}.admin-content{padding:var(--sp-7);box-sizing:border-box;flex:1;width:100%;max-width:1040px;margin:0 auto}.admin-toolbar{justify-content:space-between;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap;display:flex}.admin-grid{gap:var(--sp-5);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{background:var(--surface);border:1px solid var(--separator);border-radius:var(--r-lg);padding:var(--sp-6);box-shadow:var(--sh-xs)}.stat-card .stat-label{color:var(--text-secondary);margin-bottom:var(--sp-2);font-size:13px}.stat-card .stat-value{color:var(--text);font-size:28px;font-weight:700;font-family:var(--font-display)}@media (max-width:860px){.admin-shell{flex-direction:column}.admin-sidebar{border-right:none;border-bottom:1px solid var(--separator);width:100%;padding:var(--sp-3) var(--sp-4);flex-direction:row;overflow-x:auto}.admin-sidebar .brand{display:none}.admin-content{padding:var(--sp-5)}}