/* Accessibility helpers. Nothing here is visible until a keyboard user asks for it. */
.skip-link{position:absolute;left:8px;top:-64px;z-index:100;padding:10px 16px;background:var(--ink,#1d2d3d);color:#fff;
  font:600 14px/1.2 var(--font-body,system-ui,sans-serif);text-decoration:none;border:2px solid #fff;outline:2px solid var(--color-accent,#53779a)}
.skip-link:focus{top:8px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Invisible hit areas: small text buttons and marks keep their look but take clicks and taps over at least 24 x 24 px (WCAG 2.5.8). */
.link,.term-chip,.help-chip,.del-btn,.role .x{position:relative}
.link::after,.term-chip::after,.help-chip::after,.del-btn::after,.role .x::after{content:'';position:absolute;left:50%;top:50%;width:100%;height:100%;min-width:24px;min-height:24px;transform:translate(-50%,-50%)}
/* Text spacing (WCAG 1.4.12): the allocation bar grows instead of clipping its labels when a reader widens line or letter spacing. */
.allocbar{height:auto;min-height:36px}