/* Anubis Workbench → Bootstrap 5.3 token bridge (v2, dark-first).
   Load AFTER bootstrap.min.css. Only semantic tokens appear here; never a literal hex in a component.
   Theme is driven by data-bs-theme on <html>. Dark is the analyst default; light is a first-class alternative. */

/* ---- Dark (default) ---- */
:root, [data-bs-theme="dark"] {
  --color-canvas:#0B1C24;        /* Graphite: page ground */
  --color-surface:#10252E;       /* panels */
  --color-surface-raised:#142C36;/* cards, inspector, popovers */
  --color-surface-muted:#1B3540; /* wells, table header, selected row */
  --color-border:#4A6472;        /* functional borders (3:1 on surface) */
  --color-border-decorative:#24404B; /* hairlines */
  --color-text:#E6EEF2;          /* Ice-ish primary text */
  --color-text-muted:#9FB3BE;    /* 5.9:1 on canvas */
  --color-text-faint:#6F8793;    /* labels only, never values */
  --color-primary:#00E6C3;       /* Mint: selection, focus, active trace. Never decoration. */
  --color-primary-on:#0B1C24;
  --color-primary-border:#00E6C3;
  --color-primary-dim:rgba(0,230,195,.14);
  --color-link:#5FE8D3;
  --color-focus:#00E6C3;
  --color-success:#83D2AA; --color-warning:#F4C26C; --color-danger:#FF9B99; --color-info:#9FD1F0;
  --map-layer-1:#9FD1F0; --map-layer-2:#F4C26C; --map-layer-3:#83D2AA; --map-layer-4:#D9A6E6; --map-layer-5:#FF9B99; --map-layer-6:#B6C9D0; --map-layer-7:#C5D86D; --map-layer-8:#F2A0C4;
  --map-aoi:var(--color-primary); --map-candidate:var(--color-info); --map-estimated:var(--color-text-muted);
  --map-basemap-land:#132A33; --map-basemap-water:#0D2029; --map-basemap-line:#1E3842; --map-grid:#17323C;
  --classification-bg:#1B3540; --classification-fg:#E6EEF2;
  --radius-small:2px; --radius-control:4px; --radius-card:6px;  /* workbench: tighter radii than the brand pack's marketing surfaces */
  --control-min-height:32px; --row-height:28px;
  --font-display:"Inter Display","Inter",system-ui,sans-serif; --font-body:"Inter",system-ui,sans-serif;
  --font-data:"Space Mono",ui-monospace,"SFMono-Regular",Consolas,monospace;
}
/* ---- Light ---- */
[data-bs-theme="light"] {
  --color-canvas:#EEF3F6; --color-surface:#F6F9FB; --color-surface-raised:#FFFFFF; --color-surface-muted:#E3EBEF;
  --color-border:#657D8B; --color-border-decorative:#CEDAE0;
  --color-text:#0B1C24; --color-text-muted:#4E6270; --color-text-faint:#6F8793;
  --color-primary:#00E6C3; --color-primary-on:#0B1C24; --color-primary-border:#006B5B; --color-primary-dim:rgba(0,107,91,.12);
  --color-link:#006B5B; --color-focus:#006B5B;
  --color-success:#176341; --color-warning:#8A4A00; --color-danger:#A62929; --color-info:#245B83;
  --map-layer-1:#245B83; --map-layer-2:#8A4A00; --map-layer-3:#176341; --map-layer-4:#6B2A7A; --map-layer-5:#A62929; --map-layer-6:#4E6270; --map-layer-7:#5F6F12; --map-layer-8:#9A2F63;
  --map-aoi:var(--color-primary-border); --map-candidate:var(--color-info); --map-estimated:var(--color-text-muted);
  --map-basemap-land:#E3EBEF; --map-basemap-water:#D3E1E8; --map-basemap-line:#C4D3DB; --map-grid:#CBD9E0;
  --classification-bg:#0B1C24; --classification-fg:#E6EEF2;
}

/* ---- Bootstrap variables mapped to tokens ---- */
:root, [data-bs-theme="dark"], [data-bs-theme="light"] {
  --bs-body-bg:var(--color-canvas); --bs-body-color:var(--color-text);
  --bs-secondary-color:var(--color-text-muted); --bs-tertiary-bg:var(--color-surface-muted); --bs-secondary-bg:var(--color-surface-muted);
  --bs-border-color:var(--color-border-decorative); --bs-border-color-translucent:var(--color-border-decorative);
  --bs-link-color:var(--color-link); --bs-link-hover-color:var(--color-link);
  --bs-body-font-family:var(--font-body); --bs-font-monospace:var(--font-data);
  --bs-body-font-size:.8125rem; --bs-body-line-height:1.45;
  --bs-border-radius:var(--radius-control); --bs-border-radius-sm:var(--radius-small); --bs-border-radius-lg:var(--radius-card);
  --bs-success:var(--color-success); --bs-warning:var(--color-warning); --bs-danger:var(--color-danger); --bs-info:var(--color-info);
  --bs-emphasis-color:var(--color-text); --bs-heading-color:var(--color-text);
  --bs-focus-ring-color:transparent;
}
h1,h2,h3,.h1,.h2,.h3 { font-family:var(--font-display); letter-spacing:-.01em; }
.bg-surface { background:var(--color-surface) !important; }
.bg-raised { background:var(--color-surface-raised) !important; }
.text-secondary { color:var(--color-text-muted) !important; }
.text-faint { color:var(--color-text-faint) !important; }
.font-data { font-family:var(--font-data); font-variant-numeric:tabular-nums; font-size:.92em; }
.label { font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--color-text-faint); }
:focus-visible { outline:2px solid var(--color-focus); outline-offset:2px; box-shadow:none !important; }

/* Buttons: mint is the single accent, used for the one primary action per panel */
.btn { --bs-btn-padding-y:.3rem; --bs-btn-padding-x:.7rem; --bs-btn-font-size:.8125rem; --bs-btn-border-radius:var(--radius-control); }
.btn-sm { --bs-btn-padding-y:.15rem; --bs-btn-padding-x:.5rem; --bs-btn-font-size:.75rem; }
.btn-anb-primary { --bs-btn-bg:var(--color-primary); --bs-btn-color:var(--color-primary-on); --bs-btn-border-color:var(--color-primary);
  --bs-btn-hover-bg:var(--color-primary); --bs-btn-hover-color:var(--color-primary-on); --bs-btn-hover-border-color:var(--color-primary);
  --bs-btn-active-bg:var(--color-primary); --bs-btn-active-color:var(--color-primary-on); --bs-btn-disabled-bg:var(--color-primary); --bs-btn-disabled-color:var(--color-primary-on); --bs-btn-disabled-border-color:var(--color-primary);
  --bs-btn-font-weight:600; min-height:var(--control-min-height); }
.btn-anb-secondary { --bs-btn-bg:transparent; --bs-btn-color:var(--color-text); --bs-btn-border-color:var(--color-border);
  --bs-btn-hover-bg:var(--color-surface-muted); --bs-btn-hover-color:var(--color-text); --bs-btn-hover-border-color:var(--color-border);
  --bs-btn-active-bg:var(--color-primary-dim); --bs-btn-active-color:var(--color-text); --bs-btn-active-border-color:var(--color-primary-border);
  --bs-btn-disabled-bg:transparent; --bs-btn-disabled-color:var(--color-text-faint); --bs-btn-disabled-border-color:var(--color-border-decorative); min-height:var(--control-min-height); }
.btn-sm.btn-anb-primary, .btn-sm.btn-anb-secondary { min-height:26px; }
.btn-link { --bs-btn-color:var(--color-link); --bs-btn-hover-color:var(--color-link); text-decoration:none; }

/* Forms: compact, flat, bordered */
.form-control, .form-select { background-color:var(--color-canvas); color:var(--color-text); border-color:var(--color-border); min-height:var(--control-min-height); font-size:.8125rem; padding:.3rem .5rem; }
[data-bs-theme="light"] .form-control, [data-bs-theme="light"] .form-select { background-color:var(--color-surface-raised); }
.form-control-sm, .form-select-sm { min-height:28px; font-size:.75rem; }
.form-control::placeholder { color:var(--color-text-faint); opacity:1; }
.form-check-input { border-color:var(--color-border); background-color:var(--color-canvas); width:14px; height:14px; margin-top:.2em; }
.form-check-input:checked { background-color:var(--color-primary); border-color:var(--color-primary); }
.form-check-input:checked[type=checkbox] { --bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%230B1C24' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); }
.form-switch .form-check-input { width:26px; }
.form-range::-webkit-slider-thumb { background:var(--color-primary); border:0; }
.form-range::-moz-range-thumb { background:var(--color-primary); border:0; }
.form-range::-webkit-slider-runnable-track { background:var(--color-border-decorative); }
.input-group-text { background:var(--color-surface-muted); color:var(--color-text-muted); border-color:var(--color-border); font-size:.8125rem; }
.form-label { font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--color-text-faint); margin-bottom:.2rem; }

/* Navigation: active = 2px mint underline (or left bar), never a filled blue pill */
.nav-underline { --bs-nav-underline-gap:1rem; --bs-nav-underline-border-width:2px; --bs-nav-underline-link-active-color:var(--color-text); --bs-nav-link-color:var(--color-text-muted); --bs-nav-link-hover-color:var(--color-text); --bs-nav-link-font-size:.8125rem; --bs-nav-link-padding-y:.4rem; }
.nav-underline .nav-link.active, .nav-underline .show > .nav-link { border-bottom-color:var(--color-primary); font-weight:600; }
.nav-tabs { --bs-nav-tabs-border-color:var(--color-border-decorative); --bs-nav-tabs-link-active-bg:transparent; --bs-nav-tabs-link-active-color:var(--color-text);
  --bs-nav-tabs-link-active-border-color:transparent transparent var(--color-primary); --bs-nav-tabs-link-hover-border-color:transparent; --bs-nav-link-color:var(--color-text-muted); --bs-nav-link-font-size:.75rem; --bs-nav-link-padding-y:.35rem; --bs-nav-link-padding-x:.6rem; }
.nav-tabs .nav-link { border-width:0 0 2px; margin-bottom:-1px; }
.nav-tabs .nav-link.active { font-weight:600; }
.nav-pills { --bs-nav-pills-link-active-bg:var(--color-primary-dim); --bs-nav-pills-link-active-color:var(--color-text); --bs-nav-link-color:var(--color-text-muted); --bs-nav-pills-border-radius:var(--radius-control); --bs-nav-link-font-size:.75rem; --bs-nav-link-padding-y:.25rem; --bs-nav-link-padding-x:.5rem; }
.nav-pills .nav-link.active { font-weight:600; box-shadow:inset 0 0 0 1px var(--color-primary-border); }

/* Surfaces */
.card { --bs-card-bg:var(--color-surface-raised); --bs-card-border-color:var(--color-border-decorative); --bs-card-border-radius:var(--radius-card); --bs-card-inner-border-radius:calc(var(--radius-card) - 1px); --bs-card-spacer-y:.6rem; --bs-card-spacer-x:.75rem; }
.card.is-selected { border-color:var(--color-primary); box-shadow:inset 2px 0 0 var(--color-primary); }
.modal { --bs-modal-bg:var(--color-surface-raised); --bs-modal-border-color:var(--color-border); --bs-modal-border-radius:var(--radius-card); --bs-modal-color:var(--color-text); }
.modal-backdrop { --bs-backdrop-bg:#000; --bs-backdrop-opacity:.6; }
.table { --bs-table-bg:transparent; --bs-table-color:var(--color-text); --bs-table-border-color:var(--color-border-decorative);
  --bs-table-hover-bg:var(--color-surface-muted); --bs-table-hover-color:var(--color-text); --bs-table-active-bg:var(--color-primary-dim); --bs-table-active-color:var(--color-text); font-size:.75rem; }
.table > :not(caption) > * > * { padding:.3rem .6rem; }
.table > thead th { color:var(--color-text-faint); font-weight:600; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; background:var(--color-surface); }
.table-active > td:first-child { box-shadow:inset 2px 0 0 var(--color-primary); }
.badge.text-bg-light { background:transparent !important; color:var(--color-text-muted) !important; border:1px solid var(--color-border-decorative); font-weight:500; font-size:10px; letter-spacing:.02em; padding:.15em .4em; }
.progress { --bs-progress-bg:var(--color-border-decorative); --bs-progress-bar-bg:var(--color-info); --bs-progress-border-radius:2px; }
.list-group { --bs-list-group-bg:var(--color-surface-raised); --bs-list-group-color:var(--color-text); --bs-list-group-border-color:var(--color-border-decorative); --bs-list-group-border-radius:var(--radius-card); }

/* Anubis components with no Bootstrap equivalent */
.anb-pill { display:inline-flex; align-items:center; gap:6px; padding:1px 8px 1px 6px; border-radius:2px; background:var(--color-surface-muted); border:1px solid var(--color-border-decorative); font-size:11px; font-weight:500; white-space:nowrap; color:var(--color-text); }
.anb-pill .dot { width:6px; height:6px; border-radius:50%; background:var(--color-text-muted); }
.anb-pill.success .dot{background:var(--color-success)} .anb-pill.warning .dot{background:var(--color-warning)}
.anb-pill.danger .dot{background:var(--color-danger)} .anb-pill.info .dot{background:var(--color-info)} .anb-pill.mint .dot{background:var(--color-primary)}
.anb-notice { padding:8px 10px; background:var(--color-surface-muted); border-left:2px solid var(--color-info); font-size:11.5px; line-height:1.45; color:var(--color-text); }
.anb-classification { height:18px; display:flex; align-items:center; justify-content:center; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; background:var(--classification-bg); color:var(--classification-fg); }
.anb-statusbar { height:24px; display:flex; align-items:center; gap:16px; padding:0 10px; font-size:11px; color:var(--color-text-muted); background:var(--color-surface); border-top:1px solid var(--color-border-decorative); }
.anb-kbd { font-family:var(--font-data); font-size:10px; border:1px solid var(--color-border); border-radius:2px; padding:0 4px; color:var(--color-text-muted); }
.anb-rail .btn { color:var(--color-text-muted); border-radius:var(--radius-control); }
.anb-rail .btn.active { position:relative; color:var(--color-text); background:var(--color-primary-dim); }
.anb-rail .btn.active::before { content:""; position:absolute; left:-6px; top:4px; bottom:4px; width:2px; background:var(--color-primary); }
.anb-prov { display:inline-flex; gap:4px; align-items:center; font-family:var(--font-data); font-size:10.5px; color:var(--color-text-muted); }
.anb-prov b { color:var(--color-text-faint); font-weight:500; }
.glyph { width:10px; height:10px; flex:none; display:inline-block; vertical-align:-1px; }
