/*
  PartyAtLan Design-Konzept (2026-09) — "nah am Bestehenden, poliert".
  Overrides Radzen Material theme tokens (loaded via <RadzenTheme Theme="material">)
  instead of styling individual components, so every page picks this up automatically.
  `html:root` (not `:root`) is deliberate: it wins the cascade over Radzen's own
  `:root { ... }` regardless of <link> load order.
*/
html:root {
  /* Primary: existing brand blue, unchanged anchor value, now as a proper scale */
  --rz-primary: #0E4476;
  --rz-primary-light: #2E76A8;
  --rz-primary-lighter: #DCE9F3;
  --rz-primary-dark: #0A3259;
  --rz-primary-darker: #082744;

  /* Accent: new warm tone, currently unused by any page — available for CTAs */
  --rz-secondary: #E8A33D;
  --rz-secondary-light: #EDB562;
  --rz-secondary-lighter: rgba(232, 163, 61, 0.16);
  --rz-secondary-dark: #CE8A24;
  --rz-secondary-darker: #A96F17;
  /* Light accent needs dark text for contrast, unlike Material's default dark-secondary/white-text pairing */
  --rz-on-secondary: #3A2A0E;
  --rz-on-secondary-light: #3A2A0E;

  /* Status semantics (seat states, changelog categories) — same meaning as today, cleaner tones */
  --rz-success: #2F9E44;
  --rz-success-light: #4FB864;
  --rz-success-lighter: rgba(47, 158, 68, 0.14);
  --rz-success-dark: #257F36;
  --rz-success-darker: #1F6B2D;

  --rz-warning: #E8A33D;
  --rz-warning-light: #EDB562;
  --rz-warning-lighter: rgba(232, 163, 61, 0.16);
  --rz-warning-dark: #CE8A24;
  --rz-warning-darker: #A96F17;

  --rz-danger: #D64545;
  --rz-danger-light: #DE6A6A;
  --rz-danger-lighter: rgba(214, 69, 69, 0.14);
  --rz-danger-dark: #B23535;
  --rz-danger-darker: #942C2C;

  --rz-info: #2E76A8;
  --rz-info-light: #5A93BC;
  --rz-info-lighter: rgba(46, 118, 168, 0.14);
  --rz-info-dark: #205A82;
  --rz-info-darker: #17475F;

  /* Shape & elevation: a touch softer everywhere (cards, buttons, badges, inputs) */
  --rz-border-radius: 6px;
  --rz-shadow-1: 0 1px 3px rgba(16, 24, 32, .08), 0 1px 2px rgba(16, 24, 32, .05);

  /* Page background: near-identical to Radzen's default, very slightly cooler */
  --rz-base-100: #F5F7FA;
}

/* Headings get a distinct display face; body/UI text stays Roboto (via Radzen's own --rz-text-font-family) */
h1, h2, h3, .rz-text-h1, .rz-text-h2, .rz-text-h3 {
  font-family: 'Space Grotesk', var(--rz-text-font-family, Roboto, sans-serif);
}

/*
  Mobile nav: below the tablet breakpoint, the header's horizontal RadzenMenu
  (unusable once it wraps onto several lines) is swapped for a hamburger button
  that opens a slide-in drawer (see PartyLayout.razor's RadzenPanelMenu block).
  .pal-desktop-menu is a plain wrapper <div> around <RadzenMenu> (not a class
  on RadzenMenu itself) so hiding it is guaranteed to hide everything Radzen
  renders inside - including RadzenMenu's own built-in collapse-to-hamburger
  toggle, which showed up as a confusing second hamburger next to ours when
  this was a class on RadzenMenu directly (that toggle isn't gated by a media
  query, and Radzen's own selector for it outranks a single custom class).
*/
.pal-mobile-nav-toggle {
  display: none;
}

@media (max-width: 768px) {
  .pal-mobile-nav-toggle {
    display: inline-flex !important;
  }
  .pal-desktop-menu {
    display: none !important;
  }
}

.pal-mobile-menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 5000;
}

.pal-mobile-menu-panel {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 280px;
  max-width: 85vw;
  background: var(--rz-base-100);
  overflow-y: auto;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

/*
  CheckedIn seat color (Seatplan/PartyRegistration): a darker gray than
  ButtonStyle.Light's own --rz-base-200, which is shared with every
  secondary button (Zurück/Abbrechen) elsewhere in the app and too close
  to the page background to read as its own seat-plan color. Scoped to
  seat buttons via .pal-seat-checkedin so it doesn't affect those.
*/
.pal-seat-checkedin.rz-light {
  background-color: var(--rz-base-600) !important;
  color: #fff !important;
}

/*
  Clan-Mitglieder im Sitzplan/in der Anmeldung (Schalter "Meinen Clan hervorheben"): violetter Ring innen am Platz.
  Bewusst eine Farbe, die keiner der Platz-Status nutzt (die Theme-Akzentfarbe ist dasselbe Orange wie "Reserviert").
  Innen (inset), weil die Plätze in Karten mit 1px Rand sitzen und ein Ring außen abgeschnitten würde.
  Dazu ein schmaler weißer Streifen innen, damit sich der Ring auch auf roten/dunklen Plätzen abhebt.
*/
.pal-seat-clan {
  box-shadow: inset 0 0 0 5px #8e44ad, inset 0 0 0 7px rgba(255, 255, 255, 0.85) !important;
}

.pal-seat-clan-legend {
  width: 18px;
  height: 18px;
  border-radius: 4px;
  background: var(--rz-base-300);
  box-shadow: inset 0 0 0 4px #8e44ad;
}
