/* Owdex Chat NG 2.15 — camada final de UX, responsividade, PWA e acessibilidade. */
:root{--tap-target:44px;--focus-ring:0 0 0 3px color-mix(in srgb,var(--blue) 28%,transparent);--content-gutter:clamp(12px,2vw,28px)}
html{scroll-padding-top:88px;text-size-adjust:100%;-webkit-text-size-adjust:100%}body{min-width:0;overflow-wrap:anywhere}
.skip-link{position:fixed;left:max(12px,env(safe-area-inset-left));top:max(8px,env(safe-area-inset-top));z-index:10000;transform:translateY(-180%);padding:11px 15px;border-radius:10px;background:var(--navy);color:var(--surface);font-weight:800;box-shadow:var(--shadow);transition:transform .14s ease}.skip-link:focus{transform:none}
:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--blue);outline-offset:2px;box-shadow:var(--focus-ring)}
:where(button,.btn,.icon-btn,.main-nav a,.staff-self,.list-row,.conversation-row,summary){touch-action:manipulation}
:where(input,textarea,select){max-width:100%;min-width:0}.form-stack label,.form-grid label{min-width:0}
:where(.card,.stat,.dialog-card,.table-card){min-width:0}.content{width:100%;padding-inline:var(--content-gutter)}
.topbar{padding-left:max(var(--content-gutter),env(safe-area-inset-left));padding-right:max(var(--content-gutter),env(safe-area-inset-right))}.topbar-title{min-width:0}.topbar-title strong,.topbar-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{min-width:0}
.icon-btn,.sidebar-collapse{min-width:var(--tap-target);min-height:var(--tap-target)}.btn{min-height:var(--tap-target)}.main-nav a{min-height:44px}.presence{min-height:44px}
.alert[role=alert],.alert[role=status]{scroll-margin-top:90px}
.nowchat-connectivity{position:fixed;left:50%;top:max(8px,env(safe-area-inset-top));z-index:5000;translate:-50% -150%;opacity:0;transition:.18s ease;padding:9px 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);font-size:12px;font-weight:750;pointer-events:none;max-width:min(92vw,560px);text-align:center}.nowchat-connectivity.visible{translate:-50% 0;opacity:1}.nowchat-connectivity.offline{border-color:color-mix(in srgb,var(--warn) 45%,var(--line))}
.nowchat-update{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));z-index:4500;width:min(390px,calc(100vw - 28px));display:flex;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 18px 45px rgba(17,39,72,.2)}.nowchat-update span{min-width:0;flex:1;font-size:12px;line-height:1.45}
.table-card,[data-responsive-scroll]{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable}.table-card:focus-visible,[data-responsive-scroll]:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.dialog{padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.dialog-card{max-width:min(100%,920px);max-height:calc(100dvh - 20px);overflow:auto;overscroll-behavior:contain}.dialog-head{position:sticky;top:0;z-index:2;background:var(--surface)}
:where(dialog)::backdrop{background:rgba(5,14,29,.55);backdrop-filter:blur(2px)}
img,video,canvas,svg{max-width:100%}pre,code{overflow-wrap:normal;word-break:normal}.message-rich pre,.ticket-public-rich pre{max-width:100%;overflow:auto}
[aria-busy=true]{cursor:progress}.btn[aria-busy=true],button[aria-busy=true]{opacity:.72}
@media(max-width:1180px){body.menu-open{overflow:hidden}.sidebar{height:100dvh;padding-top:max(18px,env(safe-area-inset-top));padding-bottom:max(14px,env(safe-area-inset-bottom));padding-left:max(14px,env(safe-area-inset-left))}.menu-button{min-width:44px;min-height:44px}.main-nav{padding-bottom:18px}.topbar-actions{gap:6px}}
@media(max-width:840px){.content{padding-top:16px;padding-bottom:max(18px,env(safe-area-inset-bottom))}.page-heading,.page-heading.compact{align-items:stretch;flex-direction:column;gap:12px}.page-heading h1{font-size:clamp(23px,7vw,28px)}.page-actions,.row-actions,.toolbar{width:100%}.page-actions>.btn,.page-actions>button{flex:1 1 auto}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-columns{grid-template-columns:1fr}.topbar-title small{display:none}.topbar .presence{max-width:128px}.dialog-card{width:100%}}
@media(max-width:680px){input:not([type=checkbox]):not([type=radio]),textarea,select{font-size:16px!important}.content{padding-inline:max(12px,env(safe-area-inset-left),env(safe-area-inset-right))}.topbar{min-height:60px;height:auto;padding-top:max(8px,env(safe-area-inset-top));padding-bottom:8px}.topbar-title strong{font-size:14px}.topbar-actions{margin-left:auto}.topbar-actions>[data-command-palette],.topbar-actions>[data-pwa-install],.topbar-presence-dot{display:none!important}.topbar .presence{width:44px;max-width:44px;padding:0;color:transparent;background-position:center}.topbar .presence option{color:var(--text)}.stat-grid{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:14px}.stat strong{font-size:25px}.card{padding:15px;border-radius:14px}.card-head{align-items:flex-start;flex-wrap:wrap}.btn{padding:10px 12px}.search-box{width:100%}.search-box input,.search-box.compact input{min-width:0;width:100%}.toast-stack{left:10px;right:10px;width:auto;top:calc(64px + env(safe-area-inset-top))}.nowchat-update{left:12px;right:12px;width:auto}.dialog{margin:0;width:100%;max-width:none}.dialog-card{border-radius:16px}.dialog-actions{position:sticky;bottom:0;background:var(--surface);padding-bottom:max(2px,env(safe-area-inset-bottom));flex-wrap:wrap}.dialog-actions .btn{flex:1}.ticket-table .table-head,.tenant-table .table-head{display:none}.ticket-table .table-row,.tenant-table .table-row{display:grid!important;grid-template-columns:1fr!important;gap:8px;padding:14px}.ticket-table .table-row>*,.tenant-table .table-row>*{min-width:0}.table-row>[data-label]::before{content:attr(data-label);display:block;margin-bottom:2px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}}
@media(max-width:430px){.stat-grid{grid-template-columns:1fr}.topbar-actions{gap:4px}.topbar-actions .icon-btn{width:42px;height:42px}.page-actions>.btn{flex:1 1 100%}.row-actions>.btn{flex:1 1 auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.app-toast,.skip-link,.nowchat-connectivity{animation:none!important;transition:none!important}}
@media(forced-colors:active){.btn.primary,.status-pill,.status-badge,.priority{forced-color-adjust:auto}.main-nav a.active{outline:2px solid CanvasText}.presence-dot{border:1px solid CanvasText}}
@media print{.skip-link,.sidebar,.topbar,.toast-stack,.nowchat-connectivity,.nowchat-update,.page-actions,.row-actions button{display:none!important}.shell{display:block}.content{padding:0;max-width:none}.card,.stat{box-shadow:none;break-inside:avoid}}

/* Revisão final pré-homologação: tabelas nunca ampliam o viewport global. */
.two-columns>*{min-width:0}
.ticket-table,.tenant-table{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.ticket-table .table-head,.ticket-table .table-row{grid-template-columns:minmax(0,1.8fr) minmax(0,1.1fr) minmax(0,.9fr) minmax(0,1.1fr) minmax(0,.7fr) minmax(0,.8fr)}
.tenant-table .table-head,.tenant-table .table-row{grid-template-columns:minmax(0,2fr) minmax(0,.8fr) minmax(0,.7fr) minmax(0,.7fr) minmax(0,.7fr)}
