.center{display:flex;justify-content:center;align-items:center;min-height:200px;text-align:center}.calendar-view{display:flex;flex-direction:column;gap:var(--spacing-xs)}.calendar-month-navigation{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);z-index:50}.sticky-header{position:sticky;top:0;box-shadow:var(--shadow-sm);border-radius:0}.month-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.month-nav-btn:hover{background:var(--color-background-tertiary);color:var(--color-text-primary)}.month-display{display:contents}.month-year{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 var(--spacing-xs)}.today-btn{padding:4px 10px;font-size:.8rem;font-weight:500;color:var(--color-primary);background:transparent;border:1px solid var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease}.today-btn:hover{background:var(--color-primary);color:#fff}.timeline-bar.status-tentative{background:var(--status-tentative-bg);color:var(--status-tentative-text);border-color:var(--status-tentative-text)}.timeline-bar.status-preferred{background:var(--status-preferred-bg);color:var(--status-preferred-text);border-color:var(--status-preferred-text)}.timeline-bar.status-confirmed,.timeline-bar.status-booked{background:var(--status-confirmed-bg);color:var(--status-confirmed-text);border-color:var(--status-confirmed-text)}.timeline-bar.status-location{background:linear-gradient(135deg,#e9ecef,#dee2e6);color:#495057;border-color:#adb5bd;font-weight:600}.timeline-bar.status-location-tentative{background:linear-gradient(135deg,#f8f9fa,#e9ecef);color:#6c757d;border-color:#dee2e6;font-style:italic}.timeline-view{background:#fff;border-radius:12px;padding:12px 0 24px;overflow:auto;min-height:400px;scrollbar-width:none;-ms-overflow-style:none}.timeline-view::-webkit-scrollbar{display:none}.timeline-header{position:sticky;top:0;background:#fff;z-index:20;padding-bottom:12px;display:flex}.timeline-header-spacer{width:150px;flex-shrink:0;background:#fff;z-index:25;position:sticky;left:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;border-right:1px solid var(--color-border);padding:0 4px}.timeline-header-spacer:after{content:"";position:absolute;top:100%;left:0;right:-1px;height:12px;background:#fff;border-right:1px solid var(--color-border)}@media(max-width:1500px){.timeline-header-spacer{width:120px}}.compact-month-nav{display:flex;align-items:center;gap:4px}.month-year-inv{font-size:.8rem;font-weight:600;color:var(--color-text-primary);min-width:80px;text-align:center}.today-btn-sm{font-size:.75rem;padding:2px 8px;border:1px solid var(--color-border);background:var(--color-background-secondary);border-radius:var(--radius-sm);cursor:pointer;width:100%;text-align:center}.today-btn-sm:hover{background:var(--color-background-tertiary);border-color:var(--color-text-tertiary)}.timeline-labels{position:relative;height:50px;min-width:0;flex:1;overflow-x:visible;z-index:15;padding-left:20px}.timeline-date-label{position:absolute;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:40px}.date-label-day{font-size:16px;font-weight:600;color:#212529}.date-label-month{font-size:11px;text-transform:uppercase;color:#6c757d;letter-spacing:.5px}.timeline-body{display:flex;flex-direction:column}.timeline-swimlane{display:flex;border-bottom:1px solid #f1f3f5;min-height:var(--swimlane-row-height);width:100%}.swimlane-label{flex-shrink:0;width:150px;padding:8px;font-weight:600;font-size:14px;color:#495057;display:flex;align-items:center;gap:8px;border-right:2px solid #e9ecef;background:#fff;position:sticky;left:0;z-index:20}@media(max-width:1500px){.swimlane-label{width:120px}}.swimlane-icon{flex-shrink:0;display:flex;align-items:center}.swimlane-icon{display:inline-flex;align-items:center;margin-right:var(--spacing-xs)}.swimlane-label>span:not(.swimlane-icon){flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.swimlane-track{flex:1;position:relative;min-height:var(--swimlane-row-height);background:linear-gradient(90deg,#f8f9fa 0%,transparent 1px);background-size:64px 100%;padding:var(--swimlane-track-padding) 0}.swimlane-track.has-overlaps{padding:var(--swimlane-track-padding) 0}.timeline-bar{position:absolute;height:var(--swimlane-bar-height);border-radius:6px;display:flex;align-items:center;box-shadow:0 2px 4px #0000001a;border:2px solid transparent;margin:var(--swimlane-bar-margin) 0}.timeline-bar:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026;z-index:5}.timeline-bar:active{cursor:grabbing}.bar-content{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;max-width:calc(100% - 8px);min-width:0;overflow:hidden;position:sticky;left:150px;padding-left:4px;z-index:2}@media(max-width:1500px){.bar-content{left:120px}}.bar-top-row{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;line-height:1.3;max-width:100%;min-width:0;overflow:hidden}.bar-top-row .bar-icon,.bar-top-row>svg{flex-shrink:0}.bar-top-row .bar-route,.bar-top-row .bar-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.bar-time-range{font-size:10px;opacity:.8;white-space:nowrap;line-height:1.2}.bar-label{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3;min-width:0;display:block}.location-bar{background:linear-gradient(135deg,#e9ecef,#dee2e6);color:#495057;border-color:#adb5bd;font-weight:600;opacity:.9;cursor:default;pointer-events:none}.swimlane-location .swimlane-label{font-style:italic;opacity:.85}.timeline-warning{position:absolute;height:var(--swimlane-bar-height);border-radius:6px;display:flex;align-items:center;padding:0 16px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a;border:2px solid transparent;pointer-events:auto;z-index:10;transition:transform .2s ease;margin-top:8px}.timeline-warning.invalid{padding:0}.timeline-warning:hover{transform:scale(1.05)}.warning-gap{background:repeating-linear-gradient(45deg,#ffc10726,#ffc10726 10px,#ff980026 10px 20px);border:2px dashed #ff9800;border-radius:var(--radius-sm)}.warning-gap svg{color:#ff9800;filter:drop-shadow(0 2px 4px rgba(255,152,0,.3))}.warning-overlap{background:transparent;border:2px dashed #ff4500;border-radius:var(--radius-sm);align-items:flex-start;padding:0;pointer-events:auto;box-shadow:none}.warning-overlap svg{position:absolute;top:-14px;left:-8px;color:#ff4500;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));background:#fff;border:1px solid #ff4500;border-radius:50%;padding:2px;z-index:10;width:20px;height:20px}.warning-popover{position:fixed;transform:translate(-50%);background:#fff;border:none;border-radius:16px;box-shadow:0 4px 6px -1px #00000012,0 10px 20px -2px #0000001a,0 0 0 1px #0000000d;padding:16px;display:flex;flex-direction:column;gap:10px;z-index:1000;min-width:240px;max-width:320px;animation:popoverFadeIn .15s ease-out}.warning-popover:before{content:"";position:absolute;top:-6px;left:50%;transform:translate(-50%) rotate(45deg);width:12px;height:12px;background:#fff;box-shadow:-2px -2px 4px #0000000a;border-radius:2px}.warning-popover>.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:.875rem;width:100%}.warning-popover-header{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-warning, #f59e0b);padding-bottom:8px;border-bottom:1px solid rgba(0,0,0,.06)}.warning-popover-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(0,0,0,.04)}.warning-popover-item:last-child{border-bottom:none;padding-bottom:0}.warning-item-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.warning-item-title{font-size:.9rem;font-weight:500;color:var(--text-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.warning-item-mode{display:flex;align-items:center;color:var(--text-muted, #666);flex-shrink:0}.warning-item-mode svg{width:16px;height:16px}.warning-item-actions{display:flex;gap:6px;flex-shrink:0}.warning-item-actions .btn{display:flex;align-items:center;justify-content:center;padding:6px 10px;min-width:0}.warning-item-actions .btn-primary{background:#3b82f6;border-color:#3b82f6}.warning-item-actions .btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.warning-item-actions .btn-danger{background:#ef4444;border-color:#ef4444}.warning-item-actions .btn-danger:hover:not(:disabled){background:#dc2626;border-color:#dc2626}.timeline-bar[draggable=true]{cursor:grab}.timeline-bar.dragging{opacity:.5;cursor:grabbing}.swimlane-track.drag-over{background-color:#0d6efd0d;border:2px dashed #0d6efd;border-radius:6px}.trip-day-number{font-size:10px;color:#9ca3af;font-weight:500;margin-top:2px;text-transform:uppercase;letter-spacing:.5px}@media(max-width:768px){.timeline-view{padding:16px}.swimlane-label{width:60px;font-size:12px;padding:8px 4px}.timeline-header-spacer{width:60px}.swimlane-label>span:not(.swimlane-icon){display:none}.swimlane-icon{margin:0 auto}.calendar-month-navigation{padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-sm)}.month-display{flex-direction:column;gap:var(--spacing-xs);align-items:center}.month-year{font-size:1rem}.today-btn{padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem}.month-nav-btn{width:36px;height:36px}.timeline-bar{height:32px}.bar-label,.bar-top-row .bar-route,.bar-top-row .bar-label{font-size:11px}.bar-time-range{font-size:9px}.date-label-day{font-size:14px}.date-label-month{font-size:10px}}.calendar-today-line{position:absolute;left:50%;transform:translate(-50%);top:0;bottom:0;width:1px;background-color:var(--color-danger);z-index:10;box-shadow:0 0 6px #dc262666;pointer-events:none}.calendar-today-header-marker{position:absolute;bottom:-12px;left:50%;transform:translate(-50%);width:10px;height:10px;background-color:var(--color-danger);border-radius:50%;z-index:20;box-shadow:0 1px 3px #00000040;border:2px solid white}
