/* ── HIGH CONTRAST THEME ─────────────────────────────────────
   Accessibility-first theme for users with low vision.
   WCAG AAA target: 7:1 contrast ratio for normal text,
   4.5:1 for large text. Every design decision prioritizes
   readability and usability over aesthetics.

   Palette:
     Pure black          #000000   (primary background)
     Near-black surface  #1a1a1a   (cards, panels)
     Pure white          #ffffff   (text, primary borders)
     Bright yellow       #ffdd00   (primary accent, focus rings)
     Dark yellow          #ccb000   (darker accent)
     Light gray          #cccccc   (muted text — still 13:1 on black)
     Mid gray            #999999   (placeholder text — 10:1 on black)
     Bright green        #44ff44   (pass/good states)
     Bright red          #ff4444   (fail/danger states)
     Bright blue         #44aaff   (info/staging states)
     Bright purple       #cc88ff   (outgoing states)
     Bright teal         #44ddcc   (incoming states)

   Typography: IBM Plex Mono / IBM Plex Sans (defaults, kept for readability).
   Activated by body.highcontrast class.
──────────────────────────────────────────────────────────────── */

body.highcontrast {
  /* ── Core palette ── */
  --bg:         #000000;
  --surface:    #1a1a1a;
  --border:     #ffffff;
  --border2:    #ffdd00;
  --text:       #ffffff;
  --muted:      #cccccc;
  --tile-model: #ffffff;
  --tile-user:  #cccccc;
  --amber:      #ffdd00;
  --amber-d:    #ccb000;
  --yellow:     #ffdd00;
  --green:      #44ff44;
  --red:        #ff4444;
  --blue:       #44aaff;
  --purple:     #cc88ff;
  --teal:       #44ddcc;
  --teal-d:     #22bbaa;
  --mono:       'IBM Plex Mono', monospace;
  --sans:       'IBM Plex Sans', sans-serif;
  --radius:     2px;
  --radius-sm:  1px;
  /* ── High-contrast helpers ── */
  --hc-yellow:  #ffdd00;
  --hc-white:   #ffffff;
  --hc-black:   #000000;
  --hc-surface: #1a1a1a;
  --hc-gray:    #cccccc;
  --hc-focus:   #ffdd00;
  background: var(--bg);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.02em;
}


/* ── Focus: bright yellow ring on ALL focusable elements ──── */
body.highcontrast *:focus-visible {
  outline: 3px solid var(--hc-yellow) !important;
  outline-offset: 2px;
}
body.highcontrast header *:focus-visible {
  outline-color: var(--hc-yellow) !important;
}


/* ── Header: pure black with yellow border ───────────────── */
body.highcontrast header {
  background: var(--hc-black);
  border-bottom: 2px solid var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .logo {
  color: var(--hc-yellow);
  text-shadow: none;
  font-weight: 700;
}
body.highcontrast .logo .logo-bot { color: var(--hc-white); }
body.highcontrast .stats-bar { color: var(--hc-white); }
body.highcontrast .dot.amber { background: var(--hc-yellow); }
body.highcontrast .last-updated { color: var(--hc-gray); }
body.highcontrast #badge-name { color: var(--hc-white); }
body.highcontrast #badge-name:hover { color: var(--hc-yellow); }


/* ── Header buttons ──────────────────────────────────────── */
body.highcontrast #edit-btn,
body.highcontrast #theme-btn,
body.highcontrast #more-btn,
body.highcontrast #search-toggle-btn {
  border: 2px solid var(--hc-white);
  color: var(--hc-white);
}
body.highcontrast #edit-btn:hover,
body.highcontrast #theme-btn:hover,
body.highcontrast #more-btn:hover,
body.highcontrast #search-toggle-btn:hover {
  border-color: var(--hc-yellow);
  color: var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast #search-clear-btn { color: var(--hc-white); }
body.highcontrast #search-clear-btn:hover { color: var(--hc-yellow); }
body.highcontrast #edit-btn.editing {
  border-color: var(--hc-yellow);
  color: var(--hc-yellow);
  background: #2a2a00;
}


/* ── Search field ────────────────────────────────────────── */
body.highcontrast .search-input-wrap input {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
  color: var(--hc-white);
}
body.highcontrast .search-input-wrap input::placeholder { color: #999999; }
body.highcontrast .search-input-wrap input:focus {
  border-color: var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .search-input-wrap svg { color: var(--hc-gray); }

body.highcontrast #search-overlay .search-input-wrap input {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
  color: var(--hc-white);
}
body.highcontrast #search-overlay .search-input-wrap input:focus {
  border-color: var(--hc-yellow);
}
body.highcontrast #search-overlay .search-input-wrap svg { color: var(--hc-gray); }


/* ── Tab bar ─────────────────────────────────────────────── */
body.highcontrast .tab-bar {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
}
body.highcontrast .tab-btn { color: var(--hc-white); }
body.highcontrast .tab-btn:hover {
  background: #2a2a00;
  color: var(--hc-yellow);
}
body.highcontrast .tab-btn.active {
  background: #2a2a00;
  color: var(--hc-yellow);
  border: 2px solid var(--hc-yellow);
  box-shadow: none;
}


/* ── Grid area ───────────────────────────────────────────── */
body.highcontrast #grid-wrap { background: var(--bg); }
body.highcontrast .group-header {
  border-bottom-color: var(--hc-yellow);
  color: var(--hc-yellow);
  text-shadow: none;
}
body.highcontrast .group-header-name { color: var(--hc-yellow); }
body.highcontrast .group-header-count { color: var(--hc-gray); }
body.highcontrast .group-collapse-chevron { color: var(--hc-gray); }
body.highcontrast .group-add-btn {
  background: #2a2a00;
  border: 2px solid var(--hc-yellow);
  color: var(--hc-yellow);
}
body.highcontrast .group-add-btn:hover {
  background: #3a3a00;
  border-color: var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .group-reorder-btn {
  background: #2a2a00;
  border: 2px solid var(--hc-yellow);
  color: var(--hc-yellow);
}
body.highcontrast .group-reorder-btn:hover:not(:disabled) {
  background: #3a3a00;
}
body.highcontrast .group-reorder-btn:disabled { opacity: .35; }
body.highcontrast .group-rename-input {
  color: var(--hc-white); border-bottom: 2px solid var(--hc-white);
}
body.highcontrast .group-rename-input:focus { border-bottom-color: var(--hc-yellow); }
body.highcontrast .group-display-toggle {
  background: #2a2a00;
  border: 2px solid var(--hc-yellow);
  color: var(--hc-yellow);
}
body.highcontrast .group-display-toggle:hover {
  background: #3a3a00;
}
body.highcontrast .group-new-btn {
  border: 2px dashed var(--hc-white);
  color: var(--hc-gray);
}
body.highcontrast .group-new-btn:hover {
  border-color: var(--hc-yellow);
  color: var(--hc-yellow);
}
body.highcontrast .group-bulk-add button {
  background: #2a2a00;
  border: 2px solid var(--hc-yellow);
  color: var(--hc-yellow);
}
body.highcontrast .group-bulk-add input[type=number] {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
  color: var(--hc-white);
}
body.highcontrast .group-delete-btn {
  background: #2a0000;
  border: 2px solid var(--red);
  color: var(--red);
  opacity: 1;
}
body.highcontrast .group-delete-btn:hover {
  background: #3a0000;
}
body.highcontrast .group-move-tab-btn {
  background: var(--hc-black);
  border: 2px solid var(--hc-yellow);
  color: var(--hc-yellow);
  opacity: 1;
  font-weight: bold;
}
body.highcontrast .group-move-tab-btn:hover {
  background: var(--hc-yellow);
  color: var(--hc-black);
}
body.highcontrast .move-tab-menu {
  background: var(--hc-black);
  border: 2px solid var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .move-tab-menu-item {
  color: var(--hc-white);
  font-weight: bold;
  border-bottom: 1px solid var(--hc-white);
}
body.highcontrast .move-tab-menu-item:hover {
  background: var(--hc-yellow);
  color: var(--hc-black);
}
body.highcontrast .move-tab-menu-item.current { color: var(--hc-white); opacity: .6; }
body.highcontrast .move-tab-menu-sep { background: var(--hc-yellow); height: 2px; }


/* ── Tiles: high-contrast cards ──────────────────────────── */
body.highcontrast .shelf-tile {
  background: var(--hc-surface);
  border: 2px solid var(--hc-white);
  box-shadow: none;
}
body.highcontrast .shelf-tile:hover {
  border-color: var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .shelf-tile.highlight {
  border: 3px solid var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .shelf-tile.drag-over {
  border: 3px solid var(--hc-yellow);
  background: #2a2a00;
  box-shadow: none;
}
body.highcontrast .group-header.drag-over {
  background: #2a2a00;
  border-bottom-color: var(--hc-yellow);
}


/* ── Side panel ──────────────────────────────────────────── */
body.highcontrast #panel {
  background: var(--hc-surface);
  border-left: 2px solid var(--hc-white);
  box-shadow: none;
}
body.highcontrast .panel-header {
  border-bottom: 2px solid var(--hc-white);
}
body.highcontrast .panel-section {
  border-bottom: 2px solid #444444;
}
body.highcontrast .panel-slot-input { color: var(--hc-yellow); }
body.highcontrast .panel-slot-input::placeholder { color: #666666; }
body.highcontrast .panel-slot-input:focus { border-bottom-color: var(--hc-yellow); }


/* ── Buttons: thick borders, large targets ───────────────── */
body.highcontrast .btn {
  border: 2px solid var(--hc-white);
  box-shadow: none;
  transition: all .2s;
  padding: 8px 16px;
  min-height: 36px;
}
body.highcontrast .btn:active:not(:disabled) {
  box-shadow: none;
}
body.highcontrast .btn-primary {
  background: #2a2a00;
  color: var(--hc-yellow);
  border-color: var(--hc-yellow);
  font-weight: 600;
}
body.highcontrast .btn-primary:hover {
  background: #3a3a00;
  box-shadow: none;
}
body.highcontrast .btn-ghost {
  background: transparent;
  color: var(--hc-white);
  border-color: var(--hc-white);
}
body.highcontrast .btn-ghost:hover {
  background: transparent;
  border-color: var(--hc-yellow);
  color: var(--hc-yellow);
}
body.highcontrast .btn-danger {
  background: #2a0000;
  color: var(--red);
  border-color: var(--red);
}
body.highcontrast .btn-danger:hover {
  background: #3a0000;
}
body.highcontrast .btn-blue {
  background: #001a2a;
  color: var(--blue);
  border-color: var(--blue);
}
body.highcontrast .btn-blue:hover {
  background: #002a3a;
}
body.highcontrast .btn-success {
  background: #002a00;
  color: var(--green);
  border-color: var(--green);
}
body.highcontrast .btn-success:hover {
  background: #003a00;
}
body.highcontrast .btn-purple {
  background: #1a0033;
  color: var(--purple);
  border-color: var(--purple);
}
body.highcontrast .btn-purple:hover {
  background: #2a0044;
}


/* ── Radio labels ────────────────────────────────────────── */
body.highcontrast .radio-label {
  background: var(--hc-surface);
  color: var(--hc-white);
  border: 2px solid var(--hc-white);
}
body.highcontrast .radio-label:hover {
  background: #2a2a00;
  border-color: var(--hc-yellow);
  color: var(--hc-yellow);
}
body.highcontrast .radio-label:has(input:checked) {
  background: #2a2a00;
  color: var(--hc-yellow);
  border-color: var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .radio-label:has(input:checked):hover {
  background: #3a3a00;
}


/* ── Inputs: black fill, thick borders ───────────────────── */
body.highcontrast .modal input,
body.highcontrast .modal textarea,
body.highcontrast .modal select,
body.highcontrast .info-field input,
body.highcontrast .info-field textarea,
body.highcontrast .info-field select {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
  color: var(--hc-white);
}
body.highcontrast .modal input:focus,
body.highcontrast .modal textarea:focus,
body.highcontrast .modal select:focus,
body.highcontrast .info-field input:focus,
body.highcontrast .info-field textarea:focus,
body.highcontrast .info-field select:focus {
  border-color: var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .auth-field input {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
  color: var(--hc-white);
}
body.highcontrast .auth-field input:focus {
  border-color: var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .otp-slots input {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
  color: var(--hc-yellow);
}
body.highcontrast .otp-slots input:focus {
  border-color: var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .admin-pwd-row input {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
}
body.highcontrast .admin-pwd-row input:focus {
  border-color: var(--hc-yellow);
}


/* ── Modals ──────────────────────────────────────────────── */
body.highcontrast #modal-overlay { background: rgba(0,0,0,.85); }
body.highcontrast .modal {
  background: var(--hc-surface);
  border: 2px solid var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .modal h3 { color: var(--hc-yellow); }


/* ── Auth overlay ────────────────────────────────────────── */
body.highcontrast #auth-overlay {
  background: var(--hc-black);
}
body.highcontrast #auth-theme-btn {
  border: 2px solid var(--hc-white);
  color: var(--hc-white);
}
body.highcontrast #auth-theme-btn:hover {
  border-color: var(--hc-yellow);
  color: var(--hc-yellow);
}
body.highcontrast .auth-card {
  background: var(--hc-surface);
  border: 2px solid var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .auth-logo {
  color: var(--hc-yellow);
  text-shadow: none;
}
body.highcontrast .auth-logo .logo-bot { color: var(--hc-white); }
body.highcontrast .auth-tabs {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
}
body.highcontrast .auth-tab { color: var(--hc-white); }
body.highcontrast .auth-tab.active {
  background: #2a2a00;
  color: var(--hc-yellow);
  border: 2px solid var(--hc-yellow);
}


/* ── Menus: all five ─────────────────────────────────────── */
body.highcontrast #theme-menu,
body.highcontrast #auth-theme-menu,
body.highcontrast #more-menu,
body.highcontrast .export-menu {
  background: var(--hc-surface);
  border: 2px solid var(--hc-white);
  box-shadow: none;
}
body.highcontrast #theme-menu button,
body.highcontrast #auth-theme-menu button,
body.highcontrast #more-menu button,
body.highcontrast .export-menu button { color: var(--hc-white); }
body.highcontrast #theme-menu button:hover,
body.highcontrast #auth-theme-menu button:hover,
body.highcontrast #more-menu button:hover,
body.highcontrast .export-menu button:hover {
  background: #2a2a00;
  color: var(--hc-yellow);
}
body.highcontrast #user-menu {
  background: var(--hc-surface);
  border: 2px solid var(--hc-white);
  box-shadow: none;
}
body.highcontrast #user-menu button { color: var(--hc-white); }
body.highcontrast #user-menu button:hover {
  background: #2a2a00;
  color: var(--hc-yellow);
}
body.highcontrast .more-menu-sep { background: var(--hc-white); }
body.highcontrast .more-menu-header { color: var(--hc-gray); }


/* ── Toast ───────────────────────────────────────────────── */
body.highcontrast #toast {
  background: var(--hc-surface);
  border: 2px solid var(--hc-yellow);
  box-shadow: none;
}


/* ── Scrollbars: wide, high contrast ─────────────────────── */
body.highcontrast ::-webkit-scrollbar { width: 12px; }
body.highcontrast ::-webkit-scrollbar-track {
  background: var(--hc-surface);
  border-left: 2px solid #444444;
}
body.highcontrast ::-webkit-scrollbar-thumb {
  background: #999999;
  border: 2px solid #aaaaaa;
}
body.highcontrast ::-webkit-scrollbar-thumb:hover {
  background: var(--hc-yellow);
}


/* ── Log panel ───────────────────────────────────────────── */
body.highcontrast #log-panel {
  background: var(--hc-black);
}


/* ── Save bar ────────────────────────────────────────────── */
body.highcontrast #save-bar-btn {
  border: 2px solid var(--hc-yellow);
  color: var(--hc-yellow);
  background: var(--hc-surface);
}
body.highcontrast #save-bar-btn:hover {
  background: #2a2a00;
  box-shadow: none;
}


/* ── Admin / misc ────────────────────────────────────────── */
body.highcontrast .admin-role-badge {
  color: var(--hc-yellow);
  border-color: var(--hc-yellow);
}
body.highcontrast .group-type-select {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
  color: var(--hc-white);
}
body.highcontrast .val-textarea {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
}
body.highcontrast .val-textarea:focus {
  border-color: var(--hc-yellow);
}
body.highcontrast .val-btn {
  background: var(--hc-surface);
  color: var(--hc-white);
  border: 2px solid var(--hc-white);
  box-shadow: none;
  transition: all .2s;
}
body.highcontrast .val-btn:hover {
  background: #2a2a00;
  border-color: var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .val-btn:active {
  box-shadow: none;
}
body.highcontrast .val-btn.sel-pass,
body.highcontrast .val-btn.sel-yes,
body.highcontrast .val-btn.sel-good {
  background: #002a00;
  color: var(--green);
  border: 2px solid var(--green);
  box-shadow: none;
}
body.highcontrast .val-btn.sel-fail,
body.highcontrast .val-btn.sel-no,
body.highcontrast .val-btn.sel-bad {
  background: #2a0000;
  color: var(--red);
  border: 2px solid var(--red);
  box-shadow: none;
}
body.highcontrast .val-btn.sel-okay {
  background: #2a2a00;
  color: var(--hc-yellow);
  border: 2px solid var(--hc-yellow);
  box-shadow: none;
}


/* ── Decommission ────────────────────────────────────────── */
body.highcontrast .decom-btn {
  border: 2px solid var(--hc-white);
  background: var(--hc-surface);
  color: var(--hc-white);
  transition: all .2s;
}
body.highcontrast .decom-btn:hover {
  background: #2a2a00;
  border-color: var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .decom-btn.sel-removed {
  background: #002a00;
  color: var(--green);
  border-color: var(--green);
}
body.highcontrast .decom-btn.sel-not_found {
  background: #001a2a;
  color: var(--blue);
  border-color: var(--blue);
}
body.highcontrast .decom-btn.sel-skipped {
  background: #2a2a00;
  color: var(--hc-yellow);
  border-color: var(--hc-yellow);
}
body.highcontrast .decom-still-present { color: var(--red); }
body.highcontrast .decom-check-btn {
  border: 2px solid var(--hc-yellow);
  background: #2a2a00;
  color: var(--hc-yellow);
}
body.highcontrast .decom-notes {
  border: 2px solid var(--hc-white);
  background: var(--hc-black);
  color: var(--hc-white);
}


/* ── Charger toggle ──────────────────────────────────────── */
body.highcontrast .charger-btn {
  background: var(--hc-surface);
  border: 2px solid var(--hc-white);
}


/* ── Status badges: solid backgrounds, bright text ───────── */
body.highcontrast .badge-empty       { background: #2a2a2a; color: #999999; }
body.highcontrast .badge-available   { background: #002a00; color: var(--green); }
body.highcontrast .badge-staging     { background: #002244; color: var(--blue); }
body.highcontrast .badge-outgoing    { background: #220044; color: var(--purple); }
body.highcontrast .badge-ecycle      { background: #2a0000; color: var(--red); }
body.highcontrast .badge-incoming    { background: #002a2a; color: var(--teal); }
body.highcontrast .badge-in_progress { background: #2a2a00; color: var(--hc-yellow); }
body.highcontrast .shelf-tile::before { height: 4px; }
body.highcontrast .shelf-tile.in_progress::before { background: var(--hc-yellow); }
body.highcontrast .shelf-tile.in_progress .tile-status { color: var(--hc-yellow); }
body.highcontrast .badge-warning     { background: #2a0000; color: var(--red); }
body.highcontrast .badge-unknown     { background: #2a2a2a; color: var(--hc-gray); }

/* ── Tile badges & progress ─────────────────────────────── */
body.highcontrast .tile-progress-bar { background: #444444; }
body.highcontrast .tile-progress-heading { color: var(--hc-gray); }
body.highcontrast .tile-progress-count { color: var(--hc-gray); }
body.highcontrast .tile-decom-heading { color: var(--hc-gray); }
body.highcontrast .tile-decom-name { color: var(--hc-gray); }
body.highcontrast .tile-badge { border: 2px solid; font-weight: 800; }
body.highcontrast .tile-badge.decom-complete { background: #002a00; color: var(--green); border-color: var(--green); }
body.highcontrast .tile-badge.decom-partial  { background: #2a2a00; color: var(--hc-yellow); border-color: var(--hc-yellow); }
body.highcontrast .tile-badge.decom-pending  { background: #2a0000; color: var(--red); border-color: var(--red); }
body.highcontrast .tile-badge.spare       { background: #1a0033; color: var(--purple); border-color: var(--purple); }
body.highcontrast .tile-badge.new-user    { background: #002a00; color: var(--green); border-color: var(--green); }
body.highcontrast .tile-badge.replacement { background: #001a2a; color: var(--blue); border-color: var(--blue); }
body.highcontrast .tile-badge.user-spare  { background: #002a2a; color: var(--teal); border-color: var(--teal); }

/* ── CFG Pipeline ──────────────────────────────────────── */
body.highcontrast .cfg-step {
  border: 2px solid var(--hc-white);
  background: var(--hc-surface);
  color: var(--hc-white);
  font-weight: 700;
}
body.highcontrast .cfg-step:hover { border-color: var(--hc-yellow); }
body.highcontrast .cfg-step.checked {
  border-color: var(--hc-yellow);
  background: #2a2a00;
  color: var(--hc-yellow);
}
body.highcontrast .cfg-step input[type="checkbox"] { accent-color: var(--hc-yellow); }
body.highcontrast .cfg-pipeline h4 { color: var(--hc-gray); font-weight: 700; }
body.highcontrast .cfg-pipeline .cfg-counter { color: var(--hc-gray); font-weight: 700; }
body.highcontrast .cfg-progress { background: #444444; border: 1px solid var(--hc-white); }
body.highcontrast .cfg-progress-fill { background: var(--hc-yellow); }


/* ── Global view ─────────────────────────────────────────── */
body.highcontrast #global-wrap {
  background: var(--hc-surface);
  border: 2px solid var(--hc-white);
  margin: 6px;
  padding: 16px;
}
body.highcontrast .global-toolbar { background: var(--hc-surface); }
body.highcontrast .global-toolbar select,
body.highcontrast .global-toolbar input {
  background: var(--hc-black); border: 2px solid var(--hc-white); color: var(--hc-white);
}
body.highcontrast .global-toolbar input:focus,
body.highcontrast .global-toolbar select:focus { border-color: var(--hc-yellow); }
body.highcontrast .global-tenant-tile { border: 2px solid var(--hc-white); }
body.highcontrast .global-tenant-tile:hover { border-color: var(--hc-yellow); box-shadow: none; transform: none; }
body.highcontrast .global-tenant-tile.active { border-color: var(--hc-yellow); box-shadow: none; }
body.highcontrast .global-tile-name { color: var(--hc-white); font-weight: 700; }
body.highcontrast .global-tile-count { color: var(--hc-gray); font-weight: 600; }
body.highcontrast .global-tile-breakdown { color: var(--hc-gray); }
body.highcontrast .global-expanded-section { border: 2px solid var(--hc-yellow); background: var(--hc-surface); }
body.highcontrast .global-expanded-section::before { background: var(--hc-surface); border-color: var(--hc-yellow); border-width: 2px; }
body.highcontrast .global-expanded-header { color: var(--hc-yellow); border-bottom: 2px solid var(--hc-yellow); }
body.highcontrast .global-expanded-close { border: 2px solid var(--hc-white); color: var(--hc-gray); }
body.highcontrast .global-expanded-close:hover { color: var(--hc-yellow); border-color: var(--hc-yellow); }
body.highcontrast .global-device-row { border: 2px solid var(--hc-white); }
body.highcontrast .global-device-row:hover { border-color: var(--hc-yellow); background: #2a2a00; }
body.highcontrast .global-device-serial { color: var(--hc-white); }
body.highcontrast .global-device-name { color: var(--hc-gray); }
body.highcontrast .global-device-model { color: var(--hc-gray); }
body.highcontrast .global-row-actions button { border: 2px solid var(--hc-white); color: var(--hc-white); }
body.highcontrast .global-row-actions button:hover { border-color: var(--hc-yellow); color: var(--hc-yellow); }
body.highcontrast .global-row-links a { color: var(--hc-gray); border: 2px solid var(--hc-white); }
body.highcontrast .global-row-links a:hover { color: var(--hc-yellow); border-color: var(--hc-yellow); }
body.highcontrast .global-alpha-letter { color: #444444; }
body.highcontrast .global-alpha-letter.active { color: var(--hc-yellow); }
body.highcontrast .global-alpha-letter.active:hover { color: var(--hc-white); }
body.highcontrast .global-sub-header { color: var(--hc-white); }
body.highcontrast .global-sub-header:hover { color: var(--hc-yellow); }
body.highcontrast .global-type-header { color: var(--hc-white); font-weight: 700; }
body.highcontrast .global-type-header:hover { color: var(--hc-yellow); }
body.highcontrast .global-type-toggle { color: var(--hc-white); }
body.highcontrast .global-refresh-btn { background: #2a2a00; border: 2px solid var(--hc-yellow); color: var(--hc-yellow); }
body.highcontrast .global-refresh-btn:hover { background: #3a3a00; }
body.highcontrast .global-help-tag.inventoried { background: #002a00; color: var(--green); border: 2px solid var(--green); }
body.highcontrast .global-help-tag.monitored   { background: #2a2a00; color: var(--hc-yellow); border: 2px solid var(--hc-yellow); }
body.highcontrast .global-help-tag.cw_only     { background: #001a2a; color: var(--blue); border: 2px solid var(--blue); }
body.highcontrast .global-help-tag.cw_inactive { background: #2a0000; color: var(--red); border: 2px solid var(--red); }
body.highcontrast .global-device-tag { border: 1px solid; font-weight: 700; }
body.highcontrast .global-tag-inventoried { background: #002a00; color: var(--green); border-color: var(--green); }
body.highcontrast .global-tag-untracked   { background: #2a2a00; color: var(--hc-yellow); border-color: var(--hc-yellow); }
body.highcontrast .global-tag-cw_only     { background: #002244; color: var(--blue); border-color: var(--blue); }
body.highcontrast .global-tag-cw_inactive { background: #2a0000; color: var(--red); border-color: var(--red); }
body.highcontrast .global-tag-local_only { background: #1a002a; color: #c084fc; border-color: #c084fc; }
body.highcontrast .global-ingest-modal label { color: var(--hc-gray); }
body.highcontrast .global-ingest-modal input,
body.highcontrast .global-ingest-modal select {
  background: var(--hc-black); border: 2px solid var(--hc-white); color: var(--hc-white);
}
body.highcontrast .global-ingest-modal input:focus,
body.highcontrast .global-ingest-modal select:focus { border-color: var(--hc-yellow); box-shadow: none; }
body.highcontrast .global-ingest-modal input[readonly] { opacity: .5; }


/* ── Duplicate tables (shared by Audit) ──────────────────── */
body.highcontrast .dup-group-header { color: var(--hc-white); }
body.highcontrast .dup-group-header .dup-serial { color: var(--hc-yellow); }
body.highcontrast .dup-table th {
  color: var(--hc-yellow);
  background: var(--hc-black);
  border-bottom: 2px solid var(--hc-yellow);
  padding: 6px 10px;
  font-weight: 600;
  font-size: 10px;
}
body.highcontrast .dup-table td {
  border-bottom: 2px solid #444444;
  color: var(--hc-white);
}
body.highcontrast .dup-table tr:hover td { background: #2a2a00; }
body.highcontrast .dup-link { color: var(--hc-yellow); }


/* ── Audit tab ──────────────────────────────────────────── */
body.highcontrast #audit-wrap {
  background: var(--hc-surface);
  border: 2px solid var(--hc-white);
  margin: 6px;
  padding: 16px;
}
body.highcontrast .audit-nav { border-bottom: 2px solid #444444; }
body.highcontrast .audit-nav-btn {
  color: var(--hc-gray);
  border: 2px solid transparent;
}
body.highcontrast .audit-nav-btn:hover { background: #2a2a00; color: var(--hc-yellow); }
body.highcontrast .audit-nav-btn.active {
  color: var(--hc-yellow); border-color: var(--hc-yellow);
  background: #2a2a00; box-shadow: none;
}
body.highcontrast .audit-report-card {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
  box-shadow: none;
}
body.highcontrast .audit-report-card:hover {
  border-color: var(--hc-yellow); box-shadow: none;
}
body.highcontrast .audit-card-title { color: var(--hc-white); }
body.highcontrast .audit-card-desc { color: var(--hc-gray); }
body.highcontrast .audit-filter-group label { color: var(--hc-gray); }
body.highcontrast .audit-filter-group select,
body.highcontrast .audit-filter-group input {
  background: var(--hc-black); border: 2px solid var(--hc-white); color: var(--hc-white);
}
body.highcontrast .audit-filter-group select:focus,
body.highcontrast .audit-filter-group input:focus {
  border-color: var(--hc-yellow); box-shadow: none;
}
body.highcontrast .audit-btn {
  border: 2px solid var(--hc-white); color: var(--hc-white);
  background: var(--hc-surface); box-shadow: none;
}
body.highcontrast .audit-btn:hover { border-color: var(--hc-yellow); color: var(--hc-yellow); }
body.highcontrast .audit-btn-primary {
  background: #2a2a00; color: var(--hc-yellow);
  border-color: var(--hc-yellow); font-weight: 600;
}
body.highcontrast .audit-btn-primary:hover { background: #3a3a00; }
body.highcontrast .audit-btn-secondary { background: transparent; color: var(--hc-gray); border-color: #444444; }
body.highcontrast .audit-btn-secondary:hover { border-color: var(--hc-white); color: var(--hc-white); }
body.highcontrast .audit-results-header { border-bottom: 2px solid #444444; }
body.highcontrast .audit-results-header .audit-back-btn { color: var(--hc-gray); }
body.highcontrast .audit-results-header .audit-back-btn:hover { color: var(--hc-yellow); }
body.highcontrast .audit-results-title { color: var(--hc-yellow); }
body.highcontrast .audit-results-count { color: var(--hc-gray); }
body.highcontrast .audit-summary { color: var(--hc-gray); border-bottom: 2px solid #444444; }
body.highcontrast .audit-summary span strong { color: var(--hc-white); }
body.highcontrast .audit-table { background: var(--hc-black); }
body.highcontrast .audit-table th {
  color: var(--hc-yellow); background: var(--hc-black);
  border-bottom: 2px solid var(--hc-yellow); font-weight: 600;
}
body.highcontrast .audit-table td { border-bottom: 2px solid #444444; color: var(--hc-white); }
body.highcontrast .audit-table tr:hover td { background: #2a2a00; }
body.highcontrast .audit-loading { color: var(--hc-gray); }
body.highcontrast .audit-spinner { border-color: #444444; border-top-color: var(--hc-yellow); }
body.highcontrast .audit-empty { color: var(--hc-gray); }
body.highcontrast .audit-dup-section { border: 2px solid; padding: 16px; }
body.highcontrast .audit-dup-section.ninja-section { background: #001a2a; border-color: var(--blue); }
body.highcontrast .audit-dup-section.cw-section { background: #1a0033; border-color: var(--purple); }
body.highcontrast .audit-dup-section-header { border-bottom: 2px solid #444444; }
body.highcontrast .ninja-section .audit-dup-section-header { color: var(--blue); }
body.highcontrast .cw-section .audit-dup-section-header { color: var(--purple); }
body.highcontrast .audit-dup-stats { color: var(--hc-gray); border-bottom: 2px solid #444444; }
body.highcontrast .audit-dup-stats span strong { color: var(--hc-white); }
body.highcontrast .audit-dup-category-header { color: var(--hc-white); }
body.highcontrast .audit-no-dupes { color: #999999; }


/* ── List-view items ─────────────────────────────────────── */
body.highcontrast .outgoing-item {
  background: var(--hc-surface);
  border: 2px solid var(--hc-white);
  border-left: 3px solid var(--purple);
}
body.highcontrast .outgoing-item:hover {
  background: #220044;
  border-color: var(--hc-yellow);
  border-left-color: var(--purple);
}
body.highcontrast .ecycle-item {
  background: var(--hc-surface);
  border: 2px solid var(--hc-white);
  border-left: 3px solid var(--red);
}
body.highcontrast .ecycle-item:hover {
  background: #2a0000;
  border-color: var(--hc-yellow);
  border-left-color: var(--red);
}
body.highcontrast .group-list-item {
  background: var(--hc-surface);
  border: 2px solid var(--hc-white);
}
body.highcontrast .group-list-item:hover {
  border-color: var(--hc-yellow);
  background: #2a2a00;
}
body.highcontrast .group-list-item.drag-over {
  border: 3px solid var(--hc-yellow);
  background: #2a2a00;
  box-shadow: none;
}
body.highcontrast .incoming-item {
  background: var(--hc-surface);
  border: 2px solid var(--hc-white);
  border-left: 3px solid var(--teal);
}
body.highcontrast .incoming-item:hover {
  background: #002a2a;
  border-color: var(--hc-yellow);
  border-left-color: var(--teal);
}

/* ── Queue empties ───────────────────────────────────────── */
body.highcontrast .outgoing-queue-empty,
body.highcontrast .ecycle-queue-empty,
body.highcontrast .group-list-empty,
body.highcontrast .incoming-queue-empty { color: #999999; }


/* ── Global panel: high-visibility sidebar ──────────────── */
body.highcontrast #global-panel {
  background: var(--hc-surface);
  border-left: 2px solid var(--hc-white);
  box-shadow: none;
}
body.highcontrast .global-panel-header { border-bottom: 2px solid var(--hc-white); }
body.highcontrast .global-panel-section { border-bottom: 2px solid #444444; }
body.highcontrast .global-panel-section h4 { color: var(--hc-yellow); font-weight: 700; }
body.highcontrast .gp-tenant-input, body.highcontrast .gp-notes-input {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
  color: var(--hc-white);
}
body.highcontrast .gp-tenant-input:focus, body.highcontrast .gp-notes-input:focus {
  border-color: var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .global-device-row.selected { border-color: var(--hc-yellow); background: #2a2a00; }
body.highcontrast .gp-save-btn {
  background: #2a2a00; color: var(--hc-yellow);
  border: 2px solid var(--hc-yellow);
}
body.highcontrast .gp-save-btn:hover { background: #3a3a00; }
body.highcontrast .global-tag-needs-rmm { background: #2a0000; color: var(--red); border: 2px solid var(--red); font-weight: 700; }
body.highcontrast .gp-compliance-notice { background: #2a0000; border: 2px solid var(--red); color: var(--red); font-weight: 700; }
body.highcontrast .global-tag-spare { background: #00002a; color: #8080ff; border: 2px solid #8080ff; font-weight: 700; }
body.highcontrast .global-tag-server { background: #1a002a; color: #cc80ff; border: 2px solid #cc80ff; font-weight: 700; }
body.highcontrast .gp-cw-status-notice { background: #2a2a00; border: 2px solid var(--amber); color: var(--amber); font-weight: 700; }


/* ── Bench view: high-visibility workbench ───────────────── */
body.highcontrast .bench-card {
  background: var(--hc-surface);
  border: 2px solid var(--hc-white);
  box-shadow: none;
}
body.highcontrast .bench-card:hover {
  border-color: var(--hc-yellow);
}
body.highcontrast .bench-card h3 {
  background: var(--hc-black);
  border-bottom: 2px solid var(--hc-yellow);
  color: var(--hc-yellow);
  font-weight: 700;
  font-size: 15px;
}
body.highcontrast .bench-back-btn {
  border: 2px solid var(--hc-white);
  color: var(--hc-white);
}
body.highcontrast .bench-back-btn:hover {
  border-color: var(--hc-yellow);
  color: var(--hc-yellow);
}
body.highcontrast .bench-header { border-bottom: 2px solid var(--hc-yellow); }
body.highcontrast .bench-info-table td { color: var(--hc-white); font-size: 14px; font-weight: 600; }
body.highcontrast .bench-info-table td:first-child { color: var(--hc-gray); }
body.highcontrast .bench-check-item { border-bottom: 2px solid #444444; font-size: 14px; font-weight: 600; }
body.highcontrast .bench-check-dot { width: 12px; height: 12px; }
body.highcontrast .bench-check-dot.ok { background: var(--green); }
body.highcontrast .bench-check-dot.warn { background: var(--hc-yellow); }
body.highcontrast .bench-check-dot.error { background: var(--red); }
body.highcontrast .bench-check-dot.pending { background: #666666; opacity: 1; }
body.highcontrast .bench-integ-row { border-bottom: 2px solid #444444; font-size: 14px; font-weight: 600; }
body.highcontrast .bench-integ-dot { width: 10px; height: 10px; }
body.highcontrast .bench-integ-dot.ok { background: var(--green); }
body.highcontrast .bench-integ-dot.warn { background: var(--hc-yellow); }
body.highcontrast .bench-integ-dot.error { background: var(--red); }
body.highcontrast .bench-integ-dot.none { background: #666666; opacity: 1; }
body.highcontrast .bench-integ-name { color: var(--hc-gray); font-weight: 700; }
body.highcontrast .bench-log-action { color: var(--hc-yellow); font-weight: 700; }
body.highcontrast .bench-log-time { color: var(--hc-gray); }
body.highcontrast .bench-log-user { color: var(--hc-gray); }
body.highcontrast .bench-log-entry { border-bottom: 2px solid #444444; font-size: 13px; font-weight: 600; }
body.highcontrast .bench-skeleton { background: #444444; }
body.highcontrast #bench-oldmachine-card h3 { color: var(--purple); font-weight: 700; }
body.highcontrast .bench-oldmachine-search input {
  border: 2px solid var(--hc-gray); font-size: 14px; font-weight: 600; color: var(--hc-white); background: #000;
}
body.highcontrast .bench-oldmachine-search input:focus { border-color: var(--hc-yellow); outline: 3px solid var(--hc-yellow); }
body.highcontrast .bench-oldmachine-device {
  border: 2px solid var(--hc-gray); font-size: 13px; font-weight: 600;
}
body.highcontrast .bench-oldmachine-device:hover { border-color: var(--hc-yellow); background: #222; }
body.highcontrast .bench-oldmachine-device .device-name { color: var(--hc-white); font-weight: 700; }
body.highcontrast .bench-oldmachine-device .device-serial { color: var(--hc-gray); }
body.highcontrast .bench-oldmachine-device .device-org { color: var(--hc-gray); }
body.highcontrast .bench-sw-row { border-bottom: 2px solid #444444; font-size: 13px; font-weight: 600; }
body.highcontrast .bench-sw-name { color: var(--hc-white); font-weight: 700; }
body.highcontrast .bench-sw-ver { color: var(--hc-gray); }
body.highcontrast .bench-sw-pub { color: var(--hc-gray); }
body.highcontrast .bench-sw-count { color: var(--hc-gray); font-size: 13px; font-weight: 700; }
body.highcontrast #bench-ai-analysis-card h3 { color: var(--purple); font-weight: 700; }
body.highcontrast .bench-ai-result { font-size: 14px; font-weight: 600; color: var(--hc-white); }
body.highcontrast .bench-ai-spinner { border: 3px solid #444444; border-top-color: var(--hc-yellow); }
body.highcontrast .bench-ai-ticket-section { border-top: 2px solid #444444; }
body.highcontrast .bench-ai-ticket-label { color: var(--hc-gray); font-weight: 700; font-size: 12px; }
body.highcontrast #bench-ai-ticket-summary { font-size: 14px; font-weight: 600; color: var(--hc-white); }
body.highcontrast .bench-running-session { border: 2px solid var(--hc-yellow); background: #222; }
body.highcontrast .bench-deploy-group-header { border-bottom: 2px solid #444444; color: var(--hc-gray); font-size: 13px; font-weight: 700; }
body.highcontrast .bench-deploy-group-header .count-badge { border: 2px solid var(--hc-gray); font-weight: 700; }
body.highcontrast .bench-deploy-progress { height: 8px; background: #444444; border: 2px solid var(--hc-gray); }
body.highcontrast .bench-deploy-progress-fill { border-radius: 0; }


/* ── Tab badge: black on yellow, thick border ────────────── */
body.highcontrast .tab-badge {
  background: var(--hc-yellow);
  color: var(--hc-black);
  border: 2px solid var(--hc-black);
  border-radius: 2px;
  font-family: var(--mono);
  font-weight: 700;
  font-size: 11px;
  height: 18px; min-width: 20px;
  padding: 0 5px;
}
body.highcontrast .tab-btn.active .tab-badge {
  background: var(--hc-black);
  color: var(--hc-yellow);
  border-color: var(--hc-yellow);
}


/* ── Context menu: stark black with yellow border ────────── */
body.highcontrast .context-menu {
  background: var(--hc-black);
  border: 2px solid var(--hc-yellow);
  border-radius: 2px;
  box-shadow: none;
  padding: 0;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 600;
}
body.highcontrast .context-menu-item {
  color: var(--hc-white);
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 600;
  border-radius: 0;
  border-bottom: 1px solid var(--hc-white);
  padding: 9px 14px;
}
body.highcontrast .context-menu-item:last-child { border-bottom: none; }
body.highcontrast .context-menu-item:hover:not(:disabled) {
  background: var(--hc-yellow);
  color: var(--hc-black);
}
body.highcontrast .context-menu-item:focus-visible {
  outline-offset: -3px;
}
body.highcontrast .context-menu-item:disabled {
  color: var(--hc-gray); opacity: 1;
  text-decoration: line-through;
}
body.highcontrast .context-menu-item.danger {
  color: var(--red);
}
body.highcontrast .context-menu-item.danger:hover:not(:disabled) {
  background: var(--red);
  color: var(--hc-black);
}
body.highcontrast .context-menu-divider {
  background: var(--hc-yellow);
  height: 2px;
  margin: 0;
}


/* ── Bench tray: high-contrast workbench list ────────────── */
body.highcontrast #bench-tray-view { padding: 16px; }
body.highcontrast .bench-tray-header {
  border-bottom: 2px solid var(--hc-yellow);
  padding-bottom: 14px;
}
body.highcontrast .bench-tray-header h2 {
  color: var(--hc-white);
  font-size: 20px;
  font-weight: 700;
}
body.highcontrast .bench-tray-meta {
  color: var(--hc-gray);
  font-size: 13px;
  font-weight: 600;
}
body.highcontrast .bench-tray-loading {
  color: var(--hc-white);
  font-size: 14px;
  font-weight: 600;
}
body.highcontrast .bench-tray-empty-title {
  color: var(--hc-white);
  font-size: 16px;
  font-weight: 700;
}
body.highcontrast .bench-tray-empty-sub {
  color: var(--hc-gray);
  font-size: 14px;
  font-weight: 600;
}
body.highcontrast .bench-tray-empty-mini {
  color: var(--hc-gray);
  font-size: 13px;
  font-weight: 600;
  font-style: normal;
}
body.highcontrast .bench-tray-group {
  background: var(--hc-surface);
  border: 2px solid var(--hc-white);
  border-radius: 2px;
  box-shadow: none;
}
body.highcontrast .bench-tray-group.is-self {
  border-color: var(--hc-yellow);
  border-width: 3px;
}
body.highcontrast .bench-tray-group-header {
  background: var(--hc-black);
  border-bottom: 2px solid var(--hc-white);
  padding: 12px 14px;
}
body.highcontrast .bench-tray-group-header:hover {
  background: #222222;
}
body.highcontrast .bench-tray-group.is-self .bench-tray-group-header {
  border-bottom-color: var(--hc-yellow);
}
body.highcontrast .bench-tray-chevron {
  color: var(--hc-yellow);
  font-weight: 700;
  font-size: 13px;
}
body.highcontrast .bench-tray-avatar {
  background: var(--hc-black);
  color: var(--hc-white);
  border: 2px solid var(--hc-white);
  border-radius: 50%;
  font-weight: 700;
  font-size: 12px;
  width: 28px; height: 28px;
}
body.highcontrast .bench-tray-group.is-self .bench-tray-avatar {
  background: var(--hc-yellow);
  color: var(--hc-black);
  border-color: var(--hc-yellow);
}
body.highcontrast .bench-tray-user {
  color: var(--hc-white);
  font-size: 15px;
  font-weight: 700;
}
body.highcontrast .bench-tray-count {
  color: var(--hc-gray);
  font-size: 13px;
  font-weight: 700;
}
body.highcontrast .bench-tray-stale-count {
  color: var(--hc-yellow);
  font-weight: 700;
}
body.highcontrast .bench-tray-pin {
  border-bottom: 2px solid #444444;
  padding: 12px 14px;
}
body.highcontrast .bench-tray-pin:last-child { border-bottom: none; }
body.highcontrast .bench-tray-pin:hover {
  background: #222222;
}
body.highcontrast .bench-tray-pin:focus-visible {
  outline-offset: -3px;
}
body.highcontrast .bench-tray-pin-label {
  color: var(--hc-white);
  font-size: 14px;
  font-weight: 700;
}
body.highcontrast .bench-tray-pin-tenant {
  color: var(--teal);
  font-size: 12px;
  font-weight: 700;
}
body.highcontrast .bench-tray-pin-time {
  color: var(--hc-gray);
  font-size: 12px;
  font-weight: 600;
}
body.highcontrast .bench-tray-pin-stale {
  background: var(--hc-yellow);
  color: var(--hc-black);
  border: 2px solid var(--hc-black);
  border-radius: 2px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 2px 6px;
}
body.highcontrast .bench-tray-pin-note {
  color: var(--hc-gray);
  font-size: 12px;
  font-weight: 600;
  font-style: normal;
  border-top: 1px solid #444444;
  padding-top: 6px;
  margin-top: 6px;
}

/* ── Pin Note card — yellow/black private-note framing ───── */
body.highcontrast .bench-pin-note-card {
  background: var(--hc-surface);
  border: 2px solid var(--hc-yellow);
  box-shadow: none;
}
body.highcontrast .bench-pin-note-card:hover {
  border-color: var(--hc-yellow);
}
body.highcontrast .bench-pin-note-card h3 {
  background: var(--hc-black);
  border-bottom: 2px solid var(--hc-yellow);
  color: var(--hc-yellow);
  font-weight: 800;
  font-size: 15px;
}
body.highcontrast .bench-pin-note-hint {
  color: var(--hc-gray);
  font-size: 12px;
  font-weight: 700;
  font-style: normal;
  text-transform: none;
  letter-spacing: 0;
}
body.highcontrast #bench-pin-note-text {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
  color: var(--hc-white);
  font-size: 14px;
  font-weight: 600;
  border-radius: 0;
}
body.highcontrast #bench-pin-note-text::placeholder {
  color: var(--hc-gray);
}
body.highcontrast #bench-pin-note-text:focus {
  border-color: var(--hc-yellow);
  outline: 3px solid var(--hc-yellow);
  outline-offset: 0;
}
body.highcontrast #bench-pin-note-save-btn {
  background: var(--hc-black);
  color: var(--hc-yellow);
  border: 2px solid var(--hc-yellow);
  border-radius: 0;
  font-weight: 700;
  font-size: 13px;
  padding: 6px 14px;
}
body.highcontrast #bench-pin-note-save-btn:hover {
  background: var(--hc-yellow);
  color: var(--hc-black);
}
body.highcontrast #bench-pin-note-save-btn:focus-visible {
  outline: 3px solid var(--hc-yellow);
  outline-offset: 2px;
}
body.highcontrast .bench-pin-note-status {
  color: var(--hc-white);
  font-size: 13px;
  font-weight: 700;
}
body.highcontrast .bench-pin-note-status.saved {
  background: var(--hc-yellow);
  color: var(--hc-black);
  border: 2px solid var(--hc-black);
  padding: 2px 8px;
}
body.highcontrast .bench-pin-note-status.error {
  background: var(--red);
  color: var(--hc-black);
  border: 2px solid var(--hc-black);
  padding: 2px 8px;
}

/* ── Disposition (Phase 3) — saturated fills, thick borders, bold text ── */
body.highcontrast .disposition-chip,
body.highcontrast .disposition-badge {
  font-weight: 800;
  letter-spacing: 0.08em;
  border-radius: 0;
  border-width: 2px;
  border-style: solid;
  padding: 2px 7px;
}
body.highcontrast .disposition-chip { font-size: 11px; }
body.highcontrast .disposition-badge { font-size: 13px; padding: 4px 10px; }

/* High-saturation fills with strong borders for AAA contrast */
body.highcontrast .disposition-chip.disposition-deploy,
body.highcontrast .disposition-badge.disposition-deploy,
body.highcontrast .disposition-picker-btn.disposition-deploy,
body.highcontrast .disposition-option-pill.disposition-deploy {
  background: #66aaff;
  color: var(--hc-black);
  border-color: var(--hc-black);
}
body.highcontrast .disposition-chip.disposition-spare,
body.highcontrast .disposition-badge.disposition-spare,
body.highcontrast .disposition-picker-btn.disposition-spare,
body.highcontrast .disposition-option-pill.disposition-spare {
  background: var(--hc-white);
  color: var(--hc-black);
  border-color: var(--hc-black);
}
body.highcontrast .disposition-chip.disposition-decom,
body.highcontrast .disposition-badge.disposition-decom,
body.highcontrast .disposition-picker-btn.disposition-decom,
body.highcontrast .disposition-option-pill.disposition-decom {
  background: #ff4444;
  color: var(--hc-black);
  border-color: var(--hc-black);
}
body.highcontrast .disposition-chip.disposition-rma,
body.highcontrast .disposition-badge.disposition-rma,
body.highcontrast .disposition-picker-btn.disposition-rma,
body.highcontrast .disposition-option-pill.disposition-rma {
  background: var(--hc-yellow);
  color: var(--hc-black);
  border-color: var(--hc-black);
}
body.highcontrast .disposition-chip.disposition-diagnostic,
body.highcontrast .disposition-badge.disposition-diagnostic,
body.highcontrast .disposition-picker-btn.disposition-diagnostic,
body.highcontrast .disposition-option-pill.disposition-diagnostic {
  background: #cc99ff;
  color: var(--hc-black);
  border-color: var(--hc-black);
}

/* Picker modal — heavy fieldset, large readable rows */
body.highcontrast .modal .disposition-fieldset {
  border: 2px solid var(--hc-yellow);
  border-radius: 0;
  background: var(--hc-surface);
  padding: 10px 14px 12px;
}
body.highcontrast .modal .disposition-fieldset legend {
  background: var(--hc-black);
  color: var(--hc-yellow);
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 0.12em;
  padding: 2px 8px;
  border: 2px solid var(--hc-yellow);
}
body.highcontrast .modal .modal-subtitle {
  color: var(--hc-white);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0;
}
body.highcontrast .modal .modal-required {
  color: var(--hc-yellow);
  font-weight: 800;
}
body.highcontrast .modal .disposition-option {
  border-radius: 0;
  border: 2px solid transparent;
  padding: 8px 10px;
}
body.highcontrast .modal .disposition-option:hover {
  background: var(--hc-yellow);
  border-color: var(--hc-black);
}
body.highcontrast .modal .disposition-option:hover .disposition-option-desc {
  color: var(--hc-black);
}
body.highcontrast .modal .disposition-option:hover .disposition-option-pill {
  filter: none;
}
body.highcontrast .modal .disposition-option:focus-within {
  outline: 3px solid var(--hc-yellow);
  outline-offset: 2px;
}
body.highcontrast .modal .disposition-option input[type="radio"] {
  accent-color: var(--hc-yellow);
  width: 18px; height: 18px;
}
body.highcontrast .modal .disposition-option-pill {
  font-weight: 800;
  letter-spacing: 0.08em;
  border-radius: 0;
  border-width: 2px;
  border-style: solid;
  padding: 2px 8px;
  font-size: 12px;
}
body.highcontrast .modal .disposition-option-desc {
  color: var(--hc-white);
  font-size: 14px;
  font-weight: 600;
}

/* Inline disposition row — yellow separator */
body.highcontrast .bench-disposition-row {
  border-right: 2px solid var(--hc-yellow);
  font-size: 13px;
  font-weight: 700;
}
body.highcontrast .bench-disposition-label {
  color: var(--hc-yellow);
  font-weight: 800;
  font-size: 12px;
  letter-spacing: 0.12em;
}
body.highcontrast .bench-disposition-ticket {
  color: var(--hc-white);
  font-weight: 700;
  font-size: 12px;
}
body.highcontrast .btn-link,
body.highcontrast .bench-disposition-change-btn {
  color: var(--hc-yellow);
  font-weight: 800;
  font-size: 13px;
  text-decoration: underline;
}
body.highcontrast .btn-link:hover,
body.highcontrast .bench-disposition-change-btn:hover {
  color: var(--hc-white);
}
body.highcontrast .btn-link:focus-visible,
body.highcontrast .bench-disposition-change-btn:focus-visible {
  outline: 3px solid var(--hc-yellow);
  outline-offset: 2px;
}
body.highcontrast .bench-disposition-picker-wrap {
  border-top: 2px solid var(--hc-yellow);
}
body.highcontrast .disposition-picker-btn {
  border-radius: 0;
  border-width: 2px;
  border-style: solid;
  font-weight: 800;
  letter-spacing: 0.08em;
  padding: 5px 12px;
  font-size: 12px;
}
body.highcontrast .disposition-picker-btn:hover { filter: none; opacity: 0.9; }
body.highcontrast .disposition-picker-btn:focus-visible {
  outline: 3px solid var(--hc-yellow);
  outline-offset: 2px;
}
body.highcontrast .disposition-picker-btn.active {
  box-shadow: none;
  outline: 3px solid var(--hc-yellow);
  outline-offset: 2px;
}

/* Resolve panel + discard escape hatch */
body.highcontrast .bench-resolve-panel label {
  color: var(--hc-yellow);
  font-weight: 800;
  letter-spacing: 0.12em;
  font-size: 12px;
}
body.highcontrast .bench-resolve-panel input[type="text"] {
  background: var(--hc-black);
  border: 2px solid var(--hc-white);
  border-radius: 0;
  color: var(--hc-white);
  font-size: 14px;
  font-weight: 600;
  padding: 8px 10px;
}
body.highcontrast .bench-resolve-panel input[type="text"]::placeholder {
  color: var(--hc-gray);
}
body.highcontrast .bench-resolve-panel input[type="text"]:focus {
  border-color: var(--hc-yellow);
  outline: 3px solid var(--hc-yellow);
  outline-offset: 0;
}
body.highcontrast .bench-resolve-discard {
  border-top: 2px solid var(--hc-yellow);
  padding-top: 12px;
}
body.highcontrast .bench-discard-link {
  color: #ff6666;
  font-weight: 800;
  font-size: 13px;
  text-decoration: underline;
}
body.highcontrast .bench-discard-link:hover {
  color: var(--hc-white);
  background: #ff4444;
  padding: 2px 6px;
  border: 2px solid var(--hc-black);
}
body.highcontrast .bench-discard-link:focus-visible {
  outline: 3px solid var(--hc-yellow);
  outline-offset: 2px;
}
body.highcontrast .bench-discard-hint {
  color: var(--hc-white);
  font-size: 12px;
  font-weight: 700;
  font-style: normal;
}
