:root{
  --bg:#09080d;
  --panel:#121019;
  --panel-2:#17131f;
  --panel-3:#0e0c13;
  --line:rgba(255,255,255,.09);
  --line-strong:rgba(255,255,255,.14);
  --text:#f8f5ff;
  --muted:#aaa3b8;
  --muted-2:#777182;
  --gold:#e7ca7d;
  --gold-2:#a98238;
  --gold-soft:rgba(231,202,125,.10);
  --violet:#8b5cf6;
  --violet-soft:rgba(139,92,246,.15);
  --green:#3fd58a;
  --green-soft:rgba(63,213,138,.12);
  --red:#ff6678;
  --red-soft:rgba(255,102,120,.10);
  --shadow:0 24px 70px rgba(0,0,0,.38);
  --radius:24px;
  --vvh:100vh;
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  color:var(--text);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:
    radial-gradient(circle at 12% -6%,rgba(139,92,246,.18),transparent 25%),
    radial-gradient(circle at 90% 10%,rgba(231,202,125,.11),transparent 24%),
    linear-gradient(180deg,#0b0910 0%,#08070b 100%);
}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.55}
a{color:inherit}
img{display:block;max-width:100%}
.hidden{display:none!important}

.app-shell{width:min(100%,1180px);margin:0 auto;min-height:100vh;padding-bottom:104px}
.topbar{
  position:sticky;top:0;z-index:35;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 16px 12px;
  background:linear-gradient(180deg,rgba(9,8,13,.96),rgba(9,8,13,.78),transparent);
  backdrop-filter:blur(18px);
}
.brand-button{border:0;background:transparent;color:var(--text);padding:0;text-align:left}
.brand{font-size:18px;font-weight:900;letter-spacing:.24em}
.brand-sub{margin-top:3px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2)}
.top-actions{display:flex;align-items:center;gap:8px}
.icon-btn,.lang-btn{
  min-height:38px;border:1px solid var(--line);background:rgba(255,255,255,.045);color:var(--text);border-radius:13px;padding:8px 11px
}
.icon-btn{width:40px;padding:0;display:grid;place-items:center}

.main{animation:fadeUp .22s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.hero{
  position:relative;overflow:hidden;
  margin:6px 16px 18px;padding:38px 22px 28px;
  border:1px solid var(--line);border-radius:30px;
  background:
    radial-gradient(circle at 78% 24%,rgba(231,202,125,.16),transparent 23%),
    radial-gradient(circle at 18% 10%,rgba(139,92,246,.23),transparent 32%),
    linear-gradient(145deg,#17111f,#0e0c13 66%);
  box-shadow:var(--shadow);
}
.hero:after{content:"✦";position:absolute;right:12px;top:-10px;font-size:130px;color:rgba(231,202,125,.052);transform:rotate(12deg);pointer-events:none}
.eyebrow{display:flex;align-items:center;gap:8px;color:var(--gold);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.18em;margin-bottom:12px}
.hero h1{font-size:clamp(36px,8vw,76px);line-height:.96;letter-spacing:-.05em;margin:0;max-width:850px}
.hero p{max-width:650px;margin:18px 0 24px;color:var(--muted);font-size:16px;line-height:1.58}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px}
.btn{border:0;border-radius:16px;padding:14px 17px;font-weight:800;transition:.18s ease;min-height:48px}
.btn:active{transform:scale(.985)}
.btn-primary{color:#171106;background:linear-gradient(135deg,#f5dfa0,#c69b42);box-shadow:0 12px 34px rgba(198,155,66,.16)}
.btn-secondary{color:var(--text);background:rgba(255,255,255,.055);border:1px solid var(--line)}
.btn-danger{color:#ffd8dd;background:var(--red-soft);border:1px solid rgba(255,102,120,.2)}
.btn-block{width:100%}

.live-banner{
  margin:0 16px 16px;padding:15px 16px;border-radius:22px;
  border:1px solid rgba(255,102,120,.22);
  background:linear-gradient(145deg,rgba(101,18,35,.34),rgba(255,255,255,.03));
  display:flex;align-items:center;justify-content:space-between;gap:12px
}
.live-left{display:flex;align-items:center;gap:12px;min-width:0}
.live-dot{width:11px;height:11px;flex:0 0 auto;border-radius:50%;background:#ff455d;box-shadow:0 0 0 0 rgba(255,69,93,.55);animation:pulse 1.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,69,93,.5)}70%{box-shadow:0 0 0 12px rgba(255,69,93,0)}100%{box-shadow:0 0 0 0 rgba(255,69,93,0)}}
.live-copy strong{display:block;font-size:15px}.live-copy span{display:block;color:var(--muted);font-size:12px;margin-top:3px}

.section{padding:8px 16px 14px}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:12px 2px 14px}
.section-head h2{margin:0;font-size:25px;letter-spacing:-.035em}.section-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.section-head small{color:var(--muted-2)}

.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.service-card{
  min-width:0;overflow:hidden;position:relative;padding:13px;border:1px solid var(--line);border-radius:22px;
  background:linear-gradient(155deg,rgba(255,255,255,.055),rgba(255,255,255,.018));box-shadow:0 12px 34px rgba(0,0,0,.19)
}
.service-image{
  height:126px;border-radius:16px;overflow:hidden;display:grid;place-items:center;margin-bottom:13px;
  border:1px solid rgba(255,255,255,.055);
  background:radial-gradient(circle at 30% 30%,rgba(139,92,246,.35),transparent 34%),radial-gradient(circle at 78% 70%,rgba(231,202,125,.17),transparent 32%),#121019
}
.service-image img{width:100%;height:100%;object-fit:cover}
.service-placeholder{font-size:38px;color:var(--gold)}
.service-card h3{font-size:16px;line-height:1.2;margin:0 0 7px;letter-spacing:-.02em}
.service-desc{color:var(--muted);font-size:12px;line-height:1.45;min-height:52px}
.service-meta{display:flex;align-items:center;justify-content:space-between;gap:7px;margin:12px 0;color:#ddd6e8;font-size:12px}
.service-price{font-size:15px;font-weight:900;color:var(--gold);white-space:nowrap}.service-duration{white-space:nowrap}
.service-card .btn{width:100%;padding:11px 8px;min-height:43px;border-radius:14px;font-size:13px}
.service-disabled{opacity:.62}.service-disabled .service-image{filter:grayscale(.7)}
.spots{position:absolute;top:21px;left:21px;z-index:2;padding:5px 8px;border-radius:999px;background:rgba(8,7,11,.8);border:1px solid var(--line);font-size:10px;color:#e9e3f0;backdrop-filter:blur(8px)}

.package-grid{display:grid;grid-template-columns:1fr;gap:10px}
.package-card{border:1px solid var(--line);border-radius:21px;padding:17px;background:linear-gradient(145deg,var(--gold-soft),rgba(255,255,255,.025))}
.package-top{display:flex;justify-content:space-between;align-items:start;gap:14px}
.package-card h3{margin:0 0 5px;font-size:18px}.package-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.package-price{font-size:20px;font-weight:900;color:var(--gold);white-space:nowrap}
.package-meta{margin-top:13px;padding-top:13px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:12px;gap:8px}

.code-preview{
  position:relative;overflow:hidden;border:1px solid var(--line);border-radius:26px;padding:22px;
  background:radial-gradient(circle at 85% 12%,rgba(231,202,125,.14),transparent 28%),linear-gradient(145deg,#17121f,#0d0b11)
}
.code-preview:after{content:"22";position:absolute;right:-8px;bottom:-32px;font-size:120px;font-weight:950;color:rgba(255,255,255,.025)}
.code-preview h3{font-size:26px;margin:0 0 8px}.code-preview p{max-width:720px;color:var(--muted);line-height:1.55;margin:0 0 17px}

.page-title{padding:18px 16px 6px}.page-title .eyebrow{margin-bottom:8px}.page-title h1{margin:0;font-size:34px;letter-spacing:-.045em}.page-title p{margin:8px 0 0;color:var(--muted);line-height:1.5}

.card{border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,#15121c,#0f0d14);padding:18px;box-shadow:0 12px 36px rgba(0,0,0,.17)}
.stack{display:grid;gap:12px}
.dashboard-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:14px}
.metric{padding:14px 10px;border-radius:17px;border:1px solid var(--line);background:rgba(255,255,255,.035);text-align:center}.metric strong{display:block;font-size:22px;color:var(--gold)}.metric span{font-size:10px;color:var(--muted)}
.booking-card h3{margin:0 0 4px;font-size:20px}.booking-sub{color:var(--muted);font-size:12px;line-height:1.45}.booking-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.booking-price{font-weight:900;color:var(--gold);white-space:nowrap}
.status-pill{display:inline-flex;margin-top:11px;padding:6px 9px;border-radius:999px;background:rgba(255,255,255,.055);border:1px solid var(--line);font-size:11px;color:#ddd7e8}.status-paid{background:var(--green-soft);border-color:rgba(63,213,138,.2);color:#aaf3cb}.status-wait{background:var(--gold-soft);border-color:rgba(231,202,125,.2);color:#f4dfaa}
.progress{display:grid;grid-template-columns:repeat(4,1fr);position:relative;margin:18px 0 10px}.progress:before{content:"";position:absolute;height:2px;left:8%;right:8%;top:7px;background:rgba(255,255,255,.08)}
.progress-step{position:relative;z-index:1;text-align:center;color:var(--muted-2);font-size:9px}.progress-step i{display:block;width:15px;height:15px;border-radius:50%;margin:0 auto 7px;background:#383440;border:3px solid #15121c}.progress-step.done{color:var(--muted)}.progress-step.done i{background:var(--green)}.progress-step.active{color:var(--text)}.progress-step.active i{background:var(--gold);box-shadow:0 0 0 5px rgba(231,202,125,.11)}
.empty{padding:28px 18px;text-align:center;color:var(--muted);border:1px dashed var(--line-strong);border-radius:22px}.empty strong{display:block;color:var(--text);font-size:18px;margin-bottom:7px}
.subscription-card{border:1px solid rgba(231,202,125,.16);background:linear-gradient(145deg,rgba(231,202,125,.08),rgba(255,255,255,.02))}.subscription-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.subscription-head h3{margin:0 0 4px}.counter{font-size:27px;font-weight:950;color:var(--gold)}.bar{height:8px;border-radius:999px;background:rgba(255,255,255,.07);overflow:hidden;margin:14px 0}.bar > span{display:block;height:100%;background:linear-gradient(90deg,#e7ca7d,#9d7833);border-radius:999px}
.offer-card{border-color:rgba(139,92,246,.2);background:linear-gradient(145deg,rgba(139,92,246,.1),rgba(255,255,255,.02))}

.bottom-nav{
  position:fixed;z-index:40;left:50%;bottom:max(10px,env(safe-area-inset-bottom));transform:translateX(-50%);
  width:min(calc(100% - 20px),720px);display:grid;grid-template-columns:repeat(3,1fr);padding:8px;
  border:1px solid rgba(255,255,255,.10);border-radius:22px;background:rgba(20,18,27,.91);backdrop-filter:blur(20px);box-shadow:0 18px 60px rgba(0,0,0,.5)
}
.nav-btn{position:relative;border:0;background:transparent;color:var(--muted);padding:10px 6px;border-radius:15px;font-size:11px}.nav-btn b{display:block;font-size:19px;line-height:1.1;margin-bottom:4px;font-weight:500}.nav-btn.active{color:var(--gold);background:rgba(231,202,125,.08)}.nav-badge{position:absolute;top:3px;left:calc(50% + 9px);min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--red);color:#fff;border:2px solid #17141f;display:grid;place-items:center;font-size:9px;font-weight:800}

.backdrop{position:fixed;z-index:100;inset:0;background:rgba(0,0,0,.76);display:flex;align-items:flex-end;justify-content:center;padding:10px}
.sheet{width:min(100%,680px);max-height:min(92vh,calc(var(--vvh) - 14px));overflow:auto;overscroll-behavior:contain;background:#131019;border:1px solid var(--line);border-radius:28px 28px 20px 20px;padding:18px;box-shadow:0 -24px 80px rgba(0,0,0,.55);animation:sheetIn .22s ease}
@keyframes sheetIn{from{opacity:.65;transform:translateY(34px)}to{opacity:1;transform:none}}
.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:15px}.sheet-head h2{margin:0 0 5px;font-size:23px}.sheet-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.close-btn{width:40px;height:40px;flex:0 0 auto;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--text);font-size:21px}
.summary-strip{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:14px;border-radius:17px;background:var(--gold-soft);border:1px solid rgba(231,202,125,.14);margin-bottom:15px}.summary-strip strong{display:block}.summary-strip span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.summary-price{font-weight:900;color:var(--gold);white-space:nowrap}
.form{display:grid;gap:11px}.field{display:grid;gap:7px}.field-label{font-size:11px;color:#dcd4e7;font-weight:700}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);outline:0;border-radius:15px;padding:14px;background:#0d0b11;color:var(--text);transition:.15s}.field input:focus,.field textarea:focus,.field select:focus{border-color:rgba(231,202,125,.4);box-shadow:0 0 0 3px rgba(231,202,125,.07)}.field textarea{min-height:105px;resize:vertical}.form-note{color:var(--muted-2);font-size:10px;line-height:1.45}.error-box{padding:11px 13px;border-radius:14px;background:var(--red-soft);border:1px solid rgba(255,102,120,.18);color:#ffd7dd;font-size:12px;line-height:1.45}.success-box{padding:11px 13px;border-radius:14px;background:var(--green-soft);border:1px solid rgba(63,213,138,.18);color:#c9f8dd;font-size:12px;line-height:1.45}
.day-grid{display:flex;gap:8px;overflow-x:auto;padding:2px 1px 7px;scrollbar-width:none}.day-grid::-webkit-scrollbar{display:none}.day-btn{flex:0 0 70px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.035);color:var(--text);padding:10px 8px}.day-btn strong{display:block;font-size:14px}.day-btn span{display:block;margin-top:3px;color:var(--muted);font-size:10px}.day-btn.active{border-color:rgba(231,202,125,.38);background:var(--gold-soft);color:var(--gold)}
.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.time-btn{border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.035);color:var(--text);padding:10px 6px}.time-btn.active{border-color:rgba(231,202,125,.4);background:var(--gold-soft);color:var(--gold)}
.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.option-btn{border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.035);color:var(--text);padding:12px;text-align:left}.option-btn strong{display:block}.option-btn span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.option-btn.active{border-color:rgba(231,202,125,.4);background:var(--gold-soft)}
.success-view{text-align:center;padding:16px 4px 2px}.success-mark{width:68px;height:68px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;background:var(--green-soft);border:1px solid rgba(63,213,138,.2);color:var(--green);font-size:32px}.success-view h2{margin:0 0 7px;font-size:26px}.success-view p{margin:0 auto 18px;max-width:480px;color:var(--muted);line-height:1.55}.pay-card{text-align:left;padding:15px;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid var(--line);margin:0 0 13px}.pay-card b{display:block;font-size:20px;color:var(--gold);margin-top:4px}

.code-form{display:grid;gap:10px}.code-input-wrap{display:flex;gap:8px}.code-input-wrap input{flex:1;min-width:0}.code-result{display:grid;gap:10px;margin-top:16px}.code-signature{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:15px;border-radius:17px;background:var(--gold-soft);border:1px solid rgba(231,202,125,.15)}.code-signature strong{font-size:24px;color:var(--gold)}.code-detail{padding:15px;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid var(--line)}.code-detail-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.code-detail-head span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.code-detail-head strong{color:var(--gold)}.code-detail h3{margin:0 0 7px;font-size:18px}.code-detail p{margin:0;color:#d4cedd;line-height:1.55;font-size:13px}.code-risk{margin-top:9px;padding-top:9px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.5}.code-disclaimer{color:var(--muted-2);font-size:10px;line-height:1.45;margin-top:10px}

.toast{position:fixed;z-index:130;left:50%;top:16px;transform:translateX(-50%);width:min(calc(100% - 24px),520px);padding:12px 14px;border-radius:15px;background:#1d1925;border:1px solid var(--line-strong);box-shadow:0 16px 50px rgba(0,0,0,.45);font-size:12px;line-height:1.4}
.skeleton{position:relative;overflow:hidden;background:rgba(255,255,255,.04)!important;color:transparent!important}.skeleton:after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);animation:shimmer 1.3s infinite}@keyframes shimmer{100%{transform:translateX(100%)}}

@media(min-width:760px){
  .topbar{padding-left:24px;padding-right:24px}.hero{margin-left:24px;margin-right:24px;padding:54px 42px 40px}.live-banner{margin-left:24px;margin-right:24px}.section,.page-title{padding-left:24px;padding-right:24px}.service-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.service-image{height:150px}.service-desc{min-height:72px}.package-grid{grid-template-columns:repeat(2,1fr)}.dashboard-summary{grid-template-columns:repeat(3,160px);justify-content:start}.time-grid{grid-template-columns:repeat(6,1fr)}
}
@media(max-width:390px){
  .hero{padding:32px 18px 24px}.hero h1{font-size:34px}.service-card{padding:11px}.service-image{height:99px}.service-card h3{font-size:14px}.service-desc{font-size:11px;min-height:64px}.service-meta{font-size:11px}.service-price{font-size:13px}.time-grid{grid-template-columns:repeat(3,1fr)}
}

/* ========================= V49.1 React UX fixes ========================= */
:root{--vv-top:0px}
.focus-hero{margin:0 16px 16px;padding:16px;border:1px solid rgba(231,202,125,.26);border-radius:22px;background:radial-gradient(circle at 92% 0%,rgba(139,92,246,.20),transparent 35%),linear-gradient(145deg,rgba(231,202,125,.08),rgba(255,255,255,.025));display:grid;grid-template-columns:50px 1fr 24px;gap:13px;align-items:center;cursor:pointer;box-shadow:0 12px 36px rgba(0,0,0,.18)}
.focus-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;font-size:24px;color:var(--gold);background:linear-gradient(145deg,rgba(231,202,125,.15),rgba(139,92,246,.13));border:1px solid rgba(231,202,125,.2)}
.focus-title{font-size:18px;font-weight:950;letter-spacing:.01em}.focus-title span{color:var(--gold)}.focus-copy p{margin:5px 0 8px;color:var(--muted);font-size:12px;line-height:1.45}.focus-copy b{font-size:12px;color:var(--gold)}.focus-arrow{font-size:30px;color:var(--muted-2)}
.focus-sheet{max-width:620px}.focus-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:2px 0 16px}.focus-progress i{height:4px;border-radius:99px;background:rgba(255,255,255,.08)}.focus-progress i.done{background:var(--green)}.focus-progress i.active{background:var(--gold)}
.focus-options{display:grid;gap:9px}.focus-option{display:grid;grid-template-columns:36px 1fr;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.035);color:var(--text);padding:12px}.focus-option:hover,.focus-option.selected{border-color:rgba(231,202,125,.36);background:var(--gold-soft)}.focus-option-icon,.focus-check{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:rgba(139,92,246,.10);color:var(--gold);font-weight:900}.focus-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}.focus-result{display:grid;gap:10px}.focus-result-row{padding:13px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid var(--line)}.focus-result-row span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.focus-result-row strong{font-size:14px;line-height:1.45}.focus-extra{padding:12px 14px;border-radius:15px;background:rgba(139,92,246,.07);color:#d9d0e4;font-size:12px;line-height:1.6}.focus-recommend{padding:15px;border-radius:18px;background:linear-gradient(145deg,var(--gold-soft),rgba(139,92,246,.07));border:1px solid rgba(231,202,125,.16)}.focus-recommend span{display:block;color:var(--gold);font-size:10px;font-weight:900;letter-spacing:.09em}.focus-recommend strong{display:block;margin-top:6px;font-size:20px}

/* Full 16:9 service artwork without cropping. */
.service-image{height:auto;aspect-ratio:16/9;border-radius:15px}
.service-image img{width:100%;height:100%;object-fit:cover;object-position:center}
.service-card{display:flex;flex-direction:column}.service-card .service-desc{flex:1}.service-card .btn{margin-top:auto}

/* TAROVEX keeps two readable service cards in a row on phone, tablet and desktop. */
@media(min-width:760px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-desc{min-height:0}.focus-hero{margin-left:24px;margin-right:24px}}
@media(min-width:1100px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.service-card{padding:16px}.service-card h3{font-size:19px}.service-desc{font-size:13px}}
@media(max-width:390px){.service-image{height:auto}.service-desc{min-height:0}.service-card h3{font-size:14px}}

.payment-details{margin:12px 0 0;padding:15px;border-radius:18px;background:linear-gradient(145deg,rgba(231,202,125,.08),rgba(255,255,255,.025));border:1px solid rgba(231,202,125,.17);text-align:left}.payment-kicker{font-size:10px;color:var(--gold);font-weight:900;letter-spacing:.10em}.payment-amount{font-size:27px;font-weight:950;color:var(--gold);margin:7px 0 12px}.payment-line{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.payment-line strong{color:var(--text)}.payment-card-number{margin:12px 0 10px;padding:13px;border-radius:14px;background:#0b0910;border:1px solid var(--line);font-size:clamp(19px,5vw,25px);font-weight:950;letter-spacing:.07em;text-align:center;color:#fff}.payment-copy{min-height:42px;padding:10px}.payment-note{margin-top:9px}.video-cabinet-btn{border-color:rgba(139,92,246,.28);background:linear-gradient(135deg,rgba(139,92,246,.17),rgba(255,255,255,.04))}

/* Every React sheet follows the visual viewport, so the focused field stays above the software keyboard. */
.backdrop{inset:auto 0 auto 0;top:var(--vv-top);height:var(--vvh);min-height:0;overflow:hidden;padding:max(8px,env(safe-area-inset-top)) 9px max(8px,env(safe-area-inset-bottom));align-items:flex-end}
.sheet{max-height:calc(var(--vvh) - 16px);min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;scroll-padding-top:18px;scroll-padding-bottom:28px}
.field input,.field textarea,.field select,.code-input-wrap input{font-size:16px;scroll-margin-top:22px;scroll-margin-bottom:110px}
body.keyboard-open .bottom-nav{opacity:0;pointer-events:none;transform:translate(-50%,120%)}
body.keyboard-open .sheet{max-height:calc(var(--vvh) - 6px);border-radius:20px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}
@media(max-height:540px){.sheet{border-radius:18px;padding:13px}.sheet-head{position:sticky;top:-13px;z-index:5;background:#131019;padding:4px 0 9px}}

/* Native video consultation */
.video-overlay{position:fixed;z-index:160;inset:0;background:#050407;display:grid;place-items:center}.video-shell{width:100%;height:100%;max-width:1200px;display:grid;grid-template-rows:auto 1fr auto;background:#050407}.video-top{min-height:62px;padding:10px 13px;display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;background:rgba(16,13,20,.96);border-bottom:1px solid var(--line)}.video-top strong{display:block}.video-top span{display:block;margin-top:3px;color:var(--muted);font-size:11px}.video-timer{font-weight:950;color:var(--gold);font-variant-numeric:tabular-nums}.video-close{width:40px;height:40px;border-radius:13px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:#fff;font-size:22px}.video-stage{position:relative;overflow:hidden;background:#000}.video-remote{width:100%;height:100%;object-fit:cover;background:#050407}.video-local{position:absolute;right:12px;bottom:12px;width:min(31vw,230px);aspect-ratio:9/16;object-fit:cover;border-radius:18px;border:1px solid rgba(255,255,255,.22);box-shadow:0 12px 40px rgba(0,0,0,.45);background:#111}.video-local.mirror{transform:scaleX(-1)}.video-wait{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:30px;color:#ddd4e8;background:rgba(0,0,0,.44);font-weight:800}.video-controls,.video-start{min-height:74px;padding:12px;display:flex;align-items:center;justify-content:center;gap:12px;background:rgba(16,13,20,.96);border-top:1px solid var(--line)}.video-control{width:49px;height:49px;border-radius:50%;border:1px solid rgba(255,255,255,.14);background:#201927;color:#fff;font-size:19px}.video-control.off{background:#722737}.video-control.active{outline:2px solid rgba(231,202,125,.5)}.video-error{position:absolute;left:12px;right:12px;bottom:88px;z-index:4}.video-link-box{padding:12px;border-radius:14px;border:1px solid var(--line);background:#0d0b11;word-break:break-all;color:var(--muted);font-size:11px;margin-bottom:12px}.external-link-btn{display:flex;align-items:center;justify-content:center;text-decoration:none}


/* V49.2 TAROVEX CODE */
.code-date-label{margin:2px 0 6px;color:#d9d1e3;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.code-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}
.code-date-field{min-width:0;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid rgba(231,202,125,.23);border-radius:17px;background:linear-gradient(145deg,rgba(231,202,125,.075),rgba(255,255,255,.025));box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.code-date-icon{flex:0 0 auto;color:var(--gold);font-size:17px;filter:drop-shadow(0 0 8px rgba(231,202,125,.28))}
.code-date-field input{width:100%;min-width:0;border:0!important;background:transparent!important;padding:15px 0!important;color:var(--text);font-size:19px!important;font-weight:850;letter-spacing:.12em;text-align:center;outline:0;box-shadow:none!important}
.code-date-field input::placeholder{color:#6f6877;font-size:15px;letter-spacing:.08em;font-weight:650}
.code-calc-btn{min-width:132px}
.code-signature{background:linear-gradient(135deg,rgba(231,202,125,.12),rgba(139,92,246,.07))}
.code-signature strong{padding:7px 10px;border-radius:12px;background:rgba(8,7,11,.45);border:1px solid rgba(231,202,125,.15);font-variant-numeric:tabular-nums;letter-spacing:.08em}
.service-card.live-service{border-color:rgba(255,76,99,.28);box-shadow:0 14px 38px rgba(110,18,34,.12)}
@media(max-width:520px){.code-input-wrap{grid-template-columns:1fr}.code-calc-btn{width:100%;min-width:0}.code-date-field input{font-size:18px!important}}

/* V49.3 — video room, Telegram, history, TAROVEX CODE */
.jitsi-shell{grid-template-rows:auto minmax(0,1fr)!important}
.jitsi-stage{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;background:#000}
.jitsi-frame{display:block;width:100%;height:100%;min-height:0;border:0;background:#000}
.jitsi-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#111017;border-top:1px solid var(--line);color:var(--muted);font-size:11px}
.jitsi-open{flex:0 0 auto;color:var(--gold);text-decoration:none;font-weight:800;padding:8px 11px;border:1px solid rgba(231,202,125,.22);border-radius:12px;background:var(--gold-soft)}
.video-loading{min-height:0;display:grid;place-items:center;text-align:center;padding:30px;color:var(--muted);background:#050407}
.jitsi-shell .video-start{min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;background:#08070b}
.jitsi-shell .video-start h3{margin:10px 0 4px;font-size:22px}.jitsi-shell .video-start p{max-width:520px;margin:0;color:var(--muted);line-height:1.5}
.video-info-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--gold-soft);border:1px solid rgba(231,202,125,.2);color:var(--gold);font-size:27px}
.video-schedule-info{margin-top:14px;padding:9px 13px;border:1px solid var(--line);border-radius:12px;color:var(--text);background:rgba(255,255,255,.035)}

.telegram-section{padding-top:0}
.telegram-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:15px;border:1px solid rgba(68,157,255,.18);border-radius:21px;background:linear-gradient(145deg,rgba(45,139,255,.09),rgba(255,255,255,.02));box-shadow:0 10px 30px rgba(0,0,0,.12)}
.telegram-card.connected{border-color:rgba(63,213,138,.2);background:linear-gradient(145deg,rgba(63,213,138,.08),rgba(255,255,255,.02))}
.telegram-card.telegram-locked{opacity:.78;border-color:var(--line)}
.telegram-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:rgba(53,154,255,.12);border:1px solid rgba(53,154,255,.2);font-size:22px;color:#79baff}
.telegram-copy{min-width:0}.telegram-copy strong{display:block;font-size:14px}.telegram-copy>span{display:block;color:var(--muted);font-size:11px;line-height:1.45;margin-top:4px}
.telegram-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.telegram-actions .btn{padding:10px 12px;font-size:10px}
.telegram-code{display:inline-flex!important;gap:5px;align-items:center;margin-top:8px!important;width:max-content;max-width:100%;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--text)!important}.telegram-code b{color:var(--gold);letter-spacing:.12em}
.telegram-error{margin-top:8px;color:#ffd0d7;font-size:10px}.telegram-ok,.telegram-lock{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(63,213,138,.25);background:var(--green-soft);color:var(--green);font-weight:950}.telegram-lock{border-color:var(--line);background:rgba(255,255,255,.035);color:var(--muted)}

.history-section{padding-top:2px}.history-toggle{width:100%;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.018));color:var(--text);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}.history-toggle>div{min-width:0}.history-toggle strong{display:block;font-size:15px}.history-toggle span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.history-toggle>b{font-size:22px;color:var(--gold);transition:transform .2s}.history-toggle.open>b{transform:rotate(180deg)}.history-stack{margin-top:10px}.booking-archived{opacity:.82}.booking-archived .progress{opacity:.72}

.code-access{padding:13px 14px;border:1px solid rgba(231,202,125,.18);border-radius:16px;background:var(--gold-soft);display:grid;gap:4px}.code-access strong{color:var(--gold)}.code-access span{color:var(--muted);font-size:11px;line-height:1.45}.code-access-ready{border-color:rgba(63,213,138,.2);background:var(--green-soft)}.code-access-ready strong{color:var(--green)}
.code-payment-box{margin-top:12px;padding:15px;border-radius:18px;border:1px solid rgba(231,202,125,.17);background:linear-gradient(145deg,rgba(231,202,125,.07),rgba(255,255,255,.025))}.code-payment-box p{color:var(--muted);font-size:11px;line-height:1.5}.code-pay-title{font-weight:900}.code-pay-price{font-size:26px;font-weight:950;color:var(--gold);margin:7px 0 12px}.code-client-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.code-phone-field{margin-top:2px}.code-phone-field input{font-size:16px}

@media(max-width:620px){
  .jitsi-foot{align-items:stretch;flex-direction:column}.jitsi-open{text-align:center}
  .telegram-card{grid-template-columns:auto minmax(0,1fr)}.telegram-actions,.telegram-ok,.telegram-lock{grid-column:1/-1}.telegram-actions{justify-content:stretch}.telegram-actions .btn{flex:1 1 140px}.telegram-ok,.telegram-lock{justify-self:end;margin-top:-39px}
  .code-input-wrap{display:grid;grid-template-columns:1fr}.code-calc-btn{width:100%}.code-client-fields{grid-template-columns:1fr}
}

/* V49.4 — saved TAROVEX CODE in client cabinet */
.code-history-section{padding-top:4px}
.saved-code-card{padding:0;overflow:hidden}
.saved-code-head{width:100%;border:0;background:transparent;color:var(--text);padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left}
.saved-code-head>div:first-child{display:grid;gap:3px;min-width:0}
.saved-code-head .eyebrow{margin:0;color:var(--gold);font-size:9px}
.saved-code-head strong{font-size:16px}
.saved-code-head small{color:var(--muted-2);font-size:10px}
.saved-code-sign{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.saved-code-sign b{color:var(--gold);font-size:14px;letter-spacing:.05em}
.saved-code-sign span{font-size:20px;color:var(--gold)}
.saved-code-result{padding:0 14px 15px;margin-top:0}
@media(max-width:520px){.saved-code-head{align-items:flex-start}.saved-code-sign{flex-direction:column;align-items:flex-end;gap:2px}.saved-code-sign b{font-size:12px}}

/* V49.5 — restored V48 client features */
.free-reading-hero{margin:0 16px 16px;padding:18px;border:1px solid rgba(139,92,246,.2);border-radius:23px;background:linear-gradient(145deg,rgba(139,92,246,.12),rgba(231,202,125,.045));box-shadow:0 12px 36px rgba(0,0,0,.18)}
.free-reading-hero .eyebrow{margin-bottom:7px}.free-reading-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.free-reading-head h2{margin:0;font-size:21px;letter-spacing:-.03em}.free-reading-head p{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.5;max-width:650px}.free-reading-mark{flex:0 0 45px;width:45px;height:45px;display:grid;place-items:center;border-radius:15px;background:rgba(139,92,246,.1);border:1px solid rgba(139,92,246,.22);font-size:23px}.free-reading-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.free-reading-status{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid var(--line);font-size:10px;color:var(--muted)}
.free-answer-card{padding:14px;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.025)}.free-answer-question{font-weight:800;line-height:1.45}.free-answer-cards{margin-top:10px;color:var(--gold);font-size:12px;font-weight:800}.free-answer-text{margin-top:12px;white-space:pre-wrap;line-height:1.65;color:#e8e1ee}.free-answer-pending{text-align:center;padding:22px;color:var(--muted)}
.booking-limit-notice{margin:0 16px 12px;padding:11px 13px;border:1px solid rgba(255,183,80,.2);border-radius:15px;background:rgba(255,183,80,.07);color:#f0dfb8;font-size:11px;line-height:1.5}
.catalog-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0 0 14px;padding:5px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.025)}.catalog-tab{border:0;border-radius:12px;padding:11px;background:transparent;color:var(--muted);font-weight:800}.catalog-tab.active{background:rgba(231,202,125,.1);color:var(--gold);box-shadow:inset 0 0 0 1px rgba(231,202,125,.13)}
.cabinet-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.cabinet-toolbar-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.client-profile-mini{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018));margin-bottom:12px}.client-avatar{width:43px;height:43px;border-radius:50%;display:grid;place-items:center;background:var(--gold-soft);border:1px solid rgba(231,202,125,.2);color:var(--gold);font-weight:950}.client-profile-copy{min-width:0}.client-profile-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-profile-copy span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.client-profile-mini .btn{padding:9px 11px;font-size:10px}
.cabinet-highlights{display:grid;gap:8px;margin-bottom:12px}.cabinet-highlight{display:flex;align-items:center;gap:11px;padding:12px 13px;border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.025)}.cabinet-highlight-icon{width:35px;height:35px;border-radius:12px;display:grid;place-items:center;background:var(--gold-soft);color:var(--gold);flex:0 0 auto}.cabinet-highlight-copy{min-width:0;flex:1}.cabinet-highlight-copy strong{display:block;font-size:12px}.cabinet-highlight-copy span{display:block;color:var(--muted);font-size:10px;margin-top:3px;line-height:1.4}.cabinet-highlight .btn{padding:8px 10px;font-size:9px}
.cabinet-free-card{margin-top:10px;padding:13px;border:1px solid rgba(139,92,246,.18);border-radius:18px;background:rgba(139,92,246,.055)}.cabinet-free-card strong{display:block}.cabinet-free-card p{margin:5px 0 10px;color:var(--muted);font-size:11px;line-height:1.5}
.profile-phone-row{display:flex;align-items:center;gap:8px}.profile-phone-row .field{flex:1}.profile-phone-row .btn{flex:0 0 auto;margin-top:17px}
@media(min-width:760px){.free-reading-hero{margin-left:24px;margin-right:24px}.cabinet-highlights{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.free-reading-head{align-items:center}.free-reading-actions .btn{flex:1}.client-profile-mini{grid-template-columns:auto minmax(0,1fr)}.client-profile-mini>.btn{grid-column:1/-1;width:100%}.cabinet-toolbar{align-items:flex-start}.cabinet-toolbar-actions{max-width:55%}.profile-phone-row{display:grid}.profile-phone-row .btn{margin-top:0;width:100%}}

/* V49.5 — повторно не запрашиваем уже сохранённые данные клиента */
.identity-known,.identity-phone{border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:14px;padding:12px 14px;display:flex;gap:6px;flex-direction:column;min-width:0}
.identity-known>div{display:flex;gap:6px;flex-direction:column;min-width:0}
.identity-known span,.identity-phone span,.identity-known small{color:var(--muted);font-size:12px;line-height:1.35}
.identity-known strong,.identity-phone strong{font-size:14px;overflow-wrap:anywhere}
.identity-known.compact{gap:5px}
