/**
 * MIC modern UI (Programação Diária / navio / especie pattern).
 *
 * Opt-in only: rules apply under an element with class "mic-ui".
 * Legacy templates that do not use .mic-ui are unaffected.
 */

/* --- List / full-width page shell --- */
.mic-ui.container-fluid,
.container-fluid.mic-ui {
  width: 100% !important;
  padding: 20px;
}

/* --- Insert/alter form shell (~80% width) --- */
.mic-ui.mic-ui-form.container-fluid,
.container-fluid.mic-ui.mic-ui-form {
  width: 80% !important;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding: 20px;
}

/* Optional width shells used by some modern screens (max-width + centered) */
.mic-ui.mic-ui-form-xs.container-fluid,
.container-fluid.mic-ui.mic-ui-form-xs {
  width: 100% !important;
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
  padding: 20px;
}

.mic-ui.mic-ui-form-sm.container-fluid,
.container-fluid.mic-ui.mic-ui-form-sm {
  width: 100% !important;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  padding: 20px;
}

.mic-ui.mic-ui-form-md.container-fluid,
.container-fluid.mic-ui.mic-ui-form-md {
  width: 100% !important;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  padding: 20px;
}

.mic-ui.mic-ui-form-lg.container-fluid,
.container-fluid.mic-ui.mic-ui-form-lg {
  width: 100% !important;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding: 20px;
}


.mic-ui .table-responsive {
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
  background-color: #fff;
}

/* Wide grids: horizontal scrollbar at the top (sticky) and at the bottom. */
.mic-ui .mic-hscroll,
.mic-ui .consulta-hscroll {
  display: none;
  position: sticky;
  top: 0;
  z-index: 4;
  overflow-x: auto;
  overflow-y: hidden;
  height: 14px;
  background: #f8f9fa;
  border-bottom: 1px solid #dee2e6;
}

.mic-ui .mic-hscroll-inner,
.mic-ui .consulta-hscroll-inner {
  height: 1px;
}

/* Wide grids keep their column labels visible while results scroll vertically. */
.mic-ui .mic-table-scroll,
.mic-ui .consulta-table-scroll {
  position: relative;
  max-height: min(70vh, 720px);
  overflow: auto !important;
}

.mic-ui .mic-table-scroll thead th,
.mic-ui .consulta-table-scroll thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background-color: var(--bs-table-bg, #212529);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.15);
}

.mic-ui .mic-hscroll:not([hidden]) {
  display: block;
}

@media (min-width: 768px) {
  .mic-ui .consulta-hscroll:not([hidden]) {
    display: block;
  }
}

.mic-ui .consulta-filter-toggle .consulta-filter-chevron {
  display: inline-block;
  transition: transform 0.15s ease;
}

.mic-ui .consulta-filter-toggle[aria-expanded="true"] .consulta-filter-chevron {
  transform: rotate(180deg);
}

@media print {
  .mic-ui .mic-hscroll,
  .mic-ui .consulta-hscroll {
    display: none !important;
  }

  .mic-ui .mic-table-scroll,
  .mic-ui .consulta-table-scroll {
    max-height: none;
    overflow: visible !important;
  }

  .mic-ui .mic-table-scroll thead th,
  .mic-ui .consulta-table-scroll thead th {
    position: static;
  }
}

.mic-ui .card {
  width: 100% !important;
  border-radius: 4px;
}

/* Filter card black top accent (replaces inline border-top style) */
.mic-ui .mic-filter-card {
  border-top: 4px solid #000;
}

/* Create CTA (CADASTRAR {ENTIDADE}) on search screens: above the filter card, left-aligned.
   Other buttons (Pesquisar, Excel, Imprimir, Campos, Voltar) stay in their original place. */
.mic-ui .mic-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

/* Search date range: one bordered group, placeholders DD/MM/AAAA, gray "até" */
.mic-ui .mic-date-range {
  flex-wrap: nowrap;
}

.mic-ui .mic-date-range > .form-control {
  min-width: 0;
  flex: 1 1 0;
}

.mic-ui .mic-date-range > .input-group-text {
  background-color: #e9ecef;
  color: #495057;
  font-size: 0.8rem;
}

.mic-ui table.table {
  width: 100% !important;
  margin-bottom: 0;
}

.mic-ui th,
.mic-ui td {
  white-space: nowrap;
  vertical-align: middle;
}

.mic-ui td {
  padding: 10px 8px !important;
}

/* Multi-line cells (logs, long text) — opt-in */
.mic-ui .log-row td,
.mic-ui .mic-wrap,
.mic-ui td.mic-wrap,
.mic-ui th.mic-wrap {
  white-space: normal !important;
}

.mic-ui .mic-empty-icon {
  font-size: 2rem;
  color: #ccc;
}

.mic-ui .btn[aria-expanded="true"] .collapse-icon-closed {
  display: none !important;
}
.mic-ui .btn[aria-expanded="true"] .collapse-icon-open {
  display: inline-block !important;
}
.mic-ui .btn[aria-expanded="false"] .collapse-icon-open,
.mic-ui .btn:not([aria-expanded]) .collapse-icon-open {
  display: none !important;
}

/* Checkbox next to a field label (no .form-check wrapper): keep it visible */
.mic-ui label > .form-check-input {
  float: none;
  width: 1em;
  height: 1em;
  margin-top: 0;
  margin-left: 0;
  margin-right: 0.35rem;
  position: relative;
}

/* Same control height: native select vs input (Windows) */
.mic-ui .form-select.form-select-sm,
.mic-ui .form-control.form-control-sm {
  min-height: 31px;
}

/* Legacy Pedido markup opts into the modern label vocabulary during its gradual migration. */
.mic-ui .mic-legacy-form label:not(.form-check-label) {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
}

/* form-switch + utility padding (p-2) would otherwise clip the knob */
.mic-ui .form-switch .form-check-input {
  margin-left: 0.25rem;
}

/* Tabs: black instead of Bootstrap link-blue */
.mic-ui .nav-tabs .nav-link {
  color: #212529;
  font-weight: 700;
  font-size: 0.8rem;
}

.mic-ui .nav-tabs .nav-link:hover,
.mic-ui .nav-tabs .nav-link:focus {
  color: #000;
  border-color: #dee2e6 #dee2e6 #dee2e6;
}

.mic-ui .nav-tabs .nav-link.active {
  color: #fff;
  background-color: #212529;
  border-color: #212529;
}

/* Accordion: no Bootstrap blue header / chevron; header slightly darker than the body */
.mic-ui .accordion-button {
  color: #212529;
  background-color: #e9ecef;
  box-shadow: none;
  font-size: 0.85rem;
  letter-spacing: 0.02em;
}

.mic-ui .accordion-button:hover,
.mic-ui .accordion-button:focus {
  color: #000;
  background-color: #dee2e6;
  border-color: #dee2e6;
  box-shadow: none;
  z-index: 1;
}

.mic-ui .accordion-button:not(.collapsed) {
  color: #000;
  background-color: #e9ecef;
  box-shadow: inset 0 -1px 0 #dee2e6;
}

.mic-ui .accordion-button:not(.collapsed)::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.mic-ui .accordion-body {
  overflow: visible;
}

/* Required field mark (red asterisk after the label) */
.mic-ui .mic-required::after {
  content: " *";
  color: #dc3545;
  font-weight: 700;
}

/* Sufficient search filter (OR, not required) — consulta */
.mic-ui .mic-filtro-suficiente-icon {
  font-size: 0.8em;
  color: #6c757d;
  cursor: help;
  margin-left: 0.15rem;
  vertical-align: 0.05em;
}

/* Highlight for filled VL_DOLAR_FIXO on pedido detail */
.mic-ui .mic-destaque-dolar {
  border: 1px solid #ffc107;
  border-left: 4px solid #ffc107;
  background-color: #fff8e1;
  border-radius: 4px;
}

/* Highlight for variable dollar rate (op. 83 without VL_DOLAR_FIXO) */
.mic-ui .mic-destaque-dolar-variavel {
  border: 1px solid #0dcaf0;
  border-left: 4px solid #0dcaf0;
  background-color: #e7f8fb;
  border-radius: 4px;
}

/*
 * Locked / non-editable fields (alter forms, computed values, widgets).
 * Must look gray and "not allowed" — a white disabled control looks broken.
 * Prefer native disabled / readonly; use .mic-readonly only for non-native widgets.
 * .fechado is the legacy alias used on DI computed fields.
 */
.mic-ui input:disabled,
.mic-ui input[readonly],
.mic-ui input.inputs:disabled,
.mic-ui input.inputs[readonly],
.mic-ui textarea:disabled,
.mic-ui textarea[readonly],
.mic-ui textarea.inputs:disabled,
.mic-ui textarea.inputs[readonly],
.mic-ui select:disabled,
.mic-ui select.textos:disabled,
.mic-ui .form-control:disabled,
.mic-ui .form-control[readonly],
.mic-ui .form-select:disabled,
.mic-ui .form-check-input:disabled,
.mic-ui .mic-readonly,
.mic-ui .fechado {
  background-color: #e9ecef !important;
  color: #6c757d !important;
  cursor: not-allowed;
  opacity: 1;
}

/* Display-only box (div/p filled by JS or static text that is not a native control) */
.mic-ui div.mic-readonly,
.mic-ui p.mic-readonly,
.mic-ui .form-control-plaintext.mic-readonly,
.mic-ui .oc-readonly {
  min-height: 31px;
  padding: 0.25rem 0.5rem;
  border: 1px solid #ced4da;
  border-radius: 0.2rem;
  font-size: 0.875rem;
  line-height: 1.5;
  display: block;
}

.mic-ui .ts-wrapper.disabled .ts-control,
.mic-ui .ts-wrapper.locked .ts-control,
.mic-ui .ts-wrapper.mic-readonly .ts-control {
  background-color: #e9ecef !important;
  color: #6c757d !important;
  cursor: not-allowed;
}

.mic-ui .ts-wrapper.disabled .ts-control input,
.mic-ui .ts-wrapper.locked .ts-control input,
.mic-ui .ts-wrapper.mic-readonly .ts-control input {
  cursor: not-allowed;
}

.mic-ui .mic-subcard .card-header {
  letter-spacing: 0.03em;
}

.mic-ui .mic-subcard .mic-di-toggle {
  margin-top: 0.5rem;
}

/* Column stays out of the grid while every JS-toggled child is display:none */
/* JS sets display:block on some labels; keep the same box as always-visible labels */
.mic-ui #acc-identificacao .form-label {
  display: block;
  margin-bottom: 0.35rem;
}

.mic-ui .mic-di-toggle:not(:has([style*="display: block"])):not(:has([style*="display:block"])) {
  display: none !important;
}

.mic-ui .mic-form-actions {
  position: sticky;
  bottom: 0;
  z-index: 20;
  background: #fff;
  box-shadow: 0 -6px 16px rgba(0, 0, 0, 0.06);
  padding: 0.75rem 1.25rem;
}

/* Home / submenu tiles — fixed icon box so mixed aspect-ratio images (e.g. armazem.jpg) stay aligned */
.mic-ui .mic-home-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.mic-ui .mic-home-tile-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 120px;
}

.mic-ui .mic-home-tile-icon img {
  max-width: 120px;
  max-height: 120px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.mic-ui .mic-home-tile-icon img.apagado {
  opacity: 0.35;
}

.mic-ui .mic-home-tile-label {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
}

.mic-ui .mic-home-tile-sm .mic-home-tile-icon {
  height: 72px;
}

.mic-ui .mic-home-tile-sm .mic-home-tile-icon img {
  max-width: 72px;
  max-height: 72px;
}

/* Shell chrome (header / footer) — always on, not opt-in via .mic-ui */
.mic-chrome.navbar {
  min-height: 48px;
}

.mic-chrome .navbar-brand {
  letter-spacing: 0.04em;
}

.mic-chrome-date,
.mic-chrome-user,
.mic-chrome-helpdesk {
  color: rgba(255, 255, 255, 0.7);
}

.mic-chrome-lideres {
  min-width: 260px;
  max-width: min(360px, 92vw);
  max-height: 320px;
  overflow-y: auto;
}

.mic-chrome-title {
  font-size: 1.25rem;
  font-weight: 700;
  text-align: center;
  margin: 1rem 0 0.5rem;
}

.mic-chrome-footer {
  margin-top: auto;
}

.mic-chrome-homolog {
  letter-spacing: 0.04em;
}
