*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{
  --ink:#0E2230;--ink2:#0A1A25;--panel:#132a38;--panel2:#1b3846;
  --brass:#C0894A;--brass2:#D8A566;--sail:#EDE7DA;--foam:#CBDCD9;--sea:#7FA8AE;
  --green:#4FB477;--line:rgba(237,231,218,.14);--red:#E2725B;
  --serif:'Instrument Serif',Georgia,serif;--body:'Inter',system-ui,sans-serif;--mono:'Space Mono',monospace;
}
html,body{height:100%;font-family:var(--body);color:var(--sail);background:var(--ink2);overflow:hidden}
.serif{font-family:var(--serif)}.mono{font-family:var(--mono)}
img{display:block;width:100%;height:100%;object-fit:cover}
button,input,select,textarea{font-family:inherit}
input,select,textarea{outline:none}

/* switcher */
#switcher{position:fixed;top:calc(env(safe-area-inset-top,0) + 10px);left:50%;transform:translateX(-50%);z-index:900;background:rgba(10,26,37,.82);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:30px;padding:4px;display:flex;gap:4px}
.sw{padding:7px 16px;border-radius:24px;border:0;font-size:12px;font-weight:600;cursor:pointer;color:var(--foam);background:transparent;transition:.2s}
.sw.on{background:var(--brass);color:#231405}

.page{position:fixed;inset:0}
.page.off{display:none}

/* ============ CLIENTE ============ */
#pClient{background:#000}
#catalog{height:100dvh;overflow-y:scroll;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch}
.slide{position:relative;height:100dvh;width:100%;scroll-snap-align:start;overflow:hidden}
.slide .bg{position:absolute;inset:0;z-index:0}
.slide::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,20,28,.52) 0%,rgba(8,20,28,.10) 20%,rgba(8,20,28,.32) 46%,rgba(8,20,28,.68) 70%,rgba(8,20,28,.90) 100%),linear-gradient(90deg,rgba(8,20,28,.45) 0%,rgba(8,20,28,.14) 45%,rgba(8,20,28,0) 70%)}
.s-top{position:absolute;top:calc(env(safe-area-inset-top,0) + 62px);left:18px;right:18px;z-index:3;display:flex;align-items:center;gap:9px}
.s-logo{width:32px;height:32px;border-radius:9px;background:var(--brass);color:#231405;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:19px;flex-shrink:0}
.s-biz{font-size:14px;font-weight:600;letter-spacing:.01em;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.s-tag{margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;background:rgba(237,231,218,.16);backdrop-filter:blur(8px);padding:5px 10px;border-radius:20px}
.s-bot{position:absolute;left:20px;right:20px;bottom:calc(env(safe-area-inset-bottom,0) + 30px);z-index:3}
.s-avail{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;background:rgba(10,26,37,.5);backdrop-filter:blur(8px);padding:6px 11px;border-radius:20px;margin-bottom:14px}
.s-avail .d{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 7px var(--green)}
.s-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--foam);margin-bottom:6px}
.s-price{display:flex;align-items:baseline;gap:9px;margin-bottom:2px}
.s-price .n{font-family:var(--serif);font-size:52px;line-height:.9;text-shadow:0 2px 14px rgba(8,20,28,.5)}
.s-price .u{font-size:12px;color:rgba(237,231,218,.75)}
.s-title{font-family:var(--serif);font-size:34px;line-height:1;margin:8px 0 8px;text-shadow:0 2px 14px rgba(8,20,28,.5)}
.s-desc{font-size:13.5px;color:rgba(237,231,218,.82);line-height:1.5;margin-bottom:14px;max-width:32ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.s-liberta{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-size:15px;color:var(--brass2);line-height:1.35;margin-bottom:18px;max-width:34ch;text-shadow:0 1px 8px rgba(0,0,0,.4)}
.s-links{display:flex;gap:18px;align-items:center}
.s-detbtn{background:0;border:0;color:var(--brass2);font-family:var(--mono);font-size:12px;letter-spacing:.06em;padding:0 0 16px;cursor:pointer;margin-top:-6px}
.det-row{padding:13px 0;border-bottom:1px solid var(--line)}
.det-row:last-child{border-bottom:0}
.det-k{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--brass2);margin-bottom:4px}
.det-v{font-size:15px;color:var(--sail);line-height:1.5}
.s-acts{display:flex;gap:10px}
.b-ai{flex:1;height:52px;background:rgba(237,231,218,.13);backdrop-filter:blur(12px);border:1px solid rgba(237,231,218,.28);border-radius:14px;color:var(--sail);font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}
.b-ai .ai-d{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green);animation:pd 1.8s ease-in-out infinite}
@keyframes pd{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.7)}}
.b-book{height:52px;padding:0 22px;background:var(--brass);border:0;border-radius:14px;color:#231405;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap}
.b-wa{flex:1;height:52px;background:#25D366;border:0;border-radius:14px;color:#fff;font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;text-decoration:none}
.b-wa:active{transform:scale(.98)}
.b-full{width:100%;margin-top:10px;box-shadow:0 4px 14px rgba(212,168,90,.3)}
.b-book:active{transform:scale(.97)}

#exhib{position:fixed;top:0;left:0;right:0;z-index:5;background:var(--brass);color:#231405;font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-align:center;padding:6px 12px;display:none;padding-top:calc(env(safe-area-inset-top,0) + 6px)}
#exhib b{font-weight:700}

#dots{position:fixed;right:9px;top:50%;transform:translateY(-50%);z-index:6;display:flex;flex-direction:column;gap:6px}
.dot{width:4px;height:4px;border-radius:2px;background:rgba(237,231,218,.4);transition:.3s}
.dot.on{height:16px;background:var(--sail)}

#globe{position:fixed;top:calc(env(safe-area-inset-top,0) + 12px);right:16px;z-index:901;display:flex;gap:4px;background:rgba(10,26,37,.82);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:20px;padding:3px}
#globe button{background:0;border:0;color:var(--foam);font-family:var(--mono);font-size:11px;padding:4px 8px;border-radius:16px;cursor:pointer}
#globe button.on{background:var(--sail);color:var(--ink)}

/* bottom sheets */
.sheet{position:fixed;bottom:0;left:0;right:0;z-index:800;background:var(--panel);border-radius:22px 22px 0 0;transform:translateY(100%);transition:transform .34s cubic-bezier(.34,1.3,.64,1);display:flex;flex-direction:column;max-height:88dvh}
.sheet.open{transform:translateY(0)}
.sh-drag{width:38px;height:5px;background:rgba(237,231,218,.22);border-radius:3px;margin:11px auto 6px;flex-shrink:0}
.sh-head{padding:6px 20px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);flex-shrink:0}
.sh-title{font-family:var(--serif);font-size:22px}
.sh-x{background:0;border:0;color:var(--brass2);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--mono)}
.sh-body{overflow-y:auto;padding:18px 20px calc(env(safe-area-inset-bottom,0) + 22px)}

/* chat */
#chatSheet{height:72dvh}
.ch-msgs{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:11px}
.msg{max-width:82%;padding:11px 15px;border-radius:16px;font-size:14.5px;line-height:1.45}
.msg.ai{background:rgba(237,231,218,.08);align-self:flex-start;border-bottom-left-radius:4px}
.msg.me{background:var(--brass);color:#231405;align-self:flex-end;border-bottom-right-radius:4px}
.msg.ai.think{color:var(--foam);font-style:italic}
.ch-sugg{display:flex;gap:7px;flex-wrap:wrap;padding:0 18px 10px}
.ch-sugg button{background:0;border:1px solid var(--line);border-radius:18px;padding:6px 12px;font-size:12px;color:var(--sail);cursor:pointer}
.ch-bar{display:flex;gap:9px;padding:12px 16px calc(env(safe-area-inset-bottom,0) + 20px);border-top:1px solid var(--line);flex-shrink:0}
.ch-inp{flex:1;height:46px;background:rgba(237,231,218,.06);border:1px solid var(--line);border-radius:23px;padding:0 16px;color:var(--sail);font-size:14px}
.ch-send{width:46px;height:46px;border-radius:50%;background:var(--brass);border:0;color:#231405;font-size:18px;cursor:pointer;flex-shrink:0}

/* booking */
.bk-step{display:none}.bk-step.on{display:block}
.bk-lbl{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--foam);margin:16px 0 9px}
.bk-lbl:first-child{margin-top:0}
.fld{width:100%;height:50px;background:rgba(237,231,218,.06);border:1px solid var(--line);border-radius:11px;padding:0 15px;color:var(--sail);font-size:15px}
.fld:focus{border-color:var(--brass)}
textarea.fld{height:auto;padding:13px 15px}
.cal{background:rgba(10,26,37,.4);border:1px solid var(--line);border-radius:14px;padding:14px}
.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.cal-nav button{background:rgba(237,231,218,.08);border:0;color:var(--sail);width:34px;height:34px;border-radius:9px;font-size:16px;cursor:pointer}
.cal-nav .m{font-family:var(--serif);font-size:19px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cal-dow{font-family:var(--mono);font-size:10px;color:var(--foam);text-align:center;padding-bottom:4px}
.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:9px;font-size:14px;cursor:pointer;position:relative;background:rgba(237,231,218,.05)}
.cal-day.empty{background:0;cursor:default}
.cal-day.off{color:rgba(237,231,218,.25);cursor:not-allowed;background:0;text-decoration:line-through}
.cal-day.busy{color:rgba(226,114,91,.7);cursor:not-allowed;background:rgba(226,114,91,.08)}
.cal-day.sel{background:var(--brass);color:#231405;font-weight:700}
.cal-day.today::after{content:'';position:absolute;bottom:4px;width:4px;height:4px;border-radius:50%;background:var(--brass2)}
.step-select{display:flex;gap:8px;flex-wrap:wrap}
.step-select button{flex:1;min-width:44px;height:46px;background:rgba(237,231,218,.06);border:1px solid var(--line);border-radius:10px;color:var(--sail);font-size:15px;cursor:pointer}
.step-select button.on{background:var(--brass);color:#231405;border-color:var(--brass);font-weight:700}
.pay-opt{display:flex;align-items:center;gap:13px;width:100%;padding:15px;background:rgba(237,231,218,.05);border:1px solid var(--line);border-radius:12px;color:var(--sail);cursor:pointer;margin-bottom:10px;text-align:left}
.pay-opt.on{border-color:var(--brass);background:rgba(192,137,74,.1)}
.pay-opt .ico{width:38px;height:38px;border-radius:9px;background:rgba(237,231,218,.1);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.pay-opt .t{font-size:14px;font-weight:600}
.pay-opt .s{font-size:12px;color:var(--foam);margin-top:2px}
.summary{background:rgba(10,26,37,.4);border:1px solid var(--line);border-radius:12px;padding:16px;margin-top:6px}
.cancelnote{margin-top:12px;padding:12px 14px;border-radius:10px;background:rgba(192,137,74,.1);border:1px solid rgba(192,137,74,.3);color:var(--foam);font-size:12.5px;line-height:1.5}
.consent{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:13px;color:var(--foam);line-height:1.5}
.consent input{margin-top:2px;width:18px;height:18px;flex-shrink:0;accent-color:var(--brass)}
.priv h4{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass2);margin:16px 0 6px}
.priv p{font-size:13.5px;color:#c8d5d7;line-height:1.6;margin-bottom:6px}
.sum-row{display:flex;justify-content:space-between;font-size:14px;padding:5px 0}
.sum-row.big{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;font-family:var(--serif);font-size:20px}
.sum-row .mono{font-family:var(--mono)}
.sum-row b{color:var(--brass2)}
.bk-foot{display:flex;gap:10px;margin-top:20px}
.btn-primary{flex:1;height:52px;background:var(--brass);border:0;border-radius:13px;color:#231405;font-size:15px;font-weight:700;cursor:pointer}
.btn-primary:disabled{opacity:.4}
.btn-back{height:52px;padding:0 20px;background:rgba(237,231,218,.08);border:1px solid var(--line);border-radius:13px;color:var(--sail);font-size:14px;cursor:pointer}
.done{text-align:center;padding:20px 0}
.done .ck{width:66px;height:66px;border-radius:50%;background:var(--green);display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 16px;color:#fff}
.done h3{font-family:var(--serif);font-size:26px;margin-bottom:8px}
.done p{color:var(--foam);font-size:14px;line-height:1.5;margin-bottom:6px}
.done .notif{font-family:var(--mono);font-size:11px;color:var(--sea);margin-top:14px;line-height:1.6}

/* ============ ADMIN ============ */
#pAdmin{background:var(--ink2);overflow-y:auto;-webkit-overflow-scrolling:touch}
#login{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 26px}
.lg-logo{width:60px;height:60px;border-radius:16px;background:var(--brass);color:#231405;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:30px;margin-bottom:16px}
.lg-t{font-family:var(--serif);font-size:26px}
.lg-s{font-size:13px;color:var(--foam);margin-bottom:28px}
.lg-form{width:100%;max-width:330px;display:flex;flex-direction:column;gap:11px}
.lg-note{font-size:12px;color:var(--foam);margin-top:14px}
#adminApp{display:none;padding-bottom:calc(env(safe-area-inset-bottom,0) + 80px)}
.ad-head{position:sticky;top:0;z-index:10;background:rgba(10,26,37,.9);backdrop-filter:blur(12px);padding:calc(env(safe-area-inset-top,0) + 18px) 20px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center}
.ad-title{font-family:var(--serif);font-size:22px}
.ad-out{margin-left:auto;background:0;border:0;color:var(--foam);font-size:12px;cursor:pointer;font-family:var(--mono)}
.ad-tabs{display:flex;gap:6px;overflow-x:auto;padding:12px 20px 0;position:sticky;top:64px;z-index:9;background:var(--ink2)}
.ad-tab{flex:0 0 auto;padding:9px 14px;border-radius:20px;background:rgba(237,231,218,.06);border:1px solid var(--line);color:var(--foam);font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.ad-tab.on{background:var(--brass);color:#231405;border-color:var(--brass)}
.ad-pane{display:none;padding:16px 20px}
.ad-pane.on{display:block}
.acard{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:16px;margin-bottom:12px}
.acard-h{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass2);margin-bottom:12px;display:flex;align-items:center;gap:7px}
.rrow{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.rrow:last-child{border-bottom:0}
.rrow .rimg{width:52px;height:52px;border-radius:10px;overflow:hidden;flex-shrink:0}
.rrow .rinfo{flex:1;min-width:0}
.rrow .rn{font-family:var(--serif);font-size:18px}
.rrow .rp{font-family:var(--mono);font-size:13px;color:var(--brass2)}
.rrow .redit{background:rgba(237,231,218,.08);border:1px solid var(--line);color:var(--sail);border-radius:9px;padding:8px 12px;font-size:12px;cursor:pointer}
.trash{background:rgba(226,114,91,.12);border:1px solid rgba(226,114,91,.35);color:var(--red);border-radius:9px;padding:8px 11px;font-size:14px;cursor:pointer;flex-shrink:0}
.toggle{width:44px;height:26px;border-radius:14px;background:rgba(237,231,218,.15);position:relative;cursor:pointer;flex-shrink:0;transition:.2s}
.toggle.on{background:var(--green)}
.toggle::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s}
.toggle.on::after{left:21px}
.mini-lbl{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--foam);margin:12px 0 6px}
.brow{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
.brow:last-child{border-bottom:0}
.brow .bn{font-size:14px;font-weight:600}
.brow .bs{font-family:var(--mono);font-size:11px;color:var(--foam);margin-top:3px}
.badge{font-family:var(--mono);font-size:10px;padding:3px 8px;border-radius:12px;letter-spacing:.06em}
.badge.ok{background:rgba(79,180,119,.16);color:var(--green)}
.badge.wait{background:rgba(216,165,102,.16);color:var(--brass2)}
.stat{display:flex;justify-content:space-between;font-size:14px;padding:7px 0}
.stat .v{font-family:var(--mono);color:var(--brass2)}
.qr-box{background:#fff;padding:12px;border-radius:12px;display:inline-block;margin-top:10px}
.empty{text-align:center;color:var(--foam);font-size:13px;padding:26px 10px}

/* modal edit */
#editModal{position:fixed;inset:0;z-index:950;background:rgba(8,16,22,.7);display:none;align-items:flex-end}
#editModal.on{display:flex}
.em-card{width:100%;background:var(--panel);border-radius:22px 22px 0 0;padding:22px 20px calc(env(safe-area-inset-bottom,0) + 24px);max-height:86dvh;overflow-y:auto}
.em-t{font-family:var(--serif);font-size:22px;margin-bottom:16px}
.ephoto{width:100%;height:150px;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:rgba(0,0,0,.2)}
.ephoto img{width:100%;height:100%;object-fit:cover}

/* toast */
#toast{position:fixed;bottom:calc(env(safe-area-inset-bottom,0) + 22px);left:50%;transform:translateX(-50%) translateY(14px);background:var(--green);color:#08140e;padding:11px 22px;border-radius:28px;font-size:13px;font-weight:600;opacity:0;transition:.3s;pointer-events:none;z-index:9999;white-space:nowrap}
#toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.hint{font-size:11px;color:var(--foam);margin-top:6px;line-height:1.5}
