/* ============================================================
   eKamalia — Premium marketplace theme (v3)
   OLX-style, mobile-first. Base: 360px · Breakpoints: 768 / 900 / 1024px
   Brand: deep teal #002f34 family + yellow #ffce32 family
   Pure CSS — no external fonts, no external URLs, no images.
   ============================================================ */

/* ============ 1. Design tokens ============ */
:root{
  /* Brand — layered teal */
  --primary:#002f34;
  --primary-800:#01262b;
  --primary-700:#01414a;
  --primary-600:#0a5a62;
  --primary-100:#d9ecec;
  --primary-50:#eef6f6;
  --primary-dark:#00181c;
  /* Brand — layered yellow accent */
  --accent:#ffce32;
  --accent-600:#f5b700;
  --accent-700:#d99e00;
  --accent-100:#ffedb3;
  --accent-50:#fff9e3;
  --accent-dark:#f5b700;
  /* Semantic */
  --link:#2f6bff;
  --success:#1e9e57; --warning:#ffce32; --danger:#e63946; --info:#2f6bff;
  /* Neutrals */
  --dark:#002f34; --muted:#62787c; --muted2:#93a5a8;
  --bg:#edf1f2; --card:#ffffff; --line:#e1e8e9; --line-soft:#eef3f4;
  /* Geometry */
  --radius:16px; --radius-sm:10px; --radius-lg:24px;
  /* Layered shadows: ambient + direct */
  --shadow:0 1px 2px rgba(0,47,52,.07), 0 6px 18px rgba(0,47,52,.07);
  --shadow-md:0 2px 6px rgba(0,47,52,.08), 0 14px 34px rgba(0,47,52,.10);
  --shadow-lg:0 10px 40px rgba(0,47,52,.18);
  --shadow-gold:0 6px 20px rgba(245,183,0,.35);
  --shadow-glow:0 0 0 4px rgba(255,206,50,.30);
  --hdr-h:64px;
  /* Motion */
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-spring:cubic-bezier(.34,1.45,.64,1);
}

/* ============ 2. Reset & base ============ */
*{box-sizing:border-box; margin:0; padding:0}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
::selection{background:rgba(255,206,50,.5); color:#002f34}
body{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Helvetica,Arial,sans-serif;
  background:var(--bg); color:var(--dark); font-size:15px; line-height:1.55;
  padding-bottom:78px; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
/* soft premium ambience behind everything */
body::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(1100px 520px at 88% -8%, rgba(255,206,50,.10), transparent 60%),
    radial-gradient(900px 520px at -12% 18%, rgba(0,47,52,.06), transparent 55%),
    radial-gradient(700px 500px at 50% 110%, rgba(10,90,98,.05), transparent 60%);
}
img{max-width:100%; height:auto; display:block}
a{color:var(--link); text-decoration:none}
a,button{-webkit-tap-highlight-color:transparent}
button{font-family:inherit}
.container{max-width:1280px; margin:0 auto; padding:14px 14px}

/* ============ 3. Global polish ============ */
::-webkit-scrollbar{width:10px; height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#c2d2d4,#a6babc); border-radius:8px; border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--primary-600)}
:focus-visible{outline:2px solid var(--accent-600); outline-offset:2px; border-radius:8px}

/* ============ 4. Motion library ============ */
@keyframes fadeIn{from{opacity:.35} to{opacity:1}}
@keyframes fadeUp{from{opacity:0; transform:translateY(14px)} to{opacity:1; transform:translateY(0)}}
@keyframes popIn{0%{transform:scale(.4)} 55%{transform:scale(1.28)} 100%{transform:scale(1)}}
@keyframes shimmer{to{background-position:-200% 0}}
@keyframes sheenSweep{to{transform:translateX(220%) skewX(-18deg)}}
@keyframes floatY{0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)}}
@keyframes pulseSoft{0%,100%{opacity:1} 50%{opacity:.55}}
@keyframes captionIn{from{opacity:0; transform:translateY(16px)} to{opacity:1; transform:translateY(0)}}
@keyframes dotPulse{0%{box-shadow:0 0 0 0 rgba(255,206,50,.55)} 100%{box-shadow:0 0 0 8px rgba(255,206,50,0)}}

/* ============ 4b. App feel — instant, tactile, native-like ============ */
*{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
html{overscroll-behavior-y:none}
.shop-card:active{transform:scale(.98)}
main.container{animation:fadeUp .25s ease both}
/* Performance killswitch — Admin → Settings → Performance → Reduce animations */
body.perf-reduce-motion *,body.perf-reduce-motion *::before,body.perf-reduce-motion *::after{animation:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  main.container{animation:none}
}

/* ============ 5. Top bar — premium glass ============ */
.topbar{
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(16px) saturate(1.5);
  -webkit-backdrop-filter:blur(16px) saturate(1.5);
  box-shadow:0 1px 0 rgba(0,47,52,.08), 0 10px 28px rgba(0,47,52,.07);
  position:sticky; top:0; z-index:80;
  border-bottom:1px solid rgba(0,47,52,.07);
}
.topbar::before{content:""; display:block; height:3px;
  background:linear-gradient(90deg,#0a5a62,#1595a3 28%,#e8a90c 50%,#1595a3 72%,#0a5a62);}
.logo-img{transition:transform .25s var(--ease), filter .25s var(--ease)}
.logo:hover .logo-img{transform:scale(1.045); filter:drop-shadow(0 5px 12px rgba(10,90,98,.28))}
.topbar-inner{max-width:1280px; margin:0 auto; display:flex; align-items:center; gap:10px; padding:8px 14px; min-height:var(--hdr-h)}
.logo{font-weight:900; font-size:22px; letter-spacing:-.6px; white-space:nowrap; display:inline-flex; align-items:center}
.logo .logo-em{margin-right:3px; font-size:20px; filter:drop-shadow(0 2px 4px rgba(245,183,0,.4))}
.logo span:last-child{
  background:linear-gradient(115deg,#002f34 25%,#0a6b62 60%,#0f8a74 90%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.logo span{color:var(--dark)}
.loc-picker{display:none; align-items:center; gap:5px; color:var(--dark); font-size:13px; font-weight:700; white-space:nowrap;
  background:var(--primary-50); border:1px solid var(--line); padding:8px 10px; border-radius:999px; transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}
.loc-picker:hover{border-color:var(--primary-600); box-shadow:var(--shadow)}
.loc-picker select{border:0; background:transparent; font-size:13px; font-weight:700; color:var(--dark); max-width:112px; outline:none; cursor:pointer}
.searchbar{flex:1; display:flex; align-items:center; background:#fff; border:1.5px solid var(--line); border-radius:999px; padding:4px 4px 4px 6px; min-width:0;
  box-shadow:inset 0 2px 6px rgba(0,47,52,.06), 0 3px 12px rgba(0,47,52,.06); transition:border-color .2s var(--ease), box-shadow .25s var(--ease)}
.searchbar:focus-within{border-color:var(--primary-600); box-shadow:inset 0 2px 6px rgba(0,47,52,.05), 0 0 0 4px rgba(10,90,98,.14), 0 6px 18px rgba(10,90,98,.10)}
.searchbar .search-cat{border:0; border-right:1px solid var(--line); background:transparent; padding:10px 4px 10px 12px; font-size:13px; max-width:140px; outline:none; color:var(--dark); display:none; font-weight:700; cursor:pointer}
.searchbar input{flex:1; border:0; background:transparent; padding:11px 12px; font-size:14px; outline:none; min-width:0; color:var(--dark)}
.searchbar input::placeholder{color:var(--muted2)}
.searchbar button{border:0; background:linear-gradient(135deg,var(--primary-700),var(--primary)); color:#fff; flex:0 0 42px; width:42px; height:42px; border-radius:50%; font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:transform .2s var(--ease),box-shadow .2s var(--ease); box-shadow:0 4px 12px rgba(10,90,98,.35)}
.searchbar button:hover{background:linear-gradient(135deg,var(--primary-600),var(--primary-700)); transform:scale(1.07); box-shadow:0 6px 16px rgba(10,90,98,.45)}
.searchbar button:active{transform:scale(.94)}
.topbar-actions{display:flex; align-items:center; gap:7px; margin-left:auto}
.icon-btn{position:relative; display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; font-size:19px; padding:0; color:var(--dark); border-radius:50%;
  background:linear-gradient(135deg,#f5f9fa,#e9f1f3); border:1px solid rgba(0,47,52,.09); transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}
.icon-btn:hover{background:linear-gradient(135deg,var(--primary-700),var(--primary)); color:#fff; transform:translateY(-2px); box-shadow:0 8px 16px -6px rgba(10,90,98,.5); border-color:transparent}
.icon-btn svg{width:21px; height:21px; display:block}
.searchbar button svg{width:18px; height:18px; display:block}
.loc-picker svg{width:16px; height:16px; display:block; color:var(--primary-700); flex-shrink:0}
.badge{position:absolute; top:3px; right:1px; background:linear-gradient(135deg,#f04452,#c81e2e); color:#fff; font-size:10px; min-width:18px; height:18px; border-radius:10px;
  display:flex; align-items:center; justify-content:center; padding:0 5px; font-weight:800; box-shadow:0 2px 6px rgba(230,57,70,.45); border:1.5px solid #fff}
/* Premium SELL — gradient gold with shine sweep */
.sell-btn{position:relative; overflow:hidden; display:none; align-items:center; gap:7px;
  background:linear-gradient(135deg,#ffd94d 0%,var(--accent) 45%,var(--accent-600) 100%);
  color:var(--primary); font-weight:900; font-size:14px; letter-spacing:1px; padding:11px 20px; border-radius:10px; cursor:pointer; text-decoration:none;
  border:1px solid rgba(217,158,0,.55); box-shadow:var(--shadow), var(--shadow-gold); transition:transform .18s var(--ease), box-shadow .25s var(--ease)}
.sell-btn::before{content:""; position:absolute; top:0; bottom:0; left:-60%; width:45%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);
  transform:skewX(-18deg); transition:none}
.sell-btn:hover{transform:translateY(-2px); box-shadow:var(--shadow-md), var(--shadow-gold); color:var(--primary)}
.sell-btn:hover::before{animation:sheenSweep .7s var(--ease)}
.sell-btn:active{transform:translateY(1px) scale(.98); box-shadow:var(--shadow)}
.sell-btn .plus{font-size:19px; line-height:1; font-weight:900}
.top-hello{display:none; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--dark); padding:4px 13px 4px 4px; border-radius:999px;
  background:linear-gradient(135deg,#f5f9fa,#e9f1f3); border:1px solid rgba(0,47,52,.09); transition:border-color .2s var(--ease),box-shadow .2s var(--ease),color .2s var(--ease),transform .2s var(--ease); text-decoration:none}
.top-hello:hover{border-color:var(--primary-600); box-shadow:0 6px 14px -6px rgba(10,90,98,.35); color:var(--primary-800); transform:translateY(-1px)}
.th-av{width:32px; height:32px; border-radius:50%; background:linear-gradient(135deg,#0a5a62,#1595a3); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-weight:800; font-size:14px; text-transform:uppercase; box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.th-name{max-width:92px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
@media(min-width:768px){
  .loc-picker{display:inline-flex}
  .searchbar .search-cat{display:block}
  .sell-btn{display:inline-flex}
  .top-hello{display:inline-flex}
  .topbar-inner{gap:16px}
}

/* ============ 6. Bottom nav (mobile) — premium themeable ============ */
.bottomnav{position:fixed; bottom:0; left:0; right:0; z-index:90; display:flex;
  padding-bottom:env(safe-area-inset-bottom); --bnav-accent:#0e7c86}
.bottomnav a{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  padding:9px 4px 8px; color:var(--muted); font-size:10.5px; font-weight:700; text-decoration:none; position:relative;
  transition:color .2s var(--ease), background .25s var(--ease)}
.bn-badge{position:absolute; top:3px; left:calc(50% + 1px); background:linear-gradient(135deg,#f04452,#c81e2e); color:#fff;
  font-size:10px; font-weight:800; line-height:1; min-width:18px; height:18px; padding:0 5px; border-radius:10px;
  display:flex; align-items:center; justify-content:center; border:2px solid #fff; box-shadow:0 2px 6px rgba(0,0,0,.28); z-index:2}
.bottomnav a svg{width:23px; height:23px; stroke:currentColor; fill:none; stroke-width:1.9;
  stroke-linecap:round; stroke-linejoin:round; transition:transform .25s var(--ease-spring), filter .25s var(--ease)}
.bottomnav a:active svg{transform:scale(1.22)}
.bottomnav a.active{color:var(--bnav-accent)}
.bottomnav .sell-fab span.cfab{width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  margin-top:-26px; border:3px solid rgba(255,255,255,.92);
  background:linear-gradient(135deg,#12a3b0,#0a5a62); color:#fff;
  box-shadow:0 10px 22px rgba(10,90,98,.45), 0 0 0 5px rgba(232,169,12,.22)}
.bottomnav .sell-fab span.cfab svg{width:25px; height:25px; stroke:#fff; stroke-width:2.4}
.bottomnav .sell-fab small{margin-top:3px}

/* — Style 1: Glass (default) — frosted bar, glowing active icon */
.nav-glass{background:rgba(255,255,255,.88); backdrop-filter:blur(18px) saturate(1.5); -webkit-backdrop-filter:blur(18px) saturate(1.5);
  border-top:1px solid rgba(0,47,52,.09); box-shadow:0 -8px 28px rgba(0,47,52,.10)}
.nav-glass a.active svg{filter:drop-shadow(0 3px 7px rgba(14,124,134,.45))}

/* — Style 2: Floating pill — detached, soft shadow, glow-dot indicator */
.nav-float{left:12px; right:12px; bottom:calc(12px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(0,47,52,.08); border-radius:24px; box-shadow:0 16px 38px rgba(0,47,52,.20)}
.nav-float a{padding:10px 4px 9px}
.nav-float a.active{color:var(--bnav-accent)}
.nav-float a.active::after{content:""; width:5px; height:5px; border-radius:50%;
  background:var(--bnav-accent); box-shadow:0 0 9px var(--bnav-accent)}

/* — Style 3: Midnight gold — deep teal bar, gold active glow */
.nav-midnight{background:linear-gradient(180deg,#0d454c 0%,#062b30 100%);
  border-top:1px solid rgba(242,201,60,.45); box-shadow:0 -12px 32px rgba(0,0,0,.42)}
.nav-midnight a{color:#8fb8bd}
.nav-midnight a.active{color:#f2c93c}
.nav-midnight a.active svg{filter:drop-shadow(0 0 8px rgba(242,201,60,.75))}
.nav-midnight .sell-fab span.cfab{background:linear-gradient(135deg,#ffe27a,#dfa40b); border-color:#062b30;
  box-shadow:0 10px 22px rgba(0,0,0,.5), 0 0 0 5px rgba(242,201,60,.25)}
.nav-midnight .sell-fab span.cfab svg{stroke:#062b30}
.nav-midnight .sell-fab small{color:#cfe3e6}

/* — Style 4: Aurora — gradient hairline, gradient bead indicator */
.nav-aurora{background:rgba(255,255,255,.94); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border-top:1px solid rgba(0,47,52,.08); box-shadow:0 -8px 28px rgba(0,47,52,.10)}
.nav-aurora::before{content:""; position:absolute; top:-1px; left:0; right:0; height:3px;
  background:linear-gradient(90deg,#0a5a62,#1595a3 25%,#e8a90c 50%,#b04df0 75%,#0a5a62)}
.nav-aurora a svg{order:0}
.nav-aurora a::after{content:""; order:1; width:0; height:4px; border-radius:4px; transition:width .25s var(--ease-spring)}
.nav-aurora a small{order:2}
.nav-aurora a.active{color:var(--bnav-accent)}
.nav-aurora a.active::after{width:22px; background:linear-gradient(90deg,var(--bnav-accent),#e8a90c);
  box-shadow:0 2px 8px rgba(232,169,12,.5)}

/* — Style 5: Minima — clean white, top tab indicator */
.nav-minima{background:#ffffff; border-top:1px solid #edf1f1}
.nav-minima a{color:#8a9a9b; position:relative}
.nav-minima a.active{color:var(--bnav-accent)}
.nav-minima a.active::before{content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:26px; height:3px; border-radius:0 0 5px 5px; background:var(--bnav-accent)}
.nav-minima a.active svg{transform:translateY(-1px)}

@media(min-width:768px){ body{padding-bottom:0} .bottomnav{display:none} }

/* Performance: kill mobile glass-blur on the bottom nav when disabled (Admin → Settings → Performance).
   Default OFF = blur disabled on mobile for a faster, jank-free bar. */
@media (max-width:767px){
  body.perf-noblur .bottomnav.nav-glass,body.perf-noblur .bottomnav.nav-aurora{
    backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(255,255,255,.97)}
}

/* ============ 7. Buttons — premium gradient family ============ */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:7px; background:linear-gradient(135deg,var(--primary-600),var(--primary-800));
  color:#fff; border:1px solid rgba(0,24,28,.35); border-radius:10px; padding:11px 20px; font-size:15px; font-weight:700; cursor:pointer; text-align:center;
  box-shadow:0 2px 4px rgba(0,47,52,.18), inset 0 1px 0 rgba(255,255,255,.14);
  transition:transform .16s var(--ease), box-shadow .25s var(--ease), filter .2s var(--ease)}
.btn:hover{background:linear-gradient(135deg,var(--primary-700),var(--primary-dark)); color:#fff; transform:translateY(-1px); box-shadow:var(--shadow-md)}
.btn:active{transform:translateY(1px) scale(.98); box-shadow:var(--shadow)}
.btn-sm{padding:8px 14px; font-size:13px; border-radius:8px}
.btn-lg{padding:14px 26px; font-size:16px; border-radius:12px}
.btn-primary{background:linear-gradient(135deg,#3f83ff,#1f4fe0); border-color:rgba(20,50,160,.4)}
.btn-primary:hover{background:linear-gradient(135deg,#2f6bff,#1a44c8)}
.btn-outline{background:#fff; color:var(--primary); border:1.5px solid var(--primary-600); box-shadow:none}
.btn-outline:hover{background:var(--primary-50); color:var(--primary-800); transform:translateY(-1px); box-shadow:var(--shadow)}
.btn-accent{background:linear-gradient(135deg,#ffd94d,var(--accent-600)); color:var(--primary); border-color:rgba(217,158,0,.5)}
.btn-accent:hover{background:linear-gradient(135deg,var(--accent),var(--accent-700)); color:var(--primary); transform:translateY(-1px); box-shadow:var(--shadow-gold)}
.btn-success{background:linear-gradient(135deg,#2bb673,#147a44); border-color:rgba(20,122,68,.4)}
.btn-danger{background:linear-gradient(135deg,#f04452,#c81e2e); border-color:rgba(200,30,46,.4)}
.btn-warning{background:linear-gradient(135deg,#ffd94d,var(--accent-600)); color:#3a2b00; border-color:rgba(217,158,0,.5)}
.btn-block{width:100%}
.btn:disabled{opacity:.55; cursor:not-allowed; transform:none; box-shadow:none}

/* ============ 8. Forms — premium inputs ============ */
.form-group{margin-bottom:15px}
.form-group label{display:block; font-weight:700; margin-bottom:6px; font-size:13.5px; color:var(--primary-800); letter-spacing:.1px}
.form-control{width:100%; padding:11px 14px; border:1.5px solid #cfd8da; border-radius:10px; font-size:15px; background:#fbfdfd; color:var(--dark);
  box-shadow:inset 0 2px 5px rgba(0,47,52,.05); transition:border-color .2s var(--ease), box-shadow .25s var(--ease), background .2s}
.form-control::placeholder{color:var(--muted2)}
.form-control:hover{border-color:#aebfc2; background:#fff}
.form-control:focus{outline:none; border-color:var(--primary-600); background:#fff; box-shadow:0 0 0 4px rgba(10,90,98,.13)}
textarea.form-control{min-height:104px; resize:vertical; line-height:1.5}
select.form-control{appearance:none; -webkit-appearance:none; cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230a5a62' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; padding-right:36px}
.form-row{display:flex; gap:12px; flex-wrap:wrap} .form-row .form-group{flex:1; min-width:150px}
.form-check{display:flex; align-items:center; gap:9px; font-size:14px; cursor:pointer}
.form-check input{width:19px; height:19px; accent-color:var(--primary-600); cursor:pointer}

/* ============ 9. Cards & listing grids ============ */
.card{background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow); padding:18px; margin-bottom:16px; border:1px solid var(--line);
  transition:box-shadow .25s var(--ease), transform .25s var(--ease)}
.grid-cards{display:grid; grid-template-columns:repeat(2,1fr); gap:12px}
.grid-cards>*{min-width:0}
@media(min-width:768px){ .grid-cards{grid-template-columns:repeat(4,1fr); gap:16px} }
@media(min-width:1024px){ .grid-cards{grid-template-columns:repeat(5,1fr)} }
/* staggered premium entrance for grid cards */
.grid-cards > *{animation:fadeUp .5s var(--ease) backwards}
.grid-cards > *:nth-child(2){animation-delay:.04s} .grid-cards > *:nth-child(3){animation-delay:.08s}
.grid-cards > *:nth-child(4){animation-delay:.12s} .grid-cards > *:nth-child(5){animation-delay:.16s}
.grid-cards > *:nth-child(6){animation-delay:.2s} .grid-cards > *:nth-child(7){animation-delay:.24s}
.grid-cards > *:nth-child(8){animation-delay:.28s} .grid-cards > *:nth-child(9){animation-delay:.32s}
.grid-cards > *:nth-child(10){animation-delay:.36s}

/* OLX-style listing card — premium */
.listing-card{position:relative; background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line);
  display:flex; flex-direction:column; transition:box-shadow .28s var(--ease), transform .28s var(--ease), border-color .25s var(--ease)}
.listing-card:hover{box-shadow:var(--shadow-md); transform:translateY(-5px); border-color:#cfd9db}
.listing-card:active{transform:translateY(-2px) scale(.995)}
.lc-media{position:relative; display:block; aspect-ratio:16/10;
  /* shimmer skeleton while the image loads */
  background:linear-gradient(100deg,#e8edef 40%,#f5f8f9 50%,#e8edef 60%); background-size:200% 100%; animation:shimmer 1.6s linear infinite;
  overflow:hidden}
.lc-media img.card-img{width:100%; height:100%; object-fit:cover; display:block; position:relative; z-index:1;
  transition:transform .6s var(--ease); background:#eef1f2}
.listing-card:hover .lc-media img.card-img{transform:scale(1.07)}
.lc-media .img-ph{width:100%; height:100%; display:flex; align-items:center; justify-content:center; position:relative; z-index:1}
.lc-media .img-ph img{width:56%; height:56%; opacity:.9}
.listing-card .card-body{padding:11px 13px 13px; flex:1; display:flex; flex-direction:column}
.listing-card .price{font-weight:800; color:var(--dark); font-size:17.5px; letter-spacing:-.2px}
.listing-card .card-title{font-size:13.5px; font-weight:500; color:var(--dark); margin:4px 0 7px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.4; min-height:2.8em}
.listing-card a.card-title{color:var(--dark)}
.listing-card a.card-title:hover{color:var(--link)}
.listing-card .card-meta{font-size:11.5px; color:var(--muted); margin-top:auto; text-transform:uppercase; letter-spacing:.3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
/* corner badges — gradient, elevated */
.lc-badge{position:absolute; top:10px; left:10px; z-index:2; display:flex; flex-direction:column; gap:6px; align-items:flex-start}
.lc-flag{font-size:10px; font-weight:800; letter-spacing:.8px; padding:5px 10px; border-radius:6px; text-transform:uppercase;
  box-shadow:0 3px 10px rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.35)}
.lc-flag.featured{background:linear-gradient(135deg,#ffd94d,var(--accent-600)); color:#4a3400}
.lc-flag.urgent{background:linear-gradient(135deg,#f04452,#c81e2e); color:#fff}
/* heart — pop animation when favourited */
.fav-btn{position:absolute; top:10px; right:10px; z-index:2; width:36px; height:36px; border-radius:50%; border:none;
  background:rgba(255,255,255,.96); color:#93a2a4; font-size:19px; line-height:1; cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.28), inset 0 0 0 1px rgba(0,47,52,.06); padding:0;
  display:flex; align-items:center; justify-content:center; transition:transform .18s var(--ease-spring), color .2s, box-shadow .2s}
.fav-btn:hover{transform:scale(1.14); box-shadow:0 4px 14px rgba(0,0,0,.3)}
.fav-btn:active{transform:scale(.92)}
.fav-btn.on{color:#e63946; animation:popIn .38s var(--ease-spring); box-shadow:0 2px 10px rgba(230,57,70,.5)}
.fav-btn:disabled{opacity:.6}
/* legacy inline bits reused by renderers */
.lc-wrap{position:relative}
.img-ph{background:#eef1f2}
/* Twitter-style engagement row on listing cards */
.lc-eng{display:flex;align-items:center;gap:2px;padding:6px 10px;border-top:1px solid #f1f3f4}
.xe{display:inline-flex;align-items:center;gap:5px;background:none;border:0;color:#536471;font-size:12.5px;font-weight:500;
  cursor:pointer;padding:6px 9px;border-radius:999px;text-decoration:none;transition:color .18s,background .18s;line-height:1}
.xe svg{width:16px;height:16px;flex:none}
.xe:hover{background:rgba(29,155,240,.1);color:#1d9bf0}
.xe.fav-btn{position:static;width:auto;height:auto;box-shadow:none;background:none;font-size:12.5px}
.xe.fav-btn:hover{transform:none}
.xlike svg{fill:transparent;stroke:currentColor;stroke-width:1.8}
.xlike:hover{background:rgba(249,24,128,.1)!important;color:#f91880}
.xlike.on{color:#f91880!important;background:none!important;box-shadow:none!important;animation:none}
.xlike.on svg{fill:#f91880;stroke:#f91880}
.xe span{min-width:14px}
/* ===== mobile fit-to-screen: listing engagement row always fits the card (2026-09-19) ===== */
.lc-eng{flex-wrap:nowrap}
.xe{min-width:0}
.xe span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:640px){
  .lc-eng{padding:5px 8px;gap:2px}
  .xe{padding:5px 6px;gap:4px;font-size:12px}
  .xe svg{width:14px;height:14px}
}
@media(max-width:380px){
  .lc-eng .xe span{display:none} /* icon-only on very small phones; tap targets unchanged */
}
/* notifications: text column must shrink so action buttons never push out */
.user-notif-row > div:first-child{min-width:0}
/* Twitter-style action bar (listing detail) */
.xbar{display:flex;align-items:center;gap:6px;margin-top:14px;padding-top:12px;border-top:1px solid #f1f3f4;scroll-margin-top:140px}
.xe.xbig{font-size:13.5px;padding:8px 12px}
.xe.xbig svg{width:19px;height:19px}
/* bottom sheet: comments + share (listings & products) */
.sheet-backdrop{position:fixed;inset:0;z-index:300;background:rgba(10,20,30,.55);backdrop-filter:blur(3px);
  display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .25s var(--ease)}
.sheet-backdrop[hidden]{display:none!important}
.cerror{margin:0 18px 8px;padding:9px 12px;border-radius:10px;background:#fef2f2;color:#b91c1c;font-size:13px;border:1px solid #fecaca}
.cerror[hidden]{display:none!important}
.sheet-backdrop.open{opacity:1}
.sheet{background:#fff;width:100%;max-width:560px;max-height:84vh;border-radius:22px 22px 0 0;display:flex;flex-direction:column;
  transform:translateY(100%);transition:transform .3s var(--ease);overflow:hidden}
.sheet-backdrop.open .sheet{transform:translateY(0)}
@media(min-width:640px){.sheet-backdrop{align-items:center;padding:20px}.sheet{border-radius:22px;max-height:80vh}}
.sheet-grip{width:44px;height:5px;border-radius:99px;background:#e5e7eb;margin:10px auto 0;flex:none}
.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-bottom:1px solid var(--line)}
.sheet-head b{font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sheet-x{border:0;background:#f3f4f6;width:32px;height:32px;border-radius:50%;font-size:14px;cursor:pointer;color:#4b5563;flex:none}
.sheet-body{overflow-y:auto;padding:14px 18px;flex:1;min-height:120px}
/* ===== Threaded premium comments ===== */
.cthread{padding:4px 2px}
.cnode{display:flex;gap:11px;padding:12px 2px;animation:cin .28s var(--ease)}
@keyframes cin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.cnode.cflash .cbubble{animation:cflash 1.6s ease}
@keyframes cflash{0%,55%{box-shadow:0 0 0 3px rgba(10,90,98,.28)}100%{box-shadow:none}}
.cavatar{width:38px;height:38px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:15px;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.creplies .cavatar{width:30px;height:30px;font-size:12.5px}
.cmain{flex:1;min-width:0}
.chead{font-size:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.chead b{font-weight:700;color:#111827}
.chead span{color:var(--muted);font-size:11.5px}
.cbubble{background:#f1f5f9;border-radius:4px 18px 18px 18px;padding:9px 14px;font-size:14px;line-height:1.5;
  color:#1f2937;margin-top:4px;overflow-wrap:break-word;width:fit-content;max-width:100%}
.cacts{display:flex;gap:14px;margin-top:5px}
.creply,.cdel2{border:0;background:none;font-size:12px;font-weight:700;cursor:pointer;padding:2px 0}
.creply{color:var(--primary-600)}
.creply:hover{text-decoration:underline}
.cdel2{color:#9ca3af}
.cdel2:hover{color:#e11d48}
.creplies{margin:8px 0 2px 19px;padding-left:12px;border-left:2px solid #e2e8f0}
.creplies .cnode{padding:9px 2px}
.cempty{text-align:center;color:var(--muted);padding:34px 10px;font-size:14px}
.cempty-ic{font-size:42px;margin-bottom:10px;filter:saturate(1.2)}
.cempty b{display:block;color:#374151;font-size:15px;margin-bottom:3px}
.cempty span{font-size:13px}
.replybar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 18px;
  background:#eff6ff;border-top:1px solid #dbeafe;font-size:13px;color:#1d4ed8;animation:cin .2s var(--ease)}
.replybar button{border:0;background:none;color:#1d4ed8;cursor:pointer;font-size:13px;font-weight:700}
.cform{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--line);background:#fff}
.cform input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:999px;padding:10px 16px;font-size:14px;outline:none}
.cform input:focus{border-color:var(--primary)}
.share-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:8px 0}
.share-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;border:1.5px solid var(--line);
  border-radius:16px;background:#fff;font-size:12.5px;font-weight:700;color:#374151;cursor:pointer;transition:transform .16s var(--ease),box-shadow .16s var(--ease),border-color .16s var(--ease)}
.share-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--primary-600)}
.share-btn .sic2{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:19px;font-weight:800}
.share-link-row{display:flex;gap:8px;margin-top:12px}
.share-link-row input{flex:1;min-width:0;border:1.5px solid var(--line);border-radius:10px;padding:9px 12px;font-size:12.5px;color:var(--muted);background:#f9fafb}

/* Horizontal scroll rows */
.hscroll{display:flex; gap:12px; overflow-x:auto; padding:6px 2px 14px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:thin}
.hscroll::-webkit-scrollbar{height:6px}
.hscroll::-webkit-scrollbar-thumb{background:linear-gradient(90deg,var(--primary-600),var(--accent-600)); border-radius:4px; border:none}
.hscroll .listing-card, .hscroll .shop-card, .hscroll .offer-card{min-width:176px; max-width:176px; scroll-snap-align:start}
@media(min-width:768px){ .hscroll .listing-card, .hscroll .shop-card, .hscroll .offer-card{min-width:200px; max-width:200px} }
.offer-card{background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); border:1px solid var(--line); padding:18px 14px; text-align:center;
  display:flex; flex-direction:column; gap:7px; transition:transform .25s var(--ease), box-shadow .25s var(--ease)}
.offer-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md)}
.offer-card .disc{font-size:25px; font-weight:900; letter-spacing:-.5px;
  background:linear-gradient(115deg,var(--primary-600),var(--primary)); -webkit-background-clip:text; background-clip:text; color:transparent}
.shop-card{background:#fff; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line);
  display:flex; flex-direction:column; transition:transform .25s var(--ease), box-shadow .25s var(--ease)}
.shop-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md)}
.shop-card .shop-thumb{aspect-ratio:16/9; background:linear-gradient(100deg,#e8edef 40%,#f5f8f9 50%,#e8edef 60%); background-size:200% 100%; animation:shimmer 1.8s linear infinite; display:flex; align-items:center; justify-content:center; overflow:hidden}
.shop-card .shop-thumb img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease)}
.shop-card:hover .shop-thumb img{transform:scale(1.06)}
.shop-card .shop-body{padding:11px 13px}
.shop-card .shop-name{font-weight:700; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}

/* ============ 10. Category tiles — gradient icon chips ============ */
.cat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:14px 0}
@media(min-width:768px){ .cat-grid{grid-template-columns:repeat(6,1fr); gap:16px} }
.cat-item{display:flex; flex-direction:column; align-items:center; text-align:center; font-size:11.5px; font-weight:700; color:var(--dark);
  padding:8px 2px; border-radius:14px; transition:transform .3s var(--ease-spring), background .2s var(--ease), box-shadow .2s var(--ease)}
/* pro tap feedback — no hover lift; tactile spring press so it feels clicked */
.cat-item:active{transform:scale(.9)}
.cat-item:active .cat-ic{transform:scale(.85)}
.cat-item .cat-ic{width:60px; height:60px; border-radius:20px; background:linear-gradient(135deg,var(--primary-50),#fff);
  box-shadow:var(--shadow); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--primary-700);
  margin-bottom:8px; transition:transform .22s var(--ease-spring), box-shadow .25s var(--ease)}
.cat-item .cat-ic svg{width:30px; height:30px}
/* alternate chip hues for a premium mosaic */
.cat-item:nth-child(4n+2) .cat-ic{background:linear-gradient(135deg,var(--accent-50),#fff); color:#8a5a00}
.cat-item:nth-child(4n+3) .cat-ic{background:linear-gradient(135deg,#e7f0ff,#fff); color:#1f4fe0}
.cat-item:nth-child(4n+4) .cat-ic{background:linear-gradient(135deg,#ffe9ec,#fff); color:#c81e2e}
@media(min-width:768px){ .cat-item .cat-ic{width:68px; height:68px} .cat-item{font-size:12.5px} }
/* legacy emoji style (admin-driven category section) */
.cat-icon{width:60px; height:60px; border-radius:20px; background:linear-gradient(135deg,#fff,var(--accent-50));
  box-shadow:var(--shadow); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; font-size:28px; margin-bottom:8px}

/* ============ 10b. Mobile category swipe rail — advanced ============ */
@media(max-width:767px){
  .cat-grid{
    display:flex; gap:10px; overflow-x:auto; overscroll-behavior-x:contain;
    margin:14px -14px; padding:10px 14px 14px;
    scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch;
    scrollbar-width:none; -ms-overflow-style:none; cursor:grab; scroll-padding:0 14px;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 26px,#000 calc(100% - 26px),transparent);
    mask-image:linear-gradient(90deg,transparent,#000 26px,#000 calc(100% - 26px),transparent);
  }
  .cat-grid::-webkit-scrollbar{display:none}
  .cat-grid.dragging{cursor:grabbing; scroll-snap-type:none}
  .cat-grid .cat-item{flex:0 0 72px; scroll-snap-align:start; padding:6px 2px}
  .cat-grid .cat-item .cat-ic{width:58px; height:58px; margin:0 auto 7px}
  .cat-grid.at-start{
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 26px),transparent);
    mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 26px),transparent);
  }
  .cat-grid.at-end{
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 26px,#000 100%);
    mask-image:linear-gradient(90deg,transparent,#000 26px,#000 100%);
  }
  .cat-dots{display:flex; gap:6px; justify-content:center; margin:-2px 0 12px}
  .cat-dots span{width:7px; height:7px; border-radius:50%; background:#c9d6d8; transition:width .25s var(--ease),background-color .25s var(--ease)}
  .cat-dots span.on{background:var(--primary-600); width:22px; border-radius:5px}
}

/* ============ 11. Hero slider — cinematic ============ */
.hero-slider{position:relative; border-radius:var(--radius-lg); overflow:hidden; margin-bottom:14px; background:#0b2b2f; border:1px solid rgba(0,0,0,.25);
  box-shadow:var(--shadow-md)}
.hero-slide{display:none; position:relative}
.hero-slide.active{display:block; animation:fadeIn .6s var(--ease)}
.hero-slide img{width:100%; height:190px; object-fit:cover}
@media(min-width:768px){ .hero-slide img{height:320px} }
.hero-caption{position:absolute; bottom:0; left:0; right:0; padding:48px 20px 20px;
  background:linear-gradient(transparent 0%,rgba(0,20,23,.55) 45%,rgba(0,20,23,.88) 100%); color:#fff}
.hero-slide.active .hero-caption > *{animation:captionIn .55s var(--ease) both}
.hero-slide.active .hero-caption > *:nth-child(2){animation-delay:.08s}
.hero-slide.active .hero-caption > *:nth-child(3){animation-delay:.16s}
.hero-caption h2{font-size:21px; margin-bottom:3px; font-weight:800; letter-spacing:-.3px; text-shadow:0 2px 12px rgba(0,0,0,.45)}
.hero-caption p{font-size:13.5px; opacity:.94}
@media(min-width:768px){ .hero-caption h2{font-size:30px} .hero-caption p{font-size:15px} .hero-caption{padding:64px 30px 26px} }
.hero-dots{position:absolute; bottom:12px; right:16px; display:flex; gap:7px; z-index:3}
.hero-dots span{width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.45); cursor:pointer; transition:width .25s var(--ease),background-color .25s var(--ease); border:1px solid rgba(255,255,255,.3)}
.hero-dots span:hover{background:rgba(255,255,255,.8)}
.hero-dots span.on{background:var(--accent); width:26px; border-radius:6px; animation:dotPulse 1.6s ease-out infinite}
/* built-in gradient promo banners — premium with animated sheen */
.hero-promo{height:190px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:22px; color:#fff; position:relative; overflow:hidden}
@media(min-width:768px){ .hero-promo{height:320px; padding:48px} }
.hero-promo::before{content:""; position:absolute; top:-40%; bottom:-40%; left:-30%; width:38%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent); transform:skewX(-18deg);
  animation:sheenSweep 5.5s ease-in-out infinite}
.hero-promo h2{font-size:23px; margin-bottom:7px; position:relative; z-index:2; font-weight:900; letter-spacing:-.5px; text-shadow:0 2px 14px rgba(0,0,0,.35)}
@media(min-width:768px){ .hero-promo h2{font-size:36px} }
.hero-promo p{font-size:14px; opacity:.93; position:relative; z-index:2; margin-bottom:14px; max-width:70%}
.hero-promo .btn{position:relative; z-index:2; box-shadow:0 8px 24px rgba(0,0,0,.35)}
.hero-promo::after{content:""; position:absolute; right:-50px; top:-70px; width:280px; height:280px; border-radius:50%; background:rgba(255,255,255,.10)}
.promo-sell{background:linear-gradient(115deg,#00252a 15%,#0a5a52 60%,#0f8a74 100%)}
.promo-shops{background:linear-gradient(115deg,#2e2200 10%,#8a5a00 55%,#e0a400 100%)}
.promo-pos{background:linear-gradient(115deg,#0d1734 15%,#2b3f8f 60%,#5a74e0 100%)}

/* ============ 12. Marquee — premium ticker ============ */
.marquee{background:linear-gradient(90deg,var(--primary-800),var(--primary) 40%,var(--primary-800)); color:#fff; overflow:hidden; white-space:nowrap;
  border-radius:12px; margin-bottom:14px; padding:10px 0; font-size:13.5px; box-shadow:var(--shadow); border:1px solid rgba(255,255,255,.08)}
.marquee span{display:inline-block; padding-left:100%; animation:scroll 30s linear infinite}
.marquee a{color:var(--accent); font-weight:700}
.marquee a:hover{text-decoration:underline}
@keyframes scroll{to{transform:translateX(-100%)}}

/* ============ 13. Section titles — accent bar ============ */
.section-head{display:flex; justify-content:space-between; align-items:center; margin:24px 0 12px; gap:10px}
.section-head h2{font-size:17px; font-weight:800; letter-spacing:-.2px; display:flex; align-items:center; gap:10px}
.section-head h2::before{content:""; width:5px; height:22px; border-radius:3px; background:linear-gradient(180deg,var(--accent),var(--accent-600));
  box-shadow:0 2px 6px rgba(245,183,0,.5)}
@media(min-width:768px){ .section-head h2{font-size:21px} }
.section-head .btn{flex-shrink:0}
.section-head a:not(.btn){font-size:13.5px; font-weight:700; color:var(--primary-600); display:inline-flex; align-items:center; gap:4px; transition:gap .2s var(--ease)}
.section-head a:not(.btn):hover{gap:8px; color:var(--primary-800)}

/* ============ 14. Detail page — premium ============ */
.crumbs{font-size:13px; color:var(--muted); margin:2px 0 12px; display:flex; gap:7px; flex-wrap:wrap; align-items:center}
.crumbs a{color:var(--link); font-weight:600}
.crumbs a:hover{text-decoration:underline}
.det-layout{display:flex; gap:18px; align-items:flex-start; flex-wrap:wrap}
.det-main{flex:1; min-width:0}
.det-side{width:100%; flex-shrink:0}
@media(min-width:900px){ .det-side{width:340px} }
.det-gallery{background:#fff; border-radius:var(--radius); box-shadow:var(--shadow-md); border:1px solid var(--line); padding:14px}
.main-img-wrap{position:relative; border-radius:12px; overflow:hidden; background:radial-gradient(circle at 50% 40%,#1c2e31,#0c1618);
  box-shadow:inset 0 0 40px rgba(0,0,0,.35)}
.main-img{width:100%; max-height:440px; object-fit:contain; border-radius:12px; cursor:zoom-in; transition:transform .4s var(--ease)}
.main-img:hover{transform:scale(1.015)}
.det-badges{position:absolute; top:12px; left:12px; display:flex; gap:7px; z-index:2}
.thumbs{display:flex; gap:9px; margin-top:12px; overflow-x:auto; padding-bottom:4px}
.thumbs img{width:72px; height:72px; object-fit:cover; border-radius:10px; cursor:pointer; border:2px solid transparent; flex-shrink:0; background:#eef1f2;
  transition:opacity .2s var(--ease),transform .2s var(--ease),border-color .2s var(--ease); opacity:.75}
.thumbs img:hover{opacity:1; transform:translateY(-2px)}
.thumbs img.sel{border-color:var(--accent-600); opacity:1; box-shadow:0 4px 12px rgba(245,183,0,.4); transform:translateY(-2px)}
.price-box{background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); border:1px solid var(--line); padding:18px; position:relative; overflow:hidden}
.price-box::before{content:""; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,var(--accent),var(--accent-600),var(--accent))}
.price-box .big-price{font-size:30px; font-weight:900; letter-spacing:-.8px;
  background:linear-gradient(115deg,#002f34 30%,#0a6b62 80%); -webkit-background-clip:text; background-clip:text; color:transparent}
.kv{display:flex; gap:10px; padding:10px 0; border-bottom:1px solid var(--line-soft); font-size:14px}
.kv:last-child{border-bottom:0}
.kv b{width:130px; flex-shrink:0; color:var(--muted); font-weight:600}
.specs-table{width:100%; border-collapse:collapse; font-size:14px}
.specs-table th,.specs-table td{padding:10px 6px; border-bottom:1px solid var(--line-soft); text-align:left; vertical-align:top}
.specs-table tr:hover td{background:#fafcfc}
.specs-table th{color:var(--muted); font-weight:600; width:38%}
.seller-box{background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); border:1px solid var(--line); padding:18px; margin-bottom:16px}
.seller-top{display:flex; gap:13px; align-items:center; margin-bottom:12px}
.seller-avatar{width:58px; height:58px; border-radius:50%; object-fit:cover; border:3px solid var(--accent-100); box-shadow:0 4px 12px rgba(0,47,52,.15)}
.seller-name{font-weight:800; font-size:16px}
.safety-box{background:linear-gradient(135deg,#fffbe8,#fff6d8); border:1px solid #ecd98e; border-radius:var(--radius); padding:16px 18px; margin-top:16px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.safety-box h4{font-size:15px; margin-bottom:9px; color:#7a5c00; display:flex; align-items:center; gap:7px}
.safety-box ul{padding-left:20px; font-size:13.5px; color:#5c4a08; display:grid; gap:6px}
.share-row{display:flex; gap:9px; flex-wrap:wrap; margin-top:14px}
.report-box{margin-top:16px; font-size:14px}
.report-box summary{cursor:pointer; color:var(--muted); font-weight:600; transition:color .2s}
.report-box summary:hover{color:var(--danger)}
.report-form{margin-top:10px; display:flex; flex-direction:column; gap:9px}

/* ============ 15. Search / filters ============ */
.search-layout{display:flex; gap:18px; align-items:flex-start}
.filters{width:264px; flex-shrink:0; background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); border:1px solid var(--line); padding:18px;
  position:sticky; top:calc(var(--hdr-h) + 14px)}
.filters h3{font-size:15px; margin-bottom:13px; font-weight:800; display:flex; align-items:center; gap:8px}
.filters h3::before{content:""; width:4px; height:18px; border-radius:2px; background:linear-gradient(180deg,var(--accent),var(--accent-600))}
.results{flex:1; min-width:0}
.pills{display:flex; gap:9px; overflow-x:auto; padding:5px 2px 13px; margin-bottom:2px; scrollbar-width:thin}
.pill{white-space:nowrap; padding:9px 17px; border-radius:999px; background:#fff; box-shadow:var(--shadow); border:1px solid var(--line);
  font-size:13px; font-weight:700; text-decoration:none; color:var(--dark); transition:border-color .22s var(--ease),transform .22s var(--ease),box-shadow .22s var(--ease)}
.pill:hover{border-color:var(--primary-600); transform:translateY(-2px); box-shadow:var(--shadow-md)}
.pill:active{transform:translateY(0)}
.pill.active{background:linear-gradient(135deg,var(--primary-600),var(--primary)); border-color:var(--primary-700); color:#fff;
  box-shadow:0 4px 14px rgba(0,47,52,.3)}
.filter-toggle{display:none; width:100%; margin-bottom:12px}
.res-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; gap:10px; flex-wrap:wrap}
.res-count{font-size:14px; color:var(--muted)}
.res-count strong{color:var(--dark); font-size:17px; font-weight:800}
.sort-wrap{display:flex; align-items:center; gap:9px; font-size:13px; color:var(--muted); font-weight:600}
.sort-wrap select{padding:9px 32px 9px 12px; border-radius:10px; border:1.5px solid #cfd8da; background-color:#fff; font-weight:600; cursor:pointer}
.empty{padding:48px 20px; text-align:center; color:var(--muted); background:#fff; border-radius:var(--radius); border:1.5px dashed #c3d2d4; font-size:14.5px}
.filter-drawer-head{display:none}
@media(max-width:899px){
  .search-layout{flex-direction:column}
  .filter-toggle{display:block}
  .filters{display:none; width:100%; position:fixed; top:0; left:0; right:0; bottom:0; z-index:120; border-radius:0; overflow-y:auto; padding:16px 16px 96px;
    background:rgba(255,255,255,.97); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); animation:fadeUp .3s var(--ease)}
  .filters.open{display:block}
  .filter-drawer-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; position:sticky; top:0; background:transparent; padding:6px 0; z-index:2}
  .filter-drawer-head h3{margin:0}
  .filter-apply{position:fixed; bottom:88px; left:16px; right:16px; z-index:121; display:none}
  .filters.open ~ .filter-apply, body.filters-open .filter-apply{display:block}
}

/* ============ 16. Sell wizard — premium progress ============ */
.wizard{max-width:740px; margin:0 auto}
.wizard-steps{display:flex; gap:0; margin:8px 0 20px; overflow-x:auto; background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); border:1px solid var(--line); padding:6px}
.wstep{flex:1; min-width:100px; text-align:center; padding:12px 6px 10px; font-size:11.5px; font-weight:700; color:var(--muted2);
  border-bottom:3px solid transparent; position:relative; white-space:nowrap; border-radius:10px; transition:color .25s var(--ease),border-color .25s var(--ease),background-color .25s var(--ease)}
.wstep .wnum{display:inline-flex; width:26px; height:26px; border-radius:50%; background:#e6ebec; color:var(--muted); font-size:12.5px;
  align-items:center; justify-content:center; margin-bottom:4px; font-weight:800; transition:background-color .25s var(--ease-spring),color .25s var(--ease-spring)}
.wstep.done{color:var(--success)}
.wstep.done .wnum{background:linear-gradient(135deg,#2bb673,#147a44); color:#fff; box-shadow:0 3px 10px rgba(30,158,87,.35)}
.wstep.active{color:var(--primary-800); border-bottom-color:var(--accent-600); background:var(--accent-50)}
.wstep.active .wnum{background:linear-gradient(135deg,var(--primary-600),var(--primary-800)); color:#fff; transform:scale(1.15);
  box-shadow:0 4px 12px rgba(0,47,52,.35)}
.wpanel{display:none}
.wpanel.active{display:block; animation:fadeUp .35s var(--ease)}
.wizard-nav{display:flex; justify-content:space-between; gap:10px; margin-top:18px}
.cat-pick{display:grid; grid-template-columns:repeat(2,1fr); gap:12px}
@media(min-width:600px){ .cat-pick{grid-template-columns:repeat(3,1fr)} }
.cat-pick label{position:relative; cursor:pointer}
.cat-pick input{position:absolute; opacity:0}
.cat-pick .cp-card{display:flex; flex-direction:column; align-items:center; gap:7px; padding:18px 8px; background:#fff; border:2px solid var(--line);
  border-radius:var(--radius); font-size:13px; font-weight:700; color:var(--dark); transition:border-color .2s var(--ease-spring),transform .2s var(--ease-spring),box-shadow .2s var(--ease-spring); height:100%}
.cat-pick .cp-card:hover{border-color:#aebfc2; transform:translateY(-2px); box-shadow:var(--shadow)}
.cat-pick .cp-card .cat-ic{width:48px; height:48px; border-radius:50%; background:linear-gradient(135deg,var(--primary-50),#fff);
  display:flex; align-items:center; justify-content:center; color:var(--primary-700); transition:color .2s var(--ease),box-shadow .2s var(--ease)}
.cat-pick .cp-card .cat-ic svg{width:26px; height:26px}
.cat-pick input:checked + .cp-card{border-color:var(--primary-600); background:linear-gradient(135deg,#f2fbfb,#e7f4f4); box-shadow:var(--shadow-md), 0 0 0 3px rgba(10,90,98,.12); transform:translateY(-2px)}
.cat-pick input:checked + .cp-card .cat-ic{background:linear-gradient(135deg,var(--primary-600),var(--primary)); color:#fff; box-shadow:0 4px 12px rgba(0,47,52,.3)}
.cat-pick input:focus-visible + .cp-card{outline:2px solid var(--accent-600); outline-offset:2px}
.photo-drop{border:2px dashed #b9c6c7; border-radius:var(--radius); padding:24px; text-align:center; color:var(--muted); font-size:14px;
  background:linear-gradient(135deg,#fbfcfc,#f4f8f8); transition:border-color .25s var(--ease),background-color .25s var(--ease),box-shadow .25s var(--ease); cursor:pointer}
.photo-drop:hover{border-color:var(--primary-600); background:var(--primary-50); box-shadow:inset 0 0 0 3px rgba(10,90,98,.06)}
.photo-preview{display:flex; gap:9px; flex-wrap:wrap; margin-top:12px}
.photo-preview img{width:78px; height:78px; object-fit:cover; border-radius:10px; border:1px solid var(--line); box-shadow:var(--shadow); animation:popIn .3s var(--ease-spring)}
.review-row{display:flex; justify-content:space-between; gap:10px; padding:10px 0; border-bottom:1px solid var(--line-soft); font-size:14px}
.review-row b{color:var(--muted); font-weight:600}

/* ============ 17. POS promo banner — premium sheen ============ */
/* ============ Flash ads banner (homepage) — clean, no blue bg ============ */
.flash-banner{background:transparent; border:none; box-shadow:none;
  padding:0; margin:26px 0; position:relative; overflow:hidden; border-radius:var(--radius-lg)}
.flash-banner::before,.flash-banner::after{display:none}
/* flash ad slider */
.flash-slider{position:relative; z-index:2; border-radius:14px; overflow:hidden;
  box-shadow:var(--shadow-md); border:1px solid var(--line); background:#fff}
.flash-slide{display:none; position:relative}
.flash-slide.active{display:block; animation:fadeIn .5s var(--ease)}
.flash-slide img{width:100%; height:200px; object-fit:cover; display:block}
.flash-caption{position:absolute; bottom:0; left:0; right:0; padding:44px 16px 14px;
  background:linear-gradient(transparent,rgba(0,10,14,.78)); color:#fff}
.flash-caption b{display:block; font-size:16px; font-weight:800; text-shadow:0 2px 8px rgba(0,0,0,.5)}
.flash-caption span{display:block; font-size:12.5px; opacity:.92; margin:2px 0 6px}
.flash-caption a{display:inline-block; font-size:12px; font-weight:700; color:#0b2b2f; background:var(--accent);
  padding:6px 16px; border-radius:999px; text-decoration:none}
.flash-promo{height:200px; display:flex; align-items:center; padding:20px; color:#fff; position:relative; overflow:hidden}
.flash-promo.fp1{background:linear-gradient(120deg,#b45309,#f59e0b)}
.flash-promo.fp2{background:linear-gradient(120deg,#0e7490,#22d3ee)}
.flash-promo>div{position:relative; z-index:2}
.flash-promo b{display:block; font-size:17px; font-weight:800; margin-bottom:3px; text-shadow:0 2px 8px rgba(0,0,0,.3)}
.flash-promo span{display:block; font-size:13px; opacity:.94; margin-bottom:8px}
.flash-promo a{display:inline-block; font-size:12px; font-weight:700; color:#0b2b2f; background:#fff;
  padding:7px 18px; border-radius:999px; text-decoration:none}
.flash-dots{position:absolute; bottom:10px; right:12px; display:flex; gap:6px; z-index:3}
.flash-dots span{width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.45); cursor:pointer; border:1px solid rgba(255,255,255,.35)}
.flash-dots span.on{background:#fff; width:22px; border-radius:5px}

/* ============ 18. Tables — premium ============ */
.table{width:100%; border-collapse:collapse; background:#fff; border-radius:var(--radius); overflow:hidden; font-size:14px;
  box-shadow:var(--shadow); border:1px solid var(--line)}
.table th,.table td{padding:11px 12px; border-bottom:1px solid var(--line-soft); text-align:left}
.table thead th{background:linear-gradient(180deg,#f4f7f8,#eceff0); font-size:12.5px; text-transform:uppercase; letter-spacing:.6px; color:var(--primary-800); font-weight:800; white-space:nowrap}
.table tbody tr{transition:background .15s}
.table tbody tr:hover{background:#f6fafa}
.table tbody tr:last-child td{border-bottom:0}
.table-wrap{overflow-x:auto; border-radius:var(--radius)}

/* ============ 19. Badges — gradient pills ============ */
.badge2{display:inline-block; padding:4px 12px; border-radius:999px; font-size:12px; font-weight:700; border:1px solid transparent; white-space:nowrap}
.badge-success{background:linear-gradient(135deg,#d9f2e4,#bfe8d2); color:#0c5c32; border-color:#a3d9bd}
.badge-warning{background:linear-gradient(135deg,#fff3cd,#ffe9a8); color:#7a5c00; border-color:#f0d98a}
.badge-danger{background:linear-gradient(135deg,#fbdfe2,#f6c3c9); color:#a01c28; border-color:#efa8b1}
.badge-info{background:linear-gradient(135deg,#d6ecff,#bcdcfb); color:#0b4fc4; border-color:#a5cbf5}
.badge-primary{background:linear-gradient(135deg,#d9e6ff,#c2d6fb); color:#123a9e; border-color:#a9c3f3}

/* ============ 20. Flash / alert — premium ============ */
.flash{padding:13px 18px; margin:12px 14px 0; border-radius:12px; font-size:14px; max-width:1280px; font-weight:600;
  box-shadow:var(--shadow); border:1px solid transparent; animation:fadeUp .4s var(--ease)}
.flash-success{background:linear-gradient(135deg,#d9f2e4,#c9ecd9); color:#0c5c32; border-color:#a3d9bd}
.flash-error{background:linear-gradient(135deg,#fbdfe2,#f9d2d7); color:#a01c28; border-color:#efa8b1}
.alert{padding:13px 16px; border-radius:12px; margin-bottom:14px; font-size:14px; font-weight:600; border:1px solid transparent; box-shadow:var(--shadow)}
.alert-info{background:linear-gradient(135deg,#d6ecff,#c6e2fc); color:#0b4fc4; border-color:#a5cbf5}
.alert-warning{background:linear-gradient(135deg,#fff3cd,#ffecb0); color:#7a5c00; border-color:#f0d98a}

/* ============ 21. Footer — deep premium gradient ============ */
.site-footer{background:linear-gradient(180deg,#062a2e 0%,#00181c 100%); color:#c9d4d5; margin-top:36px; border-top:3px solid;
  border-image:linear-gradient(90deg,var(--accent-600),var(--accent),var(--accent-600)) 1}
.footer-inner{max-width:1280px; margin:0 auto; padding:34px 16px; display:grid; gap:24px; grid-template-columns:repeat(2,1fr)}
@media(min-width:768px){ .footer-inner{grid-template-columns:1.6fr 1fr 1fr 1fr} }
.footer-col h4{font-size:13px; text-transform:uppercase; letter-spacing:1px; color:#fff; margin-bottom:14px; font-weight:800}
.footer-brand .flogo{font-size:21px; font-weight:900; color:#fff; margin-bottom:9px; display:block; letter-spacing:-.4px}
.footer-brand .flogo .logo-em{margin-right:5px}
.footer-brand p{font-size:13.5px; color:#9fb3b5; max-width:290px; line-height:1.6}
.footer-links a{display:block; color:#c9d4d5; padding:5px 0; font-size:14px; transition:color .2s var(--ease),transform .2s var(--ease)}
.footer-links a:hover{color:var(--accent); transform:translateX(4px)}
.footer-contact div{margin-bottom:7px; font-size:14px}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12); text-align:center; padding:16px; font-size:13px; color:#8fa1a3}
.footer-bottom strong{color:#fff}

/* ============ 22. Pagination — premium ============ */
.pagination{display:flex; gap:8px; justify-content:center; margin:22px 0; flex-wrap:wrap}
.pagination a,.pagination span{padding:10px 15px; background:#fff; border-radius:10px; box-shadow:var(--shadow); border:1px solid var(--line);
  color:var(--dark); font-size:14px; font-weight:700; transition:border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease),color .2s var(--ease); min-width:42px; text-align:center}
.pagination a:hover{border-color:var(--primary-600); transform:translateY(-2px); box-shadow:var(--shadow-md); color:var(--primary-800)}
.pagination a.active{background:linear-gradient(135deg,var(--primary-600),var(--primary-800)); border-color:var(--primary-700); color:#fff;
  box-shadow:0 4px 14px rgba(0,47,52,.35)}

/* ============ 23. Chat — premium bubbles ============ */
.chat-list .chat-item{display:flex; gap:12px; padding:13px 14px; background:#fff; border-radius:var(--radius); margin-bottom:9px;
  box-shadow:var(--shadow); border:1px solid var(--line); align-items:center; transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease)}
.chat-list .chat-item:hover{transform:translateX(3px); box-shadow:var(--shadow-md); border-color:#cfd9db}
.chat-box{background:linear-gradient(180deg,#f4f7f8,#eef2f3); border-radius:var(--radius); box-shadow:inset 0 2px 10px rgba(0,47,52,.06);
  padding:14px; min-height:320px; max-height:62vh; overflow-y:auto; margin-bottom:12px; border:1px solid var(--line);
  display:flex; flex-direction:column}
.msg{max-width:80%; padding:10px 15px; border-radius:16px; margin-bottom:9px; font-size:14px; word-wrap:break-word; line-height:1.5;
  position:relative; animation:fadeUp .3s var(--ease)}
.msg-in{background:#fff; align-self:flex-start; color:var(--dark); box-shadow:var(--shadow); border:1px solid var(--line);
  border-bottom-left-radius:5px}
.msg-in::before{content:""; position:absolute; left:-6px; bottom:0; width:12px; height:12px; background:#fff;
  clip-path:polygon(100% 0,100% 100%,0 100%); border-left:1px solid var(--line)}
.msg-out{background:linear-gradient(135deg,var(--primary-600),var(--primary-800)); color:#fff; align-self:flex-end; margin-left:auto;
  box-shadow:0 4px 14px rgba(0,47,52,.28); border-bottom-right-radius:5px}
.msg-out::before{content:""; position:absolute; right:-6px; bottom:0; width:12px; height:12px;
  background:var(--primary-800); clip-path:polygon(0 0,0 100%,100% 100%)}
.chat-input{display:flex; gap:9px}
.chat-input .form-control{border-radius:999px; padding:12px 18px}

/* ============ 24. Dashboard stats — gradient accent bar ============ */
.stat-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:13px; margin-bottom:16px}
@media(min-width:768px){ .stat-grid{grid-template-columns:repeat(4,1fr)} }
.stat-card{background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); border:1px solid var(--line); padding:18px 16px; text-align:center;
  position:relative; overflow:hidden; transition:transform .25s var(--ease), box-shadow .25s var(--ease)}
.stat-card::before{content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg,var(--primary-600),var(--accent-600))}
.stat-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-md)}
.stat-card .num{font-size:27px; font-weight:900; letter-spacing:-.5px;
  background:linear-gradient(115deg,var(--primary-700),var(--primary-600)); -webkit-background-clip:text; background-clip:text; color:transparent}
.stat-card .lbl{font-size:12.5px; color:var(--muted); font-weight:600; margin-top:3px; text-transform:uppercase; letter-spacing:.5px}

/* ============ 25. Admin/shop sidebar layout — premium dark ============ */
.dash{display:flex; gap:0; min-height:80vh}
.sidebar{width:236px; background:linear-gradient(180deg,#14181c 0%,#0d1114 100%); color:#fff; flex-shrink:0; display:none;
  box-shadow:4px 0 24px rgba(0,0,0,.18)}
@media(min-width:900px){ .sidebar{display:block} }
.sidebar a{display:flex; align-items:center; gap:10px; color:#b9c2c9; padding:12px 18px; font-size:14px; font-weight:600;
  border-bottom:1px solid rgba(255,255,255,.05); transition:background-color .2s var(--ease),color .2s var(--ease),padding .2s var(--ease); position:relative}
.sidebar a:hover{background:rgba(255,255,255,.06); color:#fff; padding-left:22px}
.sidebar a.active{background:linear-gradient(90deg,rgba(255,206,50,.16),transparent); color:var(--accent); font-weight:800}
.sidebar a.active::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(180deg,var(--accent),var(--accent-600)); border-radius:0 3px 3px 0}
.dash-main{flex:1; padding:16px; min-width:0}
.mobile-menu-btn{display:inline-flex; margin-bottom:12px}
@media(min-width:900px){ .mobile-menu-btn{display:none} }

/* ============ 26. Gallery (legacy) ============ */
.gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-bottom:14px}
.gallery img{border-radius:10px; height:112px; object-fit:cover; width:100%; box-shadow:var(--shadow); transition:transform .25s var(--ease)}
.gallery img:hover{transform:scale(1.03)}

/* ============ 27. Receipt print ============ */
@media print{ .no-print{display:none !important} body{padding:0; background:#fff} body::before{display:none} }
.receipt{width:80mm; margin:0 auto; font-family:monospace; font-size:12px; color:#000}
.receipt h3{text-align:center}
.receipt table{width:100%; border-collapse:collapse}
.receipt td{padding:2px 0}

/* ============ 28. Utilities ============ */
.mt{margin-top:14px} .mb{margin-bottom:14px} .text-muted{color:var(--muted)} .text-center{text-align:center}
.flex{display:flex; gap:10px; align-items:center} .between{justify-content:space-between}
.ad-banner{margin:14px 0; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); transition:transform .25s var(--ease)}
.ad-banner:hover{transform:translateY(-2px)}
.ad-banner img{width:100%}
.shop-cover{width:100%; height:170px; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow-md)}
.shop-logo{width:84px; height:84px; border-radius:50%; object-fit:cover; border:4px solid #fff; margin-top:-42px;
  box-shadow:var(--shadow-md); position:relative; z-index:2; background:#fff}
.install-prompt{position:fixed; bottom:82px; left:10px; right:10px; background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-radius:16px; box-shadow:var(--shadow-lg); padding:14px; display:none; z-index:120; border:1px solid var(--line);
  animation:fadeUp .4s var(--ease)}
@media(min-width:768px){ .install-prompt{left:auto; right:22px; width:370px} }
@media (display-mode: standalone){ .install-prompt{display:none!important} }

/* ============ 29. Premium utilities (opt-in, templates may use later) ============ */
.pr-glass{background:rgba(255,255,255,.78); backdrop-filter:blur(14px) saturate(1.4); -webkit-backdrop-filter:blur(14px) saturate(1.4);
  border:1px solid rgba(255,255,255,.6); box-shadow:var(--shadow-md)}
.pr-grad-text{background:linear-gradient(115deg,var(--primary-700),var(--primary-600) 60%,#0f8a74);
  -webkit-background-clip:text; background-clip:text; color:transparent}
.pr-gold-text{background:linear-gradient(115deg,#8a5a00,var(--accent-600));
  -webkit-background-clip:text; background-clip:text; color:transparent}
.pr-shine{position:relative; overflow:hidden}
.pr-shine::before{content:""; position:absolute; top:0; bottom:0; left:-60%; width:45%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent); transform:skewX(-18deg)}
.pr-shine:hover::before{animation:sheenSweep .7s var(--ease)}
.pr-card{background:#fff; border-radius:var(--radius); border:1px solid var(--line); box-shadow:var(--shadow); padding:18px}
.pr-card-hover{transition:transform .25s var(--ease), box-shadow .25s var(--ease)}
.pr-card-hover:hover{transform:translateY(-4px); box-shadow:var(--shadow-md)}
.pr-divider{height:1px; background:linear-gradient(90deg,transparent,var(--line),transparent); margin:14px 0; border:0}
.pr-chip{display:inline-flex; align-items:center; gap:6px; padding:6px 13px; border-radius:999px; font-size:12.5px; font-weight:700;
  background:var(--primary-50); color:var(--primary-800); border:1px solid var(--primary-100)}
.pr-chip-gold{background:var(--accent-50); color:#7a5c00; border-color:#f0d98a}
.pr-fade-up{animation:fadeUp .5s var(--ease) both}
.pr-float{animation:floatY 5s ease-in-out infinite}

/* ============ 30. Accessibility: calm motion when requested ============ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s !important; animation-iteration-count:1 !important; transition-duration:.001s !important}
  html{scroll-behavior:auto}
}

/* ============ 31. Profile page — premium ============ */
.profile-wrap{max-width:720px; margin:18px auto 8px; animation:fadeUp .45s var(--ease)}
.profile-cover{background:linear-gradient(135deg,#0a5a62 0%,#083b42 55%,#062a30 100%); border-radius:20px; padding:26px 22px 20px; color:#fff; position:relative; overflow:hidden; box-shadow:0 14px 34px rgba(4,42,47,.35)}
.profile-cover::before{content:""; position:absolute; inset:0; background:radial-gradient(420px 200px at 85% -20%,rgba(255,193,7,.28),transparent 60%), radial-gradient(300px 180px at 5% 110%,rgba(255,255,255,.08),transparent 60%); pointer-events:none}
.profile-head{display:flex; gap:18px; align-items:center; position:relative; z-index:1; flex-wrap:wrap}
.profile-avatar{width:104px; height:104px; border-radius:50%; object-fit:cover; border:4px solid rgba(255,193,7,.85); box-shadow:0 8px 22px rgba(0,0,0,.35); background:#0e464d; flex:0 0 auto}
.profile-avatar-ph{width:104px; height:104px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:44px; border:4px solid rgba(255,193,7,.85); background:linear-gradient(135deg,#10575e,#0a3a40); box-shadow:0 8px 22px rgba(0,0,0,.35); flex:0 0 auto}
.profile-who{min-width:0; flex:1}
.profile-who h1{font-size:22px; margin:0 0 6px; letter-spacing:-.3px; color:#fff; overflow:hidden; text-overflow:ellipsis}
.profile-who .pmeta{display:flex; gap:8px; flex-wrap:wrap; align-items:center; font-size:13px; color:#c8d9db}
.profile-who .pmeta .badge{font-size:11.5px}
.profile-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:18px; position:relative; z-index:1}
.profile-stat{background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.14); border-radius:14px; padding:12px 8px; text-align:center; backdrop-filter:blur(6px); transition:background-color .22s var(--ease),transform .22s var(--ease)}
.profile-stat:hover{background:rgba(255,255,255,.15); transform:translateY(-2px)}
.profile-stat .n{font-size:20px; font-weight:900; color:#fff}
.profile-stat .l{font-size:12px; color:#b9cfd2; font-weight:600; margin-top:2px}
.profile-form-card{margin-top:16px}
.profile-form-card h2{font-size:17px; margin-bottom:4px}
.profile-form-card .psub{font-size:13px; color:var(--muted); margin-bottom:16px}
.profile-grid{display:grid; gap:14px; grid-template-columns:minmax(0,1fr)}
.profile-grid .full{grid-column:1/-1}
.profile-grid>*{min-width:0}
@media(min-width:640px){ .profile-grid{grid-template-columns:1fr 1fr} }
.profile-grid .form-group{margin-bottom:0}
.profile-upload{display:flex; align-items:center; gap:14px; background:var(--line-soft); border:1.5px dashed #c3d0d2; border-radius:14px; padding:12px 14px}
.profile-upload input[type=file]{font-size:13.5px; max-width:100%}
.profile-upload .pu-hint{font-size:12px; color:var(--muted); margin-top:4px}
.profile-save{width:100%; padding:14px; font-size:16px; margin-top:16px}
.profile-membership{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:18px; padding-top:16px; border-top:1px solid var(--line); font-size:13px; color:var(--muted)}
.profile-membership .pm-item{display:inline-flex; align-items:center; gap:6px}
@media(max-width:520px){
  .profile-head{gap:14px}
  .profile-avatar,.profile-avatar-ph{width:88px; height:88px}
  .profile-avatar-ph{font-size:36px}
  .profile-who h1{font-size:19px}
  .profile-cover{padding:20px 16px 16px}
  .profile-stats{gap:8px}
  .profile-stat .n{font-size:17px}
  .profile-stat .l{font-size:11px}
}

/* ============ 32. Google sign-in button ============ */
.btn-google{display:flex; align-items:center; justify-content:center; gap:10px; width:100%; padding:12px 14px; background:#fff; border:1.5px solid #dadce0; border-radius:10px; font-size:15px; font-weight:600; color:#3c4043; text-decoration:none; transition:background-color .22s var(--ease),border-color .22s var(--ease),transform .22s var(--ease),box-shadow .22s var(--ease),color .22s var(--ease); box-shadow:0 2px 8px rgba(0,0,0,.06)}
.btn-google:hover{background:#f7f9fa; border-color:#c6cacc; transform:translateY(-1px); box-shadow:0 6px 16px rgba(0,0,0,.1); color:#202124}
.or-divider{display:flex; align-items:center; gap:12px; margin:18px 0; color:var(--muted); font-size:13px; font-weight:600}
.or-divider::before,.or-divider::after{content:""; flex:1; height:1px; background:var(--line)}

/* ============ 33. Email OTP verification — premium ============ */
.otp-wrap{max-width:460px; margin:30px auto; animation:fadeUp .45s var(--ease); padding:0 4px}
.otp-card{text-align:center; padding:34px 28px !important; border-top:4px solid; border-image:linear-gradient(90deg,var(--primary-600),var(--accent)) 1}
.otp-icon{font-size:46px; margin-bottom:12px}
.otp-card h1{font-size:21px; margin-bottom:8px}
.otp-sub{font-size:14px; color:var(--muted); margin-bottom:22px; line-height:1.6}
.otp-boxes{display:flex; gap:8px; justify-content:center; margin-bottom:20px}
.otp-box{width:48px; height:56px; text-align:center; font-size:24px; font-weight:800; border:1.5px solid #cfd8da; border-radius:12px; background:#fbfdfd; color:var(--dark); transition:border-color .18s var(--ease),box-shadow .18s var(--ease),background-color .18s var(--ease),transform .18s var(--ease); caret-color:var(--primary-600)}
.otp-box:focus{outline:none; border-color:var(--primary-600); box-shadow:0 0 0 4px rgba(10,90,98,.13); background:#fff; transform:translateY(-2px)}
.otp-resend{background:none; border:none; color:var(--primary-600); font-size:14px; font-weight:700; cursor:pointer; padding:6px}
.otp-resend:hover{text-decoration:underline}
@media(max-width:420px){ .otp-box{width:42px; height:50px; font-size:21px} .otp-boxes{gap:6px} }

/* ---------- Premium Quick Links (user dashboard) ---------- */
.quick-title{font-size:17px;font-weight:800;margin:4px 0 12px;color:var(--dark);letter-spacing:-.01em}
.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 8px}
@media(min-width:768px){.quick-grid{grid-template-columns:repeat(4,1fr);gap:14px}}
.quick-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:16px 14px;background:linear-gradient(180deg,#ffffff 0%,#f8fbfb 100%);border:1px solid #e8eff1;border-radius:20px;text-decoration:none;box-shadow:0 2px 10px -6px rgba(10,60,66,.12);transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s var(--ease)}
.quick-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;border-radius:20px 20px 0 0;background:linear-gradient(90deg,var(--qc1,#0a5a62),var(--qc2,#0e7d88));opacity:0;transition:opacity .22s var(--ease)}
.quick-card::after{content:"";position:absolute;inset:0;border-radius:20px;background:radial-gradient(120px 60px at 18% 0%,var(--qc2,#0e7d88));opacity:.07;pointer-events:none}
.quick-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px -14px rgba(10,60,66,.30);border-color:var(--qc,#0a5a62);text-decoration:none}
.quick-card:hover::before{opacity:1}
.quick-card:active{transform:scale(.97)}
.quick-card:focus-visible{outline:2px solid var(--qc,#0a5a62);outline-offset:2px}
.quick-ic{position:relative;width:46px;height:46px;border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--qc1,#0a5a62),var(--qc2,#0e7d88));box-shadow:0 10px 18px -10px var(--qc2,#0e7d88),inset 0 1px 0 rgba(255,255,255,.35);transition:transform .22s var(--ease)}
.quick-card:hover .quick-ic{transform:scale(1.07) rotate(-4deg)}
.quick-ic svg{width:22px;height:22px;display:block}
.quick-badge{position:absolute;top:-7px;right:-7px;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#fff;color:var(--qc,#0a5a62);border:2px solid var(--qc,#0a5a62);font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 4px 8px -4px rgba(0,0,0,.25)}
.quick-tx{display:flex;flex-direction:column;gap:3px;min-width:0;width:100%}
.quick-tx strong{font-size:13.5px;font-weight:700;color:var(--dark);line-height:1.3}
.quick-tx small{font-size:11.5px;color:#8f9a9f;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:360px){.quick-grid{gap:10px}.quick-card{padding:14px 12px}.quick-ic{width:42px;height:42px;border-radius:14px}.quick-tx strong{font-size:12.5px}}
.quick-teal{--qc:#0a5a62;--qc1:#0a5a62;--qc2:#1595a3}
.quick-gold{--qc:#c9930a;--qc1:#d9a40c;--qc2:#f2c93c}
.quick-rose{--qc:#d6336c;--qc1:#d6336c;--qc2:#f783ac}
.quick-violet{--qc:#7048e8;--qc1:#7048e8;--qc2:#9775fa}
.quick-blue{--qc:#1c7ed6;--qc1:#1c7ed6;--qc2:#4dabf7}
.quick-indigo{--qc:#4c6ef5;--qc1:#4c6ef5;--qc2:#9775fa}
.quick-slate{--qc:#495057;--qc1:#495057;--qc2:#868e96}
.quick-orange{--qc:#e8590c;--qc1:#e8590c;--qc2:#ffa94d}
.quick-green{--qc:#2b8a3e;--qc1:#2b8a3e;--qc2:#69db7c}
.quick-cyan{--qc:#0c8599;--qc1:#0c8599;--qc2:#66d9e8}

/* ---------- Official brand logo (horizontal lockup, transparent) ---------- */
/* Cinematic entrance every time the app/page opens + premium hover glow */
.logo-img{height:58px;width:auto;display:block;animation:logoReveal 1s cubic-bezier(.22,1,.36,1) both;transition:transform .3s var(--ease), filter .3s var(--ease)}
@keyframes logoReveal{
  0%{opacity:0;transform:translateY(-18px) scale(.88);filter:blur(10px)}
  55%{opacity:1;filter:blur(0)}
  78%{transform:translateY(3px) scale(1.015)}
  100%{opacity:1;transform:none;filter:none}
}
.logo:hover .logo-img{transform:translateY(-2px) scale(1.045);filter:drop-shadow(0 10px 18px rgba(10,90,98,.35))}
@media (prefers-reduced-motion:reduce){.logo-img{animation:none}}
/* Kamalia city badge — sits where the header search used to be */
.city-badge{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:15px;letter-spacing:.2px;color:var(--dark);
  background:linear-gradient(135deg,#f2fbfc,#e4f2f3);border:1px solid rgba(0,47,52,.12);padding:6px 16px 6px 7px;border-radius:999px;white-space:nowrap;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 0 3px 10px rgba(0,47,52,.07)}
.city-badge img{width:28px;height:28px;display:block;filter:drop-shadow(0 2px 4px rgba(0,47,52,.22))}
/* Footer brand lockup */
.flogo-img{height:32px;width:auto;display:block}
.flogo{display:inline-flex;align-items:center}
.flogo-badge{display:inline-flex;background:#fff;border-radius:12px;padding:3px;margin-right:9px;box-shadow:0 4px 12px -4px rgba(0,0,0,.4)}
.flogo-badge img{height:30px;width:30px;display:block;border-radius:9px}
/* Home search bar — full-width premium search below the English marquee */
.home-search{max-width:880px;margin:14px auto 6px;padding:0 14px}
.home-search .searchbar{border-width:2px;box-shadow:inset 0 2px 6px rgba(0,47,52,.06), 0 10px 26px rgba(0,47,52,.10);position:relative}
.home-search .searchbar input{padding:13px 14px;font-size:15px}
/* compact custom category dropdown (never takes full phone screen) */
.cat-dd{position:relative;flex:0 0 auto}
.cat-dd-btn{border:0;border-right:1px solid var(--line);background:transparent;padding:10px 6px 10px 12px;font-size:13px;font-weight:700;color:var(--dark);display:flex;align-items:center;gap:7px;cursor:pointer;max-width:148px;white-space:nowrap}
.cat-dd-ic{display:inline-flex;flex:0 0 auto;color:var(--primary-700)}
.cat-dd-ic svg{width:19px;height:19px;display:block}
.cat-dd-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-dd-list{position:absolute;top:calc(100% + 8px);left:0;width:230px;max-width:70vw;max-height:260px;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 44px rgba(0,47,52,.20);z-index:70;padding:6px;-webkit-overflow-scrolling:touch}
.cat-dd-list [role=option]{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:transparent;padding:9px 11px;border-radius:9px;font-size:13px;font-weight:600;color:var(--dark);cursor:pointer}
.cat-dd-list [role=option]:hover{background:#f0f7f7}
.cat-dd-list [role=option].on{background:#e3f1f1;color:var(--primary-700)}
.cat-dd-list [role=option].sub{padding-left:24px;font-weight:500;color:#5b6b74}
.opt-ic{display:inline-flex;flex:0 0 auto;color:var(--primary-600)}
.opt-ic svg{width:17px;height:17px;display:block}
@media(max-width:480px){
  .logo-img{height:46px}
  .city-badge{font-size:0;gap:0;padding:6px 7px}
  .topbar-inner{gap:8px;padding:8px 10px}
  .cat-dd-btn{max-width:108px;font-size:12px;padding-left:8px}
  .cat-dd-list{width:210px;max-height:230px}
  .home-search{margin-top:10px}
}
@media(max-width:360px){
  .city-badge{display:none}
  .logo-img{height:40px}
}

/* ---------- Community: What's on your mind ---------- */
.mind-sec{max-width:880px;margin:14px auto 6px;padding:0 14px}
.mind-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.mind-head h2{font-size:19px;margin:0}
.mind-tabs{display:flex;gap:4px;background:#e9f1f1;border-radius:999px;padding:3px}
.mind-tabs button{border:0;background:transparent;padding:7px 14px;border-radius:999px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer}
.mind-tabs button.on{background:#fff;color:var(--primary-700);box-shadow:0 2px 8px rgba(0,47,52,.12)}
.mind-composer{display:flex;gap:10px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:0 8px 24px rgba(0,47,52,.08);margin-bottom:12px}
.mind-av{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;flex:0 0 auto}
.mind-cbox{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.mind-cbox textarea{border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:14px;resize:vertical;min-height:56px;font-family:inherit;color:var(--dark)}
.mind-cbox textarea:focus{outline:none;border-color:var(--primary)}
.mind-cfoot{display:flex;align-items:center;justify-content:space-between}
.mind-count{font-size:12px;color:var(--muted);font-weight:600}
.mind-count.hot{color:#d64545;font-weight:800}
.mind-guest{display:flex;align-items:center;gap:10px;background:#fff;border:1px dashed var(--line);border-radius:18px;padding:12px;margin-bottom:12px;color:var(--dark);text-decoration:none;font-size:14px}
.mind-guest:hover{border-color:var(--primary)}
.mind-feed{display:flex;flex-direction:column;gap:10px}
.mind-post{display:flex;gap:10px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:0 4px 14px rgba(0,47,52,.05);animation:mindIn .3s ease}
@keyframes mindIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.mind-post.is-pinned{border-color:#e8c15a;background:linear-gradient(180deg,#fffdf4,#fff)}
.mind-main{flex:1;min-width:0}
.mind-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px}
.mind-meta b{font-size:14px;color:var(--dark)}
.mind-time{color:var(--muted)}
.mind-pin-badge{font-size:11px;font-weight:800;color:#8a6d1c;background:#fbeec2;border-radius:999px;padding:2px 8px}
.mind-tools{margin-left:auto;display:flex;gap:2px}
.mind-tools button{border:0;background:transparent;cursor:pointer;font-size:15px;padding:2px 5px;border-radius:8px;line-height:1}
.mind-tools button:hover{background:#eef4f4}
.mind-text{margin:6px 0 10px;font-size:14.5px;line-height:1.55;color:var(--dark);overflow-wrap:anywhere;white-space:pre-wrap}
.mind-actions{display:flex;gap:8px}
.mind-like,.mind-cbtn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#f7fbfb;border-radius:999px;padding:6px 13px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer}
.mind-like svg,.mind-cbtn svg{width:16px;height:16px;display:block}
.mind-like.on{color:#d64545;border-color:#f3c1c1;background:#fdf1f1}
.mind-like:hover{background:#fdf1f1;border-color:#f3c1c1;color:#d64545}
.mind-like.on svg{animation:likePop .3s ease}
@keyframes likePop{50%{transform:scale(1.35)}}
.mind-comments{margin-top:10px;border-top:1px dashed var(--line);padding-top:10px;display:flex;flex-direction:column;gap:8px}
.mind-comments[hidden]{display:none}
.mc-list{display:flex;flex-direction:column;gap:8px}
.mc{display:flex;gap:8px}
.mc-body{flex:1;background:#f4f8f8;border-radius:12px;padding:8px 10px;min-width:0}
.mc-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-bottom:2px}
.mc-meta b{color:var(--dark);font-size:12.5px}
.mc-del{margin-left:auto;border:0;background:transparent;color:#c3cbce;cursor:pointer;font-size:15px;line-height:1;padding:0 2px}
.mc-del:hover{color:#d64545}
.mc-body p{margin:0;font-size:13.5px;color:var(--dark);overflow-wrap:anywhere}
.mc-form{display:flex;gap:8px}
.mc-form input{flex:1;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:13px;min-width:0}
.mc-form input:focus{outline:none;border-color:var(--primary)}
.mc-form button{border:0;background:var(--primary);color:#fff;border-radius:999px;padding:8px 16px;font-weight:700;font-size:13px;cursor:pointer;flex:0 0 auto}
.mc-login{font-size:13px;color:var(--primary-700);font-weight:700;text-align:center;padding:6px;text-decoration:none}
.mind-empty{text-align:center;color:var(--muted);background:#fff;border:1px dashed var(--line);border-radius:18px;padding:28px 16px;font-size:14px}
/* ---------- eKamalia Tweets entry (above Urdu marquee) ---------- */
.tweets-entry{position:relative;display:flex;align-items:center;gap:14px;margin:0 0 12px;padding:12px 18px 12px 12px;border-radius:20px;text-decoration:none;overflow:hidden;
  background:linear-gradient(120deg,#062e2a 0%,#0a4a40 45%,#0d5c4e 100%);
  border:1px solid rgba(212,175,55,.35);
  box-shadow:0 12px 32px rgba(4,40,36,.28), inset 0 1px 0 rgba(255,255,255,.12)}
.tweets-entry::before{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:45%;
  background:linear-gradient(110deg,transparent,rgba(212,175,55,.16),transparent);
  transform:skewX(-18deg);animation:teSheen 5s ease-in-out infinite;pointer-events:none}
@keyframes teSheen{0%,100%{transform:translateX(-160%) skewX(-18deg)}50%{transform:translateX(340%) skewX(-18deg)}}
.tweets-entry::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#e9c766,#b8860b);border-radius:20px 0 0 20px}
.te-bird{flex:0 0 auto;width:56px;height:56px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffff,#e8f3f0);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.3),0 0 0 3px rgba(212,175,55,.5);position:relative;z-index:1}
.te-bird img{width:44px;height:44px;object-fit:contain}
.te-text{flex:1;display:flex;flex-direction:column;gap:2px;position:relative;z-index:1;min-width:0}
.te-text b{color:#fff;font-size:19px;letter-spacing:.3px;background:linear-gradient(90deg,#fff,#f3df9a);-webkit-background-clip:text;background-clip:text}
.te-text small{color:rgba(255,255,255,.75);font-size:12.5px}
.te-go{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#e9c766,#c9962e);display:flex;align-items:center;justify-content:center;color:#062e2a;box-shadow:0 4px 12px rgba(233,199,102,.4);position:relative;z-index:1;transition:transform .25s}
.tweets-entry:hover .te-go{transform:translateX(4px)}
@media(max-width:480px){
  .tweets-entry{padding:10px 14px 10px 10px;gap:11px;border-radius:16px}
  .te-bird{width:46px;height:46px}
  .te-bird img{width:36px;height:36px}
  .te-text b{font-size:16.5px}
  .te-text small{font-size:11.5px}
  .te-go{width:32px;height:32px}
}
/* ---------- Community page (Facebook-style feed) ---------- */
.mind-page{max-width:680px;margin:0 auto;padding:18px 14px 40px}
.mind-page-head{text-align:center;margin-bottom:14px}
.mind-page-head h1{font-size:24px;margin:0 0 4px}
.mind-page-head p{color:var(--muted);font-size:14px;margin:0}
.mind-composer-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:0 8px 24px rgba(0,47,52,.08);margin-bottom:12px}
.mind-composer-top{display:flex;gap:10px;align-items:center}
.mind-composer-top[hidden]{display:none}
.mind-pill{flex:1;text-align:left;border:0;background:#f0f4f4;border-radius:999px;padding:11px 16px;font-size:14px;color:var(--muted);cursor:pointer;font-family:inherit}
.mind-pill:hover{background:#e7eeee}
.mind-composer-card .mind-composer{box-shadow:none;border:0;padding:0;margin:0}
.mind-composer[hidden]{display:none}
.mind-cbtns{display:flex;gap:8px}
.mind-tabs-page{justify-content:center;margin:4px 0 12px}
.mind-tabs-page button{padding:8px 22px;font-size:14px}
@media(max-width:480px){
  .mind-page{padding:12px 10px 32px}
  .mind-page-head h1{font-size:20px}
  .mind-text{font-size:14px}
  .mind-composer{padding:10px}
}

/* ============ 12. Symbol preloader — emblem with rotating stylish ring, transparent ============ */
#ek-preloader{position:fixed; inset:0; z-index:99999; background:transparent; display:flex; align-items:center; justify-content:center; overflow:hidden; transition:opacity .6s ease, visibility .6s; pointer-events:none}
#ek-preloader.ek-done{opacity:0; visibility:hidden; pointer-events:none}
.ek-sym{position:relative; width:140px; height:140px; display:flex; align-items:center; justify-content:center}
.ek-sym .ek-emblem{height:104px; width:auto; display:block; position:relative; z-index:1}
.ek-ring{position:absolute; border-radius:50%; pointer-events:none}
.ek-ring-static{inset:0; border:1px solid rgba(212,175,55,.22)}
.ek-ring-gold{inset:0; background:conic-gradient(from 0deg, #D4AF37 0deg, rgba(212,175,55,0) 100deg); -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px)); mask:radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px)); animation:ek-spin 1.3s linear infinite}
.ek-ring-green{inset:9px; background:conic-gradient(from 180deg, rgba(1,65,28,0) 0deg, #2E7D4F 70deg, rgba(1,65,28,0) 140deg); -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px)); mask:radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2px)); animation:ek-spin 2.2s linear infinite reverse}
@keyframes ek-spin{to{transform:rotate(360deg)}}

/* ============ 13. Pull-to-refresh (mobile, advanced) ============ */
#ek-ptr{position:fixed; top:0; left:0; right:0; z-index:9998; display:flex; justify-content:center; pointer-events:none; transform:translateY(-90px)}
.ek-ptr-badge{position:relative; width:54px; height:54px; margin-top:12px; background:#fff; border-radius:50%; box-shadow:0 10px 26px rgba(10,40,45,.24); display:flex; align-items:center; justify-content:center}
.ek-ptr-badge svg{position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg)}
.ek-ptr-track{fill:none; stroke:#e6eeee; stroke-width:3.5}
.ek-ptr-prog{fill:none; stroke:#0e7c86; stroke-width:3.5; stroke-linecap:round; stroke-dasharray:119.4; stroke-dashoffset:119.4}
.ek-ptr-badge img{width:32px; height:32px; border-radius:10px}
#ek-ptr.loading .ek-ptr-badge svg{animation:ekSpin .9s linear infinite}
#ek-ptr.loading .ek-ptr-prog{stroke-dashoffset:40}

/* ============ Updates marquee — pro Urdu news ticker ============ */
.urdu-input,.urdu-text,.updates-marquee{font-family:'Jameel Noori Nastaleeq','Noto Nastaliq Urdu','Urdu Typesetting',serif}
.urdu-input{line-height:2.2; font-size:17px}
.updates-marquee{display:flex;align-items:stretch;margin:16px 0 6px;border-radius:16px;overflow:hidden;position:relative;
  background:linear-gradient(120deg,#052a2f,#0a4a52 45%,#052a2f);
  border:1px solid rgba(232,169,12,.5);
  box-shadow:0 12px 30px rgba(6,43,48,.32),inset 0 1px 0 rgba(255,255,255,.09);color:#fff}
.updates-marquee::after{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:35%;pointer-events:none;z-index:2;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.07),transparent);
  transform:skewX(-12deg);animation:umsheen 8s linear infinite}
@keyframes umsheen{from{transform:translateX(-180%) skewX(-12deg)}to{transform:translateX(420%) skewX(-12deg)}}
.um-label{flex:0 0 auto;display:flex;align-items:center;gap:9px;padding:10px 20px;font-weight:800;font-size:17px;
  white-space:nowrap;color:#2e2100;line-height:2;position:relative;z-index:1;
  background:linear-gradient(135deg,#f6c90e,#d99e06);
  box-shadow:-4px 0 14px rgba(0,0,0,.25)}
.um-label .um-ic{width:21px;height:21px;flex:none}
.um-live{width:9px;height:9px;border-radius:50%;background:#e11d48;flex:none;
  box-shadow:0 0 0 0 rgba(225,29,72,.55);animation:umPulse 1.6s ease-out infinite}
@keyframes umPulse{70%{box-shadow:0 0 0 10px rgba(225,29,72,0)}100%{box-shadow:0 0 0 0 rgba(225,29,72,0)}}
.um-track{flex:1;overflow:hidden;display:flex;align-items:center;position:relative;
  -webkit-mask-image:linear-gradient(to left,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(to left,transparent,#000 6%,#000 94%,transparent)}
.um-inner{flex:none;display:inline-flex;align-items:center;white-space:nowrap;will-change:transform;
  animation:umscroll 34s linear infinite}
.um-inner>span{padding:0 30px;font-size:17.5px;line-height:2.5;color:#ffe9b0}
.um-inner .um-sep{color:#e8a90c;font-style:normal}
.updates-marquee:hover .um-inner{animation-play-state:paused}
@keyframes umscroll{to{transform:translateX(50%)}}
@media (prefers-reduced-motion:reduce){.um-inner,.updates-marquee::after{animation:none}}
@media(max-width:640px){.um-label{padding:8px 14px;font-size:15px}.um-inner>span{font-size:16px;padding:0 22px}}

/* ============ Testimonials — premium slider ============ */
.tm-slider{overflow:hidden; border-radius:18px; margin:6px 0 26px; position:relative}
.tm-track{display:flex; transition:transform .55s cubic-bezier(.22,.9,.3,1)}
.tm-slide{flex:0 0 100%; padding:4px}
.tm-card{position:relative; border-radius:16px; padding:26px 24px 22px; color:#fff; overflow:hidden;
  background:linear-gradient(135deg,#062b30 0%,#0b4a52 55%,#0e6a75 100%);
  border:1px solid rgba(232,169,12,.4); box-shadow:0 14px 34px rgba(6,43,48,.3)}
.tm-card::before{content:""; position:absolute; left:-60px; top:-60px; width:200px; height:200px; border-radius:50%;
  background:radial-gradient(circle,rgba(232,169,12,.25),transparent 70%)}
.tm-quote{font-size:64px; line-height:1; color:#e8a90c; opacity:.85; font-family:Georgia,serif; margin-bottom:-14px}
.tm-stars{color:#f2c93c; letter-spacing:4px; font-size:15px; margin:6px 0 10px}
.tm-text{font-size:15.5px; line-height:1.75; color:#eef7f7; margin:0 0 16px; position:relative}
.tm-user{display:flex; align-items:center; gap:12px}
.tm-avatar{width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:17px; color:#3a2a00; background:linear-gradient(135deg,#ffe27a,#dfa40b);
  border:2px solid rgba(255,255,255,.5); flex:0 0 auto}
.tm-user b{font-size:15px}
.tm-user small{color:#bcd9db}
.tm-dots{display:flex; gap:8px; justify-content:center; padding:12px 0 2px}
.tm-dots span{width:9px; height:9px; border-radius:50%; background:#c8d8d8; cursor:pointer; transition:.3s}
.tm-dots span.on{width:26px; border-radius:6px; background:linear-gradient(90deg,#0e7c86,#e8a90c)}

/* ===== mobile fit-to-screen: overflow guard (2026-09-19) ===== */
html,body{overflow-x:clip}
@supports not (overflow-x:clip){html,body{overflow-x:hidden}}
img,svg,video,iframe{max-width:100%}
/* flex text children must be allowed to shrink below content width */
.info-row>*{min-width:0}
.info-row span,.info-row a{overflow-wrap:anywhere}
.profile-who{min-width:0}
.profile-who .pmeta{max-width:100%}
.profile-who .pmeta>span{min-width:0;overflow-wrap:anywhere}
.hero-info{min-width:0}
.hero-meta{max-width:100%}
.shop-hero,.profile-cover{max-width:100%}

/* ===== premium animated profile icon + edit-page mobile fit (2026-09-19) ===== */
/* ring spins via a rotating pseudo-element (transform-only, GPU-friendly); static ring underneath */
.avatar-ring{display:inline-flex;padding:5px;border-radius:50%;flex:0 0 auto;position:relative;z-index:1;isolation:isolate;
  box-shadow:0 10px 28px rgba(0,0,0,.42),0 0 0 5px rgba(255,193,7,.10),0 0 22px rgba(14,165,183,.35)}
.avatar-ring::before{content:"";position:absolute;inset:0;border-radius:50%;z-index:-1;
  background:conic-gradient(#ffc107,#0ea5b7,#7c5cff,#ff6b9d,#ffc107);
  animation:raSpin 6s linear infinite}
@keyframes raSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.avatar-ring::before{animation:none}}
@media (max-width:767px){.avatar-ring::before{animation:none}}
.avatar-ring>.profile-avatar,.avatar-ring>.profile-avatar-ph{width:96px;height:96px;border:0;margin:0;flex:0 0 auto}
.avatar-ring>.profile-avatar{border-radius:50%;object-fit:cover}
.avatar-ring>.profile-avatar-ph{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-size:38px;font-weight:900;color:#fff;letter-spacing:1px;text-shadow:0 2px 10px rgba(0,0,0,.4);
  background:linear-gradient(135deg,#12b5c9 0%,#0a5a62 55%,#062a30 100%)}
/* upload thumb with camera badge */
.pu-thumb{position:relative;flex:0 0 auto;width:58px;height:58px}
.pu-thumb img{width:58px;height:58px;border-radius:50%;object-fit:cover;border:3px solid #0a5a62;box-shadow:0 4px 12px rgba(4,42,47,.25)}
.pu-ph{width:58px;height:58px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  font-size:24px;font-weight:900;color:#fff;background:linear-gradient(135deg,#12b5c9,#0a5a62);border:3px solid #0a5a62}
.pu-cam{position:absolute;bottom:-4px;right:-4px;width:25px;height:25px;border-radius:50%;background:linear-gradient(135deg,#ffc107,#ff9800);
  color:#062a30;font-size:13px;display:inline-flex;align-items:center;justify-content:center;border:2px solid #fff;
  box-shadow:0 3px 8px rgba(0,0,0,.3)}
/* edit page: never overflow on phones */
.profile-form-card,.profile-wrap{min-width:0}
.profile-upload{flex-wrap:wrap}
.profile-upload input[type=file]{width:100%;max-width:100%;min-width:0}
@media(max-width:520px){
  .avatar-ring>.profile-avatar,.avatar-ring>.profile-avatar-ph{width:78px;height:78px}
  .avatar-ring>.profile-avatar-ph{font-size:30px}
  .avatar-ring{padding:4px}
  .profile-upload{gap:12px}
  .profile-upload>div:last-child{flex:1 1 200px;min-width:0}
}

/* ===== shop verification: green tick badge + apply card (2026-09-19) ===== */
.vtick{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;
  background:linear-gradient(135deg,#22c55e 0%,#15803d 100%);color:#fff;font-size:14px;font-weight:900;line-height:1;
  box-shadow:0 2px 10px rgba(34,197,94,.55),inset 0 1px 2px rgba(255,255,255,.35);
  vertical-align:-4px;margin-left:8px;flex:0 0 auto}
.vtick-lg{width:46px;height:46px;font-size:22px;margin:0;vertical-align:middle;flex:0 0 auto}
.vtick-grey{background:linear-gradient(135deg,#9fb3b6,#6b8387);box-shadow:0 2px 8px rgba(0,0,0,.18)}
.vtick-pending{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 2px 8px rgba(245,158,11,.4)}
.vcard{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:18px;margin-bottom:16px;box-shadow:var(--shadow);
  display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.vcard>div{min-width:0;flex:1 1 200px}
.vcard b{font-size:15.5px;color:var(--dark)}
.vcard p{margin:4px 0 0;font-size:13.5px;color:var(--muted)}
.vcard-ok{border-color:#bbf7d0;background:linear-gradient(135deg,#f0fdf4,#fff)}
.vcard-pending{border-color:#fde68a;background:linear-gradient(135deg,#fffbeb,#fff)}
.vcard .vcard-head{display:flex;gap:14px;align-items:flex-start;width:100%;margin-bottom:12px}
.vcard .vform{width:100%}
.vcard .vform .form-row{display:flex;gap:12px;flex-wrap:wrap}
.vcard .vform .form-row .form-group{flex:1;min-width:160px}
@media(max-width:520px){.vcard{padding:15px}.vtick-lg{width:40px;height:40px;font-size:19px}}

/* ===== premium icon badges: comment empty-state + footer contact ===== */
.cempty-ic{width:76px;height:76px;border-radius:50%;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#e0f2f1,#b2dfdb);color:#0f766e;
  box-shadow:inset 0 2px 6px rgba(255,255,255,.7), 0 4px 12px rgba(15,118,110,.18)}
.cempty-ic svg{width:36px;height:36px;display:block}
.footer-contact .fic{display:inline-flex;width:26px;height:26px;border-radius:8px;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);align-items:center;justify-content:center;margin-right:8px;vertical-align:middle}
.footer-contact .fic svg{width:13px;height:13px;color:#ffd94d;display:block}

/* global: hidden attribute must always win over display rules (sheet/form toggles) */
[hidden]{display:none!important}

/* ============ Image crop sheet (EkCrop) — mobile-first ============ */
.ekcrop-sheet{position:fixed; inset:0; z-index:9999; display:flex; align-items:center; justify-content:center;
  background:rgba(8,15,18,.72); backdrop-filter:blur(6px); padding:14px}
.ekcrop-sheet[hidden]{display:none}
.ekcrop-card{width:min(560px,100%); max-height:94vh; max-height:94dvh; overflow-y:auto; background:#fff;
  border-radius:18px; box-shadow:0 24px 70px rgba(0,0,0,.45); padding:16px; display:flex; flex-direction:column; gap:10px}
.ekcrop-head{display:flex; align-items:center; justify-content:space-between}
.ekcrop-head b{font-size:16px; font-weight:800; color:#0b2b2f}
.ekcrop-x{border:none; background:#f1f5f9; width:34px; height:34px; border-radius:50%; font-size:20px; line-height:1;
  cursor:pointer; color:#475569}
.ekcrop-sub{font-size:12px; color:var(--muted); margin-top:-6px}
.ekcrop-canvas{background:#0f172a; border-radius:12px; overflow:hidden; min-height:220px; max-height:52vh; max-height:52dvh}
.ekcrop-canvas .ekcrop-img{display:block; max-width:100%}
.ekcrop-ratios{display:flex; gap:8px; flex-wrap:wrap}
.ekcrop-ratio{border:1.5px solid var(--line); background:#fff; border-radius:999px; padding:7px 14px; font-size:13px;
  font-weight:700; color:#334155; cursor:pointer}
.ekcrop-ratio.on{border-color:var(--accent); background:#fff7e8; color:#92600a}
.ekcrop-tools{display:flex; gap:8px}
.ekcrop-rot{flex:1; border:1.5px solid var(--line); background:#fff; border-radius:10px; padding:8px; font-size:18px; cursor:pointer}
.ekcrop-actions{display:flex; gap:10px}
.ekcrop-btn{flex:1; border:none; border-radius:12px; padding:13px; font-size:15px; font-weight:800; cursor:pointer}
.ekcrop-orig{background:#f1f5f9; color:#334155}
.ekcrop-ok{background:linear-gradient(135deg,var(--accent),#f59e0b); color:#3a2b00; box-shadow:0 8px 20px rgba(245,158,11,.35)}
.ekcrop-count{text-align:center; font-size:12px; color:var(--muted)}
@media(max-width:480px){
  .ekcrop-sheet{padding:0; align-items:stretch}
  .ekcrop-card{width:100%; max-height:100vh; max-height:100dvh; border-radius:0; justify-content:flex-start}
  .ekcrop-canvas{max-height:58vh; max-height:58dvh}
}

/* ============================================================
   Transport / Bus ticket booking (v1)
   ============================================================ */
/* step indicator */
.t-steps{display:flex;gap:6px;margin:2px 0 14px}
.t-step{flex:1;text-align:center;font-size:12px;font-weight:700;color:var(--muted2);padding:9px 4px;background:var(--card);border:1px solid var(--line);border-radius:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t-step .n{display:inline-flex;width:22px;height:22px;border-radius:50%;background:var(--line-soft);align-items:center;justify-content:center;margin-right:5px;font-size:11px}
.t-step.done{color:var(--primary-600)} .t-step.done .n{background:var(--primary-600);color:#fff}
.t-step.cur{color:#fff;background:linear-gradient(135deg,var(--primary-700),var(--primary-600));border-color:transparent;box-shadow:var(--shadow-md)}
.t-step.cur .n{background:var(--accent);color:var(--primary)}
/* operator cards */
.t-op-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
@media(min-width:768px){.t-op-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}}
.t-op-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 8px;text-align:center;box-shadow:var(--shadow);transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
.t-op-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.t-op-logo{width:56px;height:56px;border-radius:18px;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--primary-600),var(--primary-800));box-shadow:var(--shadow);overflow:hidden;flex:0 0 auto}
.t-op-logo img{width:100%;height:100%;object-fit:cover}
/* trip rows */
.t-trip{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:10px;box-shadow:var(--shadow);animation:fadeUp .4s var(--ease)}
.t-trip .tt-time{font-size:17px;font-weight:800;color:var(--primary);margin-top:4px}
.seats-ok{color:var(--success);font-weight:700} .seats-none{color:var(--danger);font-weight:700}
/* seat map */
.seat-map{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 12px;box-shadow:var(--shadow-md);max-width:360px;margin:0 auto}
.bus-front{display:flex;justify-content:space-between;align-items:center;padding:6px 10px 12px;border-bottom:2px dashed var(--line);margin-bottom:14px}
.seat-row{display:flex;justify-content:center;gap:8px;margin-bottom:8px}
.seat-aisle{width:30px;flex:0 0 auto}
.seat{position:relative;width:46px;height:46px;flex:0 0 auto;border-radius:13px 13px 7px 7px;border:2px solid var(--line);background:var(--primary-50);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:var(--primary);cursor:pointer;transition:transform .15s var(--ease),background .15s,border-color .15s;user-select:none}
.seat-empty{visibility:hidden}
.seat.available:hover{transform:scale(1.1);border-color:var(--primary-600)}
.seat.selected{background:linear-gradient(135deg,var(--accent),var(--accent-600));border-color:var(--accent-700);color:var(--primary);box-shadow:var(--shadow-gold);transform:scale(1.06)}
.seat.booked{background:#e9eded;border-color:#d5dcdc;color:#a3b0b1;cursor:not-allowed}
.seat.booked span{text-decoration:line-through}
.seat.ro{cursor:default}
.seat input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.seat-legend{display:flex;justify-content:center;gap:14px;margin-top:12px;font-size:12px;color:var(--muted);font-weight:600}
.seat-legend .sw{display:inline-block;width:16px;height:16px;border-radius:5px;vertical-align:-3px;margin-right:5px;border:2px solid var(--line)}
.sw.available{background:var(--primary-50)} .sw.selected{background:linear-gradient(135deg,var(--accent),var(--accent-600));border-color:var(--accent-700)} .sw.booked{background:#e9eded;border-color:#d5dcdc}
/* ticket */
.ticket-card{background:var(--card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--line);max-width:560px;margin:0 auto;animation:popIn .45s var(--ease-spring)}
.ticket-head{background:linear-gradient(135deg,var(--primary-800),var(--primary-600));color:#fff;padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px;position:relative;overflow:hidden}
.ticket-head::after{content:"";position:absolute;top:-40%;right:-10%;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,206,50,.35),transparent 70%)}
.ticket-ref{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:21px;font-weight:800;letter-spacing:2px;background:rgba(255,255,255,.14);padding:7px 14px;border-radius:10px;border:1px dashed rgba(255,255,255,.55);margin-top:4px;display:inline-block;position:relative;z-index:1}
.ticket-row{display:flex;justify-content:space-between;gap:12px;padding:10px 18px;border-bottom:1px solid var(--line-soft);font-size:14px}
.ticket-row .k{color:var(--muted);font-weight:600;flex:0 0 auto}
.ticket-row span:last-child{text-align:right}
/* Urdu terms + payment panel */
.urdu-terms{direction:rtl;text-align:right;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;font-size:14px;line-height:2;box-shadow:var(--shadow);margin-top:12px}
.urdu-terms h4{margin:0 0 6px;font-size:15px}
.urdu-terms ol{margin:0;padding-right:20px}
.urdu-terms li{margin-bottom:2px}
.pay-panel{max-width:560px;margin-left:auto;margin-right:auto}
.pay-nums{display:grid;gap:10px;grid-template-columns:1fr}
@media(min-width:520px){.pay-nums{grid-template-columns:1fr 1fr}}
.pay-num{display:flex;align-items:center;gap:10px;background:var(--bg-soft,#f8f9fa);border:1px dashed var(--line);border-radius:12px;padding:12px 14px}
.pay-tag{font-size:11px;font-weight:800;padding:4px 10px;border-radius:999px;color:#fff;flex:0 0 auto}
.pay-tag.ep{background:#43a047}
.pay-tag.jc{background:#d32f2f}
.pay-val{font-size:19px;letter-spacing:1px;direction:ltr}
/* dashboard stats + occupancy */
.t-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
@media(min-width:768px){.t-stats{grid-template-columns:repeat(4,1fr)}}
.t-stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
.t-stat .v{font-size:22px;font-weight:800;color:var(--primary)}
.t-stat .l{font-size:12px;color:var(--muted);font-weight:600;margin-top:2px}
.occ-bar{height:8px;background:var(--line-soft);border-radius:99px;overflow:hidden}
.occ-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--primary-600),var(--accent-600));border-radius:99px;transition:width .5s var(--ease)}
/* operator nav */
.op-nav{display:flex;gap:6px;overflow-x:auto;padding:2px 0 12px;margin-bottom:4px;-webkit-overflow-scrolling:touch}
.op-nav a{flex:0 0 auto;padding:9px 14px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:13px;font-weight:700;color:var(--primary);box-shadow:var(--shadow);white-space:nowrap}
.op-nav a.active{background:linear-gradient(135deg,var(--primary-700),var(--primary-600));color:#fff;border-color:transparent}
/* print */
@media print{
  .topbar,.site-footer,.no-print,.flash,.op-nav,.t-steps{display:none!important}
  body{padding:0;background:#fff}
  body::before{display:none}
  .ticket-card{box-shadow:none;max-width:100%;animation:none}
  main.container{padding:0;max-width:100%}
}

/* ---- Bus animation strip (below Urdu updates marquee) ---- */
.bus-strip{position:relative;overflow:hidden;height:172px;background:transparent}
.bs-road{position:absolute;left:0;right:0;bottom:0;height:32px;background:#0b1114;border-top:2px solid rgba(232,185,60,.28)}
.bs-road::before{content:"";position:absolute;top:13px;left:0;right:0;height:4px;background:repeating-linear-gradient(90deg,#e8b93c 0 26px,transparent 26px 54px);animation:bsroadmove .8s linear infinite}
@keyframes bsroadmove{to{background-position-x:54px}}
.bs-streak{position:absolute;height:3px;border-radius:3px;background:rgba(128,128,128,.28);animation:bsstreak linear infinite}
.bs-streak.s1{top:44px;width:70px;animation-duration:2.6s}
.bs-streak.s2{top:86px;width:46px;animation-duration:1.9s;animation-delay:.7s}
.bs-streak.s3{top:120px;width:90px;animation-duration:3.4s;animation-delay:1.4s}
@keyframes bsstreak{from{transform:translateX(-140px)}to{transform:translateX(110vw)}}
.bs-drive{position:absolute;top:26px;left:0;animation:bsdrive 14s linear infinite}
@keyframes bsdrive{from{transform:translateX(105vw)}to{transform:translateX(-620px)}}
.bs-bob{display:flex;align-items:flex-start;animation:bsbob .72s ease-in-out infinite alternate}
@keyframes bsbob{from{transform:translateY(0)}to{transform:translateY(-2.6px)}}
.bs-buswrap{position:relative}
.bs-bus{display:block;width:208px;height:auto;filter:drop-shadow(0 8px 10px rgba(0,0,0,.35))}
.bs-beam{position:absolute;left:-62px;top:52px;width:68px;height:28px;pointer-events:none;background:linear-gradient(90deg,rgba(255,237,176,.38),rgba(255,237,176,0));clip-path:polygon(0 0,100% 32%,100% 68%,0 100%)}
.bs-puff{position:absolute;right:2px;top:66px;width:11px;height:11px;border-radius:50%;background:rgba(205,215,220,.5);animation:bspuff 1.7s ease-out infinite}
.bs-puff.p2{animation-delay:.85s}
@keyframes bspuff{0%{transform:translate(0,0) scale(.45);opacity:.55}100%{transform:translate(38px,-18px) scale(1.7);opacity:0}}
.bs-spin{transform-box:fill-box;transform-origin:center;animation:bsspin .62s linear infinite}
@keyframes bsspin{to{transform:rotate(360deg)}}
.bs-tow{align-self:flex-start;margin-top:46px;display:flex;align-items:center;flex:none}
.bs-chain{display:block;width:118px;height:auto;overflow:visible}
.bs-ticket{display:flex;align-items:center;gap:9px;background:linear-gradient(135deg,#10707a,#083f45);border:2px dashed #e8b93c;border-radius:12px;padding:11px 18px;color:#ffe9a8;font-weight:800;font-size:17px;letter-spacing:.3px;white-space:nowrap;text-decoration:none;box-shadow:0 6px 18px rgba(0,0,0,.45),0 0 22px rgba(232,185,60,.18);animation:bssway 1.15s ease-in-out infinite alternate;transform-origin:10% center}
.bs-ticket:hover{color:#fff}
@keyframes bssway{from{transform:rotate(-3.2deg)}to{transform:rotate(3.2deg)}}
.bs-tkico{width:22px;height:22px;flex:none}
@media (prefers-reduced-motion:reduce){.bs-drive,.bs-bob,.bs-spin,.bs-puff,.bs-road::before,.bs-streak,.bs-ticket{animation:none}}

/* ---- Bus strip: mobile fit ---- */
@media (max-width:480px){
  .bus-strip{height:132px}
  .bs-drive{top:20px}
  .bs-bus{width:148px}
  .bs-beam{left:-44px;top:37px;width:48px;height:20px}
  .bs-puff{right:2px;top:47px;width:8px;height:8px}
  .bs-tow{margin-top:32px}
  .bs-chain{width:84px}
  .bs-ticket{font-size:14px;padding:8px 13px;gap:7px;border-radius:10px}
  .bs-tkico{width:17px;height:17px}
  .bs-road{height:26px}
  .bs-road::before{top:10px}
  .bs-streak.s1{top:34px}.bs-streak.s2{top:66px}.bs-streak.s3{top:94px}
}

/* BUS-OFF19: bus animation strip temporarily hidden on all screens (user 2026-09-19: "remove for now"). Restore by deleting this rule. */
.bus-strip{display:none!important}

/* ============================================================
   eKamalia Tweets — premium social feed (2026-09-21)
   Mobile-first, fits 320–430px. X/Facebook-style polish.
   ============================================================ */
.tw-page{max-width:640px;margin:0 auto;padding:14px 12px 48px;min-width:0}
/* Hero */
.tw-hero{position:relative;display:flex;align-items:center;gap:12px;padding:14px 14px;border-radius:22px;overflow:hidden;margin-bottom:12px;
  background:linear-gradient(125deg,#052e2a 0%,#0a4a40 55%,#0e5f51 100%);
  border:1px solid rgba(212,175,55,.4);
  box-shadow:0 14px 34px rgba(4,40,36,.3), inset 0 1px 0 rgba(255,255,255,.12)}
.tw-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(212,175,55,.18) 45%,transparent 60%);background-size:250% 100%;animation:teSheen 5.5s ease-in-out infinite;pointer-events:none}
.tw-back{position:relative;z-index:1;flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1);color:#fff;text-decoration:none;font-size:17px;border:1px solid rgba(255,255,255,.18)}
.tw-back:hover{background:rgba(255,255,255,.2)}
.tw-hero-bird{position:relative;z-index:1;flex:0 0 auto;width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#e6f2ef);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.32),0 0 0 3px rgba(212,175,55,.55)}
.tw-hero-bird img{width:46px;height:46px;object-fit:contain}
.tw-hero-text{position:relative;z-index:1;flex:1;min-width:0}
.tw-hero-text h1{margin:0;font-size:21px;color:#fff;letter-spacing:.3px;font-weight:800}
.tw-hero-text h1 span{background:linear-gradient(90deg,#f3df9a,#e9c766);-webkit-background-clip:text;background-clip:text;color:transparent}
.tw-hero-text p{margin:2px 0 0;font-size:12px;color:rgba(255,255,255,.72)}
.tw-hero-stats{position:relative;z-index:1;flex:0 0 auto;display:flex;gap:10px}
.tw-hero-stats div{display:flex;flex-direction:column;align-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:6px 10px;min-width:52px}
.tw-hero-stats b{color:#f3df9a;font-size:16px}
.tw-hero-stats small{color:rgba(255,255,255,.65);font-size:10px;text-transform:uppercase;letter-spacing:.6px}
/* Composer */
.tw-composer-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px;box-shadow:0 10px 28px rgba(0,47,52,.09);margin-bottom:12px}
.tw-composer-top{display:flex;gap:10px;align-items:center}
.tw-composer-top[hidden]{display:none}
.tw-pill{flex:1;min-width:0;text-align:left;border:0;background:#f0f4f4;border-radius:999px;padding:12px 18px;font-size:14px;color:var(--muted);cursor:pointer;font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tw-pill:hover{background:#e6eeee}
.tw-composer[hidden]{display:none}
.tw-cbox{display:flex;flex-direction:column;gap:8px;min-width:0}
.tw-cbox-head{display:flex;align-items:center;gap:10px}
.tw-cbox-who{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.tw-cbox-who b{font-size:14px;color:var(--dark)}
.tw-cbox-who small{font-size:11px;color:var(--muted)}
.tw-cbox textarea{border:1.5px solid var(--line);border-radius:14px;padding:12px;font-size:15px;resize:vertical;min-height:76px;font-family:inherit;color:var(--dark);width:100%}
.tw-cbox textarea:focus{outline:none;border-color:var(--primary-600);box-shadow:0 0 0 3px rgba(10,90,98,.12)}
.tw-meter{height:4px;background:#eef3f4;border-radius:99px;overflow:hidden}
.tw-meter span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--primary-600),var(--accent));border-radius:99px;transition:width .2s}
.tw-meter span.hot{background:linear-gradient(90deg,#e63946,#ff7a7a)}
.tw-cfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.tw-count{font-size:12px;color:var(--muted);font-weight:700}
.tw-count.hot{color:#d64545;font-weight:800}
.tw-cbtns{display:flex;gap:8px}
.tw-post-btn{background:linear-gradient(135deg,var(--primary-600),var(--primary-700));border:0;box-shadow:0 6px 16px rgba(10,90,98,.3);font-weight:800}
.tw-post-btn:disabled{opacity:.6}
.tw-guest{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px dashed var(--line);border-radius:20px;padding:12px 14px;margin-bottom:12px;color:var(--dark);text-decoration:none;font-size:14px}
.tw-guest:hover{border-color:var(--primary-600)}
.tw-guest span{flex:1;min-width:0}
.tw-guest i{font-style:normal;color:var(--primary-700);font-weight:800}
/* Tabs */
.tw-tabs{display:flex;gap:4px;background:#e7f0f0;border-radius:999px;padding:4px;margin:2px 0 12px}
.tw-tabs button{flex:1;border:0;background:transparent;padding:9px 10px;border-radius:999px;font-size:13.5px;font-weight:800;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;min-width:0}
.tw-tabs button.on{background:#fff;color:var(--primary-700);box-shadow:0 3px 10px rgba(0,47,52,.14)}
.tw-tab-n{font-size:11px;background:#eef4f4;border-radius:99px;padding:1px 8px;color:var(--muted)}
.tw-tabs button.on .tw-tab-n{background:var(--primary-50);color:var(--primary-700)}
/* Feed + post cards */
.tw-feed{display:flex;flex-direction:column;gap:12px}
.tw-page .mind-post{gap:12px;padding:14px;border-radius:20px;box-shadow:0 6px 20px rgba(0,47,52,.07)}
.tw-page .mind-post:hover{box-shadow:0 10px 28px rgba(0,47,52,.11)}
.tw-page .mind-post.is-pinned{border:1.5px solid #e8c15a;background:linear-gradient(180deg,#fffdf4,#fff)}
.tw-page .mind-av{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(10,90,98,.15)}
.tw-page .mind-meta{align-items:flex-start}
.mind-who{display:flex;flex-direction:column;line-height:1.35;min-width:0}
.mind-who b{font-size:14.5px}
.tw-page .mind-text{font-size:15px;margin:8px 0 12px}
.tw-page .mind-actions{gap:8px;flex-wrap:wrap}
.tw-page .mind-like,.tw-page .mind-cbtn,.tw-page .mind-share{padding:8px 16px;font-size:13.5px;transition:transform .12s}
.tw-page .mind-like:active,.tw-page .mind-cbtn:active,.tw-page .mind-share:active{transform:scale(.94)}
.mind-share{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#f7fbfb;border-radius:999px;padding:6px 13px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer}
.mind-share svg{width:16px;height:16px;display:block}
.mind-share:hover{color:var(--primary-700);border-color:var(--primary-600)}
.mind-act-lbl{font-size:12.5px}
.tw-flash{animation:twFlash 2.2s ease}
@keyframes twFlash{0%,60%{box-shadow:0 0 0 4px rgba(255,206,50,.55)}100%{box-shadow:0 6px 20px rgba(0,47,52,.07)}}
/* Comments */
.tw-page .mind-comments{border-top:1px solid var(--line-soft);padding-top:12px}
.tw-page .mc-body{background:#f2f7f7;border-radius:14px;border:1px solid #e7efef}
.tw-page .mc-form{align-items:center;background:#f7fbfb;border:1px solid var(--line);border-radius:999px;padding:4px 4px 4px 6px}
.tw-page .mc-form input{border:0;background:transparent;padding:8px 10px}
.tw-page .mc-form input:focus{outline:none}
.tw-page .mc-form button{background:linear-gradient(135deg,var(--primary-600),var(--primary-700));box-shadow:0 4px 10px rgba(10,90,98,.25)}
/* Empty / skeleton / toast */
.tw-page .mind-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:40px 20px;border-radius:20px}
.mind-empty-bird{font-size:38px;filter:grayscale(.2)}
.tw-page .mind-empty b{font-size:16px;color:var(--dark)}
.tw-page .mind-empty span{font-size:13px;max-width:300px}
.tw-skel{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;animation:twPulse 1.4s ease-in-out infinite}
.tw-skel-av{width:44px;height:44px;border-radius:50%;background:#e9f0f0;flex:0 0 auto}
.tw-skel-main{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}
.tw-skel-ln{height:12px;border-radius:6px;background:#e9f0f0}
.tw-skel-ln.w40{width:40%}.tw-skel-ln.w70{width:70%}
@keyframes twPulse{0%,100%{opacity:1}50%{opacity:.55}}
.tw-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);background:#0a2b2e;color:#fff;font-size:13.5px;font-weight:600;padding:11px 20px;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.3);z-index:9999;opacity:0;transition:opacity .3s,transform .3s;max-width:calc(100vw - 40px);text-align:center;pointer-events:none}
.tw-toast.show{opacity:1;transform:translate(-50%,0)}
/* Small screens */
@media(max-width:430px){
  .tw-page{padding:10px 8px 40px}
  .tw-hero{padding:12px 10px;gap:10px;border-radius:18px}
  .tw-hero-bird{width:48px;height:48px}
  .tw-hero-bird img{width:38px;height:38px}
  .tw-hero-text h1{font-size:18px}
  .tw-hero-text p{font-size:11px}
  .tw-hero-stats div{min-width:46px;padding:5px 8px}
  .tw-page .mind-post{padding:12px 10px}
  .mind-act-lbl{display:none}
  .tw-page .mind-like,.tw-page .mind-cbtn,.tw-page .mind-share{padding:8px 13px}
}

/* ---- Profile pictures in Tweets (avatar w/ name) ---- */
.mind-av-img{border-radius:50%;object-fit:cover;flex:0 0 auto;background:#dfe9ec;display:block}
.mc .mind-av-img{width:28px;height:28px}

/* ---- Verified badge + designation in Tweets: Name (CEO) ✓, one line ---- */
.mind-namegrp{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;flex:0 1 auto;min-width:0;max-width:100%}
.mind-namegrp b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 1 auto;min-width:0}
.mind-tick{width:16px;height:16px;flex:0 0 auto}
.mind-desigbr{font-size:12px;font-weight:500;color:var(--muted,#6b7d7a);white-space:nowrap;flex:0 0 auto}
.mind-who{display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.35;min-width:0}
.mc-meta{display:flex;align-items:center;flex-wrap:wrap;gap:2px 6px}
.mc-meta .mc-time{flex:1 1 100%;font-size:11px}
.mc-meta .mind-tick{width:13px;height:13px}
.mc-meta .mind-desigbr{font-size:11px}
/* ---- comment likes ---- */
.mc-foot{display:flex;align-items:center;margin-top:5px}
.mc-like{display:inline-flex;align-items:center;gap:4px;background:#f7fbfb;border:1px solid var(--line,#e1e8e9);color:#93a1a3;font-size:12px;font-weight:700;cursor:pointer;padding:3px 10px;border-radius:999px;font-family:inherit}
.mc-like svg{width:13px;height:13px;transition:transform .15s}
.mc-like:hover{background:#fdf1f1;border-color:#f3c1c1;color:#f91880}
.mc-like.on{color:#f91880;border-color:#f8c8dc;background:#fdf1f1}
.mc-like.on svg{transform:scale(1.12)}
/* ---- @mentions in Tweets ---- */
.mind-mention{color:#1d9bf0;font-weight:700;white-space:nowrap}
.tw-mention-hint{font-size:11px;color:var(--muted,#6b7d7a)}
.mind-mention-box{position:fixed;z-index:9999;min-width:230px;max-width:290px;background:#0e241f;border:1px solid rgba(212,175,55,.4);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.45);overflow:hidden;padding:4px}
.mm-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;background:transparent;color:#eaf3f0;cursor:pointer;border-radius:8px;text-align:left;font-family:inherit}
.mm-item.on,.mm-item:hover{background:rgba(212,175,55,.16)}
.mm-item img{width:30px;height:30px;border-radius:50%;object-fit:cover;flex:0 0 auto}
.mm-av{width:30px;height:30px;border-radius:50%;background:#1d6f5f;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex:0 0 auto}
.mm-nm{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.mm-nm b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mm-nm small{color:#9db8b0;font-size:11px}

/* ================= eKamalia Shops — premium tile + All Shops page ================= */
/* First tile in the browse grid: Shops — gold treatment */
.cat-item-shop .cat-ic{background:linear-gradient(135deg,#ffe27a,#f5b700 55%,#d99e00)!important; color:#3d2e00!important; box-shadow:0 6px 16px rgba(245,183,0,.45), inset 0 1px 0 rgba(255,255,255,.6)!important; position:relative; overflow:hidden}
.cat-item-shop .cat-ic::after{content:""; position:absolute; top:-40%; left:0; width:50%; height:180%; background:linear-gradient(105deg,transparent,rgba(255,255,255,.75),transparent); animation:shopshine 3.2s ease-in-out infinite}
@keyframes shopshine{0%,55%{transform:translateX(-170%) skewX(-20deg)}85%,100%{transform:translateX(330%) skewX(-20deg)}}
.cat-item-shop{color:var(--dark); transition:transform .3s var(--ease-spring)}
.cat-item-shop:active{transform:scale(.9)}
.cat-item-shop:active .cat-ic{transform:scale(.85)}
.cat-item-shop span:last-child{font-weight:800}

/* ---- All Shops hero ---- */
.shops-hero{background:linear-gradient(135deg,#002f34 0%,#01414a 45%,#0a5a62 100%); border-radius:var(--radius-lg); padding:26px 20px; margin:14px 0 18px; position:relative; overflow:hidden; color:#fff; box-shadow:var(--shadow-md)}
.shops-hero::before{content:""; position:absolute; inset:0; background:radial-gradient(600px 220px at 85% -30%,rgba(255,206,50,.35),transparent 60%), radial-gradient(500px 200px at 10% 120%,rgba(255,255,255,.08),transparent 60%); pointer-events:none}
.shops-hero::after{content:""; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,#ffce32,#f5b700,#ffce32)}
.shops-hero-inner{position:relative; z-index:1}
.shops-crumbs{margin:0 0 8px}
.shops-crumbs a{color:#ffedb3}
.shops-crumbs span{color:rgba(255,255,255,.85)}
.shops-hero h1{margin:0 0 6px; font-size:clamp(24px,5.5vw,34px); letter-spacing:-.5px; color:#fff}
.shops-hero h1 .hl{color:var(--accent)}
.shops-hero p{margin:0 0 16px; color:rgba(255,255,255,.78); font-size:14px}
.shops-search{display:flex; gap:8px; flex-wrap:wrap}
.ss-input{flex:1 1 200px; display:flex; align-items:center; gap:8px; background:#fff; border-radius:12px; padding:0 12px; box-shadow:0 4px 14px rgba(0,0,0,.18)}
.ss-input svg{width:18px; height:18px; color:var(--muted); flex:0 0 auto}
.ss-input input{flex:1; border:0; outline:0; height:44px; font-size:14.5px; background:transparent; min-width:0; color:var(--dark)}
.shops-search .form-control{flex:0 1 140px; height:44px; border-radius:12px; border:0; background:#fff}
.shops-search .btn{height:44px; border-radius:12px; padding:0 22px}
.shops-stats{display:flex; align-items:center; gap:10px; margin-top:14px; font-size:13px; color:rgba(255,255,255,.75); flex-wrap:wrap}
.shops-stats b{color:var(--accent); font-size:15px}
.shops-stats .dot{opacity:.5}
.ss-clear{color:#ffedb3; text-decoration:none; font-weight:700}
.ss-clear:hover{text-decoration:underline}

/* ---- All Shops grid + pro cards ---- */
.shops-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin:0 0 18px}
@media(min-width:640px){ .shops-grid{grid-template-columns:repeat(3,1fr); gap:16px} }
@media(min-width:1024px){ .shops-grid{grid-template-columns:repeat(4,1fr)} }
.shoppro-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); transition:transform .25s var(--ease), box-shadow .25s var(--ease); display:flex; flex-direction:column}
.shoppro-card:hover{transform:translateY(-4px); box-shadow:var(--shadow-md)}
.shoppro-banner{background:linear-gradient(135deg,var(--primary-50),#fff 60%,var(--accent-50)); padding:16px; display:flex; align-items:center; justify-content:center; position:relative; border-bottom:1px solid var(--line-soft)}
.shoppro-logo{width:74px; height:74px; border-radius:22px; background:#fff; box-shadow:var(--shadow); border:1px solid var(--line); overflow:hidden; display:flex; align-items:center; justify-content:center}
.shoppro-logo img{width:100%; height:100%; object-fit:cover}
.shoppro-flag{position:absolute; top:10px; right:10px; background:linear-gradient(135deg,#ffe27a,#f5b700); color:#3d2e00; font-size:10.5px; font-weight:800; padding:4px 10px; border-radius:20px; box-shadow:0 3px 10px rgba(245,183,0,.45)}
.shoppro-card.is-featured{border-color:rgba(245,183,0,.55)}
.shoppro-body{padding:12px 14px 14px; display:flex; flex-direction:column; gap:7px; flex:1}
.shoppro-name{font-weight:800; font-size:14.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--dark)}
.vtick{display:inline-flex; align-items:center; justify-content:center; width:17px; height:17px; border-radius:50%; background:#1e9e57; color:#fff; font-size:11px; font-weight:800; vertical-align:1px}
.shoppro-meta{display:flex; align-items:center; gap:7px; font-size:12.5px}
.shoppro-stars{color:#f5b700; letter-spacing:1px; font-size:13px}
.shoppro-rate{color:var(--muted); font-weight:600}
.shoppro-foot{display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:12px; color:var(--muted)}
.shoppro-city{display:inline-flex; align-items:center; gap:4px; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.shoppro-city svg{width:13px; height:13px; flex:0 0 auto}
.shoppro-prods{font-weight:700; color:var(--primary-600); white-space:nowrap}
.shoppro-visit{margin-top:auto; display:inline-flex; align-items:center; gap:4px; font-weight:800; font-size:13px; color:var(--primary-600)}
.shoppro-visit svg{width:16px; height:16px}
.shoppro-card:hover .shoppro-visit{color:var(--accent-700)}

/* ---- empty state ---- */
.shops-empty{text-align:center; padding:52px 20px; background:var(--card); border:1px dashed var(--line); border-radius:var(--radius-lg); margin:8px 0 24px}
.se-ic{width:76px; height:76px; margin:0 auto 14px; border-radius:24px; background:linear-gradient(135deg,var(--accent-50),#fff); display:flex; align-items:center; justify-content:center; color:#8a5a00}
.se-ic svg{width:38px; height:38px}
.shops-empty h3{margin:0 0 6px; font-size:19px}
.shops-empty p{color:var(--muted); margin:0 0 16px; font-size:14px}
