/* DOMINUSYS Campo 0.21.23 — acabamento mobile fino
   Camada progressiva: somente responsividade/UX. Não altera regras de negócio. */

/* Proteções estruturais contra estouro horizontal */
html,body{max-width:100%}
body{overflow-x:hidden}
@supports (overflow:clip){body{overflow-x:clip}}
img,video,canvas{max-width:100%}
.content,.card,.field,.form-grid,.grid,.page-head,.section-title,.timeline-v2-card,.timeline-item-main,.register-hub-card{min-width:0}
.card,.timeline-v2-card,.register-hub-card,.mobile-kpi,.mobile-action-card{overflow-wrap:anywhere}
.table-wrap{max-width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
button,.btn,a,input,select,textarea,summary{touch-action:manipulation}

@media (pointer:coarse){
  .btn,button:not(.action-menu-trigger):not(.sheet-close):not(.app-modal-close),[role="button"]{min-height:44px}
  .action-menu-trigger,.sheet-close,.app-modal-close{min-width:44px;min-height:44px}
}

@media (max-width:980px){
  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
  body{overscroll-behavior-x:none}
  .content{width:100%;max-width:100%;min-width:0}
  .page-head{align-items:stretch!important}
  .page-head>div,.page-head>form{min-width:0;max-width:100%}
  .page-head h1{font-size:clamp(21px,6vw,27px);line-height:1.12;overflow-wrap:anywhere}
  .page-head p{font-size:13px;line-height:1.4}
  .page-head .btn{white-space:normal;text-align:center}

  /* Campos: 16 px evita zoom automático do navegador em iOS/Android WebView. */
  input:not([type="checkbox"]):not([type="radio"]),select,textarea{
    min-width:0!important;max-width:100%!important;font-size:16px!important;
  }
  input[type="date"],input[type="time"],input[type="datetime-local"],input[type="number"]{width:100%;min-width:0}
  .field{min-width:0}
  .field label{line-height:1.25}
  .field .help,.help{line-height:1.45}
  fieldset{min-width:0;max-width:100%}

  /* Cards e blocos */
  .card{max-width:100%;margin-inline:0}
  .section-title{align-items:flex-start}
  .section-title>*,.mobile-section-title>*{min-width:0}
  .section-title h2,.mobile-section-title h2{overflow-wrap:anywhere}
  .badge{max-width:100%;white-space:normal;text-align:center}

  /* Hub Registrar campo */
  .register-hub-head{min-width:0;margin-bottom:12px}
  .register-hub-head h1,.register-hub-head h2{overflow-wrap:anywhere}
  .register-hub-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .register-hub-card{position:relative;display:grid!important;grid-template-columns:42px minmax(0,1fr) 18px!important;align-items:center!important;gap:10px!important;min-height:88px!important;padding:13px!important;border-radius:16px!important}
  .register-hub-card>*{min-width:0}
  .register-hub-card strong,.register-hub-card b{line-height:1.18}
  .register-hub-card small,.register-hub-card p{line-height:1.3}
  .register-hub-icon{width:42px!important;height:42px!important;display:grid!important;place-items:center!important;flex:0 0 42px!important}
  .register-hub-arrow{justify-self:end;font-size:24px;line-height:1}
  .register-principle{padding:14px!important}
  .register-recent-grid{grid-template-columns:1fr!important;gap:9px!important}
  .register-recent-card{min-width:0}

  /* Timeline: no celular a data sobe para cima do cartão, liberando largura. */
  .timeline.timeline-v2{margin-left:0!important;padding-left:0!important;border-left:0!important}
  .timeline-v2 .timeline-item-v2{position:relative!important;display:grid!important;grid-template-columns:14px minmax(0,1fr)!important;grid-template-rows:auto auto!important;column-gap:8px!important;row-gap:5px!important;margin-bottom:12px!important;min-width:0}
  .timeline-v2 .timeline-v2-date{grid-column:2!important;grid-row:1!important;display:flex!important;align-items:center!important;gap:7px!important;padding:0 2px!important;font-size:11px!important;color:#64748b!important;white-space:normal!important}
  .timeline-v2 .timeline-v2-date b{font-size:11px!important}
  .timeline-v2 .timeline-v2-rail{grid-column:1!important;grid-row:1 / 3!important;position:relative!important;width:14px!important;min-height:100%!important}
  .timeline-v2 .timeline-v2-dot{position:absolute!important;top:4px!important;left:50%!important;transform:translateX(-50%)!important}
  .timeline-v2 .timeline-v2-card{grid-column:2!important;grid-row:2!important;width:100%!important;max-width:100%!important;border-radius:16px!important;overflow:visible!important}
  .timeline-item-head{display:flex!important;align-items:flex-start!important;gap:10px!important;flex-wrap:wrap!important}
  .timeline-item-main{flex:1 1 190px!important}
  .timeline-item-actions{margin-left:auto!important;display:flex!important;align-items:center!important;gap:6px!important;flex:0 0 auto!important}
  .timeline-title-row{min-width:0}
  .timeline-title{overflow-wrap:anywhere;line-height:1.25}
  .timeline-description p{overflow-wrap:anywhere;word-break:normal}
  .timeline-toolbar,.timeline-search-row{min-width:0}
  .timeline-search-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}
  .timeline-search-row input{min-width:0!important}
  .quick-filter-row{display:flex!important;gap:7px!important;overflow-x:auto!important;padding-bottom:3px!important;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .quick-filter-row::-webkit-scrollbar{display:none}
  .filter-chip{flex:0 0 auto;min-height:40px;display:inline-flex;align-items:center}
  .action-menu{position:relative}
  .action-menu-trigger{display:grid!important;place-items:center!important;border-radius:11px!important;cursor:pointer}
  .action-menu-panel{position:absolute!important;right:0!important;left:auto!important;top:calc(100% + 6px)!important;width:min(260px,calc(100vw - 28px))!important;max-width:calc(100vw - 28px)!important;z-index:120!important;box-shadow:0 14px 40px rgba(15,23,42,.18)!important}
  .action-menu-panel a,.action-menu-panel button{min-height:44px!important;display:flex!important;align-items:center!important;white-space:normal!important}

  /* Fotos: alvos maiores e proporção previsível */
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .photo-grid>a{display:block;min-width:0}
  .photo-grid img{display:block;width:100%!important;aspect-ratio:4/3!important;object-fit:cover!important}

  /* Botões e grupos de ações */
  .btn{max-width:100%;white-space:normal;line-height:1.2;text-align:center}
  .btn.full-btn,.full-btn{width:100%}
  .form-sticky-action{padding-bottom:2px}
  .form-sticky-action .btn,.form-sticky-action button{width:100%;min-height:52px}

  /* Modais / sheets respeitam teclado, notch e barra inferior */
  .mobile-sheet{max-height:min(86dvh,760px)!important;overscroll-behavior:contain;padding-bottom:calc(18px + env(safe-area-inset-bottom))!important}
  .mobile-sheet,.app-modal-card{max-width:100vw}
  .app-modal-card{max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}
  .sheet-menu>a,.sheet-menu-link{min-height:50px}
  .sheet-head{position:sticky;top:-8px;background:#fff;z-index:2}

  /* Tabelas não devem alargar o documento inteiro. */
  .table-wrap{width:100%;overflow-x:auto!important}
  .table{max-width:none}

  /* Imagens/evidências individuais */
  .dom-photo-visual{max-width:100%;overflow:hidden}
  .dom-photo-image{max-width:100%;overflow:hidden}
  .dom-photo-image img{width:100%;height:auto}

  /* Mensagens e caixas de upload */
  .alert{overflow-wrap:anywhere}
  .camera-box{max-width:100%}
  .camera-trigger{min-width:0;white-space:normal;text-align:center}
}

@media (max-width:560px){
  .content{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}
  .register-hub-grid{gap:8px!important}
  .register-hub-card{grid-template-columns:38px minmax(0,1fr) 14px!important;gap:8px!important;min-height:82px!important;padding:11px!important}
  .register-hub-icon{width:38px!important;height:38px!important}
  .timeline-v2 .timeline-v2-card{border-radius:14px!important}
  .timeline-item-actions .btn.small{padding-inline:9px!important}
  .filters{grid-template-columns:1fr!important}
  .filters>*{grid-column:auto!important;min-width:0!important}
  .mobile-kpi-grid,.mobile-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media (max-width:390px){
  .content{padding-left:8px;padding-right:8px}
  .card{padding:12px!important;border-radius:15px!important}
  .register-hub-card{min-height:78px!important;padding:10px!important}
  .register-hub-card small,.register-hub-card p{font-size:11px!important}
  .timeline-item-head{gap:7px!important}
  .timeline-item-actions{width:100%!important;justify-content:flex-end!important}
  .timeline-item-actions>.btn{flex:1 1 auto!important}
  .action-menu{flex:0 0 auto}
  .mobile-kpi-grid,.mobile-action-grid{gap:7px!important}
}

@media (max-width:340px){
  .register-hub-grid{grid-template-columns:1fr!important}
  .mobile-kpi-grid,.mobile-action-grid{grid-template-columns:1fr!important}
  .photo-grid{grid-template-columns:1fr!important}
  .timeline-search-row{grid-template-columns:1fr!important}
  .timeline-search-row .btn{width:100%}
}

/* Orientação horizontal em celulares: evita overlays ocupando a tela toda. */
@media (max-height:520px) and (orientation:landscape) and (max-width:980px){
  .mobile-sheet{max-height:92dvh!important}
  .app-modal-card{top:8px!important;bottom:8px!important;max-height:none!important}
  .bottom-nav{--mobile-nav-h:64px}
}
