/* ==========================================================================
   Cherry Pickers — live.css
   Dancer-facing screens: Live floor (today), Request, Board, Favourites, Me,
   and the public marketing pages.
   ========================================================================== */

/* ---------- now playing hero ---------- */
.now-card{
  position:relative; background:var(--ink); border:1px solid var(--line); border-radius:var(--radius-m);
  padding:22px; margin:22px 0 30px; box-shadow:var(--shadow);
  background-image:radial-gradient(circle at 85% -10%, rgba(201,162,78,0.16), transparent 55%);
}
.now-card:before{ content:''; position:absolute; inset:9px; border:1px dashed var(--saddle-line); border-radius:9px; pointer-events:none; }
.now-meta, .now-footer{ display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--ivory-dim); font-size:11px; }
.now-card h2{ font-family:'Big Shoulders Display',sans-serif; font-weight:800; font-size:34px; line-height:.98; margin:22px 0 4px; }
.now-card p{ color:var(--denim); font-size:13px; margin:0 0 26px; }
.progress{ height:3px; background:var(--denim-dim); border-radius:3px; margin-bottom:15px; overflow:hidden; }
.progress span{ display:block; width:42%; height:100%; background:var(--brass); border-radius:3px; }
.now-card .now-footer{ align-items:center; }
.now-favourite{ width:32px; height:32px; border:1px solid var(--saddle-line); border-radius:50%; background:transparent; color:var(--brass); font-size:19px; line-height:1; padding:0; cursor:pointer; }
.now-favourite.active{ background:var(--brass); color:#1a1305; border-color:var(--brass); }
.now-favourite:hover{ border-color:var(--brass); transform:translateY(-1px); }

/* Before the event goes live the card is a status banner, not a player. */
.now-card[data-phase]:not([data-phase="live"]) .progress{ display:none; }
.now-card[data-phase]:not([data-phase="live"]) .now-favourite{ display:none; }
.now-card[data-phase]:not([data-phase="live"]) p{ margin-bottom:22px; color:var(--ivory-dim); }
.now-card .now-meta span:last-child:empty{ display:none; }
.now-card .now-footer span:empty{ display:none; }

/* ---------- live action row ---------- */
.live-action-row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:-16px 0 28px; }
/* ---------- notification settings ---------- */
.notify-settings{ margin:30px 0 0; padding:18px; border:1px solid var(--line); border-radius:var(--radius-m); background:var(--ink-2); }
.notify-settings[hidden]{ display:none; }
.notify-settings .section-heading{ margin-bottom:6px; }
.switch-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 0; border-top:1px solid var(--line); cursor:pointer; }
.switch-row[hidden]{ display:none; }
.switch-row > span{ display:grid; gap:4px; min-width:0; }
.switch-row strong{ font-size:13px; font-weight:600; color:var(--ivory); }
.switch-row small{ font-size:11px; color:var(--ivory-dim); line-height:1.4; }
.switch-row input[type=checkbox]{ appearance:none; -webkit-appearance:none; flex:none; width:38px; height:22px; border-radius:999px; background:var(--ink-3); border:1px solid var(--line); position:relative; cursor:pointer; transition:background .15s ease, border-color .15s ease; }
.switch-row input[type=checkbox]::after{ content:''; position:absolute; top:2px; left:2px; width:16px; height:16px; border-radius:50%; background:var(--ivory-dim); transition:transform .15s ease, background .15s ease; }
.switch-row input[type=checkbox]:checked{ background:rgba(201,162,78,0.25); border-color:var(--brass); }
.switch-row input[type=checkbox]:checked::after{ transform:translateX(16px); background:var(--brass); }
.switch-row input[type=checkbox]:disabled{ opacity:.45; cursor:not-allowed; }
.notify-settings > .subtle{ margin:10px 0 0; font-size:11.5px; }
.notify-subhead{ margin:22px 0 4px; }
#notifyEventAlerts .subtle{ margin:0 0 6px; font-size:11.5px; }
.mini-select{ flex:none; background:var(--ink-3); color:var(--ivory); border:1px solid var(--line); border-radius:var(--radius-s); padding:8px 10px; font:inherit; font-size:12px; }
.mini-select:disabled{ opacity:.45; }
.prep-event-card.past{ opacity:.7; }
.prep-readiness .has-requests{ background:var(--rust); border-color:var(--rust); color:#fff; font-weight:800; }
.prep-event-list > .event-list-label{ margin:18px 0 0; }
.today-events-panel{ margin:34px 0 28px; }
.today-events-panel .event-choice-list{ max-height:none; overflow:visible; }
.live-action{
  min-width:0; display:flex; align-items:center; gap:10px; text-align:left;
  border:1px dashed var(--saddle-line); border-radius:var(--radius-m); background:transparent; color:var(--ivory);
  padding:12px; cursor:pointer; transition:transform .15s ease, border-color .15s ease;
}
.live-action:hover{ transform:translateY(-1px); border-color:var(--brass); }
.live-action.primary{ background:var(--brass); border-color:var(--brass); color:#1a1305; border-style:solid; }
.live-action .action-icon{ width:28px; height:28px; border:1px solid currentColor; border-radius:50%; display:grid; place-items:center; flex:none; font-size:16px; line-height:1; }
.live-action span:nth-child(2){ display:grid; gap:3px; min-width:0; }
.live-action.is-locked, .request-hero.is-locked, #requestFromFavourites.is-locked{ opacity:.62; }
.live-action.primary.is-locked{ background:transparent; border-style:dashed; color:var(--ivory); }
.live-action strong, .live-action small{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.live-action strong{ font-size:12.5px; }
.live-action small{ font-size:10px; opacity:.78; }
@media(max-width:430px){ .live-action-row{ grid-template-columns:1fr; margin-top:-18px; } }

/* ---------- ticket-style song rows ---------- */
.song-list{ display:grid; gap:10px; padding:6px 0 4px; border:1px dashed var(--saddle-line); border-radius:var(--radius-m); }
.song-list:not(:empty){ padding:12px 12px 14px; }
.song-row{
  display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; gap:10px;
  background:var(--ink-2); border:1px solid var(--line); border-radius:var(--radius-s); padding:12px 13px;
}
.song-row.featured{ border-color:var(--brass); }
.song-row.not-votable{ border-style:dashed; border-color:var(--saddle-line); }
.rank{ font-family:'Big Shoulders Display',sans-serif; color:var(--denim); font-size:18px; font-weight:700; }
.song-copy{ min-width:0; display:grid; gap:3px; }
.song-copy strong{ font-size:14px; font-weight:600; color:var(--ivory); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.song-copy span{ font-size:11.5px; color:var(--ivory-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.song-copy i{ font-style:normal; color:#a7c290; margin-left:4px; }
.song-row.not-votable .song-copy::after{ content:'Locked for the floor'; display:inline-block; width:fit-content; margin-top:4px; padding:2px 8px; border-radius:999px; background:rgba(201,162,78,0.14); color:var(--brass); font-size:9px; font-weight:700; line-height:1.3; }
.song-actions{ display:flex; align-items:center; gap:6px; flex-shrink:0; }
.vote-count{ display:flex; flex-direction:column; align-items:center; gap:1px; padding:6px 10px; border-radius:var(--radius-s); background:rgba(201,162,78,0.08); flex-shrink:0; }
.vote-count strong{ font-family:'Big Shoulders Display',sans-serif; font-size:15px; line-height:1; color:var(--brass); font-variant-numeric:tabular-nums; }
.vote-count span{ color:var(--ivory-dim); font-size:8.5px; font-weight:600; }
.icon-btn{ display:flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; border:1px solid var(--line); background:transparent; color:var(--ivory-dim); cursor:pointer; padding:0; flex-shrink:0; }
.icon-btn svg{ width:14px; height:14px; }
.icon-btn.fav.active{ color:#e08469; border-color:var(--rust); background:rgba(163,64,42,0.1); }
.icon-btn.vote:hover{ border-color:var(--brass); color:var(--ivory); }
.icon-btn.vote:disabled{ opacity:.4; cursor:default; }
.search-result button{ border:1px solid var(--brass); background:var(--brass); color:#1a1305; border-radius:var(--radius-s); padding:9px 8px; font-size:11px; font-weight:700; cursor:pointer; }

.page-heading{ margin-bottom:26px; }
.page-heading h1{ font-size:34px; }

.request-hero{
  width:100%; display:flex; align-items:center; gap:14px; text-align:left; background:transparent;
  color:var(--ivory); border:1px dashed var(--saddle-line); border-radius:var(--radius-m); padding:17px; cursor:pointer; margin-bottom:32px;
}
.request-hero:hover{ border-color:var(--brass); }
.request-hero .plus{ font-size:26px; font-weight:200; color:var(--brass); }
.request-hero span:nth-child(2){ display:grid; gap:4px; flex:1; }
.request-hero small{ color:var(--ivory-dim); font-size:11px; }
.request-hero>b{ font-size:19px; font-weight:300; color:var(--brass); }

.favourites{ display:grid; gap:8px; }
.favourites button{ display:flex; align-items:center; gap:10px; border:1px solid var(--line); border-radius:var(--radius-s); background:var(--ink-2); padding:10px; text-align:left; cursor:pointer; }
.favourites button:hover{ border-color:var(--brass); }
.favourites button>span:nth-child(2){ display:grid; gap:3px; flex:1; }
.favourites small, .activity span{ font-size:11px; color:var(--ivory-dim); }
.favourites b{ font-size:11px; color:var(--brass); }
.song-status-badge{ display:inline-block; margin-top:4px; padding:2px 8px; border-radius:999px; background:rgba(201,162,78,0.14); color:var(--brass); font-size:9px; font-weight:700; font-style:normal; }

#requestFromFavourites{ margin-top:12px; }
.setlist-empty{ margin:6px 4px; }

.my-requests-panel{ margin:-6px 0 28px; }
.my-requests-panel[hidden], .dancer-history-panel[hidden]{ display:none; }
#myRequestsList{ display:grid; gap:8px; }
.my-request{ display:grid; grid-template-columns:32px minmax(0,1fr) auto; align-items:center; gap:10px; border:1px solid var(--line); border-radius:var(--radius-s); background:var(--ink-2); padding:10px; }
.my-request strong, .my-request small{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.my-request strong{ font-size:13px; }
.my-request small{ color:var(--ivory-dim); font-size:10px; margin-top:3px; }
.request-state{ font-size:10px; font-weight:700; color:var(--ivory-dim); border:1px solid var(--line); border-radius:999px; padding:3px 9px; white-space:nowrap; }
.request-state.approved{ color:#a7c290; border-color:rgba(126,145,102,0.5); background:rgba(126,145,102,0.12); }
.request-state.declined, .request-state.skipped{ color:var(--denim); }

.vote-status{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:12px 0 22px; padding:10px 12px; border-left:3px solid var(--brass); background:rgba(201,162,78,0.08); color:var(--ivory-dim); font-size:11px; }
.vote-status strong{ color:var(--ivory); font-size:12px; }
.vote-status span{ flex:1; min-width:180px; }
.vote-credit-now{ border:1px solid var(--sage); border-radius:var(--radius-s); background:var(--sage); color:#152012; padding:6px 9px; font-size:10px; font-weight:800; cursor:pointer; }

.dancer-history-panel{ margin-top:28px; border-top:1px solid var(--line); padding-top:24px; }
.dancer-history-song{ display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid var(--line); }
.dancer-history-song strong, .dancer-history-song small{ display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dancer-history-song strong{ font-size:13px; }
.dancer-history-song small{ color:var(--ivory-dim); font-size:10px; margin-top:3px; }
.dancer-history-song b{ color:var(--ivory-dim); font-size:10px; }

/* ---------- board / room updates ---------- */
.attendance{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:24px; }
.attendance div{ background:var(--ink-2); border:1px solid var(--line); padding:13px; border-radius:var(--radius-s); text-align:center; }
.attendance strong{ font-family:'Big Shoulders Display',sans-serif; font-size:24px; display:block; color:var(--brass); }
.attendance span{ color:var(--ivory-dim); font-size:10px; }
.feed{ display:grid; gap:10px; }
.feed article{ display:flex; gap:12px; background:var(--ink-2); border:1px solid var(--line); border-radius:var(--radius-s); padding:14px; }
.feed-mark{ width:32px; height:32px; border-radius:50%; background:var(--denim); color:#fff; display:grid; place-items:center; font-size:10px; font-weight:800; flex:none; }
.feed-mark.cherry{ background:var(--rust); }
.feed-mark.olive{ background:var(--sage); color:#152012; }
.feed article strong{ font-size:13px; }
.feed article p{ font-size:12px; color:var(--ivory-dim); margin:5px 0; }
.feed article small{ font-size:10px; color:var(--denim); }

/* ---------- favourites library ---------- */
.favourites-library-panel, .user-saved-sections, .admin-users-panel, .admin-errors-panel, .profile-settings-panel{
  background:var(--ink-2); border:1px solid var(--line); border-radius:var(--radius-m); padding:18px; margin-bottom:16px;
}
.favourites-library-panel:before, .profile-settings-panel:before{ content:''; position:absolute; inset:7px; border:1px dashed var(--saddle-line); border-radius:7px; pointer-events:none; }
.user-folder-tabs, .folder-tabs, .live-favourite-folders{ display:flex; gap:6px; overflow:auto; padding:2px 0 12px; margin-bottom:3px; }
.user-folder-tabs button, .folder-tabs button, .live-favourite-folders button{ border:1px solid var(--line); background:transparent; color:var(--ivory-dim); border-radius:999px; padding:8px 12px; white-space:nowrap; font-size:11px; cursor:pointer; font:inherit; }
.user-folder-tabs button.selected, .folder-tabs button.selected, .live-favourite-folders button.selected{ background:var(--brass); border-color:var(--brass); color:#1a1305; }
.user-folder-tabs span, .folder-tabs span, .live-favourite-folders button span{ opacity:.72; margin-left:3px; }
.user-favourite-songs, .live-favourite-songs{ display:grid; gap:7px; }
.user-favourite-song, .live-favourite-song{ display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:8px; border:1px solid var(--line); background:var(--ink-3); border-radius:var(--radius-s); padding:9px; }
.live-favourite-song{ grid-template-columns:32px minmax(0,1fr) auto; }
.user-favourite-song>div, .live-favourite-song>span:nth-child(2){ min-width:0; display:grid; gap:3px; }
.user-favourite-song strong, .live-favourite-song strong{ font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.user-favourite-song small, .live-favourite-song small{ font-size:10px; color:var(--ivory-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.user-favourite-song > .user-favourite-actions{ display:flex; align-items:center; justify-content:flex-end; gap:6px; min-width:0; }
.user-favourite-action{ border:1px solid var(--line); background:var(--ink-2); color:var(--ivory-dim); border-radius:999px; min-height:28px; padding:0 9px; font-size:10px; font-weight:700; cursor:pointer; }
.user-favourite-action:hover{ border-color:var(--brass); color:var(--ivory); }
.favourite-link-dance{ color:#a7c290; border-color:rgba(126,145,102,0.45); white-space:nowrap; }
.favourite-link-dance:hover{ border-color:var(--sage); background:rgba(126,145,102,0.08); }
.user-favourite-action.star-toggle{ font-size:17px; padding:0 7px; color:var(--ivory-dim); line-height:1; }
.user-favourite-action.star-toggle.active{ color:var(--brass); }
.user-library-note{ font-size:11px; margin:12px 0 0; color:var(--ivory-dim); }
.user-library-search{ display:grid; gap:6px; margin:3px 0 12px; }
.user-library-search span{ font-size:10px; color:var(--ivory-dim); font-weight:700; }
.user-library-search input{ width:100%; border:1px solid var(--line); border-radius:var(--radius-s); background:var(--ink-3); padding:11px; font:inherit; font-size:12px; color:var(--ivory); }
.user-favourite-search-results{ display:grid; gap:6px; margin-bottom:12px; }
.user-search-result{ display:grid; grid-template-columns:32px minmax(0,1fr) auto; align-items:center; gap:8px; background:var(--ink-3); border:1px solid var(--line); border-radius:var(--radius-s); padding:8px; }
.user-search-result>span:nth-child(2){ display:grid; gap:3px; min-width:0; }
.user-search-result strong, .user-search-result small{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.user-search-result strong{ font-size:12px; }
.user-search-result small{ font-size:10px; color:var(--ivory-dim); }
.user-search-save{ border:0; border-radius:999px; background:var(--sage); color:#152012; padding:7px 10px; font-size:10px; font-weight:800; cursor:pointer; }
.user-search-save.saved{ background:rgba(243,238,226,0.08); color:var(--ivory-dim); }

.saved-favourites{ margin:30px 0; }
.saved-favourites-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.saved-favourites-grid article{ background:var(--ink-2); border:1px solid var(--line); border-radius:var(--radius-m); padding:13px; }
.saved-item{ display:flex; align-items:center; gap:8px; padding:9px 0; border-bottom:1px solid var(--line); }
.saved-item:last-child{ border-bottom:0; }
.saved-item>div{ display:grid; gap:3px; min-width:0; flex:1; }
.saved-item strong{ font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.saved-item small{ font-size:10px; color:var(--ivory-dim); }
.saved-item .star-toggle{ border:0; background:none; color:var(--brass); font-size:18px; cursor:pointer; }
.event-favourite, .venue-favourite{ font-size:17px; color:var(--ivory-dim); padding:3px; cursor:pointer; }
.event-favourite.active{ color:var(--brass); }
.venue-favourite.active{ color:var(--sage); }

@media(max-width:520px){
  .user-favourite-song{ grid-template-columns:30px minmax(0,1fr) auto auto; }
  .user-favourite-song [data-user-favourite-vote], .user-favourite-song [data-user-favourite-request]{ grid-column:2 / -1; width:100%; }
  .user-favourite-song .user-favourite-action{ min-height:26px; padding:0 7px; }
  .live-favourite-song{ grid-template-columns:30px minmax(0,1fr); }
  .live-favourite-song button{ grid-column:2; justify-self:start; }
  .saved-favourites-grid{ grid-template-columns:1fr; }
}
@media(max-width:720px){ .user-favourite-song > .user-favourite-actions{ flex-wrap:wrap; } }

.library-search-block{ margin:14px 0 16px; padding:14px; background:rgba(126,145,102,0.08); border:1px dashed var(--saddle-line); border-radius:var(--radius-m); }
.library-search-block .library-search{ margin:0; }
.library-search-block:before{ content:'SEARCH SPOTIFY'; display:block; margin-bottom:7px; color:var(--ivory-dim); font-size:10px; font-weight:700; letter-spacing:.16em; }

/* ---------- profile ---------- */
.profile-header{ display:flex; align-items:center; gap:15px; margin-bottom:26px; }
.profile-avatar{ width:56px; height:56px; font-size:16px; background:var(--brass); color:#1a1305; border:0; border-radius:50%; font-weight:800; display:grid; place-items:center; }
.profile-header h1{ font-size:34px; margin-bottom:2px; }
.profile-role{ margin:0 0 8px; color:var(--brass); font-size:12.5px; font-weight:700; }
.profile-header .profile-signout{ margin-left:auto; border:1px solid var(--line); background:transparent; color:#e08469; border-radius:999px; min-height:34px; padding:0 10px; font-size:10px; box-shadow:none; cursor:pointer; }
.profile-header .profile-signout:hover{ background:rgba(163,64,42,0.1); }
.credit-card{ background:var(--ink-2); border:1px dashed var(--saddle-line); color:var(--ivory); padding:20px; border-radius:var(--radius-m); display:flex; align-items:center; justify-content:space-between; margin-bottom:30px; }
.credit-card span{ display:block; font-size:9px; color:var(--ivory-dim); letter-spacing:1px; font-weight:700; }
.credit-card strong{ font-family:'Big Shoulders Display',sans-serif; font-size:34px; color:var(--brass); }
.credit-card button{ background:var(--brass); color:#1a1305; border:0; border-radius:var(--radius-s); padding:10px 14px; font-weight:800; cursor:pointer; }
.activity{ display:grid; gap:8px; }
.activity div{ display:grid; grid-template-columns:1fr auto; gap:5px; background:var(--ink-2); border:1px solid var(--line); border-radius:var(--radius-s); padding:13px; }
.activity span{ grid-column:1; }
.activity b{ grid-column:2; grid-row:1/3; align-self:center; color:#a7c290; font-size:10px; }
.activity .muted-badge{ color:var(--ivory-dim); }
.profile-settings-panel .section-heading{ margin-bottom:16px; }
.profile-settings-panel{ position:relative; margin-top:30px; }
.profile-settings-panel summary{ display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; list-style:none; position:relative; }
.profile-settings-panel summary::-webkit-details-marker{ display:none; }
.profile-settings-panel summary::after{ content:''; width:8px; height:8px; margin-left:auto; border-right:2px solid var(--brass); border-bottom:2px solid var(--brass); transform:rotate(45deg); transition:transform .15s ease; flex:none; }
.profile-settings-panel[open] summary::after{ transform:rotate(-135deg); }
.profile-settings-panel[open] summary{ margin-bottom:16px; }
.profile-settings-panel summary .settings-saved:empty{ display:none; }
.profile-settings-panel .profile-form{ position:relative; }
.profile-settings-panel h2, .account-actions h2{ font-family:'Big Shoulders Display',sans-serif; font-size:22px; margin:0; }
.settings-saved{ color:#a7c290; font-size:11px; font-weight:700; }
.profile-form{ display:grid; gap:12px; }
.profile-form label{ display:grid; gap:6px; }
.profile-form label>span{ color:var(--ivory-dim); font-size:11px; font-weight:700; }
.profile-form .big-input{ margin:0; }
.profile-form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.profile-form .wide-button{ margin-top:4px; }
.account-actions{ border-top:1px solid var(--line); margin-top:32px; padding:24px 0 10px; }
.account-actions h2{ margin-bottom:5px; }
.signout-prominent{ margin-top:16px; width:100%; border:1px solid var(--rust); border-radius:var(--radius-s); background:var(--rust); color:#fbe3db; padding:13px; font-weight:800; cursor:pointer; box-shadow:0 8px 16px rgba(163,64,42,0.18); }
.signout-prominent:hover{ background:var(--red-dark); }
@media(max-width:520px){ .profile-form-grid{ grid-template-columns:1fr; } }
@media(max-width:430px){ .profile-header{ align-items:flex-start; } .profile-header .profile-signout{ padding:0 8px; } }

.profile-notifications{ margin:0 0 30px; }
.profile-notifications .section-heading{ margin-bottom:10px; }
.notification-item{ display:flex; align-items:center; gap:10px; padding:11px 0; border-bottom:1px solid var(--line); }
.notification-item p{ margin:0; color:var(--ivory); font-size:12px; line-height:1.4; }
.notification-item .live-dot{ width:6px; height:6px; box-shadow:none; }

/* ---------- event picker modal ---------- */
.event-choice-list{ display:grid; gap:8px; max-height:min(58vh,480px); overflow:auto; padding-right:2px; }
.event-list-label{ font-size:9px; letter-spacing:1.8px; color:var(--brass); font-weight:800; margin:8px 0 0; }
.event-choice{ color:var(--ivory); width:100%; border:1px solid var(--line); background:var(--ink-3); border-radius:var(--radius-s); padding:14px; text-align:left; display:flex; align-items:center; gap:11px; margin:8px 0; cursor:pointer; min-width:0; }
.event-choice.selected{ border-color:var(--brass); }
.event-choice-copy{ min-width:0; text-align:left; display:grid; gap:4px; flex:1; }
.event-choice-title{ display:flex; align-items:center; gap:8px; min-width:0; flex-wrap:wrap; }
.event-choice-title strong{ min-width:0; }
.event-countdown{ font-style:normal; font-size:9.5px; font-weight:800; letter-spacing:.4px; padding:2px 8px; border-radius:999px; background:rgba(201,162,78,0.14); color:var(--brass); white-space:nowrap; }
.event-countdown.soon{ background:rgba(126,145,102,0.18); color:#a7c290; }
.event-countdown.live{ background:rgba(163,64,42,0.2); color:#e08469; }
.event-choice small{ font-size:11px; color:var(--ivory-dim); }
.event-choice-copy .event-choice-detail{ font-size:10px; }
.event-choice b{ font-size:11px; color:var(--brass); }
.event-choice-actions{ display:flex; align-items:center; gap:8px; margin-left:auto; flex:none; }
.event-choice-actions b{ min-width:34px; text-align:right; }
.calendar{ width:8px; height:8px; border:1px solid var(--ivory-dim); color:var(--ivory-dim); font-size:0; }
.prep-add-location{ margin-top:4px; align-self:start; }

/* ---------- live favourites modal ---------- */
.live-favourites-modal{ max-height:min(760px,calc(100vh - 32px)); overflow:auto; }

/* ---------- public marketing pages ---------- */
.public-page-view{ max-width:900px; margin:auto; }
.public-page-view h1{ font-family:'Big Shoulders Display',sans-serif; font-weight:800; font-size:44px; line-height:1.05; max-width:700px; margin:0 0 14px; }
.public-back{ border:0; background:none; color:var(--brass); font-size:12px; font-weight:700; padding:0; margin:0 0 42px; cursor:pointer; }
.public-lead{ font-size:16px; line-height:1.6; color:var(--ivory-dim); max-width:720px; margin:0 0 32px; }
.public-feature-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.public-feature-grid article{ position:relative; background:var(--ink-2); border:1px solid var(--line); border-radius:var(--radius-m); padding:20px; }
.feature-number{ color:var(--brass); font-size:11px; font-weight:800; letter-spacing:1px; }
.public-feature-grid h2{ font-family:'Big Shoulders Display',sans-serif; font-size:21px; font-weight:800; margin:16px 0 7px; }
.public-feature-grid p{ color:var(--ivory-dim); font-size:13px; line-height:1.55; margin:0; }
.public-cta{ position:relative; background:var(--ink); border:1px dashed var(--saddle-line); border-radius:var(--radius-m); color:#fff; padding:24px; margin-top:28px; }
.public-cta h2{ font-family:'Big Shoulders Display',sans-serif; font-size:26px; font-weight:800; margin:0 0 6px; }
.public-cta p{ color:var(--ivory-dim); font-size:13px; margin:0 0 16px; }
.public-cta .wide-button{ width:auto; margin:0; background:var(--brass); color:#1a1305; border-color:var(--brass); }
.public-page .bottom-nav{ display:none; }
.public-page .topbar{ position:relative; }
@media(max-width:650px){
  .public-page-view h1{ font-size:34px; }
  .public-feature-grid{ grid-template-columns:1fr; }
  .public-back{ margin-bottom:30px; }
  .public-lead{ font-size:14.5px; }
}

.public-info-backdrop{ place-items:center; padding:18px; }
.public-info-modal{ max-height:min(92vh,760px); overflow:auto; padding:28px; }
.public-intro{ color:var(--ivory-dim); font-size:14px; line-height:1.6; max-width:580px; margin:0 0 22px; }
.audience-grid{ display:grid; gap:10px; }
.audience-grid article, .audience-card{ display:flex; gap:13px; align-items:flex-start; padding:14px; background:var(--ink-3); border:1px solid var(--line); border-radius:var(--radius-m); }
.audience-card{ width:100%; text-align:left; cursor:pointer; color:var(--ivory); }
.audience-card:hover{ border-color:var(--brass); background:rgba(201,162,78,0.06); }
.audience-mark{ width:34px; height:34px; border-radius:50%; display:grid; place-items:center; flex:none; color:#fff; font-size:10px; font-weight:800; background:var(--denim); }
.audience-mark.dj{ background:var(--saddle); }
.audience-mark.venue{ background:var(--brass); color:#1a1305; }
.audience-grid h3, .audience-card strong{ font-size:15px; margin:1px 0 5px; }
.audience-grid p, .audience-card small{ color:var(--ivory-dim); font-size:12px; line-height:1.5; margin:0; }
.audience-card>span:last-child{ display:grid; gap:5px; }
.audience-card b{ color:var(--brass); font-size:11px; }
.public-info-footer{ display:flex; align-items:center; gap:14px; margin-top:22px; padding-top:18px; border-top:1px solid var(--line); color:var(--brass); font-size:12px; font-weight:800; }
.public-info-footer .wide-button{ width:auto; margin:0; margin-left:auto; padding:11px 14px; }
@media(max-width:520px){ .public-info-modal{ padding:22px; } .public-info-footer{ display:grid; gap:10px; } .public-info-footer .wide-button{ width:100%; margin:0; } }
