/* KnightVizion: charcoal structure, teal metal, and cyan illumination. */
:root {
  --brand-night: #071b22;
  --brand-deep: #10363d;
  --brand-teal: #087f80;
  --brand-cyan: #00e6d0;
  --brand-cyan-hover: #63f5e6;
  --brand-mist: #edf6f5;
  --brand-surface: #ffffff;
  --brand-line: #bfd8d5;
  --brand-text: #12383e;
  --brand-muted: #4e6b70;
  --bg: var(--brand-mist);
  --panel: var(--brand-surface);
  --ink: var(--brand-text);
  --muted: var(--brand-muted);
  --line: var(--brand-line);
  --brand: var(--brand-teal);
  --kv-ink: var(--brand-text);
  --kv-text: var(--brand-text);
  --kv-muted: var(--brand-muted);
  --kv-line: var(--brand-line);
  --kv-border: var(--brand-line);
  --kv-border-strong: #7ca6a4;
  --kv-panel: var(--brand-surface);
  --kv-panel-soft: var(--brand-mist);
  --kv-primary: #076c6d;
  --kv-primary-dark: #065456;
  --kv-teal: #076c6d;
  --kv-blue: #076c6d;
  --kv-shadow: 0 16px 44px rgb(7 27 34 / 12%);
  --bs-primary: #076c6d;
  --bs-primary-rgb: 7, 108, 109;
  --bs-link-color: #076c6d;
  --bs-link-hover-color: #065456;
  --bs-body-color: var(--brand-text);
  --bs-body-bg: var(--brand-mist);
  --bs-border-color: var(--brand-line);
}

body {
  color: var(--brand-text);
  background: radial-gradient(ellipse at top left, #d5f4ef, transparent 55%), var(--brand-mist);
}

.topbar {
  padding: 18px;
  border: 1px solid #28535a;
  border-radius: 10px;
  color: #effffc;
  background: linear-gradient(120deg, var(--brand-night), var(--brand-deep));
  box-shadow: 0 12px 32px rgb(7 27 34 / 16%);
}

.topbar h1, .topbar .h4 { color: #effffc; }
.topbar .eyebrow { color: var(--brand-cyan); }
.topbar .subhead, .topbar .text-muted { color: #b9d6d4 !important; }
.topbar .nav-divider { background: #386268; }
.topbar .btn:not(.primary):not(.btn-primary):not(.btn-dark) {
  color: #effffc;
  border-color: #5a8588;
  background: #163e45;
}
.topbar .btn:not(.primary):not(.btn-primary):not(.btn-dark):hover {
  color: var(--brand-night);
  border-color: var(--brand-cyan);
  background: var(--brand-cyan);
}

.panel, .card, .stat, .tile, .modal-content,
.warehouse-command-copy, .warehouse-preview-shell {
  color: var(--brand-text);
  background: var(--brand-surface);
  border-color: var(--brand-line);
}
.card-header, .modal-header, .table thead th {
  color: var(--brand-text);
  background: #e1efed;
  border-color: var(--brand-line);
}
.table {
  --bs-table-color: var(--brand-text);
  --bs-table-border-color: var(--brand-line);
  --bs-table-striped-bg: #f0f7f6;
  --bs-table-hover-bg: #e1f5f0;
}
.section-title, .page-title, .card-title { color: var(--brand-text); }
.text-muted { color: var(--brand-muted) !important; }
.tile:hover { border-color: var(--brand-teal); box-shadow: 0 8px 22px rgb(8 127 128 / 12%); }
.tile:not(.green):not(.red):not(.amber) .tile-icon { background: var(--brand-deep); color: var(--brand-cyan); }
.warehouse-kicker { background: #d5f4ef; color: #065456; }
.warehouse-context__scene { background-color: #e1efed; background-image: linear-gradient(145deg, #d5f4ef, #edf6f5); }
.warehouse-context__scene i { background: linear-gradient(180deg, #92e5d9, #498a8b); border-color: #087f80; }
.upload-indicator:not(.is-error):not(.is-success) { background: #edf6f5; color: var(--brand-text); border-color: var(--brand-line); }
.upload-indicator__detail { color: var(--brand-muted); }
.upload-indicator:not(.is-error):not(.is-success) .upload-indicator__bar span { background: linear-gradient(90deg, #087f80, #00e6d0); }

.btn-primary, .btn-dark, .btn.primary {
  --bs-btn-color: #071b22;
  --bs-btn-bg: #00e6d0;
  --bs-btn-border-color: #00e6d0;
  --bs-btn-hover-color: #071b22;
  --bs-btn-hover-bg: #63f5e6;
  --bs-btn-hover-border-color: #63f5e6;
  --bs-btn-active-color: #071b22;
  --bs-btn-active-bg: #20c5b7;
  --bs-btn-active-border-color: #20c5b7;
  --bs-btn-disabled-color: #365c60;
  --bs-btn-disabled-bg: #c2dfdb;
  --bs-btn-disabled-border-color: #c2dfdb;
  color: var(--brand-night);
  background: var(--brand-cyan);
  border-color: var(--brand-cyan);
  font-weight: 700;
}
.btn-primary:hover, .btn-dark:hover, .btn.primary:hover {
  color: var(--brand-night);
  background: var(--brand-cyan-hover);
  border-color: var(--brand-cyan-hover);
}
.btn-outline-primary { --bs-btn-color: #076c6d; --bs-btn-border-color: #076c6d; --bs-btn-hover-bg: #076c6d; --bs-btn-hover-border-color: #076c6d; --bs-btn-active-bg: #065456; --bs-btn-active-border-color: #065456; }
.form-control, .form-select { color: var(--brand-text); border-color: var(--brand-line); background-color: #fff; }
.form-control:focus, .form-select:focus {
  color: var(--brand-text);
  border-color: #087f80;
  box-shadow: 0 0 0 3px rgb(0 230 208 / 25%);
}
input[type="checkbox"], input[type="radio"], input[type="range"] { accent-color: #076c6d; }
.form-check-input:checked { background-color: #076c6d; border-color: #076c6d; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #087f80;
  outline-offset: 3px;
}
.topbar :focus-visible { outline-color: var(--brand-cyan); }
.nav-tabs .nav-link { color: #076c6d; }
.nav-tabs .nav-link.active { color: var(--brand-night); background: #d5f4ef; border-color: var(--brand-line); }
.page-link { color: #076c6d; }
.active > .page-link { background: #076c6d; border-color: #076c6d; color: white; }

.right-panel { background: #f0f8f6; border-left-color: var(--brand-cyan); }
.left-panel { background-image: linear-gradient(120deg, rgb(7 27 34 / 65%), rgb(8 127 128 / 30%)), url("../images/login_left.jpg"); }
.login-box { color: var(--brand-text); }

.kv-react-premium { color: var(--brand-text); }
.kv-react-premium__head { background: var(--brand-deep); color: #effffc; border-color: #28535a; }
.kv-react-premium__kicker { color: var(--brand-cyan); }
.kv-react-premium__status { color: #b8fff1; background: #18564f; }
.kv-react-premium__status::before { background: var(--brand-cyan); }
.kv-react-premium__metric { background: #edf6f5; border-color: var(--brand-line); }
.kv-react-premium__metric span { color: var(--brand-muted); }
.kv-react-premium__action { background: var(--brand-deep); color: #effffc; border-color: #386268; }
.kv-react-premium__action.is-primary { background: var(--brand-cyan); color: var(--brand-night); }

/* Existing viewer styles use !important; keep the override limited to its chrome. */
body #controls,
body.prism-view:not(.viewer-dark-mode) #controls {
  background: linear-gradient(120deg, #071b22, #10363d) !important;
  color: #effffc;
  border-color: #386268;
}
body #controls a, body #controls button {
  color: #effffc !important;
  background: #164b50 !important;
  border-color: #427577;
}
body #controls a:hover, body #controls button:hover {
  color: #071b22 !important;
  background: #00e6d0 !important;
}
body #controls label, body #controls h3 { color: #d6f5ef; }
body #controls img.logo { filter: none; }
body #controls :focus-visible { outline: 3px solid #00e6d0; outline-offset: 2px; }
