@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5;transform:translate(-50%,-50%) scale(1.3)}}@keyframes spin{to{transform:rotate(1turn)}}.dashboard-container{min-height:100vh;background:var(--frost-page-bg);color:#1d1d1f;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dark .dashboard-container{color:#f5f5f7}.dashboard-header{background:var(--frost-card-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--frost-card-border);position:-webkit-sticky;position:sticky;top:0;z-index:10}.dashboard-header-content{max-width:1400px;margin:0 auto;padding:1.5rem 2rem;display:flex;align-items:center;justify-content:space-between}.dashboard-title{font-size:32px;font-weight:700;color:#1d1d1f;margin:0;letter-spacing:-.03em}.dark .dashboard-title{color:#f5f5f7}.dashboard-subtitle{font-size:15px;color:#86868b;margin-top:.25rem;font-weight:400;letter-spacing:-.01em}.export-button{height:44px;padding:0 1rem;background:transparent;border:1px solid rgba(0,0,0,.06);color:#86868b;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-base)}.export-button:hover{color:#1d1d1f;background:var(--frost-hover-bg);border-color:rgba(0,0,0,.1)}.dark .export-button{border-color:rgba(255,255,255,.08);color:#86868b}.dark .export-button:hover{color:#f5f5f7;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}.primary-cta{height:44px;padding:0 1.25rem;border-radius:6px;background:linear-gradient(135deg,#007AFF,#0055D4);color:#ffffff;font-size:14px;font-weight:600;border:none;cursor:pointer;box-shadow:0 2px 8px rgba(0,122,255,.25);transition:all var(--transition-base)}.primary-cta:hover{box-shadow:0 4px 12px rgba(0,122,255,.35);transform:translateY(-1px)}.dashboard-main{max-width:1400px;margin:0 auto;padding:2rem}.glass-card{background:var(--frost-card-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--frost-card-border);border-radius:8px;box-shadow:var(--frost-card-shadow);transition:border-color var(--transition-base),transform var(--transition-base),box-shadow var(--transition-base);animation:fadeSlideIn .3s ease forwards}.glass-card:hover{border-color:rgba(0,0,0,.1);transform:translateY(-1px)}.dark .glass-card:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px;margin-bottom:2rem}.kpi-card{background:var(--frost-card-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--frost-card-border);border-radius:8px;box-shadow:var(--frost-card-shadow);padding:1.25rem;transition:border-color var(--transition-base),transform var(--transition-base),box-shadow var(--transition-base);position:relative;overflow:hidden;animation:fadeSlideIn .3s ease forwards}.kpi-card:hover{border-color:rgba(0,0,0,.1);transform:translateY(-1px)}.dark .kpi-card:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}.kpi-header{justify-content:space-between;margin-bottom:.75rem}.kpi-header,.kpi-icon{display:flex;align-items:center}.kpi-icon{font-size:1.25rem;padding:.375rem;border-radius:6px;justify-content:center}.kpi-icon.blue{background:rgba(0,122,255,.1);color:#007AFF}.kpi-icon.green{background:rgba(52,199,89,.1);color:#34C759}.kpi-icon.purple{background:rgba(88,86,214,.1);color:#5856D6}.kpi-icon.orange{background:rgba(255,159,10,.1);color:#FF9F0A}.dark .kpi-icon.blue{background:rgba(0,122,255,.15);color:#409CFF}.dark .kpi-icon.green{background:rgba(52,199,89,.15);color:#30DB5B}.dark .kpi-icon.purple{background:rgba(88,86,214,.15);color:#7D7AFF}.dark .kpi-icon.orange{background:rgba(255,159,10,.15);color:#FFB340}.kpi-change{font-size:13px;font-weight:500;display:flex;align-items:center;gap:.25rem}.kpi-change.positive{color:#34C759}.kpi-change.negative{color:#FF3B30}.dark .kpi-change.positive{color:#30DB5B}.dark .kpi-change.negative{color:#FF6961}.kpi-title{font-size:11px;font-weight:550;color:#86868b;margin-bottom:.375rem;text-transform:uppercase;letter-spacing:.05em}.dark .kpi-title{color:rgba(255,255,255,.72)}.kpi-value{font-size:26px;font-weight:700;color:#1d1d1f;letter-spacing:-.03em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dark .kpi-value{color:#f5f5f7}.chart-card{background:var(--frost-card-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--frost-card-border);border-radius:8px;box-shadow:var(--frost-card-shadow);padding:1.5rem;animation:fadeSlideIn .3s ease forwards}.chart-title{font-size:15px;font-weight:600;color:#1d1d1f;margin-bottom:1.5rem;letter-spacing:-.01em}.dark .chart-title{color:#f5f5f7}.chart-bars{height:16rem;display:flex;align-items:flex-end;justify-content:space-between;gap:.5rem}.chart-bar-container{flex:1 1}.chart-bar-container,.chart-bar-wrapper{display:flex;flex-direction:column;align-items:center}.chart-bar-wrapper{width:100%;gap:.5rem}.chart-value{font-size:11px;color:#86868b;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chart-bar{width:100%;background:linear-gradient(180deg,#409CFF,#007AFF);border-radius:4px 4px 0 0;transition:all var(--transition-base);position:relative;overflow:hidden}.chart-bar:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:rgba(255,255,255,.3)}.chart-bar:hover{background:linear-gradient(180deg,#5AB0FF,#0A84FF)}.dark .chart-bar{background:linear-gradient(180deg,#409CFF,#0A84FF)}.dark .chart-bar:hover{background:linear-gradient(180deg,#66B8FF,#409CFF)}.chart-label{font-size:11px;color:#aeaeb2;margin-top:.5rem;letter-spacing:-.01em}.status-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid rgba(0,0,0,.06)}.dark .status-row{border-bottom-color:rgba(255,255,255,.08)}.status-row:last-child{border-bottom:none}.status-row-left{display:flex;align-items:center;gap:.75rem}.status-indicator{width:.5rem;height:.5rem;border-radius:50%;position:relative}.status-indicator:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;border-radius:50%;animation:pulse 2s ease-in-out infinite}.status-indicator.green{background:#34C759}.status-indicator.orange,.status-indicator.yellow{background:#FF9F0A}.status-indicator.red{background:#FF3B30}.status-indicator.blue{background:#007AFF}.status-indicator.gray{background:#aeaeb2}.dark .status-indicator.green{background:#30DB5B}.dark .status-indicator.orange,.dark .status-indicator.yellow{background:#FFB340}.dark .status-indicator.red{background:#FF6961}.dark .status-indicator.blue{background:#409CFF}.dark .status-indicator.gray{background:#636366}.status-label{font-size:14px;color:#86868b}.status-count{font-weight:600;color:#1d1d1f;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dark .status-count{color:#f5f5f7}.status-divider{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(0,0,0,.06)}.dark .status-divider{border-top-color:rgba(255,255,255,.08)}.status-stat{display:flex;justify-content:space-between;font-size:14px;margin-top:.5rem}.status-stat-label{color:#aeaeb2}.status-stat-value{font-weight:600;color:#1d1d1f;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dark .status-stat-value{color:#f5f5f7}.bookings-list{display:flex;flex-direction:column}.booking-item{padding:1rem 0;border-bottom:1px solid rgba(0,0,0,.06);position:relative}.dark .booking-item{border-bottom-color:rgba(255,255,255,.08)}.booking-item:last-child{border-bottom:none}.booking-item:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,0,0,.04),transparent)}.dark .booking-item:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.04),transparent)}.booking-content{display:flex;justify-content:space-between;align-items:flex-start}.booking-left h4{font-weight:600;color:#1d1d1f;margin-bottom:.25rem;font-size:14px;letter-spacing:-.01em}.dark .booking-left h4{color:#f5f5f7}.booking-details{font-size:13px;color:#86868b;margin-bottom:.125rem}.booking-dates{font-size:13px;color:#aeaeb2}.booking-right{text-align:right}.booking-amount{font-weight:600;color:#1d1d1f;margin-bottom:.5rem;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dark .booking-amount{color:#f5f5f7}.booking-status{font-size:11px;padding:2px 10px;border-radius:9999px;font-weight:500;display:inline-block}.booking-status.confirmed{background:var(--status-confirmed-bg);color:var(--status-confirmed-text)}.booking-status.pending{background:var(--status-pending-bg);color:var(--status-pending-text)}.booking-status.checked-in{background:var(--status-checked-in-bg);color:var(--status-checked-in-text)}.booking-status.default{background:rgba(174,174,178,.1);color:#aeaeb2}.dark .booking-status.default{background:rgba(99,99,102,.2);color:#636366}.performance-table{width:100%;border-collapse:collapse}.performance-table thead tr{text-align:left;font-size:11px;font-weight:550;color:#86868b;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(0,0,0,.06)}.dark .performance-table thead tr{border-bottom-color:rgba(255,255,255,.08)}.performance-table thead th{padding-bottom:.75rem;font-weight:550}.performance-table thead th:nth-child(2),.performance-table thead th:nth-child(3){text-align:right}.performance-table tbody{font-size:14px}.performance-table tbody tr{border-bottom:1px solid rgba(0,0,0,.06)}.dark .performance-table tbody tr{border-bottom-color:rgba(255,255,255,.08)}.performance-table tbody tr:last-child{border-bottom:none}.performance-table tbody td{padding:.75rem 0}.performance-table tbody td:first-child{color:#1d1d1f;font-weight:500}.dark .performance-table tbody td:first-child{color:#f5f5f7}.performance-table tbody td:nth-child(2){text-align:right;font-weight:600;color:#1d1d1f;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.dark .performance-table tbody td:nth-child(2){color:#f5f5f7}.performance-table tbody td:nth-child(3){text-align:right;color:#86868b}.warning-banner{background:rgba(255,159,10,.08);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,159,10,.15);border-radius:8px;box-shadow:var(--frost-card-shadow);padding:1rem 1.25rem;animation:fadeSlideIn .3s ease forwards}.dark .warning-banner{background:rgba(255,159,10,.1);border-color:rgba(255,159,10,.2)}.loading-container{min-height:100vh;background:var(--frost-page-bg);display:flex;align-items:center;justify-content:center}.loading-content{text-align:center}.loading-spinner{width:2rem;height:2rem;border:2px solid rgba(0,0,0,.08);border-top-color:#007aff;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto}.dark .loading-spinner{border-color:#409CFF rgba(255,255,255,.1) rgba(255,255,255,.1)}.loading-text{margin-top:1rem;color:#86868b;font-size:14px}.error-container{min-height:100vh;background:var(--frost-page-bg);display:flex;align-items:center;justify-content:center}.error-content{text-align:center}.error-message{color:#FF3B30;font-size:15px;font-weight:500}.dark .error-message{color:#FF6961}.error-hint{font-size:14px;color:#aeaeb2;margin-top:.5rem}.charts-grid{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px;margin-bottom:2rem}@media (min-width:1024px){.charts-grid{grid-template-columns:repeat(2,1fr)}}.dashboard-container *,.dashboard-container :after,.dashboard-container :before{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.dark .chart-bar-day,.dark .dashboard-subtitle,.dark .export-button{color:rgba(255,255,255,.65)!important}.dark .chart-bar-label{color:rgba(255,255,255,.85)!important}.dark .status-label{color:rgba(255,255,255,.72)!important}.dark .error-hint,.dark .status-stat-label{color:rgba(255,255,255,.55)!important}.dark .booking-left h4{color:rgba(255,255,255,.92)!important}.dark .booking-dates,.dark .booking-room{color:rgba(255,255,255,.6)!important}.dark .booking-status.default{background:rgba(255,255,255,.08)!important;color:rgba(255,255,255,.65)!important}.dark .performance-table thead th{color:rgba(255,255,255,.55)!important}.dark .performance-table tbody td{color:rgba(255,255,255,.85)!important}.dark .performance-table tbody td:nth-child(2){color:rgba(255,255,255,.55)!important}.dark .warning-banner-message{color:rgba(255,255,255,.85)!important}.dark .loading-text{color:rgba(255,255,255,.55)!important}