/* === FONTS === */
@font-face { font-family: 'Rubik'; src: url('/12minme/static/fonts/rubik-regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Rubik'; src: url('/12minme/static/fonts/rubik-semibold.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Rubik'; src: url('/12minme/static/fonts/rubik-bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }

/* === VARIABLES === */
:root {
    --red: #F55544;
    --red-hover: #d94435;
    --dark: #333333;
    --light: #EBEBEB;
    --white: #FFFFFF;
    --bg: #FAFAFA;
    --text: #333333;
    --text-light: #666666;
    --radius: 6px;
    --shadow: 0 4px 12px rgba(0,0,0,0.08);
    --shadow-hover: 0 8px 24px rgba(0,0,0,0.12);
    --max-width: 1200px;
    --nav-height: 72px;
    --card-bg: #FFFFFF;
    --border: #EBEBEB;
    --nav-bg: #FFFFFF;
    --on-accent: #FFFFFF;
}

/* Dark mode variables moved to end of file */
.icon-sun, .icon-moon { display: none; }

/* === RESET === */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: 'Rubik', -apple-system, BlinkMacSystemFont, sans-serif; color: var(--text); background: var(--bg); line-height: 1.6; font-size: 16px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
/* Prevent iOS zoom on input focus */
@supports (-webkit-touch-callout: none) { input, select, textarea { font-size: 16px !important; } }
/* Touch targets min 44px */
button, .btn, a.btn, input[type="submit"], .nav-links a { min-height: 44px; }
.lang-btn { min-height: auto; }
.theme-toggle { background: var(--dark); color: #fff; border: 2px solid var(--dark); border-radius: 50%; width: 38px; height: 38px; min-height: auto; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-size: 18px; margin-left: 8px; padding: 0; transition: all 0.2s; line-height: 1; box-shadow: 0 2px 8px rgba(0,0,0,0.12); }
.theme-toggle:hover { background: var(--red); border-color: var(--red); }
a { color: var(--red); text-decoration: none; }
a:hover { color: var(--red-hover); }
img { max-width: 100%; height: auto; }
ul { list-style: none; }

/* === SKIP LINK === */
.skip-link { position: absolute; top: -100%; left: 16px; background: var(--red); color: var(--white); padding: 8px 16px; z-index: 9999; border-radius: var(--radius); }
.skip-link:focus { top: 8px; }

/* === LAYOUT === */
.container { max-width: var(--max-width); margin: 0 auto; padding: 0 24px; }

/* === NAVBAR === */
.navbar { background: var(--white); box-shadow: var(--shadow); position: sticky; top: 0; z-index: 100; height: var(--nav-height); }
.nav-container { display: flex; align-items: center; height: var(--nav-height); justify-content: space-between; }
.nav-logo { display: flex; align-items: center; }
.logo-text { font-size: 24px; font-weight: 700; color: var(--red); letter-spacing: -0.5px; }
.nav-toggle { display: none; background: none; border: none; cursor: pointer; padding: 8px; }
.nav-toggle span { display: block; width: 24px; height: 2px; background: var(--dark); margin: 6px 0; transition: all 0.3s; }
.nav-toggle.open span { background: var(--white); }
.nav-toggle.active span:nth-child(1), .nav-toggle.open span:nth-child(1) { transform: rotate(45deg) translate(5px, 6px); }
.nav-toggle.active span:nth-child(2), .nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.active span:nth-child(3), .nav-toggle.open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -6px); }
.nav-menu { display: flex; align-items: center; gap: 8px; }
.nav-links { display: flex; gap: 4px; }
.nav-links a, .nav-dropdown-btn { padding: 8px 16px; color: var(--text); font-weight: 600; font-size: 14px; text-transform: uppercase; letter-spacing: 0.5px; border: none; background: none; cursor: pointer; font-family: inherit; }
.nav-links a:hover, .nav-dropdown-btn:hover { color: var(--red); }
.nav-dropdown { position: relative; }
.nav-dropdown-menu { display: none; position: absolute; top: 100%; left: 0; background: var(--white); box-shadow: var(--shadow); border-radius: var(--radius); min-width: 180px; padding: 8px 0; }
.nav-dropdown:hover .nav-dropdown-menu { display: block; }
.nav-dropdown-menu a { display: block; padding: 10px 20px; font-size: 14px; }
.nav-social { display: none; }
@media (max-width: 768px) { .nav-social { display: flex; gap: 12px; margin: 0; padding: 20px 40px 0; justify-content: center; } }
.nav-social a { color: var(--text-light); }
.nav-social a:hover { color: var(--red); }

/* === BUTTONS === */
.btn { display: inline-block; padding: 14px 32px; font-family: 'Rubik', sans-serif; font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: 1px; border-radius: var(--radius); cursor: pointer; border: 2px solid transparent; transition: all 0.2s; text-align: center; }
.btn-primary { background: var(--red); color: var(--on-accent); border-color: var(--red); }
.btn-primary:hover { background: var(--red-hover); border-color: var(--red-hover); color: var(--white); }
.btn-outline { background: transparent; color: var(--red); border-color: var(--red); }
.btn-outline:hover { background: var(--red); color: var(--on-accent); }
.btn-small { padding: 6px 14px; font-size: 12px; font-weight: 600; border-radius: 4px; line-height: 1; min-height: auto; display: inline-flex; align-items: center; justify-content: center; }
.btn-danger { background: #dc3545; color: var(--white); border: none; }

/* === HERO === */
.hero { background: var(--red); color: var(--on-accent); padding: 140px 0 100px; text-align: center; }
.hero-title { font-size: clamp(48px, 10vw, 120px); font-weight: 900; line-height: 0.95; margin-bottom: 24px; text-transform: uppercase; letter-spacing: -2px; }
.hero-light { color: var(--dark); }
.hero-subtitle { font-size: 18px; max-width: 600px; margin: 0 auto 40px; color: rgba(255,255,255,0.85); line-height: 1.7; }
.hero-cta { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; }
.btn-primary-white { background: var(--white); color: var(--red); font-weight: 700; padding: 16px 32px; border-radius: var(--radius); letter-spacing: 1px; }
.btn-primary-white:hover { background: var(--dark); color: var(--white); }
.btn-outline-white { border: 2px solid var(--white); color: var(--white); font-weight: 700; padding: 16px 32px; border-radius: var(--radius); letter-spacing: 1px; }
.btn-outline-white:hover { background: var(--white); color: var(--red); }

/* === SECTIONS === */
section { padding: 80px 0; }
h2 { font-size: 32px; font-weight: 700; text-transform: uppercase; margin-bottom: 24px; letter-spacing: 1px; }
h3 { font-size: 20px; font-weight: 700; text-transform: uppercase; margin-bottom: 12px; }
.section-subtitle { color: var(--text-light); margin-bottom: 32px; }
.section-cta { text-align: center; margin-top: 48px; }
.mt-large { margin-top: 64px; }
.mt-medium { margin-top: 32px; }

/* === STATS === */
.stats-section { background: var(--white); padding: 60px 0; }
.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px 32px; text-align: center; }
.stat-number { display: block; font-size: 36px; font-weight: 700; color: var(--red); line-height: 1.1; }
.stat-label { display: block; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 2px; color: var(--text-light); margin-top: 4px; }

/* === HOW === */
.how-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.how-item { text-align: center; padding: 32px; }
.how-number { font-size: 72px; font-weight: 700; color: var(--red); line-height: 1; margin-bottom: 12px; }
.how-item p { color: var(--text-light); }

/* === EVENTS === */
.events-grid, .events-list { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); }
.event-card { display: flex; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; transition: box-shadow 0.2s, transform 0.2s; color: var(--text); height: 190px; }
.event-card:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); color: var(--text); }
.event-card-past { opacity: 0.6; }
.event-card-date { background: var(--red); color: var(--on-accent); padding: 20px; min-width: 88px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.event-date-clock { width: 44px; height: auto; opacity: 0.9; }
.event-day { font-size: 28px; font-weight: 700; line-height: 1; }
.event-month { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; }
.event-card-body { padding: 16px 20px; flex: 1; overflow: hidden; display: flex; flex-direction: column; justify-content: center; }
.event-card-body h3 { font-size: 16px; margin-bottom: 6px; }
.event-city-label { font-size: 12px; color: var(--red); font-weight: 600; letter-spacing: 1px; }
.event-distance { font-size: 10px; color: #999; font-weight: 400; letter-spacing: 0; }
.event-location { font-size: 13px; color: var(--text-light); margin-top: 4px; }
.event-date-large { font-size: 18px; font-weight: 600; }
.event-venue { color: var(--light); }
.event-meta { display: flex; gap: 24px; margin-top: 12px; flex-wrap: wrap; }
.spots-info { font-size: 18px; font-weight: 600; color: var(--red); margin-bottom: 20px; }

/* === CITIES === */
.cities-grid { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.city-tag { display: inline-block; padding: 10px 20px; background: var(--white); border: 2px solid var(--light); border-radius: 30px; font-weight: 600; font-size: 14px; text-transform: uppercase; color: var(--text); transition: all 0.2s; }
.city-tag:hover { border-color: var(--red); color: var(--red); }
.cities-cards-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; }
.city-card { display: block; background: var(--white); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow); transition: all 0.2s; color: var(--text); border-left: 4px solid var(--light); }
.city-card:hover { box-shadow: var(--shadow-hover); transform: translateY(-2px); color: var(--text); }
.city-card-hot { border-left-color: var(--red); }
.city-card-dormant { border-left-color: transparent; opacity: 0.5; border-style: dashed; border-left-width: 4px; border-left-color: #ccc; }
.city-card-header { display: flex; justify-content: space-between; align-items: baseline; }
.city-card h3 { font-size: 16px; margin-bottom: 4px; }
.city-card-dist { font-size: 11px; color: #999; white-space: nowrap; }
.city-card-events { display: inline-block; font-size: 11px; font-weight: 700; color: var(--red); letter-spacing: 0.5px; margin-bottom: 4px; }
.city-card-meta { display: flex; gap: 12px; align-items: center; margin-bottom: 4px; }
.city-card-members { font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.6); }
.city-card-next-event { background: rgba(245,85,68,0.1); border-radius: 6px; padding: 6px 10px; margin: 6px 0; font-size: 12px; line-height: 1.4; }
.city-next-label { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: 1px; opacity: 0.6; margin-bottom: 2px; }
.city-next-title { display: block; font-weight: 700; color: #F55544; }
.city-next-date { display: block; font-size: 11px; opacity: 0.7; margin-top: 2px; }
.city-country { font-size: 12px; color: var(--text-light); margin-bottom: 8px; }
.city-card-organisers { display: flex; flex-wrap: wrap; gap: 4px; }
.organiser-badge { font-size: 11px; background: var(--light); padding: 3px 8px; border-radius: 10px; }
.city-needs-team { font-size: 12px; color: var(--red); font-weight: 600; }
.cities-expandable { margin-top: 24px; }
.cities-expand-btn { font-size: 13px; font-weight: 700; letter-spacing: 1.5px; color: #666; cursor: pointer; list-style: none; padding: 12px 0; }
.cities-expand-btn::after { content: ' ▸'; font-size: 10px; }
details[open] > .cities-expand-btn::after { content: ' ▾'; }
.cities-expand-dormant { color: #999; }
.cities-expand-count { font-weight: 400; color: #aaa; font-size: 12px; }
.city-country-label { font-size: 18px; color: var(--text-light); }

/* === ORGANISERS === */
.organisers-section { background: var(--white); }
.organisers-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 32px; }
.organiser-card { text-align: center; display: flex; flex-direction: column; align-items: center; }
.organisers-compact { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.organiser-chip { display: flex; align-items: center; gap: 10px; background: #f8f8f8; border-radius: 40px; padding: 6px 16px 6px 6px; }
.organiser-chip-photo { width: 44px; height: 44px; min-width: 44px; border-radius: 50%; overflow: hidden; border: 2px solid var(--red); }
.organiser-chip-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.organiser-chip-initial { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; background: var(--red); color: white; font-weight: 700; font-size: 16px; border-radius: 50%; }
.organiser-chip-info { display: flex; flex-direction: column; }
.organiser-chip-name { font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: 0.5px; }
.organiser-chip-role { font-size: 11px; color: #888; }
.organiser-chip-role a { color: var(--red); text-decoration: none; }
.organiser-photo, .speaker-photo { width: 80px; height: 80px; min-width: 80px; min-height: 80px; border-radius: 50%; overflow: hidden; border: 3px solid var(--red); flex-shrink: 0; }
.organiser-photo img, .speaker-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.speaker-placeholder { width: 100%; height: 100%; background: var(--red); color: var(--on-accent); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 28px; }
.organiser-placeholder, .speaker-placeholder { width: 100%; height: 100%; background: var(--light); display: flex; align-items: center; justify-content: center; font-size: 36px; font-weight: 700; color: var(--red); }
.organiser-role { font-size: 13px; color: var(--text-light); text-transform: uppercase; letter-spacing: 1px; }
.organiser-linkedin, .speaker-linkedin { font-size: 13px; font-weight: 600; }

/* === SPEAKERS === */
.speakers-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 32px; }
.speaker-card { text-align: center; display: flex; flex-direction: column; align-items: center; }
.speaker-topic { font-size: 14px; color: var(--text-light); font-style: italic; }

/* === FORMS === */
.form-group { margin-bottom: 20px; }
.form-group label { display: block; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 6px; color: var(--text); }
input[type="text"], input[type="email"], input[type="url"], input[type="number"], input[type="password"],
input[type="datetime-local"], select, textarea {
    width: 100%; padding: 12px 16px; border: 2px solid var(--light); border-radius: var(--radius);
    font-family: 'Rubik', sans-serif; font-size: 15px; transition: border-color 0.2s; background: var(--white);
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--red); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-hint { font-size: 13px; color: var(--text-light); margin-top: 12px; }
.error-msg { color: var(--red); font-weight: 600; margin-bottom: 16px; }

/* === REGISTRATION === */
.registration-form .form-row { max-width: 600px; margin-bottom: 4px; }
.registration-form .checkbox-label { margin: 4px 0 12px; }
.registration-form .form-hint { margin-top: 4px; margin-bottom: 0; }
.registration-form button[type=submit] { margin-top: 8px; }
.registration-section { background: var(--white); }

/* === NEWSLETTER === */
.newsletter-section { background: var(--dark); color: var(--on-accent); text-align: center; }
.newsletter-section h2 { color: var(--on-accent); }
.newsletter-form { display: flex; gap: 12px; max-width: 500px; margin: 24px auto 0; }
.newsletter-form input { flex: 1; background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.3); color: var(--white); }
.newsletter-form input::placeholder { color: rgba(255,255,255,0.5); }
.newsletter-section .form-hint { color: rgba(255,255,255,0.5); }
.newsletter-interests { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; align-items: center; grid-column: 1 / -1; }
.ni-label { font-size: 11px; color: rgba(255,255,255,0.4); letter-spacing: 1px; margin-right: 4px; }
.ni-chip { cursor: pointer; }
.ni-chip input { display: none; }
.ni-chip span { display: inline-block; padding: 4px 10px; font-size: 11px; border: 1px solid rgba(255,255,255,0.15); border-radius: 20px; color: rgba(255,255,255,0.5); transition: all 0.15s; }
.ni-chip input:checked + span { border-color: var(--red); color: var(--white); background: rgba(245,85,68,0.2); }
.ni-chip:hover span { border-color: rgba(255,255,255,0.3); }
.footer-newsletter { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 24px; align-items: start; width: 100%; }
.footer-newsletter .nl-city-select { grid-column: 1 / 2; }
.footer-newsletter .newsletter-interests { grid-column: 1 / -1; }
.footer-newsletter .nl-email-row { grid-column: 1 / -1; display: flex; gap: 12px; }
.footer-newsletter input { flex: 1; padding: 10px 14px; border: 1px solid rgba(255,255,255,0.2); background: rgba(255,255,255,0.1); border-radius: 4px; color: var(--white); font-size: 14px; max-width: 400px; }
.footer-newsletter input::placeholder { color: rgba(255,255,255,0.4); }
.footer-newsletter button { padding: 10px 24px; background: var(--red); color: var(--white); border: none; border-radius: 4px; font-size: 12px; font-weight: 700; cursor: pointer; font-family: 'Rubik', sans-serif; letter-spacing: 0.5px; }

/* === CTA === */
.cta-section { background: var(--red); color: var(--on-accent); text-align: center; }
.cta-section h2 { color: var(--on-accent); }
.cta-section p { color: rgba(255,255,255,0.9); margin-bottom: 32px; }
.cta-section .btn-primary { background: var(--white); color: var(--red); border-color: var(--white); }
.cta-section .btn-outline { color: var(--white); border-color: var(--white); }

/* === PAGE HEADER === */
.page-header { background: var(--dark); color: var(--on-accent); padding: 60px 0 40px; }
.page-header h1 { font-size: clamp(32px, 5vw, 56px); }
.page-header p { color: var(--light); max-width: 600px; }
.breadcrumb-link { font-size: 14px; color: var(--red); font-weight: 600; text-transform: uppercase; letter-spacing: 1px; }

/* === EXTERNAL LINKS === */
.external-links { display: flex; gap: 12px; flex-wrap: wrap; }

/* === CULTURE VALUES === */
.culture-values { display: flex; flex-wrap: wrap; gap: 12px; }
.value-tag { padding: 8px 20px; background: var(--light); border-radius: 30px; font-size: 13px; font-weight: 600; letter-spacing: 1px; }

/* === EMPTY STATE === */
.empty-state { text-align: center; padding: 60px 20px; color: var(--text-light); }
.empty-state h2 { color: var(--text-light); }

/* === FILTER BAR === */
.filter-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
.filter-tag { padding: 8px 16px; border: 2px solid var(--light); border-radius: 20px; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; color: var(--text-light); }
.filter-tag:hover, .filter-tag.active { border-color: var(--red); color: var(--red); }

/* === APPLY === */
.apply-form-container { max-width: 600px; margin: 48px auto 0; }

/* === LEGAL === */
.legal-content { max-width: 800px; }
.legal-content h2 { margin-top: 48px; font-size: 24px; }
.legal-content h3 { margin-top: 32px; font-size: 18px; }
.legal-content h4 { margin-top: 20px; font-size: 15px; }
.legal-content p { margin-bottom: 12px; }
.legal-content hr { margin: 48px 0; border: none; border-top: 2px solid var(--light); }
.legal-date { margin-top: 48px; font-style: italic; color: var(--text-light); }

/* === FOOTER === */
.footer { background: var(--dark); color: var(--on-accent); padding: 60px 0 24px; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 2fr; gap: 40px; }
.footer-logo { font-size: 24px; font-weight: 700; color: var(--red); }
.footer-tagline { color: var(--light); margin: 8px 0 4px; }
.footer-org { font-size: 13px; color: var(--text-light); }
.footer h4 { font-size: 12px; letter-spacing: 2px; margin-bottom: 16px; color: var(--light); }
.footer ul li { margin-bottom: 8px; }
.footer ul a { color: var(--light); font-size: 14px; }
.footer ul a:hover { color: var(--red); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); margin-top: 40px; padding-top: 20px; text-align: center; }
.footer-bottom p { font-size: 13px; color: var(--text-light); }

/* === ADMIN === */
.admin-login { display: flex; align-items: center; justify-content: center; min-height: 60vh; }
.login-box { background: var(--white); padding: 48px; border-radius: var(--radius); box-shadow: var(--shadow); width: 100%; max-width: 400px; text-align: center; }
.login-box h1 { margin-bottom: 24px; }
.admin-section { padding: 0 0 40px; background: #f5f5f5 !important; color: #333 !important; min-height: 100vh; }
.admin-section > .container { padding-top: 20px; }
.admin-header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; margin-bottom: 24px; }
/* admin-nav: see consolidated block below */
.admin-count { font-size: 14px; color: var(--text-light); margin-bottom: 16px; }
/* Admin header row */
.admin-header-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }

/* Admin events: table on desktop, cards on mobile */
.admin-events-cards { display: none; }
.admin-events-table { overflow-x: auto; }
.actions-cell { white-space: nowrap; }
.actions-cell .btn-small { padding: 4px 8px; font-size: 14px; }

.admin-event-card { background: var(--white); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow); margin-bottom: 12px; }
.aec-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.aec-date { font-size: 13px; color: var(--text-light); font-weight: 600; }
.aec-title { margin: 0 0 4px; font-size: 1rem; }
.aec-title a { color: var(--text); }
.aec-city { font-size: 13px; color: var(--text-light); margin: 0 0 12px; }
.aec-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.aec-actions .btn-small { font-size: 12px; }

@media (max-width: 767px) {
    .admin-events-table { display: none; }
    .admin-events-cards { display: block; }
}

/* Admin filter row */
.admin-filter-row { margin-bottom: 20px; display: flex; align-items: center; gap: 12px; }
.admin-filter-row label { font-size: 13px; font-weight: 600; color: var(--text-light); white-space: nowrap; }
.admin-filter-row select { padding: 8px 12px; border: 1px solid #ddd; border-radius: var(--radius); font-size: 14px; max-width: 400px; width: 100%; background: white; }
.admin-count-badge { font-size: 13px; background: var(--light); padding: 4px 12px; border-radius: 12px; color: var(--text-light); font-weight: 600; }
@media (max-width: 767px) {
    .admin-filter-row { flex-direction: column; align-items: stretch; gap: 6px; }
    .admin-filter-row select { max-width: 100%; }
}

/* Partner cards */
.partner-card { display: flex; justify-content: space-between; align-items: center; background: var(--white); border-radius: var(--radius); padding: 14px 16px; box-shadow: var(--shadow); margin-bottom: 8px; gap: 12px; }
.pc-main { display: flex; align-items: center; gap: 14px; flex: 1; min-width: 0; }
.pc-logo { width: 40px; height: 40px; border-radius: 6px; object-fit: contain; flex-shrink: 0; }
.pc-logo-placeholder { width: 40px; height: 40px; border-radius: 6px; background: var(--light); display: flex; align-items: center; justify-content: center; font-weight: 700; color: var(--text-light); flex-shrink: 0; }
.pc-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pc-info strong { font-size: 14px; }
.pc-info a, .pc-info small { font-size: 12px; color: var(--text-light); }
.pc-actions { display: flex; gap: 6px; flex-shrink: 0; }
.admin-card { background: var(--white); border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow); }
@media (max-width: 767px) {
    .partner-card { flex-direction: column; align-items: flex-start; }
    .pc-actions { align-self: flex-end; }
}

.admin-cluster-heading { font-size: 14px; letter-spacing: 2px; color: var(--text-light); margin: 24px 0 12px; padding-bottom: 8px; border-bottom: 2px solid var(--red); display: flex; align-items: center; gap: 10px; }
.admin-city-cluster:first-child .admin-cluster-heading { margin-top: 0; }

.admin-table-wrap { overflow-x: auto; max-width: 100%; -webkit-overflow-scrolling: touch; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.admin-table-fixed { table-layout: fixed; }
.admin-table th { background: var(--dark); color: var(--on-accent); padding: 12px 16px; text-align: left; font-size: 11px; letter-spacing: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.admin-table td { padding: 12px 16px; border-bottom: 1px solid var(--light); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.admin-table td.num, .admin-table th.num { font-variant-numeric: tabular-nums; }
.admin-table tr:hover td { background: rgba(245,85,68,0.05); }
.admin-form { max-width: 900px; }
.speaker-fields { background: var(--bg); padding: 16px; border-radius: var(--radius); margin-bottom: 12px; }
.status-badge { font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 12px; text-transform: uppercase; letter-spacing: 0.5px; }
.status-upcoming { background: #d4edda; color: #155724; }
.status-past { background: var(--light); color: var(--text-light); }
.status-cancelled { background: #f8d7da; color: #721c24; }
.status-confirmed { background: #d4edda; color: #155724; }
.status-waitlist { background: #fff3cd; color: #856404; }
.status-pending { background: #e8daef; color: #6c3483; }
.status-rejected { background: #fadbd8; color: #922b21; }

/* === FORM SUCCESS/ERROR MESSAGES === */
.form-message { padding: 16px 20px; border-radius: var(--radius); font-weight: 600; margin-top: 16px; }
.form-message.success { background: #d4edda; color: #155724; }
.form-message.error { background: #f8d7da; color: #721c24; }

/* === RESPONSIVE === */
@media (max-width: 1024px) {
    .stats-grid { grid-template-columns: repeat(3, 1fr); }
    .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 768px) {
    .nav-toggle { display: block; }
    .nav-menu { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--dark); padding: 0; flex-direction: column; z-index: 10000; overflow-y: auto; }
    .nav-menu.active { display: flex; }
    .nav-links { flex-direction: column; gap: 0; align-items: stretch; width: 100%; padding: 100px 0 0; flex: 1; }
    .nav-links li { border: none; }
    .nav-links a, .nav-dropdown-btn { display: block; padding: 20px 40px; font-size: 22px; font-weight: 700; letter-spacing: 2px; color: var(--white); text-align: left; border: none; }
    .nav-links a:hover, .nav-dropdown-btn:hover { color: var(--red); }
    .nav-dropdown-menu { position: static; box-shadow: none; padding: 0 0 0 40px; background: transparent; border-radius: 0; margin: 0; display: none; }
    .nav-dropdown-menu a { font-size: 16px; font-weight: 500; padding: 14px 40px; color: rgba(255,255,255,0.6); letter-spacing: 1px; }
    .nav-dropdown-menu a:hover { color: var(--red); }
    .nav-dropdown:hover .nav-dropdown-menu, .nav-dropdown.open .nav-dropdown-menu { display: block; }
    .nav-social a { color: rgba(255,255,255,0.5); }
    .nav-social a:hover { color: var(--white); }
    .nav-menu .btn-outline { border-color: rgba(255,255,255,0.3); color: rgba(255,255,255,0.7); margin: 16px 40px 0; display: block; text-align: center; padding: 10px; font-size: 13px; }
    .nav-menu .btn-outline:hover { border-color: var(--white); color: var(--white); }
    .lang-switcher { margin: 0; padding: 16px 40px; justify-content: center; }
    .lang-switcher a { color: rgba(255,255,255,0.4); }
    .lang-switcher a.active, .lang-switcher a:hover { color: var(--white); background: var(--red); }
    .lang-btn { padding: 6px 12px; font-size: 12px; border-radius: 6px; min-height: auto; }
    .nav-user { margin: 0; padding: 12px 20px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
    .nav-user a { color: var(--white); border-color: var(--red); }
    .nav-toggle { z-index: 10001; }
    .nav-menu.active ~ .nav-toggle span, .nav-toggle.open span { background: var(--white); }

    .hero { padding: 100px 0 60px; }
    .hero-title { font-size: clamp(40px, 12vw, 56px); letter-spacing: -1px; }
    .hero-subtitle { font-size: 15px; line-height: 1.6; }
    .hero-cta { flex-direction: column; gap: 12px; align-items: stretch; }
    .hero-cta .btn { text-align: center; }

    section { padding: 48px 0; }
    h1 { font-size: 28px; }
    h2 { font-size: 22px; }
    h3 { font-size: 18px; }

    .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
    .stat-number { font-size: 36px; }
    .how-grid { grid-template-columns: 1fr; gap: 24px; }
    .how-number { font-size: 48px; }

    .events-grid, .events-list { grid-template-columns: 1fr; }
    .event-card { flex-direction: row; }
    .event-card-date { min-width: 60px; padding: 12px 8px; }
    .event-card-body { padding: 12px 16px; }

    .speakers-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .speaker-card { padding: 16px 12px; }
    .speaker-photo { width: 64px; height: 64px; min-width: 64px; min-height: 64px; }
    .organisers-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .organiser-photo { width: 70px; height: 70px; }

    .cities-cards-grid { grid-template-columns: 1fr; }
    .cities-grid { gap: 8px; }
    .city-tag { padding: 8px 14px; font-size: 13px; }

    .form-row { grid-template-columns: 1fr; gap: 12px; }
    .btn { padding: 14px 24px; font-size: 14px; width: 100%; text-align: center; box-sizing: border-box; }
    .btn-small { width: auto; padding: 10px 16px; }
    input, select, textarea { font-size: 16px; padding: 14px; }
    .registration-form .form-row { gap: 8px; }

    .newsletter-form { flex-direction: column; gap: 8px; }
    .footer-newsletter { grid-template-columns: 1fr; gap: 8px; }
    .footer-grid { grid-template-columns: 1fr; gap: 32px; }
    .footer-col { text-align: left; }

    .admin-chart { overflow-x: auto; }
    .admin-header { flex-direction: column; align-items: flex-start; gap: 12px; }
    .admin-table { font-size: 12px; }
    .admin-table th, .admin-table td { padding: 6px 4px; }
    .admin-section h1 { font-size: 1.4rem; }
    .admin-section h2 { font-size: 1rem; }
    .admin-alert { flex-direction: column; gap: 8px; text-align: center; }
    .admin-totals { flex-direction: column; gap: 8px; }

    .page-header { padding: 80px 0 40px; }
    .event-meta { flex-direction: column; gap: 8px; }
    .event-date-large { font-size: 16px; }
    .event-venue { font-size: 14px; }

    .external-links { flex-direction: column; gap: 8px; }
    .calendar-buttons { flex-direction: column; gap: 8px; }
    .calendar-buttons .btn { width: 100%; }

    .format-badge { font-size: 11px; padding: 4px 12px; }

    .error-clock { font-size: 80px; }
    .error-page h1 { font-size: 32px; }

    .section-cta { margin-top: 24px; }

    .hero-speakers { flex-direction: column; align-items: center; gap: 12px; }
    .hero-speaker { width: 100%; max-width: 320px; }

    .speaker-photo { width: 60px; height: 60px; min-width: 60px; min-height: 60px; }
    .videos-grid { grid-template-columns: 1fr; }
    .photos-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .photo-card img { height: 160px; }
    .partners-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .partners-grid-large { grid-template-columns: repeat(2, 1fr); }
    .benefits-grid { grid-template-columns: 1fr; }
    .tiers-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .hero-title { font-size: 28px; }
    .stats-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
    .stat-number { font-size: 28px; }
    .speakers-grid, .organisers-grid { grid-template-columns: 1fr; }
    .container { padding: 0 16px; }
    .hero { padding: 70px 0 50px; }
    .success-title { font-size: 22px; }
}

@media (max-width: 360px) {
    .hero-title { font-size: 24px; }
    h1 { font-size: 24px; }
    .stats-grid { grid-template-columns: 1fr; }
    .lang-switcher { flex-wrap: wrap; }
}

/* === SHARE BUTTON === */
.share-section { text-align: center; }

/* Share Hero Block */
.event-share-hero { background: rgba(245,85,68,0.05); border: 2px solid rgba(245,85,68,0.2); border-radius: 16px; padding: 24px; display: flex; gap: 24px; align-items: center; }
.share-hero-preview { flex: 0 0 360px; }
.share-hero-img { width: 100%; border-radius: 10px; box-shadow: 0 4px 20px rgba(0,0,0,0.3); }
.share-hero-actions { flex: 1; text-align: center; }
.share-hero-cta { font-size: 1.1rem; font-weight: 700; margin-bottom: 16px; color: white; }
.share-hero-buttons { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.share-hero-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; border-radius: 10px; font-size: 14px; font-weight: 700; text-decoration: none; transition: all 0.2s; cursor: pointer; border: none; min-height: 48px; }
.share-hero-btn.share-linkedin { background: #0A66C2; color: white; }
.share-hero-btn.share-whatsapp { background: #25D366; color: white; }
.share-hero-btn.share-twitter { background: #1a1a1a; color: white; font-size: 18px; }
.share-hero-btn.share-native { background: #F55544; color: white; }
.share-hero-btn:hover { transform: translateY(-2px); opacity: 0.9; color: white; }
@media (max-width: 767px) {
    .event-share-hero { flex-direction: column; padding: 16px; }
    .share-hero-preview { flex: none; width: 100%; }
    .share-hero-btn { flex: 1; min-width: 0; padding: 12px 10px; font-size: 12px; justify-content: center; }
    .share-hero-btn svg { width: 16px; height: 16px; }
}

/* Sticky share bar (mobile) */
.sticky-share-bar { display: none; }
@media (max-width: 767px) {
    .sticky-share-bar { display: flex; position: fixed; bottom: 0; left: 0; right: 0; z-index: 100; background: #1a1a1a; border-top: 2px solid #F55544; padding: 10px 16px; gap: 8px; justify-content: center; }
    .sticky-share-btn { flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 10px; border-radius: 8px; font-size: 12px; font-weight: 700; text-decoration: none; color: white; max-width: 120px; }
    .sticky-share-btn.s-linkedin { background: #0A66C2; }
    .sticky-share-btn.s-whatsapp { background: #25D366; }
    .sticky-share-btn.s-share { background: #F55544; }
}

/* === LOGO === */
.nav-logo-img { height: 36px; width: auto; display: block; }
.footer-logo-img { height: 48px; width: auto; margin-bottom: 16px; display: block; }

/* === LANGUAGE SWITCHER === */
.lang-switcher { display: inline-flex; align-items: center; align-self: center; gap: 2px; margin-left: 8px; height: var(--nav-height); }
.lang-btn { padding: 4px 6px; font-size: 10px; font-weight: 700; color: var(--text-light); border-radius: 3px; text-decoration: none; line-height: 1; }
.lang-btn.active { background: var(--red); color: var(--on-accent); }
.lang-btn:hover { color: var(--red); }
.lang-btn.active:hover { color: var(--white); }

/* === FORMAT BADGE === */
.format-badge { display: inline-block; padding: 6px 16px; background: rgba(245,85,68,0.15); color: var(--red); font-size: 13px; font-weight: 700; border-radius: 20px; margin-bottom: 12px; letter-spacing: 1px; }
.event-badges { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; }
.format-badge-small { display: inline-block; padding: 2px 8px; background: rgba(245,85,68,0.1); color: var(--red); font-size: 11px; font-weight: 700; border-radius: 10px; }

/* === EVENT CARD TIME === */
.event-card-time { font-size: 13px; color: var(--text-light); margin-top: 2px; }
.event-spots { font-size: 12px; color: var(--red); font-weight: 600; margin-top: 4px; }

/* === SPEAKER FORMAT LABEL === */
.speaker-format { font-size: 11px; font-weight: 700; color: var(--red); letter-spacing: 2px; margin-top: 4px; }

/* === LIGHTNING SECTION === */
.lightning-section { background: var(--bg); }
.lightning-card { border: 2px dashed var(--red); border-radius: var(--radius); padding: 16px; }
.speaker-photo-small { width: 80px; height: 80px; }

/* === REGISTRATION SUCCESS === */
.registration-success { text-align: center; padding: 40px 20px; }
.success-icon { width: 80px; height: 80px; border-radius: 50%; background: #d4edda; color: #155724; font-size: 40px; display: flex; align-items: center; justify-content: center; margin: 0 auto 20px; }
.success-title { font-size: 28px; color: var(--red); }
.success-msg { font-size: 16px; color: var(--text); margin-top: 8px; }
.calendar-buttons { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.calendar-hint { margin-bottom: 12px; font-size: 14px; color: var(--text-light); }

/* === 404 === */
.error-page { text-align: center; padding: 120px 20px; background: var(--dark); color: var(--on-accent); min-height: 60vh; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.error-clock { font-size: 120px; font-weight: 700; color: var(--red); line-height: 1; margin-bottom: 20px; }
.error-page h1 { font-size: 48px; margin-bottom: 16px; }
.error-page p { color: var(--light); margin-bottom: 32px; font-size: 18px; }

/* === FOOTER CITY SELECT === */
.footer-city-select { width: 100%; padding: 8px 12px; border: 1px solid rgba(255,255,255,0.2); background: rgba(255,255,255,0.1); border-radius: 4px; color: var(--white); font-size: 13px; font-family: 'Rubik', sans-serif; margin-bottom: 8px; }
.footer-city-select option { color: var(--dark); }

/* === ADMIN NAV === */
.admin-nav { display: flex; flex-wrap: nowrap; gap: 4px; margin-bottom: 0; padding: 10px 12px; background: #222 !important; border-radius: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
.admin-nav::-webkit-scrollbar { height: 3px; }
.admin-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); border-radius: 2px; }
.admin-nav-wrap { margin-bottom: 0; }
.admin-nav-item { padding: 6px 10px; color: rgba(255,255,255,0.7) !important; font-size: 11px; font-weight: 600; border-radius: 4px; white-space: nowrap; text-decoration: none !important; flex-shrink: 0; }
.admin-nav-item:hover { color: #fff !important; background: rgba(255,255,255,0.1); }
.admin-nav-item.active { color: #fff !important; background: #F55544 !important; }
.admin-nav-secondary { opacity: 0.5; margin-left: auto; }
.admin-nav-wrap { position: relative; }
.admin-nav-wrap::after { content: '›'; position: absolute; right: 0; top: 0; bottom: 0; width: 32px; background: linear-gradient(to right, transparent, #222 70%); display: none; align-items: center; justify-content: flex-end; padding-right: 8px; color: rgba(255,255,255,0.5); font-size: 20px; pointer-events: none; z-index: 1; border-radius: 0 var(--radius) var(--radius) 0; }
.admin-nav-wrap.scrolled-end::after { display: none !important; }
@media (max-width: 767px) {
    .admin-nav { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 8px; gap: 4px; }
    .admin-nav::-webkit-scrollbar { display: none; }
    .admin-nav-item { padding: 6px 10px; font-size: 11px; flex-shrink: 0; }
    .admin-nav-secondary { margin-left: 0; }
    .admin-nav-wrap::after { display: flex; }
}

/* === ADMIN STATS === */
.admin-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 24px; }
.admin-stat-card { background: var(--white); border-radius: var(--radius); padding: 20px 16px; text-align: center; box-shadow: var(--shadow); }
.admin-stat-number { display: block; font-size: 28px; font-weight: 700; color: var(--red); }
.admin-stat-label { display: block; font-size: 11px; color: var(--text-light); margin-top: 4px; letter-spacing: 0.5px; }
.stat-highlight { border-left: 4px solid var(--red); }
.stat-sub { font-size: 14px; font-weight: 400; opacity: 0.6; }
@media (max-width: 767px) {
    .admin-stats-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .admin-stat-card { padding: 14px 10px; }
    .admin-stat-number { font-size: 22px; }
    .admin-stat-label { font-size: 10px; }
}

/* === ADMIN CHART === */
.admin-charts-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.admin-chart-card { background: var(--white); border-radius: var(--radius); padding: 20px; box-shadow: var(--shadow); }
.admin-chart-card h3 { margin: 0 0 16px; font-size: 12px; letter-spacing: 2px; color: var(--text-light); }
.admin-chart { display: flex; gap: 4px; align-items: flex-end; height: 180px; padding: 16px 0; }
.admin-table-compact { font-size: 12px; }
.admin-table-compact th, .admin-table-compact td { padding: 6px 8px; }
.donut-legend { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.donut-item { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--text-light); }
.donut-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
@media (max-width: 767px) {
    .admin-charts-row { grid-template-columns: 1fr; }
}
.chart-bar-wrap { display: flex; flex-direction: column; align-items: center; flex: 1; }
.chart-bar { background: var(--red); border-radius: 3px 3px 0 0; min-height: 4px; width: 100%; max-width: 40px; position: relative; transition: height 0.3s; }
.chart-value { position: absolute; top: -18px; left: 50%; transform: translateX(-50%); font-size: 10px; color: var(--text-light); white-space: nowrap; }
.chart-label { font-size: 10px; color: var(--text-light); margin-top: 4px; }

.stat-highlight { border-left: 4px solid var(--red); }
.stat-sub { font-size: 13px; color: var(--text-light); font-weight: 400; }
.admin-alert { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; background: #fff3e0; border-left: 4px solid #ff9800; border-radius: var(--radius); }
.admin-totals { display: flex; flex-wrap: wrap; gap: 24px; padding: 16px 0; border-top: 1px solid var(--light); font-size: 13px; color: var(--text-light); }
.table-legend { font-size: 12px; color: var(--text-light); margin-top: 8px; }

/* === ADMIN CONTENT EDITOR === */
.admin-lang-tabs { display: flex; gap: 4px; margin-bottom: 24px; }
.admin-lang-tab { padding: 8px 20px; background: var(--light); color: var(--text); font-weight: 700; font-size: 13px; border-radius: 4px; }
.admin-lang-tab.active { background: var(--red); color: var(--white); }
.content-section { margin-bottom: 8px; }
.content-section-title { padding: 12px 16px; background: var(--dark); color: var(--on-accent); font-weight: 700; font-size: 13px; letter-spacing: 1px; cursor: pointer; border-radius: var(--radius); list-style: none; }
.content-section-title::-webkit-details-marker { display: none; }
.content-section[open] .content-section-title { border-radius: var(--radius) var(--radius) 0 0; }
.content-fields { padding: 16px; border: 1px solid var(--light); border-top: none; border-radius: 0 0 var(--radius) var(--radius); }
.content-field { margin-bottom: 12px; }
.content-field label { display: block; font-size: 11px; color: var(--text-light); letter-spacing: 0.5px; margin-bottom: 4px; font-family: monospace; }
.content-field input, .content-field textarea { width: 100%; }

/* === ROLE BADGES === */
.role-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 700; background: var(--light); color: var(--text); }
.role-member { background: #e3f2fd; color: #1565c0; }
.role-organiser { background: #e8f5e9; color: #2e7d32; }
.role-admin { background: #fce4ec; color: #c62828; }
.role-select { padding: 4px 8px; font-size: 12px; border: 1px solid var(--light); border-radius: 4px; }
.btn-danger-small { background: none; border: 1px solid #c62828; color: #c62828; padding: 4px 8px; border-radius: 4px; cursor: pointer; font-size: 12px; }
.btn-danger-small:hover { background: #c62828; color: var(--white); }

/* === ABOUT === */
.about-container { max-width: 800px; }
.about-block { margin-bottom: 40px; }
.about-block h2 { border-bottom: 2px solid var(--light); padding-bottom: 8px; }
.stats-grid-about { margin-top: 16px; }

/* === HOW COMPACT === */
.how-section-compact { padding: 32px 0; background: var(--white); border-bottom: 1px solid var(--light); }
.what-is { text-align: center; font-size: 18px; color: var(--text); max-width: 700px; margin: 0 auto 28px; line-height: 1.7; }
.how-inline { display: flex; gap: 24px; justify-content: center; flex-wrap: wrap; }
.how-chip { display: flex; align-items: center; gap: 10px; padding: 14px 32px; background: var(--white); border-radius: 32px; font-size: 16px; font-weight: 600; color: var(--text); letter-spacing: 1px; text-transform: uppercase; box-shadow: var(--shadow); }
.how-chip strong { font-size: 36px; color: var(--red); font-weight: 700; }
.how-oneliner { text-align: center; font-size: 14px; color: var(--text-light); max-width: 500px; margin: 0 auto; }

/* === CITIES TAGS (left-aligned) === */
.cities-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.city-tag small { font-size: 11px; color: var(--text-light); font-weight: 400; }
.city-tag-hot { border-color: var(--red); }
.city-tag-badge { display: inline-flex; align-items: center; justify-content: center; background: var(--red); color: white; font-size: 10px; font-weight: 700; width: 18px; height: 18px; border-radius: 50%; margin-left: 4px; }
.city-tag-dist { font-size: 10px; color: #999; margin-left: 2px; }
.city-tag-more { background: var(--dark); color: var(--on-accent); }
.city-tag-more:hover { background: var(--red); }

/* === HERO EVENT === */
.hero-label { font-size: 13px; font-weight: 700; letter-spacing: 3px; color: rgba(255,255,255,0.7); margin-bottom: 12px; }
.hero-event-meta { display: flex; flex-direction: column; gap: 8px; align-items: center; margin: 20px 0 24px; font-size: 16px; color: rgba(255,255,255,0.9); }
.hero-speakers { display: flex; gap: 24px; justify-content: center; flex-wrap: wrap; margin: 28px 0; }
.hero-speaker { display: flex; align-items: center; gap: 12px; background: rgba(255,255,255,0.1); border-radius: 40px; padding: 8px 20px 8px 8px; }
.hero-speaker-photo { width: 48px; height: 48px; border-radius: 50%; background: var(--red); display: flex; align-items: center; justify-content: center; color: var(--white); font-weight: 700; font-size: 18px; overflow: hidden; flex-shrink: 0; }
.hero-speaker-photo img { width: 100%; height: 100%; object-fit: cover; }
.hero-speaker-info { text-align: left; }
.hero-speaker-info strong { display: block; color: var(--on-accent); font-size: 14px; }
.hero-speaker-info span { font-size: 12px; color: rgba(255,255,255,0.7); }

/* === PARTNERS === */
.partners-section { background: var(--white); }
.partners-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.partners-grid-large { grid-template-columns: repeat(3, 1fr); gap: 32px; }
/* partner styles moved to partner section below */
.partner-name, .partner-name-large { font-weight: 700; color: var(--dark); font-size: 16px; text-transform: uppercase; letter-spacing: 1px; }
.partner-name-large { font-size: 20px; }
.partner-type { font-size: 11px; color: var(--text-light); margin-top: 8px; letter-spacing: 1px; }
.partner-category { font-size: 14px; color: var(--text-light); letter-spacing: 2px; margin-bottom: 16px; margin-top: 32px; }

/* === PARTNER BENEFITS === */
.benefits-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 24px; }
.benefit-card { padding: 32px 24px; background: var(--white); border: 1px solid var(--light); border-radius: var(--radius); }
.benefit-icon { font-size: 32px; margin-bottom: 12px; }
.benefit-card h3 { font-size: 16px; margin-bottom: 8px; }
.benefit-card p { font-size: 14px; color: var(--text-light); line-height: 1.6; }

/* === PARTNER TIERS === */
.tiers-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 24px; }
.tier-card { padding: 32px 24px; background: var(--white); border: 1px solid var(--light); border-radius: var(--radius); text-align: center; }
.tier-card h3 { font-size: 18px; margin-bottom: 12px; color: var(--dark); }
.tier-card p { font-size: 14px; color: var(--text-light); line-height: 1.6; }
.tier-highlight { border-color: var(--red); position: relative; }
.tier-highlight::before { content: '★'; position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--red); color: var(--white); width: 24px; height: 24px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; }

/* === SPEAKER DIRECTORY === */
.speaker-search { display: flex; gap: 8px; margin-bottom: 32px; max-width: 600px; }
.speaker-search input { flex: 1; }
.speaker-directory-grid { display: grid; grid-template-columns: 1fr; gap: 16px; }
.speaker-directory-card { background: var(--white); border-radius: var(--radius); padding: 16px; box-shadow: var(--shadow); overflow: hidden; }
.speaker-dir-header { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.speaker-dir-info { overflow: hidden; }
.speaker-dir-info h3 { font-size: 16px; margin-bottom: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.speaker-talk-count { font-size: 13px; color: var(--red); font-weight: 600; }
.speaker-linkedin { font-size: 12px; color: var(--text-light); }
.speaker-talks-list { border-top: 1px solid var(--light); padding-top: 8px; }
.speaker-talk-item { display: flex; gap: 8px; align-items: baseline; padding: 6px 0; font-size: 13px; color: var(--text); border-bottom: 1px solid var(--bg); text-decoration: none; }
.speaker-talk-item:last-child { border-bottom: none; }
.speaker-talk-item:hover { color: var(--red); }
.talk-city { font-weight: 600; white-space: nowrap; }
.talk-topic { font-style: italic; color: var(--text-light); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.talk-date { white-space: nowrap; color: var(--text-light); font-variant-numeric: tabular-nums; }
.speaker-search { display: flex; gap: 8px; margin-bottom: 24px; }
.speaker-search input { flex: 1; }
@media (min-width: 768px) {
    .speaker-directory-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
    .speaker-directory-card { padding: 24px; }
    .speaker-dir-info h3 { font-size: 18px; }
}
.talk-date { color: var(--text-light); font-size: 12px; min-width: 80px; }
.talk-city { font-weight: 600; min-width: 80px; }
.talk-topic { color: var(--text-light); font-style: italic; }

/* === RATING === */
.rating-section { border-top: 2px solid var(--light); padding-top: 32px; }
.rating-summary { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.rating-stars-large { font-size: 28px; color: #f5a623; letter-spacing: 2px; }
.rating-avg { font-size: 24px; font-weight: 700; color: var(--dark); }
.rating-count { font-size: 14px; color: var(--text-light); }
.rating-stars-small { color: #f5a623; font-size: 14px; }
.rating-form { max-width: 500px; }
.rating-form textarea { width: 100%; padding: 12px; border: 1px solid var(--light); border-radius: var(--radius); font-family: 'Rubik', sans-serif; font-size: 14px; resize: vertical; margin: 12px 0; }
.star-rating { display: flex; gap: 4px; direction: rtl; justify-content: flex-end; }
.star-label { cursor: pointer; }
.star-label input { display: none; }
.star-label .star { font-size: 32px; color: var(--light); transition: color 0.15s; }
.star-label input:checked ~ .star,
.star-label:hover .star,
.star-label:hover ~ .star-label .star { color: #f5a623; }
.star-rating:not(:hover) .star-label input:checked ~ .star { color: #f5a623; }
/* Fix: make hover work left-to-right in RTL container */
.star-rating .star-label:hover .star { color: #f5a623; }
.star-rating .star-label:hover ~ .star-label .star { color: #f5a623; }

/* === LEGAL PAGES === */
.legal-page { padding: 100px 0 60px; }
.legal-container { max-width: 800px; }
.legal-subtitle { color: var(--text-light); margin-bottom: 32px; }
.legal-block { margin-bottom: 32px; }
.legal-block h2 { font-size: 18px; margin-bottom: 12px; color: var(--dark); border-bottom: 2px solid var(--light); padding-bottom: 8px; }
.legal-block h3 { font-size: 15px; margin: 20px 0 8px; color: var(--dark); }
.legal-block p { font-size: 14px; line-height: 1.8; margin-bottom: 8px; color: var(--text); }
.legal-block ul { font-size: 14px; line-height: 1.8; margin: 8px 0 8px 20px; color: var(--text); }
.legal-block li { margin-bottom: 4px; }
.legal-table { width: 100%; border-collapse: collapse; font-size: 13px; margin-top: 12px; }
.legal-table th { background: var(--dark); color: var(--on-accent); padding: 10px 12px; text-align: left; font-size: 12px; letter-spacing: 1px; }
.legal-table td { padding: 10px 12px; border-bottom: 1px solid var(--light); }
.legal-table tr:nth-child(even) { background: var(--bg); }
.legal-page hr { border: none; border-top: 3px solid var(--red); margin: 48px 0; }

/* === ONBOARDING === */
.onboarding { padding: 100px 0 60px; min-height: 80vh; }
.onboarding-box { max-width: 600px; margin: 0 auto; }
.onboarding-step { text-align: center; }
.onboarding-step h1 { font-size: 28px; margin-bottom: 8px; }
.onboarding-step p { color: var(--text-light); margin-bottom: 16px; }
.onboarding-progress { display: flex; gap: 8px; justify-content: center; margin-bottom: 32px; }
.step-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--light); }
.step-dot.active { background: var(--red); transform: scale(1.2); }
.step-dot.done { background: var(--dark); }
.onboarding-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 16px; }
.chip-label { cursor: pointer; }
.chip-label input { display: none; }
.chip { display: inline-block; padding: 10px 18px; border: 2px solid var(--light); border-radius: 24px; font-size: 14px; font-weight: 500; color: var(--text); transition: all 0.15s; user-select: none; }
.chip:hover { border-color: var(--red); color: var(--red); }
.chip-label input:checked + .chip { background: var(--red); color: var(--white); border-color: var(--red); }
.chip small { font-size: 11px; opacity: 0.7; }
.onboarding-buttons { display: flex; gap: 12px; justify-content: center; }
.geo-hint { background: rgba(245, 85, 68, 0.08); padding: 10px 16px; border-radius: var(--radius); border-left: 3px solid var(--red); margin-bottom: 8px; font-size: 14px; }
.geo-sub { color: var(--text-light); font-size: 13px; margin-bottom: 4px; }
.chip-nearby { border-color: var(--red); }
.chip-dist { font-size: 10px; color: var(--text-light); margin-left: 2px; }

/* === EVENT SHARE CARD === */
.ecard-builder { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
@media (max-width: 768px) { .ecard-builder { grid-template-columns: 1fr; } }
.ecard-preview { position: sticky; top: 100px; }
.ecard { background: var(--red); border-radius: 16px; padding: 32px; color: var(--on-accent); aspect-ratio: 1; display: flex; flex-direction: column; justify-content: space-between; max-width: 400px; }
.ecard-top { display: flex; justify-content: space-between; align-items: center; opacity: 0.8; }
.ecard-brand { font-size: 14px; font-weight: 700; letter-spacing: 3px; }
.ecard-badge { font-size: 13px; font-weight: 700; letter-spacing: 2px; background: rgba(255,255,255,0.2); padding: 4px 12px; border-radius: 20px; }
.ecard-title { font-size: 20px; font-weight: 700; text-align: center; line-height: 1.3; }
.ecard-meta { text-align: center; font-size: 13px; opacity: 0.7; display: flex; gap: 12px; justify-content: center; }
.ecard-person { text-align: center; }
.ecard-avatar { width: 72px; height: 72px; border-radius: 50%; background: rgba(255,255,255,0.2); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 24px; margin: 0 auto 8px; overflow: hidden; }
.ecard-name { font-size: 18px; font-weight: 700; }
.ecard-motto { text-align: center; font-size: 11px; letter-spacing: 5px; opacity: 0.4; }

/* === BREADCRUMB === */
.breadcrumb { font-size: 12px; color: #999; margin-bottom: 12px; letter-spacing: 0.5px; }
.breadcrumb a { color: #999; }
.breadcrumb a:hover { color: var(--red); }
.bc-sep { margin: 0 6px; opacity: 0.5; }
.bc-current { color: #666; font-weight: 600; }

/* === MITMACHEN HUB === */
.mitmachen-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.mitmachen-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 32px 20px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); transition: transform 0.15s, box-shadow 0.15s; text-decoration: none; color: var(--text); }
.mitmachen-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,0.1); }
.mm-icon { font-size: 32px; margin-bottom: 12px; }
.mitmachen-card h3 { font-size: 14px; font-weight: 800; letter-spacing: 1.5px; margin-bottom: 8px; color: var(--text); }
.mitmachen-card p { font-size: 13px; color: var(--text-light); line-height: 1.5; margin: 0; }
.about-links-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; max-width: 620px; margin: 0 auto; }

.cf-skip { text-align: right; margin-bottom: 8px; }
.cf-skip a { font-size: 12px; color: #999; letter-spacing: 0.5px; }
.cf-skip a:hover { color: var(--red); }

/* === LOYALTY === */
.loyalty-card { background: var(--white); border-radius: 12px; padding: 24px; margin-bottom: 32px; box-shadow: var(--shadow); }
.loyalty-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; flex-wrap: wrap; gap: 8px; }
.loyalty-tier { font-size: 20px; font-weight: 800; letter-spacing: 2px; }
.loyalty-next { font-size: 11px; color: #999; letter-spacing: 0.5px; background: var(--bg); padding: 4px 10px; border-radius: 10px; }
.loyalty-stats { display: flex; gap: 24px; margin-bottom: 16px; }
.loyalty-stat { text-align: center; }
.loyalty-num { display: block; font-size: 28px; font-weight: 800; color: var(--text); }
.loyalty-label { font-size: 11px; color: #999; letter-spacing: 0.5px; text-transform: uppercase; }
.loyalty-cities { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.loyalty-city-chip { font-size: 11px; padding: 3px 10px; background: var(--bg); border-radius: 10px; color: #666; }
.loyalty-since { font-size: 11px; color: #bbb; margin-top: 12px; }

/* === LOYALTY DASHBOARD === */
.loyalty-overview { background: var(--white); border-radius: 12px; padding: 20px; box-shadow: var(--shadow); }
.loyalty-tier-bar { display: flex; height: 36px; border-radius: 8px; overflow: hidden; gap: 2px; }
.lt-segment { display: flex; align-items: center; justify-content: center; color: white; font-weight: 700; font-size: 13px; min-width: 32px; }
.lt-legend, .lt-legend-dot { background: #d4a843; }
.lt-enthusiast, .lt-enthusiast-dot { background: #F55544; }
.lt-regular, .lt-regular-dot { background: #666; }
.lt-newcomer, .lt-newcomer-dot { background: #bbb; }
.loyalty-tier-legend { margin-top: 10px; font-size: 11px; color: #999; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.lt-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; margin-right: 3px; }
.lt-badge { font-size: 10px; font-weight: 700; letter-spacing: 1px; padding: 2px 8px; border-radius: 8px; color: white; }
.org-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.org-table th { text-align: left; font-size: 11px; letter-spacing: 1px; color: #999; padding: 8px; border-bottom: 2px solid var(--light); }
.org-table td { padding: 8px; border-bottom: 1px solid var(--light); }

/* === PROFILE === */
.profile-form .form-group { margin-bottom: 24px; }
.form-label { display: block; font-size: 12px; font-weight: 700; letter-spacing: 1.5px; color: #666; margin-bottom: 6px; }
.form-input { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 8px; font-family: inherit; font-size: 15px; }
.form-hint-text { font-size: 12px; color: #999; margin-top: 4px; }
.profile-role-badge { display: inline-block; padding: 4px 12px; background: var(--light); border-radius: 12px; font-size: 12px; font-weight: 700; letter-spacing: 1px; }
.profile-chips { display: flex; flex-wrap: wrap; gap: 6px; max-height: 200px; overflow-y: auto; padding: 4px 0; }
.chip-active { background: var(--red) !important; color: white !important; border-color: var(--red) !important; }
.profile-events { display: flex; flex-direction: column; gap: 8px; }
.profile-event-row { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: var(--white); border-radius: 8px; box-shadow: var(--shadow); }
.profile-event-title { font-weight: 600; font-size: 14px; }
.profile-event-status { font-size: 11px; font-weight: 700; letter-spacing: 1px; padding: 3px 8px; border-radius: 10px; }
.profile-status-confirmed { background: #d4edda; color: #155724; }
.profile-status-pending { background: #fff3cd; color: #856404; }
.profile-status-waitlist { background: #cce5ff; color: #004085; }
.profile-status-cancelled { background: #f8d7da; color: #721c24; }
.profile-meta { padding-top: 24px; border-top: 1px solid var(--light); display: flex; justify-content: space-between; align-items: center; }

/* === GUEST TOGGLE + ACCOUNT HINT === */
.guest-toggle { margin-top: 12px; padding-top: 12px; border-top: 1px solid #eee; }
.checkbox-guest { color: #888; font-size: 13px; }
.guest-hint { font-size: 11px; color: #aaa; }
.account-created-hint { margin-top: 12px; padding: 12px 16px; background: #d4edda; color: #155724; border-radius: 8px; font-size: 13px; line-height: 1.5; }

/* === CITY CLUSTERS === */
.city-cluster { margin-bottom: 32px; }
.city-cluster-label { font-size: 12px; font-weight: 700; letter-spacing: 1.5px; padding: 6px 0; margin-bottom: 8px; cursor: pointer; display: flex; align-items: center; gap: 6px; }
.city-cluster-hot { color: var(--red); }
.city-cluster-hot::before { content: ''; width: 8px; height: 8px; background: var(--red); border-radius: 50%; display: inline-block; animation: pulse-dot 1.5s infinite; }
.city-cluster-active { color: #666; }
.city-cluster-dormant { color: #999; }
.cluster-count { font-weight: 400; color: #999; font-size: 11px; }
.cluster-hint { font-size: 12px; color: #888; margin: 4px 0 8px; }
.cluster-hint a { color: var(--red); font-weight: 600; }
.chip-has-events { border-color: var(--red) !important; }
.chip-event-count { color: var(--red); font-weight: 600; font-size: 10px; }
.chip-dormant { opacity: 0.5; border-style: dashed !important; }
details.city-cluster > summary { list-style: none; }
details.city-cluster > summary::after { content: ' ▸'; font-size: 10px; }
details.city-cluster[open] > summary::after { content: ' ▾'; }
@keyframes pulse-dot { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }

/* === GEO CONSENT === */
.geo-consent-box { display: flex; gap: 16px; background: #f8f8f8; border-radius: 12px; padding: 20px; margin: 20px 0; text-align: left; }
.geo-consent-icon { font-size: 32px; flex-shrink: 0; }
.geo-consent-info strong { display: block; margin-bottom: 8px; font-size: 14px; }
.geo-privacy-list { margin: 0; padding-left: 18px; font-size: 13px; color: #666; line-height: 1.8; }
.geo-buttons { display: flex; gap: 12px; justify-content: center; margin-top: 20px; }
.geo-status { text-align: center; margin-top: 16px; padding: 12px; border-radius: 8px; font-size: 14px; background: #f0f0f0; }
.geo-status-ok { background: #d4edda; color: #155724; }
.geo-status-warn { background: #fff3cd; color: #856404; }

/* === BOARD === */
.board-subtitle { color: #666; margin-bottom: 24px; }
.board-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.board-member { display: flex; align-items: center; gap: 14px; background: #f8f8f8; border-radius: 12px; padding: 16px; }
.board-photo { width: 64px; height: 64px; min-width: 64px; border-radius: 50%; overflow: hidden; border: 2px solid var(--red); }
.board-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.board-initial { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; background: var(--red); color: white; font-weight: 700; font-size: 22px; border-radius: 50%; }
.board-info { display: flex; flex-direction: column; gap: 2px; }
.board-name { font-weight: 700; font-size: 15px; text-transform: uppercase; letter-spacing: 0.5px; }
.board-role { font-size: 12px; color: #888; font-weight: 600; }
.board-city { font-size: 11px; color: #aaa; }
.board-linkedin { font-size: 12px; color: var(--red); text-decoration: none; font-weight: 600; }

/* === NEARBY HINT === */
.nearby-hint { padding: 10px 16px; background: rgba(245,85,68,0.08); border-radius: var(--radius); margin: 12px 0; font-size: 13px; }
.nearby-tag { background: var(--white); border: 1px solid var(--red); color: var(--red); border-radius: 16px; padding: 4px 12px; font-size: 12px; font-weight: 600; cursor: pointer; margin: 2px; transition: all 0.15s; }
.nearby-tag:hover { background: var(--red); color: var(--white); }

/* === CONSENT BUNDLE === */
.consent-bundle { background: var(--light); border-radius: var(--radius); padding: 16px; margin: 12px 0; }
.consent-title { font-size: 11px; font-weight: 700; letter-spacing: 2px; color: var(--text-light); margin-bottom: 8px; }
.consent-bundle .checkbox-label { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 13px; cursor: pointer; }
.consent-bundle .checkbox-label input { width: 18px; height: 18px; accent-color: var(--red); }

/* === INVITE SYSTEM === */
.invite-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (max-width: 768px) { .invite-grid { grid-template-columns: 1fr; } }
.invite-source-box { padding: 20px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); }
.invite-stats { display: flex; gap: 16px; flex-wrap: wrap; }
.inv-stat { padding: 8px 16px; border-radius: 20px; background: var(--light); font-size: 13px; font-weight: 600; }
.inv-accepted { background: #e8f5e9; color: #2e7d32; }
.inv-declined { background: #fce4ec; color: #c62828; }
.invite-row { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--light); font-size: 13px; flex-wrap: wrap; }
.inv-email { flex: 1; min-width: 150px; font-weight: 600; }
.inv-source { color: var(--text-light); font-size: 11px; }
.inv-status-badge { font-size: 11px; font-weight: 700; letter-spacing: 1px; }
.invite-pending .inv-status-badge { color: #f57c00; }
.invite-accepted .inv-status-badge { color: #2e7d32; }
.invite-declined .inv-status-badge { color: #c62828; }
.cand-header { padding: 8px 0; font-weight: 600; font-size: 13px; border-bottom: 1px solid var(--light); }
.cand-row { display: flex; align-items: center; gap: 8px; padding: 6px 0; font-size: 13px; cursor: pointer; }
.cand-row:hover { background: var(--light); }

/* === CONTACT FORM CHIPS === */
.cf-step { margin-bottom: 32px; padding-bottom: 24px; border-bottom: 1px solid var(--light); }
.cf-step-title { font-size: 13px; font-weight: 700; letter-spacing: 2px; color: var(--text-light); margin-bottom: 12px; }
.cf-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cf-chip { cursor: pointer; }
.cf-chip input { display: none; }
.cf-chip span { display: inline-block; padding: 8px 16px; border-radius: 24px; border: 2px solid var(--light); font-size: 13px; font-weight: 600; transition: all 0.15s; color: var(--text); background: var(--white); }
.cf-chip input:checked + span { background: var(--red); color: var(--white); border-color: var(--red); }
.cf-chip:hover span { border-color: var(--red); }
.cf-cities { max-height: 200px; overflow-y: auto; padding: 4px 0; }
@media (max-width: 480px) { .cf-chip span { padding: 6px 12px; font-size: 12px; } }

/* === NOTIFICATIONS === */
.notif-bell { font-size: 18px; margin-right: 8px; }
.notif-badge { position: absolute; top: -6px; right: -8px; background: var(--red); color: #fff; font-size: 10px; font-weight: 700; width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.notif-panel { position: absolute; top: 60px; right: 16px; background: var(--white); border-radius: var(--radius); box-shadow: 0 8px 32px rgba(0,0,0,0.15); width: 340px; max-height: 400px; overflow-y: auto; z-index: 1000; }
.notif-header { padding: 12px 16px; font-size: 12px; font-weight: 700; letter-spacing: 2px; color: var(--text-light); border-bottom: 1px solid var(--light); }
.notif-item { padding: 12px 16px; border-bottom: 1px solid var(--light); cursor: pointer; transition: background 0.15s; }
.notif-item:hover { background: var(--light); }
.notif-unread { background: rgba(245,85,68,0.05); border-left: 3px solid var(--red); }
.notif-author { font-size: 12px; font-weight: 700; }
.notif-date { font-weight: 400; color: var(--text-light); margin-left: 8px; }
.notif-msg { font-size: 13px; margin-top: 4px; line-height: 1.4; }
.char-count { font-size: 12px; color: var(--text-light); text-align: right; display: block; }
@media (max-width: 480px) { .notif-panel { width: calc(100vw - 32px); right: 16px; left: 16px; } }

/* === LAZY SECTIONS === */
.lazy-section { opacity: 0; transform: translateY(20px); transition: opacity 0.5s ease, transform 0.5s ease; }
.lazy-section.lazy-visible { opacity: 1; transform: translateY(0); }

/* === COUNTDOWN === */
.event-countdown { display: flex; gap: 16px; justify-content: center; }
.cd-item { text-align: center; padding: 16px 20px; background: var(--dark); border-radius: var(--radius); min-width: 70px; }
.cd-num { display: block; font-size: 32px; font-weight: 900; color: var(--on-accent); font-variant-numeric: tabular-nums; }
.cd-label { font-size: 10px; font-weight: 700; letter-spacing: 2px; color: rgba(255,255,255,0.5); }
.cd-secs .cd-num { color: var(--red); }

/* === EVENT META CARD === */
.event-meta-card { background: rgba(255,255,255,0.06); border-radius: var(--radius); padding: 24px; margin-top: 24px; display: flex; flex-direction: column; gap: 16px; max-width: 480px; }
.emc-row { display: flex; gap: 16px; align-items: baseline; }
.emc-label { font-size: 11px; font-weight: 700; letter-spacing: 2px; color: var(--red); min-width: 50px; flex-shrink: 0; }
.emc-value { font-size: 16px; color: var(--on-accent); }
.emc-address { font-size: 13px; opacity: 0.6; }

/* === SCHEDULE TABLE === */
.schedule { max-width: 480px; }
.schedule-title { font-size: 13px; font-weight: 700; letter-spacing: 2px; color: var(--text-light); margin-bottom: 12px; }
.schedule-table { width: 100%; border-collapse: collapse; }
.schedule-table tr { border-bottom: 1px solid rgba(255,255,255,0.06); }
.schedule-table td { padding: 10px 0; vertical-align: middle; }
.sc-time { font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; width: 55px; color: var(--text-light); }
.sc-what { font-size: 14px; }
.sc-dur { font-size: 12px; color: var(--text-light); text-align: right; white-space: nowrap; width: 60px; }
.sc-talk .sc-what { font-weight: 700; color: var(--red); }
.sc-talk .sc-time { color: var(--red); }
.sc-break { opacity: 0.5; }

/* === BADGES === */
.cfp-badge { display: inline-block; padding: 6px 14px; background: #ff9800; color: var(--white); font-size: 11px; font-weight: 700; letter-spacing: 1px; border-radius: 20px; animation: cfp-pulse 2s infinite; }
@keyframes cfp-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(255,152,0,0.4); } 50% { box-shadow: 0 0 0 8px rgba(255,152,0,0); } }
.free-badge { display: inline-block; padding: 4px 12px; background: #4caf50; color: var(--white); font-size: 11px; font-weight: 700; letter-spacing: 1px; border-radius: 20px; }

/* === FORM CHECKBOX === */
.checkbox-label { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: var(--text-light); cursor: pointer; margin: 8px 0; line-height: 1.4; }
.checkbox-label input[type="checkbox"] { width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px; accent-color: var(--red); }

/* === ATTENDEES PREVIEW === */
.attendees-preview { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding: 12px 16px; background: rgba(245,85,68,0.06); border-radius: var(--radius); }
.attendees-avatars { display: flex; }
.att-avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--red); color: var(--white); display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; margin-left: -8px; border: 2px solid var(--white); }
.att-avatar:first-child { margin-left: 0; }
.att-more { background: var(--dark); }
.attendees-text { font-size: 13px; color: var(--text-light); font-weight: 500; }

/* === CALENDAR EXPORT === */
.calendar-export { padding: 16px 0; }
.calendar-export-label { display: block; font-size: 13px; font-weight: 600; color: var(--text-light); letter-spacing: 0.5px; margin-bottom: 8px; }
.calendar-export-buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.cal-btn { display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; border: 1px solid var(--light); border-radius: var(--radius); font-size: 13px; font-weight: 600; color: var(--text); transition: all 0.15s; min-height: 44px; }
.cal-btn:hover { border-color: var(--red); color: var(--red); }
.cal-btn svg { flex-shrink: 0; }
.cal-google:hover { border-color: #4285f4; color: #4285f4; }
.cal-outlook:hover { border-color: #0078d4; color: #0078d4; }

/* === SELECT EVENTS === */
.select-hero { background: #1a1a1a; color: var(--white); padding: 120px 0 60px; text-align: center; }
.select-badge { display: inline-block; padding: 8px 28px; font-size: 12px; font-weight: 900; letter-spacing: 4px; color: #1a1a1a; background: linear-gradient(135deg, #d4a843 0%, #f0d68a 50%, #d4a843 100%); border-radius: 4px; margin-bottom: 20px; }
.select-subtitle { font-size: 16px; color: rgba(255,255,255,0.6); margin-top: 8px; }
.select-meta { display: flex; flex-direction: column; gap: 12px; margin-top: 32px; max-width: 400px; margin-left: auto; margin-right: auto; text-align: left; }
.select-meta-row { display: flex; gap: 16px; }
.select-label { font-size: 11px; font-weight: 700; letter-spacing: 2px; color: #d4a843; min-width: 60px; }
.select-hidden-loc { color: rgba(255,255,255,0.4); font-style: italic; }
.select-partner { margin-top: 32px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.1); }
.select-partner-name { font-size: 20px; font-weight: 700; color: #d4a843; margin-top: 6px; }
.select-body { padding: 60px 0; background: #111; color: var(--white); }
.select-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: start; }
.select-content { color: rgba(255,255,255,0.8); line-height: 1.7; }
.select-section-title { font-size: 14px; letter-spacing: 3px; color: #d4a843; margin: 32px 0 16px; }
.select-speakers { display: flex; flex-direction: column; gap: 16px; }
.select-speaker-card { display: flex; gap: 16px; align-items: center; padding: 16px; background: rgba(255,255,255,0.04); border-radius: var(--radius); border-left: 3px solid #d4a843; }
.select-speaker-avatar { width: 48px; height: 48px; border-radius: 50%; background: #d4a843; color: #1a1a1a; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 18px; flex-shrink: 0; }
.select-speaker-card strong { display: block; color: var(--on-accent); }
.select-speaker-card p { font-size: 13px; color: rgba(255,255,255,0.5); margin-top: 2px; }
.select-sidebar { position: sticky; top: 100px; }
.select-apply-card { background: rgba(255,255,255,0.04); border: 1px solid rgba(212,168,67,0.3); border-radius: var(--radius); padding: 32px; }
.select-apply-card h3 { font-size: 16px; letter-spacing: 3px; color: #d4a843; margin-bottom: 12px; }
.select-apply-hint { font-size: 13px; color: rgba(255,255,255,0.5); line-height: 1.6; margin-bottom: 20px; }
.select-stats { display: flex; justify-content: space-between; padding: 12px 0; border-top: 1px solid rgba(255,255,255,0.1); border-bottom: 1px solid rgba(255,255,255,0.1); margin-bottom: 20px; font-size: 13px; color: rgba(255,255,255,0.6); }
.select-form input, .select-form textarea { width: 100%; padding: 12px 16px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.15); border-radius: var(--radius); color: var(--white); font-size: 14px; margin-bottom: 12px; }
.select-form input:focus, .select-form textarea:focus { border-color: #d4a843; outline: none; }
.select-form input::placeholder, .select-form textarea::placeholder { color: rgba(255,255,255,0.3); }
.btn-select { width: 100%; padding: 14px; background: linear-gradient(135deg, #d4a843 0%, #f0d68a 50%, #d4a843 100%); color: #1a1a1a; font-weight: 900; font-size: 14px; letter-spacing: 2px; border: none; border-radius: var(--radius); cursor: pointer; transition: opacity 0.15s; }
.btn-select:hover { opacity: 0.9; }
.btn-select-outline { display: inline-block; padding: 10px 24px; border: 1px solid #d4a843; color: #d4a843; border-radius: var(--radius); font-size: 13px; font-weight: 700; letter-spacing: 1px; }
.btn-select-outline:hover { background: #d4a843; color: #1a1a1a; }
.select-note { font-size: 11px; color: rgba(255,255,255,0.35); margin-top: 12px; text-align: center; }
.select-closed { color: rgba(255,255,255,0.4); text-align: center; padding: 20px 0; }
.select-form .checkbox-label { color: rgba(255,255,255,0.5); }

/* SELECT on event cards */
.event-card-select { border-left: 3px solid #d4a843; }
.event-card-select .event-card-date { background: var(--dark); }
.event-card-select .select-card-badge { display: inline-block; padding: 2px 10px; font-size: 9px; font-weight: 900; letter-spacing: 2px; color: #1a1a1a; background: linear-gradient(135deg, #d4a843, #f0d68a); border-radius: 3px; }

@media (max-width: 768px) {
    .select-grid { grid-template-columns: 1fr; }
    .select-sidebar { position: static; }
}

/* === START CITY WIZARD === */
.wizard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.wizard-steps { display: flex; flex-direction: column; gap: 24px; margin-top: 24px; }
.wizard-step { display: flex; gap: 16px; align-items: flex-start; }
.ws-num { width: 36px; height: 36px; border-radius: 50%; background: var(--red); color: var(--white); display: flex; align-items: center; justify-content: center; font-weight: 900; font-size: 16px; flex-shrink: 0; }
.wizard-step strong { display: block; font-size: 14px; letter-spacing: 1px; }
.wizard-step p { font-size: 13px; color: var(--text-light); margin-top: 4px; }
.wizard-values h3 { font-size: 14px; letter-spacing: 2px; color: var(--text-light); }
.wizard-values ul { padding-left: 20px; margin-top: 8px; }
.wizard-values li { font-size: 13px; color: var(--text); margin-bottom: 6px; }
.wizard-form-wrap { position: sticky; top: 100px; }
.wizard-form { padding: 32px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); }
.wizard-form h3 { font-size: 16px; letter-spacing: 2px; margin-bottom: 20px; }
@media (max-width: 768px) { .wizard-grid { grid-template-columns: 1fr; } .wizard-form-wrap { position: static; } }

/* === SPEAKER APPLY === */
.speaker-apply-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.apply-checklist { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.check-item { font-size: 14px; padding: 8px 0; }
.speaker-apply-form { padding: 32px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); }
@media (max-width: 768px) { .speaker-apply-grid { grid-template-columns: 1fr; } }

/* === TIMER === */
/* === TIMER === */
.timer-page { background: var(--red); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; position: relative; }
.timer-brand-logo { position: absolute; bottom: 16px; right: 20px; height: 24px; width: auto; opacity: 0.15; pointer-events: none; }
.timer-page:-webkit-full-screen, .timer-page:fullscreen { background: var(--red); }
.timer-container { text-align: center; width: 100%; max-width: 700px; display: flex; flex-direction: column; align-items: center; }
.timer-logo { width: 32px; height: auto; opacity: 0.12; margin-bottom: 8px; }
.timer-modes { display: inline-flex; gap: 2px; margin-bottom: 24px; background: rgba(255,255,255,0.08); border-radius: 20px; padding: 3px; }
.timer-mode { padding: 6px 16px; background: transparent; border: none; border-radius: 18px; cursor: pointer; transition: all 0.2s; color: rgba(255,255,255,0.3); font-family: inherit; }
.timer-mode:hover { color: rgba(255,255,255,0.5); }
.timer-mode.active { color: var(--white); background: rgba(255,255,255,0.15); }
.timer-mode-label { font-size: 11px; font-weight: 700; letter-spacing: 1.5px; }
.timer-mode-sub { display: none; }
.timer-display { font-weight: 900; color: var(--on-accent); font-variant-numeric: tabular-nums; letter-spacing: -2px; line-height: 1; margin: 0 0 28px; transition: color 0.3s; font-family: 'Rubik', sans-serif; white-space: nowrap; font-size: min(22vw, 180px); }
.timer-sep { opacity: 0.2; }
.timer-warning { color: #ffb74d !important; }
.timer-warning .timer-sep { opacity: 0.4; }
.timer-done { animation: timer-flash 0.5s infinite; }
@keyframes timer-flash { 0%,100% { opacity: 1; } 50% { opacity: 0.2; } }
@keyframes timer-blink { 0%,100% { opacity: 1; } 50% { opacity: 0.5; } }
.timer-ring-wrap { display: none; }
.timer-pitch-counter { display: flex; align-items: center; justify-content: center; gap: 6px; color: rgba(255,255,255,0.3); font-size: 12px; font-weight: 700; letter-spacing: 2px; margin: 4px 0 16px; }
.pitch-num { font-size: 18px; color: rgba(255,255,255,0.6); }
.timer-controls { display: flex; gap: 10px; justify-content: center; margin-bottom: 16px; }
.timer-btn { padding: 12px 36px; border-radius: 24px; font-size: 13px; font-weight: 900; letter-spacing: 3px; cursor: pointer; border: none; transition: transform 0.1s; font-family: inherit; }
.timer-btn:active { transform: scale(0.96); }
.timer-start { background: var(--white); color: var(--red); }
.timer-pause { background: rgba(255,255,255,0.2); color: var(--white); }
.timer-reset { background: none; border: 1.5px solid rgba(255,255,255,0.25); color: rgba(255,255,255,0.5); }
.timer-reset:hover { border-color: rgba(255,255,255,0.4); color: var(--white); }
.timer-fullscreen { background: none; border: 1px solid rgba(255,255,255,0.1); color: rgba(255,255,255,0.2); padding: 5px 14px; border-radius: 14px; cursor: pointer; font-size: 10px; letter-spacing: 1.5px; margin-bottom: 10px; font-family: inherit; }
.timer-fullscreen:hover { color: rgba(255,255,255,0.4); border-color: rgba(255,255,255,0.2); }
.timer-hint { font-size: 10px; color: rgba(255,255,255,0.1); letter-spacing: 1px; }
body.pseudo-fullscreen { overflow: hidden !important; }
body.pseudo-fullscreen .site-nav, body.pseudo-fullscreen .site-footer, body.pseudo-fullscreen .hero-section { display: none !important; }
.timer-container.pseudo-fullscreen { position: fixed; top: 0; left: 0; right: 0; bottom: 0; max-width: none; z-index: 99999; display: flex; flex-direction: column; align-items: center; justify-content: center; background: var(--red); padding: 40px 20px; }
.timer-container.pseudo-fullscreen .timer-display,
:fullscreen .timer-display,
:-webkit-full-screen .timer-display { font-size: min(18vw, 320px); margin-bottom: 40px; }
.timer-container.pseudo-fullscreen .timer-modes,
:fullscreen .timer-modes,
:-webkit-full-screen .timer-modes { opacity: 0.35; margin-bottom: 32px; }
.timer-container.pseudo-fullscreen .timer-modes:hover,
:fullscreen .timer-modes:hover,
:-webkit-full-screen .timer-modes:hover { opacity: 1; }
.timer-container.pseudo-fullscreen .timer-hint,
:fullscreen .timer-hint,
:-webkit-full-screen .timer-hint { display: none; }
.timer-container.pseudo-fullscreen .timer-logo,
:fullscreen .timer-logo,
:-webkit-full-screen .timer-logo { opacity: 0.06; }
.timer-container.pseudo-fullscreen .timer-pitch-counter,
:fullscreen .timer-pitch-counter,
:-webkit-full-screen .timer-pitch-counter { font-size: min(3vw, 28px); }
.timer-container.pseudo-fullscreen .pitch-num,
:fullscreen .pitch-num,
:-webkit-full-screen .pitch-num { font-size: min(4vw, 40px); }
@media (max-width: 480px) {
    .timer-display { font-size: min(24vw, 100px); }
    .timer-logo { display: none; }
    .timer-btn { padding: 10px 28px; font-size: 12px; }
}

/* === ORGANISER DASHBOARD === */
.org-stats { display: flex; gap: 24px; flex-wrap: wrap; }
.org-stat { padding: 24px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); text-align: center; flex: 1; min-width: 140px; }
.org-stat-num { display: block; font-size: 28px; font-weight: 900; color: var(--red); }
.org-stat span { font-size: 12px; color: var(--text-light); }

/* Community Growth */
.community-growth-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; }
.community-city-card { background: var(--white); border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow); }
.community-city-card h3 { margin: 0 0 16px; font-size: 1.1rem; text-transform: uppercase; letter-spacing: 1px; }
.community-numbers { display: flex; gap: 20px; align-items: flex-start; margin-bottom: 16px; }
.community-total { text-align: center; min-width: 80px; }
.community-big-num { display: block; font-size: 36px; font-weight: 900; color: var(--red); }
.community-label { font-size: 11px; color: var(--text-light); text-transform: uppercase; letter-spacing: 1px; }
.community-breakdown { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--text-light); }
.community-growth-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.growth-badge { font-size: 12px; padding: 4px 10px; border-radius: 12px; background: rgba(0,0,0,0.05); color: var(--text-light); }
.growth-positive { background: rgba(76,175,80,0.1); color: #388e3c; font-weight: 600; }
.community-timeline { margin-top: 8px; }
@media (max-width: 767px) { .community-growth-grid { grid-template-columns: 1fr; } }
.org-event-row { display: flex; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--light); flex-wrap: wrap; }
.org-event-title { font-weight: 700; flex: 1; min-width: 200px; }
.org-event-date { font-size: 13px; color: var(--text-light); font-variant-numeric: tabular-nums; min-width: 100px; }
.org-action-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin-top: 16px; }
.org-action-card { padding: 20px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); text-align: center; font-weight: 700; font-size: 14px; transition: transform 0.15s; }
.org-action-card:hover { transform: translateY(-2px); }

/* === EVENT RECAP === */
.recap-hero { background: var(--dark); color: var(--on-accent); padding: 120px 0 60px; text-align: center; }
.recap-badge { display: inline-block; padding: 6px 20px; font-size: 11px; font-weight: 700; letter-spacing: 3px; border: 1px solid rgba(255,255,255,0.3); border-radius: 20px; color: rgba(255,255,255,0.6); margin-bottom: 16px; }
.recap-meta { color: rgba(255,255,255,0.5); margin-top: 8px; }
.recap-stats { display: flex; gap: 32px; justify-content: center; padding: 32px 0; border-bottom: 1px solid var(--light); margin-bottom: 40px; }
.recap-stat { text-align: center; }
.recap-stat-num { display: block; font-size: 28px; font-weight: 900; color: var(--red); }
.recap-stat span { font-size: 12px; color: var(--text-light); letter-spacing: 1px; }
.recap-section { font-size: 14px; letter-spacing: 3px; color: var(--text-light); margin: 40px 0 20px; }
.recap-speakers { display: flex; flex-direction: column; gap: 16px; max-width: 600px; }
.recap-speaker { display: flex; gap: 16px; align-items: center; }
.recap-speaker-avatar { width: 48px; height: 48px; border-radius: 50%; background: var(--red); color: var(--white); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 18px; flex-shrink: 0; }
.recap-speaker strong { display: block; }
.recap-speaker p { font-size: 13px; color: var(--text-light); font-style: italic; }
.recap-media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.recap-media-item img { width: 100%; border-radius: var(--radius); }
.recap-video { aspect-ratio: 16/9; }
.recap-video iframe { width: 100%; height: 100%; border-radius: var(--radius); }
.recap-quotes { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.recap-quote { padding: 20px; background: var(--bg); border-radius: var(--radius); border-left: 3px solid var(--red); }
.recap-quote-stars { color: var(--red); font-size: 14px; margin-bottom: 8px; }
.recap-quote p { font-size: 14px; font-style: italic; color: var(--text); }

/* === EVENTS TOGGLE === */
.events-more { margin-top: 24px; }
.events-toggle { cursor: pointer; display: inline-block; list-style: none; }
.events-toggle::-webkit-details-marker { display: none; }

/* City scroll navigation */
.city-scroll-nav { position: sticky; top: 60px; z-index: 90; background: #1a1a1a; border-bottom: 1px solid rgba(245,85,68,0.3); padding: 10px 0; }
.scroll-nav-inner { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
.scroll-nav-inner::-webkit-scrollbar { display: none; }
.scroll-nav-link { padding: 6px 16px; border-radius: 20px; font-family: 'Rubik', sans-serif; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; text-decoration: none; white-space: nowrap; transition: all 0.2s; }
.scroll-nav-primary { background: rgba(245,85,68,0.15); color: #F55544; border: 1px solid rgba(245,85,68,0.3); }
.scroll-nav-secondary { background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.5); border: 1px solid rgba(255,255,255,0.1); }
.scroll-nav-link:hover, .scroll-nav-link.active { background: #F55544; color: white; border-color: #F55544; }
@media (max-width: 767px) {
    .city-scroll-nav { top: 50px; }
    .scroll-nav-link { font-size: 0.75rem; padding: 5px 12px; }
}

/* City cluster layout */
.city-cluster { margin-bottom: 40px; }
.cluster-header { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; border-bottom: 2px solid #F55544; padding-bottom: 8px; }
.cluster-city-name { font-family: 'Rubik', sans-serif; font-size: 1.4rem; font-weight: 700; text-transform: uppercase; margin: 0; letter-spacing: 0.5px; }
.cluster-distance { font-size: 0.8rem; font-weight: 400; opacity: 0.5; }
.cluster-count { font-size: 0.85rem; opacity: 0.6; white-space: nowrap; }
.events-grid-cluster { display: grid; gap: 20px; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); max-width: 100%; }
@media (max-width: 767px) {
    .events-grid-cluster { grid-template-columns: 1fr; }
    .cluster-city-name { font-size: 1.2rem; }
}

/* === VERTICALS === */
.verticals-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; margin-top: 24px; }
.vertical-card { padding: 32px 20px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); text-align: center; transition: transform 0.15s; }
.vertical-card:hover { transform: translateY(-3px); }
.vertical-emoji { font-size: 36px; display: block; margin-bottom: 8px; }
.vertical-card h3 { font-size: 16px; letter-spacing: 2px; }
.vertical-count { font-size: 12px; color: var(--text-light); margin-top: 4px; }
.event-card-past { opacity: 0.6; }

/* === TESTIMONIALS === */
.testimonials-section { padding: 60px 0; background: var(--bg); }
.testimonials-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; margin-top: 24px; }
.testimonial-card { padding: 28px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); border-left: 4px solid var(--red); }
.testimonial-text { font-size: 15px; line-height: 1.7; color: var(--text); font-style: italic; margin-bottom: 16px; }
.testimonial-author { display: flex; gap: 12px; align-items: center; }
.testimonial-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--red); color: var(--white); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 16px; flex-shrink: 0; }
.testimonial-author strong { display: block; font-size: 13px; }
.testimonial-author span { font-size: 12px; color: var(--text-light); }

/* === INVITE === */
.invite-from { font-size: 16px; color: rgba(255,255,255,0.8); margin-bottom: 8px; }
.invite-social { margin-top: 32px; }
.invite-social p { font-size: 14px; color: var(--text-light); margin-bottom: 12px; }

/* === CONTACT === */
.contact-form { max-width: 700px; }
.contact-channels { display: flex; gap: 24px; justify-content: center; flex-wrap: wrap; margin-top: 24px; }
.contact-channel { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 24px 32px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); min-width: 180px; transition: transform 0.15s; }
.contact-channel:hover { transform: translateY(-2px); }
.channel-icon { font-size: 28px; }
.contact-channel strong { font-size: 14px; }
.contact-channel span:last-child { font-size: 12px; color: var(--text-light); }

/* === SHARE CARD === */
.share-card-builder { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.share-card-preview { position: sticky; top: 100px; }
.share-card-mock { background: var(--red); border-radius: var(--radius); padding: 40px 32px; text-align: center; color: var(--white); aspect-ratio: 1200/630; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 8px; }
.scm-brand { font-size: 36px; font-weight: 900; letter-spacing: 3px; }
.scm-motto { font-size: 11px; letter-spacing: 3px; opacity: 0.7; }
.scm-avatar { width: 100px; height: 100px; border-radius: 50%; border: 3px solid white; background: rgba(255,255,255,0.15); display: flex; align-items: center; justify-content: center; font-size: 32px; font-weight: 700; margin: 16px 0 8px; }
.scm-role { font-size: 12px; font-weight: 700; letter-spacing: 3px; background: rgba(0,0,0,0.2); padding: 6px 20px; border-radius: 20px; }
.scm-name { font-size: 22px; font-weight: 700; margin-top: 8px; min-height: 28px; }
.scm-city { font-size: 14px; opacity: 0.7; min-height: 20px; }
.share-role-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.share-actions { display: flex; gap: 12px; }
.share-social p { font-size: 13px; color: var(--text-light); margin-bottom: 8px; }
.share-buttons { display: flex; gap: 8px; flex-wrap: wrap; }
.share-btn { padding: 10px 20px; border-radius: var(--radius); font-size: 13px; font-weight: 600; color: var(--white); min-height: 44px; display: inline-flex; align-items: center; }
.share-linkedin { background: #0077b5; }
.share-twitter { background: #1da1f2; }
.share-whatsapp { background: #25d366; }
.share-btn:hover { opacity: 0.9; color: var(--white); }

@media (max-width: 768px) {
    .share-card-builder { grid-template-columns: 1fr; }
    .share-card-preview { position: static; }
    .contact-channels { flex-direction: column; align-items: center; }
}

/* === TEAM CARDS === */
.team-section { padding: 60px 0; }
.team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; margin-top: 24px; }
.team-card { display: flex; gap: 20px; padding: 24px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); transition: transform 0.15s; }
.team-card:hover { transform: translateY(-2px); }
.team-photo { flex-shrink: 0; }
.team-photo img { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; }
.team-photo { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.team-photo-placeholder { width: 80px; height: 80px; border-radius: 50%; background: var(--red); color: var(--white); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 22px; letter-spacing: 1px; flex-shrink: 0; }
.team-info { display: flex; flex-direction: column; gap: 4px; }
.team-info h3 { font-size: 16px; margin: 0; }
.team-role { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: 1px; color: var(--text-light); padding: 2px 8px; background: var(--light); border-radius: 10px; width: fit-content; }
.team-role-lead { background: var(--red); color: var(--white); }
.team-bio { font-size: 13px; color: var(--text-light); line-height: 1.5; margin-top: 4px; }
.team-linkedin { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; color: #0077b5; margin-top: 4px; }
.team-linkedin:hover { color: #005582; }
.team-join { text-align: center; padding: 16px 0; border-top: 1px solid var(--light); margin-top: 24px; }
.team-join p { font-size: 14px; color: var(--text-light); margin-bottom: 12px; }

/* === PARTNER CARDS === */
.partner-intro { max-width: 700px; font-size: 16px; line-height: 1.8; color: var(--text-light); margin-bottom: 24px; }
.partners-grid { display: grid; gap: 20px; margin-top: 24px; }
.partners-grid-global { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.partners-grid-national { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.partners-grid-local, .partners-grid-event, .partners-grid-location { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
/* === PARTNER PAGE === */
.partner-intro { max-width: 680px; margin: 0 auto; text-align: center; font-size: 16px; line-height: 1.6; color: var(--text-light); }
.partners-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.partners-grid-global { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.partner-card { display: flex; align-items: center; gap: 16px; padding: 20px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); transition: transform 0.15s, box-shadow 0.15s; text-decoration: none; }
.partner-card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.1); }
.partner-logo { width: 64px; height: 64px; object-fit: contain; flex-shrink: 0; border-radius: 8px; }
.partners-grid-global .partner-card { padding: 28px 24px; }
.partners-grid-global .partner-logo, .partners-grid-global .partner-logo-placeholder { width: 80px; height: 80px; font-size: 22px; }
.partner-logo-placeholder { width: 64px; height: 64px; background: var(--light); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 18px; color: var(--text-light); flex-shrink: 0; }
.partner-info { display: flex; flex-direction: column; gap: 2px; }
.partner-info strong { font-size: 14px; color: var(--text); }
.partner-location { font-size: 12px; color: var(--text-light); }
.partner-desc { font-size: 12px; color: #999; line-height: 1.4; }
.partner-tier-empty { text-align: center; padding: 32px; color: #ccc; font-size: 14px; border: 2px dashed var(--light); border-radius: var(--radius); }
.partner-tier-cta { display: inline-block; margin-top: 8px; font-size: 12px; color: var(--red); font-weight: 600; letter-spacing: 1px; }
@media (max-width: 480px) {
    .partners-grid { grid-template-columns: 1fr; }
}
.partner-desc { font-size: 12px; color: var(--text-light); }
.section-alt { background: var(--bg); }

/* === CITY MAP === */
.city-map { background: var(--dark); }
.city-marker { background: transparent !important; border: none !important; }
.city-marker-pulse div { animation: marker-pulse 2s infinite; }
@keyframes marker-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(245, 85, 68, 0.5); } 50% { box-shadow: 0 0 0 8px rgba(245, 85, 68, 0); } }
.map-popup { font-family: 'Rubik', sans-serif; font-size: 13px; line-height: 1.5; }
.map-popup strong { font-size: 14px; letter-spacing: 0.5px; }
.map-popup a { color: var(--red); font-weight: 600; font-size: 12px; letter-spacing: 0.5px; }
.map-events { color: var(--red); font-weight: 600; font-size: 12px; }
.map-inactive { color: var(--text-light); font-size: 11px; }
.leaflet-popup-content-wrapper { border-radius: 8px !important; }
.map-legend { display: flex; gap: 20px; justify-content: center; padding: 12px 0; font-size: 12px; color: var(--text-light); }
.map-legend-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 4px; vertical-align: middle; }

/* === LIVE STATS === */
.live-stats { padding: 40px 0; background: var(--dark); }
.live-stats-row { display: flex; justify-content: center; gap: 48px; flex-wrap: nowrap; margin-bottom: 20px; }
.live-stats-row:last-child { margin-bottom: 0; }
.live-stat { text-align: center; min-width: 100px; }
.live-num { display: block; font-size: 32px; font-weight: 900; color: var(--on-accent); line-height: 1.1; }
.live-label { display: block; font-size: 11px; color: rgba(255,255,255,0.5); letter-spacing: 1px; margin-top: 4px; text-transform: uppercase; }

/* === IMPRESSIONS TEASER === */
.impressions-teaser { padding: 48px 0; background: var(--dark); color: var(--white); text-align: center; }
.impressions-teaser h2 { color: var(--on-accent); }
.teaser-sub { color: rgba(255,255,255,0.7); margin-bottom: 20px; }

/* === MEDIA GALLERY === */
.media-section { padding: 48px 0; }
.videos-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.video-card { background: var(--white); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.video-embed { position: relative; padding-bottom: 56.25%; height: 0; }
.video-embed iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.video-info { padding: 16px; }
.video-info h3 { font-size: 16px; margin-bottom: 4px; }
.video-city { font-size: 13px; color: var(--red); font-weight: 600; }
.video-desc { font-size: 13px; color: var(--text-light); margin-top: 4px; }

.photos-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.photo-card { border-radius: var(--radius); overflow: hidden; position: relative; }
.photo-card img { width: 100%; height: 240px; object-fit: cover; display: block; transition: transform 0.3s; }
.photo-card:hover img { transform: scale(1.03); }
.photo-caption { position: absolute; bottom: 0; left: 0; right: 0; background: linear-gradient(transparent, rgba(0,0,0,0.7)); color: var(--white); padding: 24px 12px 12px; font-size: 13px; }

/* === LOGIN === */
.login-page { padding: 120px 0 80px; }
.login-box { max-width: 420px; margin: 0 auto; text-align: center; }
.login-subtitle { color: var(--text-light); margin-bottom: 24px; }
.login-form { display: flex; flex-direction: column; gap: 12px; }
.login-success { margin-top: 32px; }
.login-success .success-icon { font-size: 48px; margin-bottom: 16px; }
.login-hint { font-size: 13px; color: var(--text-light); }

/* === NAV USER === */
.nav-user { display: inline-flex; align-items: center; align-self: center; gap: 8px; margin-left: 12px; height: var(--nav-height); }
.nav-username { font-size: 13px; font-weight: 600; color: var(--dark); }
.nav-user-buttons { display: flex; align-items: center; gap: 4px; }
.nav-ubtn { flex: 0 0 auto; white-space: nowrap; padding: 4px 10px !important; font-size: 11px !important; line-height: 1.2 !important; display: inline-flex !important; align-items: center; justify-content: center; border-width: 1px !important; letter-spacing: 0.5px; min-height: auto !important; }
@media (max-width: 768px) {
    .nav-user-buttons { justify-content: center; gap: 6px; margin: 8px 0; }
    .nav-ubtn { flex: 0 0 auto; text-align: center; }
}

/* === FOLLOW BUTTON === */
.follow-btn { cursor: pointer; }
.follow-btn.active { background: var(--red); color: var(--white); border-color: var(--red); }

/* === MORE EVENTS === */
.more-events summary { cursor: pointer; list-style: none; }
.more-events summary::-webkit-details-marker { display: none; }

/* === CONTENT VISIBILITY === */
.cities-preview, .cta-section, .footer { content-visibility: auto; contain-intrinsic-size: 0 400px; }

/* Footer tool buttons */
.footer-tools-buttons { display: flex; flex-direction: row; gap: 12px; margin-top: 8px; flex-wrap: wrap; }
.footer-tool-btn { display: inline-flex; align-items: center; justify-content: center; padding: 12px 24px; background: #F55544; color: white; text-decoration: none; border-radius: 8px; font-weight: 700; font-size: 14px; letter-spacing: 2px; transition: background 0.2s, transform 0.2s; text-transform: uppercase; }
.footer-tool-btn:hover { background: #e04434; transform: translateY(-2px); color: white; }

/* Science page */
.science-container { max-width: 800px; margin: 0 auto; }
.science-lead { font-size: 1.15rem; line-height: 1.8; color: #555; margin-bottom: 3rem; }
.science-finding { margin-bottom: 3rem; padding-bottom: 2rem; border-bottom: 1px solid #eee; }
.science-finding:last-child { border-bottom: none; }
.finding-number { font-size: 3rem; font-weight: 900; color: #F55544; opacity: 0.3; line-height: 1; margin-bottom: 0.5rem; }
.science-finding h2 { font-size: 1.4rem; font-weight: 800; letter-spacing: 2px; margin-bottom: 0.5rem; }
.finding-subtitle { font-size: 0.95rem; color: #888; margin-bottom: 1rem; font-style: italic; }
.science-finding p { line-height: 1.7; color: #444; margin-bottom: 0.8rem; }
.science-list { padding-left: 1.5rem; margin: 1rem 0; }
.science-list li { line-height: 1.7; color: #444; margin-bottom: 0.5rem; }
.finding-source { font-size: 0.85rem; color: #999; margin-top: 1rem; padding: 0.8rem 1rem; background: #f8f8f8; border-radius: 6px; }
.finding-source em { font-style: italic; }
.conclusion-box { background: #F55544; color: white; padding: 2.5rem; border-radius: 12px; text-align: center; margin: 3rem 0; }
.conclusion-box h2 { color: white; margin-bottom: 1rem; letter-spacing: 3px; }
.conclusion-box p { font-size: 1.1rem; line-height: 1.7; margin-bottom: 1.5rem; max-width: 600px; margin-left: auto; margin-right: auto; }
.conclusion-box .btn-primary { background: white; color: #F55544; border: none; }
.conclusion-box .btn-primary:hover { background: #f0f0f0; }
.science-sources { margin-top: 3rem; }
.science-sources h3 { font-size: 1rem; letter-spacing: 3px; color: #999; margin-bottom: 1.5rem; }
.sources-list { padding-left: 1.5rem; }
.sources-list li { font-size: 0.9rem; line-height: 1.6; color: #666; margin-bottom: 0.8rem; }
.sources-list a { color: #F55544; }

/* Avatar Upload */
.avatar-upload-section { display: flex; align-items: center; gap: 20px; margin-bottom: 24px; padding: 20px; background: rgba(245,85,68,0.04); border-radius: 12px; }
.avatar-preview { width: 80px; height: 80px; border-radius: 50%; overflow: hidden; flex-shrink: 0; background: var(--red); display: flex; align-items: center; justify-content: center; }
.avatar-img { width: 100%; height: 100%; object-fit: cover; }
.avatar-initial { font-size: 32px; font-weight: 700; color: #fff; }
.avatar-upload-controls { flex: 1; }
.avatar-upload-btn { cursor: pointer; }

/* FAQ */
.faq-category { margin-top: 40px; margin-bottom: 16px; font-size: 14px; letter-spacing: 2px; color: var(--red); border-bottom: 2px solid var(--red); padding-bottom: 8px; }
.faq-category:first-of-type { margin-top: 0; }
.faq-item { border-bottom: 1px solid #eee; }
.faq-item[open] { padding-bottom: 16px; }
.faq-question { padding: 16px 0; font-weight: 600; font-size: 16px; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; }
.faq-question::after { content: '+'; font-size: 20px; font-weight: 300; color: var(--red); flex-shrink: 0; margin-left: 16px; transition: transform 0.2s; }
.faq-item[open] .faq-question::after { content: '−'; }
.faq-question::-webkit-details-marker { display: none; }
.faq-answer { padding: 0 0 8px; color: var(--text-light); line-height: 1.7; font-size: 15px; }
.faq-answer a { color: var(--red); text-decoration: underline; }
.faq-contact-box { margin-top: 48px; padding: 32px; text-align: center; background: rgba(245,85,68,0.04); border-radius: 12px; }
.faq-contact-box h3 { margin-bottom: 8px; }
.faq-contact-box p { margin-bottom: 16px; color: var(--text-light); }

/* Footer Social */
.footer-social { display: flex; gap: 16px; justify-content: center; margin-bottom: 12px; }
.footer-social a { color: rgba(255,255,255,0.5); transition: color 0.2s; }
.footer-social a:hover { color: var(--red); }

/* 3x12 Schema */
.triple-twelve { display: flex; align-items: center; justify-content: center; gap: 24px; margin-top: 24px; }
.t12-item { text-align: center; padding: 16px 28px; background: var(--white); border-radius: var(--radius); box-shadow: var(--shadow); }
.t12-number { display: block; font-size: 48px; font-weight: 700; color: var(--red); line-height: 1; }
.t12-label { display: block; font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; margin-top: 6px; opacity: 0.7; }
.t12-divider { font-size: 28px; font-weight: 300; opacity: 0.4; margin-top: -8px; }
@media (max-width: 480px) { .t12-number { font-size: 24px; } .t12-label { font-size: 10px; } .triple-twelve { gap: 8px; } }

/* Partner Stats */
.partner-stats { display: flex; justify-content: center; gap: 40px; margin-bottom: 24px; }
.ps-item { text-align: center; }
.ps-number { display: block; font-size: 36px; font-weight: 700; color: var(--red); line-height: 1; }
.ps-label { display: block; font-size: 11px; font-weight: 600; letter-spacing: 2px; margin-top: 4px; opacity: 0.6; }
@media (max-width: 480px) { .partner-stats { gap: 24px; } .ps-number { font-size: 28px; } }

/* ============================================
   DARK MODE - MUST BE LAST IN FILE
   ============================================ */
[data-theme="dark"] {
    --light: #2a2a2a;
    --white: #1a1a1a;
    --bg: #111111;
    --text: #E0E0E0;
    --text-light: #999999;
    --shadow: 0 4px 12px rgba(0,0,0,0.3);
    --shadow-hover: 0 8px 24px rgba(0,0,0,0.4);
    --card-bg: #1e1e1e;
    --border: #333333;
    --nav-bg: #1a1a1a;
    --on-accent: #FFFFFF;
}

/* Nav */
[data-theme="dark"] .navbar { background: var(--nav-bg); border-bottom: 1px solid var(--border); box-shadow: none; }
[data-theme="dark"] .nav-links a, [data-theme="dark"] .nav-dropdown-btn { color: var(--text); }
[data-theme="dark"] .nav-toggle span { background: var(--text); }
[data-theme="dark"] .nav-dropdown-menu { background: var(--card-bg); border: 1px solid var(--border); }
[data-theme="dark"] .nav-dropdown-menu a { color: var(--text); }
[data-theme="dark"] .nav-username { color: var(--text); }
[data-theme="dark"] .logo-text { color: var(--red); }
[data-theme="dark"] .theme-toggle { background: #fff; color: var(--dark); border-color: #fff; box-shadow: 0 2px 8px rgba(255,255,255,0.1); }
[data-theme="dark"] .theme-toggle:hover { background: var(--red); color: #fff; border-color: var(--red); }

/* Cards */
[data-theme="dark"] .event-card { background: var(--card-bg); border: 1px solid var(--border); }
[data-theme="dark"] .event-card-body h3 { color: var(--text); }
[data-theme="dark"] .event-card-body p, [data-theme="dark"] .event-location { color: var(--text-light); }
[data-theme="dark"] .event-card-time, [data-theme="dark"] .event-city-label { color: var(--text); }
[data-theme="dark"] .event-spots { color: var(--red); }
[data-theme="dark"] .event-venue { color: var(--text-light); }
[data-theme="dark"] .event-card-past { opacity: 0.7; }
[data-theme="dark"] .vertical-card, [data-theme="dark"] .city-card { background: var(--card-bg); border: 1px solid var(--border); }
[data-theme="dark"] .vertical-card h3, [data-theme="dark"] .vertical-card p { color: var(--text); }
[data-theme="dark"] .speaker-directory-card { background: var(--card-bg); border: 1px solid var(--border); }
[data-theme="dark"] .how-chip { background: var(--card-bg); color: var(--text); box-shadow: var(--shadow); }
[data-theme="dark"] .how-chip strong { color: var(--red); }
[data-theme="dark"] .testimonial-card { background: var(--card-bg); border-left-color: var(--red); }
[data-theme="dark"] .testimonial-text { color: var(--text); }
[data-theme="dark"] .t12-item { background: var(--card-bg); }
[data-theme="dark"] .partner-card { background: var(--card-bg); border: 1px solid var(--border); }
[data-theme="dark"] .faq-item { background: var(--card-bg); border: 1px solid var(--border); }
[data-theme="dark"] .donation-card { background: var(--card-bg); border: 1px solid var(--border); }
[data-theme="dark"] .share-card-builder { background: var(--card-bg); }
[data-theme="dark"] .wizard-step, [data-theme="dark"] .onboarding-card { background: var(--card-bg); border: 1px solid var(--border); }
[data-theme="dark"] .format-badge-small { background: rgba(245,85,68,0.2); }

/* Sections */
[data-theme="dark"] .stats-section { background: var(--card-bg); }
[data-theme="dark"] .organisers-section { background: var(--card-bg); }
[data-theme="dark"] .registration-section { background: var(--card-bg); }
[data-theme="dark"] .hero { background: var(--red); }
[data-theme="dark"] .hero-light { color: var(--text); }
[data-theme="dark"] .cta-section { background: var(--red); }
[data-theme="dark"] .org-stat, [data-theme="dark"] .community-city-card { background: var(--card-bg); }

/* Page header */
[data-theme="dark"] .page-header { background: #1a1a1a; }
[data-theme="dark"] .page-header h1 { color: var(--on-accent); }
[data-theme="dark"] .page-header p { color: rgba(255,255,255,0.7); }

/* Footer - CRITICAL: must override color: var(--light) */
[data-theme="dark"] .footer { background: #0a0a0a; color: var(--on-accent); }
[data-theme="dark"] .footer-tagline { color: rgba(255,255,255,0.6); }
[data-theme="dark"] .footer h4 { color: rgba(255,255,255,0.6); }
[data-theme="dark"] .footer ul a { color: rgba(255,255,255,0.7); }
[data-theme="dark"] .footer ul a:hover { color: var(--red); }
[data-theme="dark"] .footer-city-select option { color: var(--text); background: var(--card-bg); }

/* Cities */
[data-theme="dark"] .city-card h3, [data-theme="dark"] .city-card-event { color: var(--text); }
[data-theme="dark"] .city-card h3 small { color: var(--text-light); }
[data-theme="dark"] .city-card-members { color: var(--text-light); }
[data-theme="dark"] .city-card-dist { color: var(--text-light); }
[data-theme="dark"] .city-next-label { color: var(--text-light); opacity: 1; }
[data-theme="dark"] .city-next-date { color: var(--text-light); opacity: 1; }
[data-theme="dark"] .city-card-next-event { background: rgba(245,85,68,0.15); }
[data-theme="dark"] .city-card-dormant { opacity: 0.7; border-left-color: var(--border); }
[data-theme="dark"] .city-country { color: var(--text-light); }
[data-theme="dark"] .city-needs-team { color: var(--red); }
[data-theme="dark"] .city-tag { background: var(--card-bg); border-color: var(--border); color: var(--text); }
[data-theme="dark"] .cities-expandable summary { color: var(--text-light); }
[data-theme="dark"] .cluster-header { border-bottom-color: var(--red); }
[data-theme="dark"] .cluster-city-name { color: var(--text); }
[data-theme="dark"] .cluster-count, [data-theme="dark"] .cluster-distance { color: var(--text-light); }
[data-theme="dark"] .cluster-hint { color: var(--text-light); }
[data-theme="dark"] .cluster-hint a { color: var(--red); }

/* Team / City detail */
[data-theme="dark"] .team-card { background: var(--card-bg); border: 1px solid var(--border); }
[data-theme="dark"] .team-info h3 { color: var(--text); }
[data-theme="dark"] .team-role { background: var(--border); color: var(--text-light); }
[data-theme="dark"] .team-role-lead { background: var(--red); color: var(--on-accent); }
[data-theme="dark"] .team-photo-placeholder { color: var(--on-accent); }
[data-theme="dark"] .team-join { border-top-color: var(--border); }
[data-theme="dark"] .team-linkedin a { color: var(--red); }
[data-theme="dark"] .social-btn { color: var(--text); border-color: var(--border); }
[data-theme="dark"] .social-btn:hover { color: var(--red); border-color: var(--red); }
[data-theme="dark"] .follow-btn { color: var(--text); border-color: var(--border); }
[data-theme="dark"] .city-map { background: var(--card-bg); }

/* Typography */
[data-theme="dark"] h1, [data-theme="dark"] h2, [data-theme="dark"] h3, [data-theme="dark"] h4 { color: var(--text); }
[data-theme="dark"] p, [data-theme="dark"] li, [data-theme="dark"] span, [data-theme="dark"] label { color: var(--text); }
[data-theme="dark"] a { color: var(--red); }
[data-theme="dark"] .section-title, [data-theme="dark"] .section-subtitle { color: var(--text); }
[data-theme="dark"] .what-is, [data-theme="dark"] .what-is p, [data-theme="dark"] .what-is li { color: var(--text); }
[data-theme="dark"] .legal-block { color: var(--text); }
[data-theme="dark"] .legal-block h2, [data-theme="dark"] .legal-block h3 { color: var(--text); }
[data-theme="dark"] .btn-outline { color: var(--red); border-color: var(--red); }

/* Forms */
[data-theme="dark"] input, [data-theme="dark"] select, [data-theme="dark"] textarea { background: var(--card-bg); color: var(--text); border-color: var(--border); }
[data-theme="dark"] .form-label { color: var(--text); }
[data-theme="dark"] .newsletter-form input { background: var(--card-bg); color: var(--text); border-color: var(--border); }
[data-theme="dark"] .form-hint { color: var(--text-light); }

/* Muted text overrides */
[data-theme="dark"] .event-distance, [data-theme="dark"] .cities-expand-btn, [data-theme="dark"] .cities-expand-dormant,
[data-theme="dark"] .cities-expand-count, [data-theme="dark"] .city-tag-dist, [data-theme="dark"] .breadcrumb,
[data-theme="dark"] .breadcrumb a, [data-theme="dark"] .bc-current, [data-theme="dark"] .cf-skip a,
[data-theme="dark"] .loyalty-label, [data-theme="dark"] .loyalty-since, [data-theme="dark"] .loyalty-tier-legend,
[data-theme="dark"] .form-hint-text, [data-theme="dark"] .guest-hint, [data-theme="dark"] .board-role,
[data-theme="dark"] .board-subtitle, [data-theme="dark"] .organiser-chip-role,
[data-theme="dark"] .checkbox-guest, [data-theme="dark"] .geo-privacy-list { color: var(--text-light); }
[data-theme="dark"] .city-cluster-active { color: var(--text); }
[data-theme="dark"] .organiser-chip-name { color: var(--text); }
[data-theme="dark"] .organiser-chip { background: var(--card-bg); border-color: var(--border); color: var(--text); }
[data-theme="dark"] .board-name { color: var(--text); }
[data-theme="dark"] .partner-name, [data-theme="dark"] .partner-name-large { color: var(--text); }
[data-theme="dark"] .tier-card h3 { color: var(--text); }
[data-theme="dark"] .rating-avg { color: var(--red); }
[data-theme="dark"] .rating-label { color: var(--text); }
[data-theme="dark"] .donation-amount { color: var(--text); }
[data-theme="dark"] .spenden-info, [data-theme="dark"] .spenden-info p { color: var(--text-light); }
[data-theme="dark"] .profile-section h2, [data-theme="dark"] .profile-section label { color: var(--text); }
[data-theme="dark"] .profile-section p { color: var(--text-light); }
[data-theme="dark"] .tab-btn { color: var(--text-light); border-bottom-color: transparent; }
[data-theme="dark"] .tab-btn.active { color: var(--red); border-bottom-color: var(--red); }
[data-theme="dark"] .event-meta span { color: var(--text-light); }
[data-theme="dark"] .share-title { color: var(--text); }
[data-theme="dark"] .science-section h2, [data-theme="dark"] .science-finding h3 { color: var(--text); }
[data-theme="dark"] .science-lead, [data-theme="dark"] .science-finding p, [data-theme="dark"] .science-list li, [data-theme="dark"] .sources-list li { color: var(--text-light); }
[data-theme="dark"] .stat-number { color: var(--red); }

/* Opacity fixes */
[data-theme="dark"] .stat-sub { color: var(--text-light); opacity: 1; }
[data-theme="dark"] .ecard-motto { color: var(--text-light); opacity: 0.7; }
[data-theme="dark"] .emc-address { color: var(--text-light); opacity: 1; }
[data-theme="dark"] .bc-sep { color: var(--text-light); opacity: 1; }

/* Error page */
[data-theme="dark"] .error-page p { color: rgba(255,255,255,0.7); }
[data-theme="dark"] .star-label .star { color: var(--border); }

/* Buttons */
[data-theme="dark"] .btn-primary:hover { color: var(--on-accent); }
[data-theme="dark"] .btn-primary-white { background: var(--card-bg); color: var(--red); border-color: var(--border); }
[data-theme="dark"] .btn-primary-white:hover { background: var(--red); color: var(--on-accent); }
[data-theme="dark"] .btn-outline-white { border-color: var(--on-accent); color: var(--on-accent); }
[data-theme="dark"] .btn-outline-white:hover { background: var(--on-accent); color: var(--red); }
[data-theme="dark"] .cta-section .btn-primary { background: var(--on-accent); color: var(--red); border-color: var(--on-accent); }
[data-theme="dark"] .cta-section .btn-primary:hover { background: #f0f0f0; }
[data-theme="dark"] .cta-section .btn-outline { color: var(--on-accent); border-color: var(--on-accent); }
[data-theme="dark"] .scroll-nav-link { color: var(--text); border-color: var(--border); background: var(--card-bg); }
[data-theme="dark"] .scroll-nav-link:hover, [data-theme="dark"] .scroll-nav-link.active { background: var(--red); color: white; border-color: var(--red); }
[data-theme="dark"] .footer-tool-btn { color: white; }
[data-theme="dark"] .footer-tool-btn:hover { color: white; }
[data-theme="dark"] .conclusion-box { color: white; }
[data-theme="dark"] .conclusion-box h2 { color: white; }
[data-theme="dark"] .conclusion-box .btn-primary { background: white; color: var(--red); }

/* Remaining elements */
[data-theme="dark"] .tier-card { background: var(--card-bg); border: 1px solid var(--border); }
[data-theme="dark"] .tier-card p, [data-theme="dark"] .tier-card li { color: var(--text-light); }
[data-theme="dark"] .tier-highlight { border-color: var(--red); }
[data-theme="dark"] .partner-location { color: var(--text-light); }
[data-theme="dark"] .partner-info p { color: var(--text-light); }
[data-theme="dark"] .admin-table th { color: var(--on-accent); }
[data-theme="dark"] .content-section-title { color: var(--on-accent); }

/* Admin */
[data-theme="dark"] .admin-table td { border-color: var(--border); }

/* Mobile floating theme toggle */
.theme-toggle-mobile { display: none; }
@media (max-width: 768px) {
    .theme-toggle-mobile {
        display: inline-flex;
        position: fixed;
        bottom: 20px;
        right: 20px;
        z-index: 200;
        background: var(--dark);
        color: #fff;
        border: 2px solid var(--dark);
        border-radius: 50%;
        width: 48px;
        height: 48px;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        box-shadow: 0 4px 16px rgba(0,0,0,0.25);
        transition: all 0.2s;
        padding: 0;
    }
    .theme-toggle-mobile:hover,
    .theme-toggle-mobile:active { background: var(--red); border-color: var(--red); }
    [data-theme="dark"] .theme-toggle-mobile { background: #fff; color: var(--dark); border-color: #fff; box-shadow: 0 4px 16px rgba(255,255,255,0.15); }
    [data-theme="dark"] .theme-toggle-mobile:hover,
    [data-theme="dark"] .theme-toggle-mobile:active { background: var(--red); color: #fff; border-color: var(--red); }
}
