/* Dashboard Layout - Comprehensive UI Design */

/* Root Layout */
.dashboard-layout {
  height: 100vh;
  width: 100vw;
  display: grid;
  grid-template-rows: 60px auto 1fr;
  grid-template-areas: 
    "navbar"
    "timeline"
    "main";
  overflow: hidden;
  background: #F8FAFC;
  font-family: 'Bio Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  position: relative;
}

/* Navigation Bar */
.dashboard-navbar {
  grid-area: navbar;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 24px;
  background: #FFFFFF;
  border-bottom: 1px solid #E2E8F0;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  z-index: 100;
}

.navbar-brand {
  color: #E12424;
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: -0.025em;
}

.navbar-logout-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: rgba(225, 36, 36, 0.1);
  border: 2px solid #E12424;
  border-radius: 8px;
  color: #E12424;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.navbar-logout-btn:hover {
  background: #E12424;
  color: #FFFFFF;
  transform: translateY(-1px);
}

.navbar-logout-btn:active {
  transform: translateY(0);
}

/* Timeline Section */
.dashboard-timeline {
  grid-area: timeline;
  background: #FFFFFF;
  border-bottom: 1px solid #E2E8F0;
  padding: 12px 24px;
  min-height: 120px;
  max-height: 160px;
  overflow: visible;
  position: relative;
  z-index: 50;
}

/* Main Content Area */
.dashboard-main {
  grid-area: main;
  padding: 20px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.floor-plan-card {
  flex: 1;
  background: #FFFFFF;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  border: 1px solid #E2E8F0;
  overflow: hidden;
  position: relative;
  min-height: 0; /* Important for flex child */
}

/* Responsive Design */
@media (max-width: 1024px) {
  .dashboard-main {
    padding: 16px;
  }
  
  .dashboard-timeline {
    padding: 8px 16px;
    min-height: 100px;
    max-height: 140px;
  }
  
  .navbar-brand {
    font-size: 1.5rem;
  }
}

@media (max-width: 768px) {
  .dashboard-layout {
    grid-template-rows: 56px auto 1fr;
  }
  
  .dashboard-navbar {
    padding: 0 16px;
  }
  
  .navbar-brand {
    font-size: 1.25rem;
  }
  
  .navbar-logout-btn {
    padding: 6px 12px;
    font-size: 13px;
  }
  
  .navbar-logout-btn span {
    display: none;
  }
  
  .dashboard-main {
    padding: 12px;
  }
  
  .dashboard-timeline {
    padding: 6px 12px;
    min-height: 90px;
    max-height: 120px;
  }
}

@media (max-width: 480px) {
  .dashboard-layout {
    grid-template-rows: 52px auto 1fr;
  }
  
  .dashboard-navbar {
    padding: 0 12px;
  }
  
  .dashboard-main {
    padding: 8px;
  }
  
  .floor-plan-card {
    border-radius: 12px;
  }
}

/* Loading States */
.dashboard-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: #64748B;
  font-size: 16px;
}

.dashboard-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: #DC2626;
  text-align: center;
  padding: 20px;
}

.dashboard-error h3 {
  margin: 0 0 8px 0;
  font-size: 18px;
  font-weight: 600;
}

.dashboard-error p {
  margin: 0;
  color: #64748B;
  font-size: 14px;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .navbar-logout-btn,
  .floor-plan-card {
    transition: none;
  }
}

/* High contrast mode */
@media (prefers-contrast: high) {
  .dashboard-navbar {
    border-bottom: 2px solid #000000;
  }
  
  .navbar-logout-btn {
    border-width: 3px;
  }
  
  .floor-plan-card {
    border: 2px solid #000000;
  }
}