.passeios-lote-barra { position: fixed; right: max(20px, env(safe-area-inset-right)); bottom: max(20px, env(safe-area-inset-bottom)); z-index: 1000; width: max-content; max-width: calc(100vw - 24px); padding: 9px 11px 9px 14px; background: #fff; border: 1px solid #e2e5e6; border-radius: 8px; box-shadow: 0 4px 16px #1112; display: flex; flex-wrap: nowrap; gap: 8px; align-items: center; }
.passeios-lote-barra[hidden] { display: none; }
.passeios-lote-barra p { margin: 0 5px 0 0; color: #343a3d; font-size: 13px; white-space: nowrap; }
.passeios-lote-barra button { min-height: 34px; padding: 6px 10px; border-radius: 5px; white-space: nowrap; }
.passeios-lote-barra .passeios-lote-descartar { border: 1px solid #d9dedf; background: #fff; color: #31383b; }
.passeios-lote-barra .passeios-lote-salvar { border: 1px solid #d8b731; background: #f5d84a; color: #24200c; font-weight: 600; }
.passeios-lote-barra button:disabled { opacity: .55; cursor: not-allowed; }
@media (max-width: 540px) { .passeios-lote-barra { right: 12px; bottom: max(12px, env(safe-area-inset-bottom)); gap: 5px; padding: 8px; } .passeios-lote-barra p { max-width: 92px; white-space: normal; font-size: 12px; } .passeios-lote-barra button { padding-inline: 7px; font-size: 11px; } }
.passeios-lote-campos { border: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin: 16px 0; padding: 0; }
.passeios-lote-campos label { display: flex; flex-direction: column; gap: 6px; }
.passeios-lote-campos textarea { min-height: 110px; }
.catalogo-autocomplete { position: relative; width: 100%; }
/* Keep suggestions in the row's flow: receipt/budget tables clip overflow. */
.catalogo-autocomplete-opcoes { position: static; margin-top: 2px; width: 100%; box-sizing: border-box; max-height: 192px; overflow: auto; background: #fff; border: 1px solid #cbd5e1; border-radius: 4px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); }
.catalogo-autocomplete-opcoes[hidden] { display: none !important; }
/* Higher specificity than .form-card button, including its later declarations. */
.catalogo-autocomplete .catalogo-autocomplete-opcoes button { display: block; width: 100%; min-width: max-content; box-sizing: border-box; height: 38px; min-height: 38px; margin: 0; padding: 9px 12px; border: 0; border-radius: 0; background: #fff; color: #111; font: inherit; font-size: 14px; font-weight: 400; line-height: 20px; text-align: left; white-space: nowrap; box-shadow: none; cursor: pointer; }
.catalogo-autocomplete .catalogo-autocomplete-opcoes button:hover, .catalogo-autocomplete .catalogo-autocomplete-opcoes button[aria-selected="true"] { background: #f1f5f9; color: #111; }

/* Shared document items: keep dates compact and give the product remaining space. */
.form-card:has(.documento-itens-tabela) { max-width: 1180px; }
.tabela-orcamento-produtos.documento-itens-tabela { min-width: 0; table-layout: auto; overflow: visible; }
.tabela-orcamento-produtos.documento-itens-tabela td:first-child { width: auto !important; }
.documento-item-main { display: grid; grid-template-columns: 140px 100px minmax(0, 1fr) 145px 40px; gap: 12px; align-items: start; }
.documento-item label { display: flex; flex-direction: column; gap: 6px; min-width: 0; font-size: 13px; }
.documento-item input, .documento-item textarea { box-sizing: border-box; min-width: 0; width: 100%; margin: 0 !important; }
.documento-item textarea { padding: 10px 12px; border: 1px solid #d9d9d9; border-radius: 10px; font: inherit; resize: vertical; }
.documento-item-obs { margin-top: 12px; }
.documento-item-main .item-remover { margin-top: 24px !important; width: 40px !important; min-width: 0 !important; }
.passeio-avancado { margin: 16px 0; padding: 12px; border: 1px solid #e2e8f0; border-radius: 10px; }
.passeio-avancado summary { cursor: pointer; font-weight: 600; }
.passeios-lote-campos > .passeio-avancado, .passeios-lote-campos > button { grid-column: 1 / -1; }
[data-preco-tipo][hidden] { display: none !important; }
@media (max-width: 1100px) {
  .documento-item-main { grid-template-columns: 125px 85px minmax(0, 1fr) 115px 36px; gap: 8px; }
}
@media (max-width: 760px) {
  .documento-item-main { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 36px; }
  .documento-item-main .item-data { grid-column: 1; grid-row: 1; }
  .documento-item-main .item-hora { grid-column: 2; grid-row: 1; }
  .documento-item-main .item-remover { grid-column: 3; grid-row: 1; }
  .documento-item-main .item-produto { grid-column: 1 / -1; grid-row: 2; }
  .documento-item-main .item-valor { grid-column: 1 / -1; grid-row: 3; }
  .documento-item .item-data input { padding-left: 6px !important; padding-right: 2px !important; font-size: 14px !important; }
  .passeios-form-card, .editor-passeio-final { min-width: 0; }
}
@media (max-width: 360px) {
  .documento-item-main { grid-template-columns: minmax(0, 1fr) 36px; }
  .documento-item-main .item-data { grid-column: 1 / -1; grid-row: 1; }
  .documento-item-main .item-hora { grid-column: 1 / -1; grid-row: 2; }
  .documento-item-main .item-produto { grid-row: 3; }
  .documento-item-main .item-valor { grid-row: 4; }
  .documento-item-main .item-remover { grid-column: 2; grid-row: 5; margin-top: 0 !important; }
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: Arial, Helvetica, sans-serif;
  background: linear-gradient(135deg, #f6efe0, #ffffff);
  min-height: 100vh;
  overflow-x: hidden;
}

/* TELA */

.tela-login {
  width: 100%;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 45px 24px;
}

/* CAIXA */

.login-box {
  width: 100%;
  max-width: 1300px;
}

/* CABEÇALHO */

.logo-area {
  width: 100%;
  margin-bottom: 55px;
}

.logo-header {
  background: #ffffff;
  border: 2px solid rgba(245,184,0,.55);
  border-radius: 34px;
  padding: 34px 45px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 45px;
  box-shadow: 0 18px 45px rgba(0,0,0,.10);
}

.logo-header img {
  width: 300px;
  max-width: 100%;
  object-fit: contain;
}

.linha-logo {
  width: 2px;
  height: 125px;
  background: #f5b800;
}

.texto-header {
  text-align: left;
}

.texto-header h1 {
  color: #111111;
  font-size: 58px;
  line-height: 1;
  margin-bottom: 16px;
}

.texto-header p {
  color: #444444;
  font-size: 24px;
}

/* CARDS */

.opcoes-login {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 35px;
}

.card-login {
  background: #ffffff;
  border-radius: 28px;
  padding: 40px;
  box-shadow: 0 15px 40px rgba(0,0,0,.15);
  border-top: 8px solid #f5b800;
}

.card-login.admin {
  background: #181818;
  border-top: 8px solid #f5b800;
}

.card-login span {
  display: inline-block;
  background: #f5b800;
  color: #111111;
  font-size: 13px;
  font-weight: bold;
  padding: 8px 14px;
  border-radius: 30px;
  margin-bottom: 18px;
}

.card-login h2 {
  font-size: 32px;
  margin-bottom: 12px;
  color: #111111;
}

.card-login.admin h2 {
  color: #ffffff;
}

.card-login p {
  font-size: 16px;
  line-height: 1.6;
  margin-bottom: 28px;
  color: #555555;
}

.card-login.admin p {
  color: #dddddd;
}

/* INPUTS */

.card-login input {
  width: 100%;
  height: 58px;
  border: 1px solid #d9d9d9;
  border-radius: 14px;
  padding: 0 18px;
  margin-bottom: 15px;
  font-size: 16px;
  outline: none;
}

.card-login.admin input {
  background: #242424;
  border: 1px solid #333333;
  color: #ffffff;
}

.card-login input:focus {
  border-color: #f5b800;
}

/* BOTÕES */

.card-login button {
  width: 100%;
  height: 58px;
  border: none;
  border-radius: 14px;
  background: #f5b800;
  color: #111111;
  font-size: 17px;
  font-weight: bold;
  cursor: pointer;
  transition: .3s;
}

.card-login button:hover {
  transform: translateY(-2px);
  filter: brightness(.95);
}

/* RESPONSIVO */

@media (max-width: 900px) {
  .opcoes-login {
    grid-template-columns: 1fr;
  }

  .logo-header {
    flex-direction: column;
    gap: 20px;
    text-align: center;
    padding: 32px 25px;
  }

  .linha-logo {
    width: 130px;
    height: 2px;
  }

  .texto-header {
    text-align: center;
  }

  .texto-header h1 {
    font-size: 40px;
  }

  .texto-header p {
    font-size: 18px;
  }

  .card-login {
    padding: 30px;
  }
}

@media (max-width: 500px) {
  .tela-login {
    padding: 28px 16px;
  }

  .logo-header img {
    width: 230px;
  }

  .texto-header h1 {
    font-size: 34px;
  }

  .texto-header p {
    font-size: 16px;
  }

  .card-login h2 {
    font-size: 26px;
  }
}
/* =========================
   DASHBOARD
========================= */

.dashboard{
  --menu-admin-largura:280px;
  display:block;
  min-height:100vh;
  width:100%;
}

.menu-lateral{
  position:fixed;
  inset:0 auto 0 0;
  z-index:50;
  width:var(--menu-admin-largura);
  height:100vh;
  background:#111111;
  padding:30px;
  display:flex;
  flex-direction:column;
  box-shadow:4px 0 20px rgba(0,0,0,.15);
  overflow-x:hidden;
  overflow-y:auto;
}

.logo-menu{
  display:block;
  width:210px;
  max-width:100%;
  height:auto;
  object-fit:contain;
  background:transparent;
  border-radius:0;
  padding:0;
  margin:0 auto 42px;
  flex:0 0 auto;
}

.menu-lateral nav,
.menu-admin{
  display:flex;
  flex-direction:column;
  gap:12px;
  width:100%;
}

.menu-lateral nav a{
  width:100%;
  min-height:48px;
  color:#ffffff;
  text-decoration:none;
  padding:15px 18px;
  border-radius:12px;
  transition:.25s ease;
  font-weight:600;
  font-size:16px;
  line-height:1;
  display:flex;
  align-items:center;
  white-space:nowrap;
}

.menu-lateral nav a:hover,
.menu-lateral nav a.ativo{
  background:#f5b800;
  color:#111111;
}

.conteudo-dashboard{
  width:calc(100% - var(--menu-admin-largura));
  min-width:0;
  margin-left:var(--menu-admin-largura);
  padding:40px;
}

.conteudo-dashboard h1{
  font-size:42px;
  color:#111111;
  margin-bottom:10px;
}

.conteudo-dashboard p{
  color:#555;
  margin-bottom:35px;
}

.cards-dashboard{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:25px;
}

.card-info{
  background:#ffffff;
  border-radius:24px;
  padding:30px;
  box-shadow:0 10px 25px rgba(0,0,0,.08);
  border-top:6px solid #f5b800;
}

.card-info span{
  display:block;
  color:#666;
  margin-bottom:15px;
}

.card-info strong{
  font-size:42px;
  color:#111111;
}

@media(max-width:900px){

  .dashboard{
    --menu-admin-largura:0px;
  }

  .menu-lateral{
    position:static;
    width:100%;
    height:auto;
    max-height:none;
    padding:18px;
  }

  .logo-menu{
    width:170px;
    margin:0 auto 18px;
  }

  .menu-lateral nav,
  .menu-admin{
    flex-direction:row;
    gap:8px;
    overflow-x:auto;
    padding-bottom:4px;
  }

  .menu-lateral nav a{
    flex:0 0 auto;
    width:auto;
    min-height:42px;
    padding:12px 14px;
    font-size:14px;
  }

  .conteudo-dashboard{
    width:100%;
    margin-left:0;
    padding:26px 18px;
  }

  .cards-dashboard{
    grid-template-columns:1fr;
  }

}/* FORMULÁRIOS INTERNOS */

.form-card{
  background:#ffffff;
  border-radius:24px;
  padding:35px;
  box-shadow:0 10px 25px rgba(0,0,0,.08);
  border-top:6px solid #f5b800;
  max-width:760px;
}

.form-card h2{
  margin-bottom:25px;
  color:#111111;
}

.form-card input{
  width:100%;
  height:56px;
  border:1px solid #d9d9d9;
  border-radius:14px;
  padding:0 18px;
  margin-bottom:15px;
  font-size:16px;
  outline:none;
}

.form-card input:focus{
  border-color:#f5b800;
}

.form-card button{
  width:100%;
  height:56px;
  border:none;
  border-radius:14px;
  background:#f5b800;
  color:#111111;
  font-size:17px;
  font-weight:bold;
  cursor:pointer;
}
/* PRODUTOS NA RESERVA */

.categoria-produtos {
  margin-bottom: 30px;
}

.categoria-produtos h3 {
  font-size: 22px;
  color: #111111;
  margin-bottom: 15px;
  border-left: 6px solid #f5b800;
  padding-left: 12px;
}

.grid-produtos {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.produto-card {
  background: #ffffff;
  border: 1px solid #e5e5e5;
  border-radius: 18px;
  padding: 18px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
  transition: .3s;
}

.produto-card:hover {
  border-color: #f5b800;
  box-shadow: 0 10px 25px rgba(0,0,0,.08);
  transform: translateY(-2px);
}

.produto-card input {
  width: 18px;
  height: 18px;
  margin-top: 4px;
  accent-color: #f5b800;
}

.produto-card strong {
  display: block;
  color: #111111;
  font-size: 16px;
  margin-bottom: 6px;
}

.produto-card span {
  display: inline-block;
  background: #f5b800;
  color: #111111;
  font-weight: bold;
  padding: 6px 10px;
  border-radius: 20px;
  font-size: 14px;
}

@media(max-width: 768px) {
  .grid-produtos {
    grid-template-columns: 1fr;
  }
}
.produto-card-box {
  width: 100%;
}

.campos-produto {
  display: none;
  background: #fff9e6;
  border: 1px solid rgba(245,184,0,.45);
  border-radius: 16px;
  padding: 16px;
  margin-top: 10px;
}

.campos-produto input {
  width: 100%;
  height: 48px;
  border: 1px solid #d9d9d9;
  border-radius: 12px;
  padding: 0 14px;
  margin-bottom: 10px;
  font-size: 15px;
}

.opcao-vip {
  display: block;
  background: #ffffff;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 10px;
  font-weight: 600;
  cursor: pointer;
}

.opcao-vip input {
  width: auto;
  height: auto;
  margin-right: 8px;
}

.campo-valor {
  display: flex;
  align-items: stretch;
  gap: 0;
  width: 100%;
  margin: 15px 0;
}

.campo-valor span {
  background: #f5b800;
  color: #111;
  font-weight: 800;
  padding: 0 22px;
  border-radius: 16px 0 0 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}

.campo-valor input {
  flex: 1;
  border-radius: 0 16px 16px 0 !important;
  margin: 0 !important;
}

.label-upload {
  display: block;
  font-weight: 700;
  margin: 18px 0 8px;
}

input[type="file"] {
  background: #ffffff;
  border: 1px solid #d9d9d9;
  border-radius: 16px;
  padding: 16px;
  width: 100%;
  margin-bottom: 12px;
}

.textarea-grande {
  width: 100%;
  min-height: 180px;
  resize: vertical;
  border: 1px solid #d9d9d9;
  border-radius: 16px;
  padding: 18px;
  font-size: 16px;
  margin-bottom: 16px;
}

.card-info button {
  margin-top: 12px;
  margin-right: 10px;
  margin-bottom: 10px;
}

.cupom-card {
  position: relative;
}

.cupom-cabecalho,
.acoes-cupom {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cupom-cabecalho {
  justify-content: space-between;
  margin-bottom: 12px;
}

.cupom-cabecalho h3 {
  margin: 0;
}

.cupom-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  margin: 0;
}

.cupom-status.ativo {
  background: #e8f7ee;
  color: #16723a;
}

.cupom-status.inativo {
  background: #f2f2f2;
  color: #666;
}

.acoes-cupom {
  flex-wrap: wrap;
  margin-top: 12px;
}

.acoes-cupom button {
  margin: 0;
}

.btn-excluir-cupom-discreto {
  width: 38px;
  height: 38px;
  padding: 0 !important;
  border-radius: 10px;
  border: 1px solid rgba(180, 35, 24, .35) !important;
  background: #fff !important;
  color: #8a1c13 !important;
  font-size: 22px;
  line-height: 1;
  opacity: .75;
}

.btn-excluir-cupom-discreto:hover {
  background: #fff3f1 !important;
  opacity: 1;
}

.botoes-passeio {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 20px;
}

.botoes-passeio button {
  flex: 1;
  min-width: 180px;
}

.campo-valor input[type="number"] {
  height: 82px;
  padding: 0 28px;
  font-size: 22px;
  display: flex;
  align-items: center;
}

.campo-valor span {
  min-height: 82px;
}

.btn-importar-site {
  width: auto !important;
  max-width: 420px;
  display: inline-block;
  padding: 16px 28px;
  margin-bottom: 25px;
  font-size: 18px;
}

.form-card button {
  margin-top: 15px;
}

.botoes-filtro {
  display: flex;
  gap: 15px;
  margin-top: 20px;
}

.botoes-filtro button {
  flex: 1;
}

/* =========================
   CALENDÁRIO
========================= */

.botoes-filtro {
  display: flex;
  gap: 15px;
  margin-top: 20px;
}

.botoes-filtro button {
  flex: 1;
}

.calendario-card {
  width: 760px !important;
  max-width: 760px !important;
}

.calendario-header {
  display: grid !important;
  grid-template-columns: 48px 1fr 48px !important;
  align-items: center !important;
  gap: 14px !important;
  margin-bottom: 28px !important;
}

.btn-seta-calendario {
  width: 48px !important;
  height: 44px !important;
  border-radius: 14px !important;
  font-size: 22px !important;
  padding: 0 !important;
}

.calendario-titulo-area {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 16px !important;
}

.calendario-titulo-area h2 {
  font-size: 38px !important;
  margin: 0 !important;
  font-weight: 900 !important;
}

.calendario-titulo-area select {
  width: 105px !important;
  height: 46px !important;
  border-radius: 14px !important;
  border: 1px solid #d9d9d9 !important;
  font-size: 18px !important;
  padding: 0 10px !important;
  background: #fff !important;
}

.calendario-anual {
  display: block !important;
}

.mes-calendario {
  width: 100% !important;
  max-width: 560px !important;
  margin: 0 auto !important;
  padding: 22px !important;
  background: #ffffff !important;
  border-top: 5px solid #f5b800 !important;
  border-radius: 20px !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.08) !important;
}

.mes-calendario h3 {
  display: none !important;
}

.grade-dias {
  display: grid !important;
  grid-template-columns: repeat(7, 1fr) !important;
  gap: 8px !important;
}

.nomes-semana div {
  font-size: 16px !important;
  font-weight: 900 !important;
  text-align: center !important;
  padding-bottom: 8px !important;
}

.dia-calendario {
  width: 100% !important;
  height: 46px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 12px !important;
  background: #f1f1f1 !important;
  font-size: 17px !important;
  cursor: pointer !important;
}

.dia-vazio {
  visibility: hidden !important;
}

.dia-com-reserva {
  background: #21a657 !important;
  color: #ffffff !important;
  font-weight: 900 !important;
}

.dia-feriado {
  background: #ffe08a !important;
  color: #111111 !important;
  font-weight: 900 !important;
}

.dia-bloqueado {
  background: #d93025 !important;
  color: #ffffff !important;
  font-weight: 900 !important;
}

.dia-hoje {
  border: 3px solid #111111 !important;
  font-weight: 900 !important;
}

@media(max-width: 900px) {
  .calendario-card {
    width: 100% !important;
    max-width: 100% !important;
    padding: 22px !important;
  }

  .calendario-header {
    grid-template-columns: 44px 1fr 44px !important;
    gap: 8px !important;
  }

  .btn-seta-calendario {
    width: 44px !important;
    height: 42px !important;
  }

  .calendario-titulo-area {
    gap: 8px !important;
  }

  .calendario-titulo-area h2 {
    font-size: 28px !important;
  }

  .calendario-titulo-area select {
    width: 92px !important;
    height: 42px !important;
    font-size: 16px !important;
  }

  .mes-calendario {
    padding: 16px !important;
  }

  .grade-dias {
    gap: 6px !important;
  }

  .nomes-semana div {
    font-size: 13px !important;
  }

  .dia-calendario {
    height: 38px !important;
    font-size: 14px !important;
  }
}

.legenda-calendario {
  display: flex;
  justify-content: center;
  gap: 18px;
  flex-wrap: wrap;
  margin-top: 25px;
  font-weight: 700;
}

.legenda-calendario span {
  display: flex;
  align-items: center;
  gap: 8px;
}

.legenda {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: inline-block;
}

.legenda.verde {
  background: #21a657;
}

.legenda.amarelo {
  background: #ffe08a;
}

.legenda.vermelho {
  background: #d93025;
}

.legenda.preto {
  border: 3px solid #111;
  background: #fff;
}

.bloqueio-periodo {
  margin-top: 30px;
  padding-top: 25px;
  border-top: 1px solid #eee;
}

.bloqueio-periodo h3 {
  margin-bottom: 15px;
}

.bloqueio-periodo input {
  width: 100%;
  height: 48px;
  border: 1px solid #d9d9d9;
  border-radius: 12px;
  padding: 0 14px;
  margin-bottom: 12px;
}

.modal-calendario {
  display: none;
  position: fixed;
  z-index: 9999;
  inset: 0;
  background: rgba(0,0,0,.55);
  padding: 30px;
  overflow-y: auto;
}

.modal-calendario-conteudo {
  background: #fff;
  width: min(100%, 760px);
  max-width: 760px;
  max-height: calc(100vh - 60px);
  margin: 30px auto;
  border-radius: 24px;
  padding: 35px;
  border-top: 6px solid #f5b800;
  position: relative;
  box-shadow: 0 20px 50px rgba(0,0,0,.25);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.fechar-modal-calendario {
  position: absolute;
  right: 18px;
  top: 14px;
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  padding: 0 !important;
  font-size: 26px !important;
}

.card-reserva-calendario {
  margin-bottom: 18px !important;
  padding: 22px !important;
  border: 1px solid #ece6d8;
  border-top: 5px solid #f5b800 !important;
  border-radius: 18px;
  box-shadow: 0 12px 28px rgba(17,17,17,.08);
}

.card-reserva-calendario-topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.card-reserva-calendario-topo span {
  display: block;
  color: #6b7280;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}

.card-reserva-calendario-topo h3 {
  margin: 4px 0 0;
  font-size: 26px;
}

.card-reserva-calendario-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 18px;
}

.card-reserva-calendario-grid p {
  margin: 0;
  line-height: 1.4;
}

.btn-passeio-realizado-calendario,
.selo-passeio-realizado-calendario,
.aviso-passeio-realizado-calendario {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  width: auto !important;
  padding: 8px 14px !important;
  border-radius: 999px !important;
  font-size: 13px !important;
  font-weight: 900;
  white-space: nowrap;
}

.btn-passeio-realizado-calendario {
  border: 1px solid #111 !important;
  background: #111 !important;
  color: #fff !important;
  cursor: pointer;
}

.btn-passeio-realizado-calendario:hover {
  background: #f5b800 !important;
  border-color: #f5b800 !important;
  color: #111 !important;
}

.selo-passeio-realizado-calendario {
  background: #e8f7ee;
  color: #146c2e;
}

.aviso-passeio-realizado-calendario {
  background: #f1f3f5;
  color: #495057;
}

@media (max-width: 760px) {
  .card-reserva-calendario-topo,
  .card-reserva-calendario-grid {
    grid-template-columns: 1fr;
  }

  .card-reserva-calendario-topo {
    display: grid;
  }

  .btn-passeio-realizado-calendario,
  .selo-passeio-realizado-calendario,
  .aviso-passeio-realizado-calendario {
    justify-self: start;
    white-space: normal;
  }
}

.dia-calendario[title] {
  position: relative;
}

.reserva-card {
  border-top-width: 8px;
}

.status-confirmada {
  border-top-color: #21a657 !important;
}

.status-pendente {
  border-top-color: #f5b800 !important;
}

.status-nao-concluida {
  border-top-color: #d93025 !important;
}

.status-automatico-reserva {
  margin-top: 20px;
}

.funcionario-detalhe-admin {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  background: #f7f8fa;
  border: 1px solid #e6e8ec;
  padding: 16px;
  border-radius: 14px;
  margin-bottom: 12px;
}

.funcionario-avatar-admin {
  width: 82px;
  height: 82px;
  border-radius: 50%;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: #172033;
  color: #fff;
  font-size: 24px;
  font-weight: 900;
}

.funcionario-avatar-admin img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.funcionario-informacoes-admin p {
  margin: 4px 0;
}

@media (max-width: 560px) {
  .funcionario-detalhe-admin {
    grid-template-columns: 1fr;
  }
}

.selo-reserva {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  padding: 8px 14px;
  border-radius: 30px;
  font-weight: 800;
  font-size: 14px;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

.selo-confirmada {
  background: #e6f7ed;
  color: #137333;
}

.selo-pendente {
  background: #fff7d6;
  color: #8a6500;
}

.selo-cancelada {
  background: #fde8e8;
  color: #b42318;
  border: 1px solid #f7c7c4;
}

.btn-salvar-produtos {
  margin-top: 25px !important;
  margin-bottom: 25px !important;
}

.resumo-reserva {
  margin-top: 25px;
}

.resumo-card {
  background: #fff9e6;
  border: 2px solid #f5b800;
  border-radius: 18px;
  padding: 22px;
  margin-bottom: 20px;
}

.resumo-card h3 {
  margin-bottom: 15px;
}

.resumo-item {
  background: #fff;
  border-radius: 14px;
  padding: 14px;
  margin-bottom: 12px;
}

.resumo-total {
  background: #111;
  color: #fff;
  padding: 18px;
  border-radius: 16px;
  margin-top: 18px;
}

.resumo-total strong {
  color: #f5b800;
  font-size: 22px;
}

.btn-fazer-reserva {
  margin-top: 20px !important;
}

.instancia-produto {
  background: #fff9e6;
  border: 1px solid rgba(245,184,0,.5);
  border-radius: 16px;
  padding: 16px;
  margin-top: 15px;
}

.instancia-produto textarea,
.card-info textarea,
.form-card select {
  width: 100%;
  border: 1px solid #d9d9d9;
  border-radius: 12px;
  padding: 14px;
  font-size: 15px;
  margin-bottom: 12px;
  font-family: Arial, Helvetica, sans-serif;
}

.grupo-opcoes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}

.reserva-comercial {
  margin-top: 24px;
}


/* Orçamentos em conversa */
.orcamento-layout {
  display: grid;
  grid-template-columns: minmax(320px, 420px) 1fr;
  gap: 24px;
  align-items: start;
}

.tipo-orcamento-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: 18px;
}

.tipo-orcamento-card {
  border: 2px solid #eeeeee;
  border-radius: 16px;
  padding: 16px;
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 8px 12px;
  align-items: center;
  cursor: pointer;
  background: #fff;
  transition: .2s ease;
}

.tipo-orcamento-card input {
  display: none;
}

.tipo-orcamento-card:has(input:checked) {
  border-color: #f5b800;
  background: #fff9df;
  box-shadow: 0 10px 24px rgba(245,184,0,.18);
}

.tipo-icone {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #111;
  color: #f5b800;
  display: flex;
  align-items: center;
  justify-content: center;
  grid-row: span 2;
  font-size: 28px;
  font-weight: 900;
}

.tipo-orcamento-card strong,
.tipo-orcamento-card small {
  display: block;
}

.tipo-orcamento-card small {
  color: #555;
  line-height: 1.45;
}

.orcamento-chat-card {
  min-height: 640px;
  background: #efe7dc !important;
  border-top-color: #25d366 !important;
}

.chat-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
}

.chat-header p {
  margin: 4px 0 0;
  color: #666;
}

.orcamento-chat-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.conversa-orcamento {
  background: rgba(255,255,255,.65);
  border-radius: 18px;
  padding: 16px;
  border: 1px solid rgba(0,0,0,.08);
}

.conversa-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: #555;
  font-size: 13px;
  margin-bottom: 10px;
}

.balao-orcamento {
  max-width: 82%;
  padding: 14px 16px;
  border-radius: 16px;
  margin: 10px 0;
  line-height: 1.55;
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}

.balao-orcamento p {
  margin: 5px 0;
}

.balao-agencia {
  background: #ffffff;
  border-bottom-left-radius: 4px;
}

.balao-admin {
  background: #dcf8c6;
  border-bottom-right-radius: 4px;
  margin-left: auto;
}

.responder-orcamento {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(0,0,0,.08);
}

.responder-orcamento textarea {
  min-height: 96px;
}

.acoes-documento {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
}

.acoes-documento button {
  width: auto !important;
  background: #111 !important;
  color: #f5b800 !important;
}

@media (max-width: 980px) {
  .orcamento-layout {
    grid-template-columns: 1fr;
  }

  .balao-orcamento {
    max-width: 100%;
  }

  .conversa-meta {
    flex-direction: column;
  }
}


/* Ajustes finais de orçamento, recibo e reserva */
.orc-produtos-box {
  border: 1px solid rgba(17,17,17,.12);
  border-radius: 14px;
  padding: 14px;
  margin: 14px 0;
  background: #fffdf4;
}

.orc-produtos-box h3 {
  margin: 0 0 12px;
  font-size: 18px;
}

.tabela-orcamento-produtos,
.orc-itens-mini {
  width: 100%;
  border-collapse: collapse;
  margin: 10px 0;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
}

.tabela-orcamento-produtos th,
.tabela-orcamento-produtos td,
.orc-itens-mini th,
.orc-itens-mini td {
  border-bottom: 1px solid #eeeeee;
  padding: 9px;
  text-align: left;
  vertical-align: top;
  font-size: 14px;
}

.tabela-orcamento-produtos input {
  margin: 0 !important;
  min-height: 42px;
}

.orc-produtos-acoes,
.acoes-documento {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 12px;
}

.orc-produtos-acoes strong {
  margin-left: auto;
  color: #111;
}

.btn-mini {
  width: 38px !important;
  height: 38px !important;
  padding: 0 !important;
  border-radius: 10px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn-remover,
.btn-perigo {
  background: #b42318 !important;
  color: #fff !important;
}

.conversa-orcamento.nova-mensagem {
  border-left: 5px solid #25d366;
}

.valores-vip-passeio {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}

.resumo-card-ao-vivo {
  border-color: #111;
}

@media (max-width: 760px) {
  .tabela-orcamento-produtos,
  .tabela-orcamento-produtos tbody,
  .tabela-orcamento-produtos tr,
  .tabela-orcamento-produtos td {
    display: block;
    width: 100%;
  }

  .tabela-orcamento-produtos thead {
    display: none;
  }

  .orc-produtos-acoes,
  .acoes-documento {
    justify-content: stretch;
  }

  .acoes-documento button,
  .orc-produtos-acoes button {
    flex: 1 1 100%;
  }
}


/* Revisão solicitada: telas amplas, abas e controles proporcionais */
.orcamento-tabs-final {
  display: flex;
  gap: 12px;
  margin: 20px 0 24px;
  flex-wrap: wrap;
}

.aba-orcamento {
  width: auto !important;
  min-height: 48px;
  padding: 12px 18px !important;
  border-radius: 10px !important;
  background: #111 !important;
  color: #fff !important;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.aba-orcamento.ativa {
  background: #f5b800 !important;
  color: #111 !important;
}

.badge-fila {
  min-width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #d93025;
  color: #fff;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 800;
  display: none;
}

.orcamento-layout-final {
  display: block !important;
}

.painel-orcamento-final {
  width: 100%;
  max-width: none;
}

.painel-oculto {
  display: none !important;
}

.tela-orcamentos .orcamento-compose,
.tela-orcamentos .orcamento-chat-card {
  min-height: auto;
}

.tabela-orcamento-produtos th:nth-child(1),
.orc-itens-mini th:nth-child(1) { width: 34%; }
.tabela-orcamento-produtos th:nth-child(2),
.orc-itens-mini th:nth-child(2) { width: 18%; }
.tabela-orcamento-produtos th:nth-child(3),
.orc-itens-mini th:nth-child(3) { width: 42%; }
.tabela-orcamento-produtos th:nth-child(4) { width: 6%; }

.tipo-icone {
  width: 42px !important;
  height: 42px !important;
  font-size: 16px !important;
  border-radius: 10px !important;
}

.tipo-orcamento-card {
  grid-template-columns: 42px 1fr !important;
  border-radius: 10px !important;
}

.campo-valor {
  min-height: 46px;
  border-radius: 10px !important;
  overflow: hidden;
}

.campo-valor span {
  width: 46px !important;
  min-width: 46px !important;
  height: 46px !important;
  font-size: 14px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.campo-valor input {
  height: 46px !important;
  min-height: 46px !important;
  font-size: 15px !important;
  margin: 0 !important;
}

.botoes-passeio button,
.botoes-filtro button,
.card-info button {
  border-radius: 10px !important;
  min-height: 42px;
  padding: 10px 14px !important;
  font-size: 14px !important;
}

.label-upload {
  font-size: 13px !important;
  padding: 7px 0 4px !important;
}

.recibo-produtos-box {
  margin-top: 18px;
}

@media (max-width: 780px) {
  .orcamento-tabs-final { flex-direction: column; }
  .aba-orcamento { justify-content: center; width: 100% !important; }
}


/* Separação definitiva orçamento admin/agência */
.orcamento-cabecalho-final {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}

.sino-orcamento {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  border-radius: 50% !important;
  padding: 0 !important;
  background: #111 !important;
  color: #f5b800 !important;
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  font-size: 20px !important;
}

.sino-orcamento b {
  position: absolute;
  right: -4px;
  top: -5px;
  min-width: 21px;
  height: 21px;
  border-radius: 50%;
  background: #d93025;
  color: #fff;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  line-height: 1;
}

.painel-orcamento-cheio,
.painel-notificacoes-orcamento {
  width: 100%;
  max-width: none;
}

.painel-notificacoes-orcamento {
  margin-top: 22px;
  background: #efe7dc !important;
  border-top-color: #25d366 !important;
}

.btn-fechar-painel {
  width: auto !important;
  background: #111 !important;
  color: #fff !important;
}

.tipo-orcamento-horizontal {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
}

.tela-orcamentos-final .orcamento-layout {
  display: block !important;
}

@media (max-width: 720px) {
  .orcamento-cabecalho-final {
    align-items: center;
  }
}


/* Ajuste final: campos profissionais em Passeios e Recibos */
.passeios-form-card,
.recibo-form-card {
  max-width: 1180px;
}

.passeios-form-card > input,
.passeios-form-card > select,
.recibo-form-card > input {
  height: 52px !important;
  border-radius: 12px !important;
  font-size: 15px !important;
  margin-bottom: 14px !important;
}

.passeios-valores-box {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 16px;
  align-items: end;
  margin: 6px 0 22px;
}

.passeios-valores-box .valores-vip-passeio,
.passeios-valores-box .valores-traslado-passeio {
  display: contents !important;
}

.campo-valor-profissional {
  display: block;
  margin: 0;
}

.campo-valor-profissional small {
  display: block;
  margin: 0 0 8px;
  color: #333;
  font-size: 13px;
  font-weight: 800;
}

.passeios-form-card .campo-valor,
.passeios-valores-box .campo-valor {
  display: flex !important;
  align-items: stretch;
  min-height: 52px !important;
  height: 52px !important;
  border: 1px solid #d8d8d8;
  border-radius: 12px !important;
  overflow: hidden;
  background: #fff;
}

.passeios-form-card .campo-valor span,
.passeios-valores-box .campo-valor span {
  width: 54px !important;
  min-width: 54px !important;
  height: 52px !important;
  min-height: 52px !important;
  border-radius: 0 !important;
  background: #f5b800;
  color: #111;
  font-size: 15px !important;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.passeios-form-card .campo-valor input,
.passeios-form-card .campo-valor input[type="number"],
.passeios-valores-box .campo-valor input,
.passeios-valores-box .campo-valor input[type="number"] {
  height: 52px !important;
  min-height: 52px !important;
  flex: 1;
  border: 0 !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 16px !important;
  font-size: 15px !important;
  background: #fff;
}

.passeios-form-card input[type="file"] {
  min-height: 48px;
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 14px;
}

.passeios-form-card .textarea-grande {
  min-height: 130px;
  border-radius: 12px;
  font-size: 15px;
}

.traducoes-passeio-box {
  border: 1px solid #e6e8ec;
  border-radius: 12px;
  padding: 12px 14px;
  background: #f7f8fa;
  margin: 6px 0;
}

.traducoes-passeio-box summary {
  cursor: pointer;
  font-weight: 700;
  color: #172033;
}

.traducoes-passeio-box input,
.traducoes-passeio-box textarea {
  margin-top: 10px;
}

.tabela-recibo-produtos th:nth-child(2),
.tabela-recibo-produtos td:nth-child(2) {
  width: 220px;
}

.tabela-recibo-produtos th:last-child,
.tabela-recibo-produtos td:last-child {
  width: 54px;
}

@media (max-width: 980px) {
  .passeios-valores-box {
    grid-template-columns: 1fr;
  }
}

.status-email-orcamento {
  margin-top: 14px;
  padding: 12px 14px;
  border-radius: 10px;
  background: #e9f7ef;
  border: 1px solid #9bd6b0;
  color: #146c2e;
  font-weight: 800;
}

.btn-pdf-bloqueado {
  background: #e8e8e8 !important;
  color: #777 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}

.campo-valor-orcamento-admin {
  display: flex;
  align-items: stretch;
  height: 48px;
  border: 1px solid #d8d8d8;
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}

.campo-valor-orcamento-admin span {
  width: 52px;
  background: #f5b800;
  color: #111;
  font-weight: 900;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.campo-valor-orcamento-admin input {
  border: 0 !important;
  height: 48px !important;
  margin: 0 !important;
  flex: 1;
}

.editor-passeio-final {
  background: #f7f7f7;
  border: 1px solid #e2e2e2;
  border-radius: 14px;
  margin-top: 18px;
  padding: 22px;
}

.editor-passeio-final h3,
.editor-passeio-final h4 {
  margin-bottom: 14px;
  color: #111;
}

.editor-passeio-final > input,
.editor-passeio-final > select {
  height: 50px !important;
  border-radius: 10px !important;
  margin-bottom: 12px !important;
}

.editor-valores-passeio {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  margin: 12px 0 22px;
}

.editor-valores-passeio .campo-valor {
  height: 50px !important;
  min-height: 50px !important;
  border-radius: 10px !important;
}

.editor-valores-passeio .campo-valor span {
  height: 50px !important;
  min-height: 50px !important;
  width: 50px !important;
  min-width: 50px !important;
}

.editor-valores-passeio .campo-valor input {
  height: 50px !important;
  min-height: 50px !important;
}

.editor-fotos-passeio {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 14px;
  margin-bottom: 18px;
}

.foto-editor-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: #fff;
  border: 1px solid #dedede;
  border-radius: 12px;
  padding: 12px;
}

.foto-editor-card span {
  font-weight: 900;
  color: #111;
}

.foto-editor-card img,
.foto-editor-card video {
  width: 100%;
  height: 150px;
  border-radius: 10px;
  object-fit: cover;
  background: #eee;
  display: block;
}

.foto-preview-vazia {
  width: 100%;
  height: 150px;
  border-radius: 10px;
  background: #eee;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #777;
  font-weight: 800;
}

.foto-editor-preview {
  width: 100%;
}

.foto-editor-preview img {
  margin: 0;
}

.capa-passeio-admin {
  width: 100%;
  height: 220px;
  margin-bottom: 16px;
  border-radius: 16px;
  overflow: hidden;
  background: #111;
}

.capa-passeio-admin-midia {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.aviso-midias-passeio {
  margin: -6px 0 14px !important;
  color: #666 !important;
  font-weight: 700;
}

.preview-foto-novo-passeio,
.preview-midias-novo-passeio {
  width: 100%;
  margin: -8px 0 18px;
}

.preview-midias-novo-passeio {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
}

.preview-midia-novo-card {
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  padding: 10px;
  background: #fff;
}

.preview-midia-novo-card span {
  display: block;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 900;
  color: #666;
  text-transform: uppercase;
}

.preview-foto-novo-passeio img,
.preview-midia-novo-card img,
.preview-midia-novo-card video {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: cover;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  background: #f7f7f7;
}

.preview-midia-novo-card img,
.preview-midia-novo-card video {
  height: 130px;
}

.textarea-midias-passeio {
  min-height: 92px !important;
}

.foto-editor-card input[type="file"] {
  margin: 0;
  height: auto;
  font-size: 13px;
  padding: 10px;
  border-radius: 10px;
}

.foto-remover-checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 9px 10px;
  border: 1px solid #f1b3ad;
  border-radius: 10px;
  background: #fff7f6;
  color: #991b1b;
  font-size: 13px;
  font-weight: 900;
}

.foto-remover-checkbox input {
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  accent-color: #b42318;
}

.foto-editor-card small {
  color: #666;
  font-weight: 700;
}

@media (max-width: 900px) {
  .editor-valores-passeio,
  .editor-fotos-passeio {
    grid-template-columns: 1fr;
  }
}

.reserva-card {
  position: relative;
}

.reservas-hoje-card {
  max-width: none;
  margin-bottom: 28px;
}

.reservas-hoje-card #listaReservasHoje {
  display: grid;
  gap: 18px;
}

.financeiro-reserva {
  margin-top: 22px;
  padding: 22px;
  border: 1px solid #e5e5e5;
  border-radius: 18px;
  background: #fffdf6;
}

.financeiro-reserva-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.financeiro-reserva-topo h4 {
  margin: 0;
  font-size: 18px;
  color: #111111;
}

.financeiro-salvo,
.financeiro-pendente {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
}

.financeiro-salvo {
  background: #e6f7ed;
  color: #137333;
}

.financeiro-pendente {
  background: #fff3cd;
  color: #8a6500;
}

.financeiro-reserva-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(150px, 1fr));
  gap: 14px;
}

.financeiro-reserva-grid label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: #333333;
  font-weight: 800;
}

.financeiro-reserva-grid input {
  width: 100%;
  height: 48px;
  border: 1px solid #d7d7d7;
  border-radius: 12px;
  padding: 0 14px;
  font-size: 16px;
  background: #ffffff;
}

.financeiro-reserva-grid input:focus {
  outline: none;
  border-color: #f5b800;
}

.financeiro-reserva-resumo {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 16px;
  padding: 14px;
  border-radius: 12px;
  background: #ffffff;
  border: 1px solid #eeeeee;
}

.btn-salvar-financeiro-reserva {
  min-width: 180px;
  height: 48px;
  border: none;
  border-radius: 12px;
  background: #f5b800;
  color: #111111;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
}

.btn-salvar-financeiro-reserva:disabled {
  opacity: .7;
  cursor: wait;
}

.btn-lixeira-reserva {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  border: 1px solid #f1b3ad;
  background: #fff5f3;
  color: #b91c1c;
  font-size: 18px;
  font-weight: 900;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.btn-lixeira-reserva:hover {
  background: #fee2e2;
}

@media (max-width: 900px) {
  .financeiro-reserva-grid {
    grid-template-columns: 1fr;
  }
}

.tabela-recibos-admin-wrap {
  overflow-x: auto;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
}

.tabela-recibos-admin {
  width: 100%;
  min-width: 820px;
  border-collapse: collapse;
}

.tabela-recibos-admin th,
.tabela-recibos-admin td {
  padding: 14px;
  border-bottom: 1px solid #eee;
  text-align: left;
  vertical-align: middle;
}

.tabela-recibos-admin th {
  background: #111;
  color: #f5bd00;
  font-weight: 900;
}

.status-recibo {
  display: inline-flex;
  align-items: center;
  padding: 7px 10px;
  border-radius: 999px;
  font-weight: 800;
  white-space: nowrap;
}

.status-recibo-enviado {
  background: #e9f8ef;
  color: #166534;
}

.status-recibo-pendente {
  background: #fff1f2;
  color: #991b1b;
}

.acoes-recibo-tabela {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.acoes-recibo-tabela button {
  min-height: 34px;
  padding: 8px 10px;
}

.area-segura-card {
  max-width: 880px;
}

.lista-administradores {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.admin-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px;
  border: 1px solid #e5e5e5;
  border-radius: 10px;
  background: #fff;
}

.admin-item span {
  display: block;
  margin-top: 4px;
  color: #666;
}

.selo-admin-principal {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 16px;
  border-radius: 10px;
  background: #111;
  color: #f5bd00 !important;
  font-weight: 900;
  margin-top: 0 !important;
  white-space: nowrap;
}

.link-esqueci-senha {
  display: inline-block;
  margin: -4px 0 12px;
  color: #111;
  font-size: 14px;
  font-weight: 800;
  text-decoration: underline;
}

.tabela-orcamento-produtos {
  table-layout: fixed;
}

.tabela-orcamento-produtos th:nth-child(1),
.tabela-orcamento-produtos td:nth-child(1) {
  width: 155px !important;
}

.tabela-orcamento-produtos th:nth-child(2),
.tabela-orcamento-produtos td:nth-child(2) {
  width: auto !important;
}

.tabela-orcamento-produtos th:nth-child(3),
.tabela-orcamento-produtos td:nth-child(3) {
  width: 135px !important;
}

.tabela-orcamento-produtos th:nth-child(4),
.tabela-orcamento-produtos td:nth-child(4) {
  width: 260px !important;
}

.tabela-orcamento-produtos th:nth-child(5),
.tabela-orcamento-produtos td:nth-child(5) {
  width: 58px !important;
}

.orc-data-hora-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.orc-data-hora-grid input,
.tabela-orcamento-produtos input {
  width: 100%;
  font-size: 15px !important;
  padding-left: 12px !important;
  padding-right: 12px !important;
}

.recibo-produtos-box .tabela-recibo-produtos {
  table-layout: fixed;
}

.recibo-produtos-box .tabela-recibo-produtos th:nth-child(1),
.recibo-produtos-box .tabela-recibo-produtos td:nth-child(1) {
  width: auto !important;
}

.recibo-produtos-box .tabela-recibo-produtos th:nth-child(2),
.recibo-produtos-box .tabela-recibo-produtos td:nth-child(2) {
  width: 210px !important;
}

.recibo-produtos-box .tabela-recibo-produtos th:nth-child(3),
.recibo-produtos-box .tabela-recibo-produtos td:nth-child(3) {
  width: 64px !important;
  text-align: center;
}

.recibo-produtos-box .tabela-recibo-produtos td {
  vertical-align: middle;
}

.recibo-produtos-box .recProdutoNome,
.recibo-produtos-box .recProdutoValor {
  height: 52px;
}

.financeiro-page {
  max-width: 1420px;
  margin: 0 auto;
}

.financeiro-page .form-card {
  max-width: none;
  border-radius: 18px;
  padding: 24px;
}

.financeiro-page label {
  display: block;
  margin: 0 0 6px;
  font-weight: 900;
  color: #111;
}

.financeiro-topo {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
}

.financeiro-filtros {
  display: grid;
  grid-template-columns: 140px 150px 150px 150px minmax(230px, 1fr) 112px;
  align-items: end;
  gap: 12px;
  overflow: visible;
}

.financeiro-filtros input,
.financeiro-filtros select,
.financeiro-form input,
.financeiro-form select,
.financeiro-form textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid #d9d9d9;
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 15px;
  background: #fff;
  margin-bottom: 0;
}

.financeiro-filtros button {
  min-width: 0;
  width: 100%;
  height: 44px;
  border-radius: 10px;
}

.financeiro-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 12px;
  margin: 16px 0;
}

.financeiro-card {
  border-left: 5px solid #d7d7d7;
  min-height: 128px;
  padding: 22px !important;
  border-radius: 18px !important;
}

.financeiro-card span {
  min-height: 36px;
  margin-bottom: 8px;
  line-height: 1.2;
}

.financeiro-card strong {
  font-size: 34px !important;
  line-height: 1.05;
  white-space: nowrap;
}

.financeiro-card.receita {
  border-left-color: #16a34a;
}

.financeiro-card.despesa {
  border-left-color: #dc2626;
}

.financeiro-card.saldo {
  border-left-color: #111;
}

.financeiro-card.previsto,
.financeiro-card.saldo-previsto {
  border-left-color: #f5bd00;
}

.financeiro-grid {
  display: grid;
  grid-template-columns: minmax(300px, 340px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.financeiro-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.financeiro-tabela-card {
  min-width: 0;
}

.financeiro-tabela-topo {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  margin-bottom: 12px;
}

.financeiro-tabela-wrap {
  overflow-x: auto;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  background: #fff;
}

.financeiro-tabela {
  width: 100%;
  min-width: 900px;
  border-collapse: collapse;
}

.financeiro-tabela th,
.financeiro-tabela td {
  padding: 12px;
  border-bottom: 1px solid #eeeeee;
  text-align: left;
  vertical-align: top;
}

.financeiro-tabela th {
  background: #111;
  color: #f5bd00;
  font-weight: 900;
}

.financeiro-tabela td small {
  display: block;
  color: #666;
  margin-top: 4px;
  line-height: 1.35;
}

.fin-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 74px;
  padding: 6px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.fin-tag-receita {
  background: #e9f8ef;
  color: #166534;
}

.fin-tag-despesa {
  background: #fff1f2;
  color: #991b1b;
}

.btn-pequeno {
  min-height: 32px;
  padding: 7px 10px;
  font-size: 13px;
  border-radius: 8px;
}

.btn-secundario {
  background: #111 !important;
  color: #f5bd00 !important;
}

.reservas-toolbar-card {
  max-width: none;
}

.reservas-toolbar-topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 18px;
}

.reservas-toolbar-topo h2,
.reservas-grupo-topo h2 {
  margin: 0 0 6px;
}

.reservas-toolbar-topo p,
.reservas-grupo-topo p {
  margin: 0;
  color: #666666;
  font-size: 15px;
}

.reservas-atualizado {
  flex: 0 0 auto;
  border: 1px solid #e3e3e3;
  border-radius: 999px;
  padding: 9px 14px;
  background: #ffffff;
  color: #555555;
  font-weight: 800;
  font-size: 13px;
}

.reservas-toolbar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  gap: 14px;
  align-items: center;
}

.reservas-toolbar input {
  margin: 0;
}

.reservas-grupos {
  display: grid;
  gap: 24px;
  margin-top: 30px;
}

.reservas-grupo {
  border: 1px solid #e2e2e2;
  border-top: 6px solid #f5b800;
  border-radius: 18px;
  background: #ffffff;
  padding: 22px;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .07);
}

.reservas-grupo-pendentes {
  border-top-color: #f5b800;
}

.reservas-grupo-confirmadas {
  border-top-color: #21a657;
}

.reservas-grupo-canceladas {
  border-top-color: #d93025;
}

.reservas-grupo-topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

.reservas-grupo-topo > span {
  min-width: 42px;
  height: 42px;
  border-radius: 12px;
  background: #111111;
  color: #f5b800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
}

.reservas-grupo-lista {
  display: grid;
  gap: 14px;
}

.reservas-grupo-vazio {
  margin: 0;
  padding: 18px;
  border: 1px dashed #d7d7d7;
  border-radius: 12px;
  color: #666666;
  background: #fafafa;
}

.reserva-hoje-item {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto auto;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid #e4e4e4;
  border-radius: 12px;
  background: #ffffff;
}

.reserva-hoje-item div {
  display: grid;
  gap: 3px;
}

.reserva-hoje-item span {
  color: #666666;
  font-size: 13px;
}

.reserva-accordion {
  padding: 0;
  overflow: hidden;
}

.reserva-accordion-trigger {
  width: 100%;
  min-height: 82px;
  border: 0;
  background: #ffffff;
  color: #111111;
  padding: 18px 20px;
  display: grid;
  grid-template-columns: minmax(250px, 1fr) auto;
  gap: 18px;
  align-items: center;
  text-align: left;
  cursor: pointer;
}

.reserva-accordion-trigger:hover {
  background: #fffaf0;
}

.reserva-header-principal {
  display: grid;
  gap: 4px;
}

.reserva-numero {
  color: #666666;
  font-weight: 900;
  font-size: 13px;
}

.reserva-header-principal strong {
  font-size: 20px;
  line-height: 1.2;
}

.reserva-header-principal small {
  color: #666666;
  font-size: 14px;
  font-weight: 700;
}

.reserva-header-metas {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  color: #333333;
  font-weight: 800;
}

.reserva-seta {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f4f4f4;
  transition: transform .2s ease, background-color .2s ease;
}

.reserva-chevron {
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translate(-1px, -1px);
}

.reserva-accordion-trigger[aria-expanded="true"] .reserva-seta {
  transform: rotate(180deg);
}

.reserva-detalhes {
  position: relative;
  border-top: 1px solid #eeeeee;
  padding: 20px;
  background: #fffdf7;
}

.reserva-detalhes-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(190px, 1fr));
  gap: 16px;
  padding-right: 42px;
}

.reserva-detalhes h4,
.reserva-produtos h4 {
  margin: 0 0 10px;
  font-size: 16px;
}

.reserva-detalhes p {
  margin: 6px 0;
  color: #333333;
}

.reserva-produtos {
  margin-top: 18px;
}

.reserva-produto-item {
  border: 1px solid #e4e4e4;
  border-radius: 12px;
  background: #ffffff;
  padding: 14px;
  margin-bottom: 10px;
}

.reserva-produto-item > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.reserva-produto-item span {
  color: #666666;
  font-size: 13px;
  font-weight: 800;
}

.reserva-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.reserva-acoes button,
.btn-verificar-pagamento {
  min-height: 44px;
  border-radius: 10px;
  border: none;
  padding: 0 16px;
  background: #f5b800;
  color: #111111;
  font-weight: 900;
  cursor: pointer;
  margin: 0;
}

.btn-verificar-pagamento {
  background: #111111;
  color: #ffffff;
}

.btn-verificar-pagamento:disabled {
  opacity: .65;
  cursor: wait;
}

.reserva-acoes .btn-minimal-reserva {
  min-height: 38px;
  border-radius: 999px;
  border: 1px solid #dedede;
  padding: 0 14px;
  background: #ffffff;
  color: #111111;
  font-size: 13px;
  font-weight: 900;
  box-shadow: none;
}

.reserva-acoes .btn-cancelar-passeio {
  border-color: #f1b3ad;
  background: #fff7f6;
  color: #991b1b;
}

.reserva-acoes .btn-remarcar-passeio {
  border-color: #f5b800;
  background: #fffaf0;
  color: #111111;
}

.reserva-acoes .btn-minimal-reserva:hover {
  transform: none;
  filter: brightness(.98);
}

.reserva-aviso-pagamento {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 14px;
  border-radius: 10px;
  background: #fff3cd;
  color: #7a5a00;
  font-weight: 800;
}

.btn-lixeira-reserva {
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1px solid #efc0bb;
  background: #ffffff;
  color: #b91c1c;
  font-size: 22px;
  line-height: 1;
}

.btn-lixeira-reserva:hover {
  background: #b91c1c;
  border-color: #b91c1c;
  color: #ffffff;
}

.selo-reserva {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 13px;
  line-height: 1;
}

.selo-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
}

.selo-recibo {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
}

.selo-recibo-ok {
  background: #e6f7ed;
  color: #137333;
}

.selo-recibo-pendente {
  background: #fff3cd;
  color: #7a5a00;
}

@media (max-width: 1100px) {
  .reservas-toolbar,
  .reserva-accordion-trigger,
  .reserva-detalhes-grid,
  .reserva-hoje-item {
    grid-template-columns: 1fr;
  }

  .reserva-header-metas {
    justify-content: flex-start;
  }
}

@media (max-width: 1180px) {
  .financeiro-filtros,
  .financeiro-cards,
  .financeiro-grid {
    grid-template-columns: 1fr 1fr;
  }

  .financeiro-tabela-card {
    grid-column: 1 / -1;
  }
}

@media (max-width: 1320px) {
  .financeiro-filtros {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }
}

@media (max-width: 760px) {
  .financeiro-filtros,
  .financeiro-cards,
  .financeiro-grid {
    grid-template-columns: 1fr;
  }
}

/* Ajustes profissionais de menu, recibos e comissões */
.menu-lateral {
  padding: 24px;
  overflow-y: hidden;
}

.logo-menu {
  width: 175px;
  margin: 0 auto 26px;
}

.menu-lateral nav,
.menu-admin {
  gap: 6px;
}

.menu-lateral nav a {
  min-height: 38px;
  padding: 11px 16px;
  font-size: 15px;
  line-height: 1;
  white-space: nowrap;
}

.recibos-gerados-card,
.painel-comissoes {
  max-width: 1180px;
}

.recibos-lista-profissional,
.lista-comissoes-profissional {
  display: grid;
  gap: 16px;
}

.recibo-card-profissional,
.comissao-card {
  background: #fff;
  border: 1px solid #e8e2d4;
  border-radius: 16px;
  padding: 18px;
  box-shadow: 0 10px 24px rgba(17,17,17,.06);
}

.recibo-card-topo,
.comissao-topo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

.recibo-card-topo strong,
.comissao-topo strong {
  display: block;
  margin-top: 4px;
  font-size: 24px;
  color: #111;
}

.recibo-label {
  display: inline-flex;
  color: #6b5a26;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.recibo-card-cliente {
  border-top: 1px solid #f0eadc;
  border-bottom: 1px solid #f0eadc;
  padding: 14px 0;
  margin-bottom: 16px;
}

.recibo-card-cliente strong,
.recibo-card-cliente span {
  display: block;
}

.recibo-card-cliente strong {
  font-size: 18px;
  color: #111;
}

.recibo-card-cliente span {
  margin-top: 4px;
  color: #666;
}

.recibo-card-dados,
.comissao-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.recibo-card-dados p,
.comissao-grid p {
  margin: 0;
  padding: 12px;
  border-radius: 12px;
  background: #faf8f1;
}

.recibo-card-dados span,
.comissao-grid span {
  display: block;
  margin-bottom: 6px;
  color: #6b7280;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.recibo-card-dados strong,
.comissao-grid strong {
  color: #111;
  font-size: 15px;
  overflow-wrap: anywhere;
}

.acoes-recibo-tabela {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.acoes-recibo-tabela button {
  width: 100%;
  min-height: 42px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 14px;
}

.cards-comissoes-resumo {
  margin-bottom: 28px;
}

.cabecalho-secao-profissional {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 24px;
}

.cabecalho-secao-profissional p {
  margin-bottom: 0;
}

.status-comissao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 8px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
}

.status-comissao-paga {
  background: #e8f7ee;
  color: #146c2e;
  border-color: #a7d7b6;
}

.status-comissao-pendente {
  background: #fff7db;
  color: #805f00;
  border-color: #f5b800;
}

.status-comissao-atrasada {
  background: #ffe8e8;
  color: #a61b15;
  border-color: #ef9a9a;
}

.status-comissao-aguardando {
  background: #f1f3f5;
  color: #495057;
  border-color: #d7dce0;
}

.comissao-card.status-comissao-paga {
  background: #fff;
  color: inherit;
  border-left: 5px solid #1f9d55;
}

.comissao-card.status-comissao-pendente {
  background: #fff;
  color: inherit;
  border-left: 5px solid #f5b800;
}

.comissao-card.status-comissao-atrasada {
  background: #fff;
  color: inherit;
  border-left: 5px solid #d93025;
}

.comissao-card.status-comissao-aguardando {
  background: #fff;
  color: inherit;
  border-left: 5px solid #adb5bd;
}

.comissao-valores {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.comissao-valores span {
  padding: 12px;
  border-radius: 12px;
  background: #111;
  color: #fff;
}

.comissao-valores strong {
  color: #f5b800;
}

.comissao-pagamento {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(260px, 1.3fr) minmax(220px, .9fr);
  gap: 12px;
  align-items: stretch;
  margin-top: 16px;
}

.comissao-pagamento input,
.comissao-pagamento textarea,
.comissao-pagamento button {
  width: 100%;
  min-height: 48px;
  margin: 0 !important;
  border-radius: 10px !important;
  font-size: 14px !important;
}

.comissao-pagamento textarea {
  padding: 13px 14px;
  resize: vertical;
}

.comprovante-link {
  display: inline-flex;
  margin-top: 8px;
  color: #111;
  font-weight: 900;
}

.comissao-aviso {
  margin: 14px 0 0 !important;
  padding: 12px 14px;
  border-radius: 12px;
  background: #faf8f1;
  color: #555 !important;
}

.estado-vazio-profissional {
  padding: 24px;
  border: 1px dashed #d8ceb8;
  border-radius: 14px;
  background: #fffaf0;
}

.estado-vazio-profissional strong,
.estado-vazio-profissional span {
  display: block;
}

.estado-vazio-profissional span {
  margin-top: 6px;
  color: #666;
}

.resumo-cupom-ok,
.resumo-cupom-erro {
  margin: 10px 0 0 !important;
  padding: 10px 12px;
  border-radius: 10px;
  font-weight: 800;
}

.resumo-cupom-ok {
  background: #e8f7ee;
  color: #146c2e !important;
}

.resumo-cupom-erro {
  background: #fff1f2;
  color: #991b1b !important;
}

@media (max-height: 760px) and (min-width: 901px) {
  .menu-lateral {
    padding: 18px 22px;
  }

  .logo-menu {
    width: 150px;
    margin-bottom: 16px;
  }

  .menu-lateral nav,
  .menu-admin {
    gap: 4px;
  }

  .menu-lateral nav a {
    min-height: 33px;
    padding: 8px 13px;
    font-size: 14px;
  }
}

@media (max-width: 900px) {
  .menu-lateral {
    overflow-y: visible;
  }

  .acoes-recibo-tabela,
  .comissao-pagamento {
    grid-template-columns: 1fr;
  }

  .recibo-card-topo,
  .comissao-topo {
    flex-direction: column;
  }
}

@media (max-width: 760px) {
  html,
  body {
    width: 100%;
    overflow-x: hidden;
  }

  .conteudo-dashboard {
    padding: 22px 14px;
  }

  .conteudo-dashboard h1 {
    font-size: 32px;
    line-height: 1.08;
  }

  .form-card,
  .card-info,
  .editor-passeio-final {
    width: 100% !important;
    max-width: 100% !important;
    padding: 22px;
    border-radius: 18px;
  }

  .menu-lateral nav,
  .menu-admin {
    max-width: 100%;
    overflow-x: auto;
  }

  .grid-produtos,
  .cards-dashboard,
  .editor-valores-passeio,
  .valores-vip-passeio,
  .valores-traslado-passeio,
  .orc-data-hora-grid,
  .financeiro-cards,
  .comissao-pagamento {
    grid-template-columns: 1fr !important;
  }

  .tabela-orcamento-produtos,
  .tabela-recibos-gerados,
  .tabela-cadastros {
    min-width: 760px;
  }

  .orc-produtos-box,
  .recibos-gerados-box,
  .tabela-scroll,
  .lista-tabela-scroll {
    overflow-x: auto;
  }

  input,
  select,
  textarea,
  button {
    max-width: 100%;
    font-size: 16px !important;
  }

  .campo-valor input[type="number"] {
    height: 56px;
    font-size: 18px;
    padding: 0 16px;
  }

  .campo-valor span {
    min-height: 56px;
    min-width: 54px;
    padding: 0 16px;
  }

  .preview-midias-novo-passeio,
  .editor-fotos-passeio {
    grid-template-columns: 1fr;
  }
}
.cms-editor-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
  margin-top: 22px;
}

.cms-field {
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  display: grid;
  gap: 9px;
  padding: 18px;
}

.cms-field input,
.cms-field textarea {
  border: 1px solid #cfd4dc;
  border-radius: 9px;
  box-sizing: border-box;
  font: inherit;
  padding: 11px;
  width: 100%;
}

.atalho-cms {
  background: #172033;
  border-radius: 10px;
  color: #fff;
  display: inline-block;
  margin: 18px;
  padding: 12px 18px;
  text-decoration: none;
}

.comissao-card {
  position: relative;
}

.comissao-acoes {
  position: absolute;
  right: 18px;
  top: 18px;
}

.btn-acoes-comissao {
  min-width: 40px;
  padding: 7px 10px;
}

.comissao-menu {
  background: #fff;
  border: 1px solid #d9dee7;
  border-radius: 8px;
  box-shadow: 0 8px 20px rgb(23 32 51 / 12%);
  display: none;
  min-width: 180px;
  padding: 6px;
  position: absolute;
  right: 0;
  top: 42px;
  z-index: 2;
}

.comissao-acoes:focus-within .comissao-menu,
.comissao-acoes:hover .comissao-menu {
  display: grid;
  gap: 4px;
}

.comissao-menu button {
  text-align: left;
  width: 100%;
}

.detalhes-comissao {
  border-top: 1px solid #e5e7eb;
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 16px;
  padding-top: 14px;
}

.detalhes-comissao[hidden],
.comissao-pagamento[hidden] {
  display: none !important;
}

.detalhes-comissao p {
  display: grid;
  gap: 4px;
  margin: 0;
}

.detalhes-comissao span {
  color: #667085;
  font-size: 12px;
}

@media (max-width: 760px) {
  .detalhes-comissao {
    grid-template-columns: 1fr;
  }
}
/* Galeria visual compartilhada por cadastro e edição. */
.galeria-passeio { border: 1px solid #cbd5e1; border-radius: 12px; padding: 16px; margin: 18px 0; background: #f8fafc; }
.galeria-cabecalho { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.galeria-cabecalho h4 { margin: 0; }
.galeria-contador { white-space: nowrap; font-weight: 600; }
.galeria-ajuda, .galeria-teclado, .galeria-status { font-size: 13px; color: #475569; }
.galeria-miniaturas { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 12px; min-height: 48px; }
.galeria-miniatura { position: relative; aspect-ratio: 1; border-radius: 10px; background: #e2e8f0; overflow: hidden; cursor: grab; touch-action: none; user-select: none; border: 2px solid transparent; }
.galeria-miniatura img, .galeria-miniatura video { width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.galeria-miniatura:focus-visible { outline: 3px solid #0369a1; outline-offset: 2px; }
.galeria-miniatura.galeria-arrastando { border-color: #0284c7; opacity: .65; cursor: grabbing; }
.galeria-miniatura button { position: absolute; top: 4px; right: 4px; width: 36px; height: 36px; min-width: 36px; padding: 0; margin: 0; border-radius: 50%; background: #fff; color: #991b1b; font-size: 25px; box-shadow: 0 1px 4px #0004; }
.galeria-capa { position: absolute; bottom: 6px; left: 6px; background: #075985; color: white; padding: 4px 8px; border-radius: 5px; font-size: 11px; font-weight: bold; }
.galeria-sem-preview::before { content: 'Prévia indisponível'; display: block; padding: 44px 8px 8px; font-size: 12px; text-align: center; }
.galeria-passeio.galeria-drop { outline: 3px dashed #0284c7; background: #e0f2fe; }
.galeria-passeio .galeria-arquivos[hidden] { display: none; }
.galeria-link { margin-top: 12px; font-size: 13px; }
.galeria-status:empty { display: none; }
@media (max-width: 480px) { .galeria-passeio { padding: 10px; } .galeria-miniaturas { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } }

/* Reservas: informações compactas e exclusão separada do status do passeio. */
.reserva-accordion .reserva-accordion-trigger { grid-template-columns: minmax(0,1fr) minmax(0,1fr); min-height:72px; padding:14px 16px !important; margin:0; gap:12px; }
.reserva-accordion span { margin-bottom:0; }
.reserva-accordion strong { font-size:inherit; }
.reserva-accordion .reserva-header-principal { display:grid; gap:4px; }
.reserva-accordion .reserva-header-principal > span { display:block; }
.reserva-accordion .reserva-header-metas { display:flex; }
.reserva-accordion .reserva-header-metas > span { display:inline-flex; }
.reserva-accordion .reserva-produto-item strong { font-size:16px; }
.reservas-toolbar-card, .reservas-hoje-card { padding:20px; }
.reservas-toolbar-topo { flex-wrap:wrap; gap:10px; }
.reservas-toolbar-topo > div { flex:1 1 320px; }
.reserva-accordion .reserva-header-principal strong { font-size:18px; }
.reserva-accordion .reserva-header-metas { gap:6px; font-size:13px; }
.reserva-accordion .reserva-detalhes { padding:14px 16px; }
.reserva-accordion .reserva-detalhes-grid { grid-template-columns:repeat(3,minmax(0,1fr)); padding-right:0; gap:12px; }
.reserva-detalhes-grid > div { min-width:0; border:1px solid #e5e5e5; border-radius:10px; padding:12px; background:#fff; overflow-wrap:anywhere; }
.reserva-accordion .reserva-detalhes h4 { margin-bottom:8px; }
.reserva-accordion .reserva-detalhes p { margin:4px 0; font-size:14px; line-height:1.45; }
.reserva-accordion .reserva-produtos { margin-top:12px; }
.reserva-accordion .reserva-produto-item { padding:10px 12px; margin-bottom:8px; overflow-wrap:anywhere; }
.reserva-accordion .financeiro-reserva { margin-top:12px; }
.reserva-accordion .reserva-acoes { margin-top:12px; gap:8px; }
.reserva-registro-acoes { display:flex; justify-content:flex-end; padding:8px 16px; border-top:1px solid #eee; background:#fff; }
.reserva-registro-acoes .btn-excluir-registro-reserva { width:auto; min-height:40px; margin:0; padding:8px 12px; background:#fff; color:#991b1b; border:1px solid #e6b8b8; border-radius:8px; font-size:13px; font-weight:700; cursor:pointer; }
.reserva-registro-acoes .btn-excluir-registro-reserva:hover { background:#fff2f2; }
@media(max-width:1180px) { .reserva-accordion .reserva-detalhes-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
 .reserva-accordion .reserva-accordion-trigger, .reserva-accordion .reserva-detalhes-grid { grid-template-columns:minmax(0,1fr); }
 .reserva-accordion .reserva-header-metas { justify-content:flex-start; }
 .reserva-accordion .reserva-acoes > button { flex:1 1 150px; }
 .reserva-accordion .reserva-produto-item > div { flex-wrap:wrap; }
}
