:focus-visible{outline:3px solid var(--moss,#1f6f4a);outline-offset:3px}
html{scroll-padding-top:16px}
body.chs-dialog-open{overflow:hidden}
button,a,input,select,textarea,[role="button"]{touch-action:manipulation}
button,.btn,a.btn,select,input[type="button"],input[type="submit"],input[type="reset"]{min-height:44px}
input[type="checkbox"],input[type="radio"]{min-width:22px;min-height:22px}
label{line-height:1.45}
fieldset{min-width:0}
.messages-panel>.panel,.row-editor-panel>.panel{overscroll-behavior:contain}
.table-scroll,[class*="table-wrap"]{scrollbar-gutter:stable}
.nav-backdrop{touch-action:none}

/* Defensive routing: normal work must never expose standalone technical panels. */
body[data-interface-mode="work"]>section.card,
body[data-interface-mode="work"]>.card[id$="Panel"],
body[data-interface-mode="work"]>[data-chs-technical-panel]{display:none!important}
main>.section.is-hidden,main>.section[hidden]{display:none!important}
main>.section:not(.is-hidden):not([hidden]){display:block}

.technical-preview-disclosure{padding:0!important;overflow:hidden}
.technical-preview-disclosure>summary{cursor:pointer;list-style:none;padding:14px 16px;font-weight:800}
.technical-preview-disclosure>summary::-webkit-details-marker{display:none}
.technical-preview-disclosure>summary::after{content:'+';float:right;font-size:20px;line-height:1}
.technical-preview-disclosure[open]>summary::after{content:'−'}
.technical-preview-panel{margin:0!important;padding:16px!important;border:0!important;border-top:1px solid var(--line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.technical-preview-panel h1,.technical-preview-panel h2,.technical-preview-panel h3{margin:0 0 10px!important;font-size:20px!important;line-height:1.2!important}

@media (max-width:768px){
  body.nav-open{overflow:hidden}
  aside{padding-bottom:max(18px,env(safe-area-inset-bottom))!important}
  main{padding-bottom:max(18px,env(safe-area-inset-bottom))!important}
  .topbar{padding-top:max(12px,env(safe-area-inset-top));padding-left:12px!important;padding-right:12px!important;padding-bottom:12px!important;gap:8px 10px!important;margin-bottom:14px!important;border-radius:20px!important}
  .topbar .eyebrow{padding:5px 9px!important;font-size:10px!important;letter-spacing:.06em!important}
  .topbar h2{margin:4px 0 0!important;font-size:21px!important;line-height:1.12!important}
  .topbar-actions{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;gap:7px!important;width:100%!important;align-items:center!important}
  .topbar-actions>*{min-width:0!important}
  .topbar-actions .status-pill,.status-pill{min-width:0!important;max-width:none!important;padding:8px 10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:11px!important;line-height:1.2!important}
  .topbar-actions button,.topbar-actions [role="group"]{min-height:42px!important}
  .nav-hamburger{width:42px!important;height:42px!important;border-radius:12px!important}
  .section{min-height:calc(100dvh - 190px)}
  .messages-panel,.row-editor-panel{padding-bottom:max(10px,env(safe-area-inset-bottom))}
  .messages-panel>.panel,.row-editor-panel>.panel{max-height:calc(100dvh - 20px)}
  table{font-size:13px}
  th,td{padding:10px 8px!important}
  .actions>*{min-width:0}
}
@media (max-width:420px){
  .topbar{padding-left:10px!important;padding-right:10px!important}
  .topbar-actions{grid-template-columns:minmax(0,1fr) 42px auto!important}
  .topbar-actions .status-pill{max-width:100%!important}
}
@media (max-width:360px){
  main{padding:10px!important}
  .panel,.item{padding:12px!important}
  .grid.stats{grid-template-columns:1fr!important}
  .topbar h2{font-size:20px!important}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}
@media (prefers-contrast:more){
  .panel,.item,.stat,input,textarea,select,button,.btn{border-width:2px!important}
  .chip{border:1px solid currentColor}
}
@media (forced-colors:active){
  :focus-visible{outline:3px solid Highlight!important}
  .nav-backdrop{background:CanvasText}
  .chip,.btn,.panel,.item,.stat{forced-color-adjust:auto}
}
