/*
 * Smartize — Agendamento.
 *
 * Tudo vive dentro de .smza. Nada aqui alcança o resto da página, para não
 * competir com o tema nem com o Elementor.
 */

.smza{
	--smza-azul:#0064fe;
	--smza-azul-escuro:#0050cb;
	--smza-tinta:#0f172a;
	--smza-texto:#475569;
	--smza-suave:#64748b;
	--smza-linha:#e2e8f0;
	--smza-fundo:#f8fafc;

	max-width:960px;margin:0 auto;
	font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
	color:var(--smza-tinta);
}
.smza--estreito{max-width:560px;text-align:center}
.smza *{box-sizing:border-box}

/* Nota de contexto (pacote de origem, reagendamento). */
.smza-nota{
	margin:0 0 1.5rem;padding:.85rem 1.1rem;border-radius:.75rem;
	background:rgba(0,100,254,.07);border:1px solid rgba(0,100,254,.16);
	font-size:.92rem;line-height:1.5;color:#1e3a5f;
}
.smza-nota--aviso{background:#fffbeb;border-color:#fde68a;color:#78350f}

.smza-grelha{display:grid;gap:1.25rem}

.smza-painel{
	background:#fff;border:1px solid var(--smza-linha);border-radius:1.25rem;
	padding:1.5rem;box-shadow:0 1px 2px rgba(15,23,42,.04);
}

/* Cabeçalho do calendário. */
.smza-cab{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.smza-mes{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.01em}
.smza-mes::first-letter{text-transform:uppercase}
.smza-nav{
	width:2.25rem;height:2.25rem;border:1px solid var(--smza-linha);background:#fff;
	border-radius:.65rem;font-size:1.15rem;line-height:1;color:var(--smza-texto);cursor:pointer;
	transition:border-color .2s,color .2s;
}
.smza-nav:hover:not(:disabled){border-color:var(--smza-azul);color:var(--smza-azul)}
.smza-nav:disabled{opacity:.35;cursor:not-allowed}

.smza-semana{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem;margin-bottom:.4rem}
.smza-semana span{
	text-align:center;font-size:.68rem;font-weight:700;text-transform:uppercase;
	letter-spacing:.08em;color:var(--smza-suave);
}

.smza-dias{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem}
.smza-dia{
	aspect-ratio:1;min-height:2.6rem;display:grid;place-items:center;
	border:1px solid transparent;border-radius:.7rem;background:var(--smza-fundo);
	font-size:.92rem;font-weight:600;color:#cbd5e1;cursor:default;
}
.smza-dia--vazio{background:none}
.smza-dia--livre{background:#fff;border-color:var(--smza-linha);color:var(--smza-tinta);cursor:pointer;transition:border-color .18s,background-color .18s,transform .18s}
.smza-dia--livre:hover{border-color:var(--smza-azul);background:rgba(0,100,254,.06);transform:translateY(-1px)}
.smza-dia--ativo{background:var(--smza-azul);border-color:var(--smza-azul);color:#fff}
.smza-dia--ativo:hover{background:var(--smza-azul-escuro)}

.smza-fuso{margin:1.1rem 0 0;font-size:.78rem;color:var(--smza-suave);text-align:center}

/* Só a primeira letra: "capitalize" transformava "30 min" em "30 Min". */
.smza-titulo{margin:0 0 1.1rem;font-size:1.05rem;font-weight:700}
.smza-titulo::first-letter{text-transform:uppercase}

/* Horários. */
.smza-horarios{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.2rem,1fr));gap:.55rem}
.smza-hora{
	padding:.75rem .5rem;border:1px solid var(--smza-linha);border-radius:.7rem;background:#fff;
	font-size:.95rem;font-weight:600;color:var(--smza-tinta);cursor:pointer;
	transition:border-color .18s,background-color .18s;
}
.smza-hora:hover{border-color:var(--smza-azul);background:rgba(0,100,254,.06)}
.smza-vazio{margin:0;padding:1rem 0;color:var(--smza-suave);font-size:.92rem}

/* Formulário. */
.smza-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
.smza-campo{display:flex;flex-direction:column;gap:.35rem}
.smza-campo--largo{grid-column:1 / -1}
.smza-campo span{font-size:.78rem;font-weight:600;color:var(--smza-texto)}
.smza-campo input,
.smza-campo textarea{
	width:100%;padding:.7rem .8rem;border:1px solid var(--smza-linha);border-radius:.6rem;
	font:inherit;font-size:.95rem;color:var(--smza-tinta);background:#fff;
	transition:border-color .18s,box-shadow .18s;
}
.smza-campo input:focus,
.smza-campo textarea:focus{
	outline:none;border-color:var(--smza-azul);box-shadow:0 0 0 3px rgba(0,100,254,.12);
}
.smza-campo input[aria-invalid="true"],
.smza-campo textarea[aria-invalid="true"]{border-color:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.1)}
.smza-campo textarea{resize:vertical;min-height:5rem}
.smza-armadilha{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

.smza-erro{
	grid-column:1 / -1;margin:0;padding:.7rem .9rem;border-radius:.6rem;
	background:#fef2f2;border:1px solid #fecaca;color:#991b1b;font-size:.88rem;
}

.smza-acoes{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.4rem}

.smza-botao{
	display:inline-flex;align-items:center;justify-content:center;
	padding:.85rem 1.5rem;border:0;border-radius:.7rem;background:var(--smza-azul);
	color:#fff;font:inherit;font-size:.95rem;font-weight:600;text-decoration:none;cursor:pointer;
	transition:background-color .2s;
}
.smza-botao:hover{background:var(--smza-azul-escuro);color:#fff}
.smza-botao[disabled]{opacity:.6;cursor:progress}
.smza-botao--perigo{background:#dc2626}
.smza-botao--perigo:hover{background:#b91c1c}

.smza-voltar,.smza-secundario{
	background:none;border:0;padding:.6rem .2rem;font:inherit;font-size:.9rem;
	color:var(--smza-suave);cursor:pointer;text-decoration:underline;
}
.smza-voltar:hover,.smza-secundario:hover{color:var(--smza-tinta)}

/* Sucesso. */
.smza-painel--sucesso{text-align:center;padding:2.5rem 1.5rem}
.smza-visto{
	width:3.25rem;height:3.25rem;margin:0 auto 1.1rem;border-radius:50%;
	background:rgba(16,185,129,.12);color:#059669;font-size:1.6rem;line-height:3.25rem;
}
.smza-sucesso-data{margin:0 0 .5rem;font-size:1.05rem;font-weight:600}
.smza-sucesso-data::first-letter{text-transform:uppercase}
.smza-sucesso-nota{margin:0 0 1.5rem;font-size:.92rem;color:var(--smza-texto)}
.smza-sucesso-acoes{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center;align-items:center}

/* Estado de espera. */
.smza-espera{
	display:flex;align-items:center;gap:.6rem;padding:1rem 0;
	color:var(--smza-suave);font-size:.92rem;
}
.smza-roda{
	width:1.05rem;height:1.05rem;border:2px solid var(--smza-linha);border-top-color:var(--smza-azul);
	border-radius:50%;animation:smza-girar .7s linear infinite;
}
@keyframes smza-girar{to{transform:rotate(360deg)}}

/* Duas colunas quando há espaço: calendário à esquerda, horários à direita. */
@media (min-width:820px){
	.smza-grelha{grid-template-columns:1.15fr .85fr;align-items:start}
	.smza-painel[data-smza-passo="dados"],
	.smza-painel--sucesso{grid-column:1 / -1}
}

@media (max-width:520px){
	.smza-painel{padding:1.15rem}
	.smza-form{grid-template-columns:minmax(0,1fr)}
	.smza-acoes{flex-direction:column-reverse;align-items:stretch}
	.smza-botao{width:100%}
	.smza-dia{min-height:2.9rem;font-size:.88rem}
	.smza-horarios{grid-template-columns:repeat(auto-fill,minmax(5.2rem,1fr))}
}

@media (prefers-reduced-motion:reduce){
	.smza-dia--livre:hover{transform:none}
	.smza-roda{animation-duration:2s}
}
