/* ======================================================================
   PortariaPro - CSS principal modularizado
   Os estilos foram separados por responsabilidade para facilitar manutenção.
   ====================================================================== */

@import url('css/base.css?v=101');
@import url('css/brand.css?v=101');
@import url('css/layout.css?v=101');
@import url('css/sidebar.css?v=101');
@import url('css/buttons.css?v=101');
@import url('css/cards.css?v=101');
@import url('css/forms.css?v=101');
@import url('css/tables.css?v=101');
@import url('css/auth.css?v=101');
@import url('css/dashboard.css?v=20260718-42');
@import url('css/modals.css?v=101');
@import url('css/signature.css?v=101');
@import url('css/extras.css?v=101');
@import url('css/responsive.css?v=140');
@import url('css/pwa.css?v=101');
@import url('css/mobile-operador.css?v=141');
@import url('css/corte-agua.css?v=101');

@import url('css/transicao-turno.css?v=130');

@import url('css/final-layout-fixes.css?v=150');
@import url('css/portaria-interno-mobile.css?v=20260716-5');
@import url('css/portaria-menu-inicial.css?v=20260716-4');
@import url('css/zelador-mobile-app.css?v=20260716-15');
@import url('css/admin-condominio-mobile.css?v=20260718-2');


/* Solicitação de edição e ações compactas */
.form-icone-edicao{display:inline-flex;margin:0}
.btn-icone-edicao{width:38px;min-width:38px;height:38px;padding:0;display:inline-grid;place-items:center;border-radius:10px;font-size:18px}
.acoes{align-items:center}
.turno-final-acoes{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.turno-final-acoes form{margin:0}
@media (max-width:767px){
  .linha-operador .acoes{display:flex!important;gap:8px!important;align-items:center!important;justify-content:flex-end!important}
  .linha-operador .acoes .secundario{flex:1}
  .btn-icone-edicao{width:42px;min-width:42px;height:42px}
  .turno-final-acoes{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .turno-final-acoes form,.turno-final-acoes button{width:100%}
}

/* Grade da lista operacional após inclusão da quantidade */
@media (max-width:700px){
  body.perfil-operador .tabela-operador .linha-operador td:nth-child(1)::before{content:'Foto'!important}
  body.perfil-operador .tabela-operador .linha-operador td:nth-child(2)::before{content:'Morador'!important}
  body.perfil-operador .tabela-operador .linha-operador td:nth-child(3)::before{content:'Quantidade'!important}
  body.perfil-operador .tabela-operador .linha-operador td:nth-child(4)::before{content:'Bloco/AP'!important}
  body.perfil-operador .tabela-operador .linha-operador td:nth-child(5)::before{content:''!important;display:none!important}
  body.perfil-operador .tabela-operador .linha-operador td.acoes{display:flex!important;grid-template-columns:none!important;gap:8px!important;padding-top:10px!important}
  body.perfil-operador .tabela-operador .linha-operador td.acoes>button.secundario{flex:1 1 auto!important;width:auto!important;min-width:0!important}
  body.perfil-operador .tabela-operador .linha-operador td.acoes .form-icone-edicao{flex:0 0 44px!important}
  body.perfil-operador .tabela-operador .linha-operador td.acoes .btn-icone-edicao{width:44px!important;min-width:44px!important;height:52px!important}
}


/* Ajustes finais: cartões da Portaria, ações compactas e histórico simplificado */
@media (max-width:700px){
  body.perfil-operador .tabela-operador .linha-operador:not(.linha-historico-operador) td:nth-child(1)::before{content:'Foto'!important}
  body.perfil-operador .tabela-operador .linha-operador:not(.linha-historico-operador) td:nth-child(2)::before{content:'Morador'!important}
  body.perfil-operador .tabela-operador .linha-operador:not(.linha-historico-operador) td:nth-child(3)::before{content:'Bloco/AP'!important}
  body.perfil-operador .tabela-operador .linha-operador:not(.linha-historico-operador) td:nth-child(4)::before{content:'Quantidade'!important}
  body.perfil-operador .tabela-operador .linha-operador:not(.linha-historico-operador) td:nth-child(5)::before{display:none!important;content:''!important}
  body.perfil-operador .tabela-operador .linha-operador td.acoes{
    display:grid!important;grid-template-columns:minmax(0,1fr) 54px!important;gap:10px!important;
    align-items:stretch!important;padding-top:10px!important
  }
  body.perfil-operador .tabela-operador .linha-operador td.acoes>button.secundario{width:100%!important;height:54px!important}
  body.perfil-operador .tabela-operador .linha-operador td.acoes .form-icone-edicao{width:54px!important;display:block!important}
  body.perfil-operador .tabela-operador .linha-operador td.acoes .btn-icone-edicao{width:54px!important;min-width:54px!important;height:54px!important}
  body.perfil-operador .linha-historico-operador td:nth-child(1)::before{content:'Morador'!important}
  body.perfil-operador .linha-historico-operador td:nth-child(2)::before{content:'Bloco/AP'!important}
  body.perfil-operador .linha-historico-operador td:nth-child(3)::before{content:'Chegada'!important}
  body.perfil-operador .linha-historico-operador td:nth-child(4)::before{content:'Entrega'!important}
  body.perfil-operador .linha-historico-operador td{grid-template-columns:105px minmax(0,1fr)!important}
  body.perfil-operador .portaria-primary-nav{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  body.perfil-operador .portaria-primary-link{padding:10px 5px!important;font-size:.72rem!important;gap:4px!important}
  body.perfil-operador .portaria-primary-icon{font-size:1rem!important}
}

.info-row{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:8px}.info-row .label{color:#9ca8c5;font-size:13px;font-weight:700;text-transform:uppercase}.info-row .value{color:#fff;font-size:18px;font-weight:700}

/* ======================================================================
   Correção definitiva — linha QUANTIDADE no card mobile da Portaria
   Mantém exatamente o mesmo padrão visual de MORADOR e BLOCO/AP.
   ====================================================================== */
@media (max-width: 760px){
  body.perfil-operador.aba-prontas .tabela-operador .linha-operador:not(.linha-historico-operador) td:nth-child(4){
    display:grid !important;
    grid-template-columns:84px minmax(0,1fr) !important;
    gap:10px !important;
    align-items:center !important;
    padding:8px 0 8px 8px !important;
    border:0 !important;
    text-align:left !important;
    font-size:1.08rem !important;
    font-weight:900 !important;
    color:var(--text) !important;
  }

  body.perfil-operador.aba-prontas .tabela-operador .linha-operador:not(.linha-historico-operador) td:nth-child(4)::before{
    content:'Quantidade' !important;
    display:block !important;
    color:var(--text-soft) !important;
    font-size:.72rem !important;
    line-height:1.2 !important;
    font-weight:900 !important;
    letter-spacing:.04em !important;
    text-transform:uppercase !important;
  }
}




/* Envio resiliente de formulários */
.portaria-submit-spinner{display:inline-block;width:1em;height:1em;margin-right:.35em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-.15em;animation:portariaSpin .75s linear infinite}
@keyframes portariaSpin{to{transform:rotate(360deg)}}
.is-submit-locked{opacity:.78;cursor:wait!important}
.portaria-envio-aviso[hidden]{display:none!important}
.portaria-envio-aviso{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(15,23,42,.58);backdrop-filter:blur(3px)}
.portaria-envio-card{width:min(440px,100%);padding:24px;border-radius:18px;background:var(--card,#fff);color:var(--text,#172033);box-shadow:0 24px 80px rgba(0,0,0,.28)}
.portaria-envio-card strong{display:block;font-size:1.15rem;margin-bottom:8px}.portaria-envio-card p{margin:0 0 18px;line-height:1.5}.portaria-envio-card>div{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}

/* Histórico completo da encomenda -------------------------------------- */
.historico-encomenda-page { max-width: 1500px; }
.historico-detalhes > div { display:flex; flex-direction:column; gap:6px; }
.historico-detalhes span { color:var(--text); font-weight:700; }
.historico-midias { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; }
.historico-midia { padding:0; overflow:hidden; min-height:210px; background:var(--surface-2); border:1px solid var(--border); border-radius:16px; box-shadow:none; color:var(--text); display:flex; flex-direction:column; }
.historico-midia img { width:100%; height:170px; object-fit:contain; background:#fff; }
.historico-midia span { padding:12px; font-weight:800; text-align:left; }
.historico-timeline .timeline-item { border-left:4px solid var(--primary); }
@media (max-width:700px){
  .historico-encomenda-page { padding-top:10px !important; }
  .historico-detalhes { grid-template-columns:1fr 1fr !important; }
  .historico-midias { grid-template-columns:1fr 1fr; gap:10px; }
  .historico-midia { min-height:160px; }
  .historico-midia img { height:120px; }
}

/* Assinatura da transição: usa exatamente a mesma geometria da retirada. */
@media (max-width:700px){
  #modalAssinaturaTurno.signature-fullscreen { padding:16px; gap:10px; }
  #modalAssinaturaTurno .signature-actions { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; }
  #modalAssinaturaTurno .signature-actions button { min-width:0; width:100%; min-height:60px; padding:10px 8px; }
}

/* PortariaPro — atualização do PWA ------------------------------------- */
@keyframes portariaUpdateSpin{to{transform:rotate(360deg)}}
.portaria-update-toast{
  position:fixed;z-index:100002;top:70px;right:14px;max-width:min(360px,calc(100vw - 28px));
  padding:12px 16px;border-radius:13px;background:#17284a;color:#fff;font-weight:800;
  box-shadow:0 16px 45px rgba(0,0,0,.28);opacity:0;transform:translateY(-10px);pointer-events:none;
  transition:.2s ease
}
.portaria-update-toast.aberto{opacity:1;transform:none}
.portaria-update-toast.sucesso{background:#126647}.portaria-update-toast.erro{background:#9f2d3d}
.portaria-update-modal[hidden]{display:none!important}
.portaria-update-modal{position:fixed;inset:0;z-index:100001;display:grid;place-items:center;padding:20px;background:rgba(5,14,31,.68);backdrop-filter:blur(5px)}
.portaria-update-card{width:min(430px,100%);padding:28px;border-radius:22px;text-align:center;background:var(--card,#fff);color:var(--text,#172033);box-shadow:0 30px 90px rgba(0,0,0,.34)}
.portaria-update-icon{width:58px;height:58px;margin:0 auto 14px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#2469ff,#6d8cff);color:#fff;font-size:2rem;font-weight:900}
.portaria-update-card h3{margin:0 0 9px;font-size:1.35rem}.portaria-update-card p{margin:0 0 8px;line-height:1.45}.portaria-update-card small{display:block;color:var(--text-soft,#6b7280);margin-bottom:20px}
.portaria-update-actions{display:flex;justify-content:center;gap:10px}.portaria-update-actions button{min-width:130px}
@media(max-width:760px){
  .portaria-update-toast{top:60px;right:8px}
  .portaria-update-actions{display:grid;grid-template-columns:1fr 1fr}.portaria-update-actions button{min-width:0;width:100%}
}

/* PortariaPro 4.0 Fase 1 — indicador offline */
.portaria-offline-status{position:fixed;right:14px;bottom:calc(82px + env(safe-area-inset-bottom,0px));z-index:10050;border:0;border-radius:999px;padding:10px 14px;font-weight:800;box-shadow:0 8px 24px rgba(15,23,42,.22);background:#fff;color:#334155}.portaria-offline-status.offline{background:#b45309;color:#fff}.portaria-offline-status.pendente:not(.offline){background:#1d4ed8;color:#fff}.portaria-offline-toast{position:fixed;left:50%;bottom:calc(135px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:10060;max-width:min(92vw,520px);padding:12px 16px;border-radius:12px;background:#0f172a;color:#fff;box-shadow:0 12px 32px rgba(0,0,0,.28);transition:.2s}.portaria-offline-toast.aberto{opacity:1;transform:translate(-50%,0)}.portaria-offline-toast.sucesso{background:#166534}.portaria-offline-toast.erro{background:#991b1b}@media(min-width:900px){.portaria-offline-status{bottom:18px}.portaria-offline-toast{bottom:72px}}

/* ======================================================================
   PortariaPro 4.2 — Fase 3: interface, acessibilidade e revisão geral
   ====================================================================== */
:root{
  --pp-focus-ring:0 0 0 3px rgba(37,99,235,.28);
  --pp-safe-bottom:max(14px,env(safe-area-inset-bottom,0px));
}

/* Foco visível consistente para teclado, leitores e dispositivos híbridos */
:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:3px solid color-mix(in srgb,var(--primary,#2563eb) 72%,#fff 28%)!important;
  outline-offset:3px!important;
  box-shadow:var(--pp-focus-ring)!important;
}
:where(button,.btn,a.btn){touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:where(input,select,textarea){max-width:100%}

/* Campos e botões com altura mínima confortável no celular */
@media(max-width:760px){
  :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea,button,.btn){min-height:46px}
  .content{padding-left:12px!important;padding-right:12px!important;padding-bottom:calc(94px + var(--pp-safe-bottom))!important}
  .card{border-radius:16px!important}
  .card-header{gap:12px!important;align-items:flex-start!important}
  .card-header h1,.card-header h2{line-height:1.2!important}
  .sidebar-actions,.portaria-menu-actions{padding-bottom:var(--pp-safe-bottom)!important}
}

/* Cabeçalhos e ações não quebram ou saem da tela */
.card-header,.page-header,.toolbar,.filtros,.acoes-pagina{min-width:0}
.card-header>*{min-width:0}
.card-header h1,.card-header h2,.card-header p{overflow-wrap:anywhere}
.card-header .actions,.card-header .acoes{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:700px){
  .card-header{display:flex!important;flex-direction:column!important}
  .card-header .actions,.card-header .acoes{width:100%;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}
  .card-header .actions>*:only-child,.card-header .acoes>*:only-child{grid-column:1/-1}
}

/* Tabelas mais seguras em telas pequenas sem alterar cartões já personalizados */
.table-responsive,.tabela-scroll,.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
table{max-width:100%}
th{white-space:nowrap}
td{overflow-wrap:anywhere}

/* Estados de carregamento e bloqueio de envio */
[aria-busy="true"]{cursor:progress!important}
button[disabled],.btn[aria-disabled="true"]{opacity:.62!important;cursor:not-allowed!important;filter:saturate(.75)}
.pp-button-loading{position:relative;pointer-events:none}
.pp-button-loading::after{content:"";display:inline-block;width:16px;height:16px;margin-left:8px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-3px;animation:ppSpin .7s linear infinite}
@keyframes ppSpin{to{transform:rotate(360deg)}}

/* Mensagens de retorno */
.alert,.mensagem,.flash-message{border-radius:14px!important;line-height:1.45}
.pp-live-region{position:fixed;left:50%;bottom:calc(92px + var(--pp-safe-bottom));z-index:100080;transform:translate(-50%,18px);opacity:0;pointer-events:none;width:min(520px,calc(100vw - 24px));padding:13px 16px;border-radius:14px;background:#0f172a;color:#fff;font-weight:800;box-shadow:0 18px 50px rgba(0,0,0,.28);transition:.2s ease}
.pp-live-region.aberto{opacity:1;transform:translate(-50%,0)}
.pp-live-region.sucesso{background:#166534}.pp-live-region.erro{background:#991b1b}.pp-live-region.aviso{background:#92400e}

/* Imagens e modais nunca ultrapassam a viewport */
.modal,.modal-content,.modal-card{max-width:100%}
.modal img,.modal-content img,.historico-midia img{max-width:100%}
@media(max-width:760px){
  .modal,.modal-overlay{padding:10px!important;padding-top:max(10px,env(safe-area-inset-top,0px))!important;padding-bottom:max(10px,env(safe-area-inset-bottom,0px))!important}
  .modal-content,.modal-card{max-height:calc(100dvh - 20px)!important;overflow:auto!important;border-radius:18px!important}
}

/* Melhor comportamento em iPhone/iPad instalados como PWA */
@supports(padding:max(0px)){
  body{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
  .portaria-mobile-topbar,.zelador-mobile-topbar{padding-top:max(8px,env(safe-area-inset-top,0px))!important}
}

/* Impressão limpa para histórico, relatórios e comprovantes */
@media print{
  .sidebar,.portaria-mobile-topbar,.zelador-mobile-topbar,.portaria-primary-nav,.portaria-menu-actions,.sidebar-actions,.portaria-offline-status,.portaria-update-toast,.no-print{display:none!important}
  body,.app,.content,main{display:block!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;background:#fff!important;color:#000!important}
  .card{break-inside:avoid;box-shadow:none!important;border:1px solid #bbb!important}
  a{color:#000!important;text-decoration:none!important}
}

/* Respeita usuários que desativaram animações */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}

/* PortariaPro 4.0 — Financeiro manual */
.financial-block-details{display:grid;gap:10px;margin:18px 0;padding:18px;border:1px solid var(--border,#dbe3ef);border-radius:16px;background:var(--card,#fff)}
.financial-block-details p{margin:0;overflow-wrap:anywhere}
.info-card.danger{border-color:rgba(220,38,38,.25)}
.info-card.danger strong{color:#dc2626}
.tag.atrasada{background:rgba(220,38,38,.12);color:#b91c1c}
.tag.pendente{background:rgba(245,158,11,.14);color:#b45309}
.grid-form .full{grid-column:1/-1}
.grid-form textarea{min-height:90px;resize:vertical}
@media(max-width:760px){.financial-block-details{padding:14px}.user-table td.usuarios-actions,.usuario-actions{min-width:190px}}
