/* Accessibility, responsive and print hardening — UI-8 / v19.6 */
html{scroll-padding-top:64px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
[hidden]{display:none!important}
.sr-only,.visually-hidden{position:absolute!important;top:0!important;left:0!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;z-index:10000;top:8px;left:8px;transform:translateY(-160%);padding:10px 14px;border:2px solid var(--cds-focus);border-radius:var(--ui-control-radius);background:var(--cds-layer);color:var(--cds-text-primary);font-weight:700;text-decoration:none;box-shadow:var(--cds-shadow)}
.skip-link:focus{transform:translateY(0)}
.a11y-announcer{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* A visible, high-contrast focus indicator across every surface. */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--cds-focus)!important;outline-offset:3px!important;box-shadow:0 0 0 1px var(--cds-layer)!important}
:where(input,select,textarea)[aria-invalid="true"]{border-bottom-color:var(--cds-support-error)!important;box-shadow:inset 0 -2px 0 var(--cds-support-error)}
.field-error{display:block;margin-top:5px;color:var(--cds-support-error);font-size:var(--type-label);font-weight:600}

/* Status must never rely on colour alone. */
.ui-status::before{font-weight:800;line-height:1;flex:0 0 auto}
.ui-status--success::before{content:"✓"}.ui-status--error::before{content:"!"}.ui-status--warning::before{content:"!"}.ui-status--info::before{content:"i"}.ui-status--neutral::before{content:"•"}
.ui-status[data-no-icon]::before{content:none}

/* Productive target sizes, including compact controls, without inflating tables. */
.ui-button,.btn,.client-tab,.shell nav a,.shell-tool,.ops-filter,.flt,.journey-step,summary{min-height:40px}
input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),select,textarea{font-size:max(16px,var(--type-body))}
input[type="checkbox"],input[type="radio"]{min-width:18px;min-height:18px}

/* Long identifiers and evidence must wrap rather than create page-level scrolling. */
.mono,code,pre,.ops-reference,.client-engagement-meta,.client-document__meta,.client-revision{overflow-wrap:anywhere;word-break:break-word}
pre{max-width:100%;overflow:auto;white-space:pre-wrap}
.table-scroll,.ops-table-wrap{max-width:100%;overflow:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable}
img,svg,video,canvas{max-width:100%;height:auto}

/* Keyboard users can see the selected client tab independently of colour. */
[role="tab"][aria-selected="true"]{text-decoration-thickness:2px;text-underline-offset:5px}
[role="tabpanel"]:focus-visible{outline-offset:5px!important}

/* Motion is optional. */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
}

/* Windows High Contrast and other forced-colour environments. */
@media(forced-colors:active){
  :root{--cds-focus:Highlight}
  .ui-button,.btn,.tag,.ui-status,.ui-panel,.card,.tile,.shell-tool{forced-color-adjust:auto;border:1px solid ButtonText}
  .ui-status--success,.ui-status--error,.ui-status--warning,.ui-status--info{border:1px solid CanvasText}
  .journey-step.current,.journey-step.is-selected,.client-tab[aria-selected="true"]{outline:2px solid Highlight;outline-offset:-2px}
  .client-progress__step.is-current,.current-work-card,.client-primary{border-left:4px solid Highlight}
}

/* Reflow / 200% zoom safety. */
@media(max-width:700px){
  .wrap,.wrap-wide{padding-inline:16px}
  footer .wrap{align-items:flex-start;flex-direction:column;gap:8px}
  .ui-alert{grid-template-columns:auto minmax(0,1fr)}.ui-alert>:last-child:not(:only-child){grid-column:2}
}
@media(max-width:420px){
  .ui-button,.btn{white-space:normal;text-align:center;height:auto;min-height:44px;padding-block:9px}
  .tag,.ui-status{white-space:normal}
}

/* Print preserves evidence and removes navigation-only controls. */
@media print{
  :root{--cds-background:#fff;--cds-layer:#fff;--cds-text-primary:#000;--cds-text-secondary:#222;--cds-border-subtle:#777;--cds-shadow:none}
  body{display:block;background:#fff;color:#000;font-size:11pt}
  .shell,.skip-link,footer,.client-tabs,.eng-context,.kq,.current-work-card__action-area,.ops-head-actions,.ui-button,.btn,.command-result button{display:none!important}
  main{padding:0}.wrap,.wrap-wide{max-width:none;padding:0}.card,.tile,.ui-panel,.client-primary,.eng-card{box-shadow:none;break-inside:avoid}
  a{color:#000;text-decoration:underline}a[href]::after{content:" (" attr(href) ")";font-size:8pt;overflow-wrap:anywhere}
  a[href^="#"]::after,a[href^="javascript"]::after{content:""}
}

/* v19.7.5 native-control focus and mobile menu hardening. */
.validator-drop:focus-within,.choice-control:focus-within{outline:3px solid var(--cds-focus);outline-offset:3px}
.shell-menu__panel:focus-within{outline:1px solid transparent}
@media(forced-colors:active){.shell-menu>summary,.shell-menu__panel,.choice-control,input[type="file"]::file-selector-button{border:1px solid ButtonText}.choice-control:has(input:checked){outline:2px solid Highlight}}
