@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&display=swap');

/* Neuralcy runtime identity, shared by the StegoStudio and StegoShield surfaces. */
:root {
  color-scheme: dark;
  --nc-bg: #171918;
  --nc-surface: #202321;
  --nc-surface-raised: #252825;
  --nc-text: #f1eee7;
  --nc-muted: #a5a79e;
  --nc-accent: #e56d53;
  --nc-line: #3a3d38;
  --nc-good: #73b98d;
  --nc-warn: #e1b967;
  --nc-danger: #e47c73;
  --nc-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --bg: #171918;
  --sidebar: #1a1d1b;
  --card: #202321;
  --border: #3a3d38;
  --border2: #454943;
  --accent: #e56d53;
  --text: #f1eee7;
  --dim: #a5a79e;
  --blue: #e56d53;
  --purple: #e56d53;
  --cyan: #e56d53;
  --radius: 4px;
}
html { background: var(--nc-bg); }
body {
  background-color: var(--nc-bg) !important;
  color: var(--nc-text);
  font-family: "DM Sans", "Avenir Next", system-ui, sans-serif;
  min-height: 100dvh;
}
body, button, input, select, textarea { accent-color: var(--nc-accent); }
::selection { background: rgba(229,109,83,.28); color: var(--nc-text); }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--nc-bg); }
::-webkit-scrollbar-thumb { background: #4b4f49; border: 2px solid var(--nc-bg); border-radius: 10px; }
a { color: var(--nc-accent); }
a:hover { color: #f08a72; }
button, .btn, [role="button"], input:not([type="radio"]):not([type="checkbox"]), select, textarea {
  border-radius: 4px !important;
}
.btn-primary, button.primary, .primary-button, [class*="btn-accent"] {
  background: var(--nc-accent) !important;
  color: #1a1b19 !important;
  border-color: var(--nc-accent) !important;
}
button:not([disabled]):hover, .btn:hover { filter: brightness(1.08); }
input, select, textarea {
  background-color: #191c1a !important;
  color: var(--nc-text) !important;
  border-color: var(--nc-line) !important;
}
input[type="radio"] {
  appearance: auto !important;
  -webkit-appearance: auto !important;
  border-radius: 50% !important;
  accent-color: var(--nc-accent) !important;
  background-image: none !important;
}
input[type="checkbox"] {
  appearance: auto !important;
  -webkit-appearance: auto !important;
  border-radius: 3px !important;
  accent-color: var(--nc-accent) !important;
  background-image: none !important;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--nc-accent) !important;
  outline-color: rgba(229,109,83,.32) !important;
}
table th { color: var(--nc-muted); border-color: var(--nc-line); }
table td { color: var(--nc-text); border-color: var(--nc-line); }
pre, code, .mono, .monospace { font-family: var(--nc-mono); }
.nc-wordmark {
  display: block;
  width: 156px;
  height: 34px;
  object-fit: contain;
  object-position: left center;
}
.nc-mark {
  display: block;
  width: 34px;
  height: 34px;
  object-fit: contain;
}
.shield-icon .nc-mark { width: 36px; height: 36px; }
.logo-icon .nc-mark { width: 32px; height: 32px; }
.shield-icon, .logo-box {
  background: var(--nc-surface) !important;
  border: 1px solid var(--nc-line) !important;
  box-shadow: none !important;
}
.logo-icon { background: transparent !important; }
.nc-wordmark.compact { width: 132px; height: 29px; }
.nc-wordmark.light { filter: none; }
.severity-low, .status-good, .text-success { color: var(--nc-good); }
.severity-medium, .status-warning, .text-warning { color: var(--nc-warn); }
.severity-high, .severity-critical, .status-danger, .text-danger { color: var(--nc-danger); }
.nc-brand-label {
  color: var(--nc-muted);
  font: 600 10px/1.2 var(--nc-mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.nc-nav-pill {
  color: #1a1b19 !important;
  background: var(--nc-accent) !important;
  border: 1px solid var(--nc-accent) !important;
  border-radius: 4px !important;
  text-decoration: none;
}
.nc-nav-pill:hover { color: #1a1b19 !important; background: #f08a72 !important; }
.nc-beta {
  display: inline-block;
  background: #2a2421;
  border: 1px solid #744438;
  border-radius: 3px;
  color: var(--nc-accent);
  line-height: 1.25;
}
.nc-tier-option {
  background: var(--nc-surface) !important;
  border: 1px solid var(--nc-line) !important;
  color: var(--nc-text);
}
.nc-tier-option:hover { background: var(--nc-surface-raised) !important; }
.nc-tier-option:has(input[type="radio"]:checked) {
  background: #292522 !important;
  border-color: var(--nc-accent) !important;
}
.gradient-bg { background: var(--nc-surface) !important; }
#sidebar, .sidebar, .sidebar-brand, .sidebar-logo {
  background-color: #1a1d1b !important;
  border-color: var(--nc-line) !important;
}
.card, .panel, .modal, .surface {
  background-color: var(--nc-surface) !important;
  border-color: var(--nc-line) !important;
}
table th, table td { border-color: var(--nc-line) !important; }
/* Utility classes from older Tailwind based pages are recolored in place. */
.bg-gray-50, .bg-white { background-color: var(--nc-surface) !important; }
.bg-gray-100, .bg-gray-200, .bg-gray-900, .bg-gray-800 { background-color: var(--nc-surface) !important; }
.text-gray-900, .text-gray-800 { color: var(--nc-text) !important; }
.text-gray-700, .text-gray-600, .text-gray-500 { color: var(--nc-muted) !important; }
.border-gray-100, .border-gray-200, .border-gray-300, .border-gray-700, .border-gray-800 { border-color: var(--nc-line) !important; }
/* Legacy utilities also appear in JS-rendered result and error panels. */
.bg-purple-50, .bg-purple-100, .bg-violet-50, .bg-violet-100,
.bg-indigo-50, .bg-indigo-100, .bg-blue-50, .bg-blue-100,
.bg-blue-200, .bg-indigo-200, .bg-purple-200, .bg-violet-200 {
  background-color: var(--nc-surface) !important;
}
.bg-purple-500, .bg-purple-600, .bg-purple-700,
.bg-violet-500, .bg-violet-600, .bg-violet-700,
.bg-indigo-500, .bg-indigo-600, .bg-indigo-700,
.bg-blue-500, .bg-blue-600, .bg-blue-700 {
  background-color: var(--nc-accent) !important;
  color: #1a1b19 !important;
}
[class~="hover:bg-purple-100"]:hover, [class~="hover:bg-purple-200"]:hover,
[class~="hover:bg-violet-100"]:hover, [class~="hover:bg-violet-200"]:hover,
[class~="hover:bg-indigo-100"]:hover, [class~="hover:bg-indigo-200"]:hover,
[class~="hover:bg-blue-100"]:hover, [class~="hover:bg-blue-200"]:hover {
  background-color: var(--nc-surface-raised) !important;
}
[class~="hover:bg-purple-700"]:hover, [class~="hover:bg-violet-700"]:hover,
[class~="hover:bg-indigo-700"]:hover, [class~="hover:bg-blue-700"]:hover {
  background-color: #f08a72 !important;
  color: #1a1b19 !important;
}
.group:hover [class~="group-hover:bg-purple-100"],
.group:hover [class~="group-hover:bg-violet-100"],
.group:hover [class~="group-hover:bg-indigo-100"],
.group:hover [class~="group-hover:bg-blue-100"] {
  background-color: var(--nc-surface-raised) !important;
}
[class~="hover:border-purple-400"]:hover, [class~="hover:border-purple-500"]:hover,
[class~="hover:border-violet-400"]:hover, [class~="hover:border-indigo-400"]:hover,
[class~="hover:border-blue-400"]:hover, [class~="hover:border-blue-500"]:hover {
  border-color: var(--nc-accent) !important;
}
[class~="focus:ring-purple-500"]:focus, [class~="focus:ring-violet-500"]:focus,
[class~="focus:ring-indigo-500"]:focus, [class~="focus:ring-blue-500"]:focus {
  --tw-ring-color: rgba(229, 109, 83, .35) !important;
  box-shadow: 0 0 0 2px rgba(229, 109, 83, .35) !important;
}
.text-purple-400, .text-purple-500, .text-purple-600, .text-purple-700, .text-purple-800, .text-purple-900,
.text-violet-400, .text-violet-500, .text-violet-600, .text-violet-700, .text-violet-800, .text-violet-900,
.text-indigo-400, .text-indigo-500, .text-indigo-600, .text-indigo-700, .text-indigo-800, .text-indigo-900,
.text-blue-400, .text-blue-500, .text-blue-600, .text-blue-700, .text-blue-800, .text-blue-900 {
  color: var(--nc-accent) !important;
}
.border-purple-100, .border-purple-200, .border-violet-100, .border-violet-200,
.border-indigo-100, .border-indigo-200, .border-blue-100, .border-blue-200,
.border-gray-100, .border-gray-200 {
  border-color: var(--nc-line) !important;
}
.border-purple-300, .border-purple-400, .border-purple-500,
.border-purple-600, .border-purple-700,
.border-violet-300, .border-violet-400, .border-violet-500,
.border-violet-600, .border-violet-700,
.border-indigo-300, .border-indigo-400, .border-indigo-500,
.border-indigo-600, .border-indigo-700,
.border-blue-300, .border-blue-400, .border-blue-500,
.border-blue-600, .border-blue-700 {
  border-color: var(--nc-accent) !important;
}
.from-purple-50, .from-violet-50, .from-indigo-50, .from-blue-50,
.to-purple-50, .to-violet-50, .to-indigo-50, .to-blue-50 {
  --tw-gradient-from: #202321 !important;
  --tw-gradient-to: #202321 !important;
  --tw-gradient-stops: #202321, #202321 !important;
}
.from-purple-500, .from-violet-500, .from-indigo-500, .from-blue-500,
.to-purple-500, .to-violet-500, .to-indigo-500, .to-blue-500 {
  --tw-gradient-from: #e56d53 !important;
  --tw-gradient-to: #e56d53 !important;
  --tw-gradient-stops: #e56d53, #e56d53 !important;
}
@media (prefers-reduced-motion: no-preference) {
  .nc-wordmark { transition: opacity 160ms ease, transform 160ms ease; }
  a:hover .nc-wordmark { opacity: .92; transform: translateY(-1px); }
}
@media (max-width: 767px) {
  .nc-wordmark { width: 138px; height: 30px; }
}
