@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600&family=Poppins:wght@500;600;700;800&display=swap");
:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #f5f2ee;
  background: #08090A;
  font-synthesis: none;
  --bg: #08090A;
  --panel: #121316;
  --panel-2: #1B1D21;
  --text: #F7F4EE;
  --muted: #A7A3AA;
  --line: rgba(255,255,255,.1);
  --accent: #D8FF45;
  --danger: #FF6470;
  --success: #56E79A;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}
* { box-sizing: border-box; }
html { background: var(--bg); }
body { margin: 0; min-width: 320px; min-height: 100vh; background: radial-gradient(circle at 90% -5%, rgba(214,255,63,.11), transparent 29%), var(--bg); }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; display: block; }
.app-shell { min-height: 100vh; padding-bottom: calc(78px + var(--safe-bottom)); }
.topbar { height: 66px; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 30; background: rgba(10,10,11,.88); backdrop-filter: blur(18px); border-bottom: 1px solid var(--line); }
.brand { font-weight: 900; letter-spacing: -.06em; font-size: 22px; }
.brand span { color: var(--accent); }
.brand-large { font-size: clamp(34px, 12vw, 64px); }
.private-pill { font-size: 9px; letter-spacing: .18em; border: 1px solid var(--line); border-radius: 999px; padding: 7px 9px; color: var(--muted); }
.app-main { width: 100%; }
.page { width: min(100%, 760px); margin: 0 auto; padding: 28px 18px 46px; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(31px, 8vw, 50px); letter-spacing: -.055em; line-height: .98; margin-bottom: 12px; }
h2 { letter-spacing: -.035em; }
p { color: var(--muted); line-height: 1.6; }
.eyebrow { color: var(--accent); display: block; font-size: 10px; font-weight: 800; letter-spacing: .18em; margin-bottom: 10px; }
.page-heading { display: flex; gap: 18px; align-items: flex-start; justify-content: space-between; margin-bottom: 28px; }
.page-heading p { margin: 0; }
.avatar { width: 43px; height: 43px; display: grid; place-items: center; border-radius: 50%; color: #111; background: var(--accent); font-weight: 900; flex: 0 0 auto; }
.avatar-large { width: 82px; height: 82px; font-size: 32px; margin: 0 auto 16px; }
.bottom-nav { position: fixed; left: 50%; bottom: 0; transform: translateX(-50%); z-index: 40; width: min(100%, 760px); display: flex; justify-content: space-around; border-top: 1px solid var(--line); padding: 10px 12px calc(10px + var(--safe-bottom)); background: rgba(14,14,16,.94); backdrop-filter: blur(20px); }
.nav-item { min-width: 74px; display: flex; flex-direction: column; align-items: center; gap: 3px; color: #727178; font-size: 20px; }
.nav-item small { font-size: 10px; letter-spacing: .04em; }
.nav-item.active { color: var(--accent); }
.panel { background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.02)); border: 1px solid var(--line); border-radius: 22px; padding: 22px; }
.event-list { display: grid; gap: 18px; }
.event-card { position: relative; min-height: 390px; border-radius: 26px; overflow: hidden; border: 1px solid var(--line); background: var(--panel); isolation: isolate; }
.event-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.event-card:hover img { transform: scale(1.03); }
.event-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.02), rgba(0,0,0,.22) 38%, rgba(0,0,0,.94)); }
.event-content { position: absolute; inset: auto 0 0; padding: 24px; z-index: 2; }
.event-content h2 { font-size: 34px; line-height: 1; margin: 13px 0 8px; }
.event-content p { margin: 0; color: #ddd; }
.event-meta { display: flex; justify-content: space-between; align-items: center; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.status { border-radius: 999px; padding: 7px 9px; background: rgba(255,255,255,.12); }
.status-going { background: var(--accent); color: #111; }
.status-declined { background: rgba(255,92,102,.2); color: #ff9ca3; }
.status-waitlist { background: rgba(255,190,60,.2); color: #ffd47d; }
.detail-hero { min-height: 56vh; background-size: cover; background-position: center; position: relative; display: flex; align-items: flex-end; }
.detail-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.2), rgba(0,0,0,.9)); }
.detail-title { position: relative; z-index: 1; width: min(100%,760px); margin: 0 auto; padding: 30px 20px; }
.detail-title h1 { font-size: clamp(46px,14vw,76px); }
.detail-title p { color: #eee; margin: 0; text-transform: capitalize; }
.back-link { position: absolute; z-index: 3; top: 20px; left: 18px; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: rgba(0,0,0,.48); backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,.22); }
.back-inline { display: inline-block; margin-bottom: 24px; color: var(--muted); }
.detail-body { margin-top: -10px; }
.detail-section { margin: 18px 0 28px; }
.info-grid, .metric-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.info-grid > div, .metric { padding: 18px; background: var(--panel); border-radius: 16px; border: 1px solid var(--line); }
.info-grid small, .metric small { display: block; color: var(--muted); font-size: 9px; letter-spacing: .13em; margin-bottom: 9px; }
.info-grid strong { font-size: 13px; }
.metric strong { font-size: 31px; }
.rsvp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.choice { border: 1px solid var(--line); border-radius: 16px; background: var(--panel); color: var(--text); padding: 17px 10px; }
.choice.active { color: #111; background: var(--accent); border-color: var(--accent); font-weight: 800; }
.action-stack { display: grid; gap: 10px; margin: 20px 0; }
.button { display: inline-flex; min-height: 50px; padding: 12px 18px; align-items: center; justify-content: center; border-radius: 14px; border: 1px solid transparent; font-weight: 800; transition: opacity .2s, transform .2s; }
.button:active { transform: scale(.985); }
.button:disabled { opacity: .45; cursor: not-allowed; }
.button-primary { color: #10110b; background: var(--accent); }
.button-secondary { color: var(--text); background: var(--panel-2); border-color: var(--line); }
.button-ghost { color: var(--text); background: transparent; border-color: var(--line); }
.button-danger { width: 100%; color: var(--danger); background: rgba(255,92,102,.08); border-color: rgba(255,92,102,.25); }
.button-small { min-height: 42px; white-space: nowrap; }
.location-card { padding: 22px; border-radius: 18px; background: linear-gradient(135deg, rgba(214,255,63,.15), rgba(214,255,63,.03)); border: 1px solid rgba(214,255,63,.3); }
.location-card a { color: var(--accent); font-weight: 800; }
.sponsor-strip { margin-top: 28px; padding: 18px; display: grid; grid-template-columns: 1fr auto; gap: 2px 16px; align-items: center; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.sponsor-strip span { font-size: 9px; color: var(--muted); letter-spacing: .15em; }
.sponsor-strip strong { font-size: 24px; grid-row: 2; }
.sponsor-strip i { grid-column: 2; grid-row: 1 / 3; font-size: 24px; }
.auth-page { min-height: 100vh; display: grid; align-content: center; width: min(100%,520px); margin: auto; padding: 28px 18px; }
.auth-hero { margin-bottom: 24px; }
.auth-hero p { margin-bottom: 0; }
.auth-panel { display: grid; gap: 17px; }
label { color: #d8d7da; display: grid; gap: 8px; font-size: 12px; font-weight: 700; }
input, textarea, select { width: 100%; color: var(--text); background: #0f0f11; border: 1px solid var(--line); border-radius: 12px; padding: 14px 15px; outline: none; }
input:focus, textarea:focus, select:focus { border-color: rgba(214,255,63,.6); box-shadow: 0 0 0 3px rgba(214,255,63,.08); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.check-row { display: flex; align-items: flex-start; gap: 10px; font-weight: 500; line-height: 1.45; }
.check-row input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--accent); }
.form-foot { text-align: center; font-size: 13px; margin: 0; }
.form-foot a { color: var(--accent); }
.demo-box { display: grid; gap: 4px; padding: 13px; border-radius: 12px; color: var(--muted); background: rgba(214,255,63,.06); border: 1px solid rgba(214,255,63,.18); font-size: 12px; }
.demo-box strong { color: var(--accent); }
.alert { padding: 13px 15px; border-radius: 12px; font-size: 13px; }
.alert-error { color: #ffc2c6; background: rgba(255,92,102,.11); border: 1px solid rgba(255,92,102,.25); }
.alert-success { color: #a8f7c5; background: rgba(82,229,142,.1); border: 1px solid rgba(82,229,142,.25); }
.alert-warning { color: #ffe8a6; background: rgba(255,190,72,.1); border: 1px solid rgba(255,190,72,.28); }
.alert-warning strong { color: #fff0bd; }
.ticket-page { max-width: 480px; }
.ticket-card { background: #f5f2ee; color: #111; border-radius: 28px; padding: 25px; box-shadow: 0 28px 80px rgba(0,0,0,.45); }
.ticket-card p { color: #54545a; }
.ticket-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 36px; }
.ticket-head .status { background: #e6ebca; font-size: 9px; letter-spacing: .1em; }
.ticket-card .eyebrow { color: #5b6e00; }
.ticket-card h1 { font-size: 38px; }
.qr-wrap { background: white; border: 1px solid #ddd; border-radius: 20px; display: grid; place-items: center; padding: 15px; margin: 28px auto 13px; max-width: 280px; }
.ticket-code { text-align: center; font-weight: 900; letter-spacing: .18em; }
.ticket-rule { border-top: 2px dashed #ccc; margin: 25px -25px; }
.ticket-note { margin: 0; font-size: 12px; text-align: center; }
.ticket-used { opacity: .7; }
.gallery-page > p { margin-bottom: 25px; }
.gallery-grid { columns: 2; column-gap: 10px; margin-bottom: 30px; }
.gallery-grid img { width: 100%; margin: 0 0 10px; border-radius: 14px; break-inside: avoid; border: 1px solid var(--line); }
.download-panel, .rating-panel { display: grid; gap: 15px; margin: 18px 0; }
.download-panel h2, .download-panel p, .rating-panel h2 { margin-bottom: 0; }
.rating-row { display: flex; justify-content: space-between; }
.star { border: 0; background: none; color: #444; font-size: 36px; padding: 2px; }
.star.active { color: var(--accent); }
.admin-list { display: grid; gap: 14px; margin-top: 20px; }
.admin-event { display: grid; gap: 18px; }
.admin-event h2 { margin: 0; }
.admin-event-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.admin-event-metrics span { color: var(--muted); font-size: 11px; }
.admin-event-metrics b { color: var(--text); display: block; font-size: 21px; }
.admin-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.admin-form { display: grid; gap: 16px; }
.scanner-frame { overflow: hidden; min-height: 250px; border-radius: 20px; background: #050506; border: 1px solid var(--line); margin: 20px 0; }
.scanner-frame video { object-fit: cover; }
.scanner-actions { display: grid; }
.scan-result { margin: 18px 0; border-radius: 22px; padding: 26px; text-align: center; }
.scan-result.success { background: rgba(82,229,142,.12); border: 1px solid rgba(82,229,142,.35); }
.scan-result.error { background: rgba(255,92,102,.12); border: 1px solid rgba(255,92,102,.35); }
.scan-symbol { width: 70px; height: 70px; margin: auto auto 14px; display: grid; place-items: center; border-radius: 50%; font-size: 38px; font-weight: 900; background: rgba(255,255,255,.08); }
.manual-check { display: grid; gap: 14px; margin-top: 20px; }
.profile-card { text-align: center; margin: 22px 0 16px; }
.profile-card h2 { margin-bottom: 5px; }
.role-list { display: flex; flex-wrap: wrap; gap: 7px; justify-content: center; margin-top: 17px; }
.role-list span { border-radius: 999px; padding: 7px 10px; background: var(--panel-2); color: var(--muted); font-size: 10px; text-transform: uppercase; }
.privacy-card { margin-bottom: 16px; }
.interstitial { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(0,0,0,.91); backdrop-filter: blur(18px); }
.ad-card { width: min(100%,430px); min-height: 520px; border-radius: 30px; padding: 28px; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-end; text-align: center; background: radial-gradient(circle at 50% 20%, rgba(214,255,63,.26), transparent 34%), #141416; border: 1px solid rgba(214,255,63,.25); }
.ad-label { margin-bottom: auto; color: var(--muted); letter-spacing: .14em; font-size: 9px; }
.ad-mark { width: 115px; height: 115px; margin: 0 auto 25px; display: grid; place-items: center; border: 1px solid rgba(214,255,63,.4); border-radius: 50%; color: var(--accent); font-size: 55px; font-weight: 200; }
.ad-card h2 { font-size: 48px; margin: 0; }
.ad-card .button { margin-top: 10px; }
.state-card { width: min(calc(100% - 36px), 520px); margin: 60px auto; padding: 35px 24px; text-align: center; border: 1px solid var(--line); border-radius: 24px; background: var(--panel); }
.state-icon { display: grid; place-items: center; width: 65px; height: 65px; margin: 0 auto 17px; border-radius: 50%; background: rgba(255,255,255,.06); color: var(--accent); font-weight: 900; }
.screen-center { min-height: 65vh; display: grid; place-items: center; }
.loader { width: 34px; height: 34px; border: 3px solid rgba(255,255,255,.1); border-top-color: var(--accent); border-radius: 50%; animation: spin .75s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (min-width: 700px) {
  .page { padding-left: 28px; padding-right: 28px; }
  .event-list { grid-template-columns: repeat(2, 1fr); }
  .event-card { min-height: 420px; }
  .auth-page { min-height: 90vh; }
}
@media (max-width: 430px) {
  .form-grid { grid-template-columns: 1fr; }
  .admin-event-metrics { grid-template-columns: repeat(3, 1fr); }
  .admin-actions { grid-template-columns: 1fr; }
}

.invite-panel { display: grid; gap: 16px; margin: 20px 0 28px; }
.invite-panel select { width: 100%; }
.invite-url { display: block; margin-top: 8px; overflow-wrap: anywhere; opacity: .78; }

/* BEroom brand kit layer — Canva kit kAF9N7-aUAs */
:root { --accent-2: #8a72ff; }
body {
  background:
    radial-gradient(circle at 92% -8%, color-mix(in srgb, var(--accent) 15%, transparent), transparent 30%),
    radial-gradient(circle at -10% 42%, color-mix(in srgb, var(--accent-2) 10%, transparent), transparent 34%),
    var(--bg);
}
.brand-home { display: inline-flex; align-items: center; }
.brand-logo { display: inline-flex; align-items: center; gap: 9px; color: var(--text); line-height: 1; }
.brand-symbol { width: 28px; height: 28px; fill: var(--accent); flex: 0 0 auto; }
.brand-symbol-cut { fill: var(--bg); }
.brand-symbol-dot { fill: var(--accent-2); }
.brand-wordmark { display: inline-flex; align-items: baseline; letter-spacing: -.065em; font-size: 22px; }
.brand-wordmark b { font-weight: 950; }
.brand-wordmark i { color: var(--accent); font-size: .94em; font-style: normal; font-weight: 760; }
.brand-logo-large { gap: 14px; margin-bottom: 12px; }
.brand-logo-large .brand-symbol { width: clamp(44px, 12vw, 64px); height: clamp(44px, 12vw, 64px); }
.brand-logo-large .brand-wordmark { font-size: clamp(38px, 13vw, 68px); }
.brand-logo-compact .brand-symbol { width: 30px; height: 30px; }

.event-price { display: inline-block; margin-top: 12px; color: var(--accent); font-size: 15px; }
.status-approved { background: rgba(86,231,154,.18); color: #aef8cc; }
.status-review { background: rgba(138,114,255,.22); color: #c7bbff; }
.status-rejected { background: rgba(255,100,112,.2); color: #ffb0b7; }
.status-payment { background: rgba(214,255,63,.16); color: var(--accent); }

.payment-card { display: grid; gap: 18px; margin: 28px 0; overflow: hidden; position: relative; }
.payment-card::before { content: ''; position: absolute; width: 180px; height: 180px; right: -75px; top: -90px; border-radius: 50%; background: color-mix(in srgb, var(--accent-2) 22%, transparent); filter: blur(3px); pointer-events: none; }
.payment-heading { position: relative; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.payment-heading h2 { margin: 0; }
.payment-amount { color: var(--accent); font-size: 28px; letter-spacing: -.04em; white-space: nowrap; }
.payment-steps { display: grid; gap: 10px; margin: 0; padding-left: 22px; color: #d9d6dd; font-size: 13px; line-height: 1.55; }
.payment-steps li::marker { color: var(--accent); font-weight: 900; }
.payment-instructions { margin: 0; padding: 14px; border-radius: 14px; background: rgba(255,255,255,.04); border: 1px solid var(--line); font-size: 12px; }
.button-paypal { color: #10142b; background: #ffc439; border-color: #ffc439; }
.button-paypal::before { content: 'P'; display: grid; place-items: center; width: 22px; height: 22px; margin-right: 8px; border-radius: 6px; background: #003087; color: white; font-weight: 900; }
.receipt-form { display: grid; gap: 13px; }
.receipt-form small, .field-help { color: var(--muted); font-size: 11px; line-height: 1.5; }
.proof-status { display: grid; gap: 11px; padding: 16px; border-radius: 16px; border: 1px solid var(--line); }
.proof-status > div:first-child { display: flex; align-items: center; gap: 9px; }
.proof-status p { margin: 0; font-size: 12px; }
.proof-status blockquote, .review-note { margin: 0; padding: 12px 13px; border-left: 3px solid currentColor; background: rgba(0,0,0,.16); border-radius: 0 10px 10px 0; color: inherit; font-size: 12px; line-height: 1.5; }
.proof-status img { width: min(100%, 280px); max-height: 320px; object-fit: contain; border-radius: 12px; border: 1px solid var(--line); background: #08080a; }
.proof-dot { width: 9px; height: 9px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 5px color-mix(in srgb, currentColor 12%, transparent); }
.proof-pending { color: #c7bbff; background: rgba(138,114,255,.08); border-color: rgba(138,114,255,.28); }
.proof-approved { color: #aef8cc; background: rgba(86,231,154,.08); border-color: rgba(86,231,154,.28); }
.proof-rejected { color: #ffb0b7; background: rgba(255,100,112,.08); border-color: rgba(255,100,112,.28); }
.locked-message { display: flex; gap: 14px; align-items: center; margin: 18px 0; padding: 17px; border: 1px dashed rgba(255,255,255,.18); border-radius: 17px; background: rgba(255,255,255,.025); }
.locked-message > span { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; border-radius: 50%; color: var(--accent-2); background: rgba(138,114,255,.1); font-size: 23px; }
.locked-message strong { display: block; margin-bottom: 3px; }
.locked-message p { margin: 0; font-size: 11px; line-height: 1.45; }

.payment-config { display: grid; gap: 15px; margin: 4px 0; padding: 18px; border: 1px solid rgba(138,114,255,.28); border-radius: 17px; background: rgba(138,114,255,.055); }
.payment-config legend { padding: 0 8px; color: #c7bbff; font-size: 11px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }

.metric-grid-four { grid-template-columns: repeat(2, 1fr); }
.metric-action { display: block; }
.metric-action span { display: block; margin-top: 5px; color: var(--accent); font-size: 10px; }
.admin-shortcuts { display: grid; gap: 10px; margin: 14px 0 22px; }
.admin-shortcut { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; padding: 16px 18px; }
.admin-shortcut .shortcut-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 13px; color: #111; background: var(--accent); font-weight: 950; }
.admin-shortcut strong, .admin-shortcut small { display: block; }
.admin-shortcut small { margin-top: 4px; color: var(--muted); }
.admin-shortcut i { color: var(--accent); font-style: normal; font-size: 21px; }

.payment-counter { display: grid; place-items: center; min-width: 52px; height: 52px; border-radius: 18px; color: #111; background: var(--accent); font-size: 24px; font-weight: 950; }
.filter-tabs { display: flex; gap: 7px; overflow-x: auto; padding-bottom: 8px; margin-bottom: 16px; scrollbar-width: none; }
.filter-tabs::-webkit-scrollbar { display: none; }
.filter-tabs button { flex: 0 0 auto; padding: 10px 13px; border-radius: 999px; border: 1px solid var(--line); color: var(--muted); background: var(--panel); font-size: 11px; font-weight: 800; }
.filter-tabs button.active { color: #111; border-color: var(--accent); background: var(--accent); }
.proof-list { display: grid; gap: 16px; }
.proof-review-card { display: grid; gap: 15px; }
.proof-review-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.proof-review-head h2 { margin-bottom: 6px; }
.proof-review-head p { margin: 0; font-size: 12px; }
.proof-review-head > strong { color: var(--accent); font-size: 24px; white-space: nowrap; }
.proof-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 10px; }
.proof-image-link { display: block; overflow: hidden; border-radius: 16px; background: #050506; border: 1px solid var(--line); }
.proof-image-link img { width: 100%; max-height: 440px; object-fit: contain; }
.proof-image-missing { display: grid; place-items: center; min-height: 180px; color: var(--muted); border-radius: 16px; border: 1px dashed var(--line); }
.review-actions { display: grid; gap: 13px; }
.review-actions > div { display: grid; grid-template-columns: 1fr 1.4fr; gap: 8px; }
.ticket-pending-card { margin-top: 12px; }
.ticket-pending-card .button { margin-top: 6px; }

@media (min-width: 700px) {
  .metric-grid-four { grid-template-columns: repeat(4, 1fr); }
  .proof-list { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}
@media (max-width: 520px) {
  .payment-heading, .proof-review-head { flex-direction: column; }
  .review-actions > div { grid-template-columns: 1fr; }
  .payment-amount { font-size: 24px; }
}

/* Fatal startup error */
.fatal-error{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg,#08090A);color:var(--text,#F7F4EE)}
.fatal-error__card{width:min(460px,100%);display:grid;gap:14px;padding:28px;border:1px solid var(--line,rgba(255,255,255,.11));border-radius:24px;background:var(--panel,#121316);text-align:center;box-sizing:border-box}
.fatal-error__card img{margin-inline:auto}
.fatal-error__card h1,.fatal-error__card p{margin:0}

/* --- BEROOM brand kit overrides --- */
:root {
  font-family: "Montserrat", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --accent-deep: #1A1F16;
}
html, body { background: #0A0A0A; }
body {
  color: var(--text);
  font-family: "Montserrat", ui-sans-serif, system-ui, sans-serif;
  background:
    radial-gradient(circle at 50% -20%, rgba(183,255,0,.14), transparent 25%),
    radial-gradient(circle at 100% 0%, rgba(143,191,26,.09), transparent 24%),
    #0A0A0A;
}
h1, h2, h3, .brand, .button, .eyebrow, .private-pill, .metric strong { font-family: "Poppins", ui-sans-serif, system-ui, sans-serif; }
h1, h2, h3 { text-transform: none; }
p, label, input, textarea, select, small { font-family: "Montserrat", ui-sans-serif, system-ui, sans-serif; }
.topbar {
  height: 74px;
  background: rgba(5, 6, 5, .84);
  border-bottom: 1px solid rgba(183,255,0,.12);
  box-shadow: 0 10px 40px rgba(0,0,0,.2);
}
.brand-home { display: inline-flex; align-items: center; }
.private-pill {
  color: var(--accent);
  border-color: rgba(183,255,0,.2);
  background: rgba(183,255,0,.05);
}
.page { padding-top: 30px; }
.panel {
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.018));
  border-color: rgba(183,255,0,.1);
  box-shadow: 0 18px 60px rgba(0,0,0,.28);
}
.brand-logo { display: inline-flex; align-items: center; }
.brand-image { display: block; max-width: 100%; height: auto; }
.brand-wordmark-image { width: 220px; }
.brand-logo-compact .brand-wordmark-image { width: 40px; }
.brand-logo-large {
  display: grid;
  justify-items: start;
  gap: 14px;
  margin-bottom: 0;
}
.brand-logo-large .brand-mark-image {
  width: clamp(116px, 30vw, 176px);
  filter: drop-shadow(0 0 18px rgba(183,255,0,.18));
}
.brand-logo-large .brand-wordmark-image {
  width: min(100%, 420px);
}
.brand-copy-block { display: grid; gap: 8px; }
.brand-tagline {
  color: #d5d9d1;
  font-size: 12px;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.brand-tagline strong { color: var(--accent); font-weight: 700; }
.auth-page {
  width: min(100%, 1120px);
  gap: 20px;
  align-content: start;
  padding: 18px 18px 36px;
}
.auth-hero { margin-bottom: 0; }
.auth-stage {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  min-height: 320px;
  border: 1px solid rgba(183,255,0,.14);
  background: #0A0A0A;
}
.auth-stage-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  opacity: .42;
}
.auth-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(10,10,10,.88), rgba(10,10,10,.6) 55%, rgba(10,10,10,.78));
}
.auth-stage-copy {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 14px;
  align-content: center;
  min-height: 320px;
  padding: 24px;
}
.auth-stage-lead {
  max-width: 40ch;
  margin: 0;
  color: #eef0ec;
  font-size: 17px;
  line-height: 1.55;
}
.auth-stage-points {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 20px;
  color: #d8ddd3;
}
.auth-stage-points li::marker { color: var(--accent); }
.auth-stage-note {
  display: inline-grid;
  gap: 6px;
  align-content: start;
  width: fit-content;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(183,255,0,.06);
  border: 1px solid rgba(183,255,0,.14);
}
.auth-stage-note strong {
  color: var(--accent);
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.auth-stage-note span { color: #d5d9d1; font-size: 12px; }
.auth-panel { gap: 18px; }
.form-intro { margin: 0; }
.demo-box {
  background: rgba(183,255,0,.07);
  border-color: rgba(183,255,0,.18);
}
.demo-box strong { color: var(--accent); }
input, textarea, select {
  background: rgba(10,10,10,.92);
  border-color: rgba(183,255,0,.13);
  color: var(--text);
}
input:focus, textarea:focus, select:focus {
  border-color: rgba(183,255,0,.54);
  box-shadow: 0 0 0 3px rgba(183,255,0,.08);
}
.button-primary {
  background: var(--accent);
  color: #0A0A0A;
  box-shadow: 0 0 0 1px rgba(183,255,0,.12), 0 10px 26px rgba(183,255,0,.12);
}
.button-secondary {
  background: rgba(183,255,0,.05);
  border-color: rgba(183,255,0,.18);
}
.button-ghost { border-color: rgba(183,255,0,.14); }
.avatar {
  background: var(--accent);
  color: #0A0A0A;
  box-shadow: 0 0 0 4px rgba(183,255,0,.09);
}
.event-card {
  min-height: 410px;
  border-color: rgba(183,255,0,.1);
}
.event-overlay {
  background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.26) 34%, rgba(0,0,0,.9));
}
.event-content h2 { font-family: "Poppins", ui-sans-serif, system-ui, sans-serif; }
.event-price {
  font-family: "Poppins", ui-sans-serif, system-ui, sans-serif;
  font-size: 18px;
  text-shadow: 0 0 18px rgba(183,255,0,.14);
}
.location-card {
  background: linear-gradient(135deg, rgba(183,255,0,.12), rgba(26,31,22,.7));
  border-color: rgba(183,255,0,.24);
}
.sponsor-strip { border-color: rgba(183,255,0,.1); }
.sponsor-strip strong { font-family: "Poppins", ui-sans-serif, system-ui, sans-serif; }
.alert-success {
  background: rgba(86,231,154,.1);
  border: 1px solid rgba(86,231,154,.18);
}
.alert-error {
  background: rgba(255,100,112,.09);
  border: 1px solid rgba(255,100,112,.18);
}
.bottom-nav {
  background: rgba(5,6,5,.92);
  border-top-color: rgba(183,255,0,.1);
}
.nav-item.active { color: var(--accent); }
.loading-spinner {
  border-top-color: var(--accent) !important;
}
@media (min-width: 960px) {
  .auth-page {
    grid-template-columns: minmax(0, 1.1fr) minmax(360px, .82fr);
    align-items: stretch;
    min-height: 100vh;
  }
  .auth-stage, .auth-panel { min-height: 100%; }
  .auth-panel { align-content: center; }
}
@media (max-width: 540px) {
  .topbar { padding-inline: 16px; }
  .brand-wordmark-image { width: 176px; }
  .brand-logo-large .brand-wordmark-image { width: min(100%, 280px); }
  .page-heading { gap: 12px; }
  .auth-stage-copy { min-height: 300px; padding: 20px; }
  .auth-stage-lead { font-size: 15px; }
}

/* =========================================================
   BEroom official brand kit — supplied 04/08/2026
   Palette: #B7FF00 #8FBF1A #1A1F16 #0A0A0A #F2F2F2
   Type: Poppins / Montserrat
   ========================================================= */
:root {
  --bg: #0A0A0A;
  --panel: #10110F;
  --panel-2: #1A1F16;
  --text: #F2F2F2;
  --muted: #AAAFA5;
  --line: rgba(183,255,0,.18);
  --accent: #B7FF00;
  --accent-2: #8FBF1A;
  --deep-green: #1A1F16;
  --font-display: Poppins, ui-sans-serif, system-ui, sans-serif;
  --font-body: Montserrat, ui-sans-serif, system-ui, sans-serif;
}
html, body { background: var(--bg); }
body {
  font-family: var(--font-body);
  background:
    radial-gradient(circle at 86% -8%, rgba(183,255,0,.105), transparent 29%),
    radial-gradient(circle at -14% 52%, rgba(143,191,26,.065), transparent 31%),
    #0A0A0A;
}
h1, h2, h3, .button, .status, .eyebrow, .private-pill, .nav-item small {
  font-family: var(--font-display);
}
h1, h2, h3 { font-weight: 600; }
::selection { color: #0A0A0A; background: var(--accent); }

.topbar {
  height: 70px;
  background: rgba(10,10,10,.90);
  border-bottom-color: rgba(183,255,0,.13);
  box-shadow: 0 10px 34px rgba(0,0,0,.24);
}
.private-pill {
  color: var(--accent);
  border-color: rgba(183,255,0,.32);
  background: rgba(183,255,0,.045);
}
.brand-home { min-width: 0; }
.brand-logo { display: inline-flex; align-items: center; line-height: 0; }
.brand-logo-image {
  display: block;
  width: 172px;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 0 9px rgba(183,255,0,.17));
}
.brand-logo-large { width: min(100%, 430px); margin-bottom: 18px; }
.brand-logo-large .brand-logo-image { width: min(100%, 430px); }
.brand-logo-compact .brand-logo-image { width: 42px; max-height: 32px; object-fit: contain; }
.brand-logo-neon .brand-logo-image { filter: drop-shadow(0 0 16px rgba(183,255,0,.40)); }

.panel {
  background: linear-gradient(145deg, rgba(26,31,22,.91), rgba(10,10,10,.92));
  border-color: rgba(183,255,0,.16);
  box-shadow: 0 22px 60px rgba(0,0,0,.24);
}
.button {
  border-radius: 10px;
  letter-spacing: .055em;
  text-transform: uppercase;
  font-size: 12px;
}
.button-primary {
  color: #090A08;
  background: linear-gradient(135deg, #B7FF00, #9FE500);
  box-shadow: 0 0 22px rgba(183,255,0,.16);
}
.button-primary:hover { box-shadow: 0 0 28px rgba(183,255,0,.28); }
.button-secondary { background: #1A1F16; }
.button-ghost { border-color: rgba(183,255,0,.28); }
input, textarea, select {
  font-family: var(--font-body);
  background: rgba(5,6,5,.83);
  border-color: rgba(183,255,0,.14);
  border-radius: 10px;
}
input:focus, textarea:focus, select:focus {
  border-color: rgba(183,255,0,.72);
  box-shadow: 0 0 0 3px rgba(183,255,0,.09), 0 0 18px rgba(183,255,0,.08);
}
.eyebrow { color: var(--accent); letter-spacing: .22em; }
.avatar { color: #0A0A0A; box-shadow: 0 0 18px rgba(183,255,0,.22); }

/* Access and registration: official club/night visual language */
.auth-page {
  width: 100%;
  max-width: none;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(390px, .85fr);
  align-content: stretch;
  background: #0A0A0A;
}
.auth-stage {
  position: relative;
  min-height: 100vh;
  margin: 0;
  padding: clamp(34px, 5vw, 76px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;
  background:
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.38) 45%, rgba(0,0,0,.94)),
    url('/media/cover-midnight.png') center / cover no-repeat;
  border-right: 1px solid rgba(183,255,0,.17);
}
.auth-stage::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: repeating-linear-gradient(90deg, transparent 0 84px, rgba(183,255,0,.018) 85px 86px);
  pointer-events: none;
}
.auth-stage-glow {
  position: absolute;
  width: min(62vw, 700px);
  aspect-ratio: 1;
  left: -18%;
  bottom: -35%;
  border-radius: 50%;
  background: rgba(183,255,0,.11);
  filter: blur(90px);
  pointer-events: none;
}
.auth-stage-copy { position: relative; z-index: 1; max-width: 650px; }
.auth-stage-copy h2 {
  max-width: 620px;
  margin: 18px 0 10px;
  font-size: clamp(34px, 4.4vw, 68px);
  line-height: 1.02;
  letter-spacing: -.045em;
}
.auth-stage-lead { max-width: 470px; color: #F2F2F2; font-size: clamp(15px, 1.3vw, 20px); }
.auth-stage-note {
  display: grid;
  gap: 7px;
  margin-top: 25px;
  padding-left: 16px;
  border-left: 2px solid var(--accent);
}
.auth-stage-note strong, .be-there { color: var(--accent); letter-spacing: .12em; }
.auth-stage-note span { color: #D6D8D2; font-size: 12px; }
.be-there { display: inline-block; margin-top: 18px; font-family: var(--font-display); font-size: 13px; }
.auth-panel {
  width: min(100% - 44px, 520px);
  align-self: center;
  justify-self: center;
  max-height: calc(100vh - 36px);
  overflow: auto;
  padding: clamp(25px, 4vw, 42px);
  border-radius: 20px;
}
.auth-panel h1 { font-size: clamp(36px, 5vw, 56px); }
.form-intro { margin-bottom: 0; }
.demo-box {
  background: rgba(183,255,0,.045);
  border-color: rgba(183,255,0,.20);
}

/* Members area */
.page-heading { border-bottom: 1px solid rgba(183,255,0,.12); padding-bottom: 22px; }
.page-heading h1 { text-transform: none; }
.brand-mantra {
  margin: -8px 0 22px;
  padding: 15px 17px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 3px 12px;
  border-left: 2px solid var(--accent);
  background: linear-gradient(90deg, rgba(183,255,0,.07), transparent);
}
.brand-mantra span, .brand-mantra b { font-family: var(--font-display); }
.brand-mantra span { color: #D7DAD2; font-size: 9px; letter-spacing: .16em; }
.brand-mantra b { color: var(--accent); font-size: 11px; letter-spacing: .12em; }
.brand-mantra i { grid-column: 2; grid-row: 1 / 3; align-self: center; color: #F2F2F2; font-size: 10px; font-style: normal; letter-spacing: .16em; }
.event-card {
  border-color: rgba(183,255,0,.17);
  background: #070807;
  box-shadow: 0 24px 55px rgba(0,0,0,.28);
}
.event-card::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(183,255,0,.06), inset 0 -110px 100px rgba(0,0,0,.38);
  pointer-events: none;
}
.event-overlay { background: linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.20) 34%, rgba(0,0,0,.96)); }
.event-content { z-index: 3; }
.event-content h2 { font-family: var(--font-display); font-weight: 600; }
.event-price { color: var(--accent); letter-spacing: .05em; }
.status { border: 1px solid rgba(183,255,0,.14); }
.status-going, .status-approved { color: #0A0A0A; background: var(--accent); }
.status-review { color: #DFFFA0; background: rgba(143,191,26,.20); }
.status-payment { color: var(--accent); background: rgba(183,255,0,.10); }
.detail-hero { border-bottom: 1px solid rgba(183,255,0,.17); }
.detail-shade { background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.94)); }
.info-grid > div, .metric { background: linear-gradient(145deg, #121410, #0C0D0B); border-color: rgba(183,255,0,.14); }
.choice.active { color: #090A08; background: var(--accent); border-color: var(--accent); }
.location-card { background: linear-gradient(135deg, rgba(183,255,0,.14), rgba(26,31,22,.55)); border-color: rgba(183,255,0,.32); }
.bottom-nav { background: rgba(10,10,10,.95); border-top-color: rgba(183,255,0,.14); }
.nav-item.active { text-shadow: 0 0 13px rgba(183,255,0,.35); }

.payment-card::before { background: rgba(143,191,26,.20); }
.proof-pending { color: #DFFFA0; background: rgba(143,191,26,.08); border-color: rgba(143,191,26,.28); }
.locked-message > span { color: var(--accent); background: rgba(183,255,0,.08); }
.payment-config { border-color: rgba(143,191,26,.30); background: rgba(143,191,26,.06); }
.payment-config legend { color: #DFFFA0; }

.ticket-card {
  color: #0A0A0A;
  background: #F2F2F2;
  border: 2px solid var(--accent);
  box-shadow: 0 0 45px rgba(183,255,0,.14), 0 28px 80px rgba(0,0,0,.45);
}
.ticket-card .eyebrow { color: #537300; }
.ticket-head .status { color: #0A0A0A; background: #DFFF8F; }
.gallery-grid img { border-color: rgba(183,255,0,.16); filter: saturate(.95) contrast(1.05); }

@media (max-width: 900px) {
  .auth-page { grid-template-columns: 1fr; }
  .auth-stage { min-height: 46vh; padding: 34px 22px; border-right: 0; border-bottom: 1px solid rgba(183,255,0,.17); }
  .auth-stage-copy h2 { font-size: clamp(30px, 8vw, 48px); }
  .auth-panel { width: min(100% - 28px, 560px); max-height: none; margin: 18px auto 32px; }
}
@media (max-width: 540px) {
  .topbar { padding: 0 14px; }
  .brand-logo-image { width: 142px; }
  .private-pill { max-width: 112px; text-align: center; line-height: 1.3; padding: 6px 8px; }
  .auth-stage { min-height: 42vh; background-position: center; }
  .auth-stage-copy .brand-logo-large { width: 290px; }
  .auth-stage-copy h2 { margin-top: 12px; }
  .auth-stage-lead { font-size: 14px; }
  .brand-mantra { grid-template-columns: 1fr; }
  .brand-mantra i { grid-column: 1; grid-row: auto; margin-top: 6px; }
}

/* Admin control room v0.4 */
.admin-shortcuts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-shortcuts-grid .admin-shortcut { min-height: 106px; }
.admin-toolbar { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 16px; }
.alert-info { color: #e6ffc0; background: rgba(183,255,0,.07); border: 1px solid rgba(183,255,0,.22); }
.empty-admin-state { margin-top: 16px; color: var(--muted); text-align: center; }

.participant-list { display: grid; gap: 12px; }
.participant-row { display: grid; grid-template-columns: minmax(210px, 1.2fr) minmax(220px, 1fr) auto; align-items: center; gap: 16px; padding: 17px 18px; }
.participant-identity { display: flex; align-items: center; gap: 12px; min-width: 0; }
.participant-avatar { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid rgba(183,255,0,.35); border-radius: 14px; color: #0a0a0a; background: var(--accent); font-family: var(--font-display); font-weight: 700; }
.participant-identity strong, .participant-identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.participant-identity small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.participant-statuses { display: flex; flex-wrap: wrap; gap: 6px; }
.participant-statuses .status { font-size: 9px; letter-spacing: .04em; }
.participant-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.checkin-time { color: var(--accent); white-space: nowrap; }

.complimentary-form, .campaign-form, .sponsor-form { display: grid; gap: 16px; margin-bottom: 20px; }
.selected-participant { display: grid; gap: 3px; padding: 14px 16px; border-left: 3px solid var(--accent); border-radius: 0 12px 12px 0; background: rgba(183,255,0,.055); }
.selected-participant span, .selected-participant small { color: var(--muted); }
.complimentary-result { display: grid; justify-items: center; gap: 13px; text-align: center; }
.admin-qr { padding: 15px; border: 2px solid var(--accent); border-radius: 18px; background: #f2f2f2; box-shadow: 0 0 35px rgba(183,255,0,.12); }
.complimentary-result .ticket-code { max-width: 100%; padding: 10px 12px; overflow-wrap: anywhere; border-radius: 9px; color: var(--accent); background: #070807; }

.section-title-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.section-title-row h2 { margin-bottom: 0; }
.text-action { justify-self: start; padding: 0; border: 0; color: var(--accent); background: none; font-size: 12px; font-weight: 800; }
.campaigns-heading { margin: 30px 0 14px; padding-bottom: 13px; border-bottom: 1px solid var(--line); }
.campaigns-heading span { color: var(--muted); font-size: 11px; }
.campaign-list { display: grid; gap: 14px; }
.campaign-card { display: grid; gap: 16px; }
.campaign-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.campaign-head h2 { margin-bottom: 5px; font-size: 20px; }
.campaign-head small { color: var(--muted); }
.campaign-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.campaign-metrics span { padding: 12px; border: 1px solid rgba(183,255,0,.12); border-radius: 12px; color: var(--muted); background: rgba(255,255,255,.02); font-size: 10px; }
.campaign-metrics b { display: block; margin-bottom: 3px; color: var(--text); font-family: var(--font-display); font-size: 18px; }
.button-danger-inline { display: inline-flex; min-height: 50px; padding: 12px 18px; align-items: center; justify-content: center; border: 1px solid rgba(255,100,112,.25); border-radius: 14px; color: var(--danger); background: rgba(255,100,112,.07); font-weight: 800; }

@media (max-width: 720px) {
  .admin-shortcuts-grid { grid-template-columns: 1fr; }
  .admin-toolbar { grid-template-columns: 1fr; }
  .participant-row { grid-template-columns: 1fr; align-items: stretch; }
  .participant-actions { justify-content: flex-start; flex-wrap: wrap; }
  .campaign-metrics { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 430px) {
  .metric-grid-four { grid-template-columns: repeat(2, 1fr); }
  .section-title-row, .campaign-head { flex-direction: column; }
  .campaign-head .status { align-self: flex-start; }
  .review-actions > div, .admin-actions { grid-template-columns: 1fr; }
  .participant-actions .button { width: 100%; }
}
