/* SHELBY AI — Shelby & Sons Command Center
   Deep midnight, glowing accents, aggressive status coding, zero wasted space */

:root {
  --gt-bg:         #060d1b;
  --gt-bg2:        #0a1628;
  --gt-surface:    #111d30;
  --gt-surface2:   #182640;
  --gt-border:     #1e3048;
  --gt-border-hi:  #2a4060;
  --gt-text:       #e2e8f0;
  --gt-text-dim:   #5e7590;
  --gt-accent:     #3b82f6;
  --gt-accent-hi:  #60a5fa;
  --gt-accent-glow: rgba(59,130,246,0.12);
  --gt-accent-glow2: rgba(59,130,246,0.25);
  --gt-emerald:    #34d399;
  --gt-emerald-dim:#10b981;
  --gt-amber:      #fbbf24;
  --gt-amber-dim:  #f59e0b;
  --gt-rose:       #fb7185;
  --gt-rose-dim:   #f43f5e;
  --gt-purple:     #a78bfa;
  --gt-cyan:       #22d3ee;
  --gt-sky:        #38bdf8;
  /* Service flag colors */
  --gt-rush-temp:  #f97316;
  --gt-rush-reg:   #2563eb;
  --gt-rush-title: #ec4899;
  --gt-perm-reg:   #dc2626;
}

[data-theme="dark"] {
  --b1: 6 13 27;
  --b2: 17 29 48;
  --b3: 30 48 72;
  --bc: 226 232 240;
}

/* ── Light Mode ───────────────────────────────────────────── */

[data-theme="light"] {
  --gt-bg:         #f8fafc;
  --gt-bg2:        #f1f5f9;
  --gt-surface:    #ffffff;
  --gt-surface2:   #f1f5f9;
  --gt-border:     #e2e8f0;
  --gt-border-hi:  #cbd5e1;
  --gt-text:       #1e293b;
  --gt-text-dim:   #64748b;
  --gt-accent:     #2563eb;
  --gt-accent-hi:  #1d4ed8;
  --gt-accent-glow: rgba(37,99,235,0.08);
  --gt-accent-glow2: rgba(37,99,235,0.15);
  --gt-emerald:    #059669;
  --gt-emerald-dim:#047857;
  --gt-amber:      #d97706;
  --gt-amber-dim:  #b45309;
  --gt-rose:       #e11d48;
  --gt-rose-dim:   #be123c;
  --gt-purple:     #7c3aed;
  --gt-cyan:       #0891b2;
  --gt-sky:        #0284c7;
  --gt-rush-temp:  #ea580c;
  --gt-rush-reg:   #1d4ed8;
  --gt-rush-title: #db2777;
  --gt-perm-reg:   #dc2626;
  --b1: 248 250 252;
  --b2: 241 245 249;
  --b3: 226 232 240;
  --bc: 30 41 59;
}
[data-theme="light"] body {
  background-image:
    radial-gradient(ellipse at 15% 0%, rgba(37,99,235,0.04) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 100%, rgba(8,145,178,0.03) 0%, transparent 50%);
}
[data-theme="light"] .gt-navbar {
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--gt-border);
}
[data-theme="light"] .gt-card {
  background: var(--gt-surface);
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
[data-theme="light"] .gt-input {
  background: var(--gt-surface);
  border-color: var(--gt-border);
  color: var(--gt-text);
}
[data-theme="light"] .gt-stripe {
  background: linear-gradient(90deg, var(--gt-accent), var(--gt-cyan));
  opacity: 0.6;
}
[data-theme="light"] .gt-tab.active {
  text-shadow: none;
}
[data-theme="light"] .gt-dropdown-menu {
  box-shadow: 0 8px 32px rgba(0,0,0,0.12);
}
[data-theme="light"] .gt-btn {
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
/* ── Theme Toggle ────────────────────────────────────────── */
.gt-theme-toggle {
  background: none;
  border: 1px solid var(--gt-border);
  border-radius: 0.375rem;
  padding: 0.25rem 0.5rem;
  cursor: pointer;
  color: var(--gt-text-dim);
  transition: color 0.2s, border-color 0.2s;
  display: inline-flex;
  align-items: center;
}
.gt-theme-toggle:hover {
  color: var(--gt-text);
  border-color: var(--gt-border-hi);
}

/* ── Background ────────────────────────────────────────────── */

body {
  background: var(--gt-bg) !important;
  color: var(--gt-text);
  background-image:
    radial-gradient(ellipse at 15% 0%, rgba(59,130,246,0.06) 0%, transparent 50%),
    radial-gradient(ellipse at 85% 100%, rgba(34,211,238,0.04) 0%, transparent 50%);
}

main {
  background-image: radial-gradient(circle at 1px 1px, rgba(59,130,246,0.025) 1px, transparent 0);
  background-size: 24px 24px;
}

/* ── Animated Racing Stripe ────────────────────────────────── */

.gt-stripe {
  height: 3px;
  background: linear-gradient(90deg,
    transparent 0%, var(--gt-accent) 10%, var(--gt-cyan) 30%,
    var(--gt-accent-hi) 50%, var(--gt-cyan) 70%, var(--gt-accent) 90%, transparent 100%
  );
  background-size: 200% 100%;
  animation: stripe-slide 4s linear infinite;
}
@keyframes stripe-slide {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ── Navbar ────────────────────────────────────────────────── */

.gt-navbar {
  background: rgba(6,13,27,0.92) !important;
  backdrop-filter: blur(16px) saturate(1.5);
  border-bottom: 1px solid var(--gt-border);
  position: sticky;
  top: 0;
  z-index: 100;
}
.gt-navbar a {
  color: var(--gt-text-dim);
  transition: color 0.2s, text-shadow 0.2s;
  text-decoration: none;
}
.gt-navbar a:hover { color: var(--gt-text); }
.gt-navbar a.active {
  color: var(--gt-accent-hi);
  text-shadow: 0 0 16px rgba(59,130,246,0.5);
}

.gt-brand { font-weight: 900; letter-spacing: -0.03em; }
.gt-brand-gt {
  color: var(--gt-accent-hi);
  text-shadow: 0 0 20px rgba(59,130,246,0.4);
}
.gt-brand-sep { color: var(--gt-border-hi); margin: 0 0.2rem; }

/* ── Cards ─────────────────────────────────────────────────── */

.gt-card {
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 0.625rem;
  transition: border-color 0.2s, box-shadow 0.3s, transform 0.2s;
}
.gt-card:hover {
  border-color: var(--gt-border-hi);
  box-shadow: 0 4px 24px rgba(0,0,0,0.4);
  transform: translateY(-2px);
}

/* Status-coded vehicle cards — left border + glow on hover */
.gt-card-status { border-left: 3px solid var(--gt-border); }
.gt-card-status[data-status="PRE_INTAKE"]           { border-left-color: #818cf8; }
.gt-card-status[data-status="INTAKE"]              { border-left-color: var(--gt-text-dim); }
.gt-card-status[data-status="BUILD_IN_PROGRESS"]   { border-left-color: var(--gt-accent); }
.gt-card-status[data-status="BUILD_APPROVED"]       { border-left-color: var(--gt-purple); }
.gt-card-status[data-status="AWAITING_DOCUSIGN"]    { border-left-color: var(--gt-amber); }
.gt-card-status[data-status="AWAITING_DOCUMENTS"]   { border-left-color: var(--gt-amber-dim); }
.gt-card-status[data-status="READY_FOR_LANE1"]      { border-left-color: var(--gt-cyan); }
.gt-card-status[data-status="LANE1_PASSED"]         { border-left-color: var(--gt-emerald); }
.gt-card-status[data-status="DMV_SUBMITTED"]        { border-left-color: var(--gt-sky); }
.gt-card-status[data-status="COMPLETE"]             { border-left-color: var(--gt-emerald); }
.gt-card-status[data-status="PERM_REG"]             { border-left-color: var(--gt-cyan); }
.gt-card-status[data-status="ESCALATED"]            { border-left-color: var(--gt-rose); }

/* Glow matching status on hover */
.gt-card-status[data-status="PRE_INTAKE"]:hover         { box-shadow: 0 0 20px rgba(99,102,241,0.15), 0 4px 20px rgba(0,0,0,0.3); }
.gt-card-status[data-status="INTAKE"]:hover            { box-shadow: 0 0 16px rgba(123,143,163,0.1), 0 4px 20px rgba(0,0,0,0.3); }
.gt-card-status[data-status="BUILD_IN_PROGRESS"]:hover { box-shadow: 0 0 20px rgba(59,130,246,0.15), 0 4px 20px rgba(0,0,0,0.3); }
.gt-card-status[data-status="BUILD_APPROVED"]:hover     { box-shadow: 0 0 20px rgba(167,139,250,0.15), 0 4px 20px rgba(0,0,0,0.3); }
.gt-card-status[data-status="AWAITING_DOCUSIGN"]:hover  { box-shadow: 0 0 20px rgba(251,191,36,0.15), 0 4px 20px rgba(0,0,0,0.3); }
.gt-card-status[data-status="AWAITING_DOCUMENTS"]:hover { box-shadow: 0 0 20px rgba(245,158,11,0.15), 0 4px 20px rgba(0,0,0,0.3); }
.gt-card-status[data-status="READY_FOR_LANE1"]:hover    { box-shadow: 0 0 20px rgba(34,211,238,0.15), 0 4px 20px rgba(0,0,0,0.3); }
.gt-card-status[data-status="LANE1_PASSED"]:hover       { box-shadow: 0 0 20px rgba(52,211,153,0.15), 0 4px 20px rgba(0,0,0,0.3); }
.gt-card-status[data-status="DMV_SUBMITTED"]:hover      { box-shadow: 0 0 20px rgba(56,189,248,0.15), 0 4px 20px rgba(0,0,0,0.3); }
.gt-card-status[data-status="COMPLETE"]:hover           { box-shadow: 0 0 20px rgba(52,211,153,0.15), 0 4px 20px rgba(0,0,0,0.3); }
.gt-card-status[data-status="PERM_REG"]:hover           { box-shadow: 0 0 20px rgba(34,211,238,0.15), 0 4px 20px rgba(0,0,0,0.3); }
.gt-card-status[data-status="ESCALATED"]:hover          { box-shadow: 0 0 20px rgba(251,113,133,0.2), 0 4px 20px rgba(0,0,0,0.3); }

/* ── Stats Bar ─────────────────────────────────────────────── */

.gt-stat {
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 0.75rem;
  padding: 0.875rem 1rem;
  text-align: center;
  transition: border-color 0.2s, box-shadow 0.3s, transform 0.2s;
  cursor: default;
  position: relative;
  overflow: hidden;
}
/* Subtle top accent bar per stat */
.gt-stat::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--gt-border);
}
.gt-stat:hover, .gt-stat.active {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}
.gt-stat.active {
  border-color: var(--gt-accent);
  box-shadow: 0 0 20px var(--gt-accent-glow2), 0 4px 20px rgba(0,0,0,0.3);
}
.gt-stat.cursor-pointer { cursor: pointer; }
.gt-stat-value {
  font-size: 2.25rem;
  font-weight: 900;
  line-height: 1;
  margin-bottom: 0.25rem;
}
.gt-stat-label {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gt-text-dim);
}
.gt-stat-icon {
  font-size: 0.85rem;
  margin-bottom: 0.25rem;
  opacity: 0.6;
}

/* Per-stat color theming */
.gt-stat-total::before         { background: var(--gt-accent); }
.gt-stat-total .gt-stat-value  { color: var(--gt-text); }
.gt-stat-preintake::before         { background: #818cf8; }
.gt-stat-preintake .gt-stat-value  { color: #818cf8; }
.gt-stat-preintake:hover           { border-color: rgba(99,102,241,0.3); box-shadow: 0 0 24px rgba(99,102,241,0.08), 0 4px 20px rgba(0,0,0,0.3); }
.gt-stat-action::before        { background: var(--gt-amber); }
.gt-stat-action .gt-stat-value { color: var(--gt-amber); }
.gt-stat-action:hover          { border-color: rgba(251,191,36,0.3); box-shadow: 0 0 24px rgba(251,191,36,0.08), 0 4px 20px rgba(0,0,0,0.3); }
.gt-stat-docu::before          { background: var(--gt-purple); }
.gt-stat-docu .gt-stat-value   { color: var(--gt-purple); }
.gt-stat-docu:hover            { border-color: rgba(167,139,250,0.3); box-shadow: 0 0 24px rgba(167,139,250,0.08), 0 4px 20px rgba(0,0,0,0.3); }
.gt-stat-ready::before         { background: var(--gt-cyan); }
.gt-stat-ready .gt-stat-value  { color: var(--gt-cyan); }
.gt-stat-ready:hover           { border-color: rgba(34,211,238,0.3); box-shadow: 0 0 24px rgba(34,211,238,0.08), 0 4px 20px rgba(0,0,0,0.3); }
.gt-stat-done::before          { background: var(--gt-emerald); }
.gt-stat-done .gt-stat-value   { color: var(--gt-emerald); }
.gt-stat-done:hover            { border-color: rgba(52,211,153,0.3); box-shadow: 0 0 24px rgba(52,211,153,0.08), 0 4px 20px rgba(0,0,0,0.3); }
.gt-stat-alert::before         { background: var(--gt-rose); }
.gt-stat-alert .gt-stat-value  { color: var(--gt-rose); }
.gt-stat-alert:hover           { border-color: rgba(251,113,133,0.3); box-shadow: 0 0 24px rgba(251,113,133,0.08), 0 4px 20px rgba(0,0,0,0.3); }

/* ── Lane Headers ──────────────────────────────────────────── */

.gt-lane-header {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gt-text-dim);
  padding-bottom: 0.5rem;
  margin-bottom: 0.625rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.gt-lane-preintake    { border-bottom: 2px solid #818cf8; }
.gt-lane-intake       { border-bottom: 2px solid var(--gt-text-dim); }
.gt-lane-build        { border-bottom: 2px solid var(--gt-accent); }
.gt-lane-approved     { border-bottom: 2px solid var(--gt-purple); }
.gt-lane-docusign     { border-bottom: 2px solid var(--gt-amber); }
.gt-lane-documents    { border-bottom: 2px solid var(--gt-amber-dim); }
.gt-lane-ready        { border-bottom: 2px solid var(--gt-cyan); }
.gt-lane-passed       { border-bottom: 2px solid var(--gt-emerald); }
.gt-lane-submitted    { border-bottom: 2px solid var(--gt-sky); }
.gt-lane-awaiting-mt  { border-bottom: 2px solid var(--gt-purple); }
.gt-lane-complete     { border-bottom: 2px solid var(--gt-emerald); }
.gt-lane-escalated    { border-bottom: 2px solid var(--gt-rose); }

/* Lane count chip — colored to match lane */
.gt-lane-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.375rem;
  height: 1.375rem;
  border-radius: 0.375rem;
  font-size: 0.65rem;
  font-weight: 800;
}

/* ── Status Pills ──────────────────────────────────────────── */

.gt-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.2rem 0.625rem;
  border-radius: 9999px;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.gt-pill-preintake    { background: rgba(99,102,241,0.15); color: #818cf8; }
.gt-pill-intake       { background: rgba(123,143,163,0.12); color: var(--gt-text-dim); }
.gt-pill-build        { background: rgba(59,130,246,0.15); color: var(--gt-accent-hi); }
.gt-pill-approved     { background: rgba(167,139,250,0.15); color: var(--gt-purple); }
.gt-pill-docusign     { background: rgba(251,191,36,0.15); color: var(--gt-amber); box-shadow: 0 0 10px rgba(251,191,36,0.1); }
.gt-pill-documents    { background: rgba(245,158,11,0.12); color: var(--gt-amber-dim); }
.gt-pill-ready        { background: rgba(34,211,238,0.15); color: var(--gt-cyan); box-shadow: 0 0 10px rgba(34,211,238,0.1); }
.gt-pill-passed       { background: rgba(52,211,153,0.15); color: var(--gt-emerald); }
.gt-pill-submitted    { background: rgba(56,189,248,0.15); color: var(--gt-sky); }
.gt-pill-awaiting-mt  { background: rgba(167,139,250,0.15); color: var(--gt-purple); }
.gt-pill-complete     { background: rgba(52,211,153,0.2); color: var(--gt-emerald); box-shadow: 0 0 8px rgba(52,211,153,0.15); }
.gt-pill-perm-reg     { background: rgba(34,211,238,0.15); color: var(--gt-cyan); }
.gt-pill-escalated    { background: rgba(251,113,133,0.15); color: var(--gt-rose); box-shadow: 0 0 10px rgba(251,113,133,0.15); animation: gt-pulse 2s ease-in-out infinite; }

/* ── Tabs ──────────────────────────────────────────────────── */

.gt-tab {
  padding: 0.625rem 1.125rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--gt-text);
  opacity: 0.65;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all 0.2s;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
}
.gt-tab:hover { opacity: 1; background: rgba(59,130,246,0.04); }
.gt-tab.active {
  color: var(--gt-accent-hi);
  opacity: 1;
  border-bottom-color: var(--gt-accent);
  text-shadow: 0 0 10px rgba(59,130,246,0.35);
}

/* ── Badges ────────────────────────────────────────────────── */

.gt-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.6rem;
  border-radius: 0.3rem;
  font-size: 0.7rem;
  font-weight: 700;
}
.gt-badge-pass   { background: rgba(52,211,153,0.12); color: var(--gt-emerald); border: 1px solid rgba(52,211,153,0.2); }
.gt-badge-fail   { background: rgba(251,113,133,0.12); color: var(--gt-rose); border: 1px solid rgba(251,113,133,0.2); }
.gt-badge-review { background: rgba(251,191,36,0.12); color: var(--gt-amber); border: 1px solid rgba(251,191,36,0.2); }

/* ── Section Headers ───────────────────────────────────────── */

.gt-section-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}
.gt-section-header::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--gt-accent), transparent 60%);
}

/* ── Document Progress Bar ─────────────────────────────────── */

.gt-doc-progress {
  height: 6px;
  background: var(--gt-bg);
  border-radius: 3px;
  overflow: hidden;
}
.gt-doc-progress-bar {
  height: 100%;
  border-radius: 3px;
  transition: width 0.6s ease;
  background: linear-gradient(90deg, var(--gt-accent), var(--gt-emerald));
  box-shadow: 0 0 8px rgba(52,211,153,0.3);
}

/* Mini progress bar for pipeline cards */
.gt-mini-progress {
  height: 3px;
  background: rgba(255,255,255,0.04);
  border-radius: 2px;
  overflow: hidden;
  margin-top: 0.5rem;
}
.gt-mini-progress-bar {
  height: 100%;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--gt-accent), var(--gt-emerald));
  transition: width 0.4s ease;
}

/* ── Attention Cards ──────────────────────────────────────── */

.gt-attention {
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 0.75rem;
  padding: 1rem 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.875rem;
  transition: border-color 0.2s, box-shadow 0.3s, transform 0.2s;
}
.gt-attention:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.3);
}
.gt-attention-icon {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.625rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  flex-shrink: 0;
}

.gt-attention-amber  { border-color: rgba(251,191,36,0.15); }
.gt-attention-amber:hover  { border-color: rgba(251,191,36,0.3); box-shadow: 0 0 20px rgba(251,191,36,0.06), 0 4px 16px rgba(0,0,0,0.3); }
.gt-attention-purple { border-color: rgba(167,139,250,0.15); }
.gt-attention-purple:hover { border-color: rgba(167,139,250,0.3); box-shadow: 0 0 20px rgba(167,139,250,0.06), 0 4px 16px rgba(0,0,0,0.3); }
.gt-attention-rose   { border-color: rgba(251,113,133,0.15); }
.gt-attention-rose:hover   { border-color: rgba(251,113,133,0.3); box-shadow: 0 0 20px rgba(251,113,133,0.06), 0 4px 16px rgba(0,0,0,0.3); }

/* ── Empty States ──────────────────────────────────────────── */

.gt-empty {
  text-align: center;
  padding: 1.25rem 0.5rem;
  color: var(--gt-text-dim);
}
.gt-empty-icon { font-size: 1rem; opacity: 0.2; margin-bottom: 0.25rem; }
.gt-empty-text { font-size: 0.65rem; opacity: 0.35; }

/* ── Toast System ──────────────────────────────────────────── */

.gt-toast {
  position: fixed;
  top: 4.5rem;
  right: 1rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  pointer-events: none;
}
.gt-toast-item {
  pointer-events: auto;
  padding: 0.75rem 1.25rem;
  border-radius: 0.625rem;
  font-size: 0.85rem;
  font-weight: 600;
  animation: gt-toast-in 0.4s cubic-bezier(0.16,1,0.3,1);
  max-width: 22rem;
  backdrop-filter: blur(12px);
}
.gt-toast-item.success { background: rgba(16,185,129,0.12); color: var(--gt-emerald); border: 1px solid rgba(52,211,153,0.25); }
.gt-toast-item.error   { background: rgba(244,63,94,0.12); color: var(--gt-rose); border: 1px solid rgba(251,113,133,0.25); }
.gt-toast-item.warning { background: rgba(245,158,11,0.12); color: var(--gt-amber); border: 1px solid rgba(251,191,36,0.25); }
.gt-toast-item.info    { background: rgba(59,130,246,0.12); color: var(--gt-accent-hi); border: 1px solid rgba(59,130,246,0.25); }

@keyframes gt-toast-in {
  from { transform: translateX(120%); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}

/* ── Mono / Code ───────────────────────────────────────────── */

.gt-mono { font-family: 'JetBrains Mono', monospace; }
.gt-vin {
  font-family: 'JetBrains Mono', monospace;
  color: var(--gt-accent-hi);
  letter-spacing: 0.04em;
}

/* VIN badge in pipeline cards */
.gt-vin-badge {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.65rem;
  font-weight: 700;
  color: var(--gt-accent-hi);
  background: rgba(59,130,246,0.1);
  padding: 0.125rem 0.375rem;
  border-radius: 0.25rem;
  letter-spacing: 0.05em;
}

/* ── Table ─────────────────────────────────────────────────── */

.gt-table { width: 100%; border-collapse: collapse; }
.gt-table th {
  text-align: left;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gt-text-dim);
  padding: 0.625rem 0.75rem;
  border-bottom: 1px solid var(--gt-border);
}
.gt-table td {
  padding: 0.625rem 0.75rem;
  border-bottom: 1px solid rgba(30,48,72,0.5);
  font-size: 0.85rem;
}
.gt-table tr { transition: background 0.15s; }
.gt-table tr:hover td { background: rgba(59,130,246,0.03); }

/* ── Select / Link / Badge ───────────────────────────────── */
.gt-select {
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 0.375rem;
  color: var(--gt-text);
  padding: 0.35rem 0.6rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.8rem;
  cursor: pointer;
  transition: border-color 0.15s;
}
.gt-select:focus { border-color: var(--gt-cyan); outline: none; }
.gt-link {
  color: var(--gt-cyan);
  text-decoration: none;
  transition: color 0.15s;
}
.gt-link:hover { color: var(--gt-accent-hi); text-decoration: underline; }
.gt-action-badge {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  font-size: 0.7rem;
  font-weight: 600;
  border-radius: 0.25rem;
  background: rgba(59,130,246,0.1);
  color: var(--gt-accent-hi);
  white-space: nowrap;
}

/* ── Pulse / Glow Animations ──────────────────────────────── */

.gt-pulse { animation: gt-pulse 2s ease-in-out infinite; }
@keyframes gt-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

.gt-glow-blue  { box-shadow: 0 0 16px rgba(59,130,246,0.15); }
.gt-glow-amber { box-shadow: 0 0 16px rgba(251,191,36,0.15); }
.gt-glow-rose  { box-shadow: 0 0 16px rgba(251,113,133,0.15); }
.gt-glow-green { box-shadow: 0 0 16px rgba(52,211,153,0.15); }

.gt-fade-in { animation: gt-fade-in 0.3s ease-out; }
@keyframes gt-fade-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Dropzone ──────────────────────────────────────────────── */

.gt-dropzone {
  border: 2px dashed var(--gt-border);
  border-radius: 0.5rem;
  padding: 1rem;
  text-align: center;
  color: var(--gt-text-dim);
  transition: border-color 0.2s, background 0.2s;
}
.gt-dropzone.drag-over {
  border-color: var(--gt-accent);
  background: var(--gt-accent-glow);
}

/* ── Wizard Steps ──────────────────────────────────────────── */

.gt-step { display: flex; align-items: center; gap: 0.5rem; }
.gt-step-dot {
  width: 2.25rem; height: 2.25rem;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.8rem; font-weight: 800;
  transition: all 0.3s;
}
.gt-step-dot.done    { background: var(--gt-emerald-dim); color: white; box-shadow: 0 0 14px rgba(16,185,129,0.3); }
.gt-step-dot.current { background: var(--gt-accent); color: white; box-shadow: 0 0 18px rgba(59,130,246,0.4); }
.gt-step-dot.pending { background: var(--gt-surface2); color: var(--gt-text-dim); }
.gt-step-line { flex: 1; height: 2px; background: var(--gt-border); transition: background 0.3s; }
.gt-step-line.done { background: var(--gt-emerald-dim); }

/* ── Form Inputs ───────────────────────────────────────────── */

.gt-input {
  background: var(--gt-bg2) !important;
  border: 1px solid var(--gt-border) !important;
  color: var(--gt-text) !important;
  border-radius: 0.5rem;
  padding: 0.625rem 0.875rem;
  font-size: 0.9rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.gt-input:focus {
  border-color: var(--gt-accent) !important;
  outline: none;
  box-shadow: 0 0 0 3px var(--gt-accent-glow), 0 0 20px var(--gt-accent-glow);
}
.gt-input::placeholder { color: var(--gt-text-dim); opacity: 0.5; }
select.gt-input { appearance: auto; }

/* ── Buttons ───────────────────────────────────────────────── */

.gt-btn {
  padding: 0.5rem 1.125rem;
  border-radius: 0.5rem;
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
  transition: all 0.2s;
  border: none;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  text-decoration: none;
}
.gt-btn-primary {
  background: var(--gt-accent);
  color: white;
  box-shadow: 0 2px 12px rgba(59,130,246,0.3);
}
.gt-btn-primary:hover {
  background: #2563eb;
  box-shadow: 0 4px 20px rgba(59,130,246,0.4);
  transform: translateY(-1px);
}
.gt-btn-ghost {
  background: transparent;
  color: var(--gt-text-dim);
  border: 1px solid var(--gt-border);
}
.gt-btn-ghost:hover {
  color: var(--gt-text);
  border-color: var(--gt-text-dim);
  background: rgba(59,130,246,0.04);
}
.gt-btn-danger { background: var(--gt-rose-dim); color: white; box-shadow: 0 2px 12px rgba(244,63,94,0.2); }
.gt-btn-danger:hover { background: #e11d48; transform: translateY(-1px); }
.gt-btn-success { background: var(--gt-emerald-dim); color: white; box-shadow: 0 2px 12px rgba(16,185,129,0.2); }
.gt-btn-success:hover { background: #059669; transform: translateY(-1px); }

/* ── Assignment Filter Pills ──────────────────────────────── */
.gt-pill-filter {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.75rem;
  font-size: 0.8rem;
  font-weight: 600;
  border-radius: 9999px;
  border: 1px solid var(--gt-border);
  background: transparent;
  color: var(--gt-text-dim);
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.gt-pill-filter:hover {
  border-color: var(--gt-cyan);
  color: var(--gt-text);
  background: rgba(34,211,238,0.06);
}
.gt-pill-filter.gt-pill-active {
  border-color: var(--gt-cyan);
  color: var(--gt-cyan);
  background: rgba(34,211,238,0.12);
  box-shadow: 0 0 8px rgba(34,211,238,0.15);
}
.gt-pill-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 0.35rem;
  font-size: 0.7rem;
  font-weight: 700;
  border-radius: 9999px;
  background: rgba(34,211,238,0.15);
  color: var(--gt-cyan);
}

/* ── Icon Button (inline actions) ─────────────────────────── */
.gt-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.2rem;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: 0.25rem;
  transition: background 0.15s;
  flex-shrink: 0;
}
.gt-btn-icon:hover { background: rgba(59,130,246,0.1); }

/* ── Pipeline Search Input ─────────────────────────────────── */
.gt-search-input {
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 9999px;
  color: var(--gt-text);
  padding: 0.3rem 0.75rem;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.8rem;
  width: 170px;
  transition: all 0.15s ease;
}
.gt-search-input:focus {
  border-color: var(--gt-cyan);
  outline: none;
  width: 240px;
  box-shadow: 0 0 8px rgba(34,211,238,0.15);
}
.gt-search-input::placeholder {
  color: var(--gt-text-dim);
  opacity: 0.6;
}

/* ── Vehicle Detail Header ─────────────────────────────────── */

.gt-vehicle-header {
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 0.75rem;
  overflow: hidden;
}
.gt-vehicle-header-top {
  height: 4px;
  background: linear-gradient(90deg, var(--gt-accent), var(--gt-cyan), var(--gt-accent));
  background-size: 200% 100%;
  animation: stripe-slide 4s linear infinite;
}
.gt-vehicle-header-body { padding: 1.5rem; }

.gt-spec-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 0.5rem;
}
.gt-spec-item {
  padding: 0.5rem 0.625rem;
  border-radius: 0.375rem;
  background: var(--gt-bg2);
  border: 1px solid rgba(30,48,72,0.5);
}
.gt-spec-label {
  font-size: 0.55rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gt-text-dim);
}
.gt-spec-value {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--gt-text);
  margin-top: 0.125rem;
}

/* ── Document Row ──────────────────────────────────────────── */

.gt-doc-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.625rem 0.875rem;
  border-radius: 0.5rem;
  background: var(--gt-bg2);
  border: 1px solid rgba(30,48,72,0.5);
  transition: border-color 0.2s, background 0.2s;
}
.gt-doc-row:hover { border-color: var(--gt-border-hi); background: var(--gt-surface); }

/* Collapsed not-required rows */
.gt-doc-row-skip {
  padding: 0.375rem 0.875rem;
  opacity: 0.4;
  border: none;
  background: transparent;
}
.gt-doc-row-skip:hover { opacity: 0.6; background: transparent; }

.gt-doc-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.gt-doc-dot-ok    { background: var(--gt-emerald); box-shadow: 0 0 8px rgba(52,211,153,0.5); }
.gt-doc-dot-warn  { background: var(--gt-amber); box-shadow: 0 0 6px rgba(251,191,36,0.3); }
.gt-doc-dot-wait  { background: var(--gt-amber); animation: gt-pulse 2s ease-in-out infinite; box-shadow: 0 0 6px rgba(251,191,36,0.3); }
.gt-doc-dot-miss  { background: var(--gt-rose); box-shadow: 0 0 8px rgba(251,113,133,0.4); }
.gt-doc-dot-probable { background: var(--gt-purple); box-shadow: 0 0 6px rgba(167,139,250,0.4); }
.gt-doc-dot-skip  { background: var(--gt-border); }

/* ── Login ─────────────────────────────────────────────────── */

.gt-login-bg {
  background:
    radial-gradient(ellipse at 30% 20%, rgba(59,130,246,0.1) 0%, transparent 60%),
    radial-gradient(ellipse at 70% 80%, rgba(34,211,238,0.06) 0%, transparent 60%),
    radial-gradient(ellipse at 50% 50%, rgba(167,139,250,0.04) 0%, transparent 70%),
    var(--gt-bg);
}

.gt-login-card {
  background: rgba(17,29,48,0.8);
  border: 1px solid var(--gt-border);
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 12px 48px rgba(0,0,0,0.5), 0 0 80px rgba(59,130,246,0.06);
  backdrop-filter: blur(20px);
}
.gt-login-stripe {
  height: 3px;
  background: linear-gradient(90deg, var(--gt-accent), var(--gt-cyan), var(--gt-purple), var(--gt-accent));
  background-size: 300% 100%;
  animation: stripe-slide 4s linear infinite;
}
.gt-login-title {
  font-size: 3rem;
  font-weight: 900;
  letter-spacing: -0.04em;
  background: linear-gradient(135deg, var(--gt-accent-hi), var(--gt-cyan));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-shadow: none;
  filter: drop-shadow(0 0 20px rgba(59,130,246,0.3));
}

/* ── Scrollbar ─────────────────────────────────────────────── */

::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--gt-border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--gt-border-hi); }

/* ── Utility ───────────────────────────────────────────────── */

/* ── Calendar ──────────────────────────────────────────────── */

.gt-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 1px;
  background: var(--gt-border);
  border: 1px solid var(--gt-border);
  border-radius: 0.5rem;
  overflow: hidden;
}

.gt-cal-dow {
  background: var(--gt-surface2);
  padding: 0.5rem 0.25rem;
  text-align: center;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gt-text-dim);
}

.gt-cal-cell {
  background: var(--gt-surface);
  min-height: 4.5rem;
  padding: 0.375rem;
  cursor: pointer;
  transition: background 0.15s, box-shadow 0.15s;
  position: relative;
}
.gt-cal-cell:hover {
  background: var(--gt-surface2);
  box-shadow: inset 0 0 0 1px var(--gt-border-hi);
}
.gt-cal-cell.empty {
  background: var(--gt-bg2);
  cursor: default;
}
.gt-cal-cell.empty:hover { box-shadow: none; background: var(--gt-bg2); }

.gt-cal-day-num {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--gt-text-dim);
  margin-bottom: 0.25rem;
}
.gt-cal-cell.gt-cal-today .gt-cal-day-num { color: var(--gt-accent-hi); }
.gt-cal-today {
  box-shadow: inset 0 0 0 2px var(--gt-accent);
}
.gt-cal-today:hover {
  box-shadow: inset 0 0 0 2px var(--gt-accent-hi);
}

.gt-cal-dots {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
}
.gt-cal-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Event rows */
.gt-cal-event-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.625rem 0.875rem;
  border-radius: 0.5rem;
  background: var(--gt-bg2);
  border: 1px solid rgba(30,48,72,0.5);
  transition: border-color 0.2s, background 0.2s;
}
.gt-cal-event-row:hover { border-color: var(--gt-border-hi); background: var(--gt-surface); }
.gt-cal-event-row.overdue { border-color: rgba(251,113,133,0.3); }
.gt-cal-event-row.overdue:hover { border-color: rgba(251,113,133,0.5); box-shadow: 0 0 12px rgba(251,113,133,0.08); }
.gt-cal-event-row.completed { opacity: 0.45; }

/* Month nav */
.gt-cal-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.gt-cal-nav-title {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--gt-text);
}
.gt-cal-nav-btn {
  background: var(--gt-surface2);
  border: 1px solid var(--gt-border);
  color: var(--gt-text-dim);
  width: 2rem;
  height: 2rem;
  border-radius: 0.375rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 0.9rem;
  transition: all 0.2s;
}
.gt-cal-nav-btn:hover { color: var(--gt-text); border-color: var(--gt-border-hi); background: var(--gt-surface); }

/* ── Utility ───────────────────────────────────────────────── */

/* ── Inventory ─────────────────────────────────────────────── */

.gt-inv-card {
  background: var(--gt-bg2);
  border: 1px solid var(--gt-border);
  border-left: 3px solid var(--gt-border);
  border-radius: 0.5rem;
  padding: 0.75rem;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}
.gt-inv-card:hover { border-color: var(--gt-border-hi); transform: translateY(-1px); box-shadow: 0 4px 16px rgba(0,0,0,0.3); }
.gt-inv-card-complete        { border-left-color: var(--gt-emerald); }
.gt-inv-card-stuck           { border-left-color: var(--gt-rose); }
.gt-inv-card-registered-no-mt { border-left-color: var(--gt-amber); }
.gt-inv-card-managed         { border-left-color: var(--gt-accent); }
.gt-inv-card-unknown         { border-left-color: var(--gt-text-dim); }
.gt-inv-card-empty           { border-left-color: var(--gt-border); opacity: 0.6; }

.gt-inv-status-pill {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  border-radius: 9999px;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.gt-inv-status-pill.complete,
.gt-inv-status-pill.COMPLETE          { background: rgba(52,211,153,0.15); color: var(--gt-emerald); }
.gt-inv-status-pill.stuck,
.gt-inv-status-pill.STUCK             { background: rgba(251,113,133,0.15); color: var(--gt-rose); }
.gt-inv-status-pill.registered-no-mt,
.gt-inv-status-pill.REGISTERED_NO_MT  { background: rgba(251,191,36,0.15); color: var(--gt-amber); }
.gt-inv-status-pill.managed,
.gt-inv-status-pill.MANAGED           { background: rgba(59,130,246,0.15); color: var(--gt-accent-hi); }
.gt-inv-status-pill.unknown,
.gt-inv-status-pill.UNKNOWN           { background: rgba(123,143,163,0.12); color: var(--gt-text-dim); }
.gt-inv-status-pill.perm-reg,
.gt-inv-status-pill.PERM_REG          { background: rgba(34,211,238,0.15); color: var(--gt-cyan); }
.gt-inv-status-pill.empty,
.gt-inv-status-pill.EMPTY             { background: rgba(123,143,163,0.08); color: var(--gt-text-dim); }

.gt-file-flag {
  display: inline-block;
  padding: 0.1rem 0.375rem;
  border-radius: 0.2rem;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  background: rgba(59,130,246,0.1);
  color: var(--gt-accent-hi);
}
.gt-file-flag-ok { background: rgba(52,211,153,0.15); color: var(--gt-emerald); }
.gt-file-flag-td { background: rgba(99,102,241,0.15); color: #818cf8; }
.gt-file-flag-warn { background: rgba(251,191,36,0.15); color: var(--gt-amber); }

.gt-letter-btn {
  padding: 0.25rem 0.5rem;
  border-radius: 0.3rem;
  font-size: 0.65rem;
  font-weight: 700;
  background: var(--gt-surface2);
  color: var(--gt-text-dim);
  border: 1px solid var(--gt-border);
  cursor: pointer;
  transition: all 0.2s;
}
.gt-letter-btn:hover { color: var(--gt-text); border-color: var(--gt-border-hi); }
.gt-letter-btn.active {
  background: var(--gt-accent);
  color: white;
  border-color: var(--gt-accent);
  box-shadow: 0 0 10px rgba(59,130,246,0.3);
}

.gt-letter-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 0.375rem;
  background: var(--gt-surface2);
  border: 1px solid var(--gt-border);
  font-size: 0.65rem;
  font-weight: 800;
  color: var(--gt-accent-hi);
  flex-shrink: 0;
}

/* ── Utility ───────────────────────────────────────────────── */

/* ── Probable Title Badge ──────────────────────────────────── */

.gt-probable-badge {
  font-size: 0.6rem;
  font-weight: 700;
  padding: 0.1rem 0.4rem;
  border-radius: 0.25rem;
  background: rgba(167,139,250,0.15);
  color: var(--gt-purple);
  display: inline-block;
}

.gt-truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-divider { height: 1px; background: var(--gt-border); margin: 1rem 0; }

/* ── Tab Icons (Lucide) ───────────────────────────────────── */

.gt-tab-icon {
  width: 16px;
  height: 16px;
  display: inline-block;
  vertical-align: -2px;
  margin-right: 5px;
  opacity: 0.8;
  stroke-width: 2.5;
}
.gt-tab.active .gt-tab-icon { opacity: 1; }
.gt-tab:hover .gt-tab-icon { opacity: 1; }

/* ── HTMX Loading Bar ────────────────────────────────────── */

.gt-loading-bar {
  position: fixed;
  top: 0;
  left: 0;
  width: 0%;
  height: 2px;
  background: linear-gradient(90deg, var(--gt-accent), var(--gt-cyan), var(--gt-accent-hi));
  z-index: 9999;
  transition: width 0.3s ease;
  opacity: 0;
  pointer-events: none;
}
.gt-loading-bar.htmx-request {
  opacity: 1;
  width: 85%;
  transition: width 8s cubic-bezier(0.1, 0.5, 0.1, 1);
}
.gt-loading-bar.htmx-settling {
  width: 100%;
  transition: width 0.2s ease;
}
.gt-loading-bar.htmx-swapping {
  opacity: 0;
  transition: opacity 0.3s ease 0.1s;
}

/* ── Button Icons ─────────────────────────────────────────── */

.gt-btn [data-lucide], .gt-btn svg.lucide {
  width: 16px;
  height: 16px;
  stroke-width: 2.5;
}

/* ── Stat Card Icons ──────────────────────────────────────── */

.gt-stat [data-lucide], .gt-stat svg.lucide {
  width: 18px;
  height: 18px;
  stroke-width: 2;
  margin: 0 auto 0.25rem;
  display: block;
}

/* ── Alpine.js Transitions ────────────────────────────────── */

[x-cloak] { display: none !important; }

/* Dropdown */
.gt-dropdown {
  position: relative;
  display: inline-block;
}
.gt-dropdown-menu {
  position: absolute;
  right: 0;
  top: 100%;
  margin-top: 0.375rem;
  min-width: 12rem;
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 0.5rem;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
  z-index: 200;
  overflow: hidden;
}
.gt-dropdown-item {
  padding: 0.5rem 0.875rem;
  font-size: 0.8rem;
  color: var(--gt-text-dim);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.gt-dropdown-item:hover {
  background: rgba(59,130,246,0.06);
  color: var(--gt-text);
}
.gt-dropdown-divider {
  height: 1px;
  background: var(--gt-border);
  margin: 0.25rem 0;
}

/* Tooltip */
.gt-tooltip {
  position: relative;
}
.gt-tooltip-text {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-0.375rem);
  background: var(--gt-surface2);
  border: 1px solid var(--gt-border);
  color: var(--gt-text);
  padding: 0.3rem 0.625rem;
  border-radius: 0.375rem;
  font-size: 0.7rem;
  font-weight: 600;
  white-space: nowrap;
  pointer-events: none;
  z-index: 300;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

/* Modal overlay */
.gt-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(6,13,27,0.8);
  backdrop-filter: blur(4px);
  z-index: 500;
  display: flex;
  align-items: center;
  justify-content: center;
}
.gt-modal {
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 0.75rem;
  box-shadow: 0 16px 64px rgba(0,0,0,0.5);
  max-width: 32rem;
  width: 90%;
  overflow: hidden;
}
.gt-modal-header {
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--gt-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.gt-modal-body { padding: 1.25rem; }
.gt-modal-footer {
  padding: 0.75rem 1.25rem;
  border-top: 1px solid var(--gt-border);
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}

/* ── Skeleton Loading ─────────────────────────────────────── */

.gt-skeleton {
  background: linear-gradient(90deg,
    var(--gt-surface2) 25%, var(--gt-surface) 50%, var(--gt-surface2) 75%
  );
  background-size: 200% 100%;
  animation: gt-shimmer 1.5s ease-in-out infinite;
  border-radius: 0.375rem;
}
@keyframes gt-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ── HTMX Loading Indicator on elements ───────────────────── */

.htmx-indicator {
  display: none;
}
.htmx-request .htmx-indicator {
  display: inline-flex;
}
.htmx-request.htmx-indicator {
  display: inline-flex;
}

/* Spinner */
.gt-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid var(--gt-border);
  border-top-color: var(--gt-accent);
  border-radius: 50%;
  animation: gt-spin 0.6s linear infinite;
}
@keyframes gt-spin {
  to { transform: rotate(360deg); }
}

/* ── Keyboard Shortcut Hints ──────────────────────────────── */

.gt-kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.5rem;
  height: 1.375rem;
  padding: 0 0.375rem;
  border-radius: 0.25rem;
  background: var(--gt-surface2);
  border: 1px solid var(--gt-border);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.6rem;
  font-weight: 700;
  color: var(--gt-text-dim);
}

/* ── Modal Size Variants ─────────────────────────────────────── */

.gt-modal-lg {
  max-width: 80vw;
  width: 80vw;
  max-height: 90vh;
}
.gt-modal-xl {
  max-width: 90vw;
  width: 90vw;
  max-height: 92vh;
}
.gt-modal-body-scroll {
  overflow-y: auto;
  max-height: calc(90vh - 8rem);
}

/* ── SortableJS / Drag & Drop ────────────────────────────────── */

.sortable-ghost {
  opacity: 0.35;
  border: 2px dashed var(--gt-accent) !important;
}
.sortable-drag {
  box-shadow: 0 8px 32px rgba(59,130,246,0.3), 0 0 0 2px var(--gt-accent);
  transform: scale(1.02);
  border-radius: 0.625rem;
  z-index: 999;
}
.sortable-chosen {
  cursor: grabbing !important;
}
.gt-lane-drop-highlight {
  background: var(--gt-accent-glow) !important;
  border-radius: 0.5rem;
  transition: background 0.2s;
}

/* ── File Viewer Modal ───────────────────────────────────────── */

.gt-viewer-iframe {
  width: 100%;
  height: calc(90vh - 10rem);
  border: none;
  border-radius: 0.5rem;
  background: var(--gt-bg);
}
.gt-viewer-img {
  max-width: 100%;
  max-height: calc(90vh - 10rem);
  border-radius: 0.5rem;
  object-fit: contain;
}
.gt-viewer-textarea {
  width: 100%;
  min-height: 20rem;
  max-height: calc(90vh - 14rem);
  background: var(--gt-bg) !important;
  border: 1px solid var(--gt-border) !important;
  color: var(--gt-text) !important;
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.85rem;
  padding: 0.75rem;
  border-radius: 0.5rem;
  resize: vertical;
}

/* ── Cost Estimator ──────────────────────────────────────────── */

.gt-calc-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
@media (max-width: 768px) {
  .gt-calc-grid { grid-template-columns: 1fr; }
}
.gt-calc-result {
  padding: 0.625rem 0.875rem;
  border-radius: 0.5rem;
  background: var(--gt-bg);
  border: 1px solid rgba(30,48,72,0.5);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.gt-calc-total {
  border-color: var(--gt-accent);
  background: rgba(59,130,246,0.06);
}
.gt-calc-total .gt-calc-amount {
  color: var(--gt-accent-hi);
  font-size: 1.25rem;
}
.gt-calc-label {
  font-size: 0.8rem;
  color: var(--gt-text-dim);
}
.gt-calc-amount {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 700;
  color: var(--gt-text);
}

/* ── Resigned LLC ────────────────────────────────────────────── */

.gt-resigned {
  opacity: 0.5;
}
.gt-resigned:hover {
  opacity: 0.7;
}
.gt-badge-resigned {
  background: rgba(251,113,133,0.12);
  color: var(--gt-rose);
  border: 1px solid rgba(251,113,133,0.2);
  font-size: 0.6rem;
  font-weight: 700;
  padding: 0.1rem 0.4rem;
  border-radius: 0.25rem;
}

/* ── Filter Tabs (Inventory Active/Resigned/All) ─────────────── */

.gt-filter-tab {
  padding: 0.375rem 0.875rem;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 0.375rem;
  cursor: pointer;
  transition: all 0.2s;
  background: transparent;
  color: var(--gt-text-dim);
  border: 1px solid var(--gt-border);
}
.gt-filter-tab:hover {
  color: var(--gt-text);
  border-color: var(--gt-border-hi);
}
.gt-filter-tab.active {
  background: var(--gt-accent);
  color: white;
  border-color: var(--gt-accent);
}

/* ── Generate Doc Buttons ────────────────────────────────────── */

.gt-gen-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.3rem 0.625rem;
  border-radius: 0.375rem;
  font-size: 0.7rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  background: rgba(59,130,246,0.1);
  color: var(--gt-accent-hi);
  border: 1px solid rgba(59,130,246,0.2);
}
.gt-gen-btn:hover {
  background: rgba(59,130,246,0.2);
  border-color: var(--gt-accent);
  transform: translateY(-1px);
}
.gt-gen-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none;
}

/* ── Print Friendly ──────────────────────────────────────────── */

@media print {
  .gt-navbar, .gt-stripe, .gt-toast, #gt-loading { display: none !important; }
  body { background: white !important; color: black !important; }
  .gt-card, .gt-stat { border-color: #ccc !important; }
  .gt-calc-grid { grid-template-columns: 1fr 1fr; }
}

/* ═══════════════════════════════════════════════════════════════
   Pipeline Dashboard Visual Upgrade
   ═══════════════════════════════════════════════════════════════ */

/* ── Welcome Bar ──────────────────────────────────────────────── */

.gt-welcome-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.5rem;
  margin-bottom: 1.25rem;
  border-radius: 0.75rem;
  background: linear-gradient(135deg, rgba(59,130,246,0.08) 0%, rgba(34,211,238,0.06) 100%);
  border: 1px solid rgba(59,130,246,0.12);
  backdrop-filter: blur(12px);
}
.gt-welcome-greeting {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--gt-text);
  letter-spacing: -0.02em;
}
.gt-welcome-date {
  font-size: 0.75rem;
  color: var(--gt-text-dim);
  margin-top: 0.125rem;
}
.gt-welcome-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.125rem;
}
.gt-welcome-stat-val {
  font-size: 1.5rem;
  font-weight: 900;
  font-family: 'JetBrains Mono', monospace;
  line-height: 1;
}
.gt-welcome-stat-lbl {
  font-size: 0.6rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gt-text-dim);
}

@media (max-width: 640px) {
  .gt-welcome-bar { flex-direction: column; gap: 0.75rem; text-align: center; }
}

/* ── Team Tiles ───────────────────────────────────────────────── */

.gt-team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 0.625rem;
  margin-bottom: 1.25rem;
}
@media (min-width: 640px)  { .gt-team-grid { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1024px) { .gt-team-grid { grid-template-columns: repeat(8, 1fr); } }

.gt-team-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.375rem;
  padding: 0.875rem 0.5rem 0.75rem;
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 0.75rem;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
}
.gt-team-tile:hover {
  border-color: rgba(var(--tile-rgb), 0.35);
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(0,0,0,0.3), 0 0 16px rgba(var(--tile-rgb), 0.08);
}
.gt-team-tile-active {
  border-color: rgba(var(--tile-rgb), 0.5) !important;
  box-shadow: 0 0 24px rgba(var(--tile-rgb), 0.15), 0 4px 20px rgba(0,0,0,0.3) !important;
  background: rgba(var(--tile-rgb), 0.04);
}

.gt-team-avatar {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 800;
  flex-shrink: 0;
}
.gt-team-tile-active .gt-team-avatar {
  box-shadow: 0 0 12px rgba(var(--tile-rgb), 0.3);
}

.gt-team-name {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--gt-text);
  text-align: center;
  line-height: 1.2;
}
.gt-team-count {
  font-size: 1.375rem;
  font-weight: 900;
  font-family: 'JetBrains Mono', monospace;
  line-height: 1;
}
.gt-team-tile-active .gt-team-count {
  text-shadow: 0 0 12px rgba(var(--tile-rgb), 0.4);
}

.gt-team-role {
  font-size: 0.55rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.1rem 0.4rem;
  border-radius: 9999px;
  background: rgba(94,117,144,0.12);
  color: var(--gt-text-dim);
}
.gt-team-role-admin {
  background: rgba(59,130,246,0.12);
  color: var(--gt-accent-hi);
}

.gt-team-you-badge {
  position: absolute;
  top: 0.25rem;
  right: 0.375rem;
  font-size: 0.5rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.1rem 0.3rem;
  border-radius: 0.25rem;
  background: rgba(34,211,238,0.15);
  color: var(--gt-cyan);
}

/* ── Status Strip + Alerts Row ────────────────────────────────── */

.gt-status-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.gt-status-strip {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  flex: 1;
  flex-wrap: wrap;
  min-width: 0;
}
.gt-status-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.7rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  color: var(--gt-text-dim);
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.gt-status-chip:hover {
  border-color: var(--gt-border-hi);
  color: var(--gt-text);
  background: var(--gt-surface2);
}
.gt-status-chip-active {
  border-color: var(--gt-cyan) !important;
  color: var(--gt-cyan) !important;
  background: rgba(34,211,238,0.08) !important;
  box-shadow: 0 0 8px rgba(34,211,238,0.12);
}
.gt-status-chip-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}
.gt-status-chip-count {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.7rem;
  font-weight: 700;
  opacity: 0.7;
}

/* Alert cards (right side, inline) */
.gt-alert-group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.gt-alert-card {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.75rem;
  border-radius: 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.2s ease;
}
.gt-alert-card:hover {
  transform: translateY(-1px);
}
.gt-alert-count {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 800;
  font-size: 0.85rem;
}
.gt-alert-text {
  white-space: nowrap;
}

.gt-alert-amber {
  background: rgba(251,191,36,0.1);
  color: var(--gt-amber);
  border-color: rgba(251,191,36,0.2);
}
.gt-alert-amber:hover { box-shadow: 0 0 16px rgba(251,191,36,0.1); }

.gt-alert-purple {
  background: rgba(167,139,250,0.1);
  color: var(--gt-purple);
  border-color: rgba(167,139,250,0.2);
}
.gt-alert-purple:hover { box-shadow: 0 0 16px rgba(167,139,250,0.1); }

.gt-alert-rose {
  background: rgba(251,113,133,0.1);
  color: var(--gt-rose);
  border-color: rgba(251,113,133,0.2);
  animation: gt-pulse 2s ease-in-out infinite;
}
.gt-alert-rose:hover { box-shadow: 0 0 16px rgba(251,113,133,0.1); }

/* ── Search Hero ──────────────────────────────────────────────── */

.gt-search-hero {
  margin-bottom: 1.25rem;
}
.gt-search-hero-inner {
  display: flex;
  align-items: center;
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 0.75rem;
  padding: 0.5rem 1rem;
  transition: border-color 0.2s, box-shadow 0.3s;
}
.gt-search-hero-inner:focus-within {
  border-color: var(--gt-cyan);
  box-shadow: 0 0 16px rgba(34,211,238,0.1), 0 0 4px rgba(34,211,238,0.06);
}
.gt-search-hero-icon {
  width: 18px;
  height: 18px;
  color: var(--gt-text-dim);
  flex-shrink: 0;
  margin-right: 0.5rem;
}
.gt-search-hero-input {
  flex: 1;
  background: transparent;
  border: none;
  color: var(--gt-text);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.85rem;
  outline: none;
  min-width: 0;
}
.gt-search-hero-input::placeholder {
  color: var(--gt-text-dim);
  opacity: 0.5;
}
.gt-search-clear {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border: none;
  background: rgba(94,117,144,0.15);
  color: var(--gt-text-dim);
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.15s;
  flex-shrink: 0;
}
.gt-search-clear:hover {
  background: rgba(251,113,133,0.15);
  color: var(--gt-rose);
}

.gt-view-toggle {
  padding: 0.25rem 0.75rem;
  border-radius: 0.375rem;
  font-size: 0.8rem;
  font-weight: 600;
  border: 1px solid var(--gt-border);
  background: transparent;
  color: var(--gt-text-dim);
  cursor: pointer;
  transition: all 0.15s;
}
.gt-view-toggle:hover {
  border-color: var(--gt-border-hi);
  color: var(--gt-text);
}
.gt-view-toggle-active {
  border-color: var(--gt-cyan);
  color: var(--gt-cyan);
  background: rgba(34,211,238,0.08);
}

/* ── Service Flag Toggle Buttons ─────────────────────────── */

.gt-flag-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid var(--gt-border);
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s;
  background: transparent;
  color: var(--gt-text-dim);
}
/* Inactive state: text always shows its flag color at reduced opacity */
.gt-flag-btn.gt-flag-rush-temp  { color: var(--gt-rush-temp);  opacity: 0.45; }
.gt-flag-btn.gt-flag-rush-reg   { color: var(--gt-rush-reg);   opacity: 0.45; }
.gt-flag-btn.gt-flag-rush-title { color: var(--gt-rush-title); opacity: 0.45; }
.gt-flag-btn.gt-flag-perm-reg   { color: var(--gt-perm-reg);   opacity: 0.45; }
.gt-flag-btn:hover {
  border-color: var(--gt-border-hi);
  opacity: 0.7;
}
/* Active state: full color + tinted background + colored border */
.gt-flag-btn.active-rush-temp {
  background: rgba(249,115,22,0.15);
  border-color: var(--gt-rush-temp);
  color: var(--gt-rush-temp);
  opacity: 1;
}
.gt-flag-btn.active-rush-reg {
  background: rgba(37,99,235,0.15);
  border-color: var(--gt-rush-reg);
  color: var(--gt-rush-reg);
  opacity: 1;
}
.gt-flag-btn.active-rush-title {
  background: rgba(236,72,153,0.15);
  border-color: var(--gt-rush-title);
  color: var(--gt-rush-title);
  opacity: 1;
}
.gt-flag-btn.active-perm-reg {
  background: rgba(220,38,38,0.15);
  border-color: var(--gt-perm-reg);
  color: var(--gt-perm-reg);
  opacity: 1;
}

/* ── Service Flag Card Highlights (Pipeline) ────────────── */
/* High-vis: thick left border + background tint + glow shadow */

.gt-svc-rush-temp {
  border-left: 6px solid var(--gt-rush-temp) !important;
  background: linear-gradient(90deg, rgba(249,115,22,0.10) 0%, var(--gt-surface) 40%) !important;
  box-shadow: inset 0 0 20px rgba(249,115,22,0.06), 0 0 12px rgba(249,115,22,0.12);
}
.gt-svc-rush-title {
  border-left: 6px solid var(--gt-rush-title) !important;
  background: linear-gradient(90deg, rgba(236,72,153,0.10) 0%, var(--gt-surface) 40%) !important;
  box-shadow: inset 0 0 20px rgba(236,72,153,0.06), 0 0 12px rgba(236,72,153,0.12);
}
.gt-svc-rush-reg {
  border-left: 6px solid var(--gt-rush-reg) !important;
  background: linear-gradient(90deg, rgba(37,99,235,0.10) 0%, var(--gt-surface) 40%) !important;
  box-shadow: inset 0 0 20px rgba(37,99,235,0.06), 0 0 12px rgba(37,99,235,0.12);
}
.gt-svc-perm-reg {
  border-left: 6px solid var(--gt-perm-reg) !important;
  background: linear-gradient(90deg, rgba(220,38,38,0.10) 0%, var(--gt-surface) 40%) !important;
  box-shadow: inset 0 0 20px rgba(220,38,38,0.06), 0 0 12px rgba(220,38,38,0.12);
}

/* Dual service: perm reg + any rush = red left + second color right stripe */
.gt-svc-dual-perm-rush-temp {
  border-left: 6px solid var(--gt-perm-reg) !important;
  border-right: 4px solid var(--gt-rush-temp) !important;
  background: linear-gradient(90deg, rgba(220,38,38,0.08) 0%, var(--gt-surface) 35%, rgba(249,115,22,0.08) 100%) !important;
  box-shadow: inset 0 0 20px rgba(220,38,38,0.05), 0 0 10px rgba(249,115,22,0.10);
}
.gt-svc-dual-perm-rush-title {
  border-left: 6px solid var(--gt-perm-reg) !important;
  border-right: 4px solid var(--gt-rush-title) !important;
  background: linear-gradient(90deg, rgba(220,38,38,0.08) 0%, var(--gt-surface) 35%, rgba(236,72,153,0.08) 100%) !important;
  box-shadow: inset 0 0 20px rgba(220,38,38,0.05), 0 0 10px rgba(236,72,153,0.10);
}
.gt-svc-dual-perm-rush-reg {
  border-left: 6px solid var(--gt-perm-reg) !important;
  border-right: 4px solid var(--gt-rush-reg) !important;
  background: linear-gradient(90deg, rgba(220,38,38,0.08) 0%, var(--gt-surface) 35%, rgba(37,99,235,0.08) 100%) !important;
  box-shadow: inset 0 0 20px rgba(220,38,38,0.05), 0 0 10px rgba(37,99,235,0.10);
}

/* Rush pulse — subtle glow throb for any rush card */
@keyframes gt-rush-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.85; }
}
.gt-svc-rush-temp,
.gt-svc-rush-title,
.gt-svc-rush-reg,
.gt-svc-dual-perm-rush-temp,
.gt-svc-dual-perm-rush-title,
.gt-svc-dual-perm-rush-reg {
  animation: gt-rush-pulse 3s ease-in-out infinite;
}

/* Service badge pills — slightly bigger for high vis */
.gt-svc-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 2px 7px;
  border-radius: 4px;
  text-transform: uppercase;
}
.gt-svc-badge-rush-temp  { background: rgba(249,115,22,0.20); color: var(--gt-rush-temp); }
.gt-svc-badge-rush-title { background: rgba(236,72,153,0.20); color: var(--gt-rush-title); }
.gt-svc-badge-rush-reg   { background: rgba(37,99,235,0.20);  color: var(--gt-rush-reg); }
.gt-svc-badge-perm-reg   { background: rgba(220,38,38,0.20);  color: var(--gt-perm-reg); }

/* ── Plate Select Dropdown ───────────────────────────────── */

select.gt-input.gt-plate-select {
  appearance: auto;
  background: var(--gt-bg2) !important;
  min-width: 100px;
  padding: 3px 8px;
  font-size: 11px;
}
select.gt-input.gt-plate-select option {
  background: var(--gt-surface2);
  color: var(--gt-text);
}

/* ══════════════════════════════════════════════════════════════
   SHELBY AI — Kanban Pipeline Redesign (2.15)
   4-column board: INBOX | BUILDING | WAITING | READY
   ══════════════════════════════════════════════════════════════ */

/* ── Top Bar (Row 1) ─────────────────────────────────────── */

.gt-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 0;
  margin-bottom: 0.5rem;
  flex-wrap: wrap;
}
.gt-topbar-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.gt-topbar-greeting {
  font-size: 1rem;
  font-weight: 700;
  color: var(--gt-text);
  line-height: 1.2;
}
.gt-topbar-date {
  font-size: 0.65rem;
  color: var(--gt-text-dim);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.gt-topbar-center {
  flex: 1;
  max-width: 420px;
  min-width: 200px;
}
.gt-topbar-right {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* ── Inline Search ────────────────────────────────────────── */

.gt-search-inline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 0.5rem;
  padding: 0.4rem 0.75rem;
  transition: border-color 0.2s;
}
.gt-search-inline:focus-within {
  border-color: var(--gt-cyan);
  box-shadow: 0 0 0 2px rgba(34,211,238,0.1);
}
.gt-search-inline-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--gt-text);
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.75rem;
}
.gt-search-inline-input::placeholder {
  color: var(--gt-text-dim);
  opacity: 0.6;
}

/* ── View Toggles ─────────────────────────────────────────── */

.gt-view-toggles {
  display: flex;
  gap: 0;
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 0.375rem;
  overflow: hidden;
}

/* ── Team Dropdown ────────────────────────────────────────── */

.gt-team-dropdown {
  position: absolute;
  right: 0;
  top: 100%;
  margin-top: 0.25rem;
  z-index: 50;
  background: var(--gt-surface);
  border: 1px solid var(--gt-border-hi);
  border-radius: 0.5rem;
  padding: 0.25rem;
  min-width: 160px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}
.gt-team-dropdown-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0.4rem 0.6rem;
  border-radius: 0.25rem;
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--gt-text);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: background 0.15s;
}
.gt-team-dropdown-item:hover {
  background: var(--gt-surface2);
}
.gt-team-dropdown-active {
  background: rgba(34,211,238,0.1) !important;
  color: var(--gt-cyan);
}
.gt-team-dropdown-count {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.65rem;
  color: var(--gt-text-dim);
}

/* ── Summary Strip (Row 2) ────────────────────────────────── */

.gt-summary-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  border-radius: 0.5rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}
.gt-summary-chips {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  flex-wrap: wrap;
}
.gt-summary-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.25rem 0.5rem;
  border-radius: 0.375rem;
  border: 1px solid transparent;
  background: transparent;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 0.7rem;
  color: var(--gt-text-dim);
}
.gt-summary-chip:hover {
  background: var(--gt-surface2);
}
.gt-summary-chip-active {
  border-color: var(--gt-cyan) !important;
  background: rgba(34,211,238,0.08) !important;
}
.gt-summary-count {
  font-family: 'JetBrains Mono', monospace;
  font-weight: 700;
  font-size: 0.8rem;
}
.gt-summary-label {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.6rem;
}
.gt-summary-dot {
  color: var(--gt-border-hi);
  font-size: 1rem;
  user-select: none;
}
.gt-summary-alerts {
  display: flex;
  gap: 0.375rem;
  flex-wrap: wrap;
  flex-shrink: 0;
}
.gt-summary-alert {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  border: none;
  cursor: pointer;
  transition: transform 0.15s;
}
.gt-summary-alert:hover {
  transform: scale(1.05);
}
.gt-summary-alert-rush {
  background: rgba(249,115,22,0.12);
  color: var(--gt-rush-temp);
}
.gt-summary-alert-sla {
  background: rgba(239,68,68,0.12);
  color: #ef4444;
}
.gt-summary-alert-approaching {
  background: rgba(245,158,11,0.12);
  color: #f59e0b;
}

/* ── Kanban Board ─────────────────────────────────────────── */

.gt-kanban {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
  min-height: 60vh;
}
@media (max-width: 1024px) {
  .gt-kanban { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .gt-kanban { grid-template-columns: 1fr; }
}

/* ── Kanban Column ────────────────────────────────────────── */

.gt-kanban-col {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* ── Column Header ────────────────────────────────────────── */

.gt-kanban-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.625rem;
  margin-bottom: 0.5rem;
  border-radius: 0.5rem;
  background: linear-gradient(135deg, rgba(var(--col-rgb), 0.06) 0%, transparent 100%);
  border: 1px solid rgba(var(--col-rgb), 0.12);
  border-bottom: 2px solid rgba(var(--col-rgb), 0.4);
}
.gt-kanban-header-left {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.gt-kanban-title {
  font-size: 0.65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gt-text);
}
.gt-kanban-count {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.6rem;
  font-weight: 700;
  padding: 0.1rem 0.4rem;
  border-radius: 999px;
  min-width: 1.25rem;
  text-align: center;
}
.gt-kanban-action {
  font-size: 0.55rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.15rem 0.5rem;
  border-radius: 0.25rem;
  background: rgba(var(--col-rgb), 0.12);
  color: var(--col-color);
  border: 1px solid rgba(var(--col-rgb), 0.2);
  cursor: pointer;
  transition: background 0.15s;
}
.gt-kanban-action:hover {
  background: rgba(var(--col-rgb), 0.2);
}

/* ── Column Body ──────────────────────────────────────────── */

.gt-kanban-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  max-height: 70vh;
  overflow-y: auto;
  padding-right: 2px;
  /* Thin scrollbar */
  scrollbar-width: thin;
  scrollbar-color: var(--gt-border) transparent;
}
.gt-kanban-body::-webkit-scrollbar { width: 4px; }
.gt-kanban-body::-webkit-scrollbar-thumb {
  background: var(--gt-border);
  border-radius: 2px;
}

/* ── Kanban Empty State ───────────────────────────────────── */

.gt-kanban-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  padding: 2rem 1rem;
  color: var(--gt-text-dim);
  opacity: 0.5;
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* ══════════════════════════════════════════════════════════════
   Kanban Vehicle Cards
   ══════════════════════════════════════════════════════════════ */

.gt-card {
  display: block;
  text-decoration: none;
  padding: 0.625rem;
  border-radius: 0.5rem;
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.15s;
}
.gt-card:hover {
  border-color: var(--gt-border-hi);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.25);
}

/* Card elements */
.gt-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 0.125rem;
}
.gt-card-title {
  font-weight: 700;
  font-size: 0.8rem;
  color: var(--gt-text);
  line-height: 1.2;
}
.gt-vin-badge {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.55rem;
  font-weight: 700;
  padding: 0.1rem 0.35rem;
  border-radius: 0.25rem;
  background: rgba(59,130,246,0.12);
  color: var(--gt-accent-hi);
  letter-spacing: 0.05em;
  flex-shrink: 0;
}
.gt-card-model {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--gt-text-dim);
  line-height: 1.2;
  margin-bottom: 0.125rem;
}
.gt-card-llc {
  font-size: 0.625rem;
  color: var(--gt-text-dim);
  opacity: 0.7;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Card meta row (substatus + days + SLA) */
.gt-card-meta {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  margin-top: 0.375rem;
  font-size: 0.6rem;
  font-weight: 600;
}
.gt-card-substatus-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* SLA badges */
.gt-sla-badge {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.55rem;
  font-weight: 700;
  padding: 0.05rem 0.3rem;
  border-radius: 0.2rem;
}
.gt-sla-overdue {
  background: rgba(239,68,68,0.15);
  color: #ef4444;
}
.gt-sla-approaching {
  background: rgba(245,158,11,0.15);
  color: #f59e0b;
}
.gt-sla-ok {
  background: rgba(52,211,153,0.08);
  color: var(--gt-text-dim);
}

/* ── Daily Digest ────────────────────────────────────── */
.gt-digest {
  margin: 0.5rem 0 0.75rem;
  border-radius: 0.5rem;
  background: var(--gt-surface);
  border: 1px solid var(--gt-border);
  overflow: hidden;
}
.gt-digest-toggle {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; padding: 0.5rem 0.75rem;
  background: none; border: none; cursor: pointer;
  color: var(--gt-text);
}
.gt-digest-toggle:hover { background: rgba(255,255,255,0.02); }
.gt-digest-toggle-left { display: flex; align-items: center; gap: 0.5rem; }
.gt-digest-title {
  font-size: 0.75rem; font-weight: 700; letter-spacing: 0.05em;
  text-transform: uppercase; color: var(--gt-text-dim);
}
.gt-digest-count {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.6rem; font-weight: 700;
  padding: 0.1rem 0.4rem; border-radius: 0.25rem;
}
.gt-digest-count-red { background: rgba(239,68,68,0.15); color: #ef4444; }
.gt-digest-count-amber { background: rgba(245,158,11,0.15); color: #f59e0b; }
.gt-digest-count-gray { background: rgba(148,163,184,0.1); color: var(--gt-text-dim); }

.gt-digest-body { padding: 0 0.75rem 0.75rem; }
.gt-digest-section { margin-bottom: 0.5rem; }
.gt-digest-section:last-child { margin-bottom: 0; }
.gt-digest-section-header {
  display: flex; align-items: center; gap: 0.35rem;
  font-size: 0.65rem; text-transform: uppercase;
  letter-spacing: 0.04em; margin-bottom: 0.35rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.gt-digest-items { display: flex; flex-direction: column; gap: 0.2rem; }
.gt-digest-item {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.3rem 0.5rem; border-radius: 0.3rem;
  text-decoration: none; color: var(--gt-text);
  font-size: 0.7rem; transition: background 0.15s;
  border-left: 2px solid transparent;
}
.gt-digest-item:hover { background: rgba(255,255,255,0.03); }
.gt-digest-item-red { border-left-color: #ef4444; }
.gt-digest-item-amber { border-left-color: #f59e0b; }
.gt-digest-vehicle { font-weight: 700; white-space: nowrap; min-width: 140px; }
.gt-digest-llc {
  color: var(--gt-text-dim); white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; flex: 1; min-width: 0;
}
.gt-digest-detail { display: flex; align-items: center; gap: 0.35rem; flex-shrink: 0; }
.gt-digest-footer {
  display: flex; align-items: center; gap: 0.35rem;
  font-size: 0.65rem; color: var(--gt-text-dim);
  padding-top: 0.4rem; margin-top: 0.25rem;
  border-top: 1px solid rgba(255,255,255,0.04);
}

/* Daily Pulse Strip */
.gt-pulse-strip {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.4rem 0.75rem;
  margin-bottom: 0.5rem;
  border-radius: 0.5rem;
  background: var(--gt-surface);
  border: 1px solid rgba(255,255,255,0.04);
  font-size: 0.7rem;
  color: var(--gt-text-dim);
}
.gt-pulse-items {
  display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap;
}
.gt-pulse-item {
  display: inline-flex; align-items: center; gap: 0.25rem;
  white-space: nowrap;
}
.gt-pulse-item strong {
  color: var(--gt-text); font-weight: 700;
}
.gt-pulse-dot {
  color: rgba(255,255,255,0.15); font-size: 0.5rem;
}
.gt-pulse-label {
  font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--gt-text-dim); opacity: 0.6; white-space: nowrap;
}

/* Progress bar */
.gt-progress {
  height: 3px;
  background: var(--gt-border);
  border-radius: 2px;
  margin-top: 0.375rem;
  overflow: hidden;
}
.gt-progress-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--gt-accent), var(--gt-emerald));
  border-radius: 2px;
  transition: width 0.3s;
}

/* Assignee */
.gt-card-assignee {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-top: 0.25rem;
  font-size: 0.6rem;
  font-weight: 600;
  color: var(--gt-cyan);
  padding: 0.15rem 0.4rem;
  background: rgba(34,211,238,0.08);
  border-radius: 0.25rem;
}
.gt-assignee-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gt-cyan);
}

/* Days waiting */
.gt-days-waiting {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.55rem;
  font-weight: 700;
  color: var(--gt-amber);
  padding: 0.05rem 0.3rem;
  background: rgba(251,191,36,0.1);
  border-radius: 0.2rem;
}

/* Substatus text */
.gt-card-substatus {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  margin-top: 0.375rem;
  font-size: 0.55rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* Start Build button */
.gt-start-build-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.6rem;
  font-weight: 700;
  padding: 0.25rem 0.6rem;
  border-radius: 0.3rem;
  background: rgba(59,130,246,0.15);
  color: var(--gt-accent-hi);
  border: 1px solid rgba(59,130,246,0.25);
  cursor: pointer;
  transition: all 0.15s;
}
.gt-start-build-btn:hover {
  background: rgba(59,130,246,0.25);
  transform: scale(1.02);
}

/* Lane 1 badges */
.gt-lane1-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.55rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.15rem 0.5rem;
  border-radius: 0.25rem;
}
.gt-lane1-ready {
  background: rgba(34,211,238,0.1);
  color: var(--gt-cyan);
}
.gt-lane1-passed {
  background: rgba(52,211,153,0.12);
  color: var(--gt-emerald);
}

/* DMV Return badge & card highlight */
.gt-dmv-return-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin-top: 0.375rem;
  font-size: 0.55rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.15rem 0.5rem;
  border-radius: 0.25rem;
  background: rgba(251,113,133,0.15);
  color: var(--gt-rose);
  border: 1px solid rgba(251,113,133,0.3);
}
.gt-card-dmv-return {
  border-color: rgba(251,113,133,0.4) !important;
  background: linear-gradient(135deg, rgba(251,113,133,0.04) 0%, var(--gt-surface) 40%) !important;
}

/* Card service flag badges */
.gt-card-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-top: 0.375rem;
}
.gt-flag {
  font-size: 0.6rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.15rem 0.45rem;
  border-radius: 0.25rem;
  border: 1px solid;
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
}
.gt-card-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin-top: 0.35rem;
}
.gt-flag-perm {
  background: rgba(220,38,38,0.18);
  color: #f87171;
  border-color: rgba(220,38,38,0.45);
}
.gt-flag-rush-temp {
  background: rgba(249,115,22,0.18);
  color: #fb923c;
  border-color: rgba(249,115,22,0.45);
}
.gt-flag-rush-title {
  background: rgba(236,72,153,0.18);
  color: #f472b6;
  border-color: rgba(236,72,153,0.45);
}
.gt-flag-rush-reg {
  background: rgba(37,99,235,0.18);
  color: #60a5fa;
  border-color: rgba(37,99,235,0.45);
}
.gt-flag-secb {
  background: rgba(251,191,36,0.12);
  color: var(--gt-amber);
  border-color: rgba(251,191,36,0.3);
  font-size: 0.5rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.1rem 0.35rem;
  border-radius: 0.2rem;
}

/* Probable title badge */
.gt-probable-badge-kanban {
  margin-top: 0.25rem;
  font-size: 0.5rem;
  font-weight: 600;
  padding: 0.1rem 0.35rem;
  border-radius: 0.2rem;
  background: rgba(167,139,250,0.1);
  color: var(--gt-purple);
  display: inline-block;
}

/* ── Completed / Parked Section ───────────────────────────── */

.gt-completed-section {
  margin-top: 1.5rem;
  border-top: 1px solid var(--gt-border);
  padding-top: 1rem;
}
.gt-completed-header {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  margin-bottom: 0.75rem;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--gt-text-dim);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.gt-completed-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 0.375rem;
}
.gt-card-complete {
  opacity: 0.5;
  transition: opacity 0.2s;
}
.gt-card-complete:hover {
  opacity: 0.8;
}

/* ── Column-specific card left borders ────────────────────── */

.gt-card-inbox { border-left: 3px solid #818cf8; }
.gt-card-building { border-left: 3px solid var(--gt-accent); }
.gt-card-waiting { border-left: 3px solid var(--gt-amber); }
.gt-card-ready { border-left: 3px solid var(--gt-cyan); }
.gt-card-complete { border-left: 3px solid var(--gt-emerald); }

/* Column hover glows */
.gt-card-inbox:hover { box-shadow: 0 0 16px rgba(129,140,248,0.12), 0 4px 16px rgba(0,0,0,0.25); }
.gt-card-building:hover { box-shadow: 0 0 16px rgba(59,130,246,0.12), 0 4px 16px rgba(0,0,0,0.25); }
.gt-card-waiting:hover { box-shadow: 0 0 16px rgba(251,191,36,0.12), 0 4px 16px rgba(0,0,0,0.25); }
.gt-card-ready:hover { box-shadow: 0 0 16px rgba(34,211,238,0.12), 0 4px 16px rgba(0,0,0,0.25); }

/* ── Responsive ───────────────────────────────────────────── */

@media (max-width: 640px) {
  .gt-topbar { flex-direction: column; align-items: stretch; gap: 0.5rem; }
  .gt-topbar-center { max-width: none; }
  .gt-topbar-right { justify-content: flex-end; flex-wrap: wrap; }
  .gt-summary-strip { flex-direction: column; gap: 0.5rem; }
}

/* ── Print ────────────────────────────────────────────────── */

@media print {
  .gt-topbar, .gt-summary-strip { display: none; }
  .gt-kanban { grid-template-columns: repeat(2, 1fr); }
  .gt-kanban-body { max-height: none; overflow: visible; }
}
