/* Aura Citas — estilos del formulario. El color principal se define en Ajustes (--ac-primary). */
.aura-citas {
	--ac-primary: #5B2EE5;
	--ac-text: #1d1d24;
	--ac-muted: #6b6b78;
	--ac-border: #e3e3ea;
	--ac-bg: #ffffff;
	--ac-soft: #f5f5f9;
	--ac-radius: 12px;
	--ac-radius-sm: max(0px, calc(var(--ac-radius) - 2px));
	font-family: inherit;
	color: var(--ac-text);
	max-width: 760px;
	margin: 0 auto;
	box-sizing: border-box;
}
.aura-citas *, .aura-citas *::before, .aura-citas *::after { box-sizing: border-box; }
.aura-citas button { font-family: inherit; cursor: pointer; }

.ac-loading, .ac-hint { color: var(--ac-muted); font-size: 15px; margin: 8px 0; }
.ac-error { color: #b42318; background: #fef3f2; border-radius: 8px; padding: 10px 12px; font-size: 14px; margin: 12px 0; }
.ac-notice { color: #05603a; background: #ecfdf3; border-radius: 8px; padding: 10px 12px; font-size: 14px; margin: 0 0 12px; }

/* Pasos */
.ac-steps { display: flex; gap: 6px; list-style: none; padding: 0; margin: 0 0 14px; counter-reset: acstep; }
.ac-steps li { flex: 1; font-size: 12px; color: var(--ac-muted); padding-top: 8px; border-top: 3px solid var(--ac-border); counter-increment: acstep; }
.ac-steps li::before { content: counter(acstep) ". "; }
.ac-steps li.is-done { border-color: var(--ac-primary); }
.ac-steps li.is-current { border-color: var(--ac-primary); color: var(--ac-text); font-weight: 600; }
.aura-citas.ac-no-steps .ac-steps { display: none; }

.ac-summary { background: var(--ac-soft); border-radius: var(--ac-radius-sm); padding: 8px 12px; font-size: 14px; margin-bottom: 12px; }

.ac-panel { background: var(--ac-bg); border: 1px solid var(--ac-border); border-radius: var(--ac-radius); padding: 20px; }
.ac-title { font-size: 20px; margin: 0 0 14px; line-height: 1.3; }

.ac-back { background: none; border: 0; color: var(--ac-primary); font-size: 15px; padding: 10px 0; margin-top: 6px; }

/* Tarjetas */
.ac-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.ac-card { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; text-align: left; background: var(--ac-card-bg, var(--ac-bg)); border: 1px solid var(--ac-border); border-radius: var(--ac-radius-sm); padding: 14px; color: var(--ac-text); transition: border-color .15s, box-shadow .15s, background-color .15s; }
.ac-card:hover, .ac-card:focus-visible { background: var(--ac-hover-bg, var(--ac-card-bg, var(--ac-bg))); border-color: var(--ac-hover-border, var(--ac-primary)); color: var(--ac-hover-text, var(--ac-text)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ac-hover-border, var(--ac-primary)) 15%, transparent); outline: none; }
.ac-card:hover .ac-card-desc, .ac-card:hover .ac-card-meta { color: var(--ac-hover-text, var(--ac-muted)); }
.ac-card-doc { flex-direction: row; align-items: center; gap: 12px; }
.ac-card-name { font-weight: 600; font-size: 16px; display: block; }
.ac-card-desc { color: var(--ac-muted); font-size: 13px; display: block; }
.ac-card-meta { color: var(--ac-muted); font-size: 13px; margin-top: 4px; }
.ac-price { color: var(--ac-text); font-weight: 600; margin-left: 6px; }
.ac-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: none; }
.ac-avatar-empty { display: inline-flex; align-items: center; justify-content: center; background: var(--ac-soft); color: var(--ac-primary); font-weight: 700; font-size: 20px; }

/* Calendario */
.ac-picker { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 18px; }
.ac-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.ac-nav { background: var(--ac-soft); border: 0; border-radius: 8px; width: 34px; height: 34px; font-size: 18px; color: var(--ac-text); }
.ac-nav:disabled { opacity: .35; cursor: default; }
.ac-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.ac-dow { font-size: 12px; color: var(--ac-muted); padding: 4px 0; }
.ac-day { aspect-ratio: 1; border: 0; border-radius: var(--ac-radius-sm); background: transparent; color: #b8b8c2; font-size: 14px; padding: 0; }
.ac-day.is-available { background: var(--ac-soft); color: var(--ac-text); font-weight: 600; }
.ac-day.is-available:hover { background: color-mix(in srgb, var(--ac-primary) 15%, #fff); }
.aura-citas .ac-day.is-selected { background: var(--ac-selected-bg, var(--ac-primary)); color: var(--ac-selected-text, #fff); }
.ac-day:disabled { cursor: default; }
.ac-slots-title { font-weight: 600; margin: 0 0 10px; font-size: 15px; }
.ac-slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.ac-slot { border: 1px solid var(--ac-border); background: var(--ac-slot-bg, var(--ac-bg)); border-radius: var(--ac-radius-sm); padding: 10px 6px; font-size: 14px; color: var(--ac-slot-color, var(--ac-text)); }
.ac-slot:hover, .ac-slot:focus-visible { background: var(--ac-hover-bg, var(--ac-slot-bg, var(--ac-bg))); border-color: var(--ac-hover-border, var(--ac-primary)); color: var(--ac-hover-text, var(--ac-primary)); outline: none; }

/* Formulario */
.ac-form { display: grid; gap: 12px; }
.ac-form label { display: grid; gap: 6px; font-size: 14px; font-weight: 600; }
.ac-form input[type=text], .ac-form input[type=email], .ac-form input[type=tel], .ac-form textarea {
	width: 100%; border: 1px solid var(--ac-border); border-radius: var(--ac-radius-sm); padding: 11px 12px; font-size: 16px; font-weight: 400; font-family: inherit; color: var(--ac-text); background: #fff;
}
.ac-form input:focus, .ac-form textarea:focus { outline: none; border-color: var(--ac-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ac-primary) 15%, transparent); }
.ac-form .ac-check { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; color: var(--ac-muted); font-size: 13px; }
.ac-form .ac-check input { margin-top: 3px; }
.ac-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.aura-citas .ac-submit, .aura-citas a.ac-submit { display: inline-block; text-align: center; text-decoration: none; background-color: var(--ac-primary); color: #fff; border: 0; border-radius: var(--ac-radius-sm); padding: 14px 20px; font-size: 16px; font-weight: 600; width: 100%; transition: background-color .15s, color .15s, filter .15s; }
.aura-citas .ac-submit:hover { filter: brightness(1.08); }
.ac-submit:disabled { opacity: .6; cursor: default; }
.ac-ghost { background: none; border: 1px solid var(--ac-border); color: var(--ac-text); border-radius: var(--ac-radius-sm); padding: 12px 18px; font-size: 15px; }
.ac-danger { border-color: #b42318; color: #b42318; }
.ac-actions { display: grid; gap: 10px; margin-top: 16px; }
.ac-confirm p { margin: 0 0 8px; }

/* Confirmación */
.ac-done { text-align: center; }
.ac-done-icon { width: 56px; height: 56px; border-radius: 50%; background: var(--ac-selected-bg, var(--ac-primary)); color: #fff; font-size: 28px; line-height: 56px; margin: 0 auto 12px; }
.ac-detail { list-style: none; padding: 0; margin: 16px 0; text-align: left; background: var(--ac-soft); border-radius: var(--ac-radius-sm); }
.ac-detail li { padding: 10px 14px; border-bottom: 1px solid var(--ac-border); font-weight: 600; }
.ac-detail li:last-child { border-bottom: 0; }
.ac-detail li span { display: block; font-weight: 400; font-size: 12px; color: var(--ac-muted); }

@media (max-width: 640px) {
	.ac-picker { grid-template-columns: 1fr; }
	.ac-panel { padding: 16px; }
	.ac-steps li { font-size: 11px; }
}
