/* ForgeX Design System v2.5 — Professional Pass
   Injected as enhancement layer over the pre-built bundle.
   Covers: A1 Brand, A2 Token Depth, A3 Typography, A4 Screen upgrades, A5 Motion/States
   BOTH themes supported. */

/* ─── A2: TOKEN DEPTH — Shadows, Semantic Colors, Radius Scale ─── */
:root {
  /* Shadow scale (light theme — warm, not gray) */
  --shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.05);
  --shadow-md: 0 4px 8px -2px rgba(16, 24, 40, 0.08), 0 2px 4px -2px rgba(16, 24, 40, 0.04);
  --shadow-lg: 0 12px 24px -4px rgba(16, 24, 40, 0.1), 0 4px 8px -4px rgba(16, 24, 40, 0.04);

  /* Semantic status colors */
  --success: #10b981;
  --success-bg: #d1fae5;
  --success-text: #065f46;
  --warning: #f59e0b;
  --warning-bg: #fef3c7;
  --warning-text: #92400e;
  --info: #3b82f6;
  --info-bg: #dbeafe;
  --info-text: #1e40af;
  --destructive: #ef4444;
  --destructive-bg: #fee2e2;
  --destructive-text: #991b1b;

  /* Radius scale */
  --radius-input: 0.375rem;
  --radius-card: 0.75rem;
  --radius-chip: 9999px;
}

/* Dark mode tokens */
.dark, [data-theme="dark"] {
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 4px 8px -2px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(16, 185, 129, 0.05);
  --shadow-lg: 0 12px 24px -4px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(16, 185, 129, 0.08);

  --success-bg: rgba(16, 185, 129, 0.15);
  --success-text: #6ee7b7;
  --warning-bg: rgba(245, 158, 11, 0.15);
  --warning-text: #fcd34d;
  --info-bg: rgba(59, 130, 246, 0.15);
  --info-text: #93c5fd;
  --destructive-bg: rgba(239, 68, 68, 0.15);
  --destructive-text: #fca5a5;
}

/* ─── A3: TYPOGRAPHY RHYTHM ─── */

/* Overline pattern (mono-uppercase-tracking) */
.overline,
[class*="text-xs"][class*="uppercase"][class*="tracking"] {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.6875rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Tabular nums for money and counts */
[class*="font-mono"],
[data-type="money"],
[data-type="count"] {
  font-variant-numeric: tabular-nums;
}

/* ─── A4: CARD UPGRADES ─── */

/* All cards get proper shadow + hover elevation */
[class*="rounded"][class*="border"][class*="bg-card"],
[class*="rounded-lg"][class*="border"] {
  box-shadow: var(--shadow-sm);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

[class*="rounded"][class*="border"][class*="bg-card"]:hover,
[class*="rounded-lg"][class*="border"]:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-1px);
}

/* ─── A5: MOTION & STATES ─── */

/* Skeleton pulse animation (smoother) */
@keyframes forgex-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

[class*="animate-pulse"] {
  animation: forgex-pulse 1.5s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Button press feedback */
button:active:not(:disabled),
[role="button"]:active:not([aria-disabled="true"]) {
  transform: scale(0.97);
  transition: transform 0.1s ease;
}

/* Focus rings (both themes) */
:focus-visible {
  outline: 2px solid var(--success);
  outline-offset: 2px;
}

/* ─── STATUS CHIPS (pipeline states) ─── */

.status-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.125rem 0.5rem;
  border-radius: var(--radius-chip);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.status-chip--published {
  background: var(--success-bg);
  color: var(--success-text);
}

.status-chip--draft {
  background: var(--warning-bg);
  color: var(--warning-text);
}

.status-chip--blocked {
  background: var(--destructive-bg);
  color: var(--destructive-text);
}

/* LIVE pulse dot */
.live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--success);
  animation: live-pulse 2s ease-in-out infinite;
}

@keyframes live-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4); }
  50% { box-shadow: 0 0 0 4px rgba(16, 185, 129, 0); }
}

/* ─── PRINT STYLESHEET (ofertă) ─── */
@media print {
  body { background: white !important; }
  header, nav, footer, [class*="sidebar"], button { display: none !important; }
  main { padding: 0 !important; margin: 0 !important; max-width: 100% !important; }
  [class*="rounded"][class*="border"] { box-shadow: none !important; border: 1px solid #e5e7eb !important; }
}

/* ─── BROWSER CHROME FRAME (for site preview) ─── */
.browser-frame {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--border, #e5e7eb);
}

.browser-frame__bar {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  background: var(--gray-100, #f3f4f6);
  border-bottom: 1px solid var(--border, #e5e7eb);
}

.dark .browser-frame__bar {
  background: #1f2937;
}

.browser-frame__dots {
  display: flex;
  gap: 4px;
}

.browser-frame__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.browser-frame__dot--red { background: #ef4444; }
.browser-frame__dot--yellow { background: #f59e0b; }
.browser-frame__dot--green { background: #10b981; }

.browser-frame__url {
  flex: 1;
  padding: 0.25rem 0.5rem;
  background: white;
  border-radius: 4px;
  font-size: 0.75rem;
  color: #6b7280;
  font-family: 'JetBrains Mono', monospace;
  border: 1px solid var(--border, #e5e7eb);
}

.dark .browser-frame__url {
  background: #111827;
  color: #9ca3af;
}

/* Fix mobil (R2) — bara de sus si cardurile nu mai depasesc ecranul */
@media (max-width: 640px) {
  html, body { overflow-x: hidden; max-width: 100vw; }
  header .flex.items-center.gap-2 { flex-wrap: wrap; row-gap: 8px; }
  button, a { max-width: 100%; }
  .min-w-0 { min-width: 0 !important; }
}
