/* SpotOn dark skin for Blazer (/admin/insights). Loaded only by the shadowed
   Blazer layout, and every rule is scoped under body.blazer-dark, so even
   though propshaft sweeps this file into :app it is inert everywhere else.
   Brand tokens are restated here because application.css never loads inside
   Blazer's standalone layout. */

body.blazer-dark {
  --canvas: #0B0C0F;
  --surface: #111318;
  --surface-2: #181921;
  --border: #1E2028;
  --border-2: #2A2C38;
  --text: #F0EFEC;
  --text-2: #C2C1CC;
  --text-3: #888898;
  --lime: #C2FF1F;

  background: var(--canvas);
  color: var(--text);
}

/* Links: Bootstrap blue -> lime */
body.blazer-dark a { color: var(--lime); }
body.blazer-dark a:hover, body.blazer-dark a:focus { color: #d6ff5c; }

/* Headings + muted text */
body.blazer-dark h1, body.blazer-dark h2, body.blazer-dark h3, body.blazer-dark h4 { color: var(--text); }
body.blazer-dark .text-muted, body.blazer-dark .muted { color: var(--text-3); }
body.blazer-dark hr { border-color: var(--border); }

/* The fixed top bar on query pages, and the sticky results header */
body.blazer-dark .topbar { background-color: var(--canvas); border-bottom-color: var(--border); }
body.blazer-dark .results-table thead { background-color: var(--canvas); }

/* Tables (queries index + results) */
body.blazer-dark .table th, body.blazer-dark .table td { border-color: var(--border); }
body.blazer-dark .table > thead > tr > th { border-bottom-color: var(--border-2); color: var(--text-3); }
body.blazer-dark .table-striped > tbody > tr:nth-of-type(odd) { background: var(--surface); }
body.blazer-dark .table-hover > tbody > tr:hover { background: var(--surface-2); }

/* Forms + inputs */
body.blazer-dark .form-control,
body.blazer-dark input[type="text"],
body.blazer-dark input[type="search"],
body.blazer-dark textarea,
body.blazer-dark select {
  background: var(--surface-2);
  border-color: var(--border-2);
  color: var(--text);
  box-shadow: none;
}
body.blazer-dark .form-control:focus { border-color: var(--lime); box-shadow: none; }
body.blazer-dark ::placeholder { color: var(--text-3); }

/* Buttons: primary actions go lime-on-dark; defaults go quiet dark */
body.blazer-dark .btn-primary, body.blazer-dark .btn-success, body.blazer-dark .btn-info {
  background: var(--lime);
  border-color: var(--lime);
  color: var(--canvas);
  font-weight: 700;
  text-shadow: none;
}
body.blazer-dark .btn-primary:hover, body.blazer-dark .btn-success:hover, body.blazer-dark .btn-info:hover,
body.blazer-dark .btn-primary:focus, body.blazer-dark .btn-success:focus, body.blazer-dark .btn-info:focus {
  background: #d6ff5c;
  border-color: #d6ff5c;
  color: var(--canvas);
}
body.blazer-dark .btn-default {
  background: var(--surface-2);
  border-color: var(--border-2);
  color: var(--text-2);
}
body.blazer-dark .btn-default:hover, body.blazer-dark .btn-default:focus {
  background: var(--border-2);
  color: var(--text);
}
body.blazer-dark .btn-danger { background: #b3402f; border-color: #b3402f; color: #fff; }

/* Dropdown menus (the New Query caret etc.) */
body.blazer-dark .dropdown-menu { background: var(--surface-2); border-color: var(--border-2); }
body.blazer-dark .dropdown-menu > li > a { color: var(--text-2); }
body.blazer-dark .dropdown-menu > li > a:hover { background: var(--surface); color: var(--text); }

/* tom-select (variable pickers) */
body.blazer-dark .ts-control { background: var(--surface-2); border-color: var(--border-2); color: var(--text); }
body.blazer-dark .ts-control input { color: var(--text); }
body.blazer-dark .ts-dropdown { background: var(--surface-2); border-color: var(--border-2); color: var(--text-2); }
body.blazer-dark .ts-dropdown .active { background: var(--border-2); color: var(--text); }

/* Alerts / wells / panels */
body.blazer-dark .alert-info { background: var(--surface-2); border-color: var(--border-2); color: var(--text-2); }
body.blazer-dark .alert-danger { background: #2a1512; border-color: #4a2018; color: #ff9c8f; }
body.blazer-dark .well, body.blazer-dark .panel { background: var(--surface); border-color: var(--border); }

/* Code + SQL blocks outside the (already dark) ACE editor */
body.blazer-dark pre, body.blazer-dark code {
  background: var(--surface);
  border-color: var(--border);
  color: var(--text-2);
}

/* Syntax highlighting: Blazer ships the LIGHT github theme, whose keyword
   ink is near-black — invisible on our canvas. Re-ink the tokens for dark. */
body.blazer-dark .hljs { background: var(--surface); color: var(--text-2); }
body.blazer-dark .hljs-keyword,
body.blazer-dark .hljs-built_in,
body.blazer-dark .hljs-operator { color: var(--lime); font-weight: 600; }
body.blazer-dark .hljs-string { color: #ff9c8f; }
body.blazer-dark .hljs-number,
body.blazer-dark .hljs-literal,
body.blazer-dark .hljs-constant { color: #5EC8F2; }
body.blazer-dark .hljs-comment { color: var(--text-3); font-style: italic; }
body.blazer-dark .hljs-attribute,
body.blazer-dark .hljs-title,
body.blazer-dark .hljs-class,
body.blazer-dark .hljs-type { color: #A78BFA; }

/* Pagination + labels */
body.blazer-dark .pagination > li > a { background: var(--surface-2); border-color: var(--border-2); color: var(--text-2); }
body.blazer-dark .pagination > .active > a { background: var(--lime); border-color: var(--lime); color: var(--canvas); }
body.blazer-dark .label-default { background: var(--border-2); }

/* Date range picker (check schedules etc.) */
body.blazer-dark .daterangepicker { background: var(--surface-2); border-color: var(--border-2); color: var(--text-2); }
body.blazer-dark .daterangepicker .calendar-table { background: var(--surface); border-color: var(--border); }
body.blazer-dark .daterangepicker td.available:hover { background: var(--border-2); }

/* The way back to /admin — top-left, and only on the reports list (which has
   no topbar to collide with; report pages use the "‹ Reports" button instead). */
body.blazer-dark .so-admin-back {
  position: fixed;
  top: 14px;
  left: 14px;
  z-index: 1100;
  padding: 9px 16px;
  border-radius: 999px;
  background: var(--lime);
  color: var(--canvas);
  font-weight: 700;
  font-size: 14px;
  text-decoration: none;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.5);
}
body.blazer-dark .so-admin-back:hover,
body.blazer-dark .so-admin-back:focus {
  background: #d6ff5c;
  color: var(--canvas);
  text-decoration: none;
}
/* The list page's fixed full-width search bar starts at the very left edge —
   push its text start right so the Admin pill sits cleanly in the gutter
   instead of over the placeholder. */
body.blazer-dark input.search {
  padding-left: 134px;
}
