/* ── BASE.CSS — Variables, reset, typography ── */
:root {
  --bg-base: #0a0c10;
  --bg-panel: #0f1218;
  --bg-surface: #141921;
  --bg-elevated: #1a2030;
  --bg-hover: #1e2535;
  --border: #1e2840;
  --border-bright: #2a3a55;
  --accent: #00d4ff;
  --accent-dim: #0099bb;
  --accent-glow: rgba(0, 212, 255, 0.15);
  --green: #00ff88;
  --green-dim: #00cc6a;
  --orange: #ff8c42;
  --red: #ff4757;
  --purple: #a855f7;
  --text-primary: #e2e8f0;
  --text-secondary: #7a8fa8;
  --text-muted: #3d5070;
  --line-num: #2a3a55;
  --token-keyword: #a78bfa;
  --token-string: #34d399;
  --token-comment: #4a6080;
  --token-func: #60a5fa;
  --token-number: #fb923c;
  --token-type: #f59e0b;

  /* Mobile nav height */
  --mobile-nav-h: 56px;
  --bottom-nav-h: 60px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  font-family: 'Syne', sans-serif;
  background: var(--bg-base);
  color: var(--text-primary);
  height: 100dvh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* Scrollbars */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border-bright); border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-muted); }
::-webkit-scrollbar-corner { background: var(--bg-panel); }

/* Tooltip */
[data-tip] { position: relative; }
[data-tip]:hover::after {
  content: attr(data-tip);
  position: absolute;
  left: 50%; transform: translateX(-50%);
  bottom: calc(100% + 6px);
  background: var(--bg-elevated);
  border: 1px solid var(--border-bright);
  border-radius: 4px;
  padding: 4px 8px;
  font-size: 10px;
  font-family: 'JetBrains Mono', monospace;
  color: var(--text-secondary);
  white-space: nowrap;
  z-index: 200;
  pointer-events: none;
}

/* Loading dots animation */
@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}
@keyframes modalIn {
  from { opacity: 0; transform: scale(0.95) translateY(-10px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}

/* Utility */
.desktop-only { display: flex !important; }
