body[data-console="tip"] .actor-avatar{color:var(--tx)!important}
/* Foreground colors are separate from the original tool accent fills. */
body[data-console="queue"] .avatar{color:var(--tx)!important}
html[data-theme="projector"] body.tool-shell{
 --crit-fg:#811717;--danger-fg:#811717;--ok-fg:#124D2B;--low-fg:#173B7A;--purple-fg:#49227F;--orange-fg:#753409;
 --crit:#811717;--danger:#811717;--ok:#124D2B;--low:#173B7A;--purple:#49227F;--high:#753409;--med:#624600;--warn:#624600;--blue:#004766;--cyan:#004F61;
 --accent-ink:#004766;--on-accent:#FFFFFF;
}
html[data-theme="projector"] body[data-console="identity"]{--accent-ink:#49227F}
html[data-theme="projector"] body[data-console="edr"]{--accent-ink:#124D2B}
html[data-theme="projector"] body[data-console="email"],html[data-theme="projector"] body[data-console="queue"]{--accent-ink:#624600}
html[data-theme="projector"] body[data-console="firewall"]{--accent-ink:#753409}
html[data-theme="projector"] body[data-console="tip"]{--accent-ink:#004F61}
html[data-theme="projector"] body[data-console="casb"]{--accent-ink:#343879}
html[data-theme="projector"] body[data-console="vuln"]{--accent-ink:#811737}
html[data-theme="projector"] body.tool-shell :is(.btn-primary,.btn.primary,.logsearch-run,.identity-btn.primary,.identity-link.primary){background:var(--accent-ink)!important;color:#FFFFFF!important;border-color:var(--accent-ink)!important}
html[data-theme="projector"] body.tool-shell :is(.avatar,.user-avatar,.user-profile-avatar,.actor-avatar,.proj-icon,.ato-initials){color:var(--tx)!important;background:var(--surf2)!important}
html[data-theme="projector"] body.tool-shell :is(.cat-chip,.zone-tag,.type-badge,.ttype,.ioc-type){color:var(--tx2)!important}
html[data-theme="projector"] body.tool-shell{--id-lite:#49227F;--vm-lite:#811737}
html[data-theme="projector"] body.tool-shell :is(.btn-pri,.btn-search-run,.btn-drawer-apply,.drawer-radio-btn.active,.filter-pill.active){background:var(--accent-ink)!important;color:#FFFFFF!important;border-color:var(--accent-ink)!important}
html[data-theme="projector"] body.tool-shell :is(.project-ref,.actor-initials,.feed-icon span){color:var(--tx2)!important}
html[data-theme="projector"] body.tool-shell .tlp-amber{color:#624600}

/* ── 2A.4 accessibility baseline ─────────────────────────────────────────
   Shared, tool-agnostic semantics. Tool stylesheets keep their own
   composition; these rules only restore structure, focus and naming. */

/* Page titles are headings now. The tool-owned .page-title / .view-title
   class rules already set the type scale; only the UA h1 box needs resetting. */
body.tool-shell :is(h1,h2).page-title,
body.tool-shell h1.view-title,
body.tool-shell h1.board-title{margin:0}

/* Names that must reach assistive technology without a visible label. */
.tool-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
 overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* Focus must be visible on every interactive control, not only buttons and
   links. --accent is the tool accent; projector mode swaps it for ink. */
body.tool-shell :is(a[href],button,input,select,textarea,summary,[role=button],[role=link],[role=tab],[role=checkbox],[role=switch],[tabindex]:not([tabindex="-1"])):focus-visible{
 outline:2px solid var(--accent-ink,var(--accent));outline-offset:2px;border-radius:3px}
body.tool-shell input:focus-visible,body.tool-shell select:focus-visible,body.tool-shell textarea:focus-visible{outline-offset:1px}
html[data-theme="projector"] body.tool-shell :is(a[href],button,input,select,textarea,summary,[role=button],[role=link],[role=tab],[role=checkbox],[role=switch],[tabindex]:not([tabindex="-1"])):focus-visible{
 outline-color:var(--accent-ink,#004766)}

/* Reduced motion applies to every console, including those that do not load
   console-native.css. Infinite decorative pulses stop; state still changes. */
@media(prefers-reduced-motion:reduce){
 body.tool-shell *,body.tool-shell *::before,body.tool-shell *::after{
  animation-duration:.01ms!important;animation-iteration-count:1!important;
  transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* Projector: the current tool's rail label sat in its brand accent on the light
   rail (1.6-3.8:1). Text takes ink; the accent stays on the border, tint and bar. */
html[data-theme="projector"] body.tool-shell #tool-rail .tr-item.here .tr-lbl{color:#1F2328!important}

/* Phone top bar: the console name overflowed its shrinking logo slot into the
   icon-only projector toggle. The page heading and console menu still name the
   console, so the badge yields first. */
@media(max-width:520px){
 body.tool-shell #topbar .tb-logo :is(.tb-product,.nav-sep){display:none}
}
/* Phone clearance: the tool switcher and truth toggle float over the last
   ~100px of the page, so reserve that space and keep final controls reachable. */
@media(max-width:760px){
 body.tool-shell #main{padding-bottom:112px}
}

/* Phone: expanded record detail lives in a full-width table cell, so its prose
   inherited the table's 770px+ width and ran off-screen. Pin it to the viewport. */
@media(max-width:760px){
 body.tool-shell td[colspan] > :is(.case-detail,.expand-body){position:sticky;left:0;width:calc(100vw - 24px);max-width:calc(100vw - 24px);box-sizing:border-box}
}
