/**
 * LogixFlow — Concierge Ledger
 * Warm operations desk (distinct from SOC / cyber dashboards)
 */

:root {
  --lf-cream: #f3f6f4;
  --lf-parchment: #e8eeea;
  --lf-ink: #1c1917;
  --lf-ink-muted: #57534e;
  --lf-line: #d6cfc4;
  --lf-panel: #fffcf7;
  --lf-teal: #0f766e;
  --lf-teal-soft: rgba(15, 118, 110, 0.12);
  --lf-copper: #c2410c;
  --lf-sage: #4d7c0f;
  --lf-shadow: 0 1px 0 rgba(28, 25, 23, 0.05), 0 10px 28px rgba(28, 25, 23, 0.07);
  --lf-font-sans: "IBM Plex Sans", system-ui, sans-serif;
  --lf-font-display: "IBM Plex Serif", Georgia, serif;
  --lf-font-mono: "IBM Plex Mono", ui-monospace, monospace;
}

::selection {
  background: rgba(15, 118, 110, 0.22);
  color: var(--lf-ink);
}

body.lf-theme {
  background-color: var(--lf-cream);
  background-image: linear-gradient(180deg, #fafcfb 0%, var(--lf-cream) 48%, #eef2ef 100%);
  color: var(--lf-ink);
  font-family: var(--lf-font-sans);
  overflow-x: clip;
  max-width: 100vw;
}

.lf-theme .glass-panel {
  background: rgba(255, 252, 247, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid var(--lf-line);
  box-shadow: var(--lf-shadow);
}

.lf-theme .glass-card {
  background: var(--lf-panel);
  border: 1px solid var(--lf-line);
  box-shadow: 0 1px 0 rgba(28, 25, 23, 0.04);
}

.lf-theme .lf-brand-mark {
  background: linear-gradient(145deg, var(--lf-teal) 0%, #134e4a 55%, var(--lf-copper) 100%);
  box-shadow: 0 6px 18px rgba(15, 118, 110, 0.28);
}

.lf-theme .lf-kicker {
  font-family: var(--lf-font-mono);
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--lf-teal);
}

@keyframes lfSoftPulse {
  0%,
  100% {
    box-shadow: 0 0 0 0 rgba(15, 118, 110, 0.25);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(15, 118, 110, 0);
  }
}

.lf-theme .glow-active {
  animation: lfSoftPulse 2.4s ease-in-out infinite;
}

@keyframes lfNodePulse {
  0%,
  100% {
    border-color: rgba(15, 118, 110, 0.35);
  }
  50% {
    border-color: rgba(15, 118, 110, 0.85);
    box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.15);
  }
}

.lf-theme .dag-node-active {
  animation: lfNodePulse 1.8s ease-in-out infinite;
}

.lf-theme ::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.lf-theme ::-webkit-scrollbar-track {
  background: transparent;
}

.lf-theme ::-webkit-scrollbar-thumb {
  background: rgba(87, 83, 78, 0.35);
  border-radius: 999px;
}

.lf-theme ::-webkit-scrollbar-thumb:hover {
  background: rgba(87, 83, 78, 0.55);
}

.lf-theme input,
.lf-theme textarea,
.lf-theme select {
  caret-color: var(--lf-teal);
}

.lf-theme input:focus,
.lf-theme textarea:focus,
.lf-theme select:focus {
  outline: 2px solid rgba(15, 118, 110, 0.35);
  outline-offset: 1px;
}

/* Light-theme text safety: prevent dark-mode white text on cards */
.lf-theme .glass-card,
.lf-theme .glass-panel,
.lf-theme .glass-card h1,
.lf-theme .glass-card h2,
.lf-theme .glass-card h3,
.lf-theme .glass-panel h1,
.lf-theme .glass-panel h2,
.lf-theme .glass-panel h3 {
  color: var(--lf-ink);
}
.lf-theme .glass-card .text-white:not(.lf-brand-mark *),
.lf-theme .glass-panel .text-white:not(.lf-btn--primary):not(.lf-btn--primary *) {
  color: var(--lf-ink) !important;
}
.lf-theme .lf-btn--primary,
.lf-theme .lf-btn--primary * ,
.lf-theme .lf-brand-mark,
.lf-theme .lf-brand-mark * {
  color: #fff !important;
}
