/* ============================================================
   TalentAstro Puja Platform — Sacred Modern Design System
   Phase 1-8: Complete UI/UX Redesign
   ============================================================ */

/* 1. DESIGN TOKENS */
:root{
  --tap-purple:#6109be; --tap-purple-deep:#4a0090; --tap-purple-pale:#f0e8fd;
  --tap-marigold:#f99000; --tap-marigold-deep:#db8400;
  --tap-terracotta:#d75c27; --tap-chocolate:#5e3023;
  --tap-saffron:#FF8C00; --tap-sindoor:#E03B3B;
  --tap-lotus:#F4A0B5; --tap-ganga:#4A9EBF;
  --tap-turmeric:#F5C842; --tap-gold-light:#FFF8E7;
  --tap-ink:#1e0a2e; --tap-muted:#6b5b78;
  --tap-line:#ece6f2; --tap-bg:#faf7fd; --tap-card:#fff;
  --tap-ok:#1a7d3c; --tap-warn:#c9851b; --tap-err:#c0392b;
  --grad-sacred:linear-gradient(135deg,#6109be 0%,#d75c27 100%);
  --grad-gold:linear-gradient(135deg,#f99000 0%,#f5c842 100%);
  --grad-dawn:linear-gradient(135deg,#FF8C00 0%,#6109be 100%);
  --grad-night:linear-gradient(180deg,#0D0820 0%,#1A0A40 100%);
  --tap-shadow:0 4px 20px rgba(97,9,190,.10);
  --tap-shadow-xl:0 12px 48px rgba(97,9,190,.18);
  --tap-shadow-gold:0 4px 20px rgba(249,144,0,.25);
  --tap-glow:0 0 0 3px rgba(97,9,190,.15);
  --tap-radius:18px; --tap-radius-sm:10px; --tap-radius-xl:28px;
  --tap-radius-full:999px;
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --ease-out:cubic-bezier(.4,0,.2,1);
  --dur-fast:150ms; --dur-std:250ms; --dur-slow:400ms;
  --nav-h:64px;
}

/* 2. BASE */
.tap-root{
  font-family:"Plus Jakarta Sans",system-ui,-apple-system,sans-serif;
  font-size:16px; line-height:1.6; color:var(--tap-ink);
  background:var(--tap-bg); -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.tap-root *{box-sizing:border-box; margin:0; padding:0}
.tap-root h1,.tap-root h2,.tap-root h3,.tap-root .tap-serif{
  font-family:"Fraunces",Georgia,serif; font-weight:700;
  letter-spacing:-.02em; line-height:1.25;
}
.tap-root .tap-devanagari{font-family:"Yatra One","Noto Serif Devanagari",serif}
html{scroll-padding-bottom:calc(var(--nav-h) + 16px)}

/* 3. BOTTOM NAV */
.tap-bottom-nav{
  position:fixed; bottom:0; left:0; right:0; z-index:900;
  height:var(--nav-h); background:rgba(255,255,255,.92);
  backdrop-filter:blur(20px); border-top:1px solid var(--tap-line);
  display:flex; align-items:center; justify-content:space-around;
  padding:0 8px; box-shadow:0 -4px 20px rgba(97,9,190,.08);
}
.tap-bnav-item{
  display:flex; flex-direction:column; align-items:center; gap:3px;
  flex:1; padding:8px 4px; background:none; border:none;
  color:var(--tap-muted); font:inherit; font-size:10px; font-weight:600;
  cursor:pointer; text-decoration:none; transition:color var(--dur-fast);
  -webkit-tap-highlight-color:transparent;
}
.tap-bnav-item.active{color:var(--tap-purple)}
.tap-bnav-icon{font-size:22px; line-height:1; transition:transform var(--dur-fast) var(--ease-spring)}
.tap-bnav-item.active .tap-bnav-icon{transform:translateY(-3px)}
@media(min-width:768px){.tap-bottom-nav{display:none}}
@media(max-width:767px){.tap-root{padding-bottom:var(--nav-h)}}

/* 4. LAYOUT */
.tap-container{max-width:1120px; margin:0 auto; padding:0 16px}
.tap-section{padding:40px 0}
.tap-section-head{display:flex; align-items:center; justify-content:space-between; margin-bottom:20px}
.tap-section-head h2{font-size:clamp(20px,3vw,26px)}
.tap-view-all{color:var(--tap-purple); font-weight:700; font-size:14px; text-decoration:none}

/* 5. TYPOGRAPHY */
.tap-display{font-size:clamp(28px,5vw,52px); font-family:"Fraunces",serif; font-weight:900; line-height:1.1}
.tap-title{font-size:clamp(16px,2.5vw,22px); font-weight:700}
.tap-small{font-size:13px; color:var(--tap-muted)}
.tap-caption{font-size:11px; color:var(--tap-muted); letter-spacing:.05em; text-transform:uppercase; font-weight:700}

/* 6. BUTTONS */
.tap-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 22px; border-radius:var(--tap-radius-full);
  border:none; font:inherit; font-size:15px; font-weight:700;
  cursor:pointer; transition:all var(--dur-std) var(--ease-out);
  text-decoration:none; white-space:nowrap; position:relative;
  overflow:hidden; -webkit-tap-highlight-color:transparent;
}
.tap-btn:active{transform:scale(.97)}
.tap-btn[disabled]{opacity:.5; cursor:not-allowed; pointer-events:none}
.tap-btn-primary{background:var(--tap-purple); color:#fff; box-shadow:0 4px 16px rgba(97,9,190,.30)}
.tap-btn-primary:hover{background:var(--tap-purple-deep)}
.tap-btn-gold{background:var(--grad-gold); color:#3a2400; box-shadow:var(--tap-shadow-gold)}
.tap-btn-sacred{background:var(--grad-sacred); color:#fff}
.tap-btn-ghost{background:transparent; color:var(--tap-purple); border:2px solid var(--tap-line)}
.tap-btn-ghost:hover{border-color:var(--tap-purple); background:var(--tap-purple-pale)}
.tap-btn-block{width:100%}
.tap-btn-sm{padding:8px 16px; font-size:13px}
.tap-btn-xl{padding:16px 32px; font-size:17px}

/* 7. LIVE TICKER */
.tap-ticker{background:var(--tap-ink); color:#fff; overflow:hidden; height:36px; display:flex; align-items:center}
.tap-ticker-track{display:flex; gap:64px; white-space:nowrap; animation:tapTicker 40s linear infinite}
.tap-ticker-track:hover{animation-play-state:paused}
.tap-ticker-item{font-size:13px; font-weight:500; flex-shrink:0; padding:0 8px}
.tap-ticker-dot{display:inline-block; width:6px; height:6px; background:var(--tap-saffron); border-radius:50%; margin-right:8px; animation:tapPulse 1.5s ease-in-out infinite}
@keyframes tapTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes tapPulse{0%,100%{opacity:1}50%{opacity:.4}}

/* 8. TITHI BAR */
.tap-tithi-bar{background:linear-gradient(90deg,#fff8e7,#fff); border-bottom:1px solid #f5e8c0; padding:10px 16px; display:flex; align-items:center; gap:12px; flex-wrap:wrap}
.tap-tithi-tag{display:inline-flex; align-items:center; gap:6px; background:#fff; border:1px solid #f5e8c0; border-radius:999px; padding:4px 12px; font-size:13px; font-weight:600; color:var(--tap-chocolate)}
.tap-festival-chip{display:inline-flex; align-items:center; gap:6px; background:var(--grad-gold); color:#3a2400; border-radius:999px; padding:4px 12px; font-size:12px; font-weight:700; text-decoration:none; animation:tapGlow 2s ease-in-out infinite}
@keyframes tapGlow{0%,100%{box-shadow:0 0 0 0 rgba(249,144,0,0)}50%{box-shadow:0 0 12px rgba(249,144,0,.5)}}

/* 9. VIDEO HERO */
.tap-hero-v2{position:relative; min-height:92vh; display:flex; align-items:center; justify-content:center; overflow:hidden; background:var(--grad-night)}
.tap-hero-video{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.45}
.tap-hero-overlay{position:absolute; inset:0; background:linear-gradient(180deg,rgba(13,8,32,.3) 0%,rgba(13,8,32,.7) 100%)}
.tap-hero-content{position:relative; z-index:2; text-align:center; padding:24px 16px; max-width:720px; margin:0 auto}
.tap-hero-eyebrow{display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.12); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.2); border-radius:999px; padding:6px 16px; font-size:13px; font-weight:600; color:rgba(255,255,255,.9); margin-bottom:18px}
.tap-hero-title{font-family:"Fraunces",serif; font-size:clamp(32px,6vw,58px); font-weight:900; color:#fff; line-height:1.1; margin-bottom:12px}
.tap-hero-subtitle{font-size:clamp(16px,2.5vw,20px); color:rgba(255,255,255,.80); margin-bottom:28px; line-height:1.6}
.tap-hero-pills{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-bottom:28px}
.tap-hero-pill{background:rgba(255,255,255,.15); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.25); border-radius:999px; padding:10px 20px; font-size:14px; font-weight:600; color:#fff; cursor:pointer; transition:all var(--dur-std); text-decoration:none}
.tap-hero-pill:hover{background:rgba(255,255,255,.28)}
.tap-hero-card{background:rgba(255,255,255,.12); backdrop-filter:blur(20px); border:1px solid rgba(255,255,255,.25); border-radius:var(--tap-radius-xl); padding:24px; max-width:480px; margin:0 auto; box-shadow:0 20px 60px rgba(0,0,0,.3)}
.tap-hero-card-title{color:#fff; font-size:18px; font-weight:700; margin-bottom:14px}
.tap-scroll-hint{position:absolute; bottom:24px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.6); font-size:12px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:6px}
.tap-diya-bounce{animation:tapDiyaBounce 1.6s ease-in-out infinite}
@keyframes tapDiyaBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}

/* 10. STATS */
.tap-stats-bar{background:#fff; border-bottom:1px solid var(--tap-line); padding:24px 0}
.tap-stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:0; text-align:center}
.tap-stat-item{padding:8px 16px; border-right:1px solid var(--tap-line)}
.tap-stat-item:last-child{border-right:none}
.tap-stat-num{font-family:"Fraunces",serif; font-size:clamp(22px,3vw,32px); font-weight:900; color:var(--tap-purple); line-height:1; margin-bottom:4px}
.tap-stat-label{font-size:12px; color:var(--tap-muted); font-weight:600; text-transform:uppercase; letter-spacing:.05em}
@media(max-width:600px){.tap-stats-grid{grid-template-columns:repeat(2,1fr)}.tap-stat-item:nth-child(2){border-right:none}.tap-stat-item:nth-child(n+3){border-top:1px solid var(--tap-line)}}

/* 11. PROBLEM SEARCH */
.tap-problem-search{padding:48px 0; background:var(--tap-bg)}
.tap-search-box{background:#fff; border:2px solid var(--tap-line); border-radius:var(--tap-radius-xl); padding:8px 8px 8px 24px; display:flex; align-items:center; gap:12px; box-shadow:var(--tap-shadow); transition:border-color var(--dur-std),box-shadow var(--dur-std); max-width:680px; margin:0 auto}
.tap-search-box:focus-within{border-color:var(--tap-purple); box-shadow:0 0 0 4px rgba(97,9,190,.10),var(--tap-shadow)}
.tap-search-box input{flex:1; border:none; outline:none; font:inherit; font-size:17px; color:var(--tap-ink); background:transparent}
.tap-search-box input::placeholder{color:var(--tap-muted)}
.tap-search-submit{flex-shrink:0; background:var(--tap-purple); color:#fff; border:none; border-radius:var(--tap-radius); padding:12px 20px; font:inherit; font-weight:700; font-size:15px; cursor:pointer; display:flex; align-items:center; gap:8px; transition:background var(--dur-fast)}
.tap-search-submit:hover{background:var(--tap-purple-deep)}
.tap-search-suggestions{display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; justify-content:center}
.tap-search-sug{background:#fff; border:1.5px solid var(--tap-line); border-radius:999px; padding:6px 14px; font-size:13px; cursor:pointer; transition:all var(--dur-fast); color:var(--tap-muted)}
.tap-search-sug:hover{border-color:var(--tap-purple); color:var(--tap-purple); background:var(--tap-purple-pale)}

/* 12. DEITY GRID */
.tap-deity-grid{display:flex; gap:16px; overflow-x:auto; padding:4px 16px 8px; scrollbar-width:none; justify-content:center; flex-wrap:wrap}
.tap-deity-grid::-webkit-scrollbar{display:none}
.tap-deity-item{display:flex; flex-direction:column; align-items:center; gap:8px; cursor:pointer; flex-shrink:0; width:72px; -webkit-tap-highlight-color:transparent}
.tap-deity-icon{width:64px; height:64px; border-radius:50%; background:var(--grad-gold); display:flex; align-items:center; justify-content:center; font-size:28px; box-shadow:0 4px 16px rgba(249,144,0,.30); transition:transform var(--dur-std) var(--ease-spring),box-shadow var(--dur-std); border:3px solid #fff}
.tap-deity-item:hover .tap-deity-icon,.tap-deity-item.active .tap-deity-icon{transform:translateY(-4px) scale(1.08); box-shadow:0 8px 24px rgba(249,144,0,.45)}
.tap-deity-item.active .tap-deity-icon{background:var(--grad-sacred)}
.tap-deity-name{font-size:12px; font-weight:700; color:var(--tap-chocolate); text-align:center; line-height:1.3; font-family:"Yatra One",serif}

/* 13. PUJA CARDS v2 */
.tap-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px; padding:4px}
.tap-hscroll{display:flex; gap:16px; overflow-x:auto; padding:4px 16px 8px; scrollbar-width:none}
.tap-hscroll::-webkit-scrollbar{display:none}
.tap-hscroll .tap-pcard{width:260px; flex-shrink:0}
.tap-pcard{background:var(--tap-card); border-radius:var(--tap-radius); overflow:hidden; box-shadow:var(--tap-shadow); transition:transform var(--dur-std) var(--ease-out),box-shadow var(--dur-std); cursor:pointer; display:flex; flex-direction:column}
.tap-pcard:hover{transform:translateY(-4px); box-shadow:var(--tap-shadow-xl)}
.tap-thumb{aspect-ratio:16/10; position:relative; background:linear-gradient(135deg,#efe3ff 0%,#ffe8cc 100%); background-size:cover; background-position:center; overflow:hidden}
.tap-thumb-overlay{position:absolute; inset:0; background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.5) 100%)}
.tap-badge{position:absolute; top:10px; left:10px; background:var(--tap-marigold); color:#3a2400; font-size:11px; font-weight:800; padding:4px 10px; border-radius:999px}
.tap-badge-verified{position:absolute; top:10px; right:10px; background:rgba(26,125,60,.9); color:#fff; font-size:10px; font-weight:800; padding:3px 8px; border-radius:999px}
.tap-live-count{position:absolute; bottom:10px; left:10px; background:rgba(0,0,0,.6); color:#fff; backdrop-filter:blur(8px); border-radius:999px; padding:3px 10px; font-size:11px; font-weight:700; display:flex; align-items:center; gap:5px}
.tap-live-dot{width:6px; height:6px; background:var(--tap-sindoor); border-radius:50%; animation:tapPulse 1.2s ease-in-out infinite}
.tap-slot-urgent{position:absolute; bottom:10px; right:10px; background:rgba(224,59,59,.85); color:#fff; backdrop-filter:blur(8px); border-radius:999px; padding:3px 9px; font-size:10px; font-weight:800}
.tap-body{padding:14px 16px 16px; flex:1; display:flex; flex-direction:column; gap:6px}
.tap-pcard h3{font-size:16px; font-weight:700; color:var(--tap-ink); line-height:1.3}
.tap-temple-tag{display:inline-flex; align-items:center; gap:4px; font-size:12px; color:var(--tap-muted); font-weight:600}
.tap-rating{display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:700; color:var(--tap-marigold-deep)}
.tap-price-row{display:flex; align-items:center; gap:10px; margin-top:4px}
.tap-price-from{font-size:19px; font-weight:800; color:var(--tap-purple); font-family:"Fraunces",serif}
.tap-price-strike{font-size:13px; text-decoration:line-through; color:var(--tap-muted)}
.tap-book-btn-sm{margin-top:10px; width:100%; background:var(--tap-purple-pale); color:var(--tap-purple); border:none; border-radius:var(--tap-radius-sm); padding:10px; font:inherit; font-weight:700; font-size:14px; cursor:pointer; transition:all var(--dur-fast)}
.tap-book-btn-sm:hover{background:var(--tap-purple); color:#fff}

/* 14. FILTERS */
.tap-filter-bar{display:flex; gap:8px; overflow-x:auto; padding:0 16px 4px; scrollbar-width:none; margin-bottom:16px}
.tap-filter-bar::-webkit-scrollbar{display:none}
.tap-chip{flex-shrink:0; padding:8px 16px; border-radius:999px; border:1.5px solid var(--tap-line); background:#fff; color:var(--tap-muted); font:inherit; font-size:13px; font-weight:600; cursor:pointer; transition:all var(--dur-fast); white-space:nowrap}
.tap-chip.is-active,.tap-chip:hover{background:var(--tap-purple); border-color:var(--tap-purple); color:#fff}
.tap-ptabs{display:flex; gap:0; border-bottom:2px solid var(--tap-line); margin-bottom:20px; overflow-x:auto; scrollbar-width:none}
.tap-ptabs::-webkit-scrollbar{display:none}
.tap-ptab{padding:10px 18px; border:none; background:none; font:inherit; font-size:14px; font-weight:700; color:var(--tap-muted); cursor:pointer; white-space:nowrap; border-bottom:2px solid transparent; margin-bottom:-2px; transition:all var(--dur-fast)}
.tap-ptab.active{color:var(--tap-purple); border-bottom-color:var(--tap-purple)}
.tap-filters{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px}

/* 15. PUJA DETAIL v2 */
.tap-detail-hero{position:relative; aspect-ratio:21/9; min-height:240px; background:var(--grad-night); border-radius:var(--tap-radius); overflow:hidden; margin-bottom:20px}
.tap-detail-hero video,.tap-detail-hero img{width:100%; height:100%; object-fit:cover; opacity:.7}
.tap-detail-hero-overlay{position:absolute; inset:0; background:linear-gradient(0deg,rgba(13,8,32,.8) 0%,transparent 60%)}
.tap-detail-hero-info{position:absolute; bottom:20px; left:20px; right:20px; color:#fff}
.tap-detail-layout{display:grid; grid-template-columns:1fr 340px; gap:28px; align-items:start}
@media(max-width:900px){.tap-detail-layout{grid-template-columns:1fr}}
.tap-sticky-box{position:sticky; top:20px}
.tap-trust-card{background:#fff; border:1.5px solid var(--tap-line); border-radius:var(--tap-radius); padding:20px; box-shadow:var(--tap-shadow); margin-bottom:16px}
.tap-trust-card .tap-price-from{font-size:26px}
.tap-trust-signals{list-style:none; margin:12px 0}
.tap-trust-signals li{display:flex; align-items:center; gap:8px; font-size:13px; padding:5px 0; border-bottom:1px solid var(--tap-line); color:var(--tap-muted)}
.tap-trust-signals li:last-child{border-bottom:none}
.tap-trust-signals li b{color:var(--tap-ok)}
.tap-live-watchers{display:inline-flex; align-items:center; gap:6px; background:#fff0f0; border-radius:999px; padding:4px 12px; font-size:12px; font-weight:700; color:var(--tap-sindoor); margin-bottom:14px}
.tap-detail-tabs{display:flex; gap:0; border-bottom:2px solid var(--tap-line); margin-bottom:20px; overflow-x:auto; scrollbar-width:none}
.tap-detail-tabs::-webkit-scrollbar{display:none}
.tap-dtab{padding:10px 18px; border:none; background:none; font:inherit; font-size:14px; font-weight:700; color:var(--tap-muted); cursor:pointer; border-bottom:3px solid transparent; margin-bottom:-2px; white-space:nowrap; transition:all var(--dur-fast)}
.tap-dtab.active{color:var(--tap-purple); border-bottom-color:var(--tap-purple)}
.tap-back{display:inline-flex; gap:6px; align-items:center; background:none; border:0; color:var(--tap-purple); font:inherit; font-weight:700; cursor:pointer; padding:10px 4px}
.tap-watch-btn{display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.2); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.3); border-radius:999px; padding:8px 16px; color:#fff; font-size:13px; font-weight:700; cursor:pointer; transition:all var(--dur-fast)}
.tap-watch-btn:hover{background:rgba(255,255,255,.35)}

/* 16. PANDIT CARD */
.tap-pandit-card{display:flex; gap:16px; align-items:flex-start; background:linear-gradient(135deg,#faf6ff 0%,#fff8e7 100%); border:1px solid var(--tap-line); border-radius:var(--tap-radius); padding:18px; margin-bottom:16px}
.tap-pandit-avatar{width:72px; height:72px; border-radius:50%; object-fit:cover; flex-shrink:0; border:3px solid var(--tap-marigold); background:linear-gradient(135deg,#f9d29d,#f99000); display:flex; align-items:center; justify-content:center; font-size:28px}
.tap-pandit-name{font-weight:800; font-size:17px; color:var(--tap-ink); margin-bottom:2px}
.tap-pandit-exp{font-size:13px; color:var(--tap-muted); margin-bottom:6px}
.tap-pandit-tags{display:flex; gap:6px; flex-wrap:wrap}
.tap-pandit-tag{background:#fff; border:1px solid var(--tap-line); border-radius:999px; padding:3px 10px; font-size:11px; font-weight:700; color:var(--tap-chocolate)}
.tap-video-intro{display:inline-flex; align-items:center; gap:6px; margin-top:10px; color:var(--tap-purple); font-size:13px; font-weight:700; cursor:pointer}

/* 17. MUHURAT CALENDAR */
.tap-muhurat-cal{border-radius:var(--tap-radius); overflow:hidden; border:1px solid var(--tap-line)}
.tap-muhurat-header{background:var(--tap-ink); color:#fff; padding:12px 16px; display:flex; align-items:center; justify-content:space-between}
.tap-muhurat-header h3{font-size:15px; font-weight:700; color:#fff}
.tap-muhurat-legend{display:flex; gap:12px; padding:10px 16px; background:#fff; border-bottom:1px solid var(--tap-line); flex-wrap:wrap}
.tap-muhurat-leg-item{display:flex; align-items:center; gap:5px; font-size:11px; font-weight:700; color:var(--tap-muted)}
.tap-muhurat-dot{width:10px; height:10px; border-radius:50%}
.tap-cal-grid{display:grid; grid-template-columns:repeat(7,1fr); background:#fff; padding:4px}
.tap-cal-day{aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:600; border-radius:50%; cursor:pointer; transition:all var(--dur-fast); position:relative; margin:2px}
.tap-cal-day:hover{background:var(--tap-purple-pale); color:var(--tap-purple)}
.tap-cal-day.selected{background:var(--tap-purple); color:#fff}
.tap-cal-day.auspicious{color:var(--tap-marigold-deep)}
.tap-cal-day.auspicious::after{content:""; position:absolute; bottom:2px; left:50%; transform:translateX(-50%); width:4px; height:4px; background:var(--tap-marigold); border-radius:50%}
.tap-cal-day.ekadashi{font-weight:900; color:var(--tap-saffron)}
.tap-cal-day.disabled{opacity:.3; cursor:not-allowed; pointer-events:none}
.tap-cal-day-hdr{aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; color:var(--tap-muted); letter-spacing:.05em}

/* 18. BOOKING STEP WIZARD */
.tap-step-bar{display:flex; align-items:center; margin-bottom:28px; overflow-x:auto; scrollbar-width:none; padding:4px 0}
.tap-step-bar::-webkit-scrollbar{display:none}
.tap-step{display:flex; flex-direction:column; align-items:center; gap:4px; flex:1; min-width:60px}
.tap-step-circle{width:36px; height:36px; border-radius:50%; border:2px solid var(--tap-line); background:#fff; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; color:var(--tap-muted); transition:all var(--dur-std); position:relative; z-index:1}
.tap-step.done .tap-step-circle{background:var(--tap-ok); border-color:var(--tap-ok); color:#fff}
.tap-step.active .tap-step-circle{background:var(--tap-purple); border-color:var(--tap-purple); color:#fff; box-shadow:0 0 0 4px rgba(97,9,190,.2)}
.tap-step-label{font-size:11px; font-weight:700; color:var(--tap-muted); white-space:nowrap}
.tap-step.active .tap-step-label{color:var(--tap-purple)}
.tap-step-line{flex:1; height:2px; background:var(--tap-line); margin:0 -4px; margin-bottom:18px; transition:background var(--dur-std)}
.tap-step.done + .tap-step-line{background:var(--tap-ok)}
.tap-sankalp-sacred{background:linear-gradient(135deg,#fff8e7 0%,#faf6ff 100%); border:1.5px solid #f5e8c0; border-radius:var(--tap-radius); padding:20px; position:relative}
.tap-sankalp-sacred::before{content:"🙏"; position:absolute; top:-14px; left:50%; transform:translateX(-50%); font-size:24px; background:#fff; padding:0 8px}
.tap-sankalp-sacred textarea{width:100%; border:none; background:transparent; outline:none; font:inherit; font-size:15px; resize:none; min-height:80px; color:var(--tap-ink); line-height:1.7}
.tap-sankalp-sacred textarea::placeholder{color:var(--tap-muted); font-style:italic}

/* 19. REVIEWS */
.tap-review{display:flex; gap:12px; padding:14px 0; border-bottom:1px solid var(--tap-line)}
.tap-review:last-child{border-bottom:none}
.tap-review-avatar{width:44px; height:44px; border-radius:50%; flex-shrink:0; background:var(--grad-dawn); display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:700; color:#fff}
.tap-review-bubble{background:#e7f4e7; border-radius:0 14px 14px 14px; padding:10px 14px; flex:1}
.tap-review-meta{font-size:12px; font-weight:700; color:#1a7d3c; margin-bottom:4px}
.tap-review-text{font-size:14px; line-height:1.6; color:var(--tap-ink)}
.tap-review-time{font-size:11px; color:var(--tap-muted); margin-top:4px; text-align:right}
.tap-stars{color:var(--tap-marigold); font-size:13px}

/* 20. DASHBOARD v2 */
.tap-spiritual-header{background:var(--grad-night); border-radius:var(--tap-radius-xl); padding:24px 20px; color:#fff; margin-bottom:20px; position:relative; overflow:hidden}
.tap-spiritual-header::before{content:""; position:absolute; top:-40px; right:-40px; width:200px; height:200px; border-radius:50%; background:radial-gradient(circle,rgba(249,144,0,.2) 0%,transparent 70%)}
.tap-spiritual-uid{font-size:13px; opacity:.7; margin-bottom:4px; font-weight:600}
.tap-spiritual-name{font-size:24px; font-weight:900; font-family:"Fraunces",serif; margin-bottom:8px}
.tap-spiritual-stats{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:14px}
.tap-spiritual-stat{font-size:13px; opacity:.85}
.tap-spiritual-stat strong{font-size:18px; display:block; font-weight:800; font-family:"Fraunces",serif}
.tap-level-bar{background:rgba(255,255,255,.2); border-radius:999px; height:6px; margin-top:6px; overflow:hidden}
.tap-level-fill{height:100%; background:var(--grad-gold); border-radius:999px; transition:width 1s var(--ease-out)}
.tap-level-label{font-size:11px; opacity:.7; margin-top:4px}
.tap-level-badge{display:inline-flex; align-items:center; gap:6px; background:var(--grad-gold); color:#3a2400; border-radius:999px; padding:4px 12px; font-size:12px; font-weight:800}

/* 21. TIMELINE */
.tap-timeline{padding:4px 0}
.tap-timeline-item{display:flex; gap:16px; padding:16px 0; border-bottom:1px solid var(--tap-line); position:relative}
.tap-timeline-item:last-child{border-bottom:none}
.tap-tl-left{display:flex; flex-direction:column; align-items:center; gap:4px; width:48px; flex-shrink:0}
.tap-tl-date{font-size:11px; font-weight:800; color:var(--tap-muted); text-align:center; line-height:1.2}
.tap-tl-icon{width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0}
.tap-tl-icon.completed{background:#e8f8ee}
.tap-tl-icon.upcoming{background:#fff4e7}
.tap-tl-icon.cancelled{background:#f5f5f5}
.tap-tl-content{flex:1}
.tap-tl-title{font-weight:700; font-size:15px; margin-bottom:2px}
.tap-tl-meta{font-size:12px; color:var(--tap-muted)}
.tap-tl-thumb{width:56px; height:56px; border-radius:10px; object-fit:cover; flex-shrink:0; background:var(--tap-line)}
.tap-tl-status{display:inline-flex; align-items:center; gap:4px; font-size:11px; font-weight:800; border-radius:999px; padding:2px 10px; margin-top:6px}
.tap-tl-status.completed{background:#e8f8ee; color:var(--tap-ok)}
.tap-tl-status.upcoming{background:#fff4e7; color:var(--tap-saffron)}
.tap-tl-status.cancelled{background:#f5f5f5; color:var(--tap-muted)}

/* 22. MEMBERSHIP CARD */
.tap-mem-card-v2{border-radius:var(--tap-radius-xl); padding:24px 22px; color:#fff; position:relative; overflow:hidden; background:linear-gradient(135deg,#6109be 0%,#4a0090 100%)}
.tap-mem-card-v2.gold{background:linear-gradient(135deg,#c8860a 0%,#f5c842 100%); color:#3a2400}
.tap-mem-card-v2.saffron{background:linear-gradient(135deg,#d75c27 0%,#f99000 100%); color:#3a2400}
.tap-mem-card-v2::after{content:"OM"; position:absolute; bottom:-10px; right:10px; font-size:80px; opacity:.08; line-height:1; font-family:"Yatra One",serif}
.tap-mem-card-chip{font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; opacity:.75; margin-bottom:6px}
.tap-mem-plan-name{font-size:26px; font-weight:900; font-family:"Fraunces",serif; margin-bottom:12px}
.tap-mem-uid{font-size:16px; font-weight:700; letter-spacing:.08em; font-family:monospace; margin-bottom:4px}
.tap-mem-expiry{font-size:12px; opacity:.7}
.tap-mem-benefits-row{display:flex; gap:12px; margin-top:16px; flex-wrap:wrap}
.tap-mem-benefit-chip{background:rgba(255,255,255,.2); border-radius:999px; padding:4px 12px; font-size:12px; font-weight:700}

/* 23. GALLERY */
.tap-gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:4px; border-radius:var(--tap-radius); overflow:hidden}
.tap-gallery-item{aspect-ratio:1; position:relative; cursor:pointer; overflow:hidden; background:var(--tap-line)}
.tap-gallery-item img{width:100%; height:100%; object-fit:cover; transition:transform var(--dur-slow)}
.tap-gallery-item:hover img{transform:scale(1.08)}

/* 24. PANDIT STRIP */
.tap-pandit-strip{display:flex; gap:16px; overflow-x:auto; padding:4px 16px 8px; scrollbar-width:none}
.tap-pandit-strip::-webkit-scrollbar{display:none}
.tap-pandit-mini{flex-shrink:0; width:140px; text-align:center; cursor:pointer}
.tap-pandit-mini-avatar{width:80px; height:80px; border-radius:50%; border:3px solid var(--tap-marigold); margin:0 auto 8px; background:var(--grad-gold); display:flex; align-items:center; justify-content:center; font-size:32px; transition:transform var(--dur-std) var(--ease-spring)}
.tap-pandit-mini:hover .tap-pandit-mini-avatar{transform:scale(1.08)}
.tap-pandit-mini-name{font-size:13px; font-weight:700; color:var(--tap-ink)}
.tap-pandit-mini-spec{font-size:11px; color:var(--tap-muted)}
.tap-pandit-mini-rating{font-size:12px; color:var(--tap-marigold-deep); font-weight:700; margin-top:2px}

/* 25. TESTIMONIALS */
.tap-testimonials{display:flex; gap:14px; overflow-x:auto; padding:4px 16px 8px; scrollbar-width:none}
.tap-testimonials::-webkit-scrollbar{display:none}
.tap-testi-card{flex-shrink:0; width:280px; background:#fff; border-radius:var(--tap-radius); padding:16px; box-shadow:var(--tap-shadow)}
.tap-testi-head{display:flex; align-items:center; gap:10px; margin-bottom:10px}
.tap-testi-avatar{width:40px; height:40px; border-radius:50%; background:var(--grad-dawn); display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; color:#fff; flex-shrink:0}
.tap-testi-name{font-weight:700; font-size:14px}
.tap-testi-loc{font-size:12px; color:var(--tap-muted)}
.tap-testi-bubble{background:#e7f4e7; border-radius:0 12px 12px 12px; padding:10px 12px; font-size:14px; line-height:1.6; color:var(--tap-ink)}

/* 26. FAMILY */
.tap-family-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:12px; margin-bottom:18px}
.tap-family-card{background:#fff; border:1.5px solid var(--tap-line); border-radius:var(--tap-radius); padding:14px 16px; position:relative; transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.tap-family-card:hover{border-color:var(--tap-purple); box-shadow:var(--tap-glow)}
.tap-family-card.primary{border-color:var(--tap-marigold)}
.tap-family-icon{font-size:28px; margin-bottom:8px}
.tap-family-name{font-weight:700; font-size:15px; color:var(--tap-ink); margin-bottom:2px}
.tap-family-rel{font-size:12px; color:var(--tap-purple); font-weight:700}
.tap-family-meta{font-size:11px; color:var(--tap-muted); margin-top:3px}
.tap-family-card .tap-rm{position:absolute; top:8px; right:10px; background:none; border:none; font-size:16px; color:#ddd; cursor:pointer; transition:color var(--dur-fast)}
.tap-family-card .tap-rm:hover{color:var(--tap-err)}
.tap-family-form{background:var(--tap-purple-pale); border-radius:var(--tap-radius); padding:16px; max-width:480px}

/* 27. MEMBERSHIP PLANS */
.tap-plans-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px}
.tap-plan-card{border:2px solid var(--tap-line); border-radius:var(--tap-radius); overflow:hidden; background:#fff; transition:transform var(--dur-std),box-shadow var(--dur-std)}
.tap-plan-card:hover{transform:translateY(-4px); box-shadow:var(--tap-shadow-xl)}
.tap-plan-card.current{border-color:var(--tap-purple); box-shadow:0 0 0 3px rgba(97,9,190,.15)}
.tap-plan-name-bar{font-weight:800; font-size:16px; color:#fff; padding:14px 18px}
.tap-plan-price{font-size:28px; font-weight:900; padding:12px 18px 4px; color:var(--tap-ink); font-family:"Fraunces",serif}
.tap-plan-period{font-size:13px; color:var(--tap-muted); padding:0 18px 12px}
.tap-plan-benefits{list-style:none; padding:0 18px 14px; font-size:13px; color:var(--tap-muted)}
.tap-plan-benefits li{padding:4px 0; border-top:1px solid var(--tap-line); display:flex; align-items:center; gap:7px}
.tap-plan-benefits li:first-child{border-top:none}
.tap-plan-benefits li::before{content:"✓"; color:var(--tap-ok); font-weight:800}
.tap-plan-card .tap-btn{margin:0 18px 18px; width:calc(100% - 36px)}
.tap-plan-current-tag{text-align:center; padding:10px; color:var(--tap-purple); font-weight:700; font-size:14px}

/* 28. LOADING & SKELETONS */
.tap-spinner-om{font-size:32px; animation:tapOmSpin 1.5s ease-in-out infinite; display:flex; align-items:center; justify-content:center; padding:32px}
@keyframes tapOmSpin{0%{transform:rotate(0) scale(1);opacity:1}50%{transform:rotate(180deg) scale(.8);opacity:.6}100%{transform:rotate(360deg) scale(1);opacity:1}}
.tap-loading{display:flex; flex-direction:column; align-items:center; gap:12px; padding:40px 20px; color:var(--tap-muted)}
.tap-skeleton{border-radius:8px; background:linear-gradient(90deg,#f0e8fd 25%,#e8d8fc 50%,#f0e8fd 75%); background-size:200% 100%; animation:tapShimmer 1.5s ease-in-out infinite}
@keyframes tapShimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.tap-skel-card{height:220px; border-radius:var(--tap-radius); margin-bottom:16px}
.tap-skel-text{height:14px; border-radius:4px; margin-bottom:8px}
.tap-skel-text.w60{width:60%}
.tap-skel-text.w40{width:40%}
.tap-diya-loader{font-size:36px; animation:tapDiyaFlicker 0.8s ease-in-out infinite alternate}
@keyframes tapDiyaFlicker{from{transform:scale(1) rotate(-2deg)}to{transform:scale(1.15) rotate(2deg) translateY(-4px)}}

/* 29. TOASTS */
.tap-toast{position:fixed; bottom:calc(var(--nav-h) + 16px); left:50%; transform:translateX(-50%); z-index:10000; background:var(--tap-ink); color:#fff; padding:12px 22px; border-radius:999px; font-size:14px; font-weight:700; white-space:nowrap; box-shadow:0 8px 32px rgba(0,0,0,.4); animation:tapToastIn var(--dur-std) var(--ease-spring); max-width:90vw; text-align:center}
.tap-toast.err{background:var(--tap-err)}
.tap-toast.ok{background:var(--tap-ok)}
@keyframes tapToastIn{from{transform:translateX(-50%) translateY(12px);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}

/* 30. MODALS */
.tap-modal-wrap{position:fixed; inset:0; z-index:9000; background:rgba(13,8,32,.65); backdrop-filter:blur(6px); display:flex; align-items:flex-end; justify-content:center; padding:16px; animation:tapModalBg var(--dur-std)}
@media(min-width:600px){.tap-modal-wrap{align-items:center}}
@keyframes tapModalBg{from{opacity:0}to{opacity:1}}
.tap-modal{background:#fff; border-radius:var(--tap-radius-xl) var(--tap-radius-xl) 0 0; width:100%; max-width:480px; max-height:90vh; overflow-y:auto; animation:tapModalSlide var(--dur-slow) var(--ease-spring); overscroll-behavior:contain; position:relative}
@media(min-width:600px){.tap-modal{border-radius:var(--tap-radius-xl)}}
@keyframes tapModalSlide{from{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}
.tap-modal-inner{padding:28px 24px}
.tap-modal-inner h3{font-size:22px; margin-bottom:6px}
.tap-modal-inner p{color:var(--tap-muted); font-size:14px; margin-bottom:18px}
.tap-x{position:absolute; top:14px; right:16px; background:var(--tap-line); border:none; border-radius:50%; width:32px; height:32px; font-size:18px; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--tap-muted); transition:background var(--dur-fast)}
.tap-x:hover{background:var(--tap-err); color:#fff}

/* 31. AUTH */
.tap-auth-tabs{display:flex; gap:8px; margin-bottom:20px}
.tap-auth-tab{flex:1; padding:10px; border:2px solid var(--tap-line); background:#fff; border-radius:var(--tap-radius-sm); font:inherit; font-weight:700; color:var(--tap-muted); cursor:pointer; transition:all var(--dur-fast); font-size:14px}
.tap-auth-tab.active{background:var(--tap-purple); color:#fff; border-color:var(--tap-purple)}
.tap-auth-hint{color:var(--tap-muted); font-size:14px; margin-bottom:14px}

/* 32. FORMS */
.tap-input{width:100%; padding:12px 16px; border-radius:var(--tap-radius-sm); border:1.5px solid var(--tap-line); font:inherit; font-size:15px; color:var(--tap-ink); background:#fff; outline:none; transition:border-color var(--dur-fast),box-shadow var(--dur-fast); margin-bottom:12px; display:block}
.tap-input:focus{border-color:var(--tap-purple); box-shadow:0 0 0 3px rgba(97,9,190,.10)}
.tap-input::placeholder{color:var(--tap-muted)}
.tap-label{font-size:13px; font-weight:700; color:var(--tap-muted); display:block; margin-bottom:4px}
.tap-field-label{font-size:13px; font-weight:600; color:var(--tap-muted); margin:8px 0 4px}
.tap-otp-boxes{display:flex; gap:10px; justify-content:center; margin-bottom:16px}
.tap-otp-boxes input{width:48px; height:56px; text-align:center; font-size:22px; font-weight:800; border:2px solid var(--tap-line); border-radius:var(--tap-radius-sm); outline:none; transition:border-color var(--dur-fast); background:#fff; color:var(--tap-ink)}
.tap-otp-boxes input:focus{border-color:var(--tap-purple); box-shadow:0 0 0 3px rgba(97,9,190,.10)}

/* 33. UID BADGE */
.tap-uid-badge{background:var(--grad-sacred); color:#fff; border-radius:14px; padding:12px 16px; text-align:center}
.tap-uid-label{font-size:10px; text-transform:uppercase; letter-spacing:.1em; opacity:.8; margin-bottom:4px}
.tap-uid-value{font-size:22px; font-weight:900; letter-spacing:.06em; font-family:monospace}
.tap-uid-segment{font-size:11px; background:rgba(255,255,255,.2); border-radius:20px; padding:3px 10px; display:inline-block; margin-top:4px}

/* 34. PROFILE */
.tap-profile{display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin-bottom:20px; padding:18px; background:#fff; border-radius:var(--tap-radius); box-shadow:var(--tap-shadow)}
.tap-avatar{width:52px; height:52px; border-radius:50%; background:var(--grad-dawn); color:#fff; display:flex; align-items:center; justify-content:center; font-size:22px; font-weight:800; flex-shrink:0; font-family:"Fraunces",serif; border:3px solid var(--tap-marigold)}
.tap-pname{font-size:18px; font-weight:800; color:var(--tap-ink)}
.tap-pmeta{font-size:13px; color:var(--tap-muted); margin-top:2px}
.tap-logout{font-size:13px; padding:8px 14px; margin-left:auto}

/* 35. TABS */
.tap-tabs{display:flex; gap:0; border-bottom:2px solid var(--tap-line); margin-bottom:20px; overflow-x:auto; scrollbar-width:none}
.tap-tabs::-webkit-scrollbar{display:none}
.tap-tab{padding:10px 16px; border:none; background:none; font:inherit; font-size:13px; font-weight:700; color:var(--tap-muted); cursor:pointer; white-space:nowrap; border-bottom:3px solid transparent; margin-bottom:-2px; transition:all var(--dur-fast)}
.tap-tab.active{color:var(--tap-purple); border-bottom-color:var(--tap-purple)}
.tap-tab:hover{color:var(--tap-purple)}

/* 36. SUPPORT */
.tap-ticket-new{background:var(--tap-purple-pale); border-radius:var(--tap-radius); padding:18px; margin-bottom:20px}
.tap-ticket-new h3{margin:0 0 12px; color:var(--tap-chocolate)}
.tap-ticket-card{background:#fff; border:1.5px solid var(--tap-line); border-radius:var(--tap-radius); padding:14px 16px; cursor:pointer; margin-bottom:10px; transition:box-shadow var(--dur-fast),border-color var(--dur-fast)}
.tap-ticket-card:hover{box-shadow:var(--tap-shadow); border-color:var(--tap-purple)}
.tap-ticket-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:4px}
.tap-ticket-code{font-family:monospace; font-size:13px; color:var(--tap-purple); font-weight:700}
.tap-ticket-status{font-size:12px; text-transform:capitalize; font-weight:700}
.tap-ticket-sub{font-weight:700; font-size:15px; color:var(--tap-ink)}
.tap-ticket-meta{font-size:12px; color:var(--tap-muted); margin-top:4px; text-transform:capitalize}
.tap-ticket-thread{padding-top:8px}
.tap-ticket-msg{background:#f7f2fd; border-radius:10px; padding:10px 14px; margin-bottom:8px}
.tap-ticket-msg.admin{background:var(--tap-purple-pale)}
.tap-msg-sender{font-size:12px; color:var(--tap-muted); margin-bottom:4px; font-weight:700}
.tap-msg-body{font-size:14px; white-space:pre-wrap; line-height:1.6}

/* 37. MICRO-INTERACTIONS */
.tap-celebrate{position:fixed; inset:0; z-index:10000; pointer-events:none; display:flex; flex-direction:column; align-items:center; justify-content:center}
.tap-celebrate-mandala{font-size:80px; animation:tapMandalaBloom 1s var(--ease-spring) forwards}
@keyframes tapMandalaBloom{0%{transform:scale(0) rotate(-45deg);opacity:0}60%{transform:scale(1.2) rotate(10deg);opacity:1}100%{transform:scale(1) rotate(0);opacity:1}}
.tap-confetti-particle{position:fixed; width:8px; height:8px; border-radius:2px; animation:tapConfettiFall 2s ease-out forwards; pointer-events:none}
@keyframes tapConfettiFall{0%{transform:translateY(-20px) rotate(0);opacity:1}100%{transform:translateY(100vh) rotate(720deg);opacity:0}}
.tap-lotus-bloom{font-size:48px; animation:tapLotusBloom 0.8s var(--ease-spring); display:inline-block}
@keyframes tapLotusBloom{0%{transform:scale(.2);opacity:0}100%{transform:scale(1);opacity:1}}
.tap-reveal{opacity:0; transform:translateY(24px); transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.tap-reveal.visible{opacity:1; transform:translateY(0)}
.tap-view-enter{animation:tapViewIn var(--dur-std) var(--ease-out)}
@keyframes tapViewIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}

/* 38. SUCCESS / ERROR */
.tap-success{text-align:center; padding:24px 16px}
.tap-tick{width:64px; height:64px; background:var(--tap-ok); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:28px; margin:0 auto 16px; animation:tapTickPop var(--dur-slow) var(--ease-spring)}
@keyframes tapTickPop{0%{transform:scale(0)}80%{transform:scale(1.15)}100%{transform:scale(1)}}
.tap-err-inline{background:#fff0f0; border:1px solid #f5c6cb; border-radius:var(--tap-radius-sm); padding:10px 14px; font-size:13px; color:var(--tap-err); margin-bottom:10px}
.tap-notice-ok{color:var(--tap-ok); font-size:14px; padding:8px 0; font-weight:700}
.tap-empty{text-align:center; padding:40px 20px; color:var(--tap-muted); font-size:15px; line-height:1.8}

/* 39. HOMEPAGE */
.tap-home-section{padding:48px 0}
.tap-home-section:nth-child(even){background:#fff}
.tap-occasion-bar{background:linear-gradient(90deg,var(--tap-chocolate) 0%,var(--tap-terracotta) 100%); padding:16px; text-align:center; color:#fff}
.tap-occasion-bar h3{font-size:18px; margin-bottom:4px}
.tap-occasion-bar p{font-size:14px; opacity:.85; margin-bottom:12px}

/* 40. MISC */
.tap-divider{height:1px; background:var(--tap-line); margin:20px 0}
.tap-badge-alt{background:var(--tap-purple-pale); color:var(--tap-purple); font-size:11px; font-weight:800; padding:3px 10px; border-radius:999px}
.tap-devhint{background:#fffbe6; border:1px solid #f5c842; border-radius:8px; padding:8px 12px; font-size:13px; margin-bottom:12px; color:#6b5b00}
.tap-resend{background:none; border:none; color:var(--tap-purple); font:inherit; font-size:14px; cursor:pointer; font-weight:700; text-decoration:underline}
.tap-optin{display:flex; align-items:center; gap:10px; padding:12px 0; font-size:14px; cursor:pointer}
.tap-blist{display:flex; flex-direction:column; gap:12px}
.tap-bcard{background:#fff; border-radius:var(--tap-radius); border:1.5px solid var(--tap-line); padding:16px; transition:box-shadow var(--dur-fast)}
.tap-bcard:hover{box-shadow:var(--tap-shadow)}
.tap-bcard-title{font-weight:700; font-size:15px; margin-bottom:2px}
.tap-bcard-meta{font-size:12px; color:var(--tap-muted)}
.tap-bcard-amount{font-size:16px; font-weight:800; color:var(--tap-purple); font-family:"Fraunces",serif}
.tap-bactions{display:flex; gap:8px; margin-top:10px; flex-wrap:wrap}
.tap-wa-fab{position:fixed; bottom:calc(var(--nav-h) + 16px); right:20px; z-index:900; width:54px; height:54px; border-radius:50%; background:#25d366; color:#fff; display:flex; align-items:center; justify-content:center; font-size:26px; text-decoration:none; box-shadow:0 4px 20px rgba(37,211,102,.40); transition:transform var(--dur-std) var(--ease-spring)}
.tap-wa-fab:hover{transform:scale(1.1)}
@media(min-width:768px){.tap-wa-fab{bottom:20px}}
.tap-ref-card{background:linear-gradient(135deg,var(--tap-purple-pale),#fff); border:1px solid var(--tap-line); border-radius:var(--tap-radius-xl); padding:22px}
.tap-ref-title{font-weight:800; font-size:18px; color:var(--tap-chocolate); margin-bottom:6px}
.tap-ref-desc{font-size:14px; color:var(--tap-muted); margin-bottom:14px}
.tap-ref-code-row{display:flex; gap:8px; align-items:center; margin-bottom:16px; flex-wrap:wrap}
.tap-ref-code{font-family:monospace; font-size:24px; font-weight:900; color:var(--tap-purple); background:var(--tap-purple-pale); border-radius:var(--tap-radius-sm); padding:10px 18px; flex:1; text-align:center; letter-spacing:.1em}
.tap-ref-stats{display:flex; gap:20px}
.tap-ref-stat{text-align:center; font-size:13px; color:var(--tap-muted)}
.tap-ref-num{font-size:26px; font-weight:800; color:var(--tap-purple); font-family:"Fraunces",serif}
.tap-push-card{background:#f8f5ff; border-radius:var(--tap-radius); padding:14px 18px; margin-top:16px; display:flex; gap:12px; align-items:center; flex-wrap:wrap}
.tap-push-card p{margin:0; flex:1; font-size:14px}
.tap-suggestion .tap-btn{margin-top:10px; width:100%}
.tap-sec-lead{color:var(--tap-muted); font-size:14px; margin-bottom:14px}
.tap-profile-form{max-width:480px}
.tap-sum-row{display:flex; justify-content:space-between; padding:6px 0; font-size:14px; border-bottom:1px solid var(--tap-line)}
.tap-sum-row:last-child{border-bottom:none; font-weight:800; font-size:16px; color:var(--tap-purple)}
.tap-member-row{display:flex; gap:8px; margin-bottom:8px}
.tap-addmember{background:none; border:1.5px dashed var(--tap-line); border-radius:var(--tap-radius-sm); padding:8px; width:100%; color:var(--tap-purple); font:inherit; font-weight:700; cursor:pointer; transition:all var(--dur-fast)}
.tap-addmember:hover{border-color:var(--tap-purple); background:var(--tap-purple-pale)}
.tap-rm{background:#f7f2fd; border:none; border-radius:50%; width:30px; height:30px; font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--tap-muted); flex-shrink:0; transition:all var(--dur-fast)}
.tap-rm:hover{background:var(--tap-err); color:#fff}
.tap-hero{display:grid; grid-template-columns:1.1fr 1fr; gap:20px; align-items:start; padding:4px}
.tap-hero .tap-hero-img{aspect-ratio:4/3; border-radius:var(--tap-radius); background:linear-gradient(135deg,#efe3ff,#ffe8cc); background-size:cover; background-position:center; box-shadow:var(--tap-shadow)}
.tap-hero h1{font-size:clamp(22px,3.4vw,30px); margin-bottom:6px}
.tap-hero .tap-sub{color:var(--tap-muted); margin:0 0 10px}
.tap-pill{background:#f3ecfb; color:var(--tap-purple-deep); border-radius:999px; padding:6px 12px; font-size:12.5px; font-weight:600}
.tap-pill.gold{background:#fff1db; color:var(--tap-marigold-deep)}
.tap-opt{border:1.5px solid var(--tap-line); border-radius:14px; padding:14px; cursor:pointer; background:#fff; transition:border-color .15s,background .15s}
.tap-opt.is-sel{border-color:var(--tap-purple); background:#faf5ff; box-shadow:0 0 0 3px rgba(97,9,190,.08)}
.tap-slot{border:1.5px solid var(--tap-line); background:#fff; border-radius:12px; padding:10px 12px; cursor:pointer; font-size:13px; text-align:center; min-width:96px}
.tap-slot.is-sel{border-color:var(--tap-purple); background:#faf5ff}
.tap-addon{display:flex; gap:12px; align-items:flex-start; border:1.5px solid var(--tap-line); border-radius:14px; padding:13px; cursor:pointer; background:#fff}
.tap-addon.is-on{border-color:var(--tap-marigold); background:#fffaf1}
.tap-addon .tap-addon-name .tap-tag{font-size:10px; font-weight:800; color:#3a2400; background:var(--tap-marigold); padding:2px 7px; border-radius:999px; margin-left:6px; vertical-align:middle}
.tap-qty button{width:42px; height:42px; border:0; background:#f7f2fd; color:var(--tap-purple); font-size:20px; cursor:pointer}
.tap-summary{background:#fff; border:1px solid var(--tap-line); border-radius:var(--tap-radius); padding:16px; box-shadow:var(--tap-shadow)}
.tap-sticky{position:sticky; bottom:0; background:rgba(255,255,255,.96); backdrop-filter:blur(6px); border-top:1px solid var(--tap-line); padding:12px 4px; margin-top:18px; display:flex; align-items:center; gap:14px}
.tap-addon-name{font-weight:700; font-size:14px}
.tap-addon-desc{font-size:12px; color:var(--tap-muted); margin-top:2px}
.tap-addon-price{font-size:14px; font-weight:700; color:var(--tap-purple); white-space:nowrap}

/* 41. RESPONSIVE */
@media(max-width:600px){
  .tap-hero-v2{min-height:80vh}
  .tap-hero-title{font-size:30px}
  .tap-detail-layout{grid-template-columns:1fr}
  .tap-grid{grid-template-columns:1fr 1fr}
  .tap-plans-grid{grid-template-columns:1fr}
  .tap-ref-code-row{flex-direction:column}
  .tap-hero{grid-template-columns:1fr}
}
@media(max-width:400px){
  .tap-grid{grid-template-columns:1fr}
  .tap-otp-boxes input{width:40px; height:48px; font-size:18px}
  .tap-otp-boxes{gap:6px}
  .tap-step-circle{width:30px; height:30px; font-size:11px}
}

/* ═══════════════════════════════════════════════════════
   PHASE 7+ : ENHANCED ANIMATIONS & FLOATING UI FIXES
   ═══════════════════════════════════════════════════════ */

/* Staggered card reveals */
.tap-grid .tap-reveal:nth-child(1){transition-delay:.05s}
.tap-grid .tap-reveal:nth-child(2){transition-delay:.10s}
.tap-grid .tap-reveal:nth-child(3){transition-delay:.15s}
.tap-grid .tap-reveal:nth-child(4){transition-delay:.20s}
.tap-grid .tap-reveal:nth-child(5){transition-delay:.25s}
.tap-grid .tap-reveal:nth-child(6){transition-delay:.30s}
.tap-hscroll .tap-reveal:nth-child(1){transition-delay:.06s}
.tap-hscroll .tap-reveal:nth-child(2){transition-delay:.12s}
.tap-hscroll .tap-reveal:nth-child(3){transition-delay:.18s}

/* Count-up animation for stats */
.tap-stat-num{animation:tapCountReveal .8s var(--ease-spring) both}
@keyframes tapCountReveal{from{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}
.tap-stat-item:nth-child(1) .tap-stat-num{animation-delay:.1s}
.tap-stat-item:nth-child(2) .tap-stat-num{animation-delay:.2s}
.tap-stat-item:nth-child(3) .tap-stat-num{animation-delay:.3s}
.tap-stat-item:nth-child(4) .tap-stat-num{animation-delay:.4s}

/* Button micro press + ripple */
.tap-btn{position:relative;overflow:hidden}
.tap-btn::before{
  content:'';position:absolute;inset:0;
  background:rgba(255,255,255,0);
  transition:background var(--dur-fast);
}
.tap-btn:active::before{background:rgba(255,255,255,.15)}

/* Hover lift for cards */
.tap-pcard:hover{
  transform:translateY(-6px) scale(1.01);
  box-shadow:0 20px 60px rgba(97,9,190,.15);
}

/* Pandit avatar ring pulse on hover */
.tap-pandit-mini:hover .tap-pandit-mini-avatar{
  box-shadow:0 0 0 4px rgba(249,144,0,.4);
}

/* Deity item scale pop */
.tap-deity-item{
  transition:transform var(--dur-std) var(--ease-spring);
}
.tap-deity-item:active{transform:scale(.92)}

/* Page section entrance */
.tap-home-section{
  animation:tapSectionIn .6s var(--ease-out) both;
}
@keyframes tapSectionIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}

/* Input focus ring animation */
.tap-input:focus{
  animation:tapFocusPop .2s var(--ease-spring);
}
@keyframes tapFocusPop{0%{transform:scale(1)}40%{transform:scale(1.01)}100%{transform:scale(1)}}

/* OTP box fill animation */
.tap-otp-boxes input:not(:placeholder-shown){
  border-color:var(--tap-purple);
  background:var(--tap-purple-pale);
  animation:tapOtpFill .15s var(--ease-spring);
}
@keyframes tapOtpFill{0%{transform:scale(.9)}70%{transform:scale(1.05)}100%{transform:scale(1)}}

/* Muhurat calendar day hover */
.tap-cal-day{position:relative}
.tap-cal-day::before{
  content:'';position:absolute;inset:0;border-radius:50%;
  background:var(--tap-purple-pale);transform:scale(0);
  transition:transform var(--dur-fast) var(--ease-spring);
}
.tap-cal-day:hover::before{transform:scale(1)}
.tap-cal-day span{position:relative;z-index:1}

/* Modal entrance upgrade */
.tap-modal{
  animation:tapSheetUp var(--dur-slow) var(--ease-spring);
}
@keyframes tapSheetUp{
  from{transform:translateY(100%);opacity:0}
  to{transform:translateY(0);opacity:1}
}

/* Timeline item entrance */
.tap-timeline-item.tap-reveal{
  transition:opacity .5s var(--ease-out),transform .5s var(--ease-out);
  transform:translateX(-16px);
}
.tap-timeline-item.tap-reveal.visible{transform:translateX(0)}

/* Trust card shake on hover */
.tap-trust-card:hover{
  border-color:var(--tap-purple);
  box-shadow:var(--tap-glow);
  transition:all var(--dur-std);
}

/* Membership card shine sweep */
.tap-mem-card-v2::before{
  content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);
  transform:skewX(-20deg);
  animation:tapShine 3s ease-in-out infinite;
}
@keyframes tapShine{0%,100%{left:-100%}50%{left:150%}}

/* Live dot enhanced */
.tap-live-dot{
  box-shadow:0 0 0 0 rgba(224,59,59,.4);
  animation:tapLivePulse 1.4s ease-in-out infinite;
}
@keyframes tapLivePulse{
  0%{box-shadow:0 0 0 0 rgba(224,59,59,.4)}
  70%{box-shadow:0 0 0 8px rgba(224,59,59,0)}
  100%{box-shadow:0 0 0 0 rgba(224,59,59,0)}
}

/* ─── FLOATING UI FIXES ─────────────────────────────── */

/* WhatsApp FAB — improved positioning + tooltip */
.tap-wa-fab{
  width:50px; height:50px; font-size:22px;
  bottom:calc(var(--nav-h) + 12px);
  right:16px;
  transition:transform var(--dur-std) var(--ease-spring),box-shadow var(--dur-std);
  box-shadow:0 4px 16px rgba(37,211,102,.35);
}
.tap-wa-fab:hover{
  transform:scale(1.12) rotate(-5deg);
  box-shadow:0 8px 28px rgba(37,211,102,.50);
}
.tap-wa-fab::after{
  content:'Support';
  position:absolute;
  right:calc(100% + 8px);
  top:50%;transform:translateY(-50%);
  background:#1e0a2e;color:#fff;
  font-size:11px;font-weight:700;white-space:nowrap;
  padding:4px 10px;border-radius:999px;
  opacity:0;transition:opacity var(--dur-fast);
  pointer-events:none;
}
.tap-wa-fab:hover::after{opacity:1}
@media(min-width:768px){.tap-wa-fab{bottom:16px;right:20px}}

/* Bottom nav enhancement */
.tap-bottom-nav{
  padding:0 4px;
  background:rgba(255,255,255,.95);
}
.tap-bnav-item{
  border-radius:14px;
  margin:4px 2px;
  padding:6px 8px;
  transition:background var(--dur-fast),color var(--dur-fast);
}
.tap-bnav-item.active{
  background:var(--tap-purple-pale);
  color:var(--tap-purple);
}
.tap-bnav-item:hover:not(.active){
  background:#f8f5ff;
}
.tap-bnav-icon{font-size:20px;transition:transform var(--dur-std) var(--ease-spring)}
.tap-bnav-item.active .tap-bnav-icon{
  transform:translateY(-2px) scale(1.1);
}

/* Sticky CTA button lift */
.tap-sticky{
  box-shadow:0 -4px 20px rgba(97,9,190,.08);
}

/* Slot chip improvement */
.tap-slot{
  display:flex;flex-direction:column;align-items:center;
  padding:10px 12px;min-width:100px;
  transition:all var(--dur-fast) var(--ease-spring);
}
.tap-slot:hover:not(.is-full){
  border-color:var(--tap-purple);
  background:var(--tap-purple-pale);
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(97,9,190,.15);
}
.tap-slot.is-sel{
  border-color:var(--tap-purple);
  background:var(--tap-purple);
  color:#fff;
  transform:translateY(-2px) scale(1.04);
  box-shadow:0 6px 18px rgba(97,9,190,.30);
}
.tap-slot.is-full{opacity:.45;cursor:not-allowed}

/* Progress bar animation */
.tap-level-bar .tap-level-fill{
  animation:tapBarFill 1.2s var(--ease-out) both .3s;
}
@keyframes tapBarFill{from{width:0!important}to{}}

/* Back button hover */
.tap-back:hover{color:var(--tap-purple-deep);gap:10px}
.tap-back{transition:gap var(--dur-fast),color var(--dur-fast)}

/* Scroll indicator for filter bars */
.tap-filter-bar,.tap-tabs,.tap-ptabs,.tap-hscroll{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%);
}

/* Success tick animation */
.tap-tick{
  position:relative;
}
.tap-tick::after{
  content:'';
  position:absolute;
  inset:0;border-radius:50%;
  background:rgba(26,125,60,.2);
  animation:tapTickRing .6s var(--ease-spring) .3s both;
  transform:scale(0);
}
@keyframes tapTickRing{to{transform:scale(2);opacity:0}}

/* Detail tab underline animation */
.tap-dtab,.tap-tab,.tap-ptab{
  position:relative;
  overflow:hidden;
}
.tap-dtab.active::after,.tap-tab.active::after,.tap-ptab.active::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
  background:var(--tap-purple);
  animation:tapTabSlide .2s var(--ease-spring);
}
@keyframes tapTabSlide{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* Puja card image zoom-in on load */
.tap-thumb{
  overflow:hidden;
}
.tap-thumb,.tap-thumb img{
  transition:transform var(--dur-slow) var(--ease-out);
}

/* Loading skeleton pulse */
.tap-skeleton{
  border-radius:var(--tap-radius-sm);
}

/* Sacred Om watermark on header */
.tap-spiritual-header::after{
  content:'🕉';
  position:absolute;
  top:50%;right:20px;transform:translateY(-50%);
  font-size:60px;opacity:.06;
  animation:tapOmRotate 20s linear infinite;
}
@keyframes tapOmRotate{from{transform:translateY(-50%) rotate(0)}to{transform:translateY(-50%) rotate(360deg)}}

/* ─── BOOKING REPORT FIXES ──────────────────────────────── */

/* Fix: Widget scroll — no fixed height, integrates with page scroll */
.tap-booking-root,.tap-dashboard-root{
  min-height:400px; overflow:visible!important;
}

/* Fix: Skeleton loaders while API loads */
.tap-catalogue-skeleton{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;padding:4px}
.tap-skel-card-wrap{background:#fff;border-radius:var(--tap-radius);overflow:hidden;box-shadow:var(--tap-shadow)}
.tap-skel-img{height:140px;background:linear-gradient(90deg,#f0e8fd 25%,#e8d8fc 50%,#f0e8fd 75%);background-size:200% 100%;animation:tapShimmer 1.5s ease-in-out infinite}
.tap-skel-body{padding:14px}
.tap-skel-line{height:14px;border-radius:4px;margin-bottom:8px;background:linear-gradient(90deg,#f0e8fd 25%,#e8d8fc 50%,#f0e8fd 75%);background-size:200% 100%;animation:tapShimmer 1.5s ease-in-out infinite}
.tap-skel-line.s{width:60%}.tap-skel-line.xs{width:40%}

/* Fix: Live count label clarity */
.tap-live-count{letter-spacing:.02em}

/* Fix: Sticky CTA always visible */
.tap-sticky{
  position:sticky; bottom:0; z-index:100;
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px);
  padding:12px 16px;
  margin-top:20px;
  display:flex; align-items:center; gap:14px;
  border-top:1px solid var(--tap-line);
  box-shadow:0 -4px 20px rgba(0,0,0,.08);
}
.tap-sticky-price{
  font-size:20px; font-weight:800; color:var(--tap-purple); font-family:"Fraunces",serif;
  display:flex; flex-direction:column; gap:2px;
}

/* Fix: Review & Pay button — always visible, gold prominent */
.tap-sticky .tap-btn-gold{
  flex-shrink:0; font-size:16px; padding:14px 24px;
  box-shadow:0 4px 18px rgba(249,144,0,.4);
}

/* Fix: Toast always on top even with sticky elements */
.tap-toast{
  position:fixed!important; bottom:90px!important;
  left:50%!important; transform:translateX(-50%)!important;
  z-index:999999!important; pointer-events:none;
  min-width:220px; text-align:center;
}

/* Fix: Login required indicator before Review & Pay */
.tap-login-required-note{
  background:#fff4e7; border:1px solid #f99000;
  border-radius:10px; padding:10px 16px;
  font-size:14px; font-weight:600; color:#854F0B;
  text-align:center; margin-bottom:10px;
  animation:tapViewIn .25s var(--ease-spring);
}

/* Test mode badge */
.tap-test-mode-badge{
  background:#f5c842; color:#3a2400;
  font-size:11px; font-weight:800; padding:3px 10px;
  border-radius:999px; letter-spacing:.05em;
  display:inline-flex; align-items:center; gap:5px;
}

/* ─── VERIFIED BADGE (replaces "Verification Required" text) ─── */
.tap-verified-badge{
  display:inline-flex;align-items:center;gap:5px;
  background:#e8f8ee;color:#1a7d3c;
  font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;
  border:1px solid #b8e6c8;letter-spacing:.03em;
}
.tap-verified-badge::before{content:'✓ '}
.tap-unverified-badge{
  display:inline-flex;align-items:center;gap:5px;
  background:#f5f5f5;color:#888;
  font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;
  border:1px solid #ddd;
}
/* Remove diya animations — replace with simpler spinner */
.tap-diya-loader,.tap-diya-bounce{display:none}
.tap-loading-spinner{
  width:32px;height:32px;border:3px solid var(--tap-line);
  border-top-color:var(--tap-purple);border-radius:50%;
  animation:tapSpinSimple .8s linear infinite;
}
@keyframes tapSpinSimple{to{transform:rotate(360deg)}}

/* Logo placeholder top-left */
.tap-logo-wrap{display:flex;align-items:center;gap:10px;text-decoration:none}
.tap-logo-img{height:36px;width:auto;object-fit:contain}
.tap-logo-placeholder{
  width:120px;height:36px;background:linear-gradient(135deg,var(--tap-purple),var(--tap-terracotta));
  border-radius:8px;display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:800;color:#fff;letter-spacing:.05em;
}

/* Admin verified/unverified badges */
.tap-verified-admin{display:inline-flex;align-items:center;gap:4px;background:#e8f8ee;color:#1a7d3c;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid #b8e6c8}
.tap-unverified-admin{display:inline-flex;align-items:center;gap:4px;background:#f5f5f5;color:#888;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid #ddd}

/* ─── LOGO PLACEHOLDER ─────────────────────────────────────── */
.tap-logo-area { display:block; margin-bottom:12px }
.tap-site-logo { max-height:56px; max-width:200px; object-fit:contain; filter:brightness(0) invert(1) }
.tap-logo-placeholder {
  display:inline-block; padding:8px 18px;
  border:2px dashed rgba(255,255,255,.4);
  border-radius:10px; color:rgba(255,255,255,.7);
  font-size:13px; font-weight:600; letter-spacing:.05em;
  cursor:pointer; background:rgba(255,255,255,.05);
}
