﻿:root {
  --bg: #eef5ff;
  --page: #f5f9ff;
  --panel: rgba(255, 255, 255, 0.5);
  --card: #ffffff;
  --card-border: rgba(15, 23, 42, 0.06);
  --text: #102a43;
  --muted: #486581;
  --soft: #627d98;
  --brand: #1455b8;
  --brand-2: #1d74d8;
  --brand-3: #42a5f5;
  --green: #16a34a;
  --success: #eefaf3;
  --chip-bg: rgba(20, 85, 184, 0.06);
  --shadow: 0 18px 40px rgba(20, 85, 184, 0.1);
  --radius-xl: 30px;
  --radius-lg: 24px;
  --radius-md: 18px;
  --radius-sm: 12px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  font-family: 'Inter', sans-serif;
  background: radial-gradient(circle at top, rgba(66, 165, 245, 0.13), transparent 30%), linear-gradient(180deg, #f8fbff 0%, #edf4ff 100%);
  color: var(--text);
}
button, input { font: inherit; }
button { border: 0; background: none; cursor: pointer; }
img { max-width: 100%; display: block; }
.container { width: min(1280px, calc(100% - 36px)); margin: 0 auto; }
.page-shell { padding-bottom: 24px; }
.topbar {
  position: sticky; top: 0; z-index: 50;
  background: rgba(248, 251, 255, 0.9); backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(20,85,184,0.12);
}
.topbar-inner {
  display: flex; align-items: center; justify-content: space-between; min-height: 92px; gap: 18px;
}
.brand-button { display: inline-flex; align-items: center; gap: 10px; font-weight:700; color:var(--brand); font-size:1.05rem; }
.brand-mark {
  display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:8px;
  font-size:1.05rem; background:linear-gradient(135deg,#1455b8 0%, #2387e8 100%); color:#fff;
}
.main-nav { display:flex; align-items:center; gap:8px; justify-content:center; flex:1; }
.nav-link {
  padding:10px 16px; border-radius:999px; color:var(--muted); font-weight:500; transition:0.2s ease;
}
.nav-link:hover, .nav-link.active { background: rgba(20,85,184,0.09); color: var(--brand); }
.top-actions { display:flex; align-items:center; gap:12px; }
.icon-button, .saved-button, .admin-button, .user-button {
  display:inline-flex; align-items:center; justify-content:center; gap:8px; height:44px; border-radius:14px; color:var(--brand);
  border:1px solid rgba(17,24,39,0.08); background: rgba(255,255,255,0.4);
}
.icon-button { width:44px; padding:0; }
.saved-button, .admin-button, .user-button { padding:0 16px; }
.icon-button svg, .saved-button svg, .admin-button svg, .user-button svg,
.search-icon svg, .inline-link svg, .meta-line svg, .location-line svg, .mini-icon svg {
  width:18px; height:18px; fill: currentColor;
}
.saved-button { position:relative; padding-right:14px; }
.bookmark-badge {
  display:inline-flex; align-items:center; justify-content:center; min-width:20px; height:20px; padding:0 6px; border-radius:999px;
  background: rgba(245,158,11,0.16); color:#b45309; font-size:0.69rem; font-weight:700;
}
.avatar {
  width:28px; height:28px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#e2e8f0,#cbd5e1); color:var(--brand); font-weight:700; font-size:0.8rem;
}
.main-content { padding-top:26px; }
.view-panel { display:none; }
.view-panel.active { display:block; animation: fadeUp 0.2s ease; }
@keyframes fadeUp { from { opacity:0; transform:translateY(8px);} to { opacity:1; transform:translateY(0);} }
.hero { padding:20px 0 14px; }
.hero-copy { display:flex; flex-direction:column; align-items:center; text-align:center; }
.hero-copy h1 {
  max-width:680px; margin:0; font-size:clamp(2.5rem,4vw,4.5rem); letter-spacing:-0.07em; line-height:0.95; color:var(--brand);
}
.hero-copy p { max-width:760px; margin:18px auto 0; font-size:1.06rem; line-height:1.7; color:var(--muted); }
.search-panel {
  width:min(760px, 100%); margin-top:22px; display:flex; align-items:center; gap:10px; background:rgba(255,255,255,0.7); border:1px solid rgba(17,24,39,0.08); border-radius:var(--radius-xl); padding:10px 10px 10px 18px; box-shadow:0 10px 30px rgba(17,24,39,0.04);
}
.search-icon { color:var(--soft); display:inline-flex; align-items:center; justify-content:center; }
.search-panel input { flex:1; min-width:0; outline:none; border:0; background:transparent; color:var(--text); font-size:1.02rem; padding:10px 0; }
.search-panel input::placeholder { color:#9ca3af; }
.search-panel button { height:44px; padding:0 26px; border-radius:14px; background:#1455b8; color:#fff; font-weight:700; }
.chip-list { margin-top:18px; display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.chip {
  padding:10px 16px; border-radius:999px; background:rgba(17,24,39,0.03); color:var(--muted); border:1px solid rgba(17,24,39,0.04); font-size:0.94rem; font-weight:600;
}
.chip.active { background:#1455b8; color:white; }
.events-section { margin-top:30px; padding-top:10px; }
.section-header { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:20px; }
.section-header h2 { margin:0; font-size:clamp(1.8rem,2vw,2.4rem); letter-spacing:-0.04em; color:var(--brand); }
.section-header p { margin:8px 0 0; font-size:0.95rem; color:var(--muted); }
.inline-link { display:inline-flex; align-items:center; gap:8px; color:var(--brand); font-weight:600; padding:10px 16px; border:1px solid rgba(17,24,39,0.06); background:rgba(255,255,255,0.4); border-radius:999px; }
.event-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:22px; }
.event-card {
  background:rgba(255,255,255,0.65); border:1px solid var(--card-border); border-radius:var(--radius-lg); overflow:hidden; box-shadow:0 14px 28px rgba(15,23,42,0.04); transition:transform 0.2s ease, box-shadow 0.2s ease;
}
.event-card:hover { transform:translateY(-2px); box-shadow:0 18px 34px rgba(15,23,42,0.08); }
.event-media { position:relative; height:220px; background-size:cover; background-position:center; }
.media-1 { background-image: linear-gradient(180deg, rgba(15,23,42,0.12), rgba(15,23,42,0.28)), url('https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=900&q=80'); }
.media-2 { background-image: linear-gradient(180deg, rgba(15,23,42,0.12), rgba(15,23,42,0.28)), url('https://images.unsplash.com/photo-1522202176988-66273c2fd55f?auto=format&fit=crop&w=900&q=80'); }
.media-3 { background-image: linear-gradient(180deg, rgba(15,23,42,0.12), rgba(15,23,42,0.28)), url('https://images.unsplash.com/photo-1552664730-d307ca884978?auto=format&fit=crop&w=900&q=80'); }
.media-4 { background-image: linear-gradient(180deg, rgba(15,23,42,0.12), rgba(15,23,42,0.28)), url('https://images.unsplash.com/photo-1460661419201-fd4cecdf8a8b?auto=format&fit=crop&w=900&q=80'); }
.media-5 { background-image: linear-gradient(180deg, rgba(15,23,42,0.12), rgba(15,23,42,0.28)), url('https://images.unsplash.com/photo-1511578314322-379afb476865?auto=format&fit=crop&w=900&q=80'); }
.media-6 { background-image: linear-gradient(180deg, rgba(15,23,42,0.12), rgba(15,23,42,0.28)), url('https://images.unsplash.com/photo-1522202176988-66273c2fd55f?auto=format&fit=crop&w=900&q=80'); }
.event-tag {
  position:absolute; left:16px; top:16px; display:inline-flex; padding:6px 10px; border-radius:999px; background:rgba(255,255,255,0.8); color:var(--brand); font-size:0.7rem; font-weight:800; letter-spacing:0.04em;
}
.save-button {
  position:absolute; right:14px; top:12px; width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(17,24,39,0.52); color:#fff; border:1px solid rgba(255,255,255,0.12);
}
.event-body { padding:18px 18px 20px; }
.meta-line, .location-line { display:flex; align-items:center; gap:8px; color:var(--soft); font-size:0.83rem; line-height:1.5; }
.meta-line { margin-bottom:12px; }
.event-body h3 { margin:0 0 12px; font-size:1.4rem; line-height:1.35; letter-spacing:-0.04em; color:var(--brand); }
.card-footer { margin-top:18px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.price-tag, .verified-pill {
  display:inline-flex; align-items:center; justify-content:center; border-radius:999px; white-space:nowrap; font-size:0.72rem; font-weight:800; letter-spacing:0.04em;
}
.price-tag { background: rgba(22,163,74,0.1); color:#166534; padding:8px 10px; }
.price-tag.alt { background: rgba(249,115,22,0.1); color:#b45309; }
.verified-pill { background: rgba(17,24,39,0.05); color:var(--brand); padding:8px 10px; gap:6px; }
.verified-pill.light { background: rgba(15,23,42,0.04); }
.dot { width:7px; height:7px; background:currentColor; border-radius:50%; display:inline-block; }
.center-button-wrap { margin-top:26px; display:flex; justify-content:center; }
.view-all, .secondary-btn {
  border-radius:16px; background:rgba(17,24,39,0.05); color:var(--brand); font-weight:700; padding:15px 24px; border:1px solid rgba(17,24,39,0.06);
}
.feature-stack { margin-top:42px; display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:18px; padding:18px 0 0; }
.feature-item { display:flex; gap:16px; align-items:flex-start; padding:20px 18px; border-radius:20px; background:rgba(255,255,255,0.45); border:1px solid rgba(17,24,39,0.05); }
.feature-icon {
  width:44px; height:44px; border-radius:14px; display:inline-flex; align-items:center; justify-content:center; font-size:1.2rem; font-weight:800; background:linear-gradient(135deg, rgba(17,24,39,0.05), rgba(17,24,39,0.1)); color:var(--brand); flex-shrink:0;
}
.feature-item h4 { margin:2px 0 6px; font-size:1.05rem; letter-spacing:-0.03em; color:var(--brand); }
.feature-item p { margin:0; color:var(--muted); line-height:1.7; font-size:0.96rem; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:36px 0 22px; }
.page-heading h2 { margin:8px 0 0; font-size:clamp(2rem, 2.2vw, 3rem); letter-spacing:-0.06em; color:var(--brand); }
.eyebrow { margin:0; font-size:0.73rem; text-transform:uppercase; letter-spacing:0.12em; color:#6b7280; font-weight:700; }
.filter-row { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:26px; }
.filter-row .chip { background:rgba(255,255,255,0.5); }
.schedule-list, .topic-list, .location-grid { display:grid; gap:18px; }
.schedule-item, .topic-item, .location-card {
  background:rgba(255,255,255,0.55); border:1px solid rgba(17,24,39,0.06); border-radius:22px; overflow:hidden; box-shadow:0 12px 22px rgba(15,23,42,0.04);
}
.schedule-item { display:grid; grid-template-columns: 120px 1fr auto; align-items:center; gap:14px; padding:14px 18px; }
.schedule-date {
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:12px; border-radius:18px; background:rgba(17,24,39,0.04); color:var(--brand);
}
.schedule-date strong { font-size:1.5rem; }
.schedule-date span { font-size:0.75rem; text-transform:uppercase; letter-spacing:0.08em; }
.schedule-info h3 { margin:0 0 6px; font-size:1.2rem; }
.schedule-info p { margin:0; color:var(--muted); }
.schedule-meta { display:flex; flex-wrap:wrap; gap:8px; }
.schedule-tag { padding:8px 10px; border-radius:999px; background:rgba(22,163,74,0.08); color:#166534; font-size:0.7rem; font-weight:700; }
.topic-list { grid-template-columns:repeat(3, minmax(0, 1fr)); gap:20px; }
.topic-item { min-width:0; overflow:hidden; border:1px solid rgba(17,24,39,0.08); border-radius:22px; background:rgba(255,255,255,0.75); box-shadow:0 12px 28px rgba(35,34,88,0.06); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.topic-item:hover { transform:translateY(-6px); border-color:rgba(79,70,229,0.22); box-shadow:0 20px 34px rgba(35,34,88,0.13); }
.topic-visual { position:relative; display:flex; min-height:174px; align-items:flex-end; justify-content:space-between; gap:12px; padding:16px; background-position:center; background-size:cover; color:#fff; transition:background-position .4s ease; }
.topic-item:hover .topic-visual { background-position:center 44%; }
.topic-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(135deg, transparent 25%, rgba(29,116,216,.3)); pointer-events:none; }
.topic-label, .topic-count { position:relative; z-index:1; border:1px solid rgba(255,255,255,.28); border-radius:999px; background:rgba(15,23,42,.3); backdrop-filter:blur(8px); }
.topic-label { padding:7px 10px; font-size:0.68rem; font-weight:700; }
.topic-count { padding:6px 9px; font-size:0.66rem; white-space:nowrap; }
.topic-content { padding:17px 18px 16px; }
.topic-heading { display:flex; align-items:center; gap:9px; min-height:31px; }
.topic-symbol { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:9px; color:#1769c2; background:#e5f1ff; font-size:0.86rem; }
.topic-item h3 { margin:0; color:var(--brand); font-size:1.18rem; letter-spacing:-0.035em; }
.topic-item p { display:-webkit-box; min-height:53px; margin:12px 0 16px; overflow:hidden; color:var(--muted); line-height:1.65; font-size:0.86rem; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.topic-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:13px; border-top:1px solid rgba(17,24,39,0.08); }
.topic-status { display:flex; align-items:center; gap:6px; min-width:0; color:#6b6c80; font-size:0.67rem; white-space:nowrap; }
.topic-status .dot { width:6px; height:6px; color:#1976d2; }
.topic-item .topic-cta { display:inline-flex; align-items:center; gap:5px; padding:7px 0; color:#1769c2; font-size:0.74rem; font-weight:800; white-space:nowrap; }
.topic-item .topic-cta span { transition:transform .2s ease; }
.topic-item .topic-cta:hover span { transform:translateX(4px); }
.topic-orange .topic-symbol, .topic-blue .topic-symbol, .topic-pink .topic-symbol, .topic-green .topic-symbol, .topic-teal .topic-symbol { color:#1769c2; background:#e5f1ff; }
.location-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); gap:20px; }
.location-card { min-width:0; overflow:hidden; border:1px solid rgba(17,24,39,0.08); border-radius:22px; background:rgba(255,255,255,0.75); box-shadow:0 12px 28px rgba(35,34,88,0.06); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.location-card:hover { transform:translateY(-6px); border-color:rgba(79,70,229,0.22); box-shadow:0 20px 34px rgba(35,34,88,0.13); }
.location-visual { position:relative; display:flex; min-height:174px; align-items:flex-start; justify-content:space-between; gap:12px; padding:16px; background-position:center; background-size:cover; color:#fff; transition:background-position .4s ease; }
.location-card:hover .location-visual { background-position:center 44%; }
.location-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(135deg, transparent 25%, rgba(29,116,216,.28)); pointer-events:none; }
.location-badge, .location-events { position:relative; z-index:1; border:1px solid rgba(255,255,255,.28); border-radius:999px; background:rgba(15,23,42,.3); backdrop-filter:blur(8px); }
.location-badge { padding:7px 10px; font-size:0.68rem; font-weight:800; }
.location-events { padding:6px 9px; font-size:0.66rem; white-space:nowrap; }
.location-content { padding:17px 18px 16px; }
.location-heading { display:flex; align-items:center; gap:10px; min-height:36px; }
.location-pin { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:10px; color:#1769c2; background:#e5f1ff; font-size:1.15rem; }
.location-heading h3 { margin:0; color:var(--brand); font-size:1.18rem; letter-spacing:-0.035em; }
.location-heading span:last-child { display:block; margin-top:3px; color:#77788b; font-size:0.68rem; }
.location-content p { display:-webkit-box; min-height:45px; margin:13px 0 15px; overflow:hidden; color:var(--muted); line-height:1.6; font-size:0.86rem; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.location-cta { display:flex; align-items:center; justify-content:space-between; width:100%; padding:12px 0 0; border-top:1px solid rgba(20,85,184,0.12); color:#1769c2; font-size:0.74rem; font-weight:800; text-align:left; }
.location-cta span { transition:transform .2s ease; }
.location-cta:hover span { transform:translateX(4px); }
.location-orange .location-pin, .location-blue .location-pin, .location-teal .location-pin, .location-green .location-pin, .location-pink .location-pin { color:#1769c2; background:#e5f1ff; }
.location-pill { display:inline-flex; padding:6px 10px; border-radius:999px; background:rgba(245,158,11,0.12); color:#b45309; font-size:0.72rem; }
.site-footer {
  margin-top: 42px;
  background: rgba(49, 49, 53, 0.96);
  color: #fff;
  padding: 30px 0 0;
}
.footer-top {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr 1.3fr;
  gap: 44px;
  padding: 10px 0 26px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.footer-col { color: rgba(255, 255, 255, 0.82); }
.footer-col h3 {
  margin: 0 0 22px;
  font-size: 1.05rem;
  line-height: 1.5;
  color: #fff;
  font-weight: 800;
}
.footer-col p,
.footer-col li,
.footer-col li a, .footer-col p a {
  margin: 0 0 10px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.95rem;
  line-height: 1.7;
  text-decoration: none;
}
.footer-col strong {
  color: #fff;
  font-weight: 700;
}
.footer-col ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-col li {
  margin-bottom: 8px;
}
.app-block {
  margin-top: 22px;
}
.app-block h4 {
  margin: 0 0 12px;
  color: #fff;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}
.app-store {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 160px;
  padding: 10px 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #fff;
  text-align: left;
}
.apple-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  font-size: 1.5rem;
  font-weight: 700;
  color: #fff;
}
.app-store strong {
  font-size: 0.92rem;
}
.signup-col {
  padding-left: 8px;
}
.email-box {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 12px 0 10px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.12);
  min-height: 48px;
}
.mail-icon {
  font-size: 1.15rem;
  color: rgba(255, 255, 255, 0.8);
}
.email-box input {
  flex: 1;
  min-width: 0;
  border: none;
  background: transparent;
  color: #fff;
  outline: none;
  padding: 12px 0;
  font-size: 0.93rem;
}
.email-box input::placeholder {
  color: rgba(255, 255, 255, 0.6);
}
.email-box button {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  background: #5d62f5;
  color: #fff;
  font-size: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.social-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.social-btn {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.social-btn.fb { background: #ef3d5f; }
.social-btn.x { background: #ef4d63; }
.social-btn.tw { background: #3b82f6; }
.social-btn.ig { background: #e0528d; }
.social-btn.in { background: #3a6df0; }
.social-btn.yt { background: #f84f5f; }
.social-btn.zalo { background: #4a7eff; font-size: 0.62rem; }
.license-text {
  margin: 20px 0 14px;
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.8rem;
  line-height: 1.6;
}
.badge-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 200px;
  min-height: 38px;
  padding: 8px 14px;
  border: none;
  border-radius: 10px;
  background: linear-gradient(90deg, #4046d6, #3a5fe6);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  margin-top: 10px;
}
.badge-link.muted {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.8);
}
.footer-bottom {
  padding: 18px 0 20px;
  text-align: center;
}
.footer-bottom p {
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.82rem;
  line-height: 1.6;
}
.footer-col li a, .footer-col p a {
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  transition: color 0.2s ease, opacity 0.2s ease;
}
.footer-col li a:hover, .footer-col p a:hover {
  color: #ffffff;
  opacity: 1;
}
.subpage-shell {
  min-height: 100vh;
  background: linear-gradient(180deg, #f6f9ff 0%, #edf4ff 100%);
}
.subpage-header {
  padding: 28px 0 16px;
  border-bottom: 1px solid rgba(20, 85, 184, 0.08);
  background: rgba(255, 255, 255, 0.6);
}
.subpage-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.brand-inline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--brand);
  font-weight: 800;
}
.brand-inline .brand-mark {
  width: 24px;
  height: 24px;
}
.back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--brand);
  font-weight: 700;
  text-decoration: none;
}
.subpage-content {
  max-width: 920px;
  margin: 0 auto;
  padding: 42px 20px 64px;
}
.subpage-card {
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(17, 24, 39, 0.06);
  border-radius: 24px;
  box-shadow: 0 14px 28px rgba(20, 85, 184, 0.08);
  padding: 28px 30px;
}
.subpage-card h1 {
  margin: 0 0 18px;
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1.1;
  letter-spacing: -0.05em;
  color: var(--brand);
}
.subpage-card h2 {
  margin: 26px 0 12px;
  font-size: 1.2rem;
  color: var(--brand);
}
.subpage-card p,
.subpage-card li {
  color: var(--muted);
  line-height: 1.8;
  font-size: 1rem;
}
.subpage-card ul {
  padding-left: 18px;
}
@media (max-width: 1024px) {
  .footer-top {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 640px) {
  .site-footer {
    padding-top: 20px;
  }
  .footer-top {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .signup-col {
    padding-left: 0;
  }
  .social-row {
    gap: 8px;
  }
}
.calendar-actions { display:flex; align-items:center; gap:8px; }
.calendar-nav { width:38px; height:38px; border:1px solid rgba(17,24,39,0.09); border-radius:10px; background:rgba(255,255,255,0.72); color:var(--brand); font-size:1.5rem; line-height:1; transition:transform .2s ease, background .2s ease; }
.calendar-nav:hover { transform:translateY(-2px); background:#fff; }
.calendar-summary { display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px; margin-bottom:14px; color:#486581; font-size:0.78rem; }
.calendar-summary-note { margin-left:auto; color:var(--soft); }
.calendar-status-dot { width:8px; height:8px; border-radius:50%; display:inline-block; }
.calendar-status-dot.live { background:#e34d5b; box-shadow:0 0 0 4px rgba(227,77,91,0.12); }
.calendar-status-dot.upcoming { background:#1976d2; box-shadow:0 0 0 4px rgba(25,118,210,0.12); }
.calendar-month { display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); border:1px solid #d9d9e7; border-radius:14px; overflow:hidden; background:rgba(255,255,255,0.72); box-shadow:0 10px 24px rgba(35,34,88,0.05); }
.calendar-weekday { padding:12px 10px; background:#f4f3fb; border-bottom:1px solid #dedee9; color:#77788b; font-size:0.72rem; font-weight:800; text-align:right; }
.calendar-day { min-height:112px; padding:10px; border-right:1px solid #e4e4ed; border-bottom:1px solid #e4e4ed; background:rgba(255,255,255,0.76); transition:background .2s ease; }
.calendar-day:nth-child(7n) { border-right:0; }
.calendar-day:hover { background:#f8f7ff; }
.calendar-day-empty { background:#f9f9fc; }
.calendar-day-number { display:flex; align-items:center; justify-content:center; width:25px; height:25px; margin-left:auto; border-radius:50%; color:#486581; font-size:0.75rem; }
.calendar-day.is-today .calendar-day-number { background:#1976d2; color:#fff; box-shadow:0 0 0 4px rgba(25,118,210,0.1); }
.calendar-event { display:flex; align-items:flex-start; gap:5px; width:100%; margin-top:8px; padding:6px 5px; border-radius:6px; color:#1769c2; background:#e8f2ff; font-size:0.65rem; line-height:1.25; text-align:left; transition:transform .2s ease, background .2s ease; }
.calendar-event:hover { transform:translateX(2px); background:#d9eaff; }
.calendar-event.live { color:#a52f3b; background:#fff0f1; }
.calendar-event.live:hover { background:#ffe2e5; }
.calendar-event-dot { width:5px; height:5px; margin-top:3px; flex:0 0 5px; border-radius:50%; background:currentColor; }
.schedule-list { margin-top:22px; }
.schedule-live { display:inline-flex; margin-left:6px; padding:4px 7px; border-radius:999px; color:#1769c2; background:#e8f2ff; font-size:0.62rem; font-weight:700; vertical-align:middle; }
.schedule-live.live { color:#a52f3b; background:#fff0f1; }
.explore-intro {
  position:relative; display:flex; align-items:flex-start; gap:14px; min-height:74px; padding:4px 0 16px 2px;
  border-bottom:1px solid rgba(29,116,216,0.18); color:#486581;
}
.explore-intro::before { content:""; position:absolute; left:0; top:0; bottom:0; width:1px; background:rgba(29,116,216,0.22); }
.intro-mark { width:8px; height:8px; margin:3px 0 0 -6px; border-radius:50%; background:#1976d2; box-shadow:0 0 0 4px rgba(25,118,210,0.1); flex-shrink:0; }
.explore-intro p { max-width:610px; margin:0; font-size:0.95rem; line-height:1.45; }
.explore-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:20px 0 14px 258px; color:#60627a; font-size:0.82rem; }
.sort-control { display:flex; align-items:center; gap:10px; white-space:nowrap; }
.sort-control select, .filter-select { min-height:38px; padding:0 30px 0 12px; border:1px solid #cfd0e4; border-radius:8px; background:#fff; color:#303148; font-size:0.82rem; }
.explore-layout { display:grid; grid-template-columns:232px minmax(0, 1fr); gap:26px; align-items:start; }
.filter-sidebar { position:sticky; top:112px; padding:20px; border:1px solid #d8d8e8; border-radius:12px; background:rgba(255,255,255,0.82); box-shadow:0 8px 24px rgba(35,34,88,0.05); }
.filter-title-row { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-bottom:15px; border-bottom:1px solid #dedee9; }
.filter-title-row h3 { margin:0; color:#303148; font-size:1rem; }
.filter-icon { color:#1976d2; font-size:1.15rem; }
.filter-title-row button { padding:0; color:#1769c2; font-size:0.68rem; font-weight:800; }
.filter-sidebar fieldset { margin:0; padding:18px 0; border:0; border-bottom:1px solid #dedee9; }
.filter-sidebar fieldset:last-child { border-bottom:0; padding-bottom:0; }
.filter-sidebar legend { margin-bottom:10px; color:#414256; font-size:0.78rem; font-weight:800; }
.check-option, .radio-option { display:flex; align-items:center; gap:10px; min-height:28px; color:#616276; font-size:0.78rem; cursor:pointer; }
.check-option input, .radio-option input { appearance:none; width:16px; height:16px; margin:0; border:1px solid #c9cadd; background:#fff; cursor:pointer; }
.check-option input { border-radius:2px; }
.radio-option input { border-radius:50%; }
.check-option input:checked, .radio-option input:checked { border-color:#1976d2; background:#1976d2; box-shadow:inset 0 0 0 3px #fff; }
.check-option input:checked { box-shadow:none; position:relative; }
.check-option input:checked::after { content:"✓"; display:block; color:#fff; font-size:0.7rem; line-height:16px; text-align:center; }
.filter-select { width:100%; appearance:auto; }
.topic-filters { display:flex; flex-wrap:wrap; gap:8px; }
.topic-filter { padding:6px 10px; border:1px solid #d2d2e1; border-radius:999px; color:#67687b; background:#fff; font-size:0.7rem; transition:all .2s ease; }
.topic-filter:hover, .topic-filter.active { border-color:#4295df; color:#1769c2; background:#e8f2ff; transform:translateY(-1px); }
.explore-results { min-width:0; }
.explore-results .event-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); gap:20px; }
.explore-results .event-card { border-color:#d8d8e8; border-radius:12px; background:#fff; box-shadow:0 5px 14px rgba(35,34,88,0.035); animation:cardIn .42s both; }
.explore-results .event-card:nth-child(2) { animation-delay:.05s; }
.explore-results .event-card:nth-child(3) { animation-delay:.1s; }
.explore-results .event-card:nth-child(4) { animation-delay:.15s; }
.explore-results .event-card:nth-child(5) { animation-delay:.2s; }
.explore-results .event-card:nth-child(6) { animation-delay:.25s; }
.explore-results .event-media { height:132px; }
.explore-results .event-body { padding:13px 16px 15px; }
.explore-results .event-body h3 { min-height:56px; margin-bottom:9px; font-size:0.98rem; letter-spacing:-0.025em; }
.explore-results .meta-line, .explore-results .location-line { font-size:0.72rem; }
.explore-results .meta-line { color:#1769c2; }
.explore-results .meta-line svg, .explore-results .location-line svg { width:14px; height:14px; }
.explore-results .location-line { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.explore-results .card-footer { margin-top:12px; padding-top:10px; border-top:1px solid #dedee9; }
.explore-results .price-tag, .explore-results .verified-pill { padding:0; background:none; font-size:0.65rem; letter-spacing:0; }
.explore-results .verified-pill { color:#65677e; max-width:125px; overflow:hidden; text-overflow:ellipsis; }
.explore-results .save-button { width:30px; height:30px; top:10px; right:10px; background:rgba(22,25,64,0.62); }
.explore-results .event-tag { left:10px; top:10px; padding:5px 8px; font-size:0.62rem; }
.empty-state { padding:54px 20px; border:1px dashed #c9c9db; border-radius:12px; color:#6b6d83; text-align:center; background:rgba(255,255,255,.45); }
@keyframes cardIn { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
.secondary-btn, .inline-link, .view-all, .icon-button, .saved-button, .admin-button, .user-button { transition:transform .2s ease, box-shadow .2s ease, background .2s ease; }
.secondary-btn:hover, .inline-link:hover, .view-all:hover, .icon-button:hover, .saved-button:hover, .admin-button:hover, .user-button:hover { transform:translateY(-2px); box-shadow:0 8px 18px rgba(35,34,88,0.1); }
.save-button { transition:transform .2s ease, background .2s ease; }
.save-button:hover { transform:scale(1.1) rotate(-4deg); background:#1976d2; }
@media (max-width: 1024px) { .event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .feature-stack { grid-template-columns: 1fr; } .topic-list, .location-grid { grid-template-columns:1fr; } }
@media (max-width: 820px) {
  .topbar-inner { flex-wrap:wrap; justify-content:center; padding:12px 0; }
  .main-nav { order:3; width:100%; flex-wrap:wrap; }
  .top-actions { width:100%; justify-content:center; flex-wrap:wrap; }
  .hero-copy h1 { max-width:520px; }
  .schedule-item { grid-template-columns:1fr; text-align:left; }
  .calendar-day { min-height:94px; padding:7px; }
  .calendar-event { font-size:0.6rem; }
  .explore-toolbar { margin-left:0; }
  .explore-layout { grid-template-columns:1fr; }
  .filter-sidebar { position:static; }
}
@media (max-width: 640px) {
  .brand-button { font-size:0.96rem; }
  .top-actions { gap:8px; }
  .saved-button, .admin-button, .user-button { width:100%; justify-content:center; }
  .event-grid { grid-template-columns:1fr; }
  .section-header, .page-heading { flex-direction:column; align-items:flex-start; }
  .search-panel { padding-left:12px; }
  .search-panel button { padding:0 18px; }
  .explore-toolbar { align-items:flex-start; flex-direction:column; }
  .explore-results .event-grid { grid-template-columns:1fr; }
  .calendar-actions { width:100%; justify-content:space-between; }
  .calendar-actions .secondary-btn { flex:1; }
  .calendar-summary-note { width:100%; margin-left:0; }
  .calendar-day { min-height:72px; padding:5px; }
  .calendar-weekday { padding:8px 4px; font-size:0.62rem; }
  .calendar-day-number { width:21px; height:21px; font-size:0.68rem; }
  .calendar-event { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; padding:4px; font-size:0.55rem; }
  .calendar-event-dot { display:inline-block; vertical-align:middle; }
}

/* Event detail modal */
.event-card[data-event-id] { cursor:pointer; }
.event-card:focus-visible { outline:3px solid var(--brand-3); outline-offset:2px; }
.save-button.saved { background:var(--brand); }
body.modal-open { overflow:hidden; }
.event-modal { position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:24px 16px; }
.event-modal[hidden] { display:none; }
.event-modal-backdrop { position:absolute; inset:0; background:rgba(15,23,42,0.55); backdrop-filter:blur(4px); }
.event-modal-dialog { position:relative; width:min(760px, 100%); max-height:calc(100vh - 48px); overflow-y:auto; background:#fff; border-radius:var(--radius-lg); box-shadow:0 30px 80px rgba(15,23,42,0.35); animation:modal-in .2s ease; }
@keyframes modal-in { from { opacity:0; transform:translateY(12px) scale(.98); } to { opacity:1; transform:none; } }
.event-modal-close { position:absolute; top:14px; right:14px; z-index:2; width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,0.9); color:var(--text); font-size:1rem; font-weight:700; box-shadow:0 4px 12px rgba(15,23,42,0.2); }
.event-modal-close:hover { background:#fff; color:var(--brand); }
.detail-hero { min-height:240px; padding:24px; display:flex; flex-direction:column; justify-content:flex-end; background-size:cover; background-position:center; color:#fff; }
.detail-hero-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.detail-hero .event-tag { position:static; }
.detail-hero h2 { margin:0; font-size:clamp(1.4rem, 3vw, 2rem); line-height:1.2; letter-spacing:-0.02em; }
.detail-body { padding:24px; color:var(--text); }
.detail-info-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:12px; margin-bottom:8px; }
.detail-info { padding:12px 14px; border-radius:var(--radius-sm); background:var(--page); border:1px solid var(--card-border); display:flex; flex-direction:column; gap:4px; }
.detail-info span { font-size:0.75rem; font-weight:600; text-transform:uppercase; letter-spacing:0.04em; color:var(--soft); }
.detail-info strong { font-size:0.95rem; line-height:1.4; }
.detail-body h3 { margin:22px 0 8px; font-size:1.05rem; color:var(--brand); }
.detail-body p { margin:0; line-height:1.7; color:var(--muted); }
.detail-list { margin:0; padding-left:20px; color:var(--muted); line-height:1.8; }
.detail-actions { margin-top:24px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.detail-register { display:inline-block; text-decoration:none; text-align:center; padding:12px 22px; border-radius:999px; background:var(--brand); color:#fff; font-weight:700; }
.detail-register:hover { background:var(--brand-2); }
@media (max-width: 640px) { .detail-hero { min-height:180px; padding:18px; } .detail-body { padding:18px; } }

/* Register page */
.register-event { display:flex; gap:20px; align-items:center; padding:16px; border-radius:var(--radius-md); background:var(--page); border:1px solid var(--card-border); margin-bottom:24px; }
.register-event-image { flex:0 0 160px; aspect-ratio:4/3; border-radius:var(--radius-sm); background-size:cover; background-position:center; }
.register-event h2 { margin:6px 0 6px !important; }
.register-event p { margin:0; line-height:1.6 !important; }
.register-event-type { display:inline-block; padding:4px 10px; border-radius:999px; background:var(--chip-bg); color:var(--brand); font-size:0.75rem; font-weight:700; text-transform:uppercase; }
.register-form { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; }
.register-form label { display:flex; flex-direction:column; gap:6px; }
.register-form label span { font-size:0.9rem; font-weight:600; color:var(--text); }
.register-form input, .register-form textarea { width:100%; box-sizing:border-box; padding:12px 14px; border-radius:var(--radius-sm); border:1px solid rgba(17,24,39,0.15); background:#fff; color:var(--text); font:inherit; }
.register-form input:focus, .register-form textarea:focus { outline:none; border-color:var(--brand-2); box-shadow:0 0 0 3px rgba(29,116,216,0.15); }
.register-full { grid-column:1 / -1; }
.register-form .detail-register { border:0; cursor:pointer; font-size:1rem; }
.register-form[hidden], .register-success[hidden] { display:none; }
.register-success { text-align:center; padding:12px 0; }
.register-success .detail-register { margin-top:12px; }
@media (max-width: 640px) { .register-event { flex-direction:column; align-items:stretch; } .register-event-image { flex-basis:auto; } .register-form { grid-template-columns:1fr; } }

/* Các nút đã chuyển thành liên kết */
a.saved-button, a.admin-button, a.user-button, a.app-store, a.social-btn, a.badge-link, a.secondary-btn, a.detail-register { text-decoration:none; }
a.social-btn { display:inline-flex; align-items:center; justify-content:center; color:#fff; }
a.secondary-btn { display:inline-flex; align-items:center; }
.bookmark-badge[hidden] { display:none !important; }
.newsletter-message { margin:8px 0 0; font-size:0.85rem; color:var(--green); }
.newsletter-message.is-error { color:#dc2626; }
.newsletter-message[hidden] { display:none; }
.register-form select { width:100%; box-sizing:border-box; padding:12px 14px; border-radius:var(--radius-sm); border:1px solid rgba(17,24,39,0.15); background:#fff; color:var(--text); font:inherit; }
.saved-content { max-width:1180px; }
.saved-grid { margin-top:20px; }
.empty-state a { color:var(--brand); font-weight:600; }
