/* ============================================================
   simuze-2026.css
   ------------------------------------------------------------
   Upgrade-only stylesheet. Loaded AFTER all existing theme CSS.
   Adds new layout pieces and overrides where the production
   pages need work (homepage, weblog, single, music).
   Existing classes are reused; new ones are namespaced sz-*.
   ============================================================ */


/* ── 0. Tokens that the existing :root might not have ─────── */
:root {
  /* The Simuze S at a quarter opacity: the wordmark on every group avatar and artwork that has no image yet. */
  --sz-mark: url('data:image/svg+xml,%3Csvg%20xmlns="http://www.w3.org/2000/svg"%20viewBox="0%200%20281%20281"%3E%3Cpath%20transform="translate(84.3%2084.3)%20scale(0.4)"%20fill="%23fff"%20fill-opacity="0.25"%20d="M258.241,129.106C258.241,121.51%20251.594,115.338%20243.523,115.338L55.994,115.338C67.388,78.781%20101.096,53.144%20140.501,53.144C158.541,53.144%20175.633,58.367%20190.35,68.337C197.472,73.559%20207.442,71.66%20212.189,64.539C216.937,57.417%20215.038,47.922%20207.916,42.7C187.977,28.932%20164.713,21.81%20140.501,21.81C58.842,21.81%2022.286,95.873%2022.286,126.732C22.286,131.48%2021.811,144.298%2038.902,144.298L229.281,144.298C228.331,191.774%20187.027,230.229%20136.228,230.229C104.894,230.229%2075.933,215.512%2058.842,191.299C54.095,184.653%2045.074,183.228%2038.428,187.501C31.781,192.249%2030.357,201.269%2035.104,207.916C57.893,239.725%2095.873,259.19%20136.228,259.19C203.644,259.19%20258.716,206.491%20258.716,141.924L258.241,129.106Z"/%3E%3C/svg%3E');
  --sz-cta-emphasis:        #3F6FA8;
  --sz-cta-emphasis-hover:  #5689C5;

  --sz-radius-tile: 10px;
  --sz-radius-card: 12px;
  --sz-section-pad-y: 56px;
  --sz-section-pad-y-mobile: 32px;

  /* Re-declare a couple of tokens so this file works standalone if
     the user wants to inspect it in isolation. They are the same
     values used elsewhere in the theme. */
  --sz-accent: #A8D5BA;
  --sz-accent-hover: #C1E2C8;
}


/* ── 1. Header alignment ─────────────────────────────────── */
/* Existing .site-header centers logo+nav at padding 6px var(--gap)
   while page content centers at max-width 1440 with 32px gutter.
   Reserve scrollbar space so a fixed header and content centered
   on max-width line up vertically. */
html {
  scrollbar-gutter: stable both-edges;
}

/* Match the header content area to the .container/.fullwidth content. */
.site-header {
  padding: 6px 0;
}
.site-header > .wrapper_relative {
  max-width: var(--container-max-width);
  margin: 0 auto;
  padding: 0 var(--space-32);
}
@media (max-width: 1024px) {
  .site-header > .wrapper_relative { padding: 0 24px; }
}
@media (max-width: 768px) {
  .site-header > .wrapper_relative { padding: 0 16px; }
}

/* Nav + login button cluster right, no gap between last item and login. */
.site-header .row .main-nav { margin-right: 0 !important; }
.site-header .main-nav ul.menu li:last-child { padding-right: 0; }
.site-header .main-nav ul.menu li:last-child a { margin-right: 0 !important; }

/* Header auth buttons (Log in / Sign up): force the small, subtle .button-sm size.
   The base .button padding (10px 20px / 14px) otherwise renders them too large in
   the header bar. Scoped + !important so nothing reverts them to the old size. */
.site-header #user-menu .button,
.site-header #user-menu .sz-login-link,
.site-header a.nav-signup-link.button {
  height: 32px !important;
  min-height: 32px !important;
  padding: 0 14px !important;
  font-size: 13px !important;
  line-height: 1 !important;
  border-radius: 6px !important;
}

/* SIMEZU's embed replaces #user-menu with its own <a class="sz-login-link"> (default
   styling = padding 8px 20px, grey fill, 14px). That overwrites our SSR button after
   load, so the button "snaps back" to the old larger size. Restyle it to the same
   subtle outline as .button-outline.button-sm. Higher specificity + !important beats
   the embed's inline stylesheet regardless of load order. */
.site-header #user-menu .sz-login-link {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.32) !important;
  color: #fff !important;
}
.site-header #user-menu .sz-login-link:hover {
  background: rgba(255,255,255,0.06) !important;
  border-color: rgba(255,255,255,0.5) !important;
}


/* ── 2. Buttons — vertical-centering fix + emphasis variant ─ */

.button,
.btn,
a.button,
a.btn {
  font-family: var(--font-body, 'IBM Plex Sans', sans-serif);
  font-weight: 500;
  font-size: 14px;
  line-height: 42px;            /* === height for exact centering */
  height: 42px;
  min-height: 0;
  padding: 0 18px;
  white-space: nowrap;
}

.button-sm, .btn-sm, .button.button-sm, .btn.button-sm {
  height: 32px; line-height: 32px; padding: 0 12px; font-size: 13px;
}

/* Lock primary button text color — beats `a:link, a:visited { color: var(--color-accent) }` */
/* PRIMARY button (filled mint) — dark text */
.button,
.btn,
a.button:link, a.button:visited,
a.btn:link, a.btn:visited,
.hero-start-show:link, .hero-start-show:visited,
button.button, button.btn, input.button, input.btn {
  color: #0a0a0a !important;
  background: var(--sz-accent) !important;
  border: 1px solid var(--sz-accent) !important;
}
.button:hover, .btn:hover,
a.button:hover, a.btn:hover,
.hero-start-show:hover {
  color: #0a0a0a !important;
  background: var(--sz-accent-hover) !important;
  border-color: var(--sz-accent-hover) !important;
}
.button *, .btn * { color: inherit !important; }

/* OUTLINE button — white text on transparent */
.button.button-outline,
.button-outline,
.button-outline:link, .button-outline:visited,
a.button.button-outline:link, a.button.button-outline:visited {
  color: #fff !important;
  background: transparent !important;
  border: 1px solid rgba(255,255,255,0.32) !important;
}
.button.button-outline:hover,
.button-outline:hover,
a.button.button-outline:hover {
  background: rgba(255,255,255,0.06) !important;
  color: #fff !important;
  border-color: rgba(255,255,255,0.5) !important;
}

/* EMPHASIS button — sober blue, white text */
.button-emphasis, .btn-emphasis,
a.button-emphasis:link, a.button-emphasis:visited {
  background: var(--sz-cta-emphasis) !important;
  color: #fff !important;
  border-color: var(--sz-cta-emphasis) !important;
}
.button-emphasis:hover, .btn-emphasis:hover {
  background: var(--sz-cta-emphasis-hover) !important;
  border-color: var(--sz-cta-emphasis-hover) !important;
  color: #fff !important;
}

/* TICKETS / event light pill — white text on dark, mint on hover */
.event-ticket-btn-light:link,
.event-ticket-btn-light:visited {
  color: rgba(255,255,255,0.85) !important;
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(184,186,193,0.22) !important;
}
.event-ticket-btn-light:hover {
  background: var(--sz-accent) !important;
  color: #0a0a0a !important;
  border-color: var(--sz-accent) !important;
}

/* Hero search button — same primary treatment */
.hero-search button,
.hero-home .hero-search button {
  color: #0a0a0a !important;
  background: var(--sz-accent) !important;
  border: none !important;
}
.hero-search button:hover { background: var(--sz-accent-hover) !important; }

.button-emphasis, .btn-emphasis {
  background: var(--sz-cta-emphasis) !important;
  color: #fff !important;
  border-color: var(--sz-cta-emphasis) !important;
}
.button-emphasis:hover, .btn-emphasis:hover {
  background: var(--sz-cta-emphasis-hover) !important;
  border-color: var(--sz-cta-emphasis-hover) !important;
  color: #fff !important;
}

.button-pill, .btn-pill { border-radius: 999px !important; padding-left: 22px; padding-right: 22px; }


/* ── 3. Section heads ────────────────────────────────────── */
.sz-section-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 24px; margin-bottom: 24px;
  flex-wrap: wrap;
}
.sz-section-head__eyebrow {
  font-family: 'Rules', 'Inter Tight', sans-serif;
  font-size: 11px; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--sz-accent);
  margin: 0 0 6px;
}
.sz-section-head__title {
  font-family: 'Inter Tight', sans-serif;
  font-weight: 600;
  font-size: clamp(1.5rem, 2vw, 2rem);
  letter-spacing: -0.01em;
  margin: 0;
  line-height: 1.15;
}
.sz-section-head--tight { margin-bottom: 12px; }
.sz-section-head__title--sm { font-size: 1.2rem; }
.sz-section-head__link {
  font-size: 14px; color: rgba(255,255,255,0.7);
  text-decoration: none; white-space: nowrap;
}
.sz-section-head__link:hover { color: var(--sz-accent); }


/* ── 4. Hero — homepage ──────────────────────────────────── */
/* The existing .hero-home is fine; we tighten layout, add a right
   column "Right now" panel, and make the search subtle. */

.hero-home .hero-inner {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 64px;
  align-items: center;
  width: 100%;
  max-width: var(--container-max-width);
  margin: 0 auto;
}
@media (max-width: 900px) {
  .hero-home .hero-inner { grid-template-columns: 1fr; gap: 32px; }
}

.hero-home h1 {
  font-size: clamp(2.4rem, 4.5vw, 4rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 16px;
}
.hero-home .hero-lede {
  font-size: 18px;
  color: rgba(255,255,255,0.78);
  line-height: 1.5;
  max-width: 540px;
  margin: 0 0 24px;
}

.hero-home .hero-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 18px; }
.hero-home .hero-tagline { color: rgba(255,255,255,0.6); font-style: italic; font-size: 0.9rem; }

/* Search — sits a bit lower, wider, more prominent without being a full band */
.hero-home .hero-search {
  display: flex; gap: 10px; align-items: stretch;
  max-width: 560px;
  margin-top: 20px;
}
.hero-home .hero-search input[type="search"] {
  flex: 1; min-width: 0;
  height: 48px; padding: 0 22px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,0.22);
  background: rgba(8,9,12,0.65);
  color: #fff; font: inherit; outline: none;
  font-size: 15px;
  transition: border-color .2s ease, background .2s ease;
}
.hero-home .hero-search input::placeholder { color: rgba(255,255,255,0.5); }
.hero-home .hero-search input:focus {
  border-color: var(--sz-accent);
  background: rgba(8,9,12,0.88);
  box-shadow: 0 0 0 3px rgba(168,213,186,0.15);
}
.hero-home .hero-search button {
  height: 48px; padding: 0 26px;
  border-radius: 999px;
  font-weight: 600; font-size: 15px; cursor: pointer;
  white-space: nowrap;
}

/* Right column: live "Right now" panel */
.sz-rightnow {
  background: rgba(11,12,15,0.72);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 14px;
  padding: 18px 20px;
  backdrop-filter: blur(6px);
}
.sz-rightnow__head {
  display: flex; align-items: center; gap: 7px;
  font-family: 'Rules', sans-serif;
  font-size: 10px; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase;
  line-height: 1;
  color: var(--sz-accent);
  margin: 0 0 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.sz-rightnow__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--sz-accent);
  box-shadow: 0 0 0 0 rgba(168,213,186,0.5);
  animation: sz-pulse 2s infinite;
  flex-shrink: 0;
}
@keyframes sz-pulse {
  0%   { box-shadow: 0 0 0 0   rgba(168,213,186,0.55); }
  70%  { box-shadow: 0 0 0 10px rgba(168,213,186,0);   }
  100% { box-shadow: 0 0 0 0   rgba(168,213,186,0);   }
}
.sz-rightnow__list { display: flex; flex-direction: column; gap: 8px; }
.sz-rightnow__row {
  display: flex; align-items: baseline; gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.sz-rightnow__row:last-child { border-bottom: none; padding-bottom: 0; }
.sz-rightnow__num {
  font-family: 'Inter Tight', sans-serif; font-weight: 700;
  font-size: 22px; line-height: 1;
  color: #fff; flex-shrink: 0; min-width: 40px;
}
.sz-rightnow__num--accent { color: var(--sz-accent); }
.sz-rightnow__label { font-size: 13px; color: rgba(255,255,255,0.72); line-height: 1.3; }


/* ── 5. Board list — emphasised on homepage ──────────────── */
/* The existing .board-list / .board-item styles are good. We just
   bump padding on the homepage board so it feels more prominent. */
#hp-board .board-list { gap: 8px; }
#hp-board .board-item { padding: 14px 16px; border-radius: 10px; }
#hp-board .board-title { font-size: 15px; }
#hp-board .board-meta  { font-size: 12px; }


/* ── 6. Event list — whole row hover, ticket is its own link */
#hp-upcoming .event-list { padding: 0; }
#hp-upcoming .event-list-item {
  display: flex; align-items: center; gap: 14px;
  padding: 12px 14px; margin: 0 -14px;
  border-radius: 10px;
  border-bottom: 1px solid rgba(184,186,193,0.10);
  transition: background .15s ease;
}
#hp-upcoming .event-list-item:hover { background: rgba(255,255,255,0.04); }
#hp-upcoming .event-list-item:last-child { border-bottom: none; }
#hp-upcoming .event-row-main {
  display: flex; align-items: center; gap: 14px;
  flex: 1; min-width: 0; text-decoration: none; color: inherit; cursor: pointer;
}
#hp-upcoming .event-date-badge {
  min-width: 52px; padding: 6px 6px;
  font-family: 'Rules', sans-serif; font-size: 10px;
  letter-spacing: 0.1em; text-transform: uppercase;
  border-radius: 8px;
}
#hp-upcoming .event-date-badge .day {
  font-family: 'Inter Tight', sans-serif; font-size: 22px; letter-spacing: 0;
}
#hp-upcoming .event-title { font-size: 15px; }
#hp-upcoming .event-meta  { font-size: 12px; margin-top: 2px; }
#hp-upcoming .event-ticket-btn-light {
  padding: 7px 14px; font-size: 12px; margin-left: auto; flex-shrink: 0;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
#hp-upcoming .event-ticket-btn-light:hover {
  background: var(--sz-accent); border-color: var(--sz-accent); color: #0a0a0a;
}


/* ── 7. Feature release (homepage / music) ──────────────── */
.sz-feature-release {
  display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 40px;
  align-items: start;
}
@media (max-width: 900px) { .sz-feature-release { grid-template-columns: 1fr; gap: 24px; } }
.sz-feature-release__art {
  width: 320px; height: 320px;
  border-radius: 12px; overflow: hidden;
  background:
    var(--sz-mark) center/cover no-repeat,
    linear-gradient(135deg, #1a1f2e 0%, #2a3042 100%);
  box-shadow: 0 24px 60px rgba(0,0,0,0.45);
}
.sz-feature-release__body { display: flex; flex-direction: column; }
.sz-feature-release__eyebrow {
  font-family: 'Rules', sans-serif; font-size: 11px; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--sz-accent); margin: 0 0 12px;
}
.sz-feature-release__title {
  font-family: 'Inter Tight', sans-serif; font-weight: 700;
  font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.08;
  letter-spacing: -0.015em; margin: 0 0 6px;
}
.sz-feature-release__artist {
  font-size: 18px; color: rgba(255,255,255,0.7); margin: 0 0 18px;
}
.sz-feature-release__about {
  font-size: 15px; line-height: 1.55; color: rgba(255,255,255,0.82);
  margin: 0 0 22px; max-width: 540px;
}
.sz-feature-release__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 22px; }
.sz-tracklist {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 2px;
  max-width: 540px;
}
.sz-tracklist li {
  display: grid; grid-template-columns: 24px 1fr auto;
  align-items: center; gap: 12px;
  padding: 10px 12px; border-radius: 6px;
  font-size: 14px;
  transition: background .15s ease;
}
.sz-tracklist li:hover { background: rgba(255,255,255,0.04); }
.sz-tracklist .num  { color: rgba(255,255,255,0.45); font-family: ui-monospace, monospace; font-size: 12px; }
.sz-tracklist .name { color: #fff; }
.sz-tracklist .dur  { color: rgba(255,255,255,0.5); font-family: ui-monospace, monospace; font-size: 12px; }

.sz-play-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 44px; padding: 0 22px;
  background: var(--sz-accent); color: #0a0a0a !important;
  border: none; border-radius: 999px; font-weight: 600;
  font-size: 15px; cursor: pointer;
  text-decoration: none; white-space: nowrap;
}
.sz-play-btn:hover { background: var(--sz-accent-hover); }
.sz-play-btn i { font-size: 12px; }
.sz-play-btn .sz-ic { width: 15px; height: 15px; }

/* Reusable artist/group side card (also used inline as .h2-fside on homepage) */
.sz-feature-release--3col { grid-template-columns: 320px minmax(0,1fr) 280px; }
.sz-fside { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.1); border-radius: 14px; padding: 18px; display: flex; flex-direction: column; gap: 14px; }
.sz-fside__row { display: flex; align-items: center; gap: 11px; }
.sz-fside__av { width: 42px; height: 42px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center; font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 14px; color: #fff; }
.sz-fside__name { color: #fff; font-weight: 600; font-size: 15px; text-decoration: none; }
.sz-fside__name:hover { color: var(--sz-accent); }
.sz-fside__sub { font-size: 12.5px; color: rgba(255,255,255,0.55); }
.sz-fside__links { display: flex; flex-direction: column; border-top: 1px solid rgba(255,255,255,0.08); padding-top: 8px; }
.sz-fside__links a { display: flex; align-items: center; gap: 10px; padding: 8px 0; font-size: 13.5px; color: rgba(255,255,255,0.8); text-decoration: none; }
.sz-fside__links a:hover { color: var(--sz-accent); }
.sz-fside__links a .sz-ic { color: var(--sz-accent); flex: none; }
.sz-fside__links a span { margin-left: auto; color: rgba(255,255,255,0.3); }
.sz-fside__av--sq { border-radius: 9px; background-size: cover; background-position: center; background-color: rgba(255,255,255,0.08); }
.sz-fside__bio { font-size: 13px; line-height: 1.55; color: rgba(255,255,255,0.66); margin: 0; }
.sz-fside__follow { width: 100%; justify-content: center; }
@media (max-width: 1024px) { .sz-feature-release--3col { grid-template-columns: 320px minmax(0,1fr); } .sz-feature-release--3col > .sz-feature-release__side { grid-column: 1 / -1; } }
@media (max-width: 900px) { .sz-feature-release--3col { grid-template-columns: 1fr; } }


/* ── 8. Album card action row (existing .album-card .album-actions) */
/* The existing icon-small system is fine; we tighten sizing for the
   200px album card and ensure FontAwesome icons render cleanly. */
.albums-grid .album-card { width: 100%; }
.albums-grid .album-card .album-actions {
  display: flex; gap: 5px; margin-top: 10px;
  position: static !important;  /* override absolute positioning from layout.css */
  padding: 0 !important;
  background: transparent !important;
  border-top: none !important;
  border-radius: 0 !important;
  min-height: 0 !important;
}
.albums-grid .album-card .icon-small {
  width: 30px !important; height: 30px !important;
  padding: 0 !important;
  border-radius: 5px !important;
}
.albums-grid .album-card .icon-small i { font-size: 11px !important; line-height: 1 !important; }


/* ── 9. Latest added albums strip — SUBTLE ───────────────
   No card chrome. Just artwork (squared) + title + artist + a row
   of small icon buttons. Whole card is flat against the page bg.
   Matches the inspiration: clean cover, plain text, faint icons. */
.sz-album-strip {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 32px 24px;
}

/* Nuke the album card frame on the subtle strip — no bg, no border,
   no rounded card around the whole thing. Just the artwork is rounded. */
.sz-album-strip .album-card,
.albums-grid.sz-album-strip .album-card,
.albums-grid.sz-album-strip .album-card:focus,
.albums-grid.sz-album-strip .album-card:active {
  background: transparent !important;
  border: none !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  overflow: visible !important;
  padding: 10px !important;
  margin: -10px !important;        /* compensate so layout stays flush */
  outline: none !important;
  transition: background .2s ease !important;
}
.sz-album-strip .album-card:hover {
  background: rgba(255,255,255,0.025) !important;
  border: none !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Artwork is the only square thing here — kill the inherited green
   gradient from the upload-overview rule, give the placeholder a
   plain neutral dark background. */
.sz-album-strip .album-card .album-artwork,
.albums-grid.sz-album-strip .album-card .album-artwork {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  background: #1a1f2e !important;
  border-radius: 10px !important;
  position: relative;
  overflow: hidden;
}
/* keep covers square: fill the (square) artwork box, never stretch */
.sz-album-strip .album-card .album-artwork img,
.sz-album-strip .album-card .album-cover,
.albums-grid.sz-album-strip .album-card .album-artwork img {
  position: absolute !important; inset: 0 !important;
  width: 100% !important; height: 100% !important;
  object-fit: cover !important; display: block;
}
.sz-album-strip .album-card .album-placeholder {
  position: absolute !important;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  background:
    var(--sz-mark) center/cover no-repeat,
    #1a1f2e !important;
  opacity: 0.9;
}
.sz-album-strip .album-card .album-cover {
  width: 100%; height: 100%; object-fit: cover; display: block;
}

/* Cover hover: very gentle scale, no card lift */
.sz-album-strip .album-card .album-link:hover .album-cover,
.sz-album-strip .album-card:hover .album-artwork {
  transform: none !important;
}

/* Info block — plain text under the artwork */
.sz-album-strip .album-card .album-info,
.albums-grid.sz-album-strip .album-card .album-info {
  padding: 14px 0 0 !important;
  background: transparent !important;
}
.sz-album-strip .album-card .album-title,
.albums-grid.sz-album-strip .album-card .album-title {
  font-family: 'Inter Tight', sans-serif !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  color: #fff !important;
  margin: 0 0 4px !important;
  line-height: 1.3 !important;
}
.sz-album-strip .album-card .album-artist,
.albums-grid.sz-album-strip .album-card .album-artist {
  font-size: 14px !important;
  color: rgba(255,255,255,0.55) !important;
  margin: 0 !important;
  font-weight: 400 !important;
}

/* Action row — small, no fixed bottom bar, just a flex row */
.sz-album-strip .album-card .album-actions,
.albums-grid.sz-album-strip .album-card .album-actions {
  position: static !important;
  display: flex !important;
  flex-direction: row !important;
  gap: 6px !important;
  margin: 12px 0 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  min-height: 0 !important;
  justify-content: flex-start !important;
}
.sz-album-strip .album-card .icon-small,
.albums-grid.sz-album-strip .album-card .icon-small {
  width: 32px !important; height: 32px !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  border-radius: 6px !important;
  background: transparent !important;
  color: rgba(255,255,255,0.55) !important;
  opacity: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.sz-album-strip .album-card .icon-small i {
  font-size: 12px !important;
  color: inherit !important;
  opacity: 1 !important;
}
.sz-album-strip .album-card .icon-small:hover {
  background: rgba(255,255,255,0.06) !important;
  border-color: rgba(255,255,255,0.25) !important;
  color: #fff !important;
}
.sz-album-strip .album-card .icon-small:hover i { color: #fff !important; }
.sz-album-strip .album-card .icon-small.is-on,
.sz-album-strip .album-card .icon-small.is-on i {
  color: var(--sz-accent) !important;
  border-color: rgba(168,213,186,0.4) !important;
}


/* ── 10. Group activity panel + sidebar ─────────────────── */
.sz-panel {
  background: rgba(17,19,24,0.6);
  border: 1px solid rgba(184,186,193,0.18);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
}
.sz-panel__head {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 12px;
}
.sz-panel__head h3 {
  font-family: 'Inter Tight', sans-serif; font-weight: 600;
  font-size: 1rem; margin: 0; padding: 0;
}
.sz-panel__head a {
  font-size: 12px; color: rgba(255,255,255,0.6);
  text-decoration: none; cursor: pointer;
}
.sz-panel__empty {
  font-size: 13px; color: rgba(255,255,255,0.55);
  margin: 0 0 14px;
}
.sz-panel__body {
  font-size: 13px; color: rgba(255,255,255,0.7);
  line-height: 1.5; margin: 0 0 14px;
}
.sz-panel .button { width: 100%; }


/* ── 11. Group tile (homepage Latest groups, network strips) */
.sz-group-tile {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  text-decoration: none; color: var(--color-text, #fff);
}
.sz-group-tile__thumb {
  width: 100%; aspect-ratio: 1/1; border-radius: var(--sz-radius-tile);
  background:
    var(--sz-mark) center/cover no-repeat,
    linear-gradient(135deg, #1a1f2e 0%, #2a3042 100%);
  border: 1px solid rgba(255,255,255,0.06);
  transition: transform .25s ease, border-color .25s ease;
}
.sz-group-tile:hover .sz-group-tile__thumb {
  transform: translateY(-2px);
  border-color: rgba(168,213,186,0.4);
}
.sz-group-tile__thumb--map {
  background: url('../images/hero-worldmap-bg.jpg') center/cover no-repeat;
  filter: saturate(0.8) brightness(0.85);
}
.sz-group-tile__thumb--flag {
  display: flex; align-items: center; justify-content: center;
  background: rgba(17,19,24,0.8);
  font-size: 44px;
}
.sz-group-tile__name { font-size: 14px; font-weight: 500; text-align: center; }
.sz-group-tile__type {
  font-family: 'Rules', sans-serif; font-size: 10px; font-weight: 500;
  letter-spacing: 0.10em; text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  margin-top: 2px;
}

.sz-group-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 20px 16px;
}


/* ── 12. Weblog teaser (homepage) ───────────────────────── */
.sz-weblog-teaser {
  display: grid; grid-template-columns: 1.7fr 1fr; gap: 36px;
  align-items: start;
}
@media (max-width: 900px) { .sz-weblog-teaser { grid-template-columns: 1fr; gap: 28px; } }

.sz-weblog-teaser__hero {
  display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px;
  padding: 18px;
  border: 1px solid transparent;
  border-radius: 14px;
  background: transparent;
  transition: transform .25s ease, border-color .25s ease, background .25s ease;
}
  border-radius: 16px;
  background: rgba(0,0,0,0.4);
  border: 1px solid rgba(255,255,255,0.08);
  text-decoration: none; color: inherit; cursor: pointer;
  transition: transform .25s ease, border-color .25s ease;
}
@media (max-width: 640px) { .sz-weblog-teaser__hero { grid-template-columns: 1fr; } }
.sz-weblog-teaser__hero:hover { transform: translateY(-2px); border-color: rgba(168,213,186,0.30); background: rgba(255,255,255,0.03); }
.sz-weblog-teaser__hero-media {
  width: 220px; height: 100%; min-height: 280px;
  border-radius: 10px;
  background-size: cover; background-position: center;
}
@media (max-width: 640px) {
  .sz-weblog-teaser__hero-media { width: 100%; height: auto; aspect-ratio: 16/10; }
}
.sz-weblog-teaser__hero-body {
  display: flex; flex-direction: column; justify-content: center; gap: 12px;
}
.sz-weblog-teaser__hero-meta { font-size: 13px; color: rgba(255,255,255,0.6); }
.sz-weblog-teaser__hero-title {
  font-family: 'Inter Tight', sans-serif; font-weight: 600;
  font-size: clamp(1.3rem, 1.5vw, 1.55rem); line-height: 1.22;
  margin: 0; color: #fff;
}
.sz-weblog-teaser__hero-excerpt {
  font-size: 14px; color: rgba(255,255,255,0.75); line-height: 1.55; margin: 0;
  display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical;
  overflow: hidden;
}

.sz-weblog-teaser__list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; justify-content: space-between;
  min-height: 300px;
}
.sz-weblog-teaser__list li { border-bottom: 1px solid rgba(255,255,255,0.06); }
.sz-weblog-teaser__list li:last-child { border-bottom: none; }
.sz-weblog-teaser__list a {
  display: flex; flex-direction: column; gap: 6px;
  padding: 14px 0;
  text-decoration: none; color: inherit; cursor: pointer;
}
.sz-weblog-teaser__list li:first-child a { padding-top: 0; }
.sz-weblog-teaser__list li:last-child a  { padding-bottom: 0; }
.sz-weblog-teaser__list a:hover .sz-weblog-teaser__list-title { color: var(--sz-accent); }
.sz-weblog-teaser__list-meta {
  font-size: 11px; color: rgba(255,255,255,0.45);
  font-family: 'Rules', sans-serif; letter-spacing: 0.10em; text-transform: uppercase;
}
.sz-weblog-teaser__list-title {
  font-family: 'Inter Tight', sans-serif; font-weight: 500;
  font-size: 16px; line-height: 1.3; margin: 0;
  transition: color .15s ease;
}


/* ── 13. Weblog index — magazine layout ─────────────────── */.sz-weblog-featured {
  position: relative;
  display: grid; grid-template-columns: 1.2fr 1fr; gap: 0;
  border-radius: 16px; overflow: hidden;
  border: 1px solid rgba(255,255,255,0.08);
  background: rgba(0,0,0,0.4);
  margin-bottom: 48px;
}
@media (max-width: 900px) { .sz-weblog-featured { grid-template-columns: 1fr; } }
.sz-weblog-featured__media {
  position: relative; min-height: 360px;
  background-size: cover; background-position: center;
}
.sz-weblog-featured__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.55) 100%);
}
.sz-weblog-featured__body {
  display: flex; flex-direction: column; justify-content: center;
  padding: 40px 44px;
}
.sz-weblog-featured__eyebrow {
  font-family: 'Rules', sans-serif; font-size: 11px; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--sz-accent); margin: 0 0 14px;
}
.sz-weblog-featured__title {
  font-family: 'Inter Tight', sans-serif; font-weight: 700;
  font-size: clamp(1.8rem, 2.8vw, 2.6rem);
  line-height: 1.1; letter-spacing: -0.015em;
  margin: 0 0 16px;
  color: #fff;
}
.sz-weblog-featured__excerpt {
  font-size: 16px; line-height: 1.55; color: rgba(255,255,255,0.82); margin: 0 0 22px;
}
.sz-weblog-featured__meta {
  font-size: 13px; color: rgba(255,255,255,0.6);
  display: flex; gap: 14px;
}
.sz-weblog-featured__dot { width: 4px; height: 4px; border-radius: 50%; background: rgba(255,255,255,0.3); align-self: center; }

.sz-weblog-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
}
.sz-weblog-card {
  background: rgba(0,0,0,0.35);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px; overflow: hidden;
  display: flex; flex-direction: column;
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease;
  text-decoration: none; color: inherit;
}
.sz-weblog-card:hover { transform: translateY(-2px); border-color: rgba(168,213,186,0.30); }
.sz-weblog-card__media { aspect-ratio: 16/9; background-size: cover; background-position: center; }
.sz-weblog-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.sz-weblog-card__meta { font-size: 12px; color: rgba(255,255,255,0.55); }
.sz-weblog-card__title {
  font-family: 'Inter Tight', sans-serif; font-weight: 600;
  font-size: 1.25rem; line-height: 1.25; margin: 0; color: #fff;
}
.sz-weblog-card__excerpt { font-size: 14px; color: rgba(255,255,255,0.75); line-height: 1.5; margin: 0; }
.sz-weblog-card__terms { display: flex; gap: 6px; flex-wrap: wrap; margin-top: auto; padding-top: 6px; }
.sz-weblog-card__term {
  font-family: 'Rules', sans-serif; font-size: 10px; font-weight: 500;
  letter-spacing: 0.10em; text-transform: uppercase;
  padding: 4px 8px; border-radius: 4px;
  background: rgba(168,213,186,0.12); color: var(--sz-accent);
  text-decoration: none;
}
.sz-weblog-card__term--tag { background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.7); }


/* ── 14. Single post — editorial header + body + related ─ */
.sz-single-hero {
  position: relative; padding: 120px 32px 56px;
  overflow: hidden; min-height: 420px;
  /* bleed up under the transparent fixed header — cancels .site-content's
     padding-top so no dark band shows above the hero image */
  margin-top: calc(-1 * var(--header-height, 50px));
  display: flex; align-items: flex-end;
}
.sz-single-hero__bg {
  position: absolute; inset: 0; background-size: cover; background-position: center; z-index: 0;
}
.sz-single-hero__bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(11,12,15,0.4) 0%, rgba(11,12,15,0.95) 100%);
}
.sz-single-hero__inner {
  position: relative; z-index: 1;
  width: 100%; max-width: 900px; margin: 0 auto;
}
.sz-single-hero__crumb {
  font-size: 13px; color: rgba(255,255,255,0.7);
  display: flex; gap: 8px; align-items: center;
  margin: 0 0 18px;
}
.sz-single-hero__crumb a {
  color: var(--sz-accent); text-decoration: none;
}
.sz-single-hero__title {
  font-family: 'Inter Tight', sans-serif; font-weight: 700;
  font-size: clamp(2rem, 3.8vw, 3.4rem);
  line-height: 1.08; letter-spacing: -0.02em;
  margin: 0 0 16px; color: #fff;
}
.sz-single-hero__meta {
  font-size: 14px; color: rgba(255,255,255,0.78);
  display: flex; gap: 14px; align-items: center; flex-wrap: wrap;
}
.sz-single-hero__meta .dot { width: 4px; height: 4px; border-radius: 50%; background: rgba(255,255,255,0.3); }

.sz-single-body {
  max-width: 720px; margin: 0 auto; padding: 56px 32px 32px;
}
.sz-single-body .content-body img { max-width: 100%; height: auto; display: block; }
.sz-post-figure { margin: 2.4em 0; }
.sz-post-figure img { border-radius: 8px; }
.sz-post-figure figcaption { margin-top: 8px; font-size: 0.82rem; color: rgba(255,255,255,0.5); }
.sz-related-strip { max-width: var(--container-max-width); margin: 0 auto; padding: 32px var(--space-32) 64px; }

/* ── Pull-quote: big, highlighted, distinct from body copy ── */
.sz-single-body .content-body blockquote {
  position: relative;
  margin: 1.9em 0;
  padding: 0;
  border: 0;
  color: #fff;
  font-family: 'Inter Tight', sans-serif;
  font-style: normal;
  font-weight: 500;
  font-size: clamp(1.55rem, 1.05rem + 1.9vw, 2.2rem);
  line-height: 1.28;
  letter-spacing: -0.018em;
  text-wrap: balance;
}
.sz-single-body .content-body blockquote::before {
  content: "\201C";
  display: block;
  font-family: 'Inter Tight', sans-serif;
  font-weight: 700;
  font-size: 3rem;
  line-height: 0.9;
  margin-bottom: 0.04em;
  color: var(--sz-accent);
}
.sz-single-body .content-body blockquote p {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}
.sz-single-body .content-body blockquote cite {
  display: block;
  margin-top: 0.85rem;
  font-family: 'Rules', 'Inter Tight', sans-serif;
  font-size: 0.72rem;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
}
@media (max-width: 768px) {
  .sz-single-body .content-body blockquote { margin: 1.5em 0; line-height: 1.3; }
  .sz-single-body .content-body blockquote::before { font-size: 2.8rem; }
}

@media (max-width: 768px) {
  .sz-single-hero { padding: 80px 16px 40px; min-height: 0; }
  .sz-single-body { padding: 32px 16px 24px; }
  .sz-related-strip { padding: 24px 16px 40px; }
}


/* ── 15. Music page — featured + grids ──────────────────── */
.sz-music-hero {
  padding: 64px 0 32px;
  background:
    linear-gradient(180deg, rgba(11,12,15,0.6) 0%, rgba(11,12,15,0.95) 100%),
    url('../images/hero-default.jpg') center/cover no-repeat;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.sz-music-hero__inner {
  max-width: var(--container-max-width); margin: 0 auto;
  padding: 0 var(--space-32);
}
.sz-music-hero h1 {
  font-family: 'Inter Tight', sans-serif; font-weight: 700;
  font-size: clamp(2.2rem, 3.4vw, 3.2rem);
  line-height: 1.05; letter-spacing: -0.02em;
  margin: 0 0 12px;
}
.sz-music-hero p { font-size: 17px; color: rgba(255,255,255,0.78); margin: 0; max-width: 600px; }

@media (max-width: 768px) {
  .sz-music-hero { padding: 40px 0 24px; }
  .sz-music-hero__inner { padding: 0 16px; }
}


/* ── 16. Section dividers between homepage blocks ──────── */
.sz-section-divider {
  border-top: 1px solid rgba(255,255,255,0.05);
  margin: 0;
}


/* ── 17. Mobile hamburger fixes (override existing menu.css if needed) */
@media (max-width: 1024px) {
  /* Hide login button text on tablet, keep icon */
  /* (leave existing responsive.css to handle this) */
}

@media (max-width: 768px) {
  /* Section padding tightens on mobile */
  .fullwidth { padding-left: 0 !important; padding-right: 0 !important; }
  .fullwidth > .row { padding-left: 16px; padding-right: 16px; }

  /* Homepage hero columns stack and the rightnow shrinks */
  .hero-home .hero-actions { gap: 8px; }
  .hero-home .hero-search { max-width: 100%; }
  .hero-home .hero-search button { padding: 0 14px; }
  .sz-rightnow { padding: 18px; border-radius: 12px; }
  .sz-rightnow__num { font-size: 22px; min-width: 40px; }
  .sz-rightnow__label { font-size: 13px; }

  /* Featured release stacks. The artwork runs the full content width and stays
     left-aligned with the heading above it — capping it at 280px and centring
     it left a dead gutter down the left-hand side on phones. */
  .sz-feature-release__art { width: 100%; max-width: none; height: auto; aspect-ratio: 1/1; margin: 0; }
  .sz-feature-release__title { font-size: clamp(1.5rem, 6vw, 2rem); }

  /* Group tiles shrink */
  .sz-group-tiles { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 14px 10px; }
  .sz-group-tile__name { font-size: 13px; }

  /* Album icon row stays at 5 cols on phones; keep min 5x30 = 150px */
  .albums-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important; gap: 16px !important; }

  /* Section heads stack the link below */
  .sz-section-head { gap: 8px; margin-bottom: 18px; }
  .sz-section-head__title { font-size: 1.4rem; }
}


/* ── 18. Tiny phones ──────────────────────────────────── */
@media (max-width: 380px) {
  .hero-home h1 { font-size: 2rem; }
  .hero-home .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-home .hero-actions .button { width: 100%; }
  .sz-rightnow__row { flex-direction: column; align-items: flex-start; gap: 4px; padding-bottom: 10px; }
  .albums-grid { grid-template-columns: 1fr 1fr !important; }
}


/* ============================================================
   19. NETWORK page — map hero + type strips + board column
   ============================================================ */

.sz-network-map {
  position: relative;
  margin-top: calc(-1 * var(--header-height, 60px));
  height: 540px;
  background: #0a0a0a;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  overflow: hidden;
}
.sz-network-map #network-map { position: absolute; inset: 0; z-index: 1; }
.sz-network-map .maplibregl-map {
  background: #0a0a0a;
  font-family: 'IBM Plex Sans', sans-serif;
}
.sz-network-map .maplibregl-ctrl-attrib {
  background: rgba(11,12,15,0.7);
  color: rgba(255,255,255,0.5);
  font-size: 10px; border-radius: 4px;
}
.sz-network-map .maplibregl-ctrl-attrib a { color: var(--sz-accent); }

/* Custom zoom + / - top-right — pushed below the fixed header (the map
   bleeds up under it via negative margin-top, so a plain 16px top would put
   the +/- buttons behind the header) */
.sz-network-map .maplibregl-ctrl-top-right .maplibregl-ctrl-group {
  margin: calc(var(--header-height, 60px) + 18px) 16px 0 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important;
  border-radius: 8px !important;
  overflow: hidden;
}
.sz-network-map .maplibregl-ctrl-group button {
  background: rgba(11,12,15,0.92) !important;
  width: 36px !important; height: 36px !important;
  border: none !important;
  border-top: 1px solid rgba(255,255,255,0.12) !important;
}
.sz-network-map .maplibregl-ctrl-group button:first-child { border-top: none !important; border-radius: 8px 8px 0 0 !important; }
.sz-network-map .maplibregl-ctrl-group button:last-child  { border-radius: 0 0 8px 8px !important; }
.sz-network-map .maplibregl-ctrl-group button:hover { background: rgba(168,213,186,0.18) !important; }
.sz-network-map .maplibregl-ctrl-icon { filter: invert(1); }

/* Plain sibling of #network-map, not a MapLibre-managed control — see the
   markup comment in template_network.php for why. z-index 4 clears both
   #network-map (1) and .sz-network-map__overlay (3, needs to stay above the
   map tiles for the darkening gradient), so it isn't buried under that
   gradient in the bottom-right corner where it's darkest. The .maplibregl-ctrl
   wrapper class is required (not decorative) — MapLibre's own icon rule is
   scoped `.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon`,
   so the button needs a `.maplibregl-ctrl` ancestor or the expand/shrink icon
   never draws. */
.sz-network-map__fullscreen-wrap {
  position: absolute; right: 16px; bottom: 16px; z-index: 4;
}
.sz-network-map__fullscreen {
  display: block;
  width: 36px; height: 36px; padding: 0;
  background: rgba(11,12,15,0.92); border: none; border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4);
  cursor: pointer;
}
.sz-network-map__fullscreen:hover { background: rgba(168,213,186,0.18); }

/* Title overlay at the bottom of the map */
.sz-network-map__overlay {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
  background: linear-gradient(180deg, rgba(11,12,15,0) 0%, rgba(11,12,15,0.82) 65%, rgba(11,12,15,0.95) 100%);
  pointer-events: none;
}
.sz-network-map__inner {
  max-width: var(--container-max-width); margin: 0 auto;
  padding: 64px var(--space-32) 28px;
  display: flex; align-items: flex-end; justify-content: space-between; gap: 24px;
  pointer-events: auto;
}
.sz-network-map__title {
  font-family: 'Inter Tight', sans-serif; font-weight: 700;
  font-size: clamp(2.4rem, 4vw, 3.6rem);
  line-height: 1.0; letter-spacing: -0.02em;
  margin: 0;
}
.sz-network-map__subtitle {
  font-size: 15px; color: rgba(255,255,255,0.75);
  margin: 10px 0 0; max-width: 540px; line-height: 1.5;
}

.simuze-marker {
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--sz-accent);
  border: 2px solid #0B0C0F;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.4), 0 2px 6px rgba(0,0,0,0.5);
}
.simuze-marker.is-venue    { background: #E2C28A; }
.simuze-marker.is-label    { background: #8FB6E0; }
.simuze-marker.is-artist   { background: #DDA0A0; }
.simuze-marker.is-festival { background: #C3B6E8; }

/* Search + filter bar */
.sz-search-bar {
  display: flex; gap: 10px; align-items: stretch;
  margin-bottom: 28px;
}
.sz-search-bar input[type="search"] {
  flex: 1; height: 44px; padding: 0 22px;
  border-radius: 999px;
  background: rgba(17,19,24,0.6);
  border: 1px solid rgba(184,186,193,0.20);
  color: #fff; font: inherit; font-size: 14px; outline: none;
}
.sz-search-bar input::placeholder { color: rgba(255,255,255,0.4); }
.sz-search-bar input:focus { border-color: var(--sz-accent); background: rgba(17,19,24,0.85); }
.sz-search-bar__filter-btn {
  display: inline-flex; align-items: center; gap: 8px;
  height: 44px; padding: 0 18px;
  border-radius: 999px;
  background: rgba(17,19,24,0.6);
  border: 1px solid rgba(184,186,193,0.20);
  color: #fff !important; font: inherit; font-size: 14px;
  cursor: pointer; white-space: nowrap;
  text-decoration: none;
}
.sz-search-bar__filter-btn:hover { background: rgba(17,19,24,0.9); border-color: rgba(255,255,255,0.3); }
.sz-search-bar__filter-btn[aria-expanded="true"] {
  background: rgba(168,213,186,0.12);
  border-color: rgba(168,213,186,0.4);
  color: var(--sz-accent) !important;
}
.sz-search-bar__submit {
  display: inline-flex; align-items: center; justify-content: center;
  height: 44px; padding: 0 26px;
  border-radius: 999px; border: none;
  background: var(--sz-accent); color: #0a0a0a;
  font: inherit; font-weight: 600; font-size: 14px; cursor: pointer; white-space: nowrap;
}
.sz-search-bar__submit:hover { background: var(--sz-accent-hover); }

/* Collapsible filter panel */
.sz-filter-panel {
  background: rgba(13,14,18,0.7);
  border: 1px solid rgba(184,186,193,0.16);
  border-radius: 14px;
  padding: 0 24px;
  max-height: 0;
  overflow: hidden;
  margin-bottom: 0;
  transition: max-height .35s ease, padding .25s ease, margin-bottom .25s ease;
}
.sz-filter-panel.is-open {
  max-height: 800px;
  padding: 24px;
  margin-bottom: 32px;
}
.sz-filter-panel__grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 20px 24px;
}
.sz-filter-panel__group h4 {
  font-family: 'Rules', sans-serif; font-size: 10px; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase; line-height: 1;
  color: rgba(255,255,255,0.55); margin: 0 0 12px;
}
.sz-filter-panel__group .checks {
  display: flex; flex-direction: column; gap: 8px;
}
.sz-filter-panel__group label {
  display: flex; align-items: center; gap: 10px;
  font-size: 14px; color: #fff; cursor: pointer;
}
.sz-filter-panel__group input[type="checkbox"] { accent-color: var(--sz-accent); }
.sz-filter-panel__group select {
  width: 100%; height: 38px; padding: 0 12px;
  border-radius: 6px;
  background: rgba(11,12,15,0.6); color: #fff;
  border: 1px solid rgba(184,186,193,0.20);
  font: inherit; font-size: 14px; line-height: 38px;
  outline: none;
}
.sz-filter-panel__group select:focus { border-color: var(--sz-accent); }
.sz-filter-panel__actions {
  display: flex; gap: 12px; justify-content: flex-end;
  margin-top: 20px; padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.sz-filter-panel__actions a {
  font-size: 13px; color: rgba(255,255,255,0.65);
  text-decoration: none; align-self: center;
}
.sz-filter-panel__actions a:hover { color: var(--sz-accent); }

/* Two-column body: main + sidebar */
.sz-network-body {
  display: grid; grid-template-columns: minmax(0, 1fr) 320px;
  gap: 48px; align-items: start;
}
@media (max-width: 900px) {
  .sz-network-body { grid-template-columns: 1fr; }
}

/* Type strip — section per group type */
.sz-type-strip { margin-bottom: 44px; }
.sz-type-strip__head {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 16px; gap: 16px;
}
.sz-type-strip__title {
  font-family: 'Inter Tight', sans-serif; font-weight: 600;
  font-size: 1.4rem; margin: 0; padding: 0;
  letter-spacing: -0.01em;
}
.sz-type-strip__count {
  font-family: ui-monospace, monospace; font-size: 12px;
  color: rgba(255,255,255,0.4); margin-left: 8px; font-weight: 400;
}
.sz-type-strip__link {
  font-size: 13px; color: rgba(255,255,255,0.65);
  text-decoration: none; white-space: nowrap;
}
.sz-type-strip__link:hover { color: var(--sz-accent); }

/* Right sidebar panels (board activity etc.) */
.sz-side-panel {
  background: rgba(17,19,24,0.6);
  border: 1px solid rgba(184,186,193,0.16);
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
}
.sz-side-panel__head {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 14px; padding-bottom: 14px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.sz-side-panel__head h3 {
  font-family: 'Inter Tight', sans-serif; font-weight: 600;
  font-size: 1rem; margin: 0; padding: 0;
}
.sz-side-panel__head a {
  font-size: 12px; color: rgba(255,255,255,0.55);
  text-decoration: none;
}
.sz-side-panel__head a:hover { color: var(--sz-accent); }
.sz-side-panel__empty {
  font-size: 13px; color: rgba(255,255,255,0.5);
  margin: 0 0 14px; line-height: 1.5;
}
.sz-side-panel .board-list { gap: 6px; }
.sz-side-panel .board-item { padding: 10px 12px; }
.sz-side-panel .board-title { font-size: 13px; }
.sz-side-panel .board-meta  { font-size: 11px; }
.sz-side-panel .button { width: 100%; }


/* ============================================================
   20. LIVE page — event list + filter sidebar
   ============================================================ */

.sz-live-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) 300px;
  gap: 48px; align-items: start;
}
@media (max-width: 900px) {
  .sz-live-layout { grid-template-columns: 1fr; }
}

.sz-live-events {
  /* a slightly more emphasised event list than the homepage version */
}
.sz-live-events .event-list-item {
  padding: 16px 18px; margin: 0 -18px;
  border-radius: 10px;
}
.sz-live-events .event-row-main { gap: 16px; }
.sz-live-events .event-date-badge { min-width: 56px; padding: 8px 6px; }
.sz-live-events .event-date-badge .day { font-size: 24px; }
.sz-live-events .event-title { font-size: 16px; }
.sz-live-events .event-meta  { font-size: 13px; }

.sz-live-filters {
  position: sticky; top: 84px;
  background: rgba(17,19,24,0.6);
  border: 1px solid rgba(184,186,193,0.18);
  border-radius: 14px;
  padding: 22px 22px 16px;
}
.sz-live-filters__head {
  display: flex; align-items: baseline; justify-content: space-between;
  padding-bottom: 14px; margin-bottom: 16px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.sz-live-filters__head h3 {
  font-family: 'Inter Tight', sans-serif; font-weight: 600;
  font-size: 1.05rem; margin: 0; padding: 0;
}
.sz-live-filters__head a {
  font-size: 12px; color: rgba(255,255,255,0.55);
  text-decoration: none;
}
.sz-live-filter-group { margin-bottom: 18px; }
.sz-live-filter-group h4 {
  font-family: 'Rules', sans-serif; font-size: 10px; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase; line-height: 1;
  color: rgba(255,255,255,0.55); margin: 0 0 10px;
}
.sz-live-filter-group select,
.sz-live-filter-group input[type="text"] {
  width: 100%; height: 38px; padding: 0 12px;
  border-radius: 6px;
  background: rgba(11,12,15,0.6); color: #fff;
  border: 1px solid rgba(184,186,193,0.20);
  font: inherit; font-size: 14px; line-height: 38px;
  outline: none;
}
.sz-live-filter-group select:focus,
.sz-live-filter-group input:focus { border-color: var(--sz-accent); }
.sz-live-filter-group .checks { display: flex; flex-direction: column; gap: 8px; }
.sz-live-filter-group label {
  display: flex; align-items: center; gap: 10px;
  font-size: 13px; color: #fff; cursor: pointer;
}
.sz-live-filter-group input[type="checkbox"] { accent-color: var(--sz-accent); }
.sz-live-filter-default {
  margin-top: 4px; padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,0.06);
  font-size: 12px; color: rgba(255,255,255,0.55);
  line-height: 1.5;
}
.sz-live-filter-default a {
  color: var(--sz-accent); text-decoration: none;
}
.sz-live-filter-default a:hover { text-decoration: underline; }


/* Mobile fixes for network + live */
@media (max-width: 768px) {
  /* Full-height map hero on mobile (matches network.html). */
  .sz-network-map { height: 100vh; height: 100svh; }
  .sz-network-map__inner { padding: 40px 16px 20px; flex-direction: column; align-items: flex-start; }
  .sz-network-map__title { font-size: clamp(1.8rem, 7vw, 2.4rem); }

  .sz-search-bar { flex-wrap: wrap; gap: 8px; }
  .sz-search-bar input[type="search"] { flex: 1 1 100%; }
  .sz-search-bar__filter-btn { flex: 1; }
  .sz-search-bar__submit { flex: 1; }

  .sz-network-body, .sz-live-layout { gap: 28px; }
  .sz-live-filters { position: static; }

  .sz-type-strip { margin-bottom: 32px; }
  .sz-type-strip__title { font-size: 1.15rem; }
}


/* ============================================================
   21. DASHBOARD (user "backend") — profile header,
   two shell variants (sidebar rail + horizontal tabs),
   shared collection rows + pill filters + empty states.
   Namespaced .sz-dash-* / .sz-coll-* so it drops into the
   theme without touching anything else.
   ============================================================ */

/* ── 21.1 Profile header ─────────────────────────────────── */
/* Replaces the tall empty black band + half-peeking avatar with a
   compact, photo-backed identity strip that matches the site heroes. */
.sz-dash-header {
  position: relative;
  border-bottom: none;
  background:
    linear-gradient(180deg, rgba(11,12,15,0.62) 0%, rgba(11,12,15,0.94) 100%),
    url('../images/hero-default.jpg') center/cover no-repeat;
}
.sz-dash-header__inner {
  max-width: var(--container-max-width); margin: 0 auto;
  padding: 40px var(--space-32) 28px;
  display: flex; align-items: flex-end; gap: 22px;
}
.sz-dash-avatar {
  flex-shrink: 0;
  position: relative;
  width: 116px; height: 116px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 34px;
  color: #0a0a0a;
  background: linear-gradient(135deg, #d8dde2 0%, #eef1f3 100%);
  box-shadow: 0 0 0 4px rgba(11,12,15,0.9), 0 8px 24px rgba(0,0,0,0.45);
}
.sz-dash-identity { flex: 1; min-width: 0; }
.sz-dash-identity__name {
  font-family: 'Inter Tight', sans-serif; font-weight: 700;
  font-size: clamp(1.7rem, 2.4vw, 2.2rem); line-height: 1.05;
  letter-spacing: -0.01em; margin: 0; color: #fff;
}
.sz-dash-identity__handle {
  font-size: 14px; color: rgba(255,255,255,0.6); margin: 6px 0 0;
}
/* Subtle Public/Private reminder pill in the group hero. */
.sz-dash-privacy {
  display: inline-flex; align-items: center; gap: 5px; margin: 10px 0 0;
  padding: 3px 10px; border-radius: 999px;
  font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase;
  background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.16);
  color: rgba(255,255,255,0.72);
}
.sz-dash-privacy .sz-ic { width: 12px; height: 12px; }
.sz-dash-privacy--private { color: rgba(255,255,255,0.85); }
/* In the identity badges row the privacy pill sits inline with the chips (no own row),
   so the info column next to the avatar never grows taller than the avatar. */
.sz-profile-badges .sz-dash-privacy { margin: 0; }
/* Group hero: handle, Private/Public label and chips sit right-aligned above the
   actions, so the area next to the avatar stays clean (just the name + stats). */
.sz-dash-header__actions--stacked { flex-direction: column; align-items: flex-end; gap: 12px; }
.sz-dash-header__meta { display: flex; flex-direction: column; align-items: flex-end; gap: 7px; text-align: right; }
.sz-dash-header__meta .sz-dash-identity__handle { margin: 0; }
.sz-dash-header__meta .sz-profile-badges { justify-content: flex-end; }
.sz-dash-header__btns { display: flex; gap: 10px; }
.sz-dash-identity__stats {
  display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 12px 0 0;
  font-size: 13px; color: rgba(255,255,255,0.7);
}
.sz-dash-identity__stats b { color: #fff; font-weight: 600; }
.sz-dash-identity__stats .dot { width: 3px; height: 3px; border-radius: 50%; background: rgba(255,255,255,0.3); align-self: center; }
.sz-dash-header__actions { display: flex; gap: 10px; flex-shrink: 0; align-self: flex-end; }

@media (max-width: 768px) {
  .sz-dash-header__inner { padding: 28px 16px 20px; flex-wrap: wrap; gap: 16px; }
  .sz-dash-avatar { width: 84px; height: 84px; font-size: 30px; }
  .sz-dash-header__actions { width: 100%; }
  .sz-dash-header__actions .button { flex: 1; }
}

/* ── 21.2 Shell A — sidebar rail ─────────────────────────── */
.sz-dash-layout {
  display: grid; grid-template-columns: 232px minmax(0, 1fr);
  gap: 48px; align-items: start;
}
@media (max-width: 900px) { .sz-dash-layout { grid-template-columns: 1fr; gap: 24px; } }

.sz-dash-nav {
  position: sticky; top: 84px;
  display: flex; flex-direction: column; gap: 2px;
}
.sz-dash-nav__label {
  font-family: 'Rules', sans-serif; font-size: 10px; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(255,255,255,0.4);
  margin: 18px 0 8px; padding: 0 12px;
}
.sz-dash-nav__label:first-child { margin-top: 0; }
.sz-dash-nav a {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 12px; border-radius: 8px;
  font-size: 14px; color: rgba(255,255,255,0.72);
  text-decoration: none; line-height: 1.2;
  border-left: 2px solid transparent;
  transition: background .15s ease, color .15s ease;
}
.sz-dash-nav a i, .sz-dash-nav a .sz-ic { width: 16px; text-align: center; font-size: 14px; color: rgba(255,255,255,0.45); transition: color .15s ease; }
.sz-dash-nav a:hover { background: rgba(255,255,255,0.04); color: #fff; }
.sz-dash-nav a:hover i, .sz-dash-nav a:hover .sz-ic { color: rgba(255,255,255,0.8); }
.sz-dash-nav a.is-active {
  background: rgba(168,213,186,0.1);
  color: #fff; font-weight: 600;
  border-left-color: var(--sz-accent);
}
.sz-dash-nav a.is-active i, .sz-dash-nav a.is-active .sz-ic { color: var(--sz-accent); }
.sz-dash-nav-toggle { display: none; }

@media (max-width: 900px) {
  .sz-dash-nav { position: static; flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .sz-dash-nav__label { display: none; }
  .sz-dash-nav a { border-left: none; border: 1px solid rgba(255,255,255,0.1); padding: 8px 12px; }
  .sz-dash-nav a.is-active { border-color: rgba(168,213,186,0.4); }
}

/* ── 21.3 Shell B — horizontal tab bar ───────────────────── */
.sz-dash-tabs {
  display: flex; gap: 4px; align-items: stretch;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  margin-bottom: 36px;
  overflow-x: auto; scrollbar-width: none;
}
.sz-dash-tabs::-webkit-scrollbar { display: none; }
.sz-dash-tabs a {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 14px; white-space: nowrap;
  font-size: 14px; color: rgba(255,255,255,0.6);
  text-decoration: none; line-height: 1;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color .15s ease, border-color .15s ease;
}
.sz-dash-tabs a i { font-size: 13px; color: rgba(255,255,255,0.4); transition: color .15s ease; }
.sz-dash-tabs a:hover { color: #fff; }
.sz-dash-tabs a:hover i { color: rgba(255,255,255,0.75); }
.sz-dash-tabs a.is-active {
  color: #fff; font-weight: 600;
  border-bottom-color: var(--sz-accent);
}
.sz-dash-tabs a.is-active i { color: var(--sz-accent); }

/* ── 21.4 Page head inside the content area ──────────────── */
.sz-dash-pagehead {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap; margin-bottom: 22px;
}
.sz-dash-pagehead h1, .sz-dash-pagehead h2 {
  font-family: 'Inter Tight', sans-serif; font-weight: 700;
  font-size: clamp(1.6rem, 2.2vw, 2rem); line-height: 1.1;
  letter-spacing: -0.01em; margin: 0; color: #fff;
}
.sz-dash-pagehead p {
  font-size: 14px; color: rgba(255,255,255,0.6); margin: 6px 0 0;
}

/* ── 21.4 Onboarding intro (first-login getting started) ── */
.sz-intro {
  position: relative; border-radius: 18px; overflow: hidden;
  border: 1px solid rgba(168,213,186,0.22);
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(168,213,186,0.12), transparent 55%),
    linear-gradient(180deg, rgba(168,213,186,0.06), rgba(255,255,255,0.012));
  padding: 30px 32px 26px; margin: 0 0 26px;
}
.sz-intro[hidden] { display: none; }
.sz-intro__close {
  position: absolute; top: 16px; right: 16px; width: 34px; height: 34px;
  display: grid; place-items: center; border-radius: 9px; border: 0;
  background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.6); cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.sz-intro__close:hover { background: rgba(255,255,255,0.12); color: #fff; }
.sz-intro__close .sz-ic { width: 16px; height: 16px; }

.sz-intro__head { max-width: 680px; margin: 0 0 22px; }
.sz-intro__eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: 'Rules', sans-serif; font-size: 11px; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--sz-accent); margin: 0 0 12px;
}
.sz-intro__eyebrow .sz-ic { width: 14px; height: 14px; }
.sz-intro__title {
  font-family: 'Inter Tight', sans-serif; font-weight: 700; letter-spacing: -0.01em;
  font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.08; color: #fff; margin: 0 0 10px;
}
.sz-intro__lede { font-size: 15px; line-height: 1.6; color: rgba(255,255,255,0.66); margin: 0; text-wrap: pretty; }
.sz-intro__lede em { color: #fff; font-style: normal; font-weight: 600; }

.sz-intro__path {
  border: 1px solid rgba(255,255,255,0.1); border-radius: 14px;
  background: rgba(10,11,14,0.4); padding: 20px 22px 22px; margin: 0 0 22px;
}
.sz-intro__path-label {
  display: flex; align-items: center; gap: 9px; margin: 0 0 18px;
  font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.05rem; color: #fff;
}
.sz-intro__path-label .sz-ic { width: 18px; height: 18px; color: var(--sz-accent); }

.sz-steps { list-style: none; margin: 0; padding: 0; display: flex; align-items: flex-start; gap: 40px; }
.sz-step { flex: 1; display: block; }
.sz-step__head { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 12px; }
.sz-step__num {
  width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center; background: var(--sz-accent); color: #0a0a0a;
  font-weight: 700; font-size: 13px; font-variant-numeric: tabular-nums; flex: none;
}
.sz-step__ic {
  width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center;
  background: rgba(168,213,186,0.12); flex: none;
}
.sz-step__ic .sz-ic { width: 18px; height: 18px; color: var(--sz-accent); }
.sz-step__t { display: block; font-weight: 600; font-size: 15px; color: #fff; margin: 0 0 5px; }
.sz-step__d { display: block; font-size: 13px; line-height: 1.55; color: rgba(255,255,255,0.55); }
@media (max-width: 640px) {
  .sz-steps { flex-direction: column; gap: 22px; }
}

.sz-intro__cta { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin: 18px 0 0; }
.sz-intro__cta .button { margin: 0; }
.sz-intro__cta-link { font-size: 13.5px; color: rgba(255,255,255,0.7); text-decoration: none; }
.sz-intro__cta-link:hover { color: var(--sz-accent); }

.sz-intro__explore-label {
  font-family: 'Rules', sans-serif; font-size: 11px; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.45); margin: 0 0 12px;
}
.sz-intro__tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
@media (max-width: 900px) { .sz-intro__tiles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .sz-intro__tiles { grid-template-columns: 1fr; } }
.sz-introtile {
  display: block; padding: 16px; border-radius: 12px; text-decoration: none;
  background: rgba(255,255,255,0.025); border: 1px solid rgba(255,255,255,0.08);
  transition: border-color .15s ease, background .15s ease, transform .15s ease;
}
.sz-introtile:hover { border-color: rgba(168,213,186,0.4); background: rgba(168,213,186,0.06); transform: translateY(-2px); }
.sz-introtile__ic { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: rgba(168,213,186,0.12); margin: 0 0 12px; }
.sz-introtile__ic .sz-ic { width: 19px; height: 19px; color: var(--sz-accent); }
.sz-introtile__t { display: block; font-weight: 600; font-size: 14.5px; color: #fff; margin: 0 0 5px; }
.sz-introtile__d { display: block; font-size: 12.5px; line-height: 1.5; color: rgba(255,255,255,0.55); }

.sz-intro__foot { font-size: 12.5px; color: rgba(255,255,255,0.4); margin: 20px 0 0; }
.sz-intro__foot b { color: rgba(255,255,255,0.7); font-weight: 600; }
.sz-intro__explore { margin: 0; }

.sz-intro-toggle {
  display: inline-flex; align-items: center; gap: 8px;
  height: 34px; padding: 0 14px; border-radius: 999px;
  font: inherit; font-size: 13px; font-weight: 500; cursor: pointer;
  background: transparent; border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.6);
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.sz-intro-toggle .sz-ic { width: 14px; height: 14px; }
.sz-intro-toggle:hover { color: #fff; border-color: rgba(255,255,255,0.24); }
.sz-intro-toggle[aria-pressed="true"] {
  background: rgba(168,213,186,0.12); border-color: rgba(168,213,186,0.4); color: var(--sz-accent);
}
.sz-intro-toggle[aria-pressed="true"] .sz-ic { color: var(--sz-accent); }

/* ── 21.4 Getting started panel (.sz-start) — synced from the design system.
   Replaces the older long-form .sz-intro walkthrough. Rendered on the dashboard
   only while the user belongs to no group; the .sz-intro-toggle above reopens
   it after dismissal (setupOnboarding() in js/simuze-2026.js). ── */
.sz-start{position:relative;border-radius:18px;padding:34px 36px;margin:0 0 26px;border:1px solid rgba(138,180,248,0.4);background:linear-gradient(135deg,rgba(63,111,168,0.28),rgba(138,180,248,0.12));}
.sz-start[hidden]{display:none;}
.sz-start__close{position:absolute;top:16px;right:16px;width:34px;height:34px;display:grid;place-items:center;border-radius:9px;border:0;cursor:pointer;background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.6);transition:background .15s ease,color .15s ease;}
.sz-start__close:hover{background:rgba(255,255,255,0.16);color:#fff;}
.sz-start__close .sz-ic{width:16px;height:16px;}
.sz-start__q{font-family:'Inter Tight',sans-serif;font-weight:700;letter-spacing:-0.01em;font-size:clamp(1.5rem,2.6vw,2.15rem);line-height:1.12;color:#fff;margin:0 0 8px;max-width:22ch;}
.sz-start__sub{font-size:15px;line-height:1.6;color:rgba(255,255,255,0.78);margin:0 0 22px;max-width:52ch;}
.sz-start__cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.sz-start__cta .button{margin:0;font-size:1rem;padding:15px 26px;}
.sz-start__alt{font-size:13.5px;color:rgba(255,255,255,0.6);margin:20px 0 0;}
.sz-start__alt a{color:#8ab4f8;text-decoration:underline;text-underline-offset:2px;}
.sz-start__alt a:hover{color:#fff;}
.sz-start{container-type:inline-size;}
.sz-start__grid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(0,190px);gap:34px;align-items:center;}
.sz-start__copy{min-width:0;}
.sz-start__demo{display:flex;flex-direction:column;gap:14px;}
.sz-start__sleeve{position:relative;aspect-ratio:1;border-radius:10px;background:linear-gradient(150deg,#1b2740,#0e1524 60%,#101a2c);border:1px solid rgba(255,255,255,0.12);box-shadow:0 12px 28px rgba(0,0,0,0.38);display:grid;place-items:center;overflow:hidden;}
.sz-start__sleeve-art{display:flex;align-items:flex-end;gap:7px;height:34%;margin-bottom:14%;}
.sz-start__sleeve-art span{width:12px;border-radius:3px;background:var(--sz-accent);opacity:0.9;}
.sz-start__sleeve-cap{position:absolute;left:0;right:0;bottom:0;padding:22px 14px 12px;background:linear-gradient(180deg,transparent,rgba(6,9,16,0.9));font-size:11.5px;line-height:1.35;color:rgba(255,255,255,0.55);}
.sz-start__sleeve-cap b{display:block;font-family:'Inter Tight',sans-serif;font-weight:600;font-size:13px;color:#fff;margin-bottom:2px;}
.sz-start__sleeve-art span:nth-child(1){height:52%;}
.sz-start__sleeve-art span:nth-child(2){height:100%;background:#8ab4f8;}
.sz-start__sleeve-art span:nth-child(3){height:72%;background:#d4a656;}
@container (max-width:760px){.sz-start__grid{grid-template-columns:1fr;gap:26px;}.sz-start__demo{display:none;}}
@media(max-width:820px){.sz-start__grid{grid-template-columns:1fr;gap:26px;}.sz-start__demo{display:none;}}
@media(max-width:560px){.sz-start{padding:28px 22px;}.sz-start__cta .button{width:100%;justify-content:center;}}

/* ── 21.5 Pill filter tabs (My playlists / Favorites / …) ── */
.sz-pill-tabs {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-bottom: 22px;
}
.sz-pill {
  display: inline-flex; align-items: center; gap: 7px;
  height: 38px; padding: 0 16px; border-radius: 999px;
  font-size: 14px; color: rgba(255,255,255,0.72);
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.sz-pill:hover { background: rgba(255,255,255,0.08); color: #fff; border-color: rgba(255,255,255,0.22); }
.sz-pill .sz-pill__count { color: rgba(255,255,255,0.45); font-variant-numeric: tabular-nums; }
.sz-pill.is-active {
  background: var(--sz-accent); color: #0a0a0a; font-weight: 600;
  border-color: var(--sz-accent);
}
.sz-pill.is-active .sz-pill__count { color: rgba(10,10,10,0.6); }

/* ── 21.6 Collection list — ONE shared row pattern for
   playlists, shows, friends, groups, purchases, etc. ─────── */
.sz-coll-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.sz-coll-row {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px; border-radius: 10px;
  background: var(--color-bg-elev-2, #161A22);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.06);
  transition: background .15s ease, box-shadow .15s ease;
}
.sz-coll-row:hover { background: var(--color-bg-elev-3, #1E242F); box-shadow: 0 0 0 1px rgba(255,255,255,0.1); }
.sz-coll-row__grip {
  flex-shrink: 0; color: rgba(255,255,255,0.28); cursor: grab;
  font-size: 14px; width: 16px; text-align: center;
}
.sz-coll-row__grip:active { cursor: grabbing; }
.sz-coll-row__thumb {
  flex-shrink: 0; width: 46px; height: 46px; border-radius: 8px;
  background:
    var(--sz-mark) center/cover no-repeat,
    linear-gradient(135deg, #1a1f2e 0%, #2a3042 100%);
  overflow: hidden; background-size: cover;
}
.sz-coll-row__thumb--round { border-radius: 50%; }
.sz-coll-row__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* A show list's own thumbnail: the show's image, else the headliner's or venue's avatar,
   else this same tile stays plain and the Simuze mark in its background shows through. */
.sz-shows__thumb, .event-thumb {
  flex-shrink: 0; width: 46px; height: 46px; border-radius: 8px;
  background:
    var(--sz-mark) center/cover no-repeat,
    linear-gradient(135deg, #1a1f2e 0%, #2a3042 100%);
  overflow: hidden; background-size: cover;
}
.sz-shows__thumb img, .event-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sz-coll-row__main { flex: 1; min-width: 0; }
.sz-coll-row__title {
  font-size: 15px; font-weight: 600; color: #fff; margin: 0;
  line-height: 1.3; text-decoration: none;
  display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
a.sz-coll-row__title:hover { color: var(--sz-accent); }
.sz-coll-row__desc {
  font-size: 13px; color: rgba(255,255,255,0.55); margin: 3px 0 0;
  line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.sz-coll-row__meta {
  flex-shrink: 0; font-size: 13px; color: rgba(255,255,255,0.5);
  white-space: nowrap; font-variant-numeric: tabular-nums;
}
.sz-coll-row__badge {
  flex-shrink: 0;
  font-family: 'Rules', sans-serif; font-size: 10px; font-weight: 500;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 4px 9px; border-radius: 999px;
  background: rgba(168,213,186,0.12); color: var(--sz-accent);
  white-space: nowrap;
}
.sz-coll-row__badge--muted { background: rgba(255,255,255,0.07); color: rgba(255,255,255,0.62); }
.sz-coll-row__actions { display: flex; gap: 6px; flex-shrink: 0; }

/* release status pills (music management overview) */
.sz-rstatus {
  flex-shrink: 0;
  font-family: 'Rules', 'Inter Tight', sans-serif; font-size: 10px; font-weight: 500;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 4px 10px; border-radius: 999px; white-space: nowrap;
}
.sz-rstatus--published { background: rgba(168,213,186,0.14); color: var(--sz-accent); }
.sz-rstatus--progress  { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.6); }
.sz-rstatus--scheduled { background: rgba(138,180,248,0.14); color: #8ab4f8; }
.sz-rstatus--review    { background: rgba(227,179,65,0.14); color: #e3b341; }
.sz-rstatus--trashed   { background: rgba(194,107,107,0.14); color: #e29494; }
.sz-rstatus--removed   { background: rgba(194,107,107,0.14); color: #e29494; }

/* verified mark — subtle, shown to logged-in users only */
.sz-verified {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 600; color: var(--sz-accent);
  background: rgba(168,213,186,0.12); border: 1px solid rgba(168,213,186,0.28);
  padding: 3px 10px; border-radius: 999px; white-space: nowrap;
}
.sz-verified .sz-ic { width: 13px; height: 13px; }
.sz-verified-line { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 16px; font-size: 12.5px; color: rgba(255,255,255,0.5); }

/* subtle report affordance (logged-in only) */
.sz-report-link {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12.5px; color: rgba(255,255,255,0.4); text-decoration: none;
}
.sz-report-link:hover { color: #e29494; }
.sz-report-link .sz-ic { width: 13px; height: 13px; }

/* verified content: shield replaces the report flag */
.sz-icon-btn--verified { color: var(--sz-accent); }
.sz-icon-btn--verified:hover { color: var(--sz-accent); background: rgba(168,213,186,0.16); }
.sz-verified[data-report] { cursor: pointer; }
.sz-verified[data-report]:hover { background: rgba(168,213,186,0.2); border-color: rgba(168,213,186,0.45); }

/* ── AI disclosure label ──────────────────────────────
   Deliberately quiet: neutral greys, no accent colour, no icon.
   It states a fact about the upload; it is not a warning. */
.sz-ai {
  display: inline-flex; align-items: center; gap: 4px; vertical-align: middle;
  font-family: 'Rules', sans-serif; font-size: 9px; line-height: 1;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(255,255,255,0.48); background: transparent;
  border: 1px solid rgba(255,255,255,0.18); border-radius: 4px;
  padding: 3px 5px 2px; white-space: nowrap; cursor: help; position: relative;
  flex: none; align-self: center; width: auto;
}
.sz-ai[aria-hidden="true"] { cursor: default; }
.sz-ai:hover { color: rgba(255,255,255,0.72); border-color: rgba(255,255,255,0.32); }
.sz-ai--assisted { letter-spacing: 0.08em; }
.sz-ai__tip {
  position: absolute; bottom: calc(100% + 8px); left: 0; z-index: 3000;
  width: max-content; max-width: min(240px, 62vw); padding: 8px 10px;
  font-family: 'Inter Tight', sans-serif; font-size: 11.5px; line-height: 1.45;
  letter-spacing: 0; text-transform: none; text-align: left;
  color: rgba(255,255,255,0.82); background: #14171d;
  border: 1px solid rgba(255,255,255,0.14); border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.55);
  opacity: 0; visibility: hidden; transform: translateY(3px);
  transition: opacity .14s ease, transform .14s ease, visibility .14s;
  pointer-events: none;
}
.sz-ai:hover .sz-ai__tip, .sz-ai:focus-visible .sz-ai__tip { opacity: 1; visibility: visible; transform: none; }
@media (max-width: 640px) { .sz-ai__tip { left: auto; right: 0; } }
/* one airy footnote row under a hero: licence, AI disclosure, report */
.sz-hero-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin: 0 0 26px; font-size: 12.5px; color: rgba(255,255,255,0.45); }
.sz-hero-foot__i { display: inline-flex; align-items: center; gap: 8px; }
.sz-hero-foot__i a { color: rgba(255,255,255,0.6); text-decoration: underline; text-underline-offset: 2px; }
.sz-hero-foot__i a:hover { color: #fff; }
/* one quiet line in a release/profile meta block */
.sz-ai-note { display: flex; align-items: center; gap: 9px; font-size: 12.5px; color: rgba(255,255,255,0.45); margin: 0 0 14px; flex-wrap: wrap; }
.sz-ai-note a { color: rgba(255,255,255,0.6); text-decoration: underline; text-underline-offset: 2px; }
.sz-ai-note a:hover { color: #fff; }
/* filter chip state for "hide AI" style toggles */
.sz-pltrack .sz-ai, .sz-trackline .sz-ai, .sz-coll-row .sz-ai, .album-title .sz-ai { margin-left: 7px; }

/* ── report flow ──────────────────────────────────────
   Report is never a primary action: text-sized, low-contrast,
   only warms on hover. Reasons live in a plain radio list. */
.sz-report-link[hidden] { display: none; }
button.sz-report-link { background: none; border: 0; font: inherit; font-size: 12.5px; cursor: pointer; padding: 0; }
.sz-reasons { display: flex; flex-direction: column; gap: 2px; margin: 4px 0 18px; }
.sz-reason { display: flex; gap: 12px; align-items: flex-start; padding: 11px 12px; border-radius: 10px; border: 1px solid transparent; cursor: pointer; }
.sz-reason:hover { background: rgba(255,255,255,0.04); }
.sz-reason input { margin: 2px 0 0; width: 17px; height: 17px; flex: none; accent-color: var(--sz-accent); }
.sz-reason:has(input:checked) { background: rgba(255,255,255,0.05); border-color: rgba(255,255,255,0.14); }
.sz-reason__t { font-size: 14px; color: #fff; display: block; }
.sz-reason__d { font-size: 12.5px; color: rgba(255,255,255,0.5); display: block; margin-top: 3px; line-height: 1.45; }
.sz-rp-target { display: flex; align-items: center; gap: 11px; padding: 11px 13px; margin: 0 0 20px; border-radius: 10px; background: rgba(255,255,255,0.035); border: 1px solid rgba(255,255,255,0.09); }
.sz-rp-target__av { width: 36px; height: 36px; border-radius: 8px; flex: none; background: rgba(255,255,255,0.09); display: grid; place-items: center; font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 13px; color: rgba(255,255,255,0.75); }
.sz-rp-target__av--round { border-radius: 50%; }
.sz-rp-target__n { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 14px; color: #fff; }
.sz-rp-target__k { font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.42); margin-top: 2px; }
.sz-rp-verified { font-size: 12.5px; line-height: 1.55; color: rgba(255,255,255,0.62); background: rgba(168,213,186,0.08); border: 1px solid rgba(168,213,186,0.22); border-radius: 10px; padding: 11px 13px; margin: 0 0 4px; }
.sz-rp-steps { display: flex; align-items: center; gap: 7px; margin: 0 0 4px; }
.sz-rp-steps span { width: 22px; height: 3px; border-radius: 2px; background: rgba(255,255,255,0.14); }
.sz-rp-steps span.is-on { background: var(--sz-accent); }
.sz-rp-note { font-size: 12.5px; color: rgba(255,255,255,0.45); line-height: 1.55; margin: 14px 0 0; }
.sz-rp-done { text-align: center; padding: 6px 0 0; }
.sz-rp-done__ic { width: 46px; height: 46px; margin: 0 auto 16px; border-radius: 50%; display: grid; place-items: center; background: rgba(168,213,186,0.14); color: var(--sz-accent); }
.sz-rp-done__ic svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.sz-rp-ref { font-family: 'Rules', sans-serif; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin: 12px 0 0; }
.sz-modal__foot { display: flex; justify-content: flex-end; gap: 10px; margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,0.08); }
.sz-modal__foot .button { width: auto; margin: 0; }
/* The mockup used inline styles for these three; classes per the no-inline rule. */
.sz-rp-target__body { min-width: 0; }
.sz-label__opt { color: rgba(255,255,255,0.4); font-weight: 400; }
.sz-rp-done__p { font-size: 14px; color: rgba(255,255,255,0.72); line-height: 1.6; margin: 0 auto; max-width: 340px; }
/* mockup uses margin-left:6px inline on the verified badge in the hero sub line */
.sz-pl-hero__sub .sz-verified { margin-left: 6px; }

/* grouped fieldset for the upload wizard details step */
.sz-fieldset {
  border: 1px solid rgba(255,255,255,0.08); border-radius: 14px;
  padding: 22px; margin: 0 0 16px; background: rgba(255,255,255,0.02);
}
.sz-fieldset__legend {
  font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 15px;
  color: #fff; margin: 0 0 16px; display: flex; align-items: center; gap: 9px;
}
.sz-fieldset__legend .sz-ic { color: var(--sz-accent); width: 16px; height: 16px; }

/* list empty state */
.sz-list-empty {
  text-align: center; padding: 56px 20px; color: rgba(255,255,255,0.5);
  font-size: 14px; border: 1px dashed rgba(255,255,255,0.1); border-radius: 14px;
}

/* compact review summary card (wizard final step) */
.sz-review { display: flex; gap: 18px; align-items: flex-start; padding: 20px; border: 1px solid rgba(255,255,255,0.1); border-radius: 14px; background: rgba(255,255,255,0.02); margin-bottom: 16px; }
.sz-review__art { width: 96px; height: 96px; border-radius: 10px; flex-shrink: 0; background: linear-gradient(135deg,#1A1F2E,#2A3042); }
.sz-review__title { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.3rem; color: #fff; margin: 0 0 4px; letter-spacing: -0.01em; }
.sz-review__sub { font-size: 14px; color: rgba(255,255,255,0.6); margin: 0 0 14px; }
.sz-review__facts { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px 24px; }
.sz-review__fact { font-size: 13.5px; color: rgba(255,255,255,0.8); display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid rgba(255,255,255,0.06); padding-bottom: 6px; }
.sz-review__fact b { color: #fff; font-weight: 600; }
@media (max-width: 600px) { .sz-review__facts { grid-template-columns: 1fr; } .sz-review { flex-direction: column; } }

/* small ghost icon button used in rows + cards */
.sz-icon-btn {
  width: 34px; height: 34px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 7px;
  background: transparent;
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.6) !important;
  cursor: pointer; text-decoration: none;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.sz-icon-btn i { font-size: 13px; }
.sz-icon-btn .sz-ic { width: 15px; height: 15px; }
.sz-icon-btn:hover { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.26); color: #fff !important; }
.sz-icon-btn.is-on, .sz-icon-btn.is-on i { color: var(--sz-accent) !important; border-color: rgba(168,213,186,0.4); }
.sz-icon-btn--danger:hover { background: rgba(194,107,107,0.12); border-color: rgba(194,107,107,0.5); color: #e29494 !important; }

@media (max-width: 600px) {
  .sz-coll-row { flex-wrap: wrap; }
  .sz-coll-row__meta { order: 5; }
  .sz-coll-row__actions { margin-left: auto; }
}

/* ── 21.7 Empty state ────────────────────────────────────── */
.sz-empty {
  border: 1px dashed rgba(255,255,255,0.14);
  border-radius: 12px;
  padding: 48px 32px; text-align: center;
}
.sz-empty i { font-size: 26px; color: rgba(255,255,255,0.3); margin-bottom: 14px; display: block; }
.sz-empty h3 {
  font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 1.1rem;
  margin: 0 0 6px; color: #fff;
}
.sz-empty p { font-size: 14px; color: rgba(255,255,255,0.6); margin: 0 0 18px; line-height: 1.5; }

/* ── 21.9 Inline SVG icon system (deterministic, no webfont) ─
   Pages embed a hidden <svg> sprite once; icons are referenced
   via <svg class="sz-ic"><use href="#i-..."/></svg>. Stroke is
   currentColor so they inherit text/link colour like FA did. */
.sz-ic {
  width: 1.1em; height: 1.1em; flex: none; aspect-ratio: 1 / 1;
  display: inline-block; vertical-align: -0.16em;
  fill: none; stroke: currentColor; stroke-width: 1.7;
  stroke-linecap: round; stroke-linejoin: round;
  pointer-events: none;
}
.sz-ic--fill { fill: currentColor; stroke: none; }
.sz-ic--spin { animation: sz-ic-spin 0.8s linear infinite; }
@keyframes sz-ic-spin { to { transform: rotate(360deg); } }
.button .sz-ic, .btn .sz-ic { width: 1em; height: 1em; }

/* ── 21.10 Logged-in header avatar (top-right) ───────────── */
.sz-user-avatar {
  width: 38px; height: 38px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 14px;
  color: #fff; text-decoration: none;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.18);
  transition: border-color .15s ease, background .15s ease;
}
.sz-user-avatar:hover { border-color: var(--sz-accent); background: rgba(168,213,186,0.1); color: #fff; }


/* ============================================================
   22. FORMS — subtle navy tint, mint focus (Add a show,
   Create group, Account / Payment settings)
   ============================================================ */
.sz-form { max-width: 760px; }
.sz-field { margin-bottom: 24px; }
.sz-field > label, .sz-label {
  display: block; font-size: 14px; font-weight: 600; color: #fff; margin: 0 0 9px;
}
.sz-field__req { color: #C26B6B; margin-left: 3px; }
.sz-field__hint { font-size: 12.5px; color: rgba(255,255,255,0.5); margin: 8px 0 0; line-height: 1.45; }
.sz-field__hint--warn { color: #e9b44c; }
.sz-input, .sz-select, .sz-textarea {
  width: 100%; font: inherit; font-size: 15px; color: #fff;
  background: rgba(18,26,44,0.55);
  border: 1px solid rgba(120,140,180,0.22);
  border-radius: 8px; padding: 12px 14px; outline: none;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.sz-textarea { resize: vertical; min-height: 120px; line-height: 1.55; }
.sz-input::placeholder, .sz-textarea::placeholder { color: rgba(255,255,255,0.34); }
.sz-input:focus, .sz-select:focus, .sz-textarea:focus {
  border-color: var(--sz-accent);
  background: rgba(18,26,44,0.82);
  box-shadow: 0 0 0 3px rgba(168,213,186,0.14);
}
.sz-select {
  appearance: none; -webkit-appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-opacity='0.55' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
  padding-right: 42px;
}
.sz-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
@media (max-width: 640px) { .sz-field-grid { grid-template-columns: 1fr; } }

/* radio / segmented choices */
.sz-radio-row { display: flex; flex-wrap: wrap; gap: 10px; }
.sz-radio {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 11px 16px; border-radius: 8px;
  border: 1px solid rgba(120,140,180,0.22);
  background: rgba(18,26,44,0.4);
  font-size: 14px; color: rgba(255,255,255,0.85);
  cursor: pointer; transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.sz-radio:hover { border-color: rgba(168,213,186,0.4); }
.sz-radio input { accent-color: var(--sz-accent); margin: 0; }
.sz-radio:has(input:checked) { border-color: var(--sz-accent); background: rgba(168,213,186,0.1); color: #fff; }

/* number stepper sizing comes from the browser; just style the box (covered by .sz-input) */
.sz-input[type="number"] { -moz-appearance: textfield; }

/* upload dropzone (header image) */
.sz-dropzone {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%; padding: 16px; border-radius: 8px;
  background: var(--sz-accent); color: #0a0a0a;
  font-weight: 600; font-size: 15px; cursor: pointer;
  border: none; text-align: center;
}
.sz-dropzone:hover { background: var(--sz-accent-hover); }

/* simple rich-text editor */
.sz-rte {
  border: 1px solid rgba(120,140,180,0.22); border-radius: 8px;
  background: rgba(18,26,44,0.55); overflow: hidden;
}
.sz-rte__bar { display: flex; gap: 5px; padding: 8px; border-bottom: 1px solid rgba(120,140,180,0.18); }
.sz-rte__btn {
  height: 30px; min-width: 32px; padding: 0 9px;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  border: 1px solid rgba(255,255,255,0.12); border-radius: 6px;
  background: rgba(255,255,255,0.03); color: rgba(255,255,255,0.72);
  cursor: pointer; font-size: 13px;
}
.sz-rte__btn:hover { background: rgba(255,255,255,0.08); color: #fff; }
.sz-rte__area { min-height: 130px; padding: 13px 14px; color: #fff; font-size: 15px; line-height: 1.6; outline: none; }
.sz-rte__area:empty::before { content: attr(data-placeholder); color: rgba(255,255,255,0.32); }

/* two-column form + "How it works" rail */
.sz-form-layout { display: grid; grid-template-columns: minmax(0,1fr) 290px; gap: 56px; align-items: start; }
@media (max-width: 980px) { .sz-form-layout { grid-template-columns: 1fr; gap: 32px; } }
.sz-form-aside { position: sticky; top: 84px; }
@media (max-width: 980px) { .sz-form-aside { position: static; } }

.sz-howto h3 {
  font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 1rem;
  margin: 0 0 16px; color: #fff;
}
.sz-howto ol { list-style: none; counter-reset: step; padding: 0; margin: 0; }
.sz-howto li {
  counter-increment: step;
  display: flex; gap: 13px; align-items: flex-start;
  padding: 9px 0; font-size: 14px; color: rgba(255,255,255,0.62); line-height: 1.4;
}
.sz-howto li::before {
  content: counter(step);
  flex: none; width: 24px; height: 24px; border-radius: 50%;
  display: grid; place-items: center;
  font-family: ui-monospace, monospace; font-size: 12px; font-weight: 600;
  color: var(--sz-accent);
  background: rgba(168,213,186,0.1);
  border: 1px solid rgba(168,213,186,0.28);
}

/* sticky-ish submit bar */
.sz-form-actions {
  display: flex; justify-content: flex-end; align-items: center; gap: 14px;
  padding: 18px 20px; margin-top: 8px;
  border-radius: 12px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
}
.sz-form-actions .sz-form-actions__note { margin-right: auto; font-size: 13px; color: rgba(255,255,255,0.5); }


/* ============================================================
   23. SINGLE SHOW — hero band, lineup, info panel, comments
   ============================================================ */
.sz-show-hero {
  position: relative; overflow: hidden;
  border-radius: 14px; margin: 28px 0 40px;
  background:
    linear-gradient(180deg, rgba(11,12,15,0.5) 0%, rgba(11,12,15,0.92) 100%),
    url('../images/hero-default.jpg') center/cover no-repeat;
  border: 1px solid rgba(255,255,255,0.06);
}
.sz-show-hero__inner { padding: 36px 40px 40px; }
@media (max-width: 768px) { .sz-show-hero__inner { padding: 24px 20px 28px; } }
.sz-show-hero__crumb {
  font-family: 'Rules', sans-serif; font-size: 11px; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: rgba(255,255,255,0.7); margin: 0 0 14px;
  display: flex; gap: 10px; align-items: center;
}
.sz-show-hero__crumb .badge { background: rgba(168,213,186,0.16); }
.sz-show-hero__title {
  font-family: 'Inter Tight', sans-serif; font-weight: 700;
  font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1.05;
  letter-spacing: -0.02em; margin: 0 0 16px; color: #fff;
}
.sz-show-hero__facts {
  display: flex; flex-wrap: wrap; gap: 8px 22px;
  font-size: 15px; color: rgba(255,255,255,0.85);
}
.sz-show-hero__facts span { display: inline-flex; align-items: center; gap: 8px; }
.sz-show-hero__facts .sz-ic { color: var(--sz-accent); }
.sz-show-hero__org { font-size: 14px; color: rgba(255,255,255,0.6); margin: 14px 0 0; }

.sz-show-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 48px; align-items: start; }
@media (max-width: 900px) { .sz-show-layout { grid-template-columns: 1fr; gap: 28px; } }

.sz-show-section { margin-bottom: 40px; }
.sz-show-section h2 {
  font-family: 'Inter Tight', sans-serif; font-weight: 700;
  font-size: 1.6rem; letter-spacing: -0.01em; margin: 0 0 18px; color: #fff;
}
.sz-show-emptyline { font-size: 15px; color: rgba(255,255,255,0.6); line-height: 1.6; margin: 0; }
.sz-show-emptyline a { color: var(--sz-accent); text-decoration: none; }
.sz-show-emptyline a:hover { text-decoration: underline; }

/* online show — ticket-gated livestream watch surface */
.sz-online-watch__player { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #000; border: 1px solid rgba(255,255,255,0.12); }
.sz-online-watch__player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sz-online-watch__state { display: flex; align-items: center; gap: 12px; padding: 22px; border: 1px solid rgba(255,255,255,0.12); border-radius: 12px; background: rgba(255,255,255,0.03); color: rgba(255,255,255,0.8); font-size: 15px; line-height: 1.5; }
.sz-online-watch__state p { margin: 0; }
.sz-online-watch__state strong { color: #fff; }
.sz-online-watch__state .sz-ic { width: 20px; height: 20px; flex: none; color: rgba(255,255,255,0.5); }
.sz-online-watch__state--live { border-color: rgba(255,90,90,0.4); }
.sz-live-dot { width: 10px; height: 10px; border-radius: 50%; background: #ff5a5a; flex: none; box-shadow: 0 0 0 0 rgba(255,90,90,0.6); animation: szLivePulse 1.6s infinite; }
@keyframes szLivePulse { 0% { box-shadow: 0 0 0 0 rgba(255,90,90,0.5); } 70% { box-shadow: 0 0 0 8px rgba(255,90,90,0); } 100% { box-shadow: 0 0 0 0 rgba(255,90,90,0); } }
.sz-show-buy__note { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: rgba(255,255,255,0.6); line-height: 1.45; margin: 0 0 14px; }
.sz-show-buy__note .sz-ic { width: 15px; height: 15px; flex: none; margin-top: 1px; color: rgba(255,255,255,0.45); }

/* info side panel */
.sz-show-panel {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(184,186,193,0.2);
  border-radius: 12px; padding: 22px;
}
/* The whole show sidebar (facts panel + ticket box + actions) sticks as one
   unit, so the buy block no longer scrolls over the pinned facts panel. */
.sz-show-side { position: sticky; top: 84px; }
.sz-show-panel__going {
  display: flex; align-items: center; gap: 12px;
  padding-bottom: 18px; margin-bottom: 18px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.sz-show-panel__going b { font-family: 'Inter Tight', sans-serif; font-size: 1.5rem; color: #fff; }
.sz-show-meta-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 9px 0; font-size: 14px;
}
.sz-show-meta-row .k {
  font-family: 'Rules', sans-serif; font-size: 11px; font-weight: 500;
  letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.5);
}
.sz-show-meta-row .v { color: #fff; }
.sz-show-meta-row .v.link { color: var(--sz-accent); }

/* comments */
.sz-comment-box {
  width: 100%; text-align: left; display: flex; align-items: center; gap: 10px;
  padding: 13px 16px; border-radius: 8px;
  background: rgba(18,26,44,0.4); border: 1px solid rgba(120,140,180,0.22);
  color: rgba(255,255,255,0.55); font: inherit; font-size: 14px; cursor: text;
}
.sz-comment-box:hover { border-color: rgba(168,213,186,0.35); }


/* ============================================================
   24. GROUPS — card grid + group detail header
   ============================================================ */
.sz-group-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 18px;
}
.sz-group-card {
  display: block; text-decoration: none; color: inherit;
  background: var(--color-bg-elev-1, #111318);
  border: 1px solid rgba(184,186,193,0.2);
  border-radius: 12px; overflow: hidden;
  transition: transform .2s ease, border-color .2s ease;
}
.sz-group-card:hover { transform: translateY(-2px); border-color: var(--sz-accent); }
.sz-group-card__media {
  aspect-ratio: 16/10;
  background:
    var(--sz-mark) center/cover no-repeat,
    linear-gradient(135deg, #1a1f2e 0%, #2a3042 100%);
  background-size: cover;
}
.sz-group-card__body { padding: 16px 18px 18px; }
.sz-group-card__type {
  font-family: 'Rules', sans-serif; font-size: 10px; font-weight: 500;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--sz-accent); margin: 0 0 6px;
}
.sz-group-card__name {
  font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 1.1rem;
  margin: 0 0 6px; color: #fff; line-height: 1.2;
}
.sz-group-card__meta { font-size: 13px; color: rgba(255,255,255,0.55); margin: 0; }


/* ============================================================
   25. MODAL (request a slot, etc.)
   ============================================================ */
.sz-modal-overlay {
  position: fixed; inset: 0; z-index: 2000;
  background: rgba(5,6,8,0.78);
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
}
.sz-modal-overlay[hidden] { display: none; }
.sz-modal {
  width: 100%; max-width: 520px;
  background: #14171d;
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(0,0,0,0.6);
  padding: 28px;
  position: relative;
  /* This component never had a height cap, so content taller than the viewport
     (the report flow's reason list + textarea + link field, the wide add-track
     form) overflowed both edges with flex centering and no way to reach the
     footer buttons. Capping to the overlay's own padding and scrolling inside
     the modal keeps it centered and reachable at any viewport height. */
  max-height: calc(100vh - 48px);
  overflow-y: auto;
}
@supports (height: 100dvh) { .sz-modal { max-height: calc(100dvh - 48px); } }
.sz-modal__close {
  position: absolute; top: 18px; right: 18px;
  width: 32px; height: 32px; display: grid; place-items: center;
  background: transparent; border: none; cursor: pointer;
  color: rgba(255,255,255,0.6); border-radius: 6px;
}
.sz-modal__close:hover { background: rgba(255,255,255,0.06); color: #fff; }
.sz-modal h2 {
  font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.4rem;
  margin: 0 0 6px; color: #fff;
}
.sz-modal__sub { font-size: 14px; color: var(--sz-accent); margin: 0 0 20px; }
.sz-modal__text { font-size: 14px; color: rgba(255,255,255,0.72); line-height: 1.6; margin: 10px 0 0; }
.sz-modal__text strong { color: #fff; font-weight: 600; }
.sz-modal--danger h2 { color: #e29494; }
.sz-modal .button { width: 100%; margin-top: 6px; }


/* ============================================================
   26. FULL-BLEED HEROES UNDER A TRANSPARENT HEADER
   The fixed header is 60px tall and .site-content pads 60px to
   clear it. These rules let hero bands bleed up BEHIND the
   header (image runs to the very top), give content enough top
   padding to clear the bar, and make the header transparent
   (solidifying on scroll via .sz-solid added by simuze-2026.js).
   ============================================================ */

/* transparent header on load (full hero image visible); solid on scroll */
.sz-music-pagehead .row { position: relative; z-index: 1; }
.site-header {
  background: transparent !important;
  box-shadow: none !important;
  transition: background .25s ease, box-shadow .25s ease;
}
.site-header.sz-solid {
  background: #0B0C0F !important;
  box-shadow: 0 1px 0 rgba(255,255,255,0.06) !important;
}

/* pull hero bands up behind the header */
.sz-dash-header,
.sz-music-hero,
.sz-map-hero,
.sz-show-hero--bleed {
  margin-top: calc(-1 * var(--header-height, 60px));
  margin-bottom: 0;
}

/* parallax: JS shifts the image layer slower than scroll (setupParallax) */
.sz-dash-header, .sz-music-hero, .sz-show-hero--bleed { background-position: center; background-size: cover; will-change: background-position; }

/* enough room for the image + clear the header bar */
.sz-dash-header { min-height: 360px; display: flex; align-items: flex-end; }
.sz-dash-header__inner { padding-top: calc(var(--header-height, 60px) + 76px); padding-bottom: 34px; width: 100%; }
.sz-music-hero { padding-top: calc(var(--header-height, 60px) + 48px) !important; padding-bottom: 40px !important; min-height: 300px; display: flex; align-items: flex-end; }

@media (max-width: 768px) {
  .sz-dash-header { min-height: 260px; }
  .sz-dash-header__inner { padding-top: calc(var(--header-height, 60px) + 28px); }
  .sz-music-hero { padding-top: calc(var(--header-height, 60px) + 28px) !important; min-height: 220px; }
}

/* ── 26.1 Live OpenStreetMap hero (city / province / country) ── */
.sz-map-hero {
  position: relative; overflow: hidden;
  height: 400px; background: #0a0a0a;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
/* When the live map can't render (a location with no coordinates yet), the map JS adds
   this so the hero isn't a bare 400px black void — a subtle on-brand gradient with the
   title still on top, reading as an intentional header rather than a broken box. */
.sz-map-hero--nomap { background: linear-gradient(135deg, #10161d 0%, #0a0c10 55%, #0d1a14 100%); }
/* !important: MapLibre adds its own .maplibregl-map class straight onto this same
   container, and maplibre-gl.css (loaded per-template, after this stylesheet) sets
   that class to position:relative at equal (single-class) specificity — without
   !important the later rule wins the cascade and the absolutely-positioned map
   collapses to 0 height. */
.sz-map-hero__map { position: absolute !important; inset: 0 !important; z-index: 1; }
.sz-map-hero .maplibregl-map { background: #0a0a0a; font-family: 'IBM Plex Sans', sans-serif; }
.sz-map-hero .maplibregl-ctrl-attrib { background: rgba(11,12,15,0.6); color: rgba(255,255,255,0.45); font-size: 10px; }
.sz-map-hero .maplibregl-ctrl-attrib a { color: var(--sz-accent); }
.sz-map-hero__overlay {
  position: absolute; inset: 0; z-index: 3;
  display: flex; align-items: flex-end; pointer-events: none;
  background: linear-gradient(90deg, rgba(11,12,15,0.92) 0%, rgba(11,12,15,0.5) 38%, rgba(11,12,15,0) 70%),
              linear-gradient(180deg, rgba(11,12,15,0.55) 0%, rgba(11,12,15,0) 30%, rgba(11,12,15,0) 60%, rgba(11,12,15,0.4) 100%);
}
.sz-map-hero__inner {
  max-width: var(--container-max-width); margin: 0 auto; width: 100%;
  padding: calc(var(--header-height, 60px) + 44px) var(--space-32) 36px;
  pointer-events: auto;
}
.sz-map-hero__eyebrow {
  font-family: 'Rules', sans-serif; font-size: 11px; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--sz-accent); margin: 0 0 10px;
}
.sz-map-hero__title {
  font-family: 'Inter Tight', sans-serif; font-weight: 700;
  font-size: clamp(2.4rem, 4vw, 3.6rem); line-height: 1.0;
  letter-spacing: -0.02em; margin: 0; color: #fff;
}
.sz-map-hero__sub { font-size: 15px; color: rgba(255,255,255,0.75); margin: 14px 0 0; }
.sz-map-hero__sub a { color: var(--sz-accent); text-decoration: none; }
.sz-map-hero__sub a:hover { text-decoration: underline; }
/* Place hero action row — currently just the Favorite button (a place can't be
   joined or followed, see simuze_place_favorite_button()). */
.sz-map-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 0; }
.sz-map-hero__flag {
  position: absolute; right: var(--space-32); bottom: 28px; z-index: 4;
  width: 56px; height: auto; display: block; border-radius: 4px;
  box-shadow: 0 3px 12px rgba(0,0,0,0.55); border: 1px solid rgba(255,255,255,0.25);
}
/* Province/city single pages show the parent country's flag at half size + 50% opacity. */
.sz-map-hero__flag--sub { transform: scale(0.5); transform-origin: right bottom; opacity: 0.5; }
@media (max-width: 768px) {
  .sz-map-hero { height: 300px; }
  .sz-map-hero__flag { right: 16px; bottom: 18px; width: 44px; }
  .sz-map-hero__inner { padding: calc(var(--header-height, 60px) + 24px) 16px 24px; }
}

/* ── 26.2 Compact upcoming-shows list (matches current design) ── */
.sz-shows { list-style: none; margin: 0; padding: 0; }
.sz-shows li {
  display: flex; align-items: center; gap: 14px;
  padding: 13px 12px; margin: 0 -12px;
  border-radius: 10px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  transition: background .15s ease;
}
.sz-shows li:hover { background: rgba(255,255,255,0.035); }
.sz-shows li:last-child { border-bottom: none; }
.sz-shows__main {
  display: flex; align-items: center; gap: 16px;
  flex: 1; min-width: 0; text-decoration: none; color: inherit;
}
.sz-shows__date {
  flex: none; width: 46px; height: 46px; border-radius: 8px;
  background: rgba(255,255,255,0.05);
  display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1;
}
.sz-shows__date .d { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 18px; color: #fff; }
.sz-shows__date .m { font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: 0.08em; color: rgba(255,255,255,0.55); margin-top: 3px; }
.sz-shows__info { min-width: 0; }
.sz-shows__title { font-size: 16px; font-weight: 600; color: #fff; margin: 0; line-height: 1.25; }
.sz-shows__meta { font-size: 13px; color: rgba(255,255,255,0.5); margin: 3px 0 0; }
.sz-shows__tickets {
  flex: none; margin-left: auto;
  height: 32px; padding: 0 16px; display: inline-flex; align-items: center;
  border-radius: 999px; font-size: 13px;
  color: rgba(255,255,255,0.85) !important; text-decoration: none;
  background: rgba(255,255,255,0.05); border: 1px solid rgba(184,186,193,0.22);
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.sz-shows__tickets:hover { background: var(--sz-accent); color: #0a0a0a !important; border-color: var(--sz-accent); }
/* Right-side actions on a slot-request row (accept/decline/cancel — functional, not in the static mockup). */
.sz-shows__reqactions { flex: none; margin-left: auto; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.sz-shows__date--dim { opacity: 0.7; }

/* count chip after a section title (e.g. "Upcoming shows  5") */
.sz-count { font-family: 'Inter Tight', sans-serif; font-weight: 500; font-size: 0.62em; color: rgba(255,255,255,0.4); margin-left: 8px; vertical-align: middle; }
/* Very small, subtle Single/Album label (featured release + album cards). */
.sz-rel-type { font-family: 'Rules', sans-serif; font-size: 9px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.4); }
.album-info .sz-rel-type { display: block; margin: 0 0 2px; }

/* small location/map thumbnails for province & city grids */
.sz-loc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 18px; }
.sz-loc-tile { text-decoration: none; color: inherit; display: block; }
.sz-loc-tile__map {
  aspect-ratio: 1/1; border-radius: 10px; overflow: hidden;
  background: #14171d; position: relative;
  border: 1px solid rgba(255,255,255,0.06);
  transition: transform .2s ease, border-color .2s ease;
}
.sz-loc-tile:hover .sz-loc-tile__map { transform: translateY(-2px); border-color: rgba(168,213,186,0.4); }
.sz-loc-tile__name { font-size: 14px; color: #fff; margin: 10px 0 0; text-align: center; }

/* full-bleed variant of the single-show hero (sits under the header) */
.sz-show-hero--bleed { border-radius: 0; border: none; margin: calc(-1 * var(--header-height, 60px)) 0 40px; min-height: 300px; }
.sz-show-hero--bleed .sz-show-hero__inner {
  max-width: var(--container-max-width); margin: 0 auto; width: 100%;
  padding: calc(var(--header-height, 60px) + 44px) var(--space-32) 40px;
}
/* stacked sidebar panels (city/group detail) are not individually sticky */
.sz-side-stack { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 84px; align-self: start; }
.sz-side-stack .sz-show-panel { position: static; }
@media (max-width: 900px) { .sz-side-stack { position: static; } }
.sz-show-panel h3 {
  font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.05rem;
  color: #fff; margin: 0 0 14px; padding-bottom: 14px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.sz-show-panel h3.no-rule { border-bottom: none; padding-bottom: 0; margin-bottom: 10px; }

/* grouped form sections + optional collapsible (Add a show, simplified) */
.sz-form-section__title {
  font-family: 'Rules', sans-serif; font-size: 11px; font-weight: 500;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--sz-accent);
  margin: 30px 0 16px; padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.sz-form > .sz-form-section__title:first-child { margin-top: 0; }
details.sz-more { margin: 8px 0 0; border-top: 1px solid rgba(255,255,255,0.08); padding-top: 8px; }
details.sz-more > summary {
  cursor: pointer; list-style: none;
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 600; color: var(--sz-accent); padding: 12px 0;
}
details.sz-more > summary::-webkit-details-marker { display: none; }
details.sz-more > summary .sz-ic { transition: transform .2s ease; }
details.sz-more[open] > summary { margin-bottom: 12px; }
details.sz-more[open] > summary .sz-ic { transform: rotate(180deg); }

/* Group edit (Profile & settings) — ge-* component set, matches group-edit.html */
.ge-form { max-width: 760px; }
.ge-section { border-top: 1px solid rgba(255,255,255,0.08); margin-top: 34px; padding-top: 26px; }
.ge-section:first-of-type { border-top: none; margin-top: 0; padding-top: 0; }
.ge-section__title { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.2rem; color: #fff; margin: 0 0 4px; }
.ge-section__hint { font-size: 13px; color: rgba(255,255,255,0.5); margin: 0 0 18px; }

.ge-link-row { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
.ge-link-row .sz-select { width: 150px; flex: none; }
.ge-link-row .sz-input { flex: 1; }
.ge-link-row__del { flex: none; }

.ge-tag-input { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 10px; border: 1px solid rgba(255,255,255,0.12); border-radius: 10px; background: rgba(255,255,255,0.04); }
.ge-tag { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px; background: rgba(168,213,186,0.12); border: 1px solid rgba(168,213,186,0.28); border-radius: 999px; font-size: 13px; color: var(--sz-accent); }
.ge-tag .x { cursor: pointer; opacity: 0.7; }
.ge-tag .x:hover { opacity: 1; }
.ge-tag-input input { flex: 1; min-width: 120px; border: none; background: transparent; color: #fff; font-size: 14px; outline: none; padding: 4px; }

.ge-toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,0.07); }
.ge-toggle-row:last-child { border-bottom: none; }
.ge-toggle-row__label { font-size: 14px; color: #fff; }
.ge-toggle-row__sub { font-size: 12.5px; color: rgba(255,255,255,0.5); margin-top: 2px; }
.ge-switch { position: relative; width: 42px; height: 23px; border-radius: 999px; background: rgba(255,255,255,0.16); cursor: pointer; flex: none; transition: background .15s; border: none; padding: 0; }
.ge-switch::after { content: ''; position: absolute; top: 2px; left: 2px; width: 19px; height: 19px; border-radius: 50%; background: #fff; transition: transform .15s; }
.ge-switch.is-on { background: var(--sz-accent); }
.ge-switch.is-on::after { transform: translateX(19px); }
.ge-switch:disabled { cursor: default; opacity: 0.6; }

.ge-danger { border: 1px solid rgba(194,107,107,0.3); border-radius: 14px; padding: 20px; background: rgba(194,107,107,0.05); }
.ge-danger h3 { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 15px; color: #e29494; margin: 0 0 4px; }
.ge-danger p { font-size: 13px; color: rgba(255,255,255,0.55); margin: 0 0 14px; }
.ge-btn-danger { background: rgba(194,107,107,0.12) !important; border: 1px solid rgba(194,107,107,0.4) !important; color: #e29494 !important; }
.ge-btn-danger:hover { background: rgba(194,107,107,0.2) !important; color: #f0b0b0 !important; }

.is-disabled { opacity: 0.55; pointer-events: none; }

/* ============================================================
   27. SUBTLE IMAGE UPLOAD + CROPPER
   Replaces the loud full-width mint dropzone. Small outline
   controls + a live preview; choosing a file opens a crop modal
   (drag to reposition, slider to zoom). Wired by simuze-2026.js.
   ============================================================ */
.sz-upload { display: flex; align-items: center; gap: 16px; }
.sz-upload--header { display: block; }
.sz-upload__preview {
  flex: none; background: #14171d;
  border: 1px solid rgba(255,255,255,0.12);
  background-size: cover; background-position: center;
  position: relative; overflow: hidden;
}
.sz-upload--avatar .sz-upload__preview { width: 72px; height: 72px; border-radius: 50%; }
.sz-upload--square .sz-upload__preview { width: 96px; height: 96px; border-radius: 12px; }
.sz-upload--header .sz-upload__preview { width: 100%; aspect-ratio: 4 / 1; border-radius: 10px; margin-bottom: 12px; }
.sz-upload__preview.is-empty::after {
  content: ""; position: absolute; inset: 0;
  background: var(--sz-mark) center/cover no-repeat;
}
.sz-upload__actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.sz-upload__btn {
  display: inline-flex; align-items: center; gap: 7px;
  height: 34px; padding: 0 14px; border-radius: 7px;
  background: transparent; border: 1px solid rgba(255,255,255,0.18);
  color: rgba(255,255,255,0.85) !important; font: inherit; font-size: 13px;
  cursor: pointer; text-decoration: none;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.sz-upload__btn:hover { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.3); color: #fff !important; }
.sz-upload__btn--ghost { border-color: transparent; color: rgba(255,255,255,0.5) !important; }
.sz-upload__btn--ghost:hover { color: #e29494 !important; background: rgba(194,107,107,0.1); }
.sz-upload__hint { font-size: 12.5px; color: rgba(255,255,255,0.5); margin: 8px 0 0; }

/* cropper modal */
.sz-crop { width: 100%; max-width: 560px; }
.sz-crop__stage {
  position: relative; width: 100%; margin: 4px 0 0;
  background: #0a0a0a; border-radius: 10px; overflow: hidden;
  touch-action: none; cursor: grab; user-select: none;
}
.sz-crop__stage.is-dragging { cursor: grabbing; }
.sz-crop__stage--circle { border-radius: 50%; }
.sz-crop__img { position: absolute; top: 0; left: 0; transform-origin: 0 0; pointer-events: none; max-width: none; display: block; }
.sz-crop__ring { position: absolute; inset: 0; pointer-events: none; box-shadow: 0 0 0 1px rgba(255,255,255,0.25) inset; border-radius: inherit; }
.sz-crop__zoom { display: flex; align-items: center; gap: 12px; margin: 18px 0 4px; color: rgba(255,255,255,0.6); }
.sz-crop__zoom input[type=range] { flex: 1; accent-color: var(--sz-accent); }
.sz-crop__actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 18px; }


/* ============================================================
   28. DASHBOARD WIDGETS (bento home)
   ============================================================ */
.sz-bento { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 900px) { .sz-bento { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .sz-bento { grid-template-columns: 1fr; } }
.sz-widget {
  background: var(--color-bg-elev-1, #111318);
  border: 1px solid rgba(184,186,193,0.18);
  border-radius: 14px; padding: 20px;
  display: flex; flex-direction: column; min-height: 168px;
  text-decoration: none; color: inherit;
  transition: transform .2s ease, border-color .2s ease;
}
a.sz-widget:hover { transform: translateY(-2px); border-color: rgba(168,213,186,0.3); }
.sz-widget--accent { background: linear-gradient(140deg, rgba(168,213,186,0.18), rgba(168,213,186,0.03)); border-color: rgba(168,213,186,0.28); }
.sz-widget--wide { grid-column: span 2; }
@media (max-width: 600px) { .sz-widget--wide { grid-column: span 1; } }
.sz-widget__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.sz-widget__title { display: flex; align-items: center; gap: 9px; font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 1rem; color: #fff; margin: 0; }
.sz-widget__title .sz-ic { color: var(--sz-accent); }
.sz-widget__link { font-size: 13px; color: rgba(255,255,255,0.55); text-decoration: none; white-space: nowrap; }
.sz-widget__link:hover { color: var(--sz-accent); }
.sz-widget__big { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 44px; line-height: 1; color: #fff; }
.sz-widget__sub { font-size: 13px; color: rgba(255,255,255,0.6); margin-top: 8px; }
.sz-widget__list { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; }
.sz-widget__row { display: flex; align-items: center; gap: 11px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,0.06); text-decoration: none; color: inherit; font-size: 14px; }
.sz-widget__row:last-child { border-bottom: none; }
.sz-widget__rowtitle { color: #fff; flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-widget__row:hover .sz-widget__rowtitle { color: var(--sz-accent); }
.sz-widget__rowmeta { font-size: 12px; color: rgba(255,255,255,0.45); white-space: nowrap; }
.sz-widget__thumb { width: 32px; height: 32px; border-radius: 7px; flex: none; background: linear-gradient(135deg, #1a1f2e, #2a3042); display: flex; align-items: center; justify-content: center; font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 12px; color: #fff; overflow: hidden; }
.sz-widget__thumb--round { border-radius: 50%; }
.sz-widget__avatars { display: flex; align-items: center; }
.sz-widget__avatars span { width: 36px; height: 36px; border-radius: 50%; border: 2px solid var(--color-bg-elev-1, #111318); margin-left: -9px; display: flex; align-items: center; justify-content: center; font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 12px; color: #fff; }
.sz-widget__avatars span:first-child { margin-left: 0; }
.sz-widget__foot { margin-top: auto; padding-top: 14px; }


/* ============================================================
   29. ACTIVITY — update composer + feed (users & groups)
   ============================================================ */
.sz-composer { background: var(--color-bg-elev-1, #111318); border: 1px solid rgba(184,186,193,0.18); border-radius: 14px; padding: 18px; margin-bottom: 26px; }
.sz-composer__top { display: flex; gap: 12px; align-items: center; margin-bottom: 14px; }
.sz-composer__as { display: flex; align-items: center; gap: 10px; }
.sz-composer__avatar { width: 40px; height: 40px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center; font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 15px; color: #0a0a0a; background: linear-gradient(135deg, #d8dde2, #eef1f3); }
.sz-composer__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.sz-feed { display: flex; flex-direction: column; gap: 14px; }
.sz-update { background: var(--color-bg-elev-1, #111318); border: 1px solid rgba(184,186,193,0.16); border-radius: 12px; padding: 18px; }
.sz-update__head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.sz-update__avatar { width: 40px; height: 40px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center; font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 14px; color: #fff; overflow: hidden; }
.sz-update__avatar--group { border-radius: 9px; }
.sz-update__author { font-weight: 600; color: #fff; font-size: 15px; }
.sz-update__author .sz-update__tag { font-weight: 400; color: var(--sz-accent); font-size: 12px; margin-left: 6px; }
.sz-update__meta { font-size: 12px; color: rgba(255,255,255,0.5); margin-top: 2px; }
.sz-update__body { font-size: 14px; color: rgba(255,255,255,0.86); line-height: 1.6; }
.sz-update__body p { margin: 0 0 8px; }
.sz-update__actions { display: flex; gap: 20px; margin-top: 14px; font-size: 13px; }
.sz-update__actions a { color: rgba(255,255,255,0.55); text-decoration: none; display: inline-flex; align-items: center; gap: 7px; }
.sz-update__actions a:hover { color: var(--sz-accent); }


/* ============================================================
   30. MESSAGES — inbox (two-pane desktop, single-pane mobile)
   ============================================================ */
.sz-mbx { display: grid; grid-template-columns: minmax(0,336px) minmax(0,1fr); background: var(--color-bg-elev-1,#111318); border: 1px solid rgba(184,186,193,0.18); border-radius: 16px; overflow: hidden; height: clamp(520px, calc(100vh - 260px), 780px); }
.sz-mbx__list { display: flex; flex-direction: column; min-width: 0; border-right: 1px solid rgba(255,255,255,0.08); }
.sz-mbx__listhead { padding: 14px 14px 10px; border-bottom: 1px solid rgba(255,255,255,0.07); display: flex; flex-direction: column; gap: 10px; }
.sz-mbx__search { position: relative; display: flex; align-items: center; }
.sz-mbx__search .sz-ic { position: absolute; left: 13px; width: 16px; height: 16px; color: rgba(255,255,255,0.4); pointer-events: none; }
.sz-mbx__search input { width: 100%; height: 40px; padding: 0 14px 0 38px; border-radius: 10px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.09); color: #fff; font: inherit; font-size: 14px; outline: none; }
.sz-mbx__search input::placeholder { color: rgba(255,255,255,0.4); }
.sz-mbx__search input:focus { border-color: var(--sz-accent); background: rgba(255,255,255,0.07); }
.sz-mbx__filters { display: flex; flex-wrap: wrap; gap: 6px; }
.sz-mbx__filter { flex: none; border: 1px solid rgba(255,255,255,0.12); background: transparent; color: rgba(255,255,255,0.62); font: inherit; font-size: 12.5px; height: 30px; padding: 0 12px; border-radius: 999px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.sz-mbx__filter:hover { color: #fff; border-color: rgba(255,255,255,0.28); }
.sz-mbx__filter.is-active { background: var(--sz-accent); border-color: var(--sz-accent); color: #0a0a0a; font-weight: 600; }
.sz-mbx__filter b { font-weight: 600; font-size: 11px; padding: 1px 6px; border-radius: 999px; background: rgba(255,255,255,0.12); }
.sz-mbx__filter.is-active b { background: rgba(0,0,0,0.16); }
.sz-mbx__rows { flex: 1; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.sz-mbx__daylabel { font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.35); padding: 14px 16px 6px; }
.sz-mbx__empty-list { display: none; padding: 32px 20px; text-align: center; font-size: 13.5px; color: rgba(255,255,255,0.5); }
.sz-mbx__rows.is-empty .sz-mbx__empty-list { display: block; }
.sz-mbx__rows.is-empty .sz-mbx__daylabel { display: none; }

.sz-conv { width: 100%; display: grid; grid-template-columns: 44px minmax(0,1fr); gap: 12px; align-items: start; padding: 13px 16px; background: none; border: 0; border-bottom: 1px solid rgba(255,255,255,0.05); text-align: left; font: inherit; color: inherit; cursor: pointer; position: relative; }
.sz-conv:hover { background: rgba(255,255,255,0.035); }
.sz-conv.is-active { background: rgba(168,213,186,0.09); box-shadow: inset 2px 0 0 var(--sz-accent); }
.sz-conv[hidden] { display: none; }
.sz-conv__avatar { width: 44px; height: 44px; border-radius: 50%; overflow: hidden; display: flex; align-items: center; justify-content: center; font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 15px; color: #fff; background: rgba(255,255,255,0.08); }
.sz-conv__avatar img { width: 100%; height: 100%; object-fit: cover; }
.sz-conv__avatar--group { border-radius: 12px; }
.sz-conv__avatar--sys { border-radius: 12px; background: rgba(168,213,186,0.16); color: var(--sz-accent); }
.sz-conv__avatar--sys .sz-ic { width: 20px; height: 20px; }
.sz-conv__top { display: flex; align-items: baseline; gap: 8px; }
.sz-conv__name { font-family: 'Inter Tight', sans-serif; font-weight: 500; font-size: 14.5px; color: rgba(255,255,255,0.82); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-conv__time { margin-left: auto; flex: none; font-size: 11.5px; color: rgba(255,255,255,0.38); }
.sz-conv__snippet { font-size: 13px; line-height: 1.45; color: rgba(255,255,255,0.5); margin: 3px 0 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sz-conv__tags { display: flex; align-items: center; gap: 6px; margin-top: 7px; }
.sz-conv__tag { font-family: 'Rules', sans-serif; font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; padding: 3px 7px; border-radius: 999px; background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.62); }
.sz-conv__tag--accent { background: rgba(168,213,186,0.16); color: var(--sz-accent); }
.sz-conv__tag--warn { background: rgba(240,180,110,0.16); color: #f0b46e; }
.sz-conv.is-unread .sz-conv__name { font-weight: 600; color: #fff; }
.sz-conv.is-unread .sz-conv__snippet { color: rgba(255,255,255,0.75); }
.sz-conv.is-unread .sz-conv__time { color: var(--sz-accent); }
.sz-conv__dot { position: absolute; right: 14px; bottom: 15px; width: 8px; height: 8px; border-radius: 50%; background: var(--sz-accent); }
.sz-conv:not(.is-unread) .sz-conv__dot { display: none; }

.sz-mbx__thread { display: flex; flex-direction: column; min-width: 0; background: var(--color-bg,#0b0d11); }
.sz-mbx__thead { display: flex; align-items: center; gap: 12px; padding: 12px 18px; border-bottom: 1px solid rgba(255,255,255,0.08); background: var(--color-bg-elev-1,#111318); }
.sz-mbx__back { display: none; flex: none; width: 40px; height: 40px; margin-left: -8px; border: 0; background: none; color: #fff; border-radius: 50%; cursor: pointer; align-items: center; justify-content: center; }
.sz-mbx__back:hover { background: rgba(255,255,255,0.07); }
.sz-mbx__thead .sz-conv__avatar { width: 38px; height: 38px; font-size: 13px; }
.sz-mbx__tmeta { min-width: 0; }
.sz-mbx__tname { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 15px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-mbx__tsub { font-size: 12px; color: rgba(255,255,255,0.45); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-mbx__tactions { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.sz-mbx__iconbtn { width: 38px; height: 38px; border: 0; background: none; border-radius: 10px; color: rgba(255,255,255,0.6); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.sz-mbx__iconbtn:hover { background: rgba(255,255,255,0.07); color: #fff; }
.sz-mbx__msgs { flex: 1; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 20px 18px 8px; }
.sz-mbx__pane { display: none; flex-direction: column; gap: 8px; }
.sz-mbx__pane.is-active { display: flex; }
.sz-mbx__sep { align-self: center; font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.35); margin: 10px 0 4px; }
.sz-msg { max-width: min(74%, 640px); padding: 10px 14px; border-radius: 16px; font-size: 14px; line-height: 1.55; }
.sz-msg--in { align-self: flex-start; background: var(--color-bg-elev-2,#161A22); color: rgba(255,255,255,0.9); border-bottom-left-radius: 5px; }
.sz-msg--out { align-self: flex-end; background: var(--sz-accent); color: #0a0a0a; border-bottom-right-radius: 5px; }
.sz-msg__time { display: block; font-size: 11px; margin-top: 5px; opacity: 0.55; }
.sz-msg--in + .sz-msg--in, .sz-msg--out + .sz-msg--out { margin-top: -4px; }
.sz-msg-card { align-self: stretch; background: rgba(168,213,186,0.07); border: 1px solid rgba(168,213,186,0.26); border-radius: 14px; padding: 16px; margin: 4px 0; }
.sz-msg-card h4 { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 15px; color: #fff; margin: 0 0 6px; }
.sz-msg-card p { font-size: 13px; color: rgba(255,255,255,0.68); margin: 0 0 14px; line-height: 1.55; }
.sz-msg-card__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.sz-mbx__composer { display: flex; align-items: flex-end; gap: 8px; padding: 12px 14px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(255,255,255,0.08); background: var(--color-bg-elev-1,#111318); }
.sz-mbx__composer textarea { flex: 1; min-height: 42px; max-height: 132px; resize: none; padding: 11px 16px; border-radius: 21px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.11); color: #fff; font: inherit; font-size: 14px; line-height: 1.4; outline: none; }
.sz-mbx__composer textarea::placeholder { color: rgba(255,255,255,0.4); }
.sz-mbx__composer textarea:focus { border-color: var(--sz-accent); }
.sz-mbx__send { flex: none; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--sz-accent); color: #0a0a0a; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.sz-mbx__send:hover { filter: brightness(1.08); }
.sz-mbx__none { flex: 1; display: none; flex-direction: column; align-items: center; justify-content: center; gap: 8px; text-align: center; padding: 40px; }
.sz-mbx__none .sz-ic { width: 26px; height: 26px; color: rgba(255,255,255,0.3); }
.sz-mbx__none h3 { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 17px; color: #fff; margin: 4px 0 0; }
.sz-mbx__none p { font-size: 13.5px; color: rgba(255,255,255,0.5); margin: 0; max-width: 320px; }

.sz-mbx-shell { container-type: inline-size; }
/* Single-pane on every width: the list is the inbox, a row opens the thread over it. */
.sz-mbx { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.sz-mbx__list, .sz-mbx__thread { grid-area: 1 / 1; min-height: 0; }
.sz-mbx__list { border-right: 0; }
.sz-mbx__thread { transform: translateX(100%); opacity: 0; pointer-events: none; transition: transform .26s ease, opacity .18s ease; }
.sz-mbx[data-view="thread"] .sz-mbx__thread { transform: none; opacity: 1; pointer-events: auto; }
.sz-mbx[data-view="thread"] .sz-mbx__list { visibility: hidden; }
.sz-mbx__back { display: inline-flex; }
@media (prefers-reduced-motion: reduce) { .sz-mbx__thread { transition: none; } }
/* full content width — the inbox always fills its panel */
.sz-mbx__listhead, .sz-mbx__rows, .sz-mbx__msgs, .sz-mbx__composer { width: 100%; }
@container (max-width: 720px) {
  .sz-mbx { height: calc(100vh - 132px); border-radius: 14px; }
  .sz-mbx__thead { padding: 10px 14px; }
  .sz-mbx__msgs { padding: 16px 14px 6px; }
  .sz-msg { max-width: 86%; }
}
@media (max-width: 900px) { .sz-mbx { height: calc(100vh - 132px); border-radius: 14px; } }
@media (max-width: 900px) { @supports (height: 100dvh) { .sz-mbx { height: calc(100dvh - 132px); } } }

/* community.css sets `#new-message-compose { display: flex }`, an id rule that
   outranks .sz-hidden, so the compose panel showed on load. Id + class wins it
   back without reaching for !important. */
#new-message-compose.sz-hidden { display: none; }

/* The canonical .sz-mbx__none is display:none; this turns it on for the
   genuinely-empty inbox without an inline style. */
.sz-mbx__none--on { display: flex; }

/* Not in the design system, but message-level delete exists today and dropping
   it would lose a real capability. Sits inside the bubble, revealed on hover. */
.sz-msg { position: relative; }
.sz-msg__del { position: absolute; top: 4px; right: 4px; width: 24px; height: 24px; border: 0; border-radius: 50%; background: rgba(0,0,0,0.35); color: inherit; opacity: 0; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: opacity .15s ease; }
.sz-msg__del .sz-ic { width: 13px; height: 13px; }
.sz-msg:hover .sz-msg__del, .sz-msg__del:focus-visible { opacity: .75; }
.sz-msg__del:hover { opacity: 1; background: rgba(226,148,148,0.4); }
.sz-msg--out .sz-msg__del { background: rgba(0,0,0,0.18); }

/* Retained from the previous inbox: the board reply form (template_board.php)
   still uses these. Everything else in the old .sz-inbox component is gone. */
.sz-thread__reply { padding: 14px 16px; border-top: 1px solid rgba(255,255,255,0.08); display: flex; gap: 10px; align-items: center; }
.sz-thread__reply input { flex: 1; height: 42px; padding: 0 16px; border-radius: 999px; background: rgba(18,26,44,0.55); border: 1px solid rgba(120,140,180,0.22); color: #fff; font: inherit; font-size: 14px; outline: none; }
.sz-thread__reply input:focus { border-color: var(--sz-accent); }
.sz-thread__reply button { flex: none; width: 42px; height: 42px; border-radius: 50%; border: none; background: var(--sz-accent); color: #0a0a0a; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }


/* ============================================================
   31. FRIENDS — card grid (distinct from inbox)
   ============================================================ */
.sz-friends-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(196px, 1fr)); gap: 16px; }
.sz-friend-card { background: var(--color-bg-elev-1, #111318); border: 1px solid rgba(184,186,193,0.18); border-radius: 14px; padding: 22px 18px; text-align: center; display: flex; flex-direction: column; align-items: center; transition: transform .2s ease, border-color .2s ease; }
.sz-friend-card:hover { transform: translateY(-2px); border-color: rgba(168,213,186,0.3); }
.sz-friend-card__avatar { width: 76px; height: 76px; border-radius: 50%; margin-bottom: 12px; display: flex; align-items: center; justify-content: center; font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 26px; color: #fff; }
.sz-friend-card__name { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 1.05rem; color: #fff; margin: 0; }
.sz-friend-card__meta { font-size: 13px; color: rgba(255,255,255,0.55); margin: 4px 0 0; }
.sz-friend-card__tags { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; margin: 10px 0 0; }
.sz-friend-card__actions { display: flex; gap: 8px; margin-top: 16px; width: 100%; }
.sz-friend-card__actions .button { flex: 1; padding: 0 8px; }
.sz-request-row { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 10px; background: var(--color-bg-elev-2, #161A22); box-shadow: 0 0 0 1px rgba(255,255,255,0.06); }
.sz-request-row .sz-friend-card__avatar { width: 44px; height: 44px; font-size: 16px; margin: 0; }
.sz-request-row__main { flex: 1; min-width: 0; }
.sz-request-row__actions { display: flex; gap: 8px; flex: none; }


/* ============================================================
   32. PLAYLIST DETAIL
   ============================================================ */
.sz-pl-hero { display: flex; gap: 28px; align-items: flex-end; flex-wrap: wrap; }
.sz-pl-hero__art { width: 200px; height: 200px; flex: none; border-radius: 14px; background: var(--sz-mark) center/cover no-repeat, linear-gradient(135deg, #1a1f2e, #2a3042); background-size: cover; box-shadow: 0 18px 50px rgba(0,0,0,0.45); }
.sz-pl-hero__meta { flex: 1; min-width: 240px; }
.sz-pl-hero__eyebrow { font-family: 'Rules', sans-serif; font-size: 11px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sz-accent); margin: 0 0 8px; }
.sz-pl-hero__title { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1.05; letter-spacing: -0.02em; margin: 0 0 10px; color: #fff; }
.sz-pl-hero__desc { font-size: 15px; color: rgba(255,255,255,0.75); margin: 0 0 8px; line-height: 1.5; max-width: 560px; }
.sz-pl-hero__sub { font-size: 14px; color: rgba(255,255,255,0.55); margin: 0 0 18px; }
.sz-pl-hero__actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.sz-pl-hero__actions .sz-icon-btn { width: 42px; height: 42px; }
.sz-pl-hero__actions .sz-icon-btn .sz-ic { width: 16px; height: 16px; max-width: none; flex: none; }
.sz-tracks { list-style: none; margin: 0; padding: 0; }
.sz-track { display: grid; grid-template-columns: 28px 1fr auto auto; align-items: center; gap: 14px; padding: 11px 12px; margin: 0 -12px; border-radius: 8px; border-bottom: 1px solid rgba(255,255,255,0.06); transition: background .15s ease; }
.sz-track:hover { background: rgba(255,255,255,0.035); }
.sz-track:last-child { border-bottom: none; }
.sz-track__num { font-family: ui-monospace, monospace; font-size: 12px; color: rgba(255,255,255,0.4); text-align: center; }
.sz-track__title { color: #fff; font-size: 15px; min-width: 0; }
.sz-track__artist { color: rgba(255,255,255,0.55); font-size: 14px; }
.sz-track__dur { font-family: ui-monospace, monospace; font-size: 12px; color: rgba(255,255,255,0.45); }
@media (max-width: 600px) { .sz-track { grid-template-columns: 24px 1fr auto; } .sz-track__artist { display: none; } }


/* ============================================================
   33. ARTIST PROFILE — links, press kit, releases, members
   ============================================================ */
.sz-dash-header--group .sz-dash-avatar { border-radius: 16px; }
.sz-dash-avatar__edit {
  position: absolute;
  right: -4px;
  bottom: -4px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--sz-accent, #A8D5BA);
  color: #0a0a0a;
  box-shadow: 0 2px 8px rgba(0,0,0,0.45);
  z-index: 2;
}
.sz-dash-avatar__edit .sz-ic { width: 16px; height: 16px; }
.sz-dash-avatar__edit:hover { background: var(--sz-accent-hover, #C1E2C8); color: #0a0a0a; }
.sz-profile-badges { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; }
.sz-links { display: flex; flex-direction: column; gap: 0; }
.sz-links a { display: flex; align-items: center; gap: 11px; padding: 9px 0; color: rgba(255,255,255,0.82); text-decoration: none; font-size: 14px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.sz-links a:last-child { border-bottom: none; }
.sz-links a:hover { color: var(--sz-accent); }
.sz-links a .sz-ic { color: var(--sz-accent); flex: none; }
.sz-links a .sz-links__ext { margin-left: auto; color: rgba(255,255,255,0.3); }
.sz-presskit { display: flex; align-items: center; gap: 12px; padding: 14px; border-radius: 10px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.1); margin-top: 4px; }
.sz-presskit__ic { width: 40px; height: 40px; border-radius: 8px; flex: none; display: grid; place-items: center; background: rgba(168,213,186,0.14); color: var(--sz-accent); }
.sz-presskit__body { flex: 1; min-width: 0; }
.sz-presskit__name { font-size: 14px; color: #fff; font-weight: 600; }
.sz-presskit__meta { font-size: 12px; color: rgba(255,255,255,0.5); }
.sz-members { display: flex; flex-direction: column; gap: 2px; }
.sz-member { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.sz-member:last-child { border-bottom: none; }
.sz-member__avatar { width: 38px; height: 38px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center; font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 13px; color: #fff; }
.sz-member__name { color: #fff; font-size: 14px; font-weight: 500; }
.sz-member__role { font-size: 12px; color: rgba(255,255,255,0.5); }
.sz-member__body { min-width: 0; }
.sz-member__actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.gp-h2 { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 1.1rem; color: #fff; margin: 28px 0 12px; display: flex; align-items: center; gap: 10px; }


/* ============================================================
   34. GROUP MANAGEMENT — segmented tabs, upload wizard, roster
   ============================================================ */
.sz-segtabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 26px; }
.sz-segtab { display: inline-flex; align-items: center; gap: 9px; padding: 11px 16px; border-radius: 10px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); color: rgba(255,255,255,0.62) !important; font-size: 14px; text-decoration: none; transition: .15s; }
.sz-segtab:hover { color: #fff !important; border-color: rgba(255,255,255,0.2); }
.sz-segtab .sz-ic { color: rgba(255,255,255,0.5); }
.sz-segtab.is-active, .sz-segtab.active { background: rgba(168,213,186,0.12); border-color: rgba(168,213,186,0.4); color: #fff !important; }
.sz-segtab.is-active .sz-ic, .sz-segtab.active .sz-ic { color: var(--sz-accent); }
li.sz-segtab { cursor: pointer; }
.sz-segtab__count { background: rgba(255,255,255,0.1); border-radius: 999px; padding: 1px 9px; font-size: 12px; font-variant-numeric: tabular-nums; }

.sz-wizard { display: flex; gap: 12px; margin: 0 0 28px; }
@media (max-width: 600px) { .sz-wizard { flex-direction: column; } }
.sz-wizard__step { flex: 1; display: flex; align-items: center; gap: 12px; padding: 15px 18px; border-radius: 12px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); color: rgba(255,255,255,0.6); }
.sz-wizard__step.is-active { background: rgba(168,213,186,0.12); border-color: rgba(168,213,186,0.4); color: #fff; }
.sz-wizard__num { width: 28px; height: 28px; flex: none; border-radius: 50%; display: grid; place-items: center; font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 13px; background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.7); }
.sz-wizard__step.is-active .sz-wizard__num { background: var(--sz-accent); color: #0a0a0a; }
.sz-wizard__label { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 14px; }

.sz-filedrop { border: 1.5px dashed rgba(255,255,255,0.2); border-radius: 14px; padding: 48px 24px; text-align: center; background: rgba(255,255,255,0.02); transition: border-color .15s ease, background .15s ease; }
.sz-filedrop:hover { border-color: rgba(168,213,186,0.5); background: rgba(168,213,186,0.04); }
.sz-filedrop__ic { font-size: 30px; color: rgba(255,255,255,0.4); }
.sz-filedrop p { font-size: 14px; color: rgba(255,255,255,0.6); margin: 12px 0 18px; }

.sz-roster-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 16px; }
.sz-roster-card { background: var(--color-bg-elev-1, #111318); border: 1px solid rgba(184,186,193,0.18); border-radius: 12px; padding: 18px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.sz-roster-card__avatar { width: 64px; height: 64px; border-radius: 50%; margin-bottom: 8px; background-size: cover; background-position: center; background-color: #1a1f2e; }
.sz-roster-add { border: 1.5px dashed rgba(255,255,255,0.2); background: transparent; border-radius: 12px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: rgba(255,255,255,0.6); cursor: pointer; min-height: 150px; }
.sz-roster-add:hover { border-color: rgba(168,213,186,0.5); color: var(--sz-accent); }
.sz-roster-add .sz-ic { font-size: 22px; }


/* ============================================================
   35. CAPABILITY MATRIX (what each group type can do)
   ============================================================ */
.sz-caps-wrap { overflow-x: auto; border: 1px solid rgba(184,186,193,0.18); border-radius: 12px; }
.sz-caps { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 540px; }
.sz-caps th, .sz-caps td { padding: 12px 14px; border-bottom: 1px solid rgba(255,255,255,0.07); text-align: center; white-space: nowrap; }
.sz-caps tr:last-child th, .sz-caps tr:last-child td { border-bottom: none; }
.sz-caps thead th { font-family: 'Rules', sans-serif; font-size: 10.5px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.6); }
.sz-caps thead th:first-child, .sz-caps tbody th { text-align: left; }
.sz-caps tbody th { color: #fff; font-weight: 600; font-size: 14px; }
.sz-caps tbody th .sz-caps__auto { display: block; font-weight: 400; font-size: 11px; color: rgba(255,255,255,0.45); }
.sz-caps .yes { color: var(--sz-accent); }
.sz-caps .no { color: rgba(255,255,255,0.22); }
.sz-caps tbody tr:hover { background: rgba(255,255,255,0.02); }

/* ============================================================
   36. INBOX search + COMPACT USER LIST (friends / followers)
   ============================================================ */
.sz-inbox__search { padding: 12px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.sz-inbox__search input { width: 100%; height: 38px; padding: 0 16px; border-radius: 999px; background: rgba(18,26,44,0.55); border: 1px solid rgba(120,140,180,0.22); color: #fff; font: inherit; font-size: 13px; outline: none; }
.sz-inbox__search input:focus { border-color: var(--sz-accent); }

/* a toolbar above a user list: search + count/sort */
.sz-userbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.sz-userbar__search { flex: 1; min-width: 220px; position: relative; }
.sz-userbar__search input { width: 100%; height: 40px; padding: 0 16px 0 40px; border-radius: 999px; background: rgba(18,26,44,0.5); border: 1px solid rgba(120,140,180,0.22); color: #fff; font: inherit; font-size: 14px; outline: none; }
.sz-userbar__search input:focus { border-color: var(--sz-accent); }
.sz-userbar__search .sz-ic { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: rgba(255,255,255,0.4); }
.sz-userbar__count { font-size: 13px; color: rgba(255,255,255,0.5); white-space: nowrap; }

/* dense, responsive list — built for hundreds of users */
.sz-userlist { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 2px 20px; }
.sz-userlist--requests { display: flex; flex-direction: column; gap: 4px; margin-bottom: 30px; max-width: 640px; }
.sz-user-row { display: flex; align-items: center; gap: 11px; padding: 8px 10px; margin: 0 -10px; border-radius: 9px; text-decoration: none; color: inherit; transition: background .12s ease; }
.sz-user-row:hover { background: rgba(255,255,255,0.04); }
.sz-user-row__avatar { width: 38px; height: 38px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center; font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 13px; color: #fff; background-size: cover; background-position: center; }
.sz-user-row__main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sz-user-row__name { color: #fff; font-weight: 500; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-user-row__name:hover { color: var(--sz-accent); }
.sz-user-row__meta { font-size: 12px; color: rgba(255,255,255,0.5); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-user-row__actions { flex: none; display: flex; gap: 5px; opacity: 0; transition: opacity .12s ease; }
.sz-user-row:hover .sz-user-row__actions { opacity: 1; }
@media (hover: none) { .sz-user-row__actions { opacity: 1; } }
.sz-user-row .sz-icon-btn { width: 30px; height: 30px; }
.sz-user-row .sz-icon-btn .sz-ic { width: 13px; height: 13px; }

/* ============================================================
   37. OWNER BAR — shown on a PUBLIC page when you manage it,
   making owner/manage vs public viewing explicit.
   ============================================================ */
.sz-owner-bar { display: flex; align-items: center; gap: 11px; flex-wrap: wrap; padding: 8px 9px 8px 14px; border-radius: 9px; background: rgba(255,255,255,0.035); border: 1px solid rgba(255,255,255,0.09); margin: 24px 0 24px; }
.sz-owner-bar .sz-ic { color: rgba(255,255,255,0.45); flex: none; }
.sz-owner-bar__txt { font-size: 13px; color: rgba(255,255,255,0.72); flex: 1; min-width: 160px; }
.sz-owner-bar__txt b { font-weight: 600; }
.sz-owner-bar__txt span { color: rgba(255,255,255,0.6); }
.sz-owner-bar .button { height: 30px; line-height: 28px; padding: 0 12px; font-size: 12.5px; }
.sz-owner-bar__txt b { color: #fff; }

/* compact follower cluster for group public pages */
.sz-foll { display: flex; align-items: center; gap: 12px; }
.sz-foll__avatars { display: flex; }
.sz-foll__avatars span { width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--color-bg-elev-1, #111318); margin-left: -9px; display: flex; align-items: center; justify-content: center; font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 11px; color: #fff; }
.sz-foll__avatars span:first-child { margin-left: 0; }
.sz-foll__count { font-size: 13px; color: rgba(255,255,255,0.65); }
.sz-foll__count b { color: #fff; font-weight: 600; }


/* ============================================================
   38. PLAYLIST PLAYER + rich tracklist
   ============================================================ */
.sz-player { display: flex; align-items: center; gap: 26px; background: var(--color-bg-elev-1, #111318); border: 1px solid rgba(184,186,193,0.18); border-radius: 16px; padding: 22px 28px; margin-bottom: 26px; }
.sz-player__play { width: 80px; height: 80px; flex: none; border-radius: 50%; background: var(--sz-accent); color: #0a0a0a; border: none; cursor: pointer; display: grid; place-items: center; box-shadow: 0 10px 34px rgba(168,213,186,0.28); transition: transform .12s ease, background .15s ease; }
.sz-player__play:hover { background: var(--sz-accent-hover); }
.sz-player__play:active { transform: scale(0.96); }
.sz-player__play .sz-ic { width: 30px; height: 30px; }
.sz-player__main { flex: 1; min-width: 0; }
.sz-player__title { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: clamp(1.3rem,2vw,1.7rem); color: #fff; margin: 0; line-height: 1.1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-player__artist { color: rgba(255,255,255,0.6); margin: 3px 0 14px; font-size: 15px; }
.sz-player__controls { display: flex; align-items: center; gap: 22px; color: rgba(255,255,255,0.78); margin-bottom: 14px; }
.sz-player__controls button { background: none; border: none; color: inherit; cursor: pointer; padding: 2px; display: inline-flex; }
.sz-player__controls button .sz-ic { width: 20px; height: 20px; }
.sz-player__controls button:hover { color: #fff; }
.sz-player__controls button.is-on,
.sz-player__controls button.is-on .sz-ic { color: var(--sz-accent); }
#plRepeat.repeat-one { position: relative; }
#plRepeat.repeat-one::after { content: "1"; font-size: 10px; font-weight: 700; position: absolute; top: -3px; right: -5px; color: var(--sz-accent); }
.sz-player__bar { display: flex; align-items: center; gap: 12px; }
.sz-player__time { font-family: ui-monospace, monospace; font-size: 12px; color: rgba(255,255,255,0.5); flex: none; }
.sz-player__track { flex: 1; height: 6px; border-radius: 3px; background: rgba(255,255,255,0.12); position: relative; cursor: pointer; }
.sz-player__buf { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 3px; background: rgba(255,255,255,0.22); width: 0%; }
.sz-player__fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 3px; background: var(--sz-accent); width: 0%; }
.sz-player__fill::after { content: ""; position: absolute; right: -5px; top: 50%; transform: translateY(-50%); width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,0.4); }
@media (max-width: 640px) { .sz-player { flex-direction: column; text-align: center; gap: 16px; padding: 20px; } .sz-player__controls { justify-content: center; } }

.sz-pltracks { list-style: none; margin: 0; padding: 0; }
.sz-pltrack { display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 16px; padding: 11px 12px; border-radius: 10px; border-bottom: 1px solid rgba(255,255,255,0.06); cursor: pointer; }
.sz-pltrack:hover { background: rgba(255,255,255,0.035); }
.sz-pltrack.is-playing { background: rgba(168,213,186,0.08); }
.sz-pltrack__idx { position: relative; width: 36px; height: 30px; display: grid; place-items: center; }
.sz-pltrack__num { font-family: ui-monospace, monospace; font-size: 13px; color: rgba(255,255,255,0.4); }
.sz-pltrack__play { position: absolute; inset: 0; display: none; place-items: center; color: var(--sz-accent); }
.sz-pltrack:hover .sz-pltrack__num, .sz-pltrack.is-playing .sz-pltrack__num { opacity: 0; }
.sz-pltrack:hover .sz-pltrack__play, .sz-pltrack.is-playing .sz-pltrack__play { display: grid; }
.sz-pltrack__info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.sz-pltrack__title { color: #fff; font-size: 15px; line-height: 1.3; }
.sz-pltrack.is-playing .sz-pltrack__title { color: var(--sz-accent); }
.sz-pltrack__meta { font-size: 13px; color: rgba(255,255,255,0.5); margin-top: 1px; }
.sz-pltrack__right { display: flex; align-items: center; gap: 4px; }
.sz-pltrack__dur { font-family: ui-monospace, monospace; font-size: 12px; color: rgba(255,255,255,0.45); margin-right: 6px; }
.sz-pltrack__actions { display: flex; gap: 3px; opacity: 1; transition: opacity .12s ease; }
.sz-pltrack:hover .sz-pltrack__actions { opacity: 1; }
@media (hover: none) { .sz-pltrack__actions { opacity: 1; } }
.sz-pltrack--noaudio { opacity: .55; cursor: default; }
.sz-pltrack--noaudio:hover { background: none; }
.sz-pltrack--noaudio .sz-pltrack__play { display: none; }
.sz-pltrack__actions .sz-icon-btn { width: 30px; height: 30px; }
.sz-pltrack__actions .sz-icon-btn .sz-ic { width: 13px; height: 13px; }
@media (max-width: 640px) { .sz-pltrack__dur, .sz-pltrack__actions { display: none; } .sz-pltrack__actions.keep, .sz-pltrack__actions--on { display: flex; } }

/* Playlist edit page (template-parts/playlist-edit.php → mockup playlist-edit.html) */
.sz-pltrack__actions--on { opacity: 1; }
.sz-form-section__note { color: rgba(255,255,255,0.4); font-weight: 400; text-transform: none; letter-spacing: 0; font-family: 'Inter Tight', sans-serif; }
.sz-pl-minirow { display: flex; gap: 12px; align-items: center; }
.sz-pl-mini { width: 44px; height: 44px; border-radius: 8px; flex: none; background: var(--sz-mark) center/cover no-repeat, linear-gradient(135deg, #1a1f2e, #2a3042); background-size: cover; }
.sz-pl-mini__name { color: #fff; font-weight: 600; font-size: 14px; }
.sz-pl-mini__sub { font-size: 12px; color: rgba(255,255,255,0.5); }
.sz-coll-row__title--static { cursor: default; }
.sz-modal--add { max-width: 560px; }
.sz-modal__list { max-height: 340px; overflow: auto; margin-top: 12px; }
/* Playlist artwork — contained album-style hero backdrop + edit-page crop preview */
.sz-pl-hero--art { position: relative; background-size: cover; background-position: center; border-radius: 14px; overflow: hidden; padding: 24px; }
.sz-pl-hero--art::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,12,15,0.5) 0%, rgba(11,12,15,0.9) 100%); z-index: 0; }
.sz-pl-hero--art > * { position: relative; z-index: 1; }
.sz-pl-artwork { width: 180px; height: 180px; border-radius: 12px; overflow: hidden; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.12); }
.sz-pl-artwork img { width: 100%; height: 100%; object-fit: cover; display: block; max-width: none; max-height: none; border: 0; border-radius: 0; }
.sz-pl-artwork .no-artwork-placeholder .sz-ic { width: 48px; height: 48px; color: rgba(255,255,255,0.35); }
.sz-pl-artwork.is-cropping { width: auto; height: auto; max-width: 360px; display: block; border: 0; background: none; overflow: visible; }
.sz-pl-cropwrap { max-width: 360px; }
.sz-pl-cropwrap img { max-width: 100%; display: block; }
.sz-pl-cropactions { display: flex; gap: 10px; margin-top: 10px; }
.sz-coll-row__thumb[data-bg] { background-size: cover; background-position: center; }

/* ── Payment modal: custom payment-method dropdown + qty stepper + ticket stub
   (harvested 1:1 from production simuze-2026.css for setupBuyModal) ── */
.sz-paysel { position: relative; }
.sz-paysel__trigger {
  width: 100%; display: flex; align-items: center; gap: 10px; justify-content: space-between;
  font: inherit; font-size: 15px; color: #fff; cursor: pointer; text-align: left;
  background: rgba(18,26,44,0.55); border: 1px solid rgba(255,255,255,0.14);
  border-radius: 10px; padding: 11px 14px; transition: border-color .15s ease, background .15s ease;
}
.sz-paysel__trigger:hover { border-color: rgba(255,255,255,0.26); }
.sz-paysel.is-open .sz-paysel__trigger { border-color: var(--sz-accent); background: rgba(18,26,44,0.82); box-shadow: 0 0 0 3px rgba(168,213,186,0.14); }
.sz-paysel__cur { display: flex; align-items: center; gap: 11px; min-width: 0; }
.sz-paysel__chev { width: 16px; height: 16px; color: rgba(255,255,255,0.5); flex: none; transition: transform .18s ease; }
.sz-paysel.is-open .sz-paysel__chev { transform: rotate(180deg); }
.sz-paysel__badge {
  width: 34px; height: 24px; border-radius: 5px; flex: none; display: grid; place-items: center;
  background: linear-gradient(135deg, #2a3350, #1a2030); color: #fff;
  font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 10px; letter-spacing: 0.02em;
}
.sz-paysel__badge .sz-ic { width: 16px; height: 16px; }
.sz-paysel__badge--ideal { background: linear-gradient(135deg, #c8136a, #8e0e4c); }
.sz-paysel__badge--paypal { background: linear-gradient(135deg, #1b3a8c, #142a63); }
.sz-paysel__badge--add { background: rgba(255,255,255,0.08); color: var(--sz-accent); }
.sz-paysel__menu {
  position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 20;
  background: #141a28; border: 1px solid rgba(255,255,255,0.14); border-radius: 12px;
  padding: 6px; box-shadow: 0 18px 48px rgba(0,0,0,0.55); display: flex; flex-direction: column; gap: 2px;
}
.sz-paysel__menu[hidden] { display: none !important; }
.sz-paysel__opt {
  display: flex; align-items: center; gap: 11px; width: 100%; text-align: left;
  font: inherit; font-size: 14px; color: rgba(255,255,255,0.85); cursor: pointer;
  background: none; border: none; border-radius: 8px; padding: 9px 10px; transition: background .12s ease;
}
.sz-paysel__opt:hover { background: rgba(255,255,255,0.06); }
.sz-paysel__opt.is-selected { background: rgba(168,213,186,0.1); }
.sz-paysel__lbl { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.sz-paysel__lbl small { font-size: 11.5px; color: rgba(255,255,255,0.45); }
.sz-paysel__check { width: 16px; height: 16px; color: var(--sz-accent); margin-left: auto; opacity: 0; flex: none; }
.sz-paysel__opt.is-selected .sz-paysel__check { opacity: 1; }
.sz-paysel__opt--add { color: var(--sz-accent); }
.sz-paysel__opt--add .sz-paysel__lbl { font-weight: 500; }
.sz-buy__art--ticket { background: rgba(168,213,186,0.14) !important; color: var(--sz-accent); display: grid; place-items: center; }
.sz-buy__art--ticket .sz-ic { width: 26px; height: 26px; }
.sz-qty { display: flex; align-items: center; gap: 12px; }
.sz-qty__btn { width: 38px; height: 38px; border-radius: 9px; border: 1px solid rgba(255,255,255,0.18); background: rgba(255,255,255,0.04); color: #fff; font-size: 20px; line-height: 1; cursor: pointer; flex: none; transition: background .15s ease, border-color .15s ease; }
.sz-qty__btn:hover { background: rgba(255,255,255,0.09); border-color: rgba(255,255,255,0.3); }
.sz-qty__val { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.2rem; color: #fff; min-width: 28px; text-align: center; }
.sz-qty__hint { font-size: 13px; color: rgba(255,255,255,0.5); margin-left: 2px; }
.sz-ticket-stub { display: flex; align-items: center; gap: 12px; text-align: left; padding: 14px; margin: 0 0 18px; border-radius: 10px; background: rgba(255,255,255,0.03); border: 1px dashed rgba(255,255,255,0.18); }
.sz-ticket-stub__ic { width: 42px; height: 42px; border-radius: 8px; flex: none; display: grid; place-items: center; background: rgba(168,213,186,0.14); color: var(--sz-accent); }
.sz-ticket-stub__ic .sz-ic { width: 20px; height: 20px; }
.sz-ticket-stub__name { font-weight: 600; color: #fff; font-size: 14px; }
.sz-ticket-stub__sub { font-size: 12.5px; color: rgba(255,255,255,0.55); margin-top: 2px; }
.sz-ticket-stub__qty { margin-left: auto; font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.1rem; color: var(--sz-accent); }


/* ============================================================
   39. MULTI-STEP WIZARD + LOCATION AUTOCOMPLETE (create group)
   ============================================================ */
.sz-steps { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin: 0 0 36px; max-width: 720px; }
.sz-step { display: flex; flex-direction: column; align-items: center; gap: 8px; flex: 1; position: relative; text-align: center; }
.sz-step:not(:last-child)::after { content: ""; position: absolute; top: 18px; left: calc(50% + 24px); right: calc(-50% + 24px); height: 2px; background: rgba(255,255,255,0.1); }
.sz-step.is-done:not(:last-child)::after { background: rgba(168,213,186,0.5); }
.sz-step__num { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 15px; background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.6); border: 1px solid rgba(255,255,255,0.12); position: relative; z-index: 1; transition: .15s; }
.sz-step.is-active .sz-step__num, .sz-step.is-done .sz-step__num, .sz-step.active .sz-step__num { background: var(--sz-accent); color: #0a0a0a; border-color: var(--sz-accent); }
.sz-step__label { font-size: 13px; color: rgba(255,255,255,0.55); }
.sz-step.is-active .sz-step__label, .sz-step.is-done .sz-step__label, .sz-step.active .sz-step__label { color: #fff; }

.sz-autocomplete { position: relative; }
.sz-autocomplete__results { margin-top: 8px; border: 1px solid rgba(120,140,180,0.22); border-radius: 10px; overflow: hidden; background: #111722; }
.sz-autocomplete__results:empty { display: none; }
.sz-ac-item { display: block; width: 100%; text-align: left; padding: 13px 16px; background: none; border: none; border-bottom: 1px solid rgba(255,255,255,0.06); cursor: pointer; color: #fff; }
.sz-ac-item:last-child { border-bottom: none; }
.sz-ac-item:hover, .sz-ac-item.is-active { background: rgba(168,213,186,0.1); }
.sz-ac-item__name { font-size: 15px; color: #fff; }
.sz-ac-item__sub { font-size: 13px; color: rgba(255,255,255,0.55); margin-top: 2px; }
.sz-ac-chosen { display: flex; align-items: center; gap: 12px; padding: 13px 16px; border-radius: 10px; background: rgba(168,213,186,0.1); border: 1px solid rgba(168,213,186,0.28); margin-top: 12px; }
.sz-ac-chosen .sz-ic { color: var(--sz-accent); }
.sz-ac-chosen__name { color: #fff; font-weight: 600; font-size: 15px; }
.sz-ac-chosen__sub { font-size: 13px; color: rgba(255,255,255,0.6); }
.sz-wizard-nav { display: flex; gap: 12px; justify-content: space-between; margin-top: 28px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,0.08); }


/* ============================================================
   40. GROUP BOARD (members post) + activity on group pages
   ============================================================ */
.sz-board-note { display: flex; align-items: center; gap: 10px; font-size: 13px; color: rgba(255,255,255,0.55); padding: 10px 14px; border-radius: 9px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); margin-bottom: 16px; }
.sz-board-note .sz-ic { color: var(--sz-accent); flex: none; }
/* Read-only aggregated place board (country / province / city) — place-board.php */
.sz-board-note--block { align-items: flex-start; margin-bottom: 18px; }
.sz-board-note__lead { color: rgba(255,255,255,0.85); font-weight: 600; }
.sz-board-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin: 8px 0 22px; }
.sz-board-head__title { margin: 0 0 8px; font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.95rem; letter-spacing: -0.01em; }
.sz-board-head__desc { color: rgba(255,255,255,0.6); margin: 0; max-width: 580px; line-height: 1.55; }
.sz-board-head__back { flex: none; }
.sz-board-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.sz-board-toolbar .sz-board-filter { margin: 0; }
.sz-board-sort { width: auto; height: 40px; padding: 0 34px 0 14px; font-size: 14px; flex: none; }
.sz-board-list--full { max-width: none; }
.sz-board-post__badge { font-size: 9px; padding: 1px 7px; }
.sz-board-browse a { display: flex; align-items: center; gap: 8px; }
.sz-board-post { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 10px; background: var(--color-bg-elev-2, #161A22); box-shadow: 0 0 0 1px rgba(255,255,255,0.06); margin-bottom: 8px; transition: box-shadow .15s ease; }
.sz-board-post:last-child { margin-bottom: 0; }
.sz-board-post:hover { box-shadow: 0 0 0 1px rgba(168,213,186,0.28); background: var(--color-bg-elev-3, #1E242F); }
.sz-board-post__avatar { width: 38px; height: 38px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center; font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 13px; color: #fff; }
.sz-board-post__head { display: flex; align-items: baseline; gap: 8px; }
.sz-board-post__name { font-weight: 600; color: #fff; font-size: 14px; }
.sz-board-post__time { font-size: 12px; color: rgba(255,255,255,0.45); }
.sz-board-post__body { font-size: 14px; color: rgba(255,255,255,0.62); line-height: 1.55; margin: 4px 0 0; }
.sz-board-post__heading { font-family: 'Inter Tight', sans-serif; font-size: 15px; font-weight: 700; line-height: 1.35; letter-spacing: 0; color: rgba(255,255,255,0.95); margin: 3px 0 0; }
.sz-board-post__heading + .sz-board-post__body { margin-top: -4px; }
.sz-board-post__heading a { color: inherit; text-decoration: none; }
.sz-board-post__heading a:hover { color: var(--sz-accent); }
.sz-board-compose { display: flex; gap: 12px; align-items: center; margin-bottom: 18px; }
.sz-board-compose input { flex: 1; height: 44px; padding: 0 16px; border-radius: 999px; background: rgba(18,26,44,0.5); border: 1px solid rgba(120,140,180,0.22); color: #fff; font: inherit; font-size: 14px; outline: none; }
.sz-board-compose input:focus { border-color: var(--sz-accent); }

/* ── 41. board post reply (members only) ── */
.sz-pltrack[draggable="true"] { cursor: grab; }
.sz-pltrack[draggable="true"]:active { cursor: grabbing; }
.sz-board-post__actions { margin-top: 8px; margin-left: 0; display: flex; gap: 16px; }
.sz-board-post__actions a { font-size: 12.5px; color: rgba(255,255,255,0.5); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.sz-board-post__actions a:hover { color: var(--sz-accent); }
.sz-board-reply { display: flex; gap: 10px; align-items: center; margin-top: 10px; }
.sz-board-reply[hidden] { display: none; }
.sz-board-reply input { flex: 1; height: 38px; padding: 0 14px; border-radius: 999px; background: rgba(18,26,44,0.5); border: 1px solid rgba(120,140,180,0.22); color: #fff; font: inherit; font-size: 13px; outline: none; }
.sz-board-reply input:focus { border-color: var(--sz-accent); }
.sz-board-reply button { flex: none; }

/* ── 43. Music search (hero) — input + Filter + Search + chips ── */
.sz-msearch { display: flex; gap: 12px; align-items: stretch; max-width: 760px; margin-top: 22px; }
.sz-msearch__input { flex: 1; min-width: 0; position: relative; }
.sz-msearch__input input { width: 100%; height: 56px; padding: 0 22px; border-radius: 999px; background: rgba(8,9,12,0.7); border: 1px solid rgba(255,255,255,0.18); color: #fff; font: inherit; font-size: 16px; outline: none; transition: border-color .2s ease, background .2s ease; }
.sz-msearch__input input::placeholder { color: rgba(255,255,255,0.5); }
.sz-msearch__input input:focus { border-color: var(--sz-accent); background: rgba(8,9,12,0.9); box-shadow: 0 0 0 3px rgba(168,213,186,0.15); }
.sz-msearch__filter { flex: none; display: inline-flex; align-items: center; gap: 9px; height: 56px; padding: 0 22px; border-radius: 999px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.16); color: #fff; font: inherit; font-size: 15px; cursor: pointer; white-space: nowrap; transition: background .15s ease, border-color .15s ease; }
.sz-msearch__filter:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.28); }
.sz-msearch__submit { flex: none; height: 56px; padding: 0 30px; border-radius: 999px; background: var(--sz-accent); color: #0a0a0a; border: none; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; transition: background .15s ease; }
.sz-msearch__submit:hover { background: var(--sz-accent-hover); }
@media (max-width: 680px) { .sz-msearch { flex-wrap: wrap; } .sz-msearch__input { flex-basis: 100%; } }

.sz-genre-chips { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; max-width: 1000px; }
.sz-genre-chip { display: inline-flex; align-items: center; height: 36px; padding: 0 16px; border-radius: 999px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.16); color: rgba(255,255,255,0.82) !important; font-size: 14px; text-decoration: none; white-space: nowrap; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.sz-genre-chip:hover { background: rgba(255,255,255,0.08); color: #fff !important; border-color: rgba(255,255,255,0.3); }
.sz-genre-chip.is-active { background: rgba(168,213,186,0.16); border-color: rgba(168,213,186,0.45); color: #fff !important; }

/* sub-nav: see section 43 (sticky, attached under the global header) */

/* license / CC link on releases */
.sz-license { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: rgba(255,255,255,0.6); text-decoration: none; }
.sz-license:hover { color: var(--sz-accent); }
.sz-license .sz-ic { color: rgba(255,255,255,0.5); }

/* board-list carrying avatar cards (homepage, network) */
.sz-board-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sz-board-list > li { margin: 0; }
.sz-board-list .sz-board-post { margin-bottom: 0; }

/* Network /board page (network-board.html mockup) */
.sz-board-page { padding-top: 8px; }
.sz-board-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.sz-board-toolbar .sz-pill-tabs { margin: 0; }
.sz-board-toolbar__post { flex: none; }
.sz-board-search { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 8px; }
.sz-board-search .sz-userbar__search { flex: 1; min-width: 240px; max-width: 440px; }
.sz-board-secthead { margin: 30px 0 14px; }
.sz-board-secthead .sz-section-head__title { font-size: 1.4rem; }
.sz-board-eyebrow { margin-bottom: 10px; }
.sz-board-back { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: rgba(255,255,255,0.6); text-decoration: none; margin-bottom: 14px; }
.sz-board-back:hover { color: var(--sz-accent); }
.sz-board-back .sz-ic { width: 15px; height: 15px; }
.sz-board-empty { margin-top: 16px; }
.sz-board-post__where { color: rgba(255,255,255,0.55); }
/* Whole-card click target (rendered as <a> or div[data-href]) */
.sz-board-post--clickable { cursor: pointer; text-decoration: none; color: inherit; }
.sz-board-post--clickable .sz-board-post__name { text-decoration: none; }
a.sz-board-post--clickable:hover { color: inherit; }
.sz-board-post__action { font-size: 12.5px; color: rgba(255,255,255,0.5); display: inline-flex; align-items: center; gap: 6px; }
.sz-board-post__action .sz-ic { width: 14px; height: 14px; }
/* Avatar tint palette (sz-bav-1..6) — board author/group initials */
.sz-bav-1 { background: linear-gradient(135deg,#2f5a3f,#3f7a54); }
.sz-bav-2 { background: linear-gradient(135deg,#56423a,#7a5a4a); }
.sz-bav-3 { background: linear-gradient(135deg,#3a4a56,#566f80); }
.sz-bav-4 { background: linear-gradient(135deg,#4a3a56,#6b5680); }
.sz-bav-5 { background: linear-gradient(135deg,#3a4256,#566077); }
.sz-bav-6 { background: linear-gradient(135deg,#564a3a,#80706b); }
.nb-card__text { font-size: 13px; color: rgba(255,255,255,0.6); line-height: 1.5; margin: 0 0 14px; }

/* "your profile" owner indicator (lighter than the manage owner-bar) */
.sz-self-tag { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: var(--sz-accent); background: rgba(168,213,186,0.12); border: 1px solid rgba(168,213,186,0.3); border-radius: 999px; padding: 4px 12px; margin-left: 12px; vertical-align: middle; }
.sz-self-tag .sz-ic { width: 13px; height: 13px; }

/* ============================================================
   43. MUSIC SUBNAV (sticky, attached under header) + "all" pages
   ============================================================ */
/* A short, subordinate strip that sticks directly under the fixed
   global header so it reads as part of it. Lower contrast + smaller
   type than the main nav. */
.sz-subnav { position: sticky; top: var(--header-height, 60px); z-index: 40; background: #0B0C0F; border-bottom: 1px solid rgba(255,255,255,0.08); box-shadow: 0 1px 0 rgba(0,0,0,0.4); }
.sz-subnav__inner { max-width: var(--container-max-width); margin: 0 auto; padding: 0 var(--space-32); display: flex; gap: 24px; }
@media (max-width: 768px) { .sz-subnav__inner { padding: 0 16px; gap: 20px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; } .sz-subnav__inner::-webkit-scrollbar { display: none; } }
.sz-subnav a { display: inline-flex; align-items: center; padding: 11px 2px; font-size: 13px; color: rgba(255,255,255,0.55) !important; text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; transition: color .15s ease, border-color .15s ease; }
.sz-subnav a:hover { color: #fff !important; }
.sz-subnav a.is-active { color: #fff !important; border-bottom-color: var(--sz-accent); }

/* flat (non-bleeding) music hero when a subnav sits above it */
.sz-music-hero--flat { margin-top: 0 !important; min-height: 0 !important; }
.sz-music-hero--flat .sz-music-hero__inner { padding-top: 44px !important; padding-bottom: 40px !important; }

/* page head used on the all-pages (title + sub + search) */
.sz-music-pagehead { position: relative; overflow: hidden; padding: calc(var(--header-height,60px) + 56px) 0 30px; background: #0b0c0f; margin-top: calc(-1 * var(--header-height,60px)); }
.sz-music-pagehead::before { content: ""; position: absolute; inset: -22% 0; z-index: 0; background-image: linear-gradient(90deg, rgba(11,12,15,0.94) 0%, rgba(11,12,15,0.7) 45%, rgba(11,12,15,0.35) 100%), linear-gradient(0deg, #0b0c0f 0%, rgba(11,12,15,0) 40%), url('../images/hero-default.jpg'); background-size: cover; background-position: center; background-position-y: calc(50% + var(--par, 0px)); will-change: background-position; }
.sz-music-pagehead.is-network::before { background-image: linear-gradient(90deg, rgba(11,12,15,0.94) 0%, rgba(11,12,15,0.7) 45%, rgba(11,12,15,0.35) 100%), linear-gradient(0deg, #0b0c0f 0%, rgba(11,12,15,0) 40%), url('../images/hero-worldmap-bg.jpg'); }
.sz-music-pagehead .row { position: relative; z-index: 1; }
@media (hover: none), (max-width: 768px) { .sz-music-pagehead::before { background-position-y: center; } }
.sz-music-pagehead h1 { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: clamp(2rem, 3.2vw, 2.8rem); letter-spacing: -0.01em; color: #fff; margin: 0 0 10px; }
.sz-music-pagehead p { font-size: 15px; color: rgba(255,255,255,0.6); margin: 0 0 28px; }
/* Network sub-pages (Groups, Board, Countries, …): same horizontal grid as map hero + subnav */
.sz-music-pagehead.is-network > .row {
  max-width: var(--container-max-width);
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0;
  padding-left: calc(var(--gap) + var(--space-24)) !important;
  padding-right: calc(var(--gap) + var(--space-24)) !important;
  box-sizing: border-box;
}
.sz-music-pagehead.is-network > .row > .col { padding-left: 0; padding-right: 0; }
@media (max-width: 768px) {
  .sz-music-pagehead.is-network > .row { padding-left: 16px !important; padding-right: 16px !important; }
}

/* track line (Tracks page) — compact, stacked like the playlist rows */
.sz-tracklines { list-style: none; margin: 0; padding: 0; }
.sz-trackline { display: flex; align-items: center; gap: 14px; padding: 9px 12px; margin: 0 -12px; border-radius: 10px; border-bottom: 1px solid rgba(255,255,255,0.06); cursor: pointer; transition: background .12s ease; }
.sz-trackline:hover { background: rgba(255,255,255,0.035); }
.sz-trackline:last-child { border-bottom: none; }
.sz-trackline__play { width: 38px; height: 38px; flex: none; border-radius: 50%; background: rgba(168,213,186,0.14); color: var(--sz-accent); display: grid; place-items: center; transition: background .12s ease, transform .12s ease; }
.sz-trackline:hover .sz-trackline__play { background: var(--sz-accent); color: #0a0a0a; }
.sz-trackline__play .sz-ic { width: 15px; height: 15px; }
.sz-trackline.is-playing { background: rgba(168,213,186,0.08); }
.sz-trackline.is-playing .sz-trackline__play { background: var(--sz-accent); color: #0a0a0a; }
.sz-trackline.is-playing .sz-trackline__title { color: var(--sz-accent); }
.sz-trackline__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.sz-trackline__title { color: #fff; font-size: 15px; font-weight: 600; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-trackline__meta { font-size: 13px; color: rgba(255,255,255,0.5); line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-trackline__meta a { color: rgba(255,255,255,0.7); text-decoration: none; }
.sz-trackline__meta a:hover { color: var(--sz-accent); }
.sz-trackline__tag { flex: none; font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.6); background: rgba(255,255,255,0.07); border-radius: 999px; padding: 4px 11px; }
.sz-trackline__actions { flex: none; display: flex; gap: 4px; opacity: 0; transition: opacity .12s ease; }
.sz-trackline:hover .sz-trackline__actions { opacity: 1; }
@media (hover: none) { .sz-trackline__actions { opacity: 1; } }
.sz-trackline__actions .sz-icon-btn { width: 32px; height: 32px; }

/* playlist card (all-playlists page) */
.sz-pl-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 18px; }
.sz-pl-card { display: block; text-decoration: none; color: inherit; background: var(--color-bg-elev-1, #111318); border: 1px solid rgba(184,186,193,0.18); border-radius: 12px; overflow: hidden; transition: transform .2s ease, border-color .2s ease; }
.sz-pl-card:hover { transform: translateY(-2px); border-color: var(--sz-accent); }
.sz-pl-card__art { aspect-ratio: 1/1; background: var(--sz-mark) center/cover no-repeat, linear-gradient(135deg, #1a1f2e, #2a3042); }
.sz-pl-card__art[data-bg] { background-size: cover; background-position: center; background-repeat: no-repeat; }
.sz-pl-card__body { padding: 14px 16px 16px; }
.sz-pl-card__title { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 1.02rem; color: #fff; margin: 0 0 4px; }
.sz-pl-card__meta { font-size: 13px; color: rgba(255,255,255,0.55); margin: 0; }

/* ============================================================
   46. NETWORK SUBPAGES — A–Z index, jump-to, filter-by-type
   ============================================================ */
.sz-net-layout { display: grid; grid-template-columns: minmax(0,1fr) 220px; gap: 56px; align-items: start; }
@media (max-width: 900px) { .sz-net-layout { grid-template-columns: 1fr; gap: 28px; } }
.sz-net-aside { position: sticky; top: calc(var(--header-height,60px) + 52px); display: flex; flex-direction: column; gap: 30px; }
@media (max-width: 900px) { .sz-net-aside { position: static; order: -1; } }

/* A–Z grouped sections */
.sz-az__group { margin-bottom: 30px; }
.sz-az__letter { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.6rem; color: #fff; margin: 0 0 4px; }
.sz-az__rule { border: none; border-top: 1px solid rgba(255,255,255,0.1); margin: 0 0 16px; }
.sz-az__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; }

/* a simple network entity card (name + type/place) — tappable row w/ chevron */
.sz-net-card { position: relative; display: block; text-decoration: none; color: inherit; background: var(--color-bg-elev-1, #111318); border: 1px solid rgba(184,186,193,0.18); border-radius: 12px; padding: 16px 46px 16px 18px; transition: transform .18s ease, border-color .18s ease, background .18s ease; }
.sz-net-card:hover { transform: translateY(-2px); border-color: var(--sz-accent); }
.sz-net-card__name { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 1.05rem; color: #fff; margin: 0; line-height: 1.25; }
.sz-net-card__meta { font-size: 13px; color: rgba(255,255,255,0.55); margin: 4px 0 0; }
.sz-net-card::after { content: ""; position: absolute; right: 18px; top: 50%; width: 9px; height: 9px; border-right: 2px solid rgba(255,255,255,0.4); border-top: 2px solid rgba(255,255,255,0.4); transform: translateY(-50%) rotate(45deg); transition: border-color .18s ease, right .18s ease; }
.sz-net-card:hover::after { border-color: var(--sz-accent); right: 15px; }

/* map-thumbnail card (provinces / cities) */
.sz-net-maptile { text-decoration: none; color: inherit; display: block; }
.sz-net-maptile__map { aspect-ratio: 1/1; border-radius: 10px; overflow: hidden; background: #14171d; border: 1px solid rgba(255,255,255,0.06); position: relative; transition: transform .18s ease, border-color .18s ease; }
.sz-net-maptile:hover .sz-net-maptile__map { transform: translateY(-2px); border-color: rgba(168,213,186,0.4); }
.sz-net-maptile__name { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 1rem; color: #fff; margin: 10px 0 1px; }
.sz-net-maptile__kind { font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.5); }

/* country tile: OSM cutout + straight flag in the lower-left corner */
.sz-group-tile__thumb--country { position: relative; overflow: hidden; background: #14171d; }
/* z-index:0 + isolation contains Leaflet's internal panes (z-index 200–700) so
   they can't paint over the flag overlay once the map tiles load in. */
.sz-group-tile__thumb--country .sz-ctile-map { position: absolute; inset: 0; z-index: 0; isolation: isolate; }
.sz-group-tile__thumb--country .sz-ctile-flag { position: absolute; left: 8px; bottom: 8px; width: 34px; height: 23px; object-fit: cover; border-radius: 3px; box-shadow: 0 2px 8px rgba(0,0,0,0.6); border: 1px solid rgba(255,255,255,0.25); z-index: 4; }
/* Province/city tiles show the parent country's flag at half size + 50% opacity (secondary context). */
.sz-group-tile__thumb--country .sz-ctile-flag--sub { transform: scale(0.5); transform-origin: left bottom; opacity: 0.5; }
.sz-group-tile__thumb--country::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(11,12,15,0) 55%, rgba(11,12,15,0.5) 100%); pointer-events: none; }
.sz-group-tile__thumb--country .leaflet-container { background: #14171d; }

/* sticky network sidebar */
.sz-network-body > aside { position: sticky; top: calc(var(--header-height,60px) + 52px); align-self: start; }
@media (max-width: 900px) { .sz-network-body > aside { position: static; } }

/* responsive carousel (slider + next/prev) */
.sz-carousel { position: relative; }
.sz-carousel__track { display: flex !important; grid-template-columns: none !important; overflow-x: auto; overflow-y: visible; scroll-snap-type: x proximity; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-top: 12px; padding-bottom: 12px; margin-top: -12px; margin-bottom: -12px; }
.sz-carousel__track::-webkit-scrollbar { display: none; }
.sz-carousel__track > * { scroll-snap-align: start; flex: 0 0 auto; }
.sz-carousel__track .album-card { width: 200px; }
.sz-carousel__track .sz-pl-card { width: 210px; }
.sz-carousel__track .sz-group-tile { width: 156px; }
.sz-carousel__btn { position: absolute; top: 40%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 50%; background: rgba(11,12,15,0.85); border: 1px solid rgba(255,255,255,0.18); color: #fff; display: none; place-items: center; cursor: pointer; z-index: 5; backdrop-filter: blur(6px); transition: background .15s ease, color .15s ease, opacity .15s ease; }
.sz-carousel.has-overflow .sz-carousel__btn { display: grid; }
.sz-carousel__btn--prev { left: -8px; }
.sz-carousel__btn--next { right: -8px; }
.sz-carousel__btn:hover { background: var(--sz-accent); color: #0a0a0a; border-color: var(--sz-accent); }
.sz-carousel__btn:disabled { opacity: 0; pointer-events: none; }
@media (max-width: 768px) { .sz-carousel__btn { width: 38px; height: 38px; } }

/* tiny toast (interaction feedback) */
.sz-toast { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%) translateY(20px); background: #1b1f27; color: #fff; border: 1px solid rgba(168,213,186,0.4); border-radius: 999px; padding: 11px 20px; font-size: 14px; z-index: 3000; opacity: 0; pointer-events: none; transition: opacity .2s ease, transform .2s ease; display: inline-flex; align-items: center; gap: 9px; box-shadow: 0 12px 40px rgba(0,0,0,0.5); }
.sz-toast--interactive { pointer-events: auto; border-radius: 14px; max-width: min(92vw, 420px); }
.sz-toast--interactive .sz-toast__body a { color: var(--sz-accent); text-decoration: underline; font-weight: 600; }
.sz-toast--interactive .sz-toast__body a:hover { color: #fff; }

/* ============================================================
   49. HERO BUTTONS SMALLER + MUSIC FILTER PANEL
   ============================================================ */
.sz-music-hero .button { height: 42px !important; padding: 0 20px !important; font-size: 14px !important; }
.sz-msearch { max-width: 720px; }
.sz-msearch__input input { height: 50px; }
.sz-msearch__filter { height: 50px; padding: 0 18px; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.2); font-size: 14px; }
.sz-msearch__submit { height: 50px; padding: 0 24px; font-size: 14px; }
.sz-msearch__filter.is-open { background: var(--sz-accent); color: #0a0a0a; border-color: var(--sz-accent); }

.sz-filter { max-width: 760px; margin-top: 14px; background: rgba(13,15,20,0.78); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,0.12); border-radius: 16px; max-height: 0; opacity: 0; padding: 0 22px; overflow: hidden; pointer-events: none; transition: max-height .32s ease, opacity .25s ease, padding .32s ease; }
.sz-filter.is-open { max-height: 900px; opacity: 1; padding: 22px; pointer-events: auto; }
.sz-filter__group { margin-bottom: 22px; }
.sz-filter__group:last-child { margin-bottom: 0; }
.sz-filter__label { display: block; font-family: 'Rules', sans-serif; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,0.55); margin: 0 0 12px; }
.sz-fchips { display: flex; flex-wrap: wrap; gap: 8px; }
.sz-fchip { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 14px; border-radius: 999px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.16); color: rgba(255,255,255,0.82); font: inherit; font-size: 13px; cursor: pointer; user-select: none; transition: background .15s ease, color .15s ease, border-color .15s ease; }
.sz-fchip:hover { background: rgba(255,255,255,0.1); color: #fff; }
.sz-fchip.is-active { background: var(--sz-accent); color: #0a0a0a; border-color: var(--sz-accent); font-weight: 600; }
.sz-filter__moods { display: none; }
.sz-filter__moods.is-shown { display: block; }
.sz-mood { display: grid; grid-template-columns: 168px 1fr 26px; align-items: center; gap: 14px; margin-bottom: 11px; }
.sz-mood:last-child { margin-bottom: 0; }
.sz-mood__name { font-size: 14px; color: rgba(255,255,255,0.85); }
.sz-mood input[type=range] { width: 100%; accent-color: var(--sz-accent); height: 4px; }
.sz-mood__val { font-variant-numeric: tabular-nums; font-size: 13px; color: var(--sz-accent); text-align: right; }
.sz-filter__foot { display: flex; justify-content: flex-end; gap: 10px; align-items: center; margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,0.08); }
.sz-filter__reset { background: none; border: none; color: rgba(255,255,255,0.6); font: inherit; font-size: 14px; cursor: pointer; padding: 8px 12px; border-radius: 8px; }
.sz-filter__reset:hover { color: #fff; background: rgba(255,255,255,0.06); }
.sz-filter__apply { height: 42px; padding: 0 24px; border-radius: 999px; background: var(--sz-accent); color: #0a0a0a; border: none; font: inherit; font-weight: 600; font-size: 14px; cursor: pointer; }
.sz-filter__apply:hover { background: var(--sz-accent-hover); }
@media (max-width: 640px) { .sz-mood { grid-template-columns: 1fr 26px; } .sz-mood__name { grid-column: 1 / -1; } .sz-filter.is-open { max-height: 1400px; } }

/* ============================================================
   48. UNIFIED MAIN-PAGE HEROES (music, weblog, shows)
   One frame: full-bleed under the transparent header, dedicated
   parallax image layer with 12% headroom (no dark border on
   scroll), left-aligned content, identical type + pill buttons.
   ============================================================ */
.sz-music-hero { position: relative; overflow: hidden; display: flex; align-items: flex-end; min-height: 400px !important; margin-top: calc(-1 * var(--header-height,60px)) !important; padding: 0 !important; background: #0b0c0f !important; border-bottom: none !important; }
.sz-music-hero--flat { margin-top: calc(-1 * var(--header-height,60px)) !important; min-height: 400px !important; }
.sz-music-hero__bg { position: absolute; left: 0; right: 0; top: -12%; height: 124%; z-index: 0; background-size: cover; background-position: center; will-change: transform; }
.sz-music-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,12,15,0.28) 0%, rgba(11,12,15,0.42) 55%, rgba(11,12,15,0.86) 100%), linear-gradient(90deg, rgba(11,12,15,0.62) 0%, rgba(11,12,15,0.08) 55%, rgba(11,12,15,0) 100%); }
.sz-music-hero__inner { position: relative; z-index: 1; max-width: var(--container-max-width); margin: 0 auto; width: 100%; padding: calc(var(--header-height,60px) + 70px) calc(var(--gap) + var(--space-24)) 50px !important; }
.sz-music-hero h1 { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: clamp(2.4rem, 4.2vw, 3.5rem) !important; line-height: 1.02; letter-spacing: -0.02em; color: #fff; margin: 0 0 14px !important; }
.sz-music-hero p { font-size: clamp(1rem, 1.4vw, 1.18rem) !important; color: rgba(255,255,255,0.82) !important; margin: 0 !important; max-width: 52ch !important; line-height: 1.5; }
.sz-music-hero__cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.sz-music-hero .button { border-radius: 999px; height: 48px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; }
.sz-music-hero .sz-msearch { margin-top: 24px; }
/* Search mode: collapse the tall browse hero so results sit directly under the
   search bar (no large empty gap). Tagline is hidden, height shrinks to content. */
.sz-music-hero.is-search { min-height: 0 !important; }
.sz-music-hero.is-search .sz-music-hero__inner { padding-bottom: 28px !important; }
.sz-music-hero.is-search > .sz-music-hero__inner > p { display: none; }
.sz-music-hero.is-search .sz-msearch { margin-top: 18px; }
@media (max-width: 768px) {
  .sz-music-hero, .sz-music-hero--flat { min-height: 320px !important; }
  .sz-music-hero.is-search { min-height: 0 !important; }
  .sz-music-hero__inner { padding: calc(var(--header-height,60px) + 40px) 16px 34px !important; }
  .sz-music-hero.is-search .sz-music-hero__inner { padding-bottom: 24px !important; }
}
.sz-toast.is-on { opacity: 1; transform: translateX(-50%) translateY(0); }
.sz-toast .sz-ic { color: var(--sz-accent); }

/* liked state + reply box for updates/board */
.sz-update__actions a.is-liked, .sz-board-post__actions a.is-liked { color: var(--sz-accent); }
.sz-update__actions a.is-liked .sz-ic { fill: var(--sz-accent); }
.sz-inline-reply { display: none; gap: 10px; align-items: center; margin-top: 12px; }
.sz-inline-reply.is-open { display: flex; }
.sz-inline-reply input { flex: 1; height: 40px; padding: 0 15px; border-radius: 999px; background: rgba(18,26,44,0.5); border: 1px solid rgba(120,140,180,0.22); color: #fff; font: inherit; font-size: 14px; outline: none; }
.sz-inline-reply input:focus { border-color: var(--sz-accent); }

/* ── add-to-playlist popover ── */
.sz-pop { position: absolute; z-index: 2600; min-width: 240px; background: #14171d; border: 1px solid rgba(255,255,255,0.12); border-radius: 12px; box-shadow: 0 18px 50px rgba(0,0,0,0.6); padding: 8px; }
.sz-pop__title { font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.5); padding: 8px 10px 6px; }
.sz-pop__item { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 9px 10px; border-radius: 8px; background: none; border: none; color: #fff; font: inherit; font-size: 14px; cursor: pointer; }
.sz-pop__item:hover { background: rgba(168,213,186,0.1); }
.sz-pop__item .sz-ic { color: var(--sz-accent); flex: none; }
.sz-pop__sep { height: 1px; background: rgba(255,255,255,0.08); margin: 6px 4px; }
.sz-pop__create { color: var(--sz-accent); font-weight: 600; }

/* ── create-playlist modal (dark, on-system) ── */
.sz-modal .sz-pl-form .sz-field:last-of-type { margin-bottom: 8px; }
.sz-check { display: flex; align-items: center; gap: 10px; font-size: 14px; color: rgba(255,255,255,0.85); cursor: pointer; }
.sz-check input { width: 18px; height: 18px; accent-color: var(--sz-accent); }

/* ── blurred artwork hero background (playlist / album) ── */
.sz-hero-art { position: relative; }
.sz-hero-art::before { content: ""; position: absolute; inset: 0; z-index: 0; background-image: var(--pl-art, none); background-size: cover; background-position: center; filter: blur(46px) saturate(1.3); transform: scale(1.25); opacity: 0.55; }
.sz-hero-art::after { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(11,12,15,0.55), rgba(11,12,15,0.92)); }
.sz-hero-art > * { position: relative; z-index: 1; }
.sz-pl-hero__art.has-img { background-image: var(--pl-art) !important; background-size: cover !important; background-position: center !important; }

/* ── collapsible dashboard / manage sidebar ── */
.sz-dash-layout { transition: grid-template-columns .26s ease; }
.sz-dash-collapse { display: inline-flex; align-items: center; gap: 8px; width: 100%; justify-content: flex-start; padding: 8px 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,0.07); background: none; border-left: 0; border-right: 0; border-bottom: 0; border-radius: 0; color: rgba(255,255,255,0.4); font: inherit; font-size: 12px; cursor: pointer; }
.sz-dash-collapse:hover { color: rgba(255,255,255,0.8); }
.sz-dash-collapse .sz-ic { transition: transform .26s ease; width: 16px; height: 16px; }
.sz-dash-layout.sz-rail { grid-template-columns: 56px minmax(0, 1fr); }
.sz-dash-layout.sz-rail .sz-dash-collapse { justify-content: center; }
.sz-dash-layout.sz-rail .sz-dash-collapse .sz-ic { transform: rotate(180deg); }
.sz-dash-layout.sz-rail .sz-dash-collapse__txt { display: none; }
.sz-dash-layout.sz-rail .sz-dash-nav__label { display: none; }
.sz-dash-layout.sz-rail .sz-dash-nav a { font-size: 0; justify-content: center; padding: 11px 0; gap: 0; border-left-color: transparent; }
.sz-dash-layout.sz-rail .sz-dash-nav a .sz-ic { font-size: 1rem; }
@media (max-width: 900px) { .sz-dash-collapse { display: none; } .sz-dash-layout.sz-rail { grid-template-columns: 1fr; } .sz-dash-layout.sz-rail .sz-dash-nav a { font-size: 14px; } }

/* country-grouped block (provinces page) */
.sz-net-country { margin-bottom: 40px; }
.sz-net-country__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.sz-net-country__eyebrow { font-family: 'Rules', sans-serif; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sz-accent); margin: 0 0 4px; }
.sz-net-country__name { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.7rem; color: #fff; margin: 0; }
.sz-net-country__name span { font-size: 0.6em; color: rgba(255,255,255,0.4); font-weight: 500; margin-left: 6px; }
.sz-net-country__link { font-size: 14px; color: var(--sz-accent); text-decoration: none; white-space: nowrap; }
.sz-net-country__link:hover { text-decoration: underline; }

/* jump-to letter index */
.sz-jump h3, .sz-typefilter h3 { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.4rem; color: #fff; margin: 0 0 16px; }
.sz-jump__keys { display: flex; flex-wrap: wrap; gap: 8px; }
.sz-jump__keys a { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 8px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); color: rgba(255,255,255,0.85) !important; text-decoration: none; font-size: 14px; transition: .12s; }
.sz-jump__keys a:hover { background: var(--sz-accent); color: #0a0a0a !important; border-color: var(--sz-accent); }
.sz-jump__keys a.is-active { background: var(--sz-accent); color: #0a0a0a !important; border-color: var(--sz-accent); }

/* filter-by-type list */
.sz-typefilter ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.sz-typefilter a { display: block; padding: 9px 14px; border-radius: 8px; font-size: 14px; color: rgba(255,255,255,0.7) !important; text-decoration: none; transition: .12s; }
.sz-typefilter a:hover { background: rgba(255,255,255,0.05); color: #fff !important; }
.sz-typefilter a.is-active { background: rgba(168,213,186,0.12); color: #fff !important; font-weight: 600; box-shadow: inset 2px 0 0 var(--sz-accent); }
@media (max-width: 900px) {
  .sz-typefilter ul { flex-direction: row; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; gap: 8px; }
  .sz-typefilter ul::-webkit-scrollbar { display: none; }
  .sz-typefilter a { white-space: nowrap; border: 1px solid rgba(255,255,255,0.12); }
  .sz-typefilter a.is-active { box-shadow: none; border-color: rgba(168,213,186,0.4); }
  .sz-jump__keys { overflow-x: auto; }
}

/* blurred-artwork backdrop for single album / playlist heroes */
.sz-pl-hero-wrap { position: relative; }
.sz-pl-hero-bg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; filter: blur(64px); transform: scale(1.3); opacity: 0.55; pointer-events: none; }
.sz-pl-hero-wrap::after { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(11,12,15,0.5) 0%, rgba(11,12,15,0.82) 100%); pointer-events: none; }
.sz-pl-hero-wrap .sz-show-hero__inner { position: relative; z-index: 1; }
.sz-pl-hero__art { box-shadow: 0 18px 50px rgba(0,0,0,0.5); }

/* ============================================================
   44. WEBLOG — spacious editorial index
   ============================================================ */
.sz-blog-filter { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0 0 8px; }
.sz-blog-wrap { max-width: 1080px; margin: 0 auto; }

/* big featured post */
.sz-blog-hero { display: grid; grid-template-columns: 1.05fr 1fr; gap: 0; border-radius: 18px; overflow: hidden; border: 1px solid rgba(255,255,255,0.08); background: var(--color-bg-elev-1, #111318); text-decoration: none; color: inherit; margin-bottom: 64px; transition: border-color .2s ease, transform .2s ease; }
.sz-blog-hero:hover { border-color: rgba(168,213,186,0.35); transform: translateY(-2px); }
@media (max-width: 860px) { .sz-blog-hero { grid-template-columns: 1fr; } }
.sz-blog-hero__media { min-height: 420px; background-size: cover; background-position: center; }
@media (max-width: 860px) { .sz-blog-hero__media { min-height: 240px; } }
.sz-blog-hero__body { padding: 52px 52px; display: flex; flex-direction: column; justify-content: center; }
@media (max-width: 860px) { .sz-blog-hero__body { padding: 32px 28px; } }
.sz-blog-eyebrow { font-family: 'Rules', sans-serif; font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sz-accent); margin: 0 0 18px; }
.sz-blog-hero__title { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: clamp(2rem, 3.2vw, 3rem); line-height: 1.06; letter-spacing: -0.02em; color: #fff; margin: 0 0 20px; }
.sz-blog-hero__excerpt { font-size: 17px; line-height: 1.6; color: rgba(255,255,255,0.75); margin: 0 0 26px; }
.sz-blog-meta { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; font-size: 13.5px; color: rgba(255,255,255,0.55); }
.sz-blog-meta .dot { width: 4px; height: 4px; border-radius: 50%; background: rgba(255,255,255,0.3); }

/* alternating spacious rows */
.sz-blog-rows { display: flex; flex-direction: column; gap: 56px; }
.sz-blog-row { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; text-decoration: none; color: inherit; }
@media (max-width: 820px) { .sz-blog-row { grid-template-columns: 1fr; gap: 22px; } }
.sz-blog-row:nth-child(even) .sz-blog-row__media { order: 2; }
@media (max-width: 820px) { .sz-blog-row:nth-child(even) .sz-blog-row__media { order: 0; } }
.sz-blog-row__media { aspect-ratio: 16/10; border-radius: 14px; background-size: cover; background-position: center; border: 1px solid rgba(255,255,255,0.06); transition: transform .25s ease; }
.sz-blog-row:hover .sz-blog-row__media { transform: scale(1.012); }
.sz-blog-row__title { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: clamp(1.5rem, 2.2vw, 2.1rem); line-height: 1.12; letter-spacing: -0.01em; color: #fff; margin: 14px 0 16px; }
.sz-blog-row:hover .sz-blog-row__title { color: var(--sz-accent); }
.sz-blog-row__excerpt { font-size: 16px; line-height: 1.6; color: rgba(255,255,255,0.7); margin: 0 0 20px; max-width: 46ch; }
.sz-blog-row__more { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--sz-accent); margin-top: 20px; }

/* pager */
.sz-pager { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 72px 0 0; padding-top: 32px; border-top: 1px solid rgba(255,255,255,0.08); }
.sz-pager__btn { display: inline-flex; align-items: center; gap: 10px; padding: 12px 20px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.16); color: #fff !important; text-decoration: none; font-size: 14px; font-weight: 500; transition: background .15s ease, border-color .15s ease; }
.sz-pager__btn:hover { background: rgba(255,255,255,0.06); border-color: rgba(168,213,186,0.4); }
.sz-pager__btn[aria-disabled="true"] { opacity: 0.35; pointer-events: none; }
.sz-pager__pages { display: flex; gap: 6px; align-items: center; }
.sz-pager__page { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 9px; font-size: 14px; color: rgba(255,255,255,0.6) !important; text-decoration: none; font-variant-numeric: tabular-nums; }
.sz-pager__page:hover { background: rgba(255,255,255,0.06); color: #fff !important; }
.sz-pager__page.is-active { background: var(--sz-accent); color: #0a0a0a !important; font-weight: 600; }
.sz-pager__gap { width: 38px; height: 38px; display: grid; place-items: center; color: rgba(255,255,255,0.35); font-size: 14px; }
@media (max-width: 600px) { .sz-pager__pages { display: none; } }

/* ── 42. purchase modal ── */
.sz-buy__item { display: flex; gap: 14px; align-items: center; padding: 14px; border-radius: 10px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); margin-bottom: 18px; }
.sz-buy__art { width: 56px; height: 56px; border-radius: 8px; flex: none; overflow: hidden; background: linear-gradient(135deg, #1a1f2e, #2a3042); }
.sz-buy__art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sz-buy__name { font-weight: 600; color: #fff; font-size: 15px; }
.sz-buy__sub { font-size: 13px; color: rgba(255,255,255,0.55); margin-top: 2px; }
.sz-buy__price { margin-left: auto; font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.25rem; color: #fff; }
.sz-buy__total { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; border-top: 1px solid rgba(255,255,255,0.08); margin-top: 8px; font-size: 14px; color: rgba(255,255,255,0.7); }
.sz-buy__total b { font-family: 'Inter Tight', sans-serif; font-size: 1.35rem; color: #fff; }
.sz-buy__fee { display: flex; justify-content: space-between; align-items: center; padding: 8px 0 0; font-size: 13px; color: rgba(255,255,255,0.55); }
.sz-buy__fee b { font-weight: 500; color: rgba(255,255,255,0.75); }
.sz-methods { display: flex; flex-direction: column; gap: 8px; }
.sz-method { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid rgba(255,255,255,0.12); border-radius: 8px; cursor: pointer; transition: border-color .15s, background .15s; }
.sz-method:hover { border-color: rgba(255,255,255,0.28); }
.sz-method:has(input:checked) { border-color: rgba(255,255,255,0.5); background: rgba(255,255,255,0.05); }
.sz-method__name { font-size: 14px; color: #fff; }
.sz-buy__done { text-align: center; padding: 12px 0 4px; }
.sz-buy__done-ic { width: 56px; height: 56px; border-radius: 50%; background: rgba(168,213,186,0.16); color: var(--sz-accent); display: grid; place-items: center; margin: 0 auto 14px; }
.sz-buy__done-ic .sz-ic { width: 26px; height: 26px; }
.sz-buy__done h3 { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.2rem; color: #fff; margin: 0 0 6px; }
.sz-buy__done p { font-size: 14px; color: rgba(255,255,255,0.6); margin: 0 0 18px; }


/* ============================================================
   45. RESPONSIVE — phone & tablet polish across all pages
   The layout primitives (sz-show-layout, sz-dash-layout,
   sz-inbox, sz-player) already collapse at their own
   breakpoints; this section handles the smaller gaps so every
   feature stays usable down to ~360px.
   ============================================================ */

/* ── Tablet ≤ 900px ─────────────────────────────────────── */
@media (max-width: 900px) {
  /* sticky rails stop being sticky once stacked (they'd pin oddly) */
  .sz-side-stack, .sz-show-panel, .sz-show-side, .sz-dash-nav, .sz-live-filters { position: static !important; }
  /* the filter rail on Shows drops below the list */
  .sz-live-layout { grid-template-columns: 1fr; }
}

/* ── Phone ≤ 640px ──────────────────────────────────────── */
@media (max-width: 640px) {
  /* tighten page gutters */
  #wrap .row > [class*="col"] { padding-left: 16px; padding-right: 16px; }

  /* page heads: title above, action below full-width */
  .sz-dash-pagehead { flex-direction: column; align-items: stretch; gap: 14px; }
  .sz-dash-pagehead > div:first-child { min-width: 0; }
  .sz-dash-pagehead .button { width: 100%; justify-content: center; }

  /* horizontal-scroll any pill / segmented strip instead of wrapping tall */
  .sz-pill-tabs, .sz-segtabs, .sz-blog-filter {
    flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none;
    -webkit-overflow-scrolling: touch; margin-left: -16px; margin-right: -16px;
    padding-left: 16px; padding-right: 16px;
  }
  .sz-pill-tabs::-webkit-scrollbar, .sz-segtabs::-webkit-scrollbar, .sz-blog-filter::-webkit-scrollbar { display: none; }
  .sz-pill, .sz-segtab { flex: none; }

  /* player: compact, button + meta then controls/scrubber stacked */
  .sz-player { gap: 16px; padding: 18px; }
  .sz-player__play { width: 60px; height: 60px; }
  .sz-player__play .sz-ic { width: 24px; height: 24px; }

  /* playlist / track rows: hide duration, keep actions reachable */
  .sz-pltrack { grid-template-columns: 28px 1fr auto; gap: 12px; }
  .sz-pltrack__dur { display: none; }
  .sz-pltrack__actions { opacity: 1; }
  .sz-trackline__tag { display: none; }
  .sz-trackline__actions { opacity: 1; }

  /* hero headers: reduce reserved height so content isn't pushed far down */
  .sz-dash-header { min-height: 220px; }
  .sz-show-hero--bleed .sz-show-hero__inner { padding-left: 16px; padding-right: 16px; }
  .sz-map-hero { height: 260px; }

  /* profile / playlist hero art shrinks */
  .sz-pl-hero { gap: 18px; }
  .sz-pl-hero__art { width: 132px; height: 132px; }

  /* identity actions wrap full-width */
  .sz-dash-header__actions { width: 100%; flex-wrap: wrap; }
  .sz-dash-header__actions .button { flex: 1; justify-content: center; min-width: 130px; }

  /* pager: stack the page-number row out, keep prev/next thumbable */
  .sz-pager { margin-top: 48px; }
  .sz-pager__btn { flex: 1; justify-content: center; }

  /* weblog prev/next: stack full-width instead of truncating side by side */
  .single-post-nav { flex-direction: column; }
  .single-post-nav .single-post-nav__link { max-width: none; white-space: normal; overflow: visible; text-overflow: clip; }
  .single-post-nav__link--next { margin-left: 0; }

  /* carousel / slider arrows: pull onto the track edge so they stay on-screen and tappable */
  .sz-carousel__btn--prev { left: 4px; }
  .sz-carousel__btn--next { right: 4px; }
  .album-modal-nav { width: 36px; height: 36px; }
  .album-modal-prev { left: 6px; }
  .album-modal-next { right: 6px; }
  .slick-prev { left: 6px; z-index: 6; }
  .slick-next { right: 6px; z-index: 6; }

  /* user grid: a 300px min column can overflow a narrow phone — go single-column */
  .sz-userlist { grid-template-columns: 1fr; }

  /* blog rows: image always on top regardless of odd/even */
  .sz-blog-row__media { order: -1 !important; }

  /* forms: single column always */
  .sz-field-grid { grid-template-columns: 1fr; }

  /* roster / group / album grids: 2-up minimum stays comfortable */
  .sz-group-tiles, .sz-group-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }

  /* messages inbox already single-column < 820; make the thread reply big enough to tap */
  .sz-thread__reply input { height: 44px; }

  /* wizard steps: hide connector labels are fine, just tighten */
  .sz-steps { gap: 4px; }
  .sz-step__label { font-size: 11px; }

  /* self tag wraps under the name instead of pushing the row wide */
  .sz-self-tag { margin-left: 0; margin-top: 8px; }
  .sz-dash-identity__name { display: flex; flex-wrap: wrap; align-items: center; }
}

/* ── Small phone ≤ 380px ────────────────────────────────── */
@media (max-width: 380px) {
  .sz-step__label { display: none; }
  .sz-dash-avatar { width: 64px; height: 64px; font-size: 24px; }
  .sz-player { flex-direction: column; text-align: center; }
  .sz-player__controls { justify-content: center; }
}

/* ── 46. MOBILE POLISH (footer, homepage hero, music search, weblog) ── */
@media (max-width: 768px) {
  /* footer: max 2 columns, neatly aligned */
  .footer-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 28px 20px !important;
    padding-left: 20px !important; padding-right: 20px !important; box-sizing: border-box; }
  /* pad the grid (not each column) so footer content lines up at a single
     20px inset — aligned with the logo, never flush to the edge */
  .footer-grid .footer-column { width: auto !important; flex: none !important; padding-left: 0 !important; padding-right: 0 !important; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 6px; padding-left: 20px !important; padding-right: 20px !important; }

  /* homepage hero: taller, more image-filling */
  .hero-home { min-height: 86vh; display: flex; align-items: flex-end; background-size: cover !important; background-position: center !important; }
  .hero-home .hero-inner, .hero-home .wrapper, .hero-home .container { width: 100%; }
  /* search: input big & prominent, button subtle + small */
  .hero-home .hero-search { flex-direction: column; gap: 10px; }
  .hero-home .hero-search input[type="search"] { height: 56px; font-size: 17px; width: 100%; }
  .hero-home .hero-search button { height: 40px; align-self: flex-start; padding: 0 18px !important; font-size: 13px; background: transparent !important; color: var(--sz-accent) !important; border: 1px solid rgba(168,213,186,0.5) !important; }

  /* music hero search: compact controls, drop genre chips */
  .sz-msearch { gap: 8px; }
  .sz-msearch__input input { height: 46px; font-size: 15px; padding: 0 16px; }
  .sz-msearch__filter { height: 46px; padding: 0 14px; font-size: 13px; }
  .sz-msearch__submit { height: 46px; padding: 0 18px; font-size: 14px; }
  .sz-genre-chips { display: none; }

  /* weblog category filter: keep visible, wrap instead of clipping */
  .sz-blog-filter { flex-wrap: wrap !important; overflow: visible !important; margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; row-gap: 8px; }
}
@media (max-width: 420px) {
  .footer-grid { grid-template-columns: 1fr 1fr !important; }
}

/* ============================================================
   47. HERO ↔ CONTENT ALIGNMENT
   Body content sits at .fullwidth gap (24) + .col padding (24)
   = 48px from the container edge. Match every hero/subnav inner
   to that so titles left-align with the content beneath.
   ============================================================ */
.sz-music-hero__inner,
.sz-map-hero__inner,
.sz-show-hero--bleed .sz-show-hero__inner,
.sz-dash-header__inner,
.sz-network-map__inner,
.sz-subnav__inner,
.sz-related-strip {
  padding-left: calc(var(--gap) + var(--space-24)) !important;
  padding-right: calc(var(--gap) + var(--space-24)) !important;
}
@media (max-width: 768px) {
  .sz-music-hero__inner,
  .sz-map-hero__inner,
  .sz-show-hero--bleed .sz-show-hero__inner,
  .sz-dash-header__inner,
  .sz-network-map__inner,
  .sz-subnav__inner,
  .sz-related-strip {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* ── 47b. Page body width ────────────────────────────────
   Cap the body content (.fullwidth > .row) to the same
   --container-max-width as the heroes/subnav, instead of
   letting it bleed edge-to-edge on wide screens. The 24px
   row gutter + 24px .col padding = 48px inset, so the content
   column lines up exactly with every hero inner. Below 1440px
   the math is unchanged (row stays 100%); only wide viewports
   gain the centered cap. */
.fullwidth { padding-left: 0; padding-right: 0; }
.fullwidth > .row {
  max-width: var(--container-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--gap);
  padding-right: var(--gap);
}
@media (max-width: 768px) {
  .fullwidth > .row { padding-left: 16px; padding-right: 16px; }
}

/* ── 47c. Footer width ───────────────────────────────────
   The footer markup is .footer_wrap.fullwidth > .footer >
   .row.footer-grid, so the body rule above (a direct-child
   selector) does not reach it. Cap .footer to the same
   --container-max-width and inset its grid + bottom bar to
   40px, so the footer columns line up under the page content
   instead of spreading edge-to-edge on wide screens. Mobile
   keeps its own !important paddings below this breakpoint. */
.footer { max-width: var(--container-max-width); margin-left: auto; margin-right: auto; }
.footer > .footer-grid { padding-left: var(--space-24); padding-right: var(--space-24); }
.footer > .footer-bottom { padding-left: calc(var(--gap) + var(--space-24)); padding-right: calc(var(--gap) + var(--space-24)); }

/* play overlay on album artwork (homepage/featured) */
.album-artwork{position:relative;}
.album-playover{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0.9);width:48px;height:48px;border-radius:50%;background:var(--sz-accent);color:#0a0a0a;display:grid;place-items:center;opacity:0;transition:opacity .18s ease,transform .18s ease;pointer-events:none;}
.album-playover .sz-ic{width:20px;height:20px;margin-left:2px;}
.album-card:hover .album-playover{opacity:1;transform:translate(-50%,-50%) scale(1);}

/* Uniform album preview size: 200px square everywhere (homepage, music,
   profile, album "more releases", group pages). Overrides inline minmax. */
.albums-grid.sz-album-strip{grid-template-columns:repeat(auto-fill,200px) !important;justify-content:start;gap:28px 24px !important;}
@media (max-width:520px){
  .albums-grid.sz-album-strip{grid-template-columns:1fr 1fr !important;gap:16px !important;}
  /* 5 icons (download/favorite/playlist/license/share) need to fit a single row
     inside a ~2-column-wide card — shrink the buttons and their gap to match. */
  .sz-album-strip .album-card .album-actions,
  .albums-grid.sz-album-strip .album-card .album-actions { gap: 4px !important; }
  .sz-album-strip .album-card .icon-small,
  .albums-grid.sz-album-strip .album-card .icon-small { width: 24px !important; height: 24px !important; }
  .sz-album-strip .album-card .icon-small .sz-ic { width: 12px !important; height: 12px !important; }
}

/* board post: group source chip + comfortable feed width */
.sz-board-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:rgba(255,255,255,0.55);}
.sz-board-chip .sz-ic{width:12px;height:12px;color:rgba(255,255,255,0.45);}
.sz-dash-content .sz-board-list{max-width:760px;}
.sz-dash-content .sz-board-post{padding:16px 18px;}

/* weblog mini cards (shared: homepage + weblog) — landscape, equal weight */
.h2-blog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.h2-blog{text-decoration:none;color:inherit;display:block;}
.h2-blog__media{aspect-ratio:16/10;border-radius:10px;background-size:cover;background-position:center;background-color:#14171d;border:1px solid rgba(255,255,255,0.06);transition:transform .2s ease;}
.h2-blog:hover .h2-blog__media{transform:translateY(-2px);}
.h2-blog__body{padding:12px 2px 0;}
.h2-blog__meta{font-family:'Rules',sans-serif;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.5);}
.h2-blog__title{font-family:'Inter Tight',sans-serif;font-weight:500;font-size:15px;line-height:1.3;color:#fff;margin:6px 0 0;}
.h2-blog:hover .h2-blog__title{color:var(--sz-accent);}
@media(max-width:900px){.h2-blog-grid{grid-template-columns:1fr 1fr;}}

/* ============================================================
   48. MODERN MOBILE NAV DRAWER + fullscreen mobile hero
   ============================================================ */
@media (max-width: 1024px) {
  /* center the header row inside the fixed bar so nothing hugs the top edge.
     NB: the generic .row carries margin-bottom + min-height; neutralise both
     here or the flex-centering pushes the logo/hamburger above the bar. */
  .site-header > .wrapper_relative { display: flex; align-items: center; }
  /* lift the header (and the X-toggle inside it) above the open drawer (z-1200)
     so the close icon stays visible; header is transparent, so the drawer's
     dark blur still shows through behind it */
  .site-header { z-index: 1300 !important; }
  .site-header > .wrapper_relative > .row { width: 100%; margin-bottom: 0; min-height: 0; }
  /* hamburger → animated lines (wider + shorter) */
  #menu_mobile_trigger { width: 48px; height: 34px; top: auto; right: auto; transform: none; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 5px; cursor: pointer; z-index: 1300; position: relative; border-radius: 9px; }
  #menu_mobile_trigger span { display: block; position: static; top: auto; width: 24px; height: 2px; background: #fff; border-radius: 2px; transition: transform .3s ease, opacity .2s ease; }
  #menu_mobile_trigger.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  #menu_mobile_trigger.active span:nth-child(2) { opacity: 0; }
  #menu_mobile_trigger.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  /* full-screen drawer */
  .mobile_menu {
    position: fixed; inset: 0; z-index: 1200;
    background: rgba(11,12,15,0.97); backdrop-filter: blur(14px);
    display: flex; flex-direction: column; justify-content: center;
    padding: calc(var(--header-height,60px) + 24px) 28px 40px;
    opacity: 0; visibility: hidden; transform: translateY(-8px);
    transition: opacity .3s ease, transform .35s cubic-bezier(.2,.8,.2,1), visibility .3s;
    max-height: none !important; overflow-y: auto; left: 0 !important; right: 0 !important; top: 0 !important; width: 100% !important;
  }
  .mobile_menu.active { opacity: 1 !important; visibility: visible !important; transform: translateY(0) !important; }
  .mobile_menu .container { width: 100%; max-width: 520px; margin: 0 auto; padding: 0; }
  .mobile_menu .mobile-nav .menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
  .mobile_menu .mobile-nav .menu li { border-bottom: 1px solid rgba(255,255,255,0.08); opacity: 0; transform: translateY(10px); }
  .mobile_menu.active .mobile-nav .menu li { animation: szDrawerIn .42s cubic-bezier(.2,.8,.2,1) forwards; }
  .mobile_menu.active .mobile-nav .menu li:nth-child(1){animation-delay:.06s;}
  .mobile_menu.active .mobile-nav .menu li:nth-child(2){animation-delay:.12s;}
  .mobile_menu.active .mobile-nav .menu li:nth-child(3){animation-delay:.18s;}
  .mobile_menu.active .mobile-nav .menu li:nth-child(4){animation-delay:.24s;}
  .mobile_menu.active .mobile-nav .menu li:nth-child(5){animation-delay:.30s;}
  .mobile_menu.active .mobile-nav .menu li:nth-child(6){animation-delay:.36s;}
  @keyframes szDrawerIn { to { opacity: 1; transform: translateY(0); } }
  .mobile_menu .mobile-nav .menu a {
    display: flex; align-items: center; justify-content: space-between;
    font-family: 'Inter Tight', sans-serif; font-weight: 600;
    font-size: clamp(1.2rem, 5vw, 1.55rem); letter-spacing: -0.01em;
    color: #fff !important; text-decoration: none; padding: 13px 2px; line-height: 1.1;
    transition: color .15s ease, padding-left .2s ease;
  }
  .mobile_menu .mobile-nav .menu a::after { content: "→"; color: var(--sz-accent); font-size: 0.7em; opacity: 0; transform: translateX(-8px); transition: opacity .2s ease, transform .2s ease; }
  .mobile_menu .mobile-nav .menu a:hover { color: var(--sz-accent) !important; padding-left: 8px; }
  .mobile_menu .mobile-nav .menu a:hover::after { opacity: 1; transform: translateX(0); }
  /* optional auth row inside the drawer (homepage) */
  .mobile_menu__auth { display: flex; gap: 12px; margin-top: 30px; }
  .mobile_menu__auth .button { flex: 1; justify-content: center; height: 52px; font-size: 16px; }
}

/* fullscreen mobile hero */
@media (max-width: 760px) {
  .h2-hero { min-height: 100svh; }
}

/* ============================================================
   51. MOBILE OVERFLOW / LAYOUT HARDENING + HAMBURGER + FOOTER
   ============================================================ */
@media (max-width: 1024px) {
  /* keep header on one line; hamburger pinned right, vertically centered */
  .site-header .row { flex-wrap: nowrap !important; }
  .site-header .logo { margin-right: auto; }
  #menu_mobile_trigger { margin-left: auto; order: 9; flex: none; }
}
@media (max-width: 768px) {
  /* collapse every two/three-column layout to a single column */
  .sz-dash-layout, .sz-net-layout, .sz-network-body, .sz-show-layout,
  .sz-form-layout, .h2-2col, .h2-feature, .h2-split, .sz-inbox {
    grid-template-columns: 1fr !important;
  }
  /* nothing may be wider than the viewport */
  #wrap, .site-content, .fullwidth, .row, .col,
  .sz-dash-content, .sz-network-body > div, .sz-show-layout > div,
  .sz-dash-layout, .sz-net-layout {
    max-width: 100% !important; min-width: 0 !important; box-sizing: border-box;
  }
  .col { flex-basis: 100% !important; width: 100% !important; }
  /* explicit-width grid columns (col-6, col-4 …) carry inline gutter padding
     for side-by-side layout; once they stack full-width that padding only
     pushes content out of alignment — neutralise horizontal padding and add a
     small vertical gap. Plain .col (e.g. footer columns) keeps its padding so
     it stays inset from the edge. */
  .row > [class*="col-"] { padding-left: 0 !important; padding-right: 0 !important; }
  .row > [class*="col-"] + [class*="col-"] { margin-top: 8px; }

  /* search bars + control rows: wrap, never overflow */
  .sz-search-bar, .sz-msearch, .sz-userbar, .sz-board-compose, .sz-thread__reply {
    flex-wrap: wrap; width: 100%; max-width: 100%; box-sizing: border-box;
  }
  .sz-search-bar input, .sz-msearch__input, .sz-userbar__search { flex: 1 1 100%; min-width: 0; }
  .sz-search-bar__filter-btn, .sz-search-bar__submit, .sz-msearch__filter, .sz-msearch__submit { flex: 1 1 auto; }
  .sz-search-bar input, .sz-userbar__search input { width: 100%; box-sizing: border-box; }

  /* dashboard nav: collapsed behind a hamburger toggle on mobile — the full
     vertical stack (every item under the previous one) only shows once opened,
     so the page doesn't open with a screen-height list of nav links. */
  .sz-dash-nav { flex-direction: column !important; flex-wrap: nowrap !important;
    overflow: visible; gap: 4px; position: static !important;
    margin: 0 0 22px; padding: 0; width: 100%; max-width: 100%; box-sizing: border-box;
    display: none; }
  .sz-dash-nav.is-open { display: flex; }
  .sz-dash-nav::-webkit-scrollbar { display: none; }
  .sz-dash-nav a { white-space: nowrap; width: 100%; box-sizing: border-box; }
  .sz-dash-nav__label { display: block !important; }
  .sz-dash-collapse { display: none !important; }

  .sz-dash-nav-toggle {
    display: flex; align-items: center; gap: 10px; width: 100%; box-sizing: border-box;
    padding: 12px 14px; margin-bottom: 10px; border-radius: 10px;
    background: var(--color-bg-elev-2, #161A22); border: 1px solid rgba(255,255,255,0.08);
    color: #fff; font-family: 'Inter Tight',sans-serif; font-weight: 600; font-size: 14px; cursor: pointer;
  }
  .sz-dash-nav-toggle__burger { display: flex; flex-direction: column; justify-content: center; gap: 3px; width: 16px; height: 16px; flex-shrink: 0; }
  .sz-dash-nav-toggle__burger span { display: block; height: 2px; border-radius: 1px; background: rgba(255,255,255,0.85); transition: transform .15s ease, opacity .15s ease; }
  .sz-dash-nav-toggle.is-open .sz-dash-nav-toggle__burger span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
  .sz-dash-nav-toggle.is-open .sz-dash-nav-toggle__burger span:nth-child(2) { opacity: 0; }
  .sz-dash-nav-toggle.is-open .sz-dash-nav-toggle__burger span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }
  .sz-dash-nav-toggle__label { flex: 1; text-align: left; }
  .sz-dash-nav-toggle__chev { width: 14px; height: 14px; color: rgba(255,255,255,0.5); transition: transform .15s ease; flex-shrink: 0; }
  .sz-dash-nav-toggle.is-open .sz-dash-nav-toggle__chev { transform: rotate(180deg); }

  /* collection / track rows: keep actions inside the row */
  .sz-coll-row, .sz-pltrack, .sz-trackline, .sz-board-post, .sz-conv-row { max-width: 100%; }

  /* form action bars (album-edit save/publish/delete row, etc.): stack full-width
     instead of overflowing — a row of 4-5 buttons never fits a phone width. */
  .sz-form-actions, .action-buttons { flex-wrap: wrap; justify-content: stretch; }
  .sz-form-actions .button, .sz-form-actions a.button,
  .action-buttons .button, .action-buttons a.button {
    flex: 1 1 100%; width: 100%; margin: 0 !important; box-sizing: border-box; justify-content: center;
  }

  /* footer: pack columns to the left, closer together */
  .footer-grid { display: grid !important; grid-template-columns: repeat(2, max-content) !important;
    justify-content: start !important; gap: 26px 56px !important; }
  .footer-bottom { padding-left: 0; padding-right: 0; gap: 6px; }

  /* belt-and-braces: any form control, panel or media never exceeds width */
  input, select, textarea, .sz-input, .sz-select, .sz-textarea { max-width: 100%; box-sizing: border-box; }
  .sz-filter-panel__grid { grid-template-columns: 1fr !important; }
  .sz-filter, .sz-filter-panel, .sz-modal, .sz-pop { max-width: calc(100vw - 24px); box-sizing: border-box; }
  .sz-live-filters, .sz-net-aside, .sz-side-stack, .sz-form-aside { width: 100% !important; }
  /* tables (capability matrix) scroll inside their wrapper, not the page */
  .sz-caps-wrap { max-width: 100%; }
}

/* ============================================================
   50. GLOBAL ANTI-OVERFLOW + MOBILE BOTTOM TAB BAR (app-like)
   ============================================================ */
/* overflow-x: clip (NOT hidden) — clip prevents horizontal overflow without
   creating a scroll container, so it does not force overflow-y to `auto` and
   therefore does NOT break `position: sticky` (e.g. the .sz-subnav). */
html, body { max-width: 100%; overflow-x: clip; }
img, svg, video, canvas, iframe { max-width: 100%; }

/* ── Live search results banner ─────────────────────────── */
.is-search-hidden { display: none !important; }
.sz-search-banner {
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  padding: 14px 18px; margin-bottom: 24px;
  border: 1px solid rgba(168,213,186,0.28); border-radius: 12px;
  background: rgba(168,213,186,0.07);
}
.sz-search-banner__label { display: inline-flex; align-items: center; gap: 10px; font-size: 14.5px; color: rgba(255,255,255,0.85); }
.sz-search-banner__label .sz-ic { width: 16px; height: 16px; color: var(--sz-accent); }
.sz-search-banner__label b { color: #fff; font-weight: 600; }
.sz-search-banner__clear {
  flex: none; display: inline-flex; align-items: center; height: 36px; padding: 0 16px;
  border-radius: 999px; border: 1px solid rgba(255,255,255,0.2); background: transparent;
  color: rgba(255,255,255,0.85); font: inherit; font-size: 13px; cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.sz-search-banner__clear:hover { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.35); color: #fff; }
.sz-search-empty {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  text-align: center; padding: 56px 20px; color: rgba(255,255,255,0.6);
  border: 1px dashed rgba(255,255,255,0.12); border-radius: 14px; margin-bottom: 24px;
}
.sz-search-empty .sz-ic { width: 26px; height: 26px; color: rgba(255,255,255,0.35); }
.sz-search-empty p { margin: 0; font-size: 14px; }
.sz-search-empty[hidden] { display: none !important; }
#szSearchBanner[hidden] { display: none !important; }

.sz-tabbar { display: none; }

/* ── Local place hub (City / Province / Country) ─────────── */
.sz-placenav { position: sticky; top: var(--header-height, 60px); z-index: 40; background: #0B0C0F; border-bottom: 1px solid rgba(255,255,255,0.08); box-shadow: 0 1px 0 rgba(0,0,0,0.4); }
.sz-placenav__inner { max-width: var(--container-max-width); margin: 0 auto; padding: 0 var(--space-32); display: flex; gap: 26px; overflow-x: auto; scrollbar-width: none; }
.sz-placenav__inner::-webkit-scrollbar { display: none; }
.sz-placenav button, .sz-placenav a { display: inline-flex; align-items: center; gap: 8px; padding: 15px 2px; background: none; border: none; border-bottom: 2px solid transparent; color: rgba(255,255,255,0.55); font: inherit; font-size: 14px; cursor: pointer; white-space: nowrap; text-decoration: none; transition: color .15s ease, border-color .15s ease; }
.sz-placenav button .sz-ic, .sz-placenav a .sz-ic { width: 15px; height: 15px; color: rgba(255,255,255,0.4); }
.sz-placenav button:hover, .sz-placenav a:hover { color: #fff; }
.sz-placenav button.is-active, .sz-placenav a.is-active { color: #fff; border-bottom-color: var(--sz-accent); }
.sz-placenav button.is-active .sz-ic, .sz-placenav a.is-active .sz-ic { color: var(--sz-accent); }
.sz-placenav .sz-pcount { font-size: 12px; color: rgba(255,255,255,0.38); font-variant-numeric: tabular-nums; }
@media (max-width: 768px) { .sz-placenav__inner { padding: 0 16px; gap: 18px; } }

.place-panel[hidden] { display: none; }
.place-panel { animation: placeFade .25s ease; }
@keyframes placeFade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* ── Place hub spacing — reproduces the mockup inline styles as scoped CSS ──
   (place-country.html, place-province.html, group-detail.html used style="…"
   for all of this; the live templates dropped the inline styles, so the values
   are restored here, scoped to the hub panels only.) */

/* Bigstats blocks — mockup: style="margin-bottom:34px" (overview + stats panels) */
.place-panel .sz-bigstats { margin-bottom: 34px; }

/* Section heads in the overview + groups panels — mockup: margin-bottom 10px (Live)
   / 14px (the rest). Default .sz-section-head is 24px, which collapsed the rhythm. */
.place-panel .sz-show-section .sz-section-head { margin-bottom: 14px; }
.place-panel[data-panel="overview"] .sz-show-section:first-child .sz-section-head { margin-bottom: 10px; }

/* Overview section titles — mockup: style="font-size:1.6rem" */
.place-panel[data-panel="overview"] .sz-show-section .sz-section-head__title { font-size: 1.6rem; }

/* Groups-panel category titles — mockup: style="font-size:1.4rem" */
.place-panel[data-panel="groups"] .sz-show-section .sz-section-head__title { font-size: 1.4rem; }

/* Groups-panel category filter — mockup: #catFilter style="margin-bottom:24px" */
.place-panel[data-panel="groups"] #catFilter { margin-bottom: 24px; }

/* Stats-panel section titles — mockup: style="font-size:1.5rem" + heads 18px / 6px */
.place-panel[data-panel="stats"] .sz-show-section .sz-section-head__title { font-size: 1.5rem; }
.place-panel[data-panel="stats"] .sz-show-section .sz-section-head { margin-bottom: 18px; }
.place-panel[data-panel="stats"] .sz-show-section:last-child .sz-section-head { margin-bottom: 6px; }

/* Places/Cities panel heads — mockup: first head margin-bottom:18px, title 1.5rem;
   second head margin:34px 0 18px (the .sz-section-head--spaced gap that was missing). */
.place-panel[data-panel="cities"] .sz-section-head { margin-bottom: 18px; }
.place-panel[data-panel="cities"] .sz-section-head__title { font-size: 1.5rem; }
.sz-section-head--spaced { margin-top: 34px; }

/* A–Z place grids — mockup: overview style="minmax(190px,1fr)",
   cities panel style="minmax(200px,1fr)". Default grid is minmax(210px,1fr). */
.place-panel .sz-az__grid--places { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.place-panel[data-panel="overview"] .sz-az__grid--places { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }

/* Board lists inside the hub — mockup: style="max-width:none" (no cap) */
.place-panel .sz-board-list { max-width: none; }

/* Sidebar "About" body copy — mockup: style="font-size:14px;color:rgba(255,255,255,0.7);margin:0" */
.place-panel .sz-side-stack .sz-show-panel__text { font-size: 14px; color: rgba(255,255,255,0.7); margin: 0; }

/* Sidebar "Full statistics →" link — mockup: style="font-size:13px;display:inline-block;margin-top:12px" */
.place-panel .sz-side-stack .sz-show-panel__more { font-size: 13px; display: inline-block; margin-top: 12px; }

/* big stat cards */
.sz-bigstats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; }
.sz-bigstat { border: 1px solid rgba(255,255,255,0.1); border-radius: 14px; padding: 18px 20px; background: rgba(255,255,255,0.02); }
.sz-bigstat__num { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 2rem; color: #fff; letter-spacing: -0.02em; line-height: 1; }
.sz-bigstat__lbl { font-size: 12.5px; color: rgba(255,255,255,0.5); margin-top: 7px; }
.sz-bigstat__delta { font-size: 12px; color: var(--sz-accent); margin-top: 5px; }
.sz-bigstat__delta--flat { color: rgba(255,255,255,0.4); }

/* horizontal stat bars */
.sz-statbars { display: flex; flex-direction: column; gap: 15px; }
.sz-statbar__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 13.5px; color: rgba(255,255,255,0.82); margin-bottom: 6px; }
.sz-statbar__top b { color: #fff; font-weight: 600; font-variant-numeric: tabular-nums; }
.sz-statbar__track { height: 8px; border-radius: 999px; background: rgba(255,255,255,0.08); overflow: hidden; }
.sz-statbar__fill { height: 100%; border-radius: 999px; background: var(--sz-accent); }

/* mini month bars */
.sz-monthbars { display: flex; align-items: flex-end; gap: 10px; height: 130px; padding-top: 10px; }
.sz-monthbar { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 8px; height: 100%; justify-content: flex-end; }
.sz-monthbar__bar { width: 100%; max-width: 46px; border-radius: 6px 6px 0 0; background: linear-gradient(180deg, rgba(168,213,186,0.85), rgba(168,213,186,0.35)); }
.sz-monthbar__lbl { font-size: 11px; color: rgba(255,255,255,0.45); }
.sz-monthbar__val { font-size: 12px; color: rgba(255,255,255,0.7); font-weight: 600; }

/* groups-panel jump-to list + genre filter */
.sz-groupjump { display: flex; flex-direction: column; gap: 2px; }
.sz-groupjump a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; border-radius: 8px; font-size: 13.5px; color: rgba(255,255,255,0.72); text-decoration: none; transition: background .15s ease, color .15s ease; }
.sz-groupjump a:hover { background: rgba(255,255,255,0.05); color: #fff; }
.sz-groupjump a span { font-size: 12px; color: rgba(255,255,255,0.4); font-variant-numeric: tabular-nums; }
[data-panel="groups"] .sz-show-section { scroll-margin-top: calc(var(--header-height, 60px) + 72px); }
.sz-genre-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: -4px 0 16px; }
.sz-genre-row__label { font-size: 12px; color: rgba(255,255,255,0.45); font-family: 'Rules', sans-serif; letter-spacing: 0.06em; text-transform: uppercase; }
@media (max-width: 768px) {
  .sz-tabbar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1100;
    display: flex; background: rgba(11,12,15,0.96); backdrop-filter: blur(16px);
    border-top: 1px solid rgba(255,255,255,0.1);
    padding: 6px 4px calc(6px + env(safe-area-inset-bottom, 0px));
  }
  .sz-tabbar a {
    flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px;
    padding: 6px 2px; color: rgba(255,255,255,0.55); text-decoration: none;
    font-size: 10px; letter-spacing: .01em; min-width: 0;
  }
  .sz-tabbar a svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .sz-tabbar a.is-active { color: var(--sz-accent); }
  .sz-tabbar a:active { transform: scale(0.94); }
  body { padding-bottom: 66px !important; }
  /* keep any sticky right-edge controls clear of the bar */
  .sz-toast { bottom: 78px; }
}


/* ===== LIVE CARRY-OVER (appended after production source of truth) ===== */
/* =========================================================================
   CARRY-OVER — live-only families not present in the 2026 production CSS.
   Kept so the already-ported homepage / music / network-sub / single pages
   render unchanged. Loaded after the production CSS (this file's main body).
   ========================================================================= */

/* Homepage "upcoming shows" list tuning (#hp-upcoming keeps its live IDs) */
#hp-upcoming .event-date-badge .day { font-family: 'Inter Tight', sans-serif; font-size: 22px; letter-spacing: 0; }
#hp-upcoming .event-title { font-size: 15px; }
#hp-upcoming .event-meta  { font-size: 12px; margin-top: 2px; }
#hp-upcoming .event-ticket-btn-light { padding: 7px 14px; font-size: 12px; margin-left: auto; flex-shrink: 0; transition: background .15s ease, color .15s ease, border-color .15s ease; }
#hp-upcoming .event-ticket-btn-light:hover { background: var(--sz-accent); border-color: var(--sz-accent); color: #0a0a0a; }

/* Homepage featured-release two-column row (main release + side playlists) */
.sz-home-featured-row { align-items: flex-start; }
.sz-home-featured-row__side .sz-section-head__title { font-size: clamp(1.25rem, 2vw, 1.6rem); }
.sz-home-featured-row__main .sz-feature-release { grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: 28px; }
.sz-home-featured-row__main .sz-feature-release__art { width: 100%; max-width: 220px; height: auto; aspect-ratio: 1 / 1; }
@media (max-width: 1100px) {
  .sz-home-featured-row__main .sz-feature-release { grid-template-columns: 1fr; }
  .sz-home-featured-row__main .sz-feature-release__art { max-width: 280px; }
}
@media (max-width: 900px) {
  .sz-home-featured-row .col-8,
  .sz-home-featured-row .col-4 { flex: 0 0 100%; max-width: 100%; }
}

/* Playable featured tracklist (homepage / music Featured release) */
#sz-fr-playalbum { font-family: inherit; }
.sz-tracklist--playable li { cursor: pointer; border-radius: 8px; transition: background .15s ease; }
.sz-tracklist--playable li:hover { background: rgba(255,255,255,0.06); }
.sz-tracklist--playable .sz-fr-track__lead { position: relative; width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; transition: background .15s ease; }
.sz-tracklist--playable .sz-fr-track__lead .num { transition: opacity .12s ease; }
.sz-tracklist--playable .sz-fr-track__icon { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font-size: 10px; color: var(--sz-accent); opacity: 0; transition: opacity .12s ease; }
.sz-tracklist--playable li:hover .num { opacity: 0; }
.sz-tracklist--playable li:hover .sz-fr-track__icon { opacity: 1; }
.sz-tracklist--playable li.is-active { background: rgba(168, 213, 186, 0.10); }
.sz-tracklist--playable li.is-active .num { opacity: 0; }
.sz-tracklist--playable li.is-active .sz-fr-track__lead { background: var(--sz-accent); }
.sz-tracklist--playable li.is-active .sz-fr-track__icon { color: #0a0a0a; opacity: 1; }
.sz-tracklist--playable li.is-active .name { color: var(--sz-accent); font-weight: 600; }
.sz-tracklist--playable li.is-active .dur { color: var(--sz-accent); }

/* Default S-logo hero placeholder (single posts, network sub-pages, music) */
.sz-hero-bg--default { background-color: #0b0c0f !important; background-image: url('../images/hero-default.jpg') !important; background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important; position: relative; }
.sz-hero-bg--default::after { content: ''; position: absolute; inset: 0; background-image: none; background: linear-gradient(180deg, rgba(11,12,15,0.35) 0%, rgba(11,12,15,0.9) 100%); opacity: 1; pointer-events: none; z-index: 0; }
.sz-music-hero.sz-hero-bg--default::before { background: none; }

/* Music-page genre pills + filter slidedown integration */
.sz-genre-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.sz-genre-pills .button.button-outline.button-sm,
.sz-genre-pills a.button.button-outline.button-sm { display: inline-flex !important; align-items: center !important; justify-content: center !important; box-sizing: border-box !important; height: 32px !important; min-height: 32px !important; max-height: 32px !important; line-height: 1 !important; padding: 0 16px !important; border-radius: 999px !important; font-size: 13px !important; }
.sz-genre-pills .button.button-sm.is-active,
.sz-genre-pills a.button.button-sm.is-active { background: var(--sz-accent) !important; color: #0a0a0a !important; border-color: var(--sz-accent) !important; }
.sz-music-hero .music-filter-slidedown.sz-filter-panel { width: 100%; background: transparent; border: none; border-radius: 0; padding: 0; margin-top: 10px; }
.sz-music-hero .music-filter-slidedown.sz-filter-panel.is-open { max-height: 580px; padding: 0; margin-bottom: 14px; }

/* Board-post avatar default disc (no inline gradients — class-driven) */
.sz-board-post__avatar { background: linear-gradient(135deg, #2f5a3f, #3f7a54); }
/* Board-post content column (replaces the mockup's inline flex:1;min-width:0) */
.sz-board-post__main { flex: 1; min-width: 0; }
/* Compact board rows (network sidebar) truncate the body to two lines */
.sz-board-post--compact .sz-board-post__body { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* Dashboard header avatar holds the Simezu avatar <img> (round, fills container) */
.sz-dash-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }

/* User-row avatar holds a real (Simezu) avatar <img> when available */
.sz-user-row__avatar { overflow: hidden; }
.sz-user-row__avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }

/* User-row avatar: default disc for initials; square-rounded variant for group avatars */
.sz-user-row__avatar { background: linear-gradient(135deg, #3a4256, #566077); color: #fff; font-weight: 600; font-size: 13px; text-decoration: none; }
.sz-user-row__avatar--sq { border-radius: 8px; }
.sz-user-row__avatar--sq img { border-radius: 8px; }

/* Activity feed: content column + make functional <button> actions read as the design's action links */
.sz-update__main { flex: 1; min-width: 0; }
.sz-update__actions button { background: none; border: 0; padding: 0; margin: 0; font: inherit; color: rgba(255,255,255,0.6); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.sz-update__actions button:hover { color: var(--sz-accent); }
.sz-update__avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; display: block; }
.sz-update__avatar--group img { border-radius: 8px; }

/* JS-revealed fade gate (replaces inline style="opacity:0") */
.sz-fade-pending { opacity: 0; transition: opacity .25s ease; }
.sz-fade-pending.is-ready { opacity: 1; }

/* Simezu info panel (payment settings etc.) */
.sz-info-panel p { margin: 0 0 16px; color: #fff; display: flex; gap: 10px; align-items: flex-start; line-height: 1.55; }
.sz-info-panel p i { color: var(--sz-accent); margin-top: 3px; }

/* Elements that receive a runtime background image via data-bg (JS-applied) */
[data-bg] { background-size: cover; background-position: center; background-repeat: no-repeat; }

/* Simezu info-panel action row */
.sz-info-panel h3 { margin: 0 0 12px; font-size: 1.2rem; }
.sz-info-panel__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 16px; }

/* Payout: connect prompt banner + account card + earnings pool */
.sz-payout-banner { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 24px; padding: 14px 18px; border: 1px solid var(--sz-accent, #b6f09c); border-radius: 12px; background: rgba(182, 240, 156, 0.08); line-height: 1.5; }
.sz-payout-banner .sz-ic { color: var(--sz-accent, #b6f09c); flex: 0 0 auto; }
.sz-payout-banner span { flex: 1 1 220px; }
.sz-pass-banner[hidden] { display: none; }
.sz-pass-banner__close {
  flex: 0 0 auto; margin-left: auto; width: 34px; height: 34px;
  display: grid; place-items: center; border-radius: 9px; border: 0;
  background: rgba(255,255,255,0.05); color: rgba(255,255,255,0.6); cursor: pointer;
  transition: background .15s ease, color .15s ease;
}
.sz-pass-banner__close:hover { background: rgba(255,255,255,0.12); color: #fff; }
.sz-pass-banner__close .sz-ic { width: 16px; height: 16px; color: inherit; }
.sz-payout-card { margin-top: 28px; }
.sz-payout-card .sz-form-section__title { display: flex; align-items: center; gap: 8px; }
.sz-payout-status { margin: 0 0 14px; font-size: 0.92rem; }
.sz-payout-status.is-ok { color: var(--sz-accent, #b6f09c); }
.sz-payout-status.is-warn { color: #e9b44c; }
.sz-payout-card .sz-radio { display: block; margin: 6px 0; }
.sz-earnings { margin-top: 28px; }
.sz-earnings__status { color: var(--sz-muted, #9aa0a6); margin: 0 0 14px; }
.sz-earnings__prefs { margin: 12px 0 0; color: var(--sz-muted, #9aa0a6); font-size: 0.92rem; }
.sz-earnings__list { margin: 8px 0 0; padding-left: 18px; }
.sz-earnings__list li { margin: 4px 0; }

/* Network sidebar + map utilities (replaces pre-existing inline styles) */
.sz-btn-block { width: 100%; text-align: center; }
.nw-sidebar-sticky { position: sticky; top: 5.5rem; }
.nw-sidebar-text { font-size: .875rem; color: var(--color-text-muted); margin: 0 0 .75rem; }
.nw-empty { color: var(--color-text-muted); padding: 3rem 0; text-align: center; }
.nw-map-actions { display: flex; gap: 10px; flex-wrap: wrap; pointer-events: auto; }
.nw-board-foot { margin-top: .9rem; }
.nw-board-foot--cta { margin-top: .75rem; }
.nw-row-flush { margin: 0; }
.nw-board-cols > .col-6:first-child { padding-right: var(--space-32); }
.nw-board-cols > .col-6:last-child { padding-left: var(--space-32); }
@media (max-width: 768px) {
  .nw-board-cols > .col-6:first-child,
  .nw-board-cols > .col-6:last-child { padding-left: 0; padding-right: 0; }
  .nw-board-cols > .col-6 { flex: 0 0 100%; max-width: 100%; }
}
.nw-map-dot { width: 12px; height: 12px; border-radius: 50%; background: var(--color-accent, #A8D5BA); border: 2px solid #fff; opacity: .85; }
.nw-map-badge { opacity: .7; }
.nw-map-link { font-weight: 600; text-decoration: none; }

/* Pill tabs rendered as <button> with JS-toggled .active (playlists/other dashboard tabs) */
button.sz-pill { font: inherit; cursor: pointer; }
.sz-pill.active { background: var(--sz-accent); border-color: var(--sz-accent); color: #0a0a0a; }
.sz-pill.active .sz-pill__count { color: #0a0a0a; opacity: 0.7; }

/* Playlist inline edit-form + messages (moved out of JS template-literal inline styles) */
.playlist-edit-form { padding: 14px; background: var(--color-bg-elev-1, #111318); border: 1px solid var(--color-border-subtle, rgba(184,186,193,0.2)); border-radius: 8px; margin: 10px 0; }
.playlist-edit-name, .playlist-edit-description { width: 100%; padding: 8px 12px; margin-bottom: 10px; background: var(--color-bg, #0b0c0f); border: 1px solid rgba(255,255,255,0.18); color: #fff; border-radius: 6px; font: inherit; }
.playlist-edit-description { min-height: 60px; }
.playlist-edit-actions { display: flex; gap: 10px; }
.playlist-save-btn { padding: 8px 16px; background: var(--sz-accent); color: #0a0a0a; border: none; border-radius: 6px; cursor: pointer; font: inherit; font-weight: 600; }
.playlist-cancel-btn { padding: 8px 16px; background: rgba(255,255,255,0.06); color: #fff; border: 1px solid rgba(255,255,255,0.2); border-radius: 6px; cursor: pointer; font: inherit; }
.playlist-message { padding: 14px; border-radius: 6px; margin-bottom: 15px; }
.playlist-message.success { background: rgba(168,213,186,0.12); border: 1px solid var(--sz-accent); color: var(--sz-accent); }

/* Messages thread-info spacing (moved out of inline style) */
.thread-info { padding-left: 4px; }

/* Square-rounded dashboard avatar (groups; users stay round) */
.sz-dash-avatar--sq, .sz-dash-avatar--sq img { border-radius: 12px; }

/* Music page: filter slidedown internals (moved out of template inline <style>) */
.music-search-form-wrap { margin: 0; padding: 0; }
.music-filter-slidedown { width: 100%; overflow: hidden; max-height: 0; transition: max-height .25s ease; background: #0d0e12; border-bottom: 1px solid rgba(255,255,255,.06); }
.music-filter-slidedown.is-open { max-height: 580px; }
.music-filter-slidedown-inner { width: 100%; max-width: var(--container-max-width); margin: 0 auto; padding: 20px var(--space-32, 32px); box-sizing: border-box; }
.sz-music-hero .music-filter-slidedown-inner { padding: 12px 0 0; }
.music-filter-columns { display: flex; flex-wrap: wrap; gap: 28px 32px; align-items: flex-start; }
.music-filter-col { flex: 0 1 auto; }
.music-filter-col-types { min-width: 280px; }
.music-filter-col-moods { min-width: 260px; }
.music-filter-col-moods.is-hidden { display: none; }
.music-filter-moods-title { margin: 0 0 10px 0; font-family: 'Rules', sans-serif; font-size: 10px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.55); }
.music-filter-moods-sliders { display: grid; gap: 10px; padding: 4px 0 8px; }
.music-filter-mood-row { display: flex; align-items: center; gap: 12px; }
.music-filter-mood-row label { min-width: 140px; font-size: 13px; color: rgba(255,255,255,.85); margin: 0; }
.music-filter-mood-slider { flex: 1; max-width: 200px; accent-color: var(--sz-accent, #a8d5ba); height: 6px; }
.music-filter-mood-value { min-width: 1.5em; font-size: 13px; color: var(--sz-accent, #a8d5ba); font-weight: 500; font-family: ui-monospace, monospace; }
.music-filter-moods-hint { margin: 0; padding-top: 6px; font-size: 12px; color: rgba(255,255,255,.5); }
.music-filter-col-actions { display: flex; gap: 10px; align-items: flex-end; flex-wrap: wrap; margin-top: auto; }
.music-filter-reset { height: 38px; padding: 0 16px; background: rgba(255,255,255,.06); color: rgba(255,255,255,.85); border: 1px solid rgba(184,186,193,.20); border-radius: 6px; font-size: 13px; cursor: pointer; font-family: inherit; transition: background .15s ease, border-color .15s ease; }
.music-filter-reset:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,0.3); }
.music-filter-apply { height: 38px !important; line-height: 38px !important; padding: 0 18px !important; border-radius: 999px !important; background: var(--sz-accent, #a8d5ba) !important; color: #0a0a0a !important; font-weight: 600 !important; font-size: 13px !important; border: none !important; cursor: pointer; font-family: inherit; }
.music-filter-apply:hover { background: var(--sz-accent-hover, #c1e2c8) !important; }
.music-type-filters { border: none; padding: 0; margin: 0; }
.music-type-filters legend { font-family: 'Rules', sans-serif; font-size: 10px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.55); margin-bottom: 10px; }
.music-type-filters label { display: inline-flex; align-items: center; gap: .4rem; margin-right: 1rem; margin-bottom: .5rem; font-size: 13px; color: #fff; cursor: pointer; }
.music-type-filters input[type="checkbox"] { accent-color: var(--sz-accent, #a8d5ba); }

/* Music search-results spacing helpers (replaced inline margin styles) */
.result-group__tiles { margin-bottom: 1.5rem; }
.result-group__grid { margin-bottom: 1rem; }

/* Non-important hidden utility for JS-toggled initial state (jQuery .show()/.hide()
   sets an inline display that overrides this; replaces inline style="display:none"). */
.sz-hidden { display: none; }

/* Group public page: meta pills, link pills, embed-code block (moved out of inline styles) */
.sz-meta-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.sz-meta-pill { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.06); color: #ddd; border: 1px solid rgba(255,255,255,.15); border-radius: 20px; padding: .3rem .9rem; font-size: .82rem; font-weight: 600; }
.sz-meta-pill--accent { background: rgba(168,213,186,.12); color: #a8d5ba; border-color: rgba(168,213,186,.35); }
.sz-link-pill { display: inline-flex; align-items: center; gap: 6px; padding: .3rem .8rem; border-radius: 16px; border: 1px solid rgba(255,255,255,.2); text-decoration: none; color: #ddd; font-size: .8rem; }
.embed-code-block { margin-top: 1.25rem; }
.embed-code-block__summary { cursor: pointer; color: #a8d5ba; font-size: .85rem; font-weight: 600; list-style: none; display: flex; align-items: center; gap: 6px; user-select: none; }
.embed-code-block__panel { margin-top: .75rem; background: #1a1a1a; border: 1px solid #333; border-radius: 6px; padding: .75rem 1rem; }
.embed-code-block__hint { font-size: .8rem; color: #888; margin-bottom: .5rem; }
.embed-code-block__code { display: block; font-size: .78rem; background: #111; color: #a8d5ba; padding: .6rem .75rem; border-radius: 4px; overflow-x: auto; white-space: pre-wrap; word-break: break-all; }
.embed-code-block__copy { margin-top: .5rem; font-size: .78rem; background: #2a2a2a; color: #ccc; border: 1px solid #444; border-radius: 4px; padding: .3rem .7rem; cursor: pointer; }

/* Album single (view-album): hero artwork backdrop kept legible with a dark overlay
   (data-bg sets only background-image, replacing the base gradient), + side-panel text. */
.sz-album-hero { background-size: cover; background-position: center; }
.sz-album-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,12,15,0.55) 0%, rgba(11,12,15,0.92) 100%); z-index: 0; }
.sz-album-hero .sz-show-hero__inner { position: relative; z-index: 1; }
.sz-panel-text { color: rgba(255,255,255,0.7); font-size: 14px; line-height: 1.6; margin: 0; }

/* Album single hero text + side panels (moved out of mockup inline styles) */
.sz-pl-hero__title { margin-bottom: 18px; }
.sz-pl-hero__sub { margin: 0 0 12px; }
.sz-pl-hero__about { color: rgba(255,255,255,0.8); line-height: 1.6; max-width: 560px; margin: 0 0 14px; }
.sz-pl-hero__license { margin: 0 0 18px; }
.sz-chip-row { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { display: inline-flex; align-items: center; padding: 4px 12px; border-radius: 999px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); color: rgba(255,255,255,0.8); font-size: 12px; }
.sz-buy__total--flush { border-top: none; padding-top: 0; margin-top: 0; }
.sz-buy__btn { width: 100%; }
.sz-buy__note { font-size: 12px; color: rgba(255,255,255,0.45); text-align: center; margin: 10px 0 0; }
.sz-album-more { margin-top: 40px; }
.sz-album-more .sz-section-head { margin-bottom: 16px; }

/* Homepage "On the board" feed (tight rows like the mockup) */
.sz-feed--flush { gap: 0; }

/* Music sub-page search (wider than the default hero search) */
.sz-msearch--wide { max-width: 880px; }

/* Carousel track fix: overflow-x:auto forces overflow-y to auto, which clips the
   card hover-lift (border vanishes) and adds a stray vertical scroll. Pin overflow-y
   to hidden + add vertical breathing room so hovered cards + shadows aren't clipped. */
.sz-carousel__track { overflow-y: hidden; padding-top: 12px; padding-bottom: 12px; }

/* ===== Basic static-page template (about.html) — used by page.php + About + any page
   without a specific template. Colored header (gradient overlay over a real image),
   long-form reading column + sticky "On this page" rail. ===== */
.sz-page-hero { position: relative; margin-top: calc(-1 * var(--header-height,60px)); padding: calc(var(--header-height,60px) + 64px) 0 40px; background-size: cover; background-position: center; background-color: #1a2233; border-bottom: 1px solid rgba(255,255,255,0.06); overflow: hidden; }
.sz-page-hero::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(135deg, rgba(63,111,168,0.62) 0%, rgba(34,52,80,0.78) 42%, rgba(11,12,15,0.96) 100%); pointer-events: none; }
.sz-page-hero__inner { position: relative; z-index: 1; max-width: var(--container-max-width,1440px); margin: 0 auto; padding: 0 var(--space-32,32px); }
.sz-page-hero__eyebrow { font-family: 'Rules','Inter Tight',sans-serif; font-size: 12px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sz-accent); margin: 0 0 14px; }
.sz-page-hero__title { font-family: 'Inter Tight',sans-serif; font-weight: 700; font-size: clamp(2.4rem,4.4vw,3.4rem); line-height: 1.04; letter-spacing: -0.025em; color: #fff; margin: 0 0 16px; }
.sz-page-hero__lede { font-size: clamp(1.05rem,1.5vw,1.22rem); line-height: 1.55; color: rgba(255,255,255,0.82); margin: 0; max-width: 62ch; }
.sz-static { max-width: var(--container-max-width,1440px); margin: 0 auto; padding: 56px var(--space-32,32px) 80px; }
.sz-static__layout { display: grid; grid-template-columns: minmax(0,760px) 248px; gap: 64px; justify-content: center; align-items: start; }
.sz-static__main { min-width: 0; }
.sz-static__main .content-body { max-width: none; margin: 0; padding: 0; }
.sz-static__main .content-body > .lede { font-size: 1.28rem; line-height: 1.6; color: #fff; font-weight: 400; letter-spacing: -0.01em; margin: 0 0 1.8em; }
.sz-static__main .content-body h2 { scroll-margin-top: calc(var(--header-height,60px) + 24px); }
.sz-static__main .content-body h2:first-of-type { margin-top: 0.4em; }
.sz-static__rail { position: sticky; top: calc(var(--header-height,60px) + 28px); }
.sz-toc__label { font-family: 'Rules','Inter Tight',sans-serif; font-size: 11px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.45); margin: 0 0 14px; }
.sz-toc__list { list-style: none; margin: 0 0 26px; padding: 0; border-left: 1px solid rgba(255,255,255,0.1); }
.sz-toc__list a { display: block; padding: 7px 0 7px 16px; margin-left: -1px; border-left: 2px solid transparent; font-size: 13.5px; line-height: 1.4; color: rgba(255,255,255,0.6); text-decoration: none; transition: color .15s ease, border-color .15s ease; }
.sz-toc__list a:hover { color: #fff; }
.sz-toc__list a.is-active { color: var(--sz-accent); border-left-color: var(--sz-accent); font-weight: 500; }
.sz-toc__cta { display: inline-flex; align-items: center; gap: 9px; width: 100%; justify-content: center; padding: 11px 16px; border-radius: 8px; background: rgba(168,213,186,0.1); border: 1px solid rgba(168,213,186,0.28); color: var(--sz-accent); font-weight: 600; font-size: 13.5px; text-decoration: none; transition: background .15s ease, border-color .15s ease; }
.sz-toc__cta:hover { background: rgba(168,213,186,0.18); border-color: rgba(168,213,186,0.5); }
.sz-toc__cta .sz-ic { width: 15px; height: 15px; }
.sz-toc__meta { margin: 18px 0 0; font-size: 12px; color: rgba(255,255,255,0.4); line-height: 1.5; }
@media (max-width: 900px) { .sz-static__layout { grid-template-columns: 1fr; gap: 0; } .sz-static__rail { display: none; } }
@media (max-width: 768px) { .sz-page-hero { padding: calc(var(--header-height,60px) + 36px) 0 28px; } .sz-page-hero__inner { padding: 0 16px; } .sz-static { padding: 36px 16px 56px; } }

/* ──────────────────────────────────────────────────────────────────────────
   Audio player 2026 re-skin — restyles the existing simuze_generate_audio_player()
   markup (.simuze-audio-player/.upload-row/.playlist-large-player) to the new
   .sz-player/.sz-pltrack aesthetic. Scoped under .simuze-audio-player so it wins
   over layout.css without !important. Audio core/markup untouched.
   ────────────────────────────────────────────────────────────────────────── */
.simuze-audio-player { color: #fff; }

/* Large "now playing" bar */
.simuze-audio-player .playlist-large-player {
  gap: 22px; padding: 22px; margin-bottom: 22px;
  background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
}
.simuze-audio-player .playlist-large-player .play-btn,
.simuze-audio-player .playlist-large-player .large-play-btn {
  width: 72px; height: 72px; background: var(--sz-accent); border-radius: 50%;
  box-shadow: 0 10px 30px rgba(168,213,186,0.25); flex: none;
}
.simuze-audio-player .playlist-large-player .play-btn:hover { background: var(--sz-accent-hover); }
.simuze-audio-player .playlist-large-player .play-btn i { color: #0a0a0a; font-size: 22px; }
.simuze-audio-player .now-playing-info { flex: 1; min-width: 0; }
.simuze-audio-player .playlist-now-playing-title { color: #fff; font-weight: 700; font-size: 18px; }
.simuze-audio-player .playlist-now-playing-artist a { color: rgba(255,255,255,0.6); text-decoration: none; }
.simuze-audio-player .playlist-now-playing-artist a:hover { color: var(--sz-accent); }

/* Transport controls */
.simuze-audio-player .playlist-player-controls { gap: 6px; }
.simuze-audio-player .playlist-control-btn {
  background: transparent; border: none; color: rgba(255,255,255,0.65);
  width: 36px; height: 36px; border-radius: 50%; cursor: pointer; transition: background .15s ease, color .15s ease;
}
.simuze-audio-player .playlist-control-btn:hover { background: rgba(255,255,255,0.08); color: #fff; }

/* Timeline */
.simuze-audio-player .track-timeline .timeline-bar { background: rgba(255,255,255,0.12); height: 6px; border-radius: 999px; }
.simuze-audio-player .track-timeline .timeline-progress { background: var(--sz-accent); border-radius: 999px; }
.simuze-audio-player .track-timeline .timeline-handle { background: #fff; }
.simuze-audio-player .track-timeline .timeline-time span { color: rgba(255,255,255,0.5); font-family: ui-monospace, monospace; font-size: 12px; }

/* Track rows */
.simuze-audio-player .tracks-container { display: flex; flex-direction: column; gap: 2px; }
.simuze-audio-player .upload-row {
  border: none; border-radius: 10px; padding: 10px 12px;
  background: transparent; transition: background .15s ease;
}
.simuze-audio-player .upload-row:hover { background: rgba(255,255,255,0.05); }
.simuze-audio-player .upload-row.playing { background: rgba(168,213,186,0.10); }
.simuze-audio-player .play-btn-list {
  width: 30px; height: 30px; background: rgba(255,255,255,0.08); color: #fff; box-shadow: none;
}
.simuze-audio-player .play-btn-list:hover,
.simuze-audio-player .upload-row.playing .play-btn-list { background: var(--sz-accent); color: #0a0a0a; box-shadow: none; }
.simuze-audio-player .song-title-list a,
.simuze-audio-player .song-title-list { color: #fff; text-decoration: none; }
.simuze-audio-player .upload-meta-row,
.simuze-audio-player .upload-meta-row a { color: rgba(255,255,255,0.5); font-size: 13px; }
.simuze-audio-player .upload-meta-row a:hover { color: var(--sz-accent); }
.simuze-audio-player .upload-row.playing .song-title-list,
.simuze-audio-player .upload-row.playing .song-title-list a { color: var(--sz-accent); font-weight: 600; }
.simuze-audio-player .upload-genre-col { display: none; }

/* Row action icons → ghost icon-buttons */
.simuze-audio-player .upload-actions-col .icon-small {
  background: transparent; border: none; color: rgba(255,255,255,0.55);
  width: 32px; height: 32px; border-radius: 50%; transition: background .15s ease, color .15s ease;
}
.simuze-audio-player .upload-actions-col .icon-small:hover { background: rgba(255,255,255,0.10); color: #fff; transform: none; }
.simuze-audio-player .upload-actions-col .like-btn.is-liked i,
.simuze-audio-player .upload-actions-col .like-btn.active i { color: var(--sz-accent); }
.simuze-audio-player .drag-handle { color: rgba(255,255,255,0.3); }

/* ===== HARVESTED FROM MOCKUPS — homepage .h2-* system (homepage.html <style>) ===== */
.h2-hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;margin-top:calc(-1*var(--header-height,60px));overflow:hidden;}
.h2-hero__bg{position:absolute;left:0;right:0;top:-12%;height:124%;z-index:0;overflow:hidden;will-change:transform;}
.h2-hero__slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.4s ease;}
.h2-hero__slide.is-on{opacity:1;}
.h2-hero__grad{position:absolute;inset:0;z-index:1;background:linear-gradient(110deg,rgba(11,12,15,0.9) 0%,rgba(11,12,15,0.55) 45%,rgba(11,12,15,0.2) 100%),linear-gradient(0deg,rgba(11,12,15,0.95),rgba(11,12,15,0) 45%);}
.h2-hero__inner{position:relative;z-index:1;max-width:var(--container-max-width);margin:0 auto;width:100%;padding:calc(var(--header-height,60px) + 40px) var(--h2-gutter) 76px;}
.h2-hero__eyebrow{display:inline-flex;align-items:center;gap:9px;font-family:'Rules',sans-serif;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--sz-accent);margin:0 0 18px;}
.h2-hero__eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--sz-accent);animation:szpulse 2.4s infinite;}
.h2-hero__title{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:clamp(2.8rem,7vw,6rem);line-height:0.98;letter-spacing:-0.03em;color:#fff;margin:0 0 22px;max-width:15ch;}
.h2-hero__title em{font-style:normal;color:var(--sz-accent);}
.h2-hero__sub{font-size:clamp(1rem,1.5vw,1.25rem);color:rgba(255,255,255,0.85);line-height:1.5;max-width:48ch;margin:0 0 26px;}
.h2-search{display:flex;gap:10px;max-width:580px;background:rgba(11,12,15,0.5);border:1px solid rgba(255,255,255,0.18);border-radius:999px;padding:7px 7px 7px 20px;backdrop-filter:blur(8px);}
.h2-search input{flex:1;background:none;border:none;outline:none;color:#fff;font:inherit;font-size:16px;}
.h2-search input::placeholder{color:rgba(255,255,255,0.5);}
.h2-search button{flex:none;border:none;border-radius:999px;background:var(--sz-accent);color:#0a0a0a;font:inherit;font-weight:600;font-size:14px;padding:0 22px;height:46px;cursor:pointer;}
.h2-search button:hover{background:var(--sz-accent-hover);}
.h2-chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;}
.h2-chips a{font-size:13px;color:rgba(255,255,255,0.8);background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);border-radius:999px;padding:7px 14px;text-decoration:none;transition:.15s;}
.h2-chips a:hover{background:var(--sz-accent);color:#0a0a0a;border-color:var(--sz-accent);}
.h2-ticker{display:flex;flex-wrap:wrap;gap:10px 28px;margin:30px 0 0;font-size:14px;color:rgba(255,255,255,0.72);}
.h2-ticker b{color:#fff;font-family:'Inter Tight',sans-serif;font-weight:700;}
.h2-ticker .sz-ic{color:var(--sz-accent);vertical-align:-2px;margin-right:6px;}
.h2-scroll{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:1;color:rgba(255,255,255,0.5);font-size:11px;letter-spacing:0.14em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:6px;animation:h2bob 2.2s ease-in-out infinite;}
@keyframes h2bob{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(6px);}}
.h2-split{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.h2-path{position:relative;overflow:hidden;border-radius:18px;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;padding:30px;text-decoration:none;border:1px solid rgba(255,255,255,0.08);transition:transform .25s ease,border-color .25s ease;}
.h2-path:hover{transform:translateY(-3px);border-color:rgba(168,213,186,0.4);}
.h2-path__img{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;transition:transform .5s ease;}
.h2-path:hover .h2-path__img{transform:scale(1.06);}
.h2-path__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(11,12,15,0) 35%,rgba(11,12,15,0.85) 100%);}
.h2-path__c{position:relative;z-index:2;}
.h2-path__k{font-family:'Rules',sans-serif;font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--sz-accent);margin:0 0 8px;}
.h2-path__t{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:2rem;color:#fff;margin:0 0 8px;letter-spacing:-0.01em;}
.h2-path__d{font-size:14.5px;color:rgba(255,255,255,0.9);line-height:1.5;margin:0 0 16px;max-width:34ch;}
.h2-path__cta{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:#fff;}
.h2-path__cta .sz-ic{color:var(--sz-accent);transition:transform .2s ease;}
.h2-path:hover .h2-path__cta .sz-ic{transform:translateX(4px);}
.h2-sec{max-width:var(--container-max-width);margin:0 auto;padding:0 var(--h2-gutter);}
.h2-band{padding:64px 0;}
.h2-band--alt{background:rgba(255,255,255,0.02);border-top:1px solid rgba(255,255,255,0.05);border-bottom:1px solid rgba(255,255,255,0.05);}
.h2-2col{display:grid;grid-template-columns:1.5fr 1fr;gap:48px;align-items:start;}
/* Homepage open-slots column: the empty line, the post button, and the random video
   underneath it (see the Open slots block in template_homepage.php). */
.hp-empty{font-size:1.05rem;color:rgba(255,255,255,0.6);margin:0 0 26px;}
.hp-empty a{color:var(--sz-accent);text-decoration:none;}
.hp-empty a:hover{color:#fff;}
.hp-post{display:inline-flex;align-items:center;gap:9px;font-size:14.5px;font-weight:600;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,0.18);border-radius:999px;padding:11px 20px;transition:border-color .15s ease,color .15s ease;}
.hp-post:hover{border-color:var(--sz-accent);color:var(--sz-accent);}
.hp-post .sz-ic{color:var(--sz-accent);}
.hp-watch{margin-top:52px;border-top:1px solid rgba(255,255,255,0.08);padding-top:26px;}
.hp-watch__k{font-family:'Rules',sans-serif;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:rgba(255,255,255,0.55);margin:0 0 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.hp-watch__shuffle{display:inline-flex;align-items:center;gap:7px;color:var(--sz-accent);text-decoration:none;letter-spacing:0.04em;}
.hp-watch__shuffle:hover{color:#fff;}
.hp-watch__meta{font-size:13px;color:rgba(255,255,255,0.55);margin:12px 0 0;}
.hp-watch__meta a{color:rgba(255,255,255,0.85);text-decoration:none;}
.hp-watch__meta a:hover{color:var(--sz-accent);}
@media(max-width:900px){.hp-watch{margin-top:34px;}}
.h2-feature{display:grid;grid-template-columns:260px minmax(0,1fr) 260px;gap:32px;align-items:center;}
.h2-feature__side{align-self:stretch;}
.h2-fside{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:14px;height:100%;justify-content:center;}
.h2-fside__row{display:flex;align-items:center;gap:11px;}
.h2-fside__av{width:42px;height:42px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-family:'Inter Tight',sans-serif;font-weight:700;font-size:14px;color:#fff;background:linear-gradient(135deg,#3a4256,#566077);}
.h2-fside__name{color:#fff;font-weight:600;font-size:15px;text-decoration:none;}
.h2-fside__name:hover{color:var(--sz-accent);}
.h2-fside__sub{font-size:12.5px;color:rgba(255,255,255,0.55);}
.h2-fside__links{display:flex;flex-direction:column;border-top:1px solid rgba(255,255,255,0.08);padding-top:8px;}
.h2-fside__links a{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:13.5px;color:rgba(255,255,255,0.8);text-decoration:none;}
.h2-fside__links a:hover{color:var(--sz-accent);}
.h2-fside__links a .sz-ic{color:var(--sz-accent);flex:none;}
.h2-fside__links a span{margin-left:auto;color:rgba(255,255,255,0.3);}
@media(max-width:1024px){.h2-feature{grid-template-columns:240px minmax(0,1fr);}.h2-feature__side{grid-column:1 / -1;}}
.h2-feature__art{position:relative;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:linear-gradient(135deg,#20283a,#3a4660);box-shadow:0 18px 50px rgba(0,0,0,0.4);}
.h2-feature__art .album-placeholder{position:absolute;inset:0;}
.h2-feature__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:72px;height:72px;border-radius:50%;background:var(--sz-accent);color:#0a0a0a;display:grid;place-items:center;box-shadow:0 12px 38px rgba(168,213,186,.35);transition:transform .15s ease;}
.h2-feature__art:hover .h2-feature__play{transform:translate(-50%,-50%) scale(1.07);}
.h2-feature__play .sz-ic{width:28px;height:28px;margin-left:3px;}
.h2-feature__k{font-family:'Rules',sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--sz-accent);margin:0 0 10px;}
.h2-feature__t{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:clamp(1.8rem,2.6vw,2.4rem);color:#fff;margin:0 0 6px;letter-spacing:-0.01em;}
.h2-feature__by{color:rgba(255,255,255,0.65);margin:0 0 16px;font-size:1.05rem;}
.h2-feature__by a{color:rgba(255,255,255,0.9);text-decoration:none;}
.h2-feature__by a:hover{color:var(--sz-accent);}
.h2-blog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.h2-blog{text-decoration:none;color:inherit;display:block;}
.h2-blog__media{aspect-ratio:16/10;border-radius:10px;background-size:cover;background-position:center;background-color:#14171d;border:1px solid rgba(255,255,255,0.06);transition:transform .2s ease;}
.h2-blog:hover .h2-blog__media{transform:translateY(-2px);}
.h2-blog__body{padding:12px 2px 0;}
.h2-blog__meta{font-family:'Rules',sans-serif;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.5);}
.h2-blog__title{font-family:'Inter Tight',sans-serif;font-weight:500;font-size:15px;line-height:1.3;color:#fff;margin:6px 0 0;}
.h2-blog:hover .h2-blog__title{color:var(--sz-accent);}
@media(max-width:900px){.h2-blog-grid{grid-template-columns:1fr 1fr;}}
.h2-join{display:grid;grid-template-columns:1.2fr 1fr;background:#14171d;border:1px solid rgba(255,255,255,0.1);border-radius:18px;overflow:hidden;}
.h2-join__c{padding:48px;border-left:3px solid var(--sz-accent);}
.h2-join__k{font-family:'Rules',sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--sz-accent);margin:0 0 12px;}
.h2-join__t{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:clamp(1.7rem,2.8vw,2.4rem);color:#fff;margin:0 0 12px;letter-spacing:-0.015em;line-height:1.08;}
.h2-join__d{color:rgba(255,255,255,0.75);margin:0 0 22px;font-size:1.02rem;line-height:1.55;max-width:46ch;}
.h2-join__btns{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.h2-join__note{font-size:12.5px;color:rgba(255,255,255,0.5);margin:14px 0 0;}
.h2-join__media{background-size:cover;background-position:center;min-height:280px;}
@media(max-width:900px){.h2-2col{grid-template-columns:1fr;gap:32px;}.h2-feature{grid-template-columns:1fr;}.h2-feature__art{max-width:260px;}.h2-join{grid-template-columns:1fr;}.h2-join__media{min-height:180px;order:-1;}.h2-join__c{padding:32px 24px;}}
@media(max-width:760px){.h2-hero{min-height:90vh;}.h2-hero__inner{padding:calc(var(--header-height,60px) + 24px) 16px 40px;}.h2-split{grid-template-columns:1fr;}.h2-path{min-height:210px;padding:22px;}.h2-band{padding:44px 0;}.h2-sec{padding:0 16px;}.h2-chips{display:none;}.h2-ticker{display:none;}.h2-scroll{display:none;}.h2-blog-grid{grid-template-columns:1fr 1fr;}}
:root{--h2-gutter:calc(var(--gap) + var(--space-24));}
/* homepage harvested helpers (replace mockup inline styles) */
.h2-section-head--mb24{margin-bottom:24px;}
.h2-section-head--mb22{margin-bottom:22px;}
.h2-section-head--mb20{margin-bottom:20px;}
.h2-section-head--mb18{margin-bottom:18px;}
.h2-section-head--mb14{margin-bottom:14px;}
.h2-feature--mb{margin-bottom:44px;}
.h2-feature__about{color:rgba(255,255,255,0.78);line-height:1.6;max-width:54ch;margin:0 0 20px;}
.h2-feature__actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.h2-fside__follow{width:100%;justify-content:center;}
.h2-albums-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));}
.h2-place-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px;}

/* ===== RULE A — header scroll reconciliation (single solidify source = .sz-solid) =====
   The legacy `.scrolled` class (added by functions.js) must NOT shift the fixed header
   on scroll. Pin its padding/offset to the at-top state; background/solidify is owned
   solely by `.sz-solid` (section 26). --header-height == --header-height-scrolled (60px). */
.site-header.scrolled { padding: 6px 0; }
.scrolled .site-content { padding-top: var(--header-height, 60px); }

/* ===== HARVESTED — network detail pages (template_country / view-province / view-city) ===== */
.sz-section-head--center { align-items: center; }
.sz-section-divider--spaced { margin: 48px 0 32px; }
.sz-section-head__tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sz-group-tile__thumb--photo { background-size: cover; background-position: center; background-repeat: no-repeat; }
.sz-side-panel__text { font-size: 14px; color: rgba(255,255,255,0.72); line-height: 1.55; margin: 0 0 14px; }
.sz-side-panel__text:last-child { margin-bottom: 0; }
.sz-fact-list--venues .label { text-transform: none; letter-spacing: 0; font-family: inherit; font-size: 13px; color: #fff; }
.sz-fact-list--venues .value { font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: 0.07em; text-transform: uppercase; color: rgba(255,255,255,0.55); }

/* ===== HARVESTED — shows page (template_shows; moved from in-template <style>) ===== */
.shows-page { padding-top: 8px; }
.shows-page .event-list { list-style: none; padding: 0; margin: 0; }
.shows-page .event-list-item {
  display: flex; align-items: center; gap: 14px;
  padding: 12px 14px; margin: 0 -14px;
  border-radius: 10px;
  border-bottom: 1px solid rgba(184,186,193,0.10);
  transition: background .15s ease;
}
.shows-page .event-list-item:hover { background: rgba(255,255,255,0.04); }
.shows-page .event-list-item:last-child { border-bottom: none; }
.shows-page .event-row-main {
  display: flex; align-items: center; gap: 14px;
  flex: 1; min-width: 0; text-decoration: none; color: inherit; cursor: pointer;
}
.shows-page .event-date-badge {
  min-width: 56px; padding: 8px 6px;
  text-align: center;
  background: rgba(255,255,255,0.06);
  color: #fff;
  border-radius: 8px;
  font-family: 'Rules', sans-serif; font-size: 10px;
  letter-spacing: 0.1em; text-transform: uppercase;
}
.shows-page .event-date-badge .day { display: block; font-family: 'Inter Tight', sans-serif; font-size: 24px; font-weight: 600; line-height: 1; letter-spacing: 0; }
.shows-page .event-info { flex: 1; min-width: 0; }
.shows-page .event-title { font-size: 16px; font-weight: 500; color: #fff; line-height: 1.2; margin: 0; padding: 0; }
.shows-page .event-meta { font-size: 13px; color: rgba(255,255,255,0.55); margin-top: 4px; line-height: 1.35; }
.shows-page .event-ticket-btn { margin-left: auto; white-space: nowrap; padding: 7px 14px; font-size: 12px; border-radius: 999px; }
.shows-page .event-type-badge {
  display: inline-block;
  font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: .07em; text-transform: uppercase;
  padding: 2px 8px; margin-left: 8px;
  border-radius: 4px;
  background: rgba(168,213,186,0.12); color: var(--sz-accent,#a8d5ba);
}
.shows-page .empty-state { text-align: center; color: rgba(255,255,255,0.55); padding: 2rem 0; font-size: .95rem; }
.shows-sort-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; flex-wrap: wrap; }
.shows-sort-bar .sz-section-head__eyebrow { margin: 0; white-space: nowrap; }
.sz-select--sort { width: auto; height: 38px; padding: 0 38px 0 14px; font-size: 14px; min-width: 160px; flex-shrink: 0; }
.shows-filter-loading { font-size: 12px; color: rgba(255,255,255,0.5); min-height: 1.1rem; margin-top: 8px; }
.shows-results { font-size: 13px; color: rgba(255,255,255,0.5); margin: 0 0 12px; }
.shows-page .event-list.is-loading, .shows-page .sz-shows.is-loading { opacity: 0.5; pointer-events: none; }
@media (max-width: 768px) {
  .shows-page .event-list-item { gap: 10px; padding: 10px; margin: 0; }
  .shows-page .event-row-main { gap: 10px; }
  .shows-page .event-ticket-btn { padding: 6px 10px; font-size: 11px; }
}

/* ===== HARVESTED — show detail page (view-show.php → single-show.html) ===== */
.sz-show-hero__bg { position: absolute; inset: 0; z-index: 0; background-size: cover; background-position: center; will-change: transform; }
.sz-show-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,12,15,0.45) 0%, rgba(11,12,15,0.92) 100%); }
.sz-show-hero--bleed > .sz-show-hero__inner { position: relative; z-index: 1; }
.sz-show-lineup { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.sz-show-lineup__item { display: flex; align-items: center; gap: 12px; }
.sz-show-lineup__avatar { width: 36px; height: 36px; border-radius: 8px; object-fit: cover; flex-shrink: 0; background: var(--sz-mark) center/cover no-repeat, #1f2937; }
.sz-show-lineup__avatar--user { border-radius: 50%; }
.sz-show-lineup__name { color: #fff; text-decoration: none; font-weight: 500; }
.sz-show-lineup__name:hover { color: var(--sz-accent); }
.sz-show-lineup__type { font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; color: rgba(255,255,255,0.55); }
.sz-show-lineup__settime { font-size: 12px; color: rgba(255,255,255,0.5); }
.sz-show-comment { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.sz-show-comment:last-child { border-bottom: none; }
.sz-show-comment__author { font-weight: 600; margin-right: 8px; color: #fff; }
.sz-show-comment__time { font-size: 12px; color: rgba(255,255,255,0.5); }
.sz-show-comment__body { margin: 6px 0 0; color: rgba(255,255,255,0.8); }
.sz-show-form { margin-top: 12px; }
.sz-show-form-actions { display: flex; align-items: center; gap: 10px; margin-top: 12px; }
.sz-show-form-status { font-size: 13px; color: rgba(255,255,255,0.55); }
.sz-show-panel__going .v-muted { color: rgba(255,255,255,0.6); }
.sz-show-panel__going .button { margin-left: auto; }
.sz-show-buy { margin-top: 16px; display: flex; flex-direction: column; gap: 8px; }
.sz-show-buy .button { width: 100%; text-align: center; }
.sz-show-buy .sz-field { margin-bottom: 10px; }
.sz-show-organiser-actions { margin-top: 16px; display: flex; flex-direction: column; gap: 8px; }
.sz-show-organiser-actions .button { width: 100%; text-align: center; }
.sz-show-panel__section-title { font-size: 1rem; margin: 0 0 8px; color: #fff; }
.sz-show-panel__section-note { margin: 2px 0 12px; color: rgba(255,255,255,0.6); font-size: 14px; }
.sz-pool-match { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
.sz-pool-match__avatar { width: 34px; height: 34px; border-radius: 8px; overflow: hidden; flex-shrink: 0; background: #111827; }
.sz-pool-match__avatar img { width: 100%; height: 100%; object-fit: cover; }
.sz-pool-match__info { flex: 1; min-width: 0; }
.sz-pool-match__name { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-pool-match__meta { font-size: 13px; color: rgba(255,255,255,0.55); margin-top: 2px; }

/* ===== HARVESTED — add/edit show form (template_shows_add.php → shows-add.html) ===== */
.form-error-notice--mt { margin-top: 2rem; }
.sz-back-btn { margin: 28px 0 18px; }
.sz-form-title { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.9rem; color: #fff; margin: 0 0 6px; }
.sz-form-lede { color: rgba(255,255,255,0.6); margin: 0 0 22px; }
.shows-add-creator-context {
  margin-bottom: 18px; padding: 12px 16px; border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.04);
  font-size: 14px; line-height: 1.45; color: rgba(255,255,255,0.7);
}
.shows-add-user-id-warn {
  margin-bottom: 18px; padding: 11px 16px; border-radius: 10px;
  border: 1px solid rgba(245,158,11,0.5); background: rgba(245,158,11,0.08);
  font-size: 14px; color: rgba(255,255,255,0.78);
}
.show-organiser-as { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 20px; font-size: 14px; color: rgba(255,255,255,0.6); }
.show-organiser-as strong { color: #fff; }
.organiser-inline-select {
  background: transparent; border: none; border-bottom: 1px solid rgba(120,140,180,0.35);
  color: #fff; font-size: 14px; padding: 2px 18px 2px 4px; width: auto; cursor: pointer; border-radius: 0;
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%239aa4b8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
  background-repeat: no-repeat; background-position: right 2px center; background-size: 14px;
}
.organiser-inline-select:focus { outline: none; border-bottom-color: var(--sz-accent); }
/* Autocomplete dropdown (city / venue / artist) */
.search-autocomplete { position: relative; }
.search-autocomplete .ac-results {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 200;
  background: #12161f; border: 1px solid rgba(120,140,180,0.22); border-top: none; border-radius: 0 0 8px 8px;
  max-height: 240px; overflow-y: auto; box-shadow: 0 8px 24px rgba(0,0,0,0.45); display: none;
}
.search-autocomplete .ac-results.open { display: block; }
.search-autocomplete .ac-item { padding: 9px 14px; cursor: pointer; font-size: 14px; color: rgba(255,255,255,0.88); border-bottom: 1px solid rgba(255,255,255,0.05); }
.search-autocomplete .ac-item:last-child { border-bottom: none; }
.search-autocomplete .ac-item:hover, .search-autocomplete .ac-item.active { background: rgba(255,255,255,0.06); }
.search-autocomplete .ac-item.ac-item--muted { color: rgba(255,255,255,0.45); }
.search-autocomplete .ac-sub { font-size: 12px; color: rgba(255,255,255,0.5); margin-top: 2px; }
.search-autocomplete .ac-badge { font-size: 10px; background: rgba(168,213,186,0.16); color: var(--sz-accent); border-radius: 20px; padding: 2px 7px; margin-left: 6px; vertical-align: middle; }
.search-autocomplete .ac-badge--venue { background: rgba(56,150,210,0.18); color: #7cc0ec; }
.search-autocomplete .ac-no-results, .search-autocomplete .ac-spinner { padding: 9px 14px; font-size: 13px; color: rgba(255,255,255,0.5); }
.ac-avatar { width: 22px; height: 22px; border-radius: 8px; object-fit: cover; vertical-align: middle; margin-right: 6px; }
.ac-avatar--user { border-radius: 50%; }
.ac-avatar-ph { display: inline-block; width: 22px; height: 22px; border-radius: 8px; background: #1f2937; vertical-align: middle; margin-right: 6px; }
.ac-avatar-ph--user { border-radius: 50%; }
.ac-sub--inline { display: inline; }
/* Venue create panel */
.venue-create-panel { margin-top: 12px; padding: 16px 18px; background: rgba(255,255,255,0.03); border: 1px solid rgba(120,140,180,0.22); border-radius: 10px; display: none; }
.venue-create-panel.open { display: block; }
.venue-create-panel h4 { margin: 0 0 12px; font-size: 15px; }
.venue-owner-other { margin-top: 8px; display: none; }
.venue-owner-other.visible { display: block; }
/* Artist chips */
.artist-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.artist-chip { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,0.06); border: 1px solid rgba(120,140,180,0.22); border-radius: 20px; padding: 3px 8px 3px 5px; font-size: 13px; color: #fff; }
.artist-chip img { width: 18px; height: 18px; border-radius: 6px; object-fit: cover; flex-shrink: 0; }
.artist-chip-placeholder { display: inline-block; width: 18px; height: 18px; border-radius: 6px; background: #1f2937; flex-shrink: 0; }
.artist-chip .chip-remove { cursor: pointer; color: rgba(255,255,255,0.5); margin-left: 2px; line-height: 1; }
.artist-chip .chip-remove:hover { color: #ef4444; }
/* Compact WYSIWYG (about-this-show) */
.compact-wysiwyg { border: 1px solid rgba(120,140,180,0.22); border-radius: 8px; overflow: hidden; background: rgba(18,26,44,0.55); }
.compact-wysiwyg-toolbar { display: flex; align-items: center; gap: 6px; padding: 6px 8px; border-bottom: 1px solid rgba(120,140,180,0.22); background: rgba(255,255,255,0.03); }
.compact-wysiwyg-toolbar button { border: 1px solid rgba(120,140,180,0.3); background: transparent; color: rgba(255,255,255,0.8); border-radius: 4px; padding: 2px 8px; font-size: 13px; cursor: pointer; }
.compact-wysiwyg-toolbar button:hover { border-color: var(--sz-accent); color: #fff; }
.compact-wysiwyg-editor { min-height: 90px; max-height: 240px; overflow-y: auto; padding: 10px 12px; color: #fff; }
/* Header image upload + cropper */
.show-header-upload-preview { margin-top: 9px; width: 100%; max-height: 180px; object-fit: cover; border-radius: 8px; border: 1px solid rgba(120,140,180,0.22); display: block; }
.show-header-actions { display: flex; gap: 10px; align-items: center; margin-top: 8px; }
.show-header-remove { font-weight: normal; display: inline-flex; gap: 7px; align-items: center; margin: 0; }
.show-header-hint { margin-top: 6px; display: block; }
.show-crop-wrap { max-width: 100%; max-height: 400px; margin-bottom: 10px; }
.show-crop-wrap img { max-width: 100%; display: block; }
.show-crop-actions { display: flex; gap: 10px; margin-top: 10px; }
.show-crop-apply { background: var(--sz-accent); color: #14171d; font-weight: 600; }
.show-crop-error { color: #ff6b6b; }
/* Matching-artists finder */
.show-matcher { margin-top: 32px; background: rgba(255,255,255,0.03); border: 1px solid rgba(120,140,180,0.22); border-radius: 10px; padding: 0; }
.show-matcher__summary { cursor: pointer; padding: 16px 18px; font-weight: 600; color: var(--sz-accent); list-style: none; display: flex; align-items: center; gap: 8px; user-select: none; }
.show-matcher__summary::-webkit-details-marker { display: none; }
.show-matcher__hint { font-size: 13px; color: rgba(255,255,255,0.5); font-weight: 400; margin-left: 8px; }
.show-matcher__body { padding: 18px; border-top: 1px solid rgba(255,255,255,0.06); }
.show-matcher__btn { margin-bottom: 16px; }
.show-matcher__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.match-empty { color: rgba(255,255,255,0.5); font-style: italic; }
.match-card { background: rgba(255,255,255,0.04); border: 1px solid rgba(120,140,180,0.22); border-radius: 8px; padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.match-card__head { display: flex; align-items: center; gap: 12px; }
.match-card__avatar { width: 42px; height: 42px; border-radius: 8px; object-fit: cover; }
.match-card__avatar-ph { width: 42px; height: 42px; border-radius: 8px; background: rgba(255,255,255,0.08); display: inline-flex; align-items: center; justify-content: center; }
.match-card__avatar-ph .sz-ic { color: rgba(255,255,255,0.35); }
.match-card__name { color: #fff; }
.match-card__city { color: rgba(255,255,255,0.55); }
.match-card__badges { display: flex; flex-wrap: wrap; gap: 5px; }
.match-badge { font-size: 11px; border-radius: 3px; padding: 2px 7px; }
.match-badge--mood { background: rgba(168,213,186,0.12); color: var(--sz-accent); border: 1px solid rgba(168,213,186,0.3); }
.match-badge--genre { background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.6); border: 1px solid rgba(255,255,255,0.1); }
.match-card__foot { display: flex; align-items: center; justify-content: space-between; margin-top: 4px; }
.match-card__link { font-size: 13px; color: var(--sz-accent); }

/* ===== HARVESTED — single playlist (single-playlist.php → playlist.html) ===== */
.sz-pl-draghint { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; }
.sz-pltrack[draggable="true"] { cursor: grab; }
.sz-pltrack.sz-pl-dragging { opacity: 0.5; }
.sz-pltrack.sz-pl-dragover { box-shadow: inset 0 2px 0 var(--sz-accent); }

/* ===== HARVESTED — reusable dashboard card lists (group-shows / members / invites) ===== */
.sz-subhead { margin: 0 0 10px; font-size: 1rem; color: #fff; }
.sz-muted { color: rgba(255,255,255,0.55); }
.sz-card-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.sz-show-row { padding: 13px 16px; border: 1px solid rgba(255,255,255,0.08); border-radius: 8px; background: rgba(255,255,255,0.02); display: flex; align-items: center; gap: 12px; }
.sz-show-row__main { flex: 1; min-width: 0; }
.sz-show-row__title { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-show-row__title a { text-decoration: none; color: inherit; }
.sz-show-row__title a:hover { color: var(--sz-accent); }
.sz-show-row__meta { font-size: 13px; color: rgba(255,255,255,0.55); margin-top: 2px; }
.sz-show-row__actions { display: flex; gap: 5px; align-items: center; flex-shrink: 0; }
/* Small status badges only (always carry a --info/--ok modifier). Scoped so they
   no longer shrink the design-system filter .sz-pill (defined at the top of file). */
.sz-pill--info, .sz-pill--ok { font-size: 11px; padding: 2px 8px; border-radius: 20px; margin-right: 4px; white-space: nowrap; }
.sz-pill--info { background: rgba(2,132,199,0.14); color: #4fb0e8; }
.sz-pill--ok { background: rgba(5,150,105,0.14); color: #34c98a; }
.sz-dash-pagehead h1 .sz-pill--ok { vertical-align: middle; margin-left: 10px; font-weight: 600; }
.sz-invite-card { padding: 16px; border: 1px solid rgba(255,255,255,0.08); border-radius: 10px; background: rgba(255,255,255,0.03); }
.sz-invite-card__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.sz-invite-card__title { font-weight: 700; margin-bottom: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-invite-card__title a { text-decoration: none; color: inherit; }
.sz-invite-card__meta { font-size: 14px; color: rgba(255,255,255,0.55); }
.sz-invite-card__actions { display: flex; gap: 10px; align-items: center; flex-shrink: 0; }

/* ===== HARVESTED — group invites/members components (group-members.php + group-invites.php) ===== */
.group-invites-section { margin-top: 40px; padding: 40px 0 20px; border-top: 1px solid rgba(255,255,255,0.1); }
.invites-sections { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.invite-section { background: rgba(255,255,255,0.03); border-radius: 12px; padding: 25px; }
.invite-section h3 { margin-top: 0; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,0.1); }
.invite-form { display: flex; flex-direction: column; gap: 15px; }
.search-input-wrapper { position: relative; width: 100%; }
.search-input { width: 100%; padding: 12px 20px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #fff; font-size: 1rem; box-sizing: border-box; }
.search-input:focus { outline: none; border-color: rgba(255,255,255,0.3); }
.search-results { position: absolute; top: calc(100% + 5px); left: 0; right: 0; max-height: 300px; overflow-y: auto; background: rgba(0,0,0,0.95); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; z-index: 1000; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.search-results.active { display: block; }
.search-result-item { display: flex; align-items: center; gap: 10px; padding: 10px 15px; cursor: pointer; transition: background 0.2s; }
.search-result-item:hover { background: rgba(255,255,255,0.1); }
.search-result-item img { width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0; }
.search-result-item .user-info { display: flex; flex-direction: column; gap: 2px; }
.search-result-item .user-name { font-weight: 500; color: #fff; }
.search-result-item .user-username { font-size: 0.85rem; color: rgba(255,255,255,0.6); }
.search-result-item.no-results { cursor: default; color: rgba(255,255,255,0.5); font-style: italic; }
.selected-users { display: flex; flex-wrap: wrap; gap: 8px; }
.selected-user { display: flex; align-items: center; gap: 8px; padding: 6px 12px; background: rgba(255,255,255,0.1); border-radius: 20px; font-size: 0.9rem; }
.selected-user .remove { cursor: pointer; opacity: 0.7; }
.selected-user .remove:hover { opacity: 1; }
.invite-message label { display: block; margin-bottom: 8px; color: rgba(255,255,255,0.7); }
.invite-message textarea { width: 100%; padding: 12px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; color: #fff; resize: vertical; }
.invitations-list { display: flex; flex-direction: column; gap: 10px; }
.invitation-item { display: flex; align-items: center; justify-content: space-between; padding: 15px; background: rgba(255,255,255,0.03); border-radius: 8px; }
.invitation-user { display: flex; align-items: center; gap: 12px; }
.invitation-user .user-avatar { width: 40px; height: 40px; border-radius: 50%; }
.invitation-user .user-name { display: block; font-weight: 500; }
.invitation-user .user-username { display: block; font-size: 0.85rem; color: rgba(255,255,255,0.6); }
.invitation-meta { color: rgba(255,255,255,0.5); font-size: 0.85rem; }
.invitation-actions { display: flex; gap: 8px; }
.no-invitations { text-align: center; padding: 30px; color: rgba(255,255,255,0.5); }
.group-invites { padding: 20px 0; }
.search-result-item.no-results:hover { background: transparent; }
.invitation-user .user-email { display: block; font-size: 0.85rem; color: rgba(255,255,255,0.6); }
@media (max-width: 768px) { .invites-sections { grid-template-columns: 1fr; } }

/* ===== HARVESTED — public profile (profile-public.php) ===== */
.activity-item-public { display: block; text-decoration: none; color: inherit; }
.activity-list-public .board-type-badge { display: inline-block; font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sz-accent); margin-right: 8px; }
.activity-item-public .activity-excerpt { margin-top: 4px; font-size: 14px; color: rgba(255,255,255,0.7); line-height: 1.5; }
.activity-item-public .activity-time { font-size: 12px; color: rgba(255,255,255,0.5); margin-top: 4px; }
.sz-show-mini-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.sz-show-mini { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
.sz-show-mini__title { font-weight: 500; text-decoration: none; color: inherit; }
.sz-show-mini__title:hover { color: var(--sz-accent); }
.sz-show-mini__meta { font-size: 13px; color: rgba(255,255,255,0.55); }
.sz-browse-all { margin-top: 12px; margin-bottom: 0; }
.profile-websites { margin-top: 12px; display: flex; flex-direction: column; gap: 7px; }
.profile-website-link { display: inline-flex; align-items: center; gap: 6px; color: inherit; text-decoration: none; }
.profile-website-link:hover { color: var(--sz-accent); }

/* ===== HARVESTED — group artists roster (group-artists.php) ===== */
.pending-invitations-section { margin-top: 40px; padding-top: 40px; border-top: 1px solid rgba(255,255,255,0.1); }
.selected-artist-card { display: flex; align-items: center; gap: 12px; }
.selected-artist-card__img { width: 48px; height: 48px; border-radius: 8px; }
.selected-artist-card__role { font-size: 0.85rem; color: rgba(255,255,255,0.6); }

/* ===== HARVESTED — music review / moderation (review status, verified badge, report link) ===== */
.sz-rstatus {
  flex-shrink: 0;
  font-family: 'Rules', 'Inter Tight', sans-serif; font-size: 10px; font-weight: 500;
  letter-spacing: 0.08em; text-transform: uppercase;
  padding: 4px 10px; border-radius: 999px; white-space: nowrap;
}
.sz-rstatus--published { background: rgba(168,213,186,0.14); color: var(--sz-accent); }
.sz-rstatus--progress  { background: rgba(255,255,255,0.08); color: rgba(255,255,255,0.6); }
.sz-rstatus--scheduled { background: rgba(138,180,248,0.14); color: #8ab4f8; }
.sz-rstatus--review    { background: rgba(227,179,65,0.14); color: #e3b341; }
.sz-rstatus--trashed   { background: rgba(194,107,107,0.14); color: #e29494; }
.sz-rstatus--removed   { background: rgba(194,107,107,0.14); color: #e29494; }
.sz-verified {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 600; color: var(--sz-accent);
  background: rgba(168,213,186,0.12); border: 1px solid rgba(168,213,186,0.28);
  padding: 3px 10px; border-radius: 999px; white-space: nowrap;
}
.sz-verified .sz-ic { width: 13px; height: 13px; }
.sz-verified-line { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 16px; font-size: 12.5px; color: rgba(255,255,255,0.5); }
.sz-report-link {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12.5px; color: rgba(255,255,255,0.4); text-decoration: none; cursor: pointer;
}
.sz-report-link:hover { color: #e29494; }
.sz-report-link .sz-ic { width: 13px; height: 13px; }
.sz-review { display: flex; gap: 18px; align-items: flex-start; padding: 20px; border: 1px solid rgba(255,255,255,0.1); border-radius: 14px; background: rgba(255,255,255,0.02); margin-bottom: 16px; }
.sz-review__art { width: 96px; height: 96px; border-radius: 10px; flex-shrink: 0; background: linear-gradient(135deg,#1A1F2E,#2A3042); }
.sz-review__title { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.3rem; color: #fff; margin: 0 0 4px; letter-spacing: -0.01em; }
.sz-review__sub { font-size: 14px; color: rgba(255,255,255,0.6); margin: 0 0 14px; }
.sz-review__facts { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px 24px; }
.sz-review__fact { font-size: 13.5px; color: rgba(255,255,255,0.8); display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid rgba(255,255,255,0.06); padding-bottom: 6px; }
.sz-review__fact b { color: #fff; font-weight: 600; }
@media (max-width: 600px) { .sz-review__facts { grid-template-columns: 1fr; } .sz-review { flex-direction: column; } }

/* ===== HARVESTED — reviewer dashboard (.rv-*) from group-reviewers.html ===== */
.rv-case{border:1px solid rgba(255,255,255,0.12);border-radius:16px;padding:22px;background:rgba(255,255,255,0.02);margin:0 0 26px;}
.rv-case__head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,0.08);}
.rv-case__head h2{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.4rem;color:#fff;margin:0;letter-spacing:-0.01em;}
.rv-case__head h2 span{color:rgba(255,255,255,0.5);font-weight:500;}
.rv-eyebrow{color:#e3b341;margin-bottom:6px;}
.rv-present{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:rgba(255,255,255,0.6);white-space:nowrap;}
.rv-present .sz-ic{color:var(--sz-accent);width:15px;height:15px;}
.rv-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:28px;align-items:start;}
.rv-content{display:flex;gap:14px;align-items:center;padding:14px;border:1px solid rgba(255,255,255,0.08);border-radius:12px;background:rgba(255,255,255,0.02);}
.rv-content__art{width:64px;height:64px;border-radius:8px;flex:none;background:linear-gradient(135deg,#1A1F2E,#2A3042);}
.rv-content__main{flex:1;min-width:0;}
.rv-content__link{font-size:13px;}
.rv-content h3{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:1.05rem;color:#fff;margin:0 0 2px;}
.rv-content p{font-size:13px;color:rgba(255,255,255,0.55);margin:0 0 4px;}
.rv-subhead{font-family:'Rules','Inter Tight',sans-serif;font-size:11px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.45);margin:22px 0 12px;}
.rv-report{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,0.06);}
.rv-report:last-child{border-bottom:none;}
.rv-report__av{width:34px;height:34px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-family:'Inter Tight',sans-serif;font-weight:700;font-size:12px;color:#fff;background:linear-gradient(135deg,#3a4256,#566077);}
.rv-report__col{flex:1;min-width:0;}
.rv-report__line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.rv-report__name{font-weight:600;color:#fff;font-size:14px;}
.rv-report__time{font-size:12px;color:rgba(255,255,255,0.4);}
.rv-report__note{font-size:13.5px;color:rgba(255,255,255,0.75);line-height:1.5;margin:4px 0 0;}
.rv-reason{font-family:'Rules',sans-serif;font-size:10px;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:rgba(227,179,65,0.14);color:#e3b341;white-space:nowrap;}
.rv-decision{border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:18px;background:rgba(255,255,255,0.03);position:sticky;top:calc(var(--header-height,60px) + 20px);}
.rv-decision h4{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:15px;color:#fff;margin:0 0 6px;}
.rv-actions{display:flex;flex-direction:column;gap:8px;margin:14px 0;}
.rv-actions .button{width:100%;justify-content:center;}
.rv-btn-danger{background:rgba(194,107,107,0.12) !important;border:1px solid rgba(194,107,107,0.4) !important;color:#e29494 !important;}
.rv-btn-danger:hover{background:rgba(194,107,107,0.2) !important;color:#f0b0b0 !important;}
.rv-uploader{display:flex;align-items:center;gap:11px;margin-top:6px;}
.rv-uploader__main{min-width:0;}
.rv-uploader__name{font-weight:600;color:#fff;font-size:14px;}
.rv-susp{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#e29494;background:rgba(194,107,107,0.12);padding:4px 10px;border-radius:999px;margin-top:10px;}
.rv-susp .sz-ic{width:12px;height:12px;}
.rv-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;font-size:14px;}
.rv-back .sz-ic{width:16px;height:16px;}
.rv-compose{margin-top:12px;}
.sz-dash-nav .rv-navcount{margin-left:auto;background:rgba(227,179,65,0.16);color:#e3b341;font-size:11px;font-weight:600;padding:1px 8px;border-radius:999px;}
.rv-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px;}
.rv-search{position:relative;flex:1;min-width:200px;}
.rv-search .sz-ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:rgba(255,255,255,0.4);pointer-events:none;}
.rv-search input{width:100%;height:40px;padding:0 14px 0 38px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);border-radius:10px;color:#fff;font-size:14px;}
.rv-search input:focus{outline:none;border-color:rgba(168,213,186,0.5);}
.rv-toolbar .sz-select{height:40px;width:160px;min-width:0;flex:0 0 auto;}
.rv-count{font-size:12.5px;color:rgba(255,255,255,0.45);margin:0 0 12px;font-variant-numeric:tabular-nums;}
.rv-reason-chip{font-size:11px;color:rgba(255,255,255,0.62);background:rgba(255,255,255,0.06);padding:3px 9px;border-radius:999px;white-space:nowrap;}
.rv-pager{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:18px;}
.rv-empty{text-align:center;padding:48px 20px;color:rgba(255,255,255,0.45);border:1px dashed rgba(255,255,255,0.12);border-radius:14px;font-size:14px;}
.rv-row-hidden{display:none !important;}
.rv-lanes-hint{margin:-4px 0 16px;}
.rv-check{width:18px;height:18px;flex:none;accent-color:var(--sz-accent);cursor:pointer;margin-right:2px;}
.rv-bulkbar{position:sticky;bottom:16px;z-index:5;display:none;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:11px 16px;background:rgba(18,22,18,0.97);border:1px solid rgba(168,213,186,0.32);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,0.45);}
.rv-bulkbar.is-on{display:flex;}
.rv-bulkbar__count{font-size:13.5px;color:#fff;font-weight:600;}
.rv-bulkbar__actions{display:flex;gap:8px;}
.rv-team{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;}
.rv-member{border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:16px;background:rgba(255,255,255,0.02);}
.rv-member__top{display:flex;align-items:center;gap:12px;margin-bottom:13px;}
.rv-member__av{width:44px;height:44px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:15px;font-family:'Inter Tight',sans-serif;background:linear-gradient(135deg,#2f5a3f,#3f7a54);}
.rv-member__name{font-weight:600;color:#fff;font-size:15px;}
.rv-member__role{font-size:12px;color:var(--sz-accent);}
.rv-member__role--lead{color:#e3b341;}
.rv-member__lanes{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.rv-member__stat{font-size:12.5px;color:rgba(255,255,255,0.55);display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,0.07);padding-top:9px;}
.rv-member__stat b{color:#fff;font-weight:600;}
.rv-thread{display:flex;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid rgba(255,255,255,0.07);}
.rv-thread__ic{width:38px;height:38px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.05);color:rgba(255,255,255,0.6);}
.rv-thread__ic .sz-ic{width:17px;height:17px;}
.rv-thread__main{min-width:0;}
.rv-thread__title{font-weight:600;color:#fff;font-size:15px;margin:0 0 3px;display:inline-flex;align-items:center;gap:9px;cursor:pointer;}
.rv-thread__title:hover{color:var(--sz-accent);}
.rv-thread__meta{font-size:12.5px;color:rgba(255,255,255,0.45);}
.rv-thread__replies{margin-left:auto;text-align:right;flex:none;}
.rv-thread__replies b{display:block;color:#fff;font-size:17px;font-family:'Inter Tight',sans-serif;line-height:1;}
.rv-thread__replies span{font-size:11px;color:rgba(255,255,255,0.4);}
.rv-pin{font-size:10px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:#e3b341;background:rgba(227,179,65,0.14);padding:2px 7px;border-radius:999px;}
.rv-set{border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:22px;background:rgba(255,255,255,0.02);margin-bottom:16px;}
.rv-set h3{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:16px;color:#fff;margin:0 0 4px;display:flex;align-items:center;gap:9px;}
.rv-set h3 .sz-ic{color:var(--sz-accent);width:17px;height:17px;}
.rv-set__hint{font-size:13px;color:rgba(255,255,255,0.5);margin:0 0 16px;}
.rv-setrow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid rgba(255,255,255,0.07);}
.rv-setrow:first-of-type{border-top:none;}
.rv-setrow__label{font-size:14px;color:#fff;}
.rv-setrow__sub{font-size:12.5px;color:rgba(255,255,255,0.5);margin-top:2px;}
.rv-num{width:72px;height:38px;text-align:center;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.12);border-radius:8px;color:#fff;font-size:14px;}
.rv-tag{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.12);border-radius:999px;font-size:13px;color:#fff;}
.rv-tag .x{cursor:pointer;color:rgba(255,255,255,0.4);font-size:12px;}
.rv-tag .x:hover{color:#e29494;}
.rv-switch{position:relative;width:42px;height:23px;border-radius:999px;background:rgba(255,255,255,0.16);cursor:pointer;flex:none;transition:background .15s;border:none;padding:0;}
.rv-switch::after{content:'';position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:#fff;transition:transform .15s;}
.rv-switch.is-on{background:var(--sz-accent);}
.rv-switch.is-on::after{transform:translateX(19px);}
@media(max-width:1024px){.rv-grid{grid-template-columns:1fr;}.rv-decision{position:static;}}
.sz-coll-row__title--static { cursor: default; }
.rv-lane-picker { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 0 0 16px; }
.rv-tag-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

/* ===== HARVESTED — auth gap pages (login / signup / forgot-password) ===== */
.auth-page-container { min-height: 70vh; display: flex; align-items: center; justify-content: center; padding: 40px 20px; }
.auth-form-wrapper { max-width: 450px; width: 100%; }
.auth-form-wrapper--card { background: rgba(255,255,255,0.03); padding: 40px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.08); box-shadow: 0 4px 20px rgba(0,0,0,0.3); }
.sz-auth-title { color: var(--sz-accent); margin: 0 0 10px; font-size: 28px; text-align: center; font-family: 'Inter Tight', sans-serif; }
.sz-auth-sub { color: rgba(255,255,255,0.7); text-align: center; margin: 0 0 30px; font-size: 14px; }
.sz-auth-alt { text-align: center; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,0.1); }
.sz-auth-alt p { color: rgba(255,255,255,0.6); font-size: 13px; margin: 0; }
.sz-auth-alt a { color: var(--sz-accent); text-decoration: none; }

/* ===== HARVESTED — gap pages: howto sticky + faq accordion ===== */
.sticky-parent--full { height: 100%; }
.faq-accordion { display: flex; flex-direction: column; gap: 12px; margin-top: 24px; }
.faq-accordion-item { border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; background: rgba(0,0,0,0.25); padding: 0; }
.faq-accordion-item summary { list-style: none; cursor: pointer; padding: 14px 16px; font-weight: 600; }
.faq-accordion-item summary::-webkit-details-marker { display: none; }
.faq-accordion-item summary::after { content: '+'; float: right; color: rgba(168,213,186,0.9); font-weight: 700; }
.faq-accordion-item[open] summary::after { content: '-'; }
.faq-accordion-body { padding: 0 16px 16px 16px; color: rgba(255,255,255,0.7); line-height: 1.55; }

/* ===== HARVESTED — feedback gap page ===== */
.feedback-wip { padding: 14px 18px; border: 1px solid rgba(168,213,186,0.3); border-radius: 8px; background: rgba(168,213,186,0.05); margin-bottom: 24px; color: rgba(255,255,255,0.85); }
.feedback-wip a { color: var(--sz-accent); }
.feedback-success { padding: 18px; border: 1px solid #4CAF50; border-radius: 8px; background: rgba(76,175,80,0.1); color: #fff; }
.feedback-failure { padding: 18px; border: 1px solid #f87171; border-radius: 8px; background: rgba(248,113,113,0.1); color: #fff; }
.feedback-errors { padding: 14px 18px; border: 1px solid #f87171; border-radius: 8px; background: rgba(248,113,113,0.1); color: #fff; margin-bottom: 18px; }
.feedback-success h2, .feedback-failure h2 { margin-top: 0; }
.feedback-success p:last-child { margin-bottom: 0; }
.feedback-failure a { color: var(--sz-accent); }
.feedback-errors ul { margin: 0; padding-left: 1.2em; }
.feedback-form .feedback-row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; color: rgba(255,255,255,0.75); font-size: 0.95rem; }
.feedback-form input[type="text"], .feedback-form input[type="email"], .feedback-form textarea { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; padding: 10px 12px; color: #fff; font-size: 0.95rem; font-family: inherit; }
.feedback-form input:focus, .feedback-form textarea:focus { outline: none; border-color: var(--sz-accent); }
.feedback-form textarea { min-height: 140px; resize: vertical; }
.feedback-form .feedback-actions { margin-top: 8px; }
[data-altcha] { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.1); border-radius: 8px; font-size: 0.85rem; color: rgba(255,255,255,0.7); }
.altcha-status-ok { color: #4CAF50; }
.sz-jump-title { margin-top: 24px; }

/* ===== HARVESTED — my-tickets dashboard (template_dashboard_tickets) ===== */
.dash-tickets-page { padding: 2rem 0; }
.dash-tickets-page .dashboard-nav { margin-bottom: 1.5rem; display: flex; gap: .75rem; flex-wrap: wrap; }
.dash-tickets-page .card { padding: 1.5rem; }
.dash-tickets-empty { margin: 0; color: rgba(255,255,255,0.6); }
.dash-tickets-section { margin-bottom: 2rem; }
.dash-tickets-section h2 { font-size: 1.1rem; margin-bottom: .75rem; }
.dash-tickets-section--past h2 { color: rgba(255,255,255,0.6); }
.ticket-row { border: 1px solid rgba(255,255,255,0.12); border-radius: .5rem; padding: 1rem 1.25rem; margin-bottom: .75rem; display: flex; gap: 1rem; align-items: flex-start; flex-wrap: wrap; }
.ticket-row--past { opacity: .7; }
.ticket-row__main { flex: 1; min-width: 0; }
.ticket-row__title { font-weight: 600; font-size: 1rem; margin-bottom: .2rem; }
.ticket-row__date { color: rgba(255,255,255,0.6); font-size: .875rem; margin-bottom: .4rem; }
.ticket-row__code { font-family: monospace; font-size: .85rem; background: rgba(255,255,255,0.06); display: inline-block; padding: .15rem .4rem; border-radius: .25rem; }
.ticket-row__status-wrap { flex-shrink: 0; }
.ticket-status { display: inline-block; padding: .2rem .55rem; border-radius: 999px; font-size: .8rem; font-weight: 600; }
.ticket-status--valid { color: #22c55e; background: rgba(34,197,94,0.13); }
.ticket-status--used { color: #9aa1ac; background: rgba(107,114,128,0.18); }
.ticket-status--cancelled { color: #ef4444; background: rgba(239,68,68,0.13); }
.ticket-status--refunded { color: #f59e0b; background: rgba(245,158,11,0.13); }

/* ===== HARVESTED — network location pages (country / city / province map hero + sections) ===== */
.sz-city-map { position: relative; height: 360px; background: #0a0a0a; overflow: hidden; border-bottom: 1px solid rgba(255,255,255,0.06); }
.sz-city-map #country-map, .sz-city-map #city-map, .sz-city-map #province-map { position: absolute; inset: 0; z-index: 1; }
.sz-city-map .maplibregl-map { background: #0a0a0a; font-family: 'IBM Plex Sans', sans-serif; }
.sz-city-map .maplibregl-ctrl-attrib { display: none !important; }
.sz-city-map__overlay { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; background: linear-gradient(180deg, rgba(11,12,15,0) 0%, rgba(11,12,15,0.82) 65%, rgba(11,12,15,0.95) 100%); pointer-events: none; }
.sz-city-map__inner { max-width: var(--container-max-width); margin: 0 auto; padding: 56px var(--space-32, 32px) 28px; }
.sz-city-map__eyebrow { font-family: 'Rules', sans-serif; font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--sz-accent, #A8D5BA); margin: 0 0 10px; }
.sz-city-map__title { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: clamp(2.4rem, 4vw, 3.6rem); line-height: 1.0; letter-spacing: -0.02em; margin: 0; }
.sz-city-map__subtitle { font-size: 15px; color: rgba(255,255,255,0.85); margin: 10px 0 0; line-height: 1.5; pointer-events: auto; }
.sz-city-map__subtitle a { color: var(--sz-accent, #A8D5BA); text-decoration: none; }
.sz-city-map__subtitle a:hover { text-decoration: underline; }
.sz-country-marker div, .city-marker div, .simuze-province-marker div { border-radius: 50%; background-color: var(--sz-accent,#A8D5BA); border: 2px solid #0B0C0F; box-shadow: 0 0 0 1px rgba(255,255,255,0.4), 0 2px 6px rgba(0,0,0,0.5); width: 14px; height: 14px; }
.sz-country-marker--prov div { background-color: #8FB6E0; }
.loc-filter-select { height: 34px; padding: 0 10px; background: rgba(11,12,15,0.6); color: #fff; border: 1px solid rgba(184,186,193,0.20); border-radius: 6px; font-size: 13px; cursor: pointer; outline: none; font-family: inherit; }
.loc-filter-select:focus { border-color: var(--sz-accent, #A8D5BA); }
.loc-empty { color: rgba(255,255,255,0.55); font-size: 14px; padding: 16px 0; }
.loc-count { font-family: ui-monospace, monospace; font-size: 14px; color: rgba(255,255,255,0.45); font-weight: 400; margin-left: 8px; }
.sz-fact-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.sz-fact-list li { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; padding-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.sz-fact-list li:last-child { border-bottom: none; padding-bottom: 0; }
.sz-fact-list .label { font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.55); }
.sz-fact-list .value { color: #fff; text-align: right; }
.sz-fact-list .value a { color: var(--sz-accent, #A8D5BA); text-decoration: none; }
.sz-fact-list .value a:hover { text-decoration: underline; }
.location-upcoming-shows .event-list { list-style: none; padding: 0; margin: 0; }
.location-upcoming-shows .event-list-item { display: flex; align-items: center; gap: 14px; padding: 12px 14px; margin: 0 -14px; border-radius: 10px; border-bottom: 1px solid rgba(184,186,193,0.10); transition: background .15s ease; }
.location-upcoming-shows .event-list-item:hover { background: rgba(255,255,255,0.04); }
.location-upcoming-shows .event-list-item:last-child { border-bottom: none; }
.location-upcoming-shows .event-row-main { display: flex; align-items: center; gap: 14px; flex: 1; min-width: 0; text-decoration: none; color: inherit; cursor: pointer; }
.location-upcoming-shows .event-date-badge { min-width: 56px; padding: 8px 6px; text-align: center; background: rgba(255,255,255,0.06); color: #fff; border-radius: 8px; font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; }
.location-upcoming-shows .event-date-badge .day { display: block; font-family: 'Inter Tight', sans-serif; font-size: 24px; font-weight: 600; line-height: 1; letter-spacing: 0; }
.location-upcoming-shows .event-info { flex: 1; min-width: 0; }
.location-upcoming-shows .event-title { font-size: 16px; font-weight: 500; color: #fff; line-height: 1.2; margin: 0; padding: 0; }
.location-upcoming-shows .event-meta { font-size: 13px; color: rgba(255,255,255,0.55); margin-top: 4px; line-height: 1.35; }
.location-upcoming-shows .event-ticket-btn { margin-left: auto; white-space: nowrap; padding: 7px 14px; font-size: 12px; border-radius: 999px; }
.location-upcoming-shows .event-type-badge { display: inline-block; font-family: 'Rules', sans-serif; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; padding: 2px 8px; margin-left: 8px; border-radius: 4px; background: rgba(168,213,186,0.12); color: var(--sz-accent,#a8d5ba); }
.loc-past-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.loc-past-list li { display: flex; align-items: baseline; gap: 14px; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,0.04); font-size: 13px; }
.loc-past-list li:last-child { border-bottom: none; }
.loc-past-list .date { font-family: ui-monospace, monospace; color: rgba(255,255,255,0.45); min-width: 90px; }
.loc-past-list .title { color: #fff; text-decoration: none; }
.loc-past-list .title:hover { color: var(--sz-accent,#A8D5BA); }

/* ===== HARVESTED — module page styles relocated from in-template <style> blocks ===== */

/* --- group-artists.php --- */
.group-artists-page {
    padding: 20px 0;
    width: 100%;
    max-width: 960px;
}

.add-artist-section {
    width: 100%;
    margin-bottom: 40px;
    padding: 30px;
    background: rgba(255,255,255,0.03);
    border-radius: 12px;
    box-sizing: border-box;
}

.add-artist-section h3 {
    margin: 0 0 6px 0;
}

.add-artist-hint {
    margin: 0 0 20px 0;
    color: rgba(255,255,255,0.55);
    font-size: 0.9rem;
}

.artist-search-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
    width: 100%;
}

.selected-artist {
    padding: 15px;
    background: rgba(255,255,255,0.05);
    border-radius: 8px;
}

.invite-message label {
    display: block;
    margin-bottom: 8px;
    color: rgba(255,255,255,0.75);
    font-size: 0.9rem;
}

.invite-message textarea {
    width: 100%;
    padding: 12px 16px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 8px;
    color: #fff;
    font-size: 0.95rem;
    box-sizing: border-box;
    resize: vertical;
    min-height: 90px;
}

#send-artist-invite {
    align-self: flex-start;
    padding: 12px 28px;
    font-weight: 600;
}

/* Roster artists reuse the Network group-tile styling (.sz-group-tiles / .sz-group-tile);
   each tile is wrapped in .roster-artist so the admin Remove button sits beneath it. */
.group-artists-page .sz-group-tiles { margin-top: 20px; }

.roster-artist { display: flex; flex-direction: column; gap: 10px; }
.roster-artist .remove-artist-relationship { align-self: center; }

.artist-avatar {
    width: 120px;
    height: 120px;
    border-radius: 8px;
    object-fit: cover;
    margin-bottom: 15px;
}

.artist-info {
    text-align: center;
}

.artist-info h4 {
    margin: 0 0 8px 0;
    font-size: 1.1rem;
}

.search-input-wrapper {
    position: relative;
    width: 100%;
}

.search-input {
    width: 100%;
    padding: 12px 20px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 8px;
    color: #fff;
    font-size: 1rem;
    box-sizing: border-box;
}

.search-results {
    position: absolute;
    top: calc(100% + 5px);
    left: 0;
    right: 0;
    max-height: 300px;
    overflow-y: auto;
    background: rgba(0,0,0,0.95);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 8px;
    z-index: 1000;
    display: none;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

.search-results.active {
    display: block;
}

.search-result-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 15px;
    cursor: pointer;
    transition: background 0.2s;
}

.search-result-item:hover {
    background: rgba(255,255,255,0.1);
}

.search-result-item img {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    flex-shrink: 0;
}

.search-result-item .artist-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    text-align: left;
}

.search-result-item .artist-name {
    font-weight: 500;
    color: #fff;
}

.search-result-item .artist-type {
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.6);
}

.no-artists {
    text-align: center;
    padding: 40px;
    color: rgba(255,255,255,0.5);
}

.invitations-list {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-top: 20px;
}

.invitation-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px;
    background: rgba(255,255,255,0.03);
    border-radius: 8px;
}

.invitation-artist {
    display: flex;
    align-items: center;
    gap: 15px;
}

.invitation-artist .artist-avatar {
    width: 60px;
    height: 60px;
    margin-bottom: 0;
}

.invitation-artist .artist-info {
    text-align: left;
}

.invitation-artist .artist-info h4 {
    margin: 0 0 5px 0;
}

/* --- group-public.php --- */
.group-genres-public {
    margin: 20px 0 16px;
}

.group-genres-title {
    margin: 0 0 8px 0;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.7);
}

.group-genres-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.group-genre-tag {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    background: rgba(168, 213, 186, 0.16);
    border: 1px solid rgba(168, 213, 186, 0.45);
    color: #a8d5ba;
    font-size: 0.8rem;
    font-weight: 500;
}

/* --- group-sales.php --- */
.group-sales {
    max-width: 1000px;
}

.sales-header {
    margin-bottom: 24px;
}

.sales-header h2 {
    margin: 0;
    font-size: 24px;
    color: #fff;
}

/* Stats Grid */
.sales-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    margin-bottom: 32px;
}

.stat-card {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 20px;
    display: flex;
    align-items: center;
    gap: 16px;
}

.stat-card.highlight {
    background: rgba(81, 172, 50, 0.1);
    border-color: rgba(81, 172, 50, 0.3);
}

.stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.05);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: rgba(255, 255, 255, 0.5);
}

.stat-card.highlight .stat-icon {
    background: rgba(81, 172, 50, 0.2);
    color: #51ac32;
}

.stat-content {
    flex: 1;
}

.stat-value {
    display: block;
    font-size: 22px;
    font-weight: 600;
    color: #fff;
    line-height: 1.2;
}

.stat-label {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.5);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Empty State */
.sales-empty {
    text-align: center;
    padding: 60px 20px;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 12px;
}

.sales-empty i {
    font-size: 48px;
    color: rgba(255, 255, 255, 0.2);
    margin-bottom: 16px;
}

.sales-empty h3 {
    margin: 0 0 8px;
    color: #fff;
}

.sales-empty p {
    color: rgba(255, 255, 255, 0.6);
    margin: 0;
}

/* Sales Table */
.sales-table-container {
    background: rgba(255, 255, 255, 0.03);
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    overflow: hidden;
}

.sales-table {
    width: 100%;
    border-collapse: collapse;
}

.sales-table th {
    padding: 14px 16px;
    text-align: left;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: rgba(255, 255, 255, 0.5);
    background: rgba(0, 0, 0, 0.2);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.sales-table th.text-right {
    text-align: right;
}

.sales-table td {
    padding: 14px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    color: #fff;
    vertical-align: middle;
}

.sales-table tr:last-child td {
    border-bottom: none;
}

.sales-table tr:hover td {
    background: rgba(255, 255, 255, 0.02);
}

.sale-date {
    white-space: nowrap;
}

.sale-time {
    display: block;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.4);
}

.product-title {
    display: block;
    font-weight: 500;
}

.product-type {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.4);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.sale-buyer a {
    color: #51ac32;
    text-decoration: none;
}

.sale-buyer a:hover {
    text-decoration: underline;
}

.guest-purchase {
    color: rgba(255, 255, 255, 0.5);
    font-style: italic;
}

.text-right {
    text-align: right;
}

.sale-fee {
    color: rgba(255, 255, 255, 0.5);
}

.sale-net strong {
    color: #51ac32;
}

/* Fee Info */
.fee-info {
    margin-top: 20px;
    padding: 16px 20px;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 8px;
}

.fee-info p {
    margin: 0;
    font-size: 13px;
    color: rgba(255, 255, 255, 0.5);
}

.fee-info i {
    margin-right: 8px;
}

@media (max-width: 900px) {
    .sales-stats {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .sales-stats {
        grid-template-columns: 1fr;
    }
    
    .sales-table-container {
        overflow-x: auto;
    }
    
    .sales-table {
        min-width: 600px;
    }
}

/* --- seller-dashboard.php --- */
.seller-dashboard {
    max-width: 1200px;
}

.seller-switcher {
    margin-bottom: 20px;
    padding: 15px;
    background: rgba(255,255,255,0.05);
    border-radius: 8px;
}

.seller-switcher select {
    margin-left: 10px;
    padding: 8px 12px;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.2);
    color: #fff;
    border-radius: 4px;
}

.seller-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin: 20px 0;
}

.stat-card {
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 12px;
    padding: 20px;
    text-align: center;
}

.stat-value {
    display: block;
    font-size: 2rem;
    font-weight: bold;
    color: #fff;
}

.stat-label {
    display: block;
    color: rgba(255,255,255,0.6);
    margin-top: 5px;
}

.period-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin: 20px 0;
}

.period-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 8px;
    padding: 15px 20px;
}

.period-card h4 {
    margin: 0 0 10px 0;
    color: rgba(255,255,255,0.7);
}

.period-card .amount {
    font-size: 1.5rem;
    font-weight: bold;
    color: #4CAF50;
}

.period-card .count {
    display: block;
    color: rgba(255,255,255,0.5);
    font-size: 0.9rem;
}

.payment-account-section {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 8px;
    padding: 20px;
    margin: 20px 0;
}

.account-status {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 15px;
    border-radius: 6px;
    margin-bottom: 15px;
}

.account-status.verified {
    background: rgba(76, 175, 80, 0.1);
    border: 1px solid rgba(76, 175, 80, 0.3);
}

.account-status.not-verified {
    background: rgba(255, 193, 7, 0.1);
    border: 1px solid rgba(255, 193, 7, 0.3);
}

.status-icon {
    font-size: 1.5rem;
}

.transactions-section {
    margin-top: 30px;
}

.transactions-table {
    width: 100%;
    border-collapse: collapse;
}

.transactions-table th,
.transactions-table td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.transactions-table th {
    background: rgba(255,255,255,0.05);
    color: rgba(255,255,255,0.7);
    font-weight: 500;
}

.net-amount {
    color: #4CAF50;
    font-weight: 600;
}

.status-badge {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 3px;
    font-size: 12px;
}

.status-completed { background: rgba(76, 175, 80, 0.2); color: #4CAF50; }
.status-pending { background: rgba(255, 193, 7, 0.2); color: #FFC107; }
.status-failed { background: rgba(244, 67, 54, 0.2); color: #F44336; }

.no-data {
    text-align: center;
    padding: 40px;
    color: rgba(255,255,255,0.5);
}

@media (max-width: 768px) {
    .seller-stats {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .period-stats {
        grid-template-columns: 1fr;
    }
}

/* --- download-access.php --- */
.download-access-page {
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
}

.download-access-container {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 16px;
    padding: 40px;
    max-width: 600px;
    width: 100%;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.download-access-header {
    display: flex;
    gap: 24px;
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.download-access-artwork img {
    width: 120px;
    height: 120px;
    border-radius: 12px;
    object-fit: cover;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

.download-access-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.download-access-title {
    margin: 0 0 8px;
    font-size: 24px;
    color: #fff;
}

.download-access-artist a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
}

.download-access-artist a:hover {
    color: #51ac32;
}

.download-access-status {
    margin-top: auto;
    color: #51ac32;
    font-size: 14px;
}

.download-access-status i {
    margin-right: 6px;
}

.download-formats-section h2 {
    font-size: 18px;
    margin: 0 0 8px;
    color: #fff;
}

.formats-hint {
    color: rgba(255, 255, 255, 0.6);
    font-size: 14px;
    margin: 0 0 20px;
}

.download-formats-grid {
    display: grid;
    gap: 12px;
}

.download-format-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.2s ease;
}

.download-format-card:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.2);
}

.download-format-card.unavailable {
    opacity: 0.5;
}

.format-name {
    margin: 0;
    font-size: 16px;
    color: #fff;
}

.format-size {
    font-size: 13px;
    color: rgba(255, 255, 255, 0.5);
}

.format-download-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: #51ac32;
    color: #fff;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.2s ease;
}

.format-download-btn:hover {
    background: #45a028;
    transform: translateY(-1px);
    color: #fff;
}

.format-unavailable {
    color: rgba(255, 255, 255, 0.4);
    font-size: 13px;
}

.download-info-section {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.download-info-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    color: rgba(255, 255, 255, 0.7);
}

.download-info-item i {
    font-size: 18px;
    opacity: 0.6;
    margin-top: 2px;
}

.download-info-item strong {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.7;
    margin-bottom: 4px;
}

.download-info-item span {
    font-size: 14px;
    color: #fff;
}

.download-access-footer {
    margin-top: 32px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.back-to-artist,
.view-all-downloads {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    font-size: 14px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: color 0.2s;
}

.back-to-artist:hover,
.view-all-downloads:hover {
    color: #51ac32;
}

@media (max-width: 600px) {
    .download-access-container {
        padding: 24px;
    }
    
    .download-access-header {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    
    .download-info-section {
        grid-template-columns: 1fr;
    }
    
    .download-access-footer {
        flex-direction: column;
        gap: 16px;
    }
}

/* --- download-success.php --- */
.download-success-page {
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
}

.download-success-container {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 16px;
    padding: 48px;
    max-width: 600px;
    width: 100%;
    text-align: center;
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.success-header {
    margin-bottom: 32px;
}

.success-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(81, 172, 50, 0.2);
    border-radius: 50%;
}

.success-icon i {
    font-size: 40px;
    color: #51ac32;
}

.success-header h1 {
    font-size: 28px;
    margin: 0 0 12px;
    color: #fff;
}

.success-header p {
    color: rgba(255, 255, 255, 0.7);
    margin: 0;
}

.order-summary {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 10px;
    padding: 16px 20px;
    margin-bottom: 24px;
}

.order-summary-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.order-number {
    color: rgba(255, 255, 255, 0.6);
    font-size: 14px;
}

.order-total {
    font-size: 20px;
    font-weight: 600;
    color: #51ac32;
}

.download-items {
    text-align: left;
}

.download-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    margin-bottom: 12px;
}

.download-item-artwork img {
    width: 60px;
    height: 60px;
    border-radius: 8px;
    object-fit: cover;
}

.download-item-info {
    flex: 1;
}

.download-item-info h3 {
    margin: 0 0 4px;
    font-size: 16px;
    color: #fff;
}

.download-item-artist {
    margin: 0 0 4px;
    color: rgba(255, 255, 255, 0.6);
    font-size: 14px;
}

.download-item-type {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.4);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.download-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: #51ac32;
    color: #fff;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    transition: all 0.2s ease;
}

.download-btn-primary:hover {
    background: #45a028;
    transform: translateY(-1px);
    color: #fff;
}

.success-footer {
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    justify-content: space-between;
}

.continue-browsing,
.view-purchases {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    font-size: 14px;
    transition: color 0.2s;
}

.continue-browsing:hover,
.view-purchases:hover {
    color: #51ac32;
}

/* Processing State */
.processing-state,
.failed-state {
    padding: 40px 0;
}

.loading-spinner {
    width: 50px;
    height: 50px;
    border: 3px solid rgba(255, 255, 255, 0.1);
    border-top-color: #51ac32;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto 24px;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.error-icon {
    width: 80px;
    height: 80px;
    margin: 0 auto 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(220, 53, 69, 0.2);
    border-radius: 50%;
}

.error-icon i {
    font-size: 40px;
    color: #dc3545;
}

.btn-secondary {
    display: inline-block;
    padding: 12px 24px;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    border-radius: 8px;
    text-decoration: none;
    margin-top: 20px;
    transition: background 0.2s;
}

.btn-secondary:hover {
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
}

@media (max-width: 600px) {
    .download-success-container {
        padding: 32px 20px;
    }
    
    .download-item {
        flex-direction: column;
        text-align: center;
    }
    
    .success-footer {
        flex-direction: column;
        gap: 16px;
        text-align: center;
    }
}

/* --- template_network.php --- */
/* ---- Network page — minimal styles, the rest comes from simuze-2026.css ---- */
.network-content-filter { margin-bottom: 28px; }

/* Slidedown filter internals (sz-filter-panel handles outer; this fills the columns) */
.nw-filter-slidedown { width:100%; overflow:hidden; max-height:0; transition:max-height .25s ease; }
.nw-filter-slidedown.is-open { max-height:400px; }
.nw-filter-slidedown-inner { padding:18px 0; box-sizing:border-box; }
.nw-filter-columns { display:flex; flex-wrap:wrap; gap:18px 28px; align-items:flex-end; }
.nw-filter-col { flex:0 1 auto; min-width:160px; }
.nw-filter-col label {
  display:block; margin-bottom:8px;
  font-family:'Rules', sans-serif; font-size:10px; font-weight:500;
  letter-spacing:0.14em; text-transform:uppercase;
  color:rgba(255,255,255,0.55);
}
.nw-filter-col select {
  width:100%; max-width:220px; height:38px; padding:0 12px;
  background:rgba(11,12,15,0.6); border:1px solid rgba(184,186,193,0.20);
  border-radius:6px; color:#fff; font-size:14px; cursor:pointer; font-family:inherit;
  line-height:38px; outline:none;
}
.nw-filter-col select:focus { border-color:var(--sz-accent,#a8d5ba); }
.nw-filter-actions { display:flex; gap:12px; align-items:center; }
.nw-filter-reset {
  height:38px; padding:0 16px;
  background:rgba(255,255,255,.06); color:rgba(255,255,255,.85);
  border:1px solid rgba(184,186,193,0.20); border-radius:6px;
  font-size:13px; cursor:pointer; font-family:inherit;
  text-decoration:none; display:inline-flex; align-items:center;
}
.nw-filter-reset:hover { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,0.3); }
.nw-filter-apply {
  height:38px !important; line-height:38px !important; padding:0 18px !important;
  border-radius:999px !important;
  background:var(--sz-accent,#a8d5ba) !important; color:#0a0a0a !important;
  font-weight:600 !important; font-size:13px !important; border:none !important;
  cursor:pointer; font-family:inherit;
}
.nw-filter-apply:hover { background:var(--sz-accent-hover,#c1e2c8) !important; }

.network-empty-state { text-align:center; color:rgba(255,255,255,0.55); padding:2.5rem 0; font-size:.95rem; }

/* Activity feed inside sidebar */
.activity-feed { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.4rem; }
.activity-feed li { font-size:.82rem; line-height:1.3; border-bottom:1px solid rgba(255,255,255,0.06); padding-bottom:.4rem; }
.activity-feed li:last-child { border-bottom:none; padding-bottom:0; }
.activity-feed .activity-meta { display:flex; align-items:baseline; gap:.5rem; margin-top:.1rem; }
.activity-feed .activity-group { font-weight:600; font-size:.78rem; }
.activity-feed .activity-group a { text-decoration:none; color:var(--sz-accent,#A8D5BA); }
.activity-feed .activity-time { font-size:.72rem; color:rgba(255,255,255,0.5); }

/* Board widget inside sidebar */
.board-widget-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.7rem; }
.board-widget-list li { display:flex; align-items:flex-start; gap:.5rem; }
.board-widget-list .board-type-badge {
  font-size:.65rem; font-weight:600; text-transform:uppercase; letter-spacing:.05em;
  padding:.1rem .4rem; border-radius:12px;
  background:rgba(168,213,186,.12); color:var(--sz-accent,#A8D5BA);
  flex-shrink:0; margin-top:.15rem;
  font-family:'Rules', sans-serif;
}
.board-widget-list .board-widget-title { font-size:.85rem; line-height:1.3; }

/* Map marker avatar */
.map-group-avatar { width:40px; height:40px; border-radius:8px; object-fit:cover; border:2px solid rgba(168,213,186,.6); }

/* --- messaging UI (shared by group-messages + profile-messages) --- */
.message-area-header {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    padding: 18px 24px;
    min-height: 64px;
    box-sizing: border-box;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.messages-filter-tabs {
    display: flex;
    gap: 4px;
    padding: 0;
    border: none;
}
.messages-filter-tab {
    flex: 0 0 auto;
    text-align: center;
    padding: 8px 18px;
    color: rgba(255,255,255,0.6);
    text-decoration: none;
    border-radius: 8px;
    font-size: 0.9rem;
    position: relative;
}
.messages-filter-tab:hover { color: #fff; background: rgba(255,255,255,0.04); }
.messages-filter-tab.active { color: #1a1a1a; background: #a8d5ba; font-weight: 600; }
.messages-filter-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 8px;
    border-radius: 999px;
    background: #ff6b6b;
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
}
/* Invitation detail in the right pane (uses messages-container-full layout) */
.messages-container-full.invitation-detail {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 28px 32px;
}
.invitation-detail .invitation-headline {
    color: #fff;
    font-size: 1.1rem;
    line-height: 1.5;
}
.invitation-detail .invitation-quote {
    margin: 0;
    padding: 14px 18px;
    border-left: 3px solid rgba(168,213,186,0.5);
    background: rgba(255,255,255,0.04);
    color: rgba(255,255,255,0.85);
    font-style: italic;
    font-size: 0.95rem;
    border-radius: 0 8px 8px 0;
}
.invitation-detail .invitation-meta {
    color: rgba(255,255,255,0.5);
    font-size: 0.85rem;
}
.invitation-detail .invitation-actions-wide {
    display: flex;
    gap: 10px;
    margin-top: 8px;
}
.invitation-detail .invitation-actions-wide button {
    padding: 11px 26px;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.95rem;
}
.invitation-detail .btn-accept-invite { background: #a8d5ba; color: #1a1a1a; }
.invitation-detail .btn-accept-invite:hover { background: #95c2a7; }
.invitation-detail .btn-reject-invite { background: transparent; color: rgba(255,255,255,0.6); border: 1px solid rgba(255,255,255,0.18); }
.invitation-status {
    display: inline-flex; align-items: center;
    padding: 8px 16px;
    border-radius: 999px;
    font-weight: 600; font-size: 0.9rem;
}
.invitation-status-accepted { background: rgba(168,213,186,0.18); color: #a8d5ba; }
.invitation-status-rejected,
.invitation-status-revoked  { background: rgba(255,107,107,0.18); color: #ff8a8a; }
.btn-delete-invite {
    padding: 8px 14px;
    border-radius: 8px;
    background: transparent;
    color: rgba(255,255,255,0.55);
    border: 1px solid rgba(255,255,255,0.15);
    cursor: pointer;
    font-weight: 600; font-size: 0.85rem;
}
.btn-delete-invite:hover { color: #ff8a8a; border-color: rgba(255,107,107,0.4); }
.invitation-dot {
    display: inline-flex; align-items: center; justify-content: center;
    width: 18px; height: 18px;
    border-radius: 999px;
    font-size: 0.7rem; line-height: 1;
}
.invitation-dot.accepted { background: rgba(168,213,186,0.18); color: #a8d5ba; }
.invitation-dot.declined { background: rgba(255,107,107,0.18); color: #ff8a8a; }

/* Sidebar thread row with hover-revealed delete button */
.thread-item-row {
    position: relative;
}
.thread-item-row .thread-delete-btn {
    position: absolute;
    top: 50%; right: 8px;
    transform: translateY(-50%);
    width: 32px; height: 32px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    background: rgba(0,0,0,0.45);
    color: rgba(255,255,255,0.7);
    border: none; cursor: pointer;
    opacity: 0; transition: opacity 0.15s, background 0.15s, color 0.15s;
}
.thread-item-row:hover .thread-delete-btn { opacity: 1; }
.thread-item-row .thread-delete-btn:hover { background: rgba(255,107,107,0.25); color: #ff8a8a; }

/* Per-message bubble delete */
.message { position: relative; }
.message .message-delete-btn {
    position: absolute;
    top: 4px; right: 4px;
    width: 24px; height: 24px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 4px;
    background: rgba(0,0,0,0.45);
    color: rgba(255,255,255,0.7);
    border: none; cursor: pointer;
    opacity: 0; transition: opacity 0.15s, background 0.15s, color 0.15s;
    font-size: 0.7rem;
}
.message:hover .message-delete-btn { opacity: 1; }
.message .message-delete-btn:hover { background: rgba(255,107,107,0.3); color: #ff8a8a; }
.invitation-detail .btn-reject-invite:hover { color: #fff; border-color: rgba(255,255,255,0.35); }
.invitation-detail button:disabled { opacity: 0.5; cursor: not-allowed; }

/* Restore buttons (Trash view) — same shape as delete, green affordance */
.thread-item-row .thread-restore-btn {
    position: absolute;
    top: 50%; right: 8px;
    transform: translateY(-50%);
    width: 32px; height: 32px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    background: rgba(0,0,0,0.45);
    color: rgba(255,255,255,0.7);
    border: none; cursor: pointer;
    opacity: 0; transition: opacity 0.15s, background 0.15s, color 0.15s;
}
.thread-item-row:hover .thread-restore-btn { opacity: 1; }
.thread-item-row .thread-restore-btn:hover { background: rgba(168,213,186,0.25); color: #a8d5ba; }
.message .message-restore-btn {
    position: absolute;
    top: 4px; right: 4px;
    width: 24px; height: 24px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 4px;
    background: rgba(0,0,0,0.45);
    color: rgba(255,255,255,0.7);
    border: none; cursor: pointer;
    opacity: 0; transition: opacity 0.15s, background 0.15s, color 0.15s;
    font-size: 0.7rem;
}
.message:hover .message-restore-btn { opacity: 1; }
.message .message-restore-btn:hover { background: rgba(168,213,186,0.3); color: #a8d5ba; }

/* Group thread cue + non-replyable note */
.thread-group-icon { opacity: 0.7; margin-right: 2px; }
.participant-avatar.group-avatar, .thread-avatar.group-avatar { border-radius: 8px; }
.reply-disabled {
    margin: 0; padding: 14px 18px;
    color: rgba(255,255,255,0.5);
    font-size: 0.85rem; font-style: italic;
    text-align: center;
}
.message-subject { margin-bottom: 6px; color: #fff; font-size: 0.95rem; }

/* ===== HARVESTED — create-group wizard image step (profile-create-group.php) ===== */
.cg-step-section { margin-top: 30px; }
.cg-img-label { color: #fff; font-weight: 600; margin-bottom: 15px; display: block; border-bottom: 2px solid var(--sz-accent,#a8d5ba); padding-bottom: 8px; }
.cg-preview { margin-bottom: 15px; }
.cg-avatar-ph { width: 200px; height: 200px; border-radius: 50%; background: #2a2a2a; border: 2px dashed #4a4a4a; display: flex; align-items: center; justify-content: center; color: #999; }
.cg-avatar-ph .fas, .cg-avatar-ph .sz-ic { font-size: 80px; width: 80px; height: 80px; }
.cg-header-ph { width: 100%; height: 200px; background: #2a2a2a; border: 2px dashed #4a4a4a; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #999; }
.cg-header-ph .fas, .cg-header-ph .sz-ic { font-size: 60px; width: 60px; height: 60px; }
.cg-upload-btn { background: var(--sz-accent,#a8d5ba); color: #14171d; border: none; padding: 10px 20px; border-radius: 4px; cursor: pointer; font-weight: 600; display: inline-flex; align-items: center; gap: 8px; }
.cg-img-hint { display: block; margin-top: 8px; color: #999; }
.sz-file-hidden { position: absolute; left: -9999px; width: 1px; height: 1px; }


/* ===== HARVESTED — iteration-3: footer bottom + homepage hero photographer credit ===== */
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.footer-bottom span { color: rgba(159,159,159,0.7); font-size: 13px; }
.h2-hero__credit { position: absolute; right: max(var(--h2-gutter, 32px), 20px); bottom: 14px; z-index: 2; font-size: 11px; letter-spacing: 0.03em; color: rgba(255,255,255,0.38); margin: 0; }
.h2-hero__credit a { color: rgba(255,255,255,0.6); text-decoration: none; border-bottom: 1px solid rgba(255,255,255,0.16); transition: color .15s ease, border-color .15s ease; }
.h2-hero__credit a:hover { color: #fff; border-bottom-color: rgba(255,255,255,0.5); }
@media (max-width: 760px) { .h2-hero__credit { right: 16px; bottom: 10px; font-size: 10px; } }

/* Header "Log in" pill (harvested from header.php inline style) */
/* Login/signup now use the shared .button .button-sm classes (see header.php) for a
   subtle outline/filled pair matching the 2026 design. Keep this class layout-only. */
.nav-login-link { text-decoration: none; }

/* ===== HARVESTED — board post detail (.bp-*) from group-board-post.html ===== */
.bp-grid{display:grid;grid-template-columns:1fr 300px;gap:28px;align-items:start;}
.bp-back{display:inline-flex;align-items:center;gap:7px;color:var(--sz-accent);text-decoration:none;font-size:13px;margin-bottom:16px;}
.bp-op{border:1px solid rgba(255,255,255,0.12);border-radius:16px;padding:22px;background:rgba(255,255,255,0.025);}
.bp-op__row{display:flex;gap:14px;align-items:flex-start;}
.bp-op__main{flex:1;min-width:0;}
.bp-op .sz-board-post__heading{font-size:13px;font-weight:500;line-height:1.4;letter-spacing:0;color:rgba(255,255,255,0.55);margin:0 0 6px;}
.bp-op .sz-board-post__body{font-size:1.05rem;line-height:1.55;color:rgba(255,255,255,0.92);margin-top:0;}
.bp-op__avatar{width:46px;height:46px;font-size:15px;}
.bp-responses{margin-top:26px;padding-left:18px;border-left:2px solid rgba(255,255,255,0.08);display:flex;flex-direction:column;gap:2px;}
.bp-reshead{font-family:'Rules','Inter Tight',sans-serif;font-size:11px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.4);margin:0 0 6px;}
.bp-reply{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,0.05);}
.bp-reply:last-child{border-bottom:none;}
.bp-reply__avatar{width:32px;height:32px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-family:'Inter Tight',sans-serif;font-weight:700;color:#fff;font-size:12px;opacity:0.9;}
.bp-reply__head{display:flex;align-items:baseline;gap:10px;margin-bottom:3px;}
.bp-reply__name{font-weight:600;color:rgba(255,255,255,0.82);font-size:13.5px;text-decoration:none;}
.bp-reply__name:hover{color:#fff;}
.bp-reply__time{font-size:12px;color:rgba(255,255,255,0.38);margin-left:auto;}
.bp-reply__body{font-size:13.5px;line-height:1.55;color:rgba(255,255,255,0.66);margin:0;}
.bp-reply__actions{display:flex;gap:16px;margin-top:7px;}
.bp-reply__actions a{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:rgba(255,255,255,0.42);text-decoration:none;}
.bp-reply__actions a:hover{color:var(--sz-accent);}
.bp-reply__actions .sz-ic{width:13px;height:13px;}
.bp-reply--child{border-left:2px solid rgba(255,255,255,0.08);padding-left:14px;border-bottom:none;}
.bp-reply-form{display:flex;gap:8px;align-items:center;margin-top:8px;}
.bp-reply-form[hidden]{display:none;}
.bp-reply-form input{flex:1;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.04);border-radius:999px;padding:7px 14px;color:#fff;font-size:13.5px;outline:none;}
.bp-reply-form input:focus{border-color:rgba(255,255,255,0.28);}
.button.button-small{padding:6px 12px;font-size:12.5px;line-height:1;}
.bp-composer{margin-top:18px;display:flex;gap:10px;align-items:center;}
.bp-composer .bp-reply__avatar{width:34px;height:34px;font-size:13px;opacity:1;}
.bp-composer__field{flex:1;display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,0.12);border-radius:999px;padding:6px 6px 6px 16px;background:rgba(255,255,255,0.04);}
.bp-composer__field input{flex:1;border:none;background:transparent;color:#fff;font-size:14px;outline:none;}
.bp-composer__field button{flex:none;width:36px;height:36px;border-radius:50%;border:none;background:var(--sz-accent);color:#0a0a0a;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.bp-side{display:flex;flex-direction:column;gap:18px;position:sticky;top:90px;}
.bp-card{border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:18px;background:rgba(255,255,255,0.02);}
.bp-card h3{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:14px;color:#fff;margin:0 0 14px;}
.bp-fact{display:flex;justify-content:space-between;gap:16px;align-items:baseline;font-size:13px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,0.06);}
.bp-fact:last-child{border-bottom:none;}
.bp-fact__k{color:rgba(255,255,255,0.5);flex:none;white-space:nowrap;}
.bp-fact__v{color:#fff;font-weight:500;text-align:right;flex:1;min-width:0;}
.bp-other{display:flex;gap:11px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,0.06);text-decoration:none;}
.bp-other:last-child{border-bottom:none;}
.bp-other__av{width:30px;height:30px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:11px;}
.bp-other__t{font-size:13px;color:rgba(255,255,255,0.85);line-height:1.35;margin:0;}
.bp-other__m{font-size:11.5px;color:rgba(255,255,255,0.42);margin:3px 0 0;}
.bp-other:hover .bp-other__t{color:#fff;}
/* Board-post status fact + author/manager inline edit of the original post */
.bp-fact__v--status{color:#5fd08a;}
.bp-fact__v--status.is-closed{color:rgba(255,255,255,0.5);}
.bp-op-editform{display:flex;flex-direction:column;gap:10px;margin-top:16px;}
.bp-op-editform[hidden]{display:none;}
.rt-op-editform{display:flex;flex-direction:column;gap:10px;margin-top:16px;}
.rt-op-editform[hidden]{display:none;}
.rt-op-editform .sz-input,.rt-op-editform .sz-textarea{width:100%;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.14);border-radius:10px;color:#fff;font-size:14px;padding:10px 12px;}
.rt-op-editform .sz-textarea{resize:vertical;line-height:1.5;}
.rt-op-editform__actions{display:flex;gap:10px;}
.bp-op-editform .sz-input{width:100%;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.14);border-radius:10px;color:#fff;font-size:14px;padding:10px 12px;}
.bp-op-editform textarea.sz-input{resize:vertical;line-height:1.5;}
.bp-op-editform__actions{display:flex;gap:10px;}
@media(max-width:980px){.bp-grid{grid-template-columns:1fr;}.bp-side{position:static;}}

/* ===== HARVESTED — network board (.nb-*) from network-board.html ===== */
.nb-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:start;}
.nb-grid .sz-board-list{max-width:none !important;}
.nb-side{display:flex;flex-direction:column;gap:18px;}
.nb-side.sz-net-aside{position:sticky;top:calc(var(--header-height,60px) + 28px);}
.nb-card{border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:18px;background:rgba(255,255,255,0.02);}
.nb-card h3{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:14px;color:#fff;margin:0 0 14px;}
.nb-stats{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.nb-stat__num{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.55rem;color:#fff;letter-spacing:-0.02em;line-height:1;}
.nb-stat__lbl{font-size:11.5px;color:rgba(255,255,255,0.5);margin-top:5px;}
.nb-cat{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,0.06);text-decoration:none;font-size:13.5px;color:rgba(255,255,255,0.8);}
.nb-cat:last-child{border-bottom:none;}
.nb-cat:hover{color:#fff;}
.nb-cat.is-active{color:var(--sz-accent);}
.nb-cat__c{font-size:12px;color:rgba(255,255,255,0.45);font-variant-numeric:tabular-nums;flex:none;}
@media(max-width:900px){.nb-grid{grid-template-columns:1fr;gap:28px;}.nb-side.sz-net-aside{position:static;order:-1;}}

/* ===== HARVESTED — music-overview album card (status badge + meta + actions) from group-manage.html ===== */
.sz-album-strip .album-card .album-status {
  position: absolute; top: 8px; left: 8px; z-index: 3;
  background: rgba(11,12,15,0.72) !important;
  box-shadow: 0 1px 6px rgba(0,0,0,0.45);
}
.sz-album-strip .album-card .album-artist { font-size: 13px; color: rgba(255,255,255,0.6); margin: 4px 0 0; }
.sz-album-strip .album-card .album-meta { font-size: 12px; color: rgba(255,255,255,0.42); margin: 3px 0 0; line-height: 1.4; font-variant-numeric: tabular-nums; }
.sz-album-strip .album-card .album-actions { margin-top: 12px !important; display: flex; gap: 6px; flex-wrap: wrap; }

/* ===== Settings form helpers (group/profile settings → .sz-form) ===== */
.sz-radio-stack { display: flex; flex-direction: column; gap: 10px; }
.sz-radio-stack .sz-radio { width: 100%; align-items: flex-start; }
.sz-repeater { display: flex; flex-direction: column; gap: 10px; margin-bottom: 10px; }
.sz-repeater__row { display: flex; gap: 8px; align-items: center; }
.sz-repeater__row .sz-input { flex: 1; }
.sz-checks { display: flex; gap: 24px; flex-wrap: wrap; }
.sz-check { display: flex; align-items: center; gap: 8px; cursor: pointer; color: rgba(255,255,255,0.8); font-size: 14px; }
.sz-check input { accent-color: var(--sz-accent); width: 16px; height: 16px; }
.sz-media-preview { margin-bottom: 15px; }
.sz-media-preview .current-avatar,
.sz-media-preview .current-header { margin-bottom: 15px; }
.sz-media-preview img { max-width: 100%; max-height: 300px; border-radius: 8px; border: 2px solid rgba(255,255,255,0.12); display: block; }
.sz-media-preview .no-header-placeholder { width: 100%; height: 200px; background: rgba(255,255,255,0.04); border: 2px dashed rgba(255,255,255,0.15); border-radius: 8px; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,0.4); }
.sz-media-preview .no-header-placeholder i { font-size: 60px; }
.sz-input-row { display: flex; gap: 8px; align-items: flex-start; }
.sz-input-row .sz-input { flex: 1; }
.sz-field__status { margin-top: 8px; font-size: 13px; }
.sz-pay-status { margin-bottom: 12px; }
.sz-form-actions--main { border-top: 1px solid rgba(255,255,255,0.1); margin-top: 30px; padding-top: 20px; }
.sz-fieldset.payment-method-section { margin-bottom: 20px; }

/* ── Phase 8 fixes ──────────────────────────────────────────── */
/* User/member avatars are always round + cover-cropped (no ovals). */
.sz-member__avatar img, .sz-member__avatar .user-avatar { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
/* Carousel arrows ("Explore by place" etc.) must sit above the tiles/maps. */
.sz-carousel__btn { z-index: 60; }
/* Sticky network/music subnav stays on top of location/map tiles & avatars. */
.sz-subnav { z-index: 60; }
/* /network content constrained to the container width (was full-bleed). */
.network-page .wrapper { max-width: var(--container-max-width); margin-left: auto; margin-right: auto; padding-left: var(--space-32); padding-right: var(--space-32); box-sizing: border-box; }
@media (max-width: 768px) { .network-page .wrapper { padding-left: 16px; padding-right: 16px; } }

/* ============================================================
   INVITATIONS (group members + general invite modal + handover)
   Ported from the 2026 design system. The base .sz-invite-card
   rule is intentionally NOT redefined here — the existing one is
   reused; only the new sub-elements are added.
   ============================================================ */
.sz-invite-grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,0.95fr); gap: 20px; align-items: start; max-width: 1000px; }
@media (max-width: 880px) { .sz-invite-grid { grid-template-columns: 1fr; } }

.sz-invite-card__head { display: flex; align-items: baseline; gap: 8px; margin: 0 0 4px; }
.sz-invite-card h2 { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.2rem; color: #fff; margin: 0; }
.sz-invite-card__sub { font-size: 13.5px; color: rgba(255,255,255,0.5); margin: 2px 0 18px; line-height: 1.5; }
.sz-invite-count { font-size: 13px; color: rgba(255,255,255,0.4); font-weight: 600; font-variant-numeric: tabular-nums; }

/* token recipient field */
.sz-invite-field { position: relative; }
.sz-invite-field__box {
  display: flex; flex-wrap: wrap; gap: 7px; align-items: center;
  min-height: 50px; padding: 8px 10px; border-radius: 9px;
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.12);
  cursor: text; transition: border-color .15s ease, background .15s ease;
}
.sz-invite-field__box.is-focus { border-color: var(--sz-accent); background: rgba(255,255,255,0.05); }
.sz-invite-field__input { flex: 1 1 160px; min-width: 120px; border: 0; background: transparent; color: #fff; font: inherit; font-size: 15px; outline: 0; padding: 5px 4px; }
.sz-invite-field__input::placeholder { color: rgba(255,255,255,0.4); }

.sz-token { display: inline-flex; align-items: center; gap: 7px; padding: 4px 5px 4px 4px; border-radius: 8px; background: rgba(168,213,186,0.13); color: #fff; font-size: 13.5px; max-width: 100%; }
.sz-token--ext { background: rgba(255,255,255,0.07); }
.sz-token__av { width: 22px; height: 22px; border-radius: 50%; flex: none; display: grid; place-items: center; font-size: 10px; font-weight: 600; color: #fff; }
.sz-token--ext .sz-token__av { background: rgba(255,255,255,0.12); border-radius: 6px; }
.sz-token--ext .sz-token__av .sz-ic { width: 13px; height: 13px; color: var(--sz-accent); }
.sz-token__txt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-token__x { width: 18px; height: 18px; display: grid; place-items: center; border-radius: 5px; color: rgba(255,255,255,0.55); flex: none; cursor: pointer; transition: background .15s ease, color .15s ease; }
.sz-token__x:hover { background: rgba(255,255,255,0.14); color: #fff; }
.sz-token__x .sz-ic { width: 12px; height: 12px; }

/* suggestions menu */
.sz-invite-field__menu { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 60; background: #1a1d24; border: 1px solid rgba(255,255,255,0.1); border-radius: 10px; box-shadow: 0 10px 40px rgba(0,0,0,0.5); padding: 6px; max-height: 264px; overflow: auto; }
.sz-invite-field__menu[hidden] { display: none; }
.sz-ac-row { display: flex; align-items: center; gap: 11px; width: 100%; padding: 9px 10px; border-radius: 8px; background: transparent; border: 0; cursor: pointer; text-align: left; color: #fff; }
.sz-ac-row:hover, .sz-ac-row.is-active { background: rgba(255,255,255,0.06); }
.sz-ac-row__av { width: 32px; height: 32px; border-radius: 50%; flex: none; display: grid; place-items: center; font-size: 12px; font-weight: 600; color: #fff; }
.sz-ac-row__av--mail { background: rgba(168,213,186,0.12); border-radius: 8px; }
.sz-ac-row__av--mail .sz-ic { width: 16px; height: 16px; color: var(--sz-accent); }
.sz-ac-row__main { min-width: 0; flex: 1; }
.sz-ac-row__name { font-size: 14px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-ac-row__name b { color: var(--sz-accent); font-weight: 600; }
.sz-ac-row__meta { font-size: 12px; color: rgba(255,255,255,0.5); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-ac-row__add { font-size: 12px; color: var(--sz-accent); flex: none; font-family: 'Rules', sans-serif; letter-spacing: 0.04em; }
.sz-ac-empty { padding: 12px 12px 14px; font-size: 13px; color: rgba(255,255,255,0.5); line-height: 1.5; }
.sz-ac-empty b { color: var(--sz-accent); }

/* role choice (member / owner) */
.sz-invite-role { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 520px) { .sz-invite-role { grid-template-columns: 1fr; } }
.sz-role { display: flex; gap: 11px; align-items: flex-start; padding: 13px 14px; border-radius: 10px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.1); cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.sz-role:hover { border-color: rgba(168,213,186,0.4); }
.sz-role:has(input:checked) { border-color: var(--sz-accent); background: rgba(168,213,186,0.1); }
.sz-role input { margin: 2px 0 0; accent-color: var(--sz-accent); flex: none; }
.sz-role__t { display: block; font-size: 14px; font-weight: 600; color: #fff; }
.sz-role__d { display: block; font-size: 12px; color: rgba(255,255,255,0.5); margin-top: 3px; line-height: 1.4; }

/* pending list helpers (replacing the mockup's inline styles) */
.sz-coll-row__thumb--mail { background: rgba(168,213,186,0.12); display: flex; align-items: center; justify-content: center; }
.sz-coll-row__thumb--mail .sz-ic { width: 18px; height: 18px; color: var(--sz-accent); }
.sz-coll-row__badge--pending { background: rgba(227,179,65,0.14); color: #e3b341; }

/* pending empty state */
.sz-invite-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 30px 16px; color: rgba(255,255,255,0.45); }
.sz-invite-empty[hidden] { display: none; }
.sz-invite-empty .sz-ic { width: 26px; height: 26px; color: rgba(255,255,255,0.22); margin-bottom: 10px; }
.sz-invite-empty p { margin: 0; font-size: 13.5px; }

/* optional-field label hint + accept landing */
.sz-field__opt { color: rgba(255,255,255,0.4); font-weight: 400; }
.sz-invite-accept { max-width: 560px; margin: 40px auto; }

/* "set up for someone else" toggle card (create-group) */
.sz-handover { border: 1px solid rgba(168,213,186,0.28); border-radius: 12px; background: rgba(168,213,186,0.05); padding: 4px 16px; margin-bottom: 20px; transition: background .15s ease, border-color .15s ease; }
.sz-handover.is-on { background: rgba(168,213,186,0.09); }
.sz-switch-row { display: flex; align-items: center; gap: 14px; padding: 14px 0; cursor: pointer; }
.sz-switch-row__txt { flex: 1; min-width: 0; }
.sz-switch-row__t { display: block; font-size: 14.5px; font-weight: 600; color: #fff; }
.sz-switch-row__d { display: block; font-size: 12.5px; color: rgba(255,255,255,0.55); margin-top: 2px; line-height: 1.45; }
.sz-switch { position: relative; flex: none; width: 46px; height: 26px; border-radius: 999px; background: rgba(255,255,255,0.14); transition: background .2s ease; }
.sz-switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.sz-switch__knob { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform .2s ease; pointer-events: none; }
.sz-switch:has(input:checked) { background: var(--sz-accent); }
.sz-switch:has(input:checked) .sz-switch__knob { transform: translateX(20px); }
.sz-handover__body { border-top: 1px solid rgba(255,255,255,0.08); padding: 16px 0 18px; }
.sz-handover__body[hidden] { display: none; }
.sz-dash-pagehead__actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
/* Dashboard variant: the subtle "Getting started" toggle is not a primary action,
   so it sits apart from the button cluster, flush against the right edge (matches
   the design-system dashboard). The row grows to fill the header so the auto
   margin has room to push against. */
.sz-dash-pagehead__actions--spread { flex: 1 1 auto; }
.sz-dash-pagehead__actions--spread .sz-intro-toggle { margin-left: auto; }
@media (max-width: 768px) { .sz-dash-pagehead__actions { width: 100%; flex-direction: column; align-items: stretch; } }

/* =====================================================================
   Artist dashboard (group-dashboard.php) — 2026 stats + cards layout
   (ported from production/group-dashboard.html inline styles)
   ===================================================================== */
.gd-stats { display: grid; grid-template-columns: repeat(5,1fr); gap: 14px; margin-bottom: 26px; }
.gd-stat { border: 1px solid rgba(255,255,255,0.1); border-radius: 14px; padding: 18px; background: rgba(255,255,255,0.02); }
.gd-stat__label { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.45); font-family: 'Rules','Inter Tight',sans-serif; font-weight: 500; }
.gd-stat__num { font-family: 'Inter Tight',sans-serif; font-weight: 700; font-size: 1.9rem; color: #fff; margin: 7px 0 2px; letter-spacing: -0.02em; }
.gd-stat__delta { font-size: 12.5px; color: var(--sz-accent); }
.gd-stat__delta--muted { color: rgba(255,255,255,0.5); }
.gd-cols { display: grid; grid-template-columns: 1.5fr 1fr; gap: 22px; align-items: start; }
.gd-col { display: flex; flex-direction: column; gap: 22px; }
.gd-card { border: 1px solid rgba(255,255,255,0.1); border-radius: 14px; padding: 20px; background: rgba(255,255,255,0.02); }
.gd-card > h2 { font-family: 'Inter Tight',sans-serif; font-weight: 700; font-size: 1.1rem; color: #fff; margin: 0 0 16px; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.gd-card > h2 .link { font-size: 13px; font-weight: 400; }
.gd-quick { display: flex; flex-direction: column; gap: 9px; }
.gd-quick .button { justify-content: flex-start; }
.gd-releases { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.gd-releases .album-status { position: absolute; top: 8px; left: 8px; background: rgba(11,12,15,0.72); box-shadow: 0 1px 6px rgba(0,0,0,0.45); }
.gd-empty { color: rgba(255,255,255,0.55); font-size: 14px; margin: 0; }
.sz-member__body { min-width: 0; }
@media (max-width: 1024px) { .gd-stats { grid-template-columns: repeat(2,1fr); } .gd-cols { grid-template-columns: 1fr; } }

/* ── Board @mentions + auto-links + inline edit ───────────────────────────── */
.sz-mention { color: #8fd3a6; text-decoration: none; font-weight: 600; }
.sz-mention:hover { text-decoration: underline; }
.sz-board-link { color: #8fd3a6; text-decoration: underline; word-break: break-word; }
.sz-board-link:hover { color: #b8e3c6; }

.sz-mention-menu {
  position: absolute; z-index: 9999; max-height: 280px; overflow-y: auto;
  background: #15171c; border: 1px solid rgba(255,255,255,0.14); border-radius: 10px;
  box-shadow: 0 12px 32px rgba(0,0,0,0.55); padding: 4px; min-width: 220px;
}
.sz-mention-item { display: flex; align-items: center; gap: 10px; padding: 7px 9px; border-radius: 7px; cursor: pointer; }
.sz-mention-item.is-sel, .sz-mention-item:hover { background: rgba(255,255,255,0.08); }
.sz-mention-item__av {
  width: 30px; height: 30px; border-radius: 50%; flex: 0 0 30px; background-size: cover; background-position: center;
  background-color: rgba(255,255,255,0.12); display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; color: #fff;
}
.sz-mention-item__main { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.sz-mention-item__name { color: #fff; font-size: 13px; font-weight: 600; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sz-mention-item__handle { color: rgba(255,255,255,0.55); font-size: 12px; line-height: 1.2; }
.sz-mention-item__tag { font-size: 10px; text-transform: uppercase; letter-spacing: 0.04em; color: rgba(255,255,255,0.6);
  border: 1px solid rgba(255,255,255,0.18); border-radius: 999px; padding: 1px 7px; flex: 0 0 auto; }

.gb-editform { display: flex; flex-direction: column; gap: 12px; margin-top: 10px;
  padding: 12px; border: 1px solid rgba(255,255,255,0.12); border-radius: 10px; background: rgba(255,255,255,0.03); }
.gb-editform[hidden] { display: none; }
.gb-editform__field { display: block; }
.gb-editform__label { display: block; font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.7); margin: 0 0 4px; }
.gb-editform__actions { display: flex; gap: 8px; }
.sz-board-edit { background: none; border: 0; color: rgba(255,255,255,0.55); font-size: 12px; cursor: pointer; padding: 0 4px; }
.sz-board-edit:hover { color: #fff; }
.gb-post.is-editing .gb-post__display { display: none; }
.gb-editform__error { color: #f0a3a3; }

/* ── Group sales & earnings (group-sales.php) — design-system production parity ── */
.gs-balance{border:1px solid rgba(168,213,186,0.28);border-radius:16px;padding:22px 26px;background:linear-gradient(150deg,rgba(168,213,186,0.1),rgba(168,213,186,0.02));margin-bottom:14px;display:flex;align-items:center;gap:30px;flex-wrap:wrap;}
.gs-balance__main{min-width:180px;}
.gs-balance__label{font-family:'Rules','Inter Tight',sans-serif;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:rgba(255,255,255,0.55);font-weight:500;}
.gs-balance__num{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:2.6rem;color:#fff;letter-spacing:-0.02em;line-height:1.05;margin:5px 0 3px;}
.gs-balance__sub{font-size:13px;color:rgba(255,255,255,0.6);}
.gs-balance__facts{display:flex;gap:30px;flex-wrap:wrap;}
.gs-fact__k{font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:rgba(255,255,255,0.45);font-family:'Rules','Inter Tight',sans-serif;}
.gs-fact__v{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:1.2rem;color:#fff;margin-top:4px;}
.gs-balance__cta{margin-left:auto;display:flex;flex-direction:column;gap:8px;align-items:stretch;}
.gs-balance__cta .button{white-space:nowrap;}
.gs-balance__cta small{font-size:11.5px;color:rgba(255,255,255,0.5);text-align:center;}
.gs-note{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:rgba(255,255,255,0.55);line-height:1.5;margin:0 0 26px;}
.gs-note .sz-ic{width:15px;height:15px;flex:none;margin-top:2px;color:rgba(255,255,255,0.4);}
.gs-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px;}
.gs-stat{border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:16px 18px;background:rgba(255,255,255,0.02);}
.gs-stat__label{font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:rgba(255,255,255,0.45);font-family:'Rules','Inter Tight',sans-serif;font-weight:500;}
.gs-stat__num{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.7rem;color:#fff;margin:8px 0 2px;letter-spacing:-0.02em;}
.gs-stat__sub{font-size:12px;color:rgba(255,255,255,0.5);}
.gs-cols{display:grid;grid-template-columns:1.65fr 1fr;gap:22px;align-items:start;}
.gs-col{display:flex;flex-direction:column;gap:22px;}
.gs-card{border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:20px;background:rgba(255,255,255,0.02);}
.gs-card>h2{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.1rem;color:#fff;margin:0 0 3px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;}
.gs-card>h2 .link{font-size:13px;font-weight:400;}
.gs-card__hint{font-size:13px;color:rgba(255,255,255,0.5);margin:0 0 16px;}
.gs-table{width:100%;border-collapse:collapse;font-size:14px;}
.gs-table th{text-align:left;font-family:'Rules','Inter Tight',sans-serif;font-weight:500;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:rgba(255,255,255,0.4);padding:0 10px 10px;border-bottom:1px solid rgba(255,255,255,0.08);}
.gs-table td{padding:13px 10px;border-bottom:1px solid rgba(255,255,255,0.06);color:rgba(255,255,255,0.78);vertical-align:middle;}
.gs-table tr:last-child td{border-bottom:0;}
.gs-table .num{text-align:right;font-variant-numeric:tabular-nums;font-family:'Inter Tight',sans-serif;white-space:nowrap;}
.gs-table .net{color:#fff;font-weight:600;}
.gs-item{display:flex;align-items:center;gap:11px;min-width:0;}
.gs-item__art{width:38px;height:38px;border-radius:6px;flex:none;object-fit:cover;background:linear-gradient(135deg,#3a4256,#566077);}
.gs-item__txt{min-width:0;}
.gs-item__t{font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.gs-item__m{font-size:12px;color:rgba(255,255,255,0.5);}
.gs-pwyw{font-size:10px;letter-spacing:0.04em;text-transform:uppercase;color:var(--sz-accent);font-family:'Rules','Inter Tight',sans-serif;border:1px solid rgba(168,213,186,0.3);border-radius:4px;padding:1px 5px;margin-left:6px;vertical-align:middle;}
.gs-payouts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.gs-payout{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,0.06);}
.gs-payout:last-child{border-bottom:0;padding-bottom:0;}
.gs-payout__amt{font-family:'Inter Tight',sans-serif;font-weight:600;color:#fff;}
.gs-payout__meta{font-size:12px;color:rgba(255,255,255,0.5);margin-top:2px;}
.gs-payout__status{margin-left:auto;font-size:11px;padding:3px 10px;border-radius:99px;font-weight:600;white-space:nowrap;}
.gs-payout__status--paid{background:rgba(168,213,186,0.16);color:var(--sz-accent);}
.gs-payout__status--proc{background:rgba(227,179,65,0.14);color:#e3b341;}
.gs-method{display:flex;align-items:center;gap:13px;padding:14px;border:1px solid rgba(255,255,255,0.1);border-radius:11px;background:rgba(255,255,255,0.02);}
.gs-method__ic{width:40px;height:40px;border-radius:10px;background:rgba(255,255,255,0.05);display:grid;place-items:center;flex:none;}
.gs-method__ic .sz-ic{width:18px;height:18px;color:rgba(255,255,255,0.65);}
.gs-method__main{min-width:0;flex:1;}
.gs-method__t{font-weight:500;color:#fff;font-size:14px;}
.gs-method__m{font-size:12px;color:rgba(255,255,255,0.5);margin-top:2px;}
.gs-empty{border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:30px;text-align:center;color:rgba(255,255,255,0.5);font-size:14px;background:rgba(255,255,255,0.02);}
@media(max-width:1024px){.gs-stats{grid-template-columns:repeat(2,1fr);}.gs-cols{grid-template-columns:1fr;}.gs-balance__cta{margin-left:0;flex:1;}}
@media(max-width:560px){.gs-balance{gap:18px;}.gs-stats{grid-template-columns:1fr 1fr;}.gs-table th:nth-child(3),.gs-table td:nth-child(3){display:none;}}

/* ===== HARVESTED — artist videos (YouTube / Vimeo lite-embeds), group-videos.php + group-public.php Watch section ===== */
.sz-video-gallery { display: grid; gap: 16px; }
.sz-video { position: relative; border-radius: 14px; overflow: hidden; cursor: pointer; background:
    linear-gradient(150deg, #2f3a4a, #1a1f2b); background-size: cover; background-position: center;
    border: 1px solid rgba(255,255,255,0.08); }
.sz-video::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,12,15,0.05), rgba(11,12,15,0.55)); opacity: 1; transition: opacity .2s ease; pointer-events: none; }
.sz-video.is-playing::after { display: none; }
.sz-video--feature { aspect-ratio: 16 / 9; }
.sz-video__play { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 62px; height: 62px; border-radius: 50%; background: rgba(11,12,15,0.55); backdrop-filter: blur(6px); border: 1.5px solid rgba(255,255,255,0.5); display: grid; place-items: center; z-index: 2; transition: transform .16s ease, background .16s ease; }
.sz-video:hover .sz-video__play { transform: translate(-50%,-50%) scale(1.08); background: var(--sz-accent, #A8D5BA); border-color: var(--sz-accent, #A8D5BA); }
.sz-video__play .sz-ic { width: 24px; height: 24px; color: #fff; fill: #fff; stroke: #fff; margin-left: 3px; }
.sz-video:hover .sz-video__play .sz-ic { color: #08110c; fill: #08110c; stroke: #08110c; }
.sz-video.is-playing .sz-video__play, .sz-video.is-playing .sz-video__cap, .sz-video.is-playing .sz-video__badge, .sz-video.is-playing .sz-video__tools { display: none; }
.sz-video__badge { position: absolute; top: 12px; left: 12px; z-index: 2; font-family: 'Rules','Inter Tight',sans-serif; font-size: 10.5px; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 600; color: #fff; background: rgba(11,12,15,0.6); border: 1px solid rgba(255,255,255,0.16); padding: 3px 9px; border-radius: 6px; }
.sz-video__cap { position: absolute; left: 14px; right: 14px; bottom: 12px; z-index: 2; color: #fff; font-family: 'Inter Tight',sans-serif; font-weight: 600; font-size: 15px; text-shadow: 0 1px 8px rgba(0,0,0,0.5); }
.sz-video--feature .sz-video__cap { font-size: 20px; }
.sz-video__frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 3; }
.sz-video__tools { position: absolute; top: 10px; right: 10px; z-index: 4; display: flex; gap: 6px; }
.sz-video__grip, .sz-video__edit, .sz-video__remove { width: 26px; height: 26px; border-radius: 50%; background: rgba(11,12,15,0.65); border: 1px solid rgba(255,255,255,0.25); color: #fff; font-size: 12px; line-height: 1; cursor: pointer; display: grid; place-items: center; }
.sz-video__grip { cursor: grab; touch-action: none; }
.sz-video__grip:active { cursor: grabbing; }
.sz-video__grip .sz-ic { width: 14px; height: 14px; }
.sz-video__edit .sz-ic { width: 13px; height: 13px; }
.sz-video__edit:hover, .sz-video__remove:hover { background: var(--sz-accent, #A8D5BA); border-color: var(--sz-accent, #A8D5BA); color: #08110c; }
.sz-video__remove:hover { background: #e06b6b; border-color: #e06b6b; color: #fff; }
.sz-video.is-dragging { opacity: .45; }
.sz-video-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.sz-video--thumb { aspect-ratio: 16 / 10; }
.sz-video--thumb .sz-video__play { width: 46px; height: 46px; }
.sz-video--thumb .sz-video__play .sz-ic { width: 18px; height: 18px; }
.sz-video--thumb .sz-video__cap { font-size: 13.5px; }
.sz-video--thumb.is-active { outline: 2px solid var(--sz-accent, #A8D5BA); outline-offset: -2px; background-color: rgba(168,213,186,0.08); }
.sz-video--thumb.is-active .sz-video__play { background: var(--sz-accent, #A8D5BA); border-color: var(--sz-accent, #A8D5BA); }
.sz-video--thumb.is-active .sz-video__play .sz-ic { color: #08110c; fill: #08110c; stroke: #08110c; }
.sz-video-add { display: flex; align-items: center; justify-content: center; gap: 9px; aspect-ratio: 16 / 10; border-radius: 14px; border: 1.5px dashed rgba(255,255,255,0.2); background: rgba(255,255,255,0.02); color: rgba(255,255,255,0.6); font-family: 'Inter Tight',sans-serif; font-weight: 600; font-size: 14px; cursor: pointer; transition: border-color .15s ease, color .15s ease, background .15s ease; }
.sz-video-add:hover { border-color: var(--sz-accent, #A8D5BA); color: var(--sz-accent, #A8D5BA); background: rgba(168,213,186,0.06); }
.sz-video-add .sz-ic { width: 18px; height: 18px; }
/* add-video modal preview */
.sz-vprev { display: flex; gap: 13px; align-items: center; margin-top: 14px; padding: 12px; border-radius: 12px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.1); }
.sz-vprev[hidden] { display: none; }
.sz-vprev__thumb { width: 96px; height: 58px; border-radius: 8px; flex: none; background: linear-gradient(150deg,#2f3a4a,#1a1f2b); background-size: cover; background-position: center; display: grid; place-items: center; }
.sz-vprev__thumb .sz-ic { width: 20px; height: 20px; color: #fff; fill: #fff; }
.sz-vprev__i { flex: 1; min-width: 0; }
.sz-vprev__prov { font-family: 'Rules','Inter Tight',sans-serif; font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--sz-accent, #A8D5BA); font-weight: 600; margin-bottom: 7px; }
.sz-vtitle { width: 100%; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); border-radius: 8px; padding: 8px 10px; color: #fff; font-family: inherit; font-size: 14px; outline: none; }
.sz-vtitle:focus { border-color: var(--sz-accent, #A8D5BA); }
@media (max-width: 640px) { .sz-video-grid { grid-template-columns: 1fr 1fr; } .sz-video--feature .sz-video__cap { font-size: 16px; } }
@media (max-width: 420px) { .sz-video-grid { grid-template-columns: 1fr; } }

/* ============================================================
   46. BOOKINGS — request / negotiation / binding confirmation
   Shared components for the artist booking flow. Namespaced sz-bk-*.
   ============================================================ */
.sz-bk-intro{max-width:640px;color:rgba(255,255,255,0.7);line-height:1.6;font-size:15px;margin:0 0 24px;}

/* status stepper */
.sz-bk-status{display:flex;align-items:center;margin:0 0 34px;flex-wrap:wrap;row-gap:12px;}
.sz-bk-status--narrow{max-width:760px;margin-left:auto;margin-right:auto;}
.sz-bk-status__step{display:flex;align-items:center;gap:10px;}
.sz-bk-status__dot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;flex:none;background:rgba(255,255,255,0.07);color:rgba(255,255,255,0.45);border:1px solid rgba(255,255,255,0.12);font-family:'Inter Tight',sans-serif;font-weight:700;font-size:13px;}
.sz-bk-status__dot .sz-ic{width:15px;height:15px;}
.sz-bk-status__lbl{font-size:12.5px;color:rgba(255,255,255,0.5);font-family:'Inter Tight',sans-serif;font-weight:600;white-space:nowrap;}
.sz-bk-status__line{flex:1;height:2px;background:rgba(255,255,255,0.12);margin:0 14px;min-width:18px;}
.sz-bk-status__step.is-done .sz-bk-status__dot,.sz-bk-status__line.is-done{background:rgba(168,213,186,0.5);}
.sz-bk-status__step.is-done .sz-bk-status__dot{background:rgba(168,213,186,0.16);border-color:transparent;color:var(--sz-accent);}
.sz-bk-status__step.is-done .sz-bk-status__lbl{color:rgba(255,255,255,0.78);}
.sz-bk-status__step.is-active .sz-bk-status__dot{background:var(--sz-accent);color:#0a0a0a;border-color:transparent;}
.sz-bk-status__step.is-active .sz-bk-status__lbl{color:#fff;}
@media(max-width:720px){.sz-bk-status__lbl{display:none;}.sz-bk-status__step.is-active .sz-bk-status__lbl{display:block;}}

/* offer / counter card */
.sz-bk-offer{border:1px solid rgba(255,255,255,0.12);border-radius:14px;padding:20px 22px;background:rgba(255,255,255,0.03);}
.sz-bk-offer__top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;}
.sz-bk-offer__who{font-size:13px;color:rgba(255,255,255,0.55);line-height:1.4;}
.sz-bk-offer__who b{color:#fff;font-weight:600;display:block;font-size:14px;}
.sz-bk-tag{font-family:'Rules','Inter Tight',sans-serif;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;font-weight:500;white-space:nowrap;flex:none;}
.sz-bk-tag--offer{background:rgba(138,180,248,0.14);color:#8ab4f8;}
.sz-bk-tag--counter{background:rgba(227,179,65,0.14);color:#e3b341;}
.sz-bk-tag--accept{background:rgba(168,213,186,0.18);color:var(--sz-accent);}
.sz-bk-tag--decline{background:rgba(194,107,107,0.16);color:#e29494;}
.sz-bk-amount{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:2.5rem;color:#fff;letter-spacing:-0.02em;line-height:1;}
.sz-bk-amount small{font-size:.95rem;font-weight:500;color:rgba(255,255,255,0.5);margin-left:7px;letter-spacing:0;}
.sz-bk-amount--sm{font-size:1.7rem;}

/* money breakdown */
.sz-bk-break{list-style:none;margin:16px 0 0;padding:16px 0 0;border-top:1px solid rgba(255,255,255,0.08);display:flex;flex-direction:column;gap:10px;}
.sz-bk-break li{display:flex;justify-content:space-between;gap:16px;font-size:13.5px;color:rgba(255,255,255,0.72);}
.sz-bk-break li>span:last-child{font-variant-numeric:tabular-nums;font-family:'Inter Tight',sans-serif;color:rgba(255,255,255,0.9);white-space:nowrap;}
.sz-bk-break li.is-muted,.sz-bk-break li.is-muted>span:last-child{color:rgba(255,255,255,0.45);}
.sz-bk-break li.is-total{border-top:1px solid rgba(255,255,255,0.08);margin-top:4px;padding-top:13px;color:#fff;font-weight:600;font-size:15px;}
.sz-bk-break li.is-total>span:last-child{color:#fff;font-weight:700;}

/* thread */
.sz-bk-thread{display:flex;flex-direction:column;gap:24px;margin:0 0 30px;}
.sz-bk-msg{display:flex;gap:13px;max-width:580px;}
.sz-bk-msg__av{width:36px;height:36px;border-radius:8px;flex:none;display:grid;place-items:center;font-family:'Inter Tight',sans-serif;font-weight:700;font-size:12px;color:#fff;}
.sz-bk-msg__body{flex:1;min-width:0;}
.sz-bk-msg__meta{font-size:12px;color:rgba(255,255,255,0.42);margin:0 0 8px;}
.sz-bk-msg__meta b{color:rgba(255,255,255,0.75);font-weight:600;}
.sz-bk-bubble{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);border-radius:4px 14px 14px 14px;padding:13px 16px;font-size:14px;line-height:1.6;color:rgba(255,255,255,0.85);}
.sz-bk-msg--you{flex-direction:row-reverse;margin-left:auto;}
.sz-bk-msg--you .sz-bk-msg__meta{text-align:right;}
.sz-bk-msg--you .sz-bk-bubble{border-radius:14px 4px 14px 14px;background:rgba(63,111,168,0.16);border-color:rgba(63,111,168,0.32);}
.sz-bk-msg__event{max-width:none;justify-content:center;}
.sz-bk-event{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:rgba(255,255,255,0.5);background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:999px;padding:6px 15px;margin:0 auto;}
.sz-bk-event .sz-ic{width:14px;height:14px;}
.sz-bk-event--good{color:var(--sz-accent);background:rgba(168,213,186,0.08);border-color:rgba(168,213,186,0.25);}

/* action panel */
.sz-bk-actions{border:1px solid rgba(255,255,255,0.12);border-radius:16px;background:rgba(255,255,255,0.02);padding:20px 22px;}
.sz-bk-actions__row{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:16px;}
.sz-bk-counterbox{display:none;margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,0.08);}
.sz-bk-counterbox.is-open{display:block;}
.sz-bk-euro-input{display:flex;align-items:center;gap:0;max-width:220px;border:1px solid rgba(255,255,255,0.14);border-radius:9px;background:rgba(0,0,0,0.25);overflow:hidden;}
.sz-bk-euro-input span{padding:0 4px 0 14px;color:rgba(255,255,255,0.5);font-family:'Inter Tight',sans-serif;font-size:1.1rem;}
.sz-bk-euro-input input{border:0;background:transparent;color:#fff;font-family:'Inter Tight',sans-serif;font-size:1.1rem;padding:11px 14px 11px 4px;width:100%;outline:none;}

/* Same field, symbol trailing instead of leading (VAT rate). */
.sz-bk-pct-input{display:flex;align-items:center;gap:0;max-width:220px;border:1px solid rgba(255,255,255,0.14);border-radius:9px;background:rgba(0,0,0,0.25);overflow:hidden;}
.sz-bk-pct-input span{padding:0 14px 0 4px;color:rgba(255,255,255,0.5);font-family:'Inter Tight',sans-serif;font-size:1.1rem;}
.sz-bk-pct-input input{border:0;background:transparent;color:#fff;font-family:'Inter Tight',sans-serif;font-size:1.1rem;padding:11px 4px 11px 14px;width:100%;outline:none;}

/* split layout (variant B) */
.sz-bk-split{display:grid;grid-template-columns:352px minmax(0,1fr);gap:44px;align-items:start;}
@media(max-width:900px){.sz-bk-split{grid-template-columns:1fr;gap:28px;}}
.sz-bk-deal{position:sticky;top:84px;border:1px solid rgba(255,255,255,0.1);border-radius:16px;background:rgba(255,255,255,0.02);overflow:hidden;}
@media(max-width:900px){.sz-bk-deal{position:static;}}
.sz-bk-deal__head{padding:20px 22px 18px;border-bottom:1px solid rgba(255,255,255,0.08);}
.sz-bk-deal__body{padding:20px 22px;}
.sz-bk-deal__eyebrow{font-family:'Rules','Inter Tight',sans-serif;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,0.45);margin:0 0 10px;}

/* party row */
.sz-bk-parties{display:flex;flex-direction:column;gap:0;}
.sz-bk-party{display:flex;align-items:center;gap:12px;padding:12px 0;}
.sz-bk-party+.sz-bk-party{border-top:1px solid rgba(255,255,255,0.06);}
.sz-bk-party__av{width:40px;height:40px;border-radius:9px;flex:none;display:grid;place-items:center;font-family:'Inter Tight',sans-serif;font-weight:700;font-size:14px;color:#fff;}
.sz-bk-party__name{font-weight:600;color:#fff;font-size:14px;}
.sz-bk-party__role{font-size:12px;color:rgba(255,255,255,0.5);margin-top:1px;}
.sz-bk-party__state{margin-left:auto;font-size:11px;font-family:'Rules','Inter Tight',sans-serif;letter-spacing:.04em;text-transform:uppercase;padding:4px 9px;border-radius:999px;}

/* fee cards (settings + public) */
.sz-bk-feegrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:560px){.sz-bk-feegrid{grid-template-columns:1fr;}}
.sz-bk-feecard{border:1px solid rgba(255,255,255,0.1);border-radius:12px;padding:16px 18px;background:rgba(255,255,255,0.02);}
.sz-bk-feecard__k{font-family:'Rules','Inter Tight',sans-serif;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,0.5);display:flex;align-items:center;gap:7px;}
.sz-bk-feecard__k .sz-ic{width:14px;height:14px;color:rgba(255,255,255,0.4);}
.sz-bk-feecard__v{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.7rem;color:#fff;margin:8px 0 3px;}
.sz-bk-feecard__d{font-size:12.5px;color:rgba(255,255,255,0.5);line-height:1.45;}

/* signature */
.sz-bk-sign{border:1px dashed rgba(255,255,255,0.22);border-radius:12px;padding:16px 18px;display:flex;align-items:center;gap:15px;}
.sz-bk-sign+.sz-bk-sign{margin-top:12px;}
.sz-bk-sign.is-signed{border-style:solid;border-color:rgba(168,213,186,0.4);background:rgba(168,213,186,0.05);}
.sz-bk-sign__ic{width:38px;height:38px;border-radius:50%;flex:none;display:grid;place-items:center;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.5);}
.sz-bk-sign.is-signed .sz-bk-sign__ic{background:rgba(168,213,186,0.16);color:var(--sz-accent);}
.sz-bk-sign__ic .sz-ic{width:18px;height:18px;}
.sz-bk-sign__who{font-size:13px;color:rgba(255,255,255,0.55);}
.sz-bk-sign__who b{display:block;color:#fff;font-weight:600;font-size:14px;margin-bottom:2px;}
.sz-bk-sign__mark{margin-left:auto;font-family:'Segoe Script','Brush Script MT',cursive;font-size:1.5rem;color:var(--sz-accent);}

/* escrow / trust callout */
.sz-bk-escrow{border:1px solid rgba(168,213,186,0.25);border-radius:14px;background:rgba(168,213,186,0.05);padding:18px 20px;}
.sz-bk-escrow__head{display:flex;align-items:center;gap:11px;margin-bottom:12px;}
.sz-bk-escrow__head .sz-ic{width:20px;height:20px;color:var(--sz-accent);}
.sz-bk-escrow__head h3{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.05rem;color:#fff;margin:0;}
.sz-bk-flow{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px;}
.sz-bk-flow li{display:flex;gap:12px;font-size:13.5px;color:rgba(255,255,255,0.72);line-height:1.5;}
.sz-bk-flow__n{width:22px;height:22px;border-radius:50%;flex:none;display:grid;place-items:center;background:rgba(168,213,186,0.16);color:var(--sz-accent);font-family:'Inter Tight',sans-serif;font-weight:700;font-size:12px;}
.sz-bk-partner{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:rgba(255,255,255,0.55);border:1px solid rgba(255,255,255,0.12);border-radius:999px;padding:4px 11px;}
.sz-bk-partner b{color:#fff;font-weight:600;}
.sz-bk-partner-wrap{margin-top:14px;}

/* online-show create — spacing helpers (replace inline styles from the mockup) */
.sz-form-section__title--spaced{margin-top:32px;}
.sz-bk-offer--spaced{margin-bottom:16px;}
.sz-bk-feecard__k--spaced{margin-bottom:12px;}
.sz-bk-break--flush{margin-top:0;padding-top:0;border-top:0;}
.sz-ic--xs{width:13px;height:13px;}
.sz-danger-btn{margin-right:auto;background:rgba(194,107,107,0.12) !important;border:1px solid rgba(194,107,107,0.4) !important;color:#e29494 !important;}
.sz-danger-btn:hover{background:rgba(194,107,107,0.2) !important;color:#f0b0b0 !important;}

/* rider / detail rows */
.sz-bk-rider{border:1px solid rgba(255,255,255,0.1);border-radius:12px;background:rgba(255,255,255,0.02);padding:6px 18px;}
.sz-bk-rider__row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,0.06);font-size:14px;color:rgba(255,255,255,0.8);}
.sz-bk-rider__row:last-child{border-bottom:0;}
.sz-bk-rider__row .sz-ic{width:16px;height:16px;color:rgba(255,255,255,0.4);flex:none;}
.sz-bk-rider__row .k{color:rgba(255,255,255,0.55);width:150px;flex:none;}

/* filter tabs reuse: pill list of booking cards */
.sz-bk-list{display:flex;flex-direction:column;gap:12px;}
.sz-bk-card{display:flex;align-items:center;gap:16px;border:1px solid rgba(255,255,255,0.1);border-radius:14px;background:rgba(255,255,255,0.02);padding:16px 18px;text-decoration:none;transition:border-color .15s ease,background .15s ease;}
.sz-bk-card:hover{border-color:rgba(168,213,186,0.35);background:rgba(255,255,255,0.035);}
.sz-bk-card__date{text-align:center;flex:none;width:52px;}
.sz-bk-card__date .d{display:block;font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.4rem;color:#fff;line-height:1;}
.sz-bk-card__date .m{display:block;font-family:'Rules','Inter Tight',sans-serif;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,0.5);margin-top:3px;}
.sz-bk-card__main{flex:1;min-width:0;}
.sz-bk-card__t{font-weight:600;color:#fff;font-size:15px;}
.sz-bk-card__m{font-size:13px;color:rgba(255,255,255,0.55);margin-top:3px;}
.sz-bk-card__amt{font-family:'Inter Tight',sans-serif;font-weight:700;color:#fff;font-size:1.1rem;text-align:right;white-space:nowrap;}
.sz-bk-card__amt small{display:block;font-size:11px;font-weight:400;color:rgba(255,255,255,0.45);margin-top:2px;letter-spacing:.04em;text-transform:uppercase;font-family:'Rules','Inter Tight',sans-serif;}

/* ============================================================
   46b. BOOKINGS — implementation helpers
   Classes replacing mockup inline styles. Extended per-template
   as pages are built (project rule: no inline styles).
   ============================================================ */
.sz-bk-back{margin:28px 0 18px;display:inline-flex;align-items:center;gap:6px;}
.sz-bk-topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:26px 0 18px;}
.sz-bk-h1{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.9rem;color:#fff;margin:0 0 6px;}
.sz-bk-h1--sm{font-size:1.7rem;}
.sz-bk-section{margin-top:30px;}
.sz-bk-section:first-child{margin-top:0;}
.sz-bk-section__h3{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.05rem;color:#fff;margin:0 0 14px;display:flex;align-items:center;gap:10px;}
.sz-bk-deal__sub{font-size:13px;color:rgba(255,255,255,0.55);margin:2px 0 12px;}
.sz-bk-deal__actions{margin-top:18px;display:flex;flex-direction:column;gap:10px;}
.sz-bk-deal__actions .button,.sz-bk-deal__actions .button-outline{justify-content:center;width:100%;}
.sz-bk-state--countered{background:rgba(227,179,65,0.14);color:#e3b341;}
.sz-bk-state--yourmove{background:rgba(255,255,255,0.08);color:rgba(255,255,255,0.6);}
.sz-bk-av--artist{background:linear-gradient(135deg,#3a4256,#566077);}
.sz-bk-av--booker{background:linear-gradient(135deg,#2f5a3f,#3f7a54);}
.sz-bk-banner{margin:0 0 22px;padding:12px 18px;}
.sz-bk-checks{display:flex;flex-direction:column;gap:8px;}
.sz-bk-sign__ic--sm{width:34px;height:34px;}
.sz-bk-contract-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border:1px solid rgba(255,255,255,0.1);border-radius:12px;background:rgba(255,255,255,0.02);text-decoration:none;margin-top:16px;}
.sz-bk-contract-card__i{font-size:13px;color:rgba(255,255,255,0.85);}
.sz-bk-contract-card__i small{display:block;font-size:11.5px;color:rgba(255,255,255,0.45);margin-top:2px;}
.sz-bk-hint{font-size:12.5px;color:rgba(255,255,255,0.5);margin-top:10px;line-height:1.5;}
.sz-bk-aside-stack{display:flex;flex-direction:column;gap:18px;}
.sz-bk-mt-16{margin-top:16px;}
.sz-bk-mt-30{margin-top:30px;}

/* ============================================================
   HOMEPAGE ACTIVITY — real network activity on the homepage.
   Synced from the design system (homepage.html "Happening on
   Simuze"). Replaces the two .h2-path explainer cards.
   ============================================================ */
.h2-act{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media(max-width:820px){.h2-act{grid-template-columns:1fr;}}
.h2-act--page{margin-bottom:0;}
.h2-act__row{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid rgba(255,255,255,0.1);border-radius:12px;background:rgba(255,255,255,0.02);transition:border-color .15s ease,background .15s ease;}
.h2-act__row:hover{border-color:rgba(168,213,186,0.3);background:rgba(255,255,255,0.035);}
.h2-act__ic{width:36px;height:36px;border-radius:9px;flex:none;display:grid;place-items:center;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.6);}
.h2-act__ic .sz-ic{width:16px;height:16px;}
.h2-act__ic--release{background:rgba(168,213,186,0.14);color:var(--sz-accent);}
.h2-act__ic--book{background:rgba(212,166,86,0.14);color:#d4a656;}
.h2-act__ic--slot{background:rgba(138,180,248,0.14);color:#8ab4f8;}
.h2-act__ic--join{background:rgba(81,172,50,0.14);color:#7ec765;}
.h2-act__ic--stream{background:rgba(194,107,107,0.14);color:#e29494;}
.h2-act__ic--pl{background:rgba(138,180,248,0.14);color:#8ab4f8;}
.h2-act__ic--like{background:rgba(224,122,158,0.14);color:#e08fb0;}
.h2-act__ic--list{background:rgba(95,184,176,0.14);color:#5fb8b0;}
.h2-act__c{flex:1;min-width:0;}
.h2-act__t{font-size:14px;line-height:1.45;color:rgba(255,255,255,0.85);margin:0;}
.h2-act__t a{color:#fff;font-weight:600;text-decoration:none;}
.h2-act__t a:hover{color:var(--sz-accent);}
.h2-act__m{font-size:12px;color:rgba(255,255,255,0.45);margin:4px 0 0;}
.h2-act__go{width:32px;height:32px;border-radius:8px;flex:none;display:grid;place-items:center;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.6);text-decoration:none;transition:background .15s ease,color .15s ease;}
.h2-act__go:hover{background:var(--sz-accent);color:#0a0a0a;}
.h2-act__go .sz-ic{width:14px;height:14px;}

/* ===== HARVESTED — welcome + getting-started checklist (template_welcome.php, profile-dashboard.php) from activation-canvas.html #A1 #A1c #A3 #A3m ===== */
.sz-welcome-page{padding:44px 0 64px;}
.sz-welcome__h1{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:clamp(1.7rem,3vw,2.2rem);letter-spacing:-0.01em;color:#fff;margin:0 0 14px;max-width:760px;}
.sz-welcome__lede{font-size:15px;line-height:1.55;color:rgba(255,255,255,0.65);max-width:640px;margin:0 0 32px;}

.sz-pick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;}
@media (max-width:900px){.sz-pick-grid{grid-template-columns:1fr;}}
.sz-pick{background:var(--color-bg-card,#16171b);border:1px solid rgba(255,255,255,0.08);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:12px;}
.sz-pick--on{border-color:var(--sz-accent);box-shadow:0 0 0 1px var(--sz-accent);}
.sz-pick__ic{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,0.06);color:var(--sz-accent);}
.sz-pick__ic .sz-ic{width:18px;height:18px;}
.sz-pick__h{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:16px;margin:0 0 2px;color:#fff;}
.sz-pick__sub{font-size:13px;color:rgba(255,255,255,0.5);margin:0;}
.sz-pick__gets{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;flex:1;}
.sz-pick__gets li{font-size:12.5px;line-height:1.4;color:rgba(255,255,255,0.6);padding-left:14px;position:relative;}
.sz-pick__gets li::before{content:"";position:absolute;left:0;top:7px;width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,0.3);}
.sz-pick .button,.sz-pick .button-outline{align-self:flex-start;margin-top:2px;}
.sz-pick__search{position:relative;margin-top:2px;}
.sz-pick__search-results{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:5;background:#1c1d22;border:1px solid rgba(255,255,255,0.1);border-radius:10px;overflow:hidden;max-height:220px;overflow-y:auto;}
.sz-pick__search-row{display:block;padding:10px 12px;font-size:13px;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,0.06);}
.sz-pick__search-row:last-child{border-bottom:0;}
.sz-pick__search-row:hover{background:rgba(255,255,255,0.06);}
.sz-pick__search-empty{padding:10px 12px;font-size:12.5px;color:rgba(255,255,255,0.45);margin:0;}

.sz-strip{display:flex;gap:14px;align-items:flex-start;background:rgba(168,213,186,0.08);border:1px solid rgba(168,213,186,0.25);border-radius:14px;padding:18px 20px;}
.sz-strip .sz-ic{width:18px;height:18px;color:var(--sz-accent);flex:none;margin-top:2px;}
.sz-strip__h{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:14px;margin:0 0 4px;color:#fff;}
.sz-strip__p{font-size:12.5px;line-height:1.5;color:rgba(255,255,255,0.6);margin:0;}

.sz-typeahead{max-width:640px;margin-bottom:14px;}
.sz-typeahead__field{display:flex;align-items:center;gap:10px;background:var(--color-bg-card,#16171b);border:1px solid rgba(255,255,255,0.1);border-radius:12px;padding:0 14px;}
.sz-typeahead__field .sz-ic{width:16px;height:16px;color:rgba(255,255,255,0.4);flex:none;}
.sz-typeahead__field .sz-input{background:none;border:0;padding:14px 0;}
.sz-typeahead__results{display:flex;flex-direction:column;gap:6px;margin-top:10px;}
.sz-typeahead__row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;background:var(--color-bg-card,#16171b);border:1px solid rgba(255,255,255,0.08);border-radius:10px;padding:12px 16px;text-decoration:none;}
.sz-typeahead__row:hover{border-color:var(--sz-accent);}
.sz-typeahead__name{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:14.5px;color:#fff;}
.sz-typeahead__meta{font-size:11.5px;color:rgba(255,255,255,0.45);flex:none;}
.sz-welcome__skip{margin-top:14px;}
.sz-welcome__skip a{font-size:13px;color:rgba(255,255,255,0.5);}
.sz-welcome__skip a:hover{color:var(--sz-accent);}

/* Getting-started checklist card — replaces the old single-question .sz-start */
.sz-checklist{position:relative;border-radius:18px;padding:28px 30px;margin:0 0 26px;border:1px solid rgba(255,255,255,0.08);background:var(--color-bg-card,#16171b);}
.sz-checklist__head{display:flex;align-items:flex-start;gap:16px;margin-bottom:14px;}
.sz-checklist__h{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:19px;margin:0 0 5px;color:#fff;}
.sz-checklist__sub{font-size:13px;color:rgba(255,255,255,0.55);margin:0;}
.sz-checklist .sz-meter{margin-bottom:18px;}
.sz-meter{height:6px;border-radius:3px;background:rgba(255,255,255,0.08);overflow:hidden;}
.sz-meter i{display:block;height:100%;width:0;background:var(--sz-accent);border-radius:3px;transition:width .3s ease;}
.sz-checklist__steps{display:flex;flex-direction:column;gap:2px;}
.sz-checklist__step{display:flex;align-items:flex-start;gap:14px;padding:12px 4px;border-top:1px solid rgba(255,255,255,0.06);}
.sz-checklist__step:first-child{border-top:0;}
.sz-checklist__b{width:22px;height:22px;border-radius:50%;border:1.5px solid rgba(255,255,255,0.18);flex:none;margin-top:1px;display:grid;place-items:center;color:var(--sz-accent);}
.sz-checklist__b .sz-ic{width:12px;height:12px;}
.sz-checklist__step.is-done .sz-checklist__b{border-color:var(--sz-accent);background:rgba(168,213,186,0.12);}
.sz-checklist__step.is-done .sz-checklist__t{color:rgba(255,255,255,0.45);text-decoration:line-through;text-decoration-color:rgba(255,255,255,0.25);}
.sz-checklist__t{font-size:14.5px;font-weight:500;color:#fff;}
.sz-checklist__step.is-next{padding:16px 16px;background:rgba(168,213,186,0.06);border-radius:12px;border-top:0;box-shadow:inset 0 0 0 1px rgba(168,213,186,0.3);}
.sz-checklist__step.is-next .sz-checklist__t{font-size:15px;}
.sz-checklist__d{font-size:13px;line-height:1.5;color:rgba(255,255,255,0.6);margin:6px 0 0;}
.sz-checklist__cta{display:flex;gap:10px;margin-top:12px;}
@media (max-width:640px){.sz-checklist{padding:20px;}.sz-checklist__cta{flex-direction:column;}.sz-checklist__cta .button,.sz-checklist__cta .button-outline{width:100%;justify-content:center;}}

/* ===== HARVESTED — rubric boards (template_board.php) from activation-canvas.html #B4 #B5 #B6 #B7 ===== */
.sz-h2{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:20px;color:#fff;margin:0 0 8px;}
.sz-h3{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:15px;color:#fff;margin:0 0 6px;}
.sz-p{font-size:14.5px;line-height:1.55;color:rgba(255,255,255,0.65);margin:0;}
.sz-sm{font-size:12.5px;line-height:1.4;color:rgba(255,255,255,0.5);}
.sz-card{background:var(--color-bg-card,#16171b);border:1px solid rgba(255,255,255,0.08);border-radius:16px;padding:22px;}
.sz-gets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.sz-gets li{font-size:12.5px;line-height:1.4;color:rgba(255,255,255,0.6);}

.sz-boarddir__head{display:flex;align-items:flex-start;gap:20px;justify-content:space-between;}
.sz-boarddir{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;}
.sz-boardrow{display:flex;align-items:flex-start;gap:16px;background:var(--color-bg-card,#16171b);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:18px 20px;text-decoration:none;transition:border-color .15s ease;}
.sz-boardrow:hover{border-color:var(--sz-accent);}
.sz-boardrow__ic{width:36px;height:36px;border-radius:9px;background:rgba(255,255,255,0.06);color:var(--sz-accent);display:grid;place-items:center;flex:none;}
.sz-boardrow__ic .sz-ic{width:16px;height:16px;}
.sz-boardrow__main{flex:1;min-width:0;}
.sz-boardrow__h{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:15.5px;color:#fff;margin:0 0 4px;}
.sz-boardrow__d{font-size:13px;color:rgba(255,255,255,0.55);margin:0;}
.sz-boardrow__meta{flex:none;display:flex;align-items:center;gap:18px;}
.sz-boardrow__last{font-size:12px;color:rgba(255,255,255,0.45);white-space:nowrap;}
.sz-boardrow__num{font-size:13px;color:rgba(255,255,255,0.6);}
.sz-boardrow__num small{font-size:10.5px;color:rgba(255,255,255,0.4);margin-left:3px;}
.sz-boardrow__wait{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--sz-accent);white-space:nowrap;}
.sz-boardrow__live{width:6px;height:6px;border-radius:50%;background:var(--sz-accent);animation:sz-live-pulse 1.6s ease-in-out infinite;}
@keyframes sz-live-pulse{0%,100%{opacity:1;}50%{opacity:0.35;}}
.sz-boardrow__answered{font-size:12.5px;color:rgba(255,255,255,0.4);white-space:nowrap;}
.sz-boarddir__bar{display:flex;align-items:center;gap:14px;padding:14px 18px;border-top:1px solid rgba(255,255,255,0.08);}
@media (max-width:700px){.sz-boardrow{flex-wrap:wrap;}.sz-boardrow__meta{flex-direction:column;align-items:flex-start;gap:6px;}}

.sz-board-empty-card{text-align:left;}
.sz-prompt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0 16px;}
@media (max-width:900px){.sz-prompt-grid{grid-template-columns:1fr;}}
.sz-prompt{display:flex;flex-direction:column;gap:10px;text-align:left;background:none;border:1px dashed rgba(255,255,255,0.18);border-radius:14px;padding:18px;text-decoration:none;transition:border-color .15s ease,background .15s ease;}
.sz-prompt:hover{border-color:var(--sz-accent);background:rgba(168,213,186,0.05);}
.sz-prompt__badge{align-self:flex-start;}
.sz-prompt__q{font-size:13.5px;line-height:1.5;color:rgba(255,255,255,0.75);margin:0;}
.sz-prompt__q em{color:rgba(255,255,255,0.5);font-style:normal;}
.sz-prompt__go{font-size:12.5px;color:var(--sz-accent);display:flex;align-items:center;gap:6px;}
.sz-prompt__go .sz-ic{width:12px;height:12px;}

.sz-embed{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,0.04);border-radius:10px;padding:10px 14px;margin-top:10px;}
.sz-embed__p{width:34px;height:34px;border-radius:50%;background:var(--sz-accent);color:#0a0a0a;border:0;display:grid;place-items:center;cursor:pointer;flex:none;}
.sz-embed__p .sz-ic{width:14px;height:14px;}
.sz-embed__label{font-size:12.5px;color:rgba(255,255,255,0.55);}

.sz-board-post--reply{margin-left:54px;}
.sz-board-reply-card{margin-top:18px;}
.sz-board-reply-card__track{margin-top:10px;}
.sz-board-reply-card__actions{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap;}
.sz-board-reply-card__actions .sz-sm{margin-left:auto;}

.sz-composer__grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;align-items:start;margin-top:6px;}
@media (max-width:900px){.sz-composer__grid{grid-template-columns:1fr;}}
.sz-composer__form{display:flex;flex-direction:column;gap:14px;}
.sz-composer__aside{display:flex;flex-direction:column;gap:14px;}
.sz-composer__typefields{display:flex;flex-direction:column;gap:14px;}
.sz-composer__foot{display:flex;align-items:center;gap:12px;margin-top:20px;flex-wrap:wrap;}
.sz-composer__foot .sz-sm{margin-left:auto;}
.sz-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:rgba(255,255,255,0.7);margin-top:10px;cursor:pointer;}
.sz-toggle input{accent-color:var(--sz-accent);width:16px;height:16px;}
@media (max-width:640px){.sz-composer__foot,.sz-board-reply-card__actions{flex-direction:column;align-items:stretch;}.sz-composer__foot .sz-sm,.sz-board-reply-card__actions .sz-sm{margin-left:0;}}

/* ===== HARVESTED — notifications tab + header bell (profile-notifications.php, header.php) from activation-canvas.html #C8 ===== */
.sz-notif-bell{position:relative;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:rgba(255,255,255,0.75);text-decoration:none;transition:background .15s ease,color .15s ease;}
.sz-notif-bell:hover{background:rgba(255,255,255,0.08);color:#fff;}
.sz-notif-bell .sz-ic{width:18px;height:18px;}
.sz-notif-bell__badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--sz-accent);color:#0a0a0a;font-size:10px;font-weight:700;line-height:16px;text-align:center;}

.sz-notifhead{display:flex;align-items:flex-start;gap:16px;justify-content:space-between;margin-bottom:18px;}
.sz-notif-list{display:flex;flex-direction:column;}
.sz-daylbl{font-family:'Rules','Inter Tight',sans-serif;font-size:11px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.4);margin:22px 0 8px;}
.sz-daylbl:first-child{margin-top:0;}
.sz-notif{display:flex;align-items:flex-start;gap:14px;padding:14px 4px;border-top:1px solid rgba(255,255,255,0.06);}
.sz-notif:first-of-type,.sz-daylbl + .sz-notif{border-top:0;}
.sz-notif.is-new{background:rgba(168,213,186,0.05);border-radius:10px;padding-left:12px;padding-right:12px;}
.sz-notif__ic{width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,0.06);color:rgba(255,255,255,0.6);display:grid;place-items:center;flex:none;}
.sz-notif__ic .sz-ic{width:15px;height:15px;}
.sz-notif__body{flex:1;min-width:0;}
.sz-notif__t{font-size:13.5px;line-height:1.5;color:rgba(255,255,255,0.85);margin:0;}
.sz-notif__m{font-size:12px;color:rgba(255,255,255,0.4);margin:4px 0 0;}

/* ===== HARVESTED — unsubscribe confirmation (template_unsubscribe.php) — activation-set nudge-mail footer link ===== */
.sz-unsub-card{max-width:520px;margin:60px auto;text-align:center;}
.sz-unsub-card__cta{margin-top:20px;}

/* ===== HARVESTED — profile completeness + stamps (profile-dashboard.php, profile-public.php, theme-functions.php simuze_render_stamps) from activation-canvas.html #D10 ===== */
.sz-stamps{margin-top:4px;}
.sz-stamps__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px;}
@media (max-width:560px){.sz-stamps__grid{grid-template-columns:repeat(2,1fr);}}
.sz-stamp{border:2px solid var(--sz-accent);border-radius:10px;padding:14px 12px;text-align:center;transform:rotate(-1.2deg);background:rgba(168,213,186,0.06);}
.sz-stamp:nth-child(even){transform:rotate(1.2deg);}
.sz-stamp--off{border-color:rgba(255,255,255,0.14);background:none;opacity:0.55;}
.sz-stamp__n{display:block;font-family:'Rules','Inter Tight',sans-serif;font-size:12px;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;color:#fff;}
.sz-stamp__d{display:block;font-size:11px;color:rgba(255,255,255,0.5);margin-top:4px;}

/* ===== HARVESTED — playlist empty state + guest curation (profile-playlists.php, template_playlists.php, template_homepage.php, theme-functions.php simuze_render_curation_card) from activation-canvas.html #D11 ===== */
.sz-playlist-empty{text-align:left;}
.sz-playlist-empty .sz-prompt-grid{margin:16px 0 20px;}
.sz-playlist-empty__note{margin-top:12px;}
.sz-prompt{background:none;border:1px dashed rgba(255,255,255,0.18);cursor:pointer;font:inherit;color:inherit;width:100%;}

.sz-curate{position:relative;border-radius:18px;padding:26px 30px;margin-bottom:24px;border:1px solid rgba(168,213,186,0.3);background:radial-gradient(ellipse at top right,rgba(168,213,186,0.14),rgba(168,213,186,0.03) 60%),var(--color-bg-card,#16171b);}
.sz-curate--compact{padding:22px 26px;margin-bottom:0;}
.sz-curate__meta{display:flex;flex-wrap:wrap;gap:18px;margin:14px 0 4px;}
.sz-curate__meta span{display:flex;align-items:center;gap:6px;font-size:12.5px;color:rgba(255,255,255,0.55);}
.sz-curate__meta .sz-ic{width:13px;height:13px;color:var(--sz-accent);}
.sz-curate__cta{margin-top:14px;}

/* ===== HARVESTED — Bandcamp import (profile-create-group.php) from activation-canvas.html #A2 ===== */
.sz-import{background:var(--color-bg-card,#16171b);border:1px solid rgba(255,255,255,0.08);border-radius:16px;padding:24px 26px;margin-bottom:24px;}
.sz-import__note{margin-top:14px;}
.sz-src{display:flex;gap:8px;margin:14px 0;}
.sz-src__tab{padding:7px 14px;border-radius:999px;font-size:12.5px;color:rgba(255,255,255,0.5);background:rgba(255,255,255,0.05);cursor:pointer;}
.sz-src__tab.is-on{background:var(--sz-accent);color:#0a0a0a;}
.sz-src__tab[title="Coming soon"]{cursor:not-allowed;opacity:0.5;}
.sz-import__paste{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);border-radius:12px;padding:0 8px 0 14px;}
.sz-import__paste .sz-ic{width:15px;height:15px;color:rgba(255,255,255,0.4);flex:none;}
.sz-import__paste .sz-input{background:none;border:0;padding:12px 0;}
.sz-import__error{margin-top:12px;font-size:13px;color:#ff9b9b;}
.sz-import__preview{margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,0.08);}
.sz-import__top{display:flex;gap:16px;align-items:flex-start;}
.sz-import__art{width:80px;height:80px;border-radius:10px;background:rgba(255,255,255,0.06) center/cover;flex:none;}
.sz-import__fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;}
.sz-import__field{display:flex;gap:8px;font-size:13px;}
.sz-field__k{color:rgba(255,255,255,0.4);flex:none;min-width:70px;}
.sz-field__v{color:rgba(255,255,255,0.8);}
.sz-import__tracks{margin-top:14px;display:flex;flex-direction:column;gap:4px;}
.sz-import__track{display:grid;grid-template-columns:20px 1fr auto;gap:10px;font-size:12.5px;color:rgba(255,255,255,0.55);padding:4px 0;}
.sz-import__track--more{color:rgba(255,255,255,0.35);}
.sz-import__dur{color:rgba(255,255,255,0.35);}
.sz-import__confirm{display:flex;align-items:center;gap:16px;justify-content:space-between;margin-top:16px;flex-wrap:wrap;}
.sz-import__confirm-actions{display:flex;gap:10px;flex:none;}
@media (max-width:560px){.sz-import__top{flex-direction:column;}.sz-import__confirm{flex-direction:column;align-items:stretch;}}

/* ===== HARVESTED — upload analysis (group-music.php, music-upload.js) from activation-canvas.html #E12 #E13 (exact classes from the design-system Row E component set) ===== */
/* One line under the file row: length, loudness, quality, tempo and key when known. */
.sz-scan { font-size: 12.5px; line-height: 1.55; color: rgba(255,255,255,0.55); margin: 0 0 16px; font-variant-numeric: tabular-nums; }
.sz-scan__now { font-size: 12.5px; line-height: 1.55; color: rgba(255,255,255,0.55); margin: 10px 0 0; }
.sz-scan__now b { color: rgba(255,255,255,0.8); font-weight: 500; }

.sz-suggest { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 14px; }
.sz-sugg { display: inline-flex; align-items: center; gap: 7px; height: 32px; padding: 0 6px 0 12px; border-radius: 999px; border: 1px dashed rgba(255,255,255,0.24); background: transparent; color: rgba(255,255,255,0.72); font: inherit; font-size: 13px; cursor: pointer; }
.sz-sugg:hover { border-color: rgba(255,255,255,0.4); color: #fff; }
.sz-sugg__x { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; color: rgba(255,255,255,0.4); }
.sz-sugg__x .sz-ic { width: 11px; height: 11px; }
.sz-sugg.is-on { border-style: solid; border-color: var(--sz-accent); background: rgba(168,213,186,0.12); color: var(--sz-accent); }
.sz-sugg.is-on .sz-sugg__x { color: var(--sz-accent); }
.sz-sugg:not(.is-on) .sz-sugg__x { display: none; }

/* .track-genre-group / .track-tags-group already carry .sz-field from their
   own markup — is-guessed/is-edited hook onto that existing selector. */
.sz-field.is-guessed .sz-input, .sz-field.is-guessed .sz-select, .sz-field.is-guessed .genre-select, .sz-field.is-guessed .tag-input { border-color: rgba(168,213,186,0.3); background: rgba(168,213,186,0.04); }

/* ===== HARVESTED — dark map theme on plain OpenStreetMap tiles (no API key) =====
   Only the decorative .sz-group-tile__thumb--country ctile thumbnails (rendered
   by setupCtileMaps() in simuze-2026.js) still use raster OSM tiles — every
   other map surface renders a native-dark MapLibre vector style instead (see
   js/maplibre/simuze-map-style.json), which needs no filter. OSM's raw tile
   server has no dark style of its own (Carto's dark_all needed an account+key
   as of the 2026 policy change); invert()+hue-rotate(180deg) is the standard
   no-server-cost trick for a dark map on light OSM tiles — pure invert() alone
   still carries every one of OSM's colours (green parks, orange roads), which
   reads as "colourised" rather than an understated near-monochrome basemap; the
   heavy saturate(0.2) afterwards pulls it back down to that same minimal look,
   matching class-location-avatar.php's server-side transform pixel-for-pixel so
   a cached thumbnail and a live ctile crop still look identical. Applied to the
   tile pane only, so markers/labels/controls stay their normal colour. */
.sz-group-tile__thumb--country .leaflet-tile-pane {
  filter: invert(1) hue-rotate(180deg) saturate(0.2) brightness(0.85) contrast(1.05);
}

/* Platform admin acting as another user / group owner */
.sz-dash-header > .sz-editing-others,
.sz-show-hero--bleed > .sz-editing-others {
  position: absolute;
  top: calc(var(--header-height, 60px) + 12px);
  left: 0;
  right: 0;
  z-index: 5;
  padding: 0 16px;
  pointer-events: none;
}
.sz-show-hero:not(.sz-show-hero--bleed) > .sz-editing-others,
.sz-release-edit > .sz-editing-others {
  position: absolute;
  top: 12px;
  left: 0;
  right: 0;
  z-index: 5;
  padding: 0 16px;
  pointer-events: none;
}
.sz-release-edit { position: relative; }
.sz-editing-others {
  display: flex;
  justify-content: center;
  padding: 10px 16px 0;
}
.sz-editing-others__badge {
  display: inline-flex;
  align-items: center;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.3;
  padding: 7px 14px;
  border-radius: 999px;
  background: #f0b46e;
  color: #1a1208;
  border: 0;
  box-shadow: 0 4px 16px rgba(0,0,0,0.35);
  pointer-events: auto;
}

/* ── 42h. Unclaimed pages and claiming them ──────────────
   Ported from the design system (production/css/simuze-2026.css §42h).
   Simuze makes venue pages before their owners arrive, so a page can exist
   that nobody runs. That is stated plainly on the page itself, quiet, never
   a scare banner, and it is obvious who put the information there.
   The design-system .sz-invite-card is not ported: the theme has its own. */
.button-ghost, .btn.button-ghost {
  background: transparent; border: 0; color: rgba(255,255,255,0.55);
  font-weight: 400; padding-inline: 8px;
}
.button-ghost:hover, .btn.button-ghost:hover { background: rgba(255,255,255,0.06); color: #fff; }

.sz-unclaimed { display: flex; align-items: center; gap: 14px; padding: 13px 16px; border-radius: 11px; background: rgba(255,255,255,0.035); border: 1px solid rgba(255,255,255,0.1); margin: 0 0 20px; flex-wrap: wrap; }
.sz-unclaimed__ic { width: 32px; height: 32px; border-radius: 8px; flex: none; display: grid; place-items: center; background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.55); }
.sz-unclaimed__ic .sz-ic { width: 15px; height: 15px; }
.sz-unclaimed__t { font-size: 13.5px; line-height: 1.55; color: rgba(255,255,255,0.72); margin: 0; flex: 1; min-width: 240px; }
.sz-unclaimed__t b { color: #fff; font-weight: 600; }
.sz-unclaimed__t a { color: rgba(255,255,255,0.6); text-decoration: underline; text-underline-offset: 2px; }
.sz-unclaimed__t a:hover { color: #fff; }
.sz-unclaimed .button { flex: none; }
.sz-stub { font-family: 'Rules', sans-serif; font-size: 9px; letter-spacing: 0.11em; text-transform: uppercase; color: rgba(255,255,255,0.45); border: 1px solid rgba(255,255,255,0.18); border-radius: 4px; padding: 3px 6px 2px; vertical-align: 4px; margin-left: 8px; white-space: nowrap; }

/* the ways to prove it is yours */
.sz-proof { display: flex; flex-direction: column; gap: 10px; margin: 0 0 4px; }
.sz-proof__opt { position: relative; display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 14px; align-items: start; padding: 16px 18px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.02); cursor: pointer; transition: border-color .18s ease, background .18s ease; }
.sz-proof__opt:hover { border-color: rgba(255,255,255,0.24); background: rgba(255,255,255,0.04); }
.sz-proof__opt:has(> input:checked) { border-color: var(--sz-accent); background: rgba(168,213,186,0.07); }
.sz-proof__ic { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: rgba(255,255,255,0.06); color: rgba(255,255,255,0.62); }
.sz-proof__opt:has(> input:checked) .sz-proof__ic { background: rgba(168,213,186,0.16); color: var(--sz-accent); }
.sz-proof__ic .sz-ic { width: 17px; height: 17px; }
.sz-proof__t { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 15px; color: #fff; display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.sz-proof__speed { font-family: "IBM Plex Sans", sans-serif; font-weight: 400; font-size: 11.5px; color: rgba(255,255,255,0.42); }
.sz-proof__d { font-size: 13px; line-height: 1.55; color: rgba(255,255,255,0.55); margin: 5px 0 0; }
.sz-proof__opt > input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.sz-proof__body { margin: 13px 0 0; padding: 13px 0 0; border-top: 1px solid rgba(255,255,255,0.09); display: none; cursor: auto; }
.sz-proof__opt:has(> input:checked) .sz-proof__body { display: block; }
.sz-code { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 9px; background: rgba(0,0,0,0.35); border: 1px solid rgba(255,255,255,0.12); font-family: 'Rules', monospace; font-size: 14px; letter-spacing: 0.1em; color: var(--sz-accent); flex-wrap: wrap; word-break: break-all; }
.sz-code button { margin-left: auto; }

/* what a claim changes, and what it does not */
.sz-keeps { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 0; list-style: none; }
.sz-keeps--single { grid-template-columns: 1fr; }
.sz-keeps li { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.55; color: rgba(255,255,255,0.6); }
.sz-keeps .sz-ic { width: 15px; height: 15px; flex: none; margin-top: 2px; color: var(--sz-accent); }
.sz-keeps li.is-no .sz-ic { color: rgba(255,255,255,0.32); }
@media (max-width: 760px) { .sz-keeps { grid-template-columns: 1fr; } }

/* claim under review */
.sz-pending { display: flex; align-items: flex-start; gap: 13px; padding: 15px 17px; border-radius: 12px; background: rgba(240,180,110,0.07); border: 1px solid rgba(240,180,110,0.26); margin: 0 0 20px; }
.sz-pending__ic { width: 30px; height: 30px; border-radius: 8px; flex: none; display: grid; place-items: center; background: rgba(240,180,110,0.14); color: #f0b46e; }
.sz-pending__ic .sz-ic { width: 15px; height: 15px; }
.sz-pending h4 { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 14.5px; color: #fff; margin: 0 0 4px; padding: 0; }
.sz-pending p { font-size: 13px; line-height: 1.55; color: rgba(255,255,255,0.6); margin: 0; }
.sz-pending p + p { margin-top: 8px; }
.sz-pending__actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }

@media (max-width: 620px) {
  .sz-unclaimed { padding: 13px 14px; }
  .sz-unclaimed .button { flex: 1 1 auto; justify-content: center; min-height: 44px; }
  .sz-proof__opt { grid-template-columns: 32px minmax(0,1fr); gap: 11px; padding: 14px; }
  .sz-proof__ic { width: 32px; height: 32px; }
  .sz-code { font-size: 12.5px; }
  .sz-code button { margin: 4px 0 0; flex: 1 0 100%; justify-content: center; min-height: 44px; }
}

/* Classes replacing the inline styles in venue-unclaimed.html and claim.html */
.sz-backlink { display: inline-flex; align-items: center; gap: 7px; color: var(--sz-accent); text-decoration: none; font-size: 13px; margin-bottom: 16px; }
.sz-backlink:hover { color: #fff; }
.sz-section-head--venue { margin: 0 0 14px; }
.sz-section-head--venue .sz-section-head__title { font-size: 1.4rem; }
.sz-coll-stack { display: flex; flex-direction: column; gap: 8px; }
.sz-coll-row--flat { background: rgba(255,255,255,0.03); box-shadow: none; border: 1px solid rgba(255,255,255,0.08); }
.sz-coll-row--flat:hover { background: rgba(255,255,255,0.05); box-shadow: none; }
.sz-coll-row__meta a { color: rgba(255,255,255,0.6); text-decoration: none; display: inline-flex; align-items: center; gap: 5px; }
.sz-coll-row__meta a:hover { color: #fff; }
.sz-coll-row__meta .sz-ic { width: 12px; height: 12px; }
.sz-panel-note { font-size: 13px; color: rgba(255,255,255,0.6); line-height: 1.55; margin: 0; }
.sz-panel-note + .sz-panel-note { margin-top: 6px; }
.sz-panel-note--faint { font-size: 12.5px; color: rgba(255,255,255,0.42); margin: 10px 0 14px; }
.sz-panel-note a { color: rgba(255,255,255,0.72); text-decoration: underline; text-underline-offset: 2px; }
.sz-panel-note a:hover { color: #fff; }
.sz-field--flush { margin: 0; }
.sz-field--spaced { margin: 12px 0 0; }
.sz-field__hint code { font-size: 12px; color: rgba(255,255,255,0.7); }
.sz-claim-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 22px; }
.is-busy { opacity: .6; pointer-events: none; }
.sz-music-pagehead .sz-section-head__eyebrow { margin-bottom: 10px; }
.sz-vouch-picks { display: flex; flex-wrap: wrap; gap: 8px; }
.sz-vouch-picks:not(:empty) { margin-top: 10px; }
.sz-vouch-pick { display: inline-flex; align-items: baseline; gap: 7px; padding: 7px 11px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.04); color: rgba(255,255,255,0.8); font-size: 13px; cursor: pointer; }
.sz-vouch-pick:hover { border-color: var(--sz-accent); }
.sz-vouch-pick b { font-weight: 600; color: #fff; }
.sz-vouch-pick span { color: rgba(255,255,255,0.45); font-size: 12px; }
.sz-vouch-pick i { font-style: normal; color: rgba(255,255,255,0.45); font-size: 12px; }

/* City scope on /shows and /shows/open-slots */
.sz-city-scope { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 0 0 14px; padding: 10px 14px; border-radius: 10px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.08); }
.sz-city-scope__label { margin: 0; font-size: 14px; color: rgba(255,255,255,0.7); }
.sz-city-scope__label b { color: #fff; font-weight: 600; }
.sz-city-scope__form { display: flex; align-items: center; gap: 10px; }
.sz-city-scope__change { font-size: 13px; color: rgba(255,255,255,0.5); }

/* Shows read from a venue's own agenda: informational, visibly not a Simuze show */
.event-list-item--external .event-date-badge { opacity: .8; }
.event-list-item--external .event-title { display: block; color: rgba(255,255,255,0.86); text-decoration: none; }
.event-list-item--external .event-title:hover { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.event-list-item--external .event-meta a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.event-via { font-size: 12px; color: rgba(255,255,255,0.42); margin-top: 3px; }
.event-ticket-btn--external { display: inline-flex; align-items: center; gap: 6px; }
.event-ticket-btn--external .sz-ic { width: 12px; height: 12px; }

/* Venue page show lists */
.sz-venue-past summary { list-style: none; cursor: pointer; }
.sz-venue-past summary::-webkit-details-marker { display: none; }
.sz-venue-past details[open] summary { margin-bottom: 14px; }
.sz-venue-show .sz-coll-row__title { white-space: normal; }
.sz-venue-claim-cta .button { margin-top: 12px; }

/* Homepage hero live line (ported from the inline style in production/homepage.html) */
.h2-live { display: flex; align-items: center; gap: 11px; margin: 20px 0 18px; min-height: 24px; }
.h2-live__dot { width: 7px; height: 7px; border-radius: 50%; flex: none; background: var(--sz-accent); animation: sz-live-pulse 2.4s infinite; }
.h2-live__rail { position: relative; display: block; flex: 1; min-width: 0; height: 22px; overflow: hidden; }
.h2-live__item { position: absolute; inset: 0; display: flex; align-items: center; gap: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 14px; color: rgba(255,255,255,0.72); opacity: 0; transform: translateY(9px); transition: opacity .45s ease, transform .45s cubic-bezier(.2,.7,.2,1); }
.h2-live__item.is-on { opacity: 1; transform: none; }
.h2-live__item.is-out { opacity: 0; transform: translateY(-9px); }
.h2-live__item b { color: #fff; font-weight: 600; }
.h2-live__item i { font-style: normal; color: rgba(255,255,255,0.4); font-size: 12.5px; }
@media (max-width: 760px) { .h2-live__item { font-size: 13px; } .h2-live__item i { display: none; } }
@media (prefers-reduced-motion: reduce) { .h2-live__item { transition: none; } .h2-live__dot { animation: none; } }

/* Venues dashboard (super admin) */
.sz-venue-admin__forms { margin-bottom: 28px; align-items: start; }
.sz-venue-admin__forms .sz-check { margin: 6px 0; }
.sz-venue-admin__forms .button[type="submit"] { margin-top: 12px; }
.sz-venue-admin__bulk { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,0.08); }
.sz-venue-jobs { display: flex; flex-direction: column; gap: 10px; }
.sz-venue-job { padding: 14px 16px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.03); }
.sz-venue-job--failed { border-color: rgba(240,120,110,0.35); }
.sz-venue-job__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.sz-venue-job__head b { color: #fff; }
.sz-venue-job .sz-meter { margin: 8px 0 4px; }
.sz-venue-job small { color: rgba(255,255,255,0.5); }
.sz-venue-job__log { margin: 8px 0 0; padding: 10px 12px; max-height: 180px; overflow: auto; border-radius: 8px; background: rgba(0,0,0,0.3); font-size: 12px; line-height: 1.5; color: rgba(255,255,255,0.7); white-space: pre-wrap; }
.sz-venue-job__review { margin-top: 10px; font-size: 13px; color: rgba(255,255,255,0.7); }
.sz-venue-job__review summary { cursor: pointer; color: #fff; }
.sz-venue-job__review ul { margin: 8px 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; }
.sz-venue-job__review li { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sz-venue-job__review span, .sz-venue-job__review small { color: rgba(255,255,255,0.5); }
.sz-venue-claim { align-items: flex-start; }
.sz-venue-claim__note { margin-top: 8px; max-width: 420px; }
.sz-venue-table-wrap { overflow-x: auto; }
.sz-venue-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.sz-venue-table th { text-align: left; font-weight: 600; color: rgba(255,255,255,0.55); padding: 8px 10px; border-bottom: 1px solid rgba(255,255,255,0.1); white-space: nowrap; }
.sz-venue-table td { padding: 10px; border-bottom: 1px solid rgba(255,255,255,0.06); vertical-align: top; color: rgba(255,255,255,0.8); }
.sz-venue-table td a { color: #fff; }
.sz-venue-table small { color: rgba(255,255,255,0.5); }
.sz-venue-table__err { color: rgba(240,160,140,0.8) !important; }
.sz-venue-table__actions { white-space: nowrap; text-align: right; }
.sz-venue-table__act { background: none; border: 0; padding: 4px 6px; font: inherit; font-size: 13px; color: var(--sz-accent); cursor: pointer; border-radius: 6px; }
.sz-venue-table__act:hover { background: rgba(255,255,255,0.06); color: #fff; }
.sz-venue-table__act:disabled { color: rgba(255,255,255,0.3); cursor: default; }

/* Show description read from a venue's agenda: cleaned HTML (Simuze_Feed_Adapter::clean_html) */
.event-description--rich { color: rgba(255,255,255,0.78); line-height: 1.7; }
.event-description--rich > :first-child { margin-top: 0; }
.event-description--rich p { margin: 0 0 1.1em; }
.event-description--rich h3 { font-family: 'Inter Tight', sans-serif; font-size: 1.15rem; font-weight: 600; color: #fff; margin: 1.8em 0 .5em; letter-spacing: -0.01em; }
.event-description--rich h4 { font-family: 'Inter Tight', sans-serif; font-size: 1rem; font-weight: 600; color: #fff; margin: 1.5em 0 .4em; }
.event-description--rich strong { color: rgba(255,255,255,0.95); font-weight: 600; }
.event-description--rich a { color: var(--sz-accent); text-decoration: underline; text-decoration-color: rgba(168,213,186,0.45); text-underline-offset: 3px; word-break: break-word; }
.event-description--rich a:hover { text-decoration-color: var(--sz-accent); }
.event-description--rich ul, .event-description--rich ol { margin: 0 0 1.1em; padding-left: 1.3em; }
.event-description--rich li { margin: 0 0 .35em; }
.event-description--rich blockquote { margin: 0 0 1.1em; padding-left: 14px; border-left: 2px solid rgba(255,255,255,0.15); color: rgba(255,255,255,0.7); }
.sz-show-buy__note a { color: var(--sz-accent); }

/* ── Invites dashboard (super admin), 2026-09-20 ── */
.iv-pagehead { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 26px; }
.iv-pagehead h1 { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 2rem; color: #fff; margin: 0 0 6px; line-height: 1.05; }
.iv-pagehead p { font-size: 14.5px; color: rgba(255,255,255,0.6); margin: 0; max-width: 62ch; }
.iv-pagehead__act { display: flex; gap: 10px; flex-wrap: wrap; }
.iv-status { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.1); border-radius: 12px; overflow: hidden; margin-bottom: 14px; }
.iv-meter { background: #101318; padding: 14px 16px; }
.iv-meter__k { font-size: 11.5px; letter-spacing: .09em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin: 0 0 8px; }
.iv-meter__v { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 1.35rem; color: #fff; font-variant-numeric: tabular-nums; margin: 0 0 9px; display: flex; align-items: baseline; gap: 5px; }
.iv-meter__v small { font-size: 13px; font-weight: 400; color: rgba(255,255,255,0.45); }
.iv-meter__track { height: 5px; border-radius: 999px; background: rgba(255,255,255,0.1); overflow: hidden; }
.iv-meter__fill { height: 100%; border-radius: 999px; background: var(--sz-accent); }
.iv-meter__fill.is-full { background: #e2a25c; }
.iv-cron { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13px; color: rgba(255,255,255,0.55); margin: 0 0 30px; }
.iv-cron b { color: rgba(255,255,255,0.85); font-weight: 500; }
.iv-cron.is-stale { color: #e2a25c; }
.iv-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--sz-accent); flex: none; box-shadow: 0 0 0 3px rgba(168,213,186,0.15); }
.iv-dot.is-off { background: #e17878; box-shadow: 0 0 0 3px rgba(225,120,120,0.15); }
.iv-needs { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-bottom: 32px; }
.iv-need { display: block; text-align: left; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.1); border-left: 3px solid var(--sz-accent); border-radius: 12px; padding: 16px 18px; cursor: pointer; transition: .15s; font: inherit; color: inherit; }
.iv-need:hover { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.2); border-left-color: var(--sz-accent); }
.iv-need__n { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.9rem; color: #fff; line-height: 1; margin-bottom: 7px; font-variant-numeric: tabular-nums; }
.iv-need__l { font-size: 14px; color: #fff; margin: 0 0 3px; }
.iv-need__s { font-size: 12.5px; color: rgba(255,255,255,0.5); margin: 0; line-height: 1.45; }
.iv-tabpanel[hidden] { display: none; }
.iv-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.iv-bar .sz-input, .iv-bar .sz-select { height: 38px; margin: 0; }
.iv-bar .sz-pill-tabs { margin: 0; }
.iv-search { flex: 1; min-width: 180px; max-width: 320px; }
.iv-sp { flex: 1; }
.iv-sel { position: sticky; top: 64px; z-index: 20; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: rgba(168,213,186,0.1); border: 1px solid rgba(168,213,186,0.35); border-radius: 12px; padding: 11px 14px; margin-bottom: 14px; }
.iv-sel[hidden] { display: none; }
.iv-sel__n { font-size: 14px; color: #fff; font-weight: 600; margin-right: 4px; }
.iv-sel__sp { flex: 1; }
.iv-list { display: flex; flex-direction: column; gap: 1px; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.1); border-radius: 12px; overflow: hidden; }
.iv-row { display: grid; grid-template-columns: 22px minmax(0,1fr) minmax(0,190px) auto; gap: 8px 14px; align-items: center; background: #0f1116; padding: 13px 16px; }
.iv-row:hover { background: #14171d; }
.iv-row.is-picked { background: rgba(168,213,186,0.07); }
.iv-row[hidden] { display: none; }
.iv-row__name { font-size: 14.5px; color: #fff; margin: 0 0 3px; display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.iv-row__meta { font-size: 12.5px; color: rgba(255,255,255,0.5); margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.iv-row__meta a { color: rgba(255,255,255,0.5); }
.iv-row__meta a:hover { color: var(--sz-accent); }
.iv-row__why { font-size: 12.5px; color: rgba(255,255,255,0.55); line-height: 1.4; }
.iv-row__act { display: flex; align-items: center; gap: 6px; justify-content: flex-end; flex-wrap: wrap; }
.iv-chk { width: 17px; height: 17px; accent-color: #a8d5ba; cursor: pointer; }
.iv-tag { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.18); color: rgba(255,255,255,0.6); white-space: nowrap; }
.iv-tag--ok { border-color: rgba(168,213,186,0.5); color: #a8d5ba; }
.iv-tag--warn { border-color: rgba(226,162,92,0.5); color: #e2a25c; }
.iv-tag--bad { border-color: rgba(225,120,120,0.5); color: #e17878; }
.iv-tag--mute { border-color: rgba(255,255,255,0.14); color: rgba(255,255,255,0.4); }
.iv-mini { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 11px; border-radius: 8px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); color: rgba(255,255,255,0.8); font-size: 12.5px; cursor: pointer; white-space: nowrap; transition: .15s; text-decoration: none; font: inherit; }
.iv-mini:hover { background: rgba(255,255,255,0.1); color: #fff; border-color: rgba(255,255,255,0.24); }
.iv-mini:disabled { opacity: .4; cursor: default; pointer-events: none; }
.iv-mini--go { background: var(--sz-accent); border-color: var(--sz-accent); color: #0a0a0a; font-weight: 600; }
.iv-mini--go:hover { background: #b9e2c9; color: #0a0a0a; }
.iv-mini--bad:hover { border-color: rgba(225,120,120,0.5); color: #e17878; }
.iv-mini .sz-ic { width: 14px; height: 14px; }
.iv-conf { display: inline-flex; gap: 2px; vertical-align: middle; }
.iv-conf i { width: 5px; height: 11px; border-radius: 2px; background: rgba(255,255,255,0.16); font-style: normal; }
.iv-conf i.on { background: var(--sz-accent); }
.iv-conf.low i.on { background: #e2a25c; }
.iv-more { display: flex; justify-content: center; padding: 14px 0 0; }
.iv-tablehead { display: grid; grid-template-columns: 22px minmax(0,1fr) minmax(0,190px) auto; gap: 14px; padding: 0 16px 9px; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,0.4); }
.iv-2col { display: grid; grid-template-columns: 1.3fr 1fr; gap: 20px; align-items: start; }
.iv-card { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.1); border-radius: 14px; padding: 22px; }
.iv-card h3 { font-family: 'Inter Tight', sans-serif; font-weight: 600; font-size: 1.05rem; color: #fff; margin: 0 0 4px; padding: 0; }
.iv-card__sub { font-size: 13px; color: rgba(255,255,255,0.5); margin: 0 0 18px; line-height: 1.5; }
.iv-card + .iv-card { margin-top: 20px; }
.iv-card .iv-bar { margin: 18px 0 0; }
.iv-card .iv-bar:first-child { margin-top: 0; }
.iv-cities { display: flex; flex-direction: column; gap: 1px; background: rgba(255,255,255,0.08); border-radius: 10px; overflow: hidden; margin-bottom: 14px; }
.iv-city { display: flex; align-items: center; gap: 12px; background: #0f1116; padding: 10px 13px; font-size: 14px; color: #fff; }
.iv-city.is-next { background: rgba(168,213,186,0.08); }
.iv-city__grip { color: rgba(255,255,255,0.3); cursor: grab; display: flex; }
.iv-city__n { flex: 1; }
.iv-city__s { font-size: 12.5px; color: rgba(255,255,255,0.45); font-variant-numeric: tabular-nums; }
.iv-job { border: 1px solid rgba(255,255,255,0.1); border-radius: 12px; margin-bottom: 10px; overflow: hidden; background: rgba(255,255,255,0.02); }
.iv-job__top { display: flex; align-items: center; gap: 12px; padding: 13px 16px; cursor: pointer; width: 100%; background: none; border: 0; text-align: left; font: inherit; color: #fff; }
.iv-job__top:hover { background: rgba(255,255,255,0.04); }
.iv-job__t { flex: 1; font-size: 14.5px; }
.iv-job__time { font-size: 12.5px; color: rgba(255,255,255,0.4); font-variant-numeric: tabular-nums; }
.iv-job__body { padding: 0 16px 14px; }
.iv-job__body[hidden] { display: none; }
.iv-job__icon { width: 16px; height: 16px; flex: none; }
.iv-job__icon--active { color: var(--sz-accent); }
.iv-job__icon--done { color: rgba(255,255,255,0.4); }
.iv-job__icon--failed { color: #e17878; }
.iv-log { background: #0a0b0e; border: 1px solid rgba(255,255,255,0.08); border-radius: 8px; padding: 12px 14px; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 12.5px; line-height: 1.7; color: rgba(255,255,255,0.7); max-height: 220px; overflow: auto; white-space: pre-wrap; }
.iv-prog { height: 5px; border-radius: 999px; background: rgba(255,255,255,0.1); overflow: hidden; margin: 0 16px 13px; }
.iv-prog__f { height: 100%; background: var(--sz-accent); border-radius: 999px; }
.iv-mail { background: #0a0b0e; border: 1px solid rgba(255,255,255,0.1); border-radius: 10px; padding: 18px 20px; font-size: 13.5px; line-height: 1.65; color: rgba(255,255,255,0.75); }
.iv-mail b { color: #fff; font-weight: 600; }
.iv-mail[hidden] { display: none; }
.iv-switch { display: flex; align-items: flex-start; gap: 12px; padding: 14px 0; border-top: 1px solid rgba(255,255,255,0.08); }
.iv-switch:first-of-type { border-top: 0; }
.iv-switch input { width: 17px; height: 17px; accent-color: #a8d5ba; margin-top: 2px; cursor: pointer; }
.iv-switch label { font-size: 14px; color: #fff; cursor: pointer; display: block; margin: 0 0 3px; }
.iv-switch p { font-size: 12.5px; color: rgba(255,255,255,0.5); margin: 0; line-height: 1.5; }
.iv-rule { display: flex; align-items: flex-start; gap: 12px; padding: 14px 0; border-top: 1px solid rgba(255,255,255,0.08); }
.iv-rule:first-of-type { border-top: 0; }
.iv-rule b { color: #fff; font-weight: 500; display: block; margin-bottom: 3px; font-size: 14px; }
.iv-rule p { font-size: 12.5px; color: rgba(255,255,255,0.5); margin: 0; line-height: 1.5; }
.iv-kv { display: flex; justify-content: space-between; gap: 16px; font-size: 13.5px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,0.07); color: rgba(255,255,255,0.6); }
.iv-kv:last-child { border-bottom: 0; }
.iv-kv b { color: #fff; font-weight: 500; font-variant-numeric: tabular-nums; }
.iv-scrim { position: fixed; inset: 0; background: rgba(5,6,8,0.72); backdrop-filter: blur(3px); z-index: 200; display: flex; align-items: center; justify-content: center; padding: 24px; opacity: 0; pointer-events: none; transition: opacity .16s; }
.iv-scrim.is-on { opacity: 1; pointer-events: auto; }
.iv-modal { width: 100%; max-width: 560px; max-height: 88vh; overflow: auto; background: #12151a; border: 1px solid rgba(255,255,255,0.14); border-radius: 18px; box-shadow: 0 30px 80px rgba(0,0,0,0.6); transform: translateY(10px) scale(.99); transition: transform .16s; }
.iv-scrim.is-on .iv-modal { transform: none; }
.iv-modal__head { display: flex; align-items: flex-start; gap: 16px; padding: 22px 24px 0; }
.iv-modal__head h2 { font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.3rem; color: #fff; margin: 0 0 5px; padding: 0; line-height: 1.15; }
.iv-modal__head p { font-size: 13.5px; color: rgba(255,255,255,0.55); margin: 0; line-height: 1.5; }
.iv-modal__x { flex: none; width: 32px; height: 32px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.12); background: none; color: rgba(255,255,255,0.6); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.iv-modal__x:hover { color: #fff; border-color: rgba(255,255,255,0.3); }
.iv-modal__body { padding: 20px 24px 4px; }
.iv-modal__foot { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 18px 24px 22px; border-top: 1px solid rgba(255,255,255,0.08); margin-top: 20px; }
.iv-modal__foot .iv-sel__sp { flex: 1; }
.iv-modal .sz-field { margin-bottom: 14px; }
.iv-modal .iv-mail { font-size: 13px; max-height: 190px; overflow: auto; }
.iv-facts { display: flex; flex-direction: column; gap: 1px; background: rgba(255,255,255,0.08); border-radius: 10px; overflow: hidden; margin-bottom: 18px; }
.iv-fact { display: flex; justify-content: space-between; gap: 16px; background: #0f1116; padding: 11px 14px; font-size: 13.5px; color: rgba(255,255,255,0.55); }
.iv-fact b { color: #fff; font-weight: 500; text-align: right; }
.iv-radio { display: flex; align-items: flex-start; gap: 11px; padding: 11px 13px; border: 1px solid rgba(255,255,255,0.12); border-radius: 10px; margin-bottom: 9px; cursor: pointer; }
.iv-radio:hover { border-color: rgba(255,255,255,0.26); }
.iv-radio input { accent-color: #a8d5ba; margin-top: 2px; width: 16px; height: 16px; }
.iv-radio span { font-size: 14px; color: #fff; display: block; margin-bottom: 2px; }
.iv-radio small { font-size: 12.5px; color: rgba(255,255,255,0.5); line-height: 1.45; display: block; }
.iv-note { font-size: 12.5px; color: rgba(255,255,255,0.45); line-height: 1.5; margin: 0 0 4px; }
.iv-toast { position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%) translateY(14px); background: #a8d5ba; color: #0a0a0a; font-size: 14px; font-weight: 600; padding: 12px 20px; border-radius: 999px; opacity: 0; pointer-events: none; transition: .2s; z-index: 120; }
.iv-toast.is-on { opacity: 1; transform: translateX(-50%) translateY(0); }
.iv-empty { padding: 40px 20px; text-align: center; color: rgba(255,255,255,0.5); font-size: 14px; }
.iv-warn-text { color: #e2a25c; }
.iv-mt14 { margin-top: 14px; }
.iv-card__sub--tight { margin: -8px 0 16px; }
.iv-kv--sep { border-top: 1px solid rgba(255,255,255,0.08); margin-top: 10px; padding-top: 10px; }
@media(max-width:1200px){.iv-needs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.iv-status{grid-template-columns:repeat(2,1fr)}.iv-2col{grid-template-columns:1fr}}
@media(max-width:1280px){.iv-row,.iv-tablehead{grid-template-columns:22px minmax(0,1fr);gap:8px 12px}.iv-tablehead span:nth-child(3),.iv-tablehead span:nth-child(4){display:none}.iv-row__why{grid-column:2}.iv-row__act{grid-column:2;justify-content:flex-start}}
@media(max-width:760px){.iv-needs{grid-template-columns:1fr}.iv-status{grid-template-columns:1fr 1fr}}

/* ===== Post-claim (2026-09-20, "the post-claim loop") — canvas post-claim-canvas.html ===== */

/* shelf: a section rendered in its unfilled state */
.sz-shelf{border:1px dashed rgba(255,255,255,0.22);border-radius:16px;padding:24px;background:rgba(255,255,255,0.03);}
.sz-shelf--lead{border-style:solid;border-color:rgba(168,213,186,0.45);background:linear-gradient(180deg,rgba(168,213,186,0.09),rgba(168,213,186,0));padding:28px;}
.sz-shelf--sm{padding:16px;border-radius:12px;}
.sz-shelf h3{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:1.25rem;letter-spacing:-0.01em;color:#fff;margin:0 0 8px;padding:0;}
.sz-shelf p{font-size:14.5px;color:rgba(255,255,255,0.68);line-height:1.55;margin:0;max-width:58ch;}
.sz-shelf__row{display:flex;gap:24px;align-items:flex-start;}
.sz-shelf__b{flex:1;min-width:0;}
.sz-shelf__slots{display:flex;gap:10px;flex:none;}
.sz-shelf__slots span{width:74px;height:74px;border-radius:10px;border:1px dashed rgba(255,255,255,0.22);background:rgba(255,255,255,0.04);display:block;}
.sz-shelf__act{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;}

/* paste-a-link */
.sz-paste{display:flex;gap:10px;margin-top:16px;max-width:540px;}
.sz-paste input{flex:1;min-width:0;height:50px;border-radius:999px;border:1px solid rgba(255,255,255,0.2);background:rgba(10,11,14,0.6);color:#fff;font:inherit;font-size:15px;padding:0 20px;outline:none;}
.sz-paste input::placeholder{color:rgba(255,255,255,0.42);}
.sz-paste input:focus{border-color:var(--sz-accent);box-shadow:0 0 0 3px rgba(168,213,186,0.15);}
.sz-paste .button{height:50px;padding:0 24px;}
.sz-music-import__msg{font-size:13px;color:rgba(255,255,255,0.6);margin:10px 0 0;}
.sz-music-import__msg.is-err{color:#e17878;}
.sz-music-import__result{display:flex;flex-direction:column;gap:1px;background:rgba(255,255,255,0.08);border-radius:10px;overflow:hidden;margin-top:16px;}
.sz-music-import__track{display:flex;align-items:center;gap:12px;background:#16171b;padding:11px 14px;}
.sz-music-import__title{flex:1;font-size:14px;color:#fff;}
.sz-music-import__title small{color:rgba(255,255,255,0.5);font-weight:400;margin-left:6px;}
.sz-music-import__status{font-size:12.5px;color:rgba(255,255,255,0.5);white-space:nowrap;}
.sz-music-import__status.is-ok{color:var(--sz-accent);}
.sz-music-import__pick{cursor:pointer;white-space:nowrap;}
.sz-music-import__done{background:rgba(168,213,186,0.08);border:1px solid rgba(168,213,186,0.3);border-radius:10px;padding:12px 14px;font-size:13.5px;color:#fff;margin:12px 0 0;}
.sz-music-import__done a{color:var(--sz-accent);}

/* unconfirmed scraped dates — amber, never red */
.sz-shows li.is-unconfirmed{border-radius:10px;}
.badge--warn{background:rgba(226,162,92,0.16)!important;color:#E2A25C!important;border-color:rgba(226,162,92,0.45)!important;}
.sz-shows__act{display:flex;gap:8px;flex:none;align-items:center;}

/* invite list, pre-assembled */
.sz-invite{border:1px solid rgba(255,255,255,0.1);border-radius:14px;overflow:hidden;background:rgba(255,255,255,0.03);}
.sz-invite__head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,0.08);font-size:13.5px;color:rgba(255,255,255,0.65);}
.sz-invite__head b{color:#fff;font-weight:600;}
.sz-invite__head .sz-ic{color:var(--sz-accent);}
.sz-invite__row{display:flex;align-items:center;gap:13px;padding:11px 18px;border-bottom:1px solid rgba(255,255,255,0.07);cursor:pointer;min-height:56px;}
.sz-invite__row:hover{background:rgba(255,255,255,0.04);}
.sz-invite__row input{width:18px;height:18px;accent-color:#A8D5BA;flex:none;}
.sz-invite__n{flex:1;min-width:0;}
.sz-invite__n b{display:block;font-weight:500;font-size:14.5px;color:#fff;}
.sz-invite__n span{font-size:12.5px;color:rgba(255,255,255,0.45);}
.sz-invite__foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03);}
.sz-invite__foot .sz-field__hint{margin:0;}

/* open slot card */
.sz-slot-list{display:flex;flex-direction:column;gap:12px;}
.sz-slot{display:flex;gap:16px;align-items:flex-start;border:1px solid rgba(255,255,255,0.1);border-radius:16px;padding:18px 20px;background:rgba(255,255,255,0.03);}
.sz-slot .sz-shows__date{flex:none;}
.sz-slot__b{flex:1;min-width:0;}
.sz-slot__t{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:1.2rem;letter-spacing:-0.01em;color:#fff;margin:0 0 4px;padding:0;}
button.sz-slot__t{display:block;background:none;border:0;text-align:left;cursor:pointer;font:inherit;width:100%;}
.sz-slot__n{font-size:14px;color:rgba(255,255,255,0.68);line-height:1.5;margin:9px 0 13px;}
.sz-slot__f{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.sz-slot__sp{flex:1;}
.sz-slot__dl{font-size:13px;color:rgba(255,255,255,0.6);}
.sz-slot__dl b{color:#fff;font-weight:600;}
.sz-slot.is-soon{border-color:rgba(226,162,92,0.5);}
.sz-slot.is-soon .sz-slot__dl b{color:#E2A25C;}
.sz-slot.is-filled{opacity:0.72;}
.sz-slot-applicant__audio{width:100%;height:32px;margin-top:6px;}

/* gig swap */
.sz-swap{border:1px solid rgba(255,255,255,0.1);border-radius:16px;overflow:hidden;background:rgba(255,255,255,0.03);}
.sz-swap.is-accepted{border-color:rgba(168,213,186,0.5);}
.sz-swap.is-done{opacity:0.7;}
.sz-swap__h{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid rgba(255,255,255,0.08);font-size:13px;color:rgba(255,255,255,0.6);}
.sz-swap__k{font-family:'Rules',sans-serif;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,0.4);}
.sz-swap__g{display:grid;grid-template-columns:1fr 46px 1fr;}
.sz-swap__s{padding:18px;}
.sz-swap__s .sz-section-head__eyebrow{margin:0 0 7px;}
.sz-swap__n{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:1.15rem;color:#fff;margin:0 0 3px;}
.sz-swap__ar{display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.04);border-left:1px solid rgba(255,255,255,0.08);border-right:1px solid rgba(255,255,255,0.08);color:rgba(255,255,255,0.4);}
.sz-swap__f{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid rgba(255,255,255,0.08);}
.sz-swap__f .sz-field__hint{margin:0;}

@media(max-width:640px){
  .sz-shows__act{width:100%;flex-wrap:wrap;}
  .sz-shelf__row{display:block;}
  .sz-shelf__slots{display:none;}
  .sz-paste{flex-direction:column;}
  .sz-paste .button{width:100%;justify-content:center;}
  .sz-shelf__act{flex-direction:column;align-items:stretch;}
  .sz-shelf__act .button{justify-content:center;}
  .sz-swap__g{grid-template-columns:1fr;}
  .sz-swap__ar{border-left:0;border-right:0;border-top:1px solid rgba(255,255,255,0.08);border-bottom:1px solid rgba(255,255,255,0.08);padding:8px 0;}
}

/* ===== HARVESTED — "Add music" chooser (group-music.php upload tab, group-public.php
   empty-music shelf) from group-manage.html Q4.18 (design round 3, 2026-09-24). The
   heading/hint wrapper classes (.sz-addchoice-wrap/__title/__hint) replace the design's
   inline-styled <h2>/<p> — no inline CSS in this codebase, classes only. ===== */
.sz-addchoice-wrap{margin-bottom:28px;}
.sz-addchoice__title{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.4rem;color:#fff;margin:0 0 6px;}
.sz-addchoice__hint{margin:0 0 20px;}
.sz-addchoice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:860px;}
.sz-addchoice__card{display:flex;flex-direction:column;gap:10px;text-align:left;padding:24px;border-radius:14px;border:1px solid rgba(255,255,255,0.14);background:rgba(255,255,255,0.03);color:#fff;font:inherit;cursor:pointer;text-decoration:none;transition:border-color .15s ease,background .15s ease;}
.sz-addchoice__card:hover{border-color:var(--sz-accent);background:rgba(168,213,186,0.06);}
.sz-addchoice__ic{width:40px;height:40px;border-radius:10px;background:rgba(168,213,186,0.12);color:var(--sz-accent);display:flex;align-items:center;justify-content:center;}
.sz-addchoice__t{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:18px;margin:4px 0 0;color:#fff;}
.sz-addchoice__d{font-size:14px;line-height:1.5;color:rgba(255,255,255,0.62);margin:0;}
.sz-addchoice__go{margin-top:auto;padding-top:8px;font-size:13.5px;font-weight:600;color:var(--sz-accent);display:inline-flex;align-items:center;gap:6px;}
.sz-addchoice__note{font-size:13px;color:rgba(255,255,255,0.5);margin:14px 0 0;}
.sz-addchoice[hidden],#musicChooser[hidden]{display:none!important;}
@media(max-width:640px){.sz-addchoice{grid-template-columns:1fr;}}

/* ===== HARVESTED — release importer (group-music-import.php, js/music-import.js) from
   music-import.html: .sz-editsec/.sz-artblock/.sz-artwork (Section 54), .sz-consent (Q4.4),
   .sz-boxnote/.sz-alert (Q4.9), Q4.19 wizard steps override, Q4.20 layered release details +
   file rows + 3-step importer (design round 3, 2026-09-24). .sz-trk*/.sz-codes/.sz-moods/
   .sz-more-rel/.sz-frow* are not used until Phase 3 (release-details.php); kept here so the
   whole design-round-3 block moves in one place instead of being split by phase. =====*/
.sz-editsec { container-type: inline-size; border: 1px solid rgba(255,255,255,0.1); border-radius: 16px; background: rgba(255,255,255,0.02); padding: 26px; margin: 0 0 22px; }
.sz-editsec__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 0 0 18px; margin: 0 0 24px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.sz-editsec__title { display: flex; align-items: center; gap: 11px; font-family: 'Inter Tight', sans-serif; font-weight: 700; font-size: 1.25rem; color: #fff; }
.sz-editsec__title .sz-ic { width: 21px; height: 21px; color: var(--sz-accent); flex: none; }
.sz-editsec__title small { font-weight: 500; font-size: 0.95rem; color: rgba(255,255,255,0.45); font-family: 'Inter Tight', sans-serif; }
.sz-editsec__actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* artwork block */
.sz-artblock { display: flex; gap: 28px; flex-wrap: wrap; align-items: flex-start; }
.sz-artwork { flex: none; width: 200px; }
.sz-artwork__frame { width: 200px; height: 200px; border-radius: 12px; overflow: hidden; background: #14171d; position: relative; border: 1px solid rgba(255,255,255,0.1); }
.sz-artwork__frame img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sz-artwork__frame.is-empty::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(45deg, rgba(255,255,255,0.025) 0 12px, transparent 12px 24px); }
.sz-artwork__row { display: flex; align-items: center; gap: 14px; margin: 14px 0 0; }
.sz-artwork__remove { font-size: 13px; color: rgba(226,148,148,0.85); cursor: pointer; background: 0; border: 0; padding: 0; font-family: inherit; }
.sz-artwork__remove:hover { color: #e29494; text-decoration: underline; }
.sz-artwork__hint { font-size: 12.5px; color: rgba(255,255,255,0.4); margin: 12px 0 0; line-height: 1.5; max-width: 200px; }
.sz-artblock__fields { flex: 1; min-width: 280px; }
.sz-consent{display:flex;gap:12px;align-items:flex-start;padding:14px 0;cursor:pointer;}
.sz-consent input{width:18px;height:18px;margin:1px 0 0;accent-color:#A8D5BA;flex:none;cursor:pointer;}
.sz-consent__t{display:block;font-size:14.5px;color:#fff;font-weight:500;}
.sz-consent__d{display:block;font-size:12.5px;color:rgba(255,255,255,0.55);margin-top:3px;}
.sz-boxnote{border:1px solid rgba(255,255,255,0.12);border-radius:12px;background:rgba(255,255,255,0.03);padding:14px 16px;font-size:13.5px;line-height:1.55;color:rgba(255,255,255,0.72);}
.sz-boxnote b{color:#fff;}
.sz-alert{display:flex;gap:11px;align-items:flex-start;border-radius:12px;padding:13px 15px;font-size:13.5px;line-height:1.5;border:1px solid rgba(226,162,92,0.4);background:rgba(226,162,92,0.08);color:rgba(255,255,255,0.82);}
.sz-alert .sz-ic{color:#E2A25C;flex:none;margin-top:1px;}
.sz-alert b{color:#fff;display:block;margin-bottom:2px;}
.sz-alert[hidden]{display:none;}
/* ── Q4.19 Wizard steps (upload / import / create group) — overrides the intro .sz-steps list ── */
.sz-steps:has(.sz-step__label){display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:0;align-items:start;margin:0 0 32px;max-width:720px;padding:0;list-style:none;}
.sz-steps:has(.sz-step__label) .sz-step{display:flex;flex-direction:column;align-items:center;gap:10px;position:relative;text-align:center;flex:initial;min-width:0;}
.sz-steps:has(.sz-step__label) .sz-step:not(:last-child)::after{content:"";position:absolute;top:17px;left:calc(50% + 26px);right:calc(-50% + 26px);height:2px;border-radius:2px;background:rgba(255,255,255,0.12);}
.sz-steps:has(.sz-step__label) .sz-step.is-done:not(:last-child)::after{background:var(--sz-accent);}
.sz-steps:has(.sz-step__label) .sz-step__num{position:relative;z-index:1;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-family:'Inter Tight',sans-serif;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums;background:transparent;color:rgba(255,255,255,0.55);border:2px solid rgba(255,255,255,0.18);box-sizing:border-box;transition:background .2s ease,border-color .2s ease,color .2s ease;}
.sz-steps:has(.sz-step__label) .sz-step__num .sz-ic{width:16px;height:16px;}
.sz-steps:has(.sz-step__label) .sz-step.is-done .sz-step__num{background:rgba(168,213,186,0.16);border-color:var(--sz-accent);color:var(--sz-accent);}
.sz-steps:has(.sz-step__label) .sz-step.is-active .sz-step__num{background:var(--sz-accent);border-color:var(--sz-accent);color:#0a0a0a;box-shadow:0 0 0 5px rgba(168,213,186,0.14);}
.sz-steps:has(.sz-step__label) .sz-step__label{font-size:13px;line-height:1.3;color:rgba(255,255,255,0.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.sz-steps:has(.sz-step__label) .sz-step.is-done .sz-step__label{color:rgba(255,255,255,0.75);}
.sz-steps:has(.sz-step__label) .sz-step.is-active .sz-step__label{color:#fff;font-weight:600;}
@media(max-width:560px){.sz-steps:has(.sz-step__label) .sz-step__label{display:none;}.sz-steps:has(.sz-step__label) .sz-step.is-active .sz-step__label{display:block;position:absolute;top:46px;white-space:nowrap;}.sz-steps:has(.sz-step__label){margin-bottom:44px;}}

/* ── Q4.20 Layered release details, file rows, 3-step importer ── */
.sz-more-rel{border-top:1px solid rgba(255,255,255,0.08);margin-top:20px;padding-top:4px;}
.sz-more-rel>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:12px 0;font-size:14.5px;font-weight:600;color:#fff;}
.sz-more-rel>summary::-webkit-details-marker{display:none;}
.sz-more-rel>summary .sz-ic{width:15px;height:15px;color:rgba(255,255,255,0.5);transition:transform .15s ease;}
.sz-more-rel[open]>summary .sz-ic{transform:rotate(180deg);color:var(--sz-accent);}
.sz-more-rel>summary small{font-weight:400;color:rgba(255,255,255,0.45);font-size:13px;}
.sz-more-rel__b{padding:6px 0 4px;}
.sz-moods{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 22px;margin:0 0 16px;}
.sz-moodrow{display:grid;grid-template-columns:62px minmax(0,1fr) 62px;gap:10px;align-items:center;font-size:12.5px;color:rgba(255,255,255,0.5);}
.sz-moodrow span:last-child{text-align:right;}
.sz-moodrow input{width:100%;accent-color:#A8D5BA;}
.sz-moodrow__k{grid-column:1/-1;font-size:13px;font-weight:600;color:#fff;margin-bottom:-4px;}
.sz-trks{display:flex;flex-direction:column;gap:8px;}
.sz-trk{border:1px solid rgba(255,255,255,0.09);border-radius:12px;background:rgba(255,255,255,0.025);}
.sz-trk.is-open{border-color:rgba(168,213,186,0.4);background:rgba(168,213,186,0.04);}
.sz-trk__row{display:flex;align-items:center;gap:12px;padding:8px 10px 8px 14px;}
.sz-trk__n{width:22px;text-align:center;font-size:13px;color:rgba(255,255,255,0.45);font-variant-numeric:tabular-nums;flex:none;}
.sz-trk__row .sz-input{flex:1;min-width:0;height:40px;margin:0;}
.sz-trk__edit{flex:none;background:none;border:0;color:var(--sz-accent);font:inherit;font-size:13px;font-weight:600;cursor:pointer;padding:10px 8px;white-space:nowrap;}
.sz-trk__edit:hover{color:#fff;}
.sz-trk__p{padding:6px 16px 18px 48px;border-top:1px solid rgba(255,255,255,0.07);}
.sz-trk__p[hidden]{display:none;}
.sz-trk__inherit{font-size:12.5px;color:rgba(255,255,255,0.45);margin:10px 0 14px;}
.sz-codes{border:1px solid rgba(255,255,255,0.1);border-radius:10px;padding:14px 14px 2px;margin:0 0 16px;}
.sz-codes__k{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,0.45);margin:0 0 10px;}
.sz-frow{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(255,255,255,0.09);border-radius:12px;background:rgba(255,255,255,0.025);}
.sz-frow.is-error{border-color:rgba(225,120,120,0.45);background:rgba(225,120,120,0.06);}
.sz-frow__ic{width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,0.05);display:flex;align-items:center;justify-content:center;flex:none;color:rgba(255,255,255,0.55);}
.sz-frow.is-error .sz-frow__ic{color:#e17878;}
.sz-frow__b{flex:1;min-width:0;}
.sz-frow__n{font-size:14px;color:#fff;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sz-frow__m{font-size:12.5px;color:rgba(255,255,255,0.5);margin-top:2px;font-variant-numeric:tabular-nums;}
.sz-frow__m.is-err{color:#e17878;}
.sz-frow__q{font-size:12px;color:rgba(255,255,255,0.45);margin-top:3px;}
.sz-frow__bar{width:120px;height:4px;border-radius:999px;background:rgba(255,255,255,0.1);overflow:hidden;flex:none;}
.sz-frow__bar i{display:block;height:100%;background:var(--sz-accent);}
.sz-frow.is-error .sz-frow__bar i{background:#e17878;}
.sz-frow__st{font-size:12.5px;color:rgba(255,255,255,0.55);flex:none;min-width:56px;text-align:right;}
.sz-frows{display:flex;flex-direction:column;gap:8px;}
.sz-istart{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:stretch;}
.sz-istart__card{border:1px solid rgba(255,255,255,0.12);border-radius:14px;padding:22px;background:rgba(255,255,255,0.025);display:flex;flex-direction:column;}
.sz-istart__card h3{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:16px;color:#fff;margin:0 0 12px;padding:0;}
.sz-istart__card .sz-filedrop{flex:1;margin:0;}
@media(max-width:800px){.sz-istart{grid-template-columns:1fr;}}
.sz-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.sz-ftrk{display:grid;grid-template-columns:28px minmax(0,1fr) minmax(0,1.1fr);gap:12px;align-items:center;padding:10px 14px;border:1px solid rgba(255,255,255,0.09);border-radius:12px;background:rgba(255,255,255,0.025);}
.sz-ftrk.is-missing{border-color:rgba(226,162,92,0.45);background:rgba(226,162,92,0.06);}
.sz-ftrk__t{font-size:14.5px;color:#fff;}
.sz-ftrk__t small{display:block;font-size:12px;color:rgba(255,255,255,0.45);}
.sz-ftrk__f{display:flex;align-items:center;gap:10px;min-width:0;padding:8px 10px;border-radius:9px;background:rgba(255,255,255,0.04);border:1px dashed rgba(255,255,255,0.14);cursor:grab;}
.sz-ftrk__f .sz-ic{width:14px;height:14px;color:rgba(255,255,255,0.35);flex:none;}
.sz-ftrk__f span{font-size:13px;color:rgba(255,255,255,0.8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sz-ftrk__f small{margin-left:auto;font-size:12px;color:rgba(255,255,255,0.45);white-space:nowrap;}
.sz-ftrk.is-missing .sz-ftrk__f{border-style:solid;border-color:rgba(226,162,92,0.4);cursor:default;justify-content:space-between;}
/* Per-file error + retry (design round 3, Phase 3 step 6, 2026-09-24) — same red as .sz-frow.is-error. */
.sz-ftrk.is-error{border-color:rgba(225,120,120,0.45);background:rgba(225,120,120,0.06);}
.sz-ftrk.is-error .sz-ftrk__f{border-style:solid;border-color:rgba(225,120,120,0.4);cursor:default;justify-content:space-between;}
.sz-ftrk.is-error .sz-ftrk__f span{color:#e17878;}
.sz-publishbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:26px;padding-top:20px;border-top:1px solid rgba(255,255,255,0.08);}
.sz-publishbar .sz-consent{flex:1;min-width:260px;padding:0;}
.sz-quietlink{background:none;border:0;color:rgba(255,255,255,0.6);font:inherit;font-size:14px;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:10px 4px;}
.sz-quietlink:hover{color:#fff;}

/* ===== HARVESTED — fan-list block (design round 3, 2026-09-24, Phase 5) from
   preview/components-fanlist.html, .sz-fanlist Q4.6 + .sz-pro-note Q4.7. Rendered on an
   act page (below the music section) and a show page (sidebar), by
   simuze_fanlist_block_html() in simuze-community-runtime.php. ===== */
.sz-fanlist{border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:20px;background:rgba(255,255,255,0.03);}
.sz-fanlist h3{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:16px;color:#fff;margin:0 0 12px;padding:0;border:0;}
.sz-fanlist__form{display:flex;gap:8px;}
.sz-fanlist__form .sz-input{flex:1;min-width:0;margin:0;height:44px;}
.sz-fanlist__form .button{height:44px;flex:none;}
.sz-fanlist__note{font-size:12.5px;line-height:1.5;color:rgba(255,255,255,0.5);margin:10px 0 0;}
.sz-fanlist__done{display:flex;gap:12px;align-items:flex-start;}
.sz-fanlist__done .sz-ic{color:var(--sz-accent);flex:none;margin-top:2px;}
.sz-fanlist__done b{display:block;color:#fff;font-size:15px;margin-bottom:3px;}
.sz-fanlist__done p{margin:0;font-size:13px;color:rgba(255,255,255,0.6);line-height:1.5;}
.sz-fanlist__count{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:26px;color:#fff;line-height:1;margin:0 0 4px;}
.sz-fanlist__count small{font-family:inherit;font-weight:400;font-size:13px;color:rgba(255,255,255,0.55);margin-left:6px;}
.sz-fanlist [hidden]{display:none!important;}
.sz-aside-stack-gap{margin-top:18px;}

.sz-pro-note{display:flex;align-items:center;gap:8px;font-size:12.5px;color:rgba(255,255,255,0.45);margin:10px 0 0;line-height:1.45;}
.sz-pro-note .sz-ic{width:13px;height:13px;flex:none;}

/* ===== HARVESTED — fan-list widget settings panel (design round 3, 2026-09-24, Phase 5)
   from fanlist-widget.html, Q4.13. Rendered by templates/group-fanlist-widget.php. ===== */
.sz-widget{font-family:'IBM Plex Sans',system-ui,sans-serif;border-radius:12px;padding:16px;max-width:420px;border:1px solid rgba(255,255,255,0.12);background:#0f1116;color:#fff;}
.sz-widget.is-light{background:#fff;color:#14171A;border-color:rgba(20,23,26,0.14);}
.sz-widget__row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,0.08);font-size:14px;}
.sz-widget.is-light .sz-widget__row{border-bottom-color:rgba(20,23,26,0.1);}
.sz-widget__d{width:44px;flex:none;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;opacity:.6;}
.sz-widget__t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sz-widget__f{display:flex;align-items:center;gap:10px;margin-top:12px;}
.sz-widget__btn{display:inline-flex;align-items:center;height:36px;padding:0 16px;border-radius:999px;background:#A8D5BA;color:#0a0a0a;font-weight:600;font-size:13.5px;text-decoration:none;}
.sz-widget__mark{margin-left:auto;font-size:11.5px;opacity:.55;text-decoration:none;color:inherit;}
.sz-widget .sz-fanlist__form .sz-input{background:transparent;}
.sz-widget.is-light .sz-input{border-color:rgba(20,23,26,0.2);color:#14171A;}
.sz-snippet{position:relative;background:#0a0b0e;border:1px solid rgba(255,255,255,0.1);border-radius:10px;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.6;color:rgba(255,255,255,0.78);white-space:pre-wrap;word-break:break-all;margin:0;}
.sz-snippet__copy{position:absolute;top:10px;right:10px;}
.sz-preview-well{border-radius:14px;padding:26px;background:repeating-linear-gradient(45deg,rgba(255,255,255,0.02) 0 10px,rgba(255,255,255,0.04) 10px 20px);border:1px solid rgba(255,255,255,0.08);}
.sz-preview-well.is-light{background:#EFEEEA;}

/* ===== HARVESTED — custom dropdown for [data-inline] selects (design round 3, 2026-09-24,
   Phase 6) from Q4.3, .sz-dd. Applied only to the homepage city picker in this round — see
   the JS comment in setupSelectEnhance() for why it is not run on every native select. ===== */
.sz-dd{position:relative;display:inline-block;max-width:100%;vertical-align:middle;}
.sz-dd--block{display:block;}
.sz-dd__btn{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:0 14px;border-radius:10px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.16);color:#fff;font:inherit;font-size:14.5px;cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease;}
.sz-dd__btn:hover{border-color:rgba(255,255,255,0.28);background:rgba(255,255,255,0.07);}
.sz-dd__btn span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sz-dd__btn .sz-ic{width:15px;height:15px;flex:none;color:rgba(255,255,255,0.5);transition:transform .15s ease;}
.sz-dd.is-open .sz-dd__btn{border-color:var(--sz-accent);background:rgba(168,213,186,0.07);}
.sz-dd.is-open .sz-dd__btn .sz-ic{transform:rotate(180deg);color:var(--sz-accent);}
/* position:fixed with JS-computed coordinates (2026-09-25, Marten) — the homepage's
   .sz-dd sits inside .h2-hero, which needs overflow:hidden for its background
   slideshow; that clips a position:absolute menu at the hero's edge. Fixed escapes it. */
.sz-dd__menu{position:fixed;z-index:9999;min-width:160px;max-height:300px;overflow:auto;background:#15181e;border:1px solid rgba(255,255,255,0.14);border-radius:12px;padding:6px;box-shadow:0 18px 40px rgba(0,0,0,0.55);display:none;}
.sz-dd__menu.is-open{display:block;}
.sz-dd__opt{display:flex;align-items:center;gap:9px;width:100%;min-height:40px;padding:0 11px;border:0;border-radius:8px;background:none;color:rgba(255,255,255,0.8);font:inherit;font-size:14px;text-align:left;cursor:pointer;white-space:nowrap;}
.sz-dd__opt:hover,.sz-dd__opt:focus{background:rgba(255,255,255,0.07);color:#fff;outline:none;}
.sz-dd__opt .sz-ic{width:14px;height:14px;flex:none;opacity:0;color:var(--sz-accent);}
.sz-dd__opt.is-on{color:#fff;}
.sz-dd__opt.is-on .sz-ic{opacity:1;}
.sz-dd--inline .sz-dd__btn{min-height:32px;padding:0 10px;border-radius:8px;font-size:13.5px;width:auto;}

/* ===== HARVESTED — homepage early state (design round 3, 2026-09-24, Phase 6) from
   homepage.html's inline style block: city picker, section heads, New on Simuze,
   Venues taking applications, show-row artwork thumb. ===== */
.hp-me{width:38px;height:38px;border-radius:50%;background-size:cover;background-position:center;display:block;border:1px solid rgba(255,255,255,0.2);}
.hp-top{padding:76px 0 70px;}
.hp-top__grid{display:grid;grid-template-columns:1.45fr 1fr;gap:64px;align-items:start;}
.hp-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:34px;}
.hp-head__k{font-family:'Rules',sans-serif;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--sz-accent);margin:0 0 14px;}
.hp-head__t{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:clamp(2rem,3.4vw,2.9rem);letter-spacing:-0.02em;color:#fff;margin:0;line-height:1;}
.hp-head__link{font-size:14.5px;color:var(--sz-accent);text-decoration:none;white-space:nowrap;}
.hp-head__link:hover{color:#fff;}
.sz-shows__art{width:58px;height:58px;flex:none;border-radius:10px;background-size:cover;background-position:center;background-color:#14171d;margin-right:14px;}
@media(max-width:900px){.hp-top__grid{grid-template-columns:1fr;gap:46px;}.hp-top{padding:48px 0 44px;}}
@media(max-width:760px){.hp-top{padding:36px 0 36px;}.hp-head{margin-bottom:24px;}.sz-shows__art{width:46px;height:46px;margin-right:10px;}}
.hp-city{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0 0;font-size:15px;color:rgba(255,255,255,0.8);}
.hp-city .sz-dd__btn{background:rgba(11,12,15,0.5);backdrop-filter:blur(8px);}
.hp-city__n{color:var(--sz-accent);text-decoration:none;font-weight:600;}
.hp-city__n:hover{color:#fff;}
.hp-new{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;}
.hp-newc{display:flex;gap:12px;align-items:center;padding:14px;border:1px solid rgba(255,255,255,0.09);border-radius:14px;background:rgba(255,255,255,0.025);text-decoration:none;color:inherit;transition:border-color .15s ease,background .15s ease;}
.hp-newc:hover{border-color:rgba(168,213,186,0.4);background:rgba(168,213,186,0.04);}
.hp-newc__av{width:44px;height:44px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;font-family:'Inter Tight',sans-serif;font-weight:700;font-size:14px;color:#fff;}
.hp-newc__av--round{border-radius:50%;}
.hp-newc__b{min-width:0;}
.hp-newc__k{font-family:'Rules',sans-serif;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--sz-accent);margin:0 0 3px;}
.hp-newc__t{font-size:14.5px;font-weight:600;color:#fff;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hp-newc__m{font-size:12.5px;color:rgba(255,255,255,0.5);margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.hp-apply{display:flex;flex-direction:column;gap:1px;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.09);border-radius:14px;overflow:hidden;margin:0 0 14px;}
.hp-apply__r{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#0f1116;}
.hp-apply__b{flex:1;min-width:0;}
.hp-apply__b b{display:block;color:#fff;font-size:14.5px;}
.hp-apply__b span{font-size:12.5px;color:rgba(255,255,255,0.5);}
.hp-note{font-size:13px;color:rgba(255,255,255,0.5);margin:0 0 20px;}

/* ===== HARVESTED — Q4.2 event row provenance (design round 3, 2026-09-24, Phase 7) from
   preview/components-event-row-states.html + production/css/simuze-2026.css:4448-4464.
   simuze_render_event_row() emits is-external/is-unconfirmed on the <li> (standardized from
   the earlier sz-shows__row--external/badge--warn variants each call site used to hand-roll).
   .sz-shows li.is-unconfirmed and .sz-shows__act already existed (a slightly different
   opacity/no margin-left:auto); these declarations win by appearing later in the cascade. ===== */
/* The "via {host}" credit sits inside the row's own link now, so it is a span, not a
   second anchor: the outgoing link is the Tickets button beside it. */
.sz-shows__via{display:inline-flex;align-items:center;gap:4px;color:rgba(255,255,255,0.5);text-decoration:none;}
.sz-shows__via .sz-ic{width:12px;height:12px;}
.sz-shows__tickets .sz-ic{width:12px;height:12px;margin-left:4px;vertical-align:-1px;}
.sz-shows li.is-external .sz-shows__title{font-weight:500;color:rgba(255,255,255,0.86);}
.sz-shows li.is-external .sz-shows__date{background:transparent;border:1px solid rgba(255,255,255,0.12);}
/* No amber row tint for an unconfirmed date (2026-09-25, Marten): the chip alone marks it. */
.sz-shows__slots{font-size:12px;font-weight:600;color:var(--sz-accent);text-decoration:none;white-space:nowrap;}
.sz-shows__slots:hover{color:#fff;}
.sz-shows__act{display:flex;gap:8px;flex:none;align-items:center;margin-left:auto;}
.sz-chip-unconfirmed{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;border:1px solid rgba(226,162,92,0.45);color:#E2A25C;font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase;font-weight:500;vertical-align:2px;margin-left:6px;}
.sz-shows--compact li{padding:9px 12px;}
.sz-shows--compact .sz-shows__date{width:38px;height:38px;}
.sz-shows--compact .sz-shows__title{font-size:14.5px;}
@media(max-width:600px){.sz-shows li{flex-wrap:wrap;}.sz-shows__act{width:100%;padding-left:62px;margin-left:0;}.sz-shows__act .button{min-height:44px;}}

/* ===== HARVESTED — homepage promises band (production/css/simuze-2026.css:4433-4446),
   restored 2026-09-25 after Marten flagged it missing from the round-3 homepage build. ===== */
.sz-promises{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.08);border-radius:16px;overflow:hidden;margin:0;padding:0;list-style:none;}
.sz-promise{background:#0f1116;padding:22px 20px 24px;display:flex;flex-direction:column;gap:10px;}
.sz-promise__ic{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:rgba(168,213,186,0.1);color:var(--sz-accent);}
.sz-promise__ic .sz-ic{width:18px;height:18px;}
.sz-promise__t{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:17px;letter-spacing:-0.01em;color:#fff;margin:0;line-height:1.25;}
.sz-promise__d{font-size:13.5px;line-height:1.5;color:rgba(255,255,255,0.62);margin:0;text-wrap:pretty;}
@media(max-width:1100px){.sz-promises{grid-template-columns:repeat(2,minmax(0,1fr));}.sz-promises .sz-promise:last-child{grid-column:1/-1;}}
@media(max-width:560px){.sz-promises{grid-template-columns:1fr;}}

/* ============================================================
   Q4.21 UPLOAD WIZARD — the four-step release flow on the group
   Music tab, ported 1:1 from production/group-manage.html. The step
   panels, file rows, track accordion, mood rows and review card all
   reuse the Q4.19/Q4.20 components above; what follows is only what
   the mockup carried as inline style, plus the states the static
   mockup has no way to show (dragover, disabled, invalid).
   ============================================================ */
.sz-wizpanel[hidden]{display:none;}
/* Own namespace: .sz-wizard is the older flat step rail and sets display:flex,
   which would collapse every panel of this wizard to its content width. */
.sz-upwiz__title{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.4rem;color:#fff;margin:0 0 22px;}
.sz-steps--wizard{max-width:680px;}
.sz-wizpanel__lead{margin:0 0 14px;}
.sz-filedrop--wizard{margin-bottom:16px;}
.sz-filedrop.is-dragover{border-color:var(--sz-accent);background:rgba(168,213,186,0.06);}
.sz-frows__note{margin:10px 0 0;}
.sz-frow .button-sm{flex:none;}
.sz-frow__ic .sz-ic{width:15px;height:15px;}
/* Album art is square everywhere (never the circular avatar crop) — the mockup's
   200px preview, on our own square picker. */
.sz-upload--art{flex-direction:column;align-items:flex-start;gap:0;}
.sz-upload--art .sz-upload__preview{width:200px;height:200px;border-radius:12px;}
.sz-label--moods{margin-bottom:12px;}
.sz-consent--tight{padding-top:0;}
.sz-editsec__hint{margin:0;}
.sz-field--narrow{max-width:260px;}
.sz-trk__grip{flex:none;color:rgba(255,255,255,0.35);cursor:grab;display:flex;align-items:center;}
.sz-trk__grip .sz-ic{width:14px;height:14px;}
.sz-trk__row .sz-icon-btn{flex:none;}
.sz-trk.sz-sortable-ghost{opacity:.4;}
.sz-trks__empty{font-size:13.5px;color:rgba(255,255,255,0.5);margin:0;}
.sz-review__b{flex:1;min-width:0;}
.sz-board-note__hi{color:var(--sz-accent);}
.sz-wizard-nav__l,.sz-wizard-nav__r{display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
/* components.css forces .button{display:inline-flex!important}, which a plain
   [hidden] cannot beat — the footer buttons would all show on every step. */
.sz-wizard-nav .button[hidden]{display:none!important;}
.sz-wizard-nav .button:disabled{opacity:.55;cursor:not-allowed;}
.sz-field.is-error .sz-input,.sz-field.is-error .sz-select{border-color:#C26B6B;}
.sz-field .field-error{display:none;font-size:12.5px;color:#e29494;margin-top:6px;}
.sz-field.is-error .field-error{display:block;}
/* Genre/mood suggestion chips sit inside a track panel now, so they need the
   same left gutter as the rest of .sz-trk__p content. */
.sz-trk__p .sz-scan__now{margin-top:0;}

/* ===== HARVESTED — invite panel (venue agenda, label roster) from venue-invite.html,
   label-invite.html (production/css/simuze-2026.css:4792-4844); .sz-protostrip is
   prototype-only and was not ported ===== */
.sz-ip{border:1px solid rgba(255,255,255,0.12);border-radius:16px;background:rgba(255,255,255,0.025);margin:0 0 26px;overflow:hidden;}
.sz-ip__head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;padding:22px 24px 18px;border-bottom:1px solid rgba(255,255,255,0.08);}
.sz-ip__t{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.3rem;line-height:1.2;color:#fff;margin:0 0 6px;padding:0;text-wrap:pretty;}
.sz-ip__s{font-size:14px;line-height:1.5;color:rgba(255,255,255,0.62);margin:0;max-width:62ch;}
.sz-ip__body{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);}
.sz-ip__list{min-width:0;border-right:1px solid rgba(255,255,255,0.08);max-height:560px;overflow:auto;}
.sz-ip__list--solo{border-right:0;max-height:none;}
.sz-ip__bar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;padding:11px 24px;font-size:13px;color:rgba(255,255,255,0.62);background:#121418;border-bottom:1px solid rgba(255,255,255,0.07);}
.sz-ip__bar label{display:flex;align-items:center;gap:10px;cursor:pointer;margin:0;}
.sz-ip-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:12px 24px;border-bottom:1px solid rgba(255,255,255,0.06);cursor:pointer;transition:background .12s;}
.sz-ip-row:last-child{border-bottom:0;}
.sz-ip-row:hover{background:rgba(255,255,255,0.03);}
.sz-ip-row.is-view{background:rgba(168,213,186,0.07);}
.sz-ip-row.is-off{cursor:default;}
.sz-ip-row.is-off:hover{background:none;}
.sz-ip-row.is-off .sz-ip-row__n{color:rgba(255,255,255,0.6);}
.sz-ip-row__main{min-width:0;}
.sz-ip-row__n{font-size:14.5px;color:#fff;margin:0;display:flex;gap:4px 10px;align-items:baseline;flex-wrap:wrap;}
.sz-ip-row__when{font-size:12.5px;color:rgba(255,255,255,0.5);}
.sz-ip-row__src{font-size:12.5px;color:rgba(255,255,255,0.5);margin:4px 0 0;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.sz-ip-row__act{display:flex;gap:8px;align-items:center;justify-content:flex-end;}
.sz-ip-chk{width:17px;height:17px;margin:0;accent-color:#A8D5BA;cursor:pointer;}
.sz-ip-chk:disabled{opacity:.28;cursor:default;}
.sz-ip-tag{display:inline-flex;align-items:center;font-size:11px;letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid rgba(255,255,255,0.18);color:rgba(255,255,255,0.66);white-space:nowrap;}
.sz-ip-tag--ok{border-color:rgba(168,213,186,0.5);color:#A8D5BA;}
.sz-ip-tag--warn{border-color:rgba(226,162,92,0.45);color:#E2A25C;}
.sz-ip-tag--mute{border-color:rgba(255,255,255,0.12);color:rgba(255,255,255,0.42);}
.sz-ip-mini{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:8px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.14);color:rgba(255,255,255,0.85);font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;transition:.15s;}
.sz-ip-mini:hover{background:rgba(255,255,255,0.1);color:#fff;border-color:rgba(255,255,255,0.26);}
.sz-ip-mini--go{background:var(--sz-accent);border-color:var(--sz-accent);color:#0a0a0a;font-weight:600;}
.sz-ip-mini--go:hover{background:var(--sz-accent-hover);color:#0a0a0a;}
.sz-ip-add{grid-column:2/-1;display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;}
.sz-ip-add .sz-input{flex:1;min-width:200px;height:36px;margin:0;}
.sz-ip__mail{padding:18px 24px 22px;min-width:0;}
.sz-ip__lbl{font-family:'Rules','Inter Tight',sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,0.45);margin:0 0 12px;}
.sz-ip-env{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;margin:0 0 14px;font-size:12.5px;}
.sz-ip-env dt{color:rgba(255,255,255,0.45);}
.sz-ip-env dd{margin:0;color:rgba(255,255,255,0.85);overflow-wrap:anywhere;}
.sz-ip-letter{background:#fff;color:#3F454B;border-radius:12px;padding:20px 22px;font-family:Helvetica,Arial,sans-serif;font-size:14px;line-height:1.6;}
.sz-ip-letter p{margin:0 0 10px;color:#3F454B;}
.sz-ip-letter__brand{font-weight:700;color:#14171A!important;font-size:15px;letter-spacing:-.01em;margin:0 0 14px!important;}
.sz-ip-letter__btn{display:inline-block;white-space:nowrap;background:#A8D5BA;color:#0E1013;font-weight:700;border-radius:999px;padding:11px 22px;margin:4px 0 14px;font-size:14px;}
.sz-ip-letter__chain{font-size:13px;color:#6B7178!important;margin:0 0 4px!important;}
.sz-ip-letter__sig{margin:14px 0 0!important;color:#14171A!important;}
.sz-ip-letter__ft{font-size:11.5px;color:#6B7178!important;border-top:1px solid #E3E2DE;padding-top:12px;margin:16px 0 0!important;line-height:1.55;}
.sz-ip__foot{background:none;display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:16px 24px;border-top:1px solid rgba(255,255,255,0.08);}
.sz-ip__foot .button[disabled]{opacity:.45;cursor:default;}
.sz-ip__rules{flex:1;min-width:260px;font-size:12.5px;line-height:1.55;color:rgba(255,255,255,0.45);margin:0;}
.sz-ip--line{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 20px;}
.sz-ip__line{flex:1;min-width:240px;margin:0;font-size:14px;line-height:1.5;color:rgba(255,255,255,0.72);}
@media(max-width:1100px){.sz-ip__body{grid-template-columns:1fr;}.sz-ip__list{border-right:0;border-bottom:1px solid rgba(255,255,255,0.08);max-height:none;}}
@media(max-width:600px){.sz-ip__head,.sz-ip-row,.sz-ip__bar,.sz-ip__mail,.sz-ip__foot{padding-left:16px;padding-right:16px;}.sz-ip-row{grid-template-columns:18px minmax(0,1fr);}.sz-ip-row__act{grid-column:2;justify-content:flex-start;}}

/* A bare inline link — the design's markup uses class="link" throughout (the invite
   panel's letter preview, the dashboard's "All shows →") with no rule ever shipped
   for it; styled here from .sz-quietlink's colours. */
.link{color:rgba(255,255,255,0.6);text-decoration:underline;text-underline-offset:3px;}
.link:hover{color:#fff;}

/* ===== HARVESTED — magic-link claim landing (claim-magic.html:56-94) ===== */
.mg-wrap{max-width:var(--container-max-width,1200px);margin:0 auto;padding:40px var(--space-32,32px) 72px;}
.mg-confirm{display:flex;flex-direction:column;align-items:center;text-align:center;padding:90px 0 60px;transition:padding .6s cubic-bezier(.2,.7,.2,1),align-items .6s;}
.mg-confirm__mark{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:rgba(168,213,186,0.14);color:var(--sz-accent);margin:0 0 22px;transition:all .5s;}
.mg-confirm__mark .sz-ic{width:26px;height:26px;}
.mg-confirm h1{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:clamp(1.8rem,3.4vw,2.6rem);letter-spacing:-0.02em;line-height:1.1;color:#fff;margin:0 0 12px;padding:0;transition:font-size .5s;}
.mg-confirm p{font-size:15px;color:rgba(255,255,255,0.6);margin:0;max-width:52ch;line-height:1.55;transition:opacity .3s;}
.mg-confirm.is-done{flex-direction:row;gap:12px;align-items:center;text-align:left;padding:0 0 26px;}
.mg-confirm.is-done .mg-confirm__mark{width:30px;height:30px;margin:0;}
.mg-confirm.is-done .mg-confirm__mark .sz-ic{width:16px;height:16px;}
.mg-confirm.is-done h1{font-size:15px;font-weight:500;letter-spacing:0;margin:0;color:rgba(255,255,255,0.8);}
.mg-confirm.is-done p{display:none;}
.mg-act{opacity:0;transform:translateY(14px);transition:opacity .5s .1s,transform .5s .1s cubic-bezier(.2,.7,.2,1);}
.mg-act.is-on{opacity:1;transform:none;}
.mg-act[hidden]{display:none;}
.mg-eyebrow{font-family:'Rules',sans-serif;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--sz-accent);margin:0 0 12px;}
.mg-h1{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:clamp(1.9rem,3.2vw,2.5rem);letter-spacing:-0.02em;line-height:1.1;color:#fff;margin:0 0 10px;padding:0;}
.mg-p{font-size:15px;line-height:1.6;color:rgba(255,255,255,0.62);margin:0 0 24px;max-width:62ch;}
.mg-drop{display:flex;align-items:center;gap:22px;flex-wrap:wrap;border:1.5px dashed rgba(168,213,186,0.45);border-radius:16px;background:rgba(168,213,186,0.05);padding:30px 28px;}
.mg-drop__t{flex:1;min-width:240px;}
.mg-drop__t b{display:block;font-family:'Inter Tight',sans-serif;font-weight:600;font-size:1.15rem;color:#fff;margin:0 0 4px;}
.mg-drop__t span{font-size:14px;color:rgba(255,255,255,0.58);}
.mg-alt{font-size:14px;color:rgba(255,255,255,0.6);margin:14px 0 0;}
.mg-next{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:34px 0 0;}
.mg-next__lbl{grid-column:1/-1;font-family:'Rules',sans-serif;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,0.45);margin:0;}
.mg-card{display:flex;flex-direction:column;gap:6px;border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:18px 20px;background:rgba(255,255,255,0.02);text-decoration:none;transition:.15s;}
.mg-card:hover{border-color:rgba(255,255,255,0.24);background:rgba(255,255,255,0.04);}
.mg-card b{font-size:15px;color:#fff;font-weight:600;}
.mg-card span{font-size:13.5px;color:rgba(255,255,255,0.55);line-height:1.5;}
.mg-card em{font-style:normal;font-size:13px;color:var(--sz-accent);margin-top:4px;}
.mg-login{font-size:13px;color:rgba(255,255,255,0.45);margin:8px 0 0;max-width:62ch;line-height:1.55;}
.mg-box{max-width:560px;margin:60px auto 0;border:1px solid rgba(255,255,255,0.12);border-radius:18px;background:rgba(255,255,255,0.025);padding:34px 34px 30px;}
.mg-box h1{font-family:'Inter Tight',sans-serif;font-weight:700;font-size:1.7rem;letter-spacing:-0.01em;line-height:1.15;color:#fff;margin:0 0 10px;padding:0;}
.mg-box p{font-size:15px;line-height:1.6;color:rgba(255,255,255,0.62);margin:0 0 22px;}
.mg-box__act{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.mg-box__done{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:rgba(255,255,255,0.8);line-height:1.5;}
.mg-box__done .sz-ic{color:var(--sz-accent);width:18px;height:18px;flex:none;margin-top:2px;}
[data-mg][hidden]{display:none;}
.mg-consent{margin-top:22px;max-width:520px;}
@media(prefers-reduced-motion:reduce){.mg-confirm,.mg-act,.mg-confirm__mark,.mg-confirm h1{transition:none;}}

/* ===== HARVESTED — venue applications nudge card (group-dashboard.html:95, from
   production/css/simuze-2026.css Q4.21) ===== */
.sz-nudge{display:flex;gap:16px 22px;align-items:center;flex-wrap:wrap;border:1px solid rgba(168,213,186,0.3);background:rgba(168,213,186,0.06);border-radius:14px;padding:18px 20px;margin:0 0 22px;}
.sz-nudge[hidden]{display:none;}
.sz-nudge__t{flex:1;min-width:260px;margin:0;font-size:14.5px;line-height:1.55;color:rgba(255,255,255,0.75);}
.sz-nudge__t b{display:block;color:#fff;font-weight:600;font-size:15.5px;margin-bottom:2px;}
.sz-nudge__act{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}

/* ===== HARVESTED — chain line on an unclaimed act's own page (production/css/simuze-2026.css
   Q4.21, same block as the nudge card above) ===== */
.sz-chain{font-size:13.5px;line-height:1.5;color:rgba(255,255,255,0.6);margin:-12px 0 26px;padding:0 4px;}
.sz-chain a{color:rgba(255,255,255,0.88);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,0.3);}
.sz-chain a:hover{color:var(--sz-accent);}

/* ===== HARVESTED — invite results, admin (dashboard-invites.html, production/css/simuze-2026.css
   Q4.22) ===== */
.sz-res-table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums;margin:0 0 22px;}
.sz-res-table th,.sz-res-table td{padding:11px 14px;border-bottom:1px solid rgba(255,255,255,0.08);text-align:right;color:rgba(255,255,255,0.75);font-weight:400;white-space:nowrap;}
.sz-res-table thead th{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,0.42);border-bottom-color:rgba(255,255,255,0.14);}
.sz-res-table th:first-child{text-align:left;color:#fff;}
.sz-res-table thead th:first-child{color:rgba(255,255,255,0.42);}
.sz-res-table b{color:#fff;font-weight:600;}
.sz-res-table caption{caption-side:top;text-align:left;font-size:12.5px;color:rgba(255,255,255,0.45);padding:0 0 10px;}
.sz-res-key{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:10px;vertical-align:1px;background:rgba(255,255,255,0.4);}
.sz-res-key--cold{background:rgba(255,255,255,0.4);}
.sz-res-key--venue{background:#A8D5BA;}.sz-res-key--band{background:#E2A25C;}.sz-res-key--label{background:#9DB7D8;}
.sz-res-legend{display:flex;gap:18px;font-size:12.5px;color:rgba(255,255,255,0.55);margin:0 0 12px;}
.sz-res-legend span{display:inline-flex;align-items:center;gap:8px;}
.sz-res-legend span:before{content:"";width:16px;height:2px;border-radius:2px;background:currentColor;}
.sz-res-legend .s:before{background:rgba(255,255,255,0.4);}.sz-res-legend .o:before{background:#9DB7D8;}.sz-res-legend .c:before{background:#A8D5BA;height:3px;}
.sz-res-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:0 0 22px;}
.sz-res-chart{margin:0;border:1px solid rgba(255,255,255,0.1);border-radius:12px;padding:14px 16px 12px;background:rgba(255,255,255,0.02);}
.sz-res-chart figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:13.5px;color:rgba(255,255,255,0.8);margin:0 0 10px;}
.sz-res-chart figcaption b{font-family:'Inter Tight',sans-serif;font-weight:600;font-size:1.05rem;color:#fff;font-variant-numeric:tabular-nums;}
.sz-res-chart svg{display:block;width:100%;height:auto;overflow:visible;}
.sz-res-chart polyline{fill:none;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;}
.sz-res-chart .s{stroke:rgba(255,255,255,0.35);}.sz-res-chart .o{stroke:#9DB7D8;}.sz-res-chart .c{stroke:#A8D5BA;stroke-width:2.4;}
.sz-res-chart .g{stroke:rgba(255,255,255,0.1);stroke-width:1;vector-effect:non-scaling-stroke;}
.sz-res-chart__ax{display:flex;justify-content:space-between;font-size:11.5px;color:rgba(255,255,255,0.4);margin-top:6px;}
.sz-res-weeks{border-top:1px solid rgba(255,255,255,0.08);padding-top:14px;}
.sz-res-weeks summary{cursor:pointer;font-size:14px;color:rgba(255,255,255,0.8);margin:0 0 14px;}
.sz-res-weeks summary:hover{color:#fff;}
.sz-res-table--weeks{font-size:13px;}
@media(max-width:760px){.sz-res-table{display:block;overflow-x:auto;}}
.iv-res-extra{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;}

/* Review bar's "Labels first" toggle — no source rule exists, styled from .iv-switch/.sz-check. */
.iv-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:rgba(255,255,255,0.7);cursor:pointer;margin:0;white-space:nowrap;}
.iv-toggle input{margin:0;}
