:root {
  --pa-font-sans: "Space Grotesk", ui-sans-serif, system-ui, -apple-system, Segoe UI, Helvetica, Arial;
  --pa-font-display: "Fraunces", ui-serif, Georgia, Times New Roman, serif;
  --pa-safe-top: env(safe-area-inset-top, 0px);
  --pa-safe-right: env(safe-area-inset-right, 0px);
  --pa-safe-bottom: env(safe-area-inset-bottom, 0px);
  --pa-safe-left: env(safe-area-inset-left, 0px);

  --pa-text-primary: rgb(11 18 32);
  --pa-text-secondary: rgb(71 85 105);
  --pa-text-muted: rgb(100 116 139);

  --pa-surface-base: rgb(246 248 251);
  --pa-surface-raised: rgba(255, 255, 255, 0.96);
  --pa-surface-sunken: rgba(241, 245, 249, 0.76);
  --pa-surface-overlay: rgba(255, 255, 255, 0.92);

  --pa-accent: #0f766e;
  --pa-accent-hover: #0b5f5a;
  --pa-accent-ring: rgba(15, 118, 110, 0.45);
  --pa-accent-soft: rgba(15, 118, 110, 0.12);
  --pa-accent-soft2: rgba(2, 132, 199, 0.10);
  --pa-edge-glow: rgba(15, 118, 110, 0.18);

  --pa-radius-sm: 10px;
  --pa-radius-md: 14px;
  --pa-radius-lg: 22px;
  --pa-radius-xl: 30px;

  --pa-mobile-nav-height: 72px;
}

html,
body {
  font-family: var(--pa-font-sans);
}

.pa-display {
  font-family: var(--pa-font-display);
  letter-spacing: -0.01em;
}

.pa-accent {
  background:
    radial-gradient(1000px circle at 12% -12%, var(--pa-accent-soft), transparent 55%),
    radial-gradient(900px circle at 92% -8%, var(--pa-accent-soft2), transparent 55%),
    var(--pa-surface-base);
}

.pa-overlay-root {
  pointer-events: auto;
}

.pa-has-mobile-nav {
  --pa-mobile-nav-height: 72px;
}

@media (min-width: 1024px) {
  .pa-has-mobile-nav {
    --pa-mobile-nav-height: 0px;
  }
}

[data-pa-app-layout="1"] > .flex {
  min-height: calc(var(--pa-vh, 1vh) * 100);
}

[data-pa-app-layout="1"] > .flex > aside {
  position: sticky;
  top: 0;
  height: calc(var(--pa-vh, 1vh) * 100);
  max-height: calc(var(--pa-vh, 1vh) * 100);
  overflow: hidden;
}

[data-pa-app-layout="1"] > .flex > aside nav {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

[data-pa-mobile-drawer="1"] {
  height: calc(var(--pa-vh, 1vh) * 100);
  max-height: calc(var(--pa-vh, 1vh) * 100);
  display: flex;
  flex-direction: column;
}

[data-pa-mobile-drawer-scroll="1"] {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.pa-mobile-nav {
  border-top: 1px solid var(--pa-border-subtle);
  background: rgba(255, 255, 255, 0.92);
}

.pa-mobile-nav-inner {
  gap: 0.5rem;
}

.pa-mobile-nav-item {
  min-height: 3.6rem;
  font-size: 0.72rem;
  letter-spacing: 0.01em;
}

.pa-mobile-nav-item svg {
  width: 22px;
  height: 22px;
}

.pa-fab {
  bottom: calc(1.5rem + var(--pa-safe-bottom) + var(--pa-mobile-nav-height));
  right: calc(1.5rem + var(--pa-safe-right));
}

@media (max-width: 640px) {
  .pa-topbar .mx-auto {
    padding-top: calc(0.85rem + var(--pa-safe-top));
    padding-bottom: 0.85rem;
    padding-left: calc(1rem + var(--pa-safe-left));
    padding-right: calc(1rem + var(--pa-safe-right));
  }

  .pa-topbar .text-xs {
    font-size: 0.72rem;
  }

  .pa-topbar .text-sm {
    font-size: 0.82rem;
  }

  .pa-topbar .pa-topbar-actions {
    max-width: 52vw;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  .pa-topbar .pa-topbar-actions::-webkit-scrollbar {
    display: none;
  }

  .pa-topbar .pa-topbar-actions > * {
    flex: 0 0 auto;
  }

  .pa-fab {
    bottom: calc(2.25rem + var(--pa-safe-bottom) + var(--pa-mobile-nav-height));
    right: calc(1.25rem + var(--pa-safe-right));
  }
}

@media (prefers-reduced-motion: reduce) {
  .pa-topbar {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}

html.pa-theme-midnight {
  color-scheme: dark;
  --pa-text-primary: rgb(241 245 249);
  --pa-text-secondary: rgb(203 213 225);
  --pa-text-muted: rgb(148 163 184);
  --pa-surface-base: rgb(11 16 27);
  --pa-surface-raised: rgba(15, 23, 42, 0.95);
  --pa-surface-sunken: rgba(15, 23, 42, 0.7);
  --pa-surface-overlay: rgba(15, 23, 42, 0.9);
  --pa-divider: rgba(148, 163, 184, 0.12);
  --pa-border-subtle: rgba(148, 163, 184, 0.18);
  --pa-border-strong: rgba(148, 163, 184, 0.28);
}

html.pa-theme-midnight body {
  background: var(--pa-surface-base);
  color: var(--pa-text-primary);
}

html.pa-theme-midnight .pa-topbar {
  background:
    radial-gradient(1200px circle at 18% -20%, rgba(15, 118, 110, 0.18), transparent 55%),
    linear-gradient(180deg, rgba(15, 23, 42, 0.92), rgba(15, 23, 42, 0.82));
  border-bottom: 1px solid var(--pa-divider);
}

html.pa-theme-midnight .pa-mobile-nav {
  background: rgba(15, 23, 42, 0.92);
  border-top-color: var(--pa-divider);
}

html.pa-theme-kiosk {
  color-scheme: dark;
  --pa-text-primary: rgb(248 250 252);
  --pa-text-secondary: rgb(226 232 240);
  --pa-text-muted: rgb(203 213 225);
  --pa-surface-base: rgb(7 12 20);
  --pa-surface-raised: rgba(15, 23, 42, 0.96);
  --pa-surface-sunken: rgba(15, 23, 42, 0.75);
  --pa-surface-overlay: rgba(15, 23, 42, 0.92);
  --pa-tap-min: 56px;
}

html.pa-theme-kiosk body {
  background: radial-gradient(1200px circle at 10% -20%, rgba(15, 118, 110, 0.18), transparent 55%),
    var(--pa-surface-base);
  color: var(--pa-text-primary);
}

html.pa-theme-kiosk .pa-mobile-nav {
  display: none;
}
