/**
 * CockpitOS Light Theme - Centerplan Floor Tabs
 * 
 * Verantwortlichkeit: Etagen-Navigation (Tabs)
 * 
 * @package CockpitOS_Light_Theme
 * @version 1.7.0
 */

/* ============================================
   FLOOR TABS CONTAINER
   ============================================ */

.centerplan-floor-tabs {
    display: flex;
    gap: 0.5rem;
    padding: 1rem;
    background: var(--color-white);
    border-bottom: 1px solid var(--color-border, #e5e7eb);
    overflow-x: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--color-border, #e5e7eb) transparent;
}

.centerplan-floor-tabs::-webkit-scrollbar {
    height: 4px;
}

.centerplan-floor-tabs::-webkit-scrollbar-track {
    background: transparent;
}

.centerplan-floor-tabs::-webkit-scrollbar-thumb {
    background: var(--color-border, #e5e7eb);
    border-radius: 2px;
}

.centerplan-floor-tabs::-webkit-scrollbar-thumb:hover {
    background: var(--color-text-secondary, #6b7280);
}

/* ============================================
   FLOOR TAB BUTTON
   ============================================ */

.centerplan-floor-tab {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.25rem;
    background: var(--color-background, #f9fafb);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--border-radius-md, 8px);
    color: var(--color-text-secondary, #6b7280);
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
    user-select: none;
}

.centerplan-floor-tab:hover {
    background: var(--color-white);
    border-color: var(--color-primary, var(--color-primary, #da2032));
    color: var(--color-primary, var(--color-primary, #da2032));
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(218, 32, 50, 0.1);
}

.centerplan-floor-tab.is-active {
    background: var(--color-primary, var(--color-primary, #da2032));
    border-color: var(--color-primary, var(--color-primary, #da2032));
    color: var(--color-white);
    box-shadow: 0 2px 8px rgba(218, 32, 50, 0.2);
}

.centerplan-floor-tab:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(218, 32, 50, 0.1);
}

/* ============================================
   FLOOR TAB BADGE (Item Count)
   ============================================ */

.centerplan-floor-tab__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 0.375rem;
    background: rgba(0, 0, 0, 0.1);
    border-radius: 999px;
    color: currentColor;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
}

.centerplan-floor-tab.is-active .centerplan-floor-tab__badge {
    background: rgba(255, 255, 255, 0.2);
    color: var(--color-white);
}

/* ============================================
   ZOOM CONTROLS
   ============================================ */

.centerplan-zoom-controls {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    z-index: 10;
}

.centerplan-zoom-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    background: var(--color-white);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--border-radius-md, 8px);
    color: var(--color-text, #1f2937);
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.centerplan-zoom-btn:hover {
    background: var(--color-primary, var(--color-primary, #da2032));
    border-color: var(--color-primary, var(--color-primary, #da2032));
    color: var(--color-white);
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(218, 32, 50, 0.2);
}

.centerplan-zoom-btn:active {
    transform: scale(0.95);
}

.centerplan-zoom-btn:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(218, 32, 50, 0.1);
}

.centerplan-zoom-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.centerplan-zoom-btn:disabled:hover {
    background: var(--color-white);
    border-color: var(--color-border, #e5e7eb);
    color: var(--color-text, #1f2937);
    transform: none;
}

.centerplan-zoom-btn svg {
    width: 1.25rem;
    height: 1.25rem;
}

/* ============================================
   FLOOR CONTAINER
   ============================================ */

.centerplan-floor-container {
    display: none;
    width: 100%;
    height: 100%;
}

.centerplan-floor-container.is-active {
    display: block;
}

/* ============================================
   SMOOTH TRANSITIONS
   ============================================ */

.centerplan-svg {
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                opacity 0.3s ease;
    will-change: transform;
    /* GPU Acceleration */
    transform: translateZ(0);
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
}

.centerplan-map-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    cursor: grab;
    /* GPU Acceleration */
    transform: translateZ(0);
    will-change: transform;
}

.centerplan-map-wrapper.is-dragging {
    cursor: grabbing;
}

.centerplan-map-wrapper.is-dragging .centerplan-svg {
    transition: none; /* Disable transition during drag */
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
    .centerplan-floor-tabs {
        padding: 0.75rem;
        gap: 0.375rem;
    }
    
    .centerplan-floor-tab {
        padding: 0.625rem 1rem;
        font-size: 0.8125rem;
    }
    
    .centerplan-zoom-controls {
        top: 0.75rem;
        right: 0.75rem;
        gap: 0.375rem;
    }
    
    .centerplan-zoom-btn {
        width: 2.25rem;
        height: 2.25rem;
    }
    
    .centerplan-zoom-btn svg {
        width: 1.125rem;
        height: 1.125rem;
    }
}

/* ============================================
   PRINT
   ============================================ */

@media print {
    .centerplan-floor-tabs,
    .centerplan-zoom-controls {
        display: none;
    }
}
