/* AIC Anubis application stylesheet on the Geo Workbench v2 design (Codex Geo-Suite, 8 November 2026, dark-first).
   Every colour, font, radius and motion value comes from the token bridge css/anubis-bootstrap.css, which maps the
   Anubis tokens onto Bootstrap 5.3 for both themes (data-bs-theme on <html>; dark is the default). This file maps those
   tokens onto the application's chrome (classification band 18 px, top bar 40 px, status bar 24 px), the dense controls
   and the evidence components. Class names are stable: the Investigations, Home and Kepler pages use them unchanged.
   Mint marks the selected object, the focus ring, the current place and the one primary action; never a source,
   confidence or result. Status and evidence meaning always carry a text label. */

/* ---- Role aliases ------------------------------------------------------------------------------------------------ */
:root {
  --anubis-page: var(--color-canvas);
  --anubis-band: var(--color-surface);
  --anubis-surface: var(--color-surface);
  --anubis-raised: var(--color-surface-raised);
  --anubis-sunken: var(--color-surface-muted);
  --anubis-text: var(--color-text);
  --anubis-muted: var(--color-text-muted);
  --anubis-faint: var(--color-text-faint);
  --anubis-border: var(--color-border-decorative);
  --anubis-control-border: var(--color-border);
  --anubis-action: var(--color-primary);
  --anubis-on-action: var(--color-primary-on);
  --anubis-action-border: var(--color-primary-border);
  --anubis-action-hover: color-mix(in srgb, var(--color-primary) 88%, var(--color-text));
  --anubis-action-pressed: color-mix(in srgb, var(--color-primary) 76%, var(--color-text));
  --anubis-accent: var(--color-primary);
  --anubis-accent-dim: var(--color-primary-dim);
  --font-data: "IBM Plex Mono", "Space Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;
  --anubis-font-data: var(--font-data);
  --motion-fast: 120ms;
  --motion-standard: 180ms;
  --motion-slow: 240ms;
  --anubis-band-height: 18px;
  --anubis-topbar-height: 40px;
  --anubis-chrome-height: 58px;
  --anubis-statusbar-height: 24px;
  --anubis-footer-reserve: calc(var(--anubis-statusbar-height) + var(--anubis-band-height));
  --anubis-z-sticky: 20;
  --anubis-z-overlay: 40;
  --anubis-z-modal: 60;
  --anubis-focus-width: 2px;
  --anubis-focus-offset: 2px;
}
@media (prefers-reduced-motion:reduce) { :root { --motion-fast:0ms; --motion-standard:0ms; --motion-slow:0ms; } }
/* Light basemap with more contrast than the bridge default; the map host reads these tokens for the local atlas. */
:root[data-bs-theme="light"] { --map-basemap-water:#C9DAE3; --map-basemap-land:#EEF3F6; --map-basemap-line:#9FB3BE; --map-grid:#BFCFD8; }

/* ---- Base --------------------------------------------------------------------------------------------------------- */
* { box-sizing:border-box; }
html { scroll-padding-top:calc(var(--anubis-chrome-height) + 12px); background:var(--anubis-page); }
body { margin:0; background:var(--anubis-page); color:var(--anubis-text); font:400 13px/1.45 var(--font-body); -webkit-font-smoothing:antialiased; }
button, input, select, textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; }
img, svg { max-width:100%; }
[hidden] { display:none !important; }
h1, h2, h3, h4 { margin:0 0 8px; font-family:var(--font-display); font-weight:600; color:var(--anubis-text); letter-spacing:-.01em; }
h1 { font-size:18px; line-height:1.25; }
h2 { font-size:15px; line-height:1.3; }
h3 { font-size:13.5px; line-height:1.35; }
h4 { font-size:13px; line-height:1.4; }
p { margin:0 0 10px; }
small { font-size:11.5px; line-height:1.45; }
code, pre, .anubis-mono { font-family:var(--anubis-font-data); font-size:11.5px; }
pre { overflow:auto; padding:10px; border:1px solid var(--anubis-border); border-radius:var(--radius-control); background:var(--anubis-sunken); }
a { color:var(--color-link); text-underline-offset:.2em; }
a:hover { text-decoration-thickness:2px; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:var(--anubis-focus-width) solid var(--color-focus); outline-offset:var(--anubis-focus-offset); }
.anubis-muted { color:var(--anubis-muted); }
.anubis-sr-only { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); border:0; white-space:nowrap; }
.anubis-skip { position:fixed; left:12px; top:-100px; z-index:100; padding:8px 14px; border-radius:var(--radius-control); color:var(--anubis-on-action); background:var(--anubis-action); }
.anubis-skip:focus { top:12px; }

/* ---- Shell -------------------------------------------------------------------------------------------------------- */
.anubis-shell { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:var(--anubis-band-height) var(--anubis-topbar-height) minmax(0,1fr) var(--anubis-statusbar-height) var(--anubis-band-height); min-height:100dvh; }
.anubis-shell > .anubis-marking--top { grid-row:1; position:sticky; top:0; z-index:calc(var(--anubis-z-overlay) + 1); }
.anubis-shell > .anubis-marking--bottom { grid-row:5; position:sticky; bottom:0; z-index:calc(var(--anubis-z-overlay) + 1); }
.anubis-shell-header { position:sticky; top:var(--anubis-band-height); z-index:var(--anubis-z-overlay); display:flex; align-items:center; gap:12px; min-width:0; height:var(--anubis-topbar-height); padding:0 12px; border-bottom:1px solid var(--anubis-border); background:var(--anubis-band); }
.anubis-brand { display:inline-flex; align-items:center; gap:8px; min-height:28px; color:var(--anubis-text); font-family:var(--font-display); font-weight:600; letter-spacing:-.01em; text-decoration:none; }
.anubis-brand:hover { color:var(--anubis-text); text-decoration:none; }
.anubis-brand img { display:block; width:18px; height:18px; }
.anubis-brand__dark { display:none; }
:root[data-theme="dark"] .anubis-brand__light, :root:not([data-theme="light"]) .anubis-brand__light { display:none; }
:root[data-theme="dark"] .anubis-brand__dark, :root:not([data-theme="light"]) .anubis-brand__dark { display:block; }
:root[data-theme="light"] .anubis-brand__light { display:block; }
:root[data-theme="light"] .anubis-brand__dark { display:none; }
.anubis-shell-identity__divider { width:1px; height:18px; background:var(--anubis-border); }
.anubis-shell-identity__label { color:var(--anubis-muted); font-size:12px; white-space:nowrap; }
.anubis-shell-navigation { display:flex; align-items:stretch; align-self:stretch; gap:14px; margin-inline-start:8px; min-width:0; }
.anubis-shell-navigation__section { display:none; }
.anubis-shell-navigation .anubis-shell-navigation__link { display:inline-flex; align-items:center; gap:6px; padding:0 2px; border-bottom:2px solid transparent; margin-bottom:-1px; color:var(--anubis-muted); font-size:12.5px; font-weight:500; text-decoration:none; white-space:nowrap; transition:color var(--motion-fast); }
.anubis-shell-navigation .anubis-shell-navigation__link i { display:none; }
.anubis-shell-navigation .anubis-shell-navigation__link:hover { color:var(--anubis-text); }
.anubis-shell-navigation .anubis-shell-navigation__link.active { border-bottom-color:var(--anubis-accent); color:var(--anubis-text); font-weight:600; }
.anubis-shell-header__actions { display:flex; align-items:center; gap:10px; margin-inline-start:auto; min-width:0; }
/* Blazor.Bootstrap styles main { height:100vh; overflow-x:hidden }, which would turn the page region into a second scroll container and offset every sticky bar; the shell grid owns the height instead. */
.anubis-shell > .anubis-shell-main { grid-row:3; min-width:0; height:auto; min-height:0; max-height:none; overflow:visible; flex:none; padding:16px 16px 32px; }
.anubis-shell-main:has(.anubis-flush) { padding:0; }
.anubis-shell-main > .anubis-page { max-width:1320px; }
.anubis-flush { min-height:calc(100dvh - var(--anubis-chrome-height) - var(--anubis-footer-reserve)); }
.anubis-shell-status { grid-row:4; position:sticky; bottom:var(--anubis-band-height); z-index:var(--anubis-z-sticky); }
.anubis-shell:has(.geo-workspace) { grid-template-rows:var(--anubis-band-height) var(--anubis-topbar-height) minmax(0,1fr) var(--anubis-band-height); }
.anubis-shell:has(.geo-workspace) > .anubis-marking--bottom { grid-row:4; }
.anubis-shell:has(.geo-workspace) .anubis-shell-status { display:none; }
.anubis-shell-bottom-navigation { display:none; }
.anubis-topbar-note { white-space:nowrap; }
.anubis-account-menu { position:relative; }
.anubis-account-menu summary { display:flex; align-items:center; min-height:28px; padding:2px; border:0; border-radius:50%; cursor:pointer; list-style:none; }
.anubis-account-menu summary::-webkit-details-marker { display:none; }
.anubis-account-menu[open] summary { outline:2px solid var(--anubis-accent); outline-offset:1px; }
.anubis-account-menu__content { position:absolute; top:calc(100% + 6px); right:0; z-index:var(--anubis-z-overlay); display:grid; gap:6px; min-width:240px; padding:12px; border:1px solid var(--anubis-border); border-radius:var(--radius-card); background:var(--anubis-raised); color:var(--anubis-text); font-size:12px; box-shadow:0 12px 32px rgb(0 0 0 / .35); }
.anubis-account-menu__content strong { overflow-wrap:anywhere; }
.anubis-account-menu__content .anubis-account-email { color:var(--anubis-muted); font-size:11.5px; overflow-wrap:anywhere; }
.anubis-account-menu__content hr { margin:2px 0; border:0; border-top:1px solid var(--anubis-border); }
.anubis-account-menu__content form { margin:0; }
.anubis-account-menu__content .anubis-button { width:100%; }
.anubis-avatar { display:inline-grid; place-items:center; width:24px; height:24px; border-radius:50%; border:1px solid var(--anubis-control-border); background:var(--anubis-sunken); color:var(--anubis-text); font-size:10px; font-weight:600; letter-spacing:.02em; }

/* ---- Controls ----------------------------------------------------------------------------------------------------- */
.anubis-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:28px; padding:4px 12px; border:1px solid var(--anubis-action); border-radius:var(--radius-control); background:var(--anubis-action); color:var(--anubis-on-action); font-size:12.5px; font-weight:600; line-height:1.3; text-decoration:none; transition:background-color var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast); }
.anubis-button:hover { background:var(--anubis-action-hover); color:var(--anubis-on-action); text-decoration:none; }
.anubis-button:active { background:var(--anubis-action-pressed); }
.anubis-button--secondary { background:transparent; color:var(--anubis-text); border-color:var(--anubis-control-border); font-weight:500; }
.anubis-button--secondary:hover { background:var(--anubis-accent-dim); border-color:var(--anubis-action-border); color:var(--anubis-text); }
.anubis-button--quiet { background:transparent; border-color:transparent; color:var(--color-link); padding-inline:8px; font-weight:500; }
.anubis-button--quiet:hover { background:var(--anubis-sunken); color:var(--color-link); }
.anubis-button--danger { background:transparent; color:var(--color-danger); border-color:var(--color-danger); font-weight:500; }
.anubis-button--danger:hover { background:var(--anubis-sunken); color:var(--color-danger); }
.anubis-button:disabled { background:transparent; color:var(--anubis-faint); border-color:var(--anubis-border); opacity:1; }
.anubis-button[aria-busy='true'] { cursor:progress; }
.anubis-button--small { min-height:24px; padding:2px 8px; font-size:12px; }
.anubis-button--block { width:100%; }
.anubis-icon-button { padding:4px; min-width:28px; min-height:28px; }
.anubis-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.anubis-field { display:grid; gap:4px; margin-bottom:12px; }
.anubis-field label, .anubis-field legend { font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--anubis-faint); }
.anubis-field input:not([type=checkbox]):not([type=radio]), .anubis-field select, .anubis-field textarea, .anubis-input, .anubis-select { width:100%; min-height:28px; padding:4px 8px; border:1px solid var(--anubis-control-border); border-radius:var(--radius-control); background:var(--anubis-page); color:var(--anubis-text); font-size:12.5px; }
[data-bs-theme="light"] .anubis-field input:not([type=checkbox]):not([type=radio]), [data-bs-theme="light"] .anubis-field select, [data-bs-theme="light"] .anubis-field textarea, [data-bs-theme="light"] .anubis-input { background:var(--anubis-raised); }
.anubis-field textarea { resize:vertical; min-height:72px; }
.anubis-field input::placeholder, .anubis-field textarea::placeholder { color:var(--anubis-faint); opacity:1; }
.anubis-field [aria-invalid=true] { border-color:var(--color-danger) !important; }
.anubis-field input:disabled, .anubis-field select:disabled, .anubis-field textarea:disabled { opacity:.6; cursor:not-allowed; }
.anubis-field-hint { font-size:11.5px; color:var(--anubis-muted); }
.anubis-field-error { font-size:11.5px; color:var(--color-danger); }
.anubis-checkbox { display:flex; align-items:center; gap:8px; min-height:24px; font-size:12px; cursor:pointer; }
.anubis-checkbox input { width:14px; height:14px; accent-color:var(--color-primary); flex-shrink:0; }
fieldset.anubis-field { padding:0; border:0; }

/* ---- Status, notices, tags ----------------------------------------------------------------------------------------- */
.anubis-status { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--anubis-border); border-radius:2px; padding:1px 8px 1px 6px; background:var(--anubis-sunken); font-size:11px; font-weight:500; color:var(--anubis-text); white-space:nowrap; }
.anubis-status::before { content:''; width:6px; height:6px; background:var(--anubis-muted); border-radius:50%; }
.anubis-status--success::before { background:var(--color-success); }
.anubis-status--warning::before { background:var(--color-warning); }
.anubis-status--danger::before { background:var(--color-danger); }
.anubis-status--busy::before { background:var(--color-info); }
.anubis-status--muted { color:var(--anubis-muted); }
.anubis-notice { padding:8px 10px; border:0; border-inline-start:2px solid var(--color-info); border-radius:0; background:var(--anubis-sunken); color:var(--anubis-text); font-size:11.5px; line-height:1.45; }
.anubis-notice strong { color:var(--anubis-text); }
.anubis-notice p { margin:4px 0 0; color:var(--anubis-muted); }
.anubis-notice--warning { border-inline-start-color:var(--color-warning); }
.anubis-notice--danger { border-inline-start-color:var(--color-danger); }
.anubis-notice--success { border-inline-start-color:var(--color-success); }
.anubis-tag { display:inline-flex; padding:1px 6px; font-size:10.5px; letter-spacing:.02em; border:1px solid var(--anubis-border); border-radius:2px; color:var(--anubis-muted); }
.anubis-page-header { display:flex; justify-content:space-between; align-items:start; gap:16px; margin-bottom:16px; }
.anubis-page-header h1 { margin-bottom:2px; }
.anubis-page-header p { margin:0; color:var(--anubis-muted); }
.anubis-disclosure { border-block-end:1px solid var(--anubis-border); padding-block:4px; }
.anubis-disclosure summary { min-height:28px; display:flex; align-items:center; gap:6px; cursor:pointer; padding-block:4px; font-weight:500; }
.anubis-disclosure p { color:var(--anubis-muted); margin:6px 0; }
.anubis-empty { padding:28px 16px; text-align:center; border:1px dashed var(--anubis-control-border); border-radius:var(--radius-card); }
.anubis-empty p { margin-inline:auto; color:var(--anubis-muted); }
.anubis-loading { min-height:72px; display:flex; align-items:center; justify-content:center; color:var(--anubis-muted); }
.anubis-loading::before { content:''; border:2px solid var(--anubis-control-border); border-top-color:var(--anubis-accent); width:16px; height:16px; border-radius:50%; margin-inline-end:10px; animation:anubis-spin .8s linear infinite; }
.anubis-no-print { }
@media print { .anubis-shell-header, .anubis-shell-navigation, .anubis-shell-bottom-navigation, .anubis-shell-status, .anubis-no-print { display:none; } body { background:white; color:#0B1C24; } }

/* ---- Generic blocks (class names are stable for the Investigations pages) ---------------------------------------- */
.anubis-section { margin:0 0 12px; padding:10px 12px; border:1px solid var(--anubis-border); border-radius:var(--radius-card); background:var(--anubis-raised); min-width:0; }
.anubis-section--quiet { background:transparent; }
.anubis-section__header { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 12px; margin-bottom:8px; }
.anubis-section__header h2, .anubis-section__header h3 { margin:0; font-size:13.5px; line-height:1.3; }
.anubis-section__header .anubis-actions { gap:6px; }
.anubis-section > p:last-child { margin-bottom:0; }
.anubis-eyebrow { margin:0 0 4px; color:var(--anubis-faint); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.anubis-meta { color:var(--anubis-muted); font-size:11.5px; line-height:1.45; }
.anubis-meta p { margin:0 0 4px; max-width:none; }
.anubis-warn { color:var(--color-warning); font-size:11.5px; line-height:1.45; margin:0 0 6px; max-width:none; }
.anubis-mono { font-family:var(--anubis-font-data); font-size:11px; overflow-wrap:anywhere; }
.anubis-lineage { display:grid; gap:3px; margin-top:6px; padding:8px 10px; border:1px solid var(--anubis-border); border-radius:var(--radius-control); background:var(--anubis-sunken); color:var(--anubis-muted); font-size:11px; line-height:1.45; }
.anubis-lineage code, .anubis-record code, .anubis-table code { font-size:10.5px; color:var(--anubis-text); overflow-wrap:anywhere; }
.anubis-lineage > summary { cursor:pointer; min-height:22px; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--anubis-faint); }
details.anubis-lineage { display:block; }
.anubis-stack { display:grid; gap:10px; }
.anubis-stack--tight { gap:6px; }
.anubis-grid-two { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:10px; }
.anubis-grid-three { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; }
.anubis-count { font-family:var(--anubis-font-data); font-size:20px; font-weight:600; line-height:1.1; letter-spacing:-.01em; font-variant-numeric:tabular-nums; }
.anubis-count-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:8px; }
.anubis-count-grid > div { padding:8px 10px; border:1px solid var(--anubis-border); border-radius:var(--radius-control); background:var(--anubis-sunken); }
.anubis-count-grid span { display:block; color:var(--anubis-faint); font-size:10.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.anubis-chip-row { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 10px; }
.anubis-chip { display:inline-flex; align-items:center; gap:6px; min-height:24px; padding:2px 8px; border:1px solid var(--anubis-control-border); border-radius:var(--radius-control); background:transparent; color:var(--anubis-muted); font-size:11.5px; font-weight:500; }
.anubis-chip:hover { background:var(--anubis-sunken); color:var(--anubis-text); }
.anubis-chip[aria-pressed=true], .anubis-chip[aria-current=true] { border-color:var(--anubis-action-border); background:var(--anubis-accent-dim); color:var(--anubis-text); }
.anubis-chip__count { display:inline-grid; place-items:center; min-width:18px; padding:0 4px; border-radius:2px; background:var(--anubis-sunken); font-family:var(--anubis-font-data); font-size:10.5px; }
.anubis-tag-row { display:flex; flex-wrap:wrap; gap:4px; }
.anubis-definition { margin:0; }
.anubis-definition div { display:grid; grid-template-columns:minmax(110px, 160px) 1fr; gap:10px; padding:4px 0; border-bottom:1px solid var(--anubis-border); font-size:11.5px; }
.anubis-definition div:last-child { border-bottom:0; }
.anubis-definition dt { color:var(--anubis-faint); font-weight:500; }
.anubis-definition dd { margin:0; overflow-wrap:anywhere; }
.anubis-link-button { padding:0; border:0; background:none; color:var(--color-link); font:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.anubis-link-button:disabled { color:var(--anubis-faint); cursor:not-allowed; }
.anubis-inline-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.anubis-inline-actions .anubis-button { min-height:24px; padding:2px 8px; font-size:11.5px; }
.anubis-busy { display:inline-flex; align-items:center; gap:6px; color:var(--anubis-muted); font-size:11.5px; }
.anubis-busy::before { content:''; width:12px; height:12px; border:2px solid var(--anubis-control-border); border-top-color:var(--anubis-action); border-radius:50%; animation:anubis-spin .8s linear infinite; }
@keyframes anubis-spin { to { transform:rotate(360deg); } }

/* Compact controls for dense panes (kept as no-ops of the base density) */
.anubis-compact .anubis-field { margin-bottom:10px; gap:4px; }
.anubis-compact .anubis-checkbox { min-height:22px; }

/* Dense evidence tables */
.anubis-table-region { overflow:auto; border:1px solid var(--anubis-border); border-radius:var(--radius-control); }
.anubis-table { width:100%; border-collapse:collapse; font-size:12px; }
.anubis-table th { position:sticky; top:0; z-index:1; text-align:left; font-size:10.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--anubis-faint); background:var(--anubis-surface); white-space:nowrap; }
.anubis-table th, .anubis-table td { padding:5px 8px; border-bottom:1px solid var(--anubis-border); vertical-align:top; font-variant-numeric:tabular-nums; }
.anubis-table tbody tr:hover { background:var(--anubis-sunken); }
.anubis-table tr:last-child td { border-bottom:0; }
.anubis-table details summary { cursor:pointer; color:var(--color-link); }
.anubis-table .anubis-lineage { margin-top:4px; }
.anubis-timing-track { display:block; width:100%; min-width:90px; height:3px; margin-top:4px; border-radius:2px; background:var(--anubis-border); }
.anubis-timing-track > span { display:block; height:100%; border-radius:inherit; background:var(--color-info); }

/* Records (one source row rendered as labelled fields) */
.anubis-record { padding:8px 10px; border:1px solid var(--anubis-border); border-radius:var(--radius-control); background:var(--anubis-surface); margin-bottom:6px; }
.anubis-record--nested { margin:6px 0 0; background:var(--anubis-sunken); }
.anubis-record__fields { display:grid; grid-template-columns:repeat(auto-fill, minmax(190px, 1fr)); gap:6px 12px; }
.anubis-record__field { min-width:0; font-size:12px; }
.anubis-record__field span { display:block; color:var(--anubis-faint); font-size:10.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.anubis-record__field strong, .anubis-record__field > div { font-weight:500; overflow-wrap:anywhere; }
.anubis-record__title { margin:0 0 6px; font-family:var(--font-display); font-size:13px; font-weight:600; overflow-wrap:anywhere; }
.anubis-record .anubis-notice { margin-top:8px; }
.anubis-record .anubis-notice p { margin:3px 0 0; }

/* Selector lists in the setup pane */
.anubis-selector-list { display:grid; gap:4px; margin:0 0 8px; padding:0; list-style:none; }
.anubis-selector-list li { display:flex; align-items:center; justify-content:space-between; gap:6px; min-height:30px; padding:3px 4px 3px 8px; border:1px solid var(--anubis-border); border-radius:var(--radius-control); background:var(--anubis-raised); }
.anubis-selector-list li > div { min-width:0; }
.anubis-selector-list small { display:block; color:var(--anubis-muted); font-size:10.5px; }
.anubis-selector-list strong { display:block; font-size:12px; overflow-wrap:anywhere; }
.anubis-selector-list .anubis-button { min-width:24px; min-height:24px; padding:0; }
.anubis-availability { display:grid; gap:0; margin:8px 0 0; padding:0; list-style:none; }
.anubis-availability li { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:4px 0; border-top:1px solid var(--anubis-border); font-size:11.5px; }

/* Token input */
.anubis-token-input { display:flex; flex-wrap:wrap; align-items:center; gap:4px; min-height:28px; padding:2px 4px; border:1px solid var(--anubis-control-border); border-radius:var(--radius-control); background:var(--anubis-page); }
.anubis-token-input:focus-within { outline:var(--anubis-focus-width) solid var(--color-focus); outline-offset:var(--anubis-focus-offset); }
.anubis-token-input input { flex:1 1 120px; min-width:100px; min-height:22px; border:0; background:transparent; color:var(--anubis-text); font-size:12.5px; }
.anubis-token-input input:focus { outline:none; }
.anubis-token-input input::placeholder { color:var(--anubis-faint); opacity:1; }
.anubis-token { display:inline-flex; align-items:center; gap:4px; max-width:100%; padding:1px 2px 1px 8px; border:1px solid var(--anubis-border); border-radius:2px; background:var(--anubis-sunken); font-family:var(--anubis-font-data); font-size:11px; overflow-wrap:anywhere; }
.anubis-token button { display:inline-grid; place-items:center; width:18px; height:18px; border:0; border-radius:2px; background:transparent; color:var(--anubis-muted); font-size:13px; line-height:1; }
.anubis-token button:hover { background:var(--anubis-raised); color:var(--anubis-text); }

/* ---- Tabs (results header) --------------------------------------------------------------------------------------- */
.anubis-tabs { position:sticky; top:calc(var(--anubis-chrome-height) + 40px); z-index:2; display:flex; gap:0; margin:0 0 12px; padding:0; border-bottom:1px solid var(--anubis-border); background:var(--anubis-page); overflow-x:auto; scrollbar-width:thin; }
.anubis-tabs__tab { display:inline-flex; align-items:center; gap:6px; min-height:32px; padding:4px 10px; border:0; border-bottom:2px solid transparent; margin-bottom:-1px; background:transparent; color:var(--anubis-muted); font-size:12px; font-weight:500; white-space:nowrap; }
.anubis-tabs__tab:hover { color:var(--anubis-text); }
.anubis-tabs__tab[aria-selected=true] { border-bottom-color:var(--anubis-accent); color:var(--anubis-text); font-weight:600; }
.anubis-tabs__tab i { font-size:13px; }
.anubis-tabs__count { display:inline-grid; place-items:center; min-width:18px; height:18px; padding:0 4px; border:1px solid var(--anubis-border); border-radius:2px; font-family:var(--anubis-font-data); font-size:10.5px; font-variant-numeric:tabular-nums; }

/* ---- Home ------------------------------------------------------------------------------------------------------- */
.anubis-home { display:grid; grid-template-columns:minmax(300px, 360px) minmax(0, 1fr); min-height:calc(100dvh - var(--anubis-chrome-height) - var(--anubis-footer-reserve)); }
.anubis-home__register { min-width:0; padding:14px 12px 24px; border-right:1px solid var(--anubis-border); background:var(--anubis-band); }
.anubis-home__heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; margin-bottom:12px; }
.anubis-home__heading h1 { margin:0; font-size:14px; }
.anubis-home__create { display:grid; gap:6px; margin:0 0 10px; padding:10px; border:1px solid var(--anubis-border); border-radius:var(--radius-card); background:var(--anubis-raised); }
.anubis-home__create label { font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--anubis-faint); }
.anubis-home__create-row { display:flex; gap:6px; }
.anubis-home__create-row input { flex:1; min-width:0; min-height:28px; padding:4px 8px; border:1px solid var(--anubis-control-border); border-radius:var(--radius-control); background:var(--anubis-page); color:var(--anubis-text); font-size:12.5px; }
.anubis-home__create-row .anubis-button { min-height:28px; padding-inline:10px; white-space:nowrap; }
.anubis-home__count { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0 0 6px; color:var(--anubis-faint); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.anubis-home__pane { min-width:0; padding:14px 16px 32px; display:grid; gap:12px; align-content:start; background:var(--anubis-page); }
.anubis-home__pane h2 { font-size:15px; margin:0 0 2px; }
.anubis-register { margin:0; padding:0; list-style:none; }
.anubis-register__item { border-top:1px solid var(--anubis-border); }
.anubis-register__item:last-child { border-bottom:1px solid var(--anubis-border); }
.anubis-register__link { display:grid; gap:2px; min-height:48px; padding:7px 10px; color:inherit; text-decoration:none; }
.anubis-register__link:hover, .anubis-register__link:focus-visible { background:var(--anubis-sunken); text-decoration:none; color:inherit; }
.anubis-register__item[data-selected=true] .anubis-register__link { box-shadow:inset 2px 0 var(--anubis-accent); background:var(--anubis-accent-dim); }
.anubis-register__heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.anubis-register__heading strong { font-size:12.5px; font-weight:600; overflow-wrap:anywhere; }
.anubis-register__meta { color:var(--anubis-muted); font-size:11px; line-height:1.4; overflow-wrap:anywhere; }
.anubis-start-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 1fr)); gap:8px; }
.anubis-start-card { display:grid; gap:4px; padding:10px 12px; border:1px solid var(--anubis-border); border-radius:var(--radius-card); background:var(--anubis-raised); color:inherit; text-decoration:none; }
.anubis-start-card:hover, .anubis-start-card:focus-visible { border-color:var(--anubis-action-border); background:var(--anubis-accent-dim); text-decoration:none; color:inherit; }
.anubis-start-card i { font-size:16px; color:var(--anubis-muted); }
.anubis-start-card strong { font-size:12.5px; }
.anubis-start-card span { color:var(--anubis-muted); font-size:11.5px; line-height:1.4; }
.anubis-coverage { margin:0; padding:0; list-style:none; display:grid; gap:0; }
.anubis-coverage li { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 12px; padding:6px 0; border-top:1px solid var(--anubis-border); font-size:12px; }
.anubis-coverage li:last-child { border-bottom:1px solid var(--anubis-border); }
.anubis-coverage strong { display:block; font-weight:600; }
.anubis-coverage span { color:var(--anubis-muted); font-size:11.5px; }
.anubis-coverage .anubis-status { align-self:start; }

/* ---- Investigation workspace -------------------------------------------------------------------------------------- */
.anubis-investigation { display:grid; grid-template-rows:auto minmax(0, 1fr); min-height:calc(100dvh - var(--anubis-chrome-height) - var(--anubis-footer-reserve)); }
.anubis-workspace-bar { position:sticky; top:var(--anubis-chrome-height); z-index:var(--anubis-z-sticky); display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; min-height:40px; padding:4px 12px; border-bottom:1px solid var(--anubis-border); background:var(--anubis-band); font-size:12px; }
.anubis-workspace-bar__title { display:flex; align-items:center; gap:8px; min-width:0; }
.anubis-workspace-bar__title h1 { margin:0; font-size:13px; letter-spacing:-.01em; white-space:nowrap; }
.anubis-workspace-bar__select { display:flex; align-items:center; gap:6px; min-width:0; }
.anubis-workspace-bar__select label { color:var(--anubis-faint); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.anubis-workspace-bar__select select { min-width:180px; max-width:320px; min-height:28px; padding:3px 28px 3px 8px; border:1px solid var(--anubis-control-border); border-radius:var(--radius-control); background:var(--anubis-page); color:var(--anubis-text); font-size:12.5px; font-weight:600; }
.anubis-workspace-bar__actions { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-inline-start:auto; }
.anubis-workspace-bar__actions .anubis-button { min-height:26px; padding:2px 10px; font-size:12px; }
.anubis-workspace-bar .anubis-status { min-height:20px; }
.anubis-investigation__body { display:grid; grid-template-columns:300px minmax(0, 1fr); min-height:0; }
.anubis-setup { position:sticky; top:calc(var(--anubis-chrome-height) + 40px); align-self:start; height:calc(100dvh - var(--anubis-chrome-height) - 40px - var(--anubis-footer-reserve)); min-width:0; padding:12px 12px 20px; border-right:1px solid var(--anubis-border); background:var(--anubis-band); overflow-y:auto; scrollbar-width:thin; }
.anubis-setup h2 { font-size:14px; margin:0 0 4px; }
.anubis-setup__section { padding:10px 0; border-top:1px solid var(--anubis-border); }
.anubis-setup__section:first-of-type { border-top:0; padding-top:0; }
.anubis-setup__section h3 { display:flex; align-items:center; justify-content:space-between; gap:6px; margin:0 0 4px; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--anubis-faint); font-family:var(--font-body); }
.anubis-setup__section > .anubis-meta { margin-bottom:8px; }
.anubis-setup__add { padding:8px; border:1px dashed var(--anubis-control-border); border-radius:var(--radius-control); }
.anubis-setup__add .anubis-field:last-of-type { margin-bottom:6px; }
.anubis-setup__run { position:sticky; bottom:-20px; margin:6px -12px -20px; padding:8px 12px calc(10px + env(safe-area-inset-bottom)); border-top:1px solid var(--anubis-border); background:var(--anubis-band); display:grid; gap:6px; }
.anubis-setup__toggle { display:none; }
.anubis-results { min-width:0; padding:12px 16px 48px; }
.anubis-results__toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 10px; margin-bottom:8px; }
.anubis-results__toolbar h2 { margin:0; font-size:14px; }
.anubis-ready { display:grid; gap:8px; padding:28px 20px; border:1px dashed var(--anubis-control-border); border-radius:var(--radius-card); text-align:center; justify-items:center; }
.anubis-ready i { font-size:22px; color:var(--anubis-muted); }
.anubis-ready h2 { margin:0; font-size:15px; }
.anubis-ready p { margin:0; color:var(--anubis-muted); }
.anubis-progress { display:grid; gap:10px; padding:16px; border:1px solid var(--anubis-border); border-radius:var(--radius-card); background:var(--anubis-raised); }
.anubis-progress__head { display:flex; align-items:center; gap:10px; }
.anubis-progress__head h2 { margin:0; font-size:14px; }
.anubis-progress__head .anubis-busy::before { width:16px; height:16px; }
.anubis-runs { margin:0; padding:0; list-style:none; }
.anubis-runs > li { padding:6px 0; border-top:1px solid var(--anubis-border); font-size:11.5px; }
.anubis-runs summary { cursor:pointer; min-height:22px; }
.anubis-runs ul { margin:4px 0 0; padding:0; list-style:none; display:grid; gap:3px; }
.anubis-runs ul li { padding-inline-start:8px; border-inline-start:2px solid var(--anubis-border); color:var(--anubis-muted); }
.anubis-runs ul li strong { color:var(--anubis-text); }

/* Workspace drawer */
.anubis-drawer-backdrop { position:fixed; inset:0; z-index:calc(var(--anubis-z-overlay) + 1); background:rgb(0 0 0 / .6); }
.anubis-drawer { position:fixed; top:0; right:0; bottom:0; z-index:calc(var(--anubis-z-overlay) + 2); display:grid; grid-template-rows:auto minmax(0,1fr); width:min(400px, 100%); border-inline-start:1px solid var(--anubis-border); background:var(--anubis-band); box-shadow:-12px 0 32px rgb(0 0 0 / .35); }
.anubis-drawer__header { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:40px; padding:4px 8px 4px 12px; border-bottom:1px solid var(--anubis-border); background:var(--anubis-band); }
.anubis-drawer__header h2 { margin:0; font-size:13px; }
.anubis-drawer__body { overflow-y:auto; padding:12px; }
.anubis-drawer__body .anubis-section { padding:10px; }
.anubis-drawer__body h3 { font-size:12.5px; margin:0 0 6px; }
.anubis-drawer details.anubis-section > summary { cursor:pointer; font-weight:600; font-size:12.5px; min-height:22px; }
.anubis-drawer details.anubis-section[open] > summary { margin-bottom:8px; }

/* Members */
.anubis-member { padding:6px 0; border-top:1px solid var(--anubis-border); font-size:11.5px; }
.anubis-member__head { display:flex; align-items:center; justify-content:space-between; gap:6px; }
.anubis-member__grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:6px; margin-top:6px; }
.anubis-member__permissions { display:flex; flex-wrap:wrap; gap:3px 10px; margin-top:4px; }
.anubis-member__permissions label { display:inline-flex; align-items:center; gap:4px; min-height:22px; font-size:11.5px; }
.anubis-member__permissions input { accent-color:var(--anubis-action); }

/* Candidate reviews */
.anubis-review { padding:8px 10px; border:1px solid var(--anubis-border); border-radius:var(--radius-control); background:var(--anubis-raised); margin-bottom:6px; font-size:11.5px; }
.anubis-review__head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px; margin-bottom:4px; }
.anubis-review__head strong { font-size:12.5px; }
.anubis-review__decision { padding:4px 0 0; color:var(--anubis-muted); }
.anubis-review textarea { width:100%; min-height:56px; margin-top:6px; padding:6px 8px; border:1px solid var(--anubis-control-border); border-radius:var(--radius-control); background:var(--anubis-page); color:var(--anubis-text); font:inherit; font-size:12px; }

/* Embedded map in results */
.anubis-map-embed { border:1px solid var(--anubis-border); border-radius:var(--radius-card); background:var(--anubis-raised); overflow:hidden; }
.anubis-map-embed__header { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px; padding:6px 10px; border-bottom:1px solid var(--anubis-border); }
.anubis-map-embed__header strong { font-size:12.5px; }
.anubis-map-embed .kepler-map-host { width:100%; height:min(60vh, 640px); min-height:360px; }
.anubis-map-embed__footer { padding:6px 10px; color:var(--anubis-muted); font-size:11px; border-top:1px solid var(--anubis-border); }
.anubis-layer-chips { display:flex; flex-wrap:wrap; gap:4px; }
.anubis-layer-chip { display:inline-flex; align-items:center; gap:5px; padding:1px 6px; border:1px solid var(--anubis-border); border-radius:2px; font-size:11px; color:var(--anubis-text); white-space:nowrap; }
.anubis-layer-chip::before { content:''; width:8px; height:8px; border-radius:1px; background:var(--layer, var(--anubis-muted)); }
.anubis-layer-chip--address { --layer:var(--map-layer-1); }
.anubis-layer-chip--signal { --layer:var(--map-layer-2); }
.anubis-layer-chip--adsb { --layer:var(--map-layer-3); }
.anubis-layer-chip--ais-history { --layer:var(--map-layer-4); }
.anubis-layer-chip--ais { --layer:var(--map-layer-6); }
.anubis-layer-chip--candidate { --layer:var(--map-candidate); }

/* ---- Kepler stage (legacy route, out of the primary navigation) ------------------------------------------------- */
.anubis-kepler { display:grid; grid-template-rows:auto minmax(0, 1fr); height:calc(100dvh - var(--anubis-chrome-height) - var(--anubis-footer-reserve)); min-height:480px; }
.anubis-kepler__toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; min-height:40px; padding:4px 12px; border-bottom:1px solid var(--anubis-border); background:var(--anubis-band); font-size:12px; }
.anubis-kepler__toolbar h1 { margin:0; font-size:13px; letter-spacing:-.01em; white-space:nowrap; }
.anubis-kepler__toolbar .anubis-button { min-height:26px; padding:2px 10px; font-size:12px; }
.anubis-kepler__toolbar .anubis-button[aria-expanded=true] { border-color:var(--anubis-action-border); background:var(--anubis-accent-dim); color:var(--anubis-text); }
.anubis-kepler__status { display:flex; align-items:center; gap:8px; margin-inline-start:auto; color:var(--anubis-muted); font-size:11.5px; }
.anubis-kepler__stage { position:relative; min-height:0; background:var(--map-basemap-water); }
.anubis-kepler__stage .kepler-workspace { height:100%; border:0; }
.anubis-kepler__stage .kepler-map-host { width:100%; height:100%; min-height:0; }
.anubis-kepler__panel { position:absolute; top:8px; left:8px; z-index:5; width:min(760px, calc(100% - 16px)); max-height:calc(100% - 16px); overflow:auto; padding:12px; border:1px solid var(--anubis-border); border-radius:var(--radius-card); background:var(--anubis-raised); box-shadow:0 12px 32px rgb(0 0 0 / .35); }
.anubis-kepler__panel h2 { margin:0 0 8px; font-size:13px; }
.anubis-kepler__results-panel { position:absolute; top:8px; right:8px; z-index:6; width:min(460px, calc(100% - 16px)); max-height:calc(100% - 16px); overflow:auto; padding:12px; border:1px solid var(--anubis-border); border-radius:var(--radius-card); background:var(--anubis-raised); box-shadow:0 12px 32px rgb(0 0 0 / .35); }
.anubis-kepler__results-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.anubis-kepler__results-heading h2 { margin:0; font-size:13px; }
.anubis-kepler__grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)); gap:8px 10px; }
.anubis-kepler__grid .anubis-field { margin:0; }
.anubis-kepler__grid .anubis-field--wide { grid-column:span 2; }
.anubis-kepler__grid-actions { grid-column:1 / -1; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px; padding-top:2px; }
.anubis-kepler__footer { position:absolute; left:8px; bottom:8px; z-index:4; display:grid; gap:4px; max-width:calc(100% - 16px); padding:6px 8px; border:1px solid var(--anubis-border); border-radius:var(--radius-control); background:var(--anubis-raised); color:var(--anubis-muted); font-size:11px; }
.anubis-kepler__error { position:absolute; top:8px; right:8px; z-index:5; max-width:min(400px, calc(100% - 16px)); }
.anubis-kepler__stage .anubis-notice { margin:0; }
.anubis-kepler__aoi { display:inline-flex; align-items:center; gap:4px; }

/* ---- Responsive ------------------------------------------------------------------------------------------------- */
@media (max-width:1279px) {
 .anubis-investigation__body { grid-template-columns:272px minmax(0, 1fr); }
 .anubis-home { grid-template-columns:minmax(280px, 320px) minmax(0, 1fr); }
}
@media (max-width:1023px) {
 .anubis-home { grid-template-columns:minmax(0, 1fr); }
 .anubis-home__register { border-right:0; border-bottom:1px solid var(--anubis-border); }
 .anubis-investigation__body { grid-template-columns:minmax(0, 1fr); }
 .anubis-setup { position:static; height:auto; max-height:none; border-right:0; border-bottom:1px solid var(--anubis-border); overflow:visible; }
 .anubis-setup__run { position:static; margin:6px 0 0; padding:8px 0 0; }
 .anubis-investigation[data-setup-open=false] .anubis-setup { display:none; }
 .anubis-setup__toggle { display:inline-flex; }
 .anubis-tabs { top:var(--anubis-chrome-height); }
 .anubis-workspace-bar { position:static; }
 .anubis-grid-three { grid-template-columns:repeat(2, minmax(0,1fr)); }
 .anubis-kepler__panel { width:calc(100% - 16px); }
}
@media (max-width:767px) {
 .anubis-shell { grid-template-rows:var(--anubis-band-height) var(--anubis-topbar-height) minmax(0,1fr); }
 .anubis-shell > .anubis-marking--bottom, .anubis-shell:has(.geo-workspace) > .anubis-marking--bottom { position:fixed; right:0; bottom:0; left:0; grid-row:auto; z-index:calc(var(--anubis-z-overlay) + 1); }
 .anubis-shell-header { padding-inline:10px; gap:8px; }
 .anubis-shell-identity__divider, .anubis-shell-identity__label, .anubis-shell-navigation, .anubis-topbar-note, .anubis-shell-status { display:none; }
 .anubis-shell-main { padding:12px 12px calc(72px + var(--anubis-band-height) + env(safe-area-inset-bottom)); }
 .anubis-shell-bottom-navigation { position:fixed; right:0; bottom:var(--anubis-band-height); left:0; z-index:var(--anubis-z-overlay); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); min-height:52px; padding:2px 8px calc(2px + env(safe-area-inset-bottom)); border-top:1px solid var(--anubis-border); background:var(--anubis-band); }
 .anubis-shell-bottom-navigation .anubis-shell-bottom-navigation__link { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-width:0; min-height:48px; border-radius:var(--radius-control); color:var(--anubis-muted); font-size:10.5px; line-height:1.2; text-align:center; text-decoration:none; }
 .anubis-shell-bottom-navigation .anubis-shell-bottom-navigation__link i { font-size:18px; line-height:1; }
 .anubis-shell-bottom-navigation .anubis-shell-bottom-navigation__link.active { background:var(--anubis-accent-dim); color:var(--anubis-text); box-shadow:inset 0 2px 0 var(--anubis-accent); }
 .anubis-flush { min-height:calc(100dvh - var(--anubis-chrome-height) - 52px - var(--anubis-band-height)); }
 .anubis-home { min-height:calc(100dvh - var(--anubis-chrome-height) - 52px - var(--anubis-band-height)); }
 .anubis-home__register { padding:12px 12px 16px; }
 .anubis-home__pane { padding:12px 12px 80px; }
 .anubis-investigation { min-height:calc(100dvh - var(--anubis-chrome-height) - 52px - var(--anubis-band-height)); }
 .anubis-workspace-bar { padding:4px 10px; }
 .anubis-workspace-bar__select { flex:1 1 100%; }
 .anubis-workspace-bar__select select { flex:1; max-width:none; }
 .anubis-workspace-bar__actions { margin-inline-start:0; width:100%; }
 .anubis-results { padding:12px 12px 80px; }
 .anubis-tabs { margin-inline:-12px; padding-inline:12px; }
 .anubis-grid-two, .anubis-grid-three { grid-template-columns:minmax(0,1fr); }
 .anubis-definition div { grid-template-columns:minmax(0,1fr); gap:2px; }
 .anubis-member__grid { grid-template-columns:minmax(0,1fr); }
 .anubis-kepler { height:calc(100dvh - var(--anubis-chrome-height) - 52px - var(--anubis-band-height)); }
 .anubis-kepler__toolbar { padding:4px 10px; }
 .anubis-kepler__status { flex:1 1 100%; margin-inline-start:0; }
 .anubis-kepler__panel, .anubis-kepler__results-panel { top:6px; left:6px; right:6px; width:auto; max-height:calc(100% - 12px); padding:10px; }
 .anubis-kepler__grid { grid-template-columns:minmax(0,1fr); }
 .anubis-kepler__grid .anubis-field--wide { grid-column:auto; }
 .anubis-kepler__footer { left:6px; right:6px; bottom:6px; max-width:none; }
 .anubis-drawer { width:100%; border:0; }
 .anubis-record__fields { grid-template-columns:minmax(0,1fr); }
}
@media (forced-colors:active) {
 .anubis-tabs__tab[aria-selected=true], .anubis-shell-navigation .anubis-shell-navigation__link.active { border-bottom-color:Highlight; }
 .anubis-chip[aria-pressed=true], .anubis-register__item[data-selected=true] .anubis-register__link { outline:2px solid Highlight; }
 .anubis-section, .anubis-record, .anubis-token, .anubis-chip, .anubis-start-card, .anubis-drawer, .anubis-kepler__panel { border-color:CanvasText; }
 .anubis-layer-chip::before, .anubis-status::before { forced-color-adjust:none; }
}
@media (prefers-reduced-motion:reduce) {
 .anubis-busy::before, .anubis-loading::before { animation:none; border-top-color:var(--anubis-control-border); }
}

/* Empty action rows (no pivot applies to a record) take no space. */
.anubis-inline-actions:empty { display:none; }

/* ── Shared additions (9 November 2026): grouped fields, selectable records, rail buttons, small text ───────────────── */
.anubis-field--compact { margin-bottom:0; }
.anubis-field__group { display:flex; align-items:stretch; min-width:0; }
.anubis-field__group > * { min-width:0; }
.anubis-field__group > select { flex:0 0 45%; border-start-end-radius:0; border-end-end-radius:0; }
.anubis-field__group > input { flex:1 1 auto; }
.anubis-field__group > select + input, .anubis-field__group > .anubis-field__affix + input { border-start-start-radius:0; border-end-start-radius:0; margin-inline-start:-1px; }
.anubis-field__group > input:has(+ .anubis-button) { border-start-end-radius:0; border-end-end-radius:0; }
.anubis-field__group > .anubis-button { flex:none; border-start-start-radius:0; border-end-start-radius:0; margin-inline-start:-1px; }
.anubis-field__affix { display:inline-flex; align-items:center; flex:none; padding:0 8px; border:1px solid var(--anubis-control-border); border-radius:var(--radius-control) 0 0 var(--radius-control); background:var(--anubis-sunken); color:var(--anubis-muted); font-size:12px; }
.anubis-select { width:auto; }
.anubis-small { font-size:11.5px; }
.anubis-strong { font-weight:600; }
.anubis-record--selectable { width:100%; margin:0; text-align:start; font:inherit; color:inherit; cursor:pointer; }
.anubis-record--selectable:hover { border-color:var(--anubis-action-border); }
.anubis-record.is-selected { border-color:var(--color-primary); box-shadow:inset 2px 0 0 var(--color-primary); }
.anubis-record__meta { margin-top:4px; font-size:11.5px; color:var(--anubis-muted); }
.anubis-rail-button { position:relative; display:grid; place-items:center; width:32px; height:32px; padding:0; border:0; border-radius:var(--radius-control); background:transparent; color:var(--anubis-muted); font-size:17px; line-height:1; }
.anubis-rail-button--wide { width:44px; height:40px; font-size:18px; }
.anubis-rail-button:hover { color:var(--anubis-text); background:var(--anubis-sunken); }
.anubis-rail-button.is-active { color:var(--anubis-text); background:var(--anubis-accent-dim); }
.anubis-rail-button.is-active::before { content:""; position:absolute; inset-inline-start:-6px; top:4px; bottom:4px; width:2px; background:var(--color-primary); }
.anubis-rail-button--wide.is-active::before { inset-inline-start:auto; top:auto; bottom:0; left:8px; right:8px; width:auto; height:2px; }

/* ── HTTP outcome states (not found, forbidden, sign-in required) on the shell ───────────────────────────────────── */
.anubis-http-state { display:grid; justify-items:center; padding:32px 0; }
.anubis-http-state__card { display:flex; gap:16px; width:min(100%, 640px); margin:0; padding:20px; }
.anubis-http-state__icon { display:grid; place-items:center; flex:none; width:40px; height:40px; border-radius:var(--radius-control); background:var(--anubis-sunken); color:var(--anubis-muted); font-size:18px; }
.anubis-http-state__body { min-width:0; }
.anubis-http-state__body h1 { margin:0 0 6px; }
.anubis-http-state__body p { max-width:none; margin:0 0 6px; }
.anubis-http-state__body .anubis-actions { margin-top:12px; }

/* ── Foundry identity pages (sign-in, registration, password reset) on the v2 chrome ─────────────────────────────────
   These pages keep Foundry's AuthenticationLayout (a .auth-shell with an appearance row and a centred main). The rules
   below give that layout the classification band, the 40 px top bar carrying the Anubis mark, and the dense controls,
   so a user moving between sign-in and the workbench sees one application. Foundry's own rules sit inside :where(),
   so these ordinary selectors win without raising specificity; the utilities Bootstrap sets with !important are
   matched with !important. */
.auth-shell { display:flex; flex-direction:column; min-height:100dvh; padding-block:var(--anubis-band-height); background:var(--anubis-page) !important; color:var(--anubis-text); }
.auth-appearance { height:var(--anubis-topbar-height); padding:0 12px !important; gap:12px !important; border-bottom:1px solid var(--anubis-border); background:var(--anubis-band); }
.auth-appearance > :first-child { order:99; margin-inline-start:auto; }
.auth-shell main { align-items:flex-start !important; padding:24px 16px 48px !important; }
.auth-column { width:100%; max-width:400px; margin:16px auto 0; padding:20px; border:1px solid var(--anubis-border); border-radius:var(--radius-card); background:var(--anubis-raised); }
.auth-column-wide { max-width:480px; }
.auth-brand { margin-bottom:16px !important; }
.auth-logo { max-height:22px; }
.auth-column h1 { font-family:var(--font-display); font-size:18px; line-height:1.25; margin:0 0 4px; }
.auth-column h1 + p, .auth-column .lead { font-size:12.5px; color:var(--anubis-muted); margin-bottom:16px; }
.auth-shell .form-label { margin-bottom:4px; }
.auth-shell .form-control, .auth-shell .form-select { min-height:32px; padding:4px 8px; font-size:12.5px; background:var(--anubis-page); border-color:var(--anubis-control-border); border-radius:var(--radius-control); color:var(--anubis-text); }
.auth-shell .form-control:focus, .auth-shell .form-select:focus { border-color:var(--anubis-action-border); box-shadow:none; }
.auth-shell .form-check { min-height:24px; font-size:12px; }
.auth-shell .form-check-input { width:14px; height:14px; margin-top:.25em; }
.auth-shell .btn { min-height:32px; font-size:12.5px; font-weight:600; border-radius:var(--radius-control); }
.auth-shell .btn-primary { --bs-btn-bg:var(--anubis-action); --bs-btn-border-color:var(--anubis-action); --bs-btn-color:var(--anubis-on-action); --bs-btn-hover-bg:var(--anubis-action-hover); --bs-btn-hover-border-color:var(--anubis-action-hover); --bs-btn-hover-color:var(--anubis-on-action); --bs-btn-active-bg:var(--anubis-action-pressed); --bs-btn-active-border-color:var(--anubis-action-pressed); --bs-btn-active-color:var(--anubis-on-action); --bs-btn-disabled-bg:var(--anubis-sunken); --bs-btn-disabled-border-color:var(--anubis-border); --bs-btn-disabled-color:var(--anubis-faint); }
.auth-shell .btn-outline-secondary, .auth-shell .btn-secondary { --bs-btn-bg:transparent; --bs-btn-border-color:var(--anubis-control-border); --bs-btn-color:var(--anubis-text); --bs-btn-hover-bg:var(--anubis-accent-dim); --bs-btn-hover-border-color:var(--anubis-action-border); --bs-btn-hover-color:var(--anubis-text); font-weight:500; }
.auth-shell .alert { padding:8px 10px; border:0; border-inline-start:2px solid var(--color-info); border-radius:0; background:var(--anubis-sunken); color:var(--anubis-text); font-size:12px; }
.auth-shell .alert-danger { border-inline-start-color:var(--color-danger); }
.auth-shell .alert-warning { border-inline-start-color:var(--color-warning); }
.auth-shell .alert-success { border-inline-start-color:var(--color-success); }
.auth-shell .alert-dismissible .btn-close { padding:10px; }
.auth-form-footer { margin-top:16px !important; font-size:11.5px !important; color:var(--anubis-muted) !important; }
.auth-form-footer a { color:var(--color-link); }
.auth-shell a:focus-visible, .auth-shell .btn:focus-visible, .auth-shell .form-control:focus-visible, .auth-shell .form-check-input:focus-visible { outline:2px solid var(--anubis-action-border); outline-offset:2px; }

/* ── MARKER banners (AIC.Marker.Blazor): one projection at the top and bottom of every page ────────────────────────────
   The package's banner is sized for a document page; the workbench keeps its 18 px chrome band, so the banner is compacted
   to that height. The package keeps its own colours, stripes for the unassessed state, text and print treatment. */
.anubis-marking { min-width:0; }
.anubis-marking .handling-banner { box-sizing:border-box; height:var(--anubis-band-height); min-height:var(--anubis-band-height); flex-wrap:nowrap; gap:0 12px; padding:0 12px; overflow:hidden; font-size:10px; line-height:1; white-space:nowrap; }
.anubis-marking .handling-banner strong { font-size:10px; letter-spacing:.12em; }
.anubis-marking .handling-banner .handling-scope { font-size:9.5px; }
.anubis-marking--fixed { position:fixed; right:0; left:0; z-index:calc(var(--anubis-z-overlay) + 1); }
.anubis-marking--fixed.anubis-marking--top { top:0; }
.anubis-marking--fixed.anubis-marking--bottom { bottom:0; }
@media print { .anubis-marking--fixed { position:static; } }
.anubis-http-state__reference { color:var(--anubis-text); user-select:all; overflow-wrap:anywhere; }
.anubis-plan { display:grid; gap:2px; margin:0; padding:0; list-style:none; font-size:11.5px; }
.anubis-plan li { overflow-wrap:anywhere; }

/* ---- Subjects and linked entities --------------------------------------------------------------------------------- */
.anubis-subjects__toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; margin:8px 0 10px; }
.anubis-subject__head { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; }
.anubis-subject__head .anubis-record__title { margin:0; }
.anubis-subject__count { margin:4px 0 8px; font-size:12px; }
.anubis-subject--conflict { border-inline-start:3px solid var(--color-danger); }
.anubis-linked__subheading { margin:8px 0 0; font-size:12.5px; font-weight:600; }
.anubis-linked__controls { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:end; }
.anubis-linked__controls .anubis-field { flex:1 1 200px; max-width:360px; min-width:0; }
.anubis-linked__canvas { position:relative; overflow:hidden; max-height:78vh; border:1px solid var(--anubis-border); border-radius:var(--radius-control); background:var(--anubis-sunken); }
.anubis-linked__path { display:grid; gap:4px; margin:0; padding-inline-start:20px; font-size:12px; }
.anubis-linkgraph { display:block; width:100%; height:auto; cursor:grab; touch-action:none; user-select:none; -webkit-user-select:none; }
.anubis-linkgraph--dragging { cursor:grabbing; }
.anubis-linkgraph line { cursor:move; }
.anubis-linkgraph__tools { position:absolute; top:8px; inset-inline-end:8px; z-index:1; display:flex; gap:4px; }
.anubis-linkgraph__label { font-size:9.5px; fill:var(--anubis-text); pointer-events:none; paint-order:stroke; stroke:var(--anubis-sunken); stroke-width:3px; }
.anubis-linkgraph__glyph { font-size:10px; font-weight:700; fill:#fff; pointer-events:none; paint-order:stroke; stroke:rgba(0,0,0,.45); stroke-width:2px; }
.anubis-linknode { --node-colour:var(--anubis-muted); cursor:pointer; outline:none; }
.anubis-linknode circle { fill:var(--node-colour); stroke:var(--anubis-sunken); stroke-width:2; }
.anubis-linknode--subject { --node-colour:var(--color-primary); }
.anubis-linknode--email { --node-colour:var(--color-info); }
.anubis-linknode--phone { --node-colour:var(--color-success); }
.anubis-linknode--postcode { --node-colour:var(--color-warning); }
.anubis-linknode--address { --node-colour:color-mix(in srgb, var(--color-warning) 60%, var(--anubis-text)); }
.anubis-linknode--company { --node-colour:color-mix(in srgb, var(--color-primary) 50%, var(--color-danger)); }
.anubis-linknode--device { --node-colour:color-mix(in srgb, var(--color-info) 55%, var(--color-success)); }
.anubis-linknode--emailhash { --node-colour:var(--anubis-muted); }
.anubis-linknode--breachrecord { --node-colour:var(--color-danger); }
.anubis-linknode--ipaddress { --node-colour:color-mix(in srgb, var(--color-info) 50%, var(--anubis-text)); }
.anubis-linknode.is-hub circle { stroke:var(--anubis-text); stroke-width:4; }
.anubis-linknode.is-bridge circle { stroke:var(--anubis-text); stroke-width:3; stroke-dasharray:3 2; }
.anubis-linknode.is-path circle { stroke:var(--color-success); stroke-width:4; stroke-dasharray:none; }
.anubis-linknode.is-selected circle, .anubis-linknode:focus-visible circle { stroke:var(--color-link); stroke-width:4.5; stroke-dasharray:none; }
.anubis-linknode.is-dim { opacity:.28; }
.anubis-linkedge { stroke:var(--anubis-faint); stroke-width:1.2; }
.anubis-linkedge.is-weak { stroke-dasharray:5 3; }
.anubis-linkedge.is-computed { stroke-dasharray:1.5 3; }
.anubis-linkedge.is-active { stroke:var(--anubis-text); stroke-width:2.4; }
.anubis-linkedge.is-path { stroke:var(--color-success); stroke-width:3; }
.anubis-linkedge.is-dim { opacity:.12; }
.anubis-linkglyph { --node-colour:var(--anubis-muted); display:inline-grid; place-items:center; width:16px; height:16px; border-radius:50%; background:var(--node-colour); color:#fff; font-size:9.5px; font-weight:700; line-height:1; }

/* ---- Info control (AnubisInfo): one explanation one click away; a native details element, so keyboard and screen reader work ---- */
.anubis-info { display:inline-block; vertical-align:middle; position:relative; }
.anubis-info > summary { display:inline-flex; align-items:center; justify-content:center; min-width:24px; min-height:24px; border-radius:50%; color:var(--anubis-muted); cursor:pointer; list-style:none; }
.anubis-info > summary::-webkit-details-marker { display:none; }
.anubis-info > summary:hover { color:var(--anubis-text); }
.anubis-info > summary:focus-visible { outline:var(--anubis-focus-width) solid var(--color-focus); outline-offset:var(--anubis-focus-offset); }
.anubis-info[open] > summary { color:var(--color-link); }
.anubis-info__body { display:block; max-width:min(52ch, 90vw); margin-top:4px; padding:8px 10px; border:1px solid var(--anubis-border); border-inline-start:2px solid var(--color-info); background:var(--anubis-sunken); color:var(--anubis-muted); font-size:11.5px; line-height:1.45; font-weight:400; letter-spacing:0; text-transform:none; }
.anubis-info__body p { margin:0 0 4px; color:inherit; }
.anubis-info__body p:last-child { margin-bottom:0; }.anubis-info__body ol, .anubis-info__body ul { margin:0 0 4px; padding-inline-start:18px; }
.anubis-heading-row { display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin:0 0 2px; }
.anubis-heading-row h2 { margin:0; }
.anubis-heading-row .anubis-info[open] { flex-basis:100%; }
.anubis-line { margin:0 0 4px; }
/* ---- Linked entities: expand as you go ---------------------------------------------------------------------------- */
.anubis-linknode--personwithcontrol { --node-colour:color-mix(in srgb, var(--color-primary) 60%, var(--color-warning)); }
.anubis-linknode--listing { --node-colour:color-mix(in srgb, var(--color-danger) 70%, var(--anubis-text)); }
.anubis-linknode--aircraft { --node-colour:color-mix(in srgb, var(--color-info) 70%, var(--anubis-text)); }
.anubis-linknode--airport { --node-colour:color-mix(in srgb, var(--color-info) 45%, var(--color-warning)); }
.anubis-linknode--vessel { --node-colour:color-mix(in srgb, var(--color-info) 60%, var(--color-success)); }
.anubis-linknode--port { --node-colour:color-mix(in srgb, var(--color-success) 55%, var(--anubis-text)); }
.anubis-linknode.is-seed circle { stroke:var(--anubis-text); stroke-width:2.5; }
.anubis-linknode.is-hub circle { stroke:var(--anubis-text); stroke-width:4; stroke-dasharray:none; }
.anubis-linkgraph__label--hub { font-weight:600; }
.anubis-linkgraph__badge circle { fill:var(--anubis-text); stroke:var(--anubis-sunken); stroke-width:1.5; }
.anubis-linkgraph__badge text { font-size:8.5px; font-weight:700; fill:var(--anubis-sunken); pointer-events:none; }
.anubis-linkedge.is-solid { stroke-dasharray:none; }
.anubis-linkedge.is-dashed { stroke-dasharray:7 4; }
.anubis-linkedge.is-dotted { stroke-dasharray:1.5 4; stroke-linecap:round; }
.anubis-linked__notice { font-weight:600; }
.anubis-info { position:relative; margin-inline-start:auto; }
.anubis-info > summary { display:inline-grid; place-items:center; width:28px; height:28px; border-radius:50%; cursor:pointer; list-style:none; color:var(--anubis-muted); }
.anubis-info > summary::-webkit-details-marker { display:none; }
.anubis-info > summary:hover, .anubis-info[open] > summary { color:var(--anubis-text); background:var(--anubis-sunken); }
.anubis-info > summary:focus-visible { outline:2px solid var(--color-link); outline-offset:1px; }
.anubis-info__body { position:absolute; z-index:5; inset-inline-end:0; top:32px; width:min(420px, 86vw); padding:10px 12px; border:1px solid var(--anubis-border); border-radius:var(--radius-control); background:var(--anubis-surface, var(--anubis-sunken)); font-size:12px; box-shadow:0 6px 20px rgb(0 0 0 / .18); }
.anubis-info__body p { margin:0 0 6px; }
.anubis-info__body p:last-child { margin-bottom:0; }
.anubis-record.is-brushed { outline:2px solid var(--color-link); outline-offset:1px; }

/* ---- Search plan line: icon, identifier, numbers -------------------------------------------------------------- */
.anubis-planline { display:flex; align-items:center; flex-wrap:wrap; gap:2px 8px; padding:3px 0; font-size:11.5px; }
.anubis-planline__kind { color:var(--anubis-muted); font-size:13px; }
.anubis-planline__value { min-width:0; overflow-wrap:anywhere; }
.anubis-planline__stats { display:inline-flex; align-items:center; gap:10px; color:var(--anubis-muted); margin-inline-start:auto; }
.anubis-planline__stats > span { display:inline-flex; align-items:center; gap:3px; white-space:nowrap; }

/* ---- Subject picker, traversal trail and Datasets panel (10 November 2026) ----------------------------------------- */
.anubis-linked__controls .anubis-linked__start { flex:2 1 320px; max-width:520px; }
.anubis-subjects__picker { margin:8px 0 4px; max-width:520px; }
.anubis-picker { position:relative; display:grid; gap:2px; min-width:0; }
.anubis-picker__label { font-size:11.5px; color:var(--anubis-muted); }
.anubis-picker__field { display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.anubis-picker__current { display:flex; flex:1 1 220px; align-items:center; gap:8px; min-height:32px; min-width:0; padding:4px 8px; border:1px solid var(--anubis-control-border); border-radius:var(--radius-control); background:var(--anubis-page); color:var(--anubis-text); font-size:12.5px; text-align:start; cursor:pointer; }
.anubis-picker__current .bi-chevron-down { margin-inline-start:auto; color:var(--anubis-muted); }
.anubis-picker__name { font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.anubis-picker__panel { position:absolute; z-index:var(--anubis-z-overlay); inset-inline-start:0; top:100%; width:min(560px, 92vw); margin-top:4px; padding:8px; border:1px solid var(--anubis-control-border); border-radius:var(--radius-control); background:var(--anubis-surface); box-shadow:0 6px 20px rgb(0 0 0 / .18); }
.anubis-picker__bar { display:flex; gap:6px; }
.anubis-picker__search { flex:1 1 auto; min-width:0; min-height:30px; padding:4px 8px; border:1px solid var(--anubis-control-border); border-radius:var(--radius-control); background:var(--anubis-page); color:var(--anubis-text); font-size:12.5px; }
.anubis-picker .anubis-picker__search { width:auto; }
.anubis-picker .anubis-picker__sort { flex:0 0 auto; width:auto; }
.anubis-picker__count { margin:4px 0; }
.anubis-picker__list { height:min(416px, 60vh); overflow-y:auto; border:1px solid var(--anubis-border); border-radius:var(--radius-control); background:var(--anubis-page); }
.anubis-picker__empty { padding:12px; color:var(--anubis-muted); font-size:12.5px; }
.anubis-picker__row, .anubis-picker__group, .anubis-picker__section { box-sizing:border-box; height:52px; padding:6px 10px; border-bottom:1px solid var(--anubis-border); overflow:hidden; }
.anubis-picker__row { display:grid; align-content:center; gap:2px; cursor:pointer; border-inline-start:3px solid transparent; }
.anubis-picker__row:hover, .anubis-picker__group:hover { background:var(--anubis-sunken); }
.anubis-picker__row.is-active, .anubis-picker__group.is-active { outline:var(--anubis-focus-width) solid var(--color-focus); outline-offset:-2px; background:var(--anubis-sunken); }
.anubis-picker__row.is-selected { border-inline-start-color:var(--color-link); }
.anubis-picker__main { display:flex; align-items:center; gap:6px; min-width:0; font-size:12.5px; white-space:nowrap; overflow:hidden; }
.anubis-picker__main strong { overflow:hidden; text-overflow:ellipsis; }
.anubis-picker__counts { margin-inline-start:auto; padding-inline-start:8px; color:var(--anubis-muted); font-size:11.5px; }
.anubis-picker__ids { display:flex; gap:12px; min-width:0; overflow:hidden; font-size:11.5px; color:var(--anubis-muted); white-space:nowrap; }
.anubis-picker__id { display:inline-flex; align-items:center; gap:4px; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.anubis-picker__group { display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; cursor:pointer; }
.anubis-picker__section { display:flex; align-items:end; padding-bottom:4px; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--anubis-muted); background:var(--anubis-sunken); }
.anubis-subject--selected { border-inline-start:3px solid var(--color-link); }

.anubis-trail { display:flex; align-items:center; gap:8px; margin:8px 0; min-width:0; }
.anubis-trail__steps { display:flex; flex:1 1 auto; flex-wrap:nowrap; align-items:center; gap:2px; min-width:0; margin:0; padding:0; overflow-x:auto; list-style:none; font-size:12px; }
.anubis-trail__step { display:inline-flex; flex:0 0 auto; align-items:center; gap:2px; white-space:nowrap; }
.anubis-trail__sep { color:var(--anubis-muted); padding:0 2px; }
.anubis-trail__crumb, .anubis-trail__remove { min-height:24px; padding:1px 6px; border:1px solid transparent; border-radius:var(--radius-control); background:transparent; color:var(--anubis-text); font-size:12px; cursor:pointer; }
.anubis-trail__crumb:hover:not(:disabled), .anubis-trail__remove:hover:not(:disabled) { background:var(--anubis-sunken); border-color:var(--anubis-border); }
.anubis-trail__crumb[aria-current="step"] { font-weight:600; text-decoration:underline; }
.anubis-trail__step.is-run .anubis-trail__crumb { font-style:italic; }
.anubis-trail__remove { min-width:24px; padding:0; color:var(--anubis-muted); }
.anubis-trail__crumb:disabled, .anubis-trail__remove:disabled { opacity:.55; cursor:default; }
.anubis-trail__earlier { flex:0 0 auto; }
.anubis-trail__earlier ol { margin:4px 0 0; padding-inline-start:18px; }

.anubis-linked__split { display:grid; gap:16px; grid-template-columns:minmax(0, 1fr); }
@media (min-width: 1100px) { .anubis-linked__split { grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); } }
.anubis-follow { display:grid; align-content:start; gap:6px; min-width:0; }
.anubis-follow__table td, .anubis-follow__table th { vertical-align:top; }
.anubis-follow__summary { margin:0; font-size:12.5px; font-weight:600; }
.anubis-follow__result { font-weight:600; }
.anubis-compare { margin:8px 0; }
