/* ═══════════════════════════════════════════════════════════════════
   SKYNET  //  Core Control Panel
   Neon-terminal aesthetic. Black ground. Monospace. Sharp lines.
   ═══════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,300;0,400;0,500;0,600;0,700;1,400&display=swap');

/* ── Design tokens ─────────────────────────────────────────────── */
:root {
  --bg:          #000000;
  --bg-1:        #04080c;
  --bg-2:        #080f16;
  --bg-3:        #0c1620;

  --cyan:        #00d4ff;
  --blue:        #0ea5e9;
  --green:       #00ff88;
  --amber:       #ffb700;
  --purple:      #a855f7;
  --red:         #ff4444;
  --pink:        #f472b6;

  --cyan-dim:    rgba(0,212,255,0.08);
  --cyan-glow:   0 0 12px rgba(0,212,255,0.3);
  --green-glow:  0 0 10px rgba(0,255,136,0.25);
  --amber-glow:  0 0 10px rgba(255,183,0,0.25);
  --purple-glow: 0 0 10px rgba(168,85,247,0.25);

  --border:      #0d1e2a;
  --border-2:    #1a3040;
  --border-neon: var(--cyan);

  --text:        #3a5060;
  --text-2:      #6a8898;
  --text-3:      #9ab8c8;
  --text-4:      #c8dde8;
  --text-5:      #ffffff;

  --font:        'JetBrains Mono', 'Consolas', 'Courier New', monospace;
  --font-size:   13px;
  --font-small:  11px;
}

/* ── Global reset ──────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  background: var(--bg) !important;
  scrollbar-color: var(--border-2) var(--bg);
  scrollbar-width: thin;
}

body {
  background: var(--bg) !important;
  color: var(--text-3) !important;
  font-family: var(--font) !important;
  font-size: var(--font-size) !important;
  line-height: 1.5 !important;
}

/* Scanline overlay — uses z-index:1 not 9999 to avoid creating a GPU
   compositing layer that interferes with form control text rendering. */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(0,0,0,0.025) 2px,
    rgba(0,0,0,0.025) 4px
  );
  pointer-events: none;
  z-index: 1;
}

/* ── Scrollbar ─────────────────────────────────────────────────── */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--border-2); }
::-webkit-scrollbar-thumb:hover { background: var(--cyan); }

/* ── Typography ────────────────────────────────────────────────── */
h1, h2, h3, h4, h5, h6,
.module caption, .module > h2,
caption, table caption,
fieldset h2, fieldset.module h2,
.inline-group h2 {
  font-family: var(--font) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
}

a:link, a:visited {
  color: var(--cyan) !important;
  text-decoration: none !important;
}
a:hover {
  color: var(--text-5) !important;
  text-shadow: var(--cyan-glow) !important;
  text-decoration: none !important;
}

/* ── Top header ────────────────────────────────────────────────── */
#header {
  background: var(--bg) !important;
  border-bottom: 1px solid var(--cyan) !important;
  box-shadow: var(--cyan-glow) !important;
  padding: 0 20px !important;
  height: 44px !important;
  display: flex !important;
  align-items: center !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 200 !important;
}

#header #branding {
  display: flex;
  align-items: center;
  gap: 16px;
}

#header #branding h1,
#header #branding h1 a {
  font-family: var(--font) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase !important;
  color: var(--cyan) !important;
  -webkit-text-fill-color: var(--cyan) !important;
  text-shadow: var(--cyan-glow) !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  text-decoration: none !important;
}

#header #branding::after {
  content: '// CORE CONTROL PANEL';
  color: var(--text) !important;
  font-family: var(--font) !important;
  font-size: 0.65rem !important;
  letter-spacing: 0.12em !important;
}

#user-tools {
  margin-left: auto;
  font-family: var(--font) !important;
  font-size: 0.7rem !important;
  color: var(--text-2) !important;
  letter-spacing: 0.06em !important;
}

#user-tools a { color: var(--text-2) !important; }
#user-tools a:hover { color: var(--cyan) !important; text-shadow: var(--cyan-glow) !important; }

/* ── Breadcrumbs ───────────────────────────────────────────────── */
div.breadcrumbs {
  background: var(--bg-1) !important;
  border-bottom: 1px solid var(--border) !important;
  padding: 6px 20px !important;
  color: var(--text-2) !important;
  font-family: var(--font) !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}

div.breadcrumbs a { color: var(--text-2) !important; }
div.breadcrumbs a:hover { color: var(--cyan) !important; }

/* ── Layout ────────────────────────────────────────────────────── */
#container {
  background: var(--bg) !important;
  min-height: 100vh !important;
  overflow-x: hidden !important;
}

/* Outer row: sidebar + content side by side */
.main, #main {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  background: var(--bg) !important;
  width: 100% !important;
  overflow-x: hidden !important;
}

/* Content column: COLUMN flex so h1 stacks above #content-main
   (row flex was the root cause of h1 appearing as a narrow side column) */
#content {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  flex: 1 1 0% !important;
  min-width: 0 !important;
  padding: 20px !important;
  background: var(--bg) !important;
  overflow-x: hidden !important;
  gap: 0 !important;
}

#content-main {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  width: 100% !important;
  background: var(--bg) !important;
}

/* Recent-actions sidebar: stacks below content-main in column layout */
#content-related {
  width: 100% !important;
  max-width: 340px !important;
  flex-shrink: 0 !important;
  float: none !important;
  position: static !important;
  margin: 16px 0 0 !important;
  background: transparent !important;
}

/* ── Custom sidebar ────────────────────────────────────────────── */
/* Django's base.css sets #nav-sidebar { display: none } and only shows it
   via #main.shifted — we force it always visible. */
#nav-sidebar,
#main #nav-sidebar,
#main.shifted #nav-sidebar,
body #nav-sidebar {
  display: block !important;
  width: 220px !important;
  min-width: 220px !important;
  flex-shrink: 0 !important;
  background: var(--bg-1) !important;
  border-right: 1px solid var(--border-2) !important;
  min-height: calc(100vh - 44px) !important;
  overflow-y: auto !important;
  overflow-x: visible !important;
  position: sticky !important;
  top: 44px !important;
  align-self: flex-start !important;
  z-index: 50 !important;
}

/* Keep the toggle button in DOM (Django JS needs it) but invisible */
#toggle-nav-sidebar {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Nav groups */
.sk-nav-group {
  border-bottom: 1px solid var(--border) !important;
}

.sk-nav-label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px 8px;
  font-family: var(--font) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: var(--text) !important;
  cursor: pointer;
  user-select: none;
  transition: color 0.15s ease;
}

.sk-nav-label:hover { color: var(--text-3) !important; }
.sk-nav-label .sk-nav-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  opacity: 0.9;
}

.sk-nav-items { padding-bottom: 4px; }

/* Row wrapper — position:relative is the only thing that matters here;
   the + button is absolute-positioned inside it so layout mode is irrelevant. */
.sk-nav-row {
  position: relative !important;
  display: block !important;
  transition: background 0.1s ease !important;
}

.sk-nav-row:hover { background: var(--bg-2) !important; }
.sk-nav-row.sk-active { background: var(--cyan-dim) !important; }

/* Left accent bar on active row */
.sk-nav-row.sk-active::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important; top: 0 !important; bottom: 0 !important;
  width: 2px !important;
  background: var(--cyan) !important;
  box-shadow: var(--cyan-glow) !important;
}

/* Main nav link — full-width block, right-padding leaves room for the + button */
.sk-nav-item {
  display: block !important;
  padding: 5px 30px 5px 28px !important;
  font-family: var(--font) !important;
  font-size: 0.72rem !important;
  color: var(--text-2) !important;
  text-decoration: none !important;
  letter-spacing: 0.03em !important;
  background: none !important;
  position: relative !important;
}

/* Arrow indicator */
.sk-nav-item::before {
  content: '↳' !important;
  position: absolute !important;
  left: 14px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  color: var(--text) !important;
  font-size: 0.6rem !important;
  opacity: 0.6 !important;
}

.sk-nav-row:hover .sk-nav-item { color: var(--text-5) !important; }
.sk-nav-row.sk-active .sk-nav-item { color: var(--cyan) !important; }
.sk-nav-row.sk-active .sk-nav-item::before { color: var(--cyan) !important; opacity: 1 !important; }

/* + Add button — absolutely positioned on the right of its row.
   Works regardless of what display mode .sk-nav-row ends up with. */
.sk-nav-add {
  position: absolute !important;
  right: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-family: var(--font) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  color: var(--text) !important;
  padding: 1px 5px !important;
  border: 1px solid var(--border-2) !important;
  line-height: 1.4 !important;
  opacity: 0.55 !important;
  text-decoration: none !important;
  transition: all 0.1s ease !important;
  background: var(--bg) !important;
}

.sk-nav-add:hover {
  color: var(--cyan) !important;
  border-color: var(--cyan) !important;
  box-shadow: var(--cyan-glow) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

/* Nav footer */
.sk-nav-footer {
  padding: 12px 14px 16px !important;
  font-family: var(--font) !important;
  font-size: 0.58rem !important;
  color: var(--text) !important;
  letter-spacing: 0.08em !important;
  line-height: 1.8 !important;
  border-top: 1px solid var(--border) !important;
  margin-top: 8px !important;
}

.sk-nav-footer span { color: #1a3a4a !important; }

/* ── Page title ────────────────────────────────────────────────── */
h1#content-main,
#content > h1,
#content h1,
h1 {
  font-family: var(--font) !important;
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--cyan) !important;
  text-shadow: var(--cyan-glow) !important;
  border-bottom: 1px solid var(--border-2) !important;
  padding-bottom: 10px !important;
  margin-bottom: 18px !important;
}

/* ── Modules / panels ──────────────────────────────────────────── */
.module, fieldset, .inline-group {
  background: var(--bg-1) !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  margin-bottom: 16px !important;
  position: static !important;
}

.module::before { display: none !important; }

.module caption,
.module > h2,
fieldset h2,
fieldset.module h2 {
  background: var(--bg-2) !important;
  color: var(--text-3) !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  padding: 7px 12px !important;
  border-bottom: 1px solid var(--border-2) !important;
  text-shadow: none !important;
}

.inline-group h2 {
  color: var(--cyan) !important;
  text-shadow: var(--cyan-glow) !important;
  background: rgba(0,212,255,0.04) !important;
  border-bottom: 1px solid rgba(0,212,255,0.2) !important;
}

/* ── Tables ────────────────────────────────────────────────────── */
#result_list, table {
  width: 100% !important;
  border-collapse: collapse !important;
  background: transparent !important;
}

#result_list thead th,
table thead th,
th {
  background: var(--bg-2) !important;
  color: var(--text-2) !important;
  font-family: var(--font) !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 8px 10px !important;
  border-bottom: 1px solid var(--border-2) !important;
  border-right: none !important;
  white-space: nowrap !important;
}

#result_list thead th a,
table thead th a { color: var(--text-2) !important; }
#result_list thead th a:hover,
table thead th a:hover,
#result_list thead th.sorted a { color: var(--cyan) !important; text-shadow: none !important; }
#result_list thead th.sorted { background: rgba(0,212,255,0.04) !important; }
#result_list thead th.sorted::after { color: var(--cyan) !important; }

#result_list tbody tr,
table tbody tr {
  border-bottom: 1px solid var(--border) !important;
  transition: background 0.1s ease;
}

#result_list tbody tr:hover,
table tbody tr:hover { background: var(--bg-2) !important; }

#result_list tbody td,
table tbody td, td {
  color: var(--text-3) !important;
  padding: 7px 10px !important;
  background: transparent !important;
  font-family: var(--font) !important;
  font-size: var(--font-size) !important;
  border-right: none !important;
}

#result_list tbody tr.row1 { background: transparent !important; }
#result_list tbody tr.row2 { background: rgba(8,15,22,0.5) !important; }
#result_list tr.selected { background: var(--cyan-dim) !important; }
#result_list tr.selected td { color: var(--text-4) !important; }

/* ── Filter sidebar ────────────────────────────────────────────── */
#changelist-filter {
  background: var(--bg-1) !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-width: 180px !important;
}

#changelist-filter h2 {
  background: var(--bg-2) !important;
  color: var(--text-2) !important;
  font-family: var(--font) !important;
  font-size: 0.6rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  padding: 8px 10px !important;
  border-bottom: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
}

#changelist-filter h3 {
  color: var(--text) !important;
  font-family: var(--font) !important;
  font-size: 0.6rem !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 8px 10px 4px !important;
  margin: 0 !important;
}

#changelist-filter li {
  padding: 2px 10px !important;
  border: none !important;
}

#changelist-filter li a {
  color: var(--text-2) !important;
  font-family: var(--font) !important;
  font-size: 0.72rem !important;
  text-decoration: none !important;
  display: block;
  padding: 2px 0;
}

#changelist-filter li a:hover { color: var(--cyan) !important; text-shadow: none !important; }
#changelist-filter li.selected a {
  color: var(--cyan) !important;
  font-weight: 500 !important;
}

/* ── Search bar ────────────────────────────────────────────────── */
#toolbar {
  background: var(--bg-1) !important;
  border-bottom: 1px solid var(--border) !important;
  padding: 8px 12px !important;
}

#searchbar, input#searchbar,
input[type="search"] {
  background: var(--bg) !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
  color: var(--text-3) !important;
  padding: 6px 10px !important;
  font-family: var(--font) !important;
  font-size: 0.8rem !important;
  outline: none !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
  min-width: 260px !important;
}

#searchbar:focus, input[type="search"]:focus {
  border-color: var(--cyan) !important;
  box-shadow: var(--cyan-glow) !important;
}

/* ── Buttons ───────────────────────────────────────────────────── */
.button, input[type=submit], input[type=button],
.submit-row input, a.button, button,
input.default, input[type=submit].default {
  font-family: var(--font) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
  padding: 6px 14px !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.button, input[type=submit], input[type=button],
.submit-row input.default, input.default {
  background: transparent !important;
  color: var(--cyan) !important;
  border: 1px solid var(--cyan) !important;
  box-shadow: none !important;
}

.button:hover, input[type=submit]:hover, input[type=button]:hover,
.submit-row input.default:hover, input.default:hover {
  background: var(--cyan-dim) !important;
  box-shadow: var(--cyan-glow) !important;
  color: var(--text-5) !important;
  transform: none !important;
}

/* Delete / danger */
.submit-row input[type=submit][name=_delete],
.button.danger, a.deletelink {
  color: var(--red) !important;
  border-color: var(--red) !important;
  background: transparent !important;
  box-shadow: none !important;
}

.submit-row input[type=submit][name=_delete]:hover,
.button.danger:hover, a.deletelink:hover {
  background: rgba(255,68,68,0.08) !important;
  box-shadow: 0 0 10px rgba(255,68,68,0.25) !important;
}

/* Secondary / cancel */
.submit-row a.closelink,
.submit-row input[name=_addanother] {
  background: transparent !important;
  color: var(--text-2) !important;
  border-color: var(--border-2) !important;
  box-shadow: none !important;
}

.submit-row a.closelink:hover,
.submit-row input[name=_addanother]:hover {
  color: var(--text-4) !important;
  border-color: var(--text-2) !important;
}

a.addlink,
a.changelink,
a.viewlink,
a.deletelink,
a.inline-deletelink,
a.related-widget-wrapper-link,
a.add-related,
a.change-related,
a.delete-related,
a.view-related,
a.selector-add,
a.selector-remove,
a.selector-chooseall,
a.selector-clearall {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  min-width: 28px !important;
  min-height: 28px !important;
  padding: 4px 8px !important;
  gap: 6px !important;
  color: var(--cyan) !important;
  background: rgba(0,212,255,0.035) !important;
  border: 1px solid rgba(0,212,255,0.34) !important;
  border-radius: 0 !important;
  /* NO box-shadow inset — it contributes to compositing layer promotion */
  box-shadow: none !important;
  font-family: var(--font) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  line-height: 1.2 !important;
  text-decoration: none !important;
  text-shadow: none !important;
  vertical-align: middle !important;
  /* CRITICAL: Django's widgets.css sets filter:grayscale(1) and opacity:.6 on
     .related-widget-wrapper-link. CSS filter promotes elements to their own GPU
     compositing layer. When flex siblings have mismatched compositing layers
     inside a flex-grow:1 container in a table cell, Chrome renders the adjacent
     select's text twice. Explicitly reset both to prevent layer promotion. */
  filter: none !important;
  opacity: 1 !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, color 0.15s ease !important;
}

a.addlink:hover,
a.changelink:hover,
a.viewlink:hover,
a.deletelink:hover,
a.inline-deletelink:hover,
a.related-widget-wrapper-link:hover,
a.add-related:hover,
a.change-related:hover,
a.delete-related:hover,
a.view-related:hover,
a.selector-add:hover,
a.selector-remove:hover,
a.selector-chooseall:hover,
a.selector-clearall:hover {
  color: var(--text-5) !important;
  background: var(--cyan-dim) !important;
  border-color: var(--cyan) !important;
  box-shadow: var(--cyan-glow), inset 0 0 16px rgba(0,212,255,0.08) !important;
  text-shadow: none !important;
}

a.addlink::before,
a.add-related::before {
  content: '+' !important;
}

a.changelink::before,
a.change-related::before {
  content: 'EDIT' !important;
  font-size: 0.56rem !important;
}

a.viewlink::before,
a.view-related::before {
  content: 'VIEW' !important;
  font-size: 0.56rem !important;
}

a.deletelink::before,
a.delete-related::before,
a.inline-deletelink::before {
  content: 'DEL' !important;
  font-size: 0.56rem !important;
}

.related-widget-wrapper-link img,
.add-related img,
.change-related img,
.delete-related img,
.view-related img,
.selector-add img,
.selector-remove img,
.selector-chooseall img,
.selector-clearall img {
  display: none !important;
}

/* ── Submit row ────────────────────────────────────────────────── */
.submit-row {
  background: var(--bg-1) !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
  padding: 12px 16px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  align-items: center !important;
  margin-top: 16px !important;
  box-shadow: none !important;
}

/* ── Form fields ───────────────────────────────────────────────── */
fieldset {
  background: var(--bg-1) !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
  margin-bottom: 12px !important;
  padding: 0 !important;
}

fieldset h2, fieldset.module h2 {
  padding: 7px 12px !important;
}

.form-row {
  border-bottom: 1px solid var(--border) !important;
  padding: 10px 12px !important;
}

.form-row:last-child { border-bottom: none !important; }

.form-row label, .required label {
  font-family: var(--font) !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  color: var(--text-2) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  min-width: 160px !important;
}

.required label::after { color: var(--cyan) !important; }

/* ── Inputs ────────────────────────────────────────────────────── */
input[type=text], input[type=password], input[type=email],
input[type=number], input[type=url], input[type=date],
input[type=datetime-local], input[type=time],
textarea {
  background: var(--bg) !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
  color: var(--text-3) !important;
  padding: 6px 10px !important;
  font-family: var(--font) !important;
  font-size: 0.8rem !important;
  outline: none !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
}

/* ── Select / dropdown: comprehensive duplicate-text fix ──────────────
   ROOT CAUSE: color-scheme:dark on :root + <meta name=color-scheme:dark>
   causes browsers to pre-render native OS form controls in dark mode BEFORE
   CSS loads, then our explicit background/color CSS paints a second layer on
   top. The two layers render at slightly different subpixel positions →
   doubled/offset text.

   FIX STRATEGY (all three applied together):
   1. appearance:none on ALL selects → removes native OS widget rendering
      entirely. Only CSS renders. No two-layer conflict possible.
   2. background-color NOT background shorthand → shorthand's implicit
      background-image:none!important can cascade-fight a more specific rule;
      explicit longhands remove the ambiguity.
   3. -webkit-text-fill-color + text-shadow:none → explicitly locks webkit
      text rendering to our color; clears any inherited glow/shadow that
      could look like a second text layer.

   Width is NOT set — that breaks RelatedFieldWidgetWrapper and
   filter_horizontal dual-list selects. ─────────────────────────────────── */
select {
  -webkit-appearance: none !important;
  appearance: none !important;
  background-color: var(--bg) !important;
  background-image: none !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
  color: var(--text-3) !important;
  -webkit-text-fill-color: var(--text-3) !important;
  text-shadow: none !important;
  padding: 4px 8px !important;
  font-family: var(--font) !important;
  font-size: 0.8rem !important;
  outline: none !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
}

/* Single-select dropdowns get a custom neon chevron indicator.
   base64 SVG avoids encoding issues that can silently break the URL. */
select:not([multiple]) {
  padding-right: 24px !important;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc4JyBoZWlnaHQ9JzUnPjxwYXRoIGQ9J00wIDAgTDggMCBMNCA1IFonIGZpbGw9JyMwMGQ0ZmYnIG9wYWNpdHk9JzAuNycvPjwvc3ZnPg==") !important;
  background-repeat: no-repeat !important;
  background-position: right 8px center !important;
  background-size: 8px 5px !important;
}

input[type=text]:focus, input[type=password]:focus,
input[type=email]:focus, input[type=number]:focus,
input[type=url]:focus, input[type=date]:focus,
textarea:focus {
  border-color: var(--cyan) !important;
  box-shadow: var(--cyan-glow) !important;
}

select:focus {
  border-color: var(--cyan) !important;
  box-shadow: var(--cyan-glow) !important;
}

textarea {
  font-size: 0.75rem !important;
  min-height: 120px !important;
  resize: vertical !important;
  line-height: 1.6 !important;
}

textarea.vLargeTextField,
.form-row textarea { min-height: 200px !important; }

select option {
  background-color: var(--bg-2) !important;
  color: var(--text-3) !important;
  -webkit-text-fill-color: var(--text-3) !important;
  text-shadow: none !important;
}

input[type=checkbox], input[type=radio] {
  accent-color: var(--cyan) !important;
}

/* ── Help text ─────────────────────────────────────────────────── */
.help, p.help {
  color: var(--text) !important;
  font-family: var(--font) !important;
  font-size: 0.65rem !important;
  margin-top: 3px !important;
}

/* ── Inline groups ─────────────────────────────────────────────── */
.inline-group {
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
  margin-bottom: 16px !important;
}

.inline-related {
  border-top: 1px solid var(--border) !important;
  padding: 10px 12px !important;
}

.inline-related h3 {
  font-family: var(--font) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--text-2) !important;
  margin-bottom: 6px !important;
}

.tabular.inline-related table { margin: 0 !important; }

/* ── Object tools ──────────────────────────────────────────────── */
.object-tools {
  display: flex !important;
  gap: 6px !important;
  flex-wrap: wrap !important;
  margin-bottom: 12px !important;
}

.object-tools a {
  background: transparent !important;
  color: var(--text-2) !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
  padding: 4px 10px !important;
  font-family: var(--font) !important;
  font-size: 0.65rem !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
  transition: all 0.1s ease !important;
}

.object-tools a:hover {
  color: var(--cyan) !important;
  border-color: var(--cyan) !important;
  box-shadow: var(--cyan-glow) !important;
  text-shadow: none !important;
}

/* ── Actions bar ───────────────────────────────────────────────── */
.actions {
  background: var(--bg-1) !important;
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
  padding: 8px 10px !important;
  margin-bottom: 8px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

.actions label {
  color: var(--text-2) !important;
  font-family: var(--font) !important;
  font-size: 0.65rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

.actions select { width: auto !important; min-width: 200px !important; }

/* ── Messages ──────────────────────────────────────────────────── */
.messagelist { padding: 0 !important; list-style: none !important; margin-bottom: 14px !important; }

.messagelist li {
  border-radius: 0 !important;
  padding: 8px 14px !important;
  margin-bottom: 6px !important;
  font-family: var(--font) !important;
  font-size: 0.75rem !important;
  border-left: 3px solid transparent !important;
  backdrop-filter: none !important;
}

.messagelist li.success {
  background: rgba(0,255,136,0.05) !important;
  border-left-color: var(--green) !important;
  color: #6ee7b7 !important;
}

.messagelist li.warning {
  background: rgba(255,183,0,0.05) !important;
  border-left-color: var(--amber) !important;
  color: #fcd34d !important;
}

.messagelist li.error {
  background: rgba(255,68,68,0.05) !important;
  border-left-color: var(--red) !important;
  color: #fca5a5 !important;
}

.messagelist li.info {
  background: var(--cyan-dim) !important;
  border-left-color: var(--cyan) !important;
  color: #7dd3fc !important;
}

/* ── Pagination ────────────────────────────────────────────────── */
.paginator {
  background: transparent !important;
  color: var(--text-2) !important;
  border: none !important;
  padding: 12px 0 !important;
  font-family: var(--font) !important;
  font-size: 0.72rem !important;
}

.paginator a {
  color: var(--cyan) !important;
  background: transparent !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
  padding: 3px 8px !important;
  margin: 0 2px !important;
  text-decoration: none !important;
  transition: all 0.1s ease !important;
}

.paginator a:hover {
  background: var(--cyan-dim) !important;
  border-color: var(--cyan) !important;
  box-shadow: var(--cyan-glow) !important;
  color: var(--text-5) !important;
  text-shadow: none !important;
}

.paginator .this-page {
  background: var(--cyan-dim) !important;
  color: var(--cyan) !important;
  border: 1px solid var(--cyan) !important;
  border-radius: 0 !important;
  padding: 3px 8px !important;
  margin: 0 2px !important;
  font-weight: 700 !important;
}

/* ── Pre / code ────────────────────────────────────────────────── */
pre, code {
  background: #020508 !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
  color: #7dd3fc !important;
  font-family: var(--font) !important;
  font-size: 0.72rem !important;
  padding: 10px 12px !important;
  overflow-x: auto !important;
  line-height: 1.7 !important;
  max-height: 480px !important;
  white-space: pre-wrap !important;
  display: block !important;
}

/* ── Date hierarchy ────────────────────────────────────────────── */
ul.toplinks {
  background: var(--bg-1) !important;
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
  padding: 6px 10px !important;
  margin-bottom: 8px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  list-style: none !important;
}

ul.toplinks li a {
  font-family: var(--font) !important;
  font-size: 0.7rem !important;
  color: var(--cyan) !important;
}

ul.toplinks li.selected a {
  color: var(--text-5) !important;
  text-shadow: var(--cyan-glow) !important;
}

/* ── Selector (filter_horizontal) ─────────────────────────────── */
.selector-available, .selector-chosen {
  background: var(--bg-1) !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
}

.selector-available h2, .selector-chosen h2 {
  background: var(--bg-2) !important;
  color: var(--text-2) !important;
  font-family: var(--font) !important;
  font-size: 0.6rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 6px 10px !important;
  border-radius: 0 !important;
  border-bottom: 1px solid var(--border-2) !important;
}

.selector select {
  background: var(--bg) !important;
  color: var(--text-3) !important;
  font-family: var(--font) !important;
  border: none !important;
}

/* ── Error list ────────────────────────────────────────────────── */
ul.errorlist li {
  background: rgba(255,68,68,0.05) !important;
  border: 1px solid rgba(255,68,68,0.2) !important;
  border-radius: 0 !important;
  border-left: 3px solid var(--red) !important;
  color: #fca5a5 !important;
  padding: 6px 10px !important;
  font-family: var(--font) !important;
  font-size: 0.72rem !important;
  margin-bottom: 4px !important;
}

/* ── Related object popup ──────────────────────────────────────── */
.related-widget-wrapper a,
.related-lookup { color: var(--cyan) !important; }

/* ── Calendar ──────────────────────────────────────────────────── */
.calendarbox {
  background: var(--bg-1) !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 0 !important;
}

/* ── Recent actions (right sidebar) ───────────────────────────── */
#content-related .module {
  background: var(--bg-1) !important;
  border: 1px solid var(--border-2) !important;
}

#content-related h2 {
  font-family: var(--font) !important;
  font-size: 0.6rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--text-2) !important;
  padding: 7px 10px !important;
  border-bottom: 1px solid var(--border-2) !important;
}

#content-related ul.actionlist li {
  padding: 4px 10px !important;
  border-bottom: 1px solid var(--border) !important;
  font-family: var(--font) !important;
  font-size: 0.7rem !important;
  color: var(--text-2) !important;
}

#content-related ul.actionlist li a { color: var(--cyan) !important; }

.mini { font-family: var(--font) !important; font-size: 0.6rem !important; color: var(--text) !important; }

/* ── Avatar system ─────────────────────────────────────────────── */
.sk-avatar-thumb {
  display: inline-block !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  vertical-align: middle !important;
  border: 1px solid rgba(0,212,255,0.3) !important;
  background: #000 !important;
  flex-shrink: 0 !important;
  transition: border-color 0.15s ease !important;
}

.sk-avatar-thumb:hover { border-color: var(--cyan) !important; }
.sk-avatar-thumb img { width: 100% !important; height: 100% !important; object-fit: contain !important; }

.sk-agent-cell { display: flex !important; align-items: center !important; gap: 8px !important; }
.sk-agent-name { font-weight: 500 !important; color: var(--text-4) !important; }

/* Avatar picker */
.sk-avatar-picker { margin-top: 6px !important; }

.sk-avatar-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)) !important;
  gap: 10px !important;
  max-width: 820px !important;
  padding: 12px !important;
  background: var(--bg) !important;
  border: 1px solid var(--border-2) !important;
}

.sk-avatar-preview {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  width: min(100%, 820px) !important;
  min-height: 138px !important;
  margin-bottom: 10px !important;
  padding: 14px !important;
  background: linear-gradient(90deg, rgba(0,212,255,0.08), rgba(0,255,136,0.03)) !important;
  border: 1px solid var(--border-2) !important;
  border-left: 3px solid var(--cyan) !important;
}

.sk-avatar-preview-img {
  width: 112px !important;
  height: 112px !important;
  border-radius: 50% !important;
  object-fit: contain !important;
  background: var(--bg) !important;
  border: 2px solid rgba(0,212,255,0.45) !important;
  box-shadow: 0 0 20px rgba(0,212,255,0.16) !important;
  flex: 0 0 auto !important;
}

.sk-avatar-preview-img.sk-avatar-img-a_dog,
.sk-avatar-item img.sk-avatar-img-a_dog,
.sk-agent-header-avatar[data-avatar="a_dog"] img {
  object-fit: cover !important;
  object-position: 50% 30% !important;
}

.sk-avatar-preview-meta {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  min-width: 0 !important;
}

.sk-avatar-preview-label {
  font-family: var(--font) !important;
  font-size: 0.86rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--text-5) !important;
}

.sk-avatar-preview-value {
  font-family: var(--font) !important;
  font-size: 0.66rem !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--cyan) !important;
}

.sk-avatar-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 6px !important;
  min-height: 98px !important;
  padding: 8px 5px !important;
  border: 1px solid var(--border) !important;
  background: var(--bg-1) !important;
  cursor: pointer !important;
  transition: all 0.1s ease !important;
  position: relative !important;
  border-radius: 0 !important;
}

.sk-avatar-item:hover {
  border-color: var(--border-2) !important;
  background: var(--bg-2) !important;
}

.sk-avatar-item.sk-selected {
  border-color: var(--cyan) !important;
  background: var(--cyan-dim) !important;
  box-shadow: var(--cyan-glow) !important;
}

.sk-avatar-item.sk-selected::after {
  content: '✓' !important;
  position: absolute !important;
  top: -5px !important;
  right: -5px !important;
  width: 14px !important;
  height: 14px !important;
  background: var(--cyan) !important;
  color: var(--bg) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 14px !important;
  text-align: center !important;
  border-radius: 0 !important;
}

.sk-avatar-item img {
  width: 64px !important;
  height: 64px !important;
  border-radius: 50% !important;
  object-fit: contain !important;
  background: var(--bg) !important;
}

.sk-avatar-caption {
  font-family: var(--font) !important;
  font-size: 0.6rem !important;
  font-weight: 500 !important;
  color: var(--text-2) !important;
  text-align: center !important;
  max-width: 78px !important;
  word-break: break-word !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

.sk-avatar-item.sk-selected .sk-avatar-caption { color: var(--cyan) !important; }

/* Agent header banner */
.sk-agent-header {
  display: flex !important;
  align-items: center !important;
  gap: 22px !important;
  margin-bottom: 20px !important;
  padding: 18px 20px !important;
  background: var(--bg-1) !important;
  border: 1px solid var(--border-2) !important;
  border-left: 3px solid var(--cyan) !important;
  box-shadow: inset 4px 0 16px rgba(0,212,255,0.04) !important;
  backdrop-filter: none !important;
  border-radius: 0 !important;
}

.sk-agent-header-avatar {
  width: 128px !important;
  height: 128px !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  border: 2px solid rgba(0,212,255,0.4) !important;
  background: var(--bg) !important;
  flex-shrink: 0 !important;
  box-shadow: 0 0 16px rgba(0,212,255,0.15) !important;
}

.sk-agent-header-avatar img { width: 100% !important; height: 100% !important; object-fit: contain !important; }

.sk-agent-header-info h2 {
  font-family: var(--font) !important;
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--cyan) !important;
  text-shadow: var(--cyan-glow) !important;
  margin: 0 0 4px !important;
  border: none !important;
  padding: 0 !important;
  background: none !important;
  -webkit-text-fill-color: var(--cyan) !important;
  -webkit-background-clip: unset !important;
}

.sk-agent-header-info p {
  color: var(--text) !important;
  font-family: var(--font) !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.04em !important;
  margin: 2px 0 0 !important;
  line-height: 1.3 !important;
}

/* ── Agent header row (banner + quick-chat side by side) ──────── */
.sk-agent-header-row {
  display: flex !important;
  align-items: stretch !important;
  gap: 12px !important;
  margin-bottom: 20px !important;
}

.sk-agent-header-row .sk-agent-header {
  flex: 1 1 auto !important;
  margin-bottom: 0 !important;
}

/* ── Agent quick-chat box ──────────────────────────────────────── */
.sk-aqc {
  display: flex !important;
  flex-direction: column !important;
  width: 460px !important;
  flex-shrink: 0 !important;
  background: var(--bg-1) !important;
  border: 1px solid var(--border-2) !important;
  border-left: 3px solid rgba(0,212,255,0.35) !important;
  overflow: hidden !important;
}

.sk-aqc-header {
  padding: 8px 12px !important;
  border-bottom: 1px solid var(--border) !important;
  background: var(--bg) !important;
  flex-shrink: 0 !important;
}

.sk-aqc-title {
  display: block !important;
  font-family: var(--font) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  color: var(--cyan) !important;
  margin-top: 2px !important;
}

.sk-aqc-msgs {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  padding: 8px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
}

.sk-aqc-msg {
  display: flex !important;
  max-width: 100% !important;
}

.sk-aqc-msg--user {
  justify-content: flex-end !important;
}

.sk-aqc-msg--bot {
  justify-content: flex-start !important;
}

.sk-aqc-msg span {
  font-family: var(--font) !important;
  font-size: 0.72rem !important;
  line-height: 1.45 !important;
  padding: 5px 9px !important;
  border-radius: 10px !important;
  max-width: 95% !important;
  white-space: pre-wrap !important;
  word-break: break-word !important;
}

.sk-aqc-msg--user span {
  background: rgba(0,212,255,0.18) !important;
  color: var(--cyan) !important;
  border-radius: 10px 10px 2px 10px !important;
}

.sk-aqc-msg--bot span {
  background: var(--bg-2) !important;
  color: var(--text-5) !important;
  border-radius: 10px 10px 10px 2px !important;
}

.sk-aqc-msg--typing span {
  background: var(--bg-2) !important;
  padding: 8px 12px !important;
}

.sk-aqc-msg--typing .dp {
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  height: 14px !important;
}

.sk-aqc-msg--typing .dp span {
  display: block !important;
  width: 7px !important;
  height: 7px !important;
  border-radius: 50% !important;
  background: var(--muted, #8ea3bb) !important;
  padding: 0 !important;
  animation: sk-aqc-bounce 1.2s infinite ease-in-out !important;
}

.sk-aqc-msg--typing .dp span:nth-child(1) { animation-delay: 0s !important; }
.sk-aqc-msg--typing .dp span:nth-child(2) { animation-delay: 0.2s !important; }
.sk-aqc-msg--typing .dp span:nth-child(3) { animation-delay: 0.4s !important; }

@keyframes sk-aqc-bounce {
  0%, 60%, 100% { transform: translateY(0);    opacity: 0.35; }
  30%           { transform: translateY(-5px); opacity: 1;    }
}

.sk-aqc-input-row {
  display: flex !important;
  gap: 6px !important;
  padding: 7px !important;
  border-top: 1px solid var(--border) !important;
  background: var(--bg) !important;
  flex-shrink: 0 !important;
}

.sk-aqc-input {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  background: var(--bg-1) !important;
  border: 1px solid var(--border-2) !important;
  border-radius: 6px !important;
  padding: 5px 9px !important;
  font-family: var(--font) !important;
  font-size: 0.72rem !important;
  color: var(--text) !important;
  outline: none !important;
}

.sk-aqc-input:focus {
  border-color: rgba(0,212,255,0.5) !important;
}

.sk-aqc-input::placeholder {
  color: var(--text-5) !important;
}

.sk-aqc-send {
  width: 28px !important;
  height: 28px !important;
  flex-shrink: 0 !important;
  background: rgba(0,212,255,0.15) !important;
  border: 1px solid rgba(0,212,255,0.3) !important;
  border-radius: 6px !important;
  color: var(--cyan) !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.1s !important;
}

.sk-aqc-send:hover { background: rgba(0,212,255,0.28) !important; }
.sk-aqc-send:disabled { opacity: 0.4 !important; cursor: default !important; }

/* ── Dashboard index ───────────────────────────────────────────── */
.sk-index-group {
  margin-bottom: 20px !important;
}

.sk-index-group-header {
  font-family: var(--font) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  padding: 6px 12px !important;
  margin-bottom: 0 !important;
  border-left: 3px solid var(--cyan) !important;
  color: var(--text-3) !important;
}

.sk-index-group table {
  border: 1px solid var(--border-2) !important;
  margin-bottom: 0 !important;
}

.sk-index-group td, .sk-index-group th { font-family: var(--font) !important; }

/* ── Responsive ────────────────────────────────────────────────── */
@media (max-width: 767px) {
  #nav-sidebar,
  #main #nav-sidebar,
  body #nav-sidebar { display: none !important; }
  div.breadcrumbs { padding-left: 20px !important; }
}

/* ═══════════════════════════════════════════════════════════════════
   HOLISTIC LAYOUT FIX — v3
   Resolves: h1 flex-column bug, table overflow/overlap, agent page
   dead space, accordion inconsistency, flex collapse, action icons.
   ═══════════════════════════════════════════════════════════════════ */

/* ── h1 spacing in column-flex #content ────────────────────────── */
/* #content is now flex-direction:column. h1 margins would add to   */
/* flex gap. Reset the margin and let the h1's padding-bottom be    */
/* the only space before content-main.                              */
#content > h1 {
  margin-bottom: 12px !important;
}

/* ── Table: no text overlap, rows expand, controlled cell widths ── */

#result_list tbody td {
  vertical-align: top !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;       /* NO break-all — never break mid-word */
  max-width: 320px !important;
  min-width: 40px !important;
}

/* Technical identifier cells: truncate gracefully with ellipsis */
#result_list td.field-id,
#result_list td.field-slug,
#result_list td.field-key,
#result_list td.field-external_id,
#result_list td.field-idempotency_key,
#result_list td.field-object_id,
#result_list td.field-routing_key,
#result_list td.field-worker_name,
#result_list td.field-checksum_sha256,
#result_list td.field-source_id {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 160px !important;
  min-width: 60px !important;
}

/* Content-rich cells: allow more width */
#result_list td.field-content,
#result_list td.field-message,
#result_list td.field-body,
#result_list td.field-summary,
#result_list td.field-description,
#result_list td.field-system_prompt,
#result_list td.field-error,
#result_list td.field-notes,
#result_list td.field-title {
  max-width: 480px !important;
}

/* Inline tabular cells: allow wrapping and vertical expansion */
.tabular.inline-related tbody td {
  vertical-align: top !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}

/* Inline table: horizontal scroll to prevent layout collapse */
.tabular.inline-related {
  overflow-x: auto !important;
}

.tabular.inline-related table {
  min-width: 480px !important;
}

/* ── Agent change page: remove duplicate h1 when banner is shown ── */
/* Banner (sk-agent-header) is only rendered on existing agents.    */
/* On add-form, banner is absent, so h1 stays visible.             */
#content:has(.sk-agent-header) > h1 {
  display: none !important;
}

/* ── Accordion: unified details/summary header structure ──────────── */
/* Django uses native HTML5 <details><summary> for collapsible       */
/* fieldsets and inline groups. Style summary as the neon header bar. */

fieldset.module details > summary {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 7px 12px !important;
  background: var(--bg-2) !important;
  border-bottom: 1px solid var(--border-2) !important;
  cursor: pointer !important;
  list-style: none !important;
  font-family: var(--font) !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--text-3) !important;
  text-shadow: none !important;
  user-select: none !important;
  transition: background 0.15s ease !important;
}

/* Inline-group summaries: neon cyan accent */
.inline-group fieldset.module details > summary {
  color: var(--cyan) !important;
  background: rgba(0,212,255,0.025) !important;
  border-bottom: 1px solid rgba(0,212,255,0.2) !important;
  text-shadow: 0 0 8px rgba(0,212,255,0.15) !important;
}

/* Remove native browser triangle */
fieldset.module details > summary::-webkit-details-marker { display: none !important; }
fieldset.module details > summary::marker { content: '' !important; }

/* Neon chevron indicator */
fieldset.module details > summary::before {
  content: '▶' !important;
  color: var(--cyan) !important;
  font-size: 0.45rem !important;
  transition: transform 0.15s ease !important;
  flex-shrink: 0 !important;
  opacity: 0.7 !important;
  line-height: 1 !important;
}

fieldset.module details[open] > summary::before {
  transform: rotate(90deg) !important;
}

fieldset.module details > summary:hover {
  background: var(--bg-3) !important;
}

/* h2 inside <summary>: reset layout/spacing (summary owns the header visual) */
fieldset.module details > summary h2 {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
  color: inherit !important;
  text-shadow: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
  display: inline !important;
}

/* ── Flex container guards ────────────────────────────────────────── */
/* Prevent any flex child from shrinking to zero and hiding content */

.module,
fieldset.module,
.inline-related {
  min-width: 0 !important;
}

/* Override Django widgets.css: .related-widget-wrapper {display:flex; flex-grow:1;
   flex-wrap:wrap; margin-bottom:5px}. The flex-grow:1 causes the wrapper to
   expand to fill table cells, creating a wide flex container where GPU compositing
   layer mismatches between the select and the action links are more visible. */
.related-widget-wrapper {
  display: inline-flex !important;   /* was flex (block); inline-flex is correct here */
  flex-grow: 0 !important;           /* was 1; don't expand to fill cell */
  flex-wrap: nowrap !important;      /* was wrap; keep select+buttons on one line */
  align-items: center !important;    /* vertically center select and buttons */
  gap: 6px !important;               /* was 0 10px */
  margin-bottom: 0 !important;       /* was 5px; fieldset spacing handles this */
  min-width: 0 !important;
  max-width: 100% !important;
  vertical-align: middle !important;
}

/* ── Action icons: consistent sizing in table context ────────────── */

#result_list td a.changelink,
#result_list td a.viewlink,
#result_list td a.deletelink,
#result_list td a.addlink {
  font-size: 0.58rem !important;
  padding: 2px 5px !important;
  min-width: 22px !important;
  min-height: 18px !important;
  margin: 0 1px !important;
}

/* Delete column in inline tabular tables */
.tabular.inline-related .delete {
  width: 40px !important;
  text-align: center !important;
  vertical-align: middle !important;
  padding: 4px 2px !important;
}

/* ── Content-subtitle h2 (some change pages have a subtitle) ─────── */
#content > h2 {
  font-size: 0.75rem !important;
  color: var(--text-2) !important;
  margin-bottom: 12px !important;
  margin-top: 0 !important;
  border: none !important;
  background: none !important;
  padding: 0 !important;
  text-shadow: none !important;
}

/* ── Dashboard: hide redundant "Site administration" h1 ───────────── */
body.dashboard #content > h1 {
  display: none !important;
}

/* ── Fix td.original gray text overlay in tabular inlines ───────────
   ROOT CAUSE: Django's forms.css uses position:absolute on the <p>
   inside td.original:

     .inline-group .tabular td.original p {
         position: absolute; left: 0; height: 1.2em;
         overflow: hidden; color: var(--body-quiet-color);  → #666
     }

   This floats str(obj) at left:0 of .inline-related with NO width
   constraint. On a light theme #666 on white is subtle. On our dark
   theme #666 on #000 is a prominent gray stripe that spans ALL
   adjacent cells — exactly the "coded format gray text over every row"
   the user sees.

   Our general td { padding: 7px 10px !important } also overrides
   Django's td.original { padding: 2px 0 0 0; width: 0 }, giving the
   zero-width column unwanted visual space.

   Fix: hide the decorative <p> label (hidden inputs are siblings of
   <p>, not children — they remain in DOM and submit correctly), and
   restore zero-width / zero-padding on the column.               ── */

.inline-group .tabular td.original p {
  display: none !important;
}

.inline-group .tabular tr td.original {
  width: 0 !important;
  padding: 0 !important;
  border: none !important;
}

.inline-group .tabular th.original {
  width: 0 !important;
  padding: 0 !important;
  border: none !important;
}
