/**
 * 79Academy Base CSS — Shared Design Tokens & Animations
 * Wird von allen Plugins als CSS-Dependency geladen (vor plugin-eigenem CSS).
 * Definiert die gemeinsamen :root Variablen, Animations und Font Stack.
 *
 * Plugin-spezifische Tokens (Phase Colors, Cheat Gold, Macro Colors)
 * bleiben in den jeweiligen Plugin components.css Dateien.
 */

/* ================================================
   SHARED DESIGN TOKENS
   ================================================ */

:root {
  /* Spacing System (4px base) */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 12px;
  --space-lg: 16px;
  --space-xl: 20px;
  --space-2xl: 24px;
  --space-3xl: 32px;

  /* Base Colors */
  --accent: #2F80FF;
  --accent-lighter: #60A5FF;
  --success: #4CAF50;
  --success-lighter: #66BB6A;
  --danger: #FF5252;
  --warning: #FFA726;
  --text-primary: #FFFFFF;

  /* Accent Opacity Scale */
  --accent-5: color-mix(in srgb, var(--accent) 5%, transparent);
  --accent-10: color-mix(in srgb, var(--accent) 10%, transparent);
  --accent-15: color-mix(in srgb, var(--accent) 15%, transparent);
  --accent-20: color-mix(in srgb, var(--accent) 20%, transparent);
  --accent-25: color-mix(in srgb, var(--accent) 25%, transparent);
  --accent-30: color-mix(in srgb, var(--accent) 30%, transparent);
  --accent-35: color-mix(in srgb, var(--accent) 35%, transparent);
  --accent-40: color-mix(in srgb, var(--accent) 40%, transparent);
  --accent-45: color-mix(in srgb, var(--accent) 45%, transparent);
  --accent-50: color-mix(in srgb, var(--accent) 50%, transparent);
  --accent-55: color-mix(in srgb, var(--accent) 55%, transparent);
  --accent-60: color-mix(in srgb, var(--accent) 60%, transparent);
  --accent-65: color-mix(in srgb, var(--accent) 65%, transparent);
  --accent-70: color-mix(in srgb, var(--accent) 70%, transparent);

  /* White Opacity Scale */
  --white-3: color-mix(in srgb, white 3%, transparent);
  --white-5: color-mix(in srgb, white 5%, transparent);
  --white-6: color-mix(in srgb, white 6%, transparent);
  --white-8: color-mix(in srgb, white 8%, transparent);
  --white-10: color-mix(in srgb, white 10%, transparent);
  --white-15: color-mix(in srgb, white 15%, transparent);
  --white-20: color-mix(in srgb, white 20%, transparent);
  --white-25: color-mix(in srgb, white 25%, transparent);
  --white-30: color-mix(in srgb, white 30%, transparent);
  --white-40: color-mix(in srgb, white 40%, transparent);
  --white-50: color-mix(in srgb, white 50%, transparent);
  --white-60: color-mix(in srgb, white 60%, transparent);
  --white-70: color-mix(in srgb, white 70%, transparent);
  --white-80: color-mix(in srgb, white 80%, transparent);

  /* Success Opacity Scale */
  --success-5: color-mix(in srgb, var(--success) 5%, transparent);
  --success-10: color-mix(in srgb, var(--success) 10%, transparent);
  --success-15: color-mix(in srgb, var(--success) 15%, transparent);
  --success-20: color-mix(in srgb, var(--success) 20%, transparent);
  --success-25: color-mix(in srgb, var(--success) 25%, transparent);
  --success-30: color-mix(in srgb, var(--success) 30%, transparent);
  --success-40: color-mix(in srgb, var(--success) 40%, transparent);
  --success-50: color-mix(in srgb, var(--success) 50%, transparent);

  /* Danger Opacity Scale */
  --danger-10: color-mix(in srgb, var(--danger) 10%, transparent);
  --danger-15: color-mix(in srgb, var(--danger) 15%, transparent);
  --danger-20: color-mix(in srgb, var(--danger) 20%, transparent);
  --danger-25: color-mix(in srgb, var(--danger) 25%, transparent);
  --danger-30: color-mix(in srgb, var(--danger) 30%, transparent);
  --danger-40: color-mix(in srgb, var(--danger) 40%, transparent);
  --danger-50: color-mix(in srgb, var(--danger) 50%, transparent);

  /* Warning Opacity Scale */
  --warning-10: color-mix(in srgb, var(--warning) 10%, transparent);
  --warning-15: color-mix(in srgb, var(--warning) 15%, transparent);
  --warning-20: color-mix(in srgb, var(--warning) 20%, transparent);

  /* Semantic Aliases */
  --glass-bg: rgba(255, 255, 255, 0.04);
  --glass-border: rgba(255, 255, 255, 0.08);
  --glass-blur: blur(20px);
  --accent-glow: var(--accent-25);
  --accent-light: var(--accent-15);
  --text-secondary: var(--white-70);
  --text-muted: var(--white-50);
  --card-bg: rgba(255, 255, 255, 0.04);
  --card-hover: rgba(255, 255, 255, 0.06);
  --input-bg: #0a0a14;
  --input-bg-focus: #141821;
  --input-border: rgba(255, 255, 255, 0.08);
  --input-border-focus: #2F80FF;
  --input-focus-ring: rgba(47, 128, 255, 0.15);
  --border-subtle: var(--white-6);

  /* Font Size Scale */
  --font-2xs: 9px;
  --font-xs: 10px;
  --font-sm: 11px;
  --font-md: 12px;
  --font-base: 13px;
  --font-lg: 14px;
  --font-xl: 15px;
  --font-2xl: 16px;
  --font-3xl: 17px;
  --font-4xl: 18px;
  --font-5xl: 20px;
  --font-6xl: 24px;
  --font-7xl: 28px;
  --font-hero: 48px;

  /* Sizing */
  --icon-btn-size: 40px;
  --border-radius-sm: 8px;
  --border-radius-md: 12px;
  --border-radius-lg: 16px;
  --border-radius-xl: 20px;
  --nav-arrow-size: 32px;
}

/* ================================================
   SHARED DARK FORM AUTOFILL FIX
   ================================================

   Root Cause:
   WebKit/Safari Browser-Autofill überschreibt neue Dark-Inputs standardmässig
   mit hellem Hintergrund. Diese zentrale Regel greift für alle 79Academy
   React-App-Roots, damit neue Inputs den Dark-Look automatisch behalten.
*/

[id^="79academy-"][id$="-root"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="file"]):not(.input-reset-none):-webkit-autofill,
[id^="79academy-"][id$="-root"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="file"]):not(.input-reset-none):-webkit-autofill:hover,
[id^="79academy-"][id$="-root"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="file"]):not(.input-reset-none):-webkit-autofill:focus,
[id^="79academy-"][id$="-root"] textarea:not(.input-reset-none):-webkit-autofill,
[id^="79academy-"][id$="-root"] textarea:not(.input-reset-none):-webkit-autofill:hover,
[id^="79academy-"][id$="-root"] textarea:not(.input-reset-none):-webkit-autofill:focus,
[id^="79academy-"][id$="-root"] select:not(.input-reset-none):-webkit-autofill,
[id^="79academy-"][id$="-root"] select:not(.input-reset-none):-webkit-autofill:hover,
[id^="79academy-"][id$="-root"] select:not(.input-reset-none):-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px var(--input-bg, #0a0a14) inset;
  box-shadow: 0 0 0 1000px var(--input-bg, #0a0a14) inset;
  -webkit-text-fill-color: var(--text-primary, #FFFFFF);
  -webkit-background-clip: padding-box;
  background-clip: padding-box;
  caret-color: var(--text-primary, #FFFFFF);
  border-color: var(--white-15, rgba(255, 255, 255, 0.15));
  transition: background-color 5000s ease-in-out 0s;
}

/* ================================================
   SHARED DARK INPUT RESET
   ================================================

   Setzt Baseline-Styles fuer alle Inputs innerhalb von 79Academy Plugins.
   GP/Theme-Overrides werden durch Container-Scoping + opake Backgrounds geblockt.
   Bewerbungs-Formular ist die visuelle Referenz (#141821, blauer Focus-Ring).

   Opt-out: Elemente mit Klasse `input-reset-none` werden vom Reset ausgenommen.
   Nutzen fuer Textareas die bewusst transparent/borderless in einer Card sitzen
   (z.B. PostCreate-Textarea im Community Hub).
*/

[id^="79academy-"][id$="-root"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="file"]):not(.input-reset-none),
[id^="79academy-"][id$="-root"] textarea:not(.input-reset-none),
[id^="79academy-"][id$="-root"] select:not(.input-reset-none) {
  background: var(--input-bg);
  border: 1px solid var(--input-border);
  border-radius: var(--border-radius-sm);
  color: var(--text-primary);
  font-family: inherit;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
}

[id^="79academy-"][id$="-root"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="file"]):not(.input-reset-none):hover,
[id^="79academy-"][id$="-root"] textarea:not(.input-reset-none):hover,
[id^="79academy-"][id$="-root"] select:not(.input-reset-none):hover {
  border-color: rgba(255, 255, 255, 0.15);
}

[id^="79academy-"][id$="-root"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):not([type="file"]):not(.input-reset-none):focus,
[id^="79academy-"][id$="-root"] textarea:not(.input-reset-none):focus,
[id^="79academy-"][id$="-root"] select:not(.input-reset-none):focus {
  background: var(--input-bg-focus);
  border-color: var(--input-border-focus);
  box-shadow: 0 0 0 3px var(--input-focus-ring);
}

[id^="79academy-"][id$="-root"] input:not(.input-reset-none)::placeholder,
[id^="79academy-"][id$="-root"] textarea:not(.input-reset-none)::placeholder {
  color: rgba(255, 255, 255, 0.3);
  -webkit-text-fill-color: rgba(255, 255, 255, 0.3);
}

/* ================================================
   SHARED ANIMATIONS
   ================================================ */

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes slideUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes slideUpPanel {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

@keyframes overlayFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes checkmarkPop {
  0% { transform: scale(0) rotate(-45deg); opacity: 0; }
  50% { transform: scale(1.2) rotate(0deg); opacity: 1; }
  100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

@keyframes ringGlow {
  0%, 100% { filter: drop-shadow(0 0 4px var(--accent-25)); }
  50% { filter: drop-shadow(0 0 12px var(--accent-40)); }
}

/* ================================================
   COACH LAYER — Coach Strip + Focus Highlight
   ================================================
   Scoped to [id="79academy-coach-root"] and [id="79academy-spotlight-root"].
   GOTCHA: IDs start with digit "79" — CSS #id selectors invalid per CSS Syntax Level 3.
   Must use attribute selector [id="..."] instead.

   Two interaction models:
   - Coach Layer (CoachBubble): NON-MODAL — background interactive
   - Spotlight (SpotlightOverlay): MODAL — background visible but not interactive
*/

[id="79academy-coach-root"],
[id="79academy-spotlight-root"] {
  position: relative;
  z-index: 100000;
}

/* --- Keyframes --- */

@keyframes coachStripEnter {
  0% { transform: translateY(100%); opacity: 0; }
  60% { transform: translateY(-4px); opacity: 1; }
  80% { transform: translateY(1px); }
  100% { transform: translateY(0); opacity: 1; }
}

@keyframes coachStripExit {
  from { transform: translateY(0); opacity: 1; }
  to { transform: translateY(100%); opacity: 0; }
}

@keyframes coachFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes coachBreathe {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.015); }
}

/* Gold glow — soft, no hard border */
@keyframes coachFocusPulse {
  0%, 100% { box-shadow: 0 0 20px rgba(212, 168, 67, 0.3), 0 0 40px rgba(212, 168, 67, 0.12); }
  50% { box-shadow: 0 0 28px rgba(212, 168, 67, 0.45), 0 0 56px rgba(212, 168, 67, 0.18); }
}

/* ===== COACH LAYER WRAPPER ===== */

.coach-layer {
  position: fixed;
  inset: 0;
  z-index: 100000;
  pointer-events: none;
}

/* ===== FOCUS HIGHLIGHT (Glow Ring + Dim) ===== */

.coach-focus {
  position: fixed;
  inset: 0;
  z-index: 99999;
  pointer-events: none;
}

/* Modal mode: dim blocks clicks (Spotlight) */
.coach-focus--modal {
  pointer-events: auto;
}
.coach-focus--modal .coach-focus__dim {
  pointer-events: auto;
}

.coach-focus__dim {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  pointer-events: none;
  animation: overlayFadeIn 0.3s ease-out;
}

.coach-focus__ring {
  position: fixed;
  border-radius: 16px;
  pointer-events: none;
  animation: coachFocusPulse 2s ease-in-out infinite;
}

/* ===== COACH STRIP (Bottom-anchored) ===== */

.coach-strip {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100001;
  pointer-events: auto;
  animation: coachStripEnter 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both;
  max-height: 40vh;
  overflow-y: auto;
}

/* Gradient fade at top edge — no hard border */
.coach-strip__fade {
  position: absolute;
  top: -40px;
  left: 0;
  right: 0;
  height: 40px;
  background: linear-gradient(to bottom, transparent, rgba(10, 10, 20, 0.85));
  pointer-events: none;
}

.coach-strip__body {
  background: rgba(10, 10, 20, 0.85);
  backdrop-filter: blur(20px) saturate(1.2);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding: var(--space-xl) var(--space-lg) var(--space-2xl);
}

.coach-strip__inner {
  display: flex;
  align-items: flex-start;
  gap: var(--space-lg);
  max-width: 480px;
  margin: 0 auto;
}

/* --- Avatar --- */

.coach-strip__avatar {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
  animation: coachBreathe 3s ease-in-out infinite;
}

.coach-strip__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* --- Content --- */

.coach-strip__content {
  flex: 1;
  min-width: 0;
}

.coach-strip__title {
  font-size: var(--font-2xl);
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 var(--space-xs) 0;
  line-height: 1.3;
  animation: coachFadeIn 0.3s ease-out 0.2s both;
}

.coach-strip__subtitle {
  font-size: var(--font-lg);
  color: var(--text-muted);
  font-style: italic;
  line-height: 1.5;
  margin: 0 0 var(--space-sm) 0;
  animation: coachFadeIn 0.3s ease-out 0.25s both;
}

.coach-strip__message {
  font-size: var(--font-lg);
  color: var(--text-secondary);
  line-height: 1.55;
  margin: 0 0 var(--space-lg) 0;
  white-space: pre-line;
  animation: coachFadeIn 0.3s ease-out 0.3s both;
}

.coach-strip__actions {
  display: flex;
  gap: var(--space-sm);
  flex-wrap: wrap;
  animation: coachFadeIn 0.3s ease-out 0.4s both;
}

/* --- Progress Dots (Spotlight) --- */

.coach-strip__progress {
  display: flex;
  gap: 6px;
  margin: var(--space-sm) 0;
  animation: coachFadeIn 0.3s ease-out 0.35s both;
}

.coach-strip__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  transition: background 0.2s ease, transform 0.2s ease;
}

.coach-strip__dot--active {
  background: #D4A843;
  transform: scale(1.3);
}

.coach-strip__dot--done {
  background: rgba(255, 255, 255, 0.5);
}

/* ===== COACH BUTTONS (shared by Coach Layer + Spotlight) ===== */

.coach-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-md) var(--space-lg);
  border-radius: var(--border-radius-md);
  font-size: var(--font-lg);
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: background-color 0.15s ease, opacity 0.15s ease, transform 0.1s ease;
  border: none;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
}

.coach-btn:focus-visible {
  box-shadow: 0 0 0 2px var(--accent), 0 0 0 4px rgba(47, 128, 255, 0.3);
}

.coach-btn--primary {
  background: var(--accent);
  color: #fff;
}
.coach-btn--primary:hover {
  background: var(--accent-lighter);
}
.coach-btn--primary:active {
  transform: scale(0.97);
  opacity: 0.85;
}

.coach-btn--secondary {
  background: var(--white-8);
  color: var(--text-primary);
}
.coach-btn--secondary:hover {
  background: var(--white-15);
}
.coach-btn--secondary:active {
  transform: scale(0.97);
  opacity: 0.85;
}

.coach-btn--ghost {
  background: transparent;
  color: var(--text-muted);
  font-weight: 500;
}
.coach-btn--ghost:hover {
  color: var(--text-secondary);
}
.coach-btn--ghost:active {
  transform: scale(0.97);
  opacity: 0.7;
}

/* ===== VARIANTS ===== */

/* GameDay — gold accents */
.coach-strip--gameday .coach-strip__body {
  border-top-color: rgba(255, 215, 0, 0.2);
}
.coach-strip--gameday .coach-strip__avatar {
  box-shadow: 0 0 16px rgba(255, 215, 0, 0.12), 0 4px 20px rgba(0, 0, 0, 0.5);
}

/* ===== REDUCED MOTION ===== */

@media (prefers-reduced-motion: reduce) {
  .coach-strip,
  .coach-strip__title,
  .coach-strip__subtitle,
  .coach-strip__message,
  .coach-strip__actions,
  .coach-strip__progress {
    animation: none;
  }
  .coach-strip__avatar {
    animation: none;
  }
  .coach-focus__ring {
    animation: none;
  }
  .coach-focus__dim {
    animation: none;
  }
}

/* =========================================================
   Toast-System (v1.30) — cross-plugin Notifications
   ========================================================= */

[id="79academy-toast-container"] {
  position: fixed;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 99999;
  display: flex;
  flex-direction: column-reverse;
  gap: 8px;
  pointer-events: none;
  max-width: calc(100vw - 32px);
  width: 420px;
}

.academy-toast {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px 12px 18px;
  background: rgba(24, 26, 32, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-left: 3px solid rgba(255, 255, 255, 0.4);
  border-radius: 10px;
  color: rgba(255, 255, 255, 0.95);
  font-size: 14px;
  line-height: 1.4;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 180ms ease-out, transform 180ms ease-out;
}

.academy-toast--visible {
  opacity: 1;
  transform: translateY(0);
}

.academy-toast--leaving {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 180ms ease-in, transform 180ms ease-in;
}

.academy-toast-message {
  flex: 1;
  min-width: 0;
  word-break: break-word;
}

.academy-toast-action {
  flex: 0 0 auto;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: rgba(255, 255, 255, 0.95);
  font-size: 13px;
  font-weight: 500;
  padding: 5px 12px;
  border-radius: 6px;
  cursor: pointer;
  transition: background 120ms ease;
}

.academy-toast-action:hover {
  background: rgba(255, 255, 255, 0.2);
}

.academy-toast-close {
  flex: 0 0 auto;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.5);
  font-size: 20px;
  line-height: 1;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  border-radius: 4px;
  transition: color 120ms ease, background 120ms ease;
}

.academy-toast-close:hover {
  color: rgba(255, 255, 255, 0.9);
  background: rgba(255, 255, 255, 0.08);
}

/* Type-Varianten — subtile Border-Accent-Farben */
.academy-toast--info {
  border-left-color: rgba(47, 128, 255, 0.9); /* Blau */
}

.academy-toast--success {
  border-left-color: rgba(134, 239, 172, 0.9); /* Gruen */
}

.academy-toast--warning {
  border-left-color: rgba(251, 191, 36, 0.9); /* Orange */
}

.academy-toast--error {
  border-left-color: rgba(248, 113, 113, 0.9); /* Rot */
}

/* Focus-visible fuer Keyboard-Accessibility */
.academy-toast-action:focus-visible,
.academy-toast-close:focus-visible {
  outline: 2px solid rgba(47, 128, 255, 0.8);
  outline-offset: 2px;
}

@media (max-width: 520px) {
  [id="79academy-toast-container"] {
    bottom: 16px;
    width: auto;
    left: 16px;
    right: 16px;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .academy-toast,
  .academy-toast--leaving {
    transition: opacity 0.01ms;
    transform: none;
  }
}

/* ================================================
   COOKIE BANNER
   Globaler Privacy-Hinweis (nur technisch notwendige Cookies).
   ================================================ */

.academy-cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100000;
  padding: 16px;
  background: rgba(18, 18, 20, 0.96);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  animation: academyCookieSlideUp 0.3s ease-out;
}

@keyframes academyCookieSlideUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}

.academy-cookie-banner--hide {
  animation: academyCookieSlideDown 0.24s ease-in forwards;
}

@keyframes academyCookieSlideDown {
  from { transform: translateY(0); }
  to { transform: translateY(100%); }
}

.academy-cookie-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.academy-cookie-text {
  flex: 1;
  min-width: 240px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  line-height: 1.5;
}

.academy-cookie-text strong {
  display: block;
  color: #fff;
  font-size: 15px;
  margin-bottom: 2px;
}

.academy-cookie-text a {
  color: var(--accent, #2F80FF);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.academy-cookie-text a:hover {
  color: var(--accent-lighter, #4A90FF);
}

.academy-cookie-accept {
  flex-shrink: 0;
  padding: 12px 22px;
  min-height: 44px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.academy-cookie-accept:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.25);
}

.academy-cookie-accept:focus-visible {
  outline: 2px solid var(--accent, #2F80FF);
  outline-offset: 2px;
}

@media (max-width: 520px) {
  .academy-cookie-inner {
    flex-direction: column;
    align-items: stretch;
  }
  .academy-cookie-accept {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .academy-cookie-banner,
  .academy-cookie-banner--hide {
    animation: none;
  }
}
