/* NOC-MGT Base Beta — fichas completas e leitor de códigos (somente visual) */
.modal:has(.form-section){width:min(685px,100%)}
.modal:has(.scanner-modal){width:min(600px,100%)}
.modal-body{overscroll-behavior:contain}
.form-section{
  display:grid;gap:13px;border:1px solid var(--noc-border);
  background:var(--noc-surface-raised);border-radius:11px;padding:16px;
}
.form-section-title{
  font-size:11px;text-transform:uppercase;letter-spacing:1.2px;
  font-weight:760;color:var(--noc-green);padding-bottom:8px;
  border-bottom:1px solid var(--noc-border);
}
.form-section .form-grid{gap:13px}
.form-section .field{min-width:0}
.form-section .field input,.form-section .field select{max-width:100%}
.form-extra{border:1px solid var(--noc-border);padding:15px;border-radius:10px;background:var(--noc-surface-raised)}
.form-extra summary{cursor:pointer;font-weight:650;color:var(--noc-ink);margin-bottom:12px}
.form-extra .form-grid{margin-top:10px}
.scanner-panel{
  position:relative;display:flex;gap:15px;align-items:center;flex-wrap:wrap;
  margin-bottom:20px;padding:17px 20px;border-radius:12px;
  border:1px solid rgba(92,179,123,.24);
  background:linear-gradient(110deg,rgba(63,163,100,.11),rgba(37,104,72,.035));
}
.scanner-mark{
  display:grid;place-items:center;width:41px;height:41px;flex:none;
  border:1px solid rgba(113,195,142,.20);border-radius:10px;
  font-size:24px;color:var(--noc-green);background:var(--noc-green-faint);
}
.scanner-copy{display:grid;gap:4px;flex:1 1 250px}
.scanner-copy strong{font-size:13px;color:var(--noc-ink)}
.scanner-copy small{font-size:11px;color:var(--noc-muted);line-height:1.55}
.scanner-input-row{display:flex;gap:8px;align-items:center;flex:1 1 300px}
.scanner-input-row input{
  min-width:0;width:100%;height:39px;padding:9px 12px;
  background:var(--noc-bg-soft);color:var(--noc-ink);
  border:1px solid var(--noc-border-strong);border-radius:8px;
}
.scanner-input-row input:focus{outline:none;border-color:var(--noc-green);box-shadow:0 0 0 3px var(--noc-green-faint)}
.scanner-modal{display:grid;gap:11px;background:var(--noc-green-faint);border:1px solid var(--noc-border-strong);padding:16px;border-radius:10px}
.scanner-modal .field label{font-size:12px}
.scanner-modal .btn{justify-self:start}
.scanner-modal .form-section-title{padding:0 0 8px}
.scanner-modal .form-hint{margin:0}
.row-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.row-actions .btn{white-space:nowrap}
.table-panel .code{font-weight:650;font-size:11px;color:var(--noc-green);white-space:nowrap}
.table-panel table{min-width:760px}
.form-hint{line-height:1.6}
@media(max-width:760px){
 .modal:has(.form-section),.modal:has(.scanner-modal){width:100%}
 .modal-header{padding:19px 20px 14px}
 .modal-body{padding:16px 17px;gap:12px}
 .modal-footer{padding:12px 17px}
 .form-section{padding:12px;gap:11px}
 .form-section .form-grid{grid-template-columns:1fr;gap:11px}
 .scanner-panel{align-items:stretch;padding:15px;gap:10px}
 .scanner-copy{flex:1 1 calc(100% - 62px)}
 .scanner-input-row{flex:1 1 100%}
 .table-panel table{min-width:700px}
}
@media(prefers-reduced-motion:reduce){.scanner-input-row input{transition:none}}


/* Long registration forms: keep the save/cancel footer visible on small screens. */
.modal:has(.form-section),.modal:has(.scanner-modal){
  max-height:calc(100dvh - 28px);
  display:flex;
  flex-direction:column;
}
.modal:has(.form-section) #modal-form,.modal:has(.scanner-modal) #modal-form{
  display:flex;flex-direction:column;flex:1;min-height:0;
}
.modal:has(.form-section) .modal-body,.modal:has(.scanner-modal) .modal-body{
  flex:1;min-height:0;overflow-y:auto;
}
.modal:has(.form-section) .modal-footer,.modal:has(.scanner-modal) .modal-footer,
.modal:has(.form-section) .modal-header,.modal:has(.scanner-modal) .modal-header{
  flex-shrink:0;
}
