:root{--primary-gradient:linear-gradient(135deg,#667eea,#764ba2);--secondary-gradient:linear-gradient(135deg,#f093fb,#f5576c);--success-gradient:linear-gradient(135deg,#4facfe,#00f2fe);--warning-gradient:linear-gradient(135deg,#43e97b,#38f9d7);--error-gradient:linear-gradient(135deg,#fa709a,#fee140);--info-gradient:linear-gradient(135deg,#a8edea,#fed6e3);--primary-color:#667eea;--secondary-color:#f093fb;--success-color:#4facfe;--warning-color:#43e97b;--error-color:#fa709a;--info-color:#a8edea;--surface-color:#ffffff;--background-color:#f8fafc;--card-shadow:0 4px 25px 0 rgba(0,0,0,0.1);--hover-shadow:0 8px 30px 0 rgba(0,0,0,0.12);--focus-shadow:0 0 0 4px rgba(102,126,234,0.2);--border-radius-sm:8px;--border-radius-md:12px;--border-radius-lg:16px;--border-radius-xl:20px;--transition-fast:all 0.2s cubic-bezier(0.4,0,0.2,1);--transition-medium:all 0.3s cubic-bezier(0.4,0,0.2,1);--transition-slow:all 0.5s cubic-bezier(0.4,0,0.2,1)}.calendar-container{border-radius:8px!important;overflow-y:auto;overflow-x:hidden;box-shadow:0 1px 3px rgba(0,0,0,.1)!important;background:#ffffff;max-height:92vh;position:relative;width:100%!important;margin:0!important;border:1px solid #e2e8f0;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#cbd5e1 #f1f5f9}.calendar-container::-webkit-scrollbar{width:8px}.calendar-container::-webkit-scrollbar-track{border-radius:4px}.calendar-container::-webkit-scrollbar-thumb{border-radius:4px;-webkit-transition:background .2s ease;transition:background .2s ease}.calendar-grid{display:grid;height:calc(24 * 60px + 116px);width:100%;background:#ffffff}.calendar-grid.professionals-1{grid-template-columns:120px 1fr}.calendar-grid.professionals-2{grid-template-columns:120px repeat(2,1fr)}.calendar-grid.professionals-3{grid-template-columns:120px repeat(3,1fr)}.calendar-grid.professionals-4{grid-template-columns:120px repeat(4,1fr)}.calendar-grid.professionals-5{grid-template-columns:120px repeat(5,1fr)}.time-column-header{background:#f8fafc;border:1px solid #e2e8f0;border-bottom:2px solid #cbd5e1;position:sticky;top:0;z-index:50;height:116px;width:120px;display:flex;align-items:center;justify-content:center;color:#334155;font-weight:600;font-size:16px;transition:all .3s ease;cursor:default}.time-column-header:hover{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);color:#1e293b;box-shadow:0 2px 8px rgba(51,65,85,.1)}.professional-header{background:#ffffff;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;border-color:#e2e8f0 #cbd5e1 #cbd5e1 #e2e8f0;border-style:solid;border-width:1px 1px 2px;padding:20px 16px;flex-direction:column;gap:12px;min-height:96px;position:sticky;top:0;z-index:40;transition:all .3s ease}.professional-avatar,.professional-header{display:flex;align-items:center;overflow:hidden}.professional-avatar{font-size:24px;width:44px;height:44px;justify-content:center;border-radius:50%;background:#f1f5f9;color:#475569;border:2px solid #e2e8f0;position:relative}.professional-name{font-size:12px;font-weight:600;text-align:center;color:#334155;line-height:1.3;text-transform:uppercase;letter-spacing:.5px}.time-slot-label{background:#f8fafc;display:flex;align-items:center;justify-content:center;padding:12px 8px;font-size:13px;color:#475569;min-height:60px;width:120px;font-weight:500}.time-slot,.time-slot-label{border:none;border-right:1px solid #cbd5e1;border-bottom:1px solid #e2e8f0;position:relative}.time-slot{height:60px;cursor:pointer;transition:all .3s ease;background:#ffffff;overflow:visible}.time-slot:not(.has-appointment):hover{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:2px solid #666cff;border-radius:8px;transform:scale(1.02);box-shadow:0 4px 12px rgba(102,108,255,.15);z-index:10}.time-slot:not(.has-appointment):hover:after{content:"+";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:24px;font-weight:700;color:#666cff;opacity:.7;animation:pulseIcon 1.5s ease-in-out infinite}.time-slot.has-appointment:hover{cursor:default}@keyframes pulseIcon{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.7}50%{transform:translate(-50%,-50%) scale(1.2);opacity:1}}.appointment{border-radius:8px;padding:8px;font-size:12px;line-height:1.2;display:flex;flex-direction:column;justify-content:flex-start;gap:2px;cursor:pointer;transition:all .3s ease;border:2px solid;min-height:40px;overflow:visible;word-wrap:break-word;box-sizing:border-box;position:relative;box-shadow:0 3px 12px rgba(0,0,0,.15)}.appointment:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:8px 8px 0 0;transition:all .2s ease}.appointment:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 20px rgba(0,0,0,.15);z-index:20}.appointment:active{transform:translateY(-1px) scale(1.01)}.appointment-service{font-weight:700;font-size:12px;color:#1e293b!important}.appointment-client,.appointment-service{line-height:1.2;margin:0;padding:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-client{font-weight:600;font-size:11px;color:#334155!important}.appointment-time{font-weight:500;font-size:10px;line-height:1.2;color:#475569!important;margin:0;padding:0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-primary{background:#ffffff;border-color:#3b82f6}.appointment-primary:before{background:#3b82f6}.appointment-info{background:#ffffff;border-color:#0ea5e9}.appointment-info:before{background:#0ea5e9}.appointment-success{background:#ffffff;border-color:#22c55e}.appointment-success:before{background:#22c55e}.appointment-warning{background:#ffffff;border-color:#f59e0b}.appointment-warning:before{background:#f59e0b}.appointment-error{background:#ffffff;border-color:#ef4444}.appointment-error:before{background:#ef4444}.appointment-secondary{background:#ffffff;border-color:#a855f7}.appointment-secondary:before{background:#a855f7}.event{border-radius:var(--border-radius-md);padding:10px;font-size:11px;font-weight:700;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;cursor:pointer;transition:var(--transition-medium);border:2px solid;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 15px rgba(0,0,0,.1);position:relative;overflow:hidden}.event:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);z-index:-1;opacity:0;transition:var(--transition-fast)}.event:hover:before{opacity:1;animation:shimmer 1.5s infinite}.event:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 8px 25px rgba(0,0,0,.15)}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.appointment[data-is-preview=true]{background:#ffffff;border:2px dashed #f59e0b;animation:previewFloat 3s ease-in-out infinite;position:relative}.appointment[data-is-preview=true]:before{background:#f59e0b}.appointment[data-is-preview=true] .appointment-client,.appointment[data-is-preview=true] .appointment-service,.appointment[data-is-preview=true] .appointment-time{color:#1e293b}.appointment[data-is-preview=true]:after{content:"Vista Previa";position:absolute;top:-6px;right:-6px;background:#f59e0b;color:white;font-size:8px;padding:2px 6px;border-radius:8px;font-weight:600;white-space:nowrap;z-index:30;box-shadow:0 2px 6px rgba(245,158,11,.3)}@keyframes previewFloat{0%,to{transform:translateY(0);opacity:.8}50%{transform:translateY(-3px);opacity:1}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-4px)}60%{transform:translateY(-2px)}}@media (max-width:1200px){.calendar-grid.professionals-1{grid-template-columns:100px 1fr}.calendar-grid.professionals-2{grid-template-columns:100px repeat(2,1fr)}.calendar-grid.professionals-3{grid-template-columns:100px repeat(3,1fr)}.calendar-grid.professionals-4{grid-template-columns:100px repeat(4,1fr)}.calendar-grid.professionals-5{grid-template-columns:100px repeat(5,1fr)}.time-column-header,.time-slot-label{width:100px}.time-column-header{height:96px}.professional-header{min-height:80px}.professional-name{font-size:12px}.professional-avatar{width:45px;height:45px;font-size:24px}}@media (max-width:768px){.calendar-grid.professionals-1{grid-template-columns:85px 1fr}.calendar-grid.professionals-2{grid-template-columns:85px repeat(2,1fr)}.calendar-grid.professionals-3{grid-template-columns:85px repeat(3,1fr)}.calendar-grid.professionals-4{grid-template-columns:85px repeat(4,1fr)}.calendar-grid.professionals-5{grid-template-columns:85px repeat(5,1fr)}.time-column-header,.time-slot-label{width:85px;font-size:11px}.time-column-header{height:80px}.professional-header{min-height:70px;padding:15px 12px}.professional-name{font-size:10px}.professional-avatar{width:38px;height:38px;font-size:20px}.appointment{padding:8px 10px}.appointment,.appointment-service{font-size:11px}.appointment-client{font-size:10px}.appointment-time{font-size:9px}}.current-time-line{background:#ef4444;height:2px;box-shadow:0 1px 3px rgba(239,68,68,.3);position:relative;z-index:25}.current-time-line:before{content:"";left:-6px;top:-3px;width:10px;height:10px;border-radius:50%;border:2px solid white;box-shadow:0 2px 6px rgba(239,68,68,.3)}.current-time-indicator,.current-time-line:before{position:absolute;background:#ef4444;animation:pulse 2s infinite}.current-time-indicator{right:10px;top:-10px;color:white;padding:4px 8px;border-radius:12px;font-size:10px;font-weight:600;box-shadow:0 2px 8px rgba(239,68,68,.3);white-space:nowrap}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.appointment-card-enter{animation:slideInRight .3s ease-out}.summary-panel-item{animation:fadeInUp .2s ease-out}.appointment[data-is-highlighted=true]{z-index:30!important;position:relative!important;opacity:1!important;transform:scale(1.05)!important;box-shadow:0 6px 20px rgba(102,108,255,.3)!important;border:2px solid #666cff!important;animation:highlight 2s ease-in-out infinite}.appointment[data-is-highlighted=true]:after{content:"●";position:absolute;top:-6px;right:-6px;background:#666cff;color:white;font-size:10px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid white;box-shadow:0 2px 8px rgba(16,185,129,.3);z-index:35;animation:pulse 2s ease-in-out infinite}@keyframes highlight{0%,to{box-shadow:0 6px 20px rgba(16,185,129,.3)}50%{box-shadow:0 8px 25px rgba(16,185,129,.5)}}.calendar-container::-webkit-scrollbar{width:6px}.calendar-container::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.calendar-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px;-webkit-transition:all .2s ease;transition:all .2s ease}.calendar-container::-webkit-scrollbar-thumb:hover{background:#94a3b8}.professional-header.filtered{background:#334155;color:white;border-color:#334155}.professional-header.filtered .professional-name{color:white}.professional-header.filtered .professional-avatar{background:white;color:#334155;border-color:white}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.appointment,.event{animation:slideInUp .4s ease-out}.calendar-loading{background:linear-gradient(90deg,#f0f0f0 25%,transparent 37%,#f0f0f0 63%);background-size:400% 100%;animation:skeleton 1.5s ease-in-out infinite}@keyframes skeleton{0%{background-position:100% 50%}to{background-position:0 50%}}.appointment-conflict{position:relative;border:2px solid #ef4444!important;background:linear-gradient(135deg,#fef2f2,#fee2e2)!important;animation:conflictPulse 2s infinite}.appointment-conflict:before{content:"⚠️";position:absolute;top:-8px;right:-8px;background:#ef4444;color:white;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700;z-index:10;box-shadow:0 2px 4px rgba(239,68,68,.3)}.appointment-conflict:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;border:2px solid #ef4444;border-radius:inherit;opacity:.7;animation:conflictRing 1.5s infinite;pointer-events:none}.time-slot-conflict{background:linear-gradient(135deg,#fef2f2,#fee2e2)!important;border:1px solid #fca5a5!important;position:relative}.time-slot-conflict:before{content:"⚠️";position:absolute;top:2px;right:2px;font-size:10px;opacity:.8;z-index:5}.conflict-badge{background:linear-gradient(135deg,#ef4444,#dc2626);color:white;border-radius:12px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-flex;align-items:center;gap:2px;box-shadow:0 2px 4px rgba(239,68,68,.3);animation:fadeInUp .3s ease-out}.conflict-tooltip{background:#1f2937;color:white;border-radius:8px;padding:8px 12px;font-size:12px;max-width:250px;box-shadow:0 4px 12px rgba(0,0,0,.3);z-index:1000}.conflict-tooltip h6{color:#ef4444;margin:0 0 4px;font-weight:600;font-size:13px}.conflict-tooltip ul{margin:0;padding-left:16px;list-style-type:none}.conflict-tooltip li{margin:2px 0;position:relative}.conflict-tooltip li:before{content:"•";color:#ef4444;font-weight:700;position:absolute;left:-12px}@keyframes conflictPulse{0%,to{box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{box-shadow:0 0 0 8px rgba(239,68,68,0)}}@keyframes conflictRing{0%{transform:scale(1);opacity:.7}to{transform:scale(1.1);opacity:0}}.conflict-summary-item{border-left:4px solid #ef4444;background:linear-gradient(135deg,#fef2f2,#fee2e2);position:relative}.conflict-summary-item:after{content:"⚠️ CONFLICTO";position:absolute;top:4px;right:8px;background:#ef4444;color:white;font-size:9px;padding:2px 4px;border-radius:4px;font-weight:600}