/* ============================================================
   SMATCH EDITORIAL DESIGN SYSTEM
   "The Kinetic Curator" — High-End Athletic + Magazine Premium
   ============================================================ */

/* ── Design Tokens ── */
:root {
  /* Smatch brand tokens */
  --bg: #F5F6F7;
  --brand: #BDF21F;
  --brand-text: #2B4900;
  --brand-forest: #3E6600;
  --text: #2C2F30;
  --text-muted: #595C5D;
  --text-soft: #8A8D90;
  --surface-low: #EFF1F2;
  --surface-mid: #E6E8EA;
  --green-tint: rgba(189,242,31,0.18);
  --green-text: #365900;
  --neutral-tint: rgba(24,33,35,0.08);
  --orange: #F3A341;
  --orange-border: rgba(243,163,65,0.45);
  --red: #F25A49;
  --red-border: rgba(242,90,73,0.4);
  --border: rgba(171,173,174,0.18);
  --border-strong: rgba(171,173,174,0.28);
  --shadow-glow: 0 20px 40px -12px rgba(189,242,31,0.35);

  /* Surfaces */
  --surface:                   var(--bg);
  --surface-container-lowest:  #ffffff;
  --surface-container-low:     var(--surface-low);
  --surface-container:         var(--surface-mid);
  --surface-container-high:    #e0e3e4;
  --surface-container-highest: #dadddf;

  /* On-Surface */
  --on-surface:         var(--text);
  --on-surface-variant: var(--text-muted);
  --outline-variant:    var(--border);

  /* Primary — Vibrant Tennis Green */
  --primary:           var(--brand-forest);
  --primary-container: var(--brand);
  --primary-fixed:     var(--brand);
  --primary-fixed-dim: var(--brand);
  --on-primary-fixed:  var(--brand-text);

  /* Secondary stays neutral to keep the one-accent system tight */
  --secondary-container:    var(--surface-mid);
  --on-secondary-container: var(--text-muted);

  /* Semantic */
  --win-bg:   var(--green-tint);
  --win-text: var(--green-text);
  --loss-bg:  rgba(242,90,73,0.12);
  --loss-text:var(--red);

  /* Elevation / Shadow */
  --shadow-card:  0 8px 32px -16px rgba(44,47,48,0.14);
  --shadow-float: var(--shadow-glow);
  --shadow-glass: 0 1px 0 rgba(255,255,255,0.9) inset, 0 8px 20px -14px rgba(44,47,48,0.16);

  /* Border Radius */
  --radius-xs: 0.5rem;
  --radius-sm: 0.75rem;
  --radius-md: 1rem;
  --radius-lg: 1.5rem;
  --radius-xl: 1.75rem;
  --radius-full: 9999px;

  /* Spacing Scale */
  --space-0: 0;
  --space-1: 0.125rem;
  --space-2: 0.25rem;
  --space-3: 0.375rem;
  --space-4: 0.5rem;
  --space-5: 0.625rem;
  --space-6: 0.75rem;
  --space-7: 0.875rem;
  --space-8: 1rem;
  --space-9: 1.125rem;
  --space-10: 1.25rem;
  --space-12: 1.5rem;
  --space-14: 1.75rem;
  --space-16: 2rem;
  --space-20: 2.5rem;

  /* Typography Scale */
  --text-2xs: 0.625rem;
  --text-xs: 0.6875rem;
  --text-sm: 0.75rem;
  --text-body-sm: 0.8125rem;
  --text-body: 0.9375rem;
  --text-label: 0.8125rem;
  --text-title-sm: 1.0625rem;
  --text-title: 1.25rem;
  --text-title-lg: 1.5rem;
  --text-display: 1.85rem;

  /* Shared Component Sizing */
  --control-height-sm: 2rem;
  --control-height-md: 2.75rem;
  --control-height-lg: 3rem;
  --button-height: var(--control-height-md);
  --button-padding-x: var(--space-8);
  --button-font-size: 0.875rem;
  --button-radius: var(--radius-full);
  --card-padding: var(--space-8);
  --card-gap: var(--space-6);

  /* Typography Scale */
  --font-thai: 'Noto Sans Thai', 'Plus Jakarta Sans', 'Inter', sans-serif;
  --font-latin-headline: 'Plus Jakarta Sans', 'Inter', 'Noto Sans Thai', sans-serif;
  --font-latin-body: 'Inter', 'Plus Jakarta Sans', 'Noto Sans Thai', sans-serif;
  --font-headline: var(--font-thai);
  --font-body: var(--font-thai);
}

html[data-language="en"] {
  --font-headline: var(--font-latin-headline);
  --font-body: var(--font-latin-body);
}

/* ── Reset ── */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }

/* ── Material Symbols ── */
.material-symbols-outlined {
  font-family: 'Material Symbols Outlined';
  font-weight: normal;
  font-style: normal;
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  letter-spacing: normal;
  line-height: 1;
  display: inline-block;
  text-transform: none;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}

/* ── Base Body ── */
body {
  font-family: var(--font-body);
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--on-surface);
  background: var(--surface);
  padding: 0 12px calc(112px + env(safe-area-inset-bottom));
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  /* Thai text needs slightly more line-height */
  word-break: break-word;
  overflow-wrap: break-word;
}

.hidden { display: none !important; }

/* ── Layout Shell ── */
.mobile-shell {
  width: min(520px, 100%);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
}

/* ── Card / Surface ── */
.card {
  background: var(--surface-container-lowest);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-card);
}

/* ── Top Ribbon ── */
.top-ribbon {
  position: relative;
  top: auto;
  z-index: 80;
  margin: 0 -12px 0;
  width: calc(100% + 24px);
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: none;
  padding: env(safe-area-inset-top) 8px 0;
  min-height: calc(36px + env(safe-area-inset-top));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  border-radius: 0;
}

.brand-mini {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.brand-b {
  width: 28px;
  height: 28px;
  border-radius: 0.68rem;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, var(--primary-fixed), var(--primary-fixed-dim));
  box-shadow: 0 6px 16px -8px rgba(189, 242, 31, 0.65);
  flex-shrink: 0;
}

.brand-b .material-symbols-outlined {
  font-size: 0.92rem;
  color: var(--on-primary-fixed);
  font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;
}

.top-ribbon h1 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.94rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--on-surface);
  line-height: 1;
}

.top-brand-wordmark {
  min-width: 0;
  display: flex;
  align-items: center;
}

.top-brand-logo {
  display: block;
  width: clamp(128px, 34vw, 178px);
  height: auto;
  max-height: 38px;
  object-fit: contain;
}

.top-ribbon-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.top-profile-btn {
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: var(--radius-full);
  background: transparent;
  display: grid;
  place-items: center;
  cursor: pointer;
}

.top-profile-btn .top-brand-avatar {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: inherit;
  object-fit: cover;
}

.top-ribbon.is-compact {
  top: auto;
  padding: 10px 12px;
  gap: 8px;
  border-radius: 1.1rem;
}

.top-ribbon.is-compact .brand-mini {
  gap: 8px;
}

.top-ribbon.is-compact .brand-b {
  width: 38px;
  height: 38px;
  border-radius: 0.85rem;
}

.top-ribbon.is-compact .brand-b .material-symbols-outlined {
  font-size: 1.35rem;
}

.top-ribbon.is-compact .brand-kicker {
  font-size: 0.5rem;
  letter-spacing: 0.12em;
}

.top-ribbon.is-compact h1 {
  margin-top: 1px;
  font-size: 1.08rem;
}

.top-ribbon.is-compact .top-ribbon-actions {
  gap: 6px;
}

.top-ribbon.is-compact .top-profile-avatar,
.top-ribbon.is-compact .top-notify-btn {
  width: 32px;
  height: 32px;
}

.top-profile-avatar {
  width: 26px;
  height: 26px;
  border-radius: var(--radius-full);
  object-fit: cover;
  background: var(--surface-container);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.9);
}

.top-notify-btn {
  width: 26px;
  height: 26px;
  border: none;
  border-radius: var(--radius-full);
  background: #edf1f2;
  color: #596062;
  display: grid;
  place-items: center;
  cursor: pointer;
  position: relative;
  overflow: visible;
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease, color 180ms ease;
}

.top-notify-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 20px -18px rgba(44,47,48,0.55);
}

.top-notify-btn.has-new {
  background: linear-gradient(145deg, rgba(189, 242, 31, 0.28), rgba(255,255,255,0.92));
  color: var(--primary);
  box-shadow: 0 14px 22px -18px rgba(189, 242, 31, 0.75);
}

.top-notify-btn .material-symbols-outlined {
  font-size: 0.86rem;
  font-variation-settings: 'FILL' 1, 'wght' 430, 'GRAD' 0, 'opsz' 24;
}

.top-notify-badge {
  position: absolute;
  top: -5px;
  right: -4px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: var(--radius-full);
  background: linear-gradient(145deg, var(--brand-forest), var(--primary-fixed));
  color: var(--on-primary-fixed);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  box-shadow: 0 0 0 2px rgba(255,255,255,0.92), 0 10px 18px -14px rgba(62,102,0,0.85);
}

@keyframes notificationsSheetIn {
  from {
    opacity: 0;
    transform: translateY(18px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.notifications-panel {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding:
    calc(env(safe-area-inset-top) + 8px)
    8px
    calc(env(safe-area-inset-bottom) + 8px);
}

.notifications-backdrop {
  position: absolute;
  inset: 0;
  border: none;
  background: rgba(229,233,235,0.56);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.notifications-sheet {
  position: relative;
  width: min(540px, 100%);
  max-height: calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  border-radius: 34px;
  overflow: hidden;
  background:
    radial-gradient(circle at top right, rgba(189, 242, 31, 0.18), transparent 36%),
    linear-gradient(180deg, rgba(255,255,255,0.97), rgba(241,244,245,0.97));
  box-shadow: 0 28px 64px -34px rgba(30,38,42,0.48);
  animation: notificationsSheetIn 220ms ease;
}

.notifications-header {
  position: sticky;
  top: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 18px 18px 12px;
  background:
    linear-gradient(180deg, rgba(248,250,250,0.98), rgba(248,250,250,0.84)),
    rgba(255,255,255,0.85);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.notifications-back-btn {
  width: 42px;
  height: 42px;
  border: none;
  border-radius: 16px;
  background: rgba(238,242,245,0.92);
  color: #5f6b72;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.82), 0 1px 2px rgba(24,33,35,0.05);
}

.notifications-back-btn .material-symbols-outlined {
  font-size: 1.2rem;
  font-variation-settings: 'FILL' 0, 'wght' 600, 'GRAD' 0, 'opsz' 24;
}

.notifications-header-copy {
  min-width: 0;
}

.notifications-kicker,
.notifications-summary-kicker {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
}

.notifications-header h2 {
  margin: 2px 0 0;
  font-family: var(--font-headline);
  font-size: 1.5rem;
  line-height: 1.04;
  letter-spacing: -0.035em;
}

.notifications-count-pill,
.notifications-mini-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: var(--radius-full);
  background: rgba(189, 242, 31, 0.2);
  color: var(--primary);
  font-family: var(--font-headline);
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
}

.notifications-body {
  overflow-y: auto;
  padding: 0 0 24px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.notifications-summary-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 18px 16px;
  border-radius: 28px;
  background:
    linear-gradient(135deg, rgba(189, 242, 31, 0.14), rgba(255,255,255,0.9)),
    var(--surface-container-lowest);
  box-shadow: 0 16px 32px -26px rgba(62,102,0,0.48);
}

.notifications-summary-copy {
  min-width: 0;
}

.notifications-summary-card strong {
  display: block;
  margin-top: 4px;
  font-family: var(--font-headline);
  font-size: 1.08rem;
  line-height: 1.14;
  letter-spacing: -0.03em;
}

.notifications-summary-card p:last-child {
  margin: 6px 0 0;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--on-surface-variant);
}

.notifications-summary-icon {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: rgba(189, 242, 31, 0.5);
  color: var(--primary);
  font-size: 1.55rem;
  font-variation-settings: 'FILL' 1, 'wght' 480, 'GRAD' 0, 'opsz' 24;
  box-shadow: 0 14px 24px -20px rgba(62,102,0,0.75);
}

.notifications-section {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.notifications-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 16px 6px;
}

.notifications-section-head h3 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
}

.notifications-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.notification-card {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  padding: 12px 16px;
  background: transparent;
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.notification-card.is-new {
  background: rgba(189, 242, 31, 0.07);
}

.notification-card.is-new::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--primary);
}

.notification-card-media {
  position: relative;
  width: 40px;
  min-width: 40px;
  padding-top: 1px;
}

.notification-card-avatar {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  object-fit: cover;
  background: var(--surface-container);
}

.notification-card-avatar.is-person {
  border-radius: var(--radius-full);
}

.notification-card-icon {
  position: absolute;
  right: -4px;
  bottom: -2px;
  width: 18px;
  height: 18px;
  border-radius: var(--radius-full);
  display: grid;
  place-items: center;
  background: var(--surface-container-lowest);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.9);
}

.notification-card-icon .material-symbols-outlined {
  font-size: 0.7rem;
  color: var(--primary);
  font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;
}

.notification-card-body {
  min-width: 0;
  padding-top: 1px;
}

.notification-card-tag {
  display: none;
}

.notification-card-message {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.38;
  color: var(--on-surface);
}

.notification-card-message strong {
  font-family: var(--font-headline);
  font-size: 0.88rem;
  letter-spacing: -0.01em;
}

.notification-card-message mark {
  background: none;
  color: var(--on-secondary-container);
  font-weight: 700;
}

.notification-card-subline {
  display: none;
}

.notification-card-meta {
  margin-top: 3px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  color: var(--on-surface-variant);
  font-size: 0.72rem;
}

.notification-card-meta-chip {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 7px;
  border-radius: var(--radius-full);
  background: rgba(189, 242, 31, 0.18);
  color: var(--primary);
  font-size: 0.68rem;
  font-weight: 700;
}

.notification-card-meta-chip .material-symbols-outlined {
  font-size: 0.72rem;
}

.notification-card-actions {
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.notification-action-btn {
  min-height: 30px;
  border: none;
  border-radius: var(--radius-full);
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  cursor: pointer;
  font-family: var(--font-headline);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  transition: transform 150ms ease, opacity 150ms ease;
}

.notification-action-btn:active {
  transform: scale(0.98);
}

.notification-action-btn.is-primary {
  background: var(--primary);
  color: var(--on-primary);
}

.notification-action-btn.is-secondary {
  background: rgba(230,232,234,0.88);
  color: var(--on-surface);
}

.notification-action-btn.is-ghost {
  background: rgba(230,232,234,0.78);
  color: var(--on-surface-variant);
}

.notification-empty {
  padding: 28px 18px 10px;
  display: grid;
  justify-items: center;
  text-align: center;
  gap: 8px;
}

.notifications-empty-icon {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(189, 242, 31, 0.18), rgba(255,255,255,0.96));
  color: var(--primary);
  box-shadow: 0 18px 32px -24px rgba(62,102,0,0.5);
}

.notifications-empty-icon .material-symbols-outlined {
  font-size: 2rem;
}

.notification-empty strong {
  font-family: var(--font-headline);
  font-size: 1.04rem;
  letter-spacing: -0.02em;
}

.notification-empty p {
  margin: 0;
  max-width: 260px;
  color: var(--on-surface-variant);
  font-size: 0.84rem;
  line-height: 1.5;
}

/* ── Card padding helpers ── */
/* Cards that hold section-head + content need inner padding */
#registerCard,
#tab-home .card:not(.profile-hero):not(.tier-card),
#tab-community .card,
#tab-arena .card,
#tab-profile .card:not(.member-details):not(.profile-switch-card),
.profile-view .card {
  padding: 20px;
}

#registerCard { padding: 20px; }

.register-line-preview {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
  padding: 10px 12px;
  border-radius: var(--radius-md);
  background: linear-gradient(135deg, rgba(189, 242, 31, 0.12), rgba(159,217,255,0.18));
}

.register-line-avatar {
  width: 46px;
  height: 46px;
  border-radius: var(--radius-sm);
  object-fit: cover;
  background: var(--surface-container-low);
  box-shadow: 0 6px 16px -10px rgba(44,47,48,0.35);
}

.register-line-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.register-line-kicker {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
}

.register-line-meta strong {
  margin-top: 1px;
  font-family: var(--font-headline);
  font-size: 0.88rem;
  letter-spacing: -0.01em;
  color: var(--on-surface);
}

.register-line-meta small {
  margin-top: 2px;
  font-size: 0.7rem;
  color: var(--on-surface-variant);
}

.section-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 14px;
  min-width: 0;
}

.section-head h2,
.section-head h3 {
  margin: 0;
  font-family: var(--font-headline);
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--on-surface);
  line-height: 1.25;
  min-width: 0;
}

.section-head h2 { font-size: 1.5rem; }
.section-head h3 { font-size: 1.05rem; }

.section-head small {
  font-size: 0.74rem;
  color: var(--on-surface-variant);
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── Forms ── */
.stack-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.stack-form.compact { gap: 10px; }

.two-cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

label {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

label > span {
  font-family: var(--font-headline);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--primary);
  padding-left: 2px;
}

input,
select,
textarea {
  width: 100%;
  border: none;
  outline: none;
  background: var(--surface-container-low);
  border-radius: var(--radius-md);
  font-family: var(--font-body);
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--on-surface);
  padding: 13px 14px;
  transition: background 0.16s ease, box-shadow 0.16s ease;
  -webkit-appearance: none;
}

textarea {
  min-height: 90px;
  resize: vertical;
  line-height: 1.55;
}

input::placeholder,
textarea::placeholder { color: var(--on-surface-variant); opacity: 0.6; }

input:focus,
select:focus,
textarea:focus {
  background: var(--surface-container-high);
  box-shadow: 0 0 0 2px rgba(189, 242, 31, 0.5);
  outline: none;
}

/* ── Buttons ── */
.primary-btn,
.secondary-btn,
.inline-btn {
  border: none;
  cursor: pointer;
  font-family: var(--font-headline);
  font-weight: 800;
  letter-spacing: 0.04em;
  transition: transform 0.12s ease, box-shadow 0.16s ease, filter 0.16s ease;
  -webkit-tap-highlight-color: transparent;
}

.primary-btn:active,
.secondary-btn:active,
.inline-btn:active { transform: scale(0.97); }

.primary-btn {
  width: 100%;
  padding: 15px 20px;
  border-radius: var(--radius-full);
  font-size: 0.9rem;
  color: var(--on-primary-fixed);
  background: linear-gradient(135deg, var(--primary-fixed), var(--primary-fixed-dim));
  box-shadow: 0 16px 32px -12px rgba(189, 242, 31, 0.65);
  text-transform: uppercase;
}

.primary-btn:hover { box-shadow: 0 20px 36px -12px rgba(189, 242, 31, 0.75); }

.secondary-btn {
  padding: 12px 18px;
  border-radius: var(--radius-full);
  font-size: 0.78rem;
  color: var(--on-surface);
  background: var(--surface-container);
  text-transform: uppercase;
}

.secondary-btn:hover { background: var(--surface-container-high); }

.inline-btn {
  padding: 8px 14px;
  border-radius: var(--radius-full);
  font-size: 0.72rem;
  color: var(--on-surface);
  background: var(--surface-container);
  text-transform: uppercase;
}

.inline-btn.success {
  color: var(--on-primary-fixed);
  background: var(--primary-container);
  box-shadow: 0 8px 20px -8px rgba(189, 242, 31, 0.5);
}

.inline-btn:hover { filter: brightness(0.97); }

/* ── Dashboard Shell ── */
.dashboard-shell {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.tab-panel {
  display: none;
  flex-direction: column;
  gap: 14px;
}

.tab-panel.is-active { display: flex; }

/* ── Profile Hero ── */
.profile-hero { padding: 20px; }

.member-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
  padding-bottom: 4px;
}

.avatar {
  width: 80px;
  height: 80px;
  border-radius: var(--radius-full);
  object-fit: cover;
  background: var(--surface-container-low);
  flex-shrink: 0;
  box-shadow: 0 0 0 4px var(--primary-container), 0 8px 24px -8px rgba(44,47,48,0.25);
}

.mini-overline {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  opacity: 0.7;
}

.profile-hero h2 {
  margin: 4px 0 0;
  font-family: var(--font-headline);
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--on-surface);
  line-height: 1.15;
}

.meta-text {
  margin: 4px 0 0;
  font-size: 0.8rem;
  color: var(--on-surface-variant);
  line-height: 1.65;
}

.tag-row {
  margin-top: 12px;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.pill {
  border-radius: var(--radius-full);
  padding: 5px 11px;
  font-family: var(--font-headline);
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: none;
}

.role-pill {
  background: rgba(189, 242, 31, 0.22);
  color: var(--win-text);
}

.intent-pill {
  background: rgba(159,217,255,0.35);
  color: var(--on-secondary-container);
}

/* ── Metric Grid ── */
.metric-grid {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.metric-grid article {
  background: var(--surface-container-low);
  border-radius: var(--radius-md);
  padding: 10px 8px;
  text-align: center;
  border: none;
  box-shadow: none;
}

.metric-grid small {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  margin-bottom: 4px;
}

.metric-grid strong {
  font-family: var(--font-headline);
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--on-surface);
  letter-spacing: -0.02em;
}

/* ── Editorial Profile Card (My Card Tab) ── */
.profile-editorial-card {
  overflow: hidden;
  position: relative;
  background: linear-gradient(180deg, var(--surface-container-lowest), var(--surface-container-low));
}

.profile-editorial-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}

.profile-editorial-avatar-wrap {
  position: relative;
  width: 84px;
  height: 84px;
  flex-shrink: 0;
}

.profile-editorial-avatar {
  width: 100%;
  height: 100%;
  border-radius: var(--radius-full);
  object-fit: cover;
  background: var(--surface-container);
  box-shadow: 0 0 0 4px rgba(255,255,255,0.9), 0 10px 24px -10px rgba(44,47,48,0.32);
}

.profile-pro-chip {
  position: absolute;
  right: -2px;
  bottom: -2px;
  border-radius: var(--radius-full);
  padding: 3px 9px;
  font-family: var(--font-headline);
  font-size: 0.56rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--on-primary-fixed);
  background: linear-gradient(145deg, var(--primary-fixed), var(--primary-fixed-dim));
  box-shadow: 0 6px 16px -8px rgba(62,102,0,0.45);
}

.profile-editorial-main {
  min-width: 0;
  flex: 1;
}

.profile-editorial-main h2 {
  margin: 2px 0 0;
  font-family: var(--font-headline);
  font-size: 1.32rem;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--on-surface);
  line-height: 1.1;
}

.profile-editorial-tags {
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.profile-editorial-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.profile-editorial-stats article {
  background: var(--surface-container-lowest);
  border-radius: var(--radius-md);
  padding: 10px 8px;
  text-align: center;
  box-shadow: inset 0 0 0 1px rgba(171,173,174,0.12);
}

.profile-editorial-stats small {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.54rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  margin-bottom: 4px;
}

.profile-editorial-stats strong {
  font-family: var(--font-headline);
  font-size: 1.04rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--on-surface);
}

.profile-progression-card {
  background: linear-gradient(180deg, var(--surface-container-lowest), #f7f8f8);
}

/* ── Tier Card ── */
.tier-card { padding: 20px; }

.tier-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}

.tier-head h3 {
  margin: 4px 0 0;
  font-family: var(--font-headline);
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.tier-badge {
  border-radius: var(--radius-full);
  padding: 5px 12px;
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--on-primary-fixed);
  background: linear-gradient(135deg, var(--primary-fixed), var(--primary-fixed-dim));
  box-shadow: 0 6px 16px -8px rgba(189, 242, 31, 0.6);
}

.progress-track {
  margin-top: 12px;
  height: 8px;
  border-radius: var(--radius-full);
  background: var(--surface-container-highest);
  overflow: hidden;
  border: none;
}

.progress-fill {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--primary), var(--primary-fixed));
  box-shadow: 0 0 10px rgba(189, 242, 31, 0.5);
  transition: width 0.4s ease;
}

.progress-text {
  margin: 8px 0 0;
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--on-surface-variant);
}

/* ── Feed List ── */
.feed-list,
.community-list,
.simple-list,
.today-match-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Feed Item */
.feed-item {
  background: var(--surface-container-low);
  border-radius: var(--radius-lg);
  padding: 14px;
  border: none;
  box-shadow: none;
}

.feed-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
}

.feed-title {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--on-surface);
  letter-spacing: -0.01em;
}

.feed-sub {
  margin: 4px 0 0;
  font-size: 0.78rem;
  color: var(--on-surface-variant);
  line-height: 1.65;
}

.feed-tags {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.feed-pill {
  border-radius: var(--radius-full);
  padding: 4px 10px;
  font-family: var(--font-headline);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: var(--surface-container);
  color: var(--on-surface-variant);
  border: none;
}

.feed-pill.green {
  background: rgba(189, 242, 31, 0.18);
  color: var(--win-text);
}

.feed-pill.blue {
  background: rgba(159,217,255,0.35);
  color: var(--on-secondary-container);
}

.action-row {
  margin-top: 10px;
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}

/* ── Community ── */
.community-toolbar {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 14px;
}

.community-item {
  background: var(--surface-container-low);
  border-radius: var(--radius-lg);
  padding: 14px;
  display: flex;
  gap: 12px;
  border: none;
  box-shadow: none;
}

.community-avatar {
  width: 52px;
  height: 52px;
  border-radius: var(--radius-md);
  object-fit: cover;
  background: var(--surface-container);
  flex-shrink: 0;
  box-shadow: none;
  border: none;
}

.community-avatar-btn,
.community-title-btn {
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.community-avatar-btn {
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  padding: 0;
  border-radius: var(--radius-md);
}

.community-avatar-btn .community-avatar {
  display: block;
}

.community-title-btn {
  max-width: 100%;
  padding: 0;
}

.community-main {
  min-width: 0;
  flex: 1;
}

.community-main h4 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--on-surface);
  letter-spacing: -0.01em;
}

.community-main p {
  margin: 4px 0 0;
  font-size: 0.77rem;
  color: var(--on-surface-variant);
  line-height: 1.65;
}

.community-actions {
  margin-top: 10px;
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}

/* ── Groups Community Tab ── */
.groups-tab-panel {
  position: relative;
  gap: 12px;
  padding: 2px 2px 112px;
}

.groups-intro-copy {
  padding: 2px 4px 2px;
}

.groups-intro-copy h3 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 2.04rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: #181c1d;
  line-height: 1.05;
}

.groups-intro-copy p {
  margin: 6px 0 0;
  font-size: 0.82rem;
  color: #656a6b;
}

.groups-hub-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.groups-hub-card {
  border-radius: 1.75rem;
  background: #ffffff;
  box-shadow: 0 14px 26px -22px rgba(44,47,48,0.42);
  padding: 12px 14px;
}

.groups-hub-card.is-pending {
  background: #fbfcfc;
}

.groups-card-head {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 8px;
}

.groups-status-pill {
  border-radius: var(--radius-full);
  padding: 5px 10px;
  font-family: var(--font-headline);
  font-size: 0.54rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.groups-status-pill.is-active {
  background: rgba(189, 242, 31, 0.24);
  color: #436d00;
}

.groups-status-pill.is-pending {
  background: #eceff1;
  color: #8a8f93;
}

.groups-status-dot {
  width: 5px;
  height: 5px;
  border-radius: var(--radius-full);
  background: #78b700;
  animation: groupsPulseDot 1.25s ease-in-out infinite;
}

@keyframes groupsPulseDot {
  0%, 100% { opacity: 0.45; transform: scale(0.85); }
  50% { opacity: 1; transform: scale(1); }
}

.groups-card-body {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.groups-cover-wrap {
  width: 58px;
  height: 58px;
  border-radius: var(--radius-full);
  overflow: hidden;
  flex-shrink: 0;
  background: #dfe3e5;
}

.groups-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.groups-hub-card.is-pending .groups-cover {
  filter: grayscale(1);
}

.groups-card-main {
  min-width: 0;
  flex: 1;
}

.groups-card-main h4 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1.06rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #1f2324;
  line-height: 1.15;
}

.groups-card-main p {
  margin: 5px 0 0;
  font-size: 0.74rem;
  color: #6b6f72;
  line-height: 1.45;
}

.groups-members-row {
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.groups-avatar-stack {
  display: flex;
  align-items: center;
}

.groups-avatar-chip,
.groups-avatar-more {
  width: 24px;
  height: 24px;
  border-radius: var(--radius-full);
  border: 2px solid #ffffff;
  margin-left: -6px;
}

.groups-avatar-chip:first-child,
.groups-avatar-more:first-child {
  margin-left: 0;
}

.groups-avatar-chip {
  object-fit: cover;
  background: #e1e5e8;
}

.groups-avatar-more {
  display: inline-grid;
  place-items: center;
  font-family: var(--font-headline);
  font-size: 0.53rem;
  font-weight: 800;
  color: #586063;
  background: #e9edf0;
}

.groups-members-text {
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #767d80;
}

.groups-pending-row {
  margin-top: 8px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #70b100;
  font-family: var(--font-headline);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.groups-pending-row .material-symbols-outlined {
  font-size: 0.94rem;
  font-variation-settings: 'FILL' 1, 'wght' 520, 'GRAD' 0, 'opsz' 20;
}

.groups-fab-btn {
  position: fixed;
  right: calc(50% - min(520px, calc(100% - 20px)) / 2 + 14px);
  bottom: calc(90px + env(safe-area-inset-bottom));
  width: 56px;
  height: 56px;
  border-radius: var(--radius-full);
  border: none;
  background: linear-gradient(145deg, var(--primary-fixed), var(--primary-fixed-dim));
  color: #1f3800;
  display: grid;
  place-items: center;
  box-shadow: 0 16px 28px -10px rgba(124,189,0,0.62);
  cursor: pointer;
  transition: transform 0.14s ease, filter 0.14s ease;
  z-index: 58;
}

.groups-fab-btn:active {
  transform: scale(0.95);
  filter: brightness(0.98);
}

.groups-fab-btn .material-symbols-outlined {
  font-size: 1.8rem;
  font-variation-settings: 'FILL' 1, 'wght' 700, 'GRAD' 0, 'opsz' 24;
}

.groups-sheet-overlay {
  position: fixed;
  left: 0;
  right: 0;
  top: calc(84px + env(safe-area-inset-top));
  bottom: 0;
  background: rgba(12,15,16,0.42);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease;
  z-index: 56;
}

.groups-sheet-overlay.is-active {
  opacity: 1;
  pointer-events: auto;
}

.groups-sheet {
  position: fixed;
  left: 50%;
  bottom: 0;
  width: min(520px, 100%);
  transform: translate(-50%, 100%);
  transition: transform 0.26s cubic-bezier(0.32,0.72,0,1);
  border-radius: 2rem 2rem 0 0;
  background: #ffffff;
  box-shadow: 0 -12px 30px -12px rgba(44,47,48,0.3);
  padding: 12px 14px calc(22px + env(safe-area-inset-bottom));
  z-index: 57;
}

.groups-sheet.open {
  transform: translate(-50%, 0);
}

.groups-sheet-handle {
  width: 40px;
  height: 4px;
  border: none;
  border-radius: var(--radius-full);
  background: #d6dadc;
  display: block;
  margin: 2px auto 10px;
}

.groups-sheet-title {
  margin: 0 0 10px;
  text-align: center;
  font-family: var(--font-headline);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6f7477;
}

.groups-sheet-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.groups-sheet-item {
  width: 100%;
  border: none;
  border-radius: 1.15rem;
  background: #f4f6f7;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px;
  text-align: left;
  cursor: pointer;
}

.groups-sheet-item-icon {
  width: 38px;
  height: 38px;
  border-radius: var(--radius-full);
  background: #dfe4e7;
  color: #3f474a;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

.groups-sheet-item-icon.is-primary {
  background: rgba(189, 242, 31, 0.33);
  color: #2e5000;
}

.groups-sheet-item-icon .material-symbols-outlined {
  font-size: 1.1rem;
  font-variation-settings: 'FILL' 1, 'wght' 580, 'GRAD' 0, 'opsz' 24;
}

.groups-sheet-item-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1;
}

.groups-sheet-item-copy strong {
  font-family: var(--font-headline);
  font-size: 0.96rem;
  font-weight: 800;
  color: #1f2526;
  letter-spacing: -0.01em;
}

.groups-sheet-item-copy small {
  margin-top: 1px;
  font-size: 0.72rem;
  color: #676d70;
}

.groups-sheet-chevron {
  font-size: 1rem;
  color: #81888b;
}

/* ── Create Group Screen ── */
.group-create-screen {
  position: fixed;
  left: 50%;
  top: calc(84px + env(safe-area-inset-top));
  bottom: calc(88px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: min(520px, 100%);
  background: #f5f7f8;
  z-index: 35;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.group-create-topbar {
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 11px 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(171,173,174,0.26);
}

.group-create-top-left {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.group-create-back-btn {
  width: 28px;
  height: 28px;
  border: none;
  border-radius: var(--radius-full);
  background: transparent;
  color: #313637;
  display: grid;
  place-items: center;
  cursor: pointer;
}

.group-create-back-btn .material-symbols-outlined {
  font-size: 1.3rem;
  font-variation-settings: 'FILL' 0, 'wght' 500, 'GRAD' 0, 'opsz' 22;
}

.group-create-topbar h2 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1.14rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #1f2325;
}

.group-create-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 14px 12px 18px;
}

.group-create-cover-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 10px;
  align-items: start;
}

.group-create-cover-btn {
  width: 86px;
  height: 86px;
  border: none;
  border-radius: 1rem;
  background: #d8dde0;
  overflow: hidden;
  position: relative;
  cursor: pointer;
}

.group-create-cover-preview {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.56;
}

.group-create-cover-btn .material-symbols-outlined {
  position: absolute;
  inset: 0;
  margin: auto;
  width: fit-content;
  height: fit-content;
  color: #1f2425;
  font-size: 1.25rem;
  background: rgba(255,255,255,0.5);
  border-radius: var(--radius-full);
  padding: 4px;
}

.group-create-cover-btn.has-image .group-create-cover-preview {
  opacity: 1;
}

.group-create-cover-btn.has-image .material-symbols-outlined {
  background: rgba(0,0,0,0.45);
  color: #ffffff;
}

.group-create-name-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.group-create-name-input {
  border: none;
  border-radius: 0;
  border-bottom: 1px solid rgba(171,173,174,0.38);
  background: transparent;
  padding: 6px 2px 8px;
  font-family: var(--font-headline);
  font-size: 1.05rem;
  font-weight: 700;
  color: #202425;
}

.group-create-name-input::placeholder {
  color: #bcc2c5;
  font-weight: 600;
}

.group-create-name-input:focus {
  box-shadow: none;
  border-bottom-color: #8cce0e;
}

.group-create-desc-input {
  border: none;
  background: transparent;
  border-radius: 0;
  padding: 0 2px;
  color: #7c8386;
  font-size: 0.85rem;
  line-height: 1.45;
  resize: none;
}

.group-create-desc-input::placeholder {
  color: #c3c8cb;
}

.group-create-desc-input:focus {
  box-shadow: none;
}

.group-create-section {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.group-create-inline-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.group-create-section-title {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.96rem;
  font-weight: 800;
  color: #4d5356;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.group-create-section-title span {
  width: 4px;
  height: 16px;
  border-radius: var(--radius-full);
  background: #5f9d00;
}

.group-create-selected-count {
  font-family: var(--font-headline);
  font-size: 0.74rem;
  font-weight: 800;
  color: #5e9800;
}

.group-visibility-option {
  position: relative;
  display: block;
}

.group-visibility-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.group-visibility-card {
  border-radius: 1rem;
  border: 1px solid rgba(171,173,174,0.35);
  background: #ffffff;
  padding: 12px 12px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
}

.group-visibility-option input:checked + .group-visibility-card {
  background: rgba(189, 242, 31, 0.14);
  border-color: rgba(62,102,0,0.45);
}

.group-visibility-icon {
  width: 34px;
  height: 34px;
  border-radius: var(--radius-full);
  background: #f0f3f4;
  display: grid;
  place-items: center;
  color: #3e6600;
}

.group-visibility-icon .material-symbols-outlined {
  font-size: 1.1rem;
  font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 20;
}

.group-visibility-main {
  display: flex;
  flex-direction: column;
}

.group-visibility-main strong {
  font-size: 0.96rem;
  font-weight: 800;
  color: #232829;
}

.group-visibility-main small {
  margin-top: 2px;
  font-size: 0.74rem;
  color: #666d70;
  line-height: 1.35;
}

.group-visibility-indicator {
  width: 16px;
  height: 16px;
  border-radius: var(--radius-full);
  border: 2px solid #d2d8da;
  position: relative;
}

.group-visibility-option input:checked + .group-visibility-card .group-visibility-indicator {
  border-color: #85c300;
}

.group-visibility-option input:checked + .group-visibility-card .group-visibility-indicator::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: inherit;
  background: #85c300;
}

.group-create-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.group-create-search-wrap .material-symbols-outlined {
  position: absolute;
  left: 10px;
  font-size: 1rem;
  color: #adb4b7;
}

.group-create-search-wrap input {
  border: none;
  border-radius: var(--radius-full);
  background: #edf0f2;
  padding: 10px 12px 10px 34px;
  font-size: 0.85rem;
  color: #232728;
}

.group-create-search-wrap input::placeholder {
  color: #b2b9bc;
}

.group-invite-selected-list {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  overflow-x: auto;
  padding: 1px 1px 1px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.group-invite-selected-list::-webkit-scrollbar {
  display: none;
}

.group-invite-chip {
  min-width: 52px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.group-invite-avatar-wrap {
  position: relative;
}

.group-invite-avatar {
  width: 52px;
  height: 52px;
  border-radius: var(--radius-full);
  object-fit: cover;
  border: 2px solid #8dcb0d;
  background: #dfe4e7;
}

.group-invite-remove {
  position: absolute;
  right: -4px;
  top: -3px;
  width: 16px;
  height: 16px;
  border: none;
  border-radius: var(--radius-full);
  background: #6aa500;
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
}

.group-invite-remove .material-symbols-outlined {
  font-size: 0.62rem;
  font-variation-settings: 'FILL' 1, 'wght' 700, 'GRAD' 0, 'opsz' 18;
}

.group-invite-name {
  font-size: 0.66rem;
  font-weight: 700;
  color: #3d4446;
  max-width: 56px;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.group-invite-add-btn {
  width: 60px;
  min-width: 60px;
  padding: 0;
  border: none;
  background: transparent;
  color: #aab1b4;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  cursor: pointer;
}

.group-invite-add-avatar {
  width: 52px;
  height: 52px;
  border-radius: 1rem;
  border: 2px dashed #c6cccf;
  background: transparent;
  display: grid;
  place-items: center;
}

.group-invite-add-btn .material-symbols-outlined {
  font-size: 1.2rem;
}

.group-invite-add-label {
  font-size: 0.66rem;
  font-weight: 700;
  color: #3d4446;
  text-align: center;
  line-height: 1.15;
}

.group-invite-add-btn.is-disabled {
  opacity: 0.45;
  cursor: default;
}

.group-create-map-card {
  height: 82px;
  border-radius: 1rem;
  background:
    linear-gradient(0deg, rgba(46,50,53,0.24), rgba(46,50,53,0.24)),
    repeating-linear-gradient(
      0deg,
      rgba(255,255,255,0.08) 0px,
      rgba(255,255,255,0.08) 1px,
      transparent 1px,
      transparent 15px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255,255,255,0.08) 0px,
      rgba(255,255,255,0.08) 1px,
      transparent 1px,
      transparent 15px
    ),
    linear-gradient(140deg, #979ea2, #7b8185);
  display: grid;
  place-items: center;
  overflow: hidden;
}

.group-create-map-btn {
  border: none;
  border-radius: var(--radius-full);
  background: rgba(255,255,255,0.95);
  color: #34393b;
  height: 34px;
  padding: 0 16px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-headline);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  cursor: pointer;
}

.group-create-map-btn .material-symbols-outlined {
  font-size: 0.92rem;
  font-variation-settings: 'FILL' 1, 'wght' 520, 'GRAD' 0, 'opsz' 18;
}

.group-create-submit-btn {
  margin-top: 4px;
  height: 52px;
  border: none;
  border-radius: 1rem;
  background: linear-gradient(145deg, var(--primary-fixed), var(--primary-fixed-dim));
  color: #152100;
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  box-shadow: 0 14px 28px -14px rgba(189, 242, 31, 0.9);
  cursor: pointer;
}

.group-create-submit-btn .material-symbols-outlined {
  font-size: 1rem;
  font-variation-settings: 'FILL' 1, 'wght' 700, 'GRAD' 0, 'opsz' 20;
}

.group-create-note {
  margin: 6px 0 0;
  text-align: center;
  font-size: 0.64rem;
  color: #909699;
}

.group-create-note span {
  text-decoration: underline;
  color: #767d80;
}

/* ── Join By Code Screen ── */
.groups-sheet-panel {
  width: 100%;
}

.groups-sheet.join-mode {
  padding-top: 10px;
}

.group-join-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 12px;
}

.group-join-back-btn {
  width: 32px;
  height: 32px;
  border: none;
  border-radius: var(--radius-full);
  background: #f1f3f4;
  color: #373d3f;
  display: grid;
  place-items: center;
  cursor: pointer;
  flex-shrink: 0;
}

.group-join-back-btn .material-symbols-outlined {
  font-size: 1.15rem;
  font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 20;
}

.group-join-head h2 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1.24rem;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: #252a2b;
}

.group-join-head p {
  margin: 4px 0 0;
  font-size: 0.76rem;
  line-height: 1.4;
  color: #7a8184;
}

.group-join-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.group-join-code-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 6px;
}

.group-join-code-input {
  width: 100%;
  height: 50px;
  border: none;
  border-radius: 0.88rem;
  background: #eef1f3;
  text-align: center;
  font-family: var(--font-headline);
  font-size: 1.15rem;
  font-weight: 900;
  color: #1f2526;
  text-transform: uppercase;
  caret-color: #4b7900;
}

.group-join-code-input::placeholder {
  color: #b0b7ba;
  font-weight: 800;
}

.group-join-code-input:focus {
  outline: none;
  background: #ffffff;
  box-shadow: inset 0 0 0 2px rgba(85,136,0,0.48), 0 0 0 4px rgba(189, 242, 31, 0.24);
}

.group-join-info-card {
  border-radius: 1rem;
  background: #f7f8f9;
  border: 1px solid rgba(171,173,174,0.32);
  padding: 10px 12px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 9px;
}

.group-join-info-card .material-symbols-outlined {
  margin-top: 1px;
  color: #0b627c;
  font-size: 1rem;
  font-variation-settings: 'FILL' 1, 'wght' 560, 'GRAD' 0, 'opsz' 20;
}

.group-join-info-card h4 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.98rem;
  font-weight: 800;
  color: #242a2b;
}

.group-join-info-card p {
  margin: 2px 0 0;
  font-size: 0.71rem;
  line-height: 1.4;
  color: #6b7275;
}

.group-join-submit-btn {
  margin-top: 2px;
  height: 52px;
  border: none;
  border-radius: 1rem;
  background: linear-gradient(145deg, var(--primary-fixed), var(--primary-fixed-dim));
  color: #152100;
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  box-shadow: 0 16px 28px -14px rgba(189, 242, 31, 0.82);
  cursor: pointer;
  transition: transform 0.14s ease, filter 0.14s ease;
}

.group-join-submit-btn .material-symbols-outlined {
  font-size: 1rem;
  font-variation-settings: 'FILL' 1, 'wght' 700, 'GRAD' 0, 'opsz' 20;
}

.group-join-submit-btn:active {
  transform: scale(0.985);
}

.group-join-submit-btn:disabled {
  background: #dbe0e3;
  color: #889094;
  box-shadow: none;
  cursor: not-allowed;
}

.group-join-help-btn {
  margin-top: 1px;
  border: none;
  background: transparent;
  padding: 4px 2px 0;
  text-align: center;
  font-family: var(--font-headline);
  font-size: 0.78rem;
  font-weight: 700;
  color: #707679;
  cursor: pointer;
}

.group-join-help-btn span {
  color: #4f8200;
}

/* ── Group Detail Screen ── */
.groups-hub-card.is-clickable {
  cursor: pointer;
  transition: transform 0.14s ease, box-shadow 0.14s ease;
}

.groups-hub-card.is-clickable:active {
  transform: scale(0.992);
  box-shadow: 0 10px 18px -18px rgba(44,47,48,0.55);
}

.group-detail-screen {
  position: fixed;
  left: 50%;
  top: calc(52px + env(safe-area-inset-top));
  bottom: calc(88px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: min(520px, 100%);
  background: #f4f6f7;
  z-index: 34;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.group-detail-shell {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0 0 20px;
}

.group-detail-tab-nav {
  position: sticky;
  top: 0;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding: 0;
  border-radius: 0;
  background: #ffffff;
  box-shadow: none;
  border-bottom: 1px solid rgba(24,33,35,0.08);
}

.group-detail-tab-btn {
  border: none;
  border-radius: 0;
  min-width: 0;
  min-height: 44px;
  padding: 8px 6px 9px;
  background: transparent;
  color: #7d8588;
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.01em;
  line-height: 1.05;
  cursor: pointer;
  transition: background 0.16s ease, color 0.16s ease;
  text-align: center;
  white-space: normal;
}

.group-detail-tab-btn.is-active {
  background: transparent;
  color: #436300;
  box-shadow: inset 0 -3px 0 #b5f000;
}

.group-detail-tab-panel {
  display: none;
  flex-direction: column;
  gap: 0;
}

.group-detail-tab-panel.is-active {
  display: flex;
}

.group-detail-tab-nav {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.group-open-matches-card {
  display: grid;
  gap: 14px;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.group-open-list-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.group-open-filter-row {
  display: flex;
  justify-content: flex-end;
  border-bottom: 1px solid rgba(24,33,35,0.08);
  padding-bottom: 8px;
}

.group-open-filter-btn {
  width: auto;
  min-width: 0;
  padding-inline: 12px;
  gap: 6px;
}

.group-open-feed-list {
  width: 100%;
}

.group-detail-ribbon,
.group-detail-hero {
  border-radius: 0;
  background: linear-gradient(165deg, #163900 0%, #0b2500 100%);
  box-shadow: none;
  padding: 12px 14px 16px;
  position: relative;
  overflow: hidden;
}

.group-detail-ribbon::before,
.group-detail-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.1;
  background-image:
    linear-gradient(rgba(255,255,255,0.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.12) 1px, transparent 1px);
  background-size: 38px 38px;
  pointer-events: none;
}

.group-detail-ribbon-head,
.group-detail-title-row {
  position: relative;
  z-index: 1;
}

.group-detail-ribbon-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.group-detail-ribbon-icon {
  width: 28px;
  height: 28px;
  border: none;
  background: transparent;
  color: rgba(255,255,255,0.72);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.group-detail-ribbon-icon .material-symbols-outlined {
  font-size: 1.05rem;
}

.group-detail-meta-row {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.group-detail-title-row {
  margin-top: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.group-detail-title-avatar {
  width: 40px;
  height: 40px;
  border-radius: 0.9rem;
  object-fit: cover;
  flex-shrink: 0;
  background: #98f200;
  box-shadow: none;
}

.group-detail-arena-tag {
  border-radius: 0;
  background: transparent;
  color: rgba(255,255,255,0.45);
  font-family: var(--font-headline);
  font-size: 0.56rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 0;
}

.group-detail-league-tag {
  font-size: 0.56rem;
  color: rgba(255,255,255,0.45);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
}

.group-detail-ribbon h2,
.group-detail-hero h2 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1.9rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 1.02;
  color: #ffffff;
  min-width: 0;
}

.group-detail-date-tabs {
  display: flex;
  align-items: stretch;
  gap: 0;
  overflow-x: auto;
  padding: 0 14px;
  background: #1f2526;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.group-detail-date-tabs::-webkit-scrollbar {
  display: none;
}

.group-detail-date-tab {
  position: relative;
  flex: 0 0 auto;
  min-height: 56px;
  border: none;
  background: transparent;
  color: rgba(255,255,255,0.44);
  padding: 0 16px;
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 700;
  white-space: nowrap;
}

.group-detail-date-tab.is-active {
  color: #ffffff;
}

.group-detail-date-tab.is-active::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 44px;
  height: 5px;
  border-radius: 999px;
  background: #b5f000;
  transform: translateX(-50%);
}

.group-detail-ribbon > p,
.group-detail-hero > p {
  margin: 7px 0 0;
  color: #6d7477;
  font-size: 0.74rem;
  line-height: 1.5;
}

.group-detail-elo-grid {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.group-detail-elo-card {
  border-radius: 1rem;
  background: #f8f9fa;
  border: 1px solid rgba(171,173,174,0.2);
  padding: 10px 8px;
  text-align: center;
}

.group-detail-elo-label {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.54rem;
  font-weight: 800;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: #95a0a4;
}

.group-detail-elo-card strong {
  display: block;
  margin-top: 5px;
  font-family: var(--font-headline);
  font-size: 2rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: #1b2021;
  line-height: 1;
}

.group-detail-elo-delta {
  margin-top: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 20px;
  border-radius: var(--radius-full);
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.02em;
  padding: 0 7px;
}

.group-detail-elo-delta.is-up {
  background: rgba(189, 242, 31, 0.28);
  color: #4a7700;
}

.group-detail-elo-delta.is-down {
  background: rgba(249,86,48,0.14);
  color: #b13d1f;
}

.group-detail-elo-delta.is-flat {
  background: #e8ecee;
  color: #6f777b;
}

.group-detail-card,
.group-detail-activity-wrap {
  border-radius: 1.25rem;
  background: #ffffff;
  box-shadow: 0 12px 24px -20px rgba(44,47,48,0.5);
  padding: 12px;
}

.group-performance-hub-card {
  background: linear-gradient(180deg, #edf4e6 0%, #e8f0df 100%);
}

.group-performance-hub-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.group-performance-hub-title {
  display: flex;
  align-items: center;
  gap: 8px;
}

.group-performance-hub-title .material-symbols-outlined {
  width: 28px;
  height: 28px;
  border-radius: 0.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #4a7b01;
  color: #f4f8f1;
  font-size: 1rem;
}

.group-performance-hub-title p {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.59rem;
  letter-spacing: 0.13em;
  font-weight: 900;
  color: #79866f;
}

.group-performance-hub-title strong {
  display: block;
  margin-top: 1px;
  font-family: var(--font-headline);
  font-size: 0.8rem;
  letter-spacing: 0.09em;
  font-weight: 900;
  color: #587200;
}

.group-performance-mode-switch {
  border-radius: 1rem;
  background: rgba(138,155,118,0.2);
  padding: 3px;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}

.group-performance-mode-btn {
  border: none;
  border-radius: 0.8rem;
  height: 26px;
  min-width: 42px;
  padding: 0 11px;
  background: transparent;
  color: #6e7865;
  font-family: var(--font-headline);
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.02em;
  cursor: pointer;
}

.group-performance-mode-btn.is-active {
  background: #f8fbf5;
  color: #3e4f2a;
  box-shadow: 0 2px 6px -3px rgba(44,47,48,0.35);
}

.group-performance-stats-row {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(132,152,113,0.25);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.group-performance-stat + .group-performance-stat {
  border-left: 1px solid rgba(132,152,113,0.25);
  padding-left: 12px;
}

.group-performance-stat small {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.56rem;
  letter-spacing: 0.12em;
  font-weight: 900;
  color: #8b957f;
  text-transform: uppercase;
}

.group-performance-stat strong {
  display: block;
  margin-top: 4px;
  font-family: var(--font-headline);
  font-size: 1.75rem;
  line-height: 1;
  letter-spacing: -0.04em;
  color: #1d2322;
  font-weight: 900;
}

.group-performance-stat:nth-child(2) strong {
  font-size: 1.2rem;
  letter-spacing: -0.03em;
}

.group-performance-elo-value {
  margin-top: 4px;
  display: flex;
  align-items: flex-end;
  gap: 7px;
}

.group-performance-elo-value .group-detail-elo-delta {
  margin-top: 0;
  margin-bottom: 2px;
}

.group-performance-trend-head {
  margin-top: 13px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.group-performance-trend-head small {
  font-family: var(--font-headline);
  font-size: 0.59rem;
  font-weight: 900;
  letter-spacing: 0.13em;
  color: #8b957f;
  text-transform: uppercase;
}

.group-performance-trend-head span {
  font-size: 0.7rem;
  color: #6f8e3f;
  font-weight: 800;
}

.group-performance-chart-wrap {
  position: relative;
  margin-top: 4px;
  border-radius: 1rem;
  min-height: 104px;
  background: rgba(255,255,255,0.28);
  padding: 8px 6px 0;
}

.group-performance-chart-wrap svg {
  display: block;
  width: 100%;
  height: 96px;
}

.group-performance-trend-area {
  fill: rgba(122,168,46,0.22);
}

.group-performance-trend-path {
  fill: none;
  stroke: #3f7000;
  stroke-width: 4.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.group-performance-trend-dot {
  fill: #3f7000;
  stroke: rgba(242,247,237,0.85);
  stroke-width: 3;
}

.group-performance-share-btn {
  position: absolute;
  right: 8px;
  bottom: 8px;
  border: none;
  width: 34px;
  height: 34px;
  border-radius: var(--radius-full);
  background: #f7faf3;
  box-shadow: 0 8px 16px -10px rgba(44,47,48,0.45);
  color: #54761b;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.group-performance-share-btn .material-symbols-outlined {
  font-size: 1.1rem;
}

.profile-performance-hub-card {
  background: linear-gradient(180deg, #eef7e8 0%, #e8f0df 100%);
}

.profile-performance-hub-head {
  align-items: flex-start;
}

.profile-performance-scope-switch {
  flex-shrink: 0;
}

.profile-performance-pane {
  display: block;
}

.profile-performance-pane[hidden] {
  display: none;
}

.profile-performance-trend-tag {
  position: absolute;
  right: 10px;
  bottom: 10px;
  border-radius: var(--radius-full);
  min-height: 30px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(247,250,243,0.92);
  color: #587200;
  box-shadow: 0 8px 16px -12px rgba(44,47,48,0.4);
  font-family: var(--font-headline);
  font-size: 0.64rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.profile-performance-trend-tag .material-symbols-outlined {
  font-size: 1rem;
}

.profile-group-performance-intro {
  margin-top: 12px;
  border-radius: 1.1rem;
  border: 1px solid rgba(132,152,113,0.18);
  background: rgba(255,255,255,0.52);
  padding: 12px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: flex-start;
}

.profile-group-performance-intro .material-symbols-outlined {
  width: 34px;
  height: 34px;
  border-radius: 0.9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(189, 242, 31, 0.2);
  color: #4f7900;
  font-size: 1rem;
}

.profile-group-performance-intro strong {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.82rem;
  font-weight: 900;
  color: #384428;
}

.profile-group-performance-intro p {
  margin: 4px 0 0;
  font-size: 0.72rem;
  line-height: 1.5;
  color: #6c7560;
}

.profile-group-route-list {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.profile-group-route-card {
  border: 1px solid rgba(132,152,113,0.2);
  border-radius: 1.15rem;
  background: rgba(255,255,255,0.72);
  padding: 11px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  text-align: left;
  cursor: pointer;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.profile-group-route-card:hover,
.profile-group-route-card:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(126,160,63,0.42);
  box-shadow: 0 14px 24px -20px rgba(58,77,24,0.44);
  outline: none;
}

.profile-group-route-avatar {
  width: 44px;
  height: 44px;
  border-radius: 1rem;
  object-fit: cover;
  border: 2px solid rgba(189, 242, 31, 0.28);
}

.profile-group-route-meta {
  min-width: 0;
}

.profile-group-route-meta small {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.54rem;
  letter-spacing: 0.14em;
  font-weight: 900;
  text-transform: uppercase;
  color: #8a957b;
}

.profile-group-route-meta strong {
  display: block;
  margin-top: 4px;
  font-family: var(--font-headline);
  font-size: 0.96rem;
  font-weight: 900;
  color: #1f2424;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-group-route-meta p {
  margin: 4px 0 0;
  font-size: 0.7rem;
  color: #6f7972;
  line-height: 1.45;
}

.profile-group-route-side {
  display: flex;
  align-items: center;
  gap: 0;
}

.profile-group-route-pill {
  border-radius: var(--radius-full);
  padding: 0 10px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  background: rgba(189, 242, 31, 0.22);
  color: #4f7600;
  font-family: var(--font-headline);
  font-size: 0.56rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.profile-group-route-arrow {
  font-size: 1.1rem;
  color: #698234;
}

.profile-group-route-empty {
  padding: 18px 14px;
}

.group-performance-matches-card .group-detail-card-head {
  margin-bottom: 10px;
}

.group-performance-match-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.group-performance-match-side {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.group-performance-match-side.is-right {
  align-items: flex-end;
  text-align: right;
}

.group-performance-match-player {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.group-performance-match-player.is-partner {
  opacity: 0.82;
}

.group-performance-match-player span {
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 800;
  color: #2c3131;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.group-performance-match-item {
  border-radius: 1.05rem;
  background: #f9fbfc;
  border: 1px solid rgba(171,173,174,0.22);
  padding: 10px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
}

.group-performance-match-avatar {
  width: 34px;
  height: 34px;
  border-radius: var(--radius-full);
  object-fit: cover;
  border: 2px solid rgba(189, 242, 31, 0.3);
}

.group-performance-match-meta {
  min-width: 0;
}

.group-performance-match-meta p {
  margin: 0;
  font-size: 0.7rem;
  font-weight: 800;
  color: #7f888a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.group-performance-match-meta strong {
  display: block;
  margin-top: 4px;
  font-family: var(--font-headline);
  font-size: 1.45rem;
  letter-spacing: -0.04em;
  font-weight: 900;
  color: #1d2322;
}

.group-performance-match-center {
  min-width: 0;
  text-align: center;
}

.group-performance-match-center strong {
  display: block;
  margin-top: 3px;
  font-family: var(--font-headline);
  font-size: 1.28rem;
  line-height: 1;
  letter-spacing: -0.04em;
  color: #1d2322;
}

.group-performance-match-versus {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.56rem;
  font-weight: 900;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #8b957f;
}

.group-performance-match-meta-row {
  margin-top: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
}

.group-performance-match-meta-row small {
  font-size: 0.62rem;
  color: #98a0a4;
  font-weight: 700;
}

.group-performance-match-result {
  border-radius: var(--radius-full);
  padding: 0 8px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  font-family: var(--font-headline);
  font-size: 0.56rem;
  letter-spacing: 0.08em;
  font-weight: 900;
  margin-right: 7px;
}

.group-performance-match-result.is-win {
  background: rgba(189, 242, 31, 0.34);
  color: #3f6700;
}

.group-performance-match-result.is-loss {
  background: rgba(249,86,48,0.16);
  color: #a64425;
}

.group-performance-match-right {
  text-align: right;
}

.group-performance-match-right small {
  display: block;
  margin-top: 5px;
  font-size: 0.62rem;
  color: #98a0a4;
  font-weight: 700;
}

.group-performance-empty {
  border-radius: 0.95rem;
  border: 1px dashed rgba(145,155,160,0.55);
  background: #f8fafb;
  color: #737c80;
  text-align: center;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 14px 10px;
}

@media (max-width: 420px) {
  .profile-performance-hub-head {
    flex-direction: column;
    align-items: stretch;
  }

  .profile-performance-scope-switch {
    width: 100%;
    justify-content: stretch;
  }

  .profile-performance-scope-switch .group-performance-mode-btn {
    flex: 1 1 0;
  }

  .profile-group-route-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .profile-group-route-side {
    grid-column: 1 / -1;
    justify-content: space-between;
    padding-left: 55px;
  }
}

.group-detail-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.group-detail-card-head h4 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1.08rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #1e2324;
}

.group-detail-link-btn {
  border: none;
  background: transparent;
  color: #4f8200;
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}

.group-ranking-card {
  background: transparent;
  box-shadow: none;
  padding: 0;
}

.group-ranking-head {
  padding: 0 2px 4px;
}

.group-ranking-filter-btn {
  border: 1px solid #dfe4e7;
  background: #f8fafb;
  border-radius: var(--radius-full);
  height: 34px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #3f4648;
  font-family: var(--font-headline);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  cursor: pointer;
}

.group-ranking-filter-btn .material-symbols-outlined {
  font-size: 1rem;
  color: #6f777a;
}

.group-detail-ranking-list {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.group-detail-rank-item {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  border-radius: 1.1rem;
  background: #ffffff;
  border: 1px solid rgba(171,173,174,0.24);
  border-left: 4px solid #d8dde0;
  box-shadow: 0 10px 18px -20px rgba(44,47,48,0.55);
  padding: 11px 10px;
}

.group-detail-rank-item.is-rank-1 {
  border-left-color: #f2c300;
}

.group-detail-rank-item.is-rank-2 {
  border-left-color: #a5aaad;
}

.group-detail-rank-item.is-rank-3 {
  border-left-color: #d1883f;
}

.group-detail-rank-item.is-self {
  background: linear-gradient(135deg, #3a6900 0%, #6cab00 100%);
  border-color: rgba(77,117,18,0.45);
  border-left-color: #d8ff95;
  box-shadow: 0 18px 28px -18px rgba(53,99,0,0.58);
}

.group-detail-rank-item.is-self .group-detail-rank-no,
.group-detail-rank-item.is-self .group-detail-rank-meta strong,
.group-detail-rank-item.is-self .group-detail-rank-score strong {
  color: #f7ffe9;
}

.group-detail-rank-item.is-self .group-detail-rank-tier {
  background: rgba(245,255,230,0.18);
  color: #f0ffd0;
}

.group-detail-rank-item.is-self .group-detail-rank-wr,
.group-detail-rank-item.is-self .group-detail-rank-score small {
  color: rgba(244,255,234,0.8);
}

.group-detail-rank-no {
  width: 30px;
  font-family: var(--font-headline);
  font-size: 1.9rem;
  font-weight: 900;
  font-style: italic;
  letter-spacing: -0.05em;
  color: #6f777a;
  line-height: 1;
}

.group-detail-rank-avatar {
  width: 42px;
  height: 42px;
  border-radius: var(--radius-full);
  object-fit: cover;
  border: 2px solid #f2f5f6;
}

.group-detail-rank-meta {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.group-detail-rank-meta strong {
  font-size: 0.96rem;
  font-weight: 800;
  color: #202526;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.group-detail-rank-subline {
  margin-top: 3px;
  display: flex;
  align-items: center;
  gap: 7px;
}

.group-detail-rank-tier {
  display: inline-flex;
  align-items: center;
  height: 15px;
  border-radius: var(--radius-full);
  background: rgba(189, 242, 31, 0.28);
  padding: 0 6px;
  font-size: 0.5rem;
  letter-spacing: 0.07em;
  color: #4f750f;
  font-family: var(--font-headline);
  font-weight: 900;
}

.group-detail-rank-wr {
  font-size: 0.56rem;
  color: #8a9296;
  letter-spacing: 0.03em;
  font-weight: 800;
}

.group-detail-rank-score {
  text-align: right;
}

.group-detail-rank-score strong {
  display: block;
  font-family: var(--font-headline);
  font-size: 2rem;
  font-weight: 900;
  letter-spacing: -0.05em;
  line-height: 1;
  color: #232829;
}

.group-detail-rank-score small {
  margin-top: 4px;
  display: block;
  font-size: 0.54rem;
  letter-spacing: 0.1em;
  color: #9ba4a7;
  font-weight: 900;
  text-transform: uppercase;
}

.group-ranking-you-card {
  position: sticky;
  top: 40px;
  z-index: 2;
  margin: 0 0 10px;
  border-radius: 1.35rem;
  background: linear-gradient(135deg, #356300 0%, #4a8303 100%);
  box-shadow: 0 18px 28px -16px rgba(53,99,0,0.58);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 11px 12px;
  transition: opacity 160ms ease, transform 160ms ease;
}

.group-ranking-you-card.is-hidden {
  display: none;
}

.group-ranking-you-card.is-actionable {
  cursor: pointer;
}

.group-ranking-you-left {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.group-ranking-you-rank {
  font-family: var(--font-headline);
  font-size: 2rem;
  font-weight: 900;
  letter-spacing: -0.05em;
  line-height: 1;
  color: #edffd8;
}

.group-ranking-you-avatar {
  width: 38px;
  height: 38px;
  border-radius: var(--radius-full);
  border: 2px solid rgba(247,255,235,0.42);
  object-fit: cover;
}

.group-ranking-you-left p {
  margin: 0;
  color: #f4ffea;
  font-family: var(--font-headline);
  font-size: 1.05rem;
  font-weight: 900;
  white-space: nowrap;
}

.group-ranking-you-left small {
  display: block;
  margin-top: 1px;
  color: rgba(237,255,216,0.78);
  font-family: var(--font-headline);
  font-size: 0.56rem;
  letter-spacing: 0.08em;
  font-weight: 900;
  text-transform: uppercase;
}

.group-ranking-you-right {
  text-align: right;
}

.group-ranking-you-right strong {
  display: block;
  font-family: var(--font-headline);
  font-size: 2.2rem;
  line-height: 1;
  letter-spacing: -0.05em;
  color: #ffffff;
}

.group-ranking-you-right small {
  display: block;
  margin-top: 3px;
  font-family: var(--font-headline);
  font-size: 0.58rem;
  letter-spacing: 0.1em;
  color: rgba(237,255,216,0.8);
  font-weight: 900;
  text-transform: uppercase;
}

.group-detail-upcoming-card {
  position: relative;
  overflow: hidden;
  border-radius: 1.25rem;
  min-height: 120px;
  padding: 13px 12px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px;
}

.group-detail-upcoming-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 10%, rgba(173,227,255,0.5), transparent 50%),
    linear-gradient(160deg, rgba(10,31,48,0.78), rgba(10,14,17,0.95)),
    repeating-linear-gradient(
      90deg,
      rgba(255,255,255,0.07) 0px,
      rgba(255,255,255,0.07) 1px,
      transparent 1px,
      transparent 18px
    );
}

.group-detail-upcoming-content,
.group-detail-upcoming-btn {
  position: relative;
  z-index: 1;
}

.group-detail-upcoming-content p {
  margin: 0;
  color: #b7f055;
  font-size: 0.56rem;
  font-family: var(--font-headline);
  font-weight: 900;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.group-detail-upcoming-content h4 {
  margin: 6px 0 0;
  color: #ffffff;
  font-family: var(--font-headline);
  font-size: 1.16rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.13;
}

.group-detail-upcoming-content span {
  margin-top: 6px;
  display: inline-block;
  font-size: 0.63rem;
  color: rgba(238,244,248,0.82);
  font-weight: 600;
}

.group-detail-upcoming-btn {
  border: none;
  border-radius: var(--radius-full);
  background: rgba(255,255,255,0.95);
  color: #2e3436;
  height: 30px;
  padding: 0 12px;
  font-family: var(--font-headline);
  font-size: 0.64rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}

.group-tournament-coming-soon-card {
  border-radius: 1.1rem;
  border: 1px dashed rgba(189, 242, 31, 0.28);
  background: rgba(189, 242, 31, 0.04);
  padding: 16px 18px;
}

.group-tournament-coming-soon-inner {
  display: flex;
  align-items: center;
  gap: 14px;
}

.group-tournament-coming-soon-icon {
  font-size: 1.6rem;
  line-height: 1;
  flex-shrink: 0;
}

.group-tournament-coming-soon-card strong {
  display: block;
  font-size: 0.88rem;
  font-weight: 700;
  color: #1a2a00;
  font-family: var(--font-headline);
}

.group-tournament-coming-soon-card p {
  margin: 2px 0 0;
  font-size: 0.75rem;
  color: #6a8040;
}

.group-detail-report-list {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.group-detail-report-item {
  border-radius: 0.95rem;
  border: 1px solid rgba(171,173,174,0.24);
  background: #f8fafb;
  padding: 10px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

.group-detail-report-meta {
  min-width: 0;
}

.group-detail-report-meta strong {
  display: block;
  font-size: 0.74rem;
  color: #202526;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.group-detail-report-meta small {
  display: block;
  margin-top: 2px;
  font-size: 0.6rem;
  color: #7a8286;
  font-weight: 700;
}

.group-detail-report-score {
  text-align: right;
}

.group-detail-report-score strong {
  display: block;
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 900;
  color: #1e2425;
}

.group-detail-report-item.has-set-list .group-detail-report-score strong {
  font-size: 0.76rem;
  line-height: 1.25;
  letter-spacing: 0.01em;
  max-width: 120px;
  margin-left: auto;
}

.group-detail-report-score span {
  display: block;
  margin-top: 2px;
  font-size: 0.55rem;
  color: #5f9900;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.group-detail-report-empty {
  border-radius: 0.95rem;
  border: 1px dashed rgba(145,155,160,0.55);
  background: #f8fafb;
  color: #737c80;
  text-align: center;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 14px 10px;
}

.group-detail-activity-wrap.is-results-only {
  background: transparent;
  box-shadow: none;
  padding: 0;
}

.group-detail-activity-list {
  margin-top: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.group-activity-result-card {
  border-radius: 1.1rem;
  background: #ffffff;
  border: 1px solid rgba(171,173,174,0.22);
  box-shadow: 0 12px 22px -20px rgba(44,47,48,0.5);
  overflow: hidden;
}

.group-activity-result-body {
  padding: 12px 12px 10px;
}

.group-activity-single-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

.group-activity-side-player {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.group-activity-side-player.is-right {
  flex-direction: row-reverse;
  text-align: right;
}

.group-activity-avatar-lg {
  width: 46px;
  height: 46px;
  border-radius: var(--radius-full);
  object-fit: cover;
  border: 2px solid rgba(189, 242, 31, 0.42);
}

.group-activity-side-player.is-loser .group-activity-avatar-lg,
.group-activity-team-player.is-loser .group-activity-avatar-sm {
  border-color: #c0392b;
  opacity: 0.72;
}

.group-activity-side-player.is-loser strong,
.group-activity-team-player.is-loser strong {
  color: #a03020;
}

.group-activity-side-player.is-loser small,
.group-activity-team-player.is-loser small {
  color: #c07060;
}

.group-activity-side-player strong {
  display: block;
  font-size: 0.96rem;
  color: #202526;
  font-weight: 900;
}

.group-activity-side-player small {
  display: block;
  margin-top: 1px;
  font-size: 0.58rem;
  color: #7e8689;
  letter-spacing: 0.02em;
  font-weight: 700;
}

.group-activity-center-score {
  text-align: center;
  min-width: 66px;
}

.group-activity-center-score strong {
  display: block;
  font-family: var(--font-headline);
  font-size: 2.2rem;
  font-weight: 900;
  letter-spacing: -0.06em;
  color: #1d2324;
  line-height: 1;
}

.group-activity-result-card.has-set-list .group-activity-center-score {
  min-width: 112px;
}

.group-activity-result-card.has-set-list .group-activity-center-score strong {
  font-size: 0.94rem;
  line-height: 1.28;
  letter-spacing: 0.01em;
}

.group-activity-center-score small {
  display: block;
  margin-top: 1px;
  font-size: 0.56rem;
  color: #9ba3a7;
  letter-spacing: 0.14em;
  font-weight: 900;
}

.group-activity-double-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

.group-activity-team-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.group-activity-team-col.is-right .group-activity-team-player {
  flex-direction: row-reverse;
  text-align: right;
}

.group-activity-team-player {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.group-activity-avatar-sm {
  width: 30px;
  height: 30px;
  border-radius: var(--radius-full);
  border: 2px solid rgba(189, 242, 31, 0.42);
  object-fit: cover;
}

.group-activity-team-player strong {
  display: block;
  font-size: 0.73rem;
  color: #202526;
  font-weight: 900;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.group-activity-team-player small {
  display: block;
  margin-top: 1px;
  font-size: 0.52rem;
  color: #7f878b;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.group-detail-activity-fab {
  position: fixed;
  right: calc(50% - min(520px, calc(100% - 20px)) / 2 + 6px);
  bottom: calc(72px + env(safe-area-inset-bottom));
  width: 52px;
  height: 52px;
  border-radius: var(--radius-full);
  border: none;
  background: linear-gradient(150deg, #5f9800, #3f7000);
  color: #f6ffe8;
  display: grid;
  place-items: center;
  box-shadow: 0 16px 28px -10px rgba(63,112,0,0.6);
  cursor: pointer;
  transition: transform 0.14s ease, filter 0.14s ease;
  z-index: 58;
}

.group-detail-activity-fab:active {
  transform: scale(0.95);
  filter: brightness(0.98);
}

.group-detail-activity-fab .material-symbols-outlined {
  font-size: 1.5rem;
  font-variation-settings: 'FILL' 1, 'wght' 600, 'GRAD' 0, 'opsz' 24;
}

/* ── Notice ── */
.notice {
  margin-top: 12px;
  border-radius: var(--radius-md);
  background: rgba(189, 242, 31, 0.14);
  color: var(--win-text);
  padding: 10px 14px;
  font-size: 0.8rem;
  font-weight: 500;
  line-height: 1.45;
}

/* ── Result Share Card ── */
.result-share {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.result-capture-card {
  border-radius: var(--radius-lg);
  padding: 20px 16px;
  text-align: center;
  color: #f6ffd8;
  background: linear-gradient(150deg, #1a2e00, #3e6600 45%, #1a2e00 100%);
  box-shadow: 0 16px 32px -12px rgba(62,102,0,0.4);
  position: relative;
  overflow: hidden;
}

.result-capture-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(189, 242, 31, 0.2), transparent 55%);
  pointer-events: none;
}

.capture-overline {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  opacity: 0.75;
}

.capture-grid {
  margin-top: 10px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 8px;
}

.capture-player {
  font-family: var(--font-headline);
  font-weight: 700;
  font-size: 0.88rem;
  line-height: 1.25;
}

.capture-vs {
  font-family: var(--font-headline);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: rgba(189, 242, 31, 0.7);
}

.capture-score {
  margin-top: 12px;
  font-family: var(--font-headline);
  font-size: 2rem;
  font-weight: 800;
  color: var(--primary-fixed);
  letter-spacing: -0.04em;
  text-shadow: 0 2px 14px rgba(189, 242, 31, 0.4);
}

.capture-sub {
  margin: 2px 0 0;
  font-size: 0.72rem;
  opacity: 0.85;
}

.capture-meta {
  margin: 10px 0 0;
  font-size: 0.62rem;
  opacity: 0.55;
  letter-spacing: 0.06em;
}

/* ── History / Today Matches ── */
.history-item {
  background: var(--surface-container-low);
  border-radius: var(--radius-lg);
  padding: 12px 14px;
  border: none;
  box-shadow: none;
}

.history-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 0.68rem;
  color: var(--on-surface-variant);
  margin-bottom: 10px;
  font-weight: 500;
}

.history-grid-mini {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 8px;
  align-items: center;
}

.history-player {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.history-player strong {
  font-family: var(--font-headline);
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--on-surface);
}

.history-badge {
  display: inline-block;
  width: fit-content;
  border-radius: var(--radius-full);
  padding: 3px 9px;
  font-family: var(--font-headline);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border: none;
}

.history-badge.win  { background: var(--win-bg);  color: var(--win-text); }
.history-badge.loss { background: var(--loss-bg); color: var(--loss-text); }
.history-badge.neutral { background: var(--surface-container); color: var(--on-surface-variant); }

.history-score {
  font-family: var(--font-headline);
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--on-surface);
  text-align: center;
  letter-spacing: -0.02em;
}

.history-score-note {
  margin: 8px 0 0;
  font-size: 0.7rem;
  color: var(--on-surface-variant);
}

/* ── Modal ── */
.modal-shell {
  position: fixed;
  inset: 0;
  z-index: 65;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.modal-backdrop {
  position: absolute;
  inset: 0;
  border: none;
  background: rgba(12,15,16,0.45);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  cursor: pointer;
}

.modal-card {
  position: relative;
  z-index: 1;
  width: min(380px, 100%);
  border-radius: var(--radius-xl);
  background: var(--surface-container-lowest);
  box-shadow: 0 24px 48px -12px rgba(44,47,48,0.28);
  padding: 20px;
  border: none;
}

.modal-card.warning {
  background: #fff9ea;
}

.modal-card h3 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--on-surface);
  letter-spacing: -0.02em;
}

.modal-details {
  margin-top: 12px;
  border-radius: var(--radius-md);
  background: var(--surface-container-low);
  padding: 12px 14px;
}

.modal-details p {
  margin: 0 0 7px;
  font-size: 0.8rem;
  color: var(--on-surface);
  line-height: 1.65;
}

.modal-details p:last-child { margin-bottom: 0; }

.modal-caption {
  margin: 10px 0 0;
  font-size: 0.72rem;
  color: var(--on-surface-variant);
}

.modal-actions {
  margin-top: 14px;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

/* ── Profile Tab ── */
.member-details { padding: 20px; }

.identity-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.identity-grid div {
  background: var(--surface-container-low);
  border-radius: var(--radius-md);
  padding: 12px;
  border: none;
}

.identity-grid span {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  margin-bottom: 4px;
}

.identity-grid strong {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--on-surface);
  word-break: break-all;
}

.connection-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.connection-columns h4 {
  margin: 0 0 10px;
  font-family: var(--font-headline);
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--on-surface-variant);
}

/* Profile View Switch */
.profile-switch-card { padding: 8px; }

.profile-switch {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 5px;
  background: var(--surface-container-low);
  border-radius: var(--radius-lg);
  padding: 6px;
  border: none;
}

.profile-view-btn {
  border: none;
  border-radius: var(--radius-md);
  min-height: 46px;
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--on-surface-variant);
  background: transparent;
  cursor: pointer;
  transition: all 0.18s ease;
  padding: 0 8px;
  line-height: 1.2;
  white-space: normal;
  text-align: center;
}

.profile-view-btn.is-active {
  color: var(--on-primary-fixed);
  background: linear-gradient(135deg, var(--primary-fixed), var(--primary-fixed-dim));
  box-shadow: 0 8px 20px -10px rgba(189, 242, 31, 0.7);
}

.profile-view {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.profile-static-soon-view {
  padding-inline: 0;
}

.profile-static-soon-card {
  position: relative;
  overflow: visible;
  border: 1px dashed rgba(189, 242, 31, 0.28);
  border-radius: 1.1rem;
  background: rgba(189, 242, 31, 0.04);
  box-shadow: none;
  min-height: 0;
  padding: 16px 18px;
}

.profile-static-soon-card::before {
  content: none;
}

.profile-static-soon-title {
  margin: 0;
}

.profile-settings-view {
  gap: 8px;
  padding-inline: 14px;
}

#tab-profile .profile-settings-card {
  padding: 2px 0 !important;
}

.profile-settings-list {
  display: flex;
  flex-direction: column;
}

.profile-settings-row {
  width: 100%;
  min-height: 44px;
  border: 0;
  background: transparent;
  padding: 0 12px;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) 16px;
  align-items: center;
  gap: 9px;
  text-align: left;
  color: var(--on-surface);
  cursor: pointer;
}

.profile-settings-row + .profile-settings-row {
  border-top: 1px solid rgba(24,33,35,0.09);
}

.profile-settings-row-icon {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  color: var(--on-surface-variant);
}

.profile-settings-row-icon .material-symbols-outlined {
  font-size: 1.08rem;
}

.profile-settings-row-label {
  min-width: 0;
  font-family: var(--font-body);
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: 0;
  color: var(--on-surface);
}

.profile-settings-row-chevron {
  color: var(--on-surface-variant);
  font-size: 1rem;
}

#tab-profile .profile-settings-logout-card {
  padding: 12px !important;
}

.profile-settings-logout-btn {
  width: 100%;
  min-height: 44px;
  border: 1px solid rgba(24,33,35,0.08);
  border-radius: 12px;
  background: #fff;
  color: var(--on-surface);
  font-family: var(--font-headline);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0;
  cursor: pointer;
}

.profile-settings-detail-card {
  padding: 14px !important;
}

.profile-settings-detail-head {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

.profile-settings-back-btn {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(24,33,35,0.08);
  border-radius: 12px;
  background: #fff;
  color: var(--on-surface);
  display: grid;
  place-items: center;
}

.profile-settings-back-btn .material-symbols-outlined {
  font-size: 1.1rem;
}

.profile-settings-detail-head h3,
.profile-settings-detail-head p {
  margin: 0;
}

.profile-settings-detail-head h3 {
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 700;
}

.profile-settings-detail-head p {
  margin-top: 2px;
  color: var(--on-surface-variant);
  font-size: 0.78rem;
  line-height: 1.35;
}

.profile-settings-detail-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.profile-edit-line-preview {
  margin-bottom: 2px;
}

.profile-edit-identity-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.profile-edit-avatar-control {
  position: relative;
  display: block;
  width: 74px;
  height: 74px;
  margin: 0;
  cursor: pointer;
}

.profile-edit-avatar {
  width: 74px;
  height: 74px;
  border-radius: 18px;
  object-fit: cover;
  background: var(--surface-container-low);
  box-shadow: 0 10px 22px -16px rgba(20, 24, 26, 0.4);
}

.profile-edit-avatar-action {
  position: absolute;
  right: -4px;
  bottom: -4px;
  display: grid;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  min-height: 30px;
  padding: 0;
  border-radius: 999px;
  border: 2px solid #fff;
  background: #111516;
  color: #fff;
  box-shadow: 0 8px 18px -12px rgba(17, 21, 22, 0.55);
}

.profile-edit-avatar-action .material-symbols-outlined {
  font-size: 17px;
  line-height: 1;
}

.profile-edit-avatar-control input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.profile-edit-identity-main {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 6px;
}

.profile-edit-name-field {
  margin: 0;
}

.profile-edit-line-note {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  margin: 0;
  color: var(--on-surface-variant);
  font-size: 0.76rem;
  line-height: 1.25;
}

.profile-edit-line-note span {
  color: var(--primary-fixed-dim);
  font-weight: 700;
}

.profile-edit-line-note strong {
  min-width: 0;
  overflow: hidden;
  color: var(--on-surface);
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-edit-identity-card.is-loading {
  opacity: 0.72;
  pointer-events: none;
}

.profile-home-court-full-row {
  width: 100%;
}

.profile-home-court-full-row .court-picker-combobox {
  width: 100%;
}

.profile-edit-form {
  gap: 9px;
}

.profile-edit-form .two-cols {
  gap: 9px;
}

.profile-edit-form label {
  gap: 4px;
}

.profile-edit-form label > span {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.profile-edit-form input,
.profile-edit-form select,
.profile-edit-form textarea {
  min-height: 40px;
  padding: 8px 11px;
  border-radius: 12px;
  font-size: 0.86rem;
  font-weight: 500;
  line-height: 1.25;
}

.profile-edit-form textarea {
  min-height: 72px;
  padding-top: 10px;
  line-height: 1.4;
}

.profile-settings-primary-btn,
.profile-settings-secondary-btn {
  min-height: 44px;
  border-radius: 12px;
  font-size: 0.9rem;
}

.profile-settings-option-stack,
.profile-info-stack {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.profile-choice-row,
.profile-toggle-row,
.profile-info-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 50px;
  padding: 10px 12px;
  border: 1px solid rgba(24,33,35,0.08);
  border-radius: 14px;
  background: #fff;
}

.profile-toggle-row {
  grid-template-columns: minmax(0, 1fr) auto;
}

.profile-choice-row span,
.profile-toggle-row span,
.profile-info-card div {
  min-width: 0;
}

.profile-choice-row strong,
.profile-toggle-row strong,
.profile-info-card strong {
  display: block;
  color: var(--on-surface);
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.2;
}

.profile-choice-row small,
.profile-toggle-row small,
.profile-info-card p {
  display: block;
  margin: 3px 0 0;
  color: var(--on-surface-variant);
  font-size: 0.76rem;
  line-height: 1.35;
}

.profile-toggle-row input[type="checkbox"] {
  width: 42px;
  height: 24px;
  appearance: none;
  border-radius: 999px;
  background: var(--surface-container);
  border: 1px solid rgba(24,33,35,0.1);
  position: relative;
}

.profile-toggle-row input[type="checkbox"]::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 5px rgba(24,33,35,0.18);
  transition: transform 160ms ease;
}

.profile-toggle-row input[type="checkbox"]:checked {
  background: var(--primary-fixed);
}

.profile-toggle-row input[type="checkbox"]:checked::after {
  transform: translateX(18px);
}

.profile-info-card {
  align-items: start;
}

.profile-info-card > .material-symbols-outlined {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--green-tint);
  color: var(--primary);
  font-size: 1.08rem;
}

.profile-info-card.is-brand > .material-symbols-outlined {
  background: var(--primary-fixed);
  color: var(--on-primary-fixed);
}

.profile-support-code,
.profile-about-list {
  margin: 0;
  padding: 12px;
  border: 1px solid rgba(24,33,35,0.08);
  border-radius: 14px;
  background: var(--surface-container-low);
  color: var(--on-surface-variant);
  font-size: 0.78rem;
  line-height: 1.45;
}

.profile-about-list div {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(24,33,35,0.08);
}

.profile-about-list div:last-child {
  border-bottom: 0;
}

.profile-about-list dt {
  color: var(--on-surface-variant);
  font-weight: 600;
}

.profile-about-list dd {
  margin: 0;
  color: var(--on-surface);
  font-weight: 700;
}

.home-switch-card {
  padding: 0;
  margin-top: 2px;
  background: transparent;
  box-shadow: none;
}

.home-switch-card .profile-switch {
  border-radius: 1.4rem;
  background: linear-gradient(180deg, rgba(234,238,240,0.96), rgba(225,230,233,0.92));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.65);
}

.home-switch-card .profile-view-btn {
  min-height: 48px;
  border-radius: 1rem;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.01em;
}

.community-ref-tab-card {
  padding: 0;
  margin-top: 6px;
  background: transparent;
  box-shadow: none;
}

.community-ref-tab-card .community-ref-tab-nav {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-radius: var(--radius-full);
  background: #e8eaec;
  padding: 6px;
  gap: 7px;
}

.community-ref-tab-card .profile-view-btn {
  min-height: 48px;
  border-radius: var(--radius-full);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 4px 8px 8px;
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: #55595c;
}

.community-ref-tab-card .profile-view-btn .material-symbols-outlined {
  font-size: 1.2rem;
  font-variation-settings: 'FILL' 0, 'wght' 420, 'GRAD' 0, 'opsz' 24;
}

.community-ref-tab-card .profile-view-btn small {
  font-size: 0.72rem;
  line-height: 1.1;
}

.community-ref-tab-card .profile-view-btn.is-active {
  color: #252829;
  background: #ffffff;
  box-shadow: 0 8px 20px -16px rgba(44,47,48,0.5);
}

.home-view {
  margin-top: 2px;
}

.home-arena-hero {
  position: relative;
  overflow: hidden;
  min-height: 230px;
  border-radius: var(--radius-lg);
  padding: 18px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
  color: #f7fbf9;
  background:
    linear-gradient(180deg, rgba(18, 31, 31, 0.18), rgba(9, 15, 15, 0.82)),
    linear-gradient(135deg, #263e37 0%, #172424 48%, #101819 100%);
  border: 1px solid rgba(24, 33, 35, 0.08);
  box-shadow: var(--shadow-card);
}

.home-arena-copy,
.home-arena-actions {
  position: relative;
  z-index: 1;
}

.home-arena-copy .section-kicker {
  color: var(--primary-fixed);
}

.home-arena-copy h2 {
  margin: 4px 0 0;
  font-family: var(--font-headline);
  font-size: 1.55rem;
  font-weight: 900;
  line-height: 1.12;
  color: #ffffff;
}

.home-arena-copy p {
  margin: 8px 0 0;
  max-width: 270px;
  color: rgba(248,252,250,0.74);
  font-size: 0.82rem;
  line-height: 1.45;
}

.home-arena-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.home-primary-action,
.home-secondary-action,
.home-section-link {
  border: none;
  font-family: var(--font-headline);
  font-weight: 800;
  cursor: pointer;
}

.home-primary-action,
.home-secondary-action {
  min-height: 42px;
  border-radius: var(--radius-md);
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.home-primary-action {
  background: linear-gradient(135deg, var(--primary-fixed), #d8ff90);
  color: var(--on-primary-fixed);
}

.home-secondary-action {
  background: rgba(255,255,255,0.12);
  color: #f8fbfa;
  border: 1px solid rgba(255,255,255,0.18);
}

.home-primary-action .material-symbols-outlined,
.home-secondary-action .material-symbols-outlined {
  font-size: 1.05rem;
}

.home-section-link {
  flex-shrink: 0;
  min-height: 32px;
  padding: 0 10px;
  border-radius: var(--radius-md);
  background: rgba(189, 242, 31, 0.16);
  color: var(--primary);
  font-size: 0.68rem;
}

.home-open-matches-card,
.community-members-shell {
  overflow: hidden;
}

.home-feed-list {
  gap: 8px;
}

.home-static-filter-chips {
  position: relative;
  margin: 0 0 10px;
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.home-static-filter-chips::-webkit-scrollbar {
  display: none;
}

.home-static-filter-chips button {
  flex: 0 0 auto;
  min-height: 32px;
  padding: 0 12px;
  border-radius: var(--radius-md);
  border: 1px solid rgba(24,33,35,0.12);
  background: var(--surface-container-low);
  color: var(--on-surface-variant);
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 800;
  white-space: nowrap;
}

.home-static-filter-chips button.is-active {
  border-color: rgba(189, 242, 31, 0.6);
  background: rgba(189, 242, 31, 0.18);
  color: var(--on-surface);
}

.home-static-filter-chips.is-swipe-tab-dragging button.is-active {
  border-color: rgba(24,33,35,0.12);
  background: var(--surface-container-low);
  color: var(--on-surface-variant);
}

.home-static-filter-chips.is-swipe-tab-dragging::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: var(--swipe-tab-width, 40px);
  height: 3px;
  border-radius: 999px;
  background: #b5f000;
  transform: translateX(var(--swipe-tab-x, 0));
  transition: none;
  pointer-events: none;
}

.home-match-filter-bar {
  margin: -4px 0 12px;
  display: grid;
  grid-template-columns: 36px minmax(88px, 0.8fr) minmax(88px, 0.8fr) minmax(104px, 1fr);
  gap: 8px;
  align-items: center;
}

.home-match-filter-icon,
.home-match-filter-chip {
  min-width: 0;
  min-height: 36px;
  border: 1px solid rgba(24,33,35,0.08);
  border-radius: var(--radius-md);
  background: var(--surface-container-low);
  color: var(--on-surface);
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 800;
  cursor: pointer;
}

.home-match-filter-icon {
  display: grid;
  place-items: center;
  padding: 0;
}

.home-match-filter-icon .material-symbols-outlined {
  font-size: 1.18rem;
}

.home-match-filter-chip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 0 10px;
}

.home-match-filter-chip span:first-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-match-filter-chip .material-symbols-outlined {
  flex-shrink: 0;
  font-size: 1rem;
  color: var(--on-surface-variant);
}

.home-match-filter-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}


.home-match-filter-modal-head h3 {
  margin: 2px 0 0;
  font-family: var(--font-headline);
  font-size: 1.26rem;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.home-match-filter-close {
  width: 38px;
  height: 38px;
  border: 1px solid rgba(24, 33, 35, 0.1);
  border-radius: 12px;
  background: var(--surface-container-lowest);
  color: var(--on-surface-variant);
  display: grid;
  place-items: center;
  cursor: pointer;
}

.home-match-filter-close .material-symbols-outlined {
  font-size: 1.15rem;
}

.home-match-filter-modal-card {
  width: min(520px, calc(100vw - 16px));
  max-height: calc(100dvh - 16px);
  overflow: auto;
  border-radius: 24px;
  padding: 18px 16px 16px;
}

.home-match-filter-fields {
  margin-top: 14px;
  display: grid;
  gap: 12px;
}

.home-match-filter-inline-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.home-match-filter-group {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.home-match-filter-group h4 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--on-surface);
}

.home-match-filter-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.home-match-filter-choice-chip {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid rgba(24, 33, 35, 0.08);
  border-radius: var(--radius-full);
  background: var(--surface-container-low);
  color: var(--on-surface);
  font-family: var(--font-headline);
  font-size: 0.88rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.home-match-filter-choice-chip.is-active {
  border-color: transparent;
  background: var(--brand);
  color: #1f280e;
}

.home-match-filter-select-field {
  display: grid;
  gap: 7px;
  min-width: 0;
}

.home-match-filter-select-field > span {
  font-family: var(--font-headline);
  font-size: 0.92rem;
  font-weight: 800;
  color: var(--on-surface);
}

.home-match-filter-range-wrap {
  border: 1px solid rgba(24, 33, 35, 0.12);
  border-radius: 14px;
  background: var(--surface-container-lowest);
  padding: 7px;
}

.home-match-filter-range-input-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

.home-match-filter-range-input-row input {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  border: 1px solid rgba(24, 33, 35, 0.1);
  border-radius: 10px;
  padding: 0 9px;
  background: #fff;
  color: var(--on-surface);
  font-family: var(--font-body);
  font-size: 0.84rem;
  font-weight: 600;
}

.home-match-filter-range-input-row.is-time input {
  font-variant-numeric: tabular-nums;
}

.home-match-filter-range-sep {
  color: var(--on-surface-variant);
  font-family: var(--font-headline);
  font-size: 0.74rem;
  font-weight: 700;
}

.home-match-filter-location-select {
  position: relative;
}

.home-match-filter-location-toggle {
  width: 100%;
  min-height: 46px;
  border: 1px solid rgba(24, 33, 35, 0.12);
  border-radius: 14px;
  background: var(--surface-container-lowest);
  color: var(--on-surface);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 12px;
  font-family: var(--font-headline);
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
}

.home-match-filter-location-toggle .material-symbols-outlined {
  flex-shrink: 0;
  color: var(--on-surface-variant);
  font-size: 1.15rem;
  transition: transform 0.16s ease;
}

.home-match-filter-location-select.is-open .home-match-filter-location-toggle .material-symbols-outlined {
  transform: rotate(180deg);
}

.home-match-filter-location-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  left: 0;
  z-index: 4;
  border: 1px solid rgba(24, 33, 35, 0.1);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 22px 36px -28px rgba(24, 33, 35, 0.48);
  padding: 10px;
  display: grid;
  gap: 8px;
}

.home-match-filter-location-search {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 40px;
  border: 1px solid rgba(24, 33, 35, 0.1);
  border-radius: 10px;
  padding: 0 10px;
  background: var(--surface-container-low);
}

.home-match-filter-location-search .material-symbols-outlined {
  color: var(--on-surface-variant);
  font-size: 1rem;
}

.home-match-filter-location-search input {
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--on-surface);
  font-family: var(--font-body);
  font-size: 0.86rem;
}

.home-match-filter-location-search input:focus {
  outline: none;
}

.home-match-filter-location-tools {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
}

.home-match-filter-location-tools button {
  min-height: 30px;
  border: 1px solid rgba(24, 33, 35, 0.1);
  border-radius: 999px;
  padding: 0 11px;
  background: var(--surface-container-low);
  color: var(--on-surface-variant);
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 700;
  cursor: pointer;
}

.home-match-filter-location-list {
  max-height: 160px;
  overflow: auto;
  display: grid;
  gap: 6px;
  padding-right: 2px;
}

.home-match-filter-location-option {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  border-radius: 10px;
  padding: 7px 8px;
  background: rgba(24, 33, 35, 0.03);
}

.home-match-filter-location-option input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--brand);
}

.home-match-filter-location-option span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--on-surface);
  font-family: var(--font-body);
  font-size: 0.84rem;
  font-weight: 600;
}

.home-match-filter-location-empty {
  margin: 0;
  padding: 8px;
  color: var(--on-surface-variant);
  text-align: center;
  font-size: 0.78rem;
}

.home-match-filter-select-wrap {
  position: relative;
}

.home-match-filter-select-wrap select {
  width: 100%;
  min-height: 48px;
  padding: 0 44px 0 14px;
  border: 1px solid rgba(24, 33, 35, 0.12);
  border-radius: var(--radius-md);
  background: var(--surface-container-lowest);
  color: var(--on-surface);
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 500;
  appearance: none;
}

.home-match-filter-select-wrap .material-symbols-outlined {
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
  font-size: 1.2rem;
  color: var(--on-surface-variant);
  pointer-events: none;
}

.home-match-filter-actions {
  margin-top: 14px;
  display: grid;
  gap: 8px;
}

.home-match-filter-reset-btn {
  border: none;
  background: transparent;
  color: var(--on-surface-variant);
  font-family: var(--font-headline);
  font-size: 0.8rem;
  font-weight: 800;
  justify-self: end;
  cursor: pointer;
}

.home-match-filter-submit-btn {
  width: 100%;
  min-height: 54px;
  border: none;
  border-radius: 999px;
  background: var(--brand);
  color: #151c08;
  font-family: var(--font-headline);
  font-size: 1.26rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  cursor: pointer;
}

@media (max-width: 420px) {
  .home-match-filter-inline-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .home-match-filter-choice-chip {
    min-height: 40px;
    padding-inline: 12px;
    font-size: 0.82rem;
  }

  .home-match-filter-range-input-row input {
    min-height: 36px;
    font-size: 0.8rem;
    padding-inline: 8px;
  }

  .home-match-filter-submit-btn {
    min-height: 52px;
    font-size: 1.14rem;
  }
}

/* ── Matches tab: My Match ── */
#tab-home[data-tab="matches"] {
  gap: 8px;
}

.my-matches-screen {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.my-matches-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.my-matches-head h2 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1.95rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.06;
}

.my-matches-create-btn {
  height: 40px;
  border: none;
  border-radius: var(--radius-full);
  background: transparent;
  color: #119e33;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 2px;
  font-family: var(--font-headline);
  font-size: 0.86rem;
  font-weight: 800;
  cursor: pointer;
}

.my-matches-create-btn .material-symbols-outlined {
  font-size: 1.45rem;
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

.my-matches-primary-tabs {
  position: relative;
  display: flex;
  flex-wrap: nowrap;
  gap: 18px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 2px;
  border-bottom: 1px solid rgba(24,33,35,0.12);
}

.my-matches-primary-tabs::-webkit-scrollbar {
  display: none;
}

.my-matches-primary-tabs button {
  position: relative;
  flex: 0 0 auto;
  min-height: 30px;
  padding: 0 2px 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #7b8390;
  font-family: var(--font-headline);
  font-size: 0.96rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
}

.my-matches-primary-tabs button.is-active {
  color: #15191a;
  font-weight: 800;
}

.my-matches-primary-tabs button.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 3px;
  border-radius: 999px;
  background: #b5f000;
}

.my-matches-primary-tabs.is-swipe-tab-dragging button.is-active::after {
  opacity: 0;
}

.my-matches-primary-tabs.is-swipe-tab-dragging::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: var(--swipe-tab-width, 48px);
  height: 3px;
  border-radius: 999px;
  background: #b5f000;
  transform: translateX(var(--swipe-tab-x, 0));
  transition: none;
  pointer-events: none;
}

.my-matches-filter-row {
  display: flex;
  align-items: center;
  gap: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 2px;
  border-bottom: 1px solid rgba(24,33,35,0.1);
}

.my-matches-filter-row::-webkit-scrollbar {
  display: none;
}

.my-matches-filter-bar {
  display: flex;
  flex-wrap: nowrap;
  gap: 16px;
  flex: 0 0 auto;
  min-width: max-content;
}

.my-matches-filter-bar::-webkit-scrollbar {
  display: none;
}

.my-matches-filter-bar button,
.my-matches-owner-btn {
  position: relative;
  flex: 0 0 auto;
  min-height: 28px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #7b8390;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0 1px 8px;
  font-family: var(--font-headline);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: -0.005em;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
}

.my-matches-filter-bar button .material-symbols-outlined {
  display: none;
}

.my-matches-filter-bar button em,
.my-matches-owner-btn em {
  min-width: 0;
  height: auto;
  border-radius: 0;
  padding: 0;
  display: inline;
  background: transparent;
  color: #9aa1ac;
  font-size: 0.74rem;
  font-style: normal;
  font-weight: 700;
}

.my-matches-filter-bar button::after,
.my-matches-owner-btn::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 2px;
  border-radius: 999px;
  background: transparent;
}

.my-matches-filter-bar button.is-active,
.my-matches-owner-btn.is-active {
  color: #182123;
  font-weight: 800;
}

.my-matches-filter-bar button.is-active::after,
.my-matches-owner-btn.is-active::after {
  background: #b5f000;
}

.my-matches-owner-btn {
  color: #7b8390;
}

.my-matches-owner-btn .material-symbols-outlined {
  display: none;
}

.my-matches-owner-btn.is-active {
  color: #182123;
}

.my-matches-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.my-matches-relation-pills {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 0 0 2px;
  scrollbar-width: none;
}

.my-matches-relation-pills::-webkit-scrollbar {
  display: none;
}

.my-matches-relation-pills button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #FFFFFF;
  color: var(--text);
  font-family: var(--font-headline);
  font-size: 0.9rem;
  font-weight: 650;
  white-space: nowrap;
}

.my-matches-relation-pills button.is-active {
  border-color: var(--brand);
  background: var(--brand);
  color: #0F1800;
}

.my-matches-relation-pills em {
  font-style: normal;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
}

.my-matches-relation-pills button.is-active em {
  color: inherit;
}

.swipe-pager-shell {
  --swipe-pager-gap: 14px;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  list-style: none;
  margin: 0;
  padding: 0;
}

.swipe-pager-track {
  display: flex;
  align-items: flex-start;
  gap: var(--swipe-pager-gap);
  width: 100%;
  will-change: transform;
}

.swipe-pager-panel {
  flex: 0 0 100%;
  min-width: 0;
}

.swipe-pager-panel.is-swipe-pager-blank {
  min-height: 1px;
  pointer-events: none;
}

.swipe-pager-feed-panel {
  list-style: none;
  margin: 0;
  padding: 0;
}

.swipe-pager-my-panel {
  margin: 0;
}

#homeFeedList.is-swipe-pager-active,
#myMatchesList.is-swipe-pager-active {
  overflow: hidden;
  touch-action: none;
  user-select: none;
  cursor: grabbing;
}

#homeFeedList,
#myMatchesList {
  touch-action: pan-y;
}

#homeFeedList.is-swipe-pager-active > .swipe-pager-shell,
#myMatchesList.is-swipe-pager-active > .swipe-pager-shell {
  margin: 0;
  padding: 0;
}

.my-match-day-group {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.my-match-day-group > h3 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1.78rem;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.my-match-day-stack {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.my-match-card {
  border-radius: 16px;
  border: 1px solid rgba(24,33,35,0.08);
  background: var(--surface-container-lowest);
  box-shadow: 0 10px 24px -22px rgba(24,33,35,0.42);
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  cursor: pointer;
}

.my-match-card:focus-visible {
  outline: 2px solid rgba(189, 242, 31, 0.8);
  outline-offset: 2px;
}

.my-match-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.my-match-card-badges {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.my-match-card-time {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: #237305;
  font-family: Inter, "Noto Sans Thai", sans-serif;
  font-size: 0.86rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.1;
  text-transform: uppercase;
}

.my-match-host-chip {
  height: 34px;
  padding: 0 12px;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-headline);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.my-match-host-chip.is-host {
  background: #fff5e8;
  color: #f0821d;
}

.my-match-host-chip.is-guest {
  background: #ecf3ff;
  color: #2778ff;
}

.my-match-card h4 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1.08rem;
  font-weight: 850;
  line-height: 1.2;
}

.my-match-card .challenge-tag-row {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  padding: 0;
}

.my-match-card .challenge-tag {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  border-radius: 8px;
  padding: 0 10px;
  background: rgba(24, 33, 35, 0.05);
  color: #4f5861;
  font-family: var(--font-headline);
  font-size: 0.74rem;
  font-weight: 800;
  line-height: 1;
}

.my-match-card .challenge-tag.is-ranked {
  background: rgba(189, 242, 31, 0.18);
  color: #2f6f1d;
}

.my-match-card .challenge-tag.is-friendly {
  background: rgba(24, 33, 35, 0.045);
  color: #667174;
}

.my-match-card-location {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  color: #6f7688;
  font-size: 0.9rem;
}

.my-match-card-location .material-symbols-outlined {
  font-size: 1.03rem;
  color: #7e8594;
}

.my-match-card-location span:last-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.my-match-team-row {
  margin: 6px 0 2px;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  align-items: center;
  gap: 8px;
}

.my-match-player {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}

.my-match-player.is-right {
  justify-self: end;
}

.my-match-player img {
  width: 54px;
  height: 54px;
  border-radius: var(--radius-full);
  object-fit: cover;
  background: #d7dcdf;
}

.my-match-player span {
  max-width: 100%;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 700;
}

.my-match-team-row > strong {
  font-family: var(--font-headline);
  font-size: 1.35rem;
  font-weight: 900;
  letter-spacing: 0.05em;
}

.my-match-team-row.is-doubles {
  margin: 6px 0 2px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
}

.my-match-team-row.is-doubles img,
.my-match-team-row.is-doubles .my-match-avatar-placeholder {
  width: 40px;
  height: 40px;
  border-radius: 12px;
}

.my-match-avatar-placeholder {
  display: inline-grid;
  place-items: center;
  border: 1px dashed #bcc4ca;
  background: #eff2f4;
  color: #8f98a0;
}

.my-match-avatar-placeholder .material-symbols-outlined {
  font-size: 1.05rem;
}

.my-match-card-foot {
  margin-top: 2px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.my-match-player-count {
  margin: 0;
  color: #6f7688;
  font-size: 0.8rem;
  font-weight: 700;
  white-space: nowrap;
}

.my-match-top-pills {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}

.my-match-top-pills .my-match-status-chip {
  height: 28px;
  border-radius: 999px;
  padding: 0 10px;
  font-size: 0.68rem;
}

.my-match-status-chip {
  height: 34px;
  border-radius: 11px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-headline);
  font-size: 0.85rem;
  font-weight: 800;
  white-space: nowrap;
}

.my-match-status-chip.is-pending {
  background: #fff5e8;
  color: #eb8b2c;
}

.my-match-status-chip.is-hosted {
  background: #ecf7e8;
  color: #2b9f2d;
}

.my-match-status-chip.is-confirmed {
  background: #eaf2ff;
  color: #2a79ff;
}

.my-match-status-chip.is-completed {
  background: #ecf7e8;
  color: #2b9f2d;
}

.my-match-status-chip.is-cancelled {
  background: #f2f4f5;
  color: #8f989e;
}

@media (max-width: 390px) {
  .my-matches-head h2 {
    font-size: 1.64rem;
  }

  .my-matches-create-btn {
    font-size: 0.78rem;
  }

  .my-matches-filter-bar button {
    min-height: 28px;
    padding: 0 1px 7px;
    font-size: 0.76rem;
  }

  .my-match-day-group > h3 {
    font-size: 1.54rem;
  }

  .my-match-card {
    padding: 12px;
  }

  .my-match-player img {
    width: 48px;
    height: 48px;
  }
}

@media (max-width: 390px) {
  .home-match-filter-bar {
    grid-template-columns: 36px 1fr 1fr;
  }

  .home-match-filter-chip.is-wide {
    grid-column: 2 / -1;
  }
}

.courts-view {
  gap: 12px;
}

.community-courts-shell {
  overflow: hidden;
}

.courts-view-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}

.community-courts-shell .courts-view-head {
  margin-bottom: 8px;
}

.courts-view-head h3 {
  margin: 2px 0 0;
  font-family: var(--font-headline);
  font-size: 1.08rem;
  font-weight: 900;
  color: var(--on-surface);
}

.courts-view-head small {
  flex-shrink: 0;
  color: var(--on-surface-variant);
  font-family: var(--font-headline);
  font-size: 0.66rem;
  font-weight: 800;
}

.court-head-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.court-add-btn {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 0 12px;
  border: 1px solid var(--primary);
  border-radius: var(--radius-full);
  background: var(--primary-fixed);
  color: var(--on-primary-fixed);
  font-family: var(--font-headline);
  font-size: 0.76rem;
  font-weight: 800;
  cursor: pointer;
}

.court-add-btn .material-symbols-outlined {
  font-size: 1rem;
}

.court-search-shell {
  min-height: 44px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) 34px;
  align-items: center;
  gap: 8px;
  padding: 0 6px 0 13px;
  border: 1px solid rgba(24,33,35,0.07);
  border-radius: var(--radius-lg);
  background: rgba(238,242,243,0.98);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.72);
}

.community-courts-shell .court-search-shell {
  margin-bottom: 10px;
}

.court-search-shell > .material-symbols-outlined {
  color: var(--on-surface-variant);
  font-size: 1.2rem;
}

.court-search-shell input {
  min-width: 0;
  border: none;
  background: transparent;
  color: var(--on-surface);
  font: 600 0.82rem/1.2 var(--font-body);
  outline: none;
}

.court-search-shell input::placeholder {
  color: rgba(89,92,93,0.78);
}

.court-search-shell button {
  width: 34px;
  height: 34px;
  border: none;
  border-radius: var(--radius-md);
  background: rgba(255,255,255,0.68);
  color: var(--on-surface-variant);
  display: grid;
  place-items: center;
  cursor: pointer;
}

.court-search-shell button .material-symbols-outlined {
  font-size: 1.12rem;
}

.court-near-me-status {
  margin: 0;
  color: var(--on-surface-variant);
  font-size: 0.76rem;
  font-weight: 700;
}

.home-nearme-icon-btn {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.home-nearme-icon-btn .material-symbols-outlined {
  pointer-events: none;
}

.court-surface-filter {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 2px;
  scrollbar-width: none;
}

.community-courts-shell .court-surface-filter {
  margin-bottom: 10px;
}

.court-surface-filter::-webkit-scrollbar {
  display: none;
}

.court-surface-filter button {
  flex: 0 0 auto;
  min-height: 34px;
  border: none;
  border-radius: var(--radius-full);
  padding: 0 12px;
  background: var(--surface-container-low);
  color: var(--on-surface-variant);
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 800;
  cursor: pointer;
}

.court-add-fields {
  display: grid;
  gap: 12px;
}

.court-add-field,
.court-add-field-grid {
  display: grid;
  gap: 8px;
}

.court-add-field-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.court-add-field span {
  color: var(--on-surface);
  font-family: var(--font-headline);
  font-size: 0.78rem;
  font-weight: 800;
}

.court-add-field input {
  width: 100%;
  min-height: 46px;
  border: 1px solid rgba(24,33,35,0.1);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,0.96);
  color: var(--on-surface);
  font: 650 0.86rem/1.2 var(--font-body);
  padding: 0 14px;
  outline: none;
}

.court-add-field input:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(189,242,31,0.24);
}

.court-surface-filter button.is-active {
  background: var(--primary-fixed);
  color: var(--on-primary-fixed);
}

.court-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.court-card {
  overflow: hidden;
  border: 1px solid rgba(24,33,35,0.08);
  border-radius: var(--radius-xl);
  background: var(--surface-container-lowest);
  box-shadow: 0 18px 34px -26px rgba(24,33,35,0.32);
}

.court-card-media {
  position: relative;
  aspect-ratio: 4 / 3;
  min-height: 0;
  overflow: hidden;
  background: var(--surface-container-low);
}

.court-card-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(12,15,16,0.04), rgba(12,15,16,0.24));
  pointer-events: none;
}

.court-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.court-rating {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 1;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: var(--radius-md);
  padding: 0 10px;
  background: rgba(255,255,255,0.92);
  color: var(--on-surface);
  font-family: var(--font-headline);
  font-size: 0.82rem;
  font-weight: 900;
  box-shadow: 0 10px 18px -14px rgba(12,15,16,0.42);
}

.court-rating .material-symbols-outlined {
  color: var(--primary);
  font-size: 1rem;
}

.court-card-body {
  position: relative;
  margin: 0;
  padding: 10px;
  border-radius: 0;
  background: rgba(255,255,255,0.98);
  box-shadow: 0 -10px 26px -24px rgba(12,15,16,0.34);
}

.court-card-main {
  display: grid;
  align-items: flex-start;
  gap: 6px;
}

.court-card-main h4 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.84rem;
  line-height: 1.18;
  font-weight: 900;
  color: var(--on-surface);
}

.court-card-main p {
  margin: 3px 0 0;
  display: flex;
  align-items: center;
  gap: 4px;
  color: var(--on-surface-variant);
  font-size: 0.66rem;
  font-weight: 700;
}

.court-card-main p .material-symbols-outlined {
  font-size: 1rem;
}

.court-price {
  flex-shrink: 0;
  color: var(--primary);
  font-family: var(--font-headline);
  font-size: 0.9rem;
  line-height: 1;
  font-weight: 900;
}

.court-price small {
  margin-left: 2px;
  color: var(--on-surface-variant);
  font-size: 0.68rem;
  font-weight: 700;
}

.court-feature-row {
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 5px 7px;
}

.court-feature-row span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--on-surface-variant);
  font-size: 0.62rem;
  font-weight: 800;
}

.court-feature-row .material-symbols-outlined {
  font-size: 1rem;
}

.court-card-foot {
  margin-top: 10px;
  display: grid;
  gap: 8px;
}

.court-status {
  min-width: 0;
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 26px;
  border-radius: var(--radius-full);
  padding: 0 8px;
  background: var(--surface-container-low);
  color: var(--on-surface-variant);
  font-size: 0.62rem;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.court-status span {
  flex: 0 0 8px;
  width: 8px;
  height: 8px;
  border-radius: var(--radius-full);
  background: currentColor;
}

.court-status.is-available {
  background: rgba(189, 242, 31, 0.18);
  color: var(--primary);
}

.court-card-foot button {
  flex: 0 0 auto;
  min-height: 32px;
  border: none;
  border-radius: var(--radius-full);
  padding: 0 10px;
  background: var(--primary-fixed);
  color: var(--on-primary-fixed);
  font-family: var(--font-headline);
  font-size: 0.68rem;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 14px 24px -18px rgba(64,105,0,0.75);
}

@media (max-width: 370px) {
  .court-card-foot {
    align-items: stretch;
    flex-direction: column;
  }

  .court-card-foot button {
    width: 100%;
  }
}

.home-group-feed-hero {
  margin-bottom: 2px;
}

.home-group-feed-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.home-group-feed-card {
  border-radius: 1.5rem;
  background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(245,248,249,0.98));
  border: 1px solid rgba(171,173,174,0.18);
  box-shadow: 0 16px 32px -24px rgba(44,47,48,0.24);
  padding: 14px;
}

.home-group-feed-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.home-group-feed-group {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.home-group-feed-avatar {
  width: 44px;
  height: 44px;
  border-radius: 1rem;
  object-fit: cover;
  border: 2px solid rgba(189, 242, 31, 0.24);
}

.home-group-feed-group small {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.56rem;
  letter-spacing: 0.14em;
  font-weight: 900;
  text-transform: uppercase;
  color: #8a957b;
}

.home-group-feed-group strong {
  display: block;
  margin-top: 3px;
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 900;
  color: #202525;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.home-group-feed-open-btn {
  border: none;
  border-radius: var(--radius-full);
  min-height: 34px;
  padding: 0 12px;
  background: rgba(189, 242, 31, 0.18);
  color: #4e7600;
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  white-space: nowrap;
}

.home-group-feed-body {
  margin-top: 12px;
}

.home-group-feed-title {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 900;
  line-height: 1.35;
  color: #212628;
}

.home-group-feed-summary {
  margin: 6px 0 0;
  font-size: 0.76rem;
  line-height: 1.5;
  color: #697172;
}

.home-group-feed-footer {
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.home-group-feed-score {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 0.95rem;
  background: #eff5ea;
  color: #385300;
  font-family: var(--font-headline);
  font-size: 0.92rem;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.home-group-feed-rank {
  font-size: 0.72rem;
  font-weight: 700;
  color: #75817a;
}

/* ── ELO Chart ── */
.performance-note {
  margin: 0 0 10px;
  font-size: 0.78rem;
  color: var(--on-surface-variant);
  line-height: 1.45;
}

.range-picker {
  margin-top: 2px;
  margin-bottom: 12px;
  border-radius: var(--radius-lg);
  background: var(--surface-container-low);
  padding: 5px;
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.range-btn {
  border: none;
  border-radius: var(--radius-sm);
  min-height: 34px;
  font-family: var(--font-headline);
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--on-surface-variant);
  background: transparent;
  cursor: pointer;
  transition: all 0.15s ease;
  padding: 0 4px;
}

.range-btn.is-active {
  color: var(--on-primary-fixed);
  background: var(--surface-container-lowest);
  box-shadow: var(--shadow-card);
}

.elo-chart-wrap {
  border-radius: var(--radius-lg);
  background: linear-gradient(175deg, rgba(255,255,255,0.95), rgba(239,241,242,0.7));
  padding: 10px 8px;
  border: none;
}

.elo-chart {
  width: 100%;
  height: 180px;
  display: block;
}

.chart-empty {
  margin: 0;
  text-align: center;
  color: var(--on-surface-variant);
  font-size: 0.8rem;
  padding: 28px 0;
}

.perf-metric-grid {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.perf-metric-grid article {
  background: var(--surface-container-low);
  border-radius: var(--radius-md);
  padding: 10px;
  text-align: center;
  border: none;
  box-shadow: none;
}

.perf-metric-grid small {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  margin-bottom: 4px;
}

.perf-metric-grid strong {
  display: block;
  font-family: var(--font-headline);
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--on-surface);
  letter-spacing: -0.02em;
}

#eloDeltaValue.positive { color: #1f7a45; }
#eloDeltaValue.negative { color: #b0250c; }

/* ── Recent Results ── */
.result-item {
  background: var(--surface-container-low);
  border-radius: var(--radius-lg);
  padding: 12px 14px;
  border: none;
  box-shadow: none;
}

.result-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.result-top strong {
  font-family: var(--font-headline);
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--on-surface);
}

.result-item p {
  margin: 6px 0 0;
  font-size: 0.74rem;
  color: var(--on-surface-variant);
  line-height: 1.4;
}

.result-chip {
  border-radius: var(--radius-full);
  padding: 3px 10px;
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border: none;
  flex-shrink: 0;
}

.result-chip.win  { background: var(--win-bg);  color: var(--win-text); }
.result-chip.loss { background: var(--loss-bg); color: var(--loss-text); }

.result-bottom {
  margin-top: 8px;
  display: flex;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  color: var(--on-surface-variant);
  font-size: 0.68rem;
}

/* ── National Stats ── */
.national-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.national-stats-grid article {
  background: var(--surface-container-low);
  border-radius: var(--radius-md);
  padding: 12px;
  text-align: center;
  border: none;
  box-shadow: none;
}

.national-stats-grid small {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  margin-bottom: 4px;
}

.national-stats-grid strong {
  font-family: var(--font-headline);
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--on-surface);
  letter-spacing: -0.03em;
}

/* ── Skill Distribution ── */
.skill-dist-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.skill-card {
  background: var(--surface-container-low);
  border-radius: var(--radius-lg);
  padding: 12px;
  border: none;
  box-shadow: none;
}

.skill-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 6px;
  margin-bottom: 2px;
}

.skill-chip {
  border-radius: var(--radius-full);
  padding: 3px 9px;
  font-family: var(--font-headline);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  background: linear-gradient(135deg, var(--primary), var(--primary-fixed-dim));
  color: #f0ffd6;
}

.skill-members {
  font-family: var(--font-headline);
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--on-surface-variant);
}

.skill-meta {
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.skill-meta p { margin: 0; }

.skill-meta small {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  margin-bottom: 2px;
}

.skill-meta strong {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--on-surface);
  letter-spacing: -0.02em;
}

.skill-bar {
  margin-top: 10px;
  height: 6px;
  border-radius: var(--radius-full);
  background: var(--surface-container-highest);
  overflow: hidden;
  display: flex;
}

.skill-bar span { background: #17b57f; }
.skill-bar b { background: #e05548; display: block; }

/* ── Search ── */
.search-field { margin-bottom: 10px; }

.search-field span {
  display: block;
  margin-bottom: 6px;
  font-family: var(--font-headline);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
}

.member-search-list { margin-bottom: 10px; }

.member-search-item {
  background: var(--surface-container-low);
  border-radius: var(--radius-md);
  padding: 10px 12px;
  display: flex;
  gap: 10px;
  align-items: center;
  border: none;
}

.member-dot {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--surface-container-high), var(--surface-container-highest));
  flex-shrink: 0;
}

.member-main strong {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--on-surface);
}

.member-main small {
  display: block;
  font-size: 0.72rem;
  color: var(--on-surface-variant);
  margin-top: 2px;
}

/* ── Simple List Items ── */
.simple-item {
  background: var(--surface-container-low);
  border-radius: var(--radius-md);
  padding: 12px;
  border: none;
  box-shadow: none;
}

.simple-item h5 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--on-surface);
}

.simple-item p {
  margin: 5px 0 0;
  font-size: 0.77rem;
  color: var(--on-surface-variant);
  line-height: 1.65;
}

/* ── Leaderboard ── */
.table-wrap { overflow-x: auto; }

.leaderboard-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 480px;
}

.leaderboard-table th {
  padding: 10px 8px;
  text-align: left;
  font-family: var(--font-headline);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  border-bottom: none;
}

.leaderboard-table td {
  padding: 10px 8px;
  text-align: left;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--on-surface);
  border-bottom: none;
}

.leaderboard-table tr.me-row td {
  background: rgba(189, 242, 31, 0.18);
  font-weight: 700;
}

.leaderboard-table tr.me-row td:first-child { border-radius: var(--radius-sm) 0 0 var(--radius-sm); }
.leaderboard-table tr.me-row td:last-child  { border-radius: 0 var(--radius-sm) var(--radius-sm) 0; }

/* ── Bottom Nav ── */
.bottom-nav {
  position: fixed;
  left: 50%;
  bottom: calc(10px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: min(520px, calc(100% - 20px));
  background: rgba(255,255,255,0.88);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow:
    0 1px 0 rgba(255,255,255,0.6) inset,
    0 -2px 24px rgba(189, 242, 31, 0.2),
    0 16px 40px -10px rgba(44,47,48,0.22);
  border-radius: 2rem;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: end;
  padding: 8px 10px calc(8px + env(safe-area-inset-bottom,0px));
  gap: 4px;
  z-index: 40;
}

.tab-btn {
  border: none;
  background: transparent;
  border-radius: var(--radius-md);
  min-height: 54px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: #90939e;
  font-family: var(--font-headline);
  cursor: pointer;
  padding: 4px 2px;
  transition: color 0.15s ease, background 0.15s ease;
  -webkit-tap-highlight-color: transparent;
}

.tab-btn .tab-icon {
  font-size: 1.35rem;
  line-height: 1;
  transition: font-variation-settings 0.2s ease;
}

.tab-btn .tab-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1;
}

.tab-btn.is-active {
  color: var(--win-text);
}

.tab-btn.is-active .tab-icon {
  font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;
}

.tab-btn[data-tab-target="community"].is-active {
  color: #2d4900;
  background: rgba(189, 242, 31, 0.34);
  box-shadow: 0 12px 22px -18px rgba(189, 242, 31, 0.95);
}

/* FAB — SMATCH ── */
.tennis-fab {
  border: none;
  background: transparent;
  display: grid;
  place-items: center;
  margin-top: -32px;
  cursor: pointer;
  padding: 0;
  -webkit-tap-highlight-color: transparent;
}

.ball-core {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  position: relative;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, var(--primary-fixed), var(--primary-fixed-dim));
  box-shadow:
    0 0 28px rgba(189, 242, 31, 0.65),
    0 12px 28px -8px rgba(62,102,0,0.45),
    inset 0 1px 0 rgba(255,255,255,0.45);
  animation: fabFloat 3s ease-in-out infinite;
  overflow: hidden;
}

.ball-shine {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: radial-gradient(circle at 34% 24%, rgba(255,255,255,0.55), transparent 50%);
  pointer-events: none;
}

.ball-text {
  position: relative;
  z-index: 1;
  text-align: center;
  font-family: var(--font-headline);
  font-size: 0.78rem;
  line-height: 1.18;
  letter-spacing: 0;
  font-weight: 800;
  color: var(--on-primary-fixed);
}

.tennis-fab.spin .ball-core {
  animation: fabSpin 0.82s cubic-bezier(0.22,0.86,0.19,1) 1;
}

/* ── Bottom Sheet ── */
.smatch-sheet {
  position: fixed;
  inset: 0;
  z-index: 50;
}

.sheet-backdrop {
  position: absolute;
  inset: 0;
  border: none;
  background: rgba(12,15,16,0.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  cursor: pointer;
}

.sheet-card {
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translate(-50%, 100%);
  width: min(520px, 100%);
  max-height: calc(92dvh - env(safe-area-inset-top));
  overflow-y: auto;
  overscroll-behavior: contain;
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  background: var(--surface-container-lowest);
  box-shadow: 0 -18px 40px -8px rgba(189, 242, 31, 0.18), 0 -2px 24px rgba(44,47,48,0.12);
  padding: 14px 18px calc(24px + env(safe-area-inset-bottom));
  transition: transform 0.28s cubic-bezier(0.32,0.72,0,1);
}

.smatch-sheet.open .sheet-card {
  transform: translate(-50%, 0);
}

.sheet-handle {
  width: 40px;
  height: 4px;
  border-radius: var(--radius-full);
  background: var(--surface-container-highest);
  margin: 0 auto 16px;
}

/* ── Toast ── */
.toast {
  position: fixed;
  left: 50%;
  bottom: calc(112px + env(safe-area-inset-bottom));
  transform: translateX(-50%) translateY(16px);
  background: var(--on-surface);
  color: #ffffff;
  border-radius: var(--radius-full);
  padding: 10px 18px;
  font-family: var(--font-headline);
  font-size: 0.78rem;
  font-weight: 600;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 70;
  max-width: calc(100vw - 32px);
  text-overflow: ellipsis;
  overflow: hidden;
}

.toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

@media (max-width: 559px) {
  .bottom-nav {
    left: 0;
    right: 0;
    transform: none;
    width: 100%;
    border-radius: 0;
    padding-left: max(8px, env(safe-area-inset-left));
    padding-right: max(8px, env(safe-area-inset-right));
  }
}

/* ── Animations ── */
@keyframes fabFloat {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-4px); }
}

@keyframes fabSpin {
  0%   { transform: rotate(0deg)   scale(1); }
  40%  { transform: rotate(200deg) scale(0.94); }
  100% { transform: rotate(520deg) scale(1); }
}

/* ── Responsive — Wide ── */
@media (min-width: 560px) {
  body { padding-top: 20px; }

  .mobile-shell { width: min(560px, 100%); }

  .bottom-nav { width: min(560px, calc(100% - 32px)); }

  .groups-fab-btn {
    right: calc(50% - min(560px, calc(100% - 32px)) / 2 + 16px);
  }

  .groups-sheet {
    width: min(560px, 100%);
  }

  .group-create-screen {
    width: min(560px, 100%);
  }

  .group-detail-screen {
    width: min(560px, 100%);
  }

  #tab-home.is-active,
  #tab-profile.is-active {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
}

/* ══════════════════════════════════════════════════════════
   NEW COMPONENT STYLES — Comprehensive Design Update
   ══════════════════════════════════════════════════════════ */

/* ── Section Kicker ── */
.section-kicker {
  margin: 0 0 2px;
  font-family: var(--font-headline);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--primary);
  line-height: 1;
}

/* ── Profile Hero — Avatar wrap (centered layout set on .member-head above) ── */
.member-avatar-wrap {
  position: relative;
  flex-shrink: 0;
}

.member-info {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.member-info .mini-overline { margin-bottom: 2px; }

.profile-hero .tag-row {
  justify-content: center;
}

/* ── Arena Callout CTA ── */
.arena-callout {
  background: var(--primary-container);
  border-radius: var(--radius-lg);
  padding: 20px 18px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin: 4px 0;
}

.arena-callout-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-md);
  background: var(--on-primary-fixed);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.arena-callout-icon .material-symbols-outlined {
  color: var(--primary-container);
  font-size: 22px;
}

.arena-callout h3 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 800;
  color: var(--on-primary-fixed);
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.arena-callout p {
  margin: 0;
  font-size: 0.8rem;
  color: var(--on-primary-fixed);
  opacity: 0.8;
  line-height: 1.5;
}

.arena-callout .primary-btn {
  margin-top: 4px;
  background: var(--on-primary-fixed);
  color: var(--primary-container);
  font-size: 0.72rem;
  padding: 10px 18px;
  letter-spacing: 0.08em;
}

.arena-callout .primary-btn:active {
  background: var(--primary);
}

/* ── Sheet Header ── */
.sheet-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.sheet-title {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--on-surface);
}

.sheet-sub {
  margin: 2px 0 0;
  font-size: 0.78rem;
  color: var(--on-surface-variant);
  line-height: 1.4;
}

.sheet-close-btn {
  background: var(--surface-container);
  border: none;
  border-radius: var(--radius-full);
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  color: var(--on-surface-variant);
  transition: background 0.15s;
}

.sheet-close-btn:active { background: var(--surface-container-high); }

.sheet-close-btn .material-symbols-outlined { font-size: 20px; }

/* ── Form Label Text ── */
.form-label-text {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  margin-bottom: 8px;
}

/* ── Post Type Card Scroller ── */
.post-type-scroll {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding-bottom: 4px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.post-type-scroll::-webkit-scrollbar { display: none; }

.post-type-card {
  flex-shrink: 0;
  width: 90px;
  min-height: 90px;
  border-radius: var(--radius-md);
  background: var(--surface-container-low);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  border: 2px solid transparent;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
  padding: 10px 8px;
  text-align: center;
}

.post-type-card:active {
  background: var(--surface-container);
}

.post-type-card.is-active {
  background: var(--primary-container);
  border-color: var(--on-primary-fixed);
  box-shadow: 0 4px 16px -8px rgba(189, 242, 31, 0.45);
}

.post-type-card .pt-icon {
  font-size: 28px;
  color: var(--on-surface-variant);
}

.post-type-card.is-active .pt-icon {
  color: var(--on-primary-fixed);
  font-variation-settings: 'FILL' 1, 'wght' 600, 'GRAD' 0, 'opsz' 24;
}

.post-type-card .pt-label {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--on-surface);
  letter-spacing: 0.01em;
}

.post-type-card.is-active .pt-label {
  color: var(--on-primary-fixed);
}

/* ── Input with Leading Icon ── */
.input-icon-wrap {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 56px;
}

.input-icon-wrap .input-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: var(--on-surface-variant);
  pointer-events: none;
  z-index: 1;
}

.input-icon-wrap input {
  padding-left: 40px;
  width: 100%;
  min-height: 56px;
}

/* ── WIN / LOSS Result Toggle ── */
.result-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 2px;
}

.result-toggle-btn {
  height: 48px;
  border: 2px solid var(--surface-container-high);
  border-radius: var(--radius-md);
  background: var(--surface-container-low);
  font-family: var(--font-headline);
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
  color: var(--on-surface-variant);
}

.result-toggle-btn.active-win {
  background: var(--win-bg);
  border-color: var(--win-text);
  color: var(--win-text);
  box-shadow: 0 4px 16px -8px rgba(189, 242, 31, 0.4);
}

.result-toggle-btn.active-loss {
  background: var(--loss-bg);
  border-color: var(--loss-text);
  color: var(--loss-text);
  box-shadow: 0 4px 16px -8px rgba(249,86,48,0.35);
}

/* Hidden select (synced via JS) */
.hidden-select { display: none !important; }

/* ── Match Log Item (Today's log with colored border-left) ── */
.match-log-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.match-log-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-left: 4px solid var(--surface-container-high);
  background: var(--surface-container-lowest);
  margin: 0;
  transition: background 0.12s;
}

.match-log-item + .match-log-item {
  border-top: 1px solid var(--outline-variant);
}

.match-log-item:first-child { border-radius: var(--radius-md) var(--radius-md) 0 0; }
.match-log-item:last-child  { border-radius: 0 0 var(--radius-md) var(--radius-md); }
.match-log-item:only-child  { border-radius: var(--radius-md); }

.match-log-item.win  { border-left-color: var(--win-text); }
.match-log-item.loss { border-left-color: var(--loss-text); }
.match-log-item.pending { border-left-color: #b68000; }

.match-log-item .log-info {
  flex: 1;
  min-width: 0;
}

.match-log-item .log-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 2px;
  flex-wrap: wrap;
}

.match-log-item .log-time {
  font-size: 0.68rem;
  color: var(--on-surface-variant);
  font-family: var(--font-headline);
  font-weight: 600;
  letter-spacing: 0.05em;
}

.match-log-item .log-chip {
  font-size: 0.6rem;
  font-weight: 800;
  font-family: var(--font-headline);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: var(--radius-full);
  line-height: 1.5;
}

.match-log-item.win  .log-chip { background: var(--win-bg);  color: var(--win-text); }
.match-log-item.loss .log-chip { background: var(--loss-bg); color: var(--loss-text); }
.match-log-item.pending .log-chip { background: rgba(182,128,0,0.15); color: #7a5500; }

.match-log-item .log-opponent {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--on-surface);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.match-log-item .log-score {
  font-family: var(--font-headline);
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--on-surface);
  letter-spacing: -0.03em;
  white-space: nowrap;
  flex-shrink: 0;
}

.match-log-item.win  .log-score { color: var(--win-text); }
.match-log-item.loss .log-score { color: var(--loss-text); }

/* ── Recent Result Item ── */
.recent-result-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: var(--surface-container-low);
  border-radius: var(--radius-md);
}

.recent-result-item + .recent-result-item { margin-top: 6px; }

.recent-result-item .rr-outcome {
  font-size: 0.62rem;
  font-weight: 800;
  font-family: var(--font-headline);
  letter-spacing: 0.1em;
  padding: 3px 9px;
  border-radius: var(--radius-full);
  flex-shrink: 0;
}

.recent-result-item.win  .rr-outcome { background: var(--win-bg);  color: var(--win-text); }
.recent-result-item.loss .rr-outcome { background: var(--loss-bg); color: var(--loss-text); }

.recent-result-item .rr-info {
  flex: 1;
  min-width: 0;
}

.recent-result-item .rr-opponent {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--on-surface);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.recent-result-item .rr-score {
  margin: 0;
  font-size: 0.7rem;
  color: var(--on-surface-variant);
}

.recent-result-item .rr-elo {
  font-family: var(--font-headline);
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
  white-space: nowrap;
}

.recent-result-item.win  .rr-elo { color: var(--win-text); }
.recent-result-item.loss .rr-elo { color: var(--loss-text); }

/* ── Verified Badge ── */
.verified-badge {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.7rem;
  font-weight: 600;
  font-family: var(--font-headline);
  letter-spacing: 0.04em;
  color: var(--primary);
}

.verified-badge .material-symbols-outlined {
  font-size: 15px;
  color: var(--primary);
  font-variation-settings: 'FILL' 1, 'wght' 600, 'GRAD' 0, 'opsz' 20;
}

/* ── Connection Card Tonal Colors ── */
.conn-card-pending {
  background: rgba(182,128,0,0.10);
  border-radius: var(--radius-md);
  padding: 10px 12px;
  margin-bottom: 6px;
}

.conn-card-sent {
  background: rgba(0,105,148,0.08);
  border-radius: var(--radius-md);
  padding: 10px 12px;
  margin-bottom: 6px;
}

/* ── Score Input Group ── */
.score-input-wrap {
  display: flex;
  gap: 8px;
  align-items: center;
}

.score-input-wrap input {
  flex: 1;
}

.score-sep {
  font-weight: 700;
  color: var(--on-surface-variant);
  font-size: 1rem;
  flex-shrink: 0;
}

/* ── Sheet POST NOW CTA ── */
.sheet-cta,
.lineoa-theme .smatch-sheet .sheet-cta {
  width: 100%;
  font-size: 0.85rem;
  letter-spacing: 0.14em;
  padding: 16px;
  margin-top: 4px;
  border-radius: var(--radius-lg);
}

/* ── Challenge Card horizontal layout improvements ── */
.challenge-item {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-radius: var(--radius-lg);
  background: var(--surface-container-lowest);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.challenge-item-body {
  padding: 14px 16px 10px;
  flex: 1;
}

.challenge-item-actions {
  display: flex;
  gap: 0;
  border-top: 1px solid var(--outline-variant);
}

.challenge-action-btn {
  flex: 1;
  height: 44px;
  border: none;
  background: transparent;
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  cursor: pointer;
  color: var(--on-surface-variant);
  transition: background 0.12s, color 0.12s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}

.challenge-action-btn:active { background: var(--surface-container-low); }

.challenge-action-btn.accept-btn {
  color: var(--win-text);
  border-right: 1px solid var(--outline-variant);
}

.challenge-action-btn.accept-btn:active { background: var(--win-bg); }

.challenge-meta-row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}

.challenge-meta-row .meta-chip {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--on-surface-variant);
  font-family: var(--font-headline);
}

.challenge-meta-row .meta-chip .material-symbols-outlined {
  font-size: 14px;
}

.challenge-match-card {
  border-radius: var(--radius-lg);
  background: var(--surface-container-lowest);
  box-shadow: var(--shadow-card);
  overflow: hidden;
}

.challenge-match-head {
  padding: 14px 16px 10px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid rgba(171,173,174,0.18);
}

.challenge-match-tags {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}

.challenge-open-pill,
.challenge-elo-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  border-radius: var(--radius-full);
  padding: 2px 9px;
  font-family: var(--font-headline);
  font-size: 0.64rem;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.challenge-open-pill {
  background: rgba(189, 242, 31, 0.18);
  color: var(--win-text);
}

.challenge-elo-pill {
  background: transparent;
  color: var(--on-surface-variant);
  padding-left: 0;
}

.challenge-match-time {
  flex-shrink: 0;
  text-align: right;
}

.challenge-match-time strong {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.98rem;
  font-weight: 900;
  color: var(--on-surface);
  line-height: 1.15;
  white-space: nowrap;
}

.challenge-match-time small {
  display: block;
  margin-top: 2px;
  font-size: 0.66rem;
  font-weight: 700;
  color: var(--on-surface-variant);
}

.challenge-versus-row {
  padding: 18px 16px 16px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 42px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

.challenge-player-slot,
.challenge-join-slot {
  min-width: 0;
  border: none;
  background: transparent;
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 4px;
  text-align: center;
  font-family: var(--font-body);
}

.challenge-player-avatar,
.challenge-join-circle {
  width: 58px;
  height: 58px;
  border-radius: var(--radius-md);
  flex-shrink: 0;
}

.challenge-player-avatar {
  object-fit: cover;
  border: 1px solid rgba(24,33,35,0.08);
  background: var(--surface-container);
}

.challenge-player-slot strong,
.challenge-join-slot strong {
  max-width: 100%;
  margin-top: 2px;
  color: var(--on-surface);
  font-size: 0.76rem;
  font-weight: 900;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.challenge-player-slot small,
.challenge-join-slot small {
  max-width: 100%;
  color: var(--on-surface-variant);
  font-size: 0.66rem;
  font-weight: 700;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.challenge-vs-mark {
  display: grid;
  place-items: center;
  color: #c6cdd0;
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 900;
  letter-spacing: 0;
}

.challenge-join-slot {
  cursor: pointer;
}

.challenge-join-slot.is-static {
  cursor: default;
}

.challenge-join-circle {
  display: grid;
  place-items: center;
  border: 2px dashed rgba(64,105,0,0.52);
  background: rgba(189, 242, 31, 0.06);
  color: var(--primary);
}

.challenge-join-circle .material-symbols-outlined {
  font-size: 1.45rem;
}

.challenge-location-row {
  margin: 0 14px 14px;
  min-height: 54px;
  border-radius: var(--radius-lg);
  background: var(--surface-container-low);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
}

.challenge-location-row > .material-symbols-outlined {
  color: var(--on-surface-variant);
  font-size: 1.25rem;
}

.challenge-location-row div {
  min-width: 0;
}

.challenge-location-row strong,
.challenge-location-row small {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.challenge-location-row strong {
  color: var(--on-surface);
  font-size: 0.82rem;
  font-weight: 900;
  line-height: 1.2;
}

.challenge-location-row small {
  margin-top: 2px;
  color: var(--on-surface-variant);
  font-size: 0.66rem;
  font-weight: 700;
}

.challenge-report-inline {
  border: none;
  border-radius: var(--radius-md);
  min-height: 34px;
  padding: 0 10px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(189, 242, 31, 0.18);
  color: var(--primary);
  font-family: var(--font-headline);
  font-size: 0.68rem;
  font-weight: 900;
  cursor: pointer;
}

.challenge-report-inline .material-symbols-outlined {
  font-size: 1rem;
}

.challenge-match-card {
  border-radius: var(--radius-lg);
}

.challenge-compact-top {
  padding: 8px 10px 2px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.challenge-date-time {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 5px;
}

.challenge-top-left {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.challenge-date-time strong,
.challenge-date-time span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--font-headline);
}

.challenge-date-time strong {
  color: var(--on-surface);
  font-size: 0.72rem;
  font-weight: 900;
}

.challenge-date-time span {
  color: var(--on-surface-variant);
  font-size: 0.66rem;
  font-weight: 800;
}

.challenge-spec-strip {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}

.challenge-spec-strip span {
  min-height: 18px;
  display: inline-flex;
  align-items: center;
  border-radius: var(--radius-full);
  padding: 2px 7px;
  background: rgba(24,33,35,0.05);
  color: var(--on-surface-variant);
  font-family: var(--font-headline);
  font-size: 0.56rem;
  font-weight: 900;
  line-height: 1;
}

.challenge-versus-row {
  position: relative;
  padding: 5px 10px 6px;
  grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr);
  gap: 6px;
}

.challenge-rank-pill {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  border-radius: var(--radius-full);
  padding: 2px 7px;
  background: rgba(24,33,35,0.06);
  color: var(--on-surface);
  font-family: var(--font-headline);
  font-size: 0.58rem;
  font-weight: 900;
  line-height: 1;
}

.challenge-rank-pill.is-friendly {
  color: var(--on-surface-variant);
  background: rgba(24,33,35,0.05);
}

.challenge-open-pill {
  min-height: 20px;
  padding: 2px 7px;
  font-size: 0.58rem;
}

.challenge-player-slot,
.challenge-join-slot {
  gap: 2px;
}

.challenge-player-avatar,
.challenge-join-circle {
  width: 42px;
  height: 42px;
  border-radius: var(--radius-md);
}

.challenge-player-slot strong,
.challenge-join-slot strong {
  margin-top: 1px;
  font-size: 0.7rem;
}

.challenge-player-slot small,
.challenge-join-slot small {
  font-size: 0.58rem;
}

.challenge-vs-mark {
  align-self: center;
  font-size: 0.74rem;
  color: #b8c0c3;
}

.challenge-join-circle {
  border-width: 1px;
}

.challenge-join-circle .material-symbols-outlined {
  font-size: 1.1rem;
}

.challenge-detail-row {
  margin: 0 10px 8px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
  min-height: 20px;
  color: var(--on-surface-variant);
}

.challenge-detail-row:last-child {
  margin-bottom: 8px;
}

.challenge-detail-row > .material-symbols-outlined {
  font-size: 0.95rem;
  color: var(--on-surface-variant);
}

.challenge-detail-row > span:nth-child(2) {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--on-surface);
  font-size: 0.68rem;
  font-weight: 800;
}

.challenge-report-inline {
  min-height: 28px;
  padding: 0 8px;
  border-radius: var(--radius-sm);
  font-size: 0.62rem;
}

.profile-my-match-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* ══════════════════════════════════════════════════════════
   SPLASH / LOADING SCREEN
   ══════════════════════════════════════════════════════════ */

.splash-screen {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: var(--surface-container-lowest);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.18s ease;
}

.splash-screen.fade-out {
  opacity: 0;
  pointer-events: none;
}

.splash-screen.hidden {
  display: none !important;
}

.splash-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  text-align: center;
  padding: 0 32px;
}

/* Brand row */
.splash-brand {
  display: flex;
  align-items: center;
  gap: 18px;
}

.splash-ball {
  position: relative;
  width: 72px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.splash-ball-ring {
  position: absolute;
  inset: 0;
  border-radius: var(--radius-full);
  border: 3px solid var(--primary-container);
  animation: splashRingPulse 1.6s ease-in-out infinite;
}

@keyframes splashRingPulse {
  0%, 100% { transform: scale(1);   opacity: 1; }
  50%       { transform: scale(1.2); opacity: 0.5; }
}

.splash-ball-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--radius-full);
  background: radial-gradient(circle at 32% 28%, #d7ff7f 0%, var(--brand) 52%, #7ec400 100%);
  box-shadow: inset 0 0 0 1px rgba(43, 73, 0, 0.18);
  animation: splashIconSpin 3s linear infinite;
  position: relative;
  z-index: 1;
  filter: drop-shadow(0 0 14px rgba(189, 242, 31, 0.6));
}

.splash-brand-mark {
  position: relative;
  z-index: 2;
  width: 58px;
  height: 58px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 12px 22px rgba(43, 73, 0, 0.18));
}

.splash-brand-mark + .splash-ball-icon {
  display: none;
}

.splash-ball-icon::before,
.splash-ball-icon::after {
  content: "";
  position: absolute;
  inset: 5px;
  border: 2px solid rgba(43, 73, 0, 0.36);
  border-left-color: transparent;
  border-right-color: transparent;
  border-radius: var(--radius-full);
}

.splash-ball-icon::before {
  transform: rotate(32deg);
}

.splash-ball-icon::after {
  transform: rotate(-32deg);
}

@keyframes splashIconSpin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

.splash-brand-text {
  text-align: left;
}

.splash-kicker {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
}

.splash-title {
  margin: 4px 0 0;
  font-family: var(--font-headline);
  font-size: 2.8rem;
  font-weight: 900;
  letter-spacing: -0.06em;
  color: var(--on-surface);
  line-height: 1;
}

/* Status steps */
.splash-steps {
  display: flex;
  gap: 20px;
  align-items: center;
}

.splash-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  opacity: 0.3;
  transition: opacity 0.3s ease;
}

.splash-step.is-active {
  opacity: 1;
}

.splash-step.is-done {
  opacity: 0.7;
}

.splash-step-dot {
  width: 10px;
  height: 10px;
  border-radius: var(--radius-full);
  background: var(--surface-container-high);
  transition: background 0.3s ease, box-shadow 0.3s ease;
}

.splash-step.is-active .splash-step-dot {
  background: var(--primary-container);
  box-shadow: 0 0 0 4px rgba(189, 242, 31, 0.25);
  animation: splashDotPulse 1s ease-in-out infinite;
}

.splash-step.is-done .splash-step-dot {
  background: var(--primary);
}

@keyframes splashDotPulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(189, 242, 31, 0.25); }
  50%       { box-shadow: 0 0 0 8px rgba(189, 242, 31, 0.1); }
}

.splash-step-label {
  display: none;
  font-family: var(--font-headline);
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
}

.splash-step.is-active .splash-step-label {
  color: var(--primary);
}

/* Status text — hidden, kept for JS hooks */
.splash-status {
  display: none;
}

.splash-retry-btn {
  border: 0;
  border-radius: var(--radius-full);
  background: linear-gradient(135deg, var(--primary-fixed), #d9ff88);
  color: var(--on-primary-fixed);
  font-family: var(--font-headline);
  font-size: 0.86rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 0.85rem 1.35rem;
  box-shadow: 0 14px 28px -18px rgba(189, 242, 31, 0.95);
}

/* ══════════════════════════════════════════════════════════
   DESIGN PASS 2 — Profile Hero, Arena, Thailand, Sheet
   ══════════════════════════════════════════════════════════ */

/* ── Profile Reference Layout ── */
.profile-ref-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 6px 4px 2px;
}

.profile-ref-avatar-wrap {
  position: relative;
  width: 84px;
  height: 84px;
  border-radius: var(--radius-full);
  padding: 3px;
  background: linear-gradient(145deg, #ffffff, #d7dbe0);
  box-shadow: 0 10px 24px -16px rgba(44,47,48,0.5);
  flex-shrink: 0;
}

.profile-ref-avatar {
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
  border: 2px solid rgba(255,255,255,0.95);
  background: #ccd2d6;
}

.profile-ref-pro {
  position: absolute;
  right: -4px;
  bottom: -2px;
  border-radius: var(--radius-full);
  background: #427705;
  color: #f5ffd9;
  font-family: var(--font-headline);
  font-size: 0.55rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  line-height: 1;
  padding: 5px 7px;
  box-shadow: 0 6px 10px -8px rgba(44,47,48,0.6);
}

.profile-ref-main {
  min-width: 0;
  flex: 1;
}

.profile-ref-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.profile-ref-title-copy {
  min-width: 0;
  flex: 1;
}

.profile-ref-name {
  margin: 0;
  font-family: var(--font-headline);
  font-size: clamp(1.28rem, 4.9vw, 2rem);
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--on-surface);
  line-height: 1.05;
}

.profile-ref-location {
  margin: 6px 0 0;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.77rem;
  font-weight: 500;
  color: var(--on-surface-variant);
  white-space: nowrap;
}

.profile-ref-location .material-symbols-outlined {
  font-size: 14px;
  font-variation-settings: 'FILL' 1, 'wght' 520, 'GRAD' 0, 'opsz' 20;
}

.profile-ref-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  min-width: 150px;
  max-width: 188px;
  flex-shrink: 0;
}

.profile-ref-stats article {
  min-width: 0;
  padding: 8px 6px 7px;
  border-radius: 1rem;
  background: rgba(248, 250, 251, 0.92);
  border: 1px solid rgba(210, 216, 220, 0.82);
  text-align: center;
}

.profile-ref-stats article small {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.48rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--on-surface-variant);
  margin-bottom: 4px;
  white-space: nowrap;
}

.profile-ref-stats article strong {
  font-family: var(--font-headline);
  font-size: 0.88rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--on-surface);
}

.profile-ref-switch-card {
  padding: 0;
  margin-top: 10px;
  background: transparent;
  box-shadow: none;
}

.profile-ref-switch-card .profile-switch {
  border-radius: var(--radius-full);
  background: #e8eaec;
  padding: 6px;
  gap: 7px;
}

.profile-ref-switch-card .profile-view-btn {
  min-height: 46px;
  border-radius: var(--radius-full);
  font-size: 0.94rem;
  font-weight: 800;
  color: #55595c;
}

.profile-ref-switch-card .profile-view-btn.is-active {
  color: #252829;
  background: #ffffff;
  box-shadow: 0 8px 20px -16px rgba(44,47,48,0.5);
}

.profile-ref-dashboard {
  gap: 14px;
  margin-top: 4px;
}

.profile-evolution-card {
  background: #f3f4f5;
  border-radius: 2.3rem;
  box-shadow: 0 0 0 1px rgba(171,173,174,0.16);
  padding: 24px 20px 20px;
}

.profile-evolution-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 14px;
}

.profile-evolution-kicker {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.52rem;
  font-weight: 900;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--primary);
}

.profile-evolution-delta {
  margin: 6px 0 0;
  font-family: var(--font-headline);
  font-size: clamp(2.08rem, 8vw, 2.45rem);
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--on-surface);
  line-height: 1;
}

.profile-evolution-delta small {
  font-size: 0.47em;
  font-weight: 500;
  color: #414546;
  letter-spacing: normal;
  margin-left: 3px;
}

.profile-evolution-ranges {
  display: flex;
  gap: 7px;
  margin-top: 2px;
}

.profile-range-btn {
  border: none;
  border-radius: var(--radius-full);
  background: #dfe3e6;
  color: #353839;
  font-family: var(--font-headline);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  min-height: 31px;
  min-width: 45px;
  padding: 0 12px;
}

.profile-range-btn.is-active {
  background: #4e7f08;
  color: #10150a;
}

.profile-evolution-visual {
  position: relative;
  height: 215px;
  border-radius: 1.3rem;
  background: transparent;
  overflow: hidden;
  padding: 16px 10px 10px;
  display: flex;
  align-items: flex-end;
}

.profile-evolution-watermark {
  position: absolute;
  left: 9px;
  top: 34px;
  font-family: var(--font-headline);
  font-size: clamp(4.7rem, 23vw, 8rem);
  font-weight: 900;
  letter-spacing: -0.05em;
  color: rgba(89,92,93,0.13);
  line-height: 0.78;
  pointer-events: none;
}

.profile-evolution-bars {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: 4px;
  align-items: end;
  padding: 0 4px 0;
}

.profile-evolution-bar {
  border-radius: 999px 999px 0 0;
  background: linear-gradient(180deg, #d6f7a4, #c6eb84);
  min-height: 16%;
}

.profile-evolution-bar.is-current {
  background: linear-gradient(180deg, #7bac13, #3f6f04);
}

.profile-evolution-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 10px;
  padding-top: 15px;
  border-top: 1px solid rgba(171,173,174,0.24);
}

.profile-evolution-metrics article small {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: #666a6b;
  margin-bottom: 3px;
}

.profile-evolution-metrics article strong {
  font-family: var(--font-headline);
  font-size: 1.95rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--on-surface);
}

.profile-evolution-metrics article strong.is-green {
  color: var(--primary);
}

.profile-progression-panel {
  background: #f6f7f8;
  border-radius: 2.35rem;
  box-shadow: 0 0 0 1px rgba(171,173,174,0.18);
  padding: 24px 20px 20px;
}

.profile-progression-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}

.profile-progression-left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.profile-progression-icon {
  width: 42px;
  height: 42px;
  border-radius: var(--radius-full);
  display: grid;
  place-items: center;
  background: #eceef0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.9);
}

.profile-progression-icon .material-symbols-outlined {
  color: #9b9fa3;
  font-size: 20px;
  font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 20;
}

.profile-progression-kicker {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.52rem;
  font-weight: 900;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8b8f92;
}

.profile-progression-left h3 {
  margin: 3px 0 0;
  font-family: var(--font-headline);
  font-size: clamp(1.42rem, 6.3vw, 2.05rem);
  font-weight: 900;
  letter-spacing: -0.035em;
  line-height: 1.05;
}

.profile-progression-right {
  text-align: right;
  padding-top: 1px;
}

.profile-progression-right strong {
  display: block;
  font-family: var(--font-headline);
  font-size: clamp(1.44rem, 6vw, 2rem);
  font-style: italic;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--primary);
}

.profile-progression-right small {
  display: block;
  margin-top: 3px;
  font-size: 0.42rem;
  font-family: var(--font-headline);
  font-weight: 900;
  letter-spacing: 0.08em;
  color: #8b8f92;
}

.profile-progression-track-row {
  margin-top: 14px;
  display: flex;
  justify-content: space-between;
  font-family: var(--font-headline);
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #8b8f92;
}

.profile-progression-track-row span:last-child {
  color: #2f5e03;
}

.profile-progression-track {
  margin-top: 8px;
  height: 14px;
  border-radius: var(--radius-full);
  background: #e4e7ea;
  overflow: visible;
  position: relative;
  padding: 2px;
}

.profile-progression-fill {
  display: block;
  height: 100%;
  width: 0;
  border-radius: var(--radius-full);
  background: linear-gradient(90deg, #bcc3b6 0%, #8dc806 56%, #9df201 100%);
}

.profile-progression-marker {
  position: absolute;
  top: calc(100% + 2px);
  left: var(--tier-progress, 0%);
  transform: translateX(-50%);
  width: 20px;
  height: 20px;
  border-radius: var(--radius-full);
  display: grid;
  place-items: center;
  color: #3f7405;
}

.profile-progression-marker .material-symbols-outlined {
  font-size: 1.2rem;
  font-variation-settings: 'FILL' 1, 'wght' 600, 'GRAD' 0, 'opsz' 20;
}

.profile-progression-note {
  margin: 18px 0 0;
  padding: 12px 14px;
  border-radius: var(--radius-xl);
  background: #f5f6f7;
  border: 1px dashed rgba(171,173,174,0.38);
  font-size: 0.73rem;
  color: var(--on-surface-variant);
  line-height: 1.38;
  display: flex;
  align-items: center;
  gap: 10px;
}

.profile-progression-note .material-symbols-outlined {
  width: 24px;
  height: 24px;
  border-radius: var(--radius-full);
  display: grid;
  place-items: center;
  background: #3f7004;
  color: #d7ff99;
  font-size: 15px;
  font-variation-settings: 'FILL' 1, 'wght' 600, 'GRAD' 0, 'opsz' 20;
  flex-shrink: 0;
}

.profile-progression-note strong {
  color: #1f2425;
}

.profile-results-block {
  margin-top: 4px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.profile-results-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 0 2px;
}

.profile-results-head h3 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: clamp(1.32rem, 6vw, 2rem);
  font-weight: 900;
  letter-spacing: -0.03em;
  color: #1d2223;
}

.profile-results-head small {
  font-family: var(--font-headline);
  font-size: 0.88rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  color: var(--primary);
}

.profile-results-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.profile-result-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 12px;
  border-radius: 2rem;
  border: 1px solid rgba(171,173,174,0.2);
  background: #ffffff;
  box-shadow: 0 8px 18px -20px rgba(44,47,48,0.45);
}

.profile-result-left {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.profile-result-avatar {
  width: 56px;
  height: 56px;
  border-radius: var(--radius-full);
  background: #f2f4f5;
  border: 1px solid rgba(171,173,174,0.3);
  overflow: hidden;
  flex-shrink: 0;
}

.profile-result-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-result-avatar-fallback {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 900;
  color: #5b5f60;
}

.profile-result-info {
  min-width: 0;
}

.profile-result-name {
  margin: 0;
  font-size: 1.04rem;
  font-weight: 800;
  color: var(--on-surface);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-result-time {
  margin: 1px 0 0;
  font-size: 0.84rem;
  font-weight: 500;
  color: var(--on-surface-variant);
}

.profile-result-right {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.profile-result-score {
  margin: 0;
  font-family: var(--font-headline);
  font-size: clamp(1.42rem, 5vw, 2rem);
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--on-surface);
  line-height: 1;
}

.profile-result-badge {
  border-radius: var(--radius-full);
  padding: 8px 12px;
  font-family: var(--font-headline);
  font-size: 0.8rem;
  font-weight: 900;
  letter-spacing: 0.09em;
}

.profile-result-badge.win {
  background: rgba(189, 242, 31, 0.18);
  color: #3a6300;
}

.profile-result-badge.loss {
  background: rgba(249,86,48,0.13);
  color: #b64022;
}

@media (max-width: 389px) {
  .profile-ref-avatar-wrap {
    width: 76px;
    height: 76px;
  }

  .profile-ref-title-row {
    gap: 8px;
  }

  .profile-ref-stats {
    gap: 6px;
    min-width: 138px;
    max-width: 174px;
  }

  .profile-ref-stats article small {
    font-size: 0.44rem;
  }

  .profile-evolution-visual {
    height: 180px;
  }

  .profile-evolution-metrics article strong {
    font-size: 1.52rem;
  }

  .profile-result-avatar {
    width: 48px;
    height: 48px;
  }

  .profile-result-name {
    font-size: 0.94rem;
  }

  .profile-result-time {
    font-size: 0.72rem;
  }

  .profile-result-badge {
    padding: 6px 10px;
    font-size: 0.72rem;
  }
}

/* ── Profile Tab — Full Identity Hero ── */
.profile-tab-hero-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 24px 16px 8px;
  gap: 6px;
  position: relative;
}

.profile-tab-glow {
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: 140px;
  border-radius: var(--radius-full);
  background: var(--primary-container);
  filter: blur(36px);
  opacity: 0.5;
  pointer-events: none;
}

.profile-tab-avatar-wrap {
  position: relative;
  width: 120px;
  height: 120px;
  z-index: 1;
}

.profile-tab-avatar-img {
  width: 120px;
  height: 120px;
  border-radius: var(--radius-full);
  object-fit: cover;
  background: var(--surface-container);
  box-shadow: 0 0 0 4px var(--surface-container-lowest), 0 0 0 7px var(--primary-container), 0 12px 32px -8px rgba(44,47,48,0.3);
}

.profile-tab-name {
  margin: 10px 0 0;
  font-family: var(--font-headline);
  font-size: 1.7rem;
  font-weight: 800;
  letter-spacing: -0.035em;
  color: var(--on-surface);
  line-height: 1.1;
}

.profile-tab-sub-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 4px;
}

.profile-tab-sub-icon {
  font-size: 15px;
  color: var(--on-surface-variant);
}

.profile-tab-handle {
  font-size: 0.82rem;
  color: var(--on-surface-variant);
  font-weight: 500;
}

.profile-tab-role-pill {
  background: var(--secondary-container);
  color: var(--on-secondary-container);
  font-family: var(--font-headline);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: var(--radius-sm);
}

.profile-tab-location-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin-top: 2px;
}

.profile-tab-loc-icon {
  font-size: 16px;
  color: var(--primary);
  font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 20;
}

.profile-tab-location-row span:last-child {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--on-surface-variant);
}

/* ── Performance Card — Big ELO Header ── */
.perf-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  padding: 20px 20px 0;
}

.perf-elo-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-top: 4px;
}

.perf-elo-big {
  font-family: var(--font-headline);
  font-size: 3rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--on-surface);
  line-height: 1;
}

.perf-elo-trend {
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 700;
  color: var(--primary);
  display: flex;
  align-items: center;
  gap: 2px;
}

.perf-elo-trend.positive { color: var(--win-text); }
.perf-elo-trend.negative { color: var(--loss-text); }

.range-picker-inline {
  display: flex;
  background: var(--surface-container-low);
  border-radius: var(--radius-sm);
  padding: 3px;
  gap: 2px;
  flex-shrink: 0;
}

.range-btn-sm {
  padding: 5px 12px;
  border: none;
  border-radius: var(--radius-xs);
  background: transparent;
  font-family: var(--font-headline);
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  cursor: pointer;
  transition: background 0.12s, color 0.12s;
}

.range-btn-sm.is-active {
  background: var(--surface-container-lowest);
  color: var(--on-surface);
  box-shadow: 0 1px 4px rgba(44,47,48,0.1);
}

/* ── Challenge Horizontal Scroll ── */
.challenge-horiz-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  margin: 0 -4px;
  padding: 4px 4px 12px;
}
.challenge-horiz-scroll::-webkit-scrollbar { display: none; }

.challenge-horiz-list {
  display: flex;
  flex-direction: row;
  gap: 12px;
  list-style: none;
  margin: 0;
  padding: 0 4px;
  width: max-content;
}

.challenge-horiz-list .challenge-item {
  flex-shrink: 0;
  width: 260px;
}

/* ── Score Sets Input ── */
.score-sets-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 4px;
}

.score-set-input {
  flex: 1;
  text-align: center;
  font-family: var(--font-headline);
  font-size: 2rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--on-surface);
  border: none;
  border-radius: var(--radius-md);
  background: var(--surface-container-low);
  padding: 16px 8px;
  width: 100%;
  -moz-appearance: textfield;
}
.score-set-input::-webkit-outer-spin-button,
.score-set-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.score-set-input:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--primary-container);
  background: var(--surface-container-lowest);
}

.score-sets-dash {
  font-family: var(--font-headline);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--on-surface-variant);
  flex-shrink: 0;
}

/* ── Leaderboard Enhancements ── */
.leaderboard-search {
  margin-bottom: 12px;
}

.leaderboard-table .me-row {
  background: rgba(189, 242, 31, 0.15);
  border-left: 3px solid var(--primary);
}

.leaderboard-table .me-row td:first-child {
  font-style: italic;
  font-weight: 900;
  color: var(--primary);
}

/* ── Thailand Ranking Hero ── */
.elite-domain-hero {
  overflow: hidden;
  position: relative;
}

.elite-domain-glow {
  position: absolute;
  right: -40px;
  top: -40px;
  width: 180px;
  height: 180px;
  border-radius: var(--radius-full);
  background: var(--primary-container);
  opacity: 0.25;
  filter: blur(40px);
  pointer-events: none;
}

.elite-domain-inner {
  position: relative;
  z-index: 1;
  padding: 24px 20px 20px;
}

.elite-domain-label {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 10px;
}

.elite-domain-globe {
  font-size: 18px;
  color: var(--primary);
}

.national-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.national-stats-grid article {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
  padding: 12px;
  border-radius: var(--radius-lg);
  border: 1px solid rgba(24,33,35,0.08);
  background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(247,249,249,0.9));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.74);
}

.national-stats-grid article > .material-symbols-outlined {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-md);
  background: rgba(189, 242, 31, 0.18);
  color: var(--primary);
  font-size: 1.08rem;
}

.national-stats-grid small {
  display: block;
  font-family: var(--font-headline);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  margin-bottom: 2px;
}

.national-stats-grid strong {
  font-family: var(--font-headline);
  font-size: 1.5rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--on-surface);
}

/* ══ Quick Post Form ══════════════════════════════════════════════ */

.qp-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-bottom: 8px;
}

.qp-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.qp-section-label {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: var(--on-surface-variant);
  text-transform: uppercase;
  padding-left: 2px;
}

/* ── Match Type Grid ── */
.qp-type-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}

.post-type-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 14px 14px 16px;
  border-radius: 20px;
  border: 1px solid rgba(171,173,174,0.2);
  background: linear-gradient(160deg, rgba(255,255,255,0.99), rgba(245,246,247,0.95));
  box-shadow: 0 4px 16px -10px rgba(44,47,48,0.18);
  cursor: pointer;
  text-align: left;
  min-height: 100px;
}

.qp-type-icon {
  font-size: 26px;
  color: #6a7880;
}

.qp-type-title {
  font-size: 0.88rem;
  font-weight: 900;
  color: #1f2424;
  letter-spacing: -0.02em;
  line-height: 1.15;
  font-family: var(--font-headline);
}

.qp-type-sub {
  font-size: 0.7rem;
  color: var(--on-surface-variant);
  line-height: 1.3;
}

.post-type-card.is-active {
  background: linear-gradient(160deg, rgba(236,253,208,0.98), rgba(225,245,195,0.94));
  border-color: rgba(130,200,30,0.5);
  box-shadow: 0 6px 20px -10px rgba(100,160,0,0.3);
}

.post-type-card.is-active .qp-type-icon {
  color: #3d6a00;
}

.post-type-card.is-active .qp-type-title {
  color: #2b4900;
}

.post-type-card.is-active .qp-type-sub {
  color: #4a7500;
}

/* ── Details Card ── */
.qp-detail-card {
  background: #ffffff;
  border-radius: 20px;
  border: 1px solid rgba(24,33,35,0.07);
  box-shadow: 0 4px 20px -12px rgba(24,33,35,0.14);
  overflow: hidden;
}

.qp-divider {
  height: 1px;
  background: rgba(24,33,35,0.06);
  margin: 0 16px;
}

.qp-detail-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 16px;
  min-height: 54px;
  position: relative;
}

.qp-row-icon {
  font-size: 20px;
  color: #8a9598;
  flex-shrink: 0;
  width: 22px;
  text-align: center;
}

.qp-row-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--on-surface);
  white-space: nowrap;
  flex-shrink: 0;
}

.qp-row-label small {
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--on-surface-variant);
}

.qp-row-value {
  margin-left: auto;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--on-surface);
  text-align: right;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 60%;
}

.qp-row-value.is-placeholder {
  color: var(--on-surface-variant);
  font-weight: 400;
}

.qp-row-chevron {
  font-size: 18px;
  color: #b0b8bb;
  flex-shrink: 0;
}

/* Date row — nav arrows + native overlay */
.qp-date-nav {
  display: flex;
  align-items: center;
  gap: 0;
  margin-left: auto;
}

.qp-date-display-label {
  cursor: pointer;
  padding: 0 4px;
}

.qp-date-display-label .qp-row-value {
  margin-left: 0;
}

.qp-date-arrow {
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: var(--on-surface-variant);
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  position: relative;
  z-index: 3;
  vertical-align: middle;
}

.qp-date-arrow:disabled {
  opacity: 0.2;
  cursor: default;
}

.qp-date-arrow .material-symbols-outlined {
  font-size: 20px;
  line-height: 1;
  display: block;
}

.qp-date-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
  /* Remove any sheet-card input overrides */
  border-radius: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
}

/* Time row */
.qp-time-row { gap: 10px; }

.qp-time-pair {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}

.qp-time-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
}

.qp-time-cell small {
  font-size: 0.55rem;
  font-weight: 700;
  color: var(--on-surface-variant);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1;
}

.qp-time-cell input[type="time"] {
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  color: var(--on-surface) !important;
  background: var(--surface-container-low) !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 6px 8px !important;
  width: 80px;
  text-align: center;
  box-shadow: none !important;
}

.qp-time-sep {
  font-size: 0.9rem;
  color: var(--on-surface-variant);
  font-weight: 300;
  padding-top: 14px;
}

.qp-time-select {
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  color: var(--on-surface) !important;
  background: var(--surface-container-low) !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 6px 4px !important;
  width: 76px;
  text-align: center;
  box-shadow: none !important;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

/* Venue row */
.qp-venue-row { align-items: flex-start; padding-top: 14px; }

.qp-venue-body {
  flex: 1;
  min-width: 0;
}

.qp-venue-input-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
  background: var(--surface-container-low);
  border-radius: 12px;
  padding: 8px 10px;
}

.qp-venue-input-wrap input {
  flex: 1;
  font-size: 0.83rem !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--on-surface) !important;
  min-width: 0;
}

.qp-venue-selected {
  margin-top: 6px;
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.qp-venue-selected strong {
  font-size: 0.83rem;
  font-weight: 700;
  color: var(--on-surface);
}

.qp-venue-selected small {
  font-size: 0.72rem;
  color: var(--on-surface-variant);
}

/* Mode / Type pill groups */
.qp-pill-group {
  display: flex;
  gap: 6px;
  margin-left: auto;
}

.qp-pill {
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  border: 1px solid rgba(24,33,35,0.12);
  background: transparent;
  color: var(--on-surface-variant);
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}

.qp-pill.is-active {
  background: rgba(189, 242, 31, 0.18);
  border-color: rgba(120,180,0,0.45);
  color: #395f00;
}

/* Players row */
.qp-setting-row.qp-players-row {
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 12px;
  padding-block: 14px;
}

.qp-players-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.qp-players-count {
  font-family: var(--font-headline);
  font-size: 0.96rem;
  font-weight: 800;
  color: #2f3538;
  white-space: nowrap;
}

.qp-players-row .quick-party-compact-slots {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 12px;
}

.quick-party-player-chip {
  width: 78px;
  min-width: 0;
  border: none;
  background: transparent;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  text-align: center;
  color: inherit;
  cursor: pointer;
}

.quick-party-player-chip.is-me {
  cursor: default;
}

.quick-party-player-chip:disabled {
  opacity: 1;
}

.quick-party-player-avatar,
.quick-party-player-circle {
  width: 56px;
  height: 56px;
  border-radius: 999px;
  flex-shrink: 0;
}

.quick-party-player-avatar {
  display: block;
  object-fit: cover;
  border: 2px solid rgba(24, 33, 35, 0.09);
}

.quick-party-player-chip.is-me .quick-party-player-avatar {
  border-color: rgba(109, 159, 23, 0.5);
}

.quick-party-player-circle {
  border: 2px dashed rgba(24, 33, 35, 0.18);
  background: #fafafa;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.quick-party-player-circle .material-symbols-outlined {
  font-size: 31px;
  color: rgba(24, 33, 35, 0.62);
}

.quick-party-player-name {
  font-size: 0.83rem;
  font-weight: 700;
  line-height: 1.2;
  color: #2b3134;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quick-party-player-chip.is-empty .quick-party-player-name {
  font-weight: 600;
  color: #8b9195;
}

.quick-party-player-meta {
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.1;
  color: #5e9722;
}

.quick-party-invite-btn {
  align-self: flex-start;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid #d7e5c1;
  border-radius: 12px;
  background: #eef5e0;
  color: #517d1c;
  font-family: var(--font-headline);
  font-size: 0.86rem;
  font-weight: 700;
  padding: 0 12px;
  cursor: pointer;
}

.quick-party-invite-btn .material-symbols-outlined {
  font-size: 18px;
}

.quick-party-invite-btn:disabled {
  background: #f3f4f5;
  border-color: #e2e5e7;
  color: #a2aaaf;
  cursor: default;
}

.quick-match-setup {
  display: block;
}

.quick-match-option-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.quick-match-option-group {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.quick-accepted-field {
  grid-column: 1 / -1;
}

.quick-match-option-group small {
  padding-left: 4px;
  font-size: 0.68rem;
  font-weight: 800;
  color: var(--on-surface-variant);
}

.quick-pill-toggle {
  min-height: 48px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  border-radius: 20px;
  border: 1px solid rgba(171,173,174,0.18);
  background: linear-gradient(180deg, rgba(248,249,250,0.98), rgba(239,241,242,0.92));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.84), 0 16px 24px -28px rgba(44,47,48,0.3);
}

.quick-pill-option {
  min-width: 0;
  border: none;
  border-radius: 16px;
  background: transparent;
  color: var(--on-surface-variant);
  font-family: var(--font-headline);
  font-size: 0.74rem;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  transition: background 0.16s ease, color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.quick-pill-option.is-active {
  background: var(--primary);
  color: var(--on-primary-fixed);
  box-shadow: 0 10px 22px -15px rgba(121,166,29,0.7);
}

.quick-pill-option:active {
  transform: scale(0.97);
}

.quick-accepted-shell {
  min-height: 52px !important;
  border-radius: 20px;
  padding: 0 14px !important;
  column-gap: 10px !important;
}

.quick-accepted-shell select {
  height: 50px;
  min-height: 50px;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-weight: 800;
}

/* ── Quick Party Section ─────────────────────────────────────────── */
.quick-party-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.quick-party-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.quick-party-size-pills {
  display: flex;
  flex-direction: row;
  gap: 5px;
  flex-wrap: nowrap;
}

.quick-party-size-pill {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  border: 1px solid rgba(24,33,35,0.14);
  background: transparent;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--on-surface-variant);
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}

.quick-party-size-pill.is-active {
  background: var(--on-surface);
  border-color: var(--on-surface);
  color: var(--surface);
}

/* Party slot grid */
.quick-party-slots {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px;
}

.quick-party-slot {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  min-width: 0;
  flex: 0 0 calc(25% - 8px);
  max-width: 80px;
  position: relative;
  background: none;
  border: none;
  padding: 0;
  text-decoration: none;
}

.quick-party-slot.is-empty {
  cursor: pointer;
}

.quick-party-slot.is-filled {
  cursor: default;
}

.quick-party-slot.is-filled.is-changeable {
  cursor: pointer;
}

/* Slot avatar image */
.quick-party-slot-avatar {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  object-fit: cover;
  border: 2px solid rgba(24,33,35,0.08);
  display: block;
}

/* Empty slot join circle */
.quick-party-slot-circle {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  border: 2px dashed rgba(24,33,35,0.22);
  background: rgba(24,33,35,0.03);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.quick-party-slot-circle .material-symbols-outlined {
  font-size: 22px;
  color: rgba(24,33,35,0.35);
}

/* Me slot (current user) — solid border */
.quick-party-slot.is-me .quick-party-slot-avatar {
  border-color: rgba(24,33,35,0.22);
  border-width: 2px;
}

/* Labels */
.quick-party-slot-name {
  font-size: 0.64rem;
  font-weight: 700;
  color: var(--on-surface);
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: center;
  line-height: 1.2;
}

.quick-party-slot-elo {
  font-size: 0.58rem;
  font-weight: 600;
  color: var(--on-surface-variant);
  text-align: center;
  white-space: nowrap;
  line-height: 1;
}

/* Remove button on filled slot */
.quick-party-slot-remove {
  position: absolute;
  top: -5px;
  right: -5px;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: var(--on-surface);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 1;
  padding: 0;
}

.quick-party-slot-remove .material-symbols-outlined {
  font-size: 12px;
  color: var(--surface);
}

/* Sheet inputs — pill shaped */
.sheet-card input,
.sheet-card textarea,
.sheet-card select {
  border-radius: var(--radius-full) !important;
  background: var(--surface-container-low) !important;
  border: none !important;
  padding: 14px 20px !important;
  font-size: 0.9rem !important;
  color: var(--on-surface) !important;
  width: 100%;
}

.sheet-card textarea {
  border-radius: 24px !important;
  min-height: 104px;
  resize: none;
  background: linear-gradient(180deg, rgba(248,249,250,0.98), rgba(239,241,242,0.94)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.82), 0 16px 24px -28px rgba(44,47,48,0.3);
}

.sheet-field {
  display: block;
}

.sheet-card .input-icon-wrap {
  min-height: 62px;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  column-gap: 14px;
}

.sheet-input-shell {
  border-radius: 24px;
  border: 1px solid rgba(171,173,174,0.18);
  background: linear-gradient(180deg, rgba(248,249,250,0.98), rgba(239,241,242,0.92));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.84), 0 16px 24px -28px rgba(44,47,48,0.3);
  padding: 0 18px 0 18px;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.sheet-input-shell:focus-within {
  border-color: rgba(121,166,29,0.4);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.9),
    0 0 0 4px rgba(189, 242, 31, 0.16),
    0 16px 24px -28px rgba(44,47,48,0.3);
}

.court-picker-field {
  position: relative;
}

.court-picker-combobox {
  position: relative;
}

.court-picker-input-shell {
  grid-template-columns: 20px minmax(0, 1fr) 34px !important;
}

.court-picker-clear-btn {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: none;
  border-radius: var(--radius-full);
  background: rgba(31,36,36,0.06);
  color: var(--on-surface-variant);
  cursor: pointer;
  transition: background 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.court-picker-clear-btn:hover {
  background: rgba(31,36,36,0.1);
  color: var(--on-surface);
}

.court-picker-clear-btn:active {
  transform: scale(0.94);
}

.court-picker-clear-btn .material-symbols-outlined {
  font-size: 18px;
}

.court-picker-dropdown {
  position: absolute;
  z-index: 35;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  max-height: min(42vh, 320px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 6px;
  border-radius: 24px;
  border: 1px solid rgba(31,36,36,0.08);
  background: rgba(255,255,255,0.98);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.86),
    0 24px 52px -26px rgba(31,36,36,0.36);
}

.court-picker-option {
  width: 100%;
  min-height: 52px;
  display: block;
  padding: 9px 11px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: var(--on-surface);
  text-align: left;
  cursor: pointer;
  transition: background 0.16s ease, transform 0.16s ease;
}

.court-picker-option:hover,
.court-picker-option.is-selected {
  border-color: rgba(24,33,35,0.08);
  background: #f8faf9;
}

.court-picker-option:active {
  transform: scale(0.99);
}

.court-picker-option-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: rgba(189, 242, 31, 0.18);
  color: #416c00;
}

.court-picker-option-icon .material-symbols-outlined {
  font-size: 20px;
}

.court-picker-option-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.court-picker-option-main {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 10px;
}

.court-picker-option-copy strong,
.court-picker-selected strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--font-headline);
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.2;
  color: var(--on-surface);
}

.court-picker-option-copy small,
.court-picker-selected small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.72rem;
  line-height: 1.28;
  color: var(--on-surface-variant);
}

.court-picker-zone {
  display: block;
  color: #6b7376;
}

.court-picker-price {
  color: #111516;
  font-weight: 800;
  text-align: right;
}

.court-picker-empty {
  padding: 18px 14px;
  border-radius: 18px;
  background: var(--surface-container-low);
  color: var(--on-surface-variant);
  font-size: 0.82rem;
  font-weight: 700;
  text-align: center;
}

.court-picker-selected {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 9px 12px;
  border-radius: 18px;
  border: 1px solid rgba(121,166,29,0.18);
  background: linear-gradient(180deg, rgba(248,253,239,0.94), rgba(239,244,246,0.88));
}

.court-picker-selected-icon {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-full);
  background: rgba(189, 242, 31, 0.24);
  color: #416c00;
}

.court-picker-selected-icon .material-symbols-outlined {
  font-size: 18px;
}

.home-court-multi-select {
  position: relative;
  width: 100%;
}

.home-court-input-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 58px;
  padding: 0 14px;
  border-radius: 24px;
  border: 1px solid rgba(171,173,174,0.18);
  background: linear-gradient(180deg, rgba(248,249,250,0.98), rgba(239,241,242,0.92));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.84), 0 16px 24px -28px rgba(44,47,48,0.3);
}

.home-court-input-shell input {
  border: none;
  outline: none;
  width: 100%;
  background: transparent;
  color: var(--on-surface);
  font-size: 0.92rem;
  padding: 0;
}

.home-court-clear-btn {
  border: none;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-full);
  background: rgba(31,36,36,0.06);
  color: var(--on-surface-variant);
  cursor: pointer;
}

.home-court-clear-btn:hover {
  background: rgba(31,36,36,0.1);
  color: var(--on-surface);
}

.home-court-clear-btn:active {
  transform: scale(0.94);
}

.home-court-clear-btn .material-symbols-outlined {
  font-size: 18px;
}

.home-court-dropdown {
  position: absolute;
  z-index: 35;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  max-height: min(42vh, 320px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 6px;
  border-radius: 24px;
  border: 1px solid rgba(31,36,36,0.08);
  background: rgba(255,255,255,0.98);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.86), 0 24px 52px -26px rgba(31,36,36,0.36);
}

.home-court-selected-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 8px;
}

.home-court-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: 999px;
  border: 1px solid rgba(24,33,35,0.14);
  background: linear-gradient(180deg, rgba(248,253,239,0.94), rgba(239,244,246,0.88));
  color: var(--on-surface);
  padding: 5px 10px;
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
}

.home-court-pill .material-symbols-outlined {
  font-size: 14px;
}

.home-court-option {
  width: 100%;
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 10px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  cursor: pointer;
  transition: background 0.16s ease, transform 0.16s ease;
}

.home-court-option:hover {
  border-color: rgba(24,33,35,0.08);
  background: #f8faf9;
}

.quick-schedule-field {
  display: block;
}

.quick-schedule-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.quick-schedule-cell {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.quick-schedule-cell small {
  padding-left: 4px;
  font-size: 0.68rem;
  font-weight: 800;
  color: var(--on-surface-variant);
}

.quick-schedule-shell {
  min-height: 54px !important;
  border-radius: 20px;
  padding: 0 14px !important;
  column-gap: 10px !important;
}

.quick-schedule-shell input {
  height: 52px !important;
  min-height: 52px !important;
  font-family: var(--font-body);
  font-weight: 700;
  color-scheme: light;
}

.quick-schedule-shell input[type="date"],
.quick-schedule-shell input[type="time"] {
  appearance: none;
  -webkit-appearance: none;
}

.quick-schedule-shell input::-webkit-calendar-picker-indicator {
  opacity: 0.58;
  cursor: pointer;
}

.sheet-card .input-icon-wrap .input-icon {
  position: static;
  left: auto;
  top: auto;
  transform: none;
  font-size: 20px;
  color: var(--on-surface);
  margin: 0;
  width: 20px;
  height: 20px;
  z-index: auto;
}

.sheet-card .input-icon-wrap input {
  padding: 0 !important;
  height: 60px;
  min-height: 60px;
  width: 100%;
  min-width: 0;
  background: transparent !important;
  box-shadow: none !important;
}

.sheet-card label > span:not(.input-icon),
.sheet-card .sheet-field-label,
.sheet-card .form-label-text {
  font-family: var(--font-headline) !important;
  font-size: 0.62rem !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
  color: var(--on-surface-variant) !important;
  margin-bottom: 8px;
  display: block;
}

.sheet-card .form-label-text:first-child {
  color: var(--primary) !important;
}

.sheet-card .input-icon-wrap input::placeholder,
.sheet-card textarea::placeholder {
  color: #7f8a8f;
}

/* POST NOW button */
.sheet-cta {
  border-radius: var(--radius-full) !important;
  font-size: 0.88rem;
  letter-spacing: 0.16em;
  padding: 18px 16px;
}

/* ══════════════════════════════════════════════════════════
   ARENA — Upcoming Matches, Check-in, Submit Result
   ══════════════════════════════════════════════════════════ */

/* ── Arena Hero Header ── */
.arena-hero {
  padding: 4px 4px 8px;
}

.arena-hero-title {
  font-family: var(--font-headline);
  font-size: 2.5rem;
  font-weight: 900;
  letter-spacing: -0.06em;
  color: var(--on-surface);
  margin: 0 0 4px;
  line-height: 1;
}

.arena-hero-sub {
  margin: 0;
  font-size: 0.85rem;
  color: var(--on-surface-variant);
  font-weight: 500;
}

.arena-guide {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: -2px 0 6px;
}

.arena-guide span {
  display: inline-flex;
  align-items: center;
  border-radius: var(--radius-full);
  padding: 5px 10px;
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--surface-container-low);
  color: var(--on-surface-variant);
}

/* ── Arena Tab Switcher ── */
.arena-tabs-row {
  display: flex;
  gap: 28px;
  padding: 4px 0;
  position: relative;
}

.arena-tab-btn {
  background: none;
  border: none;
  padding: 4px 0 10px;
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  color: var(--on-surface-variant);
  position: relative;
  transition: color 0.15s;
}

.arena-tab-btn::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  border-radius: var(--radius-full);
  background: var(--primary);
  transform: scaleX(0);
  transition: transform 0.2s ease;
}

.arena-tab-btn.is-active {
  color: var(--primary);
}

.arena-tab-btn.is-active::after {
  transform: scaleX(1);
}

.arena-panel { display: flex; flex-direction: column; gap: 14px; }
.arena-panel.hidden { display: none; }

/* ── Upcoming Match List ── */
.upcoming-match-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Featured "Today" card */
.upcoming-card {
  border-radius: var(--radius-xl);
  background: var(--surface-container-lowest);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  position: relative;
}

.upcoming-card.is-today {
  box-shadow: 0 16px 40px -8px rgba(189, 242, 31, 0.18), 0 4px 16px -4px rgba(44,47,48,0.12);
}

.upcoming-card-inner {
  padding: 20px 18px 16px;
}

.upcoming-date-badge {
  position: absolute;
  top: 14px;
  right: 16px;
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: var(--radius-full);
}

.upcoming-date-badge.today {
  background: var(--primary-container);
  color: var(--on-primary-fixed);
}

.upcoming-date-badge.tomorrow {
  background: var(--surface-container-high);
  color: var(--on-surface-variant);
}

.upcoming-date-badge.future {
  background: var(--surface-container-high);
  color: var(--on-surface-variant);
}

.upcoming-date-time {
  text-align: right;
}

.upcoming-date-time .udt-date {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--on-surface);
}

.upcoming-date-time .udt-time {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--primary);
}

/* Opponent row */
.upcoming-opponent-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
  padding-right: 80px; /* space for date badge */
}

.upcoming-opp-avatar-wrap {
  position: relative;
  flex-shrink: 0;
}

.upcoming-opp-avatar {
  width: 56px;
  height: 56px;
  border-radius: var(--radius-full);
  object-fit: cover;
  background: var(--surface-container);
}

.is-today .upcoming-opp-avatar {
  box-shadow: 0 0 0 3px var(--primary-container);
}

.upcoming-opp-info .upcoming-opp-name {
  margin: 0 0 2px;
  font-family: var(--font-headline);
  font-size: 1.1rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--on-surface);
}

.upcoming-opp-info .upcoming-opp-meta {
  margin: 0;
  font-size: 0.75rem;
  color: var(--on-surface-variant);
  display: flex;
  align-items: center;
  gap: 3px;
}

.upcoming-opp-meta .material-symbols-outlined {
  font-size: 13px;
}

/* Venue + time detail row */
.upcoming-detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  background: var(--surface-container-low);
  border-radius: var(--radius-md);
  padding: 12px 14px;
  margin-bottom: 14px;
}

.upcoming-detail-grid .detail-label {
  font-family: var(--font-headline);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  margin-bottom: 2px;
}

.upcoming-detail-grid .detail-value {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--on-surface);
}

/* Location row (for PENDING cards) */
.upcoming-location-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--surface-container-low);
  border-radius: var(--radius-md);
  padding: 10px 14px;
  margin-bottom: 14px;
}

.upcoming-location-row .loc-left {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--on-surface);
}

.upcoming-location-row .loc-left .material-symbols-outlined {
  font-size: 18px;
  color: var(--primary);
  font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 20;
}

.pending-chip {
  font-family: var(--font-headline);
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: var(--radius-sm);
  background: var(--win-bg);
  color: #7a5500;
  background: rgba(252,243,93,0.4);
}

/* Action buttons */
.upcoming-actions {
  display: flex;
  gap: 8px;
}

.checkin-btn {
  flex: 1;
  height: 50px;
  border: none;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-fixed-dim) 100%);
  color: var(--on-primary-fixed);
  font-family: var(--font-headline);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 10px 24px -6px rgba(62,102,0,0.35);
  transition: opacity 0.15s, transform 0.12s;
}

.checkin-btn:active { transform: scale(0.97); opacity: 0.9; }

.upcoming-secondary-btn {
  height: 50px;
  padding: 0 16px;
  border: none;
  border-radius: var(--radius-lg);
  background: var(--surface-container-high);
  color: var(--on-surface);
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition: background 0.12s;
}

.upcoming-secondary-btn:active { background: var(--surface-container-highest); }

/* ── BOOST Callout ── */
.arena-boost-callout {
  border-radius: var(--radius-xl);
  background: var(--primary-container);
  padding: 28px 22px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  position: relative;
  overflow: hidden;
}

.arena-boost-bg {
  position: absolute;
  right: -20px;
  bottom: -20px;
  opacity: 0.12;
}

.arena-boost-deco {
  font-size: 100px;
  color: var(--on-primary-fixed);
  font-variation-settings: 'FILL' 1, 'wght' 700, 'GRAD' 0, 'opsz' 48;
}

.arena-boost-tag {
  background: var(--on-primary-fixed);
  color: var(--primary-container);
  font-family: var(--font-headline);
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: var(--radius-full);
}

.arena-boost-callout h3 {
  margin: 4px 0 0;
  font-family: var(--font-headline);
  font-size: 1.3rem;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--on-primary-fixed);
  line-height: 1.2;
}

.arena-boost-callout p {
  margin: 0;
  font-size: 0.8rem;
  color: var(--on-primary-fixed);
  opacity: 0.75;
  max-width: 200px;
  line-height: 1.5;
}

.arena-boost-btn {
  margin-top: 4px;
  background: var(--on-primary-fixed);
  color: var(--primary-container);
  border: none;
  border-radius: var(--radius-full);
  padding: 10px 20px;
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity 0.15s;
}

.arena-boost-btn:active { opacity: 0.85; }

/* ── Report Match — Set Score Grid ── */
.report-match-card { padding: 20px; }

.arena-report-fab {
  z-index: 57;
}

.arena-report-modal {
  position: fixed;
  inset: 0;
  z-index: 66;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 12px 12px 0;
}

.arena-report-backdrop {
  position: absolute;
  inset: 0;
  border: none;
  background: rgba(12,15,16,0.46);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  cursor: pointer;
}

.arena-report-sheet {
  position: relative;
  z-index: 1;
  width: min(560px, 100%);
  max-height: min(84vh, 820px);
  overflow-y: auto;
  border-radius: 1.5rem 1.5rem 0 0;
  background: #ffffff;
  box-shadow: 0 -12px 36px -20px rgba(44,47,48,0.42);
  padding: 14px 14px calc(22px + env(safe-area-inset-bottom));
}

.arena-report-head {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.arena-report-head h4#arenaReportTitle {
  margin: 0;
  text-align: center;
  font-family: var(--font-headline);
  font-size: 0.9rem;
  font-weight: 800;
  color: #1f2425;
}

.arena-report-close {
  width: 24px;
  height: 24px;
  border-radius: 8px;
  border: 1px solid #d9e0e3;
  background: #ffffff;
  color: #6f777b;
  display: grid;
  place-items: center;
  cursor: pointer;
  flex-shrink: 0;
}

.arena-report-close .material-symbols-outlined {
  font-size: 16px;
}

.arena-report-head-spacer {
  width: 24px;
  height: 24px;
}

.arena-report-sheet .report-match-card {
  padding: 0;
}

.report-tagline {
  font-size: 0.8rem;
  color: var(--on-surface-variant);
  margin: -4px 0 16px;
  line-height: 1.5;
}

.outcome-section { margin-bottom: 4px; }
.outcome-label-row { margin-bottom: 8px; }

.set-score-section {
  background: var(--surface-container-low);
  border-radius: var(--radius-lg);
  padding: 16px;
  margin-bottom: 4px;
}

.set-score-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.set-score-header {
  display: grid;
  grid-template-columns: 60px 1fr 1fr 1fr;
  gap: 6px;
  margin-bottom: 4px;
}

.set-score-header div {
  font-family: var(--font-headline);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  text-align: center;
}

.set-score-row {
  display: grid;
  grid-template-columns: 60px 1fr 1fr 1fr;
  gap: 6px;
  align-items: center;
}

.set-row-label {
  font-family: var(--font-headline);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--on-surface);
}

.opp-label {
  opacity: 0.5;
  color: var(--on-surface-variant);
}

.set-cell {
  text-align: center;
  font-family: var(--font-headline);
  font-size: 1.4rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  border: none;
  border-radius: var(--radius-sm);
  padding: 12px 4px;
  width: 100%;
  -moz-appearance: textfield;
  transition: box-shadow 0.15s;
}

.set-cell::-webkit-outer-spin-button,
.set-cell::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.you-cell {
  background: var(--surface-container-lowest);
  color: var(--primary);
}

.you-cell:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--primary-container);
}

.opp-cell {
  background: rgba(218,221,223,0.5);
  color: rgba(89,92,93,0.6);
}

.opp-cell:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--surface-container-high);
}

.report-submit-btn {
  width: 100%;
  height: 58px;
  font-size: 1rem;
  letter-spacing: 0.08em;
  border-radius: var(--radius-xl);
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-fixed-dim) 100%);
  box-shadow: 0 12px 28px -6px rgba(62,102,0,0.3);
}

.report-submit-note {
  text-align: center;
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  font-weight: 600;
  margin: 2px 0 0;
}

.group-activity-report-modal {
  position: fixed;
  inset: 0;
  z-index: 66;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.group-activity-report-modal.hidden {
  pointer-events: none;
}

.group-activity-report-backdrop {
  position: absolute;
  inset: 0;
  border: none;
  background: rgba(12,15,16,0.45);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  cursor: pointer;
}

.group-activity-report-sheet {
  position: relative;
  --report-score-size: clamp(50px, 13.8vw, 72px);
  --report-grid-gap: clamp(8px, 2vw, 10px);
  width: min(520px, 100%);
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
  border-radius: 1.9rem 1.9rem 0 0;
  background: linear-gradient(180deg, #ffffff, #fdfefe);
  border: 1px solid rgba(181,188,191,0.28);
  border-bottom: none;
  box-shadow: 0 -12px 30px -12px rgba(44,47,48,0.34);
  padding: 12px 16px calc(20px + env(safe-area-inset-bottom));
  z-index: 1;
}

.group-activity-report-modal:not(.hidden) .group-activity-report-sheet {
  animation: group-report-sheet-in 200ms cubic-bezier(0.2, 0.9, 0.25, 1) both;
}

@keyframes group-report-sheet-in {
  from {
    opacity: 0;
    transform: translateY(18px) scale(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.group-activity-report-sheet::before {
  content: "";
  display: block;
  width: 64px;
  height: 7px;
  border-radius: var(--radius-full);
  background: #e3e7e9;
  margin: 2px auto 12px;
}

.group-activity-report-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.group-activity-report-head h3 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1.34rem;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #1b2021;
}

.group-activity-report-close {
  border: none;
  width: 40px;
  height: 40px;
  border-radius: var(--radius-full);
  background: #edf1f2;
  color: #6f777b;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: transform 140ms ease, filter 140ms ease, background 140ms ease;
}

.group-activity-report-close:hover {
  background: #e8edef;
}

.group-activity-report-close:active {
  transform: scale(0.94);
}

.group-activity-report-close:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(108,171,0,0.28);
}

.group-activity-report-block {
  margin-top: 14px;
}

.group-activity-report-label {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #7f888c;
}

.group-activity-report-toggle {
  margin-top: 7px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.group-activity-report-toggle.is-sets {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.group-activity-report-toggle-btn {
  border: none;
  height: 40px;
  border-radius: var(--radius-full);
  background: #edf1f2;
  color: #6f777a;
  font-family: var(--font-headline);
  font-size: 0.98rem;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, color 120ms ease;
}

.group-activity-report-toggle-btn .material-symbols-outlined {
  font-size: 1.03rem;
  font-variation-settings: "FILL" 1, "wght" 550, "GRAD" 0, "opsz" 24;
}

.group-activity-report-toggle-btn.is-light {
  height: 38px;
}

.group-activity-report-toggle-btn.is-active {
  background: linear-gradient(145deg, var(--primary-fixed), var(--primary-fixed-dim));
  color: #223900;
  box-shadow: 0 8px 16px -12px rgba(108,171,0,0.75);
}

.group-activity-report-toggle-btn:active {
  transform: scale(0.98);
}

.group-activity-report-toggle-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(108,171,0,0.26);
}

.group-activity-report-duel-card {
  margin-top: 8px;
  border-radius: 1.25rem;
  background: #e7ecef;
  border: 1px solid rgba(184,190,193,0.35);
  padding: 12px;
}

.group-activity-report-duel-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.group-activity-report-duel-head span {
  font-family: var(--font-headline);
  font-size: 0.74rem;
  letter-spacing: 0.08em;
  color: #2f6f86;
  font-weight: 900;
}

.group-activity-report-duel-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

.group-activity-report-center-stack {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 8px;
}

.group-report-duel-vs {
  font-family: var(--font-headline);
  font-size: 0.9rem;
  color: #8a9195;
  font-weight: 900;
  letter-spacing: 0.05em;
}

.group-report-avatar-picker {
  border: none;
  background: transparent;
  padding: 0;
  margin: 0;
  cursor: pointer;
  transition: transform 130ms ease;
}

.group-report-avatar-picker:hover {
  transform: translateY(-1px);
}

.group-report-avatar-picker:active {
  transform: scale(0.98);
}

.group-report-avatar-picker:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(108,171,0,0.26);
  border-radius: 0.9rem;
}

.group-report-avatar-picker.is-active .group-activity-report-avatar {
  border-color: #6cab00;
  box-shadow: 0 0 0 3px rgba(108,171,0,0.18);
}

.group-report-player-tile {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  text-align: left;
}

.group-report-player-tile.is-right {
  flex-direction: row-reverse;
  text-align: right;
}

.group-report-player-tile.is-right .group-activity-report-player-view {
  align-items: end;
}

.group-report-player-avatar-wrap {
  position: relative;
  width: 62px;
  height: 62px;
  flex-shrink: 0;
}

.group-report-player-avatar-wrap.is-mini {
  width: 48px;
  height: 48px;
}

.group-activity-report-avatar {
  width: 100%;
  height: 100%;
  border-radius: var(--radius-full);
  border: 3px solid rgba(189, 242, 31, 0.52);
  object-fit: cover;
}

.group-report-avatar-plus {
  position: absolute;
  right: -3px;
  bottom: -3px;
  width: 22px;
  height: 22px;
  border-radius: var(--radius-full);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #73b600, #5d9700);
  color: #f5ffe8;
  font-size: 0.82rem;
  border: 1px solid #edf1ee;
}

.group-report-player-avatar-wrap.is-mini .group-report-avatar-plus {
  width: 18px;
  height: 18px;
  font-size: 0.66rem;
}

.group-activity-report-player-view {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.group-activity-report-player-view strong {
  display: block;
  font-size: clamp(1rem, 2.8vw, 1.2rem);
  color: #202526;
  font-weight: 900;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.group-activity-report-player-view small {
  display: inline-flex;
  align-items: center;
  width: max-content;
  max-width: 100%;
  height: 26px;
  border-radius: var(--radius-full);
  background: #f6f7f7;
  border: 1px solid rgba(171,173,174,0.3);
  color: #5f676b;
  font-family: var(--font-headline);
  font-size: 0.66rem;
  font-weight: 900;
  padding: 0 10px;
}

.group-activity-report-duel-partners {
  margin-top: 10px;
  display: none;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
}

.group-activity-report-sheet.is-mode-double .group-activity-report-duel-partners {
  display: grid;
}

.group-activity-report-sheet.is-mode-double .group-activity-report-duel-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  column-gap: 10px;
  row-gap: 10px;
}

.group-activity-report-sheet.is-mode-double .group-activity-report-duel-head {
  grid-column: 1 / -1;
  margin-bottom: 0;
}

.group-activity-report-sheet.is-mode-double .group-activity-report-duel-main,
.group-activity-report-sheet.is-mode-double .group-activity-report-duel-partners {
  display: contents;
}

.group-activity-report-sheet.is-mode-double [data-group-report-slot="teamA"] {
  grid-column: 1;
  grid-row: 2;
}

.group-activity-report-sheet.is-mode-double [data-group-report-slot="teamB"] {
  grid-column: 3;
  grid-row: 2;
}

.group-activity-report-sheet.is-mode-double [data-group-report-slot="teamA2"] {
  grid-column: 1;
  grid-row: 3;
}

.group-activity-report-sheet.is-mode-double [data-group-report-slot="teamB2"] {
  grid-column: 3;
  grid-row: 3;
}

.group-activity-report-sheet.is-mode-double .group-activity-report-center-stack {
  grid-column: 2;
  grid-row: 2 / span 2;
  align-self: center;
}

.group-activity-report-sheet.is-mode-double .group-report-player-tile,
.group-activity-report-sheet.is-mode-double .group-report-player-chip {
  width: 100%;
}

.group-activity-report-sheet.is-mode-double .set-col-2,
.group-activity-report-sheet.is-mode-double .set-col-3 {
  grid-column: 1 / -1;
  margin-top: 2px;
}

.group-activity-report-sheet.is-mode-double.is-sets-1 .group-activity-report-duel-card {
  row-gap: 8px;
}

.group-report-player-chip {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  text-align: left;
}

.group-report-player-chip.is-right {
  flex-direction: row-reverse;
  text-align: right;
}

.group-report-player-chip.is-right .group-activity-report-player-view {
  align-items: end;
}

.group-activity-report-player-view.is-partner {
  display: grid;
}

.group-activity-report-player-view.is-partner strong {
  font-size: 0.95rem;
}

.group-activity-report-player-view.is-partner small {
  font-size: 0.62rem;
  height: 24px;
  padding: 0 8px;
}

.group-activity-report-set-row {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.group-activity-report-set-row.is-primary {
  margin-top: 0;
}

.group-activity-report-set-label {
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  color: #80878b;
}

.group-activity-report-set-score-wrap {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.group-activity-report-score-sep {
  font-family: var(--font-headline);
  font-size: 1.05rem;
  color: #8d9498;
  font-weight: 900;
}

.group-activity-report-score-input {
  width: clamp(54px, 13vw, 60px);
  height: clamp(54px, 13vw, 60px);
  border: 2px solid #d2d6d8;
  border-radius: 1.05rem;
  background: #f5f6f7;
  color: #1f2425;
  -webkit-text-fill-color: #1f2425;
  caret-color: #1f2425;
  text-align: center;
  font-family: var(--font-headline);
  font-size: clamp(1.45rem, 4.2vw, 1.95rem);
  font-weight: 900;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  letter-spacing: 0;
  padding: 0;
  appearance: textfield;
  -webkit-appearance: none;
  outline: none;
  transition: box-shadow 120ms ease, border-color 120ms ease, background 120ms ease;
}

.group-activity-report-score-input:focus {
  border-color: rgba(88,136,0,0.68);
  background: #ffffff;
  color: #1f2425;
  -webkit-text-fill-color: #1f2425;
  box-shadow: 0 0 0 3px rgba(108,171,0,0.24);
}

.group-activity-report-score-input::-webkit-outer-spin-button,
.group-activity-report-score-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.group-activity-report-score-input[type=number] {
  -moz-appearance: textfield;
}

.group-activity-report-sheet.is-sets-1 .set-col-2,
.group-activity-report-sheet.is-sets-1 .set-col-3 {
  display: none;
}

.group-activity-report-sheet.is-sets-2 .set-col-3 {
  display: none;
}

.group-activity-report-submit-btn {
  margin-top: 16px;
  border: none;
  border-radius: 0.95rem;
  width: 100%;
  height: 46px;
  background: linear-gradient(145deg, var(--primary-fixed), var(--primary-fixed-dim));
  color: #243b00;
  font-family: var(--font-headline);
  font-size: 0.86rem;
  font-weight: 900;
  letter-spacing: 0.02em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  cursor: pointer;
  box-shadow: 0 12px 22px -14px rgba(108,171,0,0.7);
  transition: transform 130ms ease, filter 130ms ease, box-shadow 130ms ease;
}

.group-activity-report-submit-btn .material-symbols-outlined {
  font-size: 1rem;
}

.group-activity-report-submit-btn:hover {
  filter: brightness(1.02);
}

.group-activity-report-submit-btn:active {
  transform: scale(0.985);
  box-shadow: 0 8px 18px -14px rgba(108,171,0,0.7);
}

.group-activity-report-submit-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(108,171,0,0.28), 0 12px 22px -14px rgba(108,171,0,0.7);
}

@media (max-width: 420px) {
  .group-activity-report-head h3 {
    font-size: 1.22rem;
  }

  .group-activity-report-duel-card {
    padding: 10px;
  }

  .group-activity-report-duel-main {
    gap: 6px;
  }

  .group-activity-report-center-stack {
    gap: 6px;
  }

  .group-activity-report-sheet.is-mode-double .group-activity-report-duel-card {
    column-gap: 6px;
    row-gap: 8px;
  }

  .group-report-player-avatar-wrap {
    width: 52px;
    height: 52px;
  }

  .group-report-player-avatar-wrap.is-mini {
    width: 42px;
    height: 42px;
  }

  .group-activity-report-avatar {
    border-width: 2px;
  }

  .group-report-avatar-plus {
    width: 20px;
    height: 20px;
    font-size: 0.72rem;
  }

  .group-activity-report-player-view strong {
    font-size: 0.96rem;
  }

  .group-activity-report-player-view small {
    height: 24px;
    font-size: 0.6rem;
    padding: 0 8px;
  }

  .group-activity-report-score-input {
    width: 50px;
    height: 50px;
    border-radius: 0.95rem;
    font-size: 1.35rem;
  }
}

.group-report-picker-modal {
  position: fixed;
  inset: 0;
  z-index: 67;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 12px;
}

.group-report-picker-backdrop {
  position: absolute;
  inset: 0;
  border: none;
  background: rgba(12,15,16,0.45);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  cursor: pointer;
}

.group-report-picker-sheet {
  position: relative;
  z-index: 1;
  width: min(420px, 100%);
  max-height: min(78vh, 560px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border-radius: 1.35rem;
  background: #ffffff;
  box-shadow: 0 20px 36px -16px rgba(44,47,48,0.32);
}

.group-report-picker-head {
  padding: 12px 12px 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.group-report-picker-head h3 {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 900;
  color: #1f2425;
}

.group-report-picker-close {
  width: 30px;
  height: 30px;
  border-radius: var(--radius-full);
  border: none;
  background: #eef2f3;
  color: #6f777b;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: transform 130ms ease, background 130ms ease;
}

.group-report-picker-close:hover {
  background: #e6ecef;
}

.group-report-picker-close:active {
  transform: scale(0.95);
}

.group-report-picker-search-wrap {
  margin: 0 12px;
  border-radius: 0.85rem;
  background: #f2f5f6;
  min-height: 48px;
  display: flex;
  align-items: center;
  padding: 0 14px;
}

.group-report-picker-search-wrap input {
  width: 100%;
  height: auto;
  border: none;
  background: transparent;
  color: #202526;
  font-size: 0.92rem;
  line-height: 1.35;
  padding: 0;
  font-family: var(--font-body);
  outline: none;
}

.group-report-picker-search-wrap input::placeholder {
  color: #8b9598;
  opacity: 1;
}

.group-report-picker-search-wrap:focus-within {
  box-shadow: inset 0 0 0 2px rgba(108,171,0,0.24);
}

.group-report-picker-list {
  margin-top: 8px;
  padding: 0 12px 12px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.group-report-picker-item {
  border: 1px solid rgba(171,173,174,0.22);
  border-radius: 0.9rem;
  background: #fbfcfd;
  padding: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  transition: transform 120ms ease, border-color 120ms ease, background 120ms ease;
}

.group-report-picker-item:hover {
  transform: translateY(-1px);
  border-color: rgba(130,145,150,0.34);
}

.group-report-picker-item:active {
  transform: scale(0.99);
}

.group-report-picker-item.is-selected {
  border-color: rgba(108,171,0,0.5);
  background: #f4f9e8;
}

.group-report-picker-item img {
  width: 34px;
  height: 34px;
  border-radius: var(--radius-full);
  border: 2px solid rgba(189, 242, 31, 0.36);
}

.group-report-picker-item strong {
  display: block;
  font-size: 0.81rem;
  color: #202526;
  font-weight: 800;
}

.group-report-picker-item small {
  display: block;
  margin-top: 1px;
  font-size: 0.62rem;
  color: #778084;
  font-weight: 700;
}

.group-report-picker-empty {
  border-radius: 0.85rem;
  border: 1px dashed rgba(145,155,160,0.55);
  background: #f8fafb;
  color: #737c80;
  text-align: center;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 12px 10px;
}

/* ── Match Check-in Modal ── */
.checkin-modal {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: flex-end;
}

.checkin-modal.hidden { display: none !important; }

.checkin-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12,15,16,0.55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.checkin-sheet {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  background: var(--surface-container-lowest);
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  padding: 20px 20px calc(28px + env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  gap: 14px;
  animation: checkinSlideUp 0.28s cubic-bezier(0.32,0.72,0,1);
}

@keyframes checkinSlideUp {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}

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

.checkin-live-badge {
  display: flex;
  align-items: center;
  gap: 6px;
  background: var(--primary-container);
  border-radius: var(--radius-full);
  padding: 4px 12px;
  font-family: var(--font-headline);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--on-primary-fixed);
}

.checkin-live-dot {
  width: 7px;
  height: 7px;
  border-radius: var(--radius-full);
  background: var(--primary);
  animation: splashDotPulse 1s ease-in-out infinite;
}

.checkin-close {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-full);
  border: none;
  background: var(--surface-container);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--on-surface-variant);
}

.checkin-close .material-symbols-outlined { font-size: 20px; }

.checkin-title {
  font-family: var(--font-headline);
  font-size: 1.9rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--on-surface);
  margin: 0;
  line-height: 1.1;
}

.checkin-title em {
  font-style: italic;
  color: var(--primary);
}

.checkin-desc {
  margin: 0;
  font-size: 0.82rem;
  color: var(--on-surface-variant);
  line-height: 1.5;
}

/* Camera area */
.checkin-camera-area {
  background: var(--surface-container-high);
  border-radius: var(--radius-xl);
  min-height: 180px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  padding: 28px 20px;
  position: relative;
}

.checkin-corner {
  position: absolute;
  width: 24px;
  height: 24px;
  border-color: var(--primary);
  border-style: solid;
  border-width: 0;
}

.checkin-corner.tl { top: 12px; left: 12px; border-top-width: 2px; border-left-width: 2px; border-radius: 4px 0 0 0; }
.checkin-corner.tr { top: 12px; right: 12px; border-top-width: 2px; border-right-width: 2px; border-radius: 0 4px 0 0; }
.checkin-corner.bl { bottom: 12px; left: 12px; border-bottom-width: 2px; border-left-width: 2px; border-radius: 0 0 0 4px; }
.checkin-corner.br { bottom: 12px; right: 12px; border-bottom-width: 2px; border-right-width: 2px; border-radius: 0 0 4px 0; }

.checkin-camera-btn {
  width: 64px;
  height: 64px;
  border-radius: var(--radius-full);
  border: none;
  background: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 10px 24px -6px rgba(62,102,0,0.4);
  transition: transform 0.12s;
  color: var(--on-primary-fixed);
}

.checkin-camera-btn:active { transform: scale(0.92); }

.checkin-camera-btn .material-symbols-outlined { font-size: 30px; }

.checkin-camera-area h3 {
  margin: 6px 0 0;
  font-family: var(--font-headline);
  font-size: 0.95rem;
  font-weight: 800;
  color: var(--on-surface);
}

.checkin-camera-area p {
  margin: 0;
  font-size: 0.75rem;
  color: var(--on-surface-variant);
  max-width: 180px;
}

/* Partner identity card */
.checkin-partner-card {
  background: var(--surface-container-lowest);
  border-radius: var(--radius-lg);
  padding: 14px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  box-shadow: var(--shadow-card);
}

.checkin-partner-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.checkin-partner-avatar-wrap {
  position: relative;
  flex-shrink: 0;
}

.checkin-partner-avatar {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
  object-fit: cover;
  background: var(--surface-container);
}

.checkin-partner-verified {
  position: absolute;
  bottom: -2px;
  right: -2px;
  font-size: 16px;
  color: var(--secondary);
  background: var(--surface-container-lowest);
  border-radius: var(--radius-full);
  line-height: 1;
}

.checkin-partner-label {
  margin: 0 0 2px;
  font-family: var(--font-headline);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
}

.checkin-partner-name {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 800;
  color: var(--on-surface);
}

.checkin-partner-status { text-align: right; }

.checkin-status-text {
  margin: 0;
  font-family: var(--font-headline);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--primary);
}

/* CTA buttons */
.checkin-confirm-btn {
  width: 100%;
  height: 58px;
  border: none;
  border-radius: var(--radius-full);
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-fixed-dim) 100%);
  color: var(--on-primary-fixed);
  font-family: var(--font-headline);
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 12px 28px -6px rgba(62,102,0,0.35);
  transition: opacity 0.15s, transform 0.12s;
}

.checkin-confirm-btn .material-symbols-outlined { font-size: 20px; }
.checkin-confirm-btn:active { transform: scale(0.98); opacity: 0.9; }

.checkin-issue-btn {
  background: none;
  border: none;
  width: 100%;
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--on-surface-variant);
  cursor: pointer;
  padding: 4px;
  transition: color 0.15s;
}

.checkin-issue-btn:active { color: var(--on-surface); }

/* ── Responsive — Small screens ── */
@media (max-width: 400px) {
  .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .identity-grid,
  .two-cols,
  .connection-columns {
    grid-template-columns: 1fr;
  }

  .national-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .skill-dist-grid {
    grid-template-columns: 1fr;
  }

  .range-picker {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .community-item {
    flex-direction: column;
  }

  .groups-intro-copy h3 {
    font-size: 1.72rem;
  }

  .groups-card-body {
    gap: 10px;
  }

  .groups-cover-wrap {
    width: 52px;
    height: 52px;
  }

  .groups-card-main h4 {
    font-size: 0.96rem;
  }

  .history-grid-mini {
    grid-template-columns: 1fr auto 1fr;
  }

  .tab-btn .tab-label {
    font-size: 0.55rem;
  }

  .ball-core {
    width: 72px;
    height: 72px;
  }

  .groups-fab-btn {
    right: calc(50% - min(520px, calc(100% - 20px)) / 2 + 12px);
    width: 52px;
    height: 52px;
  }

  .notifications-panel {
    padding-left: 4px;
    padding-right: 4px;
  }

  .notifications-sheet {
    border-radius: 28px;
    max-height: calc(100dvh - 8px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }

  .notifications-header {
    grid-template-columns: auto 1fr;
  }

  .notifications-count-pill {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .notification-card-actions {
    gap: 6px;
  }

  .notification-action-btn {
    flex: 1 1 calc(50% - 3px);
  }
}

/* ══ Quick Post Clean Sheet Overrides ═════════════════════════════ */
.smatch-sheet .sheet-card,
.lineoa-theme .smatch-sheet .sheet-card {
  width: min(720px, 100%);
  max-height: calc(96dvh - env(safe-area-inset-top));
  padding: 12px 22px calc(24px + env(safe-area-inset-bottom));
  background: #fbfcfb;
}

.smatch-sheet .sheet-handle {
  width: 72px;
  height: 5px;
  margin-bottom: 18px;
  background: #c7d0d1;
}

.qp-sheet-header {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 44px;
  align-items: center;
  gap: 8px;
  margin: -4px 0 8px;
}

.qp-sheet-header .sheet-title {
  text-align: center;
  min-width: 0;
  white-space: nowrap;
}

.qp-sheet-header-spacer {
  width: 44px;
  height: 44px;
  display: block;
}

.qp-sheet-header .sheet-close-btn {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: #ffffff;
  border: 1px solid rgba(24, 33, 35, 0.08);
  box-shadow: 0 8px 20px -16px rgba(24, 33, 35, 0.32);
}

.qp-form {
  gap: 24px;
}

.qp-section {
  gap: 12px;
}

.sheet-card .qp-section-title {
  margin: 0;
  color: #101819;
  font-family: var(--font-headline);
  font-size: 1.08rem;
  font-weight: 900;
  letter-spacing: 0;
  line-height: 1.2;
}

.qp-type-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.post-type-card {
  width: 100%;
  min-width: 0;
  flex-shrink: 1;
  align-items: center;
  justify-content: center;
  min-height: 122px;
  border-radius: 16px;
  padding: 16px 10px 15px;
  border: 1px solid rgba(24, 33, 35, 0.08);
  background: #ffffff;
  box-shadow: 0 12px 26px -22px rgba(24, 33, 35, 0.38);
  text-align: center;
  gap: 7px;
}

.post-type-card.is-active {
  border-color: rgba(164, 237, 0, 0.92);
  background: linear-gradient(180deg, #fbffed, #f6ffe0);
  box-shadow: 0 14px 28px -24px rgba(100, 160, 0, 0.44);
}

.qp-type-icon {
  color: #101819;
  font-size: 34px;
}

.qp-type-title {
  font-size: 0.94rem;
  letter-spacing: 0;
}

.qp-type-sub {
  min-height: 32px;
  color: #596468;
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.35;
}

.post-type-card.is-active .qp-type-icon,
.post-type-card.is-active .qp-type-title {
  color: #3d8c15;
}

.post-type-card.is-active .qp-type-sub {
  color: #41620d;
}

.qp-settings-card,
.qp-detail-card {
  border-radius: 18px;
  border: 1px solid rgba(24, 33, 35, 0.055);
  background: #ffffff;
  box-shadow: 0 12px 28px -24px rgba(24, 33, 35, 0.32);
  overflow: visible;
}

.qp-direct-field {
  display: grid;
  gap: 8px;
}

.qp-direct-field.hidden {
  display: none;
}

.sheet-card .qp-direct-field .sheet-field-label {
  margin: 0 !important;
  color: #101819 !important;
  font-size: 0.86rem !important;
  font-weight: 900 !important;
  text-transform: none !important;
}

.quick-opponent-picker {
  position: relative;
  min-height: 58px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 22px;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid rgba(24, 33, 35, 0.08);
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 12px 28px -24px rgba(24, 33, 35, 0.32);
}

.quick-opponent-picker:focus-within {
  border-color: rgba(189, 242, 31, 0.72);
  box-shadow: 0 0 0 3px rgba(189, 242, 31, 0.18);
}

.quick-opponent-avatar {
  width: 42px;
  height: 42px;
  border-radius: 13px;
  object-fit: cover;
  background: #eef0f1;
}

.quick-opponent-main {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.sheet-card .quick-opponent-main input {
  width: 100%;
  min-height: 22px !important;
  height: 22px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #111819 !important;
  font-size: 0.9rem !important;
  font-weight: 800 !important;
}

.quick-opponent-meta {
  min-width: 0;
  overflow: hidden;
  color: #657174;
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quick-opponent-chevron {
  color: #8b9598;
  font-size: 21px !important;
}

.quick-opponent-list {
  position: absolute;
  z-index: 38;
  top: calc(100% + 7px);
  left: 0;
  right: 0;
  max-height: min(42vh, 320px);
  overflow-y: auto;
  padding: 6px;
  border: 1px solid rgba(24, 33, 35, 0.08);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 22px 48px -28px rgba(24, 33, 35, 0.38);
}

.quick-opponent-option {
  width: 100%;
  min-height: 56px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 8px;
  border: 1px solid transparent;
  border-radius: 14px;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.quick-opponent-option:hover,
.quick-opponent-option.is-selected {
  border-color: rgba(189, 242, 31, 0.72);
  background: #faffea;
}

.quick-opponent-option img {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  object-fit: cover;
  background: #eef0f1;
}

.quick-opponent-option-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.quick-opponent-option-copy strong,
.quick-opponent-option-copy small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.quick-opponent-option-copy strong {
  color: #111819;
  font-size: 0.86rem;
  font-weight: 900;
}

.quick-opponent-option-copy small,
.quick-opponent-empty {
  color: #657174;
  font-size: 0.72rem;
  font-weight: 700;
}

.quick-opponent-empty {
  padding: 16px 10px;
  text-align: center;
}

.qp-divider {
  margin: 0 18px;
  background: rgba(24, 33, 35, 0.055);
}

.qp-setting-row,
.qp-detail-row {
  min-height: 66px;
  display: grid;
  grid-template-columns: 28px minmax(112px, 0.5fr) minmax(0, 1fr) 16px;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  position: relative;
}

.qp-setting-row {
  grid-template-columns: minmax(118px, 0.62fr) minmax(0, 312px);
  justify-content: space-between;
}

.sheet-card .qp-detail-row > span,
.sheet-card .qp-setting-row > span,
.sheet-card .qp-row-label,
.sheet-card .qp-setting-label {
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center;
  color: #111819 !important;
  font-family: var(--font-headline) !important;
  font-size: 0.86rem !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  line-height: 1.2;
  text-transform: none !important;
}

.sheet-card .qp-row-icon.material-symbols-outlined,
.sheet-card .qp-row-chevron.material-symbols-outlined,
.sheet-card .qp-type-icon.material-symbols-outlined {
  font-family: 'Material Symbols Outlined' !important;
  font-weight: normal !important;
  font-style: normal !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  line-height: 1 !important;
}

.sheet-card .qp-row-icon {
  justify-content: center;
  width: 24px;
  color: #101819 !important;
  font-size: 22px !important;
}

.sheet-card .qp-row-chevron {
  justify-content: flex-end;
  color: #aeb6b8 !important;
  font-size: 20px !important;
}

.sheet-card .qp-row-value {
  justify-self: end;
  max-width: 100%;
  color: #22292b !important;
  font-family: var(--font-body) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  text-align: right;
}

.qp-row-label small,
.qp-setting-label small {
  margin-left: 4px;
  color: #606c70;
  font-size: 0.78rem;
  font-weight: 700;
}

.qp-pill-group {
  width: min(100%, 312px);
  margin-left: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  justify-self: end;
}

.qp-pill {
  min-height: 44px;
  border-radius: 12px;
  border: 1px solid rgba(24, 33, 35, 0.08);
  background: #f7f8f8;
  color: #22292b;
  font-size: 0.9rem;
  font-weight: 800;
}

.qp-pill.is-active {
  background: linear-gradient(180deg, #bdfb18, #a4ed00);
  border-color: transparent;
  color: #111819;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.62);
}

.is-direct-mode .qp-match-mode-row .qp-pill-group {
  grid-template-columns: minmax(0, 1fr);
}

.is-direct-mode .qp-match-mode-row [data-quick-match-mode="double"] {
  display: none;
}

.qp-players-row .quick-party-slots {
  justify-self: stretch;
  justify-content: flex-start;
  gap: 12px;
}

.quick-party-versus-slots {
  width: 100%;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 42px minmax(0, 1fr);
  align-items: stretch;
  gap: 10px;
}

.quick-party-side {
  min-width: 0;
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid rgba(24, 33, 35, 0.07);
  border-radius: 16px;
  background: #fafbfb;
}

.quick-party-side-label {
  color: #657174 !important;
  font-size: 0.72rem !important;
  font-weight: 900 !important;
}

.quick-party-side-grid {
  display: flex;
  justify-content: center;
  gap: 8px;
}

.quick-party-vs {
  align-self: center;
  justify-self: center;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: var(--brand);
  color: #111819;
  font-family: var(--font-headline);
  font-size: 0.72rem;
  font-weight: 900;
}

.qp-players-row .quick-party-player-avatar,
.qp-players-row .quick-party-player-circle {
  width: 54px;
  height: 54px;
}

.qp-players-row .quick-party-player-name {
  font-size: 0.8rem;
}

.qp-players-row .quick-party-player-meta {
  font-size: 0.68rem;
}

.qp-players-row .quick-party-invite-btn {
  min-height: 40px;
  font-size: 0.82rem;
}

.qp-time-row {
  gap: 12px;
}

.qp-date-nav {
  grid-column: 3 / -1;
  justify-self: end;
  margin-left: 0;
}

.qp-time-pair {
  grid-column: 3 / 4;
  justify-self: end;
  margin-left: 0;
  gap: 6px;
  align-items: center;
}

.qp-time-cell small {
  display: none;
}

.sheet-card .qp-time-cell .qp-time-select {
  width: 72px;
  height: 32px !important;
  padding: 0 6px !important;
  border-radius: 8px !important;
  background: #f0f2f2 !important;
  box-shadow: none !important;
  border: none !important;
  color: #1a2122 !important;
  font-family: var(--font-body);
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  text-align: center;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer;
}

.qp-time-sep {
  padding-top: 0;
  color: #9aa2a5;
  font-size: 0.82rem;
  font-weight: 500;
}

.qp-venue-row {
  align-items: flex-start;
  padding-top: 10px;
  padding-bottom: 10px;
  min-height: 52px;
}

.qp-venue-body {
  grid-column: 3 / 4;
  min-width: 0;
}

.qp-venue-input-wrap {
  padding: 6px 10px;
  background: #f0f2f2;
  border-radius: 8px;
}

.sheet-card .qp-venue-input-wrap input {
  min-height: 20px !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #1a2122 !important;
  font-size: 0.8rem !important;
  font-weight: 600;
  text-align: right;
}

.sheet-card .qp-venue-input-wrap input::placeholder {
  color: #9aa2a5;
  font-weight: 400;
}

.qp-venue-selected {
  margin-top: 6px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  align-items: flex-end;
}

.qp-venue-selected strong,
.qp-venue-selected .qp-venue-name {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  color: #1a2122;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.qp-venue-selected small,
.qp-venue-selected .qp-venue-meta {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.qp-venue-selected .qp-venue-location {
  font-size: 0.7rem;
  color: #7a8589;
}

.qp-venue-selected .qp-venue-price {
  font-size: 0.7rem;
  font-weight: 700;
  color: #1a7a3c;
  background: #e6f7ed;
  border-radius: 5px;
  padding: 1px 6px;
}

.qp-note-row textarea {
  grid-column: 3 / 4;
}

.sheet-card .qp-note-row textarea {
  min-height: 28px !important;
  height: 34px;
  padding: 4px 0 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #22292b !important;
  font-size: 0.86rem !important;
  font-weight: 700;
  text-align: right;
  resize: none;
}

.sheet-card .qp-note-row textarea::placeholder {
  color: #a1aaad;
  text-align: right;
}

.sheet-cta {
  min-height: 52px;
  border-radius: 16px !important;
  letter-spacing: 0 !important;
  text-transform: none;
}

@media (max-width: 560px) {
  .smatch-sheet .sheet-card {
    padding-inline: 20px;
  }

  .qp-type-grid {
    gap: 10px;
  }

  .post-type-card {
    min-height: 112px;
    padding: 14px 8px;
  }

  .qp-type-icon {
    font-size: 31px;
  }

  .qp-type-title {
    font-size: 0.88rem;
  }

  .qp-type-sub {
    font-size: 0.72rem;
  }

  .qp-setting-row {
    grid-template-columns: minmax(92px, 0.55fr) minmax(0, 1fr);
  }

  .qp-detail-row {
    grid-template-columns: 24px minmax(74px, 0.42fr) minmax(0, 1fr) 14px;
    gap: 10px;
    padding-inline: 14px;
  }

  .qp-divider {
    margin-inline: 14px;
  }

  .qp-pill {
    min-height: 40px;
    font-size: 0.82rem;
  }

  .qp-players-row .quick-party-slots {
    gap: 9px;
  }

  .qp-players-row .quick-party-player-avatar,
  .qp-players-row .quick-party-player-circle {
    width: 46px;
    height: 46px;
  }

  .qp-players-row .quick-party-player-name {
    font-size: 0.74rem;
  }

  .qp-players-row .quick-party-player-meta {
    font-size: 0.62rem;
  }

  .qp-players-row .quick-party-invite-btn {
    min-height: 36px;
    font-size: 0.76rem;
  }

  .qp-note-row {
    grid-template-columns: 24px minmax(0, 1fr) 14px;
    align-items: start;
  }

  .qp-note-row .qp-row-label {
    grid-column: 2 / 3;
  }

  .qp-note-row textarea {
    grid-column: 2 / 4;
  }

  .sheet-card .qp-note-row textarea {
    margin-top: 24px;
    text-align: left;
  }

  .sheet-card .qp-note-row textarea::placeholder {
    text-align: left;
  }

  .qp-note-row .qp-row-chevron {
    grid-column: 3 / 4;
    grid-row: 1;
  }
}

@media (max-width: 380px) {
  .qp-type-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .post-type-card {
    min-height: 104px;
  }

  .qp-type-title {
    font-size: 0.8rem;
  }

  .qp-type-sub {
    font-size: 0.66rem;
  }

  .sheet-card .qp-row-label,
  .sheet-card .qp-setting-label {
    font-size: 0.78rem !important;
  }
}

/* Quick Post reference polish: tighter, flatter, closer to the clean create-match comp. */
.smatch-sheet .sheet-card,
.lineoa-theme .smatch-sheet .sheet-card {
  width: min(847px, 100%);
  top: 0;
  bottom: auto;
  min-height: 100dvh;
  max-height: 100dvh;
  padding: 32px 31px calc(24px + env(safe-area-inset-bottom));
  border-radius: 0;
  background: #fcfdfc;
}

.smatch-sheet .sheet-handle {
  display: none;
}

.qp-sheet-header {
  grid-template-columns: 36px minmax(0, 1fr) 36px;
  margin: 0 0 8px;
}

.qp-sheet-header-spacer {
  width: 36px;
  height: 36px;
}

.qp-sheet-header .sheet-close-btn {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.7);
}

.qp-form {
  gap: 34px;
}

.qp-section {
  gap: 18px;
}

.sheet-card .qp-section-title {
  font-size: 1.12rem;
  font-weight: 900;
  line-height: 1.12;
}

.qp-type-grid {
  gap: 18px;
}

.post-type-card {
  min-height: 132px;
  border-radius: 16px;
  padding: 18px 14px 16px;
  gap: 9px;
  box-shadow: 0 10px 24px -22px rgba(24, 33, 35, 0.36);
}

.post-type-card.is-active {
  box-shadow: 0 12px 26px -24px rgba(100, 160, 0, 0.42);
}

.qp-type-icon {
  font-size: 35px;
}

.qp-type-title {
  font-size: 1rem;
  line-height: 1.08;
}

.qp-type-sub {
  min-height: auto;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.25;
}

.qp-settings-card,
.qp-detail-card {
  border-radius: 18px;
  border-color: rgba(24, 33, 35, 0.045);
  box-shadow: 0 12px 28px -25px rgba(24, 33, 35, 0.28);
}

.qp-setting-row {
  min-height: 62px;
  grid-template-columns: minmax(170px, 1fr) minmax(0, 374px);
  padding: 10px 22px;
}

.qp-detail-row {
  min-height: 62px;
  grid-template-columns: 34px minmax(120px, 0.48fr) minmax(0, 1fr) 18px;
  padding: 10px 22px;
}

.qp-divider {
  margin-inline: 22px;
}

.sheet-card .qp-row-label,
.sheet-card .qp-setting-label {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.94rem !important;
  font-weight: 600 !important;
}

.sheet-card .qp-row-icon {
  width: 30px;
  font-size: 28px !important;
}

.sheet-card .qp-row-chevron {
  font-size: 22px !important;
}

.sheet-card .qp-row-value,
.sheet-card .qp-time-cell input[type="time"],
.sheet-card .qp-time-cell .qp-time-select,
.sheet-card .qp-venue-input-wrap input,
.sheet-card .qp-note-row textarea {
  font-size: 0.94rem !important;
  font-weight: 500 !important;
}

.qp-pill-group {
  width: min(100%, 374px);
  gap: 12px;
}

.qp-pill {
  min-height: 44px;
  border-radius: 12px;
  font-size: 0.94rem;
  font-weight: 600;
}

.qp-players-row .quick-party-slots {
  gap: 12px;
}

.qp-players-row .quick-party-player-avatar,
.qp-players-row .quick-party-player-circle {
  width: 52px;
  height: 52px;
}

.qp-time-pair {
  gap: 12px;
}

.sheet-card .qp-time-cell input[type="time"],
.sheet-card .qp-time-cell .qp-time-select {
  width: 84px;
}

.sheet-card .qp-time-cell input[type="time"]::-webkit-calendar-picker-indicator {
  display: none;
  opacity: 0;
}

.sheet-card .qp-time-cell input[type="time"]::-webkit-inner-spin-button,
.sheet-card .qp-time-cell input[type="time"]::-webkit-clear-button {
  display: none;
}

.qp-venue-selected small {
  font-size: 0.82rem;
}

.qp-note-row {
  grid-template-columns: 34px minmax(0, 1fr) 18px;
  align-items: start;
}

.qp-note-row textarea {
  grid-column: 1 / -1;
}

.qp-note-row .qp-row-chevron {
  display: none;
}

.sheet-card .qp-note-row textarea {
  height: auto;
  min-height: 112px;
  margin-top: 6px;
  overflow: auto;
  white-space: pre-wrap;
  text-align: left;
  resize: vertical;
}

.sheet-card .qp-note-row textarea::placeholder {
  text-align: left;
}

.sheet-cta,
.lineoa-theme .smatch-sheet .sheet-cta {
  min-height: 64px;
  margin-top: 0;
  border-radius: 32px !important;
  font-size: 1.04rem;
  font-weight: 900;
}

@media (max-width: 560px) {
  .smatch-sheet .sheet-card,
  .lineoa-theme .smatch-sheet .sheet-card {
    padding: 18px 16px calc(24px + env(safe-area-inset-bottom));
  }

  .qp-form {
    gap: 26px;
  }

  .qp-section {
    gap: 9px;
  }

  .sheet-card .qp-section-title {
    font-size: 1.02rem;
  }

  .qp-type-grid {
    gap: 9px;
  }

  .post-type-card {
    min-height: 132px;
    padding: 16px 8px 14px;
  }

  .qp-type-icon {
    font-size: 31px;
  }

  .qp-type-title {
    font-size: 0.88rem;
  }

  .qp-type-sub {
    font-size: 0.74rem;
    line-height: 1.22;
  }

  .qp-setting-row {
    min-height: 58px;
    grid-template-columns: minmax(128px, 1fr) minmax(0, 188px);
    padding: 8px 18px;
  }

  .qp-detail-row {
    min-height: 50px;
    grid-template-columns: 30px minmax(88px, 0.5fr) minmax(0, 1fr) 16px;
    gap: 10px;
    padding: 5px 18px;
  }

  .qp-divider {
    margin-inline: 18px;
  }

  .sheet-card .qp-row-label,
  .sheet-card .qp-setting-label {
    font-size: 0.84rem !important;
  }

  .sheet-card .qp-row-icon {
    width: 27px;
    font-size: 24px !important;
  }

  .sheet-card .qp-row-value,
  .sheet-card .qp-time-cell input[type="time"],
  .sheet-card .qp-time-cell .qp-time-select,
  .sheet-card .qp-venue-input-wrap input,
  .sheet-card .qp-note-row textarea {
    font-size: 0.84rem !important;
  }

  .qp-pill-group {
    width: min(100%, 188px);
    gap: 8px;
  }

  .qp-pill {
    min-height: 36px;
    border-radius: 10px;
    font-size: 0.8rem;
  }

  .qp-players-row .quick-party-slots {
    gap: 8px;
  }

  .qp-players-row .quick-party-player-avatar,
  .qp-players-row .quick-party-player-circle {
    width: 42px;
    height: 42px;
  }

  .qp-players-row .quick-party-player-name {
    font-size: 0.72rem;
  }

  .qp-players-row .quick-party-player-meta {
    font-size: 0.6rem;
  }

  .qp-players-row .quick-party-invite-btn {
    min-height: 34px;
    font-size: 0.72rem;
    padding-inline: 10px;
  }

  .qp-time-pair {
    gap: 7px;
  }

  .sheet-card .qp-time-cell input[type="time"],
  .sheet-card .qp-time-cell .qp-time-select {
    width: 62px;
  }

  .qp-note-row {
    grid-template-columns: 30px minmax(0, 1fr) 16px;
    align-items: start;
  }

  .sheet-card .qp-note-row .qp-row-label {
    font-size: 0.76rem !important;
  }

  .qp-note-row .qp-row-label {
    grid-column: 2 / 3;
  }

  .qp-note-row textarea {
    grid-column: 1 / -1;
  }

  .sheet-card .qp-note-row textarea {
    min-height: 108px;
    margin-top: 6px;
    text-align: left;
  }

  .sheet-card .qp-note-row textarea::placeholder {
    text-align: left;
  }

  .qp-note-row .qp-row-chevron {
    grid-column: 4 / 5;
    grid-row: auto;
  }

  .sheet-cta,
  .lineoa-theme .smatch-sheet .sheet-cta {
    min-height: 48px;
    border-radius: 24px !important;
    font-size: 0.92rem;
  }
}

@media (max-width: 390px) {
  .qp-type-sub {
    font-size: 0.68rem;
  }

  .qp-setting-row {
    grid-template-columns: minmax(108px, 1fr) minmax(0, 178px);
  }

  .qp-pill-group {
    width: min(100%, 178px);
  }

  .qp-detail-row {
    grid-template-columns: 28px minmax(78px, 0.5fr) minmax(0, 1fr) 14px;
    padding-inline: 14px;
  }

  .qp-divider {
    margin-inline: 14px;
  }

  .qp-note-row {
    grid-template-columns: 28px minmax(0, 1fr) 14px;
  }
}

/* ── Member profile sheet ── */
.profile-ranking-row[data-view-user-id],
.profile-ranking-player[data-view-user-id] {
  cursor: pointer;
}

.profile-ranking-player[data-view-user-id]:focus-visible,
.community-avatar-btn:focus-visible,
.community-title-btn:focus-visible {
  outline: 3px solid rgba(189, 242, 31, 0.5);
  outline-offset: 3px;
}

.member-profile-modal {
  position: fixed;
  inset: 0;
  z-index: 95;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding:
    calc(env(safe-area-inset-top) + 10px)
    12px
    calc(env(safe-area-inset-bottom) + 10px);
}

.member-profile-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(229, 233, 235, 0.62);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.member-profile-sheet {
  position: relative;
  width: min(430px, 100%);
  max-height: min(760px, calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 20px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 28px 70px -36px rgba(26, 31, 33, 0.5);
}

.member-profile-head {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  align-items: center;
  gap: 10px;
  padding: 14px 16px 10px;
}

.member-profile-back-btn {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 14px;
  background: #eef2f5;
  color: #556167;
  cursor: pointer;
}

.member-profile-head h2 {
  margin: 0;
  overflow: hidden;
  color: #15191a;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1.15;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.member-profile-body {
  overflow-y: auto;
  padding: 0 16px 18px;
}

.member-profile-hero,
.member-profile-info-card,
.member-profile-bio-card {
  border: 1px solid rgba(21, 25, 26, 0.08);
  border-radius: 22px;
  background: #fbfcfc;
}

.member-profile-hero {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  padding: 16px;
}

.member-profile-avatar-wrap {
  width: 86px;
  height: 86px;
  padding: 4px;
  border-radius: 26px;
  background: linear-gradient(135deg, var(--brand), #eef5f6);
}

.member-profile-avatar-wrap img {
  width: 100%;
  height: 100%;
  display: block;
  border-radius: 22px;
  object-fit: cover;
  background: #e7ecef;
}

.member-profile-copy {
  min-width: 0;
}

.member-profile-kicker {
  margin: 0 0 6px;
  color: #6f787c;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.member-profile-copy h3 {
  margin: 0;
  overflow-wrap: anywhere;
  color: #15191a;
  font-size: 1.35rem;
  font-weight: 900;
  line-height: 1.05;
}

.member-profile-tags,
.member-profile-groups {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.member-profile-tags span,
.member-profile-groups span {
  min-height: 26px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 0 10px;
  background: #eef2f5;
  color: #556167;
  font-size: 0.72rem;
  font-weight: 700;
}

.member-profile-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.member-profile-stat-grid article {
  min-width: 0;
  padding: 12px 8px;
  border: 1px solid rgba(21, 25, 26, 0.08);
  border-radius: 18px;
  background: #ffffff;
  text-align: center;
}

.member-profile-stat-grid small,
.member-profile-info-row small,
.member-profile-bio-card small {
  display: block;
  color: #7b8589;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1;
}

.member-profile-stat-grid strong {
  display: block;
  margin-top: 6px;
  color: #15191a;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
}

.member-profile-info-card,
.member-profile-bio-card {
  margin-top: 10px;
  padding: 14px;
}

.member-profile-info-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(21, 25, 26, 0.07);
}

.member-profile-info-row:first-child {
  padding-top: 0;
}

.member-profile-info-row:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.member-profile-info-row .material-symbols-outlined {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #f2f6e8;
  color: #698f00;
  font-size: 1.1rem;
}

.member-profile-info-row strong {
  display: block;
  margin-top: 4px;
  overflow-wrap: anywhere;
  color: #15191a;
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.25;
}

.member-profile-bio-card p {
  margin: 8px 0 0;
  color: #40494d;
  font-size: 0.84rem;
  line-height: 1.6;
}

.member-profile-actions {
  position: sticky;
  bottom: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px;
  margin-top: 12px;
  padding-top: 10px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), #fff 28%);
}

.member-profile-primary,
.member-profile-secondary {
  min-height: 48px;
  border-radius: 999px;
  border: 0;
  padding: 0 14px;
  font-size: 0.9rem;
  font-weight: 900;
  cursor: pointer;
}

.member-profile-primary {
  background: var(--brand);
  color: #111516;
}

.member-profile-secondary {
  background: #eef2f5;
  color: #293236;
}

.member-profile-wide {
  grid-column: 1 / -1;
}

.member-profile-primary:disabled,
.member-profile-secondary:disabled {
  opacity: 0.58;
  cursor: wait;
}

@media (max-width: 430px) {
  .member-profile-modal {
    padding-inline: 0;
    padding-bottom: 0;
  }

  .member-profile-sheet {
    max-height: calc(100dvh - env(safe-area-inset-top) - 6px);
    border-radius: 28px 28px 0 0;
  }

  .member-profile-body {
    padding-inline: 14px;
  }

  .member-profile-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Mobile bottom nav must be edge-to-edge like native apps */
@media (max-width: 768px) {
  .bottom-nav {
    left: 0;
    right: 0;
    bottom: 0;
    transform: none;
    width: 100%;
    max-width: 100%;
    margin: 0;
    border-radius: 0;
    border-left: none;
    border-right: none;
    border-bottom: none;
    border-top: 1px solid rgba(32, 36, 40, 0.08);
    box-shadow: none;
    padding-left: max(8px, env(safe-area-inset-left));
    padding-right: max(8px, env(safe-area-inset-right));
  }
}

.required-marker {
  color: var(--danger, #d93025);
  font-style: normal;
  font-weight: 800;
}

.upload-progress {
  width: 100%;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(20, 26, 28, 0.08);
}

.upload-progress > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: var(--brand, #bdf21f);
  transition: width 180ms ease;
}

.report-photo-progress {
  margin-top: 8px;
}

.player-chip,
.report-player-chip strong,
.quick-party-player-name,
.challenge-player-slot strong,
.match-detail-player-name {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
