.calendar{background:var(--color-kumo-base);border:1px solid var(--color-kumo-line);border-radius:var(--radius-lg);padding:var(--space-4);max-width:360px;font-family:var(--font-family-sans,inherit)}.calendar-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.calendar-title{font-size:var(--font-size-base,14px);font-weight:600;font-family:var(--font-family-sans,inherit);color:var(--text-color-kumo-strong);margin:0}.calendar-nav{cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);color:var(--text-color-kumo-subtle);background:0 0;border:0;transition:background-color .15s,color .15s}.calendar-nav:hover{background:var(--color-kumo-tint);color:var(--text-color-kumo-brand)}.calendar-nav:focus-visible{outline:2px solid var(--color-kumo-brand);outline-offset:2px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-weekday{text-align:center;font-size:var(--font-size-xs,12px);color:var(--text-color-kumo-inactive);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(--font-size-sm,13px);color:var(--text-color-kumo-default);font-family:var(--font-family-sans,inherit);background:0 0;border:0;justify-content:center;align-items:center;transition:background-color .15s,color .15s,opacity .15s;display:flex}.calendar-cell.empty{cursor:default}.calendar-cell:disabled,.calendar-cell.past{color:var(--text-color-kumo-inactive);cursor:not-allowed;opacity:.4}.calendar-cell.today:not(.selected){background:var(--color-kumo-tint);color:var(--text-color-kumo-brand);font-weight:700}.calendar-cell.available:not(.selected){background:color-mix(in srgb,var(--color-kumo-brand) 8%,transparent);color:var(--text-color-kumo-brand);font-weight:600}.calendar-cell.available:not(.selected):hover{background:var(--color-kumo-brand);color:var(--text-color-kumo-inverse)}.calendar-cell.selected{background:var(--color-kumo-brand);color:var(--text-color-kumo-inverse);font-weight:700}.slot-picker{background:var(--color-kumo-tint);border:1px solid var(--color-kumo-line);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-kumo-base);border:1px solid var(--color-kumo-line);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(--text-color-kumo-inactive)}.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(--text-color-kumo-subtle);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-kumo-line);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(--text-color-kumo-inactive);background:var(--color-kumo-tint);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-kumo-base);border:2px solid var(--color-kumo-line);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-serif);font-size:var(--text-lg);color:var(--text-color-kumo-default);transition:all var(--transition-fast);text-align:center;font-weight:600}.slot-btn:hover:not(.selected){border-color:var(--color-kumo-brand);background:color-mix(in srgb,var(--color-kumo-brand) 5%,transparent)}.slot-btn.selected{background:var(--color-kumo-brand);border-color:var(--color-kumo-brand);color:var(--text-color-kumo-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-kumo-line);flex-wrap:wrap;display:flex}.legend-item{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-color-kumo-inactive);display:flex}.legend-box{border-radius:var(--radius-sm);border:1px solid var(--color-kumo-line);width:14px;height:14px}.legend-available{background:color-mix(in srgb,var(--color-kumo-brand) 8%,transparent);border-color:var(--color-brand-terracota-light)}.legend-selected{background:var(--color-kumo-brand);border-color:var(--color-kumo-brand)}.legend-unavailable{background:0 0}@keyframes slot-picker-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.slot-picker-loading,.slot-picker-error{padding:var(--space-4);text-align:center;color:var(--text-color-kumo-subtle)}.slot-picker-loading small,.slot-picker-error small{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--text-color-kumo-inactive);display:block}.skeleton-line{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-kumo-recessed) 0%,color-mix(in srgb,var(--color-kumo-tint) 60%,transparent) 50%,var(--color-kumo-recessed) 100%);height:12px;margin:0 auto var(--space-4);background-size:200% 100%;max-width:240px;animation:1.5s infinite slot-picker-shimmer}.skeleton-line-title{max-width:180px;height:16px}.skeleton-grid{gap:var(--space-2);margin-bottom:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.skeleton-block{border-radius:var(--radius-md);background:linear-gradient(90deg,var(--color-kumo-recessed) 0%,color-mix(in srgb,var(--color-kumo-tint) 60%,transparent) 50%,var(--color-kumo-recessed) 100%);background-size:200% 100%;height:48px;animation:1.5s infinite slot-picker-shimmer}.slot-picker-error .error-icon{margin-bottom:var(--space-2);font-size:32px;display:block}.slot-picker-error p{margin:0 0 var(--space-2);color:var(--text-color-kumo-default);font-weight:600}.btn-retry{margin-top:var(--space-3);background:var(--color-kumo-brand);color:var(--text-color-kumo-inverse);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-sm);cursor:pointer;border:none;padding:8px 20px;font-weight:500;transition:background .15s}.btn-retry:hover{background:var(--color-kumo-brand-hover)}.btn-retry:focus-visible{outline:2px solid var(--color-kumo-brand);outline-offset:2px}
