/* Calendario page */
.cal-wrap { padding: 2.5rem 1.25rem 4rem; }

.cal-header { margin-bottom: 2rem; }
.cal-title { font-size: 1.75rem; font-weight: 800; margin: 0 0 .35rem; }
.cal-subtitle { color: var(--muted); margin: 0; font-size: .95rem; }

.cal-flash { padding: .75rem 1rem; border-radius: .6rem; margin-bottom: 1.25rem; font-size: .9rem; }
.cal-flash--success { background: rgba(34,197,94,.12); border: 1px solid rgba(34,197,94,.35); color: #4ade80; }
.cal-flash--error   { background: rgba(239,68,68,.12);  border: 1px solid rgba(239,68,68,.35);  color: #f87171; }

.cal-body { display: flex; flex-direction: column; gap: 1.75rem; }

.cal-card { background: #0f1c30; border: 1px solid #16223a; border-radius: .875rem; padding: 1.5rem; }
.cal-card--muted { opacity: .7; }
.cal-card__title { font-size: 1rem; font-weight: 700; margin: 0 0 1.25rem; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; font-size: .8rem; }

/* Add-slot form */
.cal-form__fields { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.cal-field { display: flex; flex-direction: column; gap: .4rem; }
.cal-field label { font-size: .85rem; color: var(--muted); }
.cal-field input[type="date"],
.cal-field select { background: #0b1220; border: 1px solid #1e3050; border-radius: .5rem; color: var(--text); padding: .5rem .75rem; font-size: .95rem; }
.cal-field input[type="date"]:focus,
.cal-field select:focus { outline: none; border-color: var(--primary); }

/* Slots list */
.cal-slots { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.cal-slots--past .cal-slot { opacity: .65; }

.cal-day { margin-bottom: 1rem; }
.cal-day__date { font-size: .8rem; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; margin-bottom: .5rem; }
.cal-day__slots { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .4rem; }

.cal-slot { display: flex; align-items: center; justify-content: space-between; background: #0b1220; border: 1px solid #16223a; border-radius: .5rem; padding: .6rem 1rem; }
.cal-slot--free  { border-color: rgba(34,197,94,.2); }
.cal-slot--booked { border-color: rgba(99,102,241,.25); }
.cal-slot--past  { border-color: #16223a; }

.cal-slot__time { font-size: .95rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.cal-slot__status { display: flex; align-items: center; gap: .75rem; }

.badge { display: inline-block; font-size: .75rem; font-weight: 700; padding: .2rem .5rem; border-radius: 99px; }
.badge--free   { background: rgba(34,197,94,.15); color: #4ade80; }
.badge--booked { background: rgba(99,102,241,.2);  color: #a5b4fc; }
.badge--missed { background: rgba(156,163,175,.1); color: #9ca3af; }

.cal-empty { color: var(--muted); font-size: .95rem; margin: 0; }
