/* ============================================================
   TACITUS OVERRIDE — loaded after CRA's webpack-injected styles,
   so every rule here wins document-order + !important ties.
   URLs reference /brand/* served directly from /public.
   ============================================================ */

@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 400; font-display: swap; src: url('./fonts/CormorantGaramond-Regular.ttf') format('truetype'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 400; font-display: swap; src: url('./fonts/CormorantGaramond-Italic.ttf') format('truetype'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 500; font-display: swap; src: url('./fonts/CormorantGaramond-Medium.ttf') format('truetype'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 600; font-display: swap; src: url('./fonts/CormorantGaramond-SemiBold.ttf') format('truetype'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 700; font-display: swap; src: url('./fonts/CormorantGaramond-Bold.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 300; font-display: swap; src: url('./fonts/IBMPlexSans-Light.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('./fonts/IBMPlexSans-Regular.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: italic; font-weight: 400; font-display: swap; src: url('./fonts/IBMPlexSans-Italic.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url('./fonts/IBMPlexSans-Medium.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url('./fonts/IBMPlexSans-SemiBold.ttf') format('truetype'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url('./fonts/IBMPlexSans-Bold.ttf') format('truetype'); }

:root {
  --tc-gold: #B8860B;
  --tc-gold-hover: #9A7209;
  --tc-gold-soft: rgba(184, 134, 11, 0.10);
  --tc-gold-hair: rgba(184, 134, 11, 0.30);
  --tc-bg: #FFFFFF;
  --tc-bg-alt: #F9FAFB;
  --tc-bg-sunken: #F3F4F6;
  --tc-fg-1: #1A1A1A;
  --tc-fg-2: #4A4A4A;
  --tc-fg-3: #6B7280;
  --tc-fg-4: #9CA3AF;
  --tc-border: #E5E5E5;
  --tc-border-strong: #D1D5DB;
  --tc-danger: #C53030;
  --tc-warning: #C05621;
  --tc-success: #15803D;
  --tc-font-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --tc-font-sans: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --tc-font-mono: 'IBM Plex Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* Kill the dark-theme blueprint grid overlays */
body::before,
body::after { display: none !important; }

html, body {
  background: var(--tc-bg) !important;
  color: var(--tc-fg-1) !important;
  font-family: var(--tc-font-sans) !important;
}

/* Editorial serif for all headings */
h1, h2, h3, h4, h5,
.ct-h1, .ct-h2, .ct-h3, .ct-h4 {
  font-family: var(--tc-font-serif) !important;
  color: var(--tc-fg-1) !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em;
}

/* Mono / numeric labels in gold */
.ct-mono, code, pre { font-family: var(--tc-font-mono) !important; color: var(--tc-gold-strong); }

/* ---------- Top navigation ---------- */
.ct-nav {
  background: var(--tc-bg) !important;
  border-bottom: 1px solid var(--tc-border) !important;
  position: relative;
}
.ct-nav::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  height: 2px;
  background: var(--tc-gold);
  opacity: 0.85;
  pointer-events: none;
}

/* Brand lockup: real logo image (from App.js) + portal sub-label */
.ct-nav-brand {
  display: flex !important;
  align-items: center;
  text-decoration: none !important;
}
.ct-nav-brand img { display: block; height: 22px; width: auto; }

.ct-nav-link {
  color: var(--tc-fg-2) !important;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 11px !important;
  font-weight: 500 !important;
  font-family: var(--tc-font-sans) !important;
}
.ct-nav-link:hover { color: var(--tc-fg-1) !important; }
.ct-nav-link.active { color: var(--tc-gold-strong) !important; }
.ct-nav-divider { color: var(--tc-border-strong) !important; }

/* ---------- Buttons ---------- */
.ct-btn, .ct-auth-btn, button.ct-btn-primary, .ct-btn-primary,
.ct-btn-secondary, .ct-btn-ghost {
  border-radius: 4px !important;
  font-family: var(--tc-font-sans) !important;
}
.ct-btn-primary, button.ct-btn-primary {
  background: var(--tc-gold-btn) !important;   /* AA: white on #7A5C00 ≥4.5:1 */
  color: #fff !important;
  border-color: var(--tc-gold-btn) !important;
}
.ct-btn-primary:hover, button.ct-btn-primary:hover {
  background: #5F4700 !important;
  border-color: #5F4700 !important;
}
.ct-btn-secondary, .ct-btn-ghost, .ct-auth-btn {
  background: transparent !important;
  color: var(--tc-fg-1) !important;
  border: 1px solid var(--tc-border-strong) !important;
}
.ct-btn-secondary:hover, .ct-btn-ghost:hover, .ct-auth-btn:hover {
  border-color: var(--tc-gold-strong) !important;
  color: var(--tc-gold-strong) !important;
}

/* ---------- Frames / cards ---------- */
.ct-frame, .ct-card {
  background: var(--tc-bg) !important;
  border: 1px solid var(--tc-border) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}
.ct-frame::before, .ct-frame::after,
.ct-frame-bottom-ticks::before, .ct-frame-bottom-ticks::after {
  border-color: var(--tc-gold-strong) !important;
  opacity: 0.6;
}

/* ---------- Eyebrow labels ---------- */
.ct-mono-label, .ct-eyebrow, .ct-label {
  font-family: var(--tc-font-sans) !important;
  font-size: 11px !important;
  color: var(--tc-gold-strong) !important;
  letter-spacing: 0.32em !important;
  text-transform: uppercase;
  font-weight: 500;
}

/* Links */
a { color: var(--tc-gold-strong); }
a:hover { color: var(--tc-gold-hover); }

/* Tables */
table { border-collapse: collapse; }
table th {
  color: var(--tc-gold-strong) !important;
  border-bottom: 1px solid var(--tc-gold) !important;
  background: transparent !important;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 11px !important;
  font-weight: 500 !important;
  font-family: var(--tc-font-sans) !important;
}
table td { border-bottom: 1px solid var(--tc-border) !important; }

/* Scrollbar */
::-webkit-scrollbar-track { background: var(--tc-bg-alt); }
::-webkit-scrollbar-thumb { background: var(--tc-border-strong); }
::-webkit-scrollbar-thumb:hover { background: var(--tc-gold); }

/* ---------- Tailwind utility overrides (dark-theme literals) ---------- */
.bg-slate-900, .bg-slate-800, .bg-slate-950,
.bg-gray-900, .bg-gray-950, .bg-gray-800,
.bg-\[\#0a0e27\], .bg-\[\#070a1a\], .bg-\[\#0d1333\] {
  background-color: var(--tc-bg) !important;
  color: var(--tc-fg-1) !important;
}
.bg-slate-700, .bg-gray-700 { background-color: var(--tc-bg-alt) !important; }

.text-white, .text-slate-100, .text-slate-200, .text-gray-100 {
  color: var(--tc-fg-1) !important;
}
.text-slate-300, .text-slate-400, .text-slate-500,
.text-gray-300, .text-gray-400, .text-gray-500 {
  color: var(--tc-fg-2) !important;
}

.border-slate-900, .border-slate-800, .border-slate-700,
.border-gray-800, .border-gray-700 {
  border-color: var(--tc-border) !important;
}

.text-sky-400, .text-sky-300, .text-sky-500,
.text-blue-400, .text-blue-300, .text-blue-500,
.text-cyan-400, .text-cyan-300,
.text-orange-400, .text-orange-500,
.text-amber-400, .text-amber-500 {
  color: var(--tc-gold-strong) !important;
}
.bg-sky-500, .bg-sky-600,
.bg-blue-500, .bg-blue-600,
.bg-orange-500, .bg-orange-600,
.bg-amber-500, .bg-amber-600 {
  background-color: var(--tc-gold-strong) !important;
  color: #fff !important;
}
.border-sky-500, .border-sky-400,
.border-blue-500, .border-blue-400,
.border-orange-500, .border-amber-500 {
  border-color: var(--tc-gold-strong) !important;
}

/* Generic paragraph color */
p { color: var(--tc-fg-1); }

/* Favicon/brand title fallback */
.ct-brand-name { font-family: var(--tc-font-serif) !important; color: var(--tc-fg-1) !important; }

/* ============================================================
   v5 PAGE-LEVEL RE-SKIN — force readable text on cream where
   original styles hardcoded #fff / rgba(255,255,255,*) etc.
   ============================================================ */

/* Dashboard welcome + meta */
.dash-welcome h1,
.dash-welcome-title,
.dash-welcome h2,
.dash-welcome h3 {
  color: var(--tc-fg-1) !important;
  font-family: var(--tc-font-serif) !important;
}
.dash-welcome-subtitle,
.dash-meta-item,
.dash-welcome p {
  color: var(--tc-fg-2) !important;
  font-family: var(--tc-font-serif) !important;
  font-style: italic;
  opacity: 1 !important;
}
.dash-meta-item strong { color: var(--tc-fg-1) !important; }
.dash-role-tag {
  background: var(--tc-gold-soft) !important;
  color: var(--tc-gold-strong) !important;
  border: 1px solid var(--tc-gold) !important;
  border-radius: 2px !important;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-family: var(--tc-font-sans) !important;
  font-weight: 500;
  font-size: 11px !important;
}

/* Dashboard stats (numbers + labels) */
.dash-stat {
  background: var(--tc-bg) !important;
  border: 1px solid var(--tc-border) !important;
  border-left: 2px solid var(--tc-gold) !important;
  border-radius: 2px !important;
}
.dash-stat svg { color: var(--tc-gold-strong) !important; opacity: 0.9 !important; }
.dash-stat-value {
  color: var(--tc-fg-1) !important;
  font-family: var(--tc-font-serif) !important;
  font-weight: 500 !important;
}
.dash-stat-label {
  color: var(--tc-fg-3) !important;
  font-family: var(--tc-font-sans) !important;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-size: 11px !important;
}

/* Section titles */
.dash-section h2,
.dash-section h3,
section h2 {
  color: var(--tc-fg-1) !important;
  font-family: var(--tc-font-serif) !important;
  font-weight: 500 !important;
}

/* Workload cards */
.dash-card {
  background: var(--tc-bg) !important;
  border: 1px solid var(--tc-border) !important;
  border-radius: 4px !important;
  transition: border-color 180ms, background 180ms;
}
.dash-card:hover {
  border-color: var(--tc-gold-strong) !important;
  background: var(--tc-bg-alt) !important;
}
.dash-card-icon {
  background: var(--tc-gold-soft) !important;
  color: var(--tc-gold-strong) !important;
  border-radius: 2px !important;
}
.dash-card-body h3 {
  color: var(--tc-fg-1) !important;
  font-family: var(--tc-font-serif) !important;
  font-weight: 500 !important;
}
.dash-card-body p {
  color: var(--tc-fg-2) !important;
  font-family: var(--tc-font-sans) !important;
}
.dash-card-arrow { color: var(--tc-gold-strong) !important; opacity: 0.6; }

/* Recent-activity list */
.dash-audit-item {
  background: var(--tc-bg) !important;
  border: 1px solid var(--tc-border) !important;
  border-left: 2px solid var(--tc-border-strong) !important;
  border-radius: 0 !important;
}
.dash-audit-item.decision-allowed { border-left-color: var(--tc-success) !important; }
.dash-audit-item.decision-blocked,
.dash-audit-item.decision-terminated { border-left-color: var(--tc-danger) !important; }
.dash-audit-item.decision-filtered { border-left-color: var(--tc-gold-strong) !important; }
.dash-audit-action { color: var(--tc-fg-1) !important; font-family: var(--tc-font-mono) !important; }
.dash-audit-actor, .dash-audit-time { color: var(--tc-fg-3) !important; font-family: var(--tc-font-mono) !important; font-size: 11px !important; }
.dash-audit-decision {
  font-family: var(--tc-font-sans) !important;
  font-size: 10px !important;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  border-radius: 2px !important;
}
.dash-audit-decision.allowed { background: transparent !important; color: var(--tc-success) !important; border: 1px solid var(--tc-success); }
.dash-audit-decision.blocked,
.dash-audit-decision.terminated { background: transparent !important; color: var(--tc-danger) !important; border: 1px solid var(--tc-danger); }
.dash-audit-decision.filtered { background: transparent !important; color: var(--tc-gold-strong) !important; border: 1px solid var(--tc-gold); }

/* Generic catch-all: any element using white text becomes fg-1 */
[style*="color: rgb(255, 255, 255)"],
[style*="color: #fff"],
[style*="color:#fff"],
[style*="color: white"] {
  color: var(--tc-fg-1) !important;
}

/* Any block with near-white text via rgba opacity */
.ct-section, .ct-frame, .ct-card, .ct-panel, main, section {
  color: var(--tc-fg-1);
}
