/* =====================================================================
   Fisio Gestão - Portal do Paciente e Fisioterapeuta
   Paleta: preto, azul-marinho, dourado e branco.
   ===================================================================== */

.fisio-portal {
	--fisio-preto: #0b0c10;
	--fisio-preto-suave: #16181d;
	--fisio-azul: #0e2a53;
	--fisio-azul-claro: #2f6fed;
	--fisio-dourado: #cda349;
	--fisio-dourado-claro: #e8c877;
	--fisio-branco: #ffffff;
	--fisio-cinza: #7c8291;
	--fisio-verde: #1d9a6c;
	--fisio-verde-suave: #e8f7f0;
	--fisio-vermelho: #dc2626;
	--fisio-vermelho-suave: #fdecec;

	--radius: 14px;
	--sombra: 0 20px 60px rgba(0, 0, 0, 0.35);

	display: grid;
	grid-template-columns: 1.05fr 1fr;
	min-height: 640px;
	max-width: 1080px;
	margin: 40px auto;
	border-radius: var(--radius);
	overflow: hidden;
	box-shadow: var(--sombra);
	font-family: "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, sans-serif;
	background: var(--fisio-branco);
}

@media (max-width: 820px) {
	.fisio-portal {
		grid-template-columns: 1fr;
		margin: 0;
		border-radius: 0;
		min-height: 100vh;
	}
}

/* ---------------------------------------------------------------------
   Coluna de marca (esquerda) - fundo preto com detalhes dourados/azuis
   --------------------------------------------------------------------- */
.fisio-portal-marca {
	position: relative;
	background: #000000;
	color: var(--fisio-branco);
	padding: 56px 48px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 24px;
}

.fisio-portal-marca::before {
	content: "";
	position: absolute;
	inset: 18px;
	border: 1px solid rgba(205, 163, 73, 0.35);
	border-radius: 8px;
	pointer-events: none;
}

.fisio-portal-marca-topo {
	display: flex;
	align-items: center;
	gap: 12px;
	overflow: hidden;
	min-width: 0;
}

.fisio-portal-logo {
	width: 100%;
	max-width: 230px;
	height: auto;
	display: block;
}

.fisio-portal-selo {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1.5px solid var(--fisio-dourado);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--fisio-dourado-claro);
}

.fisio-portal-nome-clinica {
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 12px;
	color: var(--fisio-dourado-claro);
	margin: 0;
}

.fisio-portal-titulo {
	font-size: 32px;
	line-height: 1.2;
	margin: 0;
	font-weight: 600;
}

.fisio-portal-crefito {
	display: block;
	font-size: 13px;
	font-weight: 400;
	color: var(--fisio-cinza);
	margin-top: 4px;
}

.fisio-portal-dizer {
	font-size: 16px;
	font-style: italic;
	color: #dbe3f5;
	border-left: 2px solid var(--fisio-dourado);
	padding-left: 14px;
	min-height: 44px;
	transition: opacity 0.3s ease;
	max-width: 380px;
}

.fisio-portal-diferenciais {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.fisio-portal-diferenciais li {
	font-size: 14px;
	color: #c9d2e6;
	display: flex;
	align-items: center;
	gap: 10px;
}

.fisio-portal-diferenciais-marca {
	color: var(--fisio-dourado);
	font-size: 12px;
}

/* ---------------------------------------------------------------------
   Coluna de acesso (direita) - fundo branco
   --------------------------------------------------------------------- */
.fisio-portal-acesso {
	padding: 56px 48px;
	display: flex;
	flex-direction: column;
	background: var(--fisio-branco);
}

.fisio-portal-abas {
	display: flex;
	border-bottom: 2px solid #eef0f4;
	margin-bottom: 28px;
}

.fisio-portal-aba {
	flex: 1;
	background: none;
	border: none;
	padding: 12px 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--fisio-cinza);
	cursor: pointer;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	transition: color 0.2s ease, border-color 0.2s ease;
}

.fisio-portal-aba.is-ativa {
	color: var(--fisio-azul);
	border-bottom-color: var(--fisio-dourado);
}

.fisio-portal-painel-form {
	display: none;
	flex-direction: column;
	gap: 14px;
}

.fisio-portal-painel-form.is-ativo {
	display: flex;
}

.fisio-portal-subtitulo {
	color: var(--fisio-cinza);
	font-size: 14px;
	margin: 0 0 4px;
}

.fisio-portal-formulario {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.fisio-portal-formulario label {
	font-size: 13px;
	font-weight: 600;
	color: var(--fisio-preto);
	margin-top: 10px;
}

.fisio-portal-formulario input {
	border: 1.5px solid #e2e5ec;
	border-radius: 8px;
	padding: 11px 14px;
	font-size: 15px;
	color: var(--fisio-preto);
	outline: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.fisio-portal-formulario input:focus {
	border-color: var(--fisio-azul-claro);
	box-shadow: 0 0 0 3px rgba(47, 111, 237, 0.12);
}

.fisio-portal-botao {
	margin-top: 18px;
	background: linear-gradient(135deg, var(--fisio-azul) 0%, #143b73 100%);
	color: var(--fisio-branco);
	border: none;
	border-radius: 8px;
	padding: 13px 20px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	display: inline-block;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.fisio-portal-botao:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(14, 42, 83, 0.25);
}

.fisio-portal-botao--dourado {
	background: linear-gradient(135deg, var(--fisio-dourado) 0%, #a9812f 100%);
	color: var(--fisio-preto);
}

.fisio-portal-erro {
	background: #fdecec;
	color: #9c1c1c;
	border: 1px solid #f4c6c6;
	border-radius: 8px;
	padding: 10px 14px;
	font-size: 13px;
}

.fisio-portal-ajuda {
	margin-top: 16px;
	font-size: 12px;
	color: var(--fisio-cinza);
}

.fisio-portal-rodape {
	margin-top: auto;
	padding-top: 28px;
	font-size: 11px;
	line-height: 1.6;
	color: var(--fisio-cinza);
	border-top: 1px solid #eef0f4;
}

/* ---------------------------------------------------------------------
   Painel do paciente (após login)
   --------------------------------------------------------------------- */
.fisio-portal--painel .fisio-portal-marca {
	justify-content: flex-start;
	padding-top: 48px;
}

.fisio-portal-marca--compacta .fisio-portal-titulo {
	font-size: 24px;
}

.fisio-portal-saudacao {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 24px;
}

.fisio-portal-ola {
	margin: 0;
	font-size: 13px;
	color: var(--fisio-cinza);
}

.fisio-portal-saudacao h2 {
	margin: 2px 0 8px;
	font-size: 24px;
	color: var(--fisio-preto);
}

.fisio-portal-etiqueta {
	display: inline-block;
	background: rgba(205, 163, 73, 0.15);
	color: #8a6a20;
	font-size: 12px;
	font-weight: 600;
	padding: 4px 10px;
	border-radius: 20px;
}

.fisio-portal-sair {
	font-size: 13px;
	color: var(--fisio-azul);
	text-decoration: none;
	font-weight: 600;
	white-space: nowrap;
}

.fisio-portal-sair:hover {
	text-decoration: underline;
}

.fisio-portal-cartao {
	background: #f7f8fb;
	border: 1px solid #eef0f4;
	border-radius: 10px;
	padding: 18px 20px;
}

.fisio-portal-cartao--alta {
	background: rgba(205, 163, 73, 0.1);
	border-color: rgba(205, 163, 73, 0.3);
	margin-bottom: 18px;
}

.fisio-portal-cartao h3 {
	margin: 0 0 12px;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--fisio-azul);
}

.fisio-portal-grade {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

@media (max-width: 560px) {
	.fisio-portal-grade {
		grid-template-columns: 1fr;
	}
}

.fisio-portal-vazio {
	color: var(--fisio-cinza);
	font-size: 13px;
	margin: 0;
}

.fisio-portal-lista {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.fisio-portal-lista li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
}

.fisio-portal-data {
	font-weight: 600;
	color: var(--fisio-preto);
}

.fisio-portal-hora {
	color: var(--fisio-cinza);
}

.fisio-portal-status {
	margin-left: auto;
	font-size: 11px;
	padding: 3px 9px;
	border-radius: 20px;
	background: #e5e9f2;
	color: var(--fisio-azul);
}

.fisio-portal-status--realizada {
	background: #e2f5ea;
	color: #1c7a45;
}

.fisio-portal-status--falta {
	background: #fdecec;
	color: #9c1c1c;
}

.fisio-portal-nota {
	font-size: 12px;
	color: var(--fisio-cinza);
	margin-top: 20px;
}

.fisio-portal--aviso {
	max-width: 480px;
	margin: 60px auto;
	text-align: center;
	padding: 40px;
	border-radius: var(--radius);
	background: #f7f8fb;
	border: 1px solid #eef0f4;
}

/* =====================================================================
   AMPLIAÇÕES v3.0 — assistente de cadastro, anamnese digital,
   calendário de agendamento e painel completo do paciente.
   ===================================================================== */

/* ---------------------------------------------------------------------
   Variante "largo": usada pelo assistente/anamnese/dashboard, que
   precisam de mais espaço horizontal que o cartão de login simples.
   --------------------------------------------------------------------- */
.fisio-portal--largo {
	max-width: 1180px;
}

.fisio-portal--tela-cheia {
	grid-template-columns: 1fr;
	max-width: 880px;
}

.fisio-portal-acesso--sozinho {
	padding: 48px;
}

/* ---------------------------------------------------------------------
   Telas da tela de entrada (escolha / login / legado / cadastro / fisio)
   --------------------------------------------------------------------- */
.fisio-portal-tela {
	display: none;
	flex-direction: column;
	gap: 14px;
}

.fisio-portal-tela.is-ativa {
	display: flex;
}

.fisio-portal-tela--largo {
	max-width: none;
}

.fisio-portal-voltar {
	align-self: flex-start;
	background: none;
	border: none;
	color: var(--fisio-cinza);
	font-size: 13px;
	cursor: pointer;
	padding: 0;
	margin-bottom: 6px;
}

.fisio-portal-voltar:hover {
	color: var(--fisio-azul);
}

.fisio-portal-escolhas {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 18px 0;
}

.fisio-portal-escolha {
	display: flex;
	align-items: center;
	gap: 16px;
	text-align: left;
	background: #f7f8fb;
	border: 1.5px solid #eef0f4;
	border-radius: 12px;
	padding: 18px 20px;
	cursor: pointer;
	transition: border-color 0.2s ease, transform 0.15s ease, background 0.2s ease;
}

.fisio-portal-escolha:hover {
	border-color: var(--fisio-dourado);
	background: #fffaf0;
	transform: translateY(-1px);
}

.fisio-portal-escolha-icone {
	width: 42px;
	height: 42px;
	min-width: 42px;
	border-radius: 50%;
	background: var(--fisio-azul);
	color: var(--fisio-branco);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	font-style: normal;
}

.fisio-portal-escolha-texto {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.fisio-portal-escolha-texto strong {
	font-size: 14.5px;
	color: var(--fisio-preto);
}

.fisio-portal-escolha-texto span {
	font-size: 12.5px;
	color: var(--fisio-cinza);
}

.fisio-portal-aba-fisio-link {
	align-self: center;
	background: none;
	border: none;
	color: var(--fisio-cinza);
	font-size: 12px;
	cursor: pointer;
	margin-top: 10px;
}

.fisio-portal-link-central {
	background: none;
	border: none;
	color: var(--fisio-azul-claro);
	font-size: 12.5px;
	cursor: pointer;
	text-align: center;
	margin-top: 10px;
	padding: 4px 0;
}

/* ---------------------------------------------------------------------
   Indicador de passos (1. Cadastro > 2. Anamnese > 3. Agendamento)
   --------------------------------------------------------------------- */
.fisio-portal-passos {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 18px;
	flex-wrap: wrap;
}

.fisio-portal-passo {
	font-size: 12px;
	font-weight: 600;
	color: var(--fisio-cinza);
	padding: 5px 12px;
	border-radius: 20px;
	background: #f0f1f4;
}

.fisio-portal-passo.is-ativo {
	background: rgba(205, 163, 73, 0.18);
	color: #8a6a20;
}

.fisio-portal-passo.is-concluido {
	background: rgba(46, 160, 90, 0.14);
	color: #237a45;
}

.fisio-portal-passo-separador {
	width: 18px;
	height: 1px;
	background: #dcdfe6;
}

.fisio-portal-titulo-etapa {
	font-size: 22px;
	color: var(--fisio-preto);
	margin: 0 0 4px;
}

.fisio-portal-boas-vindas {
	margin-bottom: 8px;
}

/* ---------------------------------------------------------------------
   Formulário em grade (cadastro e anamnese)
   --------------------------------------------------------------------- */
.fisio-portal-formulario--grade fieldset.fisio-portal-secao-campos {
	border: none;
	padding: 0;
	margin: 0 0 22px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px 18px;
}

.fisio-portal-secao-campos legend {
	grid-column: 1 / -1;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--fisio-azul);
	padding: 0 0 8px;
	border-bottom: 1px solid #eef0f4;
	margin-bottom: 6px;
}

.fisio-campo {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.fisio-campo--largo {
	grid-column: 1 / -1;
}

.fisio-campo label {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--fisio-preto);
}

.fisio-campo input,
.fisio-campo select,
.fisio-campo textarea {
	border: 1.5px solid #e2e5ec;
	border-radius: 8px;
	padding: 10px 12px;
	font-size: 14px;
	font-family: inherit;
	color: var(--fisio-preto);
	outline: none;
	transition: border-color 0.2s ease;
}

.fisio-campo input:focus,
.fisio-campo select:focus,
.fisio-campo textarea:focus {
	border-color: var(--fisio-azul-claro);
}

.fisio-campo input[readonly] {
	background: #f5f6f9;
	color: var(--fisio-cinza);
}

.fisio-campo-ajuda {
	font-size: 11px;
	color: var(--fisio-cinza);
}

.fisio-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 12.5px;
	color: var(--fisio-preto);
	cursor: pointer;
}

.fisio-checkbox input {
	margin-top: 3px;
}

.fisio-checkbox-grade {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 10px 16px;
}

.fisio-portal-botao--grande {
	padding: 15px 28px;
	font-size: 15px;
	width: 100%;
}

.fisio-portal-botao--pequeno {
	margin-top: 0;
	padding: 8px 14px;
	font-size: 12.5px;
}

.fisio-portal-botao--contorno {
	background: transparent;
	border: 1.5px solid var(--fisio-azul);
	color: var(--fisio-azul);
}

.fisio-portal-botao--perigo {
	background: #fdecec;
	color: #9c1c1c;
}

/* ---------------------------------------------------------------------
   Escala EVA (dor)
   --------------------------------------------------------------------- */
.fisio-eva {
	display: flex;
	align-items: center;
	gap: 14px;
}

.fisio-eva input[type="range"] {
	flex: 1;
	accent-color: var(--fisio-dourado);
}

.fisio-eva output {
	min-width: 30px;
	text-align: center;
	font-weight: 700;
	color: var(--fisio-azul);
	background: #f0f1f4;
	border-radius: 20px;
	padding: 4px 10px;
	font-size: 13px;
}

/* ---------------------------------------------------------------------
   Listas dinâmicas (medicamentos / alergias)
   --------------------------------------------------------------------- */
.fisio-lista-dinamica {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.fisio-lista-linha {
	display: flex;
	gap: 8px;
}

.fisio-lista-linha input {
	flex: 1;
	border: 1.5px solid #e2e5ec;
	border-radius: 8px;
	padding: 9px 12px;
	font-size: 13.5px;
}

.fisio-lista-remover {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: 1px solid #f0c8c8;
	background: #fdecec;
	color: #9c1c1c;
	font-size: 16px;
	cursor: pointer;
	flex-shrink: 0;
}

/* =====================================================================
   DASHBOARD DO PACIENTE (layout com menu lateral)
   ===================================================================== */
.fisio-portal--dashboard {
	grid-template-columns: 280px 1fr;
	max-width: 1180px;
	align-items: stretch;
}

@media (max-width: 900px) {
	.fisio-portal--dashboard {
		grid-template-columns: 1fr;
	}
}

.fisio-dash-lateral {
	background: #000000;
	color: var(--fisio-branco);
	padding: 40px 28px;
	display: flex;
	flex-direction: column;
}

.fisio-dash-marca {
	margin-bottom: 26px;
}

/* No menu lateral do dashboard (paciente ou fisioterapeuta) a coluna é
   mais estreita (280px) do que o painel de login — a logo precisa de
   um teto menor para não estourar a lateral. */
.fisio-dash-marca .fisio-portal-logo {
	max-width: 190px;
}

/* O texto "NOME DA CLÍNICA" ao lado da logo (usado na tela de login,
   onde há mais espaço) fica escondido aqui: a logo já traz o nome
   embutido na própria arte, e num menu lateral de 280px o texto ao
   lado da logo (layout flex, sem quebra de linha) vazava pra fora da
   barra lateral e sobrepunha o conteúdo — em vez de só encolher a
   fonte (frágil com nomes de clínica longos), removemos a
   duplicidade. */
.fisio-dash-marca .fisio-portal-nome-clinica {
	display: none;
}

.fisio-dash-ola {
	margin: 0;
	font-size: 12.5px;
	color: #b9c1d6;
}

.fisio-dash-nome {
	margin: 2px 0 2px;
	font-size: 24px;
	color: var(--fisio-branco);
}

.fisio-dash-boas-vindas {
	margin: 0 0 26px;
	font-size: 12.5px;
	color: #8993aa;
}

.fisio-dash-menu {
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex: 1;
}

.fisio-dash-menu-item {
	text-align: left;
	background: none;
	border: none;
	color: #dfe3ee;
	font-size: 13.5px;
	padding: 11px 12px;
	border-radius: 8px;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.fisio-dash-menu-item:hover {
	background: rgba(255, 255, 255, 0.06);
}

.fisio-dash-menu-item.is-ativo {
	background: rgba(205, 163, 73, 0.18);
	color: var(--fisio-dourado-claro);
	font-weight: 600;
}

.fisio-dash-sair {
	display: block;
	text-align: center;
	margin-top: 20px;
	padding: 10px;
	border: 1.5px solid rgba(255, 255, 255, 0.35);
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.06);
	color: #ffffff;
	text-decoration: none;
	font-size: 13.5px;
	font-weight: 600;
}

.fisio-dash-instalar-app {
	display: block;
	width: 100%;
	text-align: center;
	margin-top: 10px;
	padding: 10px;
	border: 1px solid rgba(200, 163, 73, 0.4);
	border-radius: 8px;
	background: rgba(205, 163, 73, 0.1);
	color: var(--fisio-dourado-claro);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	transition: background 0.2s ease;
}

.fisio-dash-instalar-app:hover {
	background: rgba(205, 163, 73, 0.2);
}

.fisio-dash-sair:hover {
	border-color: var(--fisio-dourado);
	color: var(--fisio-dourado-claro);
}

.fisio-dash-rodape {
	margin-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	color: #767e94;
}

.fisio-dash-conteudo {
	padding: 40px 44px;
	overflow-x: hidden;
}

.fisio-dash-secao {
	display: none;
	flex-direction: column;
	gap: 10px;
}

.fisio-dash-secao.is-ativa {
	display: flex;
}

.fisio-dash-titulo-secao {
	font-size: 17px;
	color: var(--fisio-preto);
	margin: 0 0 4px;
}

.fisio-dash-titulo-secao--espaco {
	margin-top: 26px;
}

/* ---------------------------------------------------------------------
   Cartão da próxima consulta
   --------------------------------------------------------------------- */
/* ---------------------------------------------------------------------
   Cartão da próxima consulta — versão "destaque" (Início): maior,
   com data/hora bem grandes, chip de status colorido, mais respiro.
   --------------------------------------------------------------------- */
.fisio-cartao-consulta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
	background: linear-gradient(135deg, #0e2a53, #143b73);
	color: var(--fisio-branco);
	border-radius: 14px;
	padding: 22px 26px;
}

.fisio-cartao-consulta--destaque {
	padding: 30px 32px;
	margin-bottom: 8px;
}

.fisio-cartao-consulta--vazia {
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
}

.fisio-cartao-consulta--vazia .fisio-portal-vazio {
	color: #cfd6e6;
}

.fisio-cartao-consulta-principal {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.fisio-cartao-consulta-data {
	display: block;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--fisio-dourado-claro);
}

.fisio-cartao-consulta-hora {
	display: block;
	font-size: 40px;
	font-weight: 800;
	line-height: 1.1;
	margin: 2px 0 6px;
}

.fisio-cartao-consulta-detalhe {
	display: block;
	font-size: 13.5px;
	color: #dfe5f2;
}

.fisio-cartao-consulta-fisio {
	display: block;
	font-size: 12.5px;
	color: #cfd6e6;
	margin-top: 4px;
}

.fisio-status-pilula-paciente {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-top: 10px;
	font-size: 12px;
	font-weight: 700;
	padding: 5px 12px;
	border-radius: 20px;
	width: fit-content;
}

.fisio-status-pilula-paciente.status-confirmado {
	background: rgba(29, 154, 108, 0.22);
	color: #6ee0b4;
}

.fisio-status-pilula-paciente.status-realizado {
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
}

.fisio-status-pilula-paciente.status-falta,
.fisio-status-pilula-paciente.status-cancelado {
	background: rgba(220, 38, 38, 0.22);
	color: #ff8f8f;
}

.fisio-cartao-consulta-acoes {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.fisio-cartao-consulta .fisio-portal-botao--contorno {
	color: var(--fisio-branco);
	border-color: rgba(255, 255, 255, 0.5);
}

/* ---------------------------------------------------------------------
   Saudação do paciente (topo da seção Início)
   --------------------------------------------------------------------- */
.fisio-saudacao-paciente {
	margin-bottom: 20px;
}

.fisio-saudacao-paciente-titulo {
	font-size: 26px;
	font-weight: 800;
	color: var(--fisio-azul);
	margin: 0 0 6px;
	letter-spacing: -0.01em;
}

.fisio-saudacao-paciente p {
	margin: 0;
	font-size: 14px;
	color: var(--fisio-cinza);
}

/* ---------------------------------------------------------------------
   Acesso rápido (3 cards)
   --------------------------------------------------------------------- */
.fisio-acesso-rapido-grade {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}

.fisio-acesso-rapido-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	text-align: left;
	background: var(--fisio-branco);
	border: 1.5px solid #eef0f4;
	border-radius: 14px;
	padding: 18px;
	cursor: pointer;
	font-family: inherit;
	transition: border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
}

.fisio-acesso-rapido-card:hover {
	border-color: var(--fisio-verde);
	transform: translateY(-2px);
	box-shadow: 0 10px 24px -14px rgba(29, 154, 108, 0.35);
}

.fisio-acesso-rapido-icone {
	font-size: 24px;
	margin-bottom: 4px;
}

.fisio-acesso-rapido-card strong {
	font-size: 13.5px;
	color: var(--fisio-azul);
}

.fisio-acesso-rapido-card span:not(.fisio-acesso-rapido-icone) {
	font-size: 12px;
	color: var(--fisio-cinza);
	line-height: 1.4;
}

/* ---------------------------------------------------------------------
   Meu acompanhamento (linha de progresso do fluxo clínico)
   --------------------------------------------------------------------- */
.fisio-acompanhamento {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
	background: var(--fisio-branco);
	border: 1.5px solid #eef0f4;
	border-radius: 14px;
	padding: 20px 22px;
}

.fisio-acompanhamento-item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	color: var(--fisio-cinza);
	white-space: nowrap;
}

.fisio-acompanhamento-item:not(:last-child)::after {
	content: "";
	width: 22px;
	height: 1.5px;
	background: #e2e5ec;
	margin: 0 10px;
}

.fisio-acompanhamento-marcador {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	font-size: 11px;
	flex-shrink: 0;
}

.fisio-acompanhamento-item--concluida .fisio-acompanhamento-marcador {
	background: var(--fisio-verde-suave);
	color: var(--fisio-verde);
}

.fisio-acompanhamento-item--concluida .fisio-acompanhamento-rotulo {
	color: var(--fisio-azul);
	font-weight: 600;
}

.fisio-acompanhamento-item--atual .fisio-acompanhamento-marcador {
	background: var(--fisio-dourado);
	color: var(--fisio-branco);
}

.fisio-acompanhamento-item--atual .fisio-acompanhamento-rotulo {
	color: var(--fisio-azul);
	font-weight: 700;
}

.fisio-acompanhamento-item--futura .fisio-acompanhamento-marcador {
	background: #f0f1f4;
	color: var(--fisio-cinza);
}

@media (max-width: 720px) {
	.fisio-acesso-rapido-grade {
		grid-template-columns: 1fr;
	}
	.fisio-acompanhamento {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}
	.fisio-acompanhamento-item:not(:last-child)::after {
		display: none;
	}
}

/* ---------------------------------------------------------------------
   Calendário / grade de horários
   --------------------------------------------------------------------- */
.fisio-dias-disponiveis {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	padding-bottom: 6px;
	margin: 8px 0 4px;
}

.fisio-dia-chip {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	background: #f7f8fb;
	border: 1.5px solid #eef0f4;
	border-radius: 10px;
	padding: 10px 16px;
	cursor: pointer;
	font-size: 11px;
	color: var(--fisio-cinza);
	text-transform: uppercase;
}

.fisio-dia-chip strong {
	font-size: 14px;
	color: var(--fisio-preto);
}

.fisio-dia-chip.is-ativo {
	border-color: var(--fisio-dourado);
	background: #fffaf0;
}

.fisio-legenda-slots {
	display: flex;
	gap: 18px;
	font-size: 12px;
	color: var(--fisio-cinza);
	margin: 8px 0;
}

.fisio-bolinha {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	margin-right: 5px;
}

.fisio-bolinha--livre {
	background: #2ea05a;
}

.fisio-bolinha--ocupado {
	background: #d34a4a;
}

.fisio-grade-slots {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
	gap: 10px;
	margin: 10px 0 18px;
}

.fisio-slot {
	padding: 10px 6px;
	border-radius: 8px;
	border: 1.5px solid #dcefe0;
	background: #eef8f0;
	color: #237a45;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.fisio-slot:hover:not(:disabled) {
	transform: translateY(-2px);
	box-shadow: 0 6px 14px -8px rgba(46, 160, 90, 0.5);
}

.fisio-slot--ocupado {
	background: #fbecec;
	border-color: #f4d3d3;
	color: #b34747;
	cursor: not-allowed;
	opacity: 0.7;
}

.fisio-slot.is-selecionado {
	background: var(--fisio-dourado);
	border-color: var(--fisio-dourado);
	color: var(--fisio-preto);
}

/* ---------------------------------------------------------------------
   Itens de lista (agendamentos / documentos) no dashboard
   --------------------------------------------------------------------- */
.fisio-item-agendamento {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	padding: 12px 16px;
	border: 1px solid #eef0f4;
	border-radius: 10px;
	font-size: 13px;
}

.fisio-item-agendamento-acoes {
	display: flex;
	gap: 8px;
}

.fisio-portal-lista--espaco {
	margin-top: 18px;
}

/* ---------------------------------------------------------------------
   Upload de documentos
   --------------------------------------------------------------------- */
.fisio-upload-area {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
	background: #f7f8fb;
	border: 1.5px dashed #dcdfe6;
	border-radius: 10px;
	padding: 16px;
	margin-bottom: 16px;
}

.fisio-upload-area input[type="text"] {
	flex: 1;
	min-width: 160px;
	border: 1.5px solid #e2e5ec;
	border-radius: 8px;
	padding: 9px 12px;
	font-size: 13px;
}

@media (max-width: 640px) {
	.fisio-portal-formulario--grade fieldset.fisio-portal-secao-campos {
		grid-template-columns: 1fr;
	}
	.fisio-dash-conteudo {
		padding: 28px 20px;
	}
	.fisio-portal-acesso--sozinho {
		padding: 28px 20px;
	}
}

/* =====================================================================
   PAINEL DO FISIOTERAPEUTA (front-end) — mesma base visual do
   dashboard do paciente (.fisio-portal--dashboard), com elementos
   próprios: estatísticas, filtro de agenda, lista/busca de pacientes
   e modal de detalhe/edição de paciente.
   ===================================================================== */
/* fisio-portal-logo--fisio: sizing agora vem de .fisio-portal-logo
   (largura responsiva) + .fisio-dash-marca .fisio-portal-logo (teto de
   190px na lateral) — não precisa de regra própria de tamanho aqui. */

.fisio-dash-titulo-linha {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.fisio-saudacao {
	margin-bottom: 20px;
}

.fisio-saudacao-titulo {
	font-size: 22px;
	color: var(--fisio-preto);
	margin: 0 0 4px;
}

.fisio-saudacao-sub {
	font-size: 13.5px;
	color: var(--fisio-cinza);
	margin: 0 0 4px;
}

.fisio-saudacao-data {
	font-size: 12px;
	color: var(--fisio-dourado);
	font-weight: 600;
	text-transform: capitalize;
	margin: 0;
}

.fisio-stats-grade {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-bottom: 8px;
}

@media (max-width: 900px) {
	.fisio-stats-grade {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.fisio-stats-grade {
		grid-template-columns: 1fr;
	}
}

.fisio-stat-cartao {
	background: #f7f8fb;
	border: 1px solid #eef0f4;
	border-radius: 12px;
	padding: 18px 20px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.fisio-stat-cartao--alerta {
	background: #fdf6e8;
	border-color: #f1dfb0;
}

.fisio-stat-cartao--clicavel {
	width: 100%;
	text-align: left;
	font-family: inherit;
	cursor: pointer;
	transition: filter 0.15s ease, transform 0.15s ease;
}

.fisio-stat-cartao--clicavel:hover {
	filter: brightness(0.97);
	transform: translateY(-1px);
}

.fisio-stat-cartao--clicavel:focus-visible {
	outline: 2px solid var(--fisio-azul-claro);
	outline-offset: 2px;
}

.fisio-stat-cartao--alerta .fisio-stat-numero {
	color: #a9791b;
}

.fisio-stat-numero {
	font-size: 28px;
	font-weight: 700;
	color: var(--fisio-azul);
}

.fisio-stat-rotulo {
	font-size: 12.5px;
	color: var(--fisio-cinza);
}

.fisio-acoes-rapidas {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

.fisio-acao-rapida {
	display: flex;
	align-items: center;
	gap: 8px;
	background: var(--fisio-branco);
	border: 1.5px solid #eef0f4;
	border-radius: 10px;
	padding: 12px 18px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--fisio-preto);
	cursor: pointer;
	transition: border-color 0.2s ease, background 0.2s ease, transform 0.15s ease;
}

.fisio-acao-rapida:hover {
	border-color: var(--fisio-dourado);
	background: #fffaf0;
	transform: translateY(-2px);
}

.fisio-acao-rapida span {
	font-size: 16px;
}

.fisio-item-tipo {
	color: var(--fisio-cinza);
	font-weight: 400;
}

.fisio-item-agendamento-status {
	display: flex;
	align-items: center;
	gap: 8px;
}

.fisio-bolinha--status-agendada {
	background: #d9a92a;
}

.fisio-bolinha--status-realizada {
	background: #2ea05a;
}

.fisio-bolinha--status-falta,
.fisio-bolinha--status-cancelada {
	background: #d34a4a;
}

.fisio-autocomplete-resultados {
	display: flex;
	flex-direction: column;
	gap: 4px;
	max-height: 160px;
	overflow-y: auto;
}

.fisio-autocomplete-item {
	text-align: left;
	background: #f7f8fb;
	border: 1px solid #eef0f4;
	border-radius: 8px;
	padding: 8px 12px;
	font-size: 13px;
	cursor: pointer;
	font-family: inherit;
}

.fisio-autocomplete-item:hover {
	border-color: var(--fisio-dourado);
	background: #fffaf0;
}

.fisio-agenda-filtros {
	display: flex;
	align-items: flex-end;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 6px;
}

.fisio-busca-pacientes {
	width: 100%;
	border: 1.5px solid #e2e5ec;
	border-radius: 8px;
	padding: 11px 14px;
	font-size: 14px;
	margin-bottom: 4px;
}

.fisio-item-paciente {
	width: 100%;
	background: var(--fisio-branco);
	border: 1px solid #eef0f4;
	cursor: pointer;
	text-align: left;
	font-family: inherit;
	transition: border-color 0.2s ease, background 0.2s ease;
}

.fisio-item-paciente:hover {
	border-color: var(--fisio-dourado);
	background: #fffaf0;
}

.fisio-select-status {
	border: 1.5px solid #e2e5ec;
	border-radius: 20px;
	padding: 5px 10px;
	font-size: 12px;
	font-weight: 600;
	background: var(--fisio-branco);
	color: var(--fisio-azul);
}

.fisio-modal-paciente {
	max-width: 640px;
	max-height: 84vh;
	overflow-y: auto;
}

.fisio-detalhe-grade {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 4px 18px;
}

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

.fisio-modal-paciente .fisio-campo-leitura {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 8px 0;
	border-bottom: 1px solid #eef0f4;
	font-size: 13px;
}

.fisio-modal-paciente .fisio-campo-leitura strong {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #7c8291;
}

/* ---------------------------------------------------------------------
   Modal genérico (usado pelo detalhe/edição de paciente no painel do
   fisioterapeuta) — o Portal do paciente usa telas em abas em vez de
   modal, então esta classe só existia até agora no tema; precisa
   existir aqui também porque portal-fisio-painel.php a usa.
   --------------------------------------------------------------------- */
.modal-fundo {
	position: fixed;
	inset: 0;
	background: rgba(6, 10, 20, 0.6);
	backdrop-filter: blur(4px);
	display: none;
	align-items: center;
	justify-content: center;
	z-index: 200;
	padding: 20px;
}

.modal-fundo.aberto {
	display: flex;
}

.modal-caixa {
	background: #ffffff;
	border-radius: 14px;
	max-width: 420px;
	width: 100%;
	padding: 30px;
	position: relative;
	box-shadow: 0 40px 80px -20px rgba(0, 0, 0, 0.4);
}

.modal-fechar {
	position: absolute;
	top: 14px;
	right: 14px;
	background: none;
	border: none;
	font-size: 18px;
	color: #7c8291;
	cursor: pointer;
	line-height: 1;
}

.modal-fechar:hover {
	color: #0b0c10;
}

/* ---------------------------------------------------------------------
   Popup de mensagens do fisioterapeuta (painel do paciente)
   --------------------------------------------------------------------- */
.fisio-modal-mensagem {
	max-width: 440px;
	text-align: left;
}

.fisio-modal-mensagem .modal-titulo {
	margin: 0 0 14px;
	font-size: 19px;
	color: var(--fisio-azul);
	padding-right: 10px;
}

.fisio-mensagem-corpo {
	font-size: 14.5px;
	line-height: 1.6;
	color: #33394a;
	white-space: pre-wrap;
	max-height: 320px;
	overflow-y: auto;
}

.fisio-mensagem-contador {
	margin: 14px 0 0;
	font-size: 12px;
	color: var(--fisio-cinza);
	text-align: right;
}

.fisio-modal-mensagem .fisio-portal-botao {
	width: 100%;
	margin-top: 18px;
}

.fisio-hidden {
	display: none !important;
}

/* ---------------------------------------------------------------------
   Minhas evoluções (paciente)
   --------------------------------------------------------------------- */
.fisio-cartao-evolucao {
	background: #f7f8fb;
	border: 1px solid #eef0f4;
	border-radius: 12px;
	padding: 16px 20px;
	margin-bottom: 12px;
}

.fisio-cartao-evolucao .fisio-portal-data {
	display: block;
	font-size: 11.5px;
	color: var(--fisio-dourado);
	font-weight: 600;
	margin-bottom: 4px;
}

.fisio-cartao-evolucao strong {
	display: block;
	font-size: 14px;
	color: var(--fisio-preto);
	margin-bottom: 6px;
}

.fisio-cartao-evolucao p {
	font-size: 13.5px;
	color: var(--fisio-cinza);
	margin: 0;
	line-height: 1.6;
	white-space: pre-line;
}
