/* ==========================================================================
   VEYLOHUB — PREMIUM MODERN STYLESHEET
   Connect. Chat. Reveal.
   ========================================================================== */
:root {
    /* Dark theme (default) */
    --bg-primary: #0c0f14;
    --bg-secondary: #141820;
    --bg-card: rgba(20, 24, 35, 0.85);
    --bg-card-hover: rgba(28, 33, 48, 0.9);
    --bg-elevated: rgba(30, 35, 52, 0.95);
    --bg-glass: rgba(255, 255, 255, 0.03);
    --bg-input: rgba(0, 0, 0, 0.35);
    --border-subtle: rgba(255, 255, 255, 0.06);
    --border-light: rgba(255, 255, 255, 0.1);

    --accent: #e05a6d;
    --accent-glow: rgba(224, 90, 109, 0.25);
    --accent-hover: #c94b5c;
    --accent-soft: rgba(224, 90, 109, 0.12);
    --teal: #2dd4a8;
    --teal-glow: rgba(45, 212, 168, 0.2);
    --teal-soft: rgba(45, 212, 168, 0.1);
    --gold: #e8b84b;
    --gold-glow: rgba(232, 184, 75, 0.25);
    --gold-soft: rgba(232, 184, 75, 0.1);
    --purple: #8b6cc7;
    --purple-soft: rgba(139, 108, 199, 0.12);
    --blue: #5b9cf5;
    --blue-soft: rgba(91, 156, 245, 0.1);
    --red: #e05a5a;
    --green: #4ade80;

    --text-primary: #eef0f4;
    --text-secondary: #8e95a3;
    --text-dim: #5a6070;
    --text-inverse: #0c0f14;

    --radius-xs: 6px;
    --radius-sm: 10px;
    --radius-md: 14px;
    --radius-lg: 20px;
    --radius-xl: 28px;
    --radius-full: 9999px;

    --shadow-sm: 0 2px 8px rgba(0,0,0,0.2);
    --shadow-md: 0 8px 24px rgba(0,0,0,0.3);
    --shadow-lg: 0 16px 48px rgba(0,0,0,0.4);
    --shadow-accent: 0 4px 16px var(--accent-glow);

    --transition-fast: all 0.15s ease;
    --transition: all 0.25s ease;
    --transition-slow: all 0.4s ease;

    --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-display: 'Outfit', var(--font-sans);
}

/* Light Theme */
body.light-theme {
    --bg-primary: #f4f5f7;
    --bg-secondary: #ffffff;
    --bg-card: rgba(255, 255, 255, 0.95);
    --bg-card-hover: rgba(245, 246, 250, 1);
    --bg-elevated: rgba(255, 255, 255, 0.98);
    --bg-glass: rgba(0, 0, 0, 0.02);
    --bg-input: rgba(0, 0, 0, 0.04);
    --border-subtle: rgba(0, 0, 0, 0.06);
    --border-light: rgba(0, 0, 0, 0.1);
    --text-primary: #1a1d24;
    --text-secondary: #5a6070;
    --text-dim: #8e95a3;
    --text-inverse: #eef0f4;
    --shadow-sm: 0 2px 8px rgba(0,0,0,0.06);
    --shadow-md: 0 8px 24px rgba(0,0,0,0.08);
    --shadow-lg: 0 16px 48px rgba(0,0,0,0.12);
}

* { margin:0; padding:0; box-sizing:border-box; font-family: var(--font-sans); }
body { background: var(--bg-primary); color: var(--text-primary); min-height:100vh; overflow-x:hidden; transition: background 0.3s ease, color 0.3s ease; }
body.dark-theme { background-image: radial-gradient(ellipse at 15% 10%, rgba(224,90,109,.06) 0%, transparent 50%), radial-gradient(ellipse at 85% 90%, rgba(45,212,168,.04) 0%, transparent 50%); }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.01em; }
::-webkit-scrollbar { width:5px; height:5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border-light); border-radius:10px; }
.hidden { display:none!important; }
.full-width { width:100%; }

@keyframes fadeIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }
@keyframes slideUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
@keyframes slideDown { from{opacity:0;transform:translateY(-20px)} to{opacity:1;transform:translateY(0)} }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-6px)} }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.6} }
@keyframes spin { to{transform:rotate(360deg)} }
@keyframes goldShimmer { 0%{background-position:-200% 0} 100%{background-position:200% 0} }
@keyframes heartBeat { 0%{transform:scale(1)} 14%{transform:scale(1.3)} 28%{transform:scale(1)} 42%{transform:scale(1.3)} 70%{transform:scale(1)} }
@keyframes confettiFall { 0%{transform:translateY(-100vh) rotate(0)} 100%{transform:translateY(100vh) rotate(720deg)} }
@keyframes pulseExpand { 0%{transform:scale(1);opacity:.4} 100%{transform:scale(1.6);opacity:0} }
@keyframes glowPulse { 0%,100%{box-shadow:0 0 8px var(--accent-glow)} 50%{box-shadow:0 0 20px var(--accent-glow)} }

/* ============ AUTH SPLASH ============ */
.auth-splash { position:fixed; inset:0; z-index:5000; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.auth-splash-bg { position:absolute; inset:0; background: var(--bg-primary); }
.auth-splash-bg::before { content:''; position:absolute; inset:0; background: radial-gradient(ellipse at 30% 30%, rgba(224,90,109,.08), transparent 60%), radial-gradient(ellipse at 70% 70%, rgba(45,212,168,.06), transparent 60%); }
.auth-splash-content { position:relative; z-index:2; width:100%; max-width:440px; padding:36px 32px; background: var(--bg-card); backdrop-filter:blur(20px); border:1px solid var(--border-subtle); border-radius: var(--radius-xl); box-shadow: var(--shadow-lg); }

.splash-logo { text-align:center; margin-bottom:32px; }
.splash-logo-icon { width:64px; height:64px; margin:0 auto 16px; background: linear-gradient(135deg, var(--accent), var(--teal)); border-radius: var(--radius-lg); display:flex; align-items:center; justify-content:center; font-size:1.7rem; color:#fff; box-shadow: var(--shadow-accent); animation: float 4s infinite ease-in-out; }
.splash-logo h1 { font-size:1.8rem; font-weight:800; letter-spacing:2px; margin-bottom:6px; }
.splash-logo h1 span { color: var(--accent); }
.splash-logo .slogan { color: var(--text-secondary); font-size:.82rem; letter-spacing:.5px; }

/* Language Selector */
.lang-selector { display:flex; justify-content:center; gap:4px; margin-bottom:20px; background: var(--bg-input); border-radius: var(--radius-full); padding:3px; }
.lang-btn { flex:1; padding:7px 14px; border-radius: var(--radius-full); border:none; background:transparent; color: var(--text-secondary); font-size:.78rem; font-weight:700; cursor:pointer; transition: var(--transition-fast); text-transform:uppercase; letter-spacing:.5px; }
.lang-btn.active { background: var(--accent); color:#fff; box-shadow: var(--shadow-accent); }

.auth-tabs { display:flex; background: var(--bg-input); border-radius: var(--radius-full); padding:3px; margin-bottom:24px; }
.auth-tab { flex:1; padding:11px; border-radius: var(--radius-full); text-align:center; font-weight:700; font-size:.9rem; color: var(--text-secondary); background:transparent; cursor:pointer; border:none; transition: var(--transition-fast); }
.auth-tab.active { background: var(--accent); color:#fff; box-shadow: var(--shadow-accent); }
.auth-form { display:none; }
.auth-form.active { display:block; animation: fadeIn .3s ease; }

/* Social Login Buttons */
.social-login { display:flex; gap:8px; margin-bottom:18px; }
.social-btn { flex:1; padding:10px; border-radius: var(--radius-sm); border:1px solid var(--border-light); background: var(--bg-glass); color: var(--text-primary); font-size:.85rem; font-weight:600; cursor:pointer; transition: var(--transition-fast); display:flex; align-items:center; justify-content:center; gap:6px; }
.social-btn:hover { background: var(--bg-input); border-color: var(--accent); }
.divider-text { text-align:center; color: var(--text-dim); font-size:.75rem; margin-bottom:18px; position:relative; }
.divider-text::before,.divider-text::after { content:''; position:absolute; top:50%; width:35%; height:1px; background: var(--border-light); }
.divider-text::before { left:0; }
.divider-text::after { right:0; }

/* ============ INPUTS ============ */
.input-group { display:flex; flex-direction:column; gap:5px; margin-bottom:14px; }
.input-group label { font-size:.78rem; color: var(--text-secondary); font-weight:600; letter-spacing:.3px; }
.input-group input, .input-group select, .input-group textarea {
    background: var(--bg-input); border:1px solid var(--border-subtle); border-radius: var(--radius-sm);
    padding:11px 14px; color: var(--text-primary); font-size:.88rem; transition: var(--transition-fast); outline:none;
}
.input-group input:focus, .input-group select:focus, .input-group textarea:focus {
    border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft);
}
.input-group input::placeholder { color: var(--text-dim); }
.form-row { display:flex; gap:10px; }
.form-row .input-group { flex:1; }

/* ============ BUTTONS ============ */
button { cursor:pointer; border:none; outline:none; transition: var(--transition); font-family: var(--font-sans); font-weight:600; }
button:active { transform:scale(.98); }
.btn-primary { background: var(--accent); color:#fff; padding:11px 22px; border-radius: var(--radius-sm); box-shadow: var(--shadow-accent); display:inline-flex; align-items:center; justify-content:center; gap:8px; font-size:.88rem; }
.btn-primary:hover { background: var(--accent-hover); box-shadow: 0 6px 20px var(--accent-glow); transform:translateY(-1px); }
.btn-secondary { background: var(--bg-glass); color: var(--text-primary); padding:11px 20px; border-radius: var(--radius-sm); border:1px solid var(--border-light); display:inline-flex; align-items:center; justify-content:center; gap:8px; font-size:.88rem; }
.btn-secondary:hover { background: var(--bg-input); border-color: var(--text-dim); }
.btn-gold { background: linear-gradient(135deg, var(--gold), #d4a03c); color: var(--text-inverse); font-weight:800; padding:12px 24px; border-radius: var(--radius-sm); box-shadow: 0 4px 16px var(--gold-glow); display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.btn-gold:hover { box-shadow: 0 6px 24px var(--gold-glow); transform:translateY(-2px); }
.btn-sm { padding:7px 14px; font-size:.8rem; border-radius: var(--radius-xs); }
.btn-lg { padding:14px 24px; font-size:.95rem; }
.btn-icon { background: var(--bg-glass); color: var(--text-secondary); width:38px; height:38px; border-radius: var(--radius-full); display:flex; align-items:center; justify-content:center; font-size:1rem; border:1px solid var(--border-subtle); }
.btn-icon:hover { background: var(--bg-input); color: var(--text-primary); }
.btn-danger { background: rgba(224,90,90,.12); color: var(--red); border:1px solid rgba(224,90,90,.2); padding:10px 18px; border-radius: var(--radius-sm); }
.btn-crush { background: var(--purple-soft); color: var(--purple); border:1px solid rgba(139,108,199,.25); padding:8px 12px; border-radius: var(--radius-sm); font-size:.8rem; }

/* ============ BADGES ============ */
.badge { display:inline-flex; align-items:center; gap:4px; padding:3px 10px; border-radius: var(--radius-full); font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.5px; }
.badge-free { background: var(--bg-glass); color: var(--text-secondary); border:1px solid var(--border-subtle); }
.badge-premium { background: linear-gradient(135deg, var(--accent), var(--purple)); color:#fff; }
.badge-ultra { background: linear-gradient(135deg, var(--gold), #d4a03c); color: var(--text-inverse); animation: glowPulse 3s infinite; }

/* Mood Badges */
.mood-badge { display:inline-flex; align-items:center; gap:3px; padding:2px 8px; border-radius: var(--radius-full); font-size:.68rem; font-weight:600; background: var(--bg-glass); border:1px solid var(--border-subtle); }

/* ============ ONBOARDING ============ */
.onboarding-overlay { position:fixed; inset:0; z-index:6000; background: var(--bg-primary); display:flex; align-items:center; justify-content:center; }
.onboarding-container { width:100%; max-width:480px; text-align:center; padding:30px; overflow:hidden; }
.onboarding-slides-track { display:flex; transition:transform .45s cubic-bezier(.4,0,.2,1); will-change:transform; }
.onboarding-slide { min-width:100%; padding:30px 20px; display:flex; flex-direction:column; align-items:center; gap:18px; }
.slide-icon { width:90px; height:90px; border-radius: var(--radius-full); display:flex; align-items:center; justify-content:center; font-size:2.2rem; color:#fff; box-shadow: var(--shadow-md); animation: float 4s infinite ease-in-out; }
.onboarding-slide h2 { font-size:1.4rem; }
.onboarding-slide p { color: var(--text-secondary); font-size:.9rem; line-height:1.5; max-width:320px; }
.onboarding-dots { display:flex; justify-content:center; gap:6px; margin:28px 0 18px; }
.dot { width:8px; height:8px; border-radius: var(--radius-full); background: var(--border-light); transition: var(--transition); }
.dot.active { width:24px; background: var(--accent); }
.onboarding-actions { display:flex; justify-content:space-between; gap:14px; }

/* Quiz */
.quiz-question { font-size:1.1rem; margin-bottom:16px; font-weight:600; color: var(--text-secondary); }
.quiz-options { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.quiz-option { background: var(--bg-card); border:2px solid var(--border-subtle); border-radius: var(--radius-md); padding:16px 22px; cursor:pointer; transition: var(--transition); display:flex; flex-direction:column; align-items:center; gap:8px; min-width:120px; font-size:.9rem; font-weight:600; color: var(--text-primary); }
.quiz-option:hover { border-color: var(--accent); transform:translateY(-2px); }
.quiz-option.selected { border-color: var(--accent); background: var(--accent-soft); box-shadow: 0 0 0 3px var(--accent-glow); }
.quiz-option .quiz-emoji { font-size:1.8rem; }

/* ============ APP LAYOUT ============ */
.app-container { display:flex; height:100vh; width:100vw; overflow:hidden; }
.sidebar { width:230px; background: var(--bg-secondary); border-right:1px solid var(--border-subtle); display:flex; flex-direction:column; padding:16px 12px; z-index:10; flex-shrink:0; transition: background 0.3s ease; }
.brand { display:flex; align-items:center; gap:10px; margin-bottom:18px; padding:4px; }
.brand-logo { width:36px; height:36px; background: linear-gradient(135deg, var(--accent), var(--teal)); border-radius: var(--radius-sm); display:flex; align-items:center; justify-content:center; font-size:1rem; color:#fff; flex-shrink:0; }
.brand-text h2 { font-size:1rem; line-height:1.1; letter-spacing:1px; color: var(--text-primary); }
.brand-text h2 span { color: var(--accent); }
.brand-tag { font-size:.58rem; color: var(--text-dim); letter-spacing:.3px; }

.sidebar-user { display:flex; align-items:center; gap:9px; padding:10px; background: var(--bg-glass); border:1px solid var(--border-subtle); border-radius: var(--radius-sm); margin-bottom:14px; }
.avatar-wrapper { position:relative; width:40px; height:40px; flex-shrink:0; }
.avatar-wrapper img { width:100%; height:100%; border-radius: var(--radius-full); object-fit:cover; border:2px solid var(--border-light); }
.online-indicator { position:absolute; bottom:1px; right:1px; width:10px; height:10px; background: var(--green); border-radius: var(--radius-full); border:2px solid var(--bg-secondary); }
.user-info h4 { font-size:.82rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:110px; }

.nav-menu { display:flex; flex-direction:column; gap:2px; flex:1; overflow-y:auto; }
.nav-btn { display:flex; align-items:center; gap:9px; padding:9px 11px; border-radius: var(--radius-xs); background:transparent; color: var(--text-secondary); font-size:.82rem; font-weight:600; text-align:left; width:100%; position:relative; }
.nav-btn i { width:16px; text-align:center; font-size:.88rem; }
.nav-btn:hover { background: var(--bg-glass); color: var(--text-primary); }
.nav-btn.active { background: var(--accent-soft); color: var(--accent); }
.nav-btn .unread-count { background: var(--accent); color:#fff; font-size:.6rem; min-width:16px; height:16px; border-radius: var(--radius-full); display:flex; align-items:center; justify-content:center; margin-left:auto; }
.premium-nav-btn { color: var(--gold)!important; }
.nav-divider { height:1px; background: var(--border-subtle); margin:6px 0; }
.sidebar-footer { margin-top:auto; padding-top:10px; border-top:1px solid var(--border-subtle); }

.night-indicator { display:flex; align-items:center; gap:5px; padding:6px 9px; background: var(--blue-soft); border:1px solid rgba(91,156,245,.15); border-radius: var(--radius-xs); font-size:.7rem; color: var(--blue); margin-bottom:6px; }
.night-indicator i { animation: pulse 2s infinite; }

/* ============ MAIN CONTENT ============ */
.main-content { flex:1; overflow-y:auto; padding:0; background: var(--bg-primary); transition: background 0.3s ease; }
.tab-page { display:none; padding:24px 28px; animation: fadeIn .25s ease; }
.tab-page.active { display:block; }
.page-header { margin-bottom:22px; }
.page-header h1 { font-size:1.5rem; margin-bottom:3px; }
.page-header p { color: var(--text-secondary); font-size:.82rem; }

/* ============ DISCOVER ============ */
.discover-header { display:flex; flex-direction:column; gap:12px; }
.header-text-part { display:flex; align-items:center; justify-content:space-between; }
.discover-search-bar { flex:1; display:flex; align-items:center; background: var(--bg-card); border:1px solid var(--border-subtle); border-radius: var(--radius-full); padding:0 14px; }
.search-icon { color: var(--text-dim); margin-right:8px; font-size:.85rem; }
.discover-search-bar input { flex:1; background:none; border:none; color: var(--text-primary); padding:10px 0; font-size:.88rem; outline:none; }
.filter-dropdown-container { position:relative; }
.filter-dropdown { position:absolute; right:0; top:120%; width:260px; background: var(--bg-elevated); border:1px solid var(--border-light); border-radius: var(--radius-md); padding:16px; box-shadow: var(--shadow-lg); z-index:20; }
.filter-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }

/* AI Section */
.ai-matchmaker-section { background: var(--purple-soft); border:1px solid rgba(139,108,199,.15); border-radius: var(--radius-lg); padding:18px; margin-bottom:18px; }
.ai-matchmaker-section h3 { font-size:.92rem; margin-bottom:4px; display:flex; align-items:center; gap:7px; }
.ai-matchmaker-section h3 i { color: var(--purple); }
.ai-matchmaker-section > p { font-size:.78rem; color: var(--text-secondary); margin-bottom:12px; }
.ai-match-card { display:flex; align-items:center; gap:12px; background: var(--bg-card); border:1px solid var(--border-subtle); border-radius: var(--radius-sm); padding:12px; cursor:pointer; transition: var(--transition); }
.ai-match-card:hover { transform:translateX(3px); border-color: var(--purple); }
.ai-match-card .avatar-wrapper { width:46px; height:46px; }
.ai-match-info { flex:1; }
.ai-match-info h4 { font-size:.85rem; margin-bottom:2px; }
.ai-match-info p { font-size:.75rem; color: var(--text-secondary); font-style:italic; }
.ai-match-score { background: linear-gradient(135deg, var(--purple), var(--accent)); color:#fff; padding:4px 10px; border-radius: var(--radius-full); font-size:.72rem; font-weight:800; }

/* Compat */
.compat-bar { width:100%; height:3px; background: var(--border-subtle); border-radius: var(--radius-full); overflow:hidden; margin-top:5px; }
.compat-bar-fill { height:100%; border-radius: var(--radius-full); background: linear-gradient(90deg, var(--teal), var(--accent)); transition:width .5s ease; }
.compat-tags { display:flex; gap:4px; flex-wrap:wrap; margin-top:5px; }
.compat-tags span { font-size:.62rem; background: var(--teal-soft); color: var(--teal); padding:2px 6px; border-radius: var(--radius-full); }

/* QOTD Section */
.qotd-section { background: var(--blue-soft); border:1px solid rgba(91,156,245,.12); border-radius: var(--radius-lg); padding:18px; margin-bottom:18px; }
.qotd-section h3 { font-size:.88rem; display:flex; align-items:center; gap:7px; margin-bottom:10px; color: var(--blue); }
.qotd-question { font-size:1.05rem; font-weight:700; margin-bottom:12px; line-height:1.4; }
.qotd-input-row { display:flex; gap:8px; }
.qotd-input-row input { flex:1; background: var(--bg-input); border:1px solid var(--border-subtle); border-radius: var(--radius-full); padding:9px 16px; color: var(--text-primary); font-size:.82rem; outline:none; }
.qotd-input-row input:focus { border-color: var(--blue); }
.qotd-answers { margin-top:14px; display:flex; flex-direction:column; gap:8px; }
.qotd-answer-card { display:flex; align-items:flex-start; gap:10px; background: var(--bg-card); border:1px solid var(--border-subtle); border-radius: var(--radius-sm); padding:12px; }
.qotd-answer-card .avatar-wrapper { width:34px; height:34px; }
.qotd-answer-body { flex:1; }
.qotd-answer-body p { font-size:.82rem; margin-bottom:5px; }
.qotd-answer-actions { display:flex; gap:6px; align-items:center; }
.qotd-answer-actions button { font-size:.72rem; padding:4px 8px; }
.qotd-answer-actions .like-count { font-size:.72rem; color: var(--text-dim); }

/* Nearby */
.nearby-section { margin-bottom:18px; }
.nearby-section h3 { font-size:.92rem; margin-bottom:8px; }
.nearby-chips { display:flex; gap:6px; flex-wrap:wrap; }
.nearby-chip { background: var(--bg-card); border:1px solid var(--border-subtle); padding:5px 12px; border-radius: var(--radius-full); font-size:.78rem; color: var(--text-secondary); cursor:pointer; transition: var(--transition-fast); }
.nearby-chip:hover, .nearby-chip.active { border-color: var(--teal); color: var(--teal); background: var(--teal-soft); }

/* Stories */
.stories-section { margin-bottom:18px; }
.stories-section h3 { font-size:.92rem; margin-bottom:8px; }
.stories-scroll { display:flex; gap:12px; overflow-x:auto; padding-bottom:8px; }
.story-item { display:flex; flex-direction:column; align-items:center; gap:5px; cursor:pointer; min-width:66px; }
.story-ring { width:56px; height:56px; border-radius: var(--radius-full); border:2px solid var(--accent); padding:2px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.story-ring img { width:100%; height:100%; border-radius: var(--radius-full); object-fit:cover; }
.story-ring.add-ring { border-style:dashed; border-color: var(--text-dim); font-size:1.2rem; color: var(--text-dim); }
.story-item span { font-size:.68rem; color: var(--text-secondary); max-width:66px; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Discover Grid */
.discover-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap:14px; }
.discover-card { background: var(--bg-card); border:1px solid var(--border-subtle); border-radius: var(--radius-md); overflow:hidden; transition: var(--transition); }
.discover-card:hover { transform:translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--accent-glow); }
.discover-card-img { position:relative; height:150px; overflow:hidden; background: var(--bg-input); }
.discover-card-img img { width:100%; height:100%; object-fit:cover; }
.discover-badge { position:absolute; top:8px; right:8px; }
.discover-mood { position:absolute; bottom:8px; left:8px; }
.discover-card-body { padding:12px; }
.discover-card-info h3 { font-size:.92rem; margin-bottom:3px; display:flex; align-items:center; gap:5px; }
.discover-card-info p { font-size:.78rem; color: var(--text-secondary); line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.discover-tags { display:flex; flex-wrap:wrap; gap:3px; margin:8px 0; }
.tag { display:inline-flex; align-items:center; padding:2px 7px; border-radius: var(--radius-full); font-size:.68rem; font-weight:600; background: var(--purple-soft); color: var(--purple); }
.discover-card-actions { display:flex; gap:5px; }
.discover-card-actions .btn-primary { flex:1; font-size:.78rem; padding:7px; }
.discover-card-actions .btn-crush { font-size:.72rem; padding:7px 9px; }

/* ============ MATCHES (Swipe) ============ */
.matches-container { max-width:440px; margin:0 auto; }
.swipe-card-stack { position:relative; height:420px; margin-bottom:18px; }
.swipe-card { position:absolute; width:100%; height:100%; background: var(--bg-card); border:1px solid var(--border-subtle); border-radius: var(--radius-lg); overflow:hidden; transition: transform .4s ease, opacity .4s ease; }
.swipe-card.behind { transform: scale(.94) translateY(12px); opacity:.5; z-index:0; }
.swipe-card:not(.behind) { z-index:1; }
.swipe-card-img { height:55%; overflow:hidden; position:relative; }
.swipe-card-img img { width:100%; height:100%; object-fit:cover; }
.swipe-card-overlay { position:absolute; bottom:0; left:0; right:0; padding:14px; background: linear-gradient(transparent, rgba(0,0,0,.75)); }
.swipe-card-overlay h2 { font-size:1.3rem; color:#fff; display:flex; align-items:center; gap:7px; }
.swipe-card-overlay .age-tag { font-weight:400; font-size:.95rem; opacity:.8; }
.swipe-card-body { padding:14px; height:45%; overflow-y:auto; }
.swipe-card-body p { font-size:.82rem; color: var(--text-secondary); margin-bottom:8px; line-height:1.4; }
.swipe-card-body .compat-score { display:flex; align-items:center; gap:6px; margin-bottom:6px; }
.swipe-card-body .compat-score span { font-size:.78rem; font-weight:700; color: var(--teal); }
.swipe-actions { display:flex; justify-content:center; gap:14px; }
.swipe-btn { width:56px; height:56px; border-radius: var(--radius-full); display:flex; align-items:center; justify-content:center; font-size:1.4rem; transition: var(--transition); border:1px solid var(--border-light); background: var(--bg-card); }
.swipe-btn:hover { transform:scale(1.1); }
.swipe-btn.pass { color: var(--text-dim); }
.swipe-btn.pass:hover { border-color: var(--red); color: var(--red); background: rgba(224,90,90,.08); }
.swipe-btn.like { color: var(--accent); border-color: var(--accent); }
.swipe-btn.like:hover { background: var(--accent-soft); box-shadow: var(--shadow-accent); }
.swipe-btn.chat { color: var(--teal); border-color: var(--teal); }
.swipe-btn.chat:hover { background: var(--teal-soft); }
.swipe-btn.crush { color: var(--purple); border-color: var(--purple); }
.swipe-btn.crush:hover { background: var(--purple-soft); }

.match-list-section { margin-top:20px; }
.match-list-section h3 { font-size:.92rem; margin-bottom:10px; display:flex; align-items:center; gap:6px; }
.match-list { display:flex; gap:10px; overflow-x:auto; padding-bottom:6px; }
.match-item { display:flex; flex-direction:column; align-items:center; gap:4px; cursor:pointer; min-width:64px; }
.match-item .avatar-wrapper { width:52px; height:52px; border:2px solid var(--accent); border-radius: var(--radius-full); padding:2px; }
.match-item span { font-size:.7rem; color: var(--text-secondary); text-align:center; max-width:64px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ============ RANDOM ============ */
.random-container { max-width:460px; margin:0 auto; text-align:center; }
.random-theme-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin:18px 0; }
.random-theme-btn { background: var(--bg-card); border:1px solid var(--border-subtle); border-radius: var(--radius-md); padding:18px; display:flex; flex-direction:column; align-items:center; gap:7px; transition: var(--transition); cursor:pointer; }
.random-theme-btn:hover { transform:translateY(-2px); border-color: var(--accent); box-shadow: var(--shadow-sm); }
.random-theme-btn .theme-emoji { font-size:1.8rem; }
.random-theme-btn .theme-label { font-size:.82rem; font-weight:700; color: var(--text-primary); }
.random-theme-btn .theme-desc { font-size:.7rem; color: var(--text-secondary); }
.random-theme-btn.surprise { grid-column:span 2; background: var(--accent-soft); border-color: rgba(224,90,109,.15); }

.connection-24h-card { background: var(--gold-soft); border:1px solid rgba(232,184,75,.15); border-radius: var(--radius-lg); padding:18px; margin-top:18px; text-align:center; }
.connection-timer { font-size:1.8rem; font-weight:800; font-family: var(--font-display); color: var(--gold); margin:8px 0; }
.connection-actions { display:flex; gap:8px; justify-content:center; margin-top:12px; }

/* ============ QOTD TAB ============ */
.qotd-container { max-width:560px; margin:0 auto; }
.qotd-main-card { background: var(--blue-soft); border:1px solid rgba(91,156,245,.12); border-radius: var(--radius-lg); padding:24px; margin-bottom:22px; text-align:center; }
.qotd-main-card .qotd-label { font-size:.72rem; color: var(--blue); text-transform:uppercase; letter-spacing:1px; font-weight:700; margin-bottom:10px; }
.qotd-main-card .qotd-big-question { font-size:1.2rem; font-weight:700; line-height:1.4; margin-bottom:16px; }

/* ============ CHATS ============ */
.chat-layout { display:flex; height:calc(100vh - 48px); overflow:hidden; }
.chat-list-panel { width:280px; border-right:1px solid var(--border-subtle); display:flex; flex-direction:column; flex-shrink:0; background: var(--bg-secondary); }
.chat-list-header { padding:14px; border-bottom:1px solid var(--border-subtle); }
.chat-list-header h2 { font-size:1rem; margin-bottom:8px; }
.search-box { display:flex; align-items:center; gap:7px; background: var(--bg-input); border-radius: var(--radius-full); padding:6px 12px; }
.search-box i { color: var(--text-dim); font-size:.8rem; }
.search-box input { flex:1; background:none; border:none; color: var(--text-primary); font-size:.82rem; outline:none; }
.chat-threads-list { flex:1; overflow-y:auto; padding:6px; }
.chat-thread-item { display:flex; align-items:center; gap:9px; padding:9px 10px; border-radius: var(--radius-xs); cursor:pointer; transition: var(--transition-fast); }
.chat-thread-item:hover { background: var(--bg-glass); }
.chat-thread-item.active { background: var(--accent-soft); }
.thread-info { flex:1; min-width:0; }
.thread-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:2px; }
.thread-top h4 { font-size:.82rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.thread-time { font-size:.68rem; color: var(--text-dim); }
.thread-bottom { display:flex; justify-content:space-between; align-items:center; }
.thread-snippet { font-size:.75rem; color: var(--text-secondary); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:150px; }
.mask-level-badge { display:inline-flex; align-items:center; gap:2px; font-size:.62rem; padding:1px 5px; border-radius: var(--radius-full); background: var(--purple-soft); color: var(--purple); }

.chat-room-panel { flex:1; display:flex; flex-direction:column; background: var(--bg-primary); }
.no-chat-selected { display:flex; flex-direction:column; align-items:center; justify-content:center; height:100%; gap:12px; color: var(--text-dim); }
.placeholder-icon { font-size:3.5rem; opacity:.15; }
.active-chat-container { display:flex; flex-direction:column; height:100%; }
.chat-header { display:flex; align-items:center; justify-content:space-between; padding:11px 16px; border-bottom:1px solid var(--border-subtle); background: var(--bg-secondary); }
.chat-user-meta { display:flex; align-items:center; gap:9px; }
.chat-user-meta h3 { font-size:.9rem; display:flex; align-items:center; gap:5px; }
.user-status { font-size:.72rem; color: var(--text-secondary); display:block; }
.chat-actions { display:flex; align-items:center; gap:5px; }
.btn-reveal-identity { background: var(--purple-soft); color: var(--purple); padding:5px 11px; border-radius: var(--radius-sm); font-size:.75rem; display:flex; align-items:center; gap:5px; border:1px solid rgba(139,108,199,.2); }
.btn-reveal-identity.revealed { background: var(--teal-soft); color: var(--teal); border-color: rgba(45,212,168,.2); }
.call-btn { background: var(--teal-soft); color: var(--teal); border-color: rgba(45,212,168,.15); }
.video-call-trigger { background: var(--blue-soft); color: var(--blue); border-color: rgba(91,156,245,.15); }
.chat-options-container { position:relative; }
.chat-options-dropdown { position:absolute; right:0; top:120%; background: var(--bg-elevated); border:1px solid var(--border-light); border-radius: var(--radius-sm); box-shadow: var(--shadow-lg); z-index:20; min-width:170px; }
.chat-options-dropdown ul { list-style:none; padding:5px 0; }
.chat-options-dropdown li { padding:9px 14px; font-size:.82rem; display:flex; align-items:center; gap:8px; cursor:pointer; transition: var(--transition-fast); color: var(--text-primary); }
.chat-options-dropdown li:hover { background: var(--bg-glass); }
.danger-text { color: var(--red)!important; }

.messages-box { flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:6px; }
.msg-row { display:flex; flex-direction:column; max-width:68%; }
.msg-row.sent { align-self:flex-end; align-items:flex-end; }
.msg-row.received { align-self:flex-start; align-items:flex-start; }
.msg-bubble { padding:9px 13px; border-radius: var(--radius-sm); font-size:.85rem; line-height:1.45; word-break:break-word; }
.msg-row.sent .msg-bubble { background: var(--accent); color:#fff; border-bottom-right-radius:3px; }
.msg-row.received .msg-bubble { background: var(--bg-card); border:1px solid var(--border-subtle); color: var(--text-primary); border-bottom-left-radius:3px; }
.msg-meta { display:flex; align-items:center; gap:3px; font-size:.65rem; color: var(--text-dim); margin-top:2px; }
.read-receipt { font-size:.68rem; }
.read-receipt.sent { color: var(--text-dim); }
.read-receipt.delivered { color: var(--text-secondary); }
.read-receipt.seen { color: var(--teal); }
.typing-indicator { display:flex; align-items:center; gap:6px; padding:7px 14px; font-size:.78rem; color: var(--text-secondary); }
.typing-indicator .dots span { animation: pulse 1.2s infinite; display:inline-block; }
.typing-indicator .dots span:nth-child(2) { animation-delay:.2s; }
.typing-indicator .dots span:nth-child(3) { animation-delay:.4s; }
.sys-msg-row { display:flex; justify-content:center; margin:12px 0; }
.sys-msg-bubble { background: var(--teal-soft); border:1px solid rgba(45,212,168,.15); color: var(--teal); padding:7px 14px; border-radius: var(--radius-full); font-size:.78rem; font-weight:600; text-align:center; }
.chat-msg-image { max-width:100%; max-height:200px; border-radius: var(--radius-sm); object-fit:cover; display:block; cursor:pointer; transition: var(--transition); }
.chat-msg-image:hover { transform:scale(1.02); }
.btn-call-control.muted { background: rgba(224,90,90,.15)!important; border-color: var(--red)!important; color: var(--red)!important; }
.chat-input-bar { display:flex; align-items:center; gap:7px; padding:11px 14px; border-top:1px solid var(--border-subtle); background: var(--bg-secondary); }
.btn-input-action { background: var(--bg-glass); color: var(--text-secondary); width:36px; height:36px; border-radius: var(--radius-full); display:flex; align-items:center; justify-content:center; font-size:.95rem; border:1px solid var(--border-subtle); }
.btn-input-action:hover { color: var(--accent); border-color: var(--accent); }
.chat-input-bar input { flex:1; background: var(--bg-input); border:1px solid var(--border-subtle); border-radius: var(--radius-full); padding:9px 14px; color: var(--text-primary); font-size:.85rem; outline:none; }
.chat-input-bar input:focus { border-color: var(--accent); }
.btn-send { background: var(--accent); color:#fff; width:38px; height:38px; border-radius: var(--radius-full); display:flex; align-items:center; justify-content:center; font-size:.95rem; box-shadow: var(--shadow-accent); }

/* ============ PROFILE ============ */
.profile-container-v2 { max-width:560px; margin:0 auto; display:flex; flex-direction:column; gap:14px; }
.profile-hero-card { background: var(--bg-card); border:1px solid var(--border-subtle); border-radius: var(--radius-lg); overflow:hidden; }
.profile-hero-banner { height:100px; background: linear-gradient(135deg, var(--accent), var(--teal)); position:relative; overflow:hidden; }
.banner-particles span { position:absolute; width:3px; height:3px; background:rgba(255,255,255,.2); border-radius: var(--radius-full); animation: float 6s infinite ease-in-out; }
.banner-particles span:nth-child(1){left:10%;top:30%} .banner-particles span:nth-child(2){left:30%;top:60%;animation-delay:1s;width:5px;height:5px} .banner-particles span:nth-child(3){left:55%;top:20%;animation-delay:2s} .banner-particles span:nth-child(4){left:75%;top:50%;animation-delay:3s} .banner-particles span:nth-child(5){left:90%;top:35%;animation-delay:4s}
.profile-hero-body { padding:0 18px 18px; text-align:center; margin-top:-36px; }
.profile-avatar-centered { position:relative; display:inline-block; }
.avatar-ring-glow { width:72px; height:72px; border-radius: var(--radius-full); background: linear-gradient(135deg, var(--accent), var(--teal)); padding:3px; }
.avatar-ring-glow img { width:100%; height:100%; border-radius: var(--radius-full); object-fit:cover; border:3px solid var(--bg-primary); }
.avatar-edit-btn { position:absolute; bottom:0; right:0; background: var(--accent); color:#fff; width:24px; height:24px; border-radius: var(--radius-full); display:flex; align-items:center; justify-content:center; font-size:.65rem; cursor:pointer; }
.profile-hero-body h1 { font-size:1.2rem; margin:8px 0 2px; }
.profile-handle { color: var(--text-secondary); font-size:.82rem; }
.profile-stats-row { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:14px; }
.stat-card { background: var(--bg-glass); border:1px solid var(--border-subtle); border-radius: var(--radius-xs); padding:10px 6px; text-align:center; transition: var(--transition-fast); }
.stat-card:hover { border-color: var(--accent); }
.stat-card-icon { font-size:.9rem; margin-bottom:3px; color: var(--accent); }
.stat-card-val { display:block; font-size:1rem; font-weight:800; font-family: var(--font-display); }
.stat-card-label { font-size:.68rem; color: var(--text-secondary); }

.profile-section-card { background: var(--bg-card); border:1px solid var(--border-subtle); border-radius: var(--radius-md); padding:14px; }
.section-card-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.section-card-header h3 { font-size:.9rem; display:flex; align-items:center; gap:6px; }
.bio-content-v2 { font-size:.85rem; color: var(--text-secondary); line-height:1.5; }
.profile-tags-display { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
.bio-edit-form { margin-top:10px; }
.bio-edit-form textarea { width:100%; resize:vertical; min-height:55px; }
.bio-form-actions { display:flex; gap:6px; justify-content:flex-end; }

.mood-selector { display:flex; flex-wrap:wrap; gap:5px; margin-top:6px; }
.mood-option { padding:5px 11px; border-radius: var(--radius-full); font-size:.75rem; font-weight:600; background: var(--bg-glass); border:1px solid var(--border-subtle); cursor:pointer; transition: var(--transition-fast); color: var(--text-secondary); }
.mood-option:hover { border-color: var(--accent); }
.mood-option.active { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }

.ghost-toggle { display:flex; align-items:center; justify-content:space-between; padding:10px; background: var(--bg-glass); border:1px solid var(--border-subtle); border-radius: var(--radius-xs); }
.ghost-toggle-info { display:flex; align-items:center; gap:8px; }
.ghost-toggle-info i { font-size:1.1rem; color: var(--purple); }
.ghost-toggle-info span { font-size:.82rem; font-weight:600; }
.ghost-toggle-info small { display:block; font-size:.68rem; color: var(--text-secondary); font-weight:400; }
.toggle-switch { position:relative; width:42px; height:22px; cursor:pointer; }
.toggle-switch input { display:none; }
.toggle-slider { position:absolute; inset:0; background: var(--border-light); border-radius: var(--radius-full); transition: var(--transition); }
.toggle-slider::before { content:''; position:absolute; width:16px; height:16px; left:3px; top:3px; background:#fff; border-radius: var(--radius-full); transition: var(--transition); }
.toggle-switch input:checked + .toggle-slider { background: var(--accent); }
.toggle-switch input:checked + .toggle-slider::before { transform:translateX(20px); }

.visitors-section { display:flex; flex-direction:column; gap:6px; }
.visitor-item { display:flex; align-items:center; gap:8px; padding:7px; border-radius: var(--radius-xs); background: var(--bg-glass); }
.visitor-item .avatar-wrapper { width:34px; height:34px; }
.visitor-item span { font-size:.8rem; flex:1; }
.visitor-item .visitor-time { font-size:.68rem; color: var(--text-dim); }
.visitor-blur { filter:blur(4px); pointer-events:none; user-select:none; }

.badges-grid { display:flex; flex-wrap:wrap; gap:6px; }
.gamification-badge { display:flex; align-items:center; gap:5px; padding:5px 10px; border-radius: var(--radius-full); font-size:.72rem; font-weight:600; background: var(--bg-glass); border:1px solid var(--border-subtle); }
.gamification-badge.earned { border-color: var(--gold); background: var(--gold-soft); color: var(--gold); }
.gamification-badge.locked { opacity:.35; }

.profile-quick-actions { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.quick-action-card { background: var(--bg-card); border:1px solid var(--border-subtle); border-radius: var(--radius-md); padding:14px; display:flex; flex-direction:column; align-items:center; gap:7px; transition: var(--transition); color: var(--text-primary); }
.quick-action-card:hover { border-color: var(--accent); transform:translateY(-1px); }
.quick-action-card i { font-size:1.2rem; color: var(--accent); }
.quick-action-card span { font-size:.8rem; }

.my-stories-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:8px; }
.my-story-card { position:relative; border-radius: var(--radius-sm); overflow:hidden; aspect-ratio:3/4; cursor:pointer; transition: var(--transition); }
.my-story-card:hover { transform:scale(1.02); }
.my-story-card img { width:100%; height:100%; object-fit:cover; }
.my-story-overlay { position:absolute; bottom:0; left:0; right:0; padding:6px; background:linear-gradient(transparent,rgba(0,0,0,.6)); display:flex; align-items:center; justify-content:center; }
.my-story-overlay span { font-size:.75rem; font-weight:600; color:#fff; }
.empty-stories-placeholder { text-align:center; padding:24px; color: var(--text-dim); }
.empty-stories-placeholder i { font-size:1.8rem; margin-bottom:6px; display:block; }

/* ============ SETTINGS TAB ============ */
.settings-container { max-width:560px; margin:0 auto; display:flex; flex-direction:column; gap:14px; }
.settings-group { background: var(--bg-card); border:1px solid var(--border-subtle); border-radius: var(--radius-md); overflow:hidden; }
.settings-group-title { font-size:.72rem; text-transform:uppercase; letter-spacing:1px; color: var(--text-dim); font-weight:700; padding:12px 14px 6px; }
.setting-item { display:flex; align-items:center; justify-content:space-between; padding:12px 14px; border-top:1px solid var(--border-subtle); cursor:pointer; transition: var(--transition-fast); }
.setting-item:first-child, .settings-group-title + .setting-item { border-top:none; }
.setting-item:hover { background: var(--bg-glass); }
.setting-left { display:flex; align-items:center; gap:10px; }
.setting-left i { width:18px; text-align:center; font-size:.92rem; color: var(--text-secondary); }
.setting-left span { font-size:.85rem; font-weight:500; }
.setting-left small { display:block; font-size:.72rem; color: var(--text-dim); }
.setting-right { display:flex; align-items:center; gap:6px; color: var(--text-dim); font-size:.82rem; }
.setting-right i { font-size:.7rem; }
.setting-value { font-size:.78rem; color: var(--text-secondary); font-weight:600; }

/* Settings sub-panels */
.blocked-list { display:flex; flex-direction:column; gap:6px; margin-top:8px; }
.blocked-item { display:flex; align-items:center; gap:8px; padding:8px; background: var(--bg-glass); border-radius: var(--radius-xs); }
.blocked-item span { flex:1; font-size:.82rem; }

/* Legal modals */
.legal-content { max-height:50vh; overflow-y:auto; padding:16px; font-size:.82rem; line-height:1.6; color: var(--text-secondary); }
.legal-content h3 { color: var(--text-primary); margin:14px 0 6px; font-size:.92rem; }
.legal-content p { margin-bottom:10px; }

/* ============ MEMBERSHIP ============ */
.membership-container { max-width:780px; margin:0 auto; }
.membership-hero { text-align:center; margin-bottom:22px; }
.hero-badge { display:inline-flex; align-items:center; gap:5px; background: var(--gold-soft); color: var(--gold); padding:5px 12px; border-radius: var(--radius-full); font-size:.78rem; font-weight:700; margin-bottom:8px; border:1px solid rgba(232,184,75,.15); }
.membership-hero h1 { font-size:1.5rem; margin-bottom:5px; }
.membership-hero p { color: var(--text-secondary); font-size:.85rem; }
.pricing-cards-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.pricing-card { background: var(--bg-card); border:1px solid var(--border-subtle); border-radius: var(--radius-lg); padding:22px 18px; position:relative; transition: var(--transition); }
.pricing-card:hover { transform:translateY(-3px); box-shadow: var(--shadow-md); }
.popular-ribbon { position:absolute; top:-1px; right:18px; background: var(--accent); color:#fff; padding:3px 10px; border-radius:0 0 var(--radius-xs) var(--radius-xs); font-size:.68rem; font-weight:800; text-transform:uppercase; }
.pricing-card .card-header { text-align:center; margin-bottom:16px; }
.pricing-card .card-header h3 { font-size:1rem; margin-bottom:6px; }
.pricing-card .card-header .price { font-size:1.6rem; font-weight:800; font-family: var(--font-display); }
.pricing-card .card-header .price span { font-size:.82rem; font-weight:400; color: var(--text-secondary); }
.pricing-card .card-header p { font-size:.78rem; color: var(--text-secondary); }
.tier-icon { width:44px; height:44px; margin:0 auto 8px; border-radius: var(--radius-full); display:flex; align-items:center; justify-content:center; font-size:1.3rem; background: linear-gradient(135deg, var(--accent), var(--purple)); color:#fff; }
.ultra-icon { background: linear-gradient(135deg, var(--gold), #d4a03c)!important; }
.features-list { list-style:none; display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
.features-list li { display:flex; align-items:center; gap:7px; font-size:.82rem; }
.features-list li i { font-size:.72rem; color: var(--teal); }
.features-list li.disabled { color: var(--text-dim); }
.features-list li.disabled i { color: var(--text-dim); }
.premium-tier { border-color: rgba(224,90,109,.2); }
.ultra-tier { border-color: rgba(232,184,75,.2); }

/* ============ MODALS ============ */
.modal-backdrop { position:fixed; inset:0; background:rgba(0,0,0,.6); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; z-index:4000; animation: fadeIn .2s ease; }
.modal-card { background: var(--bg-elevated); border:1px solid var(--border-light); border-radius: var(--radius-lg); width:90%; max-width:420px; max-height:85vh; overflow-y:auto; box-shadow: var(--shadow-lg); }
.modal-header { display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-bottom:1px solid var(--border-subtle); }
.modal-header h2 { font-size:1rem; display:flex; align-items:center; gap:7px; }
.close-modal-btn { background: var(--bg-glass); color: var(--text-secondary); width:30px; height:30px; border-radius: var(--radius-full); display:flex; align-items:center; justify-content:center; border:1px solid var(--border-subtle); }
.modal-body { padding:18px; }
.modal-footer { padding:14px 18px; border-top:1px solid var(--border-subtle); display:flex; gap:8px; justify-content:flex-end; }

.match-modal-content { text-align:center; padding:28px 18px; }
.match-modal-content h1 { font-size:1.8rem; margin-bottom:4px; color: var(--accent); }
.match-modal-content p { color: var(--text-secondary); font-size:.88rem; margin-bottom:16px; }
.match-avatars { display:flex; align-items:center; justify-content:center; gap:18px; margin:18px 0; }
.match-avatars .avatar-ring-glow { width:72px; height:72px; }
.match-heart { font-size:2.2rem; animation: heartBeat 1.5s infinite; }
.match-modal-actions { display:flex; gap:8px; justify-content:center; margin-top:16px; }

.secret-match-content { text-align:center; padding:28px; }
.secret-match-content h1 { font-size:1.4rem; margin-bottom:8px; color: var(--purple); }
.secret-match-content .secret-emoji { font-size:2.5rem; margin-bottom:12px; }

/* Calls */
.call-modal-card { background: var(--bg-elevated); border:1px solid var(--border-light); border-radius: var(--radius-lg); padding:28px; text-align:center; width:90%; max-width:360px; box-shadow: var(--shadow-lg); }
.call-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.call-type-tag { font-size:.78rem; color: var(--teal); display:flex; align-items:center; gap:5px; }
.call-duration { font-size:.95rem; font-weight:700; font-family: var(--font-display); }
.call-avatar-pulse { position:relative; width:90px; height:90px; margin:0 auto 14px; }
.call-avatar-pulse img { width:100%; height:100%; border-radius: var(--radius-full); object-fit:cover; position:relative; z-index:2; }
.pulse-ring { position:absolute; inset:0; border-radius: var(--radius-full); border:2px solid var(--accent); opacity:0; animation: pulseExpand 2s infinite; }
.pulse-ring.r2 { animation-delay:.5s; } .pulse-ring.r3 { animation-delay:1s; }
.call-status { font-size:.85rem; color: var(--text-secondary); }
.call-controls { display:flex; justify-content:center; gap:12px; margin-top:18px; }
.btn-call-control { width:46px; height:46px; border-radius: var(--radius-full); display:flex; align-items:center; justify-content:center; font-size:1rem; background: var(--bg-glass); color: var(--text-primary); border:1px solid var(--border-light); }
.btn-call-control:hover { background: var(--bg-input); }
.btn-call-control.end-call { background: var(--red); color:#fff; border:none; }

.video-call-card { width:90%; max-width:480px; padding:0; overflow:hidden; }
.video-container { position:relative; height:340px; background:#111; }
.remote-video-box { height:100%; display:flex; align-items:center; justify-content:center; }
.video-partner-img { width:100%; height:100%; object-fit:cover; filter:blur(25px); opacity:.4; }
.video-partner-info { position:absolute; top:14px; left:14px; display:flex; align-items:center; gap:7px; }
.video-partner-info h3 { font-size:.92rem; color:#fff; }
.call-timer-badge { background:rgba(0,0,0,.5); padding:3px 9px; border-radius: var(--radius-full); font-size:.78rem; font-weight:700; color:#fff; }
.local-video-pip { position:absolute; bottom:14px; right:14px; width:90px; height:120px; border-radius: var(--radius-sm); overflow:hidden; border:2px solid rgba(255,255,255,.2); background:#222; }
.local-video-stream { width:100%; height:100%; object-fit:cover; }
.local-video-fallback { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background: var(--bg-card); font-size:1.8rem; color: var(--text-dim); }
.local-video-pip span { position:absolute; bottom:3px; left:50%; transform:translateX(-50%); font-size:.6rem; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.7); }
.video-call-controls { display:flex; justify-content:center; gap:12px; padding:14px; background: var(--bg-elevated); }

/* Story Viewer */
.story-viewer-card { width:90%; max-width:380px; background: var(--bg-primary); border-radius: var(--radius-lg); overflow:hidden; position:relative; max-height:88vh; display:flex; flex-direction:column; }
.close-story-btn { position:absolute; top:10px; right:10px; z-index:10; background:rgba(0,0,0,.4); color:#fff; width:30px; height:30px; border-radius: var(--radius-full); display:flex; align-items:center; justify-content:center; font-size:.85rem; }
.story-progress-bar { height:2px; background: var(--border-light); margin:7px 8px; }
.story-progress-fill { height:100%; background: var(--accent); border-radius: var(--radius-full); width:0; transition:width 5s linear; }
.story-author-header { display:flex; align-items:center; gap:8px; padding:8px 12px; }
.story-author-header img { width:32px; height:32px; border-radius: var(--radius-full); object-fit:cover; border:2px solid var(--accent); }
.story-author-header h4 { font-size:.85rem; }
.story-time { font-size:.7rem; color: var(--text-dim); }
.story-media-container { position:relative; flex:1; }
.story-media-container img { width:100%; height:100%; object-fit:cover; max-height:460px; }
.story-caption-overlay { position:absolute; bottom:0; left:0; right:0; padding:14px; background:linear-gradient(transparent,rgba(0,0,0,.7)); font-size:.85rem; color:#fff; }
.story-footer { display:flex; align-items:center; justify-content:space-between; padding:10px 12px; }
.btn-story-like { display:flex; align-items:center; gap:5px; background:none; color: var(--text-primary); font-size:.85rem; border:none; }
.btn-story-like.liked { color: var(--accent); }
.story-likes-panel { position:absolute; bottom:0; left:0; right:0; background: var(--bg-elevated); border-top:1px solid var(--border-light); border-radius: var(--radius-lg) var(--radius-lg) 0 0; padding:14px; max-height:45%; }
.likes-panel-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.like-user-item { display:flex; align-items:center; gap:8px; padding:6px 0; }
.like-user-item img { width:30px; height:30px; border-radius: var(--radius-full); object-fit:cover; }
.story-upload-preview { width:100%; height:180px; border:2px dashed var(--border-light); border-radius: var(--radius-md); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; color: var(--text-dim); cursor:pointer; position:relative; overflow:hidden; transition: var(--transition); }
.story-upload-preview:hover { border-color: var(--accent); }
.story-upload-preview i { font-size:1.8rem; }
.story-upload-preview img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

.selected-plan-summary { text-align:center; padding:14px; margin-bottom:14px; background: var(--bg-glass); border-radius: var(--radius-sm); border:1px solid var(--border-subtle); }
.selected-plan-summary span { font-size:.78rem; color: var(--text-secondary); text-transform:uppercase; letter-spacing:.5px; }
.selected-plan-summary h3 { font-size:1.3rem; margin-top:3px; font-family: var(--font-display); }

.confetti-overlay { position:fixed; inset:0; z-index:9999; pointer-events:none; overflow:hidden; }
.confetti-piece { position:absolute; width:8px; height:8px; top:-10px; animation: confettiFall 3s linear forwards; }

/* ============ RESPONSIVE ============ */
@media(max-width:768px){
    .sidebar{position:fixed;left:-230px;top:0;bottom:0;z-index:100;transition:transform .3s ease;}
    .sidebar.open{transform:translateX(230px);}
    .pricing-cards-grid{grid-template-columns:1fr;}
    .chat-layout{flex-direction:column;}
    .chat-list-panel{width:100%;height:auto;max-height:38%;}
    .discover-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:480px){
    .discover-grid{grid-template-columns:1fr;}
    .form-row{flex-direction:column;}
    .random-theme-grid{grid-template-columns:1fr;}
    .random-theme-btn.surprise{grid-column:span 1;}
    .tab-page{padding:16px;}
}
