/* responsive.css — camada responsiva global do REELAB
   Regra: reorganizar a interface sem remover funcionalidades. */

html,body,#sc-app,.body,.main{max-width:100%}
*,*::before,*::after{box-sizing:border-box}
.main,.main>*,
.card,.sector-panel,.dm-panel,.lab-card,.aces-card,
.sector-main,.laboratory-main,.aces-workspace,.dm-overview{min-width:0}
img,video,canvas{max-width:100%}
input,select,textarea,button{max-width:100%}

.sector-table-wrap,
.dm-table-wrap,
.aces-table-wrap,
.aces-board-table,
.analysis-data-table,
.lab-origin-table,
.lab-history-table,
.aces-document-table{
  max-width:100%;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
}

/* Tablet e telas compactas: navegação vira drawer e o conteúdo ganha a largura toda. */
@media (max-width:1200px), (hover:none) and (pointer:coarse) and (max-width:1366px){
  .topbar{padding-left:12px;padding-right:12px;gap:8px}
  .tb-menu{
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    flex:0 0 38px;
    background:transparent;
    border:.5px solid var(--bord2);
    border-radius:var(--r);
    color:var(--green);
    font-size:20px;
    line-height:1;
    cursor:pointer;
  }
  .tb-menu[aria-expanded="true"]{background:var(--ga);border-color:var(--bord3)}
  .tb-r{flex:1;min-width:0;gap:7px;justify-content:flex-end}
  .body{position:relative;min-width:0}
  .sb{
    position:fixed;
    top:var(--reelab-topbar-height,46px);
    bottom:0;
    left:0;
    width:min(86vw,340px);
    max-width:340px;
    height:auto;
    z-index:90;
    border-right-color:var(--bord2);
    box-shadow:12px 0 32px rgba(0,0,0,.38);
    transform:translateX(-104%);
    visibility:hidden;
    transition:transform .22s ease,visibility .22s ease;
  }
  .sb.mobile-open{transform:translateX(0);visibility:visible}
  .sb-backdrop{
    display:block;
    position:fixed;
    inset:var(--reelab-topbar-height,46px) 0 0 0;
    z-index:80;
    background:rgba(0,0,0,.58);
    border:0;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .22s ease,visibility .22s ease;
  }
  .sb-backdrop.on{opacity:1;visibility:visible;pointer-events:auto}
  body.mobile-nav-open{overflow:hidden}

  .main{width:100%;min-width:0;overflow-x:hidden}
  .detail,.ov,.data-wrap,.apg{padding:16px}
  .sector-main{padding:20px}
  .laboratory-main{padding-left:16px!important;padding-right:16px!important}
  .aces-workspace,.dm-overview{padding-left:16px;padding-right:16px}

  .sector-workspace-badge,.sector-workspace-select{max-width:180px}
  .reelab-global-search{width:min(280px,27vw)!important;min-width:150px!important}

  .modules-drawer-panel{width:min(620px,100%);max-height:calc(100dvh - 32px)}
  .modules-grid{grid-template-columns:repeat(3,minmax(0,1fr))}

  .dh,.dm-header,.aces-header,.lab-card-title{min-width:0}
  .dh-left,.dact,.dm-header-actions{min-width:0}
  .dact{flex-wrap:wrap}

  .lab-history-table table,
  .aces-board-table table,
  .dm-table-panel table,
  .sector-table,
  .aces-document table{
    width:max-content;
    max-width:none;
  }

  .lab-history-table table{min-width:1160px}
  .aces-board-table table{min-width:900px}
  .dm-table-panel table,.sector-table{min-width:720px}
  .aces-document table{min-width:760px}
}

/* Ajustes de módulos no espaço de tablet. */
@media (max-width:1200px), (hover:none) and (pointer:coarse) and (max-width:1366px){
  .lab-gate,.lab-current-file,.lab-document-history summary{min-width:0}
  .lab-gate-actions{min-width:0;max-width:100%;flex:1 1 420px}
  .lab-gate-actions form{min-width:0;flex:1 1 320px}
  .lab-documents form{grid-template-columns:minmax(190px,.8fr) minmax(240px,1.2fr) auto}
  .analysis-data-controls{min-width:0}
  .analysis-data-controls>div:first-child{min-width:0}
  .analysis-data-actions{flex-wrap:wrap}
  .analysis-data-actions button{flex:1 1 140px}

  .aces-layout,.aces-layout>*{min-width:0}
  .aces-sample-row,.aces-form-grid,.aces-receipt-grid{min-width:0}
  .aces-success-actions button{min-width:0;flex:1 1 150px}
  .aces-board-head{flex-wrap:wrap}

  .dm-shell,.dm-grid,.dm-filters,.dm-kpis{min-width:0}
  .dm-header{min-width:0}
  .dm-header-actions{min-width:0;flex-wrap:wrap}

  .sector-page-header,.sector-panel-head{min-width:0}
  .sector-panel-head{flex-wrap:wrap}
}

/* Tablet em retrato / notebooks estreitos. */
@media (max-width:900px){
  .topbar{gap:7px}
  .tb-r{gap:5px}
  .tb-user{display:none}
  .sector-workspace-badge,.sector-workspace-select{max-width:150px;font-size:10px}
  .reelab-global-search{width:min(210px,27vw)!important;min-width:120px!important}

  .detail,.ov,.data-wrap,.apg{padding:14px}
  .sector-main{padding:18px 14px}
  .dg{grid-template-columns:170px minmax(0,1fr)}
  .modules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Celular: todos os controles permanecem disponíveis, mas podem quebrar linha. */
@media (max-width:760px){
  .topbar{
    height:auto;
    min-height:52px;
    padding:7px 8px;
    gap:6px;
    align-items:center;
  }
  .tb-logo{font-size:17px;gap:6px;white-space:nowrap}
  .tb-r{
    flex:1 1 0;
    min-width:0;
    flex-wrap:wrap;
    gap:5px;
    align-items:center;
  }
  .tb-btn{min-height:36px;padding:6px 9px;font-size:11px;white-space:nowrap}
  .sector-workspace-control{min-width:0}
  .sector-workspace-badge,.sector-workspace-select{max-width:145px}
  .reelab-global-search{
    flex:1 1 140px;
    width:auto!important;
    min-width:120px!important;
    max-width:210px;
  }
  .reelab-global-search input{min-height:36px}
  .sb{
    top:var(--reelab-topbar-height,52px);
    width:min(90vw,330px);
    max-width:330px;
  }
  .sb-backdrop{inset:var(--reelab-topbar-height,52px) 0 0 0}

  .detail,.ov,.data-wrap,.apg,
  .sector-main,.laboratory-main,.aces-workspace,.dm-overview{
    padding-left:12px!important;
    padding-right:12px!important;
  }

  .dg,.gauge-row{grid-template-columns:minmax(0,1fr)}
  .dh-left,.dact{width:100%}
  .dact .btn-a,.dact .btn-print-ficha{flex:1 1 145px}

  .modules-drawer{padding:10px}
  .modules-drawer-panel{padding:16px;max-height:calc(100dvh - 20px)}
  .modules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

  .aces-preview-dialog,
  .reelab-viewer-box,
  .reelab-recorder-box{
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
    max-height:calc(100dvh - 20px)!important;
  }
}

/* Telefones estreitos: permite que o topo cresça sem esconder controles. */
@media (max-width:520px){
  .tb-r{flex-basis:100%}
  .topbar{align-items:flex-start}
  .tb-menu{margin-top:1px}
  .tb-logo{margin-top:8px}
  .sector-workspace-control{flex:1 1 100%;order:1}
  .sector-workspace-badge,.sector-workspace-select{width:100%;max-width:none}
  .reelab-global-search{order:2;flex:1 1 150px;max-width:none}
  .tb-btn{order:3}
  .modules-grid{grid-template-columns:1fr 1fr}
}

/* Dispositivos de toque: aumenta áreas de interação sem alterar permissões ou conteúdo. */
@media (hover:none) and (pointer:coarse){
  .tb-btn,.tb-menu,.btn-a,.btn-link,.sector-nav-item,
  .aces-submit,.aces-step-action,.lab-document-actions button,
  .analysis-data-actions button,.dm-refresh{
    min-height:38px;
    touch-action:manipulation;
  }
  .filt{min-height:32px;touch-action:manipulation}
  input,select,textarea{font-size:max(16px,1em)}
}
