/* ==========================================================================
   Adi Sanskar Booking - design system
   Midnight indigo + saffron + rose/violet. Bricolage Grotesque for display,
   Hind Siliguri for text (covers Bengali). One memorable element: the 3D
   planet hero. Everything else stays quiet.
   ========================================================================== */
:root{
	--ink:#0c1030; --ink2:#151a4a; --ink3:#232a73;
	--saffron:#ff7a1a; --rose:#ff3d71; --violet:#6d5efc; --cyan:#22d3ee; --gold:#ffc857;
	--bg:#f1f2fa; --card:#fff; --text:#171b3a; --muted:#6a7096; --line:#e4e6f3;
	--ok:#0fae7f; --warn:#e8930c; --bad:#e5484d; --info:#4f5df0;
	--grad:linear-gradient(135deg,#ff8a1f 0%,#ff3d71 100%);
	--grad-cool:linear-gradient(135deg,#6d5efc 0%,#22d3ee 100%);
	--grad-night:linear-gradient(160deg,#0c1030 0%,#1b1660 100%);
	--r-lg:22px; --r-md:14px; --r-sm:10px;
	--shadow-sm:0 1px 2px rgba(18,22,70,.06);
	--shadow:0 1px 2px rgba(18,22,70,.05),0 14px 34px -14px rgba(18,22,70,.22);
	--sb-w:268px;
	--font-display:'Bricolage Grotesque','Hind Siliguri',system-ui,sans-serif;
	--font-body:'Hind Siliguri','Noto Sans Bengali',system-ui,-apple-system,'Segoe UI',sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
	margin:0;font-family:var(--font-body);font-size:15px;line-height:1.6;color:var(--text);
	background:
		radial-gradient(900px 480px at 100% -8%,rgba(109,94,252,.13),transparent 60%),
		radial-gradient(760px 420px at -8% 0%,rgba(255,122,26,.12),transparent 55%),
		var(--bg);
	background-attachment:fixed;
	-webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;line-height:1.2;margin:0 0 .5em;color:var(--ink)}
a{color:var(--info);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
:focus-visible{outline:3px solid rgba(109,94,252,.55);outline-offset:2px;border-radius:8px}
svg.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- shared bits ---------- */
.bsc-theme{max-width:1180px;margin:0 auto;width:100%}
.bsc-page-title{font-size:1.7rem;margin-bottom:1rem}
.bsc-hint{color:var(--muted);font-size:13px}
.bsc-mt{margin-top:16px}
.bsc-full{grid-column:1/-1}
.only-mobile{display:none}
.stars{background-image:
	radial-gradient(1.6px 1.6px at 18px 26px,rgba(255,255,255,.9),transparent),
	radial-gradient(1.2px 1.2px at 96px 74px,rgba(255,255,255,.7),transparent),
	radial-gradient(1.4px 1.4px at 140px 130px,rgba(255,220,170,.85),transparent),
	radial-gradient(1px 1px at 60px 150px,rgba(255,255,255,.6),transparent);
	background-size:170px 170px}

/* ---------- APP SHELL (sidebar + topbar) ---------- */
.layout-app .sidebar{
	position:fixed;inset:0 auto 0 0;width:var(--sb-w);z-index:90;display:flex;flex-direction:column;
	background:var(--grad-night);color:#c9cdf5;padding:20px 14px 16px;overflow-y:auto;
	transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.sidebar::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.55}
.sidebar.stars::before{background:inherit}
.brand{display:flex;align-items:center;gap:12px;padding:6px 8px 22px;color:#fff;text-decoration:none!important}
.brand-orb{
	width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:22px;color:#fff;
	background:radial-gradient(circle at 30% 28%,#ffd08a,#ff7a1a 48%,#c22a4d 100%);
	box-shadow:0 0 0 4px rgba(255,138,31,.18),0 10px 24px -6px rgba(255,90,60,.7);
}
.brand-orb.has-logo{background:#fff;border-radius:12px;box-shadow:0 0 0 3px rgba(255,255,255,.18),0 8px 20px -8px rgba(0,0,0,.45);overflow:hidden;padding:3px;flex:0 0 auto}
.brand-logo{width:100%;height:100%;object-fit:contain;display:block;border-radius:8px}
.brand-name{font-family:var(--font-display);font-weight:700;font-size:1.05rem;line-height:1.15}
.brand-name small{display:block;font-family:var(--font-body);font-weight:400;font-size:11.5px;color:#9aa0d8}
.nav-group{display:flex;flex-direction:column;gap:4px;position:relative}
.nav-item{
	display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:14px;color:#b7bce9;font-weight:500;
	text-decoration:none!important;position:relative;transition:background .2s,color .2s,transform .2s;
}
.nav-item:hover{background:rgba(255,255,255,.07);color:#fff;transform:translateX(3px)}
.nav-item.active{color:#fff;background:var(--grad);box-shadow:0 12px 26px -10px rgba(255,80,90,.75)}
.sidebar-foot{margin-top:auto;padding-top:18px;position:relative}
.user-chip{display:flex;align-items:center;gap:10px;padding:10px;border-radius:16px;background:rgba(255,255,255,.07)}
.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:700;color:#fff;background:var(--grad-cool);flex:none}
.user-chip b{display:block;color:#fff;font-size:14px;line-height:1.2}
.user-chip small{color:#9aa0d8;font-size:12px;text-transform:capitalize}
.logout{display:flex;align-items:center;gap:10px;margin-top:8px;padding:10px 14px;border-radius:12px;color:#ffb3b8;text-decoration:none!important}
.logout:hover{background:rgba(255,80,90,.15)}
.sidebar-backdrop{display:none}

.main-wrap{margin-left:var(--sb-w);min-height:100vh;display:flex;flex-direction:column}
.topbar{
	position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:14px;padding:14px 28px;
	background:rgba(241,242,250,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
	border-bottom:1px solid rgba(228,230,243,.8);
}
.topbar-title{font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--ink)}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.icon-btn{width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm)}
.pill-user{display:flex;align-items:center;gap:8px;padding:5px 14px 5px 5px;border-radius:999px;background:#fff;border:1px solid var(--line);font-weight:600;font-size:14px}
.pill-user .avatar{width:30px;height:30px;font-size:13px}
.app-main{padding:26px 28px 40px;flex:1}
.app-footer{padding:16px 28px 28px;color:var(--muted);font-size:13px}

.bottom-nav{display:none}

/* ---------- PUBLIC SHELL (guests) ---------- */
.layout-public .pubbar{
	position:sticky;top:0;z-index:80;display:flex;align-items:center;gap:16px;padding:12px clamp(16px,4vw,48px);
	background:rgba(255,255,255,.78);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);
}
.pubbar .brand{padding:0;color:var(--ink)}
.pubbar .brand-name small{color:var(--muted)}
.pub-links{margin-left:auto;display:flex;align-items:center;gap:8px}
.pub-links a.plain{color:var(--ink);font-weight:600;padding:9px 14px;border-radius:12px;text-decoration:none}
.pub-links a.plain:hover{background:rgba(109,94,252,.09)}
.pub-main{padding:24px clamp(16px,4vw,48px) 60px}
.pub-foot{text-align:center;color:var(--muted);font-size:13px;padding:0 16px 30px}

/* ---------- AUTH SHELL ---------- */
.layout-auth{background:var(--bg)}
.auth-shell{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh}
.auth-visual{position:relative;overflow:hidden;background:var(--grad-night);color:#fff;padding:44px;display:flex;flex-direction:column;justify-content:space-between}
.auth-visual .brand{padding:0;position:relative;z-index:3}
.auth-copy{position:relative;z-index:3;max-width:440px}
.auth-copy h2{color:#fff;font-size:clamp(1.7rem,3vw,2.5rem);margin-bottom:12px}
.auth-copy p{color:#c4c8f3;font-size:1.02rem}
.auth-panel{display:grid;place-items:center;padding:32px 20px}
.auth-card{width:100%;max-width:430px;background:#fff;border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow);border:1px solid var(--line)}
.auth-card h2{font-size:1.5rem}

/* ---------- 3D PLANETS (hero + auth) ---------- */
.planet{position:absolute;border-radius:50%;animation:float 9s ease-in-out infinite;will-change:transform}
.planet.p1{
	width:220px;height:220px;right:6%;top:50%;margin-top:-110px;
	background:radial-gradient(circle at 30% 26%,#ffe2ad 0%,#ff9a2e 34%,#e2452f 72%,#7c1d3f 100%);
	box-shadow:inset -26px -30px 50px rgba(60,10,40,.55),0 40px 90px -20px rgba(255,110,40,.6);
}
.planet.p1::after{
	content:"";position:absolute;inset:-26% -46%;border-radius:50%;
	border:9px solid rgba(255,214,160,.55);border-left-color:rgba(255,214,160,.15);border-bottom-color:rgba(255,214,160,.85);
	transform:rotateX(74deg) rotate(-14deg);
}
.planet.p2{
	width:92px;height:92px;right:34%;top:14%;animation-duration:7s;animation-delay:-2s;
	background:radial-gradient(circle at 32% 28%,#d9d2ff,#6d5efc 55%,#2a1f9a 100%);
	box-shadow:inset -12px -14px 24px rgba(20,10,80,.55),0 24px 50px -14px rgba(109,94,252,.75);
}
.planet.p3{
	width:44px;height:44px;right:22%;bottom:12%;animation-duration:11s;animation-delay:-5s;
	background:radial-gradient(circle at 30% 28%,#c8fbff,#22d3ee 55%,#0b6a86 100%);
	box-shadow:inset -6px -8px 12px rgba(0,40,70,.5),0 14px 30px -10px rgba(34,211,238,.7);
}
.auth-visual .planet.p1{right:-40px;top:auto;bottom:80px;margin:0;width:260px;height:260px}
.auth-visual .planet.p2{right:38%;top:16%}
.auth-visual .planet.p3{right:18%;bottom:44%}

.hero{
	position:relative;overflow:hidden;border-radius:28px;padding:38px clamp(22px,4vw,46px);min-height:230px;color:#fff;
	background:var(--grad-night);box-shadow:0 26px 60px -26px rgba(20,20,90,.75);
	isolation:isolate;
}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.7;background-image:inherit}
.hero .hero-copy{max-width:560px;position:relative;z-index:2}
.hero h1{color:#fff;font-size:clamp(1.7rem,3.4vw,2.6rem);margin-bottom:10px}
.hero p{color:#c9cdf7;margin:0 0 20px;font-size:1.02rem;max-width:46ch}
.hero .btn-row{display:flex;gap:10px;flex-wrap:wrap}
.hero.compact{min-height:0;padding:28px clamp(22px,4vw,40px)}
.hero.compact .planet.p1{width:150px;height:150px;margin-top:-75px}
.hero.compact .planet.p2{width:64px;height:64px}
.hero.compact .planet.p3{display:none}

/* ---------- cards ---------- */
.bsc-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow);margin-bottom:20px}
.bsc-card h2{font-size:1.25rem;margin-top:0}
.bsc-card h3{font-size:1.02rem;color:var(--ink2)}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.card-head h2,.card-head h3{margin:0}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.grid-main{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}
.grid-main>.bsc-card,.grid-2>.bsc-card,.grid-3>.bsc-card{margin-bottom:0}
.section-gap{margin-top:22px}

/* 3D tilt (JS sets transform) */
.tilt{transform-style:preserve-3d;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s;will-change:transform}

/* stat tiles */
.stat{
	position:relative;overflow:hidden;border-radius:24px;padding:20px 20px 18px;color:#fff;
	background:linear-gradient(135deg,var(--c1),var(--c2));box-shadow:0 20px 34px -18px var(--sh,rgba(20,24,70,.5));
}
.stat::before,.stat::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.13);pointer-events:none}
.stat::before{width:150px;height:150px;right:-44px;top:-52px}
.stat::after{width:84px;height:84px;right:38px;bottom:-40px;background:rgba(255,255,255,.09)}
.stat-orb{
	width:46px;height:46px;border-radius:16px;display:grid;place-items:center;margin-bottom:14px;
	background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.4);backdrop-filter:blur(6px);
	transform:translateZ(34px);animation:float 6s ease-in-out infinite;
}
.stat-label{font-size:13.5px;opacity:.92}
.stat-value{font-family:var(--font-display);font-weight:800;font-size:2rem;line-height:1.15;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat-sub{font-size:12.5px;opacity:.85;margin-top:2px}
.stat.c-saffron{--c1:#ff8a1f;--c2:#ff3d71;--sh:rgba(255,80,80,.55)}
.stat.c-violet{--c1:#6d5efc;--c2:#a35cff;--sh:rgba(109,94,252,.55)}
.stat.c-teal{--c1:#0fae9f;--c2:#22d3ee;--sh:rgba(15,174,159,.5)}
.stat.c-night{--c1:#1b2160;--c2:#3b2f9e;--sh:rgba(27,33,96,.6)}

.chart-box{position:relative;height:270px}
.chart-box.short{height:230px}

/* ---------- buttons ---------- */
.btn,.bsc-btn-primary{
	display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;
	padding:12px 22px;border-radius:14px;font:600 14.5px var(--font-body);color:#fff!important;text-decoration:none!important;
	background:var(--grad);box-shadow:0 14px 26px -12px rgba(255,70,90,.7);
	position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s,filter .2s;
}
.btn:hover,.bsc-btn-primary:hover{transform:translateY(-2px);filter:saturate(1.1);box-shadow:0 18px 30px -12px rgba(255,70,90,.8)}
.btn:active,.bsc-btn-primary:active{transform:translateY(0)}
.btn[disabled],.bsc-btn-primary[disabled]{opacity:.55;pointer-events:none}
.btn-light{background:rgba(255,255,255,.14)!important;box-shadow:none!important;border:1px solid rgba(255,255,255,.35)}
.btn-ghost{background:#fff!important;color:var(--ink)!important;border:1px solid var(--line);box-shadow:var(--shadow-sm)!important}
.btn-sm,.bsc-btn-small{
	display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);
	padding:7px 13px;border-radius:11px;font:600 13px var(--font-body);text-decoration:none!important;margin-right:6px;
	transition:background .2s,transform .2s,border-color .2s;
}
.btn-sm:hover,.bsc-btn-small:hover{background:#f6f5ff;border-color:#cfd2f5;transform:translateY(-1px)}
.btn-sm.solid{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn-sm.ok{background:#e7f8f2;color:#0a8a64;border-color:#bfeadb}
.btn-sm.danger{background:#fdeceb;color:#c8323a;border-color:#f7c9cb}

/* ---------- forms ---------- */
.bsc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.bsc-form-grid label,.auth-form label,label.field{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink2)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],input[type=url],select,textarea{
	width:100%;border:1.5px solid var(--line);border-radius:13px;padding:11px 14px;font:400 15px var(--font-body);background:#fbfbff;color:var(--text);
	transition:border-color .2s,box-shadow .2s,background .2s;
}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--violet);background:#fff;box-shadow:0 0 0 4px rgba(109,94,252,.14)}
input[type=file]{font-size:13px;padding:9px;border:1.5px dashed #c9cdf0;border-radius:13px;background:#fafaff;width:100%}
input[type=checkbox],input[type=radio]{accent-color:var(--saffron);width:auto}
label.choice{flex-direction:row;align-items:center;gap:10px;font-weight:500;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;background:#fbfbff;cursor:pointer;transition:border-color .2s,background .2s}
label.choice:has(input:checked){border-color:var(--saffron);background:#fff5ec}
.auth-form{display:flex;flex-direction:column;gap:14px}

/* ---------- alerts / chips ---------- */
.bsc-auth-error,.bsc-auth-success{padding:11px 14px;border-radius:12px;font-size:13.5px;margin-bottom:14px}
.bsc-auth-error{background:#fdecec;color:#b42328}
.bsc-auth-success{background:#e6f7f0;color:#0a7a58}
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:999px;font-size:12px;font-weight:600;background:#eef0fb;color:#4a507a;text-transform:capitalize;white-space:nowrap}
.chip-ok{background:#e4f7ef;color:#0a8a64}
.chip-warn{background:#fff2dc;color:#b3700a}
.chip-bad{background:#fdeaea;color:#c8323a}
.chip-info{background:#e8eaff;color:#3f4bd6}

/* ---------- tables ---------- */
.table-wrap{overflow-x:auto;border-radius:var(--r-md)}
.bsc-table{width:100%;border-collapse:collapse;background:#fff}
.bsc-table th,.bsc-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);font-size:14px;vertical-align:middle}
.bsc-table th{font-family:var(--font-display);font-weight:600;color:var(--muted);font-size:13px;background:#f8f8fe;white-space:nowrap}
.bsc-table tbody tr{transition:background .15s}
.bsc-table tbody tr:hover{background:#faf9ff}
@media(max-width:820px){.bsc-table{display:block;overflow-x:auto;white-space:nowrap}}

/* ---------- lists / booking cards ---------- */
.b-card{border:1px solid var(--line);border-radius:18px;padding:18px;background:#fff;margin-bottom:14px;transition:box-shadow .2s,border-color .2s}
.b-card:hover{box-shadow:var(--shadow);border-color:#d7daf5}
.b-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}
.b-title{font-family:var(--font-display);font-weight:700;color:var(--ink);font-size:1.02rem}
.b-meta{color:var(--muted);font-size:13.5px;margin-top:2px}
.b-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.b-detail{margin-top:12px;padding:12px 14px;background:#f7f7fd;border-radius:14px;font-size:13.5px;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px 18px}
.b-detail div span{color:var(--muted);text-transform:capitalize}
.b-panel{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
.remedy{background:#fffaf2;border:1px solid #ffe4bf;border-radius:16px;padding:14px 16px;margin-top:12px}
.remedy h4{margin:0 0 6px;font-size:.95rem;color:#a55a00}
.remedy p:last-child{margin-bottom:0}
.rich ul,.rich ol{padding-left:22px}
.rich h1,.rich h2,.rich h3{font-size:1.05rem;margin:.6em 0 .3em}
.result-box{margin-top:12px;padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,#eef2ff,#f3ecff);border:1px solid #dcd9ff}
.list-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
.list-row:last-child{border-bottom:0}
.date-badge{width:54px;height:58px;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--grad);color:#fff;flex:none;line-height:1.1;box-shadow:0 12px 20px -10px rgba(255,70,90,.7)}
.date-badge b{font-family:var(--font-display);font-size:1.25rem}
.date-badge small{font-size:11px;opacity:.9}
.empty{text-align:center;color:var(--muted);padding:28px 10px}
.empty .ic{width:34px;height:34px;opacity:.5;margin-bottom:6px}

/* ---------- wallet ---------- */
.wallet-hero{display:flex;gap:16px;flex-wrap:wrap}
.wallet-hero .stat{flex:1 1 220px}
.bsc-tx-row{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:14px}

/* ---------- slots ---------- */
.bsc-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:14px}
.bsc-slot{border:1.5px solid var(--line);border-radius:13px;padding:10px 8px;text-align:center;font-size:12.5px;cursor:pointer;background:#fff;transition:all .18s}
.bsc-slot:hover{border-color:var(--violet);transform:translateY(-2px)}
.bsc-slot.selected{background:var(--ink2);color:#fff;border-color:var(--ink2)}
.bsc-slot.booked{background:#f1f1f6;color:#999;cursor:not-allowed}
.bsc-slot.blocked{background:#fdeeee;color:var(--bad);cursor:not-allowed}
.bsc-override-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.bsc-override-row input{width:auto}

/* booking page */
.day-scroll{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x proximity}
.day-pill{
	scroll-snap-align:start;min-width:76px;padding:10px 8px;border:1.5px solid var(--line);border-radius:18px;background:#fff;
	text-align:center;cursor:pointer;transition:all .2s;flex:none;font-family:var(--font-body)
}
.day-pill small{display:block;color:var(--muted);font-size:12px}
.day-pill b{display:block;font-family:var(--font-display);font-size:1.35rem;line-height:1.1;color:var(--ink)}
.day-pill i{font-style:normal;font-size:11.5px;color:var(--muted)}
.day-pill:hover{border-color:var(--saffron)}
.day-pill.on{background:var(--grad);border-color:transparent;box-shadow:0 14px 24px -12px rgba(255,70,90,.8)}
.day-pill.on small,.day-pill.on b,.day-pill.on i{color:#fff}
.time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;margin-top:6px}
.time-chip{padding:11px 8px;border:1.5px solid var(--line);border-radius:14px;background:#fff;text-align:center;font-weight:600;cursor:pointer;transition:all .18s;font-family:var(--font-body);font-size:14px;color:var(--ink)}
.time-chip:hover{border-color:var(--violet)}
.time-chip.on{background:var(--ink2);color:#fff;border-color:var(--ink2);box-shadow:0 12px 20px -10px rgba(21,26,74,.7)}
.step{display:flex;gap:14px;align-items:flex-start;margin-bottom:8px}
.step-num{width:30px;height:30px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px;flex:none;margin-top:2px}
.step h3{margin:0 0 2px}
.book-layout{display:grid;grid-template-columns:1.7fr 1fr;gap:20px;align-items:start}
.summary{position:sticky;top:86px}
.prov-head{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.prov-photo{width:84px;height:84px;border-radius:26px;object-fit:cover;box-shadow:0 14px 24px -12px rgba(20,24,70,.5)}
.prov-photo.ph{display:grid;place-items:center;font-family:var(--font-display);font-size:2rem;font-weight:800;color:#fff;background:var(--grad-cool)}
/* booking page: big highlighted consultant photo */
.prov-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}
.prov-ring{width:100%;max-width:280px;padding:5px;border-radius:38px;background:var(--grad);box-shadow:0 26px 46px -18px rgba(255,122,26,.65),0 0 0 8px rgba(255,122,26,.10)}
.prov-ring .prov-photo{display:block;width:100%;height:auto;aspect-ratio:1/1;border-radius:33px;object-fit:cover;object-position:center top;border:4px solid #fff;box-shadow:none}
.prov-ring .prov-photo.ph{display:grid;font-size:5rem}
.prov-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:999px;background:rgba(34,197,94,.12);color:#0fae7f;font-weight:700;font-size:12.5px;letter-spacing:.2px}
.prov-name{margin:0;font-size:1.35rem}
.prov-exp{margin:6px 0 0;display:inline-block;padding:3px 12px;border-radius:999px;background:rgba(255,122,26,.12);color:#c4570a;font-weight:600;font-size:13px}
.price-tag{font-family:var(--font-display);font-weight:800;font-size:2.1rem;color:var(--ink)}
.rating{display:inline-flex;align-items:center;gap:5px;font-weight:700;color:#a55a00}
.rating svg{width:16px;height:16px;fill:#ffb02e;stroke:#ffb02e}

/* consultants grid (home) */
.consult-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:20px}
.consult{background:#fff;border:1px solid var(--line);border-radius:26px;padding:22px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;text-align:left}
.consult .top{display:flex;gap:14px;align-items:center;margin-bottom:6px}
.consult .prov-photo{width:70px;height:70px;border-radius:22px}
.consult h3{margin:0;font-size:1.1rem}
.consult .foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:14px}

/* rich editor */
.ql-toolbar.ql-snow{border:1.5px solid var(--line)!important;border-radius:14px 14px 0 0;background:#fafaff}
.ql-container.ql-snow{border:1.5px solid var(--line)!important;border-top:0!important;border-radius:0 0 14px 14px;font-family:var(--font-body);font-size:15px;background:#fff}
.ql-editor{min-height:140px}

/* modal */
.modal-back{position:fixed;inset:0;z-index:120;background:rgba(9,12,40,.55);backdrop-filter:blur(4px);display:grid;place-items:center;padding:18px}
.modal{background:#fff;border-radius:26px;max-width:640px;width:100%;max-height:90vh;overflow:auto;padding:26px;box-shadow:0 40px 80px -20px rgba(9,12,40,.6)}
.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
[x-cloak]{display:none!important}

/* ---------- motion (one orchestrated entrance + purposeful hovers) ---------- */
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes rise{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
@keyframes twinkle{0%,100%{opacity:.5}50%{opacity:1}}
.intro>*{animation:rise .7s cubic-bezier(.2,.8,.2,1) both}
.intro>*:nth-child(1){animation-delay:.05s}.intro>*:nth-child(2){animation-delay:.14s}
.intro>*:nth-child(3){animation-delay:.23s}.intro>*:nth-child(4){animation-delay:.32s}
.intro>*:nth-child(5){animation-delay:.41s}
.hero.stars{animation:none}
.hero.stars::after{content:"";position:absolute;inset:0;z-index:-1;background-image:inherit;background-size:170px 170px;animation:twinkle 4s ease-in-out infinite}

/* ---------- responsive: app-like on mobile ---------- */
@media(max-width:1080px){
	.grid-4{grid-template-columns:repeat(2,1fr)}
	.grid-main,.book-layout{grid-template-columns:1fr}
	.summary{position:static}
}
@media(max-width:980px){
	.only-mobile{display:grid}
	.layout-app .sidebar{transform:translateX(-102%);box-shadow:none}
	body.nav-open .sidebar{transform:none;box-shadow:0 0 80px rgba(6,8,30,.6)}
	.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:80;background:rgba(8,10,36,.5);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .3s}
	body.nav-open .sidebar-backdrop{opacity:1;pointer-events:auto}
	.main-wrap{margin-left:0}
	.topbar{padding:12px 16px}
	.app-main{padding:18px 16px 110px}
	.app-footer{display:none}
	.bottom-nav{
		display:flex;justify-content:space-around;position:fixed;left:12px;right:12px;bottom:12px;z-index:70;padding:8px;
		background:rgba(14,18,54,.94);backdrop-filter:blur(16px);border-radius:24px;box-shadow:0 24px 40px -12px rgba(8,10,40,.7)
	}
	.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;color:#aab0e0;padding:8px 10px;border-radius:17px;text-decoration:none!important;min-width:58px;transition:all .2s}
	.bottom-nav a.active{color:#fff;background:var(--grad);box-shadow:0 10px 18px -8px rgba(255,70,90,.8)}
	.auth-shell{grid-template-columns:1fr}
	.auth-visual{min-height:210px;padding:26px}
	.auth-visual .planet.p1{width:150px;height:150px;bottom:-30px}
	.auth-copy{display:none}
	.pub-links .hide-sm{display:none}
}
@media(max-width:640px){
	.grid-4,.grid-3,.grid-2{grid-template-columns:1fr 1fr}
	.bsc-form-grid{grid-template-columns:1fr}
	.stat-value{font-size:1.6rem}
	.hero{border-radius:24px}
	.hero .planet.p1{opacity:.35;right:-50px}
	.bsc-card{padding:18px}
	.modal{padding:20px}
}
@media(max-width:420px){.grid-4{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){
	*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print{
	.sidebar,.topbar,.bottom-nav,.pubbar,.app-footer,.pub-foot,.bsc-no-print{display:none!important}
	.main-wrap{margin:0}.app-main,.pub-main{padding:0}
	body{background:#fff}.bsc-card{box-shadow:none}
}