/* ════════════════════════════════════════════════════════════
   Estakhrjo — AQUA LUXE Design System v2
   Deep Ocean Luxury — Glassmorphism × Water Physics × Premium
   ════════════════════════════════════════════════════════════ */

/* ----------
   متغیرها
   ---------- */
:root {
  --bg: #050d1a;
  --bg-2: #0a1830;
  --card: rgba(14, 28, 52, .55);
  --card-solid: #0d1b33;
  --card-2: rgba(20, 38, 68, .5);
  --glass: rgba(13, 25, 48, .6);
  --border: rgba(120, 190, 255, .14);
  --border-strong: rgba(120, 190, 255, .28);
  --text: #eaf2ff;
  --muted: #8ba3c4;
  --muted2: #5b7496;
  --brand: #22d3ee;
  --brand-2: #0ea5e9;
  --brand-deep: #0369a1;
  --gold: #f5c66b;
  --pink: #f472b6;
  --ok: #34d399;
  --danger: #fb7185;
  --warn: #fbbf24;
  --grad-brand: linear-gradient(135deg, #22d3ee 0%, #0ea5e9 50%, #0369a1 100%);
  --grad-gold: linear-gradient(135deg, #f5c66b, #e8963c);
  --grad-text: linear-gradient(120deg, #67e8f9 0%, #22d3ee 40%, #0ea5e9 100%);
  --sh-sm: 0 4px 16px rgba(0, 8, 24, .3);
  --sh: 0 16px 44px -12px rgba(0, 10, 30, .5);
  --sh-lg: 0 32px 80px -20px rgba(0, 12, 36, .7);
  --glow-brand: 0 0 40px rgba(34, 211, 238, .35);
  --r-sm: 12px; --r: 18px; --r-lg: 24px; --r-xl: 32px;
  --font: 'Vazirmatn', system-ui, sans-serif;
}
[data-theme="light"] {
  --bg: #eef4fa; --bg-2: #e2ecf6;
  --card: rgba(255, 255, 255, .78); --card-solid: #ffffff; --card-2: rgba(248, 250, 252, .85);
  --glass: rgba(255, 255, 255, .72);
  --border: rgba(10, 80, 140, .12); --border-strong: rgba(10, 80, 140, .25);
  --text: #0b1a2e; --muted: #576d86;  /* 4.81:1 on --bg; the old #5b728c measured 4.48 and missed AA */ --muted2: #8ea5bd;
  --brand: #0891b2; --brand-2: #0284c7; --brand-deep: #0c4a6e;
  --sh-sm: 0 4px 16px rgba(30, 60, 100, .08);
  --sh: 0 16px 44px -12px rgba(30, 60, 100, .14);
  --sh-lg: 0 32px 80px -20px rgba(30, 60, 100, .2);
}

/* ---------- پایه ---------- */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  /* Sideways scroll was only blocked on <body>, which the viewport ignores:
     <html> stayed scrollable, so a touch-drag panned the whole page and
     exposed empty space beside it. Lock it here as well.
     `clip` is preferred over `hidden` because `hidden` turns the element into
     a scroll container and that silently breaks every position:sticky inside
     it; `clip` does not. The `hidden` line above it is the fallback for
     browsers without `clip`. */
  overflow-x: hidden;
  overflow-x: clip;
  /* stop the horizontal rubber-band overscroll on touch */
  overscroll-behavior-x: none;
}
body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  line-height: 1.75;
  direction: rtl;
  max-width: 100%;
  overflow-x: hidden;
  overflow-x: clip;
  transition: background .4s, color .4s;
}

/* Form controls carry an intrinsic min-width of roughly 210px (the default
   `size` attribute). Inside a grid or flex track that floor wins over
   `1fr`, the track refuses to shrink, and the whole page grows wider than
   the screen. This was the actual cause of the panel overflowing on every
   phone width. Opt every control out of that floor. */
input, select, textarea { min-width: 0; max-width: 100%; }

/* Nothing should be able to push the page sideways. */
img, video, canvas, svg, iframe, table, pre { max-width: 100%; }
a { text-decoration: none; color: inherit; }
button, input, select, textarea { font-family: inherit; }
img { max-width: 100%; display: block; }
::selection { background: var(--brand); color: #04121f; }
.container { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
h1, h2, h3, h4 { line-height: 1.35; }

/* ---------- اسکرول‌بار ---------- */
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 20px; }
::-webkit-scrollbar-thumb:hover { background: var(--brand); }

/* ---------- پس‌زمینه محیطی (اورب‌ها) ---------- */
.orb { position: fixed; border-radius: 50%; filter: blur(90px); pointer-events: none; z-index: 0; opacity: .55; }
.orb-1 { width: 480px; height: 480px; background: radial-gradient(circle, rgba(34,211,238,.22), transparent 70%); top: -160px; left: -120px; animation: orbFloat 16s ease-in-out infinite; }
.orb-2 { width: 420px; height: 420px; background: radial-gradient(circle, rgba(14,165,233,.18), transparent 70%); bottom: 5%; right: -140px; animation: orbFloat 20s ease-in-out infinite reverse; }
.orb-3 { width: 360px; height: 360px; background: radial-gradient(circle, rgba(245,198,107,.1), transparent 70%); top: 45%; left: 30%; animation: orbFloat 24s ease-in-out infinite 4s; }
[data-theme="light"] .orb { opacity: .35; }
@keyframes orbFloat { 0%,100% { transform: translate(0,0) scale(1); } 33% { transform: translate(40px,-30px) scale(1.08); } 66% { transform: translate(-30px,25px) scale(.95); } }

/* ---------- کرسر نورانی ---------- */
.cursor-glow { position: fixed; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(circle, rgba(34,211,238,.09), transparent 65%); pointer-events: none; z-index: 1; transform: translate(-50%, -50%); transition: opacity .3s; opacity: 0; }
@media (hover: none) { .cursor-glow { display: none; } }

/* ---------- نوار پیشرفت اسکرول ---------- */
.scroll-progress { position: fixed; top: 0; right: 0; height: 3px; width: 0; background: var(--grad-brand); z-index: 300; box-shadow: 0 0 12px rgba(34,211,238,.8); transition: width .1s linear; border-radius: 0 0 0 4px; }

/* ---------- پره‌لودر ---------- */
.preloader { position: fixed; inset: 0; background: var(--bg); z-index: 9999; display: flex; align-items: center; justify-content: center; transition: opacity .7s ease, visibility .7s; }
.preloader.done { opacity: 0; visibility: hidden; }
.preloader-content { text-align: center; }
.preloader-logo { font-size: 54px; animation: preloadSwim 1.4s ease-in-out infinite; }
.preloader-brand { font-size: 26px; font-weight: 900; background: var(--grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; margin-top: 8px; letter-spacing: .5px; }
.preloader-bar { width: 150px; height: 3px; background: var(--border); border-radius: 10px; margin: 18px auto 0; overflow: hidden; }
.preloader-bar span { display: block; height: 100%; width: 40%; background: var(--grad-brand); border-radius: 10px; animation: preloadBar 1.2s ease-in-out infinite; }
@keyframes preloadSwim { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-14px) rotate(-8deg); } }
@keyframes preloadBar { 0% { transform: translateX(150px); } 100% { transform: translateX(-160px); } }

/* ---------- ناوبری شناور ---------- */
.nav { position: fixed; top: 14px; right: 50%; transform: translateX(50%); width: min(1240px, calc(100% - 32px)); z-index: 200; border-radius: 22px; background: var(--glass); backdrop-filter: blur(24px) saturate(160%); -webkit-backdrop-filter: blur(24px) saturate(160%); border: 1px solid var(--border); box-shadow: var(--sh); transition: all .35s ease; }
.nav.scrolled { top: 8px; border-color: var(--border-strong); box-shadow: var(--sh-lg); }
.nav-inner { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 20px; }
.nav-brand { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 19px; }
.nav-logo-w { width: 42px; height: 42px; border-radius: 14px; background: var(--grad-brand); display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(34, 211, 238, .4); position: relative; overflow: hidden; }
.nav-logo-w::after { content: ''; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.5) 50%, transparent 60%); transform: translateX(120%); animation: sheen 4s ease infinite; }
.nav-logo { font-size: 22px; filter: drop-shadow(0 2px 4px rgba(0,0,0,.3)); }
.nav-name { background: var(--grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.nav-links { display: flex; gap: 2px; }
.nav-links a { padding: 9px 15px; border-radius: 12px; font-size: 13.5px; color: var(--muted); font-weight: 600; transition: all .25s; position: relative; }
.nav-links a:hover, .nav-links a.active { color: var(--brand); background: rgba(34, 211, 238, .1); }
.nav-actions { display: flex; align-items: center; gap: 9px; }
.theme-toggle { background: var(--card-2); border: 1px solid var(--border); border-radius: 12px; width: 40px; height: 40px; cursor: pointer; font-size: 16px; transition: all .3s; color: var(--text); }
.theme-toggle:hover { border-color: var(--brand); transform: rotate(20deg) scale(1.08); box-shadow: var(--glow-brand); }
.nav-bell { position: relative; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: var(--card-2); border: 1px solid var(--border); }
.badge-dot { position: absolute; top: -5px; left: -5px; background: var(--danger); color: #fff; font-size: 10px; font-weight: 800; min-width: 17px; height: 17px; border-radius: 20px; display: flex; align-items: center; justify-content: center; padding: 0 4px; box-shadow: 0 0 12px rgba(251, 113, 133, .7); }
.avatar { font-size: 19px; }
.nav-burger { display: none; flex-direction: column; gap: 4.5px; background: none; border: none; cursor: pointer; padding: 10px; }
.nav-burger span { width: 21px; height: 2.5px; background: var(--text); border-radius: 3px; transition: all .3s; }
@keyframes sheen { 0% { transform: translateX(120%); } 60%,100% { transform: translateX(-120%); } }

/* ---------- دکمه‌ها ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: none; cursor: pointer; border-radius: 14px; font-size: 14px; font-weight: 700; padding: 12px 24px; transition: all .28s cubic-bezier(.34,1.56,.64,1); position: relative; overflow: hidden; letter-spacing: .2px; }
.btn::after { content: ''; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 42%, rgba(255,255,255,.25) 50%, transparent 58%); transform: translateX(130%); transition: transform .6s ease; }
.btn:hover::after { transform: translateX(-130%); }
.btn:active { transform: scale(.96); }
.btn-primary { background: var(--grad-brand); color: #041220; box-shadow: 0 10px 26px -8px rgba(34, 211, 238, .55); }
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 16px 34px -8px rgba(34, 211, 238, .7), var(--glow-brand); }
.btn-gold { background: var(--grad-gold); color: #2a1a04; box-shadow: 0 10px 26px -8px rgba(245, 198, 107, .5); }
.btn-ghost { background: var(--card-2); color: var(--text); border: 1.5px solid var(--border); }
.btn-ghost:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); }
.btn-danger { background: linear-gradient(135deg, #fb7185, #e11d48); color: #fff; }
.btn-success { background: linear-gradient(135deg, #34d399, #059669); color: #fff; }
.btn-sm { padding: 8px 16px; font-size: 12.5px; border-radius: 11px; }
.btn-lg { padding: 15px 32px; font-size: 15.5px; border-radius: 16px; }
.btn-block { width: 100%; }
.badge-ver { font-size: 10.5px; background: rgba(34, 211, 238, .12); color: var(--brand); padding: 3px 12px; border-radius: 20px; font-weight: 800; border: 1px solid rgba(34, 211, 238, .25); }

/* ---------- هرو / قهرمان ---------- */
.hero { position: relative; min-height: 100vh; display: flex; align-items: center; padding: 130px 0 90px; overflow: hidden; }
#gl { position: absolute; inset: 0; z-index: 0; }
.hero-bg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; opacity: .4; }
.hero-video-fallback { position: absolute; inset: 0; z-index: 1; background: radial-gradient(ellipse at 30% 20%, rgba(34,211,238,.12), transparent 50%), radial-gradient(ellipse at 75% 80%, rgba(14,165,233,.12), transparent 55%); }
.hero-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,13,26,.45) 0%, rgba(5,13,26,.7) 60%, var(--bg) 100%); }
[data-theme="light"] .hero-bg::after { background: linear-gradient(180deg, rgba(238,244,250,.4) 0%, rgba(238,244,250,.75) 60%, var(--bg) 100%); }
.hero-wrap { position: relative; z-index: 3; width: 100%; }
.hero-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(34, 211, 238, .12); border: 1px solid rgba(34, 211, 238, .3); color: #9de9f8; padding: 9px 20px; border-radius: 40px; font-size: 13px; font-weight: 700; margin-bottom: 24px; backdrop-filter: blur(10px); box-shadow: 0 0 30px rgba(34, 211, 238, .15); animation: badgeGlow 3s ease-in-out infinite; }
[data-theme="light"] .hero-badge { color: var(--brand-deep); }
@keyframes badgeGlow { 0%,100% { box-shadow: 0 0 20px rgba(34, 211, 238, .15); } 50% { box-shadow: 0 0 40px rgba(34, 211, 238, .35); } }
.hero h1 { font-size: clamp(34px, 6.5vw, 72px); font-weight: 900; color: #fff; line-height: 1.2; margin-bottom: 18px; text-shadow: 0 8px 40px rgba(0, 0, 0, .5); letter-spacing: -.5px; }
[data-theme="light"] .hero h1 { color: var(--text); text-shadow: none; }
.hero h1 em { font-style: normal; background: var(--grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; position: relative; }
.hero h1 .wave-word { display: inline-block; animation: titleWave 3.5s ease-in-out infinite; }
@keyframes titleWave { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
.hero p { font-size: clamp(15px, 2vw, 19px); color: rgba(230, 240, 255, .82); max-width: 580px; margin-bottom: 36px; font-weight: 400; text-shadow: 0 2px 14px rgba(0,0,0,.4); }
[data-theme="light"] .hero p { color: var(--muted); text-shadow: none; }

/* ویجت جستجوی شیشه‌ای */
.glass-widget { background: var(--glass); backdrop-filter: blur(28px) saturate(170%); -webkit-backdrop-filter: blur(28px) saturate(170%); border: 1px solid var(--border-strong); border-radius: var(--r-xl); padding: 26px; box-shadow: var(--sh-lg), inset 0 1px 0 rgba(255,255,255,.08); position: relative; overflow: hidden; }
.glass-widget::before { content: ''; position: absolute; top: 0; right: 0; left: 0; height: 1.5px; background: linear-gradient(90deg, transparent, rgba(34,211,238,.7), transparent); }
.hero-search { max-width: 900px; }
.hero-search form, .hero-search-row { display: grid; grid-template-columns: 2fr 1.2fr 1fr auto; gap: 12px; }
.hero-search input, .hero-search select { padding: 15px 18px; border: 1.5px solid var(--border); border-radius: 15px; background: var(--card-2); font-size: 14.5px; color: var(--text); transition: all .25s; }
.hero-search input::placeholder { color: var(--muted2); }
.hero-search input:focus, .hero-search select:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px rgba(34, 211, 238, .15); }
.hero-search-tags { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.tag-chip { padding: 8px 16px; background: var(--card-2); border: 1.5px solid var(--border); border-radius: 40px; font-size: 12.5px; color: var(--muted); cursor: pointer; font-weight: 700; transition: all .25s; }
.tag-chip:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); background: rgba(34,211,238,.1); box-shadow: 0 8px 20px rgba(34,211,238,.2); }

/* اسکرول ایندیکیتور */
.scroll-hint { position: absolute; bottom: 28px; right: 50%; transform: translateX(50%); z-index: 3; display: flex; flex-direction: column; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; font-weight: 600; }
.scroll-hint .mouse { width: 26px; height: 42px; border: 2px solid var(--border-strong); border-radius: 20px; position: relative; }
.scroll-hint .mouse::before { content: ''; position: absolute; top: 7px; right: 50%; transform: translateX(50%); width: 4px; height: 9px; background: var(--brand); border-radius: 4px; animation: scrollWheel 1.6s ease infinite; }
@keyframes scrollWheel { 0% { opacity: 1; transform: translateX(50%) translateY(0); } 100% { opacity: 0; transform: translateX(50%) translateY(16px); } }

/* ---------- تیکر برندها (مارکی) ---------- */
.ticker { border-block: 1px solid var(--border); background: var(--card); padding: 20px 0; overflow: hidden; position: relative; }
.ticker::before, .ticker::after { content: ''; position: absolute; top: 0; bottom: 0; width: 130px; z-index: 2; pointer-events: none; }
.ticker::before { right: 0; background: linear-gradient(270deg, transparent, var(--bg)); }
.ticker::after { left: 0; background: linear-gradient(90deg, transparent, var(--bg)); }
.ticker-track { display: flex; gap: 56px; width: max-content; animation: marquee 30s linear infinite; }
.ticker:hover .ticker-track { animation-play-state: paused; }
.ticker-item { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 800; color: var(--muted); white-space: nowrap; }
.ticker-item span { font-size: 22px; }
@keyframes marquee { 0% { transform: translateX(0); } 100% { transform: translateX(50%); } }

/* ---------- بخش‌ها ---------- */
.section { padding: 90px 0; position: relative; z-index: 2; }
.section-sm { padding: 56px 0; position: relative; z-index: 2; }
.sec-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 40px; flex-wrap: wrap; gap: 16px; }
.sec-title h2 { font-size: clamp(22px, 3.2vw, 34px); font-weight: 900; letter-spacing: -.3px; }
.sec-title h2 .grad { background: var(--grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.sec-title p { color: var(--muted); font-size: 14.5px; margin-top: 7px; }
.sec-kicker { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 800; color: var(--brand); background: rgba(34,211,238,.1); border: 1px solid rgba(34,211,238,.25); padding: 5px 14px; border-radius: 30px; margin-bottom: 14px; }
.sec-link { color: var(--brand); font-weight: 800; font-size: 14px; display: inline-flex; align-items: center; gap: 6px; transition: all .25s; padding: 9px 18px; border-radius: 12px; border: 1.5px solid transparent; }
.sec-link:hover { gap: 12px; border-color: var(--border-strong); background: var(--card); }

/* ---------- کارت‌های شیشه‌ای ---------- */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 24px; }
.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; }
.testi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.hero-eyebrow { display: inline-flex; }
.card { background: var(--card); border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-sm); transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s, border-color .45s; display: flex; flex-direction: column; backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); position: relative; transform-style: preserve-3d; }
.card::before { content: ''; position: absolute; inset: 0; border-radius: inherit; padding: 1px; background: linear-gradient(135deg, rgba(34,211,238,.5), transparent 30%, transparent 70%, rgba(34,211,238,.3)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity .45s; pointer-events: none; z-index: 2; }
.card:hover { transform: translateY(-9px); box-shadow: var(--sh-lg), 0 0 50px rgba(34, 211, 238, .12); border-color: var(--border-strong); }
.card:hover::before { opacity: 1; }
.card-img { position: relative; height: 178px; overflow: hidden; }
.card-img .bg { position: absolute; inset: 0; font-size: 74px; display: flex; align-items: center; justify-content: center; transition: transform .6s ease; }
.card:hover .card-img .bg { transform: scale(1.12) rotate(-3deg); }
.card-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(5, 13, 26, .6) 100%); }
.card-live { position: absolute; top: 13px; right: 13px; display: inline-flex; align-items: center; gap: 6px; background: rgba(4, 18, 32, .6); backdrop-filter: blur(10px); color: #a7f3d0; font-size: 11px; font-weight: 800; padding: 6px 13px; border-radius: 30px; z-index: 2; border: 1px solid rgba(52, 211, 153, .35); }
.card-live .dot { width: 7px; height: 7px; border-radius: 50%; background: #34d399; box-shadow: 0 0 10px #34d399; animation: pulse 1.6s infinite; }
.card-live.off { color: #fda4af; border-color: rgba(251, 113, 133, .35); }
.card-live.off .dot { background: #fb7185; box-shadow: 0 0 10px #fb7185; }
.card-ver { position: absolute; top: 13px; left: 13px; background: rgba(4, 18, 32, .6); backdrop-filter: blur(10px); color: #a5f3fc; font-size: 11px; font-weight: 800; padding: 6px 13px; border-radius: 30px; z-index: 2; border: 1px solid rgba(34, 211, 238, .35); }
.card-fav { position: absolute; bottom: 12px; left: 12px; z-index: 3; background: rgba(255, 255, 255, .92); backdrop-filter: blur(10px); border: none; width: 38px; height: 38px; border-radius: 50%; font-size: 16px; cursor: pointer; transition: all .25s cubic-bezier(.34,1.56,.64,1); box-shadow: 0 4px 14px rgba(0,0,0,.25); }
.card-fav:hover { transform: scale(1.2) rotate(-8deg); }
.card-fav.faved { background: #fb7185; box-shadow: 0 0 20px rgba(251, 113, 133, .6); }
.card-body { padding: 22px; flex: 1; display: flex; flex-direction: column; gap: 11px; }
.card-name { font-size: 17px; font-weight: 800; display: flex; justify-content: space-between; align-items: start; gap: 9px; }
.card-name .link:hover { color: var(--brand); }
.card-loc { font-size: 12.5px; color: var(--muted); }
.card-rate { display: flex; align-items: center; gap: 8px; font-size: 12.5px; }
.stars { color: var(--gold); font-size: 13px; letter-spacing: 1px; text-shadow: 0 0 12px rgba(245, 198, 107, .5); }
.rate-num { font-weight: 900; color: var(--text); }
.rate-cnt { color: var(--muted2); }
.card-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.mini-tag { padding: 4px 11px; background: var(--card-2); border: 1px solid var(--border); border-radius: 30px; font-size: 11px; font-weight: 700; color: var(--muted); }
.card-foot { margin-top: auto; padding-top: 15px; border-top: 1px dashed var(--border); display: flex; justify-content: space-between; align-items: center; }
.price { font-weight: 900; color: var(--text); font-size: 15px; }
.price small { font-weight: 500; color: var(--muted); font-size: 11px; }
.occ-bar { height: 6px; background: var(--border); border-radius: 10px; overflow: hidden; margin-top: 5px; }
.occ-fill { display: block; height: 100%; border-radius: 10px; background: var(--grad-brand); transition: width .7s ease; box-shadow: 0 0 8px rgba(34,211,238,.5); }
.occ-fill.mid { background: linear-gradient(90deg, #fbbf24, #f59e0b); }
.occ-fill.high { background: linear-gradient(90deg, #fb7185, #e11d48); }

/* ---------- کارت مربی ---------- */
.coach-avatar { width: 96px; height: 96px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 48px; border: 4px solid var(--card-2); box-shadow: 0 0 0 2px var(--border-strong), 0 12px 30px rgba(34, 211, 238, .25); transition: transform .4s; }
.card:hover .coach-avatar { transform: scale(1.07) rotate(4deg); }
.coach-badge { position: absolute; top: 15px; left: 15px; background: rgba(4, 18, 32, .6); backdrop-filter: blur(10px); color: #a5f3fc; font-size: 10.5px; font-weight: 800; padding: 5px 12px; border-radius: 30px; z-index: 2; border: 1px solid rgba(34, 211, 238, .35); }

/* ---------- اسلات سانس ---------- */
.slot { background: var(--card); border: 1px solid var(--border); border-radius: var(--r); padding: 20px; display: flex; flex-direction: column; gap: 9px; transition: all .3s cubic-bezier(.22,1,.36,1); backdrop-filter: blur(14px); position: relative; overflow: hidden; }
.slot::after { content: ''; position: absolute; top: 0; right: 0; width: 3px; height: 100%; background: var(--grad-brand); opacity: 0; transition: opacity .3s; }
.slot:hover { border-color: var(--brand); transform: translateY(-4px); box-shadow: var(--sh), 0 0 30px rgba(34, 211, 238, .12); }
.slot:hover::after { opacity: 1; }
.slot.full { opacity: .5; }
.slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.slot-top { display: flex; justify-content: space-between; align-items: center; }
.slot-time { font-size: 23px; font-weight: 900; color: var(--text); font-variant-numeric: tabular-nums; }
.slot-kind { padding: 5px 13px; border-radius: 30px; font-size: 11px; font-weight: 800; }
.kind-free { background: rgba(34, 211, 238, .14); color: var(--brand); border: 1px solid rgba(34, 211, 238, .3); }
.kind-class { background: rgba(52, 211, 153, .14); color: var(--ok); border: 1px solid rgba(52, 211, 153, .3); }
.kind-kid { background: rgba(251, 191, 36, .14); color: var(--warn); border: 1px solid rgba(251, 191, 36, .3); }
.kind-women { background: rgba(244, 114, 182, .14); color: var(--pink); border: 1px solid rgba(244, 114, 182, .3); }
.slot-meta { font-size: 12.5px; color: var(--muted); display: flex; gap: 12px; flex-wrap: wrap; }
.cap.low { color: var(--danger); font-weight: 800; }
.slot-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 4px; padding-top: 13px; border-top: 1px dashed var(--border); }

/* ---------- آمار ---------- */
.stats-strip { position: relative; z-index: 3; margin-top: -64px; }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 15px; }
.stat-pill { background: var(--glass); backdrop-filter: blur(22px); border: 1px solid var(--border-strong); border-radius: var(--r-lg); padding: 24px 18px; text-align: center; box-shadow: var(--sh); transition: all .35s; position: relative; overflow: hidden; }
.stat-pill::before { content: ''; position: absolute; top: 0; right: 0; left: 0; height: 2px; background: var(--grad-brand); opacity: 0; transition: opacity .3s; }
.stat-pill:hover { transform: translateY(-6px); border-color: var(--brand); box-shadow: var(--sh-lg), var(--glow-brand); }
.stat-pill:hover::before { opacity: 1; }
.stat-pill .num { font-size: clamp(26px, 3.4vw, 40px); font-weight: 900; background: var(--grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; display: block; font-variant-numeric: tabular-nums; }
.stat-pill .lbl { font-size: 12.5px; color: var(--muted); font-weight: 600; }

/* ---------- جزئیات ---------- */
.detail-hero { position: relative; min-height: 360px; display: flex; align-items: flex-end; padding: 120px 0 40px; overflow: hidden; }
.detail-hero-bg { position: absolute; inset: 0; font-size: 90px; display: flex; align-items: center; justify-content: center; opacity: .3; filter: blur(1px); animation: bgFloat 8s ease-in-out infinite; }
@keyframes bgFloat { 0%,100% { transform: scale(1); } 50% { transform: scale(1.06); } }
.detail-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,13,26,.3) 0%, var(--bg) 92%); }
.fact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 13px; margin: 22px 0; }
.fact { background: var(--card-2); border: 1px solid var(--border); border-radius: var(--r); padding: 16px 12px; text-align: center; transition: all .3s; }
.fact:hover { border-color: var(--brand); transform: translateY(-3px); box-shadow: 0 0 24px rgba(34, 211, 238, .14); }
.fact .fv { font-size: 20px; font-weight: 900; color: var(--brand); display: block; }
.fact .fl { font-size: 11.5px; color: var(--muted); }
.day-tabs { display: flex; gap: 9px; overflow-x: auto; padding-bottom: 12px; margin-bottom: 22px; }
.day-tab { flex-shrink: 0; padding: 12px 20px; border-radius: 15px; border: 1.5px solid var(--border); background: var(--card-2); cursor: pointer; font-size: 13.5px; font-weight: 700; color: var(--muted); transition: all .25s; text-align: center; min-width: 96px; }
.day-tab:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); }
.day-tab.active { border-color: var(--brand); background: rgba(34, 211, 238, .12); color: var(--brand); box-shadow: 0 0 22px rgba(34, 211, 238, .25); }
.day-tab .d-lbl { display: block; font-size: 10.5px; font-weight: 500; opacity: .8; }

/* ---------- نقدها ---------- */
.review { background: var(--card-2); border: 1px solid var(--border); border-radius: var(--r); padding: 19px; margin-bottom: 13px; transition: border-color .3s; }
.review:hover { border-color: var(--border-strong); }
.review-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 9px; flex-wrap: wrap; gap: 8px; }
.review-user { font-weight: 800; font-size: 14px; }
.criteria { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.crit { font-size: 10.5px; padding: 4px 11px; border-radius: 30px; background: var(--card-2); color: var(--muted); border: 1px solid var(--border); }

/* ---------- پنل‌ها ---------- */
.panel { background: var(--card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 26px; box-shadow: var(--sh-sm); backdrop-filter: blur(16px); position: relative; }
.panel h3 { font-size: 17px; font-weight: 900; margin-bottom: 19px; display: flex; align-items: center; gap: 9px; }
.panel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 20px; }

/* ---------- جداول ---------- */
.table-card { background: var(--card); border: 1px solid var(--border); border-radius: var(--r); overflow: hidden; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
thead th { background: var(--card-2); padding: 13px 15px; text-align: right; font-size: 11px; color: var(--muted); font-weight: 800; border-bottom: 1px solid var(--border); white-space: nowrap; letter-spacing: .3px; }
tbody td { padding: 13px 15px; border-bottom: 1px solid var(--border); white-space: nowrap; vertical-align: middle; }
tbody tr { transition: background .2s; }
tbody tr:hover { background: rgba(34, 211, 238, .05); }
tbody tr:last-child td { border-bottom: none; }
.t-status { padding: 4px 14px; border-radius: 30px; font-size: 11px; font-weight: 800; }
.st-paid { background: rgba(52, 211, 153, .14); color: var(--ok); border: 1px solid rgba(52, 211, 153, .3); }
.st-cancelled { background: rgba(251, 113, 133, .14); color: var(--danger); border: 1px solid rgba(251, 113, 133, .3); }
.st-used { background: rgba(165, 180, 252, .14); color: #a5b4fc; border: 1px solid rgba(165, 180, 252, .3); }
.st-open { background: rgba(52, 211, 153, .14); color: var(--ok); }
.st-closed { background: rgba(251, 113, 133, .14); color: var(--danger); }

/* ---------- فرم‌ها ---------- */
.fg { margin-bottom: 18px; }
.fg label { display: block; font-size: 13px; font-weight: 800; margin-bottom: 7px; }
.fg input, .fg select, .fg textarea { width: 100%; padding: 13px 16px; border: 1.5px solid var(--border); border-radius: 13px; font-size: 14px; background: var(--card-2); color: var(--text); transition: all .25s; }
.fg input::placeholder { color: var(--muted2); }
.fg input:focus, .fg select:focus, .fg textarea:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px rgba(34, 211, 238, .15); }
.fg .hint { font-size: 11px; color: var(--muted2); margin-top: 5px; }
.alert { padding: 14px 19px; border-radius: 13px; margin-bottom: 20px; font-size: 13.5px; display: flex; align-items: center; gap: 10px; }
.alert-info { background: rgba(34, 211, 238, .1); color: var(--brand); border: 1px solid rgba(34, 211, 238, .3); }
.alert-error { background: rgba(251, 113, 133, .1); color: var(--danger); border: 1px solid rgba(251, 113, 133, .3); }

/* ---------- نقش‌ها (ثبت‌نام) ---------- */
.role-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(105px, 1fr)); gap: 9px; margin: 10px 0; }
.role-opt { border: 1.5px solid var(--border); border-radius: 15px; padding: 14px 8px; text-align: center; cursor: pointer; transition: all .25s; background: var(--card-2); }
.role-opt:hover { border-color: var(--brand); transform: translateY(-2px); }
.role-opt.sel { border-color: var(--brand); background: rgba(34, 211, 238, .1); box-shadow: 0 0 24px rgba(34, 211, 238, .2); }
.role-opt .r-ic { font-size: 26px; display: block; margin-bottom: 6px; }
.role-opt .r-lbl { font-size: 11.5px; font-weight: 800; }

/* ---------- داشبورد ---------- */
.dash-head { background: var(--card); border-bottom: 1px solid var(--border); padding: 94px 0 20px; backdrop-filter: blur(16px); position: relative; z-index: 2; }
.dash-user { display: flex; align-items: center; gap: 15px; }
.dash-avatar { width: 58px; height: 58px; border-radius: 18px; background: var(--grad-brand); display: flex; align-items: center; justify-content: center; font-size: 28px; box-shadow: 0 8px 22px rgba(34, 211, 238, .35); }
.dash-tabs { display: flex; gap: 5px; margin-top: 20px; overflow-x: auto; padding-bottom: 4px; }
.d-tab { padding: 10px 20px; border-radius: 13px; font-size: 13px; font-weight: 700; color: var(--muted); white-space: nowrap; transition: all .25s; border: 1px solid transparent; }
.d-tab:hover { color: var(--brand); }
.d-tab.active { background: var(--grad-brand); color: #041220; box-shadow: 0 6px 20px rgba(34, 211, 238, .4); }
.dash-body { padding: 28px 0 50px; position: relative; z-index: 2; }
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 15px; margin-bottom: 26px; }
.kpi { background: var(--card); border: 1px solid var(--border); border-radius: var(--r); padding: 22px; box-shadow: var(--sh-sm); transition: all .3s; position: relative; overflow: hidden; }
.kpi::after { content: ''; position: absolute; bottom: 0; right: 0; left: 0; height: 2.5px; background: var(--grad-brand); }
.kpi:hover { transform: translateY(-4px); border-color: var(--border-strong); box-shadow: var(--sh); }
.kpi .k-ic { font-size: 24px; margin-bottom: 9px; display: block; }
.kpi .k-num { font-size: 25px; font-weight: 900; display: block; font-variant-numeric: tabular-nums; }
.kpi .k-lbl { font-size: 12px; color: var(--muted); font-weight: 600; }

/* ---------- کیف پول ---------- */
.wallet-hero { background: var(--card); border: 1px solid var(--border-strong); border-radius: var(--r-xl); padding: 32px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; box-shadow: var(--sh); position: relative; overflow: hidden; }
.wallet-hero::before { content: ''; position: absolute; left: 26px; top: 50%; width: 110px; height: 110px; transform: translateY(-50%); opacity: .09; background: var(--brand); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M4.2 6.1h14.3a1.8 1.8 0 0 1 1.8 1.8v10.2a1.8 1.8 0 0 1-1.8 1.8H5.5a2.3 2.3 0 0 1-2.3-2.3V6.5A2.3 2.3 0 0 1 5.5 4.2h12M15.4 12h4.9v3.2h-4.9a1.6 1.6 0 1 1 0-3.2Z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M4.2 6.1h14.3a1.8 1.8 0 0 1 1.8 1.8v10.2a1.8 1.8 0 0 1-1.8 1.8H5.5a2.3 2.3 0 0 1-2.3-2.3V6.5A2.3 2.3 0 0 1 5.5 4.2h12M15.4 12h4.9v3.2h-4.9a1.6 1.6 0 1 1 0-3.2Z'/%3E%3C/svg%3E") center/contain no-repeat; }
.wallet-hero::after { content: ''; position: absolute; top: -60px; right: -60px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(34, 211, 238, .18), transparent 70%); }
.wallet-num { font-size: clamp(30px, 4.5vw, 44px); font-weight: 900; background: var(--grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; font-variant-numeric: tabular-nums; }
.wallet-lbl { color: var(--muted); font-size: 13px; margin-bottom: 5px; font-weight: 600; }
.charge-row { display: flex; gap: 9px; flex-wrap: wrap; }
.charge-btn { padding: 10px 17px; border: 1.5px solid var(--border); border-radius: 12px; background: var(--card-2); cursor: pointer; font-size: 12.5px; font-weight: 800; transition: all .25s; color: var(--text); }
.charge-btn:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); box-shadow: 0 0 18px rgba(34, 211, 238, .2); }

/* ---------- بلیت ---------- */
.ticket { background: var(--card); border: 1px dashed var(--border-strong); border-radius: var(--r-xl); max-width: 450px; margin: 34px auto; overflow: hidden; box-shadow: var(--sh-lg); position: relative; backdrop-filter: blur(18px); }
.ticket::before, .ticket::after { content: ''; position: absolute; width: 34px; height: 34px; border-radius: 50%; background: var(--bg); top: 50%; border: 1px dashed var(--border-strong); }
.ticket::before { right: -19px; transform: translateY(-50%); }
.ticket::after { left: -19px; transform: translateY(-50%); }
.ticket-head { background: var(--grad-brand); color: #04121f; padding: 22px; text-align: center; font-weight: 800; }
.ticket-head h2 { font-size: 20px; margin-bottom: 4px; }
.ticket-body { padding: 28px; text-align: center; }
.ticket-qr { margin: 16px auto; padding: 14px; background: #fff; border-radius: 18px; display: inline-block; box-shadow: 0 10px 34px rgba(0,0,0,.25); }
.ticket-code { font-size: 22px; font-weight: 900; letter-spacing: 3px; margin-top: 10px; font-family: monospace, var(--font); }
.ticket-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 22px; text-align: right; }
.tm { background: var(--card-2); border-radius: 13px; padding: 11px 15px; border: 1px solid var(--border); }
.tm .tl { font-size: 10.5px; color: var(--muted); }
.tm .tv { font-size: 13px; font-weight: 800; }

/* ---------- فیلترها ---------- */
.filter-bar { background: var(--card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 18px 22px; margin-bottom: 28px; box-shadow: var(--sh-sm); backdrop-filter: blur(14px); }
.filter-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.filter-row .lbl { font-size: 12.5px; font-weight: 800; color: var(--muted); }
.filter-chip { padding: 8px 17px; border: 1.5px solid var(--border); border-radius: 40px; font-size: 12.5px; font-weight: 700; color: var(--muted); cursor: pointer; transition: all .25s; background: var(--card-2); }
.filter-chip:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); }
.filter-chip.on { background: var(--grad-brand); color: #041220; border-color: transparent; box-shadow: 0 6px 18px rgba(34, 211, 238, .45); }
.fd { display: flex; flex-direction: column; gap: 5px; }
.fd label { font-size: 11px; font-weight: 800; color: var(--muted); }
.fd select, .fd input { padding: 10px 14px; border: 1.5px solid var(--border); border-radius: 11px; font-size: 13px; background: var(--card-2); color: var(--text); }
.fd select:focus, .fd input:focus { outline: none; border-color: var(--brand); }

/* ---------- فیچر تایل ---------- */
.feature-tile { background: var(--card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 30px 24px; text-align: center; transition: all .35s cubic-bezier(.22,1,.36,1); position: relative; overflow: hidden; backdrop-filter: blur(14px); }
.feature-tile::before { content: ''; position: absolute; top: -50%; right: -50%; width: 100%; height: 100%; background: radial-gradient(circle, rgba(34, 211, 238, .12), transparent 70%); opacity: 0; transition: opacity .4s; }
.feature-tile:hover { transform: translateY(-8px); border-color: var(--brand); box-shadow: var(--sh-lg), 0 0 44px rgba(34, 211, 238, .15); }
.feature-tile:hover::before { opacity: 1; }
.feature-tile .f-ic { font-size: 46px; display: block; margin-bottom: 15px; transition: transform .35s; }
.feature-tile:hover .f-ic { transform: scale(1.15) translateY(-4px); }
.feature-tile h3 { font-size: 16px; margin-bottom: 8px; font-weight: 800; }
.feature-tile p { font-size: 12.5px; color: var(--muted); }

/* ---------- بنر CTA ---------- */
.promo-banner { background: var(--card); border: 1px solid var(--border-strong); border-radius: var(--r-xl); padding: 54px 40px; text-align: center; box-shadow: var(--sh-lg); position: relative; overflow: hidden; }
.promo-banner::before { content: ''; position: absolute; width: 300px; height: 300px; border-radius: 50%; background: radial-gradient(circle, rgba(34, 211, 238, .18), transparent 70%); top: -130px; left: -130px; }
.promo-banner::after { content: ''; position: absolute; width: 240px; height: 240px; border-radius: 50%; background: radial-gradient(circle, rgba(245, 198, 107, .12), transparent 70%); bottom: -110px; right: -110px; }
.promo-banner > * { position: relative; z-index: 1; }

/* ---------- نظرات مشتریان ---------- */
.testi { background: var(--card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: 26px; backdrop-filter: blur(14px); position: relative; }
.testi::before { content: '❝'; position: absolute; top: 14px; left: 20px; font-size: 44px; color: var(--brand); opacity: .25; }
.testi-rate { color: var(--gold); font-size: 14px; margin-bottom: 10px; }
.testi-text { font-size: 14px; color: var(--muted); line-height: 1.9; }
.testi-user { display: flex; align-items: center; gap: 12px; margin-top: 16px; }
.testi-avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--grad-brand); display: flex; align-items: center; justify-content: center; font-size: 20px; }
.testi-name { font-size: 13.5px; font-weight: 800; }
.testi-role { font-size: 11px; color: var(--muted2); }

/* ---------- تگ‌ها ---------- */
.tag { display: inline-block; padding: 4px 13px; border-radius: 30px; font-size: 11px; font-weight: 800; }
.tag-ok { background: rgba(52, 211, 153, .14); color: var(--ok); border: 1px solid rgba(52, 211, 153, .3); }
.tag-warn { background: rgba(251, 191, 36, .14); color: var(--warn); border: 1px solid rgba(251, 191, 36, .3); }
.tag-danger { background: rgba(251, 113, 133, .14); color: var(--danger); border: 1px solid rgba(251, 113, 133, .3); }
.tag-brand { background: rgba(34, 211, 238, .14); color: var(--brand); border: 1px solid rgba(34, 211, 238, .3); }
.tag-gray { background: var(--card-2); color: var(--muted); border: 1px solid var(--border); }
.tag-gold { background: rgba(245, 198, 107, .16); color: var(--gold); border: 1px solid rgba(245, 198, 107, .35); }

/* ---------- خالی ---------- */
.empty { text-align: center; padding: 60px 20px; color: var(--muted2); }
.empty .e-ic { font-size: 54px; display: block; margin-bottom: 15px; opacity: .7; }

/* ---------- خبرنامه ---------- */
.newsletter { display: flex; gap: 8px; }
.newsletter input { flex: 1; padding: 11px 15px; border: 1.5px solid var(--border); border-radius: 12px; background: var(--card-2); color: var(--text); font-size: 13px; }
.newsletter input:focus { outline: none; border-color: var(--brand); }

/* ---------- فوتر ---------- */
.footer { margin-top: 80px; padding-bottom: 20px; position: relative; z-index: 2; }
.footer-glass { background: var(--card); border: 1px solid var(--border); border-radius: var(--r-xl); padding: 48px 44px 26px; backdrop-filter: blur(18px); box-shadow: var(--sh); }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1.2fr; gap: 38px; }
.footer-brand p { color: var(--muted); font-size: 13px; margin: 14px 0 18px; }
.footer-social { display: flex; gap: 9px; }
.footer-social a { width: 40px; height: 40px; border-radius: 12px; background: var(--card-2); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; font-size: 17px; transition: all .25s; }
.footer-social a:hover { border-color: var(--brand); transform: translateY(-3px); box-shadow: 0 0 20px rgba(34, 211, 238, .25); }
.footer-col h4 { font-size: 14px; font-weight: 900; margin-bottom: 17px; color: var(--brand); }
.footer-col a { display: block; font-size: 13px; color: var(--muted); margin-bottom: 10px; transition: all .2s; }
.footer-col a:hover { color: var(--brand); transform: translateX(-4px); display: inline-block; }
.footer-bottom { margin-top: 38px; padding-top: 20px; border-top: 1px solid var(--border); display: flex; justify-content: space-between; align-items: center; font-size: 12px; color: var(--muted); flex-wrap: wrap; gap: 10px; }

/* ---------- ناوبری پایین موبایل ---------- */
.bottom-nav { position: fixed; bottom: 12px; right: 14px; left: 14px; z-index: 250; background: var(--glass); backdrop-filter: blur(26px) saturate(160%); border: 1px solid var(--border-strong); border-radius: 20px; display: none; padding: 6px 4px calc(6px + env(safe-area-inset-bottom)); box-shadow: var(--sh-lg); }
.bottom-nav a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; font-size: 10px; color: var(--muted); font-weight: 700; padding: 7px 0; border-radius: 14px; transition: all .25s; }
.bottom-nav a span { font-size: 20px; transition: transform .25s; }
.bottom-nav a.active { color: var(--brand); background: rgba(34, 211, 238, .12); }
.bottom-nav a.active span { transform: translateY(-2px) scale(1.1); }

/* ---------- انیمیشن‌های ورود ---------- */
.reveal { opacity: 0; transform: translateY(44px); transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); will-change: opacity, transform; }
.reveal.in { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }
.reveal-delay-4 { transition-delay: .4s; }
.anim-up { animation: fadeUp .75s cubic-bezier(.22,1,.36,1) both; }
.anim-up-2 { animation: fadeUp .75s .15s cubic-bezier(.22,1,.36,1) both; }
.anim-up-3 { animation: fadeUp .75s .3s cubic-bezier(.22,1,.36,1) both; }
.anim-up-4 { animation: fadeUp .75s .45s cubic-bezier(.22,1,.36,1) both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: .35; } }
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }

/* ---------- Toast ---------- */
.toast { position: fixed; bottom: 100px; right: 50%; transform: translateX(50%) translateY(20px); background: var(--card-solid); color: var(--text); border: 1px solid var(--border-strong); padding: 13px 26px; border-radius: 15px; font-size: 13.5px; font-weight: 700; z-index: 999; opacity: 0; pointer-events: none; transition: all .35s cubic-bezier(.34,1.56,.64,1); box-shadow: var(--sh-lg); }
.toast.show { opacity: 1; transform: translateX(50%) translateY(0); }

/* ---------- شبکه‌ها ---------- */
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
@media (max-width: 1000px) { .grid-4, .grid-3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .grid-4, .grid-3, .grid-2 { grid-template-columns: 1fr; } }

/* ---------- واکنش‌گرا ---------- */
@media (max-width: 860px) {
  .nav { top: 8px; width: calc(100% - 20px); }
  .nav-links { position: fixed; top: 70px; right: 10px; width: min(300px, 88vw); background: var(--card-solid); border: 1px solid var(--border-strong); flex-direction: column; padding: 20px; border-radius: 20px; transform: translateX(115%); transition: transform .35s cubic-bezier(.22,1,.36,1); z-index: 99; box-shadow: var(--sh-lg); }
  .nav-links.open { transform: translateX(0); }
  .nav-links a { padding: 13px 16px; font-size: 15px; border-bottom: 1px solid var(--border); }
  .nav-burger { display: flex; }
  .hero { min-height: auto; padding: 120px 0 100px; }
  .hero-search form, .hero-search-row { grid-template-columns: 1fr; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .cards { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 26px; }
  .footer-glass { padding: 32px 24px 22px; }
  .bottom-nav { display: flex; }
  body { padding-bottom: 78px; }
  .fact-grid { grid-template-columns: repeat(2, 1fr); }
  .slot-grid { grid-template-columns: 1fr; }
  .ticket-meta { grid-template-columns: 1fr; }
  .dash-head { padding-top: 84px; }
  .sec-head { margin-bottom: 26px; }
}

/* ---------- چاپ بلیت ---------- */
@media print {
  .nav, .footer, .bottom-nav, .cursor-glow, .orb, .scroll-progress, .preloader, button, .toast, .alert { display: none !important; }
  body { padding: 0 !important; background: #fff !important; }
  .ticket { border: 2px dashed #000; box-shadow: none; max-width: 100%; background: #fff; color: #000; }
}

/* ================================================================
   v2 — قابلیت‌های جدید: منوی بیشتر، چت، تقویم مربی، دوره‌ها، B2B
   ================================================================ */

/* ---------- منوی کشویی «بیشتر» ---------- */
.nav-more-wrap { position: relative; }
.nav-more { position: absolute; top: calc(100% + 14px); left: 0; min-width: 220px; background: var(--card-solid); border: 1px solid var(--border-strong); border-radius: 18px; padding: 10px; box-shadow: var(--sh-lg); backdrop-filter: blur(22px); transform: translateY(10px); opacity: 0; pointer-events: none; transition: all .3s cubic-bezier(.22,1,.36,1); z-index: 100; }
.nav-more.open { transform: translateY(0); opacity: 1; pointer-events: auto; }
.nav-more a { display: flex; align-items: center; gap: 10px; padding: 12px 14px; font-size: 13.5px; font-weight: 600; border-radius: 12px; color: var(--text); border-bottom: none !important; transition: all .2s; }
.nav-more a:hover { background: rgba(34,211,238,.1); color: var(--brand); }
.nav-more-link { cursor: pointer; user-select: none; }

/* ---------- چت ---------- */
.chat-shell { display: grid; grid-template-columns: 320px 1fr; gap: 20px; height: min(680px, calc(100vh - 200px)); min-height: 480px; }
.chat-list { background: var(--card); border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden; display: flex; flex-direction: column; backdrop-filter: blur(16px); }
.chat-list-head { padding: 18px; border-bottom: 1px solid var(--border); font-weight: 800; display: flex; justify-content: space-between; align-items: center; }
.chat-search { padding: 12px 14px; border-bottom: 1px solid var(--border); }
.chat-search input { width: 100%; padding: 11px 14px; background: var(--card-2); border: 1.5px solid var(--border); border-radius: 12px; font-size: 13px; color: var(--text); }
.chat-threads { flex: 1; overflow-y: auto; }
.chat-thread { display: flex; gap: 12px; padding: 14px 16px; cursor: pointer; border-bottom: 1px solid var(--border); transition: background .2s; align-items: center; }
.chat-thread:hover, .chat-thread.active { background: rgba(34,211,238,.07); }
.chat-thread.active { border-right: 3px solid var(--brand); }
.chat-avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--grad-brand); display: flex; align-items: center; justify-content: center; font-size: 21px; flex-shrink: 0; box-shadow: 0 4px 14px rgba(34,211,238,.3); }
.chat-thread-info { flex: 1; min-width: 0; }
.chat-thread-name { font-size: 14px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.chat-thread-last { font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 3px; }
.chat-thread-meta { text-align: left; flex-shrink: 0; }
.chat-time { font-size: 10.5px; color: var(--muted); }
.chat-unread { background: var(--grad-brand); color: #04202c; font-size: 10.5px; font-weight: 800; min-width: 19px; height: 19px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; padding: 0 5px; margin-top: 5px; }

.chat-room { background: var(--card); border: 1px solid var(--border); border-radius: var(--r-lg); display: flex; flex-direction: column; overflow: hidden; backdrop-filter: blur(16px); }
.chat-room-head { padding: 15px 20px; border-bottom: 1px solid var(--border); display: flex; align-items: center; gap: 12px; background: rgba(34,211,238,.04); }
.chat-room-name { font-size: 15px; font-weight: 800; }
.chat-room-status { font-size: 11.5px; color: #34d399; display: flex; align-items: center; gap: 5px; }
.chat-room-status::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #34d399; box-shadow: 0 0 8px #34d399; }
.chat-body { flex: 1; overflow-y: auto; padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.chat-day-sep { text-align: center; font-size: 11px; color: var(--muted); margin: 8px 0; position: relative; }
.msg { max-width: 72%; padding: 12px 17px; border-radius: 20px; font-size: 14px; line-height: 1.8; position: relative; animation: msgIn .3s ease both; }
@keyframes msgIn { from { opacity: 0; transform: translateY(8px) scale(.97); } }
.msg-in { background: var(--card-2); border: 1px solid var(--border); border-bottom-right-radius: 6px; align-self: flex-start; }
.msg-out { background: linear-gradient(135deg, rgba(34,211,238,.22), rgba(14,165,233,.16)); border: 1px solid rgba(34,211,238,.4); border-bottom-left-radius: 6px; align-self: flex-end; }
.msg-time { font-size: 10px; color: var(--muted2); margin-top: 5px; display: flex; gap: 4px; align-items: center; justify-content: flex-end; }
.msg-out .msg-time { color: rgba(158,233,248,.8); }
.chat-input-bar { padding: 14px 16px; border-top: 1px solid var(--border); display: flex; gap: 10px; background: rgba(255,255,255,.02); }
.chat-input-bar input { flex: 1; padding: 13px 18px; background: var(--card-2); border: 1.5px solid var(--border); border-radius: 40px; font-size: 14px; color: var(--text); }
.chat-input-bar input:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px rgba(34,211,238,.12); }
.chat-send { width: 48px; height: 48px; border-radius: 50%; border: none; background: var(--grad-brand); font-size: 19px; cursor: pointer; transition: all .25s; box-shadow: 0 6px 18px rgba(34,211,238,.35); }
.chat-send:hover { transform: scale(1.1) rotate(-12deg); }
.chat-empty { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; color: var(--muted); }
.chat-empty .big { font-size: 56px; opacity: .5; }

/* ---------- تقویم اوقات آزاد مربی ---------- */
.avail-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; }
.avail-day { background: var(--card-2); border: 1px solid var(--border); border-radius: 16px; padding: 12px 10px; min-height: 130px; transition: all .25s; }
.avail-day:hover { border-color: var(--brand); }
.avail-day-name { font-size: 12px; font-weight: 800; color: var(--muted); text-align: center; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--border); }
.avail-slot { background: rgba(34,211,238,.12); border: 1px solid rgba(34,211,238,.35); color: var(--text); border-radius: 10px; padding: 7px 8px; font-size: 10.5px; margin-bottom: 6px; cursor: pointer; transition: all .2s; }
.avail-slot:hover { background: rgba(34,211,238,.25); transform: scale(1.03); }
.avail-slot .t { font-weight: 800; color: var(--brand); display: block; font-size: 11px; }
.avail-slot .r { color: var(--gold); font-weight: 700; font-size: 10px; }
.avail-slot.picked { background: var(--grad-brand); color: #04202c; border-color: transparent; }
.avail-slot.picked .t, .avail-slot.picked .r { color: #04202c; }
.avail-empty { font-size: 10.5px; color: var(--muted2); text-align: center; padding: 14px 4px; }
@media (max-width: 860px) { .avail-grid { grid-template-columns: repeat(2, 1fr); } }

/* ---------- کارت دوره ---------- */
.course-card { position: relative; }
.course-level { position: absolute; top: 13px; right: 13px; z-index: 2; background: rgba(4,18,32,.65); backdrop-filter: blur(10px); color: #9de9f8; font-size: 11px; font-weight: 800; padding: 6px 13px; border-radius: 30px; border: 1px solid rgba(34,211,238,.35); }
.course-cap { display: flex; align-items: center; gap: 8px; font-size: 11.5px; color: var(--muted); }
.cap-bar { flex: 1; height: 7px; background: var(--card-2); border-radius: 10px; overflow: hidden; border: 1px solid var(--border); }
.cap-fill { height: 100%; background: var(--grad-brand); border-radius: 10px; transition: width 1s cubic-bezier(.22,1,.36,1); box-shadow: 0 0 12px rgba(34,211,238,.5); }
.cap-fill.hot { background: linear-gradient(90deg, #fb7185, #f59e0b); }
.course-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.course-meta span { font-size: 11.5px; color: var(--muted); background: var(--card-2); padding: 5px 11px; border-radius: 9px; border: 1px solid var(--border); }
.cat-swimming { --cat-c: #22d3ee; } .cat-kids { --cat-c: #f5c66b; } .cat-hydro { --cat-c: #2dd4bf; } .cat-lifeguard { --cat-c: #fb7185; } .cat-fitness { --cat-c: #a78bfa; }
.cat-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 800; color: var(--cat-c); background: color-mix(in srgb, var(--cat-c) 12%, transparent); border: 1px solid color-mix(in srgb, var(--cat-c) 40%, transparent); padding: 5px 12px; border-radius: 30px; }

/* ---------- کارت رزومه ---------- */
.resume-card .exp-badge { background: rgba(167,139,250,.14); color: #c4b5fd; border: 1px solid rgba(167,139,250,.4); padding: 5px 12px; border-radius: 30px; font-size: 11px; font-weight: 800; }
.skill-chip { display: inline-block; font-size: 11px; background: var(--card-2); border: 1px solid var(--border); padding: 5px 11px; border-radius: 9px; margin: 0 0 6px 6px; color: var(--muted); }
.seeking-dot { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; color: #34d399; font-weight: 800; }
.seeking-dot::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #34d399; box-shadow: 0 0 8px #34d399; animation: pulse 1.6s infinite; }

/* ---------- کارت تأمین‌کننده ---------- */
.sup-card { border: 1px solid var(--border); }
.sup-cat { font-size: 10.5px; font-weight: 800; color: var(--gold); background: rgba(245,198,107,.1); border: 1px solid rgba(245,198,107,.35); padding: 5px 12px; border-radius: 30px; }
.sup-product-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.sup-product-list li { font-size: 11px; background: var(--card-2); border: 1px solid var(--border); padding: 5px 10px; border-radius: 8px; color: var(--muted); }
.locked-overlay { position: absolute; inset: 0; border-radius: inherit; backdrop-filter: blur(9px); background: rgba(5,13,26,.45); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; z-index: 3; }
.lock-ic { font-size: 40px; filter: drop-shadow(0 0 20px rgba(245,198,107,.5)); }
.b2b-banner { background: linear-gradient(135deg, rgba(245,198,107,.1), rgba(34,211,238,.08)); border: 1px solid rgba(245,198,107,.4); border-radius: var(--r-lg); padding: 22px 26px; display: flex; align-items: center; gap: 18px; backdrop-filter: blur(14px); }

/* ---------- نزدیک من ---------- */
.geo-hero { text-align: center; padding: 40px 0 10px; }
.geo-btn { display: inline-flex; align-items: center; gap: 10px; font-size: 16px; padding: 17px 38px; border-radius: 50px; border: none; background: var(--grad-brand); color: #04202c; font-weight: 900; cursor: pointer; box-shadow: 0 10px 34px rgba(34,211,238,.4), 0 0 0 0 rgba(34,211,238,.4); animation: geoPulse 2.2s infinite; transition: transform .25s; }
.geo-btn:hover { transform: translateY(-3px) scale(1.03); }
@keyframes geoPulse { 0% { box-shadow: 0 10px 34px rgba(34,211,238,.4), 0 0 0 0 rgba(34,211,238,.35); } 70% { box-shadow: 0 10px 34px rgba(34,211,238,.4), 0 0 0 22px rgba(34,211,238,0); } 100% { box-shadow: 0 10px 34px rgba(34,211,238,.4), 0 0 0 0 rgba(34,211,238,0); } }
.dist-badge { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 800; color: #9de9f8; background: rgba(34,211,238,.14); border: 1px solid rgba(34,211,238,.4); padding: 5px 12px; border-radius: 30px; }
.dist-badge.nearest { background: linear-gradient(135deg, rgba(52,211,153,.25), rgba(34,211,238,.2)); color: #6ee7b7; border-color: rgba(52,211,153,.5); animation: badgeGlow 2s infinite; }
.geo-map { position: relative; background: var(--card); border: 1px solid var(--border-strong); border-radius: var(--r-xl); height: 380px; overflow: hidden; backdrop-filter: blur(14px); box-shadow: var(--sh-lg); }
.geo-map-bg { position: absolute; inset: 0; background:
  radial-gradient(circle at 20% 30%, rgba(34,211,238,.08) 0 8%, transparent 9%),
  radial-gradient(circle at 70% 60%, rgba(14,165,233,.08) 0 10%, transparent 11%),
  radial-gradient(circle at 45% 80%, rgba(45,212,191,.06) 0 7%, transparent 8%),
  repeating-linear-gradient(0deg, transparent 0 39px, rgba(34,211,238,.05) 39px 40px),
  repeating-linear-gradient(90deg, transparent 0 39px, rgba(34,211,238,.05) 39px 40px); }
.geo-pin { position: absolute; transform: translate(-50%, -100%); cursor: pointer; transition: all .3s cubic-bezier(.34,1.56,.64,1); z-index: 2; }
.geo-pin:hover { transform: translate(-50%, -100%) scale(1.25); z-index: 5; }
.geo-pin .pin-ic { font-size: 26px; display: block; filter: drop-shadow(0 4px 10px rgba(0,0,0,.5)); }
.geo-pin .pin-lbl { position: absolute; bottom: calc(100% + 5px); right: 50%; transform: translateX(50%); background: var(--card-solid); border: 1px solid var(--border-strong); padding: 6px 12px; border-radius: 10px; font-size: 11px; font-weight: 700; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .2s; box-shadow: var(--sh); }
.geo-pin:hover .pin-lbl { opacity: 1; }
.geo-pin.me { z-index: 4; }
.geo-pin.me .pin-ring { position: absolute; top: -6px; right: 50%; transform: translateX(50%); width: 42px; height: 42px; border-radius: 50%; border: 2.5px solid var(--brand); animation: geoPulse 2s infinite; }

/* ادمین لاگین با بک‌گراند شنا */
.auth-bg { position: fixed; inset: 0; z-index: -1; background-image: url('../assets/swim-bg.webp'); background-size: cover; background-position: center; opacity: .25; }
.auth-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,13,26,.55), var(--bg)); }

@media (max-width: 900px) { .chat-shell { grid-template-columns: 1fr; height: auto; } .chat-list { max-height: 300px; } }

/* ---------- فیلتر چیپ‌ها ---------- */
.filters { display: flex; flex-direction: column; gap: 12px; margin-bottom: 26px; }
.fchips { display: flex; flex-wrap: wrap; gap: 8px; }
.fchip { padding: 9px 17px; border-radius: 40px; font-size: 12.5px; font-weight: 700; background: var(--card); color: var(--muted); border: 1.5px solid var(--border); cursor: pointer; transition: all .25s; }
.fchip:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); }
.fchip.on { background: var(--grad-brand); color: #04202c; border-color: transparent; box-shadow: 0 6px 20px rgba(34,211,238,.35); }

/* ---------- چیپ وضعیت ---------- */
.chip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 11px; border-radius: 30px; font-size: 11px; font-weight: 800; }
.chip.gold { background: rgba(245,198,107,.14); color: var(--gold); border: 1px solid rgba(245,198,107,.4); }
.chip.ok { background: rgba(52,211,153,.14); color: #34d399; border: 1px solid rgba(52,211,153,.4); }

/* ---------- فرم گرید ---------- */
.form-grid { display: flex; flex-direction: column; gap: 12px; }
.form-grid input, .form-grid select, .form-grid textarea { padding: 13px 16px; border: 1.5px solid var(--border); border-radius: 13px; background: var(--card-2); font-size: 14px; color: var(--text); font-family: inherit; transition: all .25s; resize: vertical; }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px rgba(34,211,238,.12); }
.form-grid input::placeholder, .form-grid textarea::placeholder { color: var(--muted2); }
.btn-block { width: 100%; justify-content: center; }

/* ================================================================
   v3 — ساختار فروشگاهی حرفه‌ای + پنل مدیریت سایدباری + آگهی‌های اعضا
   ================================================================ */

/* ---------- ردیف حلقه‌های دسته‌بندی (الد دسته‌ها) ---------- */
.cat-circles { display: flex; gap: 14px; overflow-x: auto; padding: 26px 6px 14px; scrollbar-width: none; position: relative; z-index: 2; }
.cat-circles::-webkit-scrollbar { display: none; }
.cat-circ { flex-shrink: 0; display: flex; flex-direction: column; align-items: center; gap: 9px; text-decoration: none; cursor: pointer; }
.cat-circ .cc-img { width: 68px; height: 68px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 30px; background: linear-gradient(145deg, rgba(34,211,238,.14), rgba(14,165,233,.06)); border: 2px solid var(--border-strong); transition: all .35s cubic-bezier(.34,1.56,.64,1); position: relative; box-shadow: 0 4px 16px rgba(0,0,0,.15); }
.cat-circ:hover .cc-img { transform: translateY(-6px) scale(1.08); border-color: var(--brand); box-shadow: 0 12px 30px rgba(34,211,238,.3); }
.cat-circ .cc-lbl { font-size: 11.5px; font-weight: 700; color: var(--muted); white-space: nowrap; }
.cat-circ:hover .cc-lbl { color: var(--brand); }
.cat-circ.hot .cc-img::after { content: ''; position: absolute; top: -5px; left: -4px; width: 17px; height: 17px; background: #f4c96c; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='m13.3 2.8-8 10h5.5l-.3 8.4 8.2-10.4h-5.6l.2-8Z'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='m13.3 2.8-8 10h5.5l-.3 8.4 8.2-10.4h-5.6l.2-8Z'/%3E%3C/svg%3E") center/contain no-repeat; }

/* ---------- اسلات تبلیغات ---------- */
.ad-slot { position: relative; z-index: 2; }
.ad-slot .ad-banner { border-radius: var(--r-xl); min-height: 130px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 30px 36px; position: relative; overflow: hidden; border: 1px solid var(--border-strong); transition: all .3s; }
.ad-slot .ad-banner:hover { transform: translateY(-3px); box-shadow: var(--sh-lg); }
.ad-banner .ad-glow { position: absolute; inset: 0; opacity: .9; }
.ad-banner.g-1 .ad-glow { background: linear-gradient(120deg, rgba(124,58,237,.9), rgba(34,211,238,.75)); }
.ad-banner.g-2 .ad-glow { background: linear-gradient(120deg, rgba(245,158,11,.88), rgba(251,113,133,.8)); }
.ad-banner.g-3 .ad-glow { background: linear-gradient(120deg, rgba(5,150,105,.88), rgba(34,211,238,.7)); }
.ad-banner .ad-tag { position: absolute; top: 12px; left: 14px; background: rgba(0,0,0,.3); backdrop-filter: blur(8px); color: rgba(255,255,255,.8); font-size: 9.5px; padding: 4px 11px; border-radius: 20px; border: 1px solid rgba(255,255,255,.2); z-index: 2; }
.ad-banner .ad-body { position: relative; z-index: 2; color: #fff; }
.ad-banner .ad-title { font-size: clamp(17px, 2.4vw, 24px); font-weight: 900; text-shadow: 0 3px 14px rgba(0,0,0,.3); }
.ad-banner .ad-sub { font-size: 12.5px; opacity: .92; margin-top: 6px; font-weight: 500; }
.ad-banner .ad-cta { position: relative; z-index: 2; background: #fff; color: #1e293b; font-weight: 900; font-size: 13px; padding: 13px 26px; border-radius: 14px; white-space: nowrap; box-shadow: 0 8px 24px rgba(0,0,0,.25); transition: all .25s; }
.ad-banner .ad-cta:hover { transform: scale(1.06); }
.ad-banner .ad-ic { position: relative; z-index: 1; font-size: clamp(42px, 7vw, 74px); filter: drop-shadow(0 10px 22px rgba(0,0,0,.3)); }
@media (max-width: 640px) { .ad-slot .ad-banner { padding: 22px; flex-direction: column; text-align: center; min-height: 0; } }

/* ---------- پنل حرفه‌ای سایدباری ---------- */
.panel-shell { display: grid; grid-template-columns: 264px 1fr; gap: 0; min-height: 100vh; padding-top: 78px; }
.p-side { background: var(--card); border-left: 1px solid var(--border); padding: 24px 14px; display: flex; flex-direction: column; gap: 4px; position: sticky; top: 78px; height: calc(100vh - 78px); overflow-y: auto; backdrop-filter: blur(18px); z-index: 4; }
.p-brand { display: flex; align-items: center; gap: 12px; padding: 8px 12px 22px; border-bottom: 1px solid var(--border); margin-bottom: 16px; }
.p-brand .pb-avatar { width: 46px; height: 46px; border-radius: 14px; background: var(--grad-brand); display: flex; align-items: center; justify-content: center; font-size: 22px; box-shadow: 0 6px 18px rgba(34,211,238,.35); flex-shrink: 0; }
.p-brand .pb-name { font-size: 14.5px; font-weight: 800; }
.p-brand .pb-role { font-size: 11px; color: var(--gold); font-weight: 700; margin-top: 2px; }
.p-nav-lbl { font-size: 10px; color: var(--muted2); font-weight: 800; padding: 14px 12px 6px; letter-spacing: .5px; }
.p-item { display: flex; align-items: center; gap: 11px; padding: 11.5px 14px; border-radius: 13px; font-size: 13.5px; font-weight: 600; color: var(--muted); cursor: pointer; transition: all .22s; border: 1px solid transparent; background: none; text-align: right; width: 100%; font-family: inherit; }
.p-item .pi-ic { font-size: 17px; width: 22px; text-align: center; }
.p-item:hover { color: var(--text); background: rgba(34,211,238,.06); }
.p-item.on { background: linear-gradient(135deg, rgba(34,211,238,.16), rgba(14,165,233,.08)); color: var(--brand); border-color: rgba(34,211,238,.3); font-weight: 800; box-shadow: 0 0 20px rgba(34,211,238,.1); }
.p-item .pi-badge { margin-right: auto; background: #fb7185; color: #fff; font-size: 10px; font-weight: 800; min-width: 19px; height: 19px; padding: 0 6px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 3px 10px rgba(251,113,133,.5); }
.p-side-foot { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--border); }

.p-main { padding: 28px clamp(16px, 3.4vw, 44px) 60px; position: relative; z-index: 2; min-width: 0; }
.p-topbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 26px; flex-wrap: wrap; }
.p-title h2 { font-size: clamp(20px, 2.6vw, 27px); font-weight: 900; display: flex; align-items: center; gap: 10px; }
.p-title p { font-size: 12.5px; color: var(--muted); margin-top: 5px; }
.p-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

/* ویجت‌های پنل */
.w-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); gap: 15px; margin-bottom: 26px; }
.w-card { background: var(--card); border: 1px solid var(--border); border-radius: 18px; padding: 20px; position: relative; overflow: hidden; transition: all .3s; }
.w-card:hover { transform: translateY(-3px); border-color: var(--border-strong); box-shadow: var(--sh); }
.w-card .w-top { display: flex; justify-content: space-between; align-items: start; margin-bottom: 12px; }
.w-card .w-ic { width: 44px; height: 44px; border-radius: 13px; display: flex; align-items: center; justify-content: center; font-size: 21px; }
.w-card .w-ic.c1 { background: rgba(34,211,238,.14); } .w-card .w-ic.c2 { background: rgba(52,211,153,.14); }
.w-card .w-ic.c3 { background: rgba(245,198,107,.14); } .w-card .w-ic.c4 { background: rgba(167,139,250,.14); }
.w-card .w-ic.c5 { background: rgba(251,113,133,.14); }
.w-card .w-num { font-size: 26px; font-weight: 900; font-variant-numeric: tabular-nums; }
.w-card .w-lbl { font-size: 12px; color: var(--muted); font-weight: 600; margin-top: 3px; }
.w-card .w-delta { font-size: 10.5px; font-weight: 800; padding: 4px 9px; border-radius: 20px; }
.w-delta.up { background: rgba(52,211,153,.14); color: #34d399; }
.w-delta.down { background: rgba(251,113,133,.14); color: #fb7185; }
.w-card .w-spark { display: flex; align-items: end; gap: 3px; height: 30px; margin-top: 12px; }
.w-card .w-spark span { flex: 1; background: linear-gradient(180deg, rgba(34,211,238,.5), rgba(34,211,238,.1)); border-radius: 3px 3px 0 0; transition: height .8s cubic-bezier(.22,1,.36,1); min-height: 3px; }

/* جدول پیشرفته */
.p-table { background: var(--card); border: 1px solid var(--border); border-radius: 18px; overflow: hidden; }
.p-table-head { display: flex; justify-content: space-between; align-items: center; padding: 17px 20px; border-bottom: 1px solid var(--border); }
.p-table-head h3 { font-size: 14.5px; font-weight: 800; }
.p-table table { width: 100%; border-collapse: collapse; }
.p-table th { font-size: 11px; color: var(--muted); font-weight: 800; padding: 13px 20px; text-align: right; border-bottom: 1px solid var(--border); background: rgba(255,255,255,.015); }
.p-table td { padding: 14px 20px; font-size: 13px; border-bottom: 1px solid var(--border); }
.p-table tr:last-child td { border-bottom: none; }
.p-table tr:hover td { background: rgba(34,211,238,.03); }
.st { display: inline-flex; align-items: center; gap: 5px; font-size: 10.5px; font-weight: 800; padding: 4px 11px; border-radius: 20px; }
.st::before { content: '●'; font-size: 8px; }
.st.ok { background: rgba(52,211,153,.14); color: #34d399; }
.st.warn { background: rgba(245,198,107,.14); color: var(--gold); }
.st.err { background: rgba(251,113,133,.14); color: #fb7185; }
.st.info { background: rgba(34,211,238,.14); color: var(--brand); }

/* صندوق پیام داخل پنل */
.inbox-shell { display: grid; grid-template-columns: 300px 1fr; gap: 0; background: var(--card); border: 1px solid var(--border); border-radius: 20px; overflow: hidden; height: min(560px, calc(100vh - 260px)); min-height: 420px; }
.inbox-list { border-left: 1px solid var(--border); overflow-y: auto; background: rgba(255,255,255,.012); }
.inbox-item { padding: 14px 16px; border-bottom: 1px solid var(--border); cursor: pointer; transition: background .2s; display: flex; gap: 11px; align-items: center; }
.inbox-item:hover, .inbox-item.on { background: rgba(34,211,238,.07); }
.inbox-item.on { border-right: 3px solid var(--brand); }
.inbox-item.unread .inbox-name { font-weight: 900; }
.inbox-item.unread .inbox-last { color: var(--text); font-weight: 700; }
.inbox-avatar { width: 40px; height: 40px; border-radius: 12px; background: var(--grad-brand); display: flex; align-items: center; justify-content: center; font-size: 19px; flex-shrink: 0; }
.inbox-name { font-size: 13px; font-weight: 700; }
.inbox-last { font-size: 11.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px; max-width: 150px; }
.inbox-dot { width: 9px; height: 9px; border-radius: 50%; background: #fb7185; box-shadow: 0 0 10px #fb7185; flex-shrink: 0; margin-right: auto; }
.inbox-room { display: flex; flex-direction: column; }
.inbox-body { flex: 1; overflow-y: auto; padding: 20px; display: flex; flex-direction: column; gap: 12px; }

/* ---------- کارت آگهی خرید و فروش ---------- */
.adc { position: relative; }
.adc-cond { position: absolute; top: 13px; right: 13px; z-index: 2; font-size: 10px; font-weight: 800; padding: 5px 12px; border-radius: 20px; backdrop-filter: blur(8px); }
.adc-cond.new { background: rgba(52,211,153,.85); color: #052e1b; }
.adc-cond.used { background: rgba(4,18,32,.75); color: #9de9f8; border: 1px solid rgba(34,211,238,.35); }
.adc-cond.used-like-new { background: rgba(245,198,107,.88); color: #3d2b05; }
.adc-neg { position: absolute; top: 13px; left: 13px; z-index: 2; background: rgba(251,113,133,.88); color: #fff; font-size: 10px; font-weight: 800; padding: 5px 11px; border-radius: 20px; }
.adc-seller { display: flex; align-items: center; gap: 9px; }
.adc-seller .sav { width: 32px; height: 32px; border-radius: 10px; background: linear-gradient(135deg, rgba(34,211,238,.3), rgba(14,165,233,.15)); display: flex; align-items: center; justify-content: center; font-size: 15px; }
.adc-seller .sn { font-size: 12px; font-weight: 700; }
.adc-seller .sl { font-size: 10.5px; color: var(--muted2); }

/* دکمه چسبان موبایل */
@media (max-width: 900px) {
  .panel-shell { grid-template-columns: 1fr; padding-top: 68px; }
  .p-side { position: fixed; bottom: 0; right: 0; left: 0; top: auto; height: auto; flex-direction: row; overflow-x: auto; padding: 8px 10px; gap: 6px; border-left: none; border-top: 1px solid var(--border-strong); z-index: 60; align-items: center; }
  .p-brand, .p-nav-lbl, .p-side-foot { display: none; }
  .p-item { flex-direction: column; gap: 3px; padding: 8px 12px; font-size: 10px; border-radius: 12px; min-width: 62px; text-align: center; white-space: nowrap; }
  .p-item .pi-ic { font-size: 19px; width: auto; }
  .p-item .pi-badge { position: absolute; top: 4px; left: 8px; margin: 0; }
  .p-main { padding: 20px 14px 100px; }
  .inbox-shell { grid-template-columns: 1fr; height: auto; }
  .inbox-list { max-height: 200px; border-left: none; border-bottom: 1px solid var(--border); }
}
@media (min-width: 901px) { .bottom-nav { display: none !important; } }

/* واکنش‌گرایی ستون‌های پنل */
@media (max-width: 860px) {
  .dash-cols { grid-template-columns: 1fr !important; }
  .panel-grid { grid-template-columns: 1fr !important; }
}

/* ================================================================
   v4 — ساختار فروشگاهی کامل: سبد خرید، شگفت‌انگیز، شیت موبایل
   ================================================================ */

/* ---------- نوار اعلان بالا ---------- */
.announce { position: relative; z-index: 96; background: linear-gradient(90deg, rgba(124,58,237,.92), rgba(34,211,238,.85)); color: #fff; text-align: center; font-size: 12.5px; font-weight: 600; padding: 9px 16px; display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; }
.announce b { background: rgba(255,255,255,.2); padding: 2px 9px; border-radius: 7px; font-family: monospace, var(--font); }
.announce a { color: #fff; font-weight: 800; text-decoration: underline; }
.announce .a-x { position: absolute; left: 12px; background: none; border: none; color: rgba(255,255,255,.75); font-size: 16px; cursor: pointer; }
body { padding-top: 0; }
.nav { top: 12px; }

/* ---------- آیکون‌های هدر (سبد/زنگوله) ---------- */
.hdr-ic { position: relative; width: 40px; height: 40px; border-radius: 13px; display: flex; align-items: center; justify-content: center; font-size: 18px; background: var(--card); border: 1.5px solid var(--border); transition: all .25s; color: var(--text); }
.hdr-ic:hover { border-color: var(--brand); color: var(--brand); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(34,211,238,.2); }
.hdr-badge { position: absolute; top: -6px; left: -6px; background: #fb7185; color: #fff; font-size: 10px; font-weight: 900; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 10px; display: flex; align-items: center; justify-content: center; border: 2px solid var(--bg); box-shadow: 0 3px 10px rgba(251,113,133,.5); animation: pulse 2s infinite; }
@media (max-width: 860px) { .hdr-ic { width: 37px; height: 37px; font-size: 16px; } }

/* ---------- سکشن شگفت‌انگیز (پیشنهاد روز) ---------- */
.deal-strip { background: linear-gradient(100deg, #7c3aed 0%, #db2777 55%, #f59e0b 115%); border-radius: var(--r-xl); padding: 26px 28px; position: relative; overflow: hidden; box-shadow: var(--sh-lg), 0 0 60px rgba(219,39,119,.25); border: 1px solid rgba(255,255,255,.15); }
.deal-strip::before { content: '⚡'; position: absolute; left: -10px; top: -18px; font-size: 150px; opacity: .12; transform: rotate(-18deg); }
.deal-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; position: relative; z-index: 2; flex-wrap: wrap; }
.deal-head .d-t { color: #fff; font-size: clamp(19px, 2.8vw, 26px); font-weight: 900; display: flex; align-items: center; gap: 10px; text-shadow: 0 3px 14px rgba(0,0,0,.3); }
.deal-count { display: flex; gap: 6px; direction: ltr; }
.deal-count span { background: rgba(0,0,0,.35); backdrop-filter: blur(8px); color: #fff; font-weight: 900; font-size: 17px; min-width: 40px; text-align: center; padding: 7px 4px; border-radius: 9px; border: 1px solid rgba(255,255,255,.2); font-variant-numeric: tabular-nums; }
.deal-count i { color: rgba(255,255,255,.7); font-style: normal; font-size: 18px; align-self: center; }
.deal-row { display: flex; gap: 14px; overflow-x: auto; padding: 4px 2px 10px; scrollbar-width: thin; position: relative; z-index: 2; }
.deal-row::-webkit-scrollbar { height: 6px; }
.deal-row::-webkit-scrollbar-thumb { background: rgba(255,255,255,.3); border-radius: 10px; }
.deal-card { flex: 0 0 200px; background: rgba(255,255,255,.96); border-radius: 18px; padding: 14px; transition: all .3s cubic-bezier(.34,1.56,.64,1); cursor: pointer; position: relative; color: #1e293b; }
.deal-card:hover { transform: translateY(-6px) scale(1.02); box-shadow: 0 18px 40px rgba(0,0,0,.3); }
.deal-card .dc-off { position: absolute; top: 10px; right: 10px; background: #db2777; color: #fff; font-size: 11px; font-weight: 900; padding: 4px 10px; border-radius: 20px; z-index: 2; box-shadow: 0 4px 12px rgba(219,39,119,.4); }
.deal-card .dc-img { width: 100%; height: 98px; border-radius: 13px; display: flex; align-items: center; justify-content: center; font-size: 50px; background: linear-gradient(145deg, #e0f7fd, #f0fcff); margin-bottom: 10px; }
.deal-card .dc-name { font-size: 12.5px; font-weight: 800; line-height: 1.5; height: 38px; overflow: hidden; }
.deal-card .dc-price { display: flex; align-items: baseline; gap: 8px; margin-top: 8px; }
.deal-card .dc-new { font-size: 15px; font-weight: 900; color: #db2777; }
.deal-card .dc-old { font-size: 11px; color: #94a3b8; text-decoration: line-through; }

/* ---------- ردیف اسکرول افقی کارت‌ها (مثل دیجی‌کالا) ---------- */
.h-scroll { display: flex; gap: 16px; overflow-x: auto; padding: 8px 4px 18px; scrollbar-width: none; scroll-snap-type: x mandatory; }
.h-scroll::-webkit-scrollbar { display: none; }
.h-scroll .card { flex: 0 0 310px; scroll-snap-align: start; }
@media (max-width: 640px) { .h-scroll .card { flex: 0 0 268px; } }
.hs-nav { display: flex; gap: 8px; }
.hs-btn { width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid var(--border-strong); background: var(--card); color: var(--text); font-size: 16px; cursor: pointer; transition: all .25s; display: flex; align-items: center; justify-content: center; }
.hs-btn:hover { border-color: var(--brand); color: var(--brand); box-shadow: 0 0 16px rgba(34,211,238,.25); }

/* ---------- سبد خرید ---------- */
.cart-layout { display: grid; grid-template-columns: 1fr 330px; gap: 22px; align-items: start; }
.cart-item { display: flex; gap: 15px; padding: 18px; background: var(--card); border: 1px solid var(--border); border-radius: 18px; margin-bottom: 13px; transition: all .25s; position: relative; }
.cart-item:hover { border-color: var(--border-strong); }
.cart-item .ci-img { width: 76px; height: 76px; border-radius: 15px; background: var(--card-2); display: flex; align-items: center; justify-content: center; font-size: 37px; flex-shrink: 0; border: 1px solid var(--border); }
.cart-item .ci-name { font-size: 14px; font-weight: 800; }
.cart-item .ci-meta { font-size: 11.5px; color: var(--muted); margin-top: 4px; }
.cart-item .ci-price { font-size: 14px; font-weight: 900; color: var(--brand); margin-top: 7px; }
.qty-ctl { display: inline-flex; align-items: center; gap: 0; border: 1.5px solid var(--border); border-radius: 12px; overflow: hidden; background: var(--card-2); }
.qty-ctl button { width: 33px; height: 33px; border: none; background: none; font-size: 16px; cursor: pointer; color: var(--text); transition: all .2s; font-weight: 800; }
.qty-ctl button:hover { background: rgba(34,211,238,.14); color: var(--brand); }
.qty-ctl b { min-width: 34px; text-align: center; font-size: 13px; font-variant-numeric: tabular-nums; }
.ci-del { background: none; border: none; color: var(--muted2); font-size: 17px; cursor: pointer; transition: color .2s; padding: 4px; }
.ci-del:hover { color: #fb7185; }
.cart-sum { background: var(--card); border: 1px solid var(--border-strong); border-radius: 20px; padding: 24px; position: sticky; top: 100px; box-shadow: var(--sh); }
.cart-sum .cs-row { display: flex; justify-content: space-between; font-size: 13.5px; padding: 9px 0; color: var(--muted); }
.cart-sum .cs-total { display: flex; justify-content: space-between; font-size: 17px; font-weight: 900; padding: 15px 0 4px; border-top: 1px dashed var(--border-strong); margin-top: 10px; }
.promo-row { display: flex; gap: 8px; margin-top: 14px; }
.promo-row input { flex: 1; padding: 11px 14px; background: var(--card-2); border: 1.5px solid var(--border); border-radius: 12px; font-size: 13px; color: var(--text); }
.promo-row input:focus { outline: none; border-color: var(--brand); }
.promo-ok { color: #34d399; font-size: 11.5px; font-weight: 800; margin-top: 7px; }
@media (max-width: 860px) { .cart-layout { grid-template-columns: 1fr; } .cart-sum { position: static; } }
.cart-empty { text-align: center; padding: 70px 20px; }
.cart-empty .big { font-size: 74px; opacity: .45; display: block; margin-bottom: 18px; }

/* ---------- شیت پایین موبایل ---------- */
.m-sheet { position: fixed; inset: 0; background: rgba(4,12,24,.62); backdrop-filter: blur(6px); z-index: 98; opacity: 0; pointer-events: none; transition: opacity .3s; display: flex; align-items: flex-end; }
.m-sheet.open { opacity: 1; pointer-events: auto; }
.m-sheet-card { width: 100%; background: var(--card-solid); border-radius: 26px 26px 0 0; padding: 14px 20px calc(20px + env(safe-area-inset-bottom)); transform: translateY(100%); transition: transform .38s cubic-bezier(.22,1,.36,1); border-top: 1px solid var(--border-strong); box-shadow: 0 -20px 60px rgba(0,0,0,.4); }
.m-sheet.open .m-sheet-card { transform: translateY(0); }
.ms-handle { width: 44px; height: 4.5px; border-radius: 10px; background: var(--border-strong); margin: 0 auto 18px; }
.ms-item { display: flex; align-items: center; gap: 13px; padding: 15px 16px; border-radius: 16px; font-size: 14.5px; font-weight: 700; color: var(--text); border-bottom: 1px solid var(--border); transition: background .2s; }
.ms-item:active { background: rgba(34,211,238,.1); }
.m-fab { position: fixed; bottom: calc(92px + env(safe-area-inset-bottom)); left: 18px; width: 56px; height: 56px; border-radius: 50%; border: none; background: var(--grad-brand); color: #04202c; font-size: 23px; font-weight: 900; cursor: pointer; z-index: 70; box-shadow: 0 12px 32px rgba(34,211,238,.45), 0 0 0 0 rgba(34,211,238,.4); animation: geoPulse 2.6s infinite; display: none; transition: transform .3s; }
.m-fab:active { transform: scale(.92) rotate(45deg); }
@media (max-width: 900px) { .m-fab { display: flex; align-items: center; justify-content: center; } }
@media (min-width: 901px) { .m-sheet { display: none; } }

/* نمایش منوی «بیشتر» در دسکتاپ */
@media (max-width: 1100px) { .nav-links a { padding: 9px 10px; font-size: 12.5px; } }
.nav-more-wrap:hover .nav-more { transform: translateY(0); opacity: 1; pointer-events: auto; }

/* ================================================================
   v5 — پنل سایدباری راست استاتیک (ثابت) به سبک PuttClub + وضعیت عضویت
   ================================================================ */
.panel-shell { grid-template-columns: 300px 1fr; }
.p-side { border-right: none; border-left: 1px solid var(--border); }
.p-main { order: 0; }

/* کارت برند + تاریخ + وضعیت */
.p-brand { flex-direction: column; align-items: stretch; gap: 14px; padding-bottom: 18px; }
.p-brand-top { display: flex; align-items: center; gap: 12px; }
.p-date-bar { display: flex; gap: 7px; flex-wrap: wrap; }
.p-chip { display: inline-flex; align-items: center; gap: 6px; background: var(--card-2); border: 1px solid var(--border); border-radius: 10px; padding: 7px 12px; font-size: 11px; font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; }
.p-chip.today { border-color: rgba(245,198,107,.45); color: var(--gold); background: rgba(245,198,107,.07); }
.p-chip .online-dot { width: 8px; height: 8px; border-radius: 50%; background: #34d399; box-shadow: 0 0 10px #34d399; animation: pulse 1.8s infinite; }

.membership-card { position: relative; border-radius: 16px; padding: 15px 15px 13px; overflow: hidden; }
.membership-card.verified { background: linear-gradient(135deg, rgba(5,150,105,.2), rgba(34,211,238,.07)); border: 1px solid rgba(52,211,153,.45); box-shadow: 0 0 24px rgba(52,211,153,.1); }
.membership-card.pending { background: linear-gradient(135deg, rgba(245,158,11,.16), rgba(251,113,133,.06)); border: 1px solid rgba(245,198,107,.45); }
.membership-card .mc-ic { position: absolute; left: -8px; bottom: -12px; font-size: 74px; opacity: .1; }
.mc-status { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 900; }
.mc-status .mc-badge { width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; }
.membership-card.verified .mc-badge { background: #34d399; color: #052e1b; box-shadow: 0 0 14px rgba(52,211,153,.6); }
.membership-card.verified .mc-status { color: #6ee7b7; }
.membership-card.pending .mc-badge { background: var(--gold); color: #3d2b05; }
.membership-card.pending .mc-status { color: var(--gold); }
.mc-sub { font-size: 10.5px; color: var(--muted); margin-top: 5px; padding-right: 32px; }
.mc-sub2 { font-size: 10px; color: var(--muted2); margin-top: 8px; display: flex; justify-content: space-between; }
.mc-sub2 b { color: var(--gold); font-variant-numeric: tabular-nums; }

/* هدر تصویری پنل */
.panel-hero { position: relative; border-radius: var(--r-xl); overflow: hidden; min-height: 210px; display: flex; align-items: flex-end; padding: 26px; margin-bottom: 26px; border: 1px solid var(--border-strong); box-shadow: var(--sh-lg); }
.panel-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center 35%; transition: transform 6s ease; }
.panel-hero:hover .panel-hero-bg { transform: scale(1.05); }
.panel-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(5,13,26,.25) 0%, rgba(5,13,26,.55) 50%, rgba(5,13,26,.92) 100%); }
.panel-hero-content { position: relative; z-index: 2; width: 100%; }
.panel-hero h2 { color: #fff; font-size: clamp(20px, 2.6vw, 27px); text-shadow: 0 4px 20px rgba(0,0,0,.5); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.panel-hero p { color: rgba(226,240,255,.85); font-size: 13px; margin-top: 6px; text-shadow: 0 2px 10px rgba(0,0,0,.5); }
.panel-hero .ph-chips { display: flex; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
.panel-hero .ph-chip { background: rgba(8,20,40,.55); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.2); color: #e0f2fe; padding: 8px 15px; border-radius: 12px; font-size: 12px; font-weight: 700; }
.panel-hero .ph-chip.gold { border-color: rgba(245,198,107,.45); color: var(--gold); }
.panel-hero .ph-chip.green { border-color: rgba(52,211,153,.45); color: #6ee7b7; }

/* ---------- مدیریت کار مربی: استخر + سانس ---------- */
.work-pool { background: var(--card); border: 1px solid var(--border); border-radius: 20px; padding: 20px; margin-bottom: 18px; position: relative; overflow: hidden; }
.work-pool::before { content: ''; position: absolute; top: 0; right: 0; left: 0; height: 3px; background: var(--grad-brand); }
.wp-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.wp-name { font-size: 15px; font-weight: 900; display: flex; align-items: center; gap: 9px; }
.wp-name .wpn-ic { width: 40px; height: 40px; border-radius: 12px; background: rgba(34,211,238,.14); display: flex; align-items: center; justify-content: center; font-size: 20px; }
.wsn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.wsn { background: var(--card-2); border: 1px solid var(--border); border-radius: 15px; padding: 13px 14px; position: relative; transition: all .25s; }
.wsn:hover { border-color: var(--brand); transform: translateY(-2px); }
.wsn .t { font-size: 12.5px; font-weight: 900; color: var(--brand); }
.wsn .d { font-size: 10.5px; color: var(--muted); margin-top: 3px; display: flex; gap: 10px; flex-wrap: wrap; }
.wsn .cap-row { display: flex; align-items: center; gap: 8px; margin-top: 9px; }
.wsn .cap-bar2 { flex: 1; height: 6px; background: rgba(0,0,0,.25); border-radius: 8px; overflow: hidden; border: 1px solid var(--border); }
.wsn .cap-fill2 { height: 100%; background: var(--grad-brand); border-radius: 8px; }
.wsn .cap-fill2.almost { background: linear-gradient(90deg, #f59e0b, #fb7185); }
.wsn .cap-txt { font-size: 10px; font-weight: 800; color: var(--muted); white-space: nowrap; }
.wsn .c-free { color: #34d399; }
.wsn .pr { font-size: 12px; font-weight: 900; color: var(--gold); margin-top: 8px; }
.wsn .del { position: absolute; top: 10px; left: 10px; background: none; border: none; color: var(--muted2); cursor: pointer; font-size: 14px; }
.wsn .del:hover { color: #fb7185; }
.wsn-add { border: 2px dashed var(--border-strong); border-radius: 15px; padding: 18px; text-align: center; color: var(--muted); cursor: pointer; transition: all .25s; font-size: 13px; font-weight: 700; }
.wsn-add:hover { border-color: var(--brand); color: var(--brand); background: rgba(34,211,238,.05); }
.add-pool-bar { background: var(--card); border: 1px solid var(--border-strong); border-radius: 18px; padding: 18px 20px; display: flex; gap: 12px; align-items: center; margin-bottom: 22px; flex-wrap: wrap; }
.add-pool-bar select { flex: 1; min-width: 200px; padding: 13px 16px; background: var(--card-2); border: 1.5px solid var(--border); border-radius: 13px; color: var(--text); font-family: inherit; }

/* سانس مربی در صفحه استخر (مشتری) */
.coach-presence { background: var(--card); border: 1px solid var(--border); border-radius: 20px; padding: 20px; }
.cp-item { display: flex; gap: 14px; padding: 15px; border: 1px solid var(--border); border-radius: 16px; margin-bottom: 11px; background: var(--card-2); align-items: center; flex-wrap: wrap; }
.cp-item:last-child { margin-bottom: 0; }
.cp-av { width: 48px; height: 48px; border-radius: 14px; background: var(--grad-brand); display: flex; align-items: center; justify-content: center; font-size: 23px; flex-shrink: 0; }
.cp-info { flex: 1; min-width: 180px; }
.cp-name { font-size: 14px; font-weight: 800; }
.cp-meta { font-size: 11px; color: var(--muted); margin-top: 3px; display: flex; gap: 10px; flex-wrap: wrap; }

/* سایدبار در موبایل → نوار پایینِ بدون تغییر در ترتیب DOM */
@media (max-width: 900px) {
  .panel-shell { grid-template-columns: 1fr; }
  .p-side { order: 1; border-right: none; }
  .p-brand { flex-direction: row; align-items: center; justify-content: space-between; }
  .p-brand-top { order: 2; }
  .p-date-bar { display: none; }
  .membership-card { display: none; }
}
/* در دسکتاپ وقتی پنل باز است فوتر را پنهان کن تا سایدبار تمام صفحه باشد */
body[data-page="dashboard"] .footer, body[data-page="login"] .footer, body[data-page="login"] .announce,
body[data-page="dashboard"] .nav, body[data-page="dashboard"] .announce, body[data-page="dashboard"] .scroll-progress,
body[data-page="admin"] .nav, body[data-page="admin"] .announce, body[data-page="admin"] .scroll-progress, body[data-page="admin"] .footer { display: none; }
body[data-page="dashboard"] .panel-shell { padding-top: 0; }
@media (min-width: 901px) { body[data-page="dashboard"] .p-side { top: 0; height: 100vh; } }
body[data-page="admin"] .bottom-nav { display: none !important; }
body[data-page="dashboard"] .bottom-nav { display: none !important; }
body[data-page="dashboard"] .announce { display: none; }
body[data-page="dashboard"] .nav { top: 10px; }
.panel-shell { padding-top: 68px; }
.p-side { top: 68px; height: calc(100vh - 68px); }


/* ================================================================
   v6 — صفحه ورود لاکچری (split-screen + طلایی + شیشه‌ای)
   ================================================================ */
.lx-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(430px, 560px) 1fr; background: #04101f; }
.lx-form-side { position: relative; display: flex; align-items: center; justify-content: center; padding: 116px 44px 56px; overflow: hidden; }
.lx-form-side::before { content: ''; position: absolute; inset: 0; background: radial-gradient(600px 400px at 85% 8%, rgba(245,198,107,.10), transparent 60%), radial-gradient(700px 500px at 10% 95%, rgba(34,211,238,.12), transparent 60%); pointer-events: none; }
.lx-form-side::after { content: ''; position: absolute; bottom: -60px; left: -40px; width: 260px; height: 260px; opacity: .07; transform: rotate(-18deg); pointer-events: none; background: #22c7e6; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='15.6' cy='6.2' r='2.2'/%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M4 12.5c2.3-3.2 4.9-4.1 7-1.7l2 2.2 3.4-1.5M2.8 17.1c2.3 1.8 4.7 1.8 7 0s4.7-1.8 7 0 4.7-1.8 7 0M2.8 20.6c2.3 1.8 4.7 1.8 7 0s4.7-1.8 7 0 4.7-1.8 7 0'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='15.6' cy='6.2' r='2.2'/%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M4 12.5c2.3-3.2 4.9-4.1 7-1.7l2 2.2 3.4-1.5M2.8 17.1c2.3 1.8 4.7 1.8 7 0s4.7-1.8 7 0 4.7-1.8 7 0M2.8 20.6c2.3 1.8 4.7 1.8 7 0s4.7-1.8 7 0 4.7-1.8 7 0'/%3E%3C/svg%3E") center/contain no-repeat; }
.lx-card-lux { position: relative; z-index: 2; width: 100%; max-width: 430px; }
.lx-logo-row { display: flex; align-items: center; gap: 12px; margin-bottom: 26px; }
.lx-logo-badge { width: 56px; height: 56px; border-radius: 18px; background: var(--grad-brand); display: flex; align-items: center; justify-content: center; font-size: 28px; box-shadow: 0 14px 34px -8px rgba(34,211,238,.6); position: relative; overflow: hidden; }
.lx-logo-badge img { width:100%; height:100%; object-fit:cover; position:relative; z-index:1; }
.lx-logo-badge::after { content: ''; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.55) 50%, transparent 60%); transform: translateX(120%); animation: sheen 4.5s ease infinite; }
.lx-title { font-size: 27px; font-weight: 900; line-height: 1.4; }
.lx-title b { background: linear-gradient(120deg, #f5c66b, #e8a93d 45%, #ffe9b8); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.lx-sub { color: var(--muted); font-size: 13px; margin: 8px 0 24px; line-height: 2; }
.lx-field { position: relative; margin-bottom: 12px; }
.lx-field > span { position: absolute; top: 50%; transform: translateY(-50%); right: 16px; font-size: 15px; opacity: .7; }
.lx-inp { width: 100%; background: rgba(255,255,255,.045); border: 1px solid var(--border-strong); border-radius: 15px; padding: 14px 46px 14px 16px; color: var(--text); font-family: inherit; font-size: 13.5px; transition: all .25s; }
.lx-inp::placeholder { color: var(--muted2); }
.lx-inp:focus { outline: none; border-color: rgba(245,198,107,.55); box-shadow: 0 0 0 4px rgba(245,198,107,.12); background: rgba(255,255,255,.07); }
.lx-btn-gold { width: 100%; margin-top: 4px; background: linear-gradient(120deg, #f5c66b, #e8a93d); color: #241a04; border: none; border-radius: 15px; padding: 15px; font-family: inherit; font-size: 14.5px; font-weight: 900; cursor: pointer; box-shadow: 0 14px 30px -8px rgba(232,169,61,.55); transition: all .28s cubic-bezier(.34,1.56,.64,1); position: relative; overflow: hidden; }
.lx-btn-gold::after { content: ''; position: absolute; inset: 0; background: linear-gradient(105deg, transparent 42%, rgba(255,255,255,.4) 50%, transparent 58%); transform: translateX(130%); transition: transform .6s; }
.lx-btn-gold:hover { transform: translateY(-2px); box-shadow: 0 20px 40px -8px rgba(232,169,61,.7); }
.lx-btn-gold:hover::after { transform: translateX(-130%); }
.lx-or { display: flex; align-items: center; gap: 12px; margin: 22px 0 16px; color: var(--muted2); font-size: 11.5px; font-weight: 700; }
.lx-or::before, .lx-or::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--border-strong), transparent); }
.lx-roles { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lx-role { position: relative; display: flex; align-items: center; gap: 11px; background: rgba(255,255,255,.04); border: 1px solid var(--border); border-radius: 16px; padding: 13px 13px; cursor: pointer; transition: all .3s cubic-bezier(.22,1,.36,1); font-family: inherit; color: var(--text); text-align: right; }
.lx-role:hover { border-color: rgba(245,198,107,.55); background: rgba(245,198,107,.06); transform: translateY(-2px); box-shadow: 0 12px 26px -10px rgba(245,198,107,.35); }
.lx-role.wide { grid-column: 1 / -1; }
.lx-ic { width: 42px; height: 42px; flex-shrink: 0; border-radius: 13px; display: flex; align-items: center; justify-content: center; font-size: 21px; background: var(--glass); border: 1px solid var(--border-strong); position: relative; }
.lx-role:hover .lx-ic { border-color: rgba(245,198,107,.5); box-shadow: 0 0 16px rgba(245,198,107,.25); }
.lx-rl { display: flex; flex-direction: column; gap: 2px; }
.lx-rl b { font-size: 12.5px; font-weight: 800; }
.lx-rl small { font-size: 10px; color: var(--muted2); }
.lx-visual { position: relative; overflow: hidden; }
.lx-visual-img { position: absolute; inset: 0; background: url('../assets/panel-hero.webp') center/cover no-repeat; transform: scale(1.07); animation: lxZoom 22s ease-in-out infinite alternate; }
@keyframes lxZoom { to { transform: scale(1.18); } }
.lx-visual-veil { position: absolute; inset: 0; background: linear-gradient(215deg, rgba(4,20,38,.12) 0%, rgba(4,14,28,.55) 55%, rgba(4,12,24,.92) 100%); }
.lx-visual-content { position: absolute; inset-inline: 0; bottom: 0; padding: 52px; z-index: 3; }
.lx-chip-row { display: flex; gap: 9px; flex-wrap: wrap; margin-bottom: 18px; }
.lx-chip { background: rgba(255,255,255,.09); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.18); border-radius: 999px; padding: 8px 16px; font-size: 12px; font-weight: 700; color: rgba(255,255,255,.92); display: inline-flex; align-items: center; gap: 7px; }
.lx-chip b { color: #f5c66b; }
.lx-visual-title { font-size: clamp(24px, 2.6vw, 36px); font-weight: 900; color: #fff; line-height: 1.7; max-width: 560px; }
.lx-visual-title em { font-style: normal; background: linear-gradient(120deg, #9fe8ff, #22d3ee); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.lx-visual-sub { color: rgba(255,255,255,.7); font-size: 13.5px; margin-top: 12px; max-width: 460px; line-height: 2.1; }
.lx-waves { position: absolute; top: 0; right: 0; left: 0; height: 100%; z-index: 2; pointer-events: none; background: repeating-linear-gradient(100deg, transparent 0 90px, rgba(255,255,255,.02) 90px 92px); }
@media (max-width: 980px) {
  .lx-shell { grid-template-columns: 1fr; }
  .lx-visual { display: none; }
  .lx-form-side { padding: 104px 20px 48px; min-height: 100vh; }
  .lx-roles { grid-template-columns: 1fr; }
  .lx-ic { width: 38px; height: 38px; font-size: 18px; }
}


/* ================================================================
   v7 — پنل SPA (تعویض تب بدون رفرش) + کنترل نمایش/فروش ادمین
   ================================================================ */
.p-main { transition: opacity .16s ease, transform .16s ease; }
.pm-fade { opacity: 0; transform: translateY(10px); }
@keyframes shakeX { 0%,100% { transform: translateX(0); } 20% { transform: translateX(-9px); } 45% { transform: translateX(8px); } 70% { transform: translateX(-5px); } 90% { transform: translateX(3px); } }
.price-lock { font-size: 11.5px; color: var(--muted); font-weight: 800; }

/* جدول قوانین سراسری */
.cfg-head { display: grid; grid-template-columns: 1.4fr repeat(3, .62fr) 1.05fr; gap: 8px; font-size: 10.5px; color: var(--muted2); font-weight: 800; padding: 0 8px 10px; border-bottom: 1px solid var(--border); text-align: center; }
.cfg-head span:first-child { text-align: right; }
.cfg-row { display: grid; grid-template-columns: 1.4fr repeat(3, .62fr) 1.05fr; gap: 8px; align-items: center; padding: 11px 8px; border-bottom: 1px solid var(--border); }
.cfg-row:last-child { border-bottom: none; }
.cfg-row > span:not(:first-child) { text-align: center; }
.cfg-sec { font-weight: 800; font-size: 13px; }
.cfg-tgl { width: 44px; height: 24px; border-radius: 99px; background: var(--card-2); border: 1px solid var(--border-strong); position: relative; cursor: pointer; transition: all .25s; vertical-align: middle; }
.cfg-tgl i { position: absolute; top: 2px; right: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--muted); transition: all .25s cubic-bezier(.34,1.56,.64,1); }
.cfg-tgl.on { background: rgba(52,211,153,.18); border-color: rgba(52,211,153,.6); }
.cfg-tgl.on i { background: #34d399; transform: translateX(-20px); box-shadow: 0 0 10px rgba(52,211,153,.8); }
.cfg-mode { font-size: 10.5px; font-weight: 800; padding: 5px 10px; border-radius: 99px; display: inline-block; white-space: nowrap; }
.cfg-mode.sell { background: rgba(52,211,153,.13); color: #34d399; border: 1px solid rgba(52,211,153,.4); }
.cfg-mode.price { background: rgba(245,198,107,.12); color: var(--gold); border: 1px solid rgba(245,198,107,.4); }
.cfg-mode.contact { background: var(--card-2); color: var(--muted); border: 1px solid var(--border); }

/* کارت‌های استثنای کاربر */
.cfg-acc { border: 1px solid var(--border); border-radius: 16px; padding: 14px; margin-bottom: 12px; background: var(--card-2); background: color-mix(in srgb, var(--card-2) 55%, transparent); }
.cfg-acc-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.cfg-acc-ic { width: 38px; height: 38px; border-radius: 12px; background: var(--glass); border: 1px solid var(--border-strong); display: flex; align-items: center; justify-content: center; font-size: 19px; flex-shrink: 0; }
.cfg-acc-head small { display: block; font-size: 10.5px; color: var(--muted2); margin-top: 1px; }
.cfg-ov-chip { font-size: 10px; background: rgba(245,198,107,.14); color: var(--gold); border: 1px solid rgba(245,198,107,.4); border-radius: 99px; padding: 4px 10px; margin-right: auto; white-space: nowrap; }
.cfg-acc-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 0; border-top: 1px dashed var(--border); font-size: 12px; }
.cfg-acc-sec { flex: 1; min-width: 90px; font-weight: 700; color: var(--muted); font-size: 12px; }
.cfg-tri { display: inline-flex; align-items: center; gap: 5px; background: var(--card-2); border: 1px solid var(--border); border-radius: 10px; padding: 6px 10px; font-size: 11px; cursor: pointer; color: var(--muted); transition: all .2s; font-family: inherit; }
.cfg-tri small { font-size: 10px; }
.cfg-tri:hover { transform: translateY(-1px); }
.cfg-tri.ok { border-color: rgba(52,211,153,.55); color: #34d399; background: rgba(52,211,153,.1); }
.cfg-tri.no { border-color: rgba(251,113,133,.55); color: #fb7185; background: rgba(251,113,133,.08); }
@media (max-width: 720px) {
  .cfg-head { display: none; }
  .cfg-row { grid-template-columns: 1fr auto auto auto; row-gap: 8px; }
  .cfg-mode { grid-column: 1 / -1; text-align: right; }
}

/* ================================================================
   v8 — پنل موبایل: نوار بالای شناور + تب‌بار پایین + شیت منوی کامل
   ================================================================ */
.p-mtop, .p-mbar, .p-msheet, .p-msheet-bg { display: none; }
@media (max-width: 900px) {
  /* سایدبار دسکتاپ مخفی، کروم موبایل جایگزین */
  body[data-page="dashboard"] .p-side { display: none !important; }
  body[data-page="dashboard"] .panel-shell { padding-top: 0; grid-template-columns: 1fr; }
  body[data-page="dashboard"] .p-main { padding: 14px 14px calc(108px + env(safe-area-inset-bottom)); }
  body[data-page="dashboard"] .m-fab { display: none !important; }

  /* ── نوار بالای موبایل ── */
  .p-mtop { display: flex; align-items: center; gap: 10px; background: var(--glass); backdrop-filter: blur(22px) saturate(160%); -webkit-backdrop-filter: blur(22px) saturate(160%); border: 1px solid var(--border-strong); border-radius: 18px; padding: 10px 13px; margin-bottom: 18px; position: sticky; top: 8px; z-index: 50; box-shadow: var(--sh); }
  .pmt-r { display: flex; align-items: center; gap: 9px; min-width: 0; }
  .pmt-av { width: 40px; height: 40px; flex-shrink: 0; border-radius: 13px; background: var(--grad-brand); display: flex; align-items: center; justify-content: center; font-size: 20px; box-shadow: 0 5px 14px rgba(34,211,238,.35); }
  .pmt-r b { display: block; font-size: 12.5px; white-space: nowrap; }
  .pmt-status { font-size: 10px; font-weight: 800; }
  .pmt-status.verified { color: #34d399; }
  .pmt-status.pending { color: var(--gold); }
  .pmt-tab { font-size: 11.5px; font-weight: 800; color: var(--muted2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pmt-l { margin-right: auto; display: flex; align-items: center; gap: 7px; flex-shrink: 0; }
  .pmt-date { font-size: 9.5px; font-weight: 800; color: var(--muted); background: var(--card-2); border: 1px solid var(--border); padding: 6px 9px; border-radius: 9px; white-space: nowrap; }
  .pmt-bell { position: relative; width: 36px; height: 36px; border-radius: 11px; background: var(--card-2); border: 1px solid var(--border); font-size: 15px; cursor: pointer; }
  .pmt-bell b { position: absolute; top: -5px; left: -5px; background: var(--danger); color: #fff; font-size: 9px; min-width: 15px; height: 15px; border-radius: 20px; display: flex; align-items: center; justify-content: center; font-weight: 800; }

  /* ── تب‌بار پایین ── */
  .p-mbar { display: flex; align-items: flex-end; justify-content: space-around; position: fixed; bottom: calc(10px + env(safe-area-inset-bottom)); right: 12px; left: 12px; z-index: 90; background: var(--glass); backdrop-filter: blur(26px) saturate(170%); -webkit-backdrop-filter: blur(26px) saturate(170%); border: 1px solid var(--border-strong); border-radius: 24px; padding: 9px 10px; box-shadow: 0 18px 44px rgba(2,10,20,.55); }
  .pm-item { display: flex; flex-direction: column; align-items: center; gap: 3px; background: none; border: none; color: var(--muted); font-family: inherit; cursor: pointer; padding: 6px 10px; border-radius: 13px; min-width: 56px; position: relative; transition: all .22s; }
  .pm-item span { font-size: 21px; }
  .pm-item small { font-size: 10px; font-weight: 800; }
  .pm-item.on { color: var(--brand); }
  .pm-item.on::before { content: ''; position: absolute; top: -10px; right: 50%; transform: translateX(50%); width: 22px; height: 3.5px; border-radius: 3px; background: var(--grad-brand); box-shadow: 0 0 10px rgba(34,211,238,.8); }
  .pm-badge { position: absolute; top: 2px; left: 6px; background: var(--danger); color: #fff; font-size: 9px; min-width: 15px; height: 15px; border-radius: 20px; display: flex; align-items: center; justify-content: center; font-weight: 800; }
  .pm-fab { width: 58px; height: 58px; margin-top: -30px; border-radius: 19px; background: var(--grad-brand); border: none; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 24px; box-shadow: 0 14px 30px -6px rgba(34,211,238,.6), 0 0 0 5px var(--bg); transition: transform .2s; position: relative; }
  .pm-fab:active { transform: scale(.9); }
  .pm-fab small { position: absolute; bottom: -15px; font-size: 9px; font-weight: 800; color: var(--muted); white-space: nowrap; }

  /* ── شیت منوی کامل ── */
  .p-msheet-bg { display: block; position: fixed; inset: 0; background: rgba(3,10,20,.62); backdrop-filter: blur(5px); z-index: 94; opacity: 0; pointer-events: none; transition: opacity .3s; }
  .p-msheet-bg.open { opacity: 1; pointer-events: auto; }
  .p-msheet { display: block; position: fixed; right: 0; left: 0; bottom: 0; z-index: 95; background: var(--card-solid); border: 1px solid var(--border-strong); border-bottom: none; border-radius: 26px 26px 0 0; padding: 12px 16px calc(18px + env(safe-area-inset-bottom)); max-height: 82vh; overflow-y: auto; transform: translateY(104%); transition: transform .38s cubic-bezier(.22,1,.36,1); box-shadow: 0 -20px 60px rgba(2,10,20,.6); }
  .p-msheet.open { transform: translateY(0); }
  .pms-grab { width: 44px; height: 4.5px; border-radius: 4px; background: var(--border-strong); margin: 0 auto 14px; }
  .pms-mc { display: flex; align-items: center; gap: 11px; background: var(--card-2); border: 1px solid var(--border); border-radius: 16px; padding: 12px 13px; margin-bottom: 6px; }
  .pms-lbl { font-size: 10.5px; font-weight: 800; color: var(--muted2); margin: 14px 4px 8px; }
  .pms-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; }
  .pms-item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; background: var(--card-2); border: 1px solid var(--border); border-radius: 15px; padding: 13px 6px; font-family: inherit; font-size: 10.5px; font-weight: 800; color: var(--text); cursor: pointer; transition: all .22s; text-align: center; }
  .pms-item span { font-size: 22px; }
  .pms-item:active { transform: scale(.94); }
  .pms-item.on { border-color: var(--brand); color: var(--brand); background: rgba(34,211,238,.07); box-shadow: var(--glow-brand); }
  .pms-item.danger { color: #fb7185; }
  .pms-item.danger:active { background: rgba(251,113,133,.1); }

  /* ── محتوا ── */
  .w-grid { grid-template-columns: 1fr 1fr; gap: 11px; }
  .dash-cols { grid-template-columns: 1fr !important; }
  .p-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .p-table table { min-width: 560px; }
  .panel-hero { border-radius: 20px !important; }
  .panel-hero-content h2 { font-size: 20px !important; }
  .panel-hero-content p { font-size: 12px !important; }
  .ph-chips { flex-wrap: wrap; }
  .wallet-hero { flex-direction: column; align-items: flex-start; padding: 24px 22px; }
  .charge-row { flex-wrap: wrap; }
  .add-pool-bar { flex-direction: column; align-items: stretch; }
  .wsn-form .fd { min-width: 0; }
  .cfg-row { grid-template-columns: 1fr auto; gap: 10px; }
  .cfg-row > span:nth-child(n+2) { grid-column: auto; }
  .cfg-head { display: none; }
  .pms-grid .pms-item { -webkit-tap-highlight-color: transparent; }
  .lx-roles { grid-template-columns: 1fr; }
  .ads-wrap { grid-template-columns: 1fr !important; }
}
@media (max-width: 420px) {
  .w-grid { grid-template-columns: 1fr; }
  .pmt-date { display: none; }
  .pms-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ================= V9 — صندوق پیام تلگرامی + تب‌های جدید پنل ================= */
.tg-shell { display: grid; gap: 14px; }
.tg-search { display: flex; align-items: center; gap: 9px; padding: 11px 16px; background: var(--card); border: 1px solid var(--border); border-radius: 99px; backdrop-filter: blur(14px); }
.tg-search input { flex: 1; border: 0; background: transparent; color: var(--text); font: inherit; font-size: 13px; outline: none; }
.tg-cols { display: grid; grid-template-columns: 330px 1fr; gap: 16px; align-items: start; }
.tg-list { display: grid; gap: 4px; padding: 8px; background: var(--card); border: 1px solid var(--border); border-radius: var(--r-lg, 22px); backdrop-filter: blur(16px); max-height: 72vh; overflow-y: auto; scrollbar-width: thin; }
.tg-item { display: flex; gap: 11px; align-items: center; padding: 10px 11px; border-radius: 16px; cursor: pointer; transition: background .2s ease, transform .2s ease; border: 1px solid transparent; }
.tg-item:hover { background: rgba(34, 211, 238, .07); transform: translateX(-2px); }
.tg-item.on { background: linear-gradient(120deg, rgba(34, 211, 238, .16), rgba(14, 165, 233, .10)); border-color: rgba(34, 211, 238, .35); }
.tg-av { position: relative; width: 47px; height: 47px; flex: 0 0 auto; border-radius: 50%; display: grid; place-items: center; font-size: 21px; background: linear-gradient(135deg, rgba(34, 211, 238, .25), rgba(14, 165, 233, .18)); border: 1.5px solid rgba(34, 211, 238, .35); }
.tg-on { position: absolute; bottom: 1px; left: 2px; width: 11px; height: 11px; background: #34d399; border: 2.5px solid var(--card-solid, #0c1c36); border-radius: 50%; animation: tgPulse 2.4s ease-in-out infinite; }
@keyframes tgPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(52, 211, 153, .45); } 55% { box-shadow: 0 0 0 5px rgba(52, 211, 153, 0); } }
.tg-info { flex: 1; min-width: 0; }
.tg-row1 { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.tg-name { font-weight: 800; font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tg-time { font-size: 10px; color: var(--muted); flex: 0 0 auto; font-weight: 700; }
.tg-row2 { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 4px; }
.tg-last { font-size: 11.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tg-you { color: var(--brand); font-weight: 800; }
.tg-un { flex: 0 0 auto; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 99px; display: grid; place-items: center; background: linear-gradient(135deg, var(--brand), #0891b2); color: #fff; font-size: 10.5px; font-weight: 900; box-shadow: 0 4px 10px rgba(34, 211, 238, .4); }
.tg-room { display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--border); border-radius: var(--r-lg, 22px); backdrop-filter: blur(16px); overflow: hidden; min-height: 560px; }
.tg-room-head { display: flex; align-items: center; gap: 10px; padding: 11px 15px; border-bottom: 1px solid var(--border); background: rgba(34, 211, 238, .05); }
.tg-room-name { font-weight: 800; font-size: 13.5px; }
.tg-room-sub { font-size: 10.5px; color: #34d399; font-weight: 700; margin-top: 2px; }
.tg-hact { cursor: pointer; opacity: .7; font-size: 16px; padding: 6px; border-radius: 10px; transition: .2s; }
.tg-hact:hover { opacity: 1; background: rgba(34, 211, 238, .12); }
.tg-back { display: none; border: 0; background: rgba(34, 211, 238, .14); color: var(--brand); width: 34px; height: 34px; border-radius: 12px; font-size: 15px; cursor: pointer; font-weight: 900; }
.tg-body { flex: 1; display: flex; flex-direction: column; gap: 7px; padding: 16px; overflow-y: auto; max-height: 58vh; background: radial-gradient(120% 90% at 50% 0%, rgba(34, 211, 238, .05), transparent 60%); }
.tg-day { align-self: center; font-size: 10.5px; font-weight: 800; color: var(--muted); background: var(--card-2, rgba(255, 255, 255, .5)); border: 1px solid var(--border); padding: 4px 14px; border-radius: 99px; margin-bottom: 6px; }
.msg .msg-txt { display: block; }
.msg-meta { display: flex; gap: 4px; align-items: center; justify-content: flex-end; font-size: 10px; color: var(--muted2, var(--muted)); margin-top: 4px; font-weight: 700; }
.tk { font-style: normal; font-size: 9.5px; opacity: .65; }
.tk.tk2 { color: #38bdf8; opacity: 1; text-shadow: 0 0 8px rgba(56, 189, 248, .55); }
.tg-input-bar { display: flex; align-items: center; gap: 7px; padding: 10px 13px; border-top: 1px solid var(--border); }
.tg-input-bar input { flex: 1; border: 0; background: var(--card-2, rgba(255, 255, 255, .55)); border-radius: 99px; padding: 11px 17px; font: inherit; font-size: 13px; color: var(--text); outline: none; border: 1.5px solid transparent; transition: .2s; }
.tg-input-bar input:focus { border-color: rgba(34, 211, 238, .5); box-shadow: 0 0 0 4px rgba(34, 211, 238, .13); }
.tg-send { width: 43px; height: 43px; flex: 0 0 auto; border-radius: 50%; border: 0; cursor: pointer; color: #fff; font-size: 16px; background: linear-gradient(135deg, var(--brand), #0891b2); box-shadow: 0 6px 16px rgba(34, 211, 238, .38); transition: .2s; transform: rotate(180deg); }
.tg-send:hover { transform: rotate(180deg) scale(1.09); }
.tg-empty { min-height: 480px; display: grid; place-content: center; justify-items: center; gap: 8px; color: var(--muted); text-align: center; }
.tg-empty span { font-size: 54px; opacity: .5; animation: floaty 3s ease-in-out infinite; }
@media (max-width: 900px) {
  .tg-cols { grid-template-columns: 1fr; }
  .tg-list { max-height: none; }
  .tg-room { display: none; position: fixed; inset: 0; z-index: 500; border-radius: 0; border: 0; min-height: 0; padding-bottom: env(safe-area-inset-bottom); background: var(--bg, #060d1c); backdrop-filter: none; }
  .tg-shell.in-room .tg-room { display: flex; }
  #tgRoom.in-room { display: flex; }
  .tg-back { display: grid; place-items: center; }
  .tg-body { max-height: none; }
}

/* ---------- ردیف‌های لیست پنلی (B2B/استخدام/رزومه/هیدرو/رویداد/مقاله) ---------- */
.plist { display: grid; gap: 10px; margin-top: 18px; }
.pl-row { display: flex; align-items: center; gap: 13px; padding: 13px 15px; background: var(--card); border: 1px solid var(--border); border-radius: 18px; backdrop-filter: blur(14px); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.pl-row:hover { transform: translateY(-2px); border-color: rgba(34, 211, 238, .38); box-shadow: 0 12px 28px rgba(2, 18, 43, .14); }
.pl-ic { width: 45px; height: 45px; flex: 0 0 auto; border-radius: 15px; display: grid; place-items: center; font-size: 20px; background: linear-gradient(135deg, rgba(34, 211, 238, .18), rgba(14, 165, 233, .10)); border: 1px solid rgba(34, 211, 238, .28); }
.pl-t { flex: 1; min-width: 0; }
.pl-t b { display: block; font-size: 13.5px; margin-bottom: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pl-t span { font-size: 11px; color: var(--muted); }
.pl-a { display: flex; gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.mini-tag { font-size: 10px; font-weight: 800; color: var(--muted); padding: 6px 10px; border-radius: 99px; border: 1px dashed var(--border); display: inline-flex; align-items: center; }
@media (max-width: 640px) {
  .pl-row { flex-wrap: wrap; }
  .pl-a { width: 100%; justify-content: stretch; }
  .pl-a .btn { flex: 1; justify-content: center; }
}

/* ================= V10 — انتخاب آدرس، جستجوی بزرگ، فروشگاه B2B، ویرایشگر مدیر ================= */
#app { transition: opacity .18s ease, transform .18s ease; min-height: 60vh; }
body.ui-no-announce .announce { display: none !important; }
.is-off .cat-circles, body.ui-no-quick .cat-circles { display: none !important; }

/* --- نوار انتخاب آدرس (استان/شهر) --- */
.locbar { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; justify-content: center; margin: 0 auto 14px; padding: 9px 14px; background: rgba(9, 22, 44, .55); border: 1px solid rgba(34, 211, 238, .28); border-radius: 18px; backdrop-filter: blur(14px); max-width: 980px; }
.locbar-ic { font-size: 15px; }
.locbar select { background: rgba(255, 255, 255, .07); color: #fff; border: 1px solid rgba(34, 211, 238, .3); border-radius: 12px; padding: 8px 12px; font: inherit; font-size: 12.5px; font-weight: 800; outline: none; cursor: pointer; }
.locbar select option { color: #0f172a; }
.loc-cities { display: flex; gap: 6px; flex-wrap: wrap; }
.loc-city { border: 1px solid rgba(34, 211, 238, .25); background: rgba(255, 255, 255, .05); color: #cfe9ff; padding: 6px 13px; border-radius: 99px; font: inherit; font-size: 11.5px; font-weight: 800; cursor: pointer; transition: .18s; }
.loc-city:hover { background: rgba(34, 211, 238, .16); }
.loc-city.on { background: linear-gradient(135deg, var(--brand), #0891b2); color: #04121f; border-color: transparent; box-shadow: 0 5px 14px rgba(34, 211, 238, .35); }
.loc-now { font-size: 11.5px; font-weight: 900; color: var(--gold); }
@media (max-width: 700px) { .locbar { gap: 6px; padding: 8px 10px; } .locbar select { font-size: 11.5px; } }

/* --- جستجوی بزرگ وسط‌چین --- */
.hero-search-xl { max-width: 960px; margin: 0 auto !important; width: 100%; }
.hero-search-xl form { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; }
.hero-search-xl form input { padding: 16px 20px !important; font-size: 15px !important; border-radius: 16px !important; }
.hero-search-xl form select { padding: 14px 14px !important; font-size: 13px !important; border-radius: 16px !important; }
.hero-search-xl form .btn { padding: 14px 30px !important; font-size: 15px !important; border-radius: 16px !important; }
.hero-search-xl .hero-search-tags { justify-content: center; }
@media (max-width: 680px) { .hero-search-xl form { grid-template-columns: 1fr; } }

/* --- زیرنویس پایین هیرو (در نمای اول بدون اسکرول) --- */
.hero { min-height: 100svh; }
.hero-wrap { padding-bottom: 110px !important; }
.hero-foot { position: absolute; bottom: 14px; left: 0; right: 0; z-index: 4; text-align: center; padding: 0 16px; }
.hero-foot .hero-sub { max-width: 660px; margin: 0 auto; font-size: clamp(12px, 2.6vw, 15.5px); font-weight: 600; line-height: 1.9; color: #d7eafd; text-shadow: 0 2px 14px rgba(2, 10, 24, .8); }
.hero-foot .scroll-hint { position: static; transform: none; margin-top: 10px; }
@media (max-height: 700px) { .hero-foot .scroll-hint { display: none; } }

/* --- فروشگاه تأمین‌کنندگان (پنل) --- */
.shop-cats { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 18px; }
.shop-cat { display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 74px; padding: 10px 9px; border-radius: 16px; border: 1px solid rgba(34, 211, 238, .22); background: rgba(9, 22, 44, .5); color: #cfe9ff; cursor: pointer; font: inherit; transition: .2s; }
.shop-cat span { font-size: 19px; }
.shop-cat small { font-size: 10px; font-weight: 800; }
.shop-cat:hover { transform: translateY(-2px); background: rgba(34, 211, 238, .1); }
.shop-cat.on { background: linear-gradient(135deg, rgba(34, 211, 238, .25), rgba(14, 165, 233, .15)); border-color: var(--brand); color: #fff; box-shadow: 0 8px 20px rgba(34, 211, 238, .2); }
.shop-sups { display: flex; gap: 10px; overflow-x: auto; padding: 14px 2px 8px; scrollbar-width: thin; }
.shop-sup { display: flex; flex-direction: column; align-items: center; gap: 5px; min-width: 82px; padding: 10px 8px; border-radius: 16px; border: 1px solid var(--border); background: var(--card); cursor: pointer; font: inherit; color: inherit; transition: .2s; }
.ss-av { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; font-size: 22px; background: linear-gradient(135deg, rgba(34, 211, 238, .2), rgba(14, 165, 233, .12)); border: 2px solid rgba(34, 211, 238, .3); }
.shop-sup small { font-size: 10px; font-weight: 800; max-width: 76px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.shop-sup.on { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(34, 211, 238, .18); }
.shop-sup.on .ss-av { border-color: #34d399; }
.shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(215px, 1fr)); gap: 13px; margin-top: 16px; }
.shop-card { display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--border); border-radius: 20px; overflow: hidden; backdrop-filter: blur(14px); transition: .22s; }
.shop-card:hover { transform: translateY(-3px); border-color: rgba(34, 211, 238, .4); box-shadow: 0 14px 32px rgba(2, 18, 43, .18); }
.shc-img { height: 92px; display: grid; place-items: center; background: linear-gradient(135deg, rgba(34, 211, 238, .13), rgba(14, 165, 233, .06)); font-size: 38px; overflow: hidden; }
.shc-img img { width: 100%; height: 100%; object-fit: cover; }
.shc-body { padding: 12px 13px; }
.shc-body b { font-size: 12.5px; display: block; line-height: 1.7; }
.shc-meta { font-size: 10.5px; color: var(--muted); margin-top: 3px; }
.shc-foot { display: flex; align-items: center; justify-content: space-between; margin-top: 9px; }
.shc-price { font-size: 12px; font-weight: 900; color: #34d399; }
.pend-tag { font-size: 9.5px; font-weight: 800; color: var(--gold); border: 1px dashed var(--gold); padding: 2px 8px; border-radius: 99px; }

/* --- چیپ در انتظار تأیید --- */
.pend-chip { font-size: 10.5px; font-weight: 800; color: var(--gold); background: rgba(251, 191, 36, .1); border: 1px dashed rgba(251, 191, 36, .45); padding: 6px 12px; border-radius: 12px; margin-bottom: 8px; text-align: center; }

/* --- ویرایشگرهای مدیر --- */
.ui-row { display: flex; align-items: center; justify-content: space-between; padding: 10px 4px; border-bottom: 1px dashed var(--border); font-size: 12.5px; font-weight: 700; }
.ui-row:last-child { border-bottom: 0; }
.lbl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lbl-row { display: flex; flex-direction: column; gap: 5px; }
.lbl-key { font-size: 10.5px; color: var(--muted); font-weight: 800; }
.lbl-key small { opacity: .6; font-weight: 600; }
.lbl-row input { background: var(--card-2, rgba(255, 255, 255, .5)); border: 1px solid var(--border); border-radius: 11px; padding: 9px 12px; font: inherit; font-size: 12px; color: var(--text); outline: none; }
.lbl-row input:focus { border-color: rgba(34, 211, 238, .5); }
.img-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.img-row { display: flex; gap: 11px; align-items: flex-start; padding: 10px; border: 1px solid var(--border); border-radius: 15px; background: var(--card-2, rgba(255, 255, 255, .4)); }
.img-pv { width: 76px; height: 56px; flex: 0 0 auto; border-radius: 11px; overflow: hidden; position: relative; background: #0c1c36; display: grid; place-items: center; font-size: 22px; }
.img-pv img { width: 100%; height: 100%; object-fit: cover; }
.img-custom { position: absolute; bottom: 3px; left: 4px; background: rgba(0, 0, 0, .65); color: #34d399; font-size: 8px; font-weight: 800; padding: 1.5px 7px; border-radius: 99px; }
.img-url { flex: 1; min-width: 120px; background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 7px 10px; font: inherit; font-size: 11px; color: var(--text); outline: none; }
@media (max-width: 800px) { .lbl-grid, .img-grid { grid-template-columns: 1fr; } }

/* --- V10 tweak: زیرنویس هیرو در نمای اول (حتی بالای تب‌بار موبایل) --- */
.hero-wrap { display: flex; flex-direction: column; justify-content: center; }
@media (max-width: 900px) {
  .hero { min-height: 100dvh; padding-top: 62px; }
  .hero h1 { font-size: clamp(26px, 8.2vw, 40px) !important; line-height: 1.5 !important; }
  .hero-wrap { padding-bottom: 150px !important; }
  .hero-foot { bottom: calc(78px + env(safe-area-inset-bottom)); }
  .hero-sub { font-size: 12px; line-height: 1.85; }
}
@media (max-width: 900px) and (max-height: 760px) {
  .hero-wrap { padding-bottom: 132px !important; }
  .loc-cities { display: none; }
}


/* ================= V11 — رزومه‌ساز + آگهی جایگزینی + کتابخانه رسانه ================= */
/* --- ویزارد رزومه --- */
.cv-shell { display: grid; grid-template-columns: 1.15fr .85fr; gap: 20px; align-items: start; }
@media (max-width: 1100px) { .cv-shell { grid-template-columns: 1fr; } }
.cv-steps { display: flex; gap: 6px; margin: 16px 0 18px; align-items: center; flex-wrap: wrap; }
.cv-step-pill { display: flex; align-items: center; gap: 6px; padding: 8px 13px; border-radius: 99px; border: 1px solid var(--border); background: var(--card); font-size: 11.5px; font-weight: 800; color: var(--muted); cursor: pointer; transition: .2s; }
.cv-step-pill.on { background: linear-gradient(135deg, var(--brand), #0891b2); color: #04121f; border-color: transparent; box-shadow: 0 6px 16px rgba(34, 211, 238, .3); }
.cv-step-pill.done { border-color: #34d399; color: #34d399; }
.cv-bar { flex: 1; min-width: 44px; height: 4px; border-radius: 99px; background: var(--border); overflow: hidden; }
.cv-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--brand), #34d399); transition: width .4s ease; }
.cv-panel h3 { font-size: 15px; margin-bottom: 4px; }
.cv-note { font-size: 11px; color: var(--muted); margin-bottom: 14px; }
.cv-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cv-grid2 input, .cv-grid2 select, .cv-full textarea, .cv-full input { background: var(--card-2, rgba(255, 255, 255, .5)); border: 1px solid var(--border); border-radius: 12px; padding: 11px 13px; font: inherit; font-size: 13px; color: var(--text); outline: none; width: 100%; }
.cv-full { grid-column: 1/-1; margin-top: 9px; }
.cv-skill-row { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border: 1px solid var(--border); border-radius: 13px; margin-bottom: 7px; background: var(--card); cursor: pointer; transition: .18s; }
.cv-skill-row.on { border-color: var(--brand); background: rgba(34, 211, 238, .08); }
.cv-skill-row .sname { flex: 1; font-size: 12.5px; font-weight: 700; }
.cv-dots { display: flex; gap: 4px; }
.cv-dot { width: 15px; height: 15px; border-radius: 50%; border: 2px solid var(--border-strong, rgba(150, 180, 220, .4)); cursor: pointer; transition: .18s; }
.cv-dot.on { background: linear-gradient(135deg, var(--brand), #0891b2); border-color: transparent; box-shadow: 0 0 8px rgba(34, 211, 238, .5); }
.cv-cert-chip { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 99px; border: 1px solid var(--border); background: var(--card); font-size: 11px; font-weight: 700; cursor: pointer; margin: 3px; transition: .18s; }
.cv-cert-chip.on { background: rgba(52, 211, 153, .14); border-color: #34d399; color: #34d399; }
.cv-exp { border: 1px dashed var(--border); border-radius: 15px; padding: 12px; margin-bottom: 10px; position: relative; }
.cv-exp .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.cv-exp .form-grid input, .cv-exp .form-grid textarea { background: var(--card-2, rgba(255, 255, 255, .5)); border: 1px solid var(--border); border-radius: 11px; padding: 9px 11px; font: inherit; font-size: 12px; color: var(--text); outline: none; }
.cv-exp .cv-del { position: absolute; top: 9px; left: 9px; border: 0; background: rgba(244, 63, 94, .14); color: #fb7185; border-radius: 9px; font-size: 11px; padding: 4px 8px; cursor: pointer; }
.cv-nav { display: flex; gap: 9px; justify-content: space-between; margin-top: 18px; }
.cv-tpls { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.cv-tpl { border: 2px solid var(--border); border-radius: 15px; padding: 11px 7px; text-align: center; cursor: pointer; transition: .2s; background: var(--card); font: inherit; color: var(--text); }
.cv-tpl.on { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(34, 211, 238, .18); }
.cv-tpl .cv-mini { height: 64px; border-radius: 9px; margin-bottom: 7px; overflow: hidden; }
.cv-lang { display: flex; gap: 6px; }
.cv-lang button { flex: 1; padding: 9px; border-radius: 12px; border: 1px solid var(--border); background: var(--card); font: inherit; font-size: 12px; font-weight: 800; color: var(--text); cursor: pointer; }
.cv-lang button.on { background: rgba(34, 211, 238, .14); border-color: var(--brand); color: var(--brand); }

/* --- پیش‌نمایش کاغذ --- */
.cv-preview-col { position: sticky; top: 16px; }
.cv-paper-wrap { background: linear-gradient(160deg, #1a2c4e, #0d1a33); border-radius: 18px; padding: 16px; border: 1px solid rgba(34, 211, 238, .18); }
.cv-paper { background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 14px 40px rgba(0, 0, 0, .35); transform-origin: top center; min-height: 320px; }
.cv-paper > * { direction: rtl; }
.cv-paper.en > * { direction: ltr; text-align: left; }
.cv-pv-btns { display: flex; gap: 7px; margin-top: 13px; }
.cv-pv-btns .btn { flex: 1; font-size: 12px; }

/* ═══ قالب‌های رزومه (PDF) ═══ */
.cvdoc { font-family:var(--cv-font-fa,'Vazirmatn'),Tahoma,sans-serif; color:var(--cv-text,#1e293b); background:#fff; display:grid; grid-template-columns:27% 73%; min-height:100%; }
.cvdoc[dir="ltr"] { font-family:var(--cv-font-en,'Inter'),Arial,sans-serif; }
/* ستون اطلاعات شخصی عمداً باریک و هم‌اندازه فرم حرفه‌ای مرجع است. */
.cvd-side { background:var(--cv-side,#0a2540); color:#eaf6ff; padding:19px 14px; }
.cvd-photo { width:90px; height:90px; border-radius:50%; object-fit:cover; border:3px solid rgba(255,255,255,.35); display:block; margin:0 auto 9px; }
.cvd-side h1 { font-size:16px; text-align:center; margin:0 0 2px; line-height:1.45; }
.cvd-role { text-align:center; font-size:9.5px; color:var(--cv-accent,#9fd9ff); font-weight:800; margin-bottom:10px; }
.cvd-sec { margin-bottom:12px; }
.cvd-sec h3 { font-size:11px; letter-spacing:1px; color:var(--cv-accent,#7dd3fc); border-bottom:1px solid rgba(255,255,255,.28); padding-bottom:5px; margin-bottom:8px; font-weight:800; }
.cvd-kv { font-size: 11px; line-height: 2.1; }
/* کارت مشخصات تکمیلی، مستقیم زیر تصویر/نام رزومه قرار می‌گیرد. */
.cvd-profile-details { margin:9px 0 12px; padding:8px 0; border-top:1px solid rgba(255,255,255,.24); border-bottom:1px solid rgba(255,255,255,.24); }
.cvd-profile-details h3 { margin:0 0 5px; padding-bottom:4px; border-bottom:1px solid rgba(255,255,255,.2); color:var(--cv-accent,#7dd3fc); font-size:9.5px; font-weight:800; }
.cvd-profile-row { display:flex; flex-direction:column; align-items:flex-start; gap:0; padding:3px 0; }
.cvd-profile-row > span { color:rgba(255,255,255,.73); font-size:7.8px; font-weight:600; }
.cvd-profile-row > b { color:#fff; font-size:9.5px; line-height:1.45; overflow-wrap:anywhere; }
.cvd-profile-job { display:flex; flex-direction:column; gap:1px; padding:3px 0 5px; }.cvd-profile-job b { color:#fff; font-size:10px; }.cvd-profile-job small { color:rgba(255,255,255,.75); font-size:8.2px; }
.cvd-profile-divider { height:1px; margin:4px 0; background:rgba(255,255,255,.22); }
.cvd-skill { margin-bottom: 7px; }
.cvd-sname { font-size: 11px; font-weight: 700; }
.cvd-meter { height: 4px; border-radius: 99px; background: rgba(255, 255, 255, .18); margin-top: 3px; overflow: hidden; }
.cvd-meter i { display:block; height:100%; background:var(--cv-accent,#0ea5e9); }
.cvd-main { padding:26px 24px; background:#fff; }
.cvd-msec { margin-bottom:17px; }
.cvd-msec h2 { font-size:13.5px; color:var(--cv-heading,#0a2540); font-weight:900; display:flex; align-items:center; gap:7px; margin-bottom:10px; }
.cvd-msec h2::before { content:''; width:5px; height:17px; border-radius:3px; background:var(--cv-accent,#0ea5e9); }
.cvd-item { margin-bottom:12px; padding-inline-start:13px; border-inline-start:2px solid var(--cv-accent,#dbeafe); }
.cvd-it-h { display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
.cvd-it-t { font-size:12.5px; font-weight:900; color:var(--cv-heading,#0f172a); }
.cvd-it-o { font-size:10.5px; color:var(--cv-accent,#0284c7); font-weight:700; }
.cvd-item-sub { color:var(--cv-muted,#64748b); }
.cvd-it-d { font-size:10.5px; color:var(--cv-muted,#64748b); line-height:1.95; margin-top:3px; text-align:justify; }
.cvd-cert { font-size:11px; padding:4px 10px; border-radius:99px; background:#eff6ff; color:var(--cv-heading,#1d4ed8); border:1px solid var(--cv-accent,#cfe2ff); display:inline-block; margin:2.5px; font-weight:700; }
.cvd-cert-row { font-size:10.5px; line-height:2; }
.cvd-bio { font-size:11.5px; color:var(--cv-text,#334155); line-height:2.05; text-align:justify; }
.cv-brand-strip { grid-column:1/-1; margin-top:10px; padding:7px 15px; font-size:8.5px; color:var(--cv-muted,#94a3b8); display:flex; justify-content:space-between; align-items:center; border-top:1px dashed #e2e8f0; }
.cv-brand-strip b,.cv-brand-mark { color:var(--cv-accent,#0ea5e9); font-weight:900; }
/* قالب مینیمال */
.cvdoc.t-min { grid-template-columns: 1fr; }
.cvdoc.t-min .cvd-side { display: none; }
.cvdoc.t-min .cvd-main { padding: 30px 32px; }
.tmin-h { text-align:center; margin-bottom:20px; border-bottom:2px solid var(--cv-accent,#0ea5e9); padding-bottom:14px; }
.tmin-h h1 { font-size:24px; color:var(--cv-heading,#0f172a); }
.tmin-h .cvd-role { color:var(--cv-accent,#0284c7); font-size:12px; margin:4px 0; }
.tmin-kv { font-size:10.5px; color:var(--cv-muted,#64748b); }
.cvdoc.t-min .cvd-sec h3 { color:var(--cv-heading,#0a2540); border-color:var(--cv-accent,#cbd5e1); }
.cvdoc.t-min .cvd-cert-row { color:var(--cv-text,#1e293b); }
.cvdoc.t-min .cvd-profile-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; margin:0 0 18px; padding:12px 0; border-color:#dbe6ef; }
.cvdoc.t-min .cvd-profile-details h3 { grid-column:1/-1; color:var(--cv-heading,#0a2540); border-color:#dbe6ef; }.cvdoc.t-min .cvd-profile-row > span,.cvdoc.t-min .cvd-profile-job small { color:var(--cv-muted,#64748b); }.cvdoc.t-min .cvd-profile-row > b,.cvdoc.t-min .cvd-profile-job b { color:var(--cv-text,#1e293b); }.cvdoc.t-min .cvd-profile-divider { display:none; }
/* قالب کلاسیک دوستونه */
.cvdoc.t-cls { grid-template-columns:73% 27%; }
.cvdoc.t-cls .cvd-side { order:1; background:var(--cv-side,#0a2540); color:#fff; }
.cvdoc.t-cls .cvd-sec h3 { color:var(--cv-accent,#7dd3fc); border-color:rgba(255,255,255,.28); }
.cvdoc.t-cls .cvd-meter { background:rgba(255,255,255,.18); }
.cvdoc.t-cls .cvd-main { order:2; background:#fff; }
.cvdoc.t-cls .cvd-role { color:var(--cv-accent,#0369a1); }
.cvdoc.t-cls .cvd-kv,.cvdoc.t-cls .cvd-sname { color:#fff; }

/* --- آگهی جایگزینی --- */
.sub-card { border: 1px solid var(--border); border-radius: 18px; padding: 15px; background: var(--card); backdrop-filter: blur(14px); position: relative; overflow: hidden; transition: .2s; }
.sub-card::before { content: ''; position: absolute; top: 0; right: 0; width: 4px; height: 100%; background: linear-gradient(180deg, var(--brand), #34d399); }
.sub-card:hover { transform: translateY(-2px); border-color: rgba(34, 211, 238, .4); }
.sub-h { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.sub-h b { font-size: 13.5px; }
.sub-pill { font-size: 9.5px; font-weight: 800; padding: 3px 9px; border-radius: 99px; background: rgba(52, 211, 153, .14); color: #34d399; border: 1px solid rgba(52, 211, 153, .35); }
.sub-meta { font-size: 11px; color: var(--muted); margin-top: 5px; line-height: 2; }
.sub-tags { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 9px; }
.sub-tag { font-size: 9.5px; font-weight: 800; padding: 4px 9px; border-radius: 99px; background: rgba(34, 211, 238, .1); color: var(--brand); border: 1px solid rgba(34, 211, 238, .3); }
.sub-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 11px; }
.sub-price { font-size: 12px; font-weight: 900; color: #34d399; }

/* --- کتابخانه رسانه --- */
.mu-row { display: flex; align-items: center; gap: 10px; padding: 8px; border: 1px solid var(--border); border-radius: 13px; margin-bottom: 7px; background: var(--card-2, rgba(255, 255, 255, .4)); }
.mu-pv { width: 52px; height: 38px; border-radius: 8px; overflow: hidden; flex: 0 0 auto; background: #0c1c36; }
.mu-pv img { width: 100%; height: 100%; object-fit: cover; }
.mu-mid { flex: 1; min-width: 0; font-size: 10.5px; color: var(--muted); }
.mu-mid b { display: block; color: var(--text); font-size: 11px; }
.mu-size { font-size: 9.5px; font-weight: 800; color: #34d399; }

/* --- PDF print --- */
#cvPrint { display: none; }
@media print {
  body.cv-printing > *:not(#cvPrint) { display: none !important; }
  body.cv-printing #cvPrint { display: block !important; }
  body.cv-printing { background: #fff !important; }
  @page { size: A4; margin: 12mm; }
}


/* ============================ v13-loc-gnd: انتخاب شهر + جنسیت + صندوق پیام تمام‌صفحه ============================ */
.loc-pill { display: inline-flex; align-items: center; gap: 6px; background: rgba(34, 211, 238, .1); border: 1px solid rgba(34, 211, 238, .35); color: var(--txt2, #cfe6ff); border-radius: 14px; padding: 8px 12px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; transition: .25s; }
.loc-pill:hover { border-color: rgba(34, 211, 238, .7); box-shadow: 0 6px 18px -8px rgba(34, 211, 238, .5); transform: translateY(-1px); }
.loc-pill.on { background: linear-gradient(135deg, #0e7490, #0891b2); color: #fff; border-color: transparent; box-shadow: 0 8px 20px -8px rgba(8, 145, 178, .6); }
.loc-pill svg { flex-shrink: 0; }
.loc-pill b { font-size: 12px; max-width: 90px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 900px) { .loc-pill b { max-width: 64px; font-size: 11px; } .loc-pill { padding: 7px 10px; } }

.loc-ov { position: fixed; inset: 0; z-index: 900; display: flex; align-items: flex-start; justify-content: center; padding: max(64px, 10vh) 14px 20px; background: rgba(4, 12, 26, .72); backdrop-filter: blur(10px); animation: fadeIn .2s; }
.loc-modal { width: min(620px, 100%); max-height: min(78vh, 640px); display: flex; flex-direction: column; background: var(--surface, #0b1a30); border: 1px solid rgba(34, 211, 238, .3); border-radius: 22px; box-shadow: 0 30px 80px -20px rgba(2, 8, 20, .9); overflow: hidden; animation: upIn .28s cubic-bezier(.2, .9, .3, 1.1); }
@keyframes upIn { from { transform: translateY(26px) scale(.97); opacity: 0; } }
.locm-head { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid rgba(34, 211, 238, .16); background: linear-gradient(90deg, rgba(34, 211, 238, .08), transparent); }
.locm-head b { flex: 1; font-size: 14px; }
.locm-back, .locm-x { width: 32px; height: 32px; border-radius: 10px; border: 1px solid rgba(34, 211, 238, .3); background: rgba(34, 211, 238, .07); color: var(--txt2, #cfe6ff); font: inherit; font-size: 15px; font-weight: 900; cursor: pointer; transition: .2s; }
.locm-back:hover, .locm-x:hover { background: rgba(34, 211, 238, .18); }
.locm-now { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 16px; border-bottom: 1px dashed rgba(34, 211, 238, .2); }
.loc-now-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 999px; background: rgba(52, 211, 153, .12); border: 1px solid rgba(52, 211, 153, .45); color: #6ee7b7; font-size: 12.5px; font-weight: 900; }
.locm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; padding: 14px 16px 18px; overflow-y: auto; }
.locm-grid.cities { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.locm-cell { padding: 12px 10px; border-radius: 14px; border: 1px solid rgba(34, 211, 238, .18); background: rgba(255, 255, 255, .03); color: var(--txt2, #cfe6ff); font: inherit; font-size: 12.5px; font-weight: 800; cursor: pointer; transition: .18s; text-align: center; }
.locm-cell:hover { border-color: rgba(34, 211, 238, .65); background: rgba(34, 211, 238, .08); transform: translateY(-2px); }
.locm-cell.on { background: linear-gradient(135deg, #0e7490, #0891b2); color: #fff; border-color: transparent; }

/* انتخاب حالت نمایش جنسیتی */
.gnd-sw { display: flex; align-items: center; gap: 6px; margin: 6px 4px 12px; padding: 8px 10px; border-radius: 16px; background: rgba(255, 255, 255, .04); border: 1px solid var(--border, rgba(148, 163, 184, .18)); }
.gnd-sw .gnd-t { font-size: 10px; color: var(--muted); font-weight: 800; white-space: nowrap; }
.gnd-sw .gnd { flex: 1; padding: 7px 4px; border-radius: 10px; border: 1px solid transparent; background: transparent; color: var(--muted); font: inherit; font-size: 11.5px; font-weight: 900; cursor: pointer; transition: .2s; }
.gnd-sw .gnd:hover { background: rgba(34, 211, 238, .1); }
.gnd-sw .gnd.on { background: linear-gradient(135deg, #0e7490, #0891b2); color: #fff; box-shadow: 0 6px 14px -6px rgba(8, 145, 178, .6); }
.gnd-sw .gnd.on:nth-child(3) { background: linear-gradient(135deg, #be185d, #db2777); box-shadow: 0 6px 14px -6px rgba(219, 39, 119, .6); }
.gnd-sw.tight { margin: 10px 0 14px; }
.gnd-sw.tight .gnd-t { font-size: 11px; }
.gnd-note { margin: 6px 4px 12px; padding: 9px 12px; border-radius: 14px; font-size: 10.5px; font-weight: 800; color: #6ee7b7; background: rgba(52, 211, 153, .09); border: 1px dashed rgba(52, 211, 153, .35); }
.gnd-note.tight { margin: 10px 0 14px; }
.sub-tag.gnd { border-color: rgba(219, 39, 119, .5); color: #f9a8d4; }

/* صندوق پیام تمام‌صفحه */
body.tgp-mode { overflow: hidden; }
body.tgp-mode header.nav { display: none; }
body.tgp-mode .orb, body.tgp-mode .cursor-glow { display: none; }
.tgp { height: 100dvh; display: flex; flex-direction: column; background: var(--bg, #06101f); }
.tgp-head { display: flex; align-items: center; gap: 12px; padding: 10px clamp(12px, 3vw, 28px); border-bottom: 1px solid rgba(34, 211, 238, .2); background: linear-gradient(180deg, rgba(9, 21, 41, .95), rgba(9, 21, 41, .78)); backdrop-filter: blur(16px); flex-shrink: 0; min-height: 62px; }
.tgp-back { display: inline-flex; align-items: center; gap: 7px; padding: 9px 16px; border-radius: 14px; border: 1px solid rgba(34, 211, 238, .3); background: rgba(34, 211, 238, .07); color: var(--txt2, #cfe6ff); font: inherit; font-size: 12.5px; font-weight: 900; cursor: pointer; transition: .2s; }
.tgp-back:hover { background: rgba(34, 211, 238, .16); transform: translateY(-1px); }
.tgp-back .tb-ar { font-size: 15px; }
.tgp-brand { display: flex; align-items: center; gap: 11px; }
.tgp-icw { position: relative; width: 44px; height: 44px; border-radius: 16px; display: grid; place-items: center; background: linear-gradient(135deg, #0e7490, #0891b2); box-shadow: 0 8px 22px -8px rgba(8, 145, 178, .7); }
.tgp-ic { font-size: 22px; }
.tgp-badge { position: absolute; top: -6px; left: -6px; min-width: 19px; height: 19px; padding: 0 4px; border-radius: 10px; background: #f43f5e; color: #fff; font-size: 10.5px; font-weight: 900; display: grid; place-items: center; border: 2px solid #0b1a30; }
.tgp-tt b { display: block; font-size: 14.5px; }
.tgp-tt small { color: var(--muted); font-size: 10.5px; font-weight: 700; }
.tgp-hint { font-size: 10.5px; color: var(--muted); font-weight: 700; white-space: nowrap; }
.tgp-body { flex: 1; min-height: 0; display: flex; overflow: hidden; }
.tgp-body .tg-shell { flex: 1; min-height: 0; margin: 0; border-radius: 0; border: none; }
.tgp-body .tg-cols { min-height: 0; flex: 1; }
.tgp-body .tg-list, .tgp-body .tg-room { min-height: 0; }
@media (max-width: 700px) { .tgp-hint, .tgp-tt small { display: none; } .tgp-back .tb-t { display: none; } .tgp-back { padding: 9px 12px; } }

/* هیرو: زیرعنوان بدون اسکرول */
.hero-sub-inline { margin: 22px auto 0; max-width: 700px; text-align: center; font-size: clamp(12.5px, 2.4vw, 16px); font-weight: 600; line-height: 1.9; color: #d7eafd; text-shadow: 0 2px 14px rgba(2, 10, 24, .85); }
.hero-wrap { padding-bottom: 64px !important; }
@media (max-width: 900px) { .hero-wrap { padding-bottom: 40px !important; } .hero-sub-inline { margin-top: 16px; } }
/* ============================ v13b: اصلاحات بصری هیرو و اینباکس ============================ */
/* هیرو همیشه تیره — تا متن و فرم جستجو در هر دو تم خوانا باشد */
[data-theme="light"] .hero { background: #05101f; }
[data-theme="light"] .hero-bg::after { background: linear-gradient(180deg, rgba(5, 13, 26, .5) 0%, rgba(5, 13, 26, .75) 60%, rgba(5, 13, 26, .92) 100%); }
.hero .glass-widget { background: rgba(9, 22, 44, .58) !important; border: 1px solid rgba(34, 211, 238, .3) !important; backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); color: #eaf6ff; }
.hero .glass-widget input, .hero .glass-widget select { background: rgba(255, 255, 255, .09); color: #fff; border: 1px solid rgba(34, 211, 238, .28); }
.hero .glass-widget input::placeholder { color: #9fc4e8; }
.hero .glass-widget select option { color: #0f172a; }

/* اینباکس تمام‌صفحه: قاب‌بندی تمیز دسکتاپ */
body.tgp-mode .bottom-nav, body.tgp-mode .m-fab, body.tgp-mode .scroll-progress { display: none !important; }
.tgp-body { padding: 14px clamp(10px, 2.4vw, 28px); }
.tgp-body .tg-shell { height: 100%; width: 100%; max-width: 1240px; margin: 0 auto; display: flex; flex-direction: column; border-radius: 20px; border: 1px solid rgba(34, 211, 238, .22); overflow: hidden; background: var(--card, rgba(9, 20, 38, .75)); }
.tgp-body .tg-cols { flex: 1; min-height: 0; grid-template-columns: minmax(300px, 350px) 1fr; }
.tgp-body .tg-list { height: 100%; overflow-y: auto; overflow-x: hidden; }
.tgp-body .tg-room { height: 100%; min-width: 0; overflow: hidden; display: flex; flex-direction: column; }
.tgp-body .tg-room .tg-body { flex: 1; overflow-y: auto; }
@media (max-width: 700px) {
  .tgp-body { padding: 0; }
  .tgp-body .tg-shell { border: none; border-radius: 0; }
}

/* ============================ v14 — پیام‌رسان واقعی‌تر، PDF مستقیم و فیلتر B2B ============================ */
/* برند رزومه: مهر کوچک و حرفه‌ای در اندازه‌ای نزدیک به نمونه‌ی رزومه‌های شرکتی؛ نه تبلیغ بزرگ */
.cv-brand-strip { min-height: 18px; margin-top: 4px; padding: 4px 10px; border-top: 1px solid #edf2f7; color: #a1afbf; font-size: 6.4px; line-height: 1; justify-content: flex-end; gap: 6px; }
.cv-brand-mark { display: inline-flex; align-items: center; gap: 3px; color: #64748b; font-weight: 700; letter-spacing: .05px; }
.cv-brand-mark img { display:block; width: 18px; height: 18px; object-fit:cover; border-radius:5px; }
.cv-brand-strip b { color: #0284c7; font-weight: 900; font-size: 7.3px; }
.cv-brand-strip small { font-size: 6.2px; color: #94a3b8; }
.cvdoc.t-cls[dir="rtl"] .cvd-side { order: 1; }
.cvdoc.t-cls[dir="rtl"] .cvd-main { order: 2; }
.cvdoc.t-cls[dir="ltr"] .cvd-side { order: 1; }
.cvdoc.t-cls[dir="ltr"] .cvd-main { order: 2; }

/* پنجره انتخاب مالک استخر برای رزومه */
.cvsend-ov { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 18px; background: rgba(3, 10, 24, .72); backdrop-filter: blur(9px); animation: fadeIn .18s ease; }
.cvsend-modal { width: min(610px, 100%); max-height: min(78dvh, 680px); display: flex; flex-direction: column; overflow: hidden; border-radius: 22px; background: var(--surface, #0b1a30); border: 1px solid rgba(34,211,238,.34); box-shadow: 0 30px 80px rgba(0,0,0,.42); }
.cvsend-head { display: flex; align-items: center; gap: 12px; padding: 16px 18px; background: linear-gradient(110deg,rgba(34,211,238,.12),transparent); border-bottom: 1px solid var(--border); }
.cvsend-head > div { flex: 1; min-width: 0; }
.cvsend-head b { display: block; font-size: 15px; }
.cvsend-head small { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.cvsend-x { width: 34px; height: 34px; border-radius: 11px; border: 1px solid rgba(34,211,238,.35); background: rgba(34,211,238,.08); color: var(--text); font-size: 22px; line-height: 1; cursor: pointer; }
.cvsend-note { margin: 13px 16px 8px; padding: 9px 11px; border-radius: 12px; color: #8adff0; background: rgba(14,165,233,.09); border: 1px dashed rgba(34,211,238,.3); font-size: 11px; line-height: 1.8; }
.cvsend-list { flex: 1; overflow-y: auto; padding: 8px 16px 16px; display: grid; gap: 8px; }
.cvsend-row { display: flex; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--border); border-radius: 15px; cursor: pointer; transition: .18s; background: rgba(255,255,255,.025); }
.cvsend-row:hover { border-color: rgba(34,211,238,.52); background: rgba(34,211,238,.07); }
.cvsend-row input { position: absolute; opacity: 0; pointer-events: none; }
.cvsend-row input:checked ~ .cvsend-check { background: #059669; border-color: #34d399; color: #fff; }
.cvsend-row input:checked + .cvsend-pool-ic { border-color: #34d399; box-shadow: 0 0 0 3px rgba(52,211,153,.12); }
.cvsend-pool-ic { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; flex: 0 0 auto; font-size: 20px; background: rgba(34,211,238,.1); border: 1px solid rgba(34,211,238,.25); }
.cvsend-row > span:nth-child(3) { flex: 1; min-width: 0; }
.cvsend-row b { display: block; font-size: 12.5px; }
.cvsend-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cvsend-check { width: 21px; height: 21px; display: grid; place-items: center; border-radius: 8px; flex: 0 0 auto; border: 1px solid var(--border); color: transparent; background: var(--card-2); font-size: 12px; font-weight: 900; }
.cvsend-actions { display: flex; justify-content: flex-end; gap: 8px; padding: 13px 16px; border-top: 1px solid var(--border); }

/* پیام‌رسان: یک کادر تمام‌قد با جست‌وجو + انتخاب وضعیت */
.tgp-homebrand { display: inline-flex; align-items: center; gap: 8px; color: var(--txt2, #dff5ff); text-decoration: none; font-size: 15px; font-weight: 900; letter-spacing: -.2px; padding-left: 4px; }
.tgp-homebrand .nav-logo-w { width: 34px; height: 34px; border-radius: 12px; }
.tgp-homebrand .nav-logo { font-size: 18px; }
.tgp-head { gap: 14px; box-shadow: 0 6px 24px rgba(1,8,22,.16); }
.tgp-back { order: -1; }
.tg-tools { display: flex; align-items: stretch; gap: 10px; flex: 0 0 auto; }
.tgp-body .tg-search { flex: 1; min-width: 0; border-radius: 14px; min-height: 48px; }
.tg-presence { display: inline-flex; align-items: center; gap: 6px; padding: 6px 8px; flex: 0 0 auto; background: var(--card); border: 1px solid var(--border); border-radius: 14px; }
.tg-presence-title { color: var(--muted); font-size: 10px; font-weight: 800; white-space: nowrap; padding: 0 3px; }
.tg-presence-title b { color: var(--text); }
.tg-presence-btn { display: inline-flex; align-items: center; gap: 4px; min-height: 32px; border-radius: 9px; border: 1px solid transparent; padding: 4px 8px; background: transparent; color: var(--muted); font: inherit; font-size: 10.5px; font-weight: 800; cursor: pointer; transition: .18s; }
.tg-presence-btn i { width: 7px; height: 7px; border-radius: 50%; background: #94a3b8; display: inline-block; }
.tg-presence-btn.online i { background: #34d399; }.tg-presence-btn.offline i { background: #94a3b8; }
.tg-presence-btn.on { color: #fff; background: rgba(14,165,233,.18); border-color: rgba(34,211,238,.37); }
.tg-presence-btn.on.offline { background: rgba(100,116,139,.25); border-color: rgba(148,163,184,.38); }
.tgp-body .tg-cols { gap: 0; border-top: 1px solid var(--border); }
.tgp-body .tg-list { display: block; padding: 7px; border: 0; border-radius: 0; border-left: 1px solid var(--border); background: color-mix(in srgb, var(--card) 88%, transparent); }
.tgp-body .tg-item { min-height: 70px; margin-bottom: 3px; padding: 10px 10px; }
.tg-item.unread .tg-name { color: var(--brand, #22d3ee); }.tg-item.unread .tg-last { color: var(--text); font-weight: 700; }
.tg-off { position:absolute; bottom:2px; left:2px; width:10px; height:10px; border:2px solid var(--card-solid,#0c1c36); border-radius:50%; background:#94a3b8; }
.tg-room-sub.off { color: #94a3b8; }
.tgp-body .tg-room { border: 0; border-radius: 0; min-height: 0; }
.tgp-body .tg-room-head { min-height: 64px; padding: 10px 18px; background: rgba(34,211,238,.045); }
.tgp-body .tg-body { max-height: none; padding: 18px clamp(14px,2vw,26px); }
.tg-input-bar { position: relative; min-height: 64px; padding: 10px 13px; background: color-mix(in srgb, var(--card) 96%, transparent); }
.tg-composer-field { position: relative; display: flex; flex: 1; min-width: 0; }
.tg-composer-field input { min-height: 42px; }
.tg-composer-btn { border: 0; background: transparent; color: var(--muted); font: inherit; }
.tg-composer-btn:hover { color: var(--brand); }
.tg-emoji-pop, .tg-attach-pop { position: absolute; bottom: calc(100% + 8px); z-index: 30; box-shadow: 0 18px 42px rgba(0,0,0,.3); }
.tg-emoji-pop { right: 0; width: min(370px, calc(100vw - 38px)); padding: 9px; border: 1px solid rgba(34,211,238,.32); border-radius: 17px; background: var(--surface,#0b1a30); }
.tg-emoji-pop[hidden], .tg-attach-pop[hidden] { display: none; }
.tg-emoji-tabs { display: flex; justify-content: space-around; gap: 3px; padding-bottom: 7px; border-bottom: 1px solid var(--border); }
.tg-emoji-tabs button { border: 0; padding: 5px 8px; border-radius: 8px; background: transparent; cursor: pointer; font-size: 16px; opacity: .62; }.tg-emoji-tabs button.on { opacity: 1; background: rgba(34,211,238,.12); }
.tg-emoji-grid { display: grid; grid-template-columns: repeat(8,1fr); gap: 3px; max-height: 214px; overflow-y: auto; padding-top: 8px; }
.tg-emoji-grid button { height: 31px; border: 0; border-radius: 8px; background: transparent; cursor: pointer; font-size: 19px; line-height: 1; transition: .14s; }.tg-emoji-grid button:hover { background: rgba(34,211,238,.13); transform: scale(1.15); }
.tg-attach-pop { left: 62px; width: 245px; padding: 10px; border: 1px solid rgba(34,211,238,.32); border-radius: 16px; background: var(--surface,#0b1a30); }
.tg-attach-pop > b { display:block; margin:2px 4px 7px; font-size:11px; color:var(--muted); }
.tg-attach-pop button { width:100%; display:flex; align-items:center; gap:9px; padding:9px; border:0; border-radius:11px; background:transparent; color:var(--text); text-align:right; cursor:pointer; font:inherit; }.tg-attach-pop button:hover { background:rgba(34,211,238,.1); }
.tg-attach-pop button > span:first-child { font-size:21px; }.tg-attach-pop strong,.tg-attach-pop small { display:block; }.tg-attach-pop strong { font-size:12px; }.tg-attach-pop small { margin-top:2px; color:var(--muted); font-size:9.5px; }.tg-att-safe { display:block; padding:7px 4px 1px; color:#8adff0 !important; line-height:1.65; }.tg-att-empty { padding:8px; font-size:11px; color:var(--muted); }
.msg-attachment { min-width: 180px; }.msg-att-note { display:block; padding:5px 7px; margin-top:6px; border-radius:7px; color:#9fd9ff; background:rgba(34,211,238,.08); font-size:9.5px; }.msg-out .msg-att-note { color:#ecfeff; background:rgba(255,255,255,.13); }
.p-inbox-fixed { margin-top: 6px; background: rgba(34,211,238,.07) !important; border: 1px solid rgba(34,211,238,.2) !important; }
.p-inbox-fixed .pi-badge { margin-right: auto; }

/* فروشگاه تأمین‌کنندگان: یک خط افقی و زیر‌فیلتر بازشونده بین/کنار دو گروه اصلی */
.shop-filter-line { display: flex; align-items: center; gap: 7px; margin-top: 18px; padding: 5px 2px 11px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; white-space: nowrap; }
.shop-filter-main, .shop-filter-sub { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; min-height: 47px; border-radius: 14px; font: inherit; cursor: pointer; transition: .18s; }
.shop-filter-main { padding: 7px 12px; border: 1px solid rgba(34,211,238,.25); background: var(--card); color: var(--text); }.shop-filter-main span { font-size:20px; }.shop-filter-main small { font-size:11px; font-weight:900; }.shop-filter-main:hover,.shop-filter-main.on { background:linear-gradient(135deg,rgba(14,165,233,.25),rgba(34,211,238,.12)); border-color:var(--brand); color:#fff; box-shadow:0 7px 17px rgba(8,145,178,.16); }
.shop-sub-group { display: inline-flex; align-items: center; gap: 6px; padding: 0 2px; animation: shopExpand .22s ease both; }.shop-sub-group::before { content:''; width:1px; height:30px; background:rgba(34,211,238,.35); margin:0 1px; }
.shop-filter-sub { padding:6px 9px; min-height:40px; border:1px solid var(--border); background:rgba(255,255,255,.035); color:var(--muted); }.shop-filter-sub span { font-size:16px; }.shop-filter-sub small { font-size:10px; font-weight:800; }.shop-filter-sub:hover,.shop-filter-sub.on { color:#fff; border-color:rgba(34,211,238,.55); background:rgba(34,211,238,.12); }
.shop-filter-state { margin: -2px 0 8px; color:var(--muted); font-size:11.5px; }.shop-filter-state b { color:var(--brand); }.shop-filter-state button { border:0; background:transparent; color:#fda4af; cursor:pointer; font:inherit; font-size:10.5px; margin-right:6px; }
@keyframes shopExpand { from { opacity:0; transform:translateX(10px); } to { opacity:1; transform:none; } }

@media (max-width: 760px) {
  .tgp-homebrand > span:last-child { display:none; }.tgp-homebrand { padding:0; }.tgp-head { gap:9px; }.tgp-head .tgp-brand { gap:7px; }.tgp-hint { display:none; }
  .tg-tools { flex-wrap:wrap; gap:7px; }.tgp-body .tg-search { flex-basis:100%; }.tg-presence { width:100%; justify-content:space-between; }.tg-presence-title { margin-left:auto; }
  .tgp-body .tg-list { border-left:0; }.tg-emoji-grid { grid-template-columns:repeat(7,1fr); }.tg-attach-pop { left:11px; width:min(245px,calc(100vw - 46px)); }
  .cvsend-ov { padding:10px; }.cvsend-modal { max-height:88dvh; }.cvsend-head { padding:14px; }.cvsend-actions { padding:11px 14px; }
  .shop-filter-line { margin-inline: -2px; }.shop-filter-main { min-height:44px; padding:6px 10px; }.shop-filter-sub { min-height:38px; padding:5px 8px; }
}
@media (min-width: 901px) {
  /* میانبر صندوق پیام زیر خروج از حساب در منوی راست، حتی با اسکرول منو در دسترس می‌ماند */
  .p-side-foot { position: sticky; bottom: 0; z-index: 7; background: var(--card); box-shadow: 0 -10px 20px rgba(2, 12, 28, .16); }
}
@media (max-width: 900px) {
  /* در موبایل ابتدا فقط فهرست گفتگوها دیده می‌شود؛ اتاق گفتگو پس از لمس مخاطب تمام‌صفحه باز می‌شود. */
  .tgp-body .tg-cols { display: grid; grid-template-columns: 1fr; }
  .tgp-body .tg-room { display: none !important; position: fixed; inset: 0; z-index: 1000; height: 100dvh; min-height: 0; background: var(--bg,#06101f); }
  .tgp-body .tg-shell.in-room .tg-room, #tgRoom.in-room { display: flex !important; }
}

/* ============================ v15 — شهر یکپارچه، پنل منظم و هیروی متمرکز ============================ */
/* آیکن‌های میانبر بزرگ صفحه اصلی فعلاً پنهان‌اند؛ لینک‌ها و قابلیت‌ها حفظ شده‌اند. */
.home-quick, .container:has(.home-quick) { display: none !important; }

/* تیتر، متن روان و جستجو در مرکز نمای اول قرار می‌گیرند. */
.hero { min-height: calc(100svh - 68px); padding: 74px 0 38px; }
.hero-wrap { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 22px 0 54px !important; }
.hero h1 { margin: 0 auto 10px; text-align: center; }
.hero-sub-inline { order: 1; max-width: 720px; margin: 10px auto 16px !important; text-align: center; font-size: clamp(13px, 2vw, 16px); line-height: 1.9; }
.hero-wrap .anim-up-4 { order: 2; width: min(960px, 100%); }
.hero-search-tags { justify-content: center; margin-top: 12px; }
.hero-foot { bottom: 9px; }
@media (max-width: 900px) {
  .hero { min-height: calc(100svh - 62px); padding: 64px 0 26px; }
  .hero-wrap { padding: 10px 0 36px !important; }
  .hero h1 { font-size: clamp(25px, 7.8vw, 38px) !important; line-height: 1.38 !important; }
  .hero-sub-inline { margin: 8px auto 12px !important; font-size: 12.5px; line-height: 1.8; }
  .hero-search-tags { display: none; }
  .hero-foot { display: none; }
}

/* نوار انتخاب شهر در فهرست‌های مکان‌محور */
.city-scope-bar, .city-scope-note { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 16px; padding:10px 13px; border:1px solid rgba(34,211,238,.22); border-radius:13px; color:var(--muted); background:rgba(34,211,238,.055); font-size:11.5px; font-weight:700; }
.city-scope-bar select { min-width:130px; padding:7px 9px; border:1px solid var(--border); border-radius:9px; background:var(--card); color:var(--text); font:inherit; font-size:11px; }
.city-scope-note { justify-content:flex-start; }

/* منوی پنل: ابتدا داشبورد و صندوق پیام؛ هویت و وضعیت به پایین منتقل شد. */
@media (min-width: 901px) {
  .p-side { padding: 14px 12px 12px; gap: 2px; }
  .p-nav-top { padding-top: 4px; }
  .p-item { min-height: 42px; gap: 10px; padding: 7px 10px; border-radius: 12px; font-size: 12.5px; }
  .p-item .pi-ic { width: 27px; height: 27px; display:grid; place-items:center; flex:0 0 auto; border-radius:9px; font-size:15px; font-family: ui-rounded, "Vazirmatn", sans-serif; color:#bcefff; background:linear-gradient(145deg,rgba(34,211,238,.18),rgba(14,165,233,.06)); border:1px solid rgba(34,211,238,.24); box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 4px 10px rgba(2,12,30,.12); }
  .p-item:hover .pi-ic { border-color:rgba(34,211,238,.62); color:#fff; transform:translateY(-1px); }
  .p-item.on { color:#dfffff; background:linear-gradient(100deg,rgba(14,165,233,.24),rgba(34,211,238,.08)); box-shadow:inset 3px 0 0 var(--brand),0 8px 18px rgba(4,75,115,.12); }
  .p-item.on .pi-ic { color:#041927; background:linear-gradient(145deg,#35e5f3,#1599dc); border-color:transparent; box-shadow:0 6px 14px rgba(34,211,238,.33); }
  .p-nav-lbl { padding: 11px 10px 4px; font-size: 9px; }
  .p-side-profile { margin-top:auto; position:sticky; bottom:0; z-index:9; padding:10px 3px 0; border-top:1px solid rgba(148,163,184,.15); background:linear-gradient(180deg,rgba(7,19,39,.78),var(--card) 18%); box-shadow:0 -10px 18px rgba(2,12,28,.13); }
  .p-bottom-person { display:flex; align-items:center; gap:8px; padding:7px 8px; border-radius:13px; background:rgba(255,255,255,.035); border:1px solid var(--border); }
  .p-bottom-person .pb-avatar { width:31px; height:31px; display:grid; place-items:center; flex:0 0 auto; border-radius:10px; background:linear-gradient(145deg,#1ccbe8,#177bc7); font-size:16px; box-shadow:0 4px 10px rgba(34,211,238,.2); }
  .p-bottom-person > div { flex:1; min-width:0; }.p-bottom-person b,.p-bottom-person small { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }.p-bottom-person b { font-size:11.5px; }.p-bottom-person small { margin-top:2px; color:var(--gold); font-size:9px; }
  .p-verify { width:20px; height:20px; display:grid; place-items:center; border-radius:50%; font-size:11px; font-weight:900; }.p-verify.verified { background:#34d399; color:#053e32; }.p-verify.pending { background:var(--gold); color:#3d2b05; }
  .p-bottom-meta { display:grid; grid-template-columns:1fr 1fr 1fr; gap:3px; margin-top:6px; }.p-bottom-meta span { min-width:0; padding:5px 3px; border-radius:7px; text-align:center; color:var(--muted); background:rgba(255,255,255,.035); font-size:8.5px; font-weight:700; white-space:nowrap; overflow:hidden; }.p-bottom-meta .p-system { color:#70efbe; }.p-system i { display:inline-block; width:5px; height:5px; margin-left:4px; border-radius:50%; background:#34d399; box-shadow:0 0 8px #34d399; }
  .p-bottom-status { display:flex; align-items:center; justify-content:space-between; gap:5px; padding:6px 4px 2px; font-size:9.5px; color:#7ee6bb; }.p-bottom-status small { color:var(--muted); font-size:9px; }
  .p-bottom-actions { display:flex; gap:5px; padding-top:5px; }.p-bottom-actions button { flex:1; min-height:27px; padding:4px 6px; border:1px solid var(--border); border-radius:8px; background:transparent; color:var(--muted); font:inherit; font-size:9px; font-weight:800; cursor:pointer; }.p-bottom-actions button:hover { color:var(--text); border-color:rgba(34,211,238,.45); }.p-bottom-actions .exit { color:#fda4af; }
}

/* صندوق پیام، یک تب از همان پوسته پنل است — منوی راست همیشه دیده می‌شود. */
@media (min-width: 901px) {
  .p-main .tg-shell { min-height:calc(100vh - 152px); height:calc(100vh - 152px); grid-template-rows:auto 1fr; gap:10px; }
  .p-main .tg-cols { min-height:0; height:100%; grid-template-columns:310px minmax(0,1fr); align-items:stretch; }
  .p-main .tg-list { max-height:none; height:100%; }
  .p-main .tg-room { min-height:0; height:100%; }
  .p-main .tg-body { max-height:none; }
  .p-main .tg-tools { margin-bottom:0; }
}
@media (max-width: 900px) { .city-scope-bar { flex-wrap:wrap; }.city-scope-bar select { flex:1; }.pms-mc { margin-bottom:10px; } }

/* نسخه موبایل همان منطق سایدبار را حفظ می‌کند: منو جلو، هویت و وضعیت فشرده در انتها. */
@media (max-width: 900px) {
  .p-msheet { padding-bottom: 18px; }
  .pms-grid .pms-item > span { width:27px; height:27px; display:grid; place-items:center; border-radius:9px; background:linear-gradient(145deg,rgba(34,211,238,.16),rgba(14,165,233,.05)); border:1px solid rgba(34,211,238,.18); box-shadow:inset 0 1px rgba(255,255,255,.08); font-size:14px; }
  .pms-grid .pms-item.on > span { background:linear-gradient(145deg,#35e5f3,#168fd5); border-color:transparent; box-shadow:0 4px 12px rgba(34,211,238,.25); }
  .pms-mobile-foot { margin-top:15px; padding:11px; border:1px solid var(--border); border-radius:16px; background:linear-gradient(145deg,rgba(34,211,238,.09),rgba(255,255,255,.025)); }
  .pms-mobile-person { display:flex; align-items:center; gap:8px; }.pms-mobile-person .pmt-av { width:34px; height:34px; font-size:17px; }.pms-mobile-person > div { flex:1; min-width:0; }.pms-mobile-person b,.pms-mobile-person small { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }.pms-mobile-person b { font-size:12px; }.pms-mobile-person small { margin-top:2px; color:#79e7c0; font-size:9.5px; font-weight:700; }
  .pms-v { width:20px; height:20px; display:grid; place-items:center; border-radius:50%; font-size:10px; font-weight:900; }.pms-v.verified { background:#34d399; color:#063f33; }.pms-v.pending { background:var(--gold); color:#3d2b05; }
  .pms-mobile-meta { display:grid; grid-template-columns:1.3fr .75fr 1.15fr 1.1fr; gap:4px; margin-top:9px; }.pms-mobile-meta span { padding:5px 3px; min-width:0; overflow:hidden; white-space:nowrap; text-align:center; border-radius:7px; background:rgba(255,255,255,.05); color:var(--muted); font-size:8.5px; font-weight:700; }.pms-mobile-meta i { width:5px; height:5px; display:inline-block; margin-left:3px; border-radius:50%; background:#34d399; box-shadow:0 0 7px #34d399; }
  .pms-mobile-actions { display:flex; gap:6px; margin-top:8px; }.pms-mobile-actions button { flex:1; min-height:28px; border:1px solid var(--border); border-radius:8px; background:transparent; color:var(--muted); font:inherit; font-size:9px; font-weight:800; }.pms-mobile-actions .danger { color:#fda4af; }
}
@media (min-width: 901px) {
  .p-bottom-meta { grid-template-columns: minmax(0,1.65fr) minmax(0,1fr); }
  .p-bottom-meta .p-date-time { letter-spacing:-.15px; }
  .p-bottom-meta .p-system.offline { color:#fbbf24; }.p-system.offline i { background:#fbbf24; box-shadow:0 0 8px #fbbf24; }
}
@media (max-width:900px) { .pms-mobile-meta .offline { color:#fbbf24; }.pms-mobile-meta .offline i { background:#fbbf24; box-shadow:0 0 7px #fbbf24; } }

/* ============================ v16 — رزومه حرفه‌ای و پنل یکپارچه ============================ */
/* وزیرمتن به‌صورت محلی بسته‌بندی شده تا وب، پیش‌نمایش و PDF یک تایپوگرافی پایدار داشته باشند. */
@font-face { font-family:'Vazirmatn'; src:url('../assets/fonts/Vazirmatn-400.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:block; }
@font-face { font-family:'Vazirmatn'; src:url('../assets/fonts/Vazirmatn-600.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:block; }
@font-face { font-family:'Vazirmatn'; src:url('../assets/fonts/Vazirmatn-700.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:block; }
@font-face { font-family:'Noto Sans Arabic'; src:url('../assets/fonts/NotoSansArabic-400.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:block; }
@font-face { font-family:'Noto Sans Arabic'; src:url('../assets/fonts/NotoSansArabic-600.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:block; }
@font-face { font-family:'Noto Sans Arabic'; src:url('../assets/fonts/NotoSansArabic-700.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:block; }
@font-face { font-family:'Noto Naskh Arabic'; src:url('../assets/fonts/NotoNaskhArabic-400.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:block; }
@font-face { font-family:'Noto Naskh Arabic'; src:url('../assets/fonts/NotoNaskhArabic-600.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:block; }
@font-face { font-family:'Noto Naskh Arabic'; src:url('../assets/fonts/NotoNaskhArabic-700.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:block; }
@font-face { font-family:'Inter'; src:url('../assets/fonts/Inter-400.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:block; }
@font-face { font-family:'Inter'; src:url('../assets/fonts/Inter-600.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:block; }
@font-face { font-family:'Inter'; src:url('../assets/fonts/Inter-700.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:block; }
@font-face { font-family:'DM Sans'; src:url('../assets/fonts/DMSans-400.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:block; }
@font-face { font-family:'DM Sans'; src:url('../assets/fonts/DMSans-600.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:block; }
@font-face { font-family:'DM Sans'; src:url('../assets/fonts/DMSans-700.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:block; }
@font-face { font-family:'Playfair Display'; src:url('../assets/fonts/PlayfairDisplay-600.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:block; }
@font-face { font-family:'Playfair Display'; src:url('../assets/fonts/PlayfairDisplay-600.ttf') format('truetype'); font-weight:600; font-style:normal; font-display:block; }
@font-face { font-family:'Playfair Display'; src:url('../assets/fonts/PlayfairDisplay-700.ttf') format('truetype'); font-weight:700; font-style:normal; font-display:block; }
.cvdoc, #cvPdfRender, .cv-paper { font-synthesis:none; }

/* زیرنویس هیرو مستقل از ارتفاع و عرض نمایشگر همیشه خوانا و در نمای اول است. */
.hero-wrap > .hero-sub-inline { display:block !important; visibility:visible !important; opacity:1 !important; width:min(92vw,720px); min-height:1em; }
@media (max-width:680px) { .hero-wrap > .hero-sub-inline { width:min(92vw,480px); font-size:clamp(12px,3.45vw,14px) !important; line-height:1.78 !important; } }
@media (max-height:680px) and (min-width:681px) { .hero { min-height:calc(100svh - 54px); padding:60px 0 20px; }.hero-wrap { padding-bottom:26px !important; }.hero-search-tags { display:none; } }

/* هدر داخلی صندوق پیام؛ گفتگو همچنان در پوسته پنل باقی می‌ماند. */
@media (min-width:901px) { .p-main .panel-hero + .tg-shell { min-height:480px; height:calc(100vh - 334px); } }

/* پروفایل یکپارچه عضو */
.profile-shell { display:grid; grid-template-columns:280px minmax(0,1fr); gap:16px; align-items:start; }
.profile-card { padding:18px; border:1px solid var(--border); border-radius:18px; background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018)); box-shadow:var(--sh); }
.profile-identity { display:flex; flex-direction:column; align-items:center; text-align:center; position:sticky; top:14px; }.profile-identity h3 { margin:12px 0 5px; font-size:17px; }.profile-identity p { margin:0 0 13px; color:var(--muted); font-size:11px; }
.profile-avatar { width:112px; height:112px; display:grid; place-items:center; overflow:hidden; border-radius:32px; background:linear-gradient(145deg,#2dd4e7,#136cb7); border:3px solid rgba(255,255,255,.16); box-shadow:0 14px 32px rgba(34,211,238,.27); color:#fff; font-size:50px; }.profile-avatar img { width:100%; height:100%; object-fit:cover; }
.profile-photo-btn { position:relative; overflow:hidden; }.profile-photo-btn input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.profile-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:15px; }.profile-card-head h3 { margin:0 0 4px; font-size:15px; }.profile-card-head p { margin:0; color:var(--muted); font-size:11px; line-height:1.7; }.profile-card-head > span { display:grid; place-items:center; width:32px; height:32px; border-radius:10px; color:var(--brand); background:rgba(34,211,238,.1); }
.profile-form { grid-template-columns:repeat(2,minmax(0,1fr)); }.profile-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }.profile-gallery-item { position:relative; aspect-ratio:1.25; border-radius:12px; overflow:hidden; border:1px solid var(--border); }.profile-gallery-item img { width:100%; height:100%; object-fit:cover; }.profile-gallery-item button { position:absolute; top:5px; left:5px; width:23px; height:23px; border:0; border-radius:50%; background:rgba(30,41,59,.78); color:#fff; cursor:pointer; }.profile-gallery-empty { grid-column:1/-1; min-height:90px; display:grid; place-items:center; border:1px dashed var(--border); border-radius:12px; color:var(--muted); font-size:11px; }
@media(max-width:900px) { .profile-shell{grid-template-columns:1fr}.profile-identity{position:static;flex-direction:row;text-align:right;gap:13px}.profile-identity h3{margin:0 0 3px}.profile-identity p{margin:0}.profile-identity .profile-photo-btn{margin-right:auto}.profile-avatar{width:61px;height:61px;border-radius:19px;font-size:29px}.profile-form{grid-template-columns:1fr}.profile-gallery{grid-template-columns:repeat(2,1fr)} }

/* فیلتر ساختاری رزومه برای تصمیم سریع کارفرما */
.resume-filter-panel { margin:0 0 15px; padding:14px; border:1px solid rgba(34,211,238,.24); border-radius:16px; background:linear-gradient(125deg,rgba(34,211,238,.1),rgba(15,23,42,.08)); }.resume-filter-title { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:11px; }.resume-filter-title span{font-size:13px;font-weight:900;color:var(--text)}.resume-filter-title small{color:var(--muted);font-size:10px}.resume-filter-grid { display:grid; grid-template-columns:1.45fr repeat(3,minmax(105px,1fr)) auto; gap:8px; }.resume-filter-grid input,.resume-filter-grid select { width:100%; min-width:0; min-height:39px; padding:8px 10px; border:1px solid var(--border); border-radius:10px; background:var(--card); color:var(--text); font:inherit; font-size:11px; }.resume-filter-grid .btn { min-height:39px; white-space:nowrap; }
@media(max-width:900px){.resume-filter-grid{grid-template-columns:1fr 1fr}.resume-filter-grid input,.resume-filter-grid .btn{grid-column:1/-1}.resume-filter-title{align-items:flex-start;flex-direction:column;gap:3px}}

/* پاپ‌آپ‌های جزئیات داخلی — بدون خروج از پوسته پنل */
.sh-detail-ov { position:fixed; inset:0; z-index:1200; display:grid; place-items:center; padding:18px; background:rgba(2,10,24,.72); backdrop-filter:blur(9px); animation:detailIn .18s ease; }.sh-detail { width:min(720px,100%); max-height:min(780px,calc(100dvh - 36px)); display:flex; flex-direction:column; overflow:hidden; border:1px solid rgba(34,211,238,.34); border-radius:22px; background:var(--card-solid); box-shadow:0 28px 80px rgba(0,0,0,.47); }.sh-detail-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid var(--border);font-size:15px}.sh-detail-head button{width:29px;height:29px;border:1px solid var(--border);border-radius:9px;background:transparent;color:var(--muted);font-size:21px;line-height:1;cursor:pointer}.sh-detail-body{padding:19px;overflow-y:auto}.sh-detail-foot{display:flex;justify-content:flex-end;padding:11px 18px;border-top:1px solid var(--border)}@keyframes detailIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
.resume-view-top,.supplier-view-top{display:flex;align-items:center;gap:13px;padding-bottom:15px;border-bottom:1px solid var(--border)}.resume-view-av,.supplier-view-top>span{width:58px;height:58px;flex:0 0 auto;display:grid;place-items:center;border-radius:18px;background:linear-gradient(145deg,#25d5e7,#177cc5);font-size:28px}.resume-view-top h2,.supplier-view-top h2{margin:0 0 5px;font-size:18px}.resume-view-top p,.supplier-view-top p{margin:0 0 4px;color:var(--brand);font-size:12px;font-weight:800}.resume-view-top span:not(.resume-view-av),.supplier-view-top small{color:var(--muted);font-size:11px}.supplier-view-top em{font-style:normal;color:#34d399;font-size:10px}.resume-view-about{margin:16px 0}.resume-view-about b,.resume-view-grid b{font-size:12px}.resume-view-about p,.supplier-view-desc{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.95}.resume-view-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.resume-view-grid>div{padding:12px;border:1px solid var(--border);border-radius:13px;background:rgba(255,255,255,.028)}.resume-view-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.resume-view-chips span{padding:4px 8px;border-radius:20px;background:rgba(34,211,238,.1);color:#a5f3fc;font-size:10px}.resume-view-chips.cert span{background:rgba(245,198,107,.1);color:var(--gold)}.resume-view-chips small{color:var(--muted);font-size:10px}.resume-view-facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.resume-view-facts span,.detail-note{padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.045);color:var(--muted);font-size:11px}.detail-note{margin-top:13px}.detail-contact{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:16px}.detail-list{padding:0 17px 0 0;margin:8px 0 0;color:var(--muted);font-size:11px;line-height:2}.detail-list li::marker{color:var(--brand)}
@media(max-width:600px){.sh-detail-ov{padding:10px}.sh-detail{max-height:calc(100dvh - 20px);border-radius:18px}.sh-detail-body{padding:14px}.resume-view-grid{grid-template-columns:1fr}.resume-view-top h2,.supplier-view-top h2{font-size:16px}}

/* ============================ v17 — مرکز فرمان مدیر سیستم ============================ */
/* مرکز مدیریت، عمداً از تجربهٔ عضو جداست: فرمان‌های عملیاتی، عضوها و سطح اشتراک در یک قاب. */
.admin-command-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin:0 0 18px; }
.admin-command { min-height:132px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:5px; padding:15px; border:1px solid rgba(34,211,238,.23); border-radius:17px; background:linear-gradient(145deg,rgba(34,211,238,.105),rgba(14,165,233,.025)); color:var(--text); text-align:right; font:inherit; cursor:pointer; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease; }
.admin-command > span { width:35px; height:35px; display:grid; place-items:center; margin-bottom:2px; border-radius:11px; background:rgba(34,211,238,.14); color:#a5f3fc; font-size:18px; }
.admin-command b { font-size:13px; font-weight:900; }.admin-command small { color:var(--muted); font-size:10px; line-height:1.65; }
.admin-command:hover { transform:translateY(-3px); border-color:rgba(34,211,238,.66); background:linear-gradient(145deg,rgba(34,211,238,.19),rgba(14,165,233,.07)); box-shadow:0 13px 27px rgba(2,100,142,.18); }
.admin-members,.admin-plans,.admin-governance { margin-top:20px; padding:19px; scroll-margin-top:18px; }
.admin-sec-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px; }.admin-sec-head h3,.admin-governance h3 { margin:0 0 5px; font-size:15px; }.admin-sec-head p { max-width:620px; margin:0; color:var(--muted); font-size:11px; line-height:1.8; }.admin-sec-head > span { flex:0 0 auto; padding:6px 9px; border:1px solid rgba(34,211,238,.22); border-radius:20px; background:rgba(34,211,238,.08); color:#a5f3fc; font-size:10px; font-weight:800; }
.admin-member-list { display:grid; gap:8px; }.admin-member-row { display:grid; grid-template-columns:40px minmax(150px,1fr) max-content max-content; align-items:center; gap:10px; min-height:62px; padding:9px 10px; border:1px solid var(--border); border-radius:13px; background:rgba(255,255,255,.025); }.admin-member-row:hover { border-color:rgba(34,211,238,.32); background:rgba(34,211,238,.045); }.admin-member-ic { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:linear-gradient(145deg,rgba(34,211,238,.23),rgba(14,165,233,.1)); font-size:19px; }.admin-member-row b,.admin-member-row small { display:block; }.admin-member-row b { margin-bottom:3px; font-size:12px; }.admin-member-row small { overflow:hidden; color:var(--muted); font-size:10px; line-height:1.5; text-overflow:ellipsis; white-space:nowrap; }.admin-member-row .btn { min-height:33px; padding:7px 10px; border-radius:10px; font-size:10px; }
.admin-state,.admin-plan { min-width:80px; padding:6px 8px; border-radius:20px; text-align:center; font-size:9.5px; font-weight:900; white-space:nowrap; }.admin-state.active { color:#74f2c2; background:rgba(52,211,153,.12); }.admin-state.inactive,.admin-state.suspended { color:#fda4af; background:rgba(251,113,133,.12); }.admin-state.review { color:#f8d777; background:rgba(245,198,107,.13); }.admin-plan { color:#fde7a5; border:1px solid rgba(245,198,107,.25); background:rgba(245,198,107,.09); }
.admin-note { margin:12px 2px 0; color:var(--muted); font-size:10.5px; line-height:1.8; }.admin-governance { background:linear-gradient(135deg,rgba(34,211,238,.08),rgba(245,198,107,.045)); }.admin-governance-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }.admin-governance-grid > div { min-height:84px; padding:11px; border:1px solid rgba(148,163,184,.16); border-radius:12px; background:rgba(3,16,35,.16); }.admin-governance-grid b,.admin-governance-grid span { display:block; }.admin-governance-grid b { margin-bottom:5px; font-size:10.5px; }.admin-governance-grid span { color:var(--muted); font-size:9.5px; line-height:1.65; }
#control-site,#control-panel,#control-moderation { scroll-margin-top:18px; }
@media (max-width:1100px) { .admin-command-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.admin-governance-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:650px) { .admin-command-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }.admin-command { min-height:116px; padding:12px; }.admin-command > span { width:31px; height:31px; font-size:16px; }.admin-command b { font-size:12px; }.admin-command small { font-size:9px; }.admin-members,.admin-plans,.admin-governance { margin-top:13px; padding:13px; }.admin-sec-head { align-items:flex-start; }.admin-sec-head > span { font-size:9px; }.admin-member-row { grid-template-columns:34px minmax(0,1fr) max-content; gap:7px; padding:8px; }.admin-member-ic { width:33px; height:33px; border-radius:10px; font-size:16px; }.admin-member-row small { font-size:9px; }.admin-member-row .admin-state,.admin-member-row .admin-plan { grid-column:2; justify-self:start; min-width:0; padding:4px 7px; font-size:8.5px; }.admin-member-row .btn { grid-column:3; grid-row:1 / span 2; font-size:9px; padding:7px; }.admin-governance-grid { grid-template-columns:1fr; }.admin-governance-grid > div { min-height:0; }.admin-note { font-size:9.5px; } }

/* ============================ v18 — صندوق همگام و جریان‌های ثبت مرحله‌ای ============================ */
/* پیش‌نمایش هر گفتگو در همان عرض باقی می‌ماند و نشان نخوانده هیچ‌وقت با متن بلند پنهان نمی‌شود. */
.tg-row1,.tg-row2 { min-width:0; }.tg-name,.tg-last { min-width:0; flex:1 1 auto; }.tg-time,.tg-un { flex:0 0 auto; }.tg-last { display:block; overflow:hidden; text-overflow:ellipsis; }.tg-un { position:relative; z-index:1; }
.tg-start-message { width:min(430px,calc(100% - 28px)); display:grid; gap:9px; margin-top:9px; padding:14px; border:1px solid rgba(34,211,238,.3); border-radius:16px; background:linear-gradient(135deg,rgba(34,211,238,.09),rgba(14,165,233,.04)); text-align:right; }.tg-start-message > div:first-child b,.tg-start-message > div:first-child small { display:block; }.tg-start-message > div:first-child b { color:var(--text); font-size:12px; }.tg-start-message > div:first-child small { margin-top:3px; color:var(--muted); font-size:10px; }.tg-start-message select { width:100%; min-width:0; min-height:38px; padding:7px 9px; border:1px solid var(--border); border-radius:10px; background:var(--card-solid,var(--card)); color:var(--text); font:inherit; font-size:11px; }.tg-start-compose { display:flex; align-items:center; gap:7px; }.tg-start-compose input { min-width:0; flex:1; min-height:42px; padding:8px 12px; border:1px solid var(--border); border-radius:12px; background:var(--card-solid,var(--card)); color:var(--text); font:inherit; font-size:11px; outline:none; }.tg-start-compose input:focus { border-color:rgba(34,211,238,.55); box-shadow:0 0 0 3px rgba(34,211,238,.1); }.tg-start-compose .tg-send { width:40px; height:40px; }
.profile-direct-toggle { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 12px; border:1px solid rgba(34,211,238,.24); border-radius:13px; background:rgba(34,211,238,.055); cursor:pointer; }.profile-direct-toggle span { min-width:0; }.profile-direct-toggle b,.profile-direct-toggle small { display:block; }.profile-direct-toggle b { font-size:11.5px; }.profile-direct-toggle small { margin-top:4px; color:var(--muted); font-size:9.5px; line-height:1.65; }.profile-direct-toggle input { position:absolute; opacity:0; pointer-events:none; }.profile-direct-toggle i { position:relative; flex:0 0 auto; width:39px; height:22px; border-radius:99px; background:#64748b; transition:.2s; }.profile-direct-toggle i::after { content:''; position:absolute; top:3px; right:3px; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.25); transition:.2s; }.profile-direct-toggle input:checked + i { background:#14b8a6; }.profile-direct-toggle input:checked + i::after { transform:translateX(-17px); }
.panel-compose-empty { display:grid; justify-items:center; padding:34px !important; text-align:center; }.panel-compose-empty > span { font-size:48px; opacity:.62; }.panel-compose-empty h3 { margin:10px 0 5px; font-size:15px; }.panel-compose-empty p { max-width:430px; margin:0 0 15px; color:var(--muted); font-size:11.5px; line-height:1.8; }.panel-compose-form { margin-top:18px; padding:18px; animation:detailIn .18s ease both; }.panel-compose-head { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:15px; }.panel-compose-head h3 { margin:0 0 4px; font-size:15px; }.panel-compose-head p { margin:0; color:var(--muted); font-size:10.5px; line-height:1.7; }
@media(max-width:650px) { .tg-start-message { width:calc(100% - 18px); padding:11px; }.tg-start-message select { font-size:10px; }.profile-direct-toggle { align-items:flex-start; }.panel-compose-form { padding:13px; }.panel-compose-head { gap:8px; }.panel-compose-head .btn { flex:0 0 auto; padding:7px 9px; font-size:10px; } }
.tg-start-mobile { display:none; }
@media(max-width:900px) { .tg-list .tg-start-mobile { display:grid; gap:8px; margin:8px 3px 3px; padding:11px; border:1px solid rgba(34,211,238,.25); border-radius:13px; background:rgba(34,211,238,.06); }.tg-start-mobile b { font-size:11px; }.tg-start-mobile select,.tg-start-mobile input { min-width:0; min-height:37px; padding:7px 9px; border:1px solid var(--border); border-radius:10px; background:var(--card-solid,var(--card)); color:var(--text); font:inherit; font-size:10px; }.tg-start-mobile > div { display:flex; align-items:center; gap:7px; }.tg-start-mobile input { flex:1; }.tg-start-mobile .tg-send { width:37px; height:37px; font-size:14px; } }

/* ============================ v20 — مرکز عملیات و مدیریت سازمانی ============================ */
.admin-shell { display:grid; grid-template-columns:205px minmax(0,1fr); gap:16px; align-items:start; }
.admin-nav { position:sticky; top:14px; display:grid; gap:5px; padding:8px; border:1px solid var(--border); border-radius:18px; background:linear-gradient(165deg,rgba(13,34,61,.78),rgba(5,18,37,.56)); box-shadow:var(--sh); }
.admin-nav-item { width:100%; min-height:43px; display:flex; align-items:center; gap:8px; padding:8px 9px; border:1px solid transparent; border-radius:12px; background:transparent; color:var(--muted); text-align:right; font:inherit; font-size:11px; cursor:pointer; transition:.18s; }.admin-nav-item > span { width:25px; height:25px; display:grid; place-items:center; border-radius:8px; background:rgba(34,211,238,.1); color:#9cecf5; }.admin-nav-item b { flex:1; font-weight:800; }.admin-nav-item i { min-width:19px; padding:2px 5px; border-radius:10px; background:rgba(245,198,107,.16); color:#fde68a; font-size:8px; font-style:normal; text-align:center; }.admin-nav-item:hover,.admin-nav-item.on { color:#effeff; border-color:rgba(34,211,238,.28); background:linear-gradient(100deg,rgba(14,165,233,.22),rgba(34,211,238,.07)); }.admin-nav-item.on > span { background:linear-gradient(145deg,#33dcec,#168bd2); color:#07213b; box-shadow:0 4px 12px rgba(34,211,238,.25); }
.admin-workspace { min-width:0; }.admin-overview-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }.admin-score { position:relative; min-height:142px; display:flex; flex-direction:column; align-items:flex-start; padding:15px; overflow:hidden; border:1px solid var(--border); border-radius:17px; background:linear-gradient(145deg,rgba(255,255,255,.06),rgba(255,255,255,.018)); }.admin-score::after { content:''; position:absolute; width:90px; height:90px; left:-30px; bottom:-40px; border-radius:50%; background:rgba(34,211,238,.08); }.admin-score > span { font-size:21px; }.admin-score > b { margin-top:8px; font-size:25px; line-height:1; }.admin-score > small { margin-top:6px; color:var(--muted); font-size:9.5px; line-height:1.6; }.admin-score > em,.admin-score > button { position:relative; z-index:1; margin-top:auto; padding:5px 8px; border:0; border-radius:8px; background:rgba(34,211,238,.09); color:#9cecf5; font:inherit; font-size:9px; font-style:normal; cursor:pointer; }.admin-score.warning { border-color:rgba(245,198,107,.32); }.admin-score.warning::after { background:rgba(245,198,107,.09); }.admin-score.warning > button { color:#fde68a; background:rgba(245,198,107,.1); }
.admin-command-deck,.admin-priority,.admin-billing-table,.admin-audit,.admin-process { margin-top:16px; padding:18px; border:1px solid var(--border); border-radius:18px; background:var(--card); box-shadow:var(--sh); }.admin-command-deck > div:last-child { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }.admin-command-deck button { position:relative; min-height:130px; display:flex; flex-direction:column; align-items:flex-start; gap:5px; padding:13px; border:1px solid rgba(34,211,238,.19); border-radius:14px; background:rgba(34,211,238,.035); color:var(--text); text-align:right; font:inherit; cursor:pointer; transition:.18s; }.admin-command-deck button:hover { transform:translateY(-2px); border-color:rgba(34,211,238,.54); background:rgba(34,211,238,.1); }.admin-command-deck button > span { font-size:19px; }.admin-command-deck button b { font-size:11.5px; }.admin-command-deck button small { color:var(--muted); font-size:9px; line-height:1.65; }.admin-command-deck button i { position:absolute; left:10px; bottom:9px; color:var(--brand); font-style:normal; }.admin-priority { display:flex; align-items:center; justify-content:space-between; gap:20px; background:linear-gradient(125deg,rgba(14,165,233,.17),rgba(245,198,107,.055)); }.admin-priority span,.admin-view-head > div:first-child > span { color:#7dd3fc; font-size:9px; font-weight:900; letter-spacing:.3px; }.admin-priority h3 { margin:5px 0; font-size:16px; }.admin-priority p { max-width:650px; margin:0; color:var(--muted); font-size:11px; line-height:1.8; }
.admin-view-head { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:14px; padding:3px 2px; }.admin-view-head h3 { margin:5px 0 4px; font-size:19px; }.admin-view-head p { max-width:620px; margin:0; color:var(--muted); font-size:11px; line-height:1.8; }.admin-view-actions { display:flex; align-items:center; gap:7px; flex-wrap:wrap; justify-content:flex-end; }.admin-live,.admin-alert { padding:7px 9px; border-radius:10px; color:#83efbf; background:rgba(52,211,153,.1); font-size:9.5px; font-weight:800; white-space:nowrap; }.admin-live i { display:inline-block; width:6px; height:6px; margin-left:4px; border-radius:50%; background:#34d399; box-shadow:0 0 8px #34d399; }.admin-alert { color:#fde68a; background:rgba(245,198,107,.12); }
.admin-filter-bar { display:flex; align-items:center; gap:7px; margin-bottom:10px; padding:8px; border:1px solid var(--border); border-radius:14px; background:var(--card); overflow-x:auto; }.admin-filter-bar label { flex:1; min-width:190px; display:flex; align-items:center; gap:6px; padding:6px 8px; border-radius:9px; background:rgba(255,255,255,.045); color:var(--muted); }.admin-filter-bar input { width:100%; min-width:0; border:0; background:transparent; color:var(--text); outline:0; font:inherit; font-size:10px; }.admin-filter-bar button { flex:0 0 auto; padding:7px 9px; border:1px solid transparent; border-radius:9px; background:transparent; color:var(--muted); font:inherit; font-size:9px; cursor:pointer; }.admin-filter-bar button.on { color:#a5f3fc; border-color:rgba(34,211,238,.27); background:rgba(34,211,238,.1); }
.admin-member-directory { display:grid; gap:8px; }.admin-member-card { display:grid; grid-template-columns:42px minmax(160px,1fr) max-content max-content; align-items:center; gap:10px; min-height:73px; padding:10px; border:1px solid var(--border); border-radius:15px; background:var(--card); transition:.18s; }.admin-member-card:hover { transform:translateY(-1px); border-color:rgba(34,211,238,.42); box-shadow:var(--sh); }.admin-member-main { min-width:0; }.admin-member-main b,.admin-member-main small,.admin-member-sections { display:block; }.admin-member-main b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12.5px; }.admin-member-main small { margin-top:3px; color:var(--muted); font-size:9.5px; }.admin-member-sections { margin-top:5px; color:#9cecf5; font-size:8.5px; }.admin-member-meta { display:flex; flex-direction:column; gap:4px; align-items:flex-end; }.admin-member-actions { display:flex; gap:5px; }.admin-member-actions .btn { min-height:30px; padding:6px 8px; font-size:9px; }
.admin-plan-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }.admin-plan-card { position:relative; display:grid; grid-template-columns:42px 1fr; gap:8px; padding:15px; border:1px solid var(--border); border-radius:17px; background:var(--card); overflow:hidden; }.admin-plan-card.featured { border-color:rgba(245,198,107,.42); background:linear-gradient(145deg,rgba(245,198,107,.1),rgba(34,211,238,.04)); }.admin-plan-card > span { width:38px; height:38px; display:grid; place-items:center; border-radius:12px; background:rgba(34,211,238,.12); font-size:18px; }.admin-plan-card b,.admin-plan-card small { display:block; }.admin-plan-card b { font-size:14px; }.admin-plan-card small { margin-top:3px; color:var(--muted); font-size:9px; }.admin-plan-card strong { grid-column:1/-1; font-size:21px; }.admin-plan-card p { grid-column:1/-1; min-height:34px; margin:0; color:var(--muted); font-size:10px; line-height:1.7; }.admin-plan-card .btn { grid-column:1/-1; justify-self:start; min-height:31px; padding:6px 9px; font-size:9px; }.admin-billing-row { display:grid; grid-template-columns:31px minmax(130px,1fr) 100px 125px max-content; align-items:center; gap:8px; padding:10px 0; border-top:1px solid var(--border); font-size:10.5px; }.admin-billing-row > span { font-size:17px; }.admin-billing-row b { font-size:11px; }.admin-billing-row small { color:var(--muted); }.admin-billing-row .btn { min-height:30px; padding:6px 8px; font-size:9px; }
.admin-queue-grid,.admin-experience-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }.admin-queue-card,.admin-experience-grid article { min-height:150px; display:grid; align-content:start; gap:7px; padding:14px; border:1px solid var(--border); border-radius:16px; background:var(--card); }.admin-queue-card { grid-template-columns:34px 1fr; }.admin-queue-card > span,.admin-experience-grid article > span { font-size:20px; }.admin-queue-card b,.admin-queue-card small { display:block; }.admin-queue-card b { font-size:11px; }.admin-queue-card small { margin-top:3px; color:var(--muted); font-size:9px; line-height:1.5; }.admin-queue-card strong { grid-column:1/-1; margin-top:auto; font-size:22px; }.admin-queue-card button { grid-column:1/-1; justify-self:start; padding:5px 0; border:0; background:transparent; color:var(--brand); font:inherit; font-size:9.5px; font-weight:900; cursor:pointer; }.admin-queue-card.waiting { border-color:rgba(245,198,107,.35); }.admin-queue-card.clear { opacity:.75; }.admin-process h3 { margin:0 0 12px; font-size:13px; }.admin-process > div { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }.admin-process > div span { padding:7px 9px; border-radius:9px; background:rgba(34,211,238,.09); color:#bff8fb; font-size:9.5px; font-weight:800; }.admin-process > div i { width:20px; height:1px; background:rgba(34,211,238,.35); }.admin-process p { margin:12px 0 0; color:var(--muted); font-size:10px; line-height:1.8; }.admin-experience-grid article h3 { margin:0; font-size:12px; }.admin-experience-grid article p { margin:0; color:var(--muted); font-size:9.5px; line-height:1.75; }.admin-experience-grid article .btn { justify-self:start; margin-top:auto; min-height:30px; padding:6px 8px; font-size:9px; }.admin-governance-grid.modern { margin:0; }.admin-audit-row { display:flex; align-items:center; gap:9px; padding:10px 0; border-top:1px solid var(--border); }.admin-audit-row > span { width:22px; height:22px; display:grid; place-items:center; border-radius:8px; background:rgba(52,211,153,.13); color:#74f2c2; font-size:10px; }.admin-audit-row b,.admin-audit-row small { display:block; }.admin-audit-row b { font-size:10.5px; }.admin-audit-row small { margin-top:3px; color:var(--muted); font-size:9px; }
#control-content,#control-media { scroll-margin-top:18px; }
@media(max-width:1120px) { .admin-shell { grid-template-columns:1fr; }.admin-nav { position:static; display:flex; overflow-x:auto; padding:7px; }.admin-nav-item { width:auto; flex:0 0 auto; }.admin-overview-grid,.admin-queue-grid,.admin-experience-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.admin-command-deck > div:last-child { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:680px) { .admin-overview-grid,.admin-plan-grid,.admin-queue-grid,.admin-experience-grid { grid-template-columns:1fr 1fr; }.admin-command-deck > div:last-child { grid-template-columns:1fr 1fr; }.admin-score { min-height:123px; padding:12px; }.admin-score > b { font-size:21px; }.admin-member-card { grid-template-columns:38px minmax(0,1fr) max-content; gap:7px; }.admin-member-meta { grid-column:2; justify-self:start; flex-direction:row; align-items:center; }.admin-member-actions { grid-column:3; grid-row:1 / span 2; flex-direction:column; }.admin-member-actions .btn { min-width:48px; padding:5px; font-size:8px; }.admin-view-head,.admin-priority { align-items:flex-start; flex-direction:column; }.admin-view-actions { justify-content:flex-start; }.admin-billing-row { grid-template-columns:27px minmax(0,1fr) max-content; }.admin-billing-row small { grid-column:2; }.admin-billing-row .btn { grid-column:3; grid-row:1 / span 2; }.admin-process > div { gap:5px; }.admin-process > div i { display:none; }.admin-plan-card { padding:11px; }.admin-plan-card strong { font-size:18px; } }

/* ============================ v21 — تحصیلات و انتخاب زنده رزومه‌ساز ============================ */
.cv-skill-row { width:100%; color:var(--text); text-align:right; font:inherit; }.cv-skill-row .cv-dots { margin-right:auto; }.cv-details-form-title { display:flex; align-items:baseline; gap:8px; padding:9px 11px; border:1px solid rgba(34,211,238,.26); border-radius:11px; background:rgba(34,211,238,.055); }.cv-details-form-title b { font-size:11px; color:#a5f3fc; }.cv-details-form-title small { color:var(--muted); font-size:9px; }.cv-salary-input { display:grid; gap:4px; min-width:0; }.cv-salary-input small { color:var(--muted); font-size:9px; line-height:1.55; padding:0 2px; }.cv-salary-input input { direction:rtl; font-variant-numeric:tabular-nums; }.cv-offline-translate { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:11px 0; padding:9px 11px; border:1px solid rgba(52,211,153,.32); border-radius:12px; background:rgba(52,211,153,.06); color:var(--muted); font-size:10px; line-height:1.7; }.cv-offline-translate span { flex:1; }.cv-offline-translate .btn { flex:0 0 auto; white-space:nowrap; }.cv-skill-row:focus-visible,.cv-cert-chip:focus-visible { outline:2px solid var(--brand); outline-offset:2px; }.cv-skill-row.on .sname { color:#baf5f8; }.cv-education { position:relative; padding:13px; margin-bottom:10px; border:1px dashed rgba(34,211,238,.38); border-radius:15px; background:linear-gradient(145deg,rgba(34,211,238,.055),rgba(255,255,255,.018)); }.cv-education > b { display:block; margin-bottom:9px; font-size:11.5px; }.cv-education .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }.cv-education input,.cv-education select { min-width:0; padding:9px 10px; border:1px solid var(--border); border-radius:10px; background:var(--card-2,rgba(255,255,255,.5)); color:var(--text); font:inherit; font-size:11px; }.cv-education .cv-del { position:absolute; top:8px; left:8px; border:0; border-radius:8px; padding:4px 7px; background:rgba(244,63,94,.14); color:#fb7185; font:inherit; font-size:9px; cursor:pointer; }.cv-education-empty { display:grid; place-items:center; min-height:90px; margin-bottom:10px; border:1px dashed var(--border); border-radius:14px; color:var(--muted); font-size:11px; }
@media(max-width:600px){.cv-education .form-grid{grid-template-columns:1fr}.cv-step-pill{padding:7px 10px;font-size:10px}.cv-steps{gap:5px}.cv-bar{display:none}}

/* ============================ v22 — هویت مدیریت‌شده، نام کاربری و رمز ============================ */
.login-managed-note { display:flex; align-items:flex-start; gap:9px; margin-top:16px; padding:10px 11px; border:1px solid rgba(34,211,238,.2); border-radius:12px; background:rgba(34,211,238,.055); color:var(--muted); }
.login-managed-note > span { font-size:16px; }.login-managed-note b,.login-managed-note small { display:block; }.login-managed-note b { color:var(--text); font-size:10.5px; }.login-managed-note small { margin-top:2px; font-size:9px; line-height:1.6; }
.profile-credentials { border-color:rgba(245,198,107,.26); background:linear-gradient(135deg,rgba(245,198,107,.07),rgba(34,211,238,.025)); }.credential-profile-note { padding:9px 10px; border-radius:10px; background:rgba(255,255,255,.045); color:var(--muted); font-size:9.5px; line-height:1.7; }
.admin-create-member { margin-bottom:12px; padding:16px; border:1px solid rgba(34,211,238,.32); border-radius:18px; background:linear-gradient(135deg,rgba(34,211,238,.09),rgba(245,198,107,.045)); box-shadow:var(--sh); }.admin-create-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }.admin-create-head > div > span { color:#8debf5; font-size:9px; font-weight:900; }.admin-create-head h3 { margin:3px 0 4px; font-size:13px; }.admin-create-head p { max-width:620px; margin:0; color:var(--muted); font-size:10px; line-height:1.7; }.admin-create-grid,.admin-member-edit-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }.admin-create-grid input,.admin-create-grid select,.admin-member-edit-grid input,.admin-member-edit-grid select { min-width:0; min-height:37px; padding:8px 10px; border:1px solid var(--border); border-radius:10px; outline:0; background:rgba(255,255,255,.055); color:var(--text); font:inherit; font-size:10px; }.admin-create-grid input:focus,.admin-create-grid select:focus,.admin-member-edit-grid input:focus,.admin-member-edit-grid select:focus { border-color:var(--brand); box-shadow:0 0 0 3px rgba(34,211,238,.11); }.admin-create-grid .btn { min-height:37px; font-size:9.5px; }.admin-password-field { display:flex; min-width:0; gap:5px; }.admin-password-field input { width:100%; }.admin-password-field button { flex:0 0 auto; border:1px solid rgba(245,198,107,.32); border-radius:10px; padding:0 8px; background:rgba(245,198,107,.1); color:#fde68a; font:inherit; font-size:8.5px; font-weight:900; cursor:pointer; white-space:nowrap; }.admin-member-card-auth { grid-template-rows:auto auto auto; }.admin-member-card-auth > .admin-credential-strip,.admin-member-card-auth > .admin-member-edit { grid-column:1/-1; }.admin-credential-strip { display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding:8px 9px; border:1px solid rgba(245,198,107,.19); border-radius:10px; background:rgba(245,198,107,.055); color:#ddd6c0; font-size:9.5px; }.admin-credential-strip span { display:inline-flex; align-items:center; gap:4px; padding:3px 5px; border-radius:6px; background:rgba(255,255,255,.035); }.admin-credential-strip b { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:10px; color:#fff4c7; letter-spacing:.15px; }.admin-member-edit { border:1px solid var(--border); border-radius:11px; background:rgba(255,255,255,.025); overflow:hidden; }.admin-member-edit summary { padding:9px 10px; color:#a8edf4; font-size:9.5px; font-weight:900; cursor:pointer; list-style:none; }.admin-member-edit summary::-webkit-details-marker { display:none; }.admin-member-edit summary:before { content:'⌄'; display:inline-block; margin-left:5px; transition:.15s; }.admin-member-edit[open] summary:before { transform:rotate(180deg); }.admin-member-edit-grid { padding:0 10px 10px; grid-template-columns:repeat(4,minmax(0,1fr)); }.admin-member-edit-grid .btn { min-height:37px; font-size:9.5px; }
@media(max-width:900px) { .admin-create-grid,.admin-member-edit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) { .admin-create-member { padding:12px; }.admin-create-head { flex-direction:column; }.admin-create-grid,.admin-member-edit-grid { grid-template-columns:1fr; }.admin-member-card-auth { display:grid; grid-template-columns:36px minmax(0,1fr) max-content; }.admin-member-card-auth .admin-member-actions { grid-column:3; grid-row:1 / span 2; }.admin-member-card-auth .admin-credential-strip,.admin-member-card-auth .admin-member-edit { grid-column:1/-1; }.admin-credential-strip { gap:4px; font-size:8.5px; }.admin-credential-strip span { max-width:100%; overflow-wrap:anywhere; }.admin-member-edit-grid { padding:0 8px 8px; }.admin-password-field { min-height:37px; }.admin-create-grid .btn,.admin-member-edit-grid .btn { width:100%; }.profile-credentials .profile-card-head { align-items:flex-start; } }

/* ============================ v23 — خروجی A4 و تایپوگرافی فارسی رزومه ============================ */
/* فاصله‌گذاری بین حروف، اتصال حروف فارسی را در Canvas/PDF می‌شکند؛ فقط نسخهٔ انگلیسی می‌تواند فاصله داشته باشد. */
.cvdoc[dir="rtl"] .cvd-sec h3,
.cvdoc[dir="rtl"] .cvd-kv,
.cvdoc[dir="rtl"] .cvd-sname,
.cvdoc[dir="rtl"] .cvd-cert,
.cvdoc[dir="rtl"] .cvd-msec h2,
.cvdoc[dir="rtl"] .cvd-it-t,
.cvdoc[dir="rtl"] .cvd-it-o,
.cvdoc[dir="rtl"] .cvd-it-d,
.cvdoc[dir="rtl"] .cvd-bio,
.cvdoc[dir="rtl"] .cv-brand-strip small { letter-spacing:normal !important; word-spacing:normal; font-kerning:normal; }
.cvdoc[dir="ltr"] .cvd-sec h3 { letter-spacing:.55px; }
.cvdoc .cvd-side h1,.cvdoc .cvd-role,.cvdoc .cvd-sec h3,.cvdoc .cvd-sname,.cvdoc .cvd-msec h2,.cvdoc .cvd-it-t,.cvdoc .cvd-it-o,.cvdoc .cvd-cert,.cvdoc .cv-brand-mark b { font-weight:700; }
.cvd-sec h3 { letter-spacing:normal; }
.cvd-sname { display:block; line-height:1.55; }
.cvd-meter { position:relative; clear:both; margin-top:7px; }
.cvd-skill { margin-bottom:10px; }
/* پاورقی با لوگوی بزرگ‌تر و متن برند دقیقاً زیر آن؛ از فضای خالی انتهای PDF جلوگیری می‌شود. */
.cv-brand-strip { box-sizing:border-box; min-height:48px; height:48px; margin:0; padding:3px 16px; display:flex; align-items:center; justify-content:flex-start; border-top:1px solid #dbe6ef; background:#fff; }
.cv-brand-lockup { width:142px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; text-align:center; }
.cv-brand-mark { width:100%; display:inline-flex; align-items:center; justify-content:center; gap:5px; line-height:1; letter-spacing:normal; }
.cv-brand-mark img { width:34px; height:34px; flex:0 0 auto; object-fit:cover; border-radius:8px; }
.cv-brand-strip b { font-size:13.5px; line-height:1; }
.cv-brand-strip small { display:block; width:100%; color:var(--cv-muted,#728298); font-size:6.5px; line-height:1.3; white-space:normal; }
/* صفحهٔ رندر صادراتی همیشه با نسبت دقیق A4 (794 × 1123px در 96dpi) ساخته می‌شود. */
#cvPdfRender { width:794px !important; min-height:1123px; height:auto; overflow:visible; background:#fff; }
#cvPdfRender .cvdoc { box-sizing:border-box; width:794px; min-height:1123px; grid-template-rows:minmax(0,1fr) auto; align-content:stretch; }
#cvPdfRender .cvd-side,#cvPdfRender .cvd-main { min-height:0; }

/* ============================ مالک استخر — مدیریت مجموعه‌های آبی ============================ */
.op-manager,.op-editor { display:grid; gap:16px; }
.op-manager { padding:20px; border:1px solid var(--border); border-radius:20px; background:var(--card); }
.op-manager-head,.op-editor-head,.op-save-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.op-manager-head h3,.op-editor-head h3 { margin:0 0 5px; font-size:17px; }.op-manager-head p,.op-editor-head p { margin:0; color:var(--muted); font-size:11px; line-height:1.85; }.op-editor-head > span { display:grid; place-items:center; width:56px; height:56px; flex:0 0 auto; border-radius:18px; background:linear-gradient(145deg,rgba(34,211,238,.2),rgba(16,185,129,.12)); font-size:28px; }
.op-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:13px; }.op-card { padding:15px; border:1px solid var(--border); border-radius:17px; background:var(--card-2); }.op-card-top { display:flex; align-items:flex-start; gap:10px; }.op-card-icon { display:grid; place-items:center; width:45px; height:45px; flex:0 0 auto; border-radius:14px; font-size:23px; background:rgba(34,211,238,.1); }.op-card-top > div { flex:1; min-width:0; }.op-card-top h3 { margin:0; font-size:13px; }.op-card-top p { margin:4px 0 0; color:var(--muted); font-size:10.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.op-status { flex:0 0 auto; padding:4px 7px; border-radius:99px; font-size:9px; font-weight:800; border:1px solid rgba(251,191,36,.32); background:rgba(251,191,36,.12); color:#f6c95a; }.op-status.draft { border-color:rgba(148,163,184,.3); background:rgba(148,163,184,.1); color:var(--muted); }.op-card-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:5px; margin:13px 0 10px; padding:9px 0; border-block:1px solid var(--border); color:var(--muted); font-size:9.5px; text-align:center; }.op-card-tags { display:flex; gap:5px; min-height:23px; flex-wrap:wrap; }.op-card-tags span { padding:3px 6px; border-radius:7px; background:rgba(34,211,238,.08); color:#8ee8f1; font-size:8.5px; }.op-card-actions { display:flex; gap:6px; flex-wrap:wrap; margin-top:13px; }.op-empty { display:grid; justify-items:center; max-width:630px; margin:15px auto 4px; padding:35px 20px; text-align:center; border:1px dashed rgba(34,211,238,.35); border-radius:18px; background:linear-gradient(135deg,rgba(34,211,238,.045),rgba(16,185,129,.04)); }.op-empty > span { font-size:45px; }.op-empty h3 { margin:10px 0 5px; font-size:15px; }.op-empty p { max-width:500px; margin:0 0 15px; color:var(--muted); font-size:11.5px; line-height:1.9; }
.op-editor { padding:18px; border:1px solid var(--border); border-radius:21px; background:var(--card); }.op-editor-head { align-items:flex-start; padding:3px 3px 15px; border-bottom:1px solid var(--border); }.op-editor-head .sec-link { display:inline-flex; margin-bottom:8px; border:0; background:none; color:var(--brand); cursor:pointer; font:inherit; font-size:10px; }.op-section { padding:15px; border:1px solid var(--border); border-radius:16px; background:var(--card-2); }.op-section-title { display:flex; align-items:flex-start; gap:9px; margin-bottom:13px; }.op-section-title > span { display:grid; place-items:center; width:23px; height:23px; flex:0 0 auto; border-radius:8px; background:var(--brand); color:#063040; font-size:11px; font-weight:900; }.op-section-title b { display:block; font-size:12.5px; }.op-section-title small { display:block; margin-top:2px; color:var(--muted); font-size:9.5px; line-height:1.6; }.op-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.op-grid input,.op-grid select,.op-section textarea,.op-repeat input,.op-repeat select { width:100%; min-width:0; border:1px solid var(--border); border-radius:10px; padding:9px 10px; outline:none; background:var(--surface,#0b1830); color:var(--text); font:inherit; font-size:10.5px; }.op-section textarea { display:block; margin-top:9px; resize:vertical; line-height:1.85; }.op-inline-check { display:flex; align-items:center; gap:7px; padding:8px 2px; color:var(--muted); font-size:10.5px; }.op-inline-check input,.op-check input { accent-color:#22d3ee; }.op-map-empty { display:grid; place-items:center; min-height:95px; margin-top:11px; padding:12px; border:1px dashed var(--border); border-radius:12px; color:var(--muted); font-size:10.5px; text-align:center; }.op-map-frame { position:relative; overflow:hidden; height:200px; margin-top:11px; border:1px solid var(--border); border-radius:13px; background:#dbeafe; }.op-map-frame iframe { width:100%; height:100%; border:0; }.op-map-frame a { position:absolute; left:8px; bottom:8px; padding:5px 8px; border-radius:8px; background:rgba(7,18,37,.9); color:#d8f8ff; text-decoration:none; font-size:9px; font-weight:800; }.op-amenities { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }.op-amenity-group { padding:11px; border:1px solid var(--border); border-radius:12px; background:rgba(255,255,255,.025); }.op-amenity-group h4 { margin:0 0 8px; color:#9fd9ff; font-size:10.5px; }.op-amenity-group > div { display:flex; flex-wrap:wrap; gap:5px; }.op-check { display:inline-flex; align-items:center; gap:4px; padding:4px 6px; border:1px solid var(--border); border-radius:8px; color:var(--muted); font-size:9px; cursor:pointer; }.op-check:has(input:checked) { border-color:rgba(34,211,238,.7); color:#c6f8ff; background:rgba(34,211,238,.1); }.op-repeat-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:13px 0 7px; font-size:10.5px; }.op-repeat-list { display:grid; gap:7px; }.op-repeat { position:relative; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:7px; padding:19px 8px 8px; border:1px dashed rgba(34,211,238,.34); border-radius:12px; background:rgba(34,211,238,.035); }.op-repeat[data-op-row="coach"] { grid-template-columns:1.15fr 1fr 1.3fr .8fr; }.op-repeat[data-op-row="course"] { grid-template-columns:1.3fr 1fr 1fr .8fr 1fr; }.op-row-del { position:absolute; top:4px; left:5px; width:20px; height:20px; border:0; border-radius:7px; background:rgba(244,63,94,.16); color:#fb7185; cursor:pointer; font-size:14px; line-height:1; }.op-empty-inline { padding:12px; border:1px dashed var(--border); border-radius:11px; color:var(--muted); font-size:10px; text-align:center; }.op-save-bar { position:sticky; bottom:10px; z-index:4; margin-top:2px; padding:13px; border:1px solid rgba(34,211,238,.32); border-radius:15px; background:rgba(8,22,43,.94); box-shadow:0 12px 28px rgba(0,0,0,.22); }.op-save-bar b { display:block; font-size:11px; }.op-save-bar small { display:block; max-width:520px; margin-top:3px; color:var(--muted); font-size:9.5px; line-height:1.55; }.op-save-bar > div:last-child { display:flex; gap:7px; flex:0 0 auto; }
@media(max-width:760px) { .op-manager,.op-editor { padding:12px; border-radius:16px; }.op-manager-head,.op-editor-head,.op-save-bar { align-items:flex-start; flex-direction:column; }.op-grid,.op-amenities { grid-template-columns:1fr; }.op-repeat,.op-repeat[data-op-row="coach"],.op-repeat[data-op-row="course"] { grid-template-columns:1fr 1fr; }.op-repeat > :nth-last-child(1):nth-child(odd) { grid-column:1/-1; }.op-save-bar > div:last-child { width:100%; }.op-save-bar .btn { flex:1; padding-inline:7px; font-size:10px; }.op-card-stats { grid-template-columns:repeat(2,1fr); gap:7px; }.op-card-actions .btn { flex:1; }.op-map-frame { height:180px; } }

/* ============================ تأمین‌کننده — کاتالوگ B2B ============================ */
.sc-manager,.sc-editor { display:grid; gap:16px; }.sc-manager { padding:20px; border:1px solid var(--border); border-radius:20px; background:var(--card); }.sc-manager-head,.sc-editor-head,.sc-save { display:flex; align-items:center; justify-content:space-between; gap:16px; }.sc-manager-head h3,.sc-editor-head h3 { margin:0 0 5px; font-size:17px; }.sc-manager-head p,.sc-editor-head p { margin:0; color:var(--muted); font-size:11px; line-height:1.85; }.sc-editor { padding:18px; border:1px solid var(--border); border-radius:21px; background:var(--card); }.sc-editor-head { align-items:flex-start; padding:3px 3px 15px; border-bottom:1px solid var(--border); }.sc-editor-head .sec-link { display:inline-flex; margin-bottom:8px; border:0; background:none; color:var(--brand); cursor:pointer; font:inherit; font-size:10px; }.sc-editor-head > span { display:grid; place-items:center; width:56px; height:56px; flex:0 0 auto; border-radius:18px; background:linear-gradient(145deg,rgba(251,191,36,.19),rgba(34,211,238,.12)); font-size:27px; }.sc-section { padding:15px; border:1px solid var(--border); border-radius:16px; background:var(--card-2); }.sc-section-title { display:flex; align-items:flex-start; gap:9px; margin-bottom:13px; }.sc-section-title > span { display:grid; place-items:center; width:23px; height:23px; flex:0 0 auto; border-radius:8px; background:var(--gold); color:#3d2b05; font-size:11px; font-weight:900; }.sc-section-title b { display:block; font-size:12.5px; }.sc-section-title small { display:block; margin-top:2px; color:var(--muted); font-size:9.5px; line-height:1.6; }.sc-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.sc-grid input,.sc-grid select,.sc-section textarea { width:100%; min-width:0; padding:9px 10px; border:1px solid var(--border); border-radius:10px; outline:none; background:var(--surface,#0b1830); color:var(--text); font:inherit; font-size:10.5px; }.sc-section textarea { display:block; margin-top:9px; resize:vertical; line-height:1.85; }.sc-image-row { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }.sc-image-row > div { display:grid; place-items:center; width:76px; height:76px; overflow:hidden; border:1px dashed var(--border-strong); border-radius:14px; background:rgba(251,191,36,.06); font-size:26px; }.sc-image-row > div img { width:100%; height:100%; object-fit:cover; }.sc-image-row input { flex:1; min-width:180px; padding:9px 10px; border:1px solid var(--border); border-radius:10px; background:var(--surface,#0b1830); color:var(--text); font:inherit; font-size:10px; }.sc-save { position:sticky; bottom:10px; z-index:4; margin-top:2px; padding:13px; border:1px solid rgba(251,191,36,.38); border-radius:15px; background:rgba(8,22,43,.94); box-shadow:0 12px 28px rgba(0,0,0,.22); }.sc-save b { display:block; font-size:11px; }.sc-save small { display:block; max-width:520px; margin-top:3px; color:var(--muted); font-size:9.5px; line-height:1.55; }.sc-save > div:last-child { display:flex; gap:7px; flex:0 0 auto; }.sc-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:13px; }.sc-card { display:flex; gap:12px; padding:13px; border:1px solid var(--border); border-radius:16px; background:var(--card-2); }.sc-card-image { display:grid; place-items:center; width:68px; height:68px; overflow:hidden; flex:0 0 auto; border-radius:13px; background:rgba(34,211,238,.1); font-size:28px; }.sc-card-image img { width:100%; height:100%; object-fit:cover; }.sc-card-main { min-width:0; flex:1; }.sc-card-top { display:flex; justify-content:space-between; gap:8px; }.sc-kind,.sc-status { padding:3px 6px; border-radius:7px; font-size:8.5px; font-weight:800; }.sc-kind { background:rgba(34,211,238,.1); color:#9beaf4; }.sc-status { border:1px solid rgba(148,163,184,.3); color:var(--muted); }.sc-status.pending { border-color:rgba(251,191,36,.35); color:#f6c95a; background:rgba(251,191,36,.1); }.sc-status.ok { border-color:rgba(52,211,153,.35); color:#68e8b3; background:rgba(52,211,153,.09); }.sc-card h3 { margin:7px 0 3px; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.sc-card p { margin:0; color:var(--muted); font-size:9.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.sc-meta { display:flex; gap:10px; margin-top:8px; color:#a7bdca; font-size:9px; }.sc-card-actions { display:flex; gap:6px; margin-top:10px; }.sc-empty { display:grid; justify-items:center; max-width:630px; margin:15px auto 4px; padding:35px 20px; text-align:center; border:1px dashed rgba(251,191,36,.42); border-radius:18px; background:linear-gradient(135deg,rgba(251,191,36,.055),rgba(34,211,238,.035)); }.sc-empty > span { font-size:44px; }.sc-empty h3 { margin:10px 0 5px; font-size:15px; }.sc-empty p { max-width:500px; margin:0 0 15px; color:var(--muted); font-size:11.5px; line-height:1.9; }
@media(max-width:760px) { .sc-manager,.sc-editor { padding:12px; border-radius:16px; }.sc-manager-head,.sc-editor-head,.sc-save { align-items:flex-start; flex-direction:column; }.sc-grid { grid-template-columns:1fr; }.sc-save > div:last-child { width:100%; }.sc-save .btn { flex:1; padding-inline:7px; font-size:10px; }.sc-card-actions .btn { flex:1; }.sc-card-grid { grid-template-columns:1fr; } }

/* Keyboard users need a visible target for horizontal/virtualized scroll regions. */
.keyboard-scroll:focus { outline: 3px solid var(--brand); outline-offset: 3px; border-radius: 12px; }

/* Estakhrjo official artwork: compact mark in all static navigation/footer/preloader shells. */
.nav-logo-w { background: #fff; border: 1px solid rgba(34,211,238,.42); }
.nav-logo { width: 100%; height: 100%; object-fit: cover; filter: none; position: relative; z-index: 1; }
.nav-name { font-size: 14px; white-space: nowrap; letter-spacing: 0; }
.preloader-logo { width: 72px; height: 72px; object-fit: cover; border-radius: 22px; background: #fff; box-shadow: 0 10px 28px rgba(14,165,233,.24); }
@media (max-width: 560px) { .nav-name { font-size: 11px; } }

/* --- group permission matrix (admin) ----------------------------------- */
.perm-legend { display: flex; gap: 18px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; font-size: 12px; color: var(--muted); }
.perm-legend span { display: inline-flex; align-items: center; gap: 7px; }
.perm-legend i { display: inline-grid; place-items: center; width: 22px; height: 22px; font-style: normal; }
.perm-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.perm-table { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 620px; font-size: 12.5px; }
.perm-table th, .perm-table td { padding: 9px 10px; text-align: center; border-bottom: 1px solid var(--border); }
.perm-table tr > th:first-child { text-align: right; white-space: nowrap; font-weight: 600; position: sticky; right: 0; background: var(--card); z-index: 1; }
.perm-table thead th, .perm-table tr:first-child th { vertical-align: bottom; }
.perm-table tr:first-child th b { display: block; font-size: 12px; white-space: nowrap; }
.perm-table tr:first-child th small { display: block; color: var(--muted); font-size: 10px; font-weight: 400; margin-top: 2px; }
.perm-corner { background: transparent !important; }
.perm-bulk { display: flex; gap: 4px; justify-content: center; margin-top: 6px; }
.perm-bulk button { font: inherit; font-size: 10px; padding: 3px 8px; min-height: 26px; border-radius: 7px; border: 1px solid var(--border); background: transparent; color: var(--muted); cursor: pointer; }
.perm-bulk button:hover { border-color: var(--brand); color: var(--brand); }
.perm-cell { width: 30px; height: 30px; border-radius: 9px; border: 1.5px solid var(--border); background: transparent; color: transparent; cursor: pointer; font-size: 14px; font-weight: 800; line-height: 1; transition: .16s; }
.perm-cell:hover { border-color: var(--brand); }
.perm-cell.on { background: linear-gradient(135deg, var(--brand), var(--brand-2)); border-color: transparent; color: #04202f; }
.perm-core th:first-child { opacity: .85; }
.perm-lock { display: inline-grid; place-items: center; min-width: 46px; height: 30px; padding: 0 8px; border-radius: 9px; background: color-mix(in srgb, var(--brand) 14%, transparent); color: var(--brand); font-size: 10.5px; font-weight: 700; font-style: normal; white-space: nowrap; }
@media (max-width: 640px) { .perm-table { min-width: 560px; } .perm-table th, .perm-table td { padding: 7px 6px; } }

/* --- bottom-bar picker (admin) ------------------------------------------ */
.bnav-box { border: 1px solid var(--border); border-radius: 16px; padding: 16px; margin-bottom: 18px; background: var(--card-2); }
.bnav-head b { display: block; font-size: 13.5px; }
.bnav-head small { display: block; color: var(--muted); font-size: 11.5px; margin-top: 3px; line-height: 1.7; }
.bnav-chips { display: flex; flex-wrap: wrap; gap: 7px; margin: 14px 0 12px; }
.bnav-chip { display: inline-flex; align-items: center; gap: 6px; font: inherit; font-size: 12px; font-weight: 600; min-height: 38px; padding: 6px 12px; border-radius: 11px; border: 1.5px solid var(--border); background: transparent; color: var(--muted); cursor: pointer; transition: .16s; }
.bnav-chip:hover { border-color: var(--brand); color: var(--brand); }
.bnav-chip.on { border-color: transparent; background: linear-gradient(135deg, var(--brand), var(--brand-2)); color: #04202f; }
.bnav-chip i { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; background: rgba(4,32,47,.25); font-style: normal; font-size: 10px; font-weight: 800; }
.bnav-max { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; color: var(--muted); }
.bnav-count { font: inherit; font-size: 12px; font-weight: 700; min-width: 38px; min-height: 38px; border-radius: 10px; border: 1.5px solid var(--border); background: transparent; color: inherit; cursor: pointer; }
.bnav-count.on { border-color: transparent; background: linear-gradient(135deg, var(--brand), var(--brand-2)); color: #04202f; }
.bnav-max em { margin-right: auto; font-style: normal; font-size: 11.5px; }

/* --- admin console (admine.estakhrjo.ir) --------------------------------
   Deliberately not the member panel: different chrome, different hero, so
   an operator can never mistake one surface for the other. */
body[data-page="admin"] .lx-visual-img,
body[data-page="console"] .lx-visual-img { background-image: url('../assets/admin-hero.webp'); }
body[data-page="admin"] .lx-visual-veil {
  background: linear-gradient(215deg, rgba(2,10,20,.30) 0%, rgba(3,10,20,.72) 55%, rgba(2,8,16,.96) 100%);
}
body[data-page="admin"] .lx-logo-badge { background: linear-gradient(145deg, #f5c66b, #b8860b); color: #2b1d02; }

.ac-shell { min-height: 100vh; display: flex; flex-direction: column; }
.ac-top {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 12px 20px; border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--card) 80%, transparent);
  backdrop-filter: blur(12px); position: sticky; top: 0; z-index: 40;
}
.ac-brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ac-badge { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px;
  background: linear-gradient(145deg, #f5c66b, #b8860b); font-size: 18px; flex: 0 0 auto; }
.ac-brand b { display: block; font-size: 14px; }
.ac-brand small { display: block; font-size: 10.5px; color: var(--muted); }
.ac-who { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.ac-who-txt { text-align: left; }
.ac-who-txt b { display: block; font-size: 12.5px; }
.ac-who-txt small { display: block; font-size: 10.5px; color: var(--muted); }
.ac-who .btn { min-height: 38px; }
.ac-main { padding: 20px; min-width: 0; }
.ac-denied { max-width: 460px; margin: 16vh auto; text-align: center; padding: 30px; }
.ac-denied span { font-size: 46px; }
.ac-denied h2 { margin: 12px 0 6px; font-size: 19px; }
.ac-denied p { color: var(--muted); font-size: 13px; margin-bottom: 18px; }
.p-item-out { text-decoration: none; }
@media (max-width: 860px) {
  .ac-top { padding: 10px 14px; }
  .ac-main { padding: 14px; }
}

/* --- grouped admin navigation ------------------------------------------- */
.admin-nav { display: flex; flex-direction: column; gap: 8px; }
.an-group { border: 1px solid var(--border); border-radius: 15px; overflow: hidden; background: var(--card-2); }
.an-group.open { border-color: color-mix(in srgb, var(--brand) 40%, var(--border)); }
.an-head {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 12px 13px;
  min-height: 56px; border: 0; background: none; color: inherit; font: inherit;
  cursor: pointer; text-align: start;
}
.an-head:hover { background: color-mix(in srgb, var(--brand) 7%, transparent); }
.an-group.open .an-head { background: color-mix(in srgb, var(--brand) 10%, transparent); }
.an-ic { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 auto;
  border-radius: 11px; background: color-mix(in srgb, var(--brand) 16%, transparent); font-size: 16px; }
.an-txt { flex: 1; min-width: 0; }
.an-txt b { display: block; font-size: 13.5px; }
.an-txt small { display: block; font-size: 10.5px; color: var(--muted); margin-top: 1px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.an-caret { color: var(--muted); font-size: 12px; flex: 0 0 auto; }
.an-badge { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px;
  border-radius: 99px; background: var(--gold, #f5c66b); color: #3d2b05;
  font-size: 10.5px; font-weight: 800; font-style: normal; flex: 0 0 auto; }
.an-items { display: none; padding: 4px 8px 9px; flex-direction: column; gap: 3px; }
.an-group.open .an-items { display: flex; }
.an-item {
  display: flex; align-items: center; gap: 9px; width: 100%; min-height: 42px;
  padding: 8px 11px; border: 1px solid transparent; border-radius: 11px; background: none;
  color: var(--muted); font: inherit; font-size: 12.5px; font-weight: 600;
  cursor: pointer; text-align: start;
}
.an-item span { font-size: 14px; }
.an-item .an-badge { margin-inline-start: auto; }
.an-item:hover { color: var(--text); background: color-mix(in srgb, var(--brand) 8%, transparent); }
.an-item.on { color: var(--text); background: color-mix(in srgb, var(--brand) 15%, transparent);
  border-color: color-mix(in srgb, var(--brand) 35%, transparent); }
@media (max-width: 900px) {
  .admin-nav { flex-direction: column; }
  .an-txt small { display: none; }
  .an-head { min-height: 50px; }
}
