/* FacilitaObra: clareza e responsividade nos fluxos mais usados. */
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 3px solid rgba(21, 154, 156, .28);
  outline-offset: 2px;
}

[aria-invalid="true"] {
  border-color: var(--red) !important;
  box-shadow: 0 0 0 3px rgba(196, 61, 75, .1) !important;
}

.search-label {
  display: block;
  margin: 4px 0 7px;
  color: var(--muted);
  font: 700 10px Inter;
  letter-spacing: .45px;
}

.result-row strong small,
.result-row > span small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font: 500 9px Inter;
}

.result-row > span { text-align: right; }
.result-row > span small { color: var(--teal); font-weight: 800; }
.search-empty { padding: 20px 8px; text-align: center; line-height: 1.6 !important; }
.structure-empty { padding: 8px 3px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.inspector-empty { padding: 28px 4px; text-align: center; }
.inspector-empty strong { font: 700 14px Manrope; }
.inspector-empty p { font-size: 11px; }
.budget-empty-row { cursor: default; }
.budget-empty-row:hover { background: transparent; }
.budget-empty-row td { padding: 55px 20px; text-align: center; }
.budget-empty-row strong { display: block; font: 700 15px Manrope; }
.budget-empty-row span { display: block; margin-top: 7px; color: var(--muted); font-size: 11px; }
.table-panel,
.table-scroll { min-width: 0; }
.field-grid label { align-content: start; }
.field-grid label > .optional-label { font-weight: 500; }

@media (max-width: 1500px) {
  .view { padding-left: 30px; padding-right: 30px; }
  .budget-layout { grid-template-columns: 210px minmax(0, 1fr); }
  .inspector { display: block; grid-column: 2; }
  .view-header { align-items: flex-start; gap: 20px; }
  .view-buttons { flex-wrap: wrap; justify-content: flex-end; }
}

@media (max-width: 1120px) {
  .budget-layout { grid-template-columns: 185px minmax(0, 1fr); }
  .inspector { display: block; grid-column: 2; }
  .hero-grid { grid-template-columns: 1fr; }
  .view-header { display: block; }
  .view-buttons { justify-content: flex-start; margin-top: 15px; }
}

@media (max-width: 760px) {
  .app-shell .rail { display: none; }
  .app-shell.nav-open .rail {
    display: flex;
    position: fixed;
    inset: 0 auto 0 0;
    width: min(286px, 86vw);
    z-index: 20;
    box-shadow: 18px 0 45px rgba(0, 0, 0, .28);
  }
  .app-shell.nav-open::after {
    content: "";
    position: fixed;
    inset: 0;
    background: rgba(16, 27, 35, .45);
    z-index: 19;
  }
  .budget-layout { display: block; }
  .inspector { display: none; }
  .view-buttons { display: grid; grid-template-columns: 1fr 1fr; }
  .view-buttons .primary-action { grid-column: 1 / -1; }
  .topbar { z-index: 10; }
  .table-scroll { max-height: none; }
  .budget-empty-row td { padding: 38px 16px; }
}

@media (max-width: 430px) {
  #quick-create { font-size: 0; }
  #quick-create b { font-size: 18px; }
  #quick-create::after { content: "Novo"; font-size: 11px; }
  .view-buttons { grid-template-columns: 1fr; }
  .view-buttons .primary-action { grid-column: auto; }
  .pulse-grid { gap: 14px; }
  .metrics { grid-template-columns: 1fr; }
}
