@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@300;400;500;600;700&family=Orbitron:wght@400;500;700;900&family=IBM+Plex+Sans:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
  /* COMMAND CENTER (TACTICAL BLUE) */
  --bg-primary: #04080f;
  --bg-secondary: #0a1128;
  --bg-tertiary: #122040;
  --bg-hover: #1b2e59;
  
  --border: rgba(0, 240, 255, 0.25);
  --border-glow: rgba(0, 240, 255, 0.6);
  
  --text-primary: #e0f7fa;
  --text-secondary: #b2ebf2;
  --text-muted: #80deea;
  
  --accent: #00e5ff;
  --accent-rgb: 0, 229, 255;
  --accent-dark: #00b4d8;
  --accent-light: #84ffff;
  
  --info: #0277bd;
  --warning: #ffb300;
  --danger: #ff1744;
  
  --font-main: 'Inter', 'IBM Plex Sans', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
  --font-logo: 'Orbitron', sans-serif;
  --font-header: 'Rajdhani', sans-serif;
}

[data-theme="woodland-camo"] {
  /* JUNGLE COMMANDO */
  --bg-primary: #020a04;
  --bg-secondary: #08170c;
  --bg-tertiary: #102916;
  --bg-hover: #194021;
  
  --border: rgba(57, 255, 20, 0.3); 
  --border-glow: rgba(57, 255, 20, 0.7);
  
  --text-primary: #f0fff0;
  --text-secondary: #98fb98;
  --text-muted: #66cdaa;
  
  --accent: #39ff14;
  --accent-rgb: 57, 255, 20;
  --accent-dark: #00cc00;
  --accent-light: #7cfc00;
  
  --info: #00ced1;
  --warning: #ffa500;
  --danger: #ff4500;
}

[data-theme="desert-camo"] {
  /* DESERT STORM */
  --bg-primary: #0d0a06;
  --bg-secondary: #1a140b;
  --bg-tertiary: #2e2313;
  --bg-hover: #40301a;
  
  --border: rgba(255, 170, 0, 0.3); 
  --border-glow: rgba(255, 170, 0, 0.7);
  
  --text-primary: #fff8e1;
  --text-secondary: #ffe0b2;
  --text-muted: #ffcc80;
  
  --accent: #ffaa00;
  --accent-rgb: 255, 170, 0;
  --accent-dark: #cc8800;
  --accent-light: #ffd54f;
  
  --info: #4fc3f7;
  --warning: #ff6f00;
  --danger: #d50000;
}

[data-theme="urban-camo"] {
  /* URBAN GHOST */
  --bg-primary: #060606;
  --bg-secondary: #121212;
  --bg-tertiary: #222222;
  --bg-hover: #333333;
  
  --border: rgba(200, 200, 200, 0.3); 
  --border-glow: rgba(255, 255, 255, 0.6);
  
  --text-primary: #ffffff;
  --text-secondary: #cccccc;
  --text-muted: #999999;
  
  --accent: #ffffff;
  --accent-rgb: 255, 255, 255;
  --accent-dark: #aaaaaa;
  --accent-light: #f5f5f5;
  
  --info: #00e5ff;
  --warning: #ffc107;
  --danger: #ff5252;
}

[data-theme="desert-storm"] {
  /* DESERT STORM */
  --bg-primary: #1e1b14;
  --bg-secondary: #2c281e;
  --bg-tertiary: #3a3428;
  --bg-hover: #494232;
  
  --border: rgba(194, 178, 128, 0.4); 
  --border-glow: rgba(194, 178, 128, 0.8);
  
  --text-primary: #fcfcfb;
  --text-secondary: #dcd0b8;
  --text-muted: #bdae8c;
  
  --accent: #c2b280;
  --accent-rgb: 194, 178, 128;
  --accent-dark: #a29260;
  --accent-light: #e2d2a0;
  
  --info: #8ca3bd;
  --warning: #bd9f6c;
  --danger: #bd6c6c;
}

[data-theme="jungle-warfare"] {
  /* JUNGLE WARFARE */
  --bg-primary: #121915;
  --bg-secondary: #1c2621;
  --bg-tertiary: #27362e;
  --bg-hover: #33473d;
  
  --border: rgba(85, 107, 47, 0.4); 
  --border-glow: rgba(85, 107, 47, 0.8);
  
  --text-primary: #f0f4f0;
  --text-secondary: #b8c9b8;
  --text-muted: #8a9c8a;
  
  --accent: #556b2f;
  --accent-rgb: 85, 107, 47;
  --accent-dark: #3b4d1c;
  --accent-light: #738f42;
  
  --info: #42738f;
  --warning: #8f7f42;
  --danger: #8f4242;
}

[data-theme="urban-tactical"] {
  /* URBAN TACTICAL */
  --bg-primary: #141618;
  --bg-secondary: #22262a;
  --bg-tertiary: #31373d;
  --bg-hover: #404850;
  
  --border: rgba(112, 128, 144, 0.4); 
  --border-glow: rgba(112, 128, 144, 0.8);
  
  --text-primary: #f0f2f4;
  --text-secondary: #b0b8c0;
  --text-muted: #808890;
  
  --accent: #708090;
  --accent-rgb: 112, 128, 144;
  --accent-dark: #506070;
  --accent-light: #90a0b0;
  
  --info: #5090b0;
  --warning: #b09050;
  --danger: #b05050;
}

[data-theme="recon-stealth"] {
  /* BLACK OPS */
  --bg-primary: #030303;
  --bg-secondary: #0a0a0a;
  --bg-tertiary: #141414;
  --bg-hover: #222222;
  
  --border: rgba(255, 0, 60, 0.4); 
  --border-glow: rgba(255, 0, 60, 0.8);
  
  --text-primary: #ffe6e6;
  --text-secondary: #ff9999;
  --text-muted: #cc6666;
  
  --accent: #ff003c;
  --accent-rgb: 255, 0, 60;
  --accent-dark: #990024;
  --accent-light: #ff668c;
  
  --info: #666666;
  --warning: #ffaa00;
  --danger: #e60000;
}

[data-theme="vajra"] {
  --bg-primary: #0a0a0a;      /* Deep Black */
  --bg-secondary: #171717;    /* Charcoal */
  --bg-tertiary: #262626;     /* Dark Grey */
  --bg-hover: #404040;        /* Hover Grey */
  
  --border: rgba(239, 68, 68, 0.3); 
  --border-glow: rgba(239, 68, 68, 0.5); 
  
  --text-primary: #ffffff;    
  --text-secondary: #fcd34d;  /* Muted Gold */
  --text-muted: #a3a3a3;      
  
  --accent: #ef4444;          /* Crimson Red */
  --accent-rgb: 239, 68, 68;
  --accent-dark: #b91c1c;     
  --accent-light: #f87171;    
  
  --info: #fbbf24;            /* Gold */
  --warning: #f59e0b;         
  --danger: #dc2626;          
}

[data-theme="dark-love"] {
  /* DARK ROSE */
  --bg-primary: #0d0406;
  --bg-secondary: #1a080d;
  --bg-tertiary: #2e0f18;
  --bg-hover: #4a1827;
  
  --border: rgba(225, 29, 72, 0.3); 
  --border-glow: rgba(225, 29, 72, 0.7);
  
  --text-primary: #fff1f2;
  --text-secondary: #fecdd3;
  --text-muted: #fda4af;
  
  --accent: #e11d48;
  --accent-rgb: 225, 29, 72;
  --accent-dark: #be123c;
  --accent-light: #f43f5e;
  
  --info: #0ea5e9;
  --warning: #f59e0b;
  --danger: #9f1239;
}

  --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.3), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --shadow-glow: 0 0 15px rgba(34, 197, 94, 0.25);
  
  --transition-fast: 0.15s ease;
  --transition-normal: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

html {
  height: -webkit-fill-available;
  overflow-x: hidden;
  max-width: 100vw;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  scrollbar-width: thin;
  scrollbar-color: var(--border) var(--bg-primary);
  -webkit-tap-highlight-color: transparent;
  /* UI HARDENING: Prevent Text & Container Overflow */
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  min-width: 0;
  min-height: 0;
}

/* UI HARDENING: Ensure Media is Responsive */
img, video, canvas, svg, iframe {
  max-width: 100%;
  height: auto;
}

/* UI HARDENING: Responsive Tables */
table {
  max-width: 100%;
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* UI HARDENING: Prevent button/chip text clipping */
.chip, .tag, .badge, .btn-primary, .exam-btn {
  max-width: 100%;
}

body {
  font-family: var(--font-main);
  font-weight: bold;
  background-color: var(--bg-primary);
  color: var(--text-primary);
  height: 100vh;
  height: -webkit-fill-available;
  height: 100dvh;
  overflow: hidden;
  display: flex;
  -webkit-font-smoothing: antialiased;
}

/* App Layout */
.app-container {
  display: flex;
  width: 100%;
  height: 100%;
  position: relative;
}

/* Sidebar Styling */
.sidebar {
  width: 260px;
  background-color: var(--bg-secondary);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  height: 100%;
  flex-shrink: 0;
  z-index: 10;
  overflow-x: hidden;
}

.logo-section {
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  min-height: 100px;
}

.logo-icon {
  width: 32px;
  height: 32px;
  background: linear-gradient(135deg, var(--accent) 0%, var(--info) 100%);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-logo);
  font-weight: 900;
  font-size: 1.1rem;
  color: var(--bg-primary);
  box-shadow: var(--shadow-glow);
}

.logo-text {
  font-family: var(--font-logo);
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 1.5px;
  background: linear-gradient(to right, var(--text-primary), var(--text-muted));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.nav-links {
  list-style: none;
  padding: 16px 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex-grow: 1;
  flex-shrink: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 16px;
  font-size: 1.1rem;
  border-radius: 0;
  color: var(--text-secondary);
  text-decoration: none;
  font-weight: 500;
  cursor: pointer;
  transition: var(--transition-fast);
  border-left: 4px solid transparent;
  flex-shrink: 0;
}

.nav-item:hover {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
}

.nav-item.active {
  background-color: transparent;
  color: var(--text-primary);
  border-left-color: var(--accent);
  font-weight: 600;
}

.nav-item svg {
  width: 20px;
  height: 20px;
  transition: var(--transition-fast);
  stroke: var(--info);
}

.nav-item.active svg {
  stroke: var(--accent);
}

.user-profile {
  padding: 12px 20px 6px 20px;
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: 12px;
  background-color: var(--bg-tertiary);
  cursor: pointer;
  transition: background-color var(--transition-fast);
}

.user-profile:hover {
  background-color: var(--bg-hover);
}

.avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--bg-tertiary) 0%, var(--bg-hover) 100%);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  color: var(--accent);
}

.user-info {
  display: flex;
  flex-direction: column;
}

.user-name {
  font-size: 0.9rem;
  font-weight: 600;
}

.user-rank {
  font-size: 0.75rem;
  color: var(--accent);
  font-family: var(--font-mono);
  text-transform: uppercase;
}

/* Main Workspace */
.main-content {
  flex: 1;
  height: 100vh;
  height: 100dvh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overflow-x: hidden;
  padding: 32px;
  position: relative;
  background: radial-gradient(circle at top right, rgba(34, 197, 94, 0.03), transparent 400px),
              radial-gradient(circle at bottom left, rgba(59, 130, 246, 0.02), transparent 400px);
}

/* Screens Toggle */
.screen {
  display: none;
  animation: fadeIn var(--transition-normal);
  max-width: 1200px;
  margin: 0 auto;
}

.screen.active {
  display: block;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Typography elements */
h1 {
  font-family: var(--font-header);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  margin-bottom: 8px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

h2, h3, h4 {
  font-family: var(--font-header);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
}

h2 {
  font-size: clamp(1.4rem, 3.5vw, 1.8rem);
}

.subtitle {
  color: var(--text-secondary);
  font-family: var(--font-mono);
  font-size: clamp(0.85rem, 2vw, 0.95rem);
  margin-bottom: 24px;
  text-transform: uppercase;
  letter-spacing: 1px;
  opacity: 0.8;
}

/* Grid Frameworks */
.grid-cols-4 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  margin-bottom: 32px;
}

.grid-cols-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-bottom: 32px;
}

@media (max-width: 1024px) {
  .grid-cols-2 {
    grid-template-columns: 1fr;
  }
}

/* Tactical Panel/Card */
.panel {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 4px; /* Minimal radius */
  padding: 24px;
  box-shadow: none; /* Almost no shadow */
  position: relative;
  overflow: hidden;
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.panel:hover {
  border-color: rgba(255, 255, 255, 0.3);
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

.panel::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px; /* Header strip */
  background: var(--accent);
}

.panel.glow:hover {
  border-color: var(--border-glow);
  box-shadow: 0 0 12px var(--border-glow);
}

.panel-title {
  font-family: var(--font-header);
  font-size: 1.15rem;
  font-weight: 700;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px dashed var(--border);
  padding-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--text-primary);
}

/* Dashboard Widgets */
.metric-card {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  transition: var(--transition-normal);
}

.metric-card:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.15);
  box-shadow: var(--shadow-lg);
}

.metric-icon {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
}

.metric-icon.green { background-color: rgba(34, 197, 94, 0.1); color: var(--accent); }
.metric-icon.amber { background-color: rgba(245, 158, 11, 0.1); color: var(--warning); }
.metric-icon.blue { background-color: rgba(59, 130, 246, 0.1); color: var(--info); }
.metric-icon.red { background-color: rgba(239, 68, 68, 0.1); color: var(--danger); }

.metric-data {
  display: flex;
  flex-direction: column;
}

.metric-value {
  font-family: var(--font-mono);
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.2;
}

.metric-label {
  font-size: 0.8rem;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Exam Filters */
.exam-select-container {
  display: flex;
  gap: 12px;
  margin-bottom: 24px;
}

.exam-btn {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  color: var(--text-secondary);
  padding: 8px 20px;
  border-radius: 20px;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.85rem;
  letter-spacing: 0.5px;
  transition: var(--transition-fast);
}

.exam-btn:hover {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
}

.exam-btn.active {
  background-color: var(--accent);
  color: var(--bg-primary);
  border-color: var(--accent);
  box-shadow: var(--shadow-glow);
}

/* Notes & Formulas Module */
.deck-browser {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 24px;
  height: calc(100vh - 180px);
  transition: grid-template-columns var(--transition-normal);
}

.topic-list {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px 16px 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  height: 100%;
  overflow: hidden;
}

.notes-progress-panel {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px 20px;
  margin-bottom: 20px;
  box-shadow: var(--shadow-sm);
}

.notes-search-container {
  display: flex;
  align-items: center;
  gap: 10px;
  background-color: var(--bg-primary);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 12px;
  transition: var(--transition-fast);
}

.notes-search-container:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 8px rgba(34, 197, 94, 0.15);
}

.notes-search-container input {
  background: transparent;
  border: none;
  color: var(--text-primary);
  font-size: 0.85rem;
  width: 100%;
  outline: none;
}

.notes-search-container input::placeholder {
  color: var(--text-muted);
}

.accordion-group {
  margin-bottom: 12px;
}

.accordion-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  background-color: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border);
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.9rem;
  transition: var(--transition-fast);
}

.accordion-header:hover {
  background-color: rgba(255, 255, 255, 0.05);
}

.accordion-content {
  display: none;
  padding-left: 8px;
  margin-top: 4px;
  overflow: hidden;
  transition: max-height 0.3s ease-out;
}

.accordion-group.open .accordion-content {
  display: block;
}

.accordion-group.open .accordion-header svg {
  transform: rotate(90deg);
}

.accordion-header svg {
  width: 14px;
  height: 14px;
  transition: transform var(--transition-fast);
  stroke: var(--text-secondary);
}

.topic-link {
  display: block;
  padding: 10px 12px;
  font-size: 0.85rem;
  color: var(--text-secondary);
  text-decoration: none;
  border-radius: 6px;
  cursor: pointer;
  transition: var(--transition-fast);
  margin-bottom: 4px;
}

.topic-link:hover {
  background-color: rgba(255, 255, 255, 0.04);
  color: var(--text-primary);
}

.topic-link.active {
  background-color: rgba(34, 197, 94, 0.08);
  color: var(--accent);
  font-weight: 500;
  border-left: 3px solid var(--accent);
  border-top-left-radius: 2px;
  border-bottom-left-radius: 2px;
}

.topic-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--text-muted);
  display: inline-block;
  transition: var(--transition-fast);
}

.topic-dot.completed {
  background-color: var(--accent);
  box-shadow: 0 0 6px var(--accent);
}

.deck-viewer {
  display: flex;
  flex-direction: column;
  gap: 20px;
  overflow-y: auto;
  padding-right: 8px;
  height: 100%;
}

.view-card {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  box-shadow: var(--shadow-md);
}

.card-tag {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 4px;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.card-tag.notes { background-color: rgba(59, 130, 246, 0.1); color: var(--info); }
.card-tag.formula { background-color: rgba(245, 158, 11, 0.1); color: var(--warning); }

.concept-formula-box {
  background-color: rgba(0, 0, 0, 0.2);
  border-left: 3px solid var(--warning);
  padding: 16px;
  border-radius: 0 8px 8px 0;
  margin: 16px 0;
  font-family: var(--font-mono);
  font-size: 0.95rem;
  color: var(--text-primary);
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  box-sizing: border-box;
}

.notes-text {
  line-height: 1.45;
  font-size: 0.9rem;
  color: var(--text-secondary);
  height: 100%;
  overflow-y: auto;
  padding-right: 12px;
  box-sizing: border-box;
}

.notes-text h3 {
  color: var(--text-primary);
  margin: 12px 0 6px 0;
  font-size: 1.05rem;
}

.notes-text h4 {
  color: var(--accent);
  margin-top: 14px;
  margin-bottom: 8px;
  font-size: 0.98rem;
}

.notes-text h5 {
  color: var(--text-primary);
  margin-top: 10px;
  margin-bottom: 4px;
  font-size: 0.92rem;
}

.notes-text p {
  margin-bottom: 8px;
}

.notes-text ul {
  padding-left: 16px;
  margin-bottom: 8px;
}

.notes-text li {
  margin-bottom: 4px;
}

/* Expanded notes (from notes_extra_history.js and similar) */
.expanded-notes-content body,
.expanded-notes-content {
  background: transparent !important;
  color: var(--text-secondary);
  font-size: 0.9rem;
  line-height: 1.7;
  overflow-x: hidden;
  word-wrap: break-word;
  overflow-wrap: break-word;
  text-align: left;
}

.expanded-notes-content h2 {
  color: var(--accent);
  font-size: 1.15rem;
  margin: 22px 0 10px 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  padding-bottom: 6px;
}

.expanded-notes-content h3 {
  color: var(--text-primary);
  font-size: 1.02rem;
  margin: 16px 0 8px 0;
}

.expanded-notes-content h4 {
  color: var(--accent);
  font-size: 0.95rem;
  margin: 12px 0 6px 0;
}

.expanded-notes-content p {
  margin-bottom: 8px;
  color: var(--text-secondary);
}

.expanded-notes-content ul,
.expanded-notes-content ol {
  padding-left: 20px;
  margin-bottom: 10px;
}

.expanded-notes-content li {
  margin-bottom: 5px;
  color: var(--text-secondary);
}

.expanded-notes-content strong {
  color: var(--text-primary);
}

.expanded-notes-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 14px 0;
  font-size: 0.85rem;
}

.expanded-notes-content th {
  background: rgba(34, 197, 94, 0.12);
  color: var(--accent);
  padding: 8px 12px;
  text-align: left;
  border: 1px solid rgba(255,255,255,0.1);
  font-weight: 700;
}

.expanded-notes-content td {
  padding: 7px 12px;
  border: 1px solid rgba(255,255,255,0.08);
  color: var(--text-secondary);
}

.expanded-notes-content tr:nth-child(even) td {
  background: rgba(255,255,255,0.03);
}

/* Hide inline styles that hardcode white backgrounds */
.expanded-notes-content body { display: none; }


/* Revision Card Premium Themes & Enhancements */
.revision-card {
  background: linear-gradient(135deg, rgba(17, 17, 27, 0.7) 0%, rgba(9, 9, 15, 0.9) 100%) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 12px !important;
  padding: 24px 28px !important;
  margin-bottom: 24px !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
  position: relative !important;
  overflow: hidden !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

.revision-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
  background: linear-gradient(to bottom, var(--accent), var(--info));
  border-radius: 4px 0 0 4px;
}

.revision-card h3 {
  font-family: var(--font-logo) !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  background: linear-gradient(90deg, #ffffff, var(--accent-light));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-top: 0 !important;
  margin-bottom: 20px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  padding-bottom: 12px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.revision-card h4 {
  font-family: var(--font-logo) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--accent-light) !important;
  margin-top: 24px !important;
  margin-bottom: 12px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  border-left: 3px solid var(--accent) !important;
  padding-left: 10px !important;
}

/* Beautiful Highlights inside Revision Cards */
.revision-card strong {
  color: var(--accent-light) !important;
  font-weight: 600 !important;
  background: rgba(var(--accent-rgb), 0.15) !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
  border: 1px solid rgba(var(--accent-rgb), 0.25) !important;
}

.revision-card em {
  color: var(--info) !important;
  font-style: italic !important;
}

.revision-card ul {
  list-style-type: none !important;
  padding-left: 0 !important;
  margin-bottom: 18px !important;
}

.revision-card ul li {
  position: relative !important;
  padding-left: 24px !important;
  margin-bottom: 8px !important;
  line-height: 1.6 !important;
}

.revision-card ul li::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 2px !important;
  font-size: 0.75rem !important;
  color: var(--accent) !important;
}

.revision-card ol {
  padding-left: 20px !important;
  margin-bottom: 18px !important;
}

.revision-card ol li {
  margin-bottom: 8px !important;
  line-height: 1.6 !important;
}

/* Tables inside Revision Cards */
.revision-card table {
  display: table !important;
  width: 100% !important;
  border-collapse: collapse !important;
  margin: 20px 0 !important;
  background: rgba(0, 0, 0, 0.2) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255, 255, 255, 0.05) !important;
}

.revision-card th {
  background: rgba(255, 255, 255, 0.04) !important;
  color: var(--text-primary) !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  font-size: 0.8rem !important;
  letter-spacing: 0.5px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  padding: 8px 12px !important;
}

.revision-card td {
  border-bottom: 1px solid rgba(255, 255, 255, 0.03) !important;
  color: var(--text-secondary) !important;
  font-size: 0.88rem !important;
  padding: 8px 12px !important;
}

.revision-card tr:last-child td {
  border-bottom: none !important;
}

.revision-card tr:hover td {
  background: rgba(255, 255, 255, 0.01) !important;
  color: var(--text-primary) !important;
}

/* Callout and Tip boxes inside cards */
.strategist-tip, .trap-box, .mnemonic-box {
  background: rgba(14, 165, 233, 0.05) !important;
  border-left: 4px solid var(--info) !important;
  border-radius: 0 8px 8px 0 !important;
  padding: 16px 20px !important;
  margin: 18px 0 !important;
  font-size: 0.9rem !important;
  color: var(--text-secondary) !important;
  line-height: 1.6 !important;
  position: relative !important;
}

.strategist-tip strong, .trap-box strong, .mnemonic-box strong {
  background: none !important;
  border: none !important;
  padding: 0 !important;
}

.strategist-tip strong {
  color: var(--info) !important;
}

.trap-box {
  background: rgba(239, 68, 68, 0.05) !important;
  border-left-color: var(--danger) !important;
}

.trap-box strong {
  color: var(--danger) !important;
}

.mnemonic-box {
  background: rgba(245, 158, 11, 0.05) !important;
  border-left-color: var(--warning) !important;
}

.mnemonic-box strong {
  color: var(--warning) !important;
}

/* Inline formula / code style inside revision cards */
.revision-card code {
  font-family: var(--font-mono) !important;
  font-size: 0.85rem !important;
  color: var(--warning) !important;
  background: rgba(0, 0, 0, 0.3) !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
  border: 1px solid rgba(255, 255, 255, 0.04) !important;
}

.card-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 20px;
  border-top: 1px solid var(--border);
  padding-top: 16px;
}

.action-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-secondary);
  padding: 8px 16px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 500;
  transition: var(--transition-fast);
}

.action-btn:hover {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
}

.action-btn.active-green {
  background-color: rgba(34, 197, 94, 0.1);
  color: var(--accent);
  border-color: var(--accent);
}

/* Current Affairs (CA) Screen */
.ca-layout {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 24px;
}

.month-sidebar {
  background-color: transparent;
  border: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.month-item {
  padding: 10px 16px;
  border-radius: 6px;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 500;
  transition: var(--transition-fast);
}

.month-item:hover {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
}

.month-item.active {
  background-color: rgba(34, 197, 94, 0.1);
  color: var(--accent);
  font-weight: 600;
}

.ca-content {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.exam-pointer-card {
  background: linear-gradient(135deg, rgba(30, 41, 59, 0.7) 0%, rgba(15, 23, 42, 0.7) 100%);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 20px;
  position: relative;
}

.exam-pointer-card.highlight {
  border-left: 4px solid var(--accent);
}

.pointer-badge {
  display: inline-block;
  background-color: rgba(34, 197, 94, 0.1);
  color: var(--accent);
  font-size: 0.75rem;
  font-family: var(--font-mono);
  padding: 2px 8px;
  border-radius: 4px;
  margin-bottom: 8px;
  font-weight: 600;
}

.pointer-text {
  font-size: 0.95rem;
  line-height: 1.6;
}

.pointer-text strong {
  color: var(--warning);
  font-weight: 600;
}

/* CA MCQs Section */
.ca-quiz-header {
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: 16px;
  color: var(--text-primary);
}

/* CBT Mock Test & Exams Screen */
.exams-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 24px;
  margin-bottom: 32px;
}

.exam-card {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: var(--transition-normal);
}

.exam-card:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: var(--shadow-lg);
}

.exam-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
}

.exam-type-badge {
  font-family: var(--font-logo);
  padding: 4px 10px;
  font-size: 0.8rem;
  border-radius: 4px;
  font-weight: 700;
  letter-spacing: 0.5px;
  display: inline-block;
}

.exam-type-badge.nda { 
  background-color: rgba(239, 68, 68, 0.12); 
  color: #ef4444; 
  border: 1px solid rgba(239, 68, 68, 0.3);
}
.exam-type-badge.cds { 
  background-color: rgba(59, 130, 246, 0.12); 
  color: #3b82f6; 
  border: 1px solid rgba(59, 130, 246, 0.3);
}
.exam-type-badge.afcat { 
  background-color: rgba(234, 179, 8, 0.12); 
  color: #eab308; 
  border: 1px solid rgba(234, 179, 8, 0.3);
}

.exam-card-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 8px;
}

.exam-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  font-family: var(--font-mono);
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-bottom: 20px;
}

.meta-item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.meta-item svg {
  width: 14px;
  height: 14px;
}

.btn-primary {
  width: 100%;
  background-color: transparent;
  color: var(--accent);
  font-family: var(--font-mono);
  font-weight: 600;
  padding: 10px;
  border: 1px solid var(--accent);
  border-radius: 2px;
  cursor: pointer;
  text-align: center;
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 1px;
  transition: var(--transition-fast);
  box-shadow: inset 0 0 10px rgba(34, 197, 94, 0.1);
}

.btn-primary:hover {
  background-color: var(--accent);
  color: var(--bg-primary);
  box-shadow: 0 0 15px rgba(34, 197, 94, 0.4);
}

/* CBT Full Screen Player Interface */
.cbt-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: var(--bg-primary);
  z-index: 100;
  display: flex;
  flex-direction: column;
}

.cbt-header {
  background-color: var(--bg-secondary);
  border-bottom: 1px solid var(--border);
  padding: 14px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.cbt-exam-title {
  font-family: var(--font-logo);
  font-size: 1.1rem;
  font-weight: 600;
}

.cbt-timer {
  font-family: var(--font-mono);
  background-color: rgba(239, 68, 68, 0.1);
  color: var(--danger);
  border: 1px solid rgba(239, 68, 68, 0.2);
  padding: 6px 14px;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 1px;
}

.cbt-main {
  flex-grow: 1;
  display: grid;
  grid-template-columns: 1fr 340px;
  overflow: hidden;
}

.cbt-question-pane {
  padding: 32px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.cbt-question-header {
  display: flex;
  justify-content: space-between;
  border-bottom: 1px solid var(--border);
  padding-bottom: 12px;
  margin-bottom: 24px;
  font-size: 0.85rem;
  color: var(--text-secondary);
  font-family: var(--font-mono);
}

.cbt-question-text {
  font-size: 1.15rem;
  line-height: 1.6;
  font-weight: 500;
  margin-bottom: 24px;
  white-space: pre-wrap;
}

.cbt-options-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.cbt-option {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 8px;
  cursor: pointer;
  transition: var(--transition-fast);
}

.cbt-option:hover {
  background-color: var(--bg-tertiary);
  border-color: rgba(255, 255, 255, 0.15);
}

.cbt-option.selected {
  background-color: rgba(34, 197, 94, 0.08);
  border-color: var(--accent);
}

.option-badge {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background-color: var(--bg-tertiary);
  border: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 0.85rem;
}

.cbt-option.selected .option-badge {
  background-color: var(--accent);
  color: var(--bg-primary);
  border-color: var(--accent);
}

.option-text {
  font-size: 0.95rem;
}

/* CBT Control Panel Right */
.cbt-control-pane {
  background-color: var(--bg-secondary);
  border-left: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow-y: auto;
}

.palette-section {
  padding: 20px;
}

.palette-title {
  font-size: 0.9rem;
  text-transform: uppercase;
  color: var(--text-secondary);
  font-weight: 600;
  letter-spacing: 0.5px;
  margin-bottom: 14px;
}

.palette-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  max-height: 250px;
  overflow-y: auto;
  padding-right: 4px;
}

.palette-btn {
  height: 38px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background-color: var(--bg-primary);
  color: var(--text-secondary);
  font-family: var(--font-mono);
  font-size: 0.85rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--transition-fast);
}

.palette-btn:hover {
  background-color: var(--bg-tertiary);
}

/* Question states */
.palette-btn.not-visited {
  background-color: var(--bg-primary);
  color: var(--text-muted);
}

.palette-btn.not-answered {
  background-color: var(--danger);
  color: white;
  border-color: var(--danger);
}

.palette-btn.answered {
  background-color: var(--accent);
  color: var(--bg-primary);
  border-color: var(--accent);
}

.palette-btn.marked-review {
  background-color: var(--warning);
  color: var(--bg-primary);
  border-color: var(--warning);
}

.palette-btn.active {
  box-shadow: 0 0 0 2px var(--text-primary);
}

/* Legend info */
.legend-section {
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  font-size: 0.75rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
}

.legend-dot {
  width: 14px;
  height: 14px;
  border-radius: 3px;
  border: 1px solid var(--border);
}

.legend-dot.not-visited { background-color: var(--bg-primary); }
.legend-dot.not-answered { background-color: var(--danger); }
.legend-dot.answered { background-color: var(--accent); }
.legend-dot.marked-review { background-color: var(--warning); }

/* CBT Footer Navigation */
.cbt-footer {
  background-color: var(--bg-secondary);
  border-top: 1px solid var(--border);
  padding: 16px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.cbt-footer-left {
  display: flex;
  gap: 12px;
}

.cbt-footer-right {
  display: flex;
  gap: 12px;
}

.btn-secondary {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
  border: 1px solid var(--border);
  padding: 10px 20px;
  border-radius: 6px;
  font-weight: 500;
  cursor: pointer;
  transition: var(--transition-fast);
  font-size: 0.85rem;
}

.btn-secondary:hover {
  background-color: var(--bg-hover);
}

.btn-warning {
  background-color: var(--warning);
  color: var(--bg-primary);
  border: none;
  padding: 10px 20px;
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition-fast);
  font-size: 0.85rem;
}

.btn-warning:hover {
  filter: brightness(1.1);
}

.btn-success {
  background-color: var(--accent);
  color: var(--bg-primary);
  border: none;
  padding: 10px 20px;
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition-fast);
  font-size: 0.85rem;
}

.btn-success:hover {
  background-color: var(--accent-light);
}

/* CBT Result Report View */
.result-card {
  max-width: 800px;
  margin: 0 auto;
  padding: 32px;
}

.result-header {
  text-align: center;
  margin-bottom: 32px;
}

.result-score-container {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  border: 4px solid var(--accent);
  margin: 20px 0;
  background-color: rgba(34, 197, 94, 0.05);
  box-shadow: var(--shadow-glow);
}

.result-score-value {
  font-family: var(--font-mono);
  font-size: 2.2rem;
  font-weight: bold;
}

.result-score-label {
  font-size: 0.75rem;
  color: var(--text-secondary);
  text-transform: uppercase;
}

.result-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 32px;
  font-family: var(--font-mono);
  font-size: 0.9rem;
}

.result-table th, .result-table td {
  padding: 12px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}

.result-table th {
  color: var(--text-secondary);
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.75rem;
}

.solution-review {
  margin-top: 32px;
}

.solution-item {
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 16px;
  background-color: rgba(0, 0, 0, 0.1);
}

.solution-item.correct {
  border-left: 4px solid var(--accent);
}

.solution-item.incorrect {
  border-left: 4px solid var(--danger);
}

.solution-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.7rem;
  font-family: var(--font-mono);
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.solution-badge.correct { background-color: rgba(34, 197, 94, 0.1); color: var(--accent); }
.solution-badge.incorrect { background-color: rgba(239, 68, 68, 0.1); color: var(--danger); }

.solution-explanation {
  background-color: var(--bg-tertiary);
  border-radius: 6px;
  padding: 12px 16px;
  margin-top: 14px;
  font-size: 0.85rem;
  color: var(--text-secondary);
  border-left: 2px solid var(--info);
}

/* AI Revision Console */
.ai-console {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ai-query-box {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
  transition: border-color 0.2s;
}

.ai-query-box:focus-within {
  border-color: var(--info);
}

.ai-query-input-row {
  display: flex;
  gap: 12px;
  align-items: center;
}

.ai-input {
  flex-grow: 1;
  background: transparent;
  border: none;
  color: var(--text-primary);
  font-family: var(--font-main);
  font-size: 1rem;
  padding: 8px 12px;
}

.ai-input:focus {
  outline: none;
}

.ai-btn {
  background-color: var(--info);
  color: white;
  border: none;
  padding: 8px 24px;
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition-fast);
  display: flex;
  align-items: center;
  gap: 8px;
}

.ai-btn:hover {
  filter: brightness(1.1);
  box-shadow: 0 0 10px rgba(59, 130, 246, 0.3);
}

.ai-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

/* AI Mode selector radio buttons */
.ai-mode-selector {
  display: flex;
  gap: 20px;
  padding: 2px 4px;
  flex-wrap: wrap;
}

.ai-mode-selector label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--text-secondary);
  cursor: pointer;
  transition: color 0.15s;
  user-select: none;
}

.ai-mode-selector label:hover {
  color: var(--text-primary);
}

.ai-mode-selector input[type="radio"] {
  accent-color: var(--info);
  width: 14px;
  height: 14px;
  cursor: pointer;
}

.ai-mode-selector label:has(input:checked) {
  color: var(--info);
  font-weight: 600;
}

.suggestion-chip {
  background-color: var(--bg-tertiary);
  border: 1px solid var(--border);
  color: var(--text-secondary);
  padding: 6px 12px;
  border-radius: 16px;
  font-size: 0.8rem;
  cursor: pointer;
  transition: var(--transition-fast);
}

.suggestion-chip:hover {
  border-color: var(--info);
  color: var(--text-primary);
}

.ai-response-area {
  display: none;
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  position: relative;
  min-height: 150px;
}

.ai-response-area.loading::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(17, 24, 39, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 0.9rem;
  color: var(--info);
  content: '⏳ ANALYZING CONCEPT & COMPILING HIGH-YIELD TEST SETS...';
  border-radius: 12px;
}

/* Syllabus Tracker Screen */
.syllabus-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.syllabus-group {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}

.syllabus-group-header {
  padding: 16px 24px;
  background-color: rgba(255, 255, 255, 0.02);
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.syllabus-group-title {
  font-weight: 600;
  font-size: 1rem;
}

.syllabus-row {
  display: grid;
  grid-template-columns: 1fr 200px 180px;
  gap: 16px;
  padding: 16px 24px;
  border-bottom: 1px solid var(--border);
  align-items: center;
}

.syllabus-row:last-child {
  border-bottom: none;
}

.syllabus-topic-name {
  font-size: 0.9rem;
  font-weight: 500;
}

.status-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 600;
  text-align: center;
}

.status-badge.not-started { background-color: var(--bg-tertiary); color: var(--text-secondary); }
.status-badge.in-progress { background-color: rgba(245, 158, 11, 0.15); color: var(--warning); }
.status-badge.completed { background-color: rgba(34, 197, 94, 0.15); color: var(--accent); }

.status-selector {
  background-color: var(--bg-tertiary);
  border: 1px solid var(--border);
  color: var(--text-primary);
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 0.8rem;
  font-family: var(--font-main);
  cursor: pointer;
}

/* Custom linear progress meter */
.progress-bar-container {
  width: 100%;
  height: 6px;
  background-color: var(--bg-tertiary);
  border-radius: 3px;
  overflow: hidden;
  margin-top: 8px;
}

.progress-bar-fill {
  height: 100%;
  background-color: var(--accent);
  border-radius: 3px;
  width: 0%;
  transition: width var(--transition-normal);
}

/* General Utilities */
.text-center { text-align: center; }
.text-green { color: var(--accent); }
.text-amber { color: var(--warning); }
.text-red { color: var(--danger); }
.text-blue { color: var(--info); }
.margin-top { margin-top: 20px; }

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: var(--bg-primary);
}
::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--bg-hover);
}

/* Visual Mind Map Concept Tree styling */
.mindmap-wrapper {
  margin-top: 24px;
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  overflow-x: auto;
}

.mindmap-title {
  font-family: var(--font-logo);
  font-size: 0.95rem;
  color: var(--info);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 8px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.mindmap-tree {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: 100%;
  padding: 10px 0;
}

.mindmap-root {
  background: linear-gradient(135deg, var(--accent-dark) 0%, var(--accent) 100%);
  color: var(--bg-primary);
  padding: 10px 24px;
  border-radius: 20px;
  font-weight: bold;
  font-size: 0.9rem;
  box-shadow: var(--shadow-glow);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-align: center;
}

.mindmap-branches {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
  width: 100%;
}

.mindmap-branch {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  flex: 1;
  position: relative;
  border-top: 1px solid var(--border);
  padding-top: 16px;
}

.mindmap-branch::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 2px;
  height: 16px;
  background-color: var(--border);
  transform: translateX(-50%);
}

.mindmap-node {
  background-color: var(--bg-tertiary);
  border: 1px solid var(--border);
  color: var(--text-primary);
  padding: 8px 14px;
  border-radius: 8px;
  font-size: 0.8rem;
  font-weight: 600;
  text-align: center;
  box-shadow: var(--shadow-sm);
  transition: var(--transition-fast);
  max-width: 160px;
  width: 100%;
}

.mindmap-node:hover {
  border-color: var(--accent);
  box-shadow: 0 0 10px rgba(34, 197, 94, 0.2);
}

.mindmap-subnodes {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  align-items: center;
}

.mindmap-subnode {
  background-color: rgba(255, 255, 255, 0.01);
  border: 1px dashed var(--border);
  color: var(--text-secondary);
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 0.75rem;
  text-align: center;
  width: 100%;
  max-width: 140px;
}

/* Redesigned Notes & Formulas Viewer Classes */
.topic-viewer-card {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  height: 100%;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
}

.topic-viewer-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid var(--border);
  padding-bottom: 16px;
}

.topic-tab-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 2px;
}

.tab-btn {
  background: transparent;
  border: none;
  color: var(--text-secondary);
  padding: 10px 16px;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  position: relative;
  transition: var(--transition-fast);
}

.tab-btn:hover {
  color: var(--text-primary);
}

.tab-btn.active {
  color: var(--accent);
  font-weight: 600;
}

.tab-btn.active::after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: var(--accent);
  box-shadow: 0 0 8px var(--accent);
  border-radius: 2px;
}

.topic-tab-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.tab-pane-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.scroll-y {
  overflow-y: auto;
  padding-right: 8px;
}

.scroll-x {
  overflow-x: auto;
  white-space: nowrap;
}

.tactical-toggle-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background-color: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 8px 16px;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 600;
  transition: var(--transition-normal);
}

.tactical-toggle-btn:hover {
  background-color: rgba(255, 255, 255, 0.05);
  color: var(--text-primary);
  border-color: var(--text-muted);
}

.tactical-toggle-btn.completed {
  background-color: rgba(34, 197, 94, 0.1);
  color: var(--accent);
  border-color: var(--accent);
  box-shadow: 0 0 10px rgba(34, 197, 94, 0.1);
}

.tactical-action-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background-color: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 8px 14px;
  color: var(--text-secondary);
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 500;
  transition: var(--transition-fast);
}

.tactical-action-btn:hover {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
}

.tactical-action-btn.active {
  background-color: rgba(59, 130, 246, 0.1);
  color: var(--info);
  border-color: var(--info);
}

.topic-navigation-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--border);
  padding-top: 16px;
  margin-top: auto;
}

.nav-arrow-btn {
  background-color: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border);
  color: var(--text-secondary);
  padding: 10px 16px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 500;
  transition: var(--transition-fast);
  max-width: 260px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.nav-arrow-btn:hover {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
  border-color: var(--text-muted);
}

.nav-arrow-btn.next {
  color: var(--accent);
  border-color: rgba(34, 197, 94, 0.2);
}

.nav-arrow-btn.next:hover {
  background-color: rgba(34, 197, 94, 0.08);
  border-color: var(--accent);
}

.fullscreen-mode {
  border-color: rgba(34, 197, 94, 0.15);
  box-shadow: 0 0 30px rgba(34, 197, 94, 0.05);
}

.fade-in {
  animation: fadeInEffect 0.3s ease;
}

@keyframes fadeInEffect {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ==========================================
   LECTURE MODE — Full Screen Video-Style Player
   ========================================== */

#lm-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #060b14;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  opacity: 0;
  transition: opacity 0.3s ease;
}

#lm-overlay.lm-visible {
  opacity: 1;
}

.lm-wrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

/* ---- Top Bar ---- */
.lm-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 28px;
  background: rgba(255,255,255,0.03);
  border-bottom: 1px solid rgba(255,255,255,0.07);
  flex-shrink: 0;
}

.lm-topbar-title {
  font-family: var(--font-logo);
  font-size: 0.85rem;
  letter-spacing: 1.5px;
  color: var(--text-secondary);
  text-transform: uppercase;
}

.lm-counter {
  font-family: var(--font-mono);
  font-size: 0.85rem;
  color: var(--text-muted);
  background: rgba(255,255,255,0.05);
  padding: 4px 12px;
  border-radius: 20px;
}

.lm-close-btn {
  background: rgba(239,68,68,0.1);
  border: 1px solid rgba(239,68,68,0.3);
  color: var(--danger);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition-fast);
}

.lm-close-btn:hover {
  background: rgba(239,68,68,0.25);
}

/* ---- Progress Bar ---- */
.lm-progress-track {
  height: 3px;
  background: rgba(255,255,255,0.07);
  flex-shrink: 0;
}

.lm-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), #3b82f6);
  transition: width 0.6s cubic-bezier(0.4,0,0.2,1);
  box-shadow: 0 0 8px rgba(34,197,94,0.5);
}

/* ---- Slide Area ---- */
.lm-slide-area {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px 60px;
  overflow: hidden;
  background: radial-gradient(ellipse at 40% 40%, rgba(34,197,94,0.04) 0%, transparent 60%),
              radial-gradient(ellipse at 80% 80%, rgba(59,130,246,0.03) 0%, transparent 60%);
}

/* ---- Title Card ---- */
.lm-title-card {
  text-align: center;
  max-width: 700px;
  position: relative;
  animation: lmSlideIn 0.5s ease;
}

.lm-title-badge {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--accent);
  background: rgba(34,197,94,0.1);
  border: 1px solid rgba(34,197,94,0.3);
  padding: 5px 16px;
  border-radius: 20px;
  margin-bottom: 28px;
}

.lm-title-heading {
  font-family: var(--font-logo);
  font-size: clamp(1.8rem, 4vw, 3.2rem);
  font-weight: 700;
  color: #ffffff;
  line-height: 1.2;
  margin-bottom: 24px;
  background: linear-gradient(135deg, #ffffff 0%, #86efac 60%, #60a5fa 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.lm-title-divider {
  width: 80px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  margin: 0 auto 24px;
}

.lm-title-sub {
  font-size: 0.9rem;
  color: var(--text-muted);
  font-family: var(--font-mono);
  letter-spacing: 1px;
}

.lm-pulse-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 300px;
  height: 300px;
  border-radius: 50%;
  border: 1px solid rgba(34,197,94,0.08);
  z-index: -1;
  animation: lmPulse 3s ease-in-out infinite;
}

@keyframes lmPulse {
  0%, 100% { transform: translate(-50%,-50%) scale(1); opacity: 0.5; }
  50% { transform: translate(-50%,-50%) scale(1.3); opacity: 0; }
}

/* ---- Content Card ---- */
.lm-content-card {
  max-width: 860px;
  width: 100%;
  background: rgba(17,24,39,0.6);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 20px;
  padding: 40px 48px;
  backdrop-filter: blur(12px);
  box-shadow: 0 25px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.04);
  animation: lmSlideIn 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  max-height: calc(100vh - 280px);
  overflow-y: auto;
}

.lm-slide-heading {
  font-family: var(--font-logo);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 20px;
  letter-spacing: 0.5px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(34,197,94,0.15);
}

.lm-intro-text {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 20px;
}

.lm-intro-text strong {
  color: var(--warning);
}

.lm-bullets-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.lm-bullet .history-term { border-bottom: 1px dashed var(--accent); color: var(--accent); cursor: help; position: relative; } 
.history-term:hover::after { content: attr(data-definition); position: absolute; bottom: 120%; left: 50%; transform: translateX(-50%); width: max-content; max-width: 250px; background: #1e293b; color: #f8fafc; padding: 8px 12px; border-radius: 6px; font-size: 0.8rem; z-index: 1000; box-shadow: 0 4px 6px rgba(0,0,0,0.3); border: 1px solid var(--border); text-align: center; white-space: normal; pointer-events: none; } 
.history-term:hover::before { content: ''; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); border-width: 6px; border-style: solid; border-color: var(--border) transparent transparent transparent; pointer-events: none; }

.geo-tag { border-bottom: 1px dashed var(--accent); color: var(--accent); cursor: pointer; position: relative; } 
.geo-tag:hover { background-color: rgba(168, 85, 247, 0.1); }

/* Multi-Statement Checkpoint UI */ 
.msc-checkpoint { background: var(--bg-secondary); border-left: 4px solid var(--accent); border-radius: 6px; padding: 20px; margin: 24px 0; box-shadow: 0 2px 10px rgba(0,0,0,0.2); } 
.msc-title { font-family: var(--font-logo); color: var(--accent); font-size: 1.1rem; margin-bottom: 12px; text-transform: uppercase; letter-spacing: 0.5px; display: flex; align-items: center; gap: 8px; } 
.msc-statements { margin-bottom: 16px; padding-left: 12px; border-left: 2px solid rgba(255,255,255,0.1); } 
.msc-statements p { margin-bottom: 8px; font-size: 0.95rem; } 
.msc-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-bottom: 16px; } 
.msc-option { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 6px; padding: 12px; cursor: pointer; transition: all 0.2s ease; text-align: center; font-weight: 600; } 
.msc-option:hover { background: rgba(168, 85, 247, 0.15); border-color: var(--accent); } 
.msc-option.selected-correct { background: rgba(34, 197, 94, 0.2); border-color: #22c55e; color: #22c55e; } 
.msc-option.selected-wrong { background: rgba(239, 68, 68, 0.2); border-color: #ef4444; color: #ef4444; } 
.msc-explanation { display: none; background: rgba(255,255,255,0.02); padding: 16px; border-radius: 6px; border: 1px solid rgba(255,255,255,0.05); font-size: 0.9rem; color: var(--text-secondary); }

/* Memory Hack Box UI */
.memory-hack-box {
  background-color: rgba(168, 85, 247, 0.1);
  border-left: 4px solid #a855f7;
  padding: 12px;
  margin: 20px 0;
  border-radius: 4px;
}
.memory-hack-box strong {
  color: #c084fc;
  font-weight: bold;
}

/* Dronacharya AI Tutor UI */
#dronacharya-fab {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, #a855f7, #6366f1);
  box-shadow: 0 4px 15px rgba(168, 85, 247, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 9999;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s;
}
#dronacharya-fab:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 20px rgba(168, 85, 247, 0.6);
}
#dronacharya-fab svg {
  width: 32px;
  height: 32px;
  fill: white;
}
#dronacharya-panel {
  position: fixed;
  bottom: 100px;
  right: 24px;
  width: 380px;
  height: 500px;
  max-height: 80vh;
  background: var(--bg-secondary);
  border-radius: 12px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
  border: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  z-index: 9998;
  transform: translateY(20px);
  opacity: 0;
  pointer-events: none;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  overflow: hidden;
}
#dronacharya-panel.active {
  transform: translateY(0);
  opacity: 1;
  pointer-events: all;
}
#dronacharya-panel.active ~ #dronacharya-fab {
  opacity: 0;
  pointer-events: none;
  transform: scale(0);
}
.drona-header {
  background: linear-gradient(135deg, #a855f7, #6366f1);
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: white;
}
.drona-header-info {
  display: flex;
  align-items: center;
  gap: 10px;
}
.drona-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
}
.drona-title {
  font-family: var(--font-logo);
  font-weight: bold;
  font-size: 1.1rem;
}
.drona-subtitle {
  font-size: 0.75rem;
  opacity: 0.8;
}
.drona-close {
  background: none;
  border: none;
  color: white;
  font-size: 1.5rem;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.2s;
}
.drona-close:hover {
  opacity: 1;
}
.drona-chat-area {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
}

@keyframes lmPulse {
  0%, 100% { transform: translate(-50%,-50%) scale(1); opacity: 0.5; }
  50% { transform: translate(-50%,-50%) scale(1.3); opacity: 0; }
}

/* ---- Content Card ---- */
.lm-content-card {
  max-width: 860px;
  width: 100%;
  background: rgba(17,24,39,0.6);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 20px;
  padding: 40px 48px;
  backdrop-filter: blur(12px);
  box-shadow: 0 25px 60px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.04);
  animation: lmSlideIn 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  max-height: calc(100vh - 280px);
  overflow-y: auto;
}

.lm-slide-heading {
  font-family: var(--font-logo);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 20px;
  letter-spacing: 0.5px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(34,197,94,0.15);
}

.lm-intro-text {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 20px;
}

.lm-intro-text strong {
  color: var(--warning);
}

.lm-bullets-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.lm-bullet .history-term { border-bottom: 1px dashed var(--accent); color: var(--accent); cursor: help; position: relative; } 
.history-term:hover::after { content: attr(data-definition); position: absolute; bottom: 120%; left: 50%; transform: translateX(-50%); width: max-content; max-width: 250px; background: #1e293b; color: #f8fafc; padding: 8px 12px; border-radius: 6px; font-size: 0.8rem; z-index: 1000; box-shadow: 0 4px 6px rgba(0,0,0,0.3); border: 1px solid var(--border); text-align: center; white-space: normal; pointer-events: none; } 
.history-term:hover::before { content: ''; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); border-width: 6px; border-style: solid; border-color: var(--border) transparent transparent transparent; pointer-events: none; }

.geo-tag { border-bottom: 1px dashed var(--accent); color: var(--accent); cursor: pointer; position: relative; } 
.geo-tag:hover { background-color: rgba(168, 85, 247, 0.1); }

/* Multi-Statement Checkpoint UI */ 
.msc-checkpoint { background: var(--bg-secondary); border-left: 4px solid var(--accent); border-radius: 6px; padding: 20px; margin: 24px 0; box-shadow: 0 2px 10px rgba(0,0,0,0.2); } 
.msc-title { font-family: var(--font-logo); color: var(--accent); font-size: 1.1rem; margin-bottom: 12px; text-transform: uppercase; letter-spacing: 0.5px; display: flex; align-items: center; gap: 8px; } 
.msc-statements { margin-bottom: 16px; padding-left: 12px; border-left: 2px solid rgba(255,255,255,0.1); } 
.msc-statements p { margin-bottom: 8px; font-size: 0.95rem; } 
.msc-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-bottom: 16px; } 
.msc-option { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 6px; padding: 12px; cursor: pointer; transition: all 0.2s ease; text-align: center; font-weight: 600; } 
.msc-option:hover { background: rgba(168, 85, 247, 0.15); border-color: var(--accent); } 
.msc-option.selected-correct { background: rgba(34, 197, 94, 0.2); border-color: #22c55e; color: #22c55e; } 
.msc-option.selected-wrong { background: rgba(239, 68, 68, 0.2); border-color: #ef4444; color: #ef4444; } 
.msc-explanation { display: none; background: rgba(255,255,255,0.02); padding: 16px; border-radius: 6px; border: 1px solid rgba(255,255,255,0.05); font-size: 0.9rem; color: var(--text-secondary); }

/* Memory Hack Box UI */
.memory-hack-box {
  background-color: rgba(168, 85, 247, 0.1);
  border-left: 4px solid #a855f7;
  padding: 12px;
  margin: 20px 0;
  border-radius: 4px;
}
.memory-hack-box strong {
  color: #c084fc;
  font-weight: bold;
}

/* Dronacharya AI Tutor UI */
#dronacharya-fab {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: linear-gradient(135deg, #a855f7, #6366f1);
  box-shadow: 0 4px 15px rgba(168, 247, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 9999;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s;
}
#dronacharya-fab:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 20px rgba(168, 85, 247, 0.6);
}
#dronacharya-fab svg {
  width: 32px;
  height: 32px;
  fill: white;
}
#dronacharya-panel {
  position: fixed;
  bottom: 100px;
  right: 24px;
  width: 380px;
  height: 500px;
  max-height: 80vh;
  background: var(--bg-secondary);
  border-radius: 12px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
  border: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  z-index: 9998;
  transform: translateY(20px);
  opacity: 0;
  pointer-events: none;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  overflow: hidden;
}
#dronacharya-panel.active {
  transform: translateY(0);
  opacity: 1;
  pointer-events: all;
}
#dronacharya-panel.active ~ #dronacharya-fab {
  opacity: 0;
  pointer-events: none;
  transform: scale(0);
}
.drona-header {
  background: linear-gradient(135deg, #a855f7, #6366f1);
  padding: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: white;
}
.drona-header-info {
  display: flex;
  align-items: center;
  gap: 10px;
}
.drona-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
}
.drona-title {
  font-family: var(--font-logo);
  font-weight: bold;
  font-size: 1.1rem;
}
.drona-subtitle {
  font-size: 0.75rem;
  opacity: 0.8;
}
.drona-close {
  background: none;
  border: none;
  color: white;
  font-size: 1.5rem;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.2s;
}
.drona-close:hover {
  opacity: 1;
}
.drona-chat-area {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: rgba(15, 23, 42, 0.95);
}
.drona-message {
  max-width: 85%;
  padding: 12px 16px;
  border-radius: 12px;
  font-size: 0.95rem;
  line-height: 1.4;
  word-wrap: break-word;
  flex-shrink: 0;
}
.drona-message.user {
  align-self: flex-end;
  background: var(--accent);
  color: white;
  border-bottom-right-radius: 2px;
}
.drona-message.ai {
  align-self: flex-start;
  background: var(--bg-tertiary);
  color: var(--text-primary);
  border-bottom-left-radius: 2px;
  border: 1px solid var(--border);
}
.drona-message.ai strong {
  color: #c084fc;
}
.drona-message.system {
  align-self: center;
  background: transparent;
  color: var(--text-muted);
  font-size: 0.8rem;
  font-style: italic;
  max-width: 100%;
  text-align: center;
}
.drona-input-area {
  padding: 12px;
  border-top: 1px solid var(--border);
  background: var(--bg-secondary);
  display: flex;
  gap: 8px;
}
.drona-input-area input {
  flex: 1;
  background: var(--bg-tertiary);
  border: 1px solid var(--border);
  color: var(--text-primary);
  border-radius: 20px;
  padding: 10px 16px;
  font-size: 0.95rem;
  outline: none;
  transition: border-color 0.2s;
}
.drona-input-area input:focus {
  border-color: #a855f7;
}
.drona-send {
  background: #a855f7;
  color: white;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s;
}
.drona-send:hover {
  background: #9333ea;
}
.drona-typing {
  display: none;
  align-items: center;
  gap: 4px;
  padding: 12px 16px;
  background: var(--bg-tertiary);
  border-radius: 12px;
  align-self: flex-start;
  border-bottom-left-radius: 2px;
  width: fit-content;
  flex-shrink: 0;
}
.drona-typing.active {
  display: flex;
}
.drona-dot {
  width: 6px;
  height: 6px;
  background: var(--text-muted);
  border-radius: 50%;
  animation: drona-bounce 1.4s infinite ease-in-out both;
}
.drona-dot:nth-child(1) { animation-delay: -0.32s; }
.drona-dot:nth-child(2) { animation-delay: -0.16s; }
@keyframes drona-bounce {
  0%, 80%, 100% { transform: scale(0); }
  40% { transform: scale(1); }
}

@media (max-width: 480px) {
  #dronacharya-panel {
    width: 100%;
    height: 100dvh;
    max-height: 100dvh;
    bottom: 0;
    right: 0;
    border-radius: 0;
  }
}

.lm-bullet-main {
  font-size: 0.95rem;
  color: var(--text-primary);
  line-height: 1.6;
  display: flex;
  gap: 8px;
  align-items: flex-start;
}

.lm-bullet-main span {
  flex: 1;
}

.lm-bullet-sub {
  margin-top: 8px;
  margin-left: 28px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lm-sub-item {
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.5;
  padding-left: 8px;
  border-left: 2px solid rgba(34,197,94,0.3);
}

/* ---- Table Slide ---- */
.lm-table-wrap {
  overflow-x: auto;
  margin-top: 16px;
}

.lm-table-wrap table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.lm-table-wrap th, .lm-table-wrap td {
  padding: 10px 14px;
  border: 1px solid rgba(255,255,255,0.08);
  color: var(--text-secondary);
  text-align: left;
}

.lm-table-wrap tr:first-child th {
  background: rgba(34,197,94,0.1);
  color: var(--accent);
  font-weight: 600;
}

.lm-table-wrap tr:hover td {
  background: rgba(255,255,255,0.02);
}

/* ---- End Card ---- */
.lm-end-card {
  text-align: center;
  animation: lmSlideIn 0.5s ease;
}

.lm-end-icon {
  font-size: 5rem;
  margin-bottom: 20px;
  filter: drop-shadow(0 0 20px rgba(34,197,94,0.4));
  animation: lmBounce 1s ease infinite alternate;
}

@keyframes lmBounce {
  from { transform: translateY(0); }
  to { transform: translateY(-10px); }
}

.lm-end-heading {
  font-family: var(--font-logo);
  font-size: 2.5rem;
  font-weight: 700;
  background: linear-gradient(135deg, var(--accent), #60a5fa);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 12px;
}

.lm-end-sub {
  font-size: 1rem;
  color: var(--text-secondary);
  margin-bottom: 32px;
}

.lm-end-btn {
  background: linear-gradient(135deg, var(--accent-dark), var(--accent));
  color: var(--bg-primary);
  border: none;
  padding: 14px 32px;
  border-radius: 50px;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  letter-spacing: 0.5px;
  transition: var(--transition-normal);
  box-shadow: 0 8px 24px rgba(34,197,94,0.3);
}

.lm-end-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(34,197,94,0.4);
}

/* ---- Controls Bar ---- */
.lm-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 28px;
  background: rgba(0,0,0,0.4);
  border-top: 1px solid rgba(255,255,255,0.06);
  flex-shrink: 0;
  gap: 16px;
}

.lm-controls-left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.lm-controls-center {
  display: flex;
  align-items: center;
  gap: 8px;
}

.lm-controls-right {
  display: flex;
  align-items: center;
}

.lm-ctrl-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.05);
  color: var(--text-primary);
  font-size: 1.1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition-fast);
}

.lm-ctrl-btn:hover {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.2);
}

.lm-ctrl-btn.lm-play {
  width: 52px;
  height: 52px;
  font-size: 1.3rem;
  background: linear-gradient(135deg, var(--accent-dark), var(--accent));
  border-color: transparent;
  color: #000;
  box-shadow: 0 4px 16px rgba(34,197,94,0.35);
}

.lm-ctrl-btn.lm-play:hover {
  box-shadow: 0 6px 20px rgba(34,197,94,0.5);
  transform: scale(1.05);
}

.lm-speed-label {
  font-size: 0.75rem;
  font-family: var(--font-mono);
  color: var(--text-muted);
  letter-spacing: 1px;
  margin-right: 4px;
}

.lm-speed-btn {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  color: var(--text-secondary);
  padding: 5px 12px;
  border-radius: 20px;
  cursor: pointer;
  font-size: 0.78rem;
  font-family: var(--font-mono);
  transition: var(--transition-fast);
}

.lm-speed-btn:hover {
  background: rgba(255,255,255,0.1);
  color: var(--text-primary);
}

.lm-speed-btn.active {
  background: rgba(34,197,94,0.15);
  border-color: rgba(34,197,94,0.4);
  color: var(--accent);
  font-weight: 600;
}

.lm-hint {
  font-size: 0.72rem;
  font-family: var(--font-mono);
  color: var(--text-muted);
  letter-spacing: 0.5px;
}

/* ---- Slide entrance animation ---- */
@keyframes lmSlideIn {
  from { opacity: 0; transform: translateY(24px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* ---- Lecture Mode Button in topic header ---- */
.lecture-mode-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, rgba(59,130,246,0.15), rgba(34,197,94,0.1));
  border: 1px solid rgba(59,130,246,0.3);
  color: #60a5fa;
  padding: 8px 16px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.5px;
  transition: var(--transition-fast);
  white-space: nowrap;
}

.lecture-mode-btn:hover {
  background: linear-gradient(135deg, rgba(59,130,246,0.25), rgba(34,197,94,0.15));
  border-color: rgba(59,130,246,0.5);
  box-shadow: 0 0 14px rgba(59,130,246,0.2);
  transform: translateY(-1px);
}

/* ==========================================
   AI DOUBT-SOLVING CHATBOT DRAWER
   ========================================== */

.ai-chatbot-launcher {
  position: fixed;
  bottom: 24px;
  right: 24px;
  background: linear-gradient(135deg, var(--accent-dark) 0%, var(--accent) 100%);
  color: var(--bg-primary);
  padding: 12px 20px;
  border-radius: 50px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 0.9rem;
  cursor: pointer;
  box-shadow: 0 10px 25px rgba(34, 197, 94, 0.3), var(--shadow-glow);
  z-index: 999;
  transition: transform var(--transition-normal), box-shadow var(--transition-normal);
}

.ai-chatbot-launcher:hover {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 15px 30px rgba(34, 197, 94, 0.4), var(--shadow-glow);
}

.ai-chatbot-launcher .launcher-icon {
  font-size: 1.2rem;
}

.ai-chatbot-drawer {
  position: fixed;
  top: 0;
  right: -100vw;
  width: 100%;
  max-width: 400px;
  height: 100%;
  background: rgba(17, 24, 39, 0.85);
  backdrop-filter: blur(20px);
  border-left: 1px solid var(--border);
  box-shadow: -15px 0 45px rgba(0, 0, 0, 0.6);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  transition: right 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.ai-chatbot-drawer.open {
  right: 0;
}

.chatbot-header {
  padding: 20px 24px;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(255, 255, 255, 0.02);
}

.chatbot-title {
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--text-primary);
  font-family: var(--font-logo);
  letter-spacing: 0.5px;
}

.chatbot-subtitle {
  font-size: 0.72rem;
  color: var(--accent);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-top: 2px;
}

.chatbot-close-btn {
  background: transparent;
  border: none;
  color: var(--text-secondary);
  font-size: 1.8rem;
  cursor: pointer;
  line-height: 1;
  transition: color var(--transition-fast);
}

.chatbot-close-btn:hover {
  color: var(--danger);
}

.chatbot-messages {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.chat-message {
  padding: 12px 16px;
  border-radius: 12px;
  max-width: 85%;
  font-size: 0.88rem;
  line-height: 1.5;
  word-wrap: break-word;
}

.chat-message.system {
  background-color: var(--bg-tertiary);
  border: 1px solid var(--border);
  color: var(--text-secondary);
  align-self: flex-start;
  border-bottom-left-radius: 3px;
}

.chat-message.user {
  background: linear-gradient(135deg, var(--info) 0%, #2563eb 100%);
  color: white;
  align-self: flex-end;
  border-bottom-right-radius: 3px;
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.2);
}

.chat-message.assistant {
  background-color: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border);
  color: var(--text-primary);
  align-self: flex-start;
  border-bottom-left-radius: 3px;
}

.chat-message.loading-msg {
  background-color: rgba(255, 255, 255, 0.02);
  border: 1px dashed var(--border);
  color: var(--text-muted);
  align-self: flex-start;
  border-bottom-left-radius: 3px;
  font-style: italic;
  display: flex;
  align-items: center;
  gap: 8px;
}

.chatbot-input-area {
  padding: 16px 20px;
  border-top: 1px solid var(--border);
  display: flex;
  gap: 10px;
  background: rgba(0, 0, 0, 0.2);
}

.chatbot-input-area input {
  flex: 1;
  background: var(--bg-tertiary);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 14px;
  color: var(--text-primary);
  font-size: 0.9rem;
  outline: none;
  transition: border-color var(--transition-fast);
}

.chatbot-input-area input:focus {
  border-color: var(--accent);
}

.chatbot-send-btn {
  background: var(--accent);
  color: var(--bg-primary);
  border: none;
  border-radius: 8px;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform var(--transition-fast), background-color var(--transition-fast);
}

.chatbot-send-btn:hover {
  background-color: var(--accent-light);
  transform: scale(1.05);
}

.chatbot-send-btn:active {
  transform: scale(0.95);
}

/* Chatbot markdown rendering styles */
.chat-message.assistant h3 {
  color: var(--accent);
  margin-top: 12px;
  margin-bottom: 6px;
  font-size: 0.95rem;
}
.chat-message.assistant h4 {
  color: var(--info);
  margin-top: 10px;
  margin-bottom: 4px;
  font-size: 0.88rem;
}
.chat-message.assistant p {
  margin-bottom: 8px;
}
.chat-message.assistant ul, .chat-message.assistant ol {
  margin-left: 18px;
  margin-bottom: 8px;
}
.chat-message.assistant li {
  margin-bottom: 4px;
}
.chat-message.assistant strong {
  color: var(--warning);
}


/* AI Chatbot Styles */
.ai-chatbot-launcher {
  position: fixed;
  bottom: 24px;
  right: 24px;
  background: linear-gradient(135deg, var(--accent) 0%, var(--info) 100%);
  color: var(--bg-primary);
  padding: 14px 16px; font-size: 1.05rem;
  border-radius: 30px;
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  box-shadow: var(--shadow-glow);
  z-index: 100;
  transition: transform var(--transition-normal), box-shadow var(--transition-fast);
}

.ai-chatbot-launcher:hover {
  transform: translateY(-4px);
  box-shadow: 0 0 25px rgba(34, 197, 94, 0.4);
}

.launcher-icon {
  font-size: 1.5rem;
}

.launcher-text {
  font-weight: 700;
  letter-spacing: 0.5px;
}

.ai-chatbot-drawer {
  position: fixed;
  bottom: 90px;
  right: 24px;
  width: calc(100vw - 48px);
  max-width: 380px;
  height: 500px;
  max-height: calc(100vh - 120px);
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-lg);
  display: flex;
  flex-direction: column;
  z-index: 99;
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px) scale(0.95);
  transform-origin: bottom right;
  transition: var(--transition-normal);
  overflow: hidden;
}

.ai-chatbot-drawer.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.chatbot-header {
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.15) 0%, rgba(59, 130, 246, 0.15) 100%);
  border-bottom: 1px solid var(--border);
  padding: 16px 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.chatbot-title {
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--text-primary);
}

.chatbot-subtitle {
  font-size: 0.8rem;
  color: var(--accent);
  font-family: var(--font-mono);
  margin-top: 2px;
}

.chatbot-close-btn {
  background: none;
  border: none;
  color: var(--text-secondary);
  font-size: 1.5rem;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--transition-fast);
}

.chatbot-close-btn:hover {
  color: var(--danger);
  transform: scale(1.1);
}

.chatbot-messages {
  flex: 1;
  padding: 16px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.chat-message {
  max-width: 85%;
  padding: 12px 16px;
  border-radius: 12px;
  font-size: 0.95rem;
  line-height: 1.5;
  word-wrap: break-word;
}

.chat-message.system {
  background-color: rgba(34, 197, 94, 0.1);
  border: 1px solid rgba(34, 197, 94, 0.3);
  color: var(--text-primary);
  align-self: flex-start;
  border-bottom-left-radius: 2px;
}

.chat-message.user {
  background-color: var(--bg-tertiary);
  border: 1px solid var(--border);
  color: var(--text-primary);
  align-self: flex-end;
  border-bottom-right-radius: 2px;
}

.loading-msg {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--text-secondary);
  font-style: italic;
  background: transparent !important;
  border: none !important;
}

.loading-dots {
  display: inline-block;
  animation: pulse 1.5s infinite;
}

@keyframes pulse {
  0% { opacity: 0.4; }
  50% { opacity: 1; }
  100% { opacity: 0.4; }
}

.chatbot-input-area {
  padding: 16px;
  border-top: 1px solid var(--border);
  display: flex;
  gap: 12px;
  background-color: var(--bg-primary);
}

.chatbot-input-area input {
  flex: 1;
  background-color: var(--bg-secondary);
  border: 1px solid var(--border);
  color: var(--text-primary);
  padding: 12px 16px;
  border-radius: 24px;
  font-size: 0.95rem;
  outline: none;
  transition: var(--transition-fast);
}

.chatbot-input-area input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 10px rgba(34, 197, 94, 0.15);
}

.chatbot-send-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background-color: var(--accent);
  color: var(--bg-primary);
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--transition-fast);
}

.chatbot-send-btn:hover {
  background-color: var(--accent-light);
  transform: scale(1.05);
}

/* Chatbot markdown rendering */
.chat-message.system p { margin-bottom: 8px; }
.chat-message.system h3 { margin: 12px 0 8px 0; font-size: 1.05rem; }
.chat-message.system ul { padding-left: 20px; margin-bottom: 8px; }
.chat-message.system li { margin-bottom: 4px; }
.chat-message.system code { 
  background-color: rgba(0,0,0,0.3); 
  padding: 2px 4px; 
  border-radius: 4px; 
  font-family: var(--font-mono); 
  font-size: 0.85em; 
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes pulse {
  0% { transform: scale(0.9); opacity: 0.5; box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4); }
  70% { transform: scale(1); opacity: 1; box-shadow: 0 0 0 6px rgba(34, 197, 94, 0); }
  100% { transform: scale(0.9); opacity: 0.5; box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); }
}

.countdown-pulse {
  animation: pulse 2s infinite;
}


/* Light mode removed */

.theme-toggle-btn {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-secondary);
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  font-family: var(--font-main);
  transition: var(--transition-fast);
}
.theme-toggle-btn:hover {
  background-color: var(--bg-tertiary);
  color: var(--text-primary);
}

/* Smooth modal transitions */
.cbt-overlay {
  transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
}

/* ==========================================
   HUD STYLING & GLOWING EFFECTS
   ========================================== */
.hud-panel {
  background: linear-gradient(135deg, rgba(16, 24, 16, 0.85) 0%, rgba(8, 12, 8, 0.95) 100%) !important;
  border: 1px solid rgba(132, 204, 22, 0.3) !important;
  box-shadow: 0 0 15px rgba(132, 204, 22, 0.15), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.hud-glow-text {
  text-shadow: 0 0 8px rgba(132, 204, 22, 0.6);
  color: var(--accent) !important;
}

/* Scanning Radar Sweep animation */
.radar-container {
  position: relative;
  overflow: hidden;
}

.radar-container::after {
  content: '';
  position: absolute;
  top: -150%;
  left: -150%;
  width: 300%;
  height: 300%;
  background: conic-gradient(from 0deg, rgba(132, 204, 22, 0) 0%, rgba(132, 204, 22, 0) 70%, rgba(132, 204, 22, 0.08) 95%, rgba(132, 204, 22, 0.15) 100%);
  animation: radar-sweep-animation 6s linear infinite;
  pointer-events: none;
  z-index: 1;
}

@keyframes radar-sweep-animation {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Medals & Badges layout */
.medals-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: flex-start;
  margin-top: 12px;
}

.medal-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 80px;
  text-align: center;
  opacity: 0.25;
  filter: grayscale(1);
  transition: all 0.4s ease;
  position: relative;
}

.medal-badge.unlocked {
  opacity: 1;
  filter: grayscale(0);
  transform: scale(1.05);
}

.medal-badge.unlocked:hover {
  transform: scale(1.15);
  filter: drop-shadow(0 0 8px var(--accent));
}

.medal-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  border: 2px solid rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  margin-bottom: 6px;
  transition: all 0.3s ease;
}

.medal-badge.unlocked .medal-icon {
  background: linear-gradient(135deg, rgba(250, 204, 21, 0.2) 0%, rgba(234, 88, 12, 0.2) 100%);
  border-color: #fbbf24;
  box-shadow: 0 0 10px rgba(251, 191, 36, 0.4);
}

.medal-name {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--text-secondary);
  line-height: 1.2;
}

.medal-desc {
  visibility: hidden;
  position: absolute;
  bottom: 110%;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(0, 0, 0, 0.95);
  color: #fff;
  text-align: center;
  padding: 6px 10px;
  border-radius: 6px;
  border: 1px solid var(--accent);
  font-size: 0.7rem;
  width: 140px;
  z-index: 10;
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

.medal-badge:hover .medal-desc {
  visibility: visible;
  opacity: 1;
}

/* ==========================================
   TACTICAL WAR ROOM CSS
   ========================================== */
.war-room-pane {
  display: none;
}
.war-room-pane.active {
  display: block;
}

/* Radar ping animations for map hotspots */
.radar-ping {
  transform-origin: center;
  animation: map-ping-animation 2s ease-out infinite;
}

@keyframes map-ping-animation {
  0% {
    r: 6;
    opacity: 0.8;
  }
  100% {
    r: 24;
    opacity: 0;
  }
}

.map-hotspot:hover circle:nth-child(2) {
  r: 9;
  filter: drop-shadow(0 0 6px var(--accent));
}

.map-hotspot text {
  opacity: 0.7;
  transition: opacity 0.2s;
  pointer-events: none;
}

.map-hotspot:hover text {
  opacity: 1;
}

/* 3D Flipping Flashcards */
.flashcard-container {
  width: 100%;
  height: 250px;
  perspective: 1000px;
  cursor: pointer;
  margin-bottom: 8px;
}

.flashcard-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;
}

.flashcard-container:hover .flashcard-inner {
  box-shadow: 0 0 20px rgba(132, 204, 22, 0.25);
}

.flashcard-container.flipped .flashcard-inner {
  transform: rotateY(180deg);
}

.flashcard-front, .flashcard-back {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  border-radius: 12px;
  border: 1px solid var(--border);
  padding: 24px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
}

.flashcard-front {
  background: linear-gradient(135deg, rgba(20, 24, 20, 0.95) 0%, rgba(10, 14, 10, 0.95) 100%);
  border-color: rgba(132, 204, 22, 0.2);
  color: var(--text-primary);
}

.flashcard-back {
  background: linear-gradient(135deg, rgba(10, 18, 12, 0.98) 0%, rgba(5, 10, 5, 0.98) 100%);
  border-color: rgba(34, 197, 94, 0.3);
  color: var(--text-secondary);
  transform: rotateY(180deg);
}

.flashcard-type-label {
  position: absolute;
  top: 16px;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 1.5px;
  font-weight: 700;
  color: var(--accent);
  background: rgba(132, 204, 22, 0.08);
  padding: 2px 8px;
  border-radius: 4px;
  border: 1px solid rgba(132, 204, 22, 0.15);
}

.flashcard-hint {
  position: absolute;
  bottom: 16px;
  font-size: 0.7rem;
  color: var(--text-muted);
  font-family: var(--font-mono);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

#flashcard-front-text {
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.5;
}

#flashcard-back-text {
  font-size: 0.95rem;
  line-height: 1.6;
}

/* Leitner Box Grid Boxes */
.leitner-box-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: rgba(0,0,0,0.2);
  border: 1px solid var(--border);
  padding: 8px 12px;
  border-radius: 6px;
  font-family: var(--font-mono);
  font-size: 0.8rem;
}

.leitner-box-badge {
  background: rgba(255,255,255,0.06);
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: bold;
}

/* SRS Modal Styling */
.srs-modal-panel {
  background: rgba(17, 24, 39, 0.95) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 12px;
}

.srs-card {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.srs-card:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

/* Tell Me More Tooltip */
#tell-me-more-tooltip {
    position: absolute;
    z-index: 9999;
    background: linear-gradient(135deg, rgba(30, 41, 59, 0.95), rgba(15, 23, 42, 0.98));
    color: var(--accent);
    padding: 8px 16px;
    border-radius: 8px;
    border: 1px solid var(--accent);
    box-shadow: 0 0 15px rgba(34, 197, 94, 0.4), 0 4px 6px rgba(0, 0, 0, 0.3);
    font-family: var(--font-main);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px) translateX(-50%);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
    backdrop-filter: blur(8px);
}

#tell-me-more-tooltip.visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) translateX(-50%);
}

#tell-me-more-tooltip:hover {
    background: var(--accent);
    color: #fff;
    box-shadow: 0 0 20px rgba(34, 197, 94, 0.6);
}





/* Heatmap Styles */
.heatmap-tile { padding: 10px; border-radius: 6px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: #fff; cursor: pointer; transition: transform 0.2s ease; border: 1px solid rgba(255,255,255,0.1); }
.heatmap-tile:hover { transform: translateY(-2px); }
.heatmap-topic { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; text-align: center; }
.heatmap-accuracy { font-family: var(--font-mono); font-size: 1.1rem; font-weight: bold; }
.heatmap-tile-red { background: linear-gradient(135deg, rgba(239,68,68,0.8), rgba(153,27,27,0.9)); box-shadow: 0 4px 12px rgba(239,68,68,0.2); }
.heatmap-tile-amber { background: linear-gradient(135deg, rgba(245,158,11,0.8), rgba(180,83,9,0.9)); box-shadow: 0 4px 12px rgba(245,158,11,0.2); }
.heatmap-tile-green { background: linear-gradient(135deg, rgba(34,197,94,0.8), rgba(21,128,61,0.9)); box-shadow: 0 4px 12px rgba(34,197,94,0.2); }


/* Phase 6 Micro Animations */
@keyframes slideUpFadeIn { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: translateY(0); } }
.panel { animation: slideUpFadeIn 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
.btn-primary:hover, .btn-secondary:hover, .action-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(132, 204, 22, 0.2); }
.cbt-overlay { animation: slideUpFadeIn 0.2s ease-out forwards; }
.nav-item { transition: all 0.2s ease; }
.nav-item:hover { transform: translateX(4px); }

/* --- EXTRA QUESTION BANK --- */
.bank-filters { display: flex; justify-content: center; gap: 15px; margin-bottom: 20px; flex-wrap: wrap; }
.bank-filter-btn { padding: 10px 20px; border-radius: 20px; background-color: var(--bg-tertiary); color: var(--text-secondary); border: 1px solid var(--border); cursor: pointer; font-size: 0.95rem; font-weight: 600; transition: all 0.2s ease; }
.bank-filter-btn:hover { background-color: var(--bg-hover); color: var(--text-primary); }
.bank-filter-btn.active { background: var(--accent-gradient); color: white; border: none; box-shadow: 0 4px 15px var(--accent-glow); }
.bank-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 20px; padding: 10px; }
.bank-card { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 12px; padding: 20px; display: flex; flex-direction: column; gap: 15px; transition: transform 0.2s ease, box-shadow 0.2s ease; box-shadow: 0 4px 15px rgba(0,0,0,0.2); }
.bank-card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0,0,0,0.4); border-color: var(--border-hover); }
.expanded-notes-content {
  font-size: 0.95rem;
  line-height: 1.8;
  color: var(--text-primary);
  text-align: left;
  word-wrap: break-word;
  overflow-wrap: break-word;
  overflow-x: hidden;
  max-width: 100%;
}

.expanded-notes-content pre, .expanded-notes-content table, .expanded-notes-content code {
  overflow-x: auto;
  max-width: 100%;
  white-space: pre-wrap;
  word-wrap: break-word;
}
.bank-q-text { font-size: 1.05rem; line-height: 1.6; color: var(--text-primary); font-weight: 500; white-space: pre-wrap; }
.bank-options { display: flex; flex-direction: column; gap: 8px; }
.bank-opt { background: var(--bg-tertiary); padding: 10px 15px; border-radius: 8px; border: 1px solid var(--border); color: var(--text-secondary); font-size: 0.95rem; cursor: pointer; transition: all 0.2s ease; }
.bank-opt:hover { border-color: var(--accent); color: var(--text-primary); }
.bank-opt.correct { background: rgba(34, 197, 94, 0.1); border-color: var(--success); color: var(--success); font-weight: 600; }
.bank-opt.incorrect { background: rgba(239, 68, 68, 0.1); border-color: var(--danger); color: var(--danger); font-weight: 600; }
.bank-reveal-btn { margin-top: auto; width: 100%; padding: 12px; border-radius: 8px; background: var(--bg-tertiary); color: var(--text-primary); border: 1px solid var(--border); cursor: pointer; font-weight: 600; transition: background 0.2s; }
.bank-reveal-btn:hover { background: var(--bg-hover); }
.bank-solution { margin-top: 15px; padding: 15px; background: var(--bg-body); border-left: 4px solid var(--success); border-radius: 0 8px 8px 0; font-size: 0.95rem; color: var(--text-secondary); line-height: 1.5; animation: slideDown 0.3s ease; }
@keyframes slideDown { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

/* --- MOBILE HAMBURGER TOGGLE BUTTON --- */
.mobile-menu-toggle {
  display: flex;
  position: fixed;
  top: 50%;
  left: 0;
  transform: translateY(-50%) rotate(180deg);
  transition: left 0.3s ease, transform 0.3s ease;
  z-index: 1100;
  background: var(--bg-secondary);
  border: 1px solid var(--border);
  border-left: none;
  border-radius: 0 8px 8px 0;
  padding: 8px 4px;
  box-shadow: 4px 0 12px rgba(0,0,0,0.5);
  cursor: pointer;
  align-items: center;
  justify-content: center;
}
.mobile-menu-toggle:active {
  background: var(--bg-tertiary);
}
.mobile-menu-toggle svg {
  width: 18px;
  height: 18px;
  stroke: var(--accent);
}

@media (min-width: 769px) {
  .mobile-menu-toggle {
    left: 260px;
  }
  .sidebar {
    transition: margin-left 0.3s ease;
  }
  body.sidebar-open .sidebar {
    margin-left: -260px;
  }
  body.sidebar-open .mobile-menu-toggle {
    left: 0;
    transform: translateY(-50%) rotate(0deg);
  }
}

/* --- MOBILE SIDEBAR OVERLAY BACKDROP --- */
.sidebar-overlay {
  display: none; /* Hidden on desktop */
}

/* --- MOBILE RESPONSIVENESS (MAX 768px) --- */
@media (max-width: 768px) {
  .app-container {
    flex-direction: column;
  }

  /* ---- Arrow Toggle Tab ---- */
  .mobile-menu-toggle {
    transform: translateY(-50%) rotate(0deg); /* Points right */
  }
  /* When sidebar is open, move the tab to the sidebar's right edge */
  .mobile-menu-toggle.open, body.sidebar-open .mobile-menu-toggle {
    left: 290px;
    transform: translateY(-50%) rotate(180deg); /* Points left */
  }

  /* ---- Overlay Backdrop ---- */
  .sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 999;
    background: rgba(0, 0, 0, 0.55);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity 0.3s ease;
  }
  .sidebar-overlay.visible {
    display: block;
    opacity: 1;
  }

  /* ---- Sidebar: Slide-out Drawer ---- */
  .sidebar {
    width: 290px;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1050;
    flex-direction: column;
    padding: 0;
    border-right: 1px solid var(--border);
    border-top: none;
    background-color: var(--bg-secondary);
    transform: translateX(-100%);
    transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .sidebar.open {
    transform: translateX(0);
  }

  /* ALL widgets VISIBLE in the drawer */
  .logo-section,
  .user-profile-widget,
  .sidebar > div:last-child {
    display: flex !important;
  }
  
  .countdown-widget,
  .token-widget {
    display: block !important;
  }

  .nav-links {
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 8px 0;
    margin: 0;
    width: 100%;
    white-space: normal;
    flex-grow: 1;
  }

  .nav-item {
    padding: 14px 16px;
    font-size: 1.05rem;
    border-left: 4px solid transparent;
    border-bottom: none;
    flex-direction: row;
    gap: 12px;
    justify-content: flex-start;
    flex: unset;
    min-width: unset;
    flex-shrink: 0;
  }

  .nav-item.active {
    border-left-color: var(--accent);
    border-bottom: none;
  }

  /* ---- Main Content ---- */
  .main-content {
    padding: 16px;
    padding-bottom: 24px;
    width: 100%;
  }

  /* ---- Layout Flattening ---- */
  .grid-cols-4 {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 16px;
    padding-bottom: 8px; /* For scrollbar */
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .grid-cols-4::-webkit-scrollbar {
    display: none;
  }
  .grid-cols-4 > * {
    flex: 0 0 240px;
  }
  
  .grid-cols-2 {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  /* Notes & Formulas layout */
  .deck-browser {
    grid-template-columns: 1fr;
    height: auto;
    gap: 16px;
    display: flex;
    flex-direction: column;
  }

  .topic-list {
    height: 250px;
  }

  .deck-viewer {
    height: auto;
    min-height: 400px;
    overflow: visible;
  }

  /* Current affairs */
  .ca-layout {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  /* AI Consoles */
  .ai-query-input-row {
    flex-direction: column;
  }

  .ai-query-input-row .ai-input,
  .ai-query-input-row .ai-btn {
    width: 100%;
    border-radius: 8px;
  }

  #panel-solve-paper-container > div > div,
  #panel-evaluate-omr-container > div > div {
    grid-template-columns: 1fr !important;
  }

  /* Generic UI fixes */
  .exam-select-container {
    flex-wrap: wrap;
    gap: 8px;
  }

  .exam-btn {
    flex: 1 1 calc(50% - 8px);
    text-align: center;
    padding: 8px 12px;
  }

  .panel-title {
    font-size: 1rem;
    flex-wrap: wrap;
  }

  .panel {
    padding: 16px;
  }

  .medals-grid,
  #weekly-planner-container {
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  }

  /* Custom target inputs layout fix */
  #screen-dashboard .panel:nth-of-type(6) > div:nth-of-type(2) {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  #screen-dashboard .panel:nth-of-type(6) > div:nth-of-type(2) button {
    width: 100% !important;
  }
}

/* --- MOBILE LANDSCAPE FIX --- */
@media (max-height: 500px) and (orientation: landscape) {
  .sidebar {
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  .sidebar.open {
    width: 260px;
    max-height: 100vh;
    max-height: 100dvh;
  }
  .nav-links {
    overflow-y: auto !important;
    max-height: none;
    flex-grow: 1;
  }
  .main-content {
    padding-bottom: 70px;
  }
}

/* TELL ME MORE TOOLTIP */
.tell-me-more-tooltip {
  position: fixed;
  display: none;
  z-index: 10000;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  color: white;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(59, 130, 246, 0.4);
  pointer-events: auto;
  user-select: none;
  transform: translate(-50%, -100%);
  margin-top: -10px;
  animation: tooltipPop 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

@keyframes tooltipPop {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(0.8); }
  100% { opacity: 1; transform: translate(-50%, -100%) scale(1); }
}
.tell-me-more-tooltip:hover {
  filter: brightness(1.1);

/* Sidebar Overlay */
.sidebar-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(4px);
  z-index: 9; /* Just below sidebar (10) */
  opacity: 0;
  transition: opacity var(--transition-normal);
}

body.sidebar-open .sidebar-overlay {
  display: block;
  opacity: 1;
}

@media (max-width: 768px) {
  /* Show Mobile Elements */
  .mobile-menu-toggle {
    display: flex;
  }

  /* Make Main Content flexible and reduce padding */
  .main-content {
    padding: 16px;
    width: 100vw;
  }

  /* Typography handled by clamp() globally */

  /* Transform Sidebar into an Off-Canvas Drawer */
  .sidebar {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 280px;
    transform: translateX(-100%);
    transition: transform var(--transition-normal);
    box-shadow: var(--shadow-lg);
  }

  body.sidebar-open .sidebar {
    transform: translateX(0);
  }

  /* Ensure tables and code blocks scroll horizontally instead of breaking layout */
  .table-responsive, table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  
  pre {
    overflow-x: auto;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
  }
  
  code {
    white-space: pre-wrap;
    word-break: break-word;
  }
}

@media (max-width: 480px) {
  /* Further tweaks for very small screens */
  .main-content {
    padding: 12px;
  }
  .grid-2-col, .grid-3-col, .grid-4-col {
    grid-template-columns: 1fr;
  }
}

/* Fix long unbroken URLs from stretching containers */
a, p, span, div, li, td {
  overflow-wrap: anywhere;
  word-wrap: break-word;
}


/* ========================================= */
/* BREADCRUMB NAVIGATION */
/* ========================================= */

.breadcrumb-nav {
  padding: 12px 0;
  background-color: transparent;
  position: relative;
  z-index: 50;
  margin-bottom: 16px;
  overflow-x: auto;
  white-space: nowrap;
  -ms-overflow-style: none; /* IE and Edge */
  scrollbar-width: none; /* Firefox */
}
.breadcrumb-nav::-webkit-scrollbar {
  display: none; /* Chrome, Safari and Opera */
}
.breadcrumb-list {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center;
  list-style: none;
  margin: 0;
  padding: 0;
}
.breadcrumb-item {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center;
  font-size: 1rem;
}
.breadcrumb-separator {
  display: inline-flex !important;
  color: var(--text-secondary);
  opacity: 0.5;
  margin: 0 12px;
}
.breadcrumb-separator svg {
  width: 16px;
  height: 16px;
}
.breadcrumb-link {
  color: var(--accent);
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-bottom: 2px;
}
.breadcrumb-item:not(.active) .breadcrumb-link {
  border-bottom: 1.5px solid var(--accent);
  opacity: 0.8;
  font-weight: 500;
}
.breadcrumb-item:not(.active) .breadcrumb-link:hover {
  opacity: 1;
}
.breadcrumb-item.active .breadcrumb-link {
  color: var(--accent);
  font-weight: 700;
  cursor: default;
  pointer-events: none;
  border-bottom: none;
  opacity: 1;
}

/* ==========================================================================
   GLOBAL HORIZONTAL SCROLL ELIMINATION & MOBILE VERTICAL ENFORCEMENT
   ========================================================================== */
html, body {
  max-width: 100vw;
  overflow-x: hidden !important;
}

/* Ensure all media and large elements cannot exceed viewport width */
img, video, canvas, svg, iframe, pre, code {
  max-width: 100%;
}

/* Force wrapping for long text strings and pre tags */
pre, code {
  white-space: pre-wrap !important;
  word-wrap: break-word !important;
  overflow-x: hidden !important; 
}

/* For tables to not break out of their parent */
table {
  max-width: 100%;
  display: block;
  overflow-x: auto;
  white-space: normal;
}

@media (max-width: 768px) {
  /* Enforce vertical format for all structural sections */
  
  /* Make sure the main content is restricted to screen width */
  .main-content, .screen, .app-container {
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }
  
  /* Convert structural flex containers to vertical */
  .deck-browser, 
  .qa-content-container, 
  .ai-console-layout,
  .dashboard-header,
  .subject-grid,
  .chapters-list,
  .cbt-hub-grid {
    display: flex !important;
    flex-direction: column !important;
  }

  /* Any inline elements that were horizontal should wrap */
  .horizontal-scroll, 
  .breadcrumb, 
  .nav-tabs,
  .action-buttons,
  .filter-controls {
    flex-wrap: wrap !important;
    overflow-x: hidden !important;
  }
  
  /* Reset grid structures to stack vertically */
  .grid,
  [class*="grid-cols-"],
  [style*="display: grid"] {
    display: flex !important;
    flex-direction: column !important;
  }
  
  /* Reset inline flex elements to wrap */
  [style*="display: flex"] {
    flex-wrap: wrap !important;
  }
}

.elite-badge { background: linear-gradient(90deg, #ef4444, #f97316); color: white; padding: 2px 6px; border-radius: 4px; font-size: 0.65rem; font-weight: bold; margin-left: 8px; animation: pulse-elite 2s infinite; }
@keyframes pulse-elite { 0% { opacity: 0.8; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }

/* --- LOCKED MODE OVERRIDES --- */
body.locked-mode .sidebar,
body.locked-mode .mobile-menu-toggle,
body.locked-mode .sidebar-overlay {
  display: none !important;
}

body.locked-mode .main-content {
  margin-left: 0 !important;
  width: 100% !important;
}
\n
/* Radar CSS Animation */
.radar-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 200px;
  background-color: var(--bg-primary);
  border-radius: 4px;
  border: 1px solid var(--border);
  position: relative;
  overflow: hidden;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.8);
}

.radar {
  width: 180px;
  height: 180px;
  border-radius: 50%;
  border: 1px solid rgba(34, 197, 94, 0.3);
  position: relative;
  background: 
    radial-gradient(circle, rgba(34, 197, 94, 0.1) 0%, transparent 70%),
    repeating-radial-gradient(rgba(34, 197, 94, 0.1) 0, rgba(34, 197, 94, 0.1) 1px, transparent 1px, transparent 30px);
}

.radar::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background: rgba(34, 197, 94, 0.3);
}

.radar::after {
  content: '';
  position: absolute;
  left: 50%;
  top: 0;
  height: 100%;
  width: 1px;
  background: rgba(34, 197, 94, 0.3);
}

.radar-sweep {
  position: absolute;
  top: 0;
  left: 50%;
  width: 50%;
  height: 50%;
  background: linear-gradient(90deg, rgba(34, 197, 94, 0) 0%, rgba(34, 197, 94, 0.5) 100%);
  transform-origin: 0% 100%;
  animation: radar-spin 4s infinite linear;
  border-right: 2px solid rgba(34, 197, 94, 0.8);
}

@keyframes radar-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.radar-target {
  position: absolute;
  width: 4px;
  height: 4px;
  background-color: var(--danger);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px var(--danger);
  animation: target-ping 4s infinite linear;
  opacity: 0;
}

.target-1 { top: 30%; left: 60%; animation-delay: 0.5s; }
.target-2 { top: 70%; left: 30%; animation-delay: 2.2s; }
.target-3 { top: 20%; left: 20%; animation-delay: 3.1s; }

@keyframes target-ping {
  0% { opacity: 0; }
  5% { opacity: 1; transform: scale(1.5); }
  15% { opacity: 0; transform: scale(1); }
  100% { opacity: 0; }
}


/* Holistic Learning Engine UI */

.holistic-dashboard-container { margin-top: 30px; background: rgba(30, 41, 59, 0.5); border: 1px solid var(--border); border-radius: 12px; padding: 20px; color: var(--text-primary); }

.dashboard-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 15px; }

.dna-tags-container { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }

.dna-badge { font-family: var(--font-mono); font-size: 0.75rem; background: rgba(59, 130, 246, 0.15); border: 1px solid rgba(59, 130, 246, 0.4); color: #93c5fd; padding: 4px 10px; border-radius: 12px; letter-spacing: 0.5px; text-transform: uppercase; }

.dashboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; }

.dashboard-card { background: rgba(15, 23, 42, 0.6); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 10px; padding: 16px; transition: transform 0.2s, box-shadow 0.2s; }

.dashboard-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.4); }

.dashboard-card h4 { margin-top: 0; margin-bottom: 12px; font-family: var(--font-logo); font-size: 1rem; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 8px; }

.teaching-card h4 { color: #a78bfa; border-bottom-color: rgba(167, 139, 250, 0.3); }

.bridge-card h4 { color: #fbbf24; border-bottom-color: rgba(251, 191, 36, 0.3); }

.defence-card h4 { color: #34d399; border-bottom-color: rgba(52, 211, 153, 0.3); }

.dashboard-card p { font-size: 0.9rem; line-height: 1.5; color: var(--text-secondary); margin-bottom: 0; }

.recommendation-list { display: flex; flex-direction: column; gap: 10px; }

.recommendation-item { display: flex; flex-direction: column; background: rgba(255,255,255,0.03); padding: 12px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.05); cursor: pointer; transition: background 0.2s; }

.recommendation-item:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.15); }

.rec-title { font-weight: 600; font-size: 0.95rem; margin-bottom: 4px; color: var(--text-primary); }

.rec-reason { font-size: 0.8rem; color: var(--text-muted); font-style: italic; }

.smart-clickable-concept { color: #60a5fa; cursor: help; border-bottom: 1px dashed #60a5fa; transition: color 0.2s, border-color 0.2s; }

.smart-clickable-concept:hover { color: #93c5fd; border-bottom-color: #93c5fd; background: rgba(96, 165, 250, 0.1); }

.smart-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); backdrop-filter: blur(4px); z-index: 10000; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }

.smart-modal-overlay.active { opacity: 1; pointer-events: auto; }

.smart-modal { background: var(--bg-secondary); border: 1px solid var(--accent); border-radius: 12px; width: 90%; max-width: 500px; max-height: 85vh; display: flex; flex-direction: column; box-shadow: 0 10px 40px rgba(34,197,94,0.2); transform: scale(0.95); transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); overflow: hidden; }

.smart-modal-overlay.active .smart-modal { transform: scale(1); }

.smart-modal-header { padding: 16px 20px; background: rgba(34, 197, 94, 0.1); border-bottom: 1px solid rgba(34, 197, 94, 0.2); display: flex; justify-content: space-between; align-items: center; }

.smart-modal-header h3 { margin: 0; color: #4ade80; font-family: var(--font-logo); font-size: 1.2rem; }

.smart-modal-close { background: none; border: none; color: var(--text-muted); cursor: pointer; font-size: 1.2rem; transition: color 0.2s; }

.smart-modal-close:hover { color: var(--text-primary); }

.smart-modal-body { padding: 20px; overflow-y: auto; color: var(--text-secondary); font-size: 0.95rem; line-height: 1.6; }

.smart-modal-footer { padding: 12px 20px; background: rgba(0,0,0,0.2); border-top: 1px solid var(--border); display: flex; justify-content: flex-end; gap: 10px; }


/* MOBILE LANDSCAPE AND OVERLAP FIXES */
.sidebar { overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; }
.sidebar > * { flex-shrink: 0; }
@media (max-width: 768px) {
  .ai-chatbot-launcher .launcher-text { display: none; }
  .ai-chatbot-launcher { border-radius: 50%; padding: 14px; bottom: 16px; right: 16px; }
  .ai-chatbot-launcher .launcher-icon { font-size: 1.5rem; }
}
@media (max-height: 500px) and (orientation: landscape) {
  .ai-chatbot-launcher .launcher-text { display: none; }
  .ai-chatbot-launcher { border-radius: 50%; padding: 12px; bottom: 12px; right: 12px; }
}

/* DEFCON DYNAMIC WIDGET */
.defcon-state-1 {
  border-color: #ef4444 !important;
  box-shadow: inset 0 0 10px rgba(239, 68, 68, 0.2);
}
.defcon-state-1 #defcon-level {
  color: #ef4444 !important;
  text-shadow: 0 0 10px rgba(239, 68, 68, 0.4);
}

@keyframes defcon2-breathe-box {
  0%, 100% { box-shadow: inset 0 0 5px rgba(239, 68, 68, 0.2); }
  50% { box-shadow: inset 0 0 20px rgba(239, 68, 68, 0.4); }
}
@keyframes defcon2-breathe-text {
  0%, 100% { text-shadow: 0 0 5px rgba(239, 68, 68, 0.3); }
  50% { text-shadow: 0 0 15px rgba(239, 68, 68, 0.8); }
}
.defcon-state-2 {
  border-color: #ef4444 !important;
  animation: defcon2-breathe-box 4s infinite ease-in-out;
}
.defcon-state-2 #defcon-level {
  color: #ef4444 !important;
  animation: defcon2-breathe-text 4s infinite ease-in-out;
}

@keyframes defcon3-pulse-box {
  0%, 100% { box-shadow: inset 0 0 10px rgba(239, 68, 68, 0.4); filter: brightness(0.8); }
  50% { box-shadow: inset 0 0 30px rgba(239, 68, 68, 0.8); filter: brightness(1.25); }
}
@keyframes defcon3-pulse-text {
  0%, 100% { text-shadow: 0 0 10px rgba(239, 68, 68, 0.5); opacity: 0.7; }
  50% { text-shadow: 0 0 25px rgba(239, 68, 68, 1); opacity: 1; }
}
.defcon-state-3 {
  border-color: #ef4444 !important;
  animation: defcon3-pulse-box 2s infinite ease-in-out;
}
.defcon-state-3 #defcon-level {
  color: #ef4444 !important;
  animation: defcon3-pulse-text 2s infinite ease-in-out;
}

@keyframes exam-name-breathe {
  0%, 100% { transform: scale(1.00); }
  50% { transform: scale(1.05); }
}
#defcon-exam-name {
  animation: exam-name-breathe 2.5s infinite ease-in-out;
  transform-origin: left center;
}

/* --- Advanced Interactive Styling for Notes --- */

.notes-text {
  font-size: 0.95rem;
  line-height: 1.8;
  color: #e2e8f0;
  text-align: left;
  word-wrap: break-word;
  overflow-wrap: break-word;
  overflow-x: hidden;
  max-width: 100%;
}

.notes-text pre, .notes-text table, .notes-text code {
  overflow-x: auto;
  max-width: 100%;
  white-space: pre-wrap;
  word-wrap: break-word;
}

.notes-text h3 {
  color: var(--accent);
  font-size: 1.3rem;
  margin-top: 1.5rem;
  margin-bottom: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  padding-bottom: 0.5rem;
  font-weight: 600;
  letter-spacing: 0.5px;
}

.notes-text h4 {
  color: var(--text-primary);
  font-size: 1.1rem;
  margin-top: 1.25rem;
  margin-bottom: 0.75rem;
  border-left: 3px solid var(--info);
  padding-left: 0.75rem;
  font-weight: 500;
}

.notes-text p {
  margin-bottom: 1.2rem;
}

.notes-text ul, .notes-text ol {
  margin-left: 1.2rem;
  margin-bottom: 1.5rem;
  padding-left: 0;
}

.notes-text li {
  margin-bottom: 0.5rem;
  padding-left: 0.5rem;
  transition: all 0.2s ease-in-out;
}

.notes-text li:hover {
  background-color: rgba(34, 197, 94, 0.05);
  border-radius: 4px;
}

.notes-text strong {
  color: #f8fafc;
  font-weight: 600;
  background: rgba(255,255,255,0.05);
  padding: 0 4px;
  border-radius: 4px;
}

.expanded-notes-content th {
  background: rgba(255, 255, 255, 0.05);
  color: var(--text-primary);
  text-align: left;
  padding: 10px;
  border-bottom: 2px solid rgba(255, 255, 255, 0.1);
  font-weight: 600;
  word-break: normal;
}

.expanded-notes-content td {
  padding: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  color: var(--text-muted);
  word-break: normal;
}

.revision-card {
  transition: all 0.3s ease;
  cursor: default;
}

.revision-card:hover {
  box-shadow: 0 8px 24px rgba(34, 197, 94, 0.15) !important;
  border-color: rgba(34, 197, 94, 0.4) !important;
  transform: translateY(-2px);
}

.wiki-link {
  color: var(--accent);
  text-decoration: none;
  border-bottom: 1px dashed rgba(34, 197, 94, 0.5);
  transition: all 0.2s ease;
}

.wiki-link:hover {
  background-color: rgba(34, 197, 94, 0.1);
  border-bottom: 1px solid var(--accent);
}
. h i s t o r y - t e r m   {   b o r d e r - b o t t o m :   1 p x   d a s h e d   v a r ( - - a c c e n t ) ;   c o l o r :   v a r ( - - a c c e n t ) ;   c u r s o r :   h e l p ;   p o s i t i o n :   r e l a t i v e ;   }   . h i s t o r y - t e r m : h o v e r : : a f t e r   {   c o n t e n t :   a t t r ( d a t a - d e f i n i t i o n ) ;   p o s i t i o n :   a b s o l u t e ;   b o t t o m :   1 2 0 % ;   l e f t :   5 0 % ;   t r a n s f o r m :   t r a n s l a t e X ( - 5 0 % ) ;   w i d t h :   m a x - c o n t e n t ;   m a x - w i d t h :   2 5 0 p x ;   b a c k g r o u n d :   # 1 e 2 9 3 b ;   c o l o r :   # f 8 f a f c ;   p a d d i n g :   8 p x   1 2 p x ;   b o r d e r - r a d i u s :   6 p x ;   f o n t - s i z e :   0 . 8 r e m ;   z - i n d e x :   1 0 0 0 ;   b o x - s h a d o w :   0   4 p x   6 p x   r g b a ( 0 , 0 , 0 , 0 . 3 ) ;   b o r d e r :   1 p x   s o l i d   v a r ( - - b o r d e r ) ;   t e x t - a l i g n :   c e n t e r ;   w h i t e - s p a c e :   n o r m a l ;   p o i n t e r - e v e n t s :   n o n e ;   }   . h i s t o r y - t e r m : h o v e r : : b e f o r e   {   c o n t e n t :   ' ' ;   p o s i t i o n :   a b s o l u t e ;   b o t t o m :   1 0 0 % ;   l e f t :   5 0 % ;   t r a n s f o r m :   t r a n s l a t e X ( - 5 0 % ) ;   b o r d e r - w i d t h :   6 p x ;   b o r d e r - s t y l e :   s o l i d ;   b o r d e r - c o l o r :   v a r ( - - b o r d e r )   t r a n s p a r e n t   t r a n s p a r e n t   t r a n s p a r e n t ;   p o i n t e r - e v e n t s :   n o n e ;   } 
 
 . g e o - t a g   {   b o r d e r - b o t t o m :   1 p x   d a s h e d   v a r ( - - a c c e n t ) ;   c o l o r :   v a r ( - - a c c e n t ) ;   c u r s o r :   p o i n t e r ;   p o s i t i o n :   r e l a t i v e ;   }   . g e o - t a g : h o v e r   {   b a c k g r o u n d - c o l o r :   r g b a ( 1 6 8 ,   8 5 ,   2 4 7 ,   0 . 1 ) ;   } 
 
 / *   M u l t i - S t a t e m e n t   C h e c k p o i n t   U I   * /   . m s c - c h e c k p o i n t   {   b a c k g r o u n d :   v a r ( - - b g - s e c o n d a r y ) ;   b o r d e r - l e f t :   4 p x   s o l i d   v a r ( - - a c c e n t ) ;   b o r d e r - r a d i u s :   6 p x ;   p a d d i n g :   2 0 p x ;   m a r g i n :   2 4 p x   0 ;   b o x - s h a d o w :   0   2 p x   1 0 p x   r g b a ( 0 , 0 , 0 , 0 . 2 ) ;   }   . m s c - t i t l e   {   f o n t - f a m i l y :   v a r ( - - f o n t - l o g o ) ;   c o l o r :   v a r ( - - a c c e n t ) ;   f o n t - s i z e :   1 . 1 r e m ;   m a r g i n - b o t t o m :   1 2 p x ;   t e x t - t r a n s f o r m :   u p p e r c a s e ;   l e t t e r - s p a c i n g :   0 . 5 p x ;   d i s p l a y :   f l e x ;   a l i g n - i t e m s :   c e n t e r ;   g a p :   8 p x ;   }   . m s c - s t a t e m e n t s   {   m a r g i n - b o t t o m :   1 6 p x ;   p a d d i n g - l e f t :   1 2 p x ;   b o r d e r - l e f t :   2 p x   s o l i d   r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 0 . 1 ) ;   }   . m s c - s t a t e m e n t s   p   {   m a r g i n - b o t t o m :   8 p x ;   f o n t - s i z e :   0 . 9 5 r e m ;   }   . m s c - o p t i o n s   {   d i s p l a y :   g r i d ;   g r i d - t e m p l a t e - c o l u m n s :   r e p e a t ( a u t o - f i t ,   m i n m a x ( 2 0 0 p x ,   1 f r ) ) ;   g a p :   1 2 p x ;   m a r g i n - b o t t o m :   1 6 p x ;   }   . m s c - o p t i o n   {   b a c k g r o u n d :   r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 0 . 0 5 ) ;   b o r d e r :   1 p x   s o l i d   r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 0 . 1 ) ;   b o r d e r - r a d i u s :   6 p x ;   p a d d i n g :   1 2 p x ;   c u r s o r :   p o i n t e r ;   t r a n s i t i o n :   a l l   0 . 2 s   e a s e ;   t e x t - a l i g n :   c e n t e r ;   f o n t - w e i g h t :   6 0 0 ;   }   . m s c - o p t i o n : h o v e r   {   b a c k g r o u n d :   r g b a ( 1 6 8 ,   8 5 ,   2 4 7 ,   0 . 1 5 ) ;   b o r d e r - c o l o r :   v a r ( - - a c c e n t ) ;   }   . m s c - o p t i o n . s e l e c t e d - c o r r e c t   {   b a c k g r o u n d :   r g b a ( 3 4 ,   1 9 7 ,   9 4 ,   0 . 2 ) ;   b o r d e r - c o l o r :   # 2 2 c 5 5 e ;   c o l o r :   # 2 2 c 5 5 e ;   }   . m s c - o p t i o n . s e l e c t e d - w r o n g   {   b a c k g r o u n d :   r g b a ( 2 3 9 ,   6 8 ,   6 8 ,   0 . 2 ) ;   b o r d e r - c o l o r :   # e f 4 4 4 4 ;   c o l o r :   # e f 4 4 4 4 ;   }   . m s c - e x p l a n a t i o n   {   d i s p l a y :   n o n e ;   b a c k g r o u n d :   r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 0 . 0 2 ) ;   p a d d i n g :   1 6 p x ;   b o r d e r - r a d i u s :   6 p x ;   b o r d e r :   1 p x   s o l i d   r g b a ( 2 5 5 , 2 5 5 , 2 5 5 , 0 . 0 5 ) ;   f o n t - s i z e :   0 . 9 r e m ;   c o l o r :   v a r ( - - t e x t - s e c o n d a r y ) ;   } 
 
 

/* Mobile Responsiveness for Dronacharya */
@media (max-width: 768px) {
  #dronacharya-panel {
    width: calc(100% - 32px) !important;
    right: 16px !important;
    bottom: 90px !important;
    height: 65vh !important;
  }
  #dronacharya-fab {
    bottom: 90px !important;
    right: 16px !important;
  }
}

mark {
  background-color: rgba(212, 175, 55, 0.35) !important;
  color: #ffd700 !important;
  border-radius: 3px;
  padding: 0 4px;
}
