.cal-page { max-width: 960px; margin: 0 auto; padding: 2rem 1rem; }
.cal-hero { text-align: center; margin-bottom: 2rem; }
.cal-hero h1 { color: var(--brand-primary, #c41e3a); margin-bottom: 0.5rem; }
.cal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
@media (max-width: 768px) { .cal-grid { grid-template-columns: 1fr; } }
.cal-panel { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 1.25rem; }
.cal-panel h2 { font-size: 1.1rem; margin: 0 0 1rem; }
.cal-input { width: 100%; padding: 0.6rem 0.75rem; border: 1px solid #d1d5db; border-radius: 6px; margin-bottom: 0.75rem; box-sizing: border-box; }
.cal-form label { display: block; font-size: 0.9rem; font-weight: 500; margin-bottom: 0.25rem; }
.cal-slots { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.cal-slot { padding: 0.5rem 0.85rem; border: 1px solid var(--brand-primary, #c41e3a); background: #fff; color: var(--brand-primary, #c41e3a); border-radius: 6px; cursor: pointer; font-size: 0.9rem; }
.cal-slot.active, .cal-slot:hover { background: var(--brand-primary, #c41e3a); color: #fff; }
.cal-btn { width: 100%; padding: 0.75rem; background: var(--brand-primary, #c41e3a); color: #fff; border: none; border-radius: 6px; font-weight: 600; cursor: pointer; }
.cal-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.cal-muted { color: #6b7280; font-size: 0.9rem; margin-top: 0.5rem; }
.cal-selected { font-size: 0.9rem; color: #374151; margin: 0.5rem 0; }
.cal-success { background: #ecfdf5; color: #065f46; padding: 0.75rem; border-radius: 6px; margin-top: 0.75rem; }
.cal-error { background: #fef2f2; color: #991b1b; padding: 0.75rem; border-radius: 6px; margin-top: 0.75rem; }
.cal-alt { font-size: 0.85rem; margin-top: 1rem; color: #6b7280; }
.cal-patente { text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; }
