/**
 * RCSpotter — tactile button feedback (site-wide)
 *
 * Tune glow and lift in :root below. Examples:
 *   Wider / more glowy → raise --rcs-tactile-glow-blur (e.g. 14px) and --rcs-tactile-glow-spread (e.g. 3px)
 *   Tighter            → lower blur (e.g. 5px), spread 0px, ring 1px
 *   More lift            → --rcs-tactile-lift: -2px
 */
:root {
  --rcs-tactile-lift: -1px;
  --rcs-tactile-glow-blur: 8px;
  --rcs-tactile-glow-spread: 1px;
  --rcs-tactile-ring-width: 2px;
  --rcs-tactile-shadow-rest: 0 1px 3px rgba(0, 0, 0, 0.22);
  --rcs-tactile-transition: 0.16s cubic-bezier(0.22, 1, 0.36, 1);

  /* Green CTAs (map register, hangar save, sign-in on dark map modal) */
  --rcs-tactile-ring-success: rgba(134, 239, 172, 0.55);
  --rcs-tactile-glow-success: rgba(34, 197, 94, 0.5);

  /* Theme accent (.rcs-btn.primary, .btn.primary on pilot/club/admin) */
  --rcs-tactile-ring-accent: rgba(252, 165, 165, 0.5);
  --rcs-tactile-glow-accent: rgba(221, 2, 6, 0.42);

  /* Neutral / secondary */
  --rcs-tactile-ring-neutral: rgba(148, 163, 184, 0.45);
  --rcs-tactile-glow-neutral: rgba(100, 116, 139, 0.38);

  /* Promo blue (register prompts) */
  --rcs-tactile-ring-promo: rgba(219, 234, 254, 0.75);
  --rcs-tactile-glow-promo: rgba(96, 165, 250, 0.52);

  /* Danger */
  --rcs-tactile-ring-danger: rgba(252, 165, 165, 0.55);
  --rcs-tactile-glow-danger: rgba(239, 68, 68, 0.45);

  /* Map drawer footer / directions */
  --rcs-tactile-ring-map: rgba(203, 213, 225, 0.35);
  --rcs-tactile-glow-map: rgba(15, 23, 42, 0.55);
}

/* Shared tactile targets */
.rcs-btn:not(:disabled):not(.rcs-tactile-skip),
a.rcs-btn,
.hg-btn:not(.rcs-tactile-skip),
.drawer-btn,
.btn:not(:disabled):not(.rcs-tactile-skip),
a.btn,
.btn-directions,
.btn-volmet,
.btn-admin,
.btn-checkin,
.btn-checkout,
.btn-start-log,
.btn-stop-log,
.auth-modal button.primary,
.auth-modal button#auth-cancel,
.top a {
  transition:
    transform var(--rcs-tactile-transition),
    box-shadow var(--rcs-tactile-transition),
    background 0.16s ease,
    border-color 0.16s ease,
    filter 0.16s ease;
}

.rcs-btn:not(:disabled):not(.rcs-tactile-skip),
a.rcs-btn,
.hg-btn:not(.rcs-tactile-skip),
.drawer-btn,
.btn:not(:disabled):not(.rcs-tactile-skip),
a.btn,
.btn-directions,
.btn-volmet,
.btn-admin,
.btn-checkin,
.btn-checkout,
.btn-start-log,
.btn-stop-log,
.auth-modal button.primary,
.auth-modal button#auth-cancel {
  box-shadow: var(--rcs-tactile-shadow-rest);
}

.rcs-btn:not(:disabled):not(.rcs-tactile-skip):hover,
a.rcs-btn:hover,
.hg-btn:not(:disabled):not(.rcs-tactile-skip):hover,
.drawer-btn:hover,
.btn:not(:disabled):not(.rcs-tactile-skip):hover,
a.btn:hover,
.btn-directions:hover,
.btn-volmet:hover,
.btn-admin:hover,
.btn-checkin:hover,
.btn-checkout:hover,
.btn-start-log:hover,
.btn-stop-log:hover,
.auth-modal button.primary:hover:not(:disabled),
.auth-modal button#auth-cancel:hover,
.top a:hover {
  transform: translateY(var(--rcs-tactile-lift));
}

.rcs-btn:not(:disabled):not(.rcs-tactile-skip):active,
a.rcs-btn:active,
.hg-btn:not(:disabled):not(.rcs-tactile-skip):active,
.drawer-btn:active,
.btn:not(:disabled):not(.rcs-tactile-skip):active,
a.btn:active,
.btn-directions:active,
.btn-volmet:active,
.btn-admin:active,
.btn-checkin:active,
.btn-checkout:active,
.btn-start-log:active,
.btn-stop-log:active,
.auth-modal button.primary:active:not(:disabled),
.auth-modal button#auth-cancel:active,
.top a:active {
  transform: translateY(0);
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.18);
  transition-duration: 0.06s;
}

.rcs-btn:focus-visible,
a.rcs-btn:focus-visible,
.hg-btn:focus-visible,
.drawer-btn:focus-visible,
.btn:focus-visible,
a.btn:focus-visible,
.btn-directions:focus-visible,
.btn-volmet:focus-visible,
.auth-modal button.primary:focus-visible,
.auth-modal button#auth-cancel:focus-visible {
  outline: 2px solid #93c5fd;
  outline-offset: 2px;
}

/* Variant glows — accent primary (pilot / club / admin red) */
.rcs-btn.primary:not(:disabled):not(.rcs-tactile-skip):hover,
.btn.primary:not(:disabled):not(.rcs-tactile-skip):hover,
.rcs-preset-row .rcs-btn.active:hover {
  filter: brightness(1.06);
  box-shadow:
    0 0 0 var(--rcs-tactile-ring-width) var(--rcs-tactile-ring-accent),
    0 0 var(--rcs-tactile-glow-blur) var(--rcs-tactile-glow-spread) var(--rcs-tactile-glow-accent);
}

/* Success primary (green) */
.rcs-btn.success:not(:disabled):not(.rcs-tactile-skip):hover,
.hg-btn.primary:not(:disabled):hover,
.drawer-btn--primary:hover,
.auth-modal button.primary:hover:not(:disabled),
.btn-checkin:hover,
.btn-start-log:hover,
.btn-volmet:hover {
  filter: brightness(1.08);
  box-shadow:
    0 0 0 var(--rcs-tactile-ring-width) var(--rcs-tactile-ring-success),
    0 0 var(--rcs-tactile-glow-blur) var(--rcs-tactile-glow-spread) var(--rcs-tactile-glow-success);
}

/* Neutral secondary */
.rcs-btn:not(.primary):not(.success):not(.danger):not(:disabled):not(.rcs-tactile-skip):hover,
.hg-btn:not(.primary):not(:disabled):not(.rcs-tactile-skip):hover,
.drawer-btn--secondary:hover,
.btn:not(.primary):not(.danger):not(:disabled):not(.rcs-tactile-skip):hover,
.btn-directions:hover,
.btn-checkout:hover,
.auth-modal button#auth-cancel:hover,
.top a:hover {
  filter: brightness(1.06);
  box-shadow:
    0 0 0 var(--rcs-tactile-ring-width) var(--rcs-tactile-ring-neutral),
    0 0 var(--rcs-tactile-glow-blur) var(--rcs-tactile-glow-spread) var(--rcs-tactile-glow-neutral);
}

.drawer-btn--promo:hover {
  filter: brightness(1.08);
  box-shadow:
    0 0 0 var(--rcs-tactile-ring-width) var(--rcs-tactile-ring-promo),
    0 0 var(--rcs-tactile-glow-blur) var(--rcs-tactile-glow-spread) var(--rcs-tactile-glow-promo);
}

.btn-admin:hover {
  filter: brightness(1.08);
  box-shadow:
    0 0 0 var(--rcs-tactile-ring-width) rgba(251, 191, 36, 0.45),
    0 0 var(--rcs-tactile-glow-blur) var(--rcs-tactile-glow-spread) rgba(180, 83, 9, 0.4);
}

.rcs-btn.danger:not(:disabled):hover,
.btn.danger:not(:disabled):hover,
.btn-stop-log:hover {
  filter: brightness(1.06);
  box-shadow:
    0 0 0 var(--rcs-tactile-ring-width) var(--rcs-tactile-ring-danger),
    0 0 var(--rcs-tactile-glow-blur) var(--rcs-tactile-glow-spread) var(--rcs-tactile-glow-danger);
}

.rcs-btn:disabled,
.btn:disabled,
.hg-btn:disabled {
  transform: none !important;
  box-shadow: none !important;
}

/* ── Map drawer stacked CTAs (register / log in) ── */
.drawer-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  width: 100%;
  min-height: 54px;
  padding: 12px 16px;
  border-radius: 12px;
  border: 2px solid transparent;
  cursor: pointer;
  font: inherit;
  text-align: center;
}

.drawer-btn-label {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.01em;
  line-height: 1.2;
}

.drawer-btn-sub {
  font-size: 11px;
  font-weight: 600;
  opacity: 0.9;
  line-height: 1.25;
}

.drawer-btn--primary {
  background: linear-gradient(180deg, #4ade80 0%, #22c55e 55%, #16a34a 100%);
  color: #052e16;
  border-color: rgba(134, 239, 172, 0.7);
}

.drawer-btn--secondary {
  background: linear-gradient(180deg, #475569 0%, #334155 55%, #1e293b 100%);
  color: #f8fafc;
  border-color: rgba(148, 163, 184, 0.5);
}

.drawer-btn--promo {
  background: linear-gradient(180deg, #bfdbfe 0%, #60a5fa 52%, #3b82f6 100%);
  color: #0f172a;
  border-color: rgba(219, 234, 254, 0.85);
}

.drawer-btn--compact {
  min-height: 44px;
  padding: 10px 14px;
  margin-top: 10px;
}

.drawer-btn--compact .drawer-btn-label {
  font-size: 13px;
}

.auth-modal .drawer-btn {
  flex: none;
  width: 100%;
  padding: 12px 16px;
}

/* Hangar: let tactile replace old static shadows */
.hg-btn {
  transition:
    transform var(--rcs-tactile-transition),
    box-shadow var(--rcs-tactile-transition),
    background 0.16s ease,
    border-color 0.16s ease,
    filter 0.16s ease;
}

.rcs-pilot-field-page .hg-btn:hover {
  filter: none;
  border-color: var(--rcs-border);
}

.hg-btn:hover {
  background: rgba(255, 255, 255, 0.98);
}

[data-theme="dark"] .rcs-pilot-field-page .hg-btn:not(.primary):not(.danger):hover,
[data-theme="dark"] .rcs-pilot-field-page a.hg-btn:not(.primary):hover {
  background: rgba(55, 65, 81, 0.98);
  color: var(--rcs-text);
  filter: none;
}

[data-theme="dark"] .rcs-pilot-field-page .hg-btn.danger:hover {
  background: rgba(127, 29, 29, 0.42);
  border-color: rgba(248, 113, 113, 0.48);
  color: #fecaca;
  filter: none;
}

.hg-btn.primary:hover {
  background: rgba(34, 197, 94, 0.98);
}

/* Never tactile: password toggles, tab switches, icon-only controls */
.rcs-password-toggle,
.rcs-tactile-skip,
.auth-tabs button,
.drawer-close,
.toggle button,
#btn-account,
.btn-hud-menu,
.hud-mobile-expand,
.rcs-password-toggle:hover,
.auth-tabs button:hover,
.drawer-close:hover,
.toggle button:hover,
#btn-account:hover,
.btn-hud-menu:hover,
.hud-mobile-expand:hover {
  transform: none !important;
  box-shadow: none !important;
  filter: none !important;
}
