/* ==========================================================================
   Learn Deutsch TOOLS - Custom Styles & Design System
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Fira+Code:wght@400;500;600&display=swap');

:root {
  --font-main: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: 'Fira Code', monospace;
  
  /* Article Color Codes (Standard Pedagogy) */
  --color-der: #2563eb;       /* Masculin - Bleu */
  --color-der-bg: #eff6ff;
  --color-der-border: #bfdbfe;
  
  --color-die: #e11d48;       /* Féminin - Rouge/Rose */
  --color-die-bg: #fff1f2;
  --color-die-border: #fecdd3;
  
  --color-das: #16a34a;       /* Neutre - Vert */
  --color-das-bg: #f0fdf4;
  --color-das-border: #bbf7d0;

  --color-plural: #d97706;    /* Pluriel - Ambre/Jaune */
  --color-plural-bg: #fffbeb;
  --color-plural-border: #fde68a;

  /* Case Highlights */
  --color-nom: #6366f1;       /* Nominativ */
  --color-akk: #ea580c;       /* Akkusativ */
  --color-dat: #0d9488;       /* Dativ */
  --color-gen: #9333ea;       /* Genitiv */
}

body {
  font-family: var(--font-main);
  background-color: #f8fafc;
  color: #0f172a;
  overflow-x: hidden;
}

/* Custom Scrollbars */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* German Article Pills & Color Indicators */
.badge-der {
  background-color: var(--color-der-bg);
  color: var(--color-der);
  border: 1px solid var(--color-der-border);
}
.badge-die {
  background-color: var(--color-die-bg);
  color: var(--color-die);
  border: 1px solid var(--color-die-border);
}
.badge-das {
  background-color: var(--color-das-bg);
  color: var(--color-das);
  border: 1px solid var(--color-das-border);
}
.badge-plural {
  background-color: var(--color-plural-bg);
  color: var(--color-plural);
  border: 1px solid var(--color-plural-border);
}

.card-der {
  border-top: 4px solid var(--color-der);
}
.card-die {
  border-top: 4px solid var(--color-die);
}
.card-das {
  border-top: 4px solid var(--color-das);
}

/* 3D Flashcard Flip System */
.flip-card {
  background-color: transparent;
  perspective: 1000px;
}
.flip-card-inner {
  position: relative;
  width: 100%;
  height: 100%;
  text-align: center;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  transform-style: preserve-3d;
}
.flip-card.flipped .flip-card-inner {
  transform: rotateY(180deg);
}
.flip-card-front, .flip-card-back {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-radius: 1rem;
}
.flip-card-back {
  transform: rotateY(180deg);
}

/* Audio Waveform Animation */
.audio-btn.speaking {
  animation: pulse-ring 1.2s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
}

@keyframes pulse-ring {
  0% {
    box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.6);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(99, 102, 241, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(99, 102, 241, 0);
  }
}

/* Case Highlighter Boxes */
.case-nom { border-left: 4px solid var(--color-nom); }
.case-akk { border-left: 4px solid var(--color-akk); }
.case-dat { border-left: 4px solid var(--color-dat); }
.case-gen { border-left: 4px solid var(--color-gen); }

/* Interactive Sentence Word Chips */
.word-chip {
  cursor: grab;
  user-select: none;
  transition: all 0.2s ease;
}
.word-chip:active {
  cursor: grabbing;
}
.word-chip.selected {
  opacity: 0.4;
  transform: scale(0.95);
  pointer-events: none;
}

/* Glassmorphism accents */
.glass-panel {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(226, 232, 240, 0.8);
}

.dark-glass-panel {
  background: rgba(15, 23, 42, 0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(51, 65, 85, 0.8);
}

/* Floating animation */
@keyframes float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-6px); }
  100% { transform: translateY(0px); }
}

.animate-float {
  animation: float 4s ease-in-out infinite;
}

/* Print Optimization for Grammar Cheatsheets */
@media print {
  header, nav, footer, .no-print, .btn, button {
    display: none !important;
  }
  body {
    background: white !important;
    color: black !important;
    font-size: 12pt;
  }
  .container, main {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .card, table, .case-table {
    box-shadow: none !important;
    border: 1px solid #ccc !important;
    page-break-inside: avoid;
  }
}

/* ==========================================================================
   Utility Components (Number Converter Dashes & QR Modal)
   ========================================================================== */

/* Number to words converter - dash styling */
.dash {
  color: #cbd5e1;
  opacity: 0.8;
  font-weight: normal;
}

/* QR Code styling */
#qr-code-footer {
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

#qr-modal {
  backdrop-filter: blur(4px);
}
