.calendar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);max-width:360px}.calendar-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.calendar-title{font-size:var(--text-base);font-weight:600;font-family:var(--font-sans);margin:0}.calendar-nav{cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:all var(--transition-fast);background:0 0;border:0}.calendar-nav:hover{background:var(--color-bg-alt);color:var(--color-terracota)}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-weekday{text-align:center;font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-2) 0;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.calendar-cell{aspect-ratio:1;cursor:pointer;border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text);transition:all var(--transition-fast);font-family:var(--font-sans);background:0 0;border:0;justify-content:center;align-items:center;display:flex}.calendar-cell.empty{cursor:default}.calendar-cell:disabled,.calendar-cell.past{color:var(--color-text-muted);cursor:not-allowed;opacity:.4}.calendar-cell.today:not(.selected){background:var(--color-bg-alt);color:var(--color-terracota);font-weight:700}.calendar-cell.available:not(.selected){background:color-mix(in srgb,var(--color-terracota) 8%,transparent);color:var(--color-terracota);font-weight:600}.calendar-cell.available:not(.selected):hover{background:var(--color-terracota);color:var(--color-text-inverse)}.calendar-cell.selected{background:var(--color-terracota);color:var(--color-text-inverse);font-weight:700}.slot-picker{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6)}.slot-picker-grid{gap:var(--space-6);grid-template-columns:360px 1fr;align-items:start;display:grid}@media(max-width:768px){.slot-picker-grid{grid-template-columns:1fr}}.slot-picker-calendar{max-width:360px}.slot-picker-calendar .calendar{width:100%;max-width:100%}.slot-picker-times{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);min-height:320px;padding:var(--space-4)}.slot-picker-empty{text-align:center;padding:var(--space-10) var(--space-4);color:var(--color-text-muted)}.slot-picker-empty .empty-icon{margin-bottom:var(--space-3);font-size:2.5rem;line-height:1}.slot-picker-empty p{margin:0 0 var(--space-1);color:var(--color-text-secondary);font-weight:500}.slot-picker-empty small{font-size:var(--text-xs)}.slot-day-header{margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.slot-day-header strong{font-family:var(--font-serif);font-size:var(--text-lg)}.slot-day-count{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-bg-alt);border-radius:var(--radius-full);padding:2px 10px}.slot-list{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(80px,1fr));display:grid}.slot-btn{padding:var(--space-3) var(--space-2);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-text);transition:all var(--transition-fast);text-align:center;font-weight:600}.slot-btn:hover:not(.selected){border-color:var(--color-terracota);background:color-mix(in srgb,var(--color-terracota) 5%,transparent)}.slot-btn.selected{background:var(--color-terracota);border-color:var(--color-terracota);color:var(--color-text-inverse)}.slot-btn .slot-modalidad{font-size:9px;font-family:var(--font-sans);text-transform:uppercase;opacity:.8;margin-top:2px;font-weight:500;display:block}.slot-picker-legend{gap:var(--space-5);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.legend-item{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted);display:flex}.legend-box{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:14px;height:14px}.legend-available{background:color-mix(in srgb,var(--color-terracota) 8%,transparent);border-color:var(--color-terracota-light)}.legend-selected{background:var(--color-terracota);border-color:var(--color-terracota)}.legend-unavailable{background:0 0}
