:root {
  --navy: #0d1b2d;
  --navy-2: #152941;
  --gold: #d7a536;
  --gold-soft: #f7eed8;
  --red: #df2c32;
  --green: #16835c;
  --green-soft: #e9f7f1;
  --ink: #172033;
  --muted: #657083;
  --line: #e5e8ee;
  --paper: #f5f6f8;
  --white: #ffffff;
  --danger: #bc2c32;
  --radius: 18px;
  --shadow: 0 12px 35px rgba(13,27,45,.10);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: #e9ebef;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: #e9ebef; overflow-x: hidden; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid rgba(215,165,54,.42); outline-offset: 2px; }

#app { min-height: 100dvh; }
.app-shell { width: 100%; max-width: 520px; min-height: 100dvh; margin: 0 auto; background: var(--paper); position: relative; padding-bottom: calc(84px + env(safe-area-inset-bottom)); box-shadow: 0 0 40px rgba(13,27,45,.08); overflow-x:hidden; }
.auth-shell { background: var(--navy); color: white; min-height: 100dvh; overflow: hidden; }
.auth-shell::after { content:""; position: fixed; inset: 45% 0 0; background: radial-gradient(circle at 90% 10%, rgba(215,165,54,.15), transparent 45%), linear-gradient(145deg, transparent 45%, rgba(255,255,255,.035) 46%); pointer-events:none; }

.brandbar { min-height: 72px; display:flex; align-items:center; gap:12px; padding: calc(14px + env(safe-area-inset-top)) 20px 12px; background: var(--navy); color:white; position:relative; z-index:3; }
.brandbar.compact { min-height: 62px; position: sticky; top: 0; z-index: 20; box-shadow: 0 6px 18px rgba(5,13,23,.12); }
.brand-mark { display:grid; place-items:center; width:44px; height:44px; border:1px solid rgba(255,255,255,.22); border-radius:50%; color:var(--gold); font-family: Georgia, serif; font-weight:700; font-size:13px; letter-spacing:-.7px; }
.official-lockup { width:108px; height:50px; padding:5px 7px; border-radius:9px; background:white; display:flex; align-items:center; justify-content:center; gap:7px; overflow:hidden; }
.official-lockup img { display:block; width:43px; max-height:40px; object-fit:contain; }
.login-brandbar { min-height:84px; display:grid; grid-template-columns:67px minmax(0,1fr) 108px; align-items:center; gap:11px; padding-bottom:11px; }
.login-brandbar .brand-copy { align-self:center; text-align:center; }
.login-brandbar .brand-copy strong { font-size:18px; line-height:1.08; }
.login-brandbar .brand-copy small { font-size:10px; }
.login-mba-logo, .login-organizer-logo { height:62px; padding:6px; display:flex; align-items:center; justify-content:center; border-radius:11px; background:white; overflow:hidden; }
.login-mba-logo img { width:100%; height:51px; object-fit:contain; }
.login-organizer-logo { position:relative; padding:4px 5px 13px; border:2px solid var(--gold); }
.login-organizer-logo img { width:100%; height:42px; object-fit:contain; }
.login-organizer-logo small { position:absolute; left:2px; right:2px; bottom:2px; color:#6c4d0d; font-size:6px; font-weight:900; letter-spacing:.08em; line-height:1; text-align:center; text-transform:uppercase; }
.association-band { position:relative; z-index:3; padding:2px 18px 15px; background:var(--navy); }
.association-logos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.association-logo { position:relative; min-width:0; height:60px; padding:5px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.15); border-radius:10px; background:white; overflow:hidden; }
.association-logo img { display:block; width:100%; height:48px; object-fit:contain; }
.association-logo.bcb4-logo { background:#59616d; }
.association-logo.bcb4-logo img { padding:4px; background:#59616d; }
.brand-copy { line-height:1.06; flex:1; }
.brand-copy strong { display:block; font-family: Georgia, serif; font-size:17px; }
.brand-copy small { color:#d8deea; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.profile-chip { border:0; padding:0; background:rgba(255,255,255,.1); color:white; width:40px; height:40px; border-radius:50%; font-weight:800; overflow:hidden; }
.header-photo { display:grid; place-items:center; width:100%; height:100%; object-fit:cover; }
.producer-ribbon { display:flex; align-items:center; justify-content:center; min-height:39px; padding:5px 14px; background:#050812; color:#dce8f8; border-top:1px solid rgba(104,220,255,.22); border-bottom:1px solid rgba(154,124,255,.13); }
.rocket-mark { width:25px; height:25px; border-radius:50%; display:grid; place-items:center; flex:none; border:1px solid rgba(104,220,255,.42); color:#68dcff; background:radial-gradient(circle at 35% 30%,rgba(104,220,255,.25),rgba(154,124,255,.08),transparent 70%); }
.rocket-lockup { width:100%; display:flex; align-items:center; gap:13px; margin:0 0 25px; padding:14px 15px; border:1px solid rgba(104,220,255,.42); background:linear-gradient(120deg,rgba(104,220,255,.12),rgba(154,124,255,.08)); border-radius:17px; color:#eef5ff; box-shadow:inset 0 1px rgba(255,255,255,.05); text-decoration:none; transition:border-color .18s,transform .18s; }
.rocket-lockup:hover { border-color:#68dcff; }
.rocket-lockup:active { transform:scale(.99); }
.rocket-emblem { width:43px; height:43px; display:grid; place-items:center; flex:none; border-radius:50%; border:1px solid rgba(104,220,255,.56); color:#68dcff; background:radial-gradient(circle at 35% 30%,rgba(104,220,255,.28),rgba(154,124,255,.08),transparent 70%); font-size:23px; font-weight:850; }
.rocket-lockup div { min-width:0; line-height:1.06; }
.rocket-lockup small { display:block; margin-bottom:3px; color:#b8c5d8; font-size:9px; font-weight:750; letter-spacing:.14em; text-transform:uppercase; }
.rocket-lockup strong { display:block; color:#68dcff; font-size:25px; letter-spacing:-.04em; }
.rocket-lockup span:not(.rocket-emblem) { display:block; margin-top:5px; color:#dce5f2; font-size:11px; line-height:1.3; }
.rocket-domain { display:block; margin-top:7px; color:#68dcff; font-size:10px; font-weight:800; letter-spacing:.03em; }
.rocket-lockup.compact { width:auto; margin:0; padding:0; border:0; background:none; box-shadow:none; gap:8px; }
.rocket-lockup.compact .rocket-emblem { width:27px; height:27px; font-size:15px; }
.rocket-lockup.compact small { margin:0; font-size:7px; letter-spacing:.12em; }
.rocket-lockup.compact strong { font-size:15px; }

.auth-content { padding: 25px 24px 32px; position:relative; z-index:2; }
.eyebrow { margin:0 0 10px; color:var(--gold); font-size:12px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.auth-content h1 { font-family: Georgia, serif; font-size:clamp(35px,10.7vw,42px); line-height:1.03; margin:0 0 14px; font-weight:500; overflow-wrap:anywhere; }
.auth-content h1 em { color:var(--gold); font-weight:500; }
.lead { color:#d8deea; font-size:17px; line-height:1.55; margin:0 0 28px; }
.login-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:0 0 12px; }
.login-steps span { min-width:0; padding:10px 8px; border:1px solid rgba(255,255,255,.18); border-radius:12px; background:rgba(255,255,255,.07); color:#edf2f8; font-size:10px; font-weight:750; line-height:1.25; text-align:center; }
.login-steps b { display:grid; place-items:center; width:21px; height:21px; margin:0 auto 6px; border-radius:50%; background:var(--gold); color:var(--navy); font-size:11px; }
.event-strip { display:flex; gap:14px; flex-wrap:wrap; padding:14px 0 28px; color:#edf0f5; font-size:13px; }
.event-strip span { display:flex; gap:7px; align-items:center; }
.identity-teaser { width:100%; display:flex; align-items:center; gap:12px; margin:0 0 18px; padding:11px 12px; border:1px solid rgba(255,255,255,.2); border-radius:15px; background:rgba(255,255,255,.07); color:white; text-align:left; }
.identity-teaser-logos { width:104px; display:grid; grid-template-columns:repeat(3,1fr); gap:4px; flex:none; }
.identity-teaser-logos img { width:32px; height:32px; padding:3px; border-radius:7px; background:white; object-fit:contain; }
.identity-teaser > span:last-child { min-width:0; }
.identity-teaser strong, .identity-teaser small { display:block; }
.identity-teaser strong { font-size:12px; line-height:1.25; }
.identity-teaser small { margin-top:3px; color:#bfcadd; font-size:9px; line-height:1.3; }
.login-credits { margin:28px -24px -32px; padding:22px 24px calc(26px + env(safe-area-inset-bottom)); background:#050812; border-top:1px solid rgba(104,220,255,.2); }
.login-credits section + section { margin-top:18px; }
.login-credits h2 { margin:0 0 8px; color:#dce7f4; font-size:10px; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.login-logo-row { display:flex; align-items:center; gap:8px; overflow-x:auto; padding:8px; border-radius:13px; background:white; scrollbar-width:none; }
.login-logo-row::-webkit-scrollbar { display:none; }
.login-logo-row img { width:82px; height:48px; flex:0 0 82px; padding:3px; object-fit:contain; background:white; }
.login-logo-row.patron-row img { width:94px; flex-basis:94px; }
.credits-source { display:block; margin:15px 0 0; padding:0; border:0; background:none; color:#68dcff; font-size:10px; font-weight:800; }
.login-credits > .rocket-lockup { margin:24px 0 0; }
.auth-card { background:white; color:var(--ink); padding:20px; border-radius:24px; box-shadow:0 18px 50px rgba(0,0,0,.22); }
.auth-card h2 { margin:0 0 6px; font-size:22px; }
.auth-card p { margin:0 0 18px; color:var(--muted); font-size:14px; line-height:1.45; }
.auth-card p strong { color:var(--ink); overflow-wrap:anywhere; }
.code-input { text-align:center; font-size:24px; font-weight:850; letter-spacing:.28em; font-variant-numeric:tabular-nums; }
.local-code-note { margin:0 0 16px; padding:11px 12px; border-radius:12px; background:#eef3f8; color:#526078; font-size:11px; line-height:1.45; }
.local-code-note strong { color:var(--navy); }
.local-code-note b { color:var(--green); font-size:13px; letter-spacing:.08em; }
.form-error { margin:-5px 0 13px!important; padding:9px 11px; border-radius:10px; background:#faeaeb; color:#9b252a!important; font-weight:700; }

.content { padding: 20px 18px 30px; }
.content.narrow { padding-top:24px; }
.section-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:16px; }
.section-head h1, .section-head h2 { margin:0; font-size:26px; line-height:1.15; }
.section-head p { margin:6px 0 0; color:var(--muted); font-size:14px; line-height:1.4; }
.section-title { margin:26px 0 12px; font-size:18px; }
.section-note { margin:-6px 0 11px; color:var(--muted); font-size:12px; line-height:1.4; }
.inline-link { border:0; padding:0; background:none; color:var(--green); font-weight:750; }

.progress { height:5px; background:#dfe3e9; position:sticky; top:72px; z-index:12; }
.progress > span { display:block; height:100%; background:var(--gold); transition:width .25s; }
.step-kicker { color:var(--gold); font-weight:800; font-size:12px; text-transform:uppercase; letter-spacing:.12em; }
.step-title { font-size:27px; margin:8px 0 8px; line-height:1.15; }
.step-copy { color:var(--muted); line-height:1.5; margin:0 0 22px; }

.field { display:block; margin:0 0 16px; }
.field > span { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:13px; font-weight:750; margin:0 0 7px; }
.field small { font-weight:500; color:var(--muted); }
.field input, .field textarea, .field select { width:100%; border:1px solid #cfd5de; border-radius:13px; padding:13px 14px; color:var(--ink); background:white; min-height:48px; }
.field textarea { min-height:92px; resize:vertical; line-height:1.45; }
.field.public input, .field.public textarea, .field.public select { border-color:#72b79d; background:var(--green-soft); }
.hidden { display:none!important; }
.photo-editor { display:flex; align-items:center; gap:14px; margin:0 0 18px; padding:14px; border:1px solid #72b79d; border-radius:16px; background:var(--green-soft); }
.profile-photo { display:grid; place-items:center; width:78px; height:78px; flex:none; border-radius:50%; object-fit:cover; background:var(--navy); color:white; font-size:22px; font-weight:800; border:3px solid white; box-shadow:0 4px 12px rgba(13,27,45,.13); }
.photo-placeholder { background:linear-gradient(145deg,var(--navy),#284b6e); }
.photo-copy { min-width:0; flex:1; }
.photo-copy strong, .photo-copy small { display:block; }
.photo-copy small { margin:3px 0 9px; color:var(--muted); font-size:11px; line-height:1.35; }
.photo-button { cursor:pointer; }
.remove-photo { display:block; padding:7px 2px 0; font-size:11px; }
.profile-identity { display:flex; align-items:center; gap:13px; margin-bottom:14px; }
.profile-identity h3 { margin-bottom:4px; }
.profile-identity .profile-photo { width:66px; height:66px; font-size:18px; }
.privacy-key { display:grid; grid-template-columns:1fr; gap:9px; margin:14px 0 22px; }
.key-item { border-radius:14px; padding:12px 13px; display:flex; gap:10px; align-items:flex-start; }
.key-item.public { background:var(--green-soft); color:#0b6848; }
.key-item.private { background:#fff; border:1px solid var(--line); }
.key-item > span:last-child { min-width:0; }
.key-item strong { display:block; font-size:12px; line-height:1.3; }
.key-item small { display:block; margin-top:4px; color:#536176; font-size:10px; font-weight:500; line-height:1.4; }
.dot { width:9px; height:9px; margin-top:3px; border-radius:50%; background:currentColor; flex:none; }

.chips { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 18px; }
.chip { border:1px solid #cfd5de; background:white; color:var(--ink); border-radius:999px; min-height:40px; padding:9px 13px; font-weight:650; font-size:13px; }
.chip.active { background:var(--navy); color:white; border-color:var(--navy); }
.chip.green.active { background:var(--green); border-color:var(--green); }
.chip.gold.active { background:var(--gold); border-color:var(--gold); color:#101827; }
.choice-more { margin:-8px 0 18px; }
.choice-more summary { display:inline-flex; align-items:center; min-height:40px; padding:9px 13px; border:1px dashed #aeb8c6; border-radius:999px; background:#f9fafb; color:#4f5d72; font-size:13px; font-weight:750; cursor:pointer; list-style:none; }
.choice-more summary::-webkit-details-marker { display:none; }
.choice-more[open] summary { margin-bottom:8px; background:#eef2f6; }
.choice-more .chips { margin:0; }
.form-box { margin:0 0 12px; padding:15px; border:1px solid #d9dee6; border-radius:16px; background:#fff; box-shadow:0 3px 10px rgba(13,27,45,.035); }
.form-box.public-box { border-color:#72b79d; background:var(--green-soft); }
.form-box-title { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }
.form-box-title strong { font-size:15px; color:var(--navy); }
.form-box-title small { max-width:48%; color:var(--muted); font-size:10px; line-height:1.3; text-align:right; }
.form-box > .field:last-child, .form-box .field.public { margin-bottom:0; }
.form-box .chips { margin-top:0; }
.check-row { display:flex; align-items:flex-start; gap:10px; margin:14px 0; font-size:14px; line-height:1.45; }
.check-row input { margin-top:3px; width:18px; height:18px; accent-color:var(--green); }
.switch-row { display:flex; align-items:center; justify-content:space-between; gap:16px; border:1px solid var(--line); background:white; padding:14px; border-radius:14px; margin:12px 0 18px; }
.switch-copy strong { display:block; font-size:14px; }
.switch-copy small { color:var(--muted); line-height:1.35; display:block; margin-top:4px; }
.switch { width:48px; height:28px; border:0; padding:3px; border-radius:99px; background:#c9ced6; flex:none; }
.switch span { display:block; width:22px; height:22px; border-radius:50%; background:white; transition:transform .2s; box-shadow:0 1px 5px rgba(0,0,0,.2); }
.switch.on { background:var(--green); }
.switch.on span { transform:translateX(20px); }

.btn { width:100%; min-height:50px; border:0; border-radius:14px; padding:12px 18px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; gap:8px; text-decoration:none; }
.btn.primary { color:#101827; background:var(--gold); }
.btn.navy { color:white; background:var(--navy); }
.btn.green { color:white; background:var(--green); }
.btn.ghost { color:var(--ink); background:white; border:1px solid #ccd2db; }
.btn.danger { color:white; background:var(--danger); }
.btn.small { width:auto; min-height:39px; padding:8px 13px; border-radius:11px; font-size:13px; }
.btn-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:24px; }
.btn-row .btn:only-child { grid-column:1/-1; }
.text-btn { border:0; background:none; color:var(--muted); padding:10px; text-decoration:underline; }

.notice { padding:13px 14px; border-radius:14px; margin:14px 0; font-size:13px; line-height:1.45; }
.notice.info { background:#eaf0f8; color:#263f61; }
.notice.success { background:var(--green-soft); color:#0e6347; }
.notice.warn { background:#fff4df; color:#6d4d0f; }
.notice strong { display:block; margin-bottom:3px; }

.profile-card, .card { background:white; border:1px solid var(--line); border-radius:var(--radius); padding:16px; box-shadow:0 5px 16px rgba(13,27,45,.04); }
.profile-card.public { border-left:5px solid var(--green); background:linear-gradient(90deg,var(--green-soft),white 44%); }
.profile-card.private { border-left:5px solid #bac1cb; }
.profile-card h3 { margin:0 0 11px; font-size:16px; }
.data-list { display:grid; gap:10px; margin:0; }
.data-list div { display:grid; grid-template-columns:38% 1fr; gap:10px; }
.data-list dt { color:var(--muted); font-size:12px; }
.data-list dd { margin:0; font-size:13px; font-weight:650; overflow-wrap:anywhere; }
.stack { display:grid; gap:12px; }

.hero-panel { background:linear-gradient(140deg,var(--navy),#162d49); color:white; margin:-20px -18px 20px; padding:26px 20px 22px; border-radius:0 0 26px 26px; position:relative; overflow:hidden; }
.hero-panel::after { content:""; position:absolute; width:180px; height:180px; right:-70px; top:-70px; border:1px solid rgba(215,165,54,.35); border-radius:50%; }
.hero-panel .eyebrow { margin-bottom:8px; }
.hero-panel h1 { margin:0 0 6px; font-family:Georgia,serif; font-size:28px; font-weight:500; }
.hero-panel p { margin:0; color:#cbd3df; font-size:14px; max-width:320px; line-height:1.45; }
.metric-row { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:18px; }
.metric { border:1px solid rgba(255,255,255,.15); border-radius:13px; padding:10px; }
.metric strong { display:block; color:var(--gold); font-size:20px; }
.metric small { color:#bdc7d5; font-size:10px; text-transform:uppercase; }

.people-grid { display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.person-card { border:1px solid var(--line); background:white; border-radius:17px; padding:0; overflow:hidden; text-align:left; box-shadow:0 5px 14px rgba(13,27,45,.05); }
.avatar { aspect-ratio:1.35; position:relative; overflow:hidden; background:var(--avatar-bg,#dbe5ef); display:grid; place-items:center; }
.avatar svg { width:88%; height:88%; }
.match-score { position:absolute; right:8px; top:8px; background:rgba(13,27,45,.88); color:white; border-radius:999px; padding:5px 8px; font-size:10px; font-weight:800; }
.person-info { padding:11px; }
.person-info strong { display:block; font-size:14px; line-height:1.2; }
.person-info span { display:block; color:var(--muted); font-size:11px; line-height:1.3; margin-top:3px; }
.reason-tease { color:var(--green)!important; font-weight:750; margin-top:7px!important; }
.tag { display:inline-flex; align-items:center; background:#edf1f6; color:#42516a; border-radius:999px; padding:5px 8px; font-size:10px; font-weight:700; }
.tag.gold { background:var(--gold-soft); color:#72520d; }
.tag.green { background:var(--green-soft); color:#0d6849; }
.tag.red { background:#faeaeb; color:#9b252a; }

.searchbox { background:white; border:1px solid var(--line); border-radius:16px; padding:13px; display:flex; gap:8px; box-shadow:0 5px 14px rgba(13,27,45,.04); }
.searchbox input { flex:1; min-width:0; border:0; padding:8px; outline:none; }
.searchbox button { border:0; border-radius:11px; background:var(--navy); color:white; width:44px; }
.flow-map { display:flex; align-items:center; gap:5px; margin:15px 0; overflow:auto; padding-bottom:3px; }
.flow-map span { white-space:nowrap; padding:7px 9px; border-radius:9px; font-size:11px; font-weight:750; background:#e8edf3; }
.flow-map b { color:var(--gold); }

.list-card { background:white; border:1px solid var(--line); border-radius:16px; padding:14px; display:grid; gap:10px; }
.list-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.list-person-row { display:flex; align-items:center; gap:10px; min-width:0; }
.mini-avatar { width:48px; height:48px; border-radius:12px; overflow:hidden; background:#dce5ef; flex:none; }
.mini-avatar svg { width:100%; height:100%; }
.list-card h3 { margin:0; font-size:15px; }
.list-card p { margin:3px 0 0; color:var(--muted); font-size:12px; line-height:1.4; }
.priority-select { border:1px solid #ccd2db; border-radius:9px; padding:7px; font-size:11px; background:white; }
.note-box { background:#fff9e9; border:1px solid #f0dca7; border-radius:11px; padding:10px; font-size:12px; color:#5b4618; }
.meeting { border-left:4px solid var(--gold); }
.meeting-meta { display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }

.group-card { background:white; border:1px solid var(--line); border-radius:17px; padding:16px; }
.group-card h3 { margin:7px 0 6px; font-size:17px; }
.group-card p { color:var(--muted); font-size:13px; line-height:1.45; margin:0 0 12px; }
.group-meta { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.ai-card { background:linear-gradient(135deg,#152941,#0d1b2d); color:white; border:0; }
.ai-card p { color:#d5dce7; }

.bottom-nav { position:fixed; bottom:0; left:50%; transform:translateX(-50%); width:100%; max-width:520px; padding:7px 8px calc(7px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.96); border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(4,1fr); z-index:25; backdrop-filter:blur(10px); }
.nav-btn { border:0; background:transparent; color:#6d7788; padding:7px 2px 4px; font-size:10px; font-weight:700; display:grid; justify-items:center; gap:3px; }
.nav-btn svg { width:21px; height:21px; }
.nav-btn.active { color:var(--navy); }
.nav-btn.active::after { content:""; width:20px; height:3px; background:var(--gold); border-radius:4px; }

.modal-backdrop { position:fixed; inset:0; background:rgba(3,10,19,.62); z-index:90; display:flex; align-items:flex-end; justify-content:center; }
.modal { width:min(100%,520px); max-height:92dvh; overflow:auto; background:var(--paper); border-radius:25px 25px 0 0; padding:11px 18px calc(24px + env(safe-area-inset-bottom)); box-shadow:0 -12px 40px rgba(0,0,0,.2); animation:rise .22s ease-out; }
.modal-handle { width:42px; height:4px; background:#c6cbd3; border-radius:4px; margin:0 auto 16px; }
.modal h2 { margin:0 0 4px; font-size:24px; }
.modal-sub { color:var(--muted); margin:0 0 18px; font-size:13px; }
.modal-actions { display:grid; gap:9px; margin-top:18px; }
.modal-avatar { width:94px; height:94px; border-radius:24px; margin:-2px 0 15px; overflow:hidden; background:#dce5ef; }
.modal-avatar svg { width:100%; height:100%; }
.detail-block { background:white; border:1px solid var(--line); border-radius:14px; padding:13px; margin:10px 0; }
.detail-block h3 { margin:0 0 6px; font-size:13px; }
.detail-block p { margin:0; color:#4e596c; font-size:13px; line-height:1.45; }
.contact-grid { display:grid; gap:8px; margin:8px 0 12px; }
.event-identity { display:flex; align-items:center; gap:13px; margin-bottom:11px; }
.event-identity img { width:76px; height:56px; padding:6px; object-fit:contain; background:white; border:1px solid var(--line); border-radius:12px; }
.event-identity h3 { margin:7px 0 0; font-size:16px; }
.event-card > p { margin:0 0 12px; color:#4e596c; font-size:13px; line-height:1.45; }
.rail-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; }
.rail-heading .section-title { margin-bottom:9px; }
.rail-heading .section-note { margin-bottom:10px; }
.rail-heading > span { margin-bottom:13px; color:var(--green); font-size:23px; font-weight:800; }
.logo-rail { display:grid; grid-auto-flow:column; grid-auto-columns:150px; gap:10px; margin:0 -18px; padding:0 18px 7px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x proximity; scrollbar-width:none; }
.logo-rail::-webkit-scrollbar { display:none; }
.logo-tile { min-width:0; min-height:132px; display:flex; flex-direction:column; justify-content:space-between; gap:8px; padding:10px; background:white; border:1px solid var(--line); border-radius:14px; scroll-snap-align:start; box-shadow:0 4px 12px rgba(13,27,45,.04); }
.logo-tile img { display:block; width:100%; height:72px; padding:5px; object-fit:contain; background:#fff; border-radius:8px; }
.logo-tile.bcb4-logo img { padding:8px; background:#59616d; }
.logo-tile div { min-width:0; }
.logo-tile strong { display:block; color:var(--navy); font-size:11px; line-height:1.25; overflow-wrap:anywhere; }
.logo-tile small { display:block; margin-top:3px; color:var(--muted); font-size:8px; line-height:1.25; overflow-wrap:anywhere; }
.logo-more { margin-top:10px; }
.logo-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.logo-grid .logo-tile { min-height:140px; }
.organizer-grid { grid-template-columns:1fr; }
.organizer-grid .logo-tile { min-height:124px; }
.organizer-grid .logo-tile img { height:76px; }
.identity-block > h3 { margin-bottom:11px; }
.identity-block { scroll-margin-top:58px; }
.identity-jumps { position:sticky; top:-11px; z-index:4; display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin:0 -2px 14px; padding:8px 2px; background:rgba(245,246,248,.96); backdrop-filter:blur(8px); }
.identity-jumps a { display:flex; align-items:center; justify-content:center; min-height:38px; padding:8px 5px; border:1px solid #ccd5e0; border-radius:11px; background:white; color:var(--navy); font-size:11px; font-weight:800; text-decoration:none; }
.rocketos-card { padding:18px; background:linear-gradient(135deg,#050812,#0c1730); color:#f6f8ff; border-color:rgba(104,220,255,.3); box-shadow:0 15px 34px rgba(5,8,18,.22); }
.rocketos-card .rocket-lockup { margin-bottom:13px; }
.rocketos-card p { margin:0; color:#d5dfed; line-height:1.45; }
.rocketos-card p strong { color:white; }
.rocket-signature { display:block; margin-top:12px; padding-top:12px; border-top:1px solid rgba(104,220,255,.18); color:#9fb2ca; font-size:10px; letter-spacing:.04em; }
.rocket-detail { padding:16px; background:linear-gradient(135deg,#050812,#0c1730); border-color:rgba(104,220,255,.28); color:white; }
.rocket-detail .rocket-lockup { margin-bottom:10px; }
.rocket-detail p { color:#cbd8ea; }
.close-x { float:right; border:0; background:white; border-radius:50%; width:36px; height:36px; font-size:20px; }

.segmented { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; background:#e5e8ed; padding:4px; border-radius:12px; margin-bottom:15px; overflow:auto; }
.segmented button { border:0; background:transparent; border-radius:9px; padding:9px 7px; font-size:11px; font-weight:750; white-space:nowrap; }
.segmented button.active { background:white; box-shadow:0 2px 7px rgba(13,27,45,.08); }
.empty { text-align:center; padding:34px 18px; color:var(--muted); }
.empty .empty-icon { width:52px; height:52px; border-radius:50%; background:#e6eaf0; display:grid; place-items:center; margin:0 auto 11px; font-size:22px; }
.empty h3 { color:var(--ink); margin:0 0 5px; }
.empty p { margin:0; font-size:13px; }

.org-grid { display:grid; gap:9px; }
.org-card { display:flex; align-items:center; gap:11px; background:white; border:1px solid var(--line); border-radius:14px; padding:12px; }
.org-card .org-city { width:54px; height:40px; display:grid; place-items:center; border-radius:10px; color:var(--navy); background:#edf1f5; font-size:10px; font-weight:850; }
.org-card strong { display:block; font-size:13px; }
.org-card small { color:var(--muted); }
.source-footer { margin-top:28px; padding:18px; background:var(--navy); color:#d3dae4; border-radius:17px; font-size:11px; line-height:1.5; }
.source-footer a { color:var(--gold); }
.source-footer strong { color:white; }
.demo-badge { position:fixed; z-index:50; right:max(8px,calc((100vw - 520px)/2 + 8px)); bottom:calc(78px + env(safe-area-inset-bottom)); background:var(--red); color:white; font-size:9px; font-weight:850; letter-spacing:.08em; border-radius:99px; padding:6px 9px; pointer-events:none; }
.toast { position:fixed; z-index:120; left:50%; bottom:96px; transform:translate(-50%,20px); width:min(calc(100% - 34px),480px); background:#101827; color:white; padding:12px 15px; border-radius:13px; font-size:13px; opacity:0; visibility:hidden; transition:.2s; box-shadow:0 8px 25px rgba(0,0,0,.22); }
.toast.show { opacity:1; visibility:visible; transform:translate(-50%,0); }

@keyframes rise { from { transform:translateY(30px); opacity:0; } }
@media (min-width:600px) {
  .app-shell { border-left:1px solid #dfe3e9; border-right:1px solid #dfe3e9; }
  .modal-backdrop { align-items:center; }
  .modal { border-radius:25px; max-height:88vh; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
