/* Shared accessibility/mobile layer. Keep workflow and visibility rules in PHP. */
[hidden]{display:none!important}
:root{--ux-focus:#b7f5c4}
html{scroll-padding-top:110px;scroll-padding-bottom:calc(var(--pwa-reserved-space,0px) + 16px)}
body{padding-bottom:var(--pwa-reserved-space,0px)}
:focus-visible{outline:3px solid var(--ux-focus);outline-offset:4px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px}
.skip-link{position:absolute;left:12px;top:8px;z-index:11000;transform:translateY(-180%);background:#65ed82;color:#041007;padding:12px 18px;border-radius:8px;font-weight:800}
.skip-link:focus{position:fixed;transform:none;outline:3px solid #fff}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
main:focus{outline:none} /* Skip target only; interactive focus is never suppressed. */
main,section,article,form,fieldset,.wrap,.w,.card,.box,.ops-panel{min-width:0}
h1,h2,h3,p,li,dd,.status-chip,.ops-chip,.badge,.customer-repair-card,.customer-request-card{overflow-wrap:anywhere}
img,svg,video{max-width:100%}
input,select,textarea{max-width:100%;min-width:0}
input[type=checkbox],input[type=radio]{width:1.2em;height:1.2em;vertical-align:middle;accent-color:#65ed82}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea{border-color:#6d8275}
fieldset{border:1px solid #6d8275;border-radius:10px}
.btn,button,summary,.link-button{touch-action:manipulation}
.btn,button:not(.pwa-dismiss),.link-button{white-space:normal}
.ux-context-help{font-size:.92rem;margin:14px 0}.ux-context-help a{display:inline-flex;align-items:center;min-height:44px;color:#b7f5c4;text-underline-offset:3px}
.microcopy,.service-number,.console-top,.console-meta small,.model-card-top{color:#a8b9ae}
.nav-shell{flex-wrap:wrap;gap:12px 20px}
.nav-shell .links{flex-wrap:wrap;gap:10px 18px;flex:1 1 500px;justify-content:flex-end}
.nav-shell a,.nav-shell .link-button{min-height:44px;display:inline-flex;align-items:center}
.nav-shell .brand{flex-shrink:1;max-width:100%;gap:.25em}
.nav-shell form{margin:0}
.table-scroll-hint{color:#aebdb3;font-size:.85rem;margin:8px 0}
.ux-table-scroll,.ops-table-wrap,.inv-table-wrap{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;border-radius:6px}
.ux-table-scroll table{width:100%;border-collapse:collapse;min-width:520px}
.ux-table-scroll th,.ux-table-scroll td{padding:10px;text-align:left;vertical-align:top;border-bottom:1px solid #3a6044}
.ux-table-scroll th{color:#b7f5c4}
.ux-table-scroll td{overflow-wrap:anywhere}
dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);overflow:auto}
.ux-field-error{display:block;color:#ffd3cc;font-size:.9rem;margin:6px 0}
[aria-invalid=true]{border-color:#ff9c8f!important}
.ux-required{font-weight:400;font-size:.85em}
.language-selector a{display:inline-flex;align-items:center;min-height:44px;padding:4px}
@media(max-width:1100px){
  .top{position:relative}
  .nav-shell{min-height:68px;align-items:center;padding-block:8px}
  .nav-shell .brand{flex:1 1 180px;font-size:.88rem}
  .nav-shell .menu{display:none;min-height:44px}
  .nav-shell .links{position:static;flex:1 0 100%;width:100%;display:flex;visibility:visible;opacity:1;transform:none;transition:none;box-shadow:none;align-items:stretch;flex-direction:column;padding:8px 0;border:0;margin:0}
  .nav-shell.ux-menu-ready .menu{display:block}
  .nav-shell.ux-menu-ready .links{display:none}
  .nav-shell.ux-menu-ready .links.open{display:flex}
  .nav-shell .links a,.nav-shell .links .nav-login{padding:11px 8px;border-radius:8px}
  .nav-shell .link-button{width:100%;padding:11px 8px;text-align:left}
  html{scroll-padding-top:16px}
}
@media(max-width:640px){
  .wrap,.w{width:calc(100% - 24px);max-width:100%}
  .form-grid,.inv-formgrid{grid-template-columns:minmax(0,1fr)}
  .card,.box{padding:18px}
  input,select,textarea,.inv input,.inv select,.inv textarea{font-size:16px}
  button,.btn,.inv .btn,.link-button,.inv-tabs a,.kb-tag,summary{min-height:44px}
  summary{padding-block:10px}
  .actions,.pay-actions,.message-actions{gap:12px}
  .actions>*,.pay-actions>*,.kb-toolbar>*{max-width:100%}
  .foot>div{flex-wrap:wrap;gap:12px 20px}
  .foot a{display:inline-flex;align-items:center;min-height:44px}
  .portal-message{max-width:100%}
  .portal-message>div{flex-wrap:wrap}
  .kb-section pre{font-size:1rem}
  .inv-kv{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .inv-kv dd{overflow-wrap:anywhere}
  .hero-home h1{font-size:clamp(2.7rem,13vw,4.6rem)}
  .hero,.section{padding-block:44px}
}
/* Preserve native table headers/cells on phones instead of hiding thead. */
@media(max-width:700px){
  .inv-table{min-width:600px}
  .inv-table thead{display:table-header-group}
  .inv-table tr{display:table-row;padding:0}
  .inv-table td,.inv-table td.full{display:table-cell;padding:10px 8px;text-align:left;border-bottom:1px solid var(--line)}
  .inv-table td::before,.inv-table td.full::before{display:none}
  .inv-table .num{text-align:right}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal,.js .reveal.is-visible{opacity:1;transform:none;transition:none}
  .btn:hover,.service-card:hover{transform:none}
  .nav-shell .links{transition:none}
  body::before,body::after{animation:none;transition:none}
}
@media(forced-colors:active){:focus-visible{outline-color:Highlight}.btn,.help-article,input,select,textarea{border:1px solid ButtonText}}
@media print{.skip-link,.ux-context-help{display:none}.ux-table-scroll,.inv-table-wrap,.ops-table-wrap{overflow:visible}}

/* Merge 4: final Checkpoint 3 bench and administrative screens. */
main code,main pre,.staff-note,.data-fields,.admin-hash{overflow-wrap:anywhere}
main pre{max-width:100%;overflow-x:auto;white-space:pre-wrap}
.data-nav a,.data-nav button,.inv-tabs a{min-height:44px;display:inline-flex;align-items:center}
.admin-file-actions{gap:16px;align-items:center}
.admin-file-actions .ux-action-confirm{flex-basis:100%;font-size:.9rem}
.ux-action-confirm{display:flex;align-items:flex-start;gap:10px;margin:12px 0;line-height:1.5}
.ux-action-confirm input{flex:0 0 1.2em}
.admin-file-actions button[value=delete]{border:2px solid #ffb3a7;color:#ffd3cc;background:#291814}
@media(max-width:640px){
  .ops-row,.document-actions,.data-actions,.staff-note-actions{flex-wrap:wrap;gap:12px}
  .ops-row>*,.data-form>*,.admin-file-actions>*{min-width:0;max-width:100%}
  .data-form{grid-template-columns:minmax(0,1fr)}
  .admin-file-actions{align-items:stretch;flex-direction:column;gap:16px}
  .admin-file-actions .ux-action-confirm{flex-basis:auto}
  .data-nav{gap:12px 18px}
  .document-actions a,.staff-note-actions a{display:inline-flex;align-items:center;min-height:44px}
  label:has(>input[type=checkbox]),label:has(>input[type=radio]){min-height:44px;align-content:center}
  .ops-panel,.data-result,.document-line,.kb-section{min-width:0}
}
