/* Maitre Slate — v2 token extensions for full-product handoff.
   These are ADDITIVE over the base tokens.css from the Host Stand bundle.
   Base tokens are unchanged; new additions live here so the diff to the
   shipped design system is auditable. */

:root {
  /* --- Additional surface tiers for the broader app --- */
  --bg-inset: #0b0c0e;         /* inset wells: code blocks, empty-canvases */
  --bg-overlay: rgba(11, 12, 14, 0.82);
  --bg-highlight: rgba(233, 195, 73, 0.04); /* row highlight on hover */
  --bg-selected: rgba(233, 195, 73, 0.08);

  /* --- Data-density / table surfaces --- */
  --row-alt: rgba(255, 255, 255, 0.015);
  --row-hover: rgba(255, 255, 255, 0.03);
  --row-selected: rgba(233, 195, 73, 0.07);

  /* --- Additional borders --- */
  --border-focus: var(--accent-gold);

  /* --- Chart palette (categorical, extends status colors) --- */
  --chart-1: #e9c349;  /* gold — primary series */
  --chart-2: #60a5fa;  /* blue */
  --chart-3: #4ade80;  /* green */
  --chart-4: #f87171;  /* red */
  --chart-5: #a78bfa;  /* violet */
  --chart-6: #fb923c;  /* orange */
  --chart-7: #2dd4bf;  /* teal */
  --chart-8: #f472b6;  /* pink */

  /* --- GP (Gross Profit) thresholds from brief §5 Menu --- */
  --gp-good: var(--success);     /* ≥65% */
  --gp-okay: var(--warning);     /* 55–65% */
  --gp-bad: var(--critical);     /* <55% */

  /* --- Agent / autonomy tiers --- */
  --tier-auto: #4ade80;          /* green — autonomous */
  --tier-notify: #60a5fa;        /* blue — notifies */
  --tier-draft: #e9c349;         /* gold — draft for approval */
  --tier-never: #646978;         /* grey — never */

  /* --- Admin / platform "mission control" accent --- */
  --admin-accent: #60a5fa;
  --admin-accent-soft: rgba(96, 165, 250, 0.12);
  --admin-accent-ring: rgba(96, 165, 250, 0.4);
  --admin-bg: #0d1117;
  --admin-bg-elevated: #161b22;
  --admin-border: #1f2937;

  /* --- Light theme variables (operator surfaces). Applied via .theme-light --- */
  /* Kept as peer; dark-first. */

  /* --- Reduced motion --- */
}

/* Light theme — tenant preference. Mirrors dark; AA contrast checked. */
.theme-light {
  --bg-primary: #FAFAF8;
  --bg-secondary: #FFFFFF;
  --bg-elevated: #F3F2EE;
  --bg-hover: #ECE9E1;
  --bg-inset: #F7F5F0;
  --bg-scrim: rgba(30, 28, 22, 0.4);
  --bg-overlay: rgba(255, 255, 255, 0.9);
  --bg-highlight: rgba(184, 134, 11, 0.05);
  --bg-selected: rgba(184, 134, 11, 0.09);

  --border-subtle: #E9E5DC;
  --border-default: #D9D4C7;
  --border-strong: #B9B1A0;

  --text-primary: #1A1816;
  --text-secondary: #555049;
  --text-tertiary: #87827A;
  --text-disabled: #B9B4AA;
  --text-on-gold: #1A1606;

  --accent-gold: #B08307;
  --accent-gold-soft: rgba(176, 131, 7, 0.10);
  --accent-gold-ring: rgba(176, 131, 7, 0.45);

  --success: #2F7D4F;
  --success-soft: rgba(47, 125, 79, 0.10);
  --warning: #A86A00;
  --warning-soft: rgba(168, 106, 0, 0.10);
  --critical: #C53F3F;
  --critical-soft: rgba(197, 63, 63, 0.10);
  --info: #3A6FC8;
  --info-soft: rgba(58, 111, 200, 0.10);

  --shadow-1: 0 1px 2px rgba(30, 28, 22, 0.06);
  --shadow-2: 0 2px 8px rgba(30, 28, 22, 0.08);
  --shadow-gold: 0 0 0 1px rgba(176, 131, 7, 0.45), 0 8px 24px rgba(176, 131, 7, 0.12);

  --row-alt: rgba(30, 28, 22, 0.02);
  --row-hover: rgba(30, 28, 22, 0.04);
  --row-selected: rgba(176, 131, 7, 0.08);
}

/* Admin / platform override — applied to admin surfaces only */
.theme-admin {
  --bg-primary: var(--admin-bg);
  --bg-secondary: var(--admin-bg-elevated);
  --bg-elevated: #1f2937;
  --border-subtle: var(--admin-border);
  --border-default: #2a3441;
  --accent-gold: var(--admin-accent);
  --accent-gold-soft: var(--admin-accent-soft);
  --accent-gold-ring: var(--admin-accent-ring);
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

/* Utility: elevation helpers */
.elev-1 { box-shadow: var(--shadow-1); }
.elev-2 { box-shadow: var(--shadow-2); }

/* Keyframe: pulse-gold (agent working) */
@keyframes pulseGold {
  0%, 100% { box-shadow: 0 0 0 0 rgba(233, 195, 73, 0.4); }
  50%      { box-shadow: 0 0 0 8px rgba(233, 195, 73, 0); }
}
.pulse-gold { animation: pulseGold 2s ease-out infinite; }

/* Keyframe: slide in from right (sheets) */
@keyframes slideInRight {
  from { transform: translateX(24px); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}
.slide-in-right { animation: slideInRight 220ms ease-out both; }

/* Keyframe: subtle scan (for chart loading) */
@keyframes scan {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* Dot grid utility — for empty canvases, mission-control feel */
.dot-grid {
  background-image: radial-gradient(circle, var(--border-subtle) 1px, transparent 1px);
  background-size: 16px 16px;
}
