/* Acabamento visual do NovoPrograma.
   Este arquivo fica por ultimo na cascata e padroniza as telas sem quebrar o PHP legado. */
:root {
  --app-bg: #e9e4da;
  --app-surface: #fffdf8;
  --app-surface-soft: #f4eee4;
  --app-text: #27313b;
  --app-muted: #6f756f;
  --app-border: #d9d0c2;
  --app-primary: #b9573f;
  --app-primary-dark: #843c32;
  --app-accent: #d59b3f;
  --app-warning: #d59b3f;
  --app-danger: #b8443d;
  --app-success: #1f8a4c;
  --app-radius: 8px;
  --app-shadow: 0 14px 34px rgba(72, 57, 42, .14);
}

html { scroll-behavior: smooth; }

body {
  background:
    linear-gradient(115deg, rgba(185,87,63,.08), transparent 34%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.22) 0, rgba(255,255,255,.22) 1px, transparent 1px, transparent 18px),
    linear-gradient(135deg, var(--app-bg), #f8f4ec 56%, #dfe8df) !important;
  color: var(--app-text);
}

.topbar {
  background: #27313b !important;
  border-bottom: 3px solid var(--app-accent);
}

.topbar-logo {
  width: 58px !important;
  max-height: 42px;
  object-fit: contain;
}

.topbar-appname,
.topbar-pagetitle,
.topbar-user {
  color: #fffaf2 !important;
}

.topbar-link,
.topbar-logout {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.cadastro-container,
.main-dashboard,
.conteudo-principal {
  background: rgba(255,253,248,.95) !important;
  border-radius: var(--app-radius) !important;
  box-shadow: var(--app-shadow) !important;
}

.cadastro-title,
.dashboard-title,
.rest-title,
.monitor-title {
  color: var(--app-text) !important;
  letter-spacing: 0 !important;
}

.cadastro-btn,
.cadastro-btn2,
.dashboard-btn,
.btn-primary,
.login-form button {
  border-radius: var(--app-radius) !important;
  font-weight: 800 !important;
}

.cadastro-btn2 {
  background: #fff !important;
  border: 1px solid var(--app-border) !important;
  color: var(--app-text) !important;
  box-shadow: none !important;
}

.cadastro-btn2:hover {
  background: var(--app-surface-soft) !important;
  border-color: #bdd6d1 !important;
}

.btn-danger,
.btn-del,
.sair-btn,
.logout-btn,
.topbar-logout.is-danger {
  background: var(--app-danger) !important;
  color: #fff !important;
}

input,
select,
textarea {
  min-height: 42px;
}

table {
  border-collapse: collapse;
}

th {
  white-space: nowrap;
}

td,
th {
  vertical-align: middle;
}

.table-wrap,
.table-scroll,
.table-scroll-wrapper {
  background: transparent !important;
  border-radius: var(--app-radius) !important;
}

.table-wrap,
.table-scroll {
  overflow-x: auto;
}

.tabela-usuarios,
.tabela-receber,
.tabela-pagar,
.tabela-relatorio,
.tabela-itens,
.report-table,
.list-table,
.results-table {
  background: #fff !important;
  border: 1px solid var(--app-border) !important;
  border-radius: var(--app-radius) !important;
  color: var(--app-text) !important;
  overflow: hidden;
}

.tabela-usuarios th,
.tabela-receber th,
.tabela-pagar th,
.tabela-relatorio th,
.tabela-itens th,
.report-table th,
.list-table th,
.results-table th {
  background: #edf4f7 !important;
  border-color: var(--app-border) !important;
  color: #284252 !important;
  font-weight: 900 !important;
}

.tabela-usuarios td,
.tabela-receber td,
.tabela-pagar td,
.tabela-relatorio td,
.tabela-itens td,
.report-table td,
.list-table td,
.results-table td {
  border-color: var(--app-border) !important;
  color: var(--app-text) !important;
}

tfoot tr,
tfoot td {
  background: #f6fafb !important;
  color: var(--app-text) !important;
  font-weight: 900 !important;
}

.cadastro-pesquisa,
.filtro-block,
.filtro-bar {
  color: var(--app-text);
}

.autocomplete-list {
  background: #fff !important;
  border: 1px solid var(--app-border) !important;
  border-radius: var(--app-radius) !important;
  box-shadow: 0 16px 34px rgba(32,55,78,.14) !important;
  color: var(--app-text) !important;
  overflow: hidden;
}

.autocomplete-item {
  color: var(--app-text) !important;
}

.autocomplete-item:hover,
.autocomplete-selected {
  background: #ecf6f4 !important;
  color: var(--app-text) !important;
}

.btn-novo,
.page-link,
.action-edit,
.inline-delete button,
.baixar-btn {
  border-radius: var(--app-radius) !important;
  font-weight: 800 !important;
}

.btn-novo {
  background: var(--app-accent) !important;
  color: #fff !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
}

.action-edit {
  color: var(--app-primary-dark) !important;
}

.inline-delete button {
  color: var(--app-danger) !important;
}

.page-link {
  background: #fff !important;
  border: 1px solid var(--app-border) !important;
  color: var(--app-text) !important;
}

.page-link.next {
  background: var(--app-primary) !important;
  border-color: var(--app-primary) !important;
  color: #fff !important;
}

.page-status {
  color: var(--app-muted) !important;
  font-weight: 800;
}

.create-card,
.message {
  background: #fff !important;
  border: 1px solid var(--app-border) !important;
  border-radius: var(--app-radius) !important;
  box-shadow: 0 8px 22px rgba(32,55,78,.08);
  color: var(--app-text) !important;
}

.create-card label,
.message {
  color: var(--app-text) !important;
}

.baixar-btn {
  background: var(--app-primary) !important;
  min-height: 34px;
  padding: 6px 12px !important;
}

.baixar-btn[disabled] {
  background: #d8e3ed !important;
  color: #607287 !important;
}

.app-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
  margin: 0 0 18px;
}

.app-kpi {
  background: var(--app-surface);
  border: 1px solid var(--app-border);
  border-left: 4px solid var(--app-primary);
  border-radius: var(--app-radius);
  box-shadow: 0 8px 22px rgba(32,55,78,.08);
  padding: 12px 14px;
}

.app-kpi strong {
  display: block;
  color: var(--app-text);
  font-size: 1.45rem;
  line-height: 1.1;
}

.app-kpi span {
  color: var(--app-muted);
  display: block;
  font-size: .86rem;
  font-weight: 800;
  margin-top: 4px;
}

.app-page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
  margin-bottom: 16px;
}

.mesa-card,
.rest-panel,
.pedido-card,
.module-card,
.report-card {
  border-radius: var(--app-radius) !important;
}

.module-body {
  padding-right: 36px !important;
}

.mesa-card {
  position: relative;
}

.mesa-card::after {
  border-radius: 999px;
  content: "";
  height: 10px;
  position: absolute;
  right: 12px;
  top: 12px;
  width: 10px;
}

.mesa-card:has(.mesa-livre)::after { background: var(--app-success); }
.mesa-card:has(.mesa-ocupada)::after { background: var(--app-warning); }

.rest-summary-panel {
  position: sticky;
  top: 82px;
}

.totais .total {
  background: #ecf6f4;
  border: 1px solid #cce5df;
  border-radius: var(--app-radius);
  padding: 10px;
}

.item-cancelado {
  opacity: .62;
  text-decoration: line-through;
}

.empty,
.error-msg,
.success-msg {
  border-radius: var(--app-radius) !important;
}

@media (max-width: 760px) {
  body { padding-top: 64px; }

  .topbar-inner {
    gap: 8px;
  }

  .topbar-logo {
    width: 38px !important;
  }

  .topbar-appname {
    max-width: 112px;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .topbar-center {
    display: none !important;
  }

  .cadastro-container,
  .main-dashboard,
  .conteudo-principal {
    width: min(96vw, 1024px) !important;
    min-width: 0 !important;
    padding: 16px !important;
  }

  .app-page-actions {
    justify-content: stretch;
  }

  .app-page-actions a,
  .app-page-actions button {
    flex: 1 1 100%;
    text-align: center;
  }

  .rest-summary-panel {
    position: static;
  }
}
