/* Mesma configuração tipográfica do Rapidido Stage. */

footer {
	background-color: #343a40; /* Cor de fundo escura */
	color: #f8f9fa; /* Cor do texto */
	padding: 1rem; /* Espaçamento interno */
	border-top: 2px solid #f8f9fa; /* Borda superior */
}

footer a {
	color: #f8f9fa; /* Cor do link */
	text-decoration: none; /* Remover sublinhado */
}

footer a:hover {
	color: #adb5bd; /* Cor do link ao passar o mouse */
}

/* ===============================================
/* ===============================================
   Tipografia: Open Sans & Sora (Alta credibilidade e legibilidade)

   Fontes variáveis servidas 100% localmente (sem CDN).
   Open Sans fornece neutralidade, clareza e credibilidade corporativa.
   =============================================== */
@font-face {
	font-family: "Open Sans";
	src: url("../fonts/OpenSans-VariableFont_wght.ttf") format("truetype");
	font-weight: 300 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Open Sans";
	src: url("../fonts/OpenSans-Italic-VariableFont_wght.ttf") format("truetype");
	font-weight: 300 800;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Sora";
	src: url("../fonts/Sora-VariableFont_wght.ttf") format("truetype");
	font-weight: 100 800;
	font-style: normal;
	font-display: swap;
}

:root {
	--ub-font: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--ub-display-font: "Open Sans", "Sora", sans-serif;

	/* O tema Phoenix monta suas fontes a partir destas variáveis */
	--phoenix-body-font-family: var(--ub-font);
	--phoenix-btn-font-family: var(--ub-font);
	--phoenix-font-sans-serif: var(--ub-font);
}

html body {
	font-family: var(--ub-font) !important;
	font-size: 14.5px;
	line-height: 1.5;
	color: #2f1a45;
}

body :is(
	button, input, select, optgroup, textarea, label,
	.btn, .nav-link, .dropdown-item, .navbar, .pagination, [data-list] .page,
	.alert, .badge, .blockquote-footer, .valid-feedback, .invalid-feedback,
	.tooltip, .popover, .choices, .divider-content-center,
	.font-sans-serif, .font-base
) {
	font-family: var(--ub-font) !important;
}

body :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6) {
	font-family: var(--ub-display-font) !important;
	letter-spacing: -0.012em !important;
	text-transform: none !important;
	color: #2f1a45;
}

body h1, .page-header__title {
	font-size: 1.45rem !important;
	font-weight: 700 !important;
	line-height: 1.25;
}

body h2 { font-size: 1.15rem; font-weight: 650; }
body h3 { font-size: 1.02rem; font-weight: 650; }
body h4 { font-size: 0.92rem; font-weight: 650; }
body h5 { font-size: 0.86rem; font-weight: 650; }
body h6 { font-size: 0.80rem; font-weight: 650; }

body form :is(label, legend) {
	font-size: 0.82rem;
	font-weight: 650;
	letter-spacing: 0;
	text-transform: none;
	color: #2f1a45;
}

body form :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
	font-size: 0.88rem;
}

body .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: 0.84rem;
	font-weight: 650;
	letter-spacing: 0;
	text-transform: none;
}

body .nav-link {
	font-size: 0.82rem;
	font-weight: 600;

	letter-spacing: 0;
	text-transform: none;
}

td.description {
	white-space: normal !important;
	word-wrap: break-word !important;
	overflow-wrap: break-word !important;
}

.white-space-normal {
	white-space: normal !important;
	word-wrap: break-word !important;
	overflow-wrap: break-word !important;
}

.selector-sm {
	right: 1px !important;
	border-top: 0px !important;
	border-bottom: 0px !important;
	border-right: 0px !important;
	min-height: calc(1.49em + 0.75rem);
	margin-top: 1px;
	padding-left: 15px !important;
	padding-right: 15px !important;
	padding: 0.375rem 1rem !important;
	position: absolute !important;
	border-top-left-radius: 5px !important;
	border-bottom-left-radius: 5px !important;
}

.selector-sm:focus {
	border-color: var(--phoenix-input-border-color) !important;
}

/*Abaixo de 992px de resolução o conteudo se retorna para -largura do menu lateral*/
@media(min-width: 992px) {

	.content-margin-left {
		margin-left: 15.875rem
	}
}

#map {
	position: absolute;
	top: 0;
	bottom: 0;
	width: 100%;
}

/*INICIO CSS MODO DARK CUSTOMIZADO unibusca*/

.logo-img-dark {
	    display: none; /*Começa exibindo a imagem para modo claro */
}

.dark .logo-img-light {
    display: none; /* Oculta a imagem para o modo escuro se o modo escuro estiver ativado */
}

.dark .logo-img-dark {
    display: block; /* Exibe a imagem para o modo escuro se o modo escuro estiver ativado */
}


.foto-camera-dark {
	    display: none; /*Começa exibindo a imagem para modo claro */
}

.dark .foto-camera-light {
    display: none; /* Oculta a imagem para o modo escuro se o modo escuro estiver ativado */
}

.dark .foto-camera-dark {
    display: block; /* Exibe a imagem para o modo escuro se o modo escuro estiver ativado */
}

/*FIM CSS MODO DARK CUSTOMIZADO unibusca*/

/* ===============================================*/
/*  Shared form system (Carbon grouping, Fluent 2 copy,
    Material supporting pane, GOV.UK errors, Atlassian spacing) */
/* ===============================================*/

.form-question-card {
	position: relative;
	padding: 1.4rem;
	margin: 0 0 1rem;
	background: var(--phoenix-body-bg, #fff);
	border: 1px solid var(--phoenix-border-color, #dce6e1);
	border-radius: 18px;
	box-shadow: 0 2px 8px rgba(14, 53, 45, .05);
}

.form-question-card__title {
	display: flex;
	align-items: flex-start;
	gap: .8rem;
	margin: 0 0 1.1rem;
	font-family: var(--ub-font) !important;
	font-size: 1rem !important;
	font-weight: 690 !important;
	line-height: 1.35;
	letter-spacing: -.025em !important;
	text-transform: none !important;
}

.form-flow--numbered { counter-reset: ub-form-step; }
.form-flow--numbered .form-question-card { counter-increment: ub-form-step; }
.form-flow--numbered .form-question-card__title::before {
	display: grid;
	width: 31px;
	height: 31px;
	flex: 0 0 31px;
	place-items: center;
	margin-top: -4px;
	border-radius: 10px;
	background: #2f1a45;
	color: #fff;
	content: counter(ub-form-step);
	font-family: var(--ub-font);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: 0;
}

.form-question-card__subtitle {
	margin: -.7rem 0 1.1rem;
	color: var(--phoenix-body-color);
	font-size: .74rem;
	line-height: 1.5;
	opacity: .75;
}

.form-flow--numbered .form-question-card__subtitle {
	margin-left: 2.7rem;
}

.form-question-card--compact { padding: 1rem 1.1rem; border-radius: 14px; }
.form-question-card--compact .form-question-card__title { margin-bottom: .8rem; font-size: .9rem !important; }
.form-question-card__compact-question {
	display: block;
	margin-bottom: .45rem;
	font-family: var(--ub-font);
	font-size: .82rem;
	font-weight: 690;
	letter-spacing: -.025em;
}

@media (max-width: 575px) {
	.form-question-card { padding: 1rem; border-radius: 14px; }
	.form-question-card__title { gap: .65rem; font-size: .95rem !important; }
	.form-flow--numbered .form-question-card__subtitle { margin-left: 2.55rem; }
}

:root {
	/* Escala de espaçamento (Atlassian): base 8px, hierarquia por espaço em
	   vez de bordas. Espaço menor = elementos relacionados. */
	--space-xs: 0.25rem;   /* 4px  — label ↔ mensagem de erro */
	--space-sm: 0.75rem;   /* 12px — dentro de um mesmo campo */
	--space-md: 1.5rem;    /* 24px — entre campos da mesma seção */
	--space-lg: 2.5rem;    /* 40px — entre seções distintas */
	--space-xl: 3.5rem;    /* 56px — entre blocos maiores da página */
}

.form-field {
	margin-bottom: var(--space-md);
}

.form-hint {
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	color: var(--phoenix-body-color);
	opacity: 0.75;
}

/* GOV.UK: field-level error state */
.form-field--error .form-control,
.form-field--error .form-select {
	border-color: var(--phoenix-danger);
}

.form-field__error {
	display: block;
	margin-top: 0.25rem;
	font-size: 0.8125rem;
	color: var(--phoenix-danger);
}

/* GOV.UK: error summary, links to each invalid field */
.form-error-summary {
	border: 2px solid var(--phoenix-danger);
	border-radius: 0.25rem;
	padding: 1rem 1.5rem;
	margin-bottom: var(--space-lg);
}

.form-error-summary__title {
	color: var(--phoenix-danger);
	font-size: 1.125rem;
	font-weight: 700;
	margin-bottom: 0.5rem;
}

.form-error-summary__list {
	margin: 0;
	padding-left: 1.25rem;
}

.form-error-summary__list a {
	color: var(--phoenix-danger);
	text-decoration: underline;
}

.visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Material Design 3: supporting pane layout, 2/3-1/3 desktop, stacked below lg */
.form-supporting-pane-layout {
	display: grid;
	/* minmax(0, …) impede que um conteúdo largo estoure a coluna. */
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: var(--space-lg);
	align-items: start;
}

.form-supporting-pane {
	position: sticky;
	top: 1rem;
	background-color: var(--phoenix-100);
	border-radius: 0.5rem;
	padding: 1.25rem;
}

.form-supporting-pane__title {
	font-weight: 600;
	margin-bottom: var(--space-md);
}

@media (max-width: 991px) {
	.form-supporting-pane-layout {
		grid-template-columns: 1fr;
	}

	.form-supporting-pane {
		position: static;
	}
}

/* Ações finais do formulário. */
.form-final-actions {
	display: flex;
	justify-content: space-between;
	gap: var(--space-md);
	margin-top: var(--space-lg);
	padding-top: var(--space-md);
	border-top: 1px solid var(--phoenix-border-color);
}

/* ===============================================
   Grade dinâmica dos cards de formulário.

   O próprio grid é o container de consulta (container-type:
   inline-size), então cada card reage à largura REAL disponível —
   não à largura da janela. Por padrão todo card ocupa a linha
   inteira; um card marcado com --half divide a linha com o card
   seguinte assim que houver espaço.

   Sem suporte a @container o bloco abaixo é ignorado e tudo
   continua em coluna única, exatamente como antes.
   =============================================== */
.form-card-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	align-items: stretch;
	container-type: inline-size;
}

.form-card-grid > * {
	grid-column: 1 / -1;
	min-width: 0;
}

/* O espaçamento entre cards passa a ser do grid. */
.form-card-grid > .form-question-card {
	margin-bottom: 0;
}

@container (min-width: 640px) {
	.form-card-grid > .form-question-card--half {
		grid-column: span 1;
	}
}

/* Card sozinho nunca deixa meia linha vazia. */
.form-card-grid > .form-question-card:only-child {
	grid-column: 1 / -1;
}

/* ===============================================
   Campos que se reorganizam pela largura do card.

   Substitui .row/.col-md-*, que acompanha a janela e por isso
   mantinha 3 ou 4 colunas dentro de um card estreito.
   auto-fit + minmax deixa o próprio navegador decidir quantas
   colunas cabem; min(100%, X) evita estouro em telas pequenas.
   =============================================== */
.form-field-grid {
	display: grid;
	gap: 0 var(--space-md);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
	align-items: start;
}

/* Campos curtos: horários, datas, valores. */
.form-field-grid--compact {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 130px), 1fr));
}

/* Campos de poucos dígitos: quartos, camas, banheiros.
   80px mantém os três lado a lado mesmo num card de meia linha. */
.form-field-grid--tight {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 80px), 1fr));
}

/* Campos que precisam de fôlego: endereço, e-mail, descrições. */
.form-field-grid--wide {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}

/* Linha repetível de intervalo de preço (início, fim, valor, ação). */
.form-interval-row {
	display: grid;
	gap: 0 var(--space-md);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 140px), 1fr));
	align-items: start;
}

/* Alinha o botão pela base dos campos, descontando a margem do .form-field. */
.form-interval-row__action {
	align-self: end;
	margin-bottom: var(--space-md);
}

/* Carbon: revelação progressiva — bloco que só aparece quando a escolha
   anterior o torna relevante. Alternado por JS via [hidden]. */
.disclosure[hidden] {
	display: none;
}

/* ===============================================*/
/*  Estruturas de página                           */
/* ===============================================*/

/* Cabeçalho de página (Atlassian: hierarquia por espaçamento) */
.page-header {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--space-md);
	margin-bottom: var(--space-lg);
}

.page-header__title {
	font-size: 1.5rem;
	font-weight: 700;
	margin: 0;
}

.page-header__subtitle {
	margin: var(--space-xs) 0 0;
	color: var(--phoenix-body-color);
	opacity: 0.75;
}

/* Barra de busca/filtros das listagens */
.page-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-sm);
	margin-bottom: var(--space-md);
}

.page-toolbar__search {
	flex: 1 1 18rem;
	max-width: 24rem;
}

/* Filtros avançados escondidos até serem pedidos (Carbon) */
.page-toolbar__advanced {
	width: 100%;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: var(--space-sm);
	margin-top: var(--space-sm);
	padding-top: var(--space-sm);
	border-top: 1px solid var(--phoenix-border-color);
}

/* Cartão que envolve uma tabela de dados */
.data-card {
	background-color: var(--phoenix-body-bg);
	border: 1px solid var(--phoenix-border-color);
	border-radius: 0.5rem;
	overflow: hidden;
}

.data-card__scroll {
	overflow-x: auto;
}

.data-card table {
	margin-bottom: 0;
}

/* Estado vazio (GOV.UK: diz o que houve e qual o próximo passo) */
.empty-state {
	padding: var(--space-xl) var(--space-md);
	text-align: center;
}

.empty-state__message {
	margin-bottom: var(--space-md);
	color: var(--phoenix-body-color);
	opacity: 0.75;
}

/* Indicadores do painel */
.stat-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
	gap: var(--space-md);
	margin-bottom: var(--space-lg);
}

.stat-tile {
	background-color: var(--phoenix-body-bg);
	border: 1px solid var(--phoenix-border-color);
	border-radius: 0.5rem;
	padding: var(--space-md);
}

.stat-tile__label {
	display: block;
	font-size: 0.8125rem;
	color: var(--phoenix-body-color);
	opacity: 0.75;
	margin-bottom: var(--space-xs);
}

.stat-tile__value {
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.1;
}

/* Painel de apoio em páginas de detalhe (Material: supporting pane).
   Mesma proporção do formulário, mas o painel vem à direita e gruda. */
.detail-layout {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: var(--space-lg);
	align-items: start;
}

.detail-pane {
	position: sticky;
	top: 1rem;
	background-color: var(--phoenix-body-bg);
	border: 1px solid var(--phoenix-border-color);
	border-radius: 0.5rem;
	padding: var(--space-md);
}

.detail-pane__title {
	font-weight: 600;
	margin-bottom: var(--space-md);
}

/* Escala tipográfica do Rapidido Stage para páginas que ainda usam o layout legado. */
body .page-header__title {
	font-family: var(--ub-font) !important;
	font-size: clamp(1.7rem, 2.2vw, 2.15rem) !important;
	font-weight: 720 !important;
	line-height: 1.16;
	letter-spacing: -.025em !important;
	text-transform: none !important;
}

body .page-header__subtitle {
	font-size: .9rem;
	line-height: 1.65;
}

body :is(.form-hint, .form-field__error) {
	font-size: .7rem;
	line-height: 1.45;
}

body .form-supporting-pane__title,
body .detail-pane__title {
	font-family: var(--ub-font) !important;
	font-size: .9rem;
	font-weight: 700;
	letter-spacing: -.025em;
	text-transform: none;
}

body .stat-tile__label { font-size: .76rem; font-weight: 680; }
body .stat-tile__value {
	font-family: var(--ub-font);
	font-size: 2.25rem;
	font-weight: 740;
	letter-spacing: -.05em;
}

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

	.detail-pane {
		position: static;
	}
}

/* Seções de conteúdo fora de formulários (páginas de detalhe/painel) */
.content-section {
	margin-bottom: var(--space-lg);
}

.content-section__title {
	font-size: 1.125rem;
	font-weight: 600;
	margin-bottom: var(--space-md);
}

/* ==========================================================================
   FLATPICKR CALENDAR - REDESIGN MODERNO E CORREÇÃO TOTAL DE LAYOUT
   ========================================================================== */

.flatpickr-calendar {
  width: 324px !important;
  background: #ffffff !important;
  border: 1.5px solid var(--ub-line, #ece7f3) !important;
  border-radius: 20px !important;
  box-shadow: 0 16px 40px rgba(47, 26, 69, 0.16), 0 2px 8px rgba(0, 0, 0, 0.05) !important;
  padding: 16px 14px 14px !important;
  box-sizing: border-box !important;
  font-family: var(--ub-font, 'Sora', system-ui, sans-serif) !important;
  text-align: center !important;
  overflow: visible !important;
  z-index: 10050 !important;
}

.flatpickr-calendar:before,
.flatpickr-calendar:after {
  display: none !important;
}

/* Cabeçalho do Mês / Ano */
.flatpickr-months {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 4px !important;
  margin: 0 0 10px 0 !important;
  background: transparent !important;
}

.flatpickr-months .flatpickr-month {
  position: static !important;
  height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  overflow: visible !important;
  flex: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--ub-ink, #2f1a45) !important;
}

.flatpickr-current-month {
  position: static !important;
  width: auto !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  bottom: auto !important;
  transform: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  padding: 0 !important;
  margin: 0 !important;
  height: 36px !important;
  line-height: 36px !important;
}

/* Select do Mês (Remove borda preta nativa e centraliza verticalmente) */
.flatpickr-current-month .flatpickr-monthDropdown-months {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background: transparent !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  font-family: var(--ub-font, 'Sora', system-ui, sans-serif) !important;
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  color: var(--ub-ink, #2f1a45) !important;
  cursor: pointer !important;
  padding: 0 8px !important;
  margin: 0 !important;
  height: 34px !important;
  line-height: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
  border-radius: 8px !important;
  transition: background-color 0.15s ease, color 0.15s ease !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months:hover,
.flatpickr-current-month .flatpickr-monthDropdown-months:focus {
  background: #f6f4f8 !important;
  color: var(--ub-coral, #ff625a) !important;
  outline: none !important;
  border: 0 !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
  background-color: #ffffff !important;
  color: var(--ub-ink, #2f1a45) !important;
  font-weight: 600 !important;
  padding: 6px 12px !important;
}

/* Input do Ano */
.flatpickr-current-month .numInputWrapper {
  width: auto !important;
  height: 34px !important;
  line-height: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
}

.flatpickr-current-month input.cur-year {
  appearance: textfield !important;
  -webkit-appearance: textfield !important;
  -moz-appearance: textfield !important;
  background: transparent !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  font-family: var(--ub-font, 'Sora', system-ui, sans-serif) !important;
  font-size: 1.05rem !important;
  font-weight: 800 !important;
  color: var(--ub-ink, #2f1a45) !important;
  padding: 0 4px !important;
  margin: 0 !important;
  border-radius: 8px !important;
  width: 4.8ch !important;
  height: 34px !important;
  line-height: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  cursor: pointer !important;
  vertical-align: middle !important;
  transition: background-color 0.15s ease, color 0.15s ease !important;
}

.flatpickr-current-month input.cur-year:hover,
.flatpickr-current-month input.cur-year:focus {
  background: #f6f4f8 !important;
  color: var(--ub-coral, #ff625a) !important;
  outline: none !important;
}

.numInputWrapper span {
  display: none !important;
}

/* Botões Anterior e Próximo Mês: Centralização Perfeita com o Mês/Ano */
.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  transform: none !important;
  height: 34px !important;
  width: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  background: #f6f4f8 !important;
  color: var(--ub-ink, #2f1a45) !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  z-index: 10 !important;
  transition: all 0.15s ease !important;
}

.flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-months .flatpickr-next-month:hover {
  background: #eee9f5 !important;
  color: var(--ub-coral, #ff625a) !important;
  transform: scale(1.08) !important;
}

.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
  width: 14px !important;
  height: 14px !important;
  display: block !important;
  margin: auto !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}

.flatpickr-weekdays {
  height: 32px !important;
  background: transparent !important;
  display: flex !important;
  align-items: center !important;
  margin-bottom: 4px !important;
}

.flatpickr-weekdays .flatpickr-weekdaycontainer {
  display: grid !important;
  grid-template-columns: repeat(7, 1fr) !important;
  width: 100% !important;
}

span.flatpickr-weekday {
  font-family: inherit !important;
  font-size: 0.74rem !important;
  font-weight: 750 !important;
  color: #8e8399 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

.flatpickr-days {
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
}

.dayContainer {
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(7, 1fr) !important;
  gap: 2px !important;
  transform: none !important;
}

.flatpickr-day {
  width: 38px !important;
  height: 38px !important;
  line-height: 38px !important;
  max-width: 38px !important;
  margin: 1px auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  font-family: inherit !important;
  font-size: 0.88rem !important;
  font-weight: 600 !important;
  color: var(--ub-ink, #2f1a45) !important;
  background: transparent !important;
  border: 0 !important;
  transition: all 0.12s ease !important;
  user-select: none !important;
}

.flatpickr-day:hover {
  background: #f4effa !important;
  color: var(--ub-coral, #ff625a) !important;
  border: 0 !important;
}

.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
  color: #c4bdce !important;
  font-weight: 400 !important;
  background: transparent !important;
  opacity: 0.55 !important;
}

.flatpickr-day.prevMonthDay:hover,
.flatpickr-day.nextMonthDay:hover {
  background: #f8f6fb !important;
  color: var(--ub-ink, #2f1a45) !important;
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover,
.flatpickr-day.notAllowed,
.flatpickr-day.notAllowed.prevMonthDay,
.flatpickr-day.notAllowed.nextMonthDay {
  color: #dad4e2 !important;
  background: transparent !important;
  cursor: not-allowed !important;
  opacity: 0.45 !important;
  text-decoration: line-through !important;
  text-decoration-color: #dad4e2 !important;
}

.flatpickr-day.today {
  color: var(--ub-coral, #ff625a) !important;
  font-weight: 850 !important;
  background: var(--ub-coral-soft, #fff2f1) !important;
  border: 0 !important;
  position: relative !important;
}

.flatpickr-day.today:hover {
  background: #ffe6e4 !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
  background: linear-gradient(135deg, #ff625a 0%, #de4642 100%) !important;
  color: #ffffff !important;
  font-weight: 850 !important;
  border-radius: 50% !important;
  box-shadow: 0 4px 12px rgba(255, 98, 90, 0.35) !important;
  border: 0 !important;
  opacity: 1 !important;
}

.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover {
  background: linear-gradient(135deg, #ff716a 0%, #e5504c 100%) !important;
  color: #ffffff !important;
}

.flatpickr-day.inRange {
  background: #fff2f1 !important;
  color: var(--ub-coral-dark, #b52924) !important;
  border-radius: 0 !important;
  box-shadow: -5px 0 0 #fff2f1, 5px 0 0 #fff2f1 !important;
  font-weight: 650 !important;
  border: 0 !important;
}

.flatpickr-day.selected.startRange {
  border-radius: 50% 0 0 50% !important;
}

.flatpickr-day.selected.endRange {
  border-radius: 0 50% 50% 0 !important;
}

.flatpickr-day.selected.startRange.endRange {
  border-radius: 50% !important;
  box-shadow: 0 4px 12px rgba(255, 98, 90, 0.35) !important;
}

.flatpickr-time {
  height: 48px !important;
  line-height: 48px !important;
  max-height: 48px !important;
  border-top: 1px solid var(--ub-line, #ece7f3) !important;
  padding: 6px 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #faf8fc !important;
  border-radius: 0 0 18px 18px !important;
  margin: 10px -14px -14px !important;
}

.flatpickr-time .numInputWrapper {
  height: 36px !important;
  flex: 1 !important;
}

.flatpickr-time input {
  font-family: inherit !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  color: var(--ub-ink, #2f1a45) !important;
  background: #ffffff !important;
  border: 1px solid var(--ub-line, #ece7f3) !important;
  border-radius: 8px !important;
  padding: 4px !important;
  height: 32px !important;
  line-height: 32px !important;
}

.flatpickr-time input:focus {
  border-color: var(--ub-coral, #ff625a) !important;
  outline: none !important;
}

.flatpickr-time .flatpickr-time-separator {
  font-weight: 800 !important;
  color: var(--ub-muted, #716381) !important;
  padding: 0 6px !important;
}

.flatpickr-time .flatpickr-am-pm {
  font-family: inherit !important;
  font-size: 0.85rem !important;
  font-weight: 750 !important;
  color: var(--ub-ink, #2f1a45) !important;
  background: #ffffff !important;
  border: 1px solid var(--ub-line, #ece7f3) !important;
  border-radius: 8px !important;
  height: 32px !important;
  line-height: 32px !important;
  padding: 0 10px !important;
  cursor: pointer !important;
  margin-left: 6px !important;
}

/* ==========================================================================
   BARRA DE PESQUISA & INPUTS - ELIMINAÇÃO DE BORDAS INTERNAS E FOCO DUPLO
   ========================================================================== */

.input-box {
  border: 1.5px solid var(--ub-line, #ece7f3) !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  box-shadow: 0 2px 8px rgba(47, 26, 69, 0.04) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.input-box:focus-within {
  border-color: var(--ub-coral, #ff625a) !important;
  box-shadow: 0 0 0 3px rgba(255, 98, 90, 0.15), 0 4px 16px rgba(47, 26, 69, 0.08) !important;
}

.input-box input,
.input-box input:focus,
.input-box input:active,
.input-box input:hover,
.input-box .form-control,
.input-box .form-control:focus,
.input-box .form-control:active,
.input-box .form-control:hover,
.input-container input,
.input-container input:focus,
.input-container input:active,
.input-container input:hover,
.input-container .form-control,
.input-container .form-control:focus,
.input-container .form-control:active,
.input-container .form-control:hover {
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  background: transparent !important;
  padding-left: 0 !important;
}

.input-container {
  cursor: pointer;
  padding: 8px 14px !important;
  flex-grow: 1;
  border-radius: inherit;
  transition: background-color 0.15s ease !important;
}

.input-container span.form-label {
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--ub-muted, #716381) !important;
  margin-bottom: 2px !important;
  display: block;
  transition: color 0.15s ease !important;
}

.input-container.active span.form-label,
.input-container:focus-within span.form-label {
  color: var(--ub-coral, #ff625a) !important;
}

.input-container.active,
.input-container:focus-within {
  background: rgba(255, 98, 90, 0.04) !important;
  box-shadow: none !important;
}


