/* ============================================
   TeKHotel Admin - Fluent Design System Styles
   Material 3 Icons + Microsoft Fluent CSS
   ============================================ */

/* Fluent Design Tokens */
:root {
    /* Brand Colors */
    --fluent-brand-primary: #0078d4;
    --fluent-brand-primary-hover: #106ebe;
    --fluent-brand-primary-pressed: #005a9e;
    --fluent-brand-secondary: #5c2d91;
    
    /* Neutral Colors */
    --fluent-neutral-background-1: #ffffff;
    --fluent-neutral-background-2: #fafafa;
    --fluent-neutral-background-3: #f5f5f5;
    --fluent-neutral-background-4: #f0f0f0;
    --fluent-neutral-background-subtle: #f8f9fa;
    --fluent-neutral-foreground-1: #242424;
    --fluent-neutral-foreground-2: #424242;
    --fluent-neutral-foreground-3: #616161;
    --fluent-neutral-foreground-disabled: #a3a3a3;
    --fluent-neutral-stroke-1: #d1d1d1;
    --fluent-neutral-stroke-2: #e0e0e0;
    --fluent-neutral-stroke-subtle: #f0f0f0;
    
    /* Semantic Colors */
    --fluent-success: #107c10;
    --fluent-success-background: #dff6dd;
    --fluent-warning: #ffb900;
    --fluent-warning-background: #fff4ce;
    --fluent-danger: #d13438;
    --fluent-danger-background: #fde7e9;
    --fluent-info: #0078d4;
    --fluent-info-background: #e1f5fe;
    
    /* Elevation (Shadow Tokens) */
    --fluent-shadow-2: 0 1px 2px rgba(0, 0, 0, 0.14), 0 0 2px rgba(0, 0, 0, 0.12);
    --fluent-shadow-4: 0 2px 4px rgba(0, 0, 0, 0.14), 0 0 2px rgba(0, 0, 0, 0.12);
    --fluent-shadow-8: 0 4px 8px rgba(0, 0, 0, 0.14), 0 0 2px rgba(0, 0, 0, 0.12);
    --fluent-shadow-16: 0 8px 16px rgba(0, 0, 0, 0.14), 0 0 2px rgba(0, 0, 0, 0.12);
    --fluent-shadow-28: 0 14px 28px rgba(0, 0, 0, 0.14), 0 0 8px rgba(0, 0, 0, 0.12);
    --fluent-shadow-64: 0 32px 64px rgba(0, 0, 0, 0.24), 0 0 8px rgba(0, 0, 0, 0.12);
    
    /* Border Radius */
    --fluent-radius-none: 0;
    --fluent-radius-small: 4px;
    --fluent-radius-medium: 8px;
    --fluent-radius-large: 12px;
    --fluent-radius-xlarge: 16px;
    --fluent-radius-circular: 50%;
    
    /* Spacing */
    --fluent-space-xxs: 4px;
    --fluent-space-xs: 8px;
    --fluent-space-s: 12px;
    --fluent-space-m: 16px;
    --fluent-space-l: 20px;
    --fluent-space-xl: 24px;
    --fluent-space-xxl: 32px;
    --fluent-space-xxxl: 48px;
    
    /* Typography */
    --fluent-font-family: 'Segoe UI Variable', 'Segoe UI', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    --fluent-font-size-100: 12px;
    --fluent-font-size-200: 13px;
    --fluent-font-size-300: 14px;
    --fluent-font-size-400: 16px;
    --fluent-font-size-500: 20px;
    --fluent-font-size-600: 24px;
    --fluent-font-size-700: 28px;
    --fluent-font-size-800: 32px;
    --fluent-font-weight-regular: 400;
    --fluent-font-weight-semibold: 600;
    --fluent-font-weight-bold: 700;
    
    /* Transitions */
    --fluent-duration-fast: 100ms;
    --fluent-duration-normal: 200ms;
    --fluent-duration-slow: 300ms;
    --fluent-easing-ease: cubic-bezier(0.33, 0, 0.67, 1);
    --fluent-easing-accelerate: cubic-bezier(0.9, 0.1, 1, 0.2);
    --fluent-easing-decelerate: cubic-bezier(0.1, 0.9, 0.2, 1);
}

/* Material Symbols Icon Styles */
.material-symbols-outlined {
    font-family: 'Material Symbols Outlined';
    font-weight: normal;
    font-style: normal;
    font-size: 24px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    display: inline-block;
    white-space: nowrap;
    word-wrap: normal;
    direction: ltr;
    -webkit-font-feature-settings: 'liga';
    -webkit-font-smoothing: antialiased;
}

/* Icon Size Variants */
.icon-xs { font-size: 16px; }
.icon-sm { font-size: 20px; }
.icon-md { font-size: 24px; }
.icon-lg { font-size: 28px; }
.icon-xl { font-size: 32px; }
.icon-xxl { font-size: 48px; }

/* Fluent Card */
.fluent-card {
    background: var(--fluent-neutral-background-1);
    border: 1px solid var(--fluent-neutral-stroke-2);
    border-radius: var(--fluent-radius-large);
    box-shadow: var(--fluent-shadow-4);
    transition: box-shadow var(--fluent-duration-normal) var(--fluent-easing-ease),
                transform var(--fluent-duration-normal) var(--fluent-easing-ease);
}

.fluent-card:hover {
    box-shadow: var(--fluent-shadow-8);
}

.fluent-card-elevated {
    box-shadow: var(--fluent-shadow-8);
}

.fluent-card-elevated:hover {
    box-shadow: var(--fluent-shadow-16);
    transform: translateY(-2px);
}

/* Fluent Button Base */
.fluent-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--fluent-space-xs);
    padding: var(--fluent-space-xs) var(--fluent-space-m);
    min-height: 32px;
    border: 1px solid transparent;
    border-radius: var(--fluent-radius-medium);
    font-family: var(--fluent-font-family);
    font-size: var(--fluent-font-size-300);
    font-weight: var(--fluent-font-weight-semibold);
    cursor: pointer;
    transition: all var(--fluent-duration-fast) var(--fluent-easing-ease);
    text-decoration: none;
}

.fluent-btn-primary {
    background: var(--fluent-brand-primary);
    color: white;
}

.fluent-btn-primary:hover {
    background: var(--fluent-brand-primary-hover);
}

.fluent-btn-primary:active {
    background: var(--fluent-brand-primary-pressed);
}

.fluent-btn-secondary {
    background: var(--fluent-neutral-background-1);
    color: var(--fluent-neutral-foreground-1);
    border-color: var(--fluent-neutral-stroke-1);
}

.fluent-btn-secondary:hover {
    background: var(--fluent-neutral-background-3);
}

.fluent-btn-subtle {
    background: transparent;
    color: var(--fluent-neutral-foreground-2);
}

.fluent-btn-subtle:hover {
    background: var(--fluent-neutral-background-4);
}

/* Fluent Input */
.fluent-input {
    padding: var(--fluent-space-xs) var(--fluent-space-s);
    border: 1px solid var(--fluent-neutral-stroke-1);
    border-radius: var(--fluent-radius-medium);
    font-family: var(--fluent-font-family);
    font-size: var(--fluent-font-size-300);
    background: var(--fluent-neutral-background-1);
    color: var(--fluent-neutral-foreground-1);
    transition: border-color var(--fluent-duration-fast) var(--fluent-easing-ease),
                box-shadow var(--fluent-duration-fast) var(--fluent-easing-ease);
}

.fluent-input:hover {
    border-color: var(--fluent-neutral-foreground-3);
}

.fluent-input:focus {
    outline: none;
    border-color: var(--fluent-brand-primary);
    box-shadow: 0 0 0 1px var(--fluent-brand-primary);
}

/* Fluent Badge */
.fluent-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 2px var(--fluent-space-xs);
    border-radius: var(--fluent-radius-medium);
    font-size: var(--fluent-font-size-100);
    font-weight: var(--fluent-font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.fluent-badge-success {
    background: var(--fluent-success-background);
    color: var(--fluent-success);
}

.fluent-badge-warning {
    background: var(--fluent-warning-background);
    color: #5c4813;
}

.fluent-badge-danger {
    background: var(--fluent-danger-background);
    color: var(--fluent-danger);
}

.fluent-badge-info {
    background: var(--fluent-info-background);
    color: var(--fluent-info);
}

.fluent-badge-neutral {
    background: var(--fluent-neutral-background-4);
    color: var(--fluent-neutral-foreground-2);
}

/* Fluent Table */
.fluent-table {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--fluent-font-family);
}

.fluent-table th,
.fluent-table td {
    padding: var(--fluent-space-s) var(--fluent-space-m);
    text-align: left;
    border-bottom: 1px solid var(--fluent-neutral-stroke-2);
}

.fluent-table th {
    background: var(--fluent-neutral-background-3);
    font-weight: var(--fluent-font-weight-semibold);
    color: var(--fluent-neutral-foreground-1);
    font-size: var(--fluent-font-size-200);
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.fluent-table tbody tr {
    transition: background var(--fluent-duration-fast) var(--fluent-easing-ease);
}

.fluent-table tbody tr:hover {
    background: var(--fluent-neutral-background-subtle);
}

.fluent-table th.sortable {
    cursor: pointer;
    user-select: none;
}

.fluent-table th.sortable:hover {
    background: var(--fluent-neutral-background-4);
}

/* Fluent Stats Card */
.fluent-stat-card {
    display: flex;
    align-items: center;
    gap: var(--fluent-space-m);
    padding: var(--fluent-space-l);
    background: var(--fluent-neutral-background-1);
    border: 1px solid var(--fluent-neutral-stroke-2);
    border-radius: var(--fluent-radius-large);
    transition: all var(--fluent-duration-normal) var(--fluent-easing-ease);
}

.fluent-stat-card:hover {
    box-shadow: var(--fluent-shadow-8);
    transform: translateY(-2px);
}

.fluent-stat-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--fluent-radius-medium);
    color: white;
}

.fluent-stat-icon.primary { background: var(--fluent-brand-primary); }
.fluent-stat-icon.success { background: var(--fluent-success); }
.fluent-stat-icon.warning { background: var(--fluent-warning); }
.fluent-stat-icon.danger { background: var(--fluent-danger); }
.fluent-stat-icon.purple { background: var(--fluent-brand-secondary); }

.fluent-stat-content {
    display: flex;
    flex-direction: column;
}

.fluent-stat-value {
    font-size: var(--fluent-font-size-600);
    font-weight: var(--fluent-font-weight-bold);
    color: var(--fluent-neutral-foreground-1);
    line-height: 1.2;
}

.fluent-stat-label {
    font-size: var(--fluent-font-size-200);
    color: var(--fluent-neutral-foreground-3);
    margin-top: var(--fluent-space-xxs);
}

/* Fluent Filter Bar */
.fluent-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: var(--fluent-space-m);
    padding: var(--fluent-space-l);
    background: var(--fluent-neutral-background-1);
    border: 1px solid var(--fluent-neutral-stroke-2);
    border-radius: var(--fluent-radius-large);
    margin-bottom: var(--fluent-space-l);
}

.fluent-filter-group {
    display: flex;
    flex-direction: column;
    gap: var(--fluent-space-xxs);
    min-width: 160px;
    flex: 1;
}

.fluent-filter-label {
    font-size: var(--fluent-font-size-100);
    font-weight: var(--fluent-font-weight-semibold);
    color: var(--fluent-neutral-foreground-2);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Fluent Page Header */
.fluent-page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--fluent-space-m);
    padding: var(--fluent-space-l) var(--fluent-space-xl);
    background: var(--fluent-neutral-background-1);
    border: 1px solid var(--fluent-neutral-stroke-2);
    border-radius: var(--fluent-radius-large);
    margin-bottom: var(--fluent-space-l);
}

.fluent-page-title {
    margin: 0;
    font-size: var(--fluent-font-size-600);
    font-weight: var(--fluent-font-weight-semibold);
    color: var(--fluent-neutral-foreground-1);
}

.fluent-page-subtitle {
    margin: var(--fluent-space-xxs) 0 0 0;
    font-size: var(--fluent-font-size-300);
    color: var(--fluent-neutral-foreground-3);
}

/* Fluent Action Bar */
.fluent-action-bar {
    display: flex;
    align-items: center;
    gap: var(--fluent-space-xs);
}

/* Fluent Empty State */
.fluent-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--fluent-space-xxxl);
    text-align: center;
}

.fluent-empty-icon {
    font-size: 64px;
    color: var(--fluent-neutral-foreground-disabled);
    margin-bottom: var(--fluent-space-m);
}

.fluent-empty-title {
    font-size: var(--fluent-font-size-500);
    font-weight: var(--fluent-font-weight-semibold);
    color: var(--fluent-neutral-foreground-2);
    margin: 0 0 var(--fluent-space-xs) 0;
}

.fluent-empty-text {
    font-size: var(--fluent-font-size-300);
    color: var(--fluent-neutral-foreground-3);
    margin: 0 0 var(--fluent-space-l) 0;
}

/* Loading State */
.fluent-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--fluent-space-xxxl);
}

.fluent-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--fluent-neutral-stroke-2);
    border-top-color: var(--fluent-brand-primary);
    border-radius: 50%;
    animation: fluent-spin 0.8s linear infinite;
}

@keyframes fluent-spin {
    to { transform: rotate(360deg); }
}

/* Responsive */
@media (max-width: 768px) {
    .fluent-page-header {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .fluent-filter-bar {
        flex-direction: column;
    }
    
    .fluent-filter-group {
        width: 100%;
    }
}
