/* Neutral dark surfaces: retain each theme's accent without tinting every panel. */
body:not(.theme-light) {
  --bg: #08090b !important;
  --panel: #15181c !important;
  --panel2: #0e1013 !important;
  --surface-main: #15181c !important;
  --surface-sub: #101317 !important;
  --surface-raised: #1a1e23 !important;
  --surface-input: #0b0d10 !important;
  --text: #e7e9ec !important;
  --muted: #a3a9b2 !important;
  --line: #30353c !important;
  --edge-soft: #373d46 !important;
  --edge-strong: color-mix(in srgb, var(--accent) 28%, #454c55) !important;
  --accent-soft: color-mix(in srgb, var(--accent) 11%, #15191e) !important;
  background: #08090b !important;
  color: var(--text) !important;
}

body:not(.theme-light) .hero,
body:not(.theme-light) .nav,
body:not(.theme-light) .card,
body:not(.theme-light) .topProjectStrip,
body:not(.theme-light) .signedOutInventoryHero,
body:not(.theme-light) .inventoryPage,
body:not(.theme-light) .profileLibraryPage {
  background-color: var(--surface-main) !important;
  background-image: none !important;
}

body:not(.theme-light) .settingsSection,
body:not(.theme-light) .inventoryAddForm,
body:not(.theme-light) .inventoryTableSection,
body:not(.theme-light) .inventoryFilters,
body:not(.theme-light) .inventoryBenefitCard,
body:not(.theme-light) .profileCatalogPanel,
body:not(.theme-light) .materialSummaryPanel,
body:not(.theme-light) .filamentRow,
body:not(.theme-light) .costSummaryPanel {
  background-color: var(--surface-sub) !important;
  background-image: none !important;
}

body:not(.theme-light) input,
body:not(.theme-light) select,
body:not(.theme-light) textarea,
body:not(.theme-light) .selectShell,
body:not(.theme-light) .numberShell {
  background-color: var(--surface-input) !important;
  color: var(--text) !important;
}

body:not(.theme-light) input:-webkit-autofill,
body:not(.theme-light) input:-webkit-autofill:hover,
body:not(.theme-light) input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--text) !important;
  -webkit-box-shadow: 0 0 0 1000px var(--surface-input) inset !important;
  caret-color: var(--text) !important;
}

/* One full-card sweep for the persistent project/suggested-price banner. */
.topProjectStrip {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate;
}

.topProjectStrip::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  left: -58% !important;
  width: 46% !important;
  height: 100% !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: linear-gradient(105deg, transparent 0%, color-mix(in srgb, var(--accent) 4%, transparent) 23%, rgba(255,255,255,.13) 50%, color-mix(in srgb, var(--accent) 8%, transparent) 70%, transparent 100%) !important;
  box-shadow: none !important;
  opacity: .66 !important;
  transform: skewX(-14deg) !important;
  animation: fullProjectCardSweep 5.8s cubic-bezier(.22,.61,.36,1) infinite !important;
  pointer-events: none !important;
  z-index: 1 !important;
}

.topProjectStrip > * {
  position: relative;
  z-index: 2;
}

@keyframes fullProjectCardSweep {
  0%, 14% { left: -58%; }
  48%, 100% { left: 116%; }
}

@media (prefers-reduced-motion: reduce) {
  .topProjectStrip::after { animation: none !important; opacity: 0 !important; }
}
