/* Poppins Font Face Declarations */
@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-Thin.ttf') format('truetype');
  font-weight: 100;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-ThinItalic.ttf') format('truetype');
  font-weight: 100;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-ExtraLight.ttf') format('truetype');
  font-weight: 200;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-ExtraLightItalic.ttf') format('truetype');
  font-weight: 200;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-Light.ttf') format('truetype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-LightItalic.ttf') format('truetype');
  font-weight: 300;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-Italic.ttf') format('truetype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-MediumItalic.ttf') format('truetype');
  font-weight: 500;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-SemiBold.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-SemiBoldItalic.ttf') format('truetype');
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-BoldItalic.ttf') format('truetype');
  font-weight: 700;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-ExtraBold.ttf') format('truetype');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-ExtraBoldItalic.ttf') format('truetype');
  font-weight: 800;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-Black.ttf') format('truetype');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('/poppins/Poppins-BlackItalic.ttf') format('truetype');
  font-weight: 900;
  font-style: italic;
  font-display: swap;
}

:root {
  --primary-blue: #012699;
  --primary-blue-light: #1873c9;
  --primary-blue-lighter: #3481d1;
  --primary-blue-dark: #014d91;
  --secondary-blue: #6b9dd1;
  --primary-red: #B31842;
  --hover-red: #C42953;
  --button-red: #B31842;
  --button-orange: #f7962c;
  --background-gray: #fAfAfA;
  --white: #FFFFFF;
  --black: #000000;
  --dark-text: #333333;
  --medium-text: #555555;
  --lighter-text: #777777;
  --lightest-text: #999999;
  --border-color: #e0e0e0;
  --error-red: #dc3545;
  --success-green: #28a745;
  --warning-yellow: #ffc107;
  --light-blue: #b3dfff;
  --lighter-blue: #E3F2FD;
  --text-dark: #333333;
  --background-light: #FFFFFF;
  /* Standard spacing variables for consistent padding */
  --page-padding: 16px;
  --section-padding: 20px;
  --card-padding: 16px;
  --small-padding: 8px;
  --large-padding: 24px;
}
/* Global reset and mobile-first styles */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  /* Global no-select rule for the entire application */
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  -webkit-touch-callout: none; /* iOS Safari */
  -webkit-tap-highlight-color: transparent; /* Remove tap highlight */
  -webkit-user-drag: none; /* Prevent dragging */
  user-drag: none;
}
/* Allow selection only in specific components like inputs */
input, textarea, [contenteditable="true"] {
  -webkit-user-select: text;
  -moz-user-select: text;
  user-select: text;
}
body, html {
  height: 100%;
  margin: 0;
  padding: 0;
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  background-color: #FCFCFC;
  color: var(--dark-text);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  width: 100%;
  font-size: 16px; /* Base font size for mobile */
}
#root {
  height: 100%;
  width: 100%;
  overflow-x: hidden;
}
a {
  text-decoration: none;
  font-weight: 500;
  color: var(--primary-blue);
}
/* Standard page padding classes for consistency */
.page-container {
  padding: var(--page-padding);
}
.page-container-large {
  padding: var(--large-padding);
}
.page-container-section {
  padding: var(--section-padding);
}
.card-container {
  padding: var(--card-padding);
}
.no-padding {
  padding: 0;
}
/* Standard spacing utilities */
.mb-small { margin-bottom: var(--small-padding); }
.mb-medium { margin-bottom: var(--page-padding); }
.mb-large { margin-bottom: var(--large-padding); }
.mt-small { margin-top: var(--small-padding); }
.mt-medium { margin-top: var(--page-padding); }
.mt-large { margin-top: var(--large-padding); }
/* Mobile touch interactions */
button,
a,
[role="button"],
.clickable {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}
/* Add active state for touch devices */
button:active,
a:active,
[role="button"]:active,
.clickable:active {
  opacity: 0.8;
}
/* Remove outline on touch but keep it for keyboard navigation for accessibility */
button:focus:not(:focus-visible),
a:focus:not(:focus-visible),
[role="button"]:focus:not(:focus-visible),
.clickable:focus:not(:focus-visible) {
  outline: none;
}
/* Prevent text selection on interactive UI elements */
.interactive-ui,
.card-title,
.card-content,
.card-header,
.button-text,
.nav-text,
.icon-with-text,
.action-text {
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}
/* Prevent default touch behavior for custom UI elements */
.custom-slider,
.custom-dropdown,
.custom-toggle,
.custom-scrollable {
  touch-action: pan-y;
  -webkit-overflow-scrolling: touch;
}
/* Fix for iOS Safari to prevent unnecessary zooming on input focus */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="tel"],
input[type="number"],
select,
textarea {
  font-size: 16px; /* iOS won't zoom in if font size ≥ 16px */
}
/* Standard icon sizes */
.hamburger-menu, .profile-icon {
  width: 24px;
  height: 24px;
}
/* Role selection components */
.role-selection-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--page-padding);
  padding: var(--large-padding);
}
.role-option {
  border: 1px solid #e1e1e1;
  border-radius: 12px;
  padding: var(--page-padding);
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  position: relative;
  background-color: var(--white);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  height: 120px;
}
.role-option.selected {
  border: 2px solid var(--primary-blue);
}
.icon-container {
  width: 60px;
  height: 60px;
  background-color: var(--primary-blue);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.role-option p {
  font-weight: 600;
  color: var(--text-dark);
}
.check-icon {
  position: absolute;
  bottom: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  background-color: var(--primary-blue);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
}
/* Standard button styles */
.login-button {
  background-color: var(--primary-blue);
  color: var(--white);
  border: none;
  border-radius: 4px;
  padding: 12px;
  margin: var(--large-padding);
  font-weight: 600;
  cursor: pointer;
  font-size: 16px;
}
.signup-prompt {
  text-align: center;
  margin-bottom: 12px;
  color: var(--text-dark);
  font-size: 14px;
}
.signup-button {
  background-color: transparent;
  color: var(--primary-blue);
  border: 1px solid var(--primary-blue);
  border-radius: 4px;
  padding: 12px;
  margin: 0 var(--large-padding);
  font-weight: 600;
  cursor: pointer;
  font-size: 16px;
} .fcm-debug-panel-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.8);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.fcm-debug-panel {
  background: #1a1a1a;
  color: #e0e0e0;
  border-radius: 12px;
  max-width: 800px;
  max-height: 90vh;
  width: 100%;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
  font-size: 14px;
}

.fcm-debug-header {
  background: #2d2d2d;
  padding: 15px 20px;
  border-bottom: 1px solid #444;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.fcm-debug-header h3 {
  margin: 0;
  color: #4CAF50;
  font-size: 18px;
}

.close-btn {
  background: #ff4444;
  color: white;
  border: none;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  cursor: pointer;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.close-btn:hover {
  background: #ff6666;
}

.fcm-debug-content {
  padding: 20px;
  max-height: calc(90vh - 80px);
  overflow-y: auto;
}

.debug-section {
  margin-bottom: 25px;
  padding: 15px;
  background: #262626;
  border-radius: 8px;
  border-left: 4px solid #4CAF50;
}

.debug-section h4 {
  margin: 0 0 15px 0;
  color: #4CAF50;
  font-size: 16px;
}

.debug-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 20px;
  align-items: center;
}

.debug-grid span:first-child {
  font-weight: bold;
  color: #ccc;
}

.status-good {
  color: #4CAF50;
  font-weight: bold;
}

.status-bad {
  color: #f44336;
  font-weight: bold;
}

.status-warning {
  color: #ff9800;
  font-weight: bold;
}

.debug-url {
  font-family: monospace;
  font-size: 12px;
  color: #81C784;
  word-break: break-all;
}

.debug-token {
  margin-top: 15px;
  padding: 10px;
  background: #333;
  border-radius: 4px;
  border-left: 3px solid #2196F3;
}

.debug-token code {
  font-family: monospace;
  font-size: 12px;
  color: #81C784;
  word-break: break-all;
}

.debug-error {
  margin-top: 15px;
  padding: 10px;
  background: #2d1b1b;
  border-radius: 4px;
  border-left: 3px solid #f44336;
}

.debug-error pre {
  margin: 5px 0 0 0;
  font-size: 11px;
  color: #ffcdd2;
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 200px;
  overflow-y: auto;
}

.debug-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.debug-actions button {
  padding: 8px 16px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  transition: all 0.2s;
}

.debug-actions button:not(.danger-btn) {
  background: #4CAF50;
  color: white;
}

.debug-actions button:not(.danger-btn):hover {
  background: #45a049;
}

.debug-actions button:disabled {
  background: #666;
  cursor: not-allowed;
}

.danger-btn {
  background: #f44336 !important;
  color: white !important;
}

.danger-btn:hover {
  background: #d32f2f !important;
}

.debug-result {
  margin-top: 15px;
  padding: 10px;
  background: #2d2d2d;
  border-radius: 4px;
  border-left: 3px solid #2196F3;
  font-family: monospace;
  font-size: 13px;
}

/* Mobile responsiveness */
@media (max-width: 768px) {
  .fcm-debug-panel-overlay {
    padding: 10px;
  }
  
  .fcm-debug-panel {
    max-height: 95vh;
  }
  
  .debug-grid {
    grid-template-columns: 1fr;
    gap: 5px;
  }
  
  .debug-actions {
    flex-direction: column;
  }
  
  .debug-actions button {
    width: 100%;
  }
} .app-container {
  --header-height: 80px;
  --bottom-nav-height: 60px;
  max-width: 414px;
  width: 100%;
  height: 100vh;
  height: -webkit-fill-available;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  overflow:hidden;
  position: relative;
  -webkit-tap-highlight-color: transparent; /* Prevents flash on tap on iOS */
}
.app-container.has-bottom-nav .content-container {
  /* This will be dynamically calculated in JS */
}
.top-bar {
  background-color: var(--primary-blue);
  background-size: cover;
  height: auto;
  min-height: var(--header-height);
  border-bottom-right-radius: 40px;
  color: var(--white);
  display: flex;
  flex-direction: column;
  padding-top: calc(var(--section-padding) + env(safe-area-inset-top, 0px));
  padding-right: var(--section-padding);
  padding-left: var(--section-padding);
  transition: min-height 0.3s ease, padding 0.3s ease;
  position: sticky;
  top: 0;
  z-index: 100;
  flex-shrink: 0; /* Prevent header from shrinking */
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  user-select: none; /* Prevent text selection */
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}
/* 1) Full-size plane background */
.bg-plane {
  position: absolute;
  top: -40px; left: -125px; right: 0; bottom: 0;
  background: url('/flying-plane-hd.png')  no-repeat;
  opacity: 0.6;
  pointer-events: none;
  z-index: 1;
}
/* 2) Cloud #1 */
.overlay-1 {
  position: absolute;
  top: 20px; left: 20px;
  width: 50px; height: 50px;
  background: url('/cloud-1.png') center/contain no-repeat;
  opacity: 0.5;
  pointer-events: none;
  z-index: 2;
}
/* 3) Cloud #2 */
.overlay-2 {
  position: absolute;
  top: -56px; right: -15px;
  width: 150px; height: 200px;
  background: url('/cloud-2.png') center/contain no-repeat;
  opacity: 0.7;
  pointer-events: none;
  z-index: 2;
}

.top-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  position: relative;
  z-index: 10;
}
.left-section {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  position: relative;
}
.right-section {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-shrink: 0;
}
.back-button {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--white) !important;
  margin-right: 14px;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.back-button-placeholder {
  width: 28px;
  height: 28px;
  margin-right: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  flex-shrink: 0;
}
.menu-icon {
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.header-title {
  font-size: 18px;
  font-weight: 400;
  text-align: center;
  line-height: 1.2;
  margin: 0;
  padding: 0;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
}
.header-title.left-aligned {
  text-align: left;
  margin-left: 0;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.2px;
}
.nav-icon {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.empty-space {
  width: 24px;
  height: 24px;
}
.profile-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  cursor: pointer;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.avatar-img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
  border: 2px solid var(--white);
  pointer-events: none; /* Prevent unwanted interactions */
}
.avatar-placeholder {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: var(--white);
  opacity: 0.2;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--white);
  color: var(--white);
  pointer-events: none; /* Prevent unwanted interactions */
}
.user-greeting {
  margin-top: var(--section-padding);
  text-align: left;
  align-self: flex-start;
  width: 100%;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  position: relative;
  z-index: 10;
}

.greeting-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.greeting-text {
  flex: 1;
}

.profile-section {
  display: flex;
  align-items: center;
  gap: 12px;
}

.propeller-container {
  display: flex;
  align-items: center;
  justify-content: center;
}

.user-greeting h2 {
  font-size: 24px;
  font-weight: 600;
  margin-bottom: 5px;
  margin: 0 0 5px 0;
}
.user-greeting p {
  font-size: 14px;
  opacity: 0.8;
  margin: 0;
}
.content-container {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  position: relative;
  /* height is dynamically calculated in JS */
  min-height: 0; /* Allow content to shrink if needed */
  z-index: 10; /* Lower z-index than bottom nav */
  -webkit-overflow-scrolling: touch; /* For smooth scrolling on iOS */
  transition: height 0.2s ease; /* Smooth transition when height changes */
  margin-bottom: 60px; /* Space for bottom nav */
  /* Add padding to prevent content from being hidden under the bottom navigation */
  padding-bottom: calc(var(--section-padding) + env(safe-area-inset-bottom, 0px));
}
/* Add a new utility class for scrollable sections throughout the app */
.scrollable-section {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  flex: 1;
  display: flex;
  flex-direction: column;
}
/* Bottom Navigation - Simplified Design */
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  max-width: 414px;
  width: 100%;
  height: calc(60px + env(safe-area-inset-bottom, 0px));
  background: var(--primary-blue);
  display: flex;
  align-items: center;
  z-index: 1000;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  -webkit-tap-highlight-color: transparent;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.footer-button {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: none;
  background: transparent;
  color: var(--white);
  cursor: pointer;
  text-decoration: none;
  gap: 4px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  padding: 8px 16px;
}

.footer-button svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: var(--white);
  stroke-width: 1.5 ;
  flex-shrink: 0;
}

.footer-button span {
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  color: var(--white);
}

.footer-button.active {
  position: relative;
}

.footer-button.active::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 24px;
  height: 2px;
  background-color: var(--white);
}

/* Remove old home button styles */
.home-btn-container,
.home-btn,
.home-btn img {
  display: none;
}

/* Remove all the complex styling */
.home-btn-bg-top,
.home-btn-inner,
.footer-side-btn {
  display: none;
}

/* Legacy nav-item styles removed - using new footer-button design */

/* Notification badge styles */
.notification-icon-container {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.notification-badge {
  position: absolute;
  top: -6px;
  right: -6px;
  background-color: var(--error-red);
  color: var(--white);
  border-radius: 10px;
  min-width: 18px;
  height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  padding: 2px 5px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  z-index: 1;
} .role-selector-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1005;
}
.role-selector-dialog {
  background-color: white;
  border-radius: 8px;
  padding: var(--large-padding);
  width: 90%;
  max-width: 400px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.role-selector-dialog h2 {
  text-align: center;
  margin-top: 0;
  margin-bottom: var(--large-padding);
  color: #333;
  font-size: 1.5rem;
}
.role-selection-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: var(--large-padding);
}
.role-option {
  display: flex;
  align-items: center;
  padding: 12px var(--page-padding);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  border: 2px solid #eaeaea;
  position: relative;
}
.role-option:hover {
  background-color: #f8f9fa;
}
.role-option.selected {
  border-color: #0c3b94;
  background-color: rgba(12, 59, 148, 0.05);
}
.icon-container {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: var(--primary-blue, #012699);
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1.2rem;
}
.role-option p {
  margin: 0;
  font-size: 1rem;
  font-weight: 500;
  flex-grow: 1;
}
.check-icon {
  color: #0c3b94;
  font-size: 1rem;
}
.role-selector-actions {
  display: flex;
  justify-content: space-between;
  gap: var(--page-padding);
}
.cancel-button,
.confirm-button {
  padding: 12px 20px;
  border-radius: 4px;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  flex: 1;
  transition: background-color 0.2s ease;
}
.cancel-button {
  background-color: #f1f3f5;
  color: #333;
  border: none;
}
.cancel-button:hover {
  background-color: #e9ecef;
}
.confirm-button {
  background-color: #0c3b94;
  color: white;
  border: none;
}
.confirm-button:hover {
  background-color: #0a2e73;
} .profile-drawer-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 900;
}
.profile-drawer-overlay.open {
  opacity: 1;
  visibility: visible;
}
.profile-drawer {
  position: fixed;
  top: 0;
  right: -300px;
  bottom: 0;
  width: 280px;
  background-color: #fff;
  box-shadow: -2px 0 5px rgba(0, 0, 0, 0.1);
  transition: right 0.3s ease;
  z-index: 1001;
  display: flex;
  flex-direction: column;
}
.profile-drawer.open {
  right: 0;
}
.profile-drawer-header {
  padding: var(--large-padding);
  background-color: #0c3b94;
  color: white;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.profile-drawer-avatar {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  margin-bottom: 12px;
  overflow: hidden;
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
}
.profile-avatar-img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.profile-avatar-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: rgba(255, 255, 255, 0.2);
  color: #0c3b94;
  font-size: 2rem;
  font-weight: bold;
}
.profile-drawer-name {
  margin: 0 0 4px;
  font-size: 1.2rem;
  text-align: center;
}
.profile-drawer-email {
  margin: 0;
  font-size: 0.9rem;
  opacity: 0.8;
  text-align: center;
}
.profile-drawer-role {
  margin: var(--small-padding) 0 0;
  font-size: 0.9rem;
  background-color: rgba(255, 255, 255, 0.2);
  padding: 4px 12px;
  border-radius: 16px;
  display: inline-block;
}
.profile-drawer-content {
  flex-grow: 1;
  padding: var(--page-padding) 0;
}
.profile-drawer-menu-item {
  padding: 12px var(--large-padding);
  display: flex;
  align-items: center;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.profile-drawer-menu-item:hover {
  background-color: #f5f5f5;
}
.profile-drawer-icon {
  margin-right: 16px;
  color: #555;
  font-size: 1.2rem;
}
.build-info {
  margin-top: auto;
  border-top: 1px solid #eee;
  padding: 12px var(--page-padding);
  text-align: center;
  cursor: default;
  background-color: #f8f8f8;
}
.build-info-text {
  font-size: 0.75rem;
  color: #777;
  display: block;
  width: 100%;
}
.profile-drawer-container {
  z-index: 2000;
} .timezone-selector {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 1rem;
  background-color: #f9f9f9;
  color: #333;
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23444' d='M6 8.825L11.325 3.5 12 4.175l-6 6-6-6L.675 3.5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.timezone-selector:focus {
  outline: none;
  border-color: #4285f4;
  box-shadow: 0 0 0 2px rgba(66, 133, 244, 0.2);
}
.timezone-selector:hover {
  border-color: #bbb;
}
.timezone-selector:disabled {
  background-color: #f0f0f0;
  cursor: not-allowed;
  opacity: 0.7;
}
.timezone-selector option {
  padding: var(--small-padding);
  font-size: 0.95rem;
}
.timezone-loading {
  padding: 12px;
  color: #666;
  text-align: center;
  background-color: #f9f9f9;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 0.9rem;
}
/* Fix for Firefox which doesn't support appearance: none well */
@-moz-document url-prefix() {
  .timezone-selector {
    padding-right: 30px;
  }
} .error-message-container {
  background-color: #f8d7da;
  border: 1px solid #f5c6cb;
  color: #721c24;
  padding: 12px;
  border-radius: 4px;
  margin-bottom: 15px;
  font-size: 14px;
  position: relative;
}

.error-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.error-text {
  flex: 1;
  line-height: 1.4;
}

.error-dismiss-btn {
  background: none;
  border: none;
  color: #fffefe;
  cursor: pointer;
  padding: 4px;
  border-radius: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color 0.2s ease;
  flex-shrink: 0;
}

.error-dismiss-btn:hover {
  background-color: rgba(114, 28, 36, 0.1);
}

.error-dismiss-btn:active {
  background-color: rgba(114, 28, 36, 0.2);
}

.error-dismiss-btn svg {
  width: 16px;
  height: 16px;
} .image-upload-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  max-width: 100%;
}

.image-upload-display {
  position: relative;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid var(--border-color);
  background-color: var(--background-light);
}

.image-preview {
  position: relative;
  width: 100%;
  height: 100%;
}

.image-preview img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.image-upload-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.7);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: white;
  gap: 0.5rem;
  font-size: 0.875rem;
}

.spinner {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.image-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: var(--lighter-text);
  font-size: 0.875rem;
  text-align: center;
  gap: 0.5rem;
}

.placeholder-icon {
  font-size: 2rem;
  color: var(--lighter-text);
}

.image-upload-actions {
  display: flex;
  gap: 0.75rem;
}

.image-upload-btn {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border: none;
  border-radius: 8px;
  background-color: var(--primary-blue);
  color: white;
  font-size: 0.875rem;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.image-upload-btn:hover:not(:disabled) {
  background-color: var(--primary-blue-dark);
}

.image-upload-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.camera-btn {
  background-color: var(--primary-blue);
}

.file-btn {
  background-color: var(--secondary-blue);
}

/* Compact variant for inline usage */
.image-upload-container.compact {
  flex-direction: row;
  gap: 0.5rem;
}

.image-upload-container.compact .image-upload-display {
  width: 60px;
  height: 60px;
}

.image-upload-container.compact .image-upload-actions {
  flex-direction: column;
  gap: 0.25rem;
}

.image-upload-container.compact .image-upload-btn {
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
}

.image-upload-container.compact .placeholder-icon {
  font-size: 1.5rem;
}

/* Square variant for aircraft */
.image-upload-container.square .image-upload-display {
  border-radius: var(--border-radius);
  width: 100px;
  height: 100px;
}

.image-upload-container.square.compact .image-upload-display {
  width: 60px;
  height: 60px;
} .timezone-dialog-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: var(--section-padding);
}
.timezone-dialog {
  background: white;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  max-width: 500px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
}
.timezone-dialog h2 {
  margin: 0 0 20px 0;
  padding: var(--large-padding) 24px 0 24px;
  font-size: 1.5rem;
  color: #333;
  text-align: center;
}
.timezone-dialog-content {
  padding: 0 24px 20px 24px;
}
.timezone-dialog-content p {
  margin: 0 0 20px 0;
  color: #666;
  line-height: 1.5;
  text-align: center;
}
.timezone-dialog .form-group {
  margin-bottom: var(--section-padding);
}
.timezone-dialog .form-group label {
  display: block;
  margin-bottom: var(--small-padding);
  font-weight: 500;
  color: #333;
}
.timezone-dialog .error-message {
  display: flex;
  align-items: center;
  gap: var(--small-padding);
  background-color: #fff2f0;
  border: 1px solid #ffccc7;
  color: #ff4d4f;
  padding: 12px;
  border-radius: 4px;
  margin-top: var(--page-padding);
  font-size: 0.9rem;
}
.timezone-dialog-actions {
  display: flex;
  gap: 12px;
  padding: var(--section-padding) 24px 24px 24px;
  border-top: 1px solid #f0f0f0;
}
.timezone-dialog-actions button {
  flex: 1;
  padding: 12px var(--page-padding);
  border: none;
  border-radius: 4px;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--small-padding);
}
.timezone-dialog-actions .save-button {
  background-color: #1890ff;
  color: white;
}
.timezone-dialog-actions .save-button:hover:not(:disabled) {
  background-color: #40a9ff;
}
.timezone-dialog-actions .save-button:disabled {
  background-color: #d9d9d9;
  color: #999;
  cursor: not-allowed;
}
.timezone-dialog-actions .cancel-button {
  background-color: #f5f5f5;
  color: #666;
  border: 1px solid #d9d9d9;
}
.timezone-dialog-actions .cancel-button:hover:not(:disabled) {
  background-color: #e6f7ff;
  border-color: #91d5ff;
  color: #1890ff;
}
.timezone-dialog-actions .cancel-button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
/* Mobile responsiveness */
 .role-selection-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--page-padding);
  padding: var(--large-padding);
}
.role-option {
  border: 1px solid #e1e1e1;
  border-radius: 12px;
  padding: var(--page-padding);
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  position: relative;
  background-color: var(--white);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  height: 120px;
}
.role-option.selected {
  border: 2px solid var(--primary-blue);
}
.icon-container {
  width: 60px;
  height: 60px;
  background-color: var(--primary-blue);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.role-option p {
  font-weight: 600;
  color: var(--text-dark);
}
.check-icon {
  position: absolute;
  bottom: 8px;
  right: 8px;
  width: 24px;
  height: 24px;
  background-color: var(--primary-blue);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
}
.login-button {
  background-color: var(--primary-blue);
  color: var(--white);
  border: none;
  border-radius: 4px;
  padding: 12px;
  margin: var(--large-padding);
  font-weight: 600;
  cursor: pointer;
  font-size: 16px;
  width: calc(100% - 48px);
}
.signup-prompt {
  text-align: center;
  margin-bottom: 12px;
  color: var(--text-dark);
  font-size: 14px;
}
.signup-button {
  background-color: transparent;
  color: var(--primary-blue);
  border: 1px solid var(--primary-blue);
  border-radius: 4px;
  padding: 12px;
  margin: 0 24px;
  font-weight: 600;
  cursor: pointer;
  font-size: 16px;
  width: calc(100% - 48px);
} .email-password-form {
  display: flex;
  flex-direction: column;
  gap: var(--page-padding);
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: var(--small-padding);
}

.form-label {
  font-size: 14px;
  font-weight: 500;
  color: var(--dark-text);
  margin: 0;
}
.form-group label {
  margin: 0 !important;
}

.form-input {
  width: 100%;
  padding: 12px var(--page-padding);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  background-color: var(--white);
  font-size: 16px;
  color: var(--dark-text);
  transition: border-color 0.2s ease;
  outline: none;
  font-family: 'Poppins', sans-serif;
}

.form-input:focus {
  border-color: var(--primary-blue);
}

.form-input:disabled {
  background-color: var(--background-gray);
  color: var(--lighter-text);
  cursor: not-allowed;
}

.password-input-container {
  position: relative;
}

.password-toggle-btn {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  color: var(--lighter-text);
  padding: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease;
}

.password-toggle-btn:hover {
  color: var(--medium-text);
}

.form-options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 14px;
}

.remember-me-container {
  display: flex;
  align-items: center;
  gap: var(--small-padding);
}

.remember-me-checkbox {
  width: 16px;
  height: 16px;
  accent-color: var(--primary-blue);
}

.remember-me-label {
  color: var(--medium-text);
  cursor: pointer;
  margin: 0;
}

.forgot-password-btn {
  background: none;
  border: none;
  color: var(--primary-blue);
  cursor: pointer;
  font-size: 14px;
  transition: color 0.2s ease;
  padding: 0;
}

.forgot-password-btn:hover {
  color: var(--primary-blue-light);
}

.submit-btn {
  width: 100%;
  padding: 14px;
  background-color: var(--primary-blue);
  color: var(--white);
  border: none;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s ease;
  font-family: 'Poppins', sans-serif;
}

.submit-btn:hover:not(:disabled) {
  background-color: var(--primary-blue-light);
}

.submit-btn:disabled {
  background-color: var(--lighter-text);
  cursor: not-allowed;
}

.error-container {
  background-color: #f8d7da;
  border: 1px solid #f5c6cb;
  color: #721c24;
  padding: 12px;
  border-radius: 8px;
  font-size: 14px;
  text-align: center;
}

.success-container {
  background-color: #d4edda;
  border: 1px solid #c3e6cb;
  color: #155724;
  padding: var(--page-padding);
  border-radius: 8px;
  text-align: center;
}

.success-message {
  color: #155724;
  margin-bottom: var(--page-padding);
  font-size: 14px;
}

.back-to-login-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--small-padding);
  background: none;
  border: none;
  color: var(--primary-blue);
  cursor: pointer;
  font-size: 14px;
  transition: color 0.2s ease;
  padding: 0;
}

.back-to-login-btn:hover {
  color: var(--primary-blue-light);
} .social-login-buttons {
  display: flex;
  flex-direction: column;
  gap: var(--page-padding);
}

.google-login-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 12px var(--page-padding);
  background-color: var(--white);
  border: 1px solid var(--border-color);
  border-radius: 8px;
  font-size: 16px;
  font-weight: 500;
  color: var(--dark-text);
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
  font-family: 'Poppins', sans-serif;
}

.google-login-btn:hover {
  background-color: var(--background-gray);
  border-color: var(--primary-blue);
}

.google-login-btn:disabled {
  background-color: var(--background-gray);
  color: var(--lighter-text);
  cursor: not-allowed;
  border-color: var(--border-color);
}

.google-icon {
  flex-shrink: 0;
  color: #4285f4;
} .login-page {
  min-height: 100vh;
  min-height: -webkit-fill-available;
  background-color: var(--background-gray);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.login-header {
  padding: var(--section-padding);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background-color: var(--background-gray);
  position: sticky;
  top: 0;
  z-index: 10;
}

.login-back-btn {
  background: none;
  border: none;
  color: var(--primary-blue);
  padding: var(--small-padding);
  cursor: pointer;
  transition: color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.login-back-btn:hover {
  color: var(--primary-blue-light);
}

.login-content {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--section-padding);
  padding-top: 0;
}

.login-container {
  width: 100%;
  max-width: 400px;
}

.login-card {
  background-color: var(--white);
  border-radius: 12px;
  padding: var(--large-padding);
  border: 1px solid var(--border-color);
}

.login-logo-container {
  display: flex;
  justify-content: center;
  overflow: visible;
  height:100px;
  margin-bottom: 0em;
}

.logo-image {
  position:relative;
  top: -40px;
}

.login-title {
  font-size: 24px;
  font-weight: 600;
  color: var(--dark-text);
  text-align: center;
  margin: 0 0 .5em 0;
}

.session-expired-message {
  margin-bottom: var(--large-padding);
  padding: var(--page-padding);
  background-color: #f8d7da;
  border: 1px solid #f5c6cb;
  color: #721c24;
  border-radius: 8px;
  font-size: 14px;
  text-align: center;
}

.social-login-section {
  margin-bottom: var(--large-padding);
}

.divider {
  position: relative;
  margin: var(--large-padding) 0;
}

.divider::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
  background-color: var(--border-color);
}

.divider-text {
  background-color: var(--white);
  padding: 0 var(--page-padding);
  color: var(--lighter-text);
  font-size: 14px;
  position: relative;
  display: flex;
  justify-content: center;
}

.signup-prompt {
  margin-top: var(--large-padding);
  text-align: center;
  font-size: 14px;
}

.signup-prompt-text {
  color: var(--medium-text);
}

.signup-link-btn {
  background: none;
  border: none;
  color: var(--primary-blue);
  font-weight: 500;
  cursor: pointer;
  transition: color 0.2s ease;
  font-size: 14px;
  padding: 0;
  margin-left: 4px;
}

.signup-link-btn:hover {
  color: var(--primary-blue-light);
} .signup-page {
  min-height: 100vh;
  min-height: -webkit-fill-available;
  background-color: var(--background-gray);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.signup-content {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--section-padding);
  min-height: 100vh;
  min-height: -webkit-fill-available;
}

.signup-container {
  width: 100%;
  max-width: 400px;
  margin: auto 0;
}

/* Ensure content can scroll on very short screens */
@media (max-height: 700px) {
  .signup-content {
    align-items: flex-start;
    padding-top: var(--large-padding);
    padding-bottom: var(--large-padding);
  }
}

.signup-card {
  background-color: var(--white);
  border-radius: 12px;
  padding: var(--large-padding);
  border: 1px solid var(--border-color);
}

.signup-logo-container {
  display: flex;
  justify-content: center;
   height:100px;
  margin-bottom:0px;
}

.logo-image {
  position:relative;
  top: -40px;
}

.signup-title {
  font-size: 24px;
  font-weight: 600;
  color: var(--dark-text);
  text-align: center;
  margin: 0 0 var(--large-padding) 0;
}

.social-signup-section {
  margin-bottom: var(--large-padding);
}

.signup-divider {
  position: relative;
  margin: var(--large-padding) 0;
}

.signup-divider::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
  background-color: var(--border-color);
}

.signup-divider-text {
  background-color: var(--white);
  padding: 0 var(--page-padding);
  color: var(--lighter-text);
  font-size: 14px;
  position: relative;
  display: flex;
  justify-content: center;
}

.login-prompt {
  margin-top: var(--large-padding);
  text-align: center;
  font-size: 14px;
}

.login-prompt-text {
  color: var(--medium-text);
}

.login-link-btn {
  background: none;
  border: none;
  color: var(--primary-blue);
  font-weight: 500;
  cursor: pointer;
  transition: color 0.2s ease;
  font-size: 14px;
  padding: 0;
  margin-left: 4px;
}

.login-link-btn:hover {
  color: var(--primary-blue-light);
} /* General dashboard container styles */
.dashboard-container {
  padding: var(--section-padding);
  max-width: 800px;
  margin: 0 auto;
  width: 100%;
}
/* Action buttons styling for all dashboards */
.action-buttons-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--page-padding);
  margin-bottom: var(--section-padding);
  width: 100%;
}
/* Common dashboard layout for all user types */
.owner-dashboard,
.instructor-dashboard,
.student-dashboard {
  display: flex;
  flex-direction: column;
  gap: var(--section-padding);
  padding: 0;
  width: 100%;
}

/* FlightCard2 uses Tailwind and doesn't need CSS overrides */

/* Upcoming Training section in Student Dashboard */
.upcoming-training-section {
  border-radius: 8px;
  padding: 0;
  margin-top: var(--page-padding);
  width: 100%;
}
.upcoming-training-section h2 {
  font-size: 1.25rem;
  margin-bottom: 12px;
  color: #000000;
  font-weight: 600;
}
.training-list {
  min-height: 100px;
}
.no-training {
  font-style: italic;
  color: #6c757d;
  text-align: center;
  padding: var(--section-padding) 0;
}
.dashboard-container h2 {
  margin-bottom: var(--small-padding);
}
.dashboard-container > p {
  margin-bottom: var(--section-padding);
  color: var(--text-dark);
}
.dashboard-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--page-padding);
  width: 100%;
}
.dashboard-card {
  background-color: var(--white);
  border-radius: 12px;
  padding: var(--page-padding);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  border: 1px solid #e1e1e1;
}
.dashboard-card h3 {
  color: var(--primary-blue);
  margin-bottom: var(--small-padding);
  font-size: 18px;
}
.dashboard-card p {
  color: var(--text-dark);
  font-size: 14px;
} .install-prompt-banner {
  background: linear-gradient(45deg, #74aef0 0%, #1348bb 100%);
  border: none;
  border-radius: 12px;
  padding: var(--large-padding);
  margin: var(--page-padding) 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
  color: white;
}

/* Row 1: Icon + Title */
.install-prompt-header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.install-prompt-icon {
  font-size: 28px;
  color: white;
  flex-shrink: 0;
  opacity: 0.9;
}

.install-prompt-title {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0;
  color: white;
}

/* Row 2: Message */
.install-prompt-message-row {
  margin: 0;
}

.install-prompt-message {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.85);
  margin: 0;
  line-height: 1.4;
}

/* Row 3: Actions */
.install-prompt-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.install-prompt-action-content {
  flex: 1;
}

.install-btn {
  background-color: var(--primary-blue);
  color: white;
  border: none;
  border-radius: 8px;
  padding: 10px 20px;
  font-size: 0.9rem;
  cursor: pointer;
  font-weight: 600;
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(1, 38, 153, 0.3);
  transition: all 0.2s ease;
}

.install-btn:hover {
  background-color: var(--primary-blue-dark);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(1, 38, 153, 0.4);
}

.install-btn:disabled {
  background-color: rgba(255, 255, 255, 0.3);
  color: rgba(255, 255, 255, 0.7);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.ios-install-hint {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.85);
  display: flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  background-color: rgba(255, 255, 255, 0.1);
  padding: 6px 12px;
  border-radius: 6px;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.install-prompt-dismiss {
  background: rgba(255, 255, 255, 0.1);
  border: none;
  color: rgba(255, 255, 255, 0.8);
  font-size: 18px;
  cursor: pointer;
  padding: 6px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.2s ease;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.install-prompt-dismiss:hover {
  color: white;
  background-color: rgba(255, 255, 255, 0.2);
  transform: scale(1.05);
}

/* Responsive adjustments */
@media (max-width: 480px) {
  .install-prompt-banner {
    padding: 16px;
    gap: 10px;
    margin: 12px 0;
    border-radius: 10px;
  }
  
  .install-prompt-header {
    gap: 10px;
  }
  
  .install-prompt-icon {
    font-size: 24px;
  }
  
  .install-prompt-title {
    font-size: 1rem;
  }
  
  .install-prompt-message {
    font-size: 0.85rem;
  }
  
  .install-btn {
    padding: 8px 16px;
    font-size: 0.85rem;
  }
  
  .ios-install-hint {
    font-size: 0.75rem;
    padding: 4px 8px;
  }
} .action-icon-container {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background-color: white;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.05);
  cursor: pointer;
  transition: all 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}
.action-icon-container:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.12);
}
.action-icon-container:active {
  transform: translateY(0);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
}
/* Ensure icons are centered and properly sized */
.action-icon-container svg {
  display: block;
} .instructors-list {
  display: flex;
  flex-direction: column;
  gap: var(--page-padding);
  width: 100%;
}
.no-instructors-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 32px 0;
  text-align: center;
}
.no-instructors {
  font-size: 16px;
  font-weight: 500;
  color: #666;
  margin-bottom: var(--small-padding);
}
.no-instructors-subtext {
  font-size: 14px;
  color: #888;
}
.instructors-loading {
  display: flex;
  justify-content: center;
  padding: var(--large-padding);
  font-size: 16px;
  color: #666;
} .instructor-card {
  background-color: #ffffff;
  border-radius: 8px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  padding: 12px;
  transition: transform 0.2s, box-shadow 0.2s;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: auto;
  height: auto;
}
.instructor-card.selectable {
  cursor: pointer;
}
.instructor-card.selectable:hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.instructor-card.selected {
  border: 2px solid #2c82c9;
  padding: var(--page-padding); /* Reduced by 2px to account for the border */
  background-color: rgba(44, 130, 201, 0.05);
}

.instructor-card.solo {
  border: 1px solid #e0e0e0;
  background-color: #fefefe;
}

.instructor-card.solo .instructor-info h3 {
  color: #666;
  font-style: italic;
}

.instructor-card.solo .instructor-qualification {
  color: #888;
  font-size: 13px;
}
.selected-indicator {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 20px;
  height: 20px;
  background-color: #2c82c9;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 12px;
}
.instructor-header {
  display: flex;
  align-items: center;
  position: relative;
  margin-bottom: 0;
}
.instructor-image {
  width: 50px;
  height: 50px;
  border-radius: 3px;
  overflow: hidden;
  margin-right: 12px;
  border: 1px solid #e0e0e0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f5f5f5;
  flex-shrink: 0;
}
.instructor-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.instructor-initials {
  font-size: 18px;
  font-weight: bold;
  color: #555;
}

.instructor-silhouette {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f8f8f8;
}

.silhouette-icon {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: #ccc;
  position: relative;
}

.silhouette-icon::before {
  content: "";
  position: absolute;
  top: 3px;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #999;
}

.silhouette-icon::after {
  content: "";
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-50%);
  width: 16px;
  height: 12px;
  border-radius: 8px 8px 0 0;
  background-color: #999;
}
.instructor-info {
  flex: 1;
  min-width: 0; /* Allows content to shrink below min-content width */
}
.instructor-info h3 {
  margin: 0 0 1px 0;
  font-size: 16px;
  color: #000000;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 500;
}
.instructor-qualification {
  margin: 0;
  font-size: 14px;
  color: #777;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.instructor-details {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-top: 4px;
}
.rating-hours {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.rating {
  font-size: 13px;
  color: #f0ad4e;
  font-weight: 500;
  line-height: 1;
}
.hours {
  font-size: 13px;
  color: #555;
  line-height: 1;
}
.instructor-rate {
  display: flex;
  align-items: center;
}
.rate-value {
  font-weight: 600;
  color: #088d08;
  font-size: 14px;
}
.rate-details {
  display: flex;
  flex-direction: column;
  text-align: right;
}
.rate-item {
  font-weight: 600;
  color: #088d08;
  font-size: 13px;
  line-height: 1.3;
}
.instructor-actions {
  display: flex;
  align-items: center;
  gap: var(--small-padding);
  margin-left: auto;
}
.select-instructor-button {
  width: 100%;
  background-color: #2c82c9;
  color: white;
  border: none;
  border-radius: 4px;
  padding: var(--small-padding) 12px;
  font-size: 14px;
  font-weight: 500;
  margin-top: var(--page-padding);
  cursor: pointer;
  transition: background-color 0.2s;
}
.select-instructor-button:hover {
  background-color: #1a6eaf;
} /* FlightList.css */
/* Universal styles for all view types */
.flight-list-container {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
/* Loading and error states */
.flight-list-loading,
.flight-list-error,
.flight-list-empty {
  text-align: center;
  padding: 2rem;
  color: #666;
  font-style: italic;
}
.flight-list-error {
  color: #e74c3c;
}
/* Flight toggle (past/upcoming buttons) */
.flight-toggle {
  display: flex;
  margin-bottom: 1rem;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  background-color: #f0f0f0;
  width: 100%;
  max-width: 400px;
}
.flight-toggle button {
  flex: 1;
  padding: 0.75rem 1.5rem;
  border: none;
  background-color: transparent;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s;
}
.flight-toggle button.active {
  background-color: #3498db;
  color: white;
}
/* Month grouping */
.flight-group {
  margin-bottom: 1.5rem;
}
.flight-group .month-header {
  font-weight: 600;
  font-size: 1.1rem;
  padding-bottom: 0.5rem;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid #eee;
  color: #555;
}
/* Flight cards */
.flight-card {
  display: flex;
  padding: 1rem;
  border-radius: 8px;
  background-color: white;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  margin-bottom: 1rem;
  transition: transform 0.2s, box-shadow 0.2s;
}
.flight-card.clickable {
  cursor: pointer;
}
.flight-card.clickable:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
/* Date display */
.flight-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 60px;
  padding-right: 1rem;
  border-right: 1px solid #eee;
  margin-right: 1rem;
}
.flight-day {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1;
}
.flight-dayname {
  font-size: 0.9rem;
  color: #888;
  margin-top: 0.25rem;
}
/* Flight details */
.flight-details {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.flight-title {
  font-size: 1.1rem;
  margin: 0 0 0.25rem 0;
}
.flight-time {
  font-size: 0.9rem;
  color: #555;
  margin-bottom: 0.5rem;
}
/* Status display */
.flight-status {
  font-size: 0.8rem;
  font-weight: 500;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  background-color: #eee;
  display: inline-block;
  width: -moz-fit-content;
  width: fit-content;
}
.flight-status.pending {
  background-color: #ffeaa7;
  color: #d68910;
}
.flight-status.accepted {
  background-color: #d1f2eb;
  color: #138d75;
}
.flight-status.in-progress {
  background-color: #d6eaf8;
  color: #2e86c1;
}
.flight-status.cancelled {
  background-color: #fadbd8;
  color: #c0392b;
}
.flight-status.completed {
  background-color: #d5f5e3;
  color: #1e8449;
}
.flight-status.pending-payment {
  background-color: #f9e79f;
  color: #b7950b;
}
.flight-status.pending-debriefing {
  background-color: #ebdef0;
  color: #8e44ad;
}
.flight-status.missed {
  background-color: #e5e7e9;
  color: #566573;
}
/* Person info (instructor/student) */
.flight-person {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 100px;
  margin-left: 1rem;
  padding-left: 1rem;
  border-left: 1px solid #eee;
}
.person-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #ddd;
  margin-bottom: 0.5rem;
}
.role-text {
  font-size: 0.75rem;
  color: #888;
}
.person-name {
  font-size: 0.9rem;
  font-weight: 500;
  text-align: center;
}
/* Specific view type styles */
/* Dashboard (minimal version) */
.flight-list-dashboard .flight-card {
  padding: 0.75rem;
}
.flight-list-dashboard .flight-date {
  min-width: 50px;
}
.flight-list-dashboard .flight-day {
  font-size: 1.5rem;
}
.flight-list-dashboard .flight-title {
  font-size: 1rem;
}
.flight-list-dashboard .flight-person {
  min-width: 80px;
}
/* Minimal view */
.flight-list-minimal .flight-card {
  padding: 0.5rem;
  margin-bottom: 0.5rem;
}
.flight-list-minimal .flight-date {
  min-width: 40px;
  padding-right: 0.5rem;
  margin-right: 0.5rem;
}
.flight-list-minimal .flight-day {
  font-size: 1.2rem;
}
.flight-list-minimal .flight-title {
  font-size: 0.9rem;
}
.flight-list-minimal .flight-time {
  font-size: 0.8rem;
}
.flight-list-minimal .flight-person {
  min-width: 70px;
  margin-left: 0.5rem;
  padding-left: 0.5rem;
}
/* Responsive design */
/* Print styles */
/* Load More button */
.flight-list-load-more {
  display: flex;
  justify-content: center;
  margin-top: 1.5rem;
  padding: 1rem;
}
.load-more-button {
  background-color: #3498db;
  color: white;
  border: none;
  padding: 0.75rem 2rem;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s, transform 0.1s;
  min-width: 120px;
}
.load-more-button:hover:not(:disabled) {
  background-color: #2980b9;
  transform: translateY(-1px);
}
.load-more-button:disabled {
  background-color: #bdc3c7;
  cursor: not-allowed;
  transform: none;
}
.flight-card {
    display: flex;
    align-items: center;
    padding: 1rem;
    background-color: white;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    margin-bottom: 1rem;
    transition: transform 0.2s, box-shadow 0.2s;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

.flight-card.clickable {
    cursor: pointer;
}

.flight-card.clickable:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Flight details - now takes up more space without separate date column */
.flight-details {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0; /* Important for text overflow */
    overflow: hidden;
}

.flight-title {
    font-size: 1.1rem;
    font-weight: 500;
    color: #333;
    margin: 0 0 0.25rem 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* New date text within the card details */
.flight-date-text {
    font-size: 0.85rem;
    color: #666;
    margin-bottom: 0.25rem;
    font-weight: 500;
}

.flight-time {
    font-size: 0.9rem;
    color: #555;
    margin-bottom: 0.5rem;
    display: flex;
    align-items: center;
}

.flight-time::before {
    content: "";
    display: inline-block;
    width: 12px;
    height: 12px;
    background-color: #4caf50;
    border-radius: 50%;
    margin-right: 8px;
    flex-shrink: 0;
}

/* Status display */
.flight-status {
    font-size: 0.8rem;
    font-weight: 500;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    background-color: #eee;
    display: inline-block;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.flight-status.pending {
    background-color: #ffeaa7;
    color: #d68910;
}

.flight-status.accepted {
    background-color: #d1f2eb;
    color: #138d75;
}

.flight-status.in-progress {
    background-color: #d6eaf8;
    color: #2e86c1;
}

.flight-status.cancelled {
    background-color: #fadbd8;
    color: #c0392b;
}

.flight-status.completed {
    background-color: #d5f5e3;
    color: #1e8449;
}

.flight-status.pending-payment {
    background-color: #f9e79f;
    color: #b7950b;
}

.flight-status.paid-offline-verification {
    background-color: #fff8e1;
    color: #f57c00;
}

.flight-status.pending-debriefing {
    background-color: #ebdef0;
    color: #8e44ad;
}

.flight-status.preflight {
    background-color: #e1f5fe;
    color: #0277bd;
}

.flight-status.takeoff {
    background-color: #f3e5f5;
    color: #7b1fa2;
}

.flight-status.preparing-landing {
    background-color: #fff8e1;
    color: #f57c00;
}

.flight-status.unfinished {
    background-color: #ffebee;
    color: #d32f2f;
}

.flight-status.missed {
    background-color: #e5e7e9;
    color: #566573;
}

/* Person info (instructor/student) */
.flight-person {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 100px;
    max-width: 120px;
    margin-left: 1rem;
    padding-left: 1rem;
    border-left: 1px solid #eee;
    flex-shrink: 0;
}

.person-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: #ddd;
    margin-bottom: 0.5rem;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="gray"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>');
    background-position: center;
    background-repeat: no-repeat;
    background-size: 60%;
    flex-shrink: 0;
}

.role-text {
    font-size: 0.75rem;
    color: #888;
    text-transform: uppercase;
    margin-bottom: 0.25rem;
}

.person-name {
    font-size: 0.8rem; /* Reduced from 0.9rem to reduce truncation */
    font-weight: 500;
    text-align: center;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    line-height: 1.2; /* Better line height for smaller text */
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .flight-card {
        padding: 0.75rem;
    }
    
    .flight-title {
        font-size: 1rem;
    }
    
    .flight-date-text {
        font-size: 0.8rem;
    }
    
    .flight-person {
        min-width: 80px;
        max-width: 100px;
        margin-left: 0.75rem;
        padding-left: 0.75rem;
    }
    
    .person-name {
        font-size: 0.75rem; /* Even smaller on mobile */
    }
}

@media (max-width: 480px) {
    .flight-card {
        padding: 0.5rem;
    }
    
    .flight-title {
        font-size: 0.95rem;
    }
    
    .flight-date-text {
        font-size: 0.75rem;
    }
    
    .flight-time {
        font-size: 0.8rem;
    }
    
    .flight-person {
        min-width: 70px;
        max-width: 85px;
        margin-left: 0.5rem;
        padding-left: 0.5rem;
    }
    
    .person-name {
        font-size: 0.7rem; /* Smallest on very small screens */
    }
}.upcoming-training-container {
  width: 100%;
  overflow: hidden;
}
.month-header {
  padding: var(--small-padding);
  font-size: 110%;
  font-weight:bold;
}
.training-event-card {
  display: flex;
  align-items: center;
  padding: 12px;
  background-color: #fff;
  border-bottom: 1px solid #f0f0f0;
  transition: background-color 0.2s ease;
  border:1px solid #f0f0f055;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  margin-bottom: 5px;
}
.training-event-card.clickable {
  cursor: pointer;
}
.training-event-card.clickable:hover {
  background-color: #f0f5ff;
}
.training-event-card:last-child {
  border-bottom: none;
}
.training-event-card:hover {
  background-color: #f8faff;
}
.training-event-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 60px;
  text-align: center;
  padding: var(--small-padding);
  border-radius: 8px;
  background-color: #f8f9fa;
  margin-right: 16px;
}
.event-day {
  font-size: 24px;
  font-weight: 600;
  color: #333;
  line-height: 1.2;
}
.event-dayname {
  font-size: 14px;
  color: #666;
  text-transform: uppercase;
}
.training-event-details {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.event-title {
  font-size: 16px;
  font-weight: 500;
  color: #333;
  margin: 0 0 4px 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.event-time {
  font-size: 14px;
  color: #666;
  display: flex;
  align-items: center;
}
.event-time::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  background-color: #4caf50;
  border-radius: 50%;
  margin-right: 8px;
}
.event-status {
  font-size: 10px;
  padding: 1px 3px;
  border-radius: 2px;
  display: inline-block;
  max-width: -moz-fit-content;
  max-width: fit-content;
}
.event-status.pending {
  background-color: #fff3e0;
  color: #e65100;
}
.event-status.accepted {
  background-color: #e8f5e9;
  color: #2e7d32;
}
.training-toggle {
  display: flex;
  justify-content: center;
  margin-bottom: var(--page-padding);
  border-radius: 8px;
  overflow: hidden;
  background-color: #f5f5f5;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}
.training-toggle button {
  padding: var(--small-padding) 16px;
  border: none;
  background: none;
  cursor: pointer;
  font-weight: 500;
  transition: background-color 0.2s ease;
  min-width: 100px;
}
.training-toggle button.active {
  background-color: #2196f3;
  color: white;
}
.training-toggle button:not(.active) {
  color: #666;
}
.training-toggle button:hover:not(.active) {
  background-color: #e0e0e0;
}
.training-event-instructor {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-left: 16px;
  min-width: 70px;
}
.instructor-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #e0e0e0;
  margin-bottom: 4px;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="gray"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>');
  background-position: center;
  background-repeat: no-repeat;
  background-size: 60%;
}
.from-text {
  font-size: 11px;
  color: #999;
  text-transform: uppercase;
}
.instructor-name {
  font-size: 12px;
  color: #333;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
}
/* Loading state */
.upcoming-training-loading {
  text-align: center;
  padding: var(--section-padding);
  color: #666;
  font-style: italic;
}
/* Error state */
.upcoming-training-error {
  text-align: center;
  padding: var(--section-padding);
  color: #d32f2f;
  background-color: #ffebee;
  border-radius: 8px;
}
/* Empty state */
.upcoming-training-empty {
  text-align: center;
  padding: 40px 20px;
  color: #666;
  font-style: italic;
} .student-selector-container {
  padding: var(--page-padding);
  background-color: #ffffff;
}
.student-selector-header {
  margin-bottom: 15px;
  text-align: center;
}
.student-selector-header h2 {
  font-size: 24px;
  margin: 0 0 5px 0;
  color: #000000;
  font-weight: 600;
}
.selection-subtitle {
  font-size: 16px;
  color: #666;
  margin: 0;
}
.students-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 12px;
  width: 100%;
  margin-top: 25px;
  align-content: start;
}
.student-card {
  background-color: #ffffff;
  border-radius: 8px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  padding: 12px;
  transition: transform 0.2s, box-shadow 0.2s;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: auto;
  height: auto;
  cursor: pointer;
}
.student-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.student-card.selected {
  border: 2px solid #2c82c9;
  padding: var(--page-padding);
  background-color: rgba(44, 130, 201, 0.05);
}
.student-header {
  display: flex;
  align-items: center;
  position: relative;
  margin-bottom: 0;
}
.student-image {
  width: 50px;
  height: 50px;
  border-radius: 3px;
  overflow: hidden;
  margin-right: 12px;
  border: 1px solid #e0e0e0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f5f5f5;
  flex-shrink: 0;
}
.student-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.student-initials {
  font-size: 18px;
  font-weight: bold;
  color: #555;
}
.student-info {
  flex: 1;
  min-width: 0;
}
.student-info h3 {
  margin: 0 0 1px 0;
  font-size: 16px;
  color: #000000;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 500;
}
.student-email {
  margin: 0;
  font-size: 14px;
  color: #777;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.student-details {
  margin-top: 4px;
}
.license-badge {
  display: inline-block;
  padding: 2px 8px;
  background: #dbeafe;
  color: #1e40af;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 500;
}
.selected-indicator {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 20px;
  height: 20px;
  background-color: #2c82c9;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 12px;
}
.no-students-container {
  grid-column: 1 / -1;
  text-align: center;
  padding: var(--section-padding) 0;
}
.no-students {
  font-size: 17px;
  color: #666;
  margin-bottom: 6px;
}
.no-students-subtext {
  font-size: 15px;
  color: #888;
}
.student-selector-loading,
.student-selector-error {
  padding: 40px 20px;
  text-align: center;
  color: #6b7280;
}
.student-selector-error {
  color: #d9534f;
  text-align: center;
  margin-top: var(--section-padding);
  font-size: 17px;
}
.student-card {
  background-color: #ffffff;
  border-radius: 8px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  padding: 12px;
  transition: transform 0.2s, box-shadow 0.2s;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: auto;
  height: auto;
}
.student-card.selectable {
  cursor: pointer;
}
.student-card.selectable:hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.student-card.selected {
  border: 2px solid #2c82c9;
  padding: var(--page-padding); /* Reduced by 2px to account for the border */
  background-color: rgba(44, 130, 201, 0.05);
}
.selected-indicator {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 20px;
  height: 20px;
  background-color: #2c82c9;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 12px;
}
.student-header {
  display: flex;
  align-items: center;
  position: relative;
  margin-bottom: 0;
}
.student-image {
  width: 50px;
  height: 50px;
  border-radius: 3px;
  overflow: hidden;
  margin-right: 12px;
  border: 1px solid #e0e0e0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f5f5f5;
  flex-shrink: 0;
}
.student-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.student-initials {
  font-size: 18px;
  font-weight: bold;
  color: #555;
}
.student-info {
  flex: 1;
  min-width: 0; /* Allows content to shrink below min-content width */
}
.student-info h3 {
  margin: 0 0 1px 0;
  font-size: 16px;
  color: #000000;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 500;
}
.student-email {
  margin: 0;
  font-size: 14px;
  color: #777;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.student-details {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-top: 4px;
}
.license-badge {
  display: inline-block;
  padding: 2px 8px;
  background: #dbeafe;
  color: #1e40af;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 500;
}
.student-actions {
  display: flex;
  align-items: center;
  gap: var(--small-padding);
  margin-left: auto;
}
.select-student-button {
  width: 100%;
  background-color: #2c82c9;
  color: white;
  border: none;
  border-radius: 4px;
  padding: var(--small-padding) 12px;
  font-size: 14px;
  font-weight: 500;
  margin-top: var(--page-padding);
  cursor: pointer;
  transition: background-color 0.2s;
}
.select-student-button:hover {
  background-color: #1a6eaf;
} .selection-page-container {
  padding: var(--page-padding);
  background-color: #ffffff;
}
.selection-page-header {
  margin-bottom: 15px;
  text-align: center;
}
.selection-page-header h2 {
  font-size: 24px;
  margin: 0 0 5px 0;
  color: #000000;
  font-weight: 600;
}
.selection-subtitle {
  font-size: 16px;
  color: #666;
  margin: 0;
}
.selection-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 12px;
  width: 100%;
  margin-top: 25px;
  align-content: start;
}
.selection-grid-item {
  display: flex;
  flex-direction: column;
  height: auto;
  min-height: auto;
}
.no-items-container {
  grid-column: 1 / -1;
  text-align: center;
  padding: var(--section-padding) 0;
}
.no-items {
  font-size: 17px;
  color: #666;
  margin-bottom: 6px;
}
.no-items-subtext {
  font-size: 15px;
  color: #888;
}
.selection-page-loading,
.selection-page-error {
  padding: 40px 20px;
  text-align: center;
  color: #6b7280;
}
.selection-page-error {
  color: #d9534f;
  text-align: center;
  margin-top: var(--section-padding);
  font-size: 17px;
}
.selection-page-footer {
  margin-top: 15px;
  display: flex;
  justify-content: center;
  padding: var(--small-padding) 0;
}
.next-button {
  background-color: var(--primary-blue);
  color: white;
  border: none;
  border-radius: 5px;
  padding: var(--page-padding) 30px;
  font-size: 17px;
  text-transform: uppercase;
  width: 100%;
  cursor: pointer;
  transition: background-color 0.2s;
}
.next-button:hover:not(:disabled) {
  background-color: var(--primary-blue-light);
}
.next-button:disabled {
  background-color: #f4a9a9;
  cursor: not-allowed;
} .user-avatar {
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-gray-100);
    border: 2px solid var(--color-gray-200);
    flex-shrink: 0;
}

.user-avatar-small {
    width: 32px;
    height: 32px;
}

.user-avatar-medium {
    width: 48px;
    height: 48px;
}

.user-avatar-large {
    width: 64px;
    height: 64px;
}

.user-avatar-image {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
}

.user-avatar-initials {
    font-weight: 600;
    color: var(--color-gray-700);
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
}

.user-avatar-small .user-avatar-initials {
    font-size: 12px;
}

.user-avatar-medium .user-avatar-initials {
    font-size: 16px;
}

.user-avatar-large .user-avatar-initials {
    font-size: 20px;
} .confirmation-drawer-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 1000;
}
.confirmation-drawer-overlay.open {
  opacity: 1;
  visibility: visible;
}
.confirmation-drawer {
  position: fixed;
  bottom: -100%;
  left: 0;
  right: 0;
  min-height: 200px;
  max-height: 60vh;
  max-width: 414px;
  margin: 0 auto;
  background-color: var(--white);
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
  transition: bottom 0.3s ease;
  z-index: 1001;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.confirmation-drawer.open {
  bottom: calc(var(--bottom-nav-height) + env(safe-area-inset-bottom, 0px) );
}
.confirmation-drawer-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  padding: var(--large-padding);
  flex: 1;
  min-height: 0;
}
.confirmation-drawer-title {
  font-size: 22px;
  font-weight: 600;
  margin-bottom: var(--page-padding);
  color: var(--dark-text);
  margin-top: 0;
}
.confirmation-drawer-message {
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: var(--large-padding);
  color: var(--medium-text);
  flex: 1;
  display: flex;
  align-items: center;
}
.confirmation-drawer-button {
  border: none;
  border-radius: 4px;
  padding: 12px var(--large-padding);
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  width: 100%;
  max-width: 300px;
  transition: background-color 0.2s ease;
  color: var(--white);
  margin-top: 0;
  flex-shrink: 0;
}
/* Button styles for different types */
.confirmation-drawer-button.success {
  background-color: var(--primary-blue);
  color: var(--white) !important;
}
.confirmation-drawer-button.success:hover {
  background-color: var(--primary-blue-light);
  color: var(--white) !important;
}
.confirmation-drawer-button.error {
  background-color: var(--error-red);
  color: var(--white) !important;
}
.confirmation-drawer-button.error:hover {
  background-color: #c82333;
  color: var(--white) !important;
}
.confirmation-drawer-button.warning {
  background-color: var(--warning-yellow);
  color: var(--dark-text) !important;
}
.confirmation-drawer-button.warning:hover {
  background-color: #ffca2c;
  color: var(--dark-text) !important;
}
.confirmation-drawer-button:active {
  opacity: 0.9;
} .invite-panel {
  background: linear-gradient(135deg, var(--primary-blue) 0%, var(--primary-blue-light) 100%);
  border-radius: 12px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 12px rgba(21, 101, 192, 0.15);
  color: white;
  position: relative;
  overflow: hidden;
}

.invite-panel::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><circle cx="20" cy="20" r="2" fill="rgba(255,255,255,0.1)"/><circle cx="80" cy="40" r="1.5" fill="rgba(255,255,255,0.1)"/><circle cx="40" cy="80" r="1" fill="rgba(255,255,255,0.1)"/></svg>');
  pointer-events: none;
}

.invite-panel-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.5rem;
  position: relative;
  z-index: 1;
}

.invite-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  flex-shrink: 0;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.invite-icon svg {
  font-size: 1.25rem;
  color: white;
}

.invite-info {
  flex: 1;
  min-width: 0;
}

.invite-info h3 {
  margin: 0 0 0.5rem 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: white;
}

.invite-info p {
  margin: 0 0 0.75rem 0;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.4;
}

.invite-role-badge {
  display: inline-block;
  background-color: rgba(255, 255, 255, 0.2);
  color: white;
  padding: 0.25rem 0.75rem;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 500;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.dismiss-button {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  padding: 0.5rem;
  border-radius: 50%;
  transition: all 0.2s ease;
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dismiss-button:hover {
  background-color: rgba(255, 255, 255, 0.1);
  color: white;
}

.dismiss-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.invite-panel-actions {
  position: relative;
  z-index: 1;
}

.accept-button {
  background-color: white;
  color: var(--primary-blue);
  border: none;
  padding: 0.75rem 1.5rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.accept-button:hover:not(:disabled) {
  background-color: rgba(255, 255, 255, 0.95);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.accept-button:disabled {
  opacity: 0.7;
  cursor: not-allowed;
  transform: none;
}

.spinner {
  width: 1rem;
  height: 1rem;
  border: 2px solid rgba(21, 101, 192, 0.3);
  border-radius: 50%;
  border-top: 2px solid var(--primary-blue);
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.simple-calendar {
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
.calendar-header {
  margin-bottom: 1rem;
}
.calendar-header-container {
  text-align: center;
}
.month-navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.month-year {
  font-weight: 500;
  text-transform: uppercase;
  color: #333;
  text-align: center;
  flex: 1;
}
.nav-button {
  background: none;
  border: none;
  font-size: 2rem;
  color: #666;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  transition: all 0.2s ease;
}
.nav-button:hover {
  background-color: #f0f0f0;
  color: #333;
}
.weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 0.5rem;
}
.weekday {
  text-align: center;
  font-size: 0.875rem;
  color: #666;
  padding: 0.5rem 0;
  font-weight: bold;
}
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
/* Weekly view styles */
.calendar-grid.weekly-view {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.calendar-day {
  aspect-ratio: 1;
  border: none;
  border-radius: 50%;
  background: none;
  font-size: 0.875rem;
  color: #333;
  cursor: pointer;
  padding: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.calendar-day::before {
  content: '';
  position: absolute;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: transparent;
  transition: background-color 0.2s ease;
}
.calendar-day:hover {
  background-color: #f0f0f0;
}
.calendar-day.other-month {
  color: #ccc;
}
.calendar-day.selected {
  background-color: #1565C0;
  color: white;
  font-weight: 500;
}
.calendar-day.available {
  background-color: #e3f2fd;
  color: #1565C0;
  border: 1px solid #1565C0;
}
.calendar-day.available.selected {
  background-color: #1565C0;
  color: white;
  font-weight: 500;
}
/* Navigation buttons can be added here if needed */
.calendar-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}
/* Toggle View Button */
.calendar-view-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
}
.view-toggle-button {
  background: none;
  border: 1px solid #ddd;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  cursor: pointer;
  transition: all 0.2s ease;
}
.view-toggle-button:first-child {
  border-radius: 4px 0 0 4px;
}
.view-toggle-button:last-child {
  border-radius: 0 4px 4px 0;
}
.view-toggle-button.active {
  background: #1565C0;
  color: white;
  border-color: #1565C0;
}
.today-button {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  font-size: 0.875rem;
  color: #1565C0;
  text-decoration: none;
  border-radius: 4px;
  transition: all 0.2s ease;
}
.today-button:hover {
  background-color: #e3f2fd;
}
.time-slot-selector {
  padding: var(--page-padding);
  background: var(--white);
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.time-slots-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--page-padding);
}
.time-slots-title {
  color: var(--dark-text);
  font-size: 1.0rem;
  margin: 0;
}
.custom-mode-toggle {
  padding: 6px 12px;
  border: 1px solid var(--primary-blue);
  border-radius: 6px;
  background: transparent;
  color: var(--primary-blue);
  cursor: pointer;
  font-weight: 500;
  transition: all 0.2s ease;
}
.custom-mode-toggle.active {
  background: var(--primary-blue);
  color: var(--white);
}
.custom-time-form {
  padding: var(--page-padding);
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--background-gray);
}
.time-input-group {
  display: flex;
  gap: 15px;
  margin-bottom: 15px;
}
.time-input-group label {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-weight: 500;
  color: var(--dark-text);
}
.time-input-group input[type="time"] {
  padding: 6px 10px;
  border: 1px solid var(--border-color);
  border-radius: 4px;
  font-size: 1rem;
  transition: border-color 0.2s ease;
}
.time-input-group input[type="time"]:focus {
  border-color: var(--primary-blue);
  outline: none;
}
.custom-time-submit {
  width: 100%;
  padding: var(--page-padding);
  background: var(--primary-blue);
  color: var(--white);
  border: none;
  border-radius: 6px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.custom-time-submit:hover {
  background: var(--primary-blue-dark);
}
.time-slots-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--small-padding);
  width: 100%;
  max-width: 100%;
  overflow: visible;
  padding: 0;
}
.time-slot {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px var(--small-padding);
  border: 1px solid var(--border-color);
  border-radius: 6px;
  background: var(--white);
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 0.85rem;
  color: var(--dark-text);
  min-height: 44px;
  width: 100%;
  box-sizing: border-box;
  text-align: center;
}

.time-slot.selected {
  border-color: var(--primary-blue);
  background: var(--light-blue);
  color: var(--white);
}

.time-slot.booked {
  background: 
    repeating-linear-gradient(
      45deg,
      rgba(33, 33, 33, .20) 0px,
      rgba(33, 33, 33, 0.20) 2px,
      transparent 3px,
      transparent 8px
    ),
    var(--background-gray);
  border-color: var(--border-color);
  color: var(--medium-text);
  cursor: not-allowed;

  position: relative;
}
.time-range {
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
}
.no-slots-message {
  text-align: center;
  color: var(--medium-text);
  padding: var(--page-padding);
  font-style: italic;
  grid-column: span 3;
}
.custom-time-button-container {
  margin-top: var(--page-padding);
  text-align: center;
}.success-drawer-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 1000;
}
.success-drawer-overlay.open {
  opacity: 1;
  visibility: visible;
}
.success-drawer {
  position: fixed;
  bottom: -100%;
  left: 0;
  right: 0;
  min-height: 220px;
  max-height: 60vh;
  max-width: 414px;
  margin: 0 auto;
  padding-bottom: 10px;
  background-color: var(--white);
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
  transition: bottom 0.3s ease;
  z-index: 1001;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.success-drawer.open {
  bottom: calc(var(--bottom-nav-height) + env(safe-area-inset-bottom, 0px));
}
.success-drawer-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: var(--large-padding);
  text-align: center;
  flex: 1;
  min-height: 0;
}
.success-drawer-title {
  font-size: 22px;
  font-weight: 600;
  margin-bottom: var(--page-padding);
  color: var(--dark-text);
  margin-top: 0;
}
.success-drawer-message {
  font-size: 16px;
  line-height: 1.5;
  margin-bottom: var(--large-padding);
  color: var(--medium-text);
  flex: 1;
  display: flex;
  align-items: center;
}
.success-drawer-button {
  background-color: var(--primary-blue);
  color: var(--white);
  border: none;
  border-radius: 4px;
  padding: 12px var(--large-padding);
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  width: 100%;
  max-width: 300px;
  transition: background-color 0.2s ease;
  flex-shrink: 0;
}
.success-drawer-button:hover {
  background-color: var(--primary-blue-light);
}
.success-drawer-button:active {
  opacity: 0.9;
} .schedule-training-container {
  padding: 0 .1rem;
}

.schedule-header {
  margin-bottom: 2rem;
  text-align: center;
}
.schedule-header h1 {
  font-size: 1.5rem;
  color: var(--dark-text);
  font-weight: 500;
  margin: 0;
}
.view-toggle {
  display: flex;
  gap: 0.5rem;
}
.toggle-button {
  padding: 0.5rem 1rem;
  border: 1px solid var(--border-color);
  background: var(--white);
  cursor: pointer;
  font-size: 0.875rem;
  transition: all 0.2s ease;
}
.toggle-button:first-child {
  border-radius: 4px 0 0 4px;
}
.toggle-button:last-child {
  border-radius: 0 4px 4px 0;
}
.toggle-button.active {
  background: var(--primary-blue);
  color: var(--white);
  border-color: var(--primary-blue);
}
.calendar-container {
  background: var(--white);
  border-radius: 8px;
  padding: 1rem 1rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  margin: 2px 0;
}
.calendar-view-toggle {
  display: flex;
  justify-content: center;
  margin-bottom: 1rem;
}
.view-toggle-button {
  padding: 0.4rem 1rem;
  border: 1px solid var(--border-color, #ddd);
  background: var(--white, #fff);
  cursor: pointer;
  font-size: 0.875rem;
  transition: all 0.2s ease;
}
.view-toggle-button:first-child {
  border-radius: 4px 0 0 4px;
}
.view-toggle-button:last-child {
  border-radius: 0 4px 4px 0;
}
.view-toggle-button.active {
  background: var(--primary-blue, #1565C0);
  color: var(--white, #fff);
  border-color: var(--primary-blue, #1565C0);
}
.schedule-actions {
  margin-top: 2rem;
  padding: 0 0.5rem;
}
.schedule-button {
  width: 100%;
  padding: var(--page-padding) 20px;
  color: var(--white);
  background-color: var(--primary-blue);
  border: none;
  border-radius: 6px;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
}
.schedule-button:disabled {
  background-color: var(--light-blue);
  color: var(--lightest-text);
  cursor: not-allowed;
}
.error-message {
  margin: 15px 0;
  padding: var(--page-padding);
  background: #ffebee;
  color: var(--error-red);
  border: 1px solid #ef9a9a;
  border-radius: 6px;
  font-size: 0.9rem;
}
/* FullCalendar overrides */
.fc {
  font-family: inherit;
}
.fc .fc-button {
  background: var(--background-gray);
  border: 1px solid var(--border-color);
  color: var(--dark-text);
}
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
  background: var(--primary-blue);
  border-color: var(--primary-blue);
}
.fc .fc-highlight {
  background: rgba(1, 38, 153, 0.1);
}
.selected-instructor {
  background: var(--white);
  margin: 0 0 15px;
  padding: 12px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.selected-instructor h2 {
  font-size: 18px;
  color: var(--dark-text);
  margin: 0 0 6px;
}
.instructor-rate {
  color: var(--success-green);
  font-size: 14px;
  font-weight: 500;
}
.schedule-training-loading {
  text-align: center;
  padding: 40px 20px;
  color: var(--medium-text);
  font-size: 16px;
}
/* Time slots styling */
.time-slots-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: var(--page-padding) 0;
  padding: 0 5px;
}
.time-slots-title {
  color: var(--dark-text);
  font-size: 1.1rem;
  margin: 0;
}
.time-slots-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.time-slots-actions a {
  color: var(--primary-blue);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
}
.time-slots-actions a:hover {
  text-decoration: underline;
}
.view-all-toggle {
  padding: 6px 12px;
  border: 1px solid var(--primary-blue);
  border-radius: 6px;
  background: transparent;
  color: var(--primary-blue);
  cursor: pointer;
  font-weight: 500;
  transition: all 0.2s ease;
}


.timezone-info {
  font-size: 0.9rem;
  color: #666;
  margin-top: 0.5rem;
}
.timezone-display {
  font-size: 0.8rem;
  color: #666;
  background-color: #f5f5f5;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
}
.schedule-training-header {
  margin-bottom: var(--section-padding);
  text-align: center;
}
.schedule-training-header h2 {
  margin: 0 0 5px 0;
  font-size: 22px;
  font-weight: 600;
}
.selected-aircraft {
  margin: var(--small-padding) 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.aircraft-label {
  margin: 0;
  font-size: 16px;
  color: #444;
}
.aircraft-value {
  font-weight: 500;
  color: #2c82c9;
}
.aircraft-availability-info {
  margin-top: 0.5rem;
}
.availability-notice {
  font-size: 0.85rem;
  color: var(--warning-orange, #f57c00);
  margin: 0;
  padding: 0.25rem 0.5rem;
  background-color: #fff3e0;
  border-radius: 4px;
  border: 1px solid #ffb74d;
}.availability-scheduler {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}
.availability-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}
.availability-header h3 {
  font-size: 1rem;
  font-weight: 600;
  color: #444;
  margin: 0;
}
.button-row {
  display: flex;
  gap: var(--page-padding);
  margin-top: var(--section-padding);
  justify-content: right;
}
.save-slot-button {
  padding: var(--small-padding) 26px;
  background-color: var(--primary-blue, #012699);
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
.save-slot-button:hover {
  background-color: #3a5ce5;
}
.cancel-slot-button {
  padding: var(--small-padding) 16px;
  background-color: #f5f5f5;
  color: #333;
  border: 1px solid #ccc;
  border-radius: 4px;
  cursor: pointer;
}
.cancel-slot-button:hover {
  background-color: #e5e5e5;
}
.existing-slots-section {
  margin-top: 1.5rem;
}
.existing-slots-section h4 {
  font-size: 0.95rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 0.75rem;
}
.availability-slots {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.availability-slot {
  background-color: #f0f7ff;
  border: 1px solid #e0f0ff;
  border-radius: 4px;
  padding: 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.draft-time-inputs {
  background-color: #f0f7ff;
  border: 1px solid #bbdefb;
  border-radius: 0px;
  padding: 0.75rem;
  margin-bottom: 1rem;
}
.days-of-week-rows {
  display: flex;
  flex-direction: column;
  gap: var(--page-padding);
  margin-bottom: 1rem;
}
.day-row {
  display: flex;
  align-items: center;
  gap: var(--page-padding);
}
.day-name {
  flex: 0 0 100px;
  font-weight: 500;
}
.slot-day {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
.slot-day label {
  font-size: 0.8rem;
  color: #555;
}
.slot-day select {
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 0.4rem;
  font-size: 0.9rem;
  width: 100%;
}
.slot-time {
  display: flex;
  gap: var(--page-padding);
  flex: 1;
  align-items: center;
}
.time-field {
  flex: 1;
}
.time-field select {
  width: 100%;
  padding: var(--small-padding);
  border: 1px solid #ccc;
  border-radius: 4px;
}
.remove-slot-button {
  background: none;
  border: none;
  color: #f44336;
  cursor: pointer;
  align-self: flex-end;
  padding: 0.25rem;
}
.read-only-time {
  display: flex;
  gap: var(--small-padding);
  align-items: center;
}
.time-separator {
  color: #666;
}
.unavailable {
  color: #888;
  font-style: italic;
}
.blocked-time-scheduler {
  width: 100%;
  margin-bottom: 1rem;
}
.blocked-time-header {
  margin-bottom: 0.5rem;
}
.blocked-time-header h3 {
  font-size: 1rem;
  font-weight: 600;
  color: #444;
  margin-bottom: 0.25rem;
}
.blocked-time-form {
  background-color: #f9f9f9;
  border-radius: 6px;
  padding: 0.75rem;
  margin-bottom: 1rem;
}
.form-row {
  display: flex;
  flex-direction: column;
  margin-bottom: 0.5rem;
}
.form-group {
  margin-bottom: 0.5rem;
}
.form-group.full-width {
  width: 100%;
}
.form-group label {
  display: block;
  font-size: 0.8rem;
  margin-bottom: 0.25rem;
  color: #555;
}
.form-group input,
.form-group select {
  width: 100%;
  padding: 0.5rem;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 0.9rem;
}
.form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}
.add-blocked-time-button {
  background-color: #0c3b94;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 0.5rem 0.75rem;
  font-size: 0.8rem;
  cursor: pointer;
}
.add-blocked-time-button:disabled {
  background-color: #ccc;
  cursor: not-allowed;
}
.cancel-edit-button {
  background-color: #f5f5f5;
  color: #666;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 0.5rem 0.75rem;
  font-size: 0.8rem;
  cursor: pointer;
}
.cancel-edit-button:hover {
  background-color: #e5e5e5;
}
/* Draft Times List */
.draft-blocked-times {
  background-color: #fff8e1;
  border: 1px solid #ffe082;
  border-radius: 6px;
  padding: 0.75rem;
  margin-bottom: 1rem;
}
.draft-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.75rem;
}
.draft-header h4 {
  font-size: 0.9rem;
  font-weight: 600;
  color: #996600;
  margin: 0;
}
.draft-actions-main {
  display: flex;
  gap: 0.5rem;
}
.save-all-button {
  background-color: #4caf50;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 0.4rem 0.6rem;
  font-size: 0.8rem;
  cursor: pointer;
}
.cancel-all-button {
  background-color: #f5f5f5;
  color: #666;
  border: 1px solid #ccc;
  border-radius: 4px;
  padding: 0.4rem 0.6rem;
  font-size: 0.8rem;
  cursor: pointer;
}
.cancel-all-button:hover {
  background-color: #e5e5e5;
}
.draft-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.draft-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #fffbf0;
  border: 1px dashed #ffd54f;
  border-radius: 4px;
  padding: 0.5rem 0.75rem;
}
.draft-item.editing {
  background-color: #e3f2fd;
  border: 1px solid #90caf9;
}
.draft-item-info {
  display: flex;
  flex-direction: column;
}
.draft-date {
  font-size: 0.8rem;
  font-weight: 600;
  color: #333;
}
.draft-time {
  font-size: 0.75rem;
  color: #666;
  margin-top: 0.1rem;
}
.draft-title {
  font-size: 0.75rem;
  color: #0c3b94;
  margin-top: 0.1rem;
}
.draft-item-actions {
  display: flex;
  gap: 0.5rem;
}
.edit-draft-button,
.remove-draft-button {
  background: none;
  border: none;
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
  border-radius: 3px;
  cursor: pointer;
}
.edit-draft-button {
  color: #2196f3;
  border: 1px solid #2196f3;
}
.remove-draft-button {
  color: #f44336;
  border: 1px solid #f44336;
}
/* Draft Blocked Time Styles - Legacy styles kept for compatibility */
.draft-blocked-time {
  background-color: #fff8e1;
  border: 1px solid #ffe082;
  border-radius: 6px;
  padding: 0.75rem;
  margin-bottom: 1rem;
}
.draft-title {
  font-size: 0.9rem;
  font-weight: 600;
  color: #996600;
  margin-bottom: 0.5rem;
}
.draft-details {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-bottom: 0.75rem;
}
.draft-date-time {
  display: flex;
  flex-direction: column;
}
.draft-date-time span {
  font-size: 0.8rem;
  color: #444;
}
.draft-title-text {
  font-size: 0.8rem;
  color: #0c3b94;
  font-style: italic;
}
.draft-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
}
.save-blocked-time-button {
  background-color: #4caf50;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 0.4rem 0.6rem;
  font-size: 0.8rem;
  cursor: pointer;
}
.cancel-blocked-time-button {
  background-color: #f44336;
  color: white;
  border: none;
  border-radius: 4px;
  padding: 0.4rem 0.6rem;
  font-size: 0.8rem;
  cursor: pointer;
}
.blocked-times-list {
  margin-top: 1rem;
}
.blocked-times-list h4 {
  font-size: 0.9rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  color: #444;
}
.no-blocked-times {
  font-size: 0.8rem;
  color: #666;
  font-style: italic;
  text-align: center;
  padding: 0.5rem;
}
.blocked-time-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #f0f7ff;
  border: 1px solid #e0f0ff;
  border-radius: 4px;
  padding: 0.5rem 0.75rem;
  margin-bottom: 0.5rem;
}
.blocked-time-info {
  display: flex;
  flex-direction: column;
}
.blocked-date {
  font-size: 0.8rem;
  font-weight: 600;
  color: #333;
}
.blocked-time {
  font-size: 0.75rem;
  color: #666;
  margin-top: 0.1rem;
}
.blocked-title {
  font-size: 0.75rem;
  color: #0c3b94;
  margin-top: 0.1rem;
}
.remove-blocked-time {
  background: none;
  border: none;
  color: #f44336;
  cursor: pointer;
  padding: 0.25rem;
}
 .availability-page {
  background-color: #f9fafb;
  min-height: 100vh;
  padding: 1.5rem;
}
.availability-page h1 {
  color: #333;
  font-size: 1.5rem;
  font-weight: 600;
  margin: 0 0 0.5rem 0;
}
.instructor-name {
  color: #666;
  font-size: 1rem;
  margin: 0 0 0.5rem 0;
}
.availability-page h2 {
  color: #444;
  font-size: 1.2rem;
  font-weight: 600;
  margin: 1.5rem 0 0.5rem 0;
}
.block-out-times-header {
  margin-top: 2em !important;
}
.section-desc {
  color: #666;
  font-size: 0.9rem;
  margin: 0 0 1rem 0;
}
.page-actions {
  display: flex;
  gap: 1rem;
  justify-content: flex-end;
  margin-top: 2rem;
}
.secondary-button,
.primary-button {
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 500;
  padding: 0.75rem 1.5rem;
  transition: all 0.2s;
}
.secondary-button {
  background-color: white;
  border: 1px solid #ccc;
  color: #444;
}
.secondary-button:hover {
  background-color: #f4f4f4;
}
.primary-button {
  background-color: #4a90e2;
  border: none;
  color: white;
}
.primary-button:hover {
  background-color: #3a7bc8;
}
.primary-button:disabled {
  background-color: #a0c3eb;
  cursor: not-allowed;
}
.alert {
  border-radius: 4px;
  margin-bottom: 1.25rem;
  padding: 0.8rem;
  font-size: 0.9rem;
}
.alert.error {
  background-color: #fee2e2;
  border-left: 4px solid #ef4444;
  color: #b91c1c;
}
.alert.success {
  background-color: #d1fae5;
  border-left: 4px solid #10b981;
  color: #047857;
}
.availability-page.loading {
  align-items: center;
  display: flex;
  justify-content: center;
}
.loading-spinner {
  color: #4a90e2;
  font-size: 1rem;
}
 .availability-page {
  padding: 1.5rem;
  max-width: 100%;
  margin: 0 auto;
  background-color: #f5f5f5;
  min-height: 100vh;
}
.availability-page.loading {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 50vh;
}
.loading-spinner {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: #666;
}
.availability-page h3 {
  font-size: 1.5rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 1rem;
  text-align: center;
}
.availability-page h2 {
  font-size: 1.2rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 0.5rem;
  margin-top: 1.5rem;
}
.block-out-times-header {
  margin-top: 2em !important;
}
.timezone-display {
  text-align: center;
  font-size: 0.75rem;
  color: #666;
  margin-top: 0.25rem;
  padding: 0.25rem;
  background-color: #f0f7ff;
  border-radius: 4px;
}
.timezone-display span {
  font-weight: 600;
  color: #0c3b94;
}
.availability-container {
  display: flex;
  margin-top: 1rem;
  flex-direction: column;
  gap: 1rem;
}
.section {
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  padding: 1rem;
  margin-bottom: 1rem;
}
.section h2 {
  font-size: 1.1rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 0.5rem;
}
.section-desc {
  font-size: 0.85rem;
  color: #666;
  margin-bottom: 1rem;
}
/* Override availability scheduler for mobile */
.availability-scheduler {
  width: 100%;
}
.availability-slot {
  padding: 0.5rem;
  margin-bottom: 0.5rem;
}
.slot-day select,
.slot-time select {
  font-size: 0.9rem;
  padding: 0.5rem;
}
/* Override blocked time scheduler for mobile */
.blocked-time-scheduler {
  width: 100%;
}
.blocked-time-form .form-row {
  margin-bottom: 0.5rem;
}
.blocked-time-form label {
  font-size: 0.85rem;
}
.blocked-time-form input,
.blocked-time-form select {
  font-size: 0.9rem;
  padding: 0.5rem;
}
.add-slot-button,
.add-blocked-time-button {
  font-size: 0.9rem;
  padding: 0.5rem 0.75rem;
}
/* Status alerts */
.alert {
  padding: 0.8rem;
  border-radius: 4px;
  margin-bottom: 1rem;
  font-size: 0.9rem;
}
.alert.error {
  background-color: #fee2e2;
  border-left: 4px solid #ef4444;
  color: #b91c1c;
}
.alert.success {
  background-color: #d1fae5;
  border-left: 4px solid #10b981;
  color: #047857;
}
/* Remove the media query that switched to horizontal layout on larger screens */ .notification-dialog-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    box-sizing: border-box;
}

.notification-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--white);
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    z-index: 1001;
    max-width: 90vw;
    width: 450px;
    max-height: 90vh;
    overflow-y: auto;
    animation: dialogSlideIn 0.2s ease-out;
}

@keyframes dialogSlideIn {
    from {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

.notification-dialog-content {
    padding: 1.5rem;
}

.notification-dialog-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 1rem;
    gap: 1rem;
}

.notification-dialog-title {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--dark-text);
    flex: 1;
}

.notification-dialog-time-ago {
    font-size: 0.875rem;
    color: var(--medium-text);
    font-weight: 400;
    white-space: nowrap;
}

.notification-dialog-message {
    margin-bottom: 1.5rem;
    color: var(--dark-text);
    line-height: 1.6;
    font-size: 1rem;
}

.notification-dialog-meta {
    margin-bottom: 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border-color);
}

.notification-dialog-from {
    color: var(--medium-text);
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
    font-weight: 500;
}

.notification-dialog-timestamp {
    color: var(--medium-text);
    font-size: 0.875rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.notification-dialog-timestamp .dot {
    color: var(--border-color);
}

.notification-dialog-actions {
    display: flex;
    justify-content: center;
}

.notification-dialog-close {
    padding: 0.875rem 2rem;
    border: none;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    background: var(--primary-blue);
    color: white;
    min-width: 120px;
}

.notification-dialog-close:hover {
    background: var(--primary-blue-dark);
}

.notification-dialog-close:active {
    transform: scale(0.98);
}

@keyframes dialogSlideInMobile {
    from {
        opacity: 0;
        transform: translateY(-20px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .notification-dialog-overlay {
        padding: 0.5rem;
        align-items: flex-start;
        padding-top: max(2rem, env(safe-area-inset-top, 2rem));
        padding-bottom: env(safe-area-inset-bottom, 0.5rem);
    }
    
    .notification-dialog {
        width: calc(100vw - 1rem);
        max-width: none;
        margin: 0;
        max-height: calc(100vh - 3rem);
        border-radius: 16px;
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        animation: dialogSlideInMobile 0.2s ease-out;
    }
    
    .notification-dialog-content {
        padding: 1.25rem;
    }
    
    .notification-dialog-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
        margin-bottom: 1.25rem;
    }
    
    .notification-dialog-title {
        font-size: 1.125rem;
        line-height: 1.4;
    }
    
    .notification-dialog-time-ago {
        align-self: flex-end;
        font-size: 0.8125rem;
    }
    
    .notification-dialog-message {
        font-size: 0.9375rem;
        line-height: 1.5;
        margin-bottom: 1.25rem;
    }
    
    .notification-dialog-meta {
        margin-bottom: 1.25rem;
        padding-top: 0.875rem;
    }
    
    .notification-dialog-from {
        font-size: 0.8125rem;
        margin-bottom: 0.375rem;
    }
    
    .notification-dialog-timestamp {
        font-size: 0.8125rem;
        flex-wrap: wrap;
        gap: 0.375rem;
    }
    
    .notification-dialog-close {
        width: 100%;
        padding: 1rem;
        font-size: 1rem;
        min-width: auto;
        border-radius: 12px;
    }
}

/* Extra small screens */
@media (max-width: 480px) {
    .notification-dialog-overlay {
        padding: 0.25rem;
        padding-top: max(1rem, env(safe-area-inset-top, 1rem));
        padding-bottom: env(safe-area-inset-bottom, 0.25rem);
    }
    
    .notification-dialog {
        width: calc(100vw - 0.5rem);
        margin: 0;
        max-height: calc(100vh - 1.5rem);
        border-radius: 12px;
    }
    
    .notification-dialog-content {
        padding: 1rem;
    }
    
    .notification-dialog-header {
        gap: 0.5rem;
        margin-bottom: 1rem;
    }
    
    .notification-dialog-title {
        font-size: 1rem;
        line-height: 1.3;
    }
    
    .notification-dialog-time-ago {
        font-size: 0.75rem;
    }
    
    .notification-dialog-message {
        font-size: 0.875rem;
        line-height: 1.4;
        margin-bottom: 1rem;
    }
    
    .notification-dialog-meta {
        margin-bottom: 1rem;
        padding-top: 0.75rem;
    }
    
    .notification-dialog-from,
    .notification-dialog-timestamp {
        font-size: 0.75rem;
    }
    
    .notification-dialog-close {
        padding: 0.875rem;
        font-size: 0.9375rem;
    }
} .notifications-page {
  height: 100%;
  display: flex;
  flex-direction: column;
  background-color: #fff;
  padding: 0 0 var(--section-padding);
}
.tabs-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 15px var(--section-padding) 15px;
  border-bottom: none;
}

.notifications-header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.unread-count-badge {
  background-color: var(--error-red);
  color: var(--white);
  border-radius: 12px;
  min-width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  padding: 4px 8px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.mark-all-read-btn {
  background: none;
  border: none;
  color: var(--primary-blue);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  padding: 10px 14px;
  border-radius: 8px;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.mark-all-read-btn:hover {
  background-color: rgba(12, 59, 148, 0.1);
}

.mark-all-read-btn:disabled {
  color: #ccc;
  cursor: not-allowed;
}

.mark-all-read-btn:disabled:hover {
  background-color: transparent;
}
/* Tabs */
.tab-button {
  background: none;
  border: none;
  padding: 0;
  text-align: left;
  font-size: 20px;
  font-weight: 600;
  color: var(--text-dark);
  margin: 0;
  cursor: pointer;
  transition: color 0.2s ease;
}
.tab-button.active {
  color: var(--text-dark);
}
/* Notification List */
.notification-list-content {
  flex: 1;
  overflow-y: auto;
  padding: 0 var(--page-padding) 60px;
}
.notification-group {
  margin-bottom: var(--small-padding);
}
.notification-item {
  display: flex;
  align-items: flex-start;
  padding: var(--page-padding);
  position: relative;
  background-color: #fff;
  border-radius: 10px;
  margin-bottom: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  border: 1px solid #e9e9e9;
}
.avatar {
  width: 48px;
  height: 48px;
  border-radius: 8px;
  overflow: hidden;
  margin-right: 16px;
  flex-shrink: 0;
}
.avatar img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.notification-details {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-right: 90px; /* Make more space for time-ago */
}
.notification-text {
  font-size: 14px;
  font-weight: 500;
  color: var(--text-dark);
  margin-bottom: 6px;
  line-height: 1.4;
  word-wrap: break-word;
  overflow-wrap: break-word;
  -webkit-hyphens: auto;
          hyphens: auto;
}
.notification-info {
  display: flex;
  align-items: center;
  font-size: 12px;
  color: #777;
}
.date, .time {
  margin: 0;
}
.dot {
  margin: 0 6px;
}
/* Time ago markers */
.time-ago {
  position: absolute;
  top: 16px;
  right: 16px;
  font-size: 12px;
  color: #777;
  white-space: nowrap;
  min-width: 70px;
  text-align: right;
}
.placeholder {
  width: 40px;
}
.notifications-list {
  flex: 1;
  overflow-y: auto;
  padding: var(--page-padding) var(--page-padding) 80px;
}
.notification-item:active {
  transform: scale(0.98);
}
.notification-item.unread {
  border: 2px solid var(--primary-blue);
}
.notification-icon {
  margin-right: 16px;
}
.notification-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: var(--small-padding);
}
.notification-header h3 {
  font-size: 16px;
  font-weight: 600;
  color: var(--text-dark);
  margin: 0;
}
.notification-time {
  font-size: 12px;
  color: #666;
}
.notification-message {
  font-size: 14px;
  color: var(--text-dark);
  margin: 0 0 8px;
  line-height: 1.4;
}
.notification-date {
  font-size: 12px;
  color: #666;
}
.unread-indicator {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 10px;
  height: 10px;
  background-color: var(--primary-blue);
  border-radius: 50%;
}

.no-notifications {
  text-align: center;
  padding: 40px 0;
  color: #666;
}
.empty-notifications {
  text-align: center;
  padding: 40px 0;
  color: #666;
  font-size: 16px;
  border-radius: 10px;
  margin: var(--section-padding) 0;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
} .manage-container {
  padding: var(--section-padding);
  display: flex;
  flex-direction: column;
  gap: var(--page-padding);
}
.manage-card {
  display: flex;
  align-items: center;
  background: white;
  padding: var(--section-padding);
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.manage-card:active {
  transform: scale(0.98);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
  opacity: 0.9;
}
.card-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--light-blue, #E8F1FF);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 16px;
  pointer-events: none;
}
.card-icon svg {
  color: var(--primary-blue, #0039A6);
  pointer-events: none;
}
.card-title {
  font-size: 16px;
  font-weight: 500;
  color: var(--text-dark, #1A1A1A);
  pointer-events: none;
} .aircraft-list {
  display: flex;
  flex-direction: column;
  gap: var(--page-padding);
  margin-bottom: var(--page-padding);
  flex-grow: 1;
  overflow-y: auto;
}
.aircraft-item {
  background: white;
  border-radius: 12px;
  padding: var(--page-padding);
  display: flex;
  align-items: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  position: relative;
}
.aircraft-image {
  width: 60px;
  height: 60px;
  border-radius: 8px;
  overflow: hidden;
  margin-right: 16px;
  background-color: #f5f5f5;
  position: relative;
}
.aircraft-image img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.verified-badge {
  position: absolute;
  bottom: 0;
  right: 0;
  background-color: var(--primary-blue, #1565C0);
  border-radius: 50%;
  width: 20px;
  height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.verified-text {
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  font-size: 12px;
  color: var(--primary-blue, #1565C0);
  font-weight: 500;
}
.verified-text svg {
  margin-right: 3px;
}
.aircraft-info {
  flex: 1;
}
.aircraft-tail {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-dark, #1A1A1A);
  margin-bottom: 4px;
}
.aircraft-name {
  font-size: 13px;
  color: var(--text-secondary, #666666);
  margin-bottom: 4px;
}
.aircraft-rate {
  font-size: 14px;
  font-weight: 500;
  color: var(--primary-green, #4CAF50);
}
.aircraft-actions {
  display: flex;
  align-items: center;
  gap: var(--small-padding);
}
.empty-list {
  text-align: center;
  padding: 40px 0;
  color: var(--text-secondary, #666666);
  font-size: 16px;
} .aircraft-page {
  padding: var(--page-padding);
  height: 100%;
  display: flex;
  flex-direction: column;
}
.aircraft-title {
  font-size: 24px;
  font-weight: 600;
  margin-bottom: var(--page-padding);
  color: var(--text-dark, #1A1A1A);
}
.loading, .error {
  text-align: center;
  padding: var(--section-padding);
}
.error {
  color: #FF5252;
}
.add-aircraft-button {
  margin-top: auto;
  background-color: var(--primary-blue);
  color: white;
  padding: 14px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 8px;
  cursor: pointer;
  margin-bottom: var(--section-padding);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.add-aircraft-button .button-icon {
  font-size: 18px;
  margin-right: 8px;
  font-weight: bold;
}
.add-aircraft-button span {
  font-weight: 600;
  letter-spacing: 0.5px;
} .add-edit-aircraft-page {
  padding: var(--page-padding);
  height: 100%;
  display: flex;
  flex-direction: column;
  background-color: white;
}
.page-title {
  font-size: 24px;
  font-weight: 600;
  margin-bottom: var(--page-padding);
  color: var(--text-dark, #1A1A1A);
}
.error-message {
  background-color: rgba(255, 82, 82, 0.1);
  color: #FF5252;
  padding: 12px;
  border-radius: 8px;
  margin-bottom: var(--page-padding);
  font-size: 14px;
}

.success-message {
  background-color: #e8f5e9;
  color: #2e7d32;
  padding: 12px;
  border-radius: 8px;
  margin-bottom: var(--page-padding);
  border-left: 4px solid #2e7d32;
  font-size: 14px;
}

.aircraft-form {
  display: flex;
  flex-direction: column;
  gap: var(--section-padding);
  margin-bottom: 30px;
  flex: 1;
  overflow-y: auto;
  padding-bottom: 30px;
}
.form-image-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: var(--page-padding);
}

.aircraft-image-upload {
  width: 120px;
  height: 120px;
  border-radius: 60px;
  overflow: hidden;
  background-color: #f5f5f5;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  position: relative;
  transition: all 0.2s ease;
  border: 2px solid #e0e0e0;
}

.aircraft-image-upload:hover {
  transform: scale(1.02);
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  border-color: #0066ff;
}

.aircraft-image-upload.has-image:hover {
  transform: scale(1.02);
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  border-color: #0066ff;
}

.aircraft-image-upload.uploading {
  pointer-events: none;
  opacity: 0.8;
}

.aircraft-image-upload img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.upload-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
}

.spinner {
  width: 30px;
  height: 30px;
  border: 3px solid rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  border-top-color: white;
  animation: spin 1s ease-in-out infinite;
}

.upload-hint {
  margin-top: 12px;
  font-size: 14px;
  color: #666;
  text-align: center;
}

.form-image-preview {
  width: 120px;
  height: 120px;
  border-radius: 60px;
  overflow: hidden;
  background-color: #f5f5f5;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  position: relative;
}
.form-image-preview img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.upload-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #666666;
  text-align: center;
}
.upload-placeholder svg {
  margin-bottom: var(--small-padding);
}
.upload-placeholder span {
  font-size: 12px;
  font-weight: 500;
}
.hidden-input {
  display: none;
}
.form-group {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.form-group label {
  font-size: 14px;
  font-weight: 500;
  margin-bottom: var(--small-padding);
  color: var(--text-dark, #1A1A1A);
}
.form-group input, .form-group textarea {
  padding: 14px;
  border: 1px solid #E8E8E8;
  border-radius: 8px;
  font-size: 14px;
  background-color: white;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  transition: box-shadow 0.2s, border 0.2s;
  width: 100%;
}

.form-group select {
  padding: 14px;
  border: 1px solid #E8E8E8;
  border-radius: 8px;
  font-size: 14px;
  background-color: white;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  transition: box-shadow 0.2s, border 0.2s;
  width: 100%;
  cursor: pointer;
}

.form-group input:focus, .form-group textarea:focus, .form-group select:focus {
  outline: none;
  border-color: var(--primary-blue, #0039A6);
  box-shadow: 0 2px 6px rgba(0, 57, 166, 0.15);
}

.info-icon {
  cursor: pointer;
  color: #666;
  font-size: 14px;
  margin-left: 5px;
  transition: color 0.2s ease;
}

.info-icon:hover {
  color: var(--primary-blue, #0039A6);
}

.info-popup {
  background-color: #f9f9f9;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 12px;
  margin-bottom: 12px;
  font-size: 14px;
  line-height: 1.4;
  color: #555;
  animation: fadeIn 0.2s ease-out;
}

.info-popup p {
  margin: 0 0 8px 0;
}

.info-popup p:last-child {
  margin-bottom: 0;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.form-group textarea {
  resize: vertical;
  min-height: 100px;
}
.submit-button {
  background-color: var(--primary-blue, #0039A6);
  color: white;
  padding: var(--page-padding);
  border: none;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  margin-top: var(--page-padding);
  transition: background-color 0.2s;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}
.submit-button:hover {
  background-color: #002D85;
}
.submit-button:disabled {
  background-color: #CCCCCC;
  cursor: not-allowed;
} .preferences-page {
  padding: var(--page-padding);
}
.preferences-section {
  margin-bottom: 30px;
  background-color: white;
  padding: var(--section-padding);
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.preferences-group {
  margin-bottom: var(--large-padding);
}
.preferences-group h2 {
  font-size: 1.2rem;
  font-weight: 600;
  margin-bottom: var(--page-padding);
  color: #333;
  border-bottom: 1px solid #e0e0e0;
  padding-bottom: var(--small-padding);
}
.preference-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid #f0f0f0;
}
.preference-item:last-child {
  border-bottom: none;
}
.preference-item label {
  font-size: 16px;
  color: #333;
}
/* Toggle Switch */
.toggle-switch {
  position: relative;
  display: inline-block;
  width: 52px;
  height: 26px;
  cursor: pointer;
}
.toggle-switch input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
  z-index: -1;
}
.toggle-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  border-radius: 34px;
  transition: 0.4s;
  z-index: 1;
  pointer-events: none;
}
.toggle-slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  border-radius: 50%;
  transition: 0.4s;
  pointer-events: none;
}
input:checked + .toggle-slider {
  background-color: #0066ff;
}
input:checked + .toggle-slider:before {
  transform: translateX(26px);
}
.save-button {
  background-color: #0066ff;
  color: white;
  border: none;
  border-radius: 8px;
  padding: 12px;
  font-size: 16px;
  cursor: pointer;
  width: 100%;
  margin-top: var(--page-padding);
}
.save-button:hover {
  background-color: #0052cc;
}
.save-button:disabled {
  background-color: #b3d1ff;
  cursor: not-allowed;
}
.error-message {
  background-color: #ffebee;
  color: #c62828;
  padding: 12px;
  border-radius: 8px;
  margin-bottom: var(--page-padding);
  border-left: 4px solid #c62828;
  font-size: 14px;
}
.success-message {
  background-color: #e8f5e9;
  color: #2e7d32;
  padding: 12px;
  border-radius: 8px;
  margin-bottom: var(--page-padding);
  border-left: 4px solid #2e7d32;
  font-size: 14px;
}
.loading-indicator {
  text-align: center;
  padding: var(--section-padding);
  color: #666;
}
/* Timezone specific styling */
.timezone-item {
  flex-direction: column;
  align-items: flex-start;
  gap: var(--small-padding);
}
.timezone-item label {
  margin-bottom: 0;
}
.timeline {
  position: relative;
  margin-top: var(--large-padding);
  padding-left: 40px; /* space for icons */
}

/* Vertical line */
.timeline::before {
  content: "";
  position: absolute;
  left: 18px;
  top: 0;
  bottom: 0;
  width: 4px;
  background: var(--border-color);
}

.timeline-item {
  position: relative;
  margin-bottom: var(--large-padding);
  display: flex;
  align-items: flex-start;
}

/* Connector line extension for last item */
.timeline-item:last-child {
  margin-bottom: 0;
}

/* Icon circle */
.timeline-icon {
  position: absolute;
  left: 0;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 4px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Content box */
.timeline-content {
  padding-left: 56px; /* 36 width + 20 spacing */
}

.timeline-content h3 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--dark-text);
}

.timeline-content .tier-range {
  font-size: 0.875rem;
  color: var(--medium-text);
}

/* Active/highlighted tier */
.timeline-item.active .timeline-icon {
  border-color: var(--primary-blue);
  box-shadow: 0 0 0 4px rgba(1, 38, 153, 0.2);
}

.timeline-item.active .timeline-content h3 {
  color: var(--primary-blue);
}

/* Icon appearance variations */
.icon-silhouette {
  background: #f0f0f0;
}

.icon-wood {
  background: #a0522d;
}

.icon-silver {
  background: #c0c0c0;
}

.icon-black {
  background: #333333;
}

.icon-black-stripes {
  background-image: repeating-linear-gradient(
    45deg,
    #333333 0,
    #333333 8px,
    #ffffff 8px,
    #ffffff 12px
  );
  background-size: 150% 150%;
}

.icon-gold {
  background: #ffd700;
}

/* Title and count styles */
.props-title {
  margin-bottom: var(--small-padding);
  color: var(--primary-blue-dark);
  font-size: 1.5rem;
  font-weight: 700;
}

.props-count {
  margin-bottom: var(--large-padding);
  color: var(--medium-text);
  font-size: 1rem;
} .payment-history-container {
  padding: var(--page-padding);
}

/* Header Section */
.payment-history-header {
  display: flex;
  align-items: center;
  margin-bottom: var(--large-padding);
  gap: var(--page-padding);
}

.payment-history-header .back-button {
  background: none;
  border: none;
  color: var(--primary-blue);
  font-size: 16px;
  cursor: pointer;
  padding: var(--small-padding);
  border-radius: 8px;
  transition: background-color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
}

.payment-history-header .back-button:hover {
  background-color: rgba(1, 38, 153, 0.1);
}

.payment-history-header h2 {
  margin: 0;
  color: var(--text-dark);
  font-size: 20px;
  font-weight: 600;
}

/* Student Filter Styles */
.student-filter-container {
  background-color: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  padding: var(--page-padding);
  margin-bottom: var(--large-padding);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.student-filter-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-dark);
  margin: 0;
}

.custom-dropdown-wrapper {
  position: relative;
  width: 100%;
  max-width: 300px;
}

.custom-dropdown-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background-color: #f8fafc;
  border: 2px solid #e2e8f0;
  border-radius: 8px;
  font-size: 14px;
  color: var(--text-dark);
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
  text-align: left;
}

.custom-dropdown-trigger:hover {
  border-color: var(--primary-blue);
  background-color: #f1f5f9;
}

.custom-dropdown-trigger:focus {
  outline: none;
  border-color: var(--primary-blue);
  box-shadow: 0 0 0 3px rgba(1, 38, 153, 0.1);
  background-color: white;
}

.dropdown-text {
  font-weight: 500;
  flex: 1;
  text-align: left;
}

.dropdown-arrow {
  color: #64748b;
  transition: transform 0.2s ease;
  flex-shrink: 0;
  margin-left: 8px;
}

.dropdown-arrow.rotate-180 {
  transform: rotate(180deg);
}

.custom-dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 50;
  margin-top: 4px;
  background-color: white;
  border: 2px solid #e2e8f0;
  border-radius: 8px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  animation: dropdown-appear 0.15s ease-out;
}

@keyframes dropdown-appear {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.dropdown-option {
  width: 100%;
  padding: 12px 16px;
  background: none;
  border: none;
  font-size: 14px;
  color: var(--text-dark);
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: left;
  font-family: inherit;
  border-bottom: 1px solid #f1f5f9;
}

.dropdown-option:last-child {
  border-bottom: none;
}

.dropdown-option:hover {
  background-color: #f8fafc;
  color: var(--primary-blue);
}

.dropdown-option.selected {
  background-color: var(--primary-blue);
  color: white;
  font-weight: 500;
}

.dropdown-option.selected:hover {
  background-color: #1e40af;
  color: white;
}

/* Loading State */
.payment-history-loading {
  background-color: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  padding: var(--large-padding);
  text-align: center;
  color: var(--text-dark);
  font-size: 16px;
}

/* Payment History List */
.payment-history-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.no-payment-history {
  color: var(--medium-text);
  font-size: 16px;
  padding: var(--large-padding);
}

/* History Flight Card */
.history-flight-card {
  background-color: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  padding: var(--page-padding);
  transition: all 0.2s ease;
  border: 2px solid transparent;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.history-flight-card:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  border-color: var(--primary-blue);
  transform: translateY(-2px);
}

/* Flight Card Main Section */
.history-flight-main {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
}

.history-flight-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1;
}

.history-flight-name {
  font-size: 16px;
  font-weight: 600;
  color: var(--text-dark);
}

.history-flight-date-time {
  font-size: 14px;
  color: var(--medium-text);
}

.history-flight-cost {
  font-size: 16px;
  font-weight: 600;
  color: var(--primary-blue);
  flex-shrink: 0;
}

/* Flight Card Footer */
.history-flight-footer {
  padding-top: var(--small-padding);
  border-top: 1px solid #f0f0f0;
  font-size: 14px;
  color: var(--medium-text);
  text-transform: capitalize;
} .payment-container {
  padding: var(--page-padding);
}
.payment-container h2 {
  margin-bottom: var(--small-padding);
  color: var(--text-dark);
}
.payment-container > p {
  margin-bottom: var(--large-padding);
  color: var(--text-dark);
  font-size: 14px;
}
/* Loading and Error States */
.payment-loading,
.payment-error {
  background-color: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  padding: var(--large-padding);
  margin-top: var(--page-padding);
  text-align: center;
  color: var(--text-dark);
  font-size: 16px;
}
.payment-error {
  color: var(--primary-red);
  border: 1px solid rgba(192, 25, 53, 0.2);
}
/* Success Message */
.success-message {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
  border-radius: 12px;
  padding: var(--page-padding);
  margin-bottom: var(--page-padding);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
}
.close-message {
  background: none;
  border: none;
  color: #155724;
  font-size: 20px;
  cursor: pointer;
  padding: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background-color 0.2s ease;
}
.close-message:hover {
  background-color: rgba(21, 87, 36, 0.1);
}
/* Pending Payments Section */

.payment-header {
  background-color: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  padding: var(--section-padding);
  margin-bottom: var(--page-padding);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.payment-header h2 {
  margin: 0;
  color: var(--text-dark);
  font-size: 20px;
}
.total-pending {
  font-size: 18px;
  font-weight: 600;
  color: var(--primary-blue);
}
/* Pending Flights List */
.pending-flights-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: var(--section-padding);
  width: 100%;
}
.pending-flight-card {
  background-color: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  padding: var(--page-padding);
  transition: all 0.2s ease;
  border: 2px solid transparent;
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  box-sizing: border-box;
}
.pending-flight-card:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  border-color: var(--primary-blue);
  transform: translateY(-2px);
}
/* Flight Card Header */
.flight-card-header {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
}
.flight-name {
  font-size: 16px;
  font-weight: 600;
  color: var(--text-dark);

}
/* Flight Card Middle */
.flight-card-middle {
  display: flex;
  width: 100%;
}
.flight-duration {
  font-size: 14px;
  color: var(--text-muted);
  flex: 1;
}
/* Instructor Section - matching FlightCard pattern */
.flight-instructor-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-left: 16px;
  min-width: 70px;
  flex-shrink: 0;
}
.instructor-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #e0e0e0;
  margin-bottom: 4px;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="gray"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>');
  background-position: center;
  background-repeat: no-repeat;
  background-size: 60%;
}
.from-text {
  font-size: 11px;
  color: #999;
  text-transform: uppercase;
}
.instructor-name {
  font-size: 12px;
  color: #333;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
}
/* Flight Card Footer */
.flight-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: var(--small-padding);
  border-top: 1px solid #f0f0f0;
  width: 100%;
}
.flight-date-time {
  font-size: 14px;
  color: var(--text-muted);
  flex: 1;
}
.cost-amount {
  font-size: 16px;
  font-weight: 600;
  color: var(--primary-blue);
  flex-shrink: 0;
}
/* Remove old styles that are no longer needed - scope to payment page only */
.payment-container .flight-info {
  display: none;
}
.payment-container .flight-date {
  display: none;
}
.payment-container .flight-details {
  display: none;
}
.payment-container .flight-instructor {
  display: none;
}
/* Payment Actions */
.payment-actions {
  text-align: center;
  margin-top: var(--section-padding);
}
.payment-history-link.secondary {
  background-color: transparent;
  color: var(--text-muted);
  border: 1px solid #e1e1e1;
}
.payment-history-link.secondary:hover {
  background-color: #f5f5f5;
  color: var(--text-dark);
}
/* Original styles for payment form */
.payment-form {
  background-color: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  padding: var(--page-padding);
  margin-top: var(--page-padding);
}
.payment-amount-section,
.payment-method-section {
  margin-bottom: var(--large-padding);
}
.payment-amount-section label,
.payment-method-section label {
  display: block;
  margin-bottom: var(--small-padding);
  font-weight: 600;
  color: var(--text-dark);
}
.amount-input {
  display: flex;
  align-items: center;
  border: 1px solid #e1e1e1;
  border-radius: 8px;
  overflow: hidden;
}
.currency-symbol {
  padding: 12px var(--page-padding);
  background-color: #f5f5f5;
  color: var(--text-dark);
  font-weight: 600;
  border-right: 1px solid #e1e1e1;
}
.amount-input input {
  flex: 1;
  padding: 12px var(--page-padding);
  border: none;
  outline: none;
  font-size: 16px;
}
.payment-methods {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.payment-method-card {
  padding: var(--page-padding);
  background-color: #f5f5f5;
  border: 1px solid #e1e1e1;
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
}
.payment-method-card.active {
  border-color: var(--primary-blue);
  background-color: rgba(0, 123, 255, 0.05);
}
.payment-method-card span {
  font-weight: 600;
  color: var(--text-dark);
}
.submit-payment-button {
  width: 100%;
  padding: var(--page-padding);
  background-color: var(--primary-blue);
  color: white;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s ease;
  margin-top: var(--small-padding);
}
.submit-payment-button:hover {
  background-color: var(--primary-blue-dark);
}
.payment-message {
  background-color: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  padding: var(--large-padding);
  margin-top: var(--page-padding);
  text-align: center;
}
.payment-message p {
  color: var(--text-dark);
  font-size: 16px;
  margin-bottom: var(--page-padding);
}
.payment-history-link {
  display: inline-block;
  color: var(--primary-blue);
  font-weight: 600;
  text-decoration: none;
  padding: var(--small-padding) 18px;
  border: 1px solid var(--primary-blue);
  border-radius: 8px;
  transition: all 0.2s ease;
  background-color: transparent;
  cursor: pointer;
}
.payment-history-link:hover {
  background-color: var(--primary-blue);
  color: white;
}
/* Mobile-first design - no media queries needed */
.payment-header {
  flex-direction: column;
  align-items: flex-start;
  gap: var(--small-padding);
}
.pending-flight-card {
  flex-direction: column;
  align-items: flex-start;
  gap: 0px;
}
.flight-date-time {
  flex-direction: column;
  align-items: flex-start;
  gap: 0px;
}
/* Remove view payment button styles since we're not using it anymore */
.view-payment-button {
  display: none;
} .club-dialog-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}
.club-dialog {
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  width: 90%;
  max-width: 500px;
  padding: var(--large-padding);
  max-height: 90vh;
  overflow-y: auto;
}
.club-dialog h2 {
  margin-top: 0;
  margin-bottom: var(--page-padding);
  color: #333;
  font-size: 1.5rem;
}
.club-dialog-error {
  background-color: #fff2f0;
  border: 1px solid #ffccc7;
  color: #ff4d4f;
  padding: var(--small-padding) 12px;
  border-radius: 4px;
  margin-bottom: var(--page-padding);
}
.club-dialog-form .form-group {
  margin-bottom: var(--page-padding);
}
.club-dialog-form label {
  display: block;
  margin-bottom: 6px;
  font-weight: 500;
  color: #333;
}
.club-dialog-form input,
.club-dialog-form textarea {
  width: 100%;
  padding: var(--page-padding) 12px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  font-size: 1rem;
}
.club-dialog-form input:focus,
.club-dialog-form textarea:focus {
  border-color: #40a9ff;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
  outline: none;
}
.club-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: var(--large-padding);
}
.club-dialog-actions button {
  display: flex;
  align-items: center;
  gap: var(--small-padding);
  padding: var(--small-padding) 16px;
  border-radius: 4px;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s ease;
}
.club-dialog-actions button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.club-dialog-actions .save-button {
  background-color: #1890ff;
  color: white;
  border: none;
}
.club-dialog-actions .save-button:hover:not(:disabled) {
  background-color: #40a9ff;
}
.club-dialog-actions .cancel-button {
  background-color: white;
  color: #333;
  border: 1px solid #d9d9d9;
}
.club-dialog-actions .cancel-button:hover:not(:disabled) {
  color: #40a9ff;
  border-color: #40a9ff;
} .club-selector {
  margin-bottom: var(--page-padding);
}
.club-selector label {
  display: block;
  margin-bottom: var(--small-padding);
  font-weight: 500;
  color: #333;
}
.club-selector-container {
  display: flex;
  gap: var(--small-padding);
}
.club-selector select {
  flex: 1;
  padding: var(--page-padding) 12px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  font-size: 1rem;
  background-color: white;
}
.club-selector select:focus {
  border-color: #40a9ff;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
  outline: none;
}
.create-club-button {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 38px;
  height: 38px;
  background-color: #1890ff;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.3s ease;
}
.create-club-button:hover:not(:disabled) {
  background-color: #40a9ff;
}
.create-club-button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}
.club-selector-error {
  margin-top: var(--small-padding);
  color: #ff4d4f;
  font-size: 0.9rem;
} .add-edit-instructor-page {
  padding: var(--page-padding);
}
.page-title {
  font-size: 24px;
  margin-bottom: var(--page-padding);
  color: var(--text-dark);
}
.error-message {
  background-color: rgba(244, 67, 54, 0.1);
  color: #F44336;
  padding: 12px;
  border-radius: 4px;
  margin-bottom: var(--page-padding);
  font-size: 14px;
}
.instructor-form {
  display: flex;
  flex-direction: column;
  gap: var(--page-padding);
}
.form-image-container {
  display: flex;
  justify-content: center;
  margin-bottom: var(--page-padding);
}
.form-image-preview {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  overflow: hidden;
  background-color: var(--light-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: 2px dashed var(--primary-blue);
}
.form-image-preview img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.upload-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--primary-blue);
}
.upload-placeholder svg {
  margin-bottom: var(--small-padding);
}
.upload-placeholder span {
  font-size: 14px;
}
.hidden-input {
  display: none;
}
.form-group {
  margin-bottom: var(--page-padding);
}
.form-group label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: var(--small-padding);
  color: var(--text-dark);
}
.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group input[type="number"],
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 12px;
  border: 1px solid #e1e1e1;
  border-radius: 4px;
  font-size: 16px;
}
.form-group textarea {
  resize: vertical;
  min-height: 100px;
}
.checkbox-group {
  margin-bottom: 0;
}
.checkbox-label {
  display: flex !important;
  align-items: center;
  cursor: pointer;
}
.checkbox-label input[type="checkbox"] {
  margin-right: 8px;
}
.form-actions {
  display: flex;
  justify-content: space-between;
  margin-top: var(--page-padding);
}
.cancel-button {
  padding: 12px var(--large-padding);
  background-color: transparent;
  border: 1px solid var(--text-dark);
  color: var(--text-dark);
  border-radius: 4px;
  font-weight: 600;
  cursor: pointer;
}
.submit-button {
  padding: 12px var(--large-padding);
  background-color: var(--primary-blue);
  color: white;
  border: none;
  border-radius: 4px;
  font-weight: 600;
  cursor: pointer;
}
.submit-button:disabled {
  opacity: 0.7;
  cursor: not-allowed;
} .students-list-page {
  padding: var(--page-padding);
  background-color: #ffffff;
}
.page-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
  text-align: center;
}
.page-header h1 {
  font-size: 24px;
  color: #000000;
  margin: 0;
  font-weight: 600;
}
.add-button {
  background-color: var(--primary-blue);
  color: white;
  border: none;
  border-radius: 5px;
  padding: var(--small-padding) 16px;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s;
}
.add-button:hover {
  background-color: var(--primary-blue-light);
}
.add-button svg {
  margin-right: 8px;
}
.empty-state {
  text-align: center;
  padding: 30px;
  background-color: #ffffff;
  border-radius: 8px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  margin-top: 15px;
}
.empty-state p {
  margin-bottom: var(--section-padding);
  color: #666;
  font-size: 16px;
}
.students-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 12px;
  width: 100%;
}
.student-grid-item {
  display: flex;
  flex-direction: column;
  height: auto;
  min-height: auto;
}
/* Specific styling for management context student cards */
.management-student-card {
  height: 100%;
}
.loading {
  text-align: center;
  padding: 30px;
  color: #666;
  font-size: 16px;
}
.error-message {
  background-color: #f8d7da;
  color: #721c24;
  padding: 12px;
  border-radius: 4px;
  margin-bottom: 15px;
  font-size: 14px;
}
.bottom-actions {
  margin-top: 15px;
  display: flex;
  justify-content: center;
  padding: var(--small-padding) 0;
}

.instructor-filter {
  margin-bottom: 1rem;
  padding: 1rem;
  background-color: #f8f9fa;
  border-radius: 8px;
}

.instructor-filter label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 600;
  color: #374151;
}

.instructor-select {
  width: 100%;
  padding: 0.5rem;
  border: 1px solid #d1d5db;
  border-radius: 4px;
  background-color: white;
  font-size: 0.875rem;
  color: #374151;
}

.instructor-select:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
}
 .add-edit-student-page {
  padding: .2em 15px;
  max-width: 600px;
}
.page-title {
  font-size: 1.5rem;
  margin-bottom: var(--section-padding);
  color: #333;
}
.error-message {
  background-color: #f8d7da;
  color: #721c24;
  padding: var(--page-padding);
  border-radius: 4px;
  margin-bottom: var(--section-padding);
}
.student-form {
  display: flex;
  flex-direction: column;
  gap: 15px;
}
.form-image-container {
  display: flex;
  justify-content: center;
  margin-bottom: var(--section-padding);
}
.form-image-preview {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #f0f0f0;
  cursor: pointer;
  border: 2px dashed #ccc;
  transition: all 0.3s ease;
}
.form-image-preview:hover {
  border-color: #0c3b94;
}
.form-image-preview img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.upload-placeholder {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #666;
}
.upload-placeholder svg {
  margin-bottom: 5px;
}
.upload-placeholder span {
  font-size: 0.8rem;
}
.hidden-input {
  display: none;
}
.form-group {
  margin-bottom: 15px;
}
.form-group label {
  display: block;
  margin-bottom: 5px;
  font-weight: 500;
  color: #333;
}
.form-group input,
.form-group select {
  width: 100%;
  padding: var(--page-padding);
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 1rem;
}
.checkbox-group {
  display: flex;
  align-items: center;
}
.checkbox-label {
  display: flex;
  align-items: center;
  cursor: pointer;
}
.checkbox-label input {
  margin-right: 8px;
  width: auto;
}
.form-actions {
  display: flex;
  justify-content: space-between;
  margin-top: var(--section-padding);
}
.cancel-button,
.submit-button {
  padding: var(--page-padding) 20px;
  border-radius: 4px;
  font-weight: 500;
  font-size: 1rem;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.cancel-button {
  background-color: #fff;
  color: #333;
  border: 1px solid #ddd;
}
.cancel-button:hover {
  background-color: #f5f5f5;
}
.submit-button {
  background-color: #0c3b94;
  color: #fff;
  border: none;
}
.submit-button:hover {
  background-color: #0a2e73;
}
.submit-button:disabled {
  background-color: #97b0dd;
  cursor: not-allowed;
} .student-detail-page {
  padding: var(--page-padding);
  background-color: #f8fafc;
}

/* Student Profile Card */
.student-profile-card {
  background: white;
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 24px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  border: 1px solid #e5e7eb;
}

.student-profile-header {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 20px;
}

.student-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  overflow: hidden;
  background-color: var(--primary-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.student-avatar img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.student-initials {
  color: white;
  font-size: 28px;
  font-weight: 600;
}

.student-profile-info {
  flex: 1;
}

.student-name {
  font-size: 24px;
  font-weight: 600;
  color: #111827;
  margin: 0 0 4px 0;
}

.student-email {
  color: #6b7280;
  font-size: 16px;
  margin: 0 0 12px 0;
}

.student-stats {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.flight-hours,
.license-type {
  background-color: #f3f4f6;
  color: #374151;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 500;
}

.license-type {
  background-color: var(--primary-blue);
  color: white;
}

/* Progress Summary */
.progress-summary {
  border-top: 1px solid #e5e7eb;
  padding-top: 20px;
}

.progress-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.progress-header h3 {
  font-size: 18px;
  font-weight: 600;
  color: #111827;
  margin: 0;
}

.overall-progress {
  font-size: 24px;
  font-weight: 700;
  color: var(--primary-blue);
}

.progress-bar {
  height: 8px;
  background-color: #e5e7eb;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 12px;
}

.progress-fill {
  height: 100%;
  background-color: var(--primary-blue);
  transition: width 0.5s ease;
}

.progress-details {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  color: #6b7280;
}

/* View Selector Dropdown */
.view-selector-container {
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.view-selector-label {
  font-size: 14px;
  font-weight: 500;
  color: #374151;
  white-space: nowrap;
}

.custom-dropdown-wrapper {
  position: relative;
  min-width: 200px;
}

.custom-dropdown-trigger {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  border: 2px solid #e2e8f0;
  border-radius: 8px;
  background-color: white;
  color: #334155;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
  text-align: left;
}

.custom-dropdown-trigger:hover {
  border-color: var(--primary-blue);
  background-color: #f1f5f9;
}

.custom-dropdown-trigger:focus {
  outline: none;
  border-color: var(--primary-blue);
  box-shadow: 0 0 0 3px rgba(1, 38, 153, 0.1);
  background-color: white;
}

.dropdown-text {
  font-weight: 500;
  flex: 1;
  text-align: left;
}

.dropdown-arrow {
  color: #64748b;
  transition: transform 0.2s ease;
  flex-shrink: 0;
  margin-left: 8px;
}

.dropdown-arrow.rotate-180 {
  transform: rotate(180deg);
}

.custom-dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 50;
  margin-top: 4px;
  background-color: white;
  border: 2px solid #e2e8f0;
  border-radius: 8px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  animation: dropdown-appear 0.15s ease-out;
}

@keyframes dropdown-appear {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.dropdown-option {
  width: 100%;
  padding: 12px 16px;
  background: none;
  border: none;
  font-size: 14px;
  color: var(--text-dark);
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: left;
  font-family: inherit;
  border-bottom: 1px solid #f1f5f9;
}

.dropdown-option:last-child {
  border-bottom: none;
}

.dropdown-option:hover {
  background-color: #f8fafc;
  color: var(--primary-blue);
}

.dropdown-option.selected {
  background-color: var(--primary-blue);
  color: white;
  font-weight: 500;
}

.dropdown-option.selected:hover {
  background-color: #1e40af;
  color: white;
}

/* View Content */
.view-content {
  background: transparent;
}

.training-progress-content {
  /* Inherit styles from TrainingProgressPage but within white cards */
}

/* Flight History */
.flight-history {
  /* Reuse styles from TrainingPage */
}

.flight-group {
  margin-bottom: 24px;
}

.month-header {
  font-size: 18px;
  font-weight: 600;
  color: #111827;
  margin-bottom: 12px;
  padding: 8px 0;
  border-bottom: 2px solid #e5e7eb;
}

.flight-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Responsive Design */
@media (max-width: 768px) {
  .student-profile-header {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  
  .student-avatar {
    width: 100px;
    height: 100px;
  }
  
  .student-initials {
    font-size: 36px;
  }
  
  .student-stats {
    justify-content: center;
  }
  
  .tab-button {
    font-size: 14px;
    padding: 10px 12px;
  }
  
  .progress-details {
    flex-direction: column;
    gap: 4px;
    text-align: center;
  }
} .share-invite-container {
  margin: 1.5rem 0;
  border-radius: 8px;
  background-color: var(--white);
}
.invite-code-section {
  margin-bottom: 1.5rem;
}
.invite-code-section h3 {
  font-size: 1.1rem;
  margin-bottom: 0.75rem;
  color: var(--dark-text);
}
.invite-code-row {
  display: flex;
  align-items: center;
  gap: var(--page-padding);
  margin-bottom: var(--page-padding);
  border: 1px dashed var(--primary-blue);
  border-radius: 26px;
  padding: var(--small-padding) 12px;
}
.invite-code {
  font-size: 18px;
  font-family: monospace;
  background: none;
  flex-grow: 1;
  border: none;
  padding: 4px;
}
.share-button.sms {
  padding: var(--small-padding) 24px;
  font-size: 14px;
  white-space: nowrap;
  background-color: var(--primary-blue);
  border: none;
  border-radius: 4px;
  color: var(--white);
  font-weight: 500;
}
.share-button.sms:hover {
  background-color: var(--primary-blue);
  opacity: 0.9;
}
/* Hide the SMS icon */
.share-button.sms svg {
  display: none;
}
/* Change the button text from "SMS" to "Send SMS" */
.share-button.sms::after {
  content: "Send SMS";
}
/* Hide the URL display */
.invite-url {
  display: none;
}
/* Restore other sharing options */
.share-options {
  margin-top: 1.5rem;
}
.share-options h3 {
  font-size: 1.1rem;
  margin-bottom: 0.75rem;
  color: var(--dark-text);
}
.share-buttons {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.share-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.65rem 1.25rem;
  border: none;
  border-radius: 4px;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  color: white;
  background-color: #2196f3;
}
.share-button.sms {
  padding: var(--small-padding) 20px;
  border-radius: 26px;
}
.share-button svg {
  width: 18px;
  height: 18px;
}
.share-button.email {
  background-color: var(--button-orange);
}
.share-button:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}
.share-button svg path {
  stroke: currentColor;
}
.invite-code-loading {
  text-align: center;
  color: var(--lighter-text);
  padding: 1rem;
}
.invite-section-container {
  max-width: 800px;
  margin: 0 auto;
}
.invite-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--large-padding);
}
.invite-section-header h3 {
  margin: 0;
  font-size: 20px;
  padding-left: var(--page-padding);
  color: var(--dark-text);
}
.invite-section-content {
  background-color: var(--white);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  overflow: hidden;
}
.invite-share-section {
  padding: 0 20px;
}
.invite-instructions {
  padding: var(--section-padding);
  border-top: 1px solid var(--border-color);
}
.invite-instructions h4 {
  margin-top: 0;
  margin-bottom: var(--large-padding);
  font-size: 18px;
  color: var(--dark-text);
}
.how-it-works-steps {
  display: flex;
  flex-direction: column;
  gap: var(--section-padding);
}
.step-item {
  display: flex;
  align-items: center;
  gap: var(--page-padding);
  font-size: 14px;
}
.step-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: var(--primary-blue);
  flex-shrink: 0;
}
.step-item p {
  margin: 0;
  color: var(--dark-text);
  line-height: 1.4;
}
 .invite-code-manager {
  background: var(--card-background);
  border-radius: 12px;
  padding: 24px;
  box-shadow: var(--card-shadow);
  margin-bottom: 20px;
}

.manager-header {
  text-align: center;
  margin-bottom: 24px;
}

.manager-header h3 {
  color: var(--text-primary);
  margin: 0 0 8px 0;
  font-size: 1.3rem;
  font-weight: 600;
}

.manager-header p {
  color: var(--text-secondary);
  margin: 0;
  font-size: 0.9rem;
}

.loading-state {
  text-align: center;
  color: var(--text-secondary);
  padding: 40px 20px;
  font-size: 1rem;
}

.error-state {
  background: var(--error-background);
  color: var(--error-text);
  padding: 12px 16px;
  border-radius: 8px;
  margin-bottom: 20px;
  font-size: 0.9rem;
  text-align: center;
  border: 1px solid var(--error-color);
}

.codes-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 24px;
}

.code-item {
  background: var(--input-background);
  border: 1px solid var(--border-color);
  border-radius: 10px;
  padding: 20px;
  transition: all 0.2s ease;
}

.code-item:hover {
  border-color: var(--primary-color);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.code-display {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 16px;
  padding: 16px;
  background: var(--card-background);
  border-radius: 8px;
  border: 1px solid var(--border-color);
}

.code-text {
  font-family: 'Courier New', monospace;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--primary-color);
  letter-spacing: 1px;
  text-transform: uppercase;
  word-break: break-all;
}

.copy-btn {
  border: none;
  border-radius: 6px;
  padding: 10px 12px;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  font-size: 1rem;
}

.copy-btn:hover {
  background: var(--primary-hover);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.copy-btn.copied {
  background: var(--success-color);
  cursor: not-allowed;
  transform: none;
}

.code-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-bottom: 12px;
}

.code-actions button {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: none;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  min-width: 100px;
  justify-content: center;
}

.code-actions button:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.code-actions button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}



.code-info {
  text-align: center;
  color: var(--text-secondary);
  font-size: 0.8rem;
  margin-top: 8px;
}

.no-codes-section {
  text-align: center;
  padding: 40px 20px;
  margin-bottom: 24px;
}

.no-codes-section p {
  color: var(--text-secondary);
  margin: 0;
  font-size: 1rem;
}

.generate-btn {
  width: 100%;
  border: 2px solid var(--primary-color);
  padding: 16px 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 10px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.generate-btn:hover {
 
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}

.generate-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}
.invite-instructors-container {
  max-width: 800px;
  margin: 0 auto;
}
.invite-instructors-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--large-padding);
}
.invite-instructors-header h2 {
  margin: 0;
  font-size: 24px;
  color: var(--text-dark);
}
.invite-instructors-content {
  background-color: var(--white);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  overflow: hidden;
}
.invite-share-section {
  padding: 0 20px;
}
.invite-instructions {
  padding: var(--section-padding);
  border-top: 1px solid var(--border-color);
}
.invite-instructions h4 {
  margin-top: 0;
  margin-bottom: var(--large-padding);
  font-size: 18px;
  color: var(--text-dark);
}
.how-it-works-steps {
  display: flex;
  flex-direction: column;
  gap: var(--section-padding);
}
.step-item {
  display: flex;
  align-items: center;
  gap: var(--page-padding);
  font-size: 14px;
}
.step-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: #4169E1;
  flex-shrink: 0;
}
.step-item p {
  margin: 0;
  color: var(--text-dark);
  line-height: 1.4;
}
.loading-container {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 48px 0;
  font-size: 16px;
  color: var(--dark-text);
} .invite-landing-page {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1rem;
  gap: 1.5rem;
}
.invite-landing-page .invite-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}
.invite-landing-page .invite-title {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--primary-blue);
  margin-bottom: 1rem;
}
.invite-landing-page .benefits-section {
  background-color: var(--background-gray);
  border-radius: 0.5rem;
  padding: 1.25rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
.invite-landing-page .benefits-section h2 {
  font-size: 1.125rem;
  margin-bottom: 1rem;
  color: var(--dark-text);
}
.invite-landing-page .benefits-section ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.invite-landing-page .benefits-section li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.invite-landing-page .benefits-section li svg {
  color: var(--primary-blue);
  flex-shrink: 0;
}
.invite-landing-page .step-item {
  display: flex;
  align-items: center;
  margin-bottom: 1rem;
  gap: 1rem;
}
.invite-landing-page .step-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  background-color: var(--light-blue);
  border-radius: 50%;
  color: var(--primary-blue);
  flex-shrink: 0;
}
.invite-landing-page .invite-actions {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: auto;
  padding-bottom: 1rem;
}
/* New specific button styles */
.invite-landing-page .invite-primary-btn,
.invite-landing-page .invite-secondary-btn {
  display: block !important;
  width: 100% !important;
  padding: 12px 20px !important;
  border-radius: 8px !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  text-align: center !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  margin: 0 !important;
  outline: none !important;
  -webkit-appearance: none !important;
}
.invite-landing-page .invite-primary-btn {
  background-color: var(--primary-blue) !important;
  color: var(--white) !important;
  border: none !important;
  box-shadow: 0 2px 4px rgba(21, 101, 192, 0.3) !important;
}
.invite-landing-page .invite-primary-btn:hover {
  background-color: var(--primary-blue-light) !important;
}
.invite-landing-page .invite-secondary-btn {
  background-color: transparent !important;
  color: var(--primary-blue) !important;
  border: 1px solid var(--primary-blue) !important;
}
.invite-landing-page .invite-secondary-btn:hover {
  background-color: var(--light-blue) !important;
}
/* Loading state */
.instructor-invite-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 2rem;
}
.loader {
  border: 4px solid rgba(0, 0, 0, 0.1);
  border-radius: 50%;
  border-top: 4px solid var(--primary-blue);
  width: 40px;
  height: 40px;
  animation: spin 1s linear infinite;
  margin-bottom: 1rem;
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
/* Error state */
.instructor-invite-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 2rem;
  text-align: center;
}
.instructor-invite-error .invite-secondary-btn {
  display: block !important;
  width: auto !important;
  min-width: 150px !important;
  padding: 12px 20px !important;
  border-radius: 8px !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  text-align: center !important;
  cursor: pointer !important;
  background-color: transparent !important;
  color: var(--primary-blue) !important;
  border: 1px solid var(--primary-blue) !important;
  margin-top: 1rem !important;
}
.error-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  background-color: rgba(220, 53, 69, 0.1);
  color: var(--error-red);
  border-radius: 50%;
  font-size: 1.5rem;
  font-weight: bold;
  margin-bottom: 1rem;
}
/* New styles for login requirement layout */
.invite-landing-page .invite-message-section {
  background-color: var(--background-gray);
  border-radius: 0.5rem;
  padding: 1.25rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  text-align: center;
}
.invite-landing-page .invite-message {
  font-size: 1.125rem;
  color: var(--dark-text);
  margin-bottom: 0.75rem;
  line-height: 1.4;
}
.invite-landing-page .login-requirement {
  font-size: 1rem;
  color: var(--medium-text);
  margin: 0;
}
.invite-landing-page .invite-code-display {
  background-color: var(--light-blue);
  border-radius: 0.5rem;
  padding: 1rem;
  text-align: center;
  border: 1px solid var(--primary-blue);
}
.invite-landing-page .invite-code-display .label {
  display: block;
  font-size: 0.875rem;
  color: var(--medium-text);
  margin-bottom: 0.5rem;
  font-weight: 500;
}
.invite-landing-page .invite-code-display .code {
  display: block;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--primary-blue);
  font-family: 'Courier New', monospace;
  letter-spacing: 0.1em;
}
.invite-landing-page .invite-footer {
  text-align: center;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border-gray);
}
.invite-landing-page .invite-footer p {
  margin: 0.5rem 0;
  font-size: 0.875rem;
  color: var(--medium-text);
}
.invite-landing-page .link-button {
  background: none;
  border: none;
  color: var(--primary-blue);
  text-decoration: underline;
  cursor: pointer;
  font-size: inherit;
  padding: 0;
  margin: 0;
}
.invite-landing-page .link-button:hover {
  color: var(--primary-blue-light);
}
/* Update primary button to include icons */
.invite-landing-page .invite-primary-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
}
.invite-landing-page .invite-secondary-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
} .invite-codes-page {
  padding: var(--page-padding);
} .clubs-container {
  padding: var(--page-padding);
}
.clubs-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--section-padding);
}
.clubs-header h2 {
  margin: 0;
  color: var(--text-dark);
}
.add-club-button {
  background-color: var(--primary-blue);
  color: white;
  border: none;
  border-radius: 4px;
  padding: var(--small-padding) 16px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
}
.clubs-loading,
.clubs-error {
  text-align: center;
  padding: 32px;
  color: var(--text-dark);
}
.clubs-error {
  color: var(--primary-red);
}
.no-clubs {
  text-align: center;
  padding: 32px;
  color: var(--text-dark);
  font-style: italic;
}
.club-card {
  background-color: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  padding: var(--page-padding);
  margin-bottom: var(--page-padding);
}
.club-header {
  display: flex;
  align-items: center;
  margin-bottom: var(--page-padding);
}
.club-logo {
  width: 60px;
  height: 60px;
  border-radius: 8px;
  overflow: hidden;
  margin-right: 16px;
  background-color: var(--light-blue);
  display: flex;
  align-items: center;
  justify-content: center;
}
.club-logo img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.club-initials {
  font-size: 24px;
  font-weight: 700;
  color: var(--primary-blue);
}
.club-info {
  flex: 1;
}
.club-info h3 {
  margin: 0 0 4px 0;
  font-size: 18px;
  color: var(--text-dark);
}
.club-location {
  font-size: 14px;
  color: var(--text-dark);
  margin: 0 0 8px 0;
}
.club-date {
  font-size: 12px;
  color: var(--text-medium);
  margin: 0;
}
.club-stats {
  display: flex;
  font-size: 14px;
  color: var(--text-dark);
  gap: 12px;
}
.stat-item {
  display: flex;
  align-items: center;
}
.stat-icon {
  margin-right: 4px;
  color: var(--primary-blue);
  font-size: 14px;
}
.club-status {
  margin-left: 16px;
}
.status-indicator {
  display: inline-block;
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
}
.status-indicator.active {
  background-color: rgba(76, 175, 80, 0.1);
  color: #4CAF50;
}
.status-indicator.inactive {
  background-color: rgba(244, 67, 54, 0.1);
  color: #F44336;
}
.club-contact {
  padding: var(--small-padding) 0;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
  margin-bottom: var(--page-padding);
}
.contact-item {
  display: flex;
  font-size: 14px;
  margin-bottom: 4px;
}
.contact-label {
  width: 60px;
  font-weight: 600;
  color: var(--text-dark);
}
.contact-value {
  color: var(--text-dark);
}
.website-link {
  display: flex;
  align-items: center;
  text-decoration: none;
  color: var(--primary-blue);
}
.website-icon {
  margin-right: 4px;
  font-size: 14px;
}
.club-actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--small-padding);
  padding-top: var(--small-padding);
}
.club-edit-button {
  border: none;
  border-radius: 4px;
  padding: var(--small-padding) 16px;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
  background-color: transparent;
  border: 1px solid var(--primary-blue);
  color: var(--primary-blue);
  display: flex;
  align-items: center;
  gap: 6px;
}
.club-status-button.activate {
  background-color: transparent;
  border: 1px solid #4CAF50;
  color: #4CAF50;
}
.club-status-button.deactivate {
  background-color: transparent;
  border: 1px solid #F44336;
  color: #F44336;
} .club-form-container {
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
.club-form-container h2 {
  margin-bottom: 1.5rem;
  color: #333;
  font-size: 1.8rem;
}
.club-form-error {
  background-color: #fff8f8;
  border-left: 4px solid #f44336;
  color: #d32f2f;
  padding: 12px var(--page-padding);
  margin-bottom: var(--section-padding);
  border-radius: 4px;
}
.club-form-loading {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 300px;
  font-size: 1.2rem;
  color: #666;
}
.club-form {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.form-group {
  display: flex;
  flex-direction: column;
}
.form-group label {
  font-weight: 500;
  margin-bottom: 0.5rem;
  color: #555;
}
.form-group input,
.form-group textarea {
  padding: var(--page-padding) 12px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 1rem;
  transition: border-color 0.2s ease-in-out;
}
.form-group input:focus,
.form-group textarea:focus {
  border-color: #3b82f6;
  outline: none;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}
.form-group input[type="checkbox"] {
  margin-right: 0.5rem;
  width: auto;
}
.checkbox-group {
  flex-direction: row;
  align-items: center;
}
.checkbox-group label {
  display: flex;
  align-items: center;
  cursor: pointer;
}
.form-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: var(--large-padding);
}
.delete-action {
  margin-left: auto;
}
.action-icon-container.disabled {
  opacity: 0.5;
  pointer-events: none;
}
.form-actions button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: var(--page-padding) 16px;
  border: none;
  border-radius: 4px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.save-button {
  background-color: #3b82f6;
  color: white;
}
.save-button:hover {
  background-color: #2563eb;
}
.cancel-button {
  background-color: #f3f4f6;
  color: #374151;
}
.cancel-button:hover {
  background-color: #e5e7eb;
}
.delete-button {
  background-color: #ef4444;
  color: white;
  margin-left: auto;
}
.delete-button:hover {
  background-color: #dc2626;
}
button:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
 .instructors-manage-container {
  padding: var(--page-padding);
}
.instructors-manage-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--large-padding);
}
.instructors-manage-header h2 {
  font-size: 22px;
  margin: 0;
  color: #333;
}
.invite-instructors-button {
  display: flex;
  align-items: center;
  gap: var(--small-padding);
  background-color: #2c82c9;
  color: white;
  border: none;
  border-radius: 6px;
  padding: var(--page-padding) 16px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.2s;
}
.invite-instructors-button:hover {
  background-color: #1a6eaf;
}
.instructors-error {
  color: #d9534f;
  text-align: center;
  margin-top: var(--large-padding);
  font-size: 16px;
} .flight-details-container {
    padding: var(--section-padding);
    max-width: 800px;
}
.flight-details-loading,
.flight-details-error {
    text-align: center;
    padding: 40px 20px;
    font-size: 1.1rem;
    color: #666;
}
.flight-details-error {
    color: #e74c3c;
}
/* New header card style */
.flight-header-card {
    background-color: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    padding: var(--section-padding);
    margin-bottom: var(--section-padding);
    display: flex;
    align-items: center;
    position: relative;
}
.aircraft-avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    overflow: hidden;
    margin-right: 16px;
    background-color: #f5f5f5;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #ddd;
}
.avatar-placeholder {
    color: #888;
    font-size: 14px;
    text-align: center;
}
.aircraft-info {
    flex: 1;
}
.aircraft-info h1 {
    margin: 0 0 8px 0;
    font-size: 1.5rem;
    color: #333;
}
.aircraft-details {
    display: flex;
    align-items: center;
    gap: var(--page-padding);
}
.tail-number {
    font-size: 0.9rem;
    color: #555;
}
.rate {
    font-size: 0.9rem;
    color: #0066ff;
    font-weight: 500;
}
.status-pill {
    padding: var(--small-padding) 12px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: capitalize;
    background-color: var(--primary-blue);
    color: white;
    position: absolute;
    top: 20px;
    right: 20px;
}
/* Original styles */
.flight-details-card {
    background-color: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    padding: var(--large-padding);
}
.detail-section {
    margin-bottom: var(--large-padding);
    padding-bottom: var(--section-padding);
    border-bottom: 1px solid #eee;
}
.detail-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}
.detail-section h2 {
    font-size: 1.2rem;
    margin: 0 0 16px;
    color: #444;
    font-weight: 600;
}
.detail-row {
    display: flex;
    margin-bottom: 12px;
}
.detail-label {
    width: 120px;
    font-weight: 500;
    color: #666;
}
.detail-value {
    flex: 1;
    color: #333;
}
.status-badge {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: capitalize;
}
.status-badge.requested {
    background-color: #fff3e0;
    color: #e65100;
}
.status-badge.scheduled {
    background-color: #e8f5e9;
    color: #2e7d32;
}
.status-badge.preflight {
    background-color: #e1f5fe;
    color: #0277bd;
}
.status-badge.takeoff {
    background-color: #f3e5f5;
    color: #7b1fa2;
}
.status-badge.preparing-for-landing {
    background-color: #fff8e1;
    color: #f57c00;
}
.status-badge.pending-payment {
    background-color: #fff3e0;
    color: #e65100;
}
.status-badge.paid-offline-verification {
    background-color: #fff8e1;
    color: #f57c00;
}
.status-badge.pending-debriefing {
    background-color: #e0f7fa;
    color: #00838f;
}
.status-badge.completed {
    background-color: #e8f5e9;
    color: #2e7d32;
}
.status-badge.cancelled {
    background-color: #ffebee;
    color: #c62828;
}
.status-badge.unfinished {
    background-color: #ffebee;
    color: #d32f2f;
}
.detail-notes {
    padding: 12px;
    background-color: #f8f9fa;
    border-radius: 6px;
    color: #333;
    font-size: 0.95rem;
    line-height: 1.5;
}
.flight-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: var(--large-padding);
}
.flight-actions button {
    display: block;
    width: 100%;
    padding: 12px var(--large-padding);
    border-radius: 8px;
    font-weight: 500;
    font-size: 1rem;
    cursor: pointer;
    border: none;
    transition: all 0.2s ease;
    background-color: var(--primary-blue);
    color: white;
}
.flight-actions button:hover {
    background-color: var(--primary-blue-dark) !important;
    color: white !important;
    opacity: 1 !important;
}

.flight-actions button:active {
    color: white !important;
    opacity: 1 !important;
}

/* Accept button - green theme */
.flight-actions .accept-button {
    background-color: var(--success-green);
    color: white;
}

.flight-actions .accept-button:hover {
    background-color: #218838 !important;
    color: white !important;
    opacity: 1 !important;
}

.flight-actions .accept-button:active {
    background-color: #218838 !important;
    color: white !important;
    opacity: 1 !important;
}

/* Payment button - blue theme */
.flight-actions .payment-button {
    background-color: var(--primary-blue);
    color: white;
}

.flight-actions .payment-button:hover {
    background-color: var(--primary-blue-dark) !important;
    color: white !important;
    opacity: 1 !important;
}

.flight-actions .payment-button:active {
    background-color: var(--primary-blue-dark) !important;
    color: white !important;
    opacity: 1 !important;
}

/* Finalize button - orange theme */
.flight-actions .finalize-button {
    background-color: var(--button-orange);
    color: white;
}

.flight-actions .finalize-button:hover {
    background-color: #e6851a !important;
    color: white !important;
    opacity: 1 !important;
}

.flight-actions .finalize-button:active {
    background-color: #e6851a !important;
    color: white !important;
    opacity: 1 !important;
}

/* Debrief button - primary blue theme */
.flight-actions .debrief-button {
    background-color: var(--primary-blue);
    color: white;
}

.flight-actions .debrief-button:hover {
    background-color: var(--primary-blue-dark) !important;
    color: white !important;
    opacity: 1 !important;
}

.flight-actions .debrief-button:active {
    background-color: var(--primary-blue-dark) !important;
    color: white !important;
    opacity: 1 !important;
}
/* Cancel and delete buttons - red theme */
.flight-actions .cancel-button {
    background-color: var(--primary-red);
    color: white;
}
.flight-actions .cancel-button:hover {
    background-color: #a01537 !important;
    color: white !important;
    opacity: 1 !important;
}

.flight-actions .cancel-button:active {
    background-color: #a01537 !important;
    color: white !important;
    opacity: 1 !important;
}

.flight-actions .delete-button {
    background-color: var(--primary-red);
    color: white;
}

.flight-actions .delete-button:hover {
    background-color: #a01537 !important;
    color: white !important;
    opacity: 1 !important;
}

.flight-actions .delete-button:active {
    background-color: #a01537 !important;
    color: white !important;
    opacity: 1 !important;
}
.props-indicator {
    margin-top: var(--small-padding);
    padding: 6px 12px;
    background-color: #E8F5E8;
    color: #2E7D32;
    border-radius: 6px;
    font-size: 0.9rem;
    font-weight: 500;
    display: inline-block;
}
button:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

/* Cost breakdown styles */
.cost-summary {
    margin-bottom: 16px;
}

.cost-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
    font-size: 0.95rem;
}

.cost-line:last-child {
    border-bottom: none;
}

.total-section {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 2px solid #e0e0e0;
}

.total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 1.1rem;
    font-weight: 600;
}

.total-label {
    color: #333;
}

.total-price {
    color: var(--primary-blue);
    font-size: 1.2rem;
}

/* Flight title styling */
.detail-section h1 {
    font-size: 1.8rem;
    margin: 0 0 16px;
    color: #333;
    font-weight: 700;
}

/* Remove old header card styles since we moved aircraft info into main content */
.flight-header-card {
    display: none;
}

/* Solo badge styles */
.flight-title-container {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.solo-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: #ff8e53;
    color: white;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.solo-icon {
    font-size: 1rem;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.2));
}

@keyframes subtle-glow {
    0% {
        box-shadow: 0 2px 8px rgba(255, 107, 53, 0.3);
    }
    100% {
        box-shadow: 0 2px 12px rgba(255, 107, 53, 0.5);
    }
}

.confirmation-dialog-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.confirmation-dialog {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: var(--white);
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    z-index: 1001;
    max-width: 90vw;
    width: 400px;
    max-height: 90vh;
    overflow-y: auto;
}

.confirmation-dialog-content {
    padding: 1.5rem;
}

.confirmation-dialog-title {
    margin: 0 0 1rem 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--dark-text);
    text-align: center;
}

.confirmation-dialog-message {
    margin: 0 0 1.5rem 0;
    color: var(--medium-text);
    line-height: 1.5;
    text-align: center;
}

.confirmation-dialog-field {
    margin-bottom: 1.5rem;
}

.confirmation-dialog-label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
    color: var(--dark-text);
}

.confirmation-dialog-textarea {
    width: 100%;
    padding: 0.75rem;
    border: 2px solid var(--border-color);
    border-radius: 8px;
    font-family: inherit;
    font-size: 1rem;
    resize: vertical;
    background: var(--white);
    color: var(--dark-text);
    transition: border-color 0.2s ease;
    box-sizing: border-box;
}

.confirmation-dialog-textarea:focus {
    outline: none;
    border-color: var(--primary-blue);
}

.confirmation-dialog-textarea::-moz-placeholder {
    color: var(--medium-text);
}

.confirmation-dialog-textarea::placeholder {
    color: var(--medium-text);
}

.confirmation-dialog-actions {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.confirmation-dialog-confirm,
.confirmation-dialog-cancel {
    width: 100%;
    padding: 0.875rem 1.5rem;
    border: none;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.confirmation-dialog-confirm {
    background: var(--primary-blue);
    color: white;
}

.confirmation-dialog-confirm:hover:not(:disabled) {
    background: var(--primary-blue-dark);
}

.confirmation-dialog-confirm:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.confirmation-dialog-cancel {
    background: var(--white);
    color: var(--medium-text);
    border: 2px solid var(--border-color);
}

.confirmation-dialog-cancel:hover {
    background: var(--border-color);
    color: var(--dark-text);
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .confirmation-dialog {
        width: 90vw;
        margin: 1rem;
    }
    
    .confirmation-dialog-content {
        padding: 1rem;
    }
} .finalization-form {
    background: white;
    margin: 0;
    padding: var(--page-padding);
    box-shadow: none;
    border-radius: 0;
}
.form-section {
    padding: var(--page-padding) var(--section-padding);
    margin-bottom: 2px;
}
.form-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
}
.section-label {
    display: block;
    font-size: 16px;
    font-weight: 600;
    color: #333;
    margin-bottom: var(--page-padding);
}
.section-title {
    margin: 0 0 16px 0;
    font-size: 16px;
    font-weight: 600;
    color: #333;
}
/* Flight Option */
.flight-option {
    padding: var(--page-padding);
    background: #f8f9fa;
    border-radius: 12px;
    border: 1px solid #e9ecef;
    max-width: 100%;
    overflow: hidden;
    box-sizing: border-box;
}
.flight-finalization-page .flight-title {
    font-weight: 600;
    color: #333;
    font-size: 16px;
    word-wrap: break-word;
    overflow-wrap: break-word;
    -webkit-hyphens: auto;
            hyphens: auto;
    line-height: 1.4;
    display: block;
    max-width: 100%;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: unset !important;
}
/* Detail Rows */
.detail-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}
.detail-row:last-child {
    border-bottom: none;
}
.detail-label {
    font-size: 14px;
    color: #666;
    font-weight: 500;
}
.detail-value {
    font-size: 14px;
    color: #333;
    font-weight: 600;
    text-align: right;
}
.time-range {
    display: flex;
    align-items: center;
    gap: var(--small-padding);
    font-size: 14px;
    color: #333;
    font-weight: 600;
}
.time-separator {
    color: #666;
    font-size: 16px;
}
/* Duration Section */
.duration-section {
    margin: var(--page-padding) 0;
}
.duration-title {
    margin: 0 0 12px 0;
    font-size: 14px;
    font-weight: 600;
    color: #333;
    padding-bottom: var(--small-padding);
    border-bottom: 1px solid #f0f0f0;
}
.input-group {
    display: flex;
    align-items: center;
    gap: var(--small-padding);
}
.compact-input {
    width: 80px;
    min-width: 80px;
    padding: var(--small-padding) 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    text-align: center;
    font-weight: 600;
    box-sizing: border-box;
}
.compact-input:focus {
    outline: none;
    border-color: #4A90E2;
    box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);
}
.input-group span {
    font-size: 12px;
    color: #666;
}
/* Cost Summary */
.cost-breakdown-section {
    padding: var(--small-padding) 20px !important;
}
.cost-summary {
    background: #f8f9fa;
    border-radius: 8px;
    padding: var(--page-padding) 12px;
}
.cost-line {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 0;
    font-size: 14px;
}
.cost-line:not(:last-child) {
    border-bottom: 1px solid #e9ecef;
}
.cost-line span:first-child {
    color: #666;
}
.cost-line span:last-child {
    font-weight: 600;
    color: #333;
}
/* Total Section */
.total-section {
    padding: var(--page-padding) 20px;
    background: #f8f9fa;
    border-top: 1px solid #e9ecef;
}
.total-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.total-label {
    font-size: 18px;
    font-weight: 600;
    color: #333;
}
.total-price {
    font-size: 24px;
    font-weight: 700;
    color: #4A90E2;
}
/* Notes Input */
.notes-input {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 14px;
    font-family: inherit;
    resize: vertical;
    min-height: 80px;
}
.notes-input:focus {
    outline: none;
    border-color: #4A90E2;
    box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);
}
.notes-input::-moz-placeholder {
    color: #999;
}
.notes-input::placeholder {
    color: #999;
}
/* Error Message */
.error-message {
    background: #fee;
    color: #c33;
    padding: var(--page-padding) 20px;
    font-size: 14px;
    border-left: 4px solid #e74c3c;
}
/* Submit Button */
.request-pay-button {
    width: calc(100% - 40px);
    padding: 18px;
    background-color: var(--primary-blue);
    color: white;
    border: none;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: all 0.3s ease;
    margin: var(--section-padding);
    margin-bottom: 40px;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(1, 38, 153, 0.3);
}
.request-pay-button:hover:not(:disabled) {
    background-color: var(--primary-blue-dark);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(1, 38, 153, 0.4);
}
.request-pay-button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
    box-shadow: 0 4px 12px rgba(179, 24, 66, 0.2);
}
/* Loading and Error States */
.flight-finalization-loading,
.flight-finalization-error {
    padding: 40px 20px;
    text-align: center;
    font-size: 16px;
}
.flight-finalization-error {
    color: #e74c3c;
    background: #fee;
    margin: var(--section-padding);
    border-radius: 8px;
    border: 1px solid #fcc;
}
/* Mobile Optimizations */

/* Training Task Section Styles */
.training-task-section {
    margin-top: 10px;
    border: 1px solid #e9ecef;
    border-radius: 12px;
    background: #f8f9fa;
    padding: 0 !important;
    overflow: hidden;
}

.training-task-header {
  
    justify-content: space-between;
    align-items: center;
    padding-top:20px;padding-left:20px;
    cursor: pointer;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    background: #f8f9fa;
    transition: background-color 0.2s ease;
    margin-bottom: 10px;
}

.training-task-header:hover {
    background: #e9ecef;
}

.training-task-header .section-label {
    margin: 0;
    flex: 1;
}

.training-task-toggle {
    display: flex;
    align-items: center;
    gap: 12px;
}

.training-task-count {
    font-size: 14px;
    color: #666;
    font-weight: 500;
}

.chevron {
    font-size: 16px;
    color: #666;
    margin-right: 8px;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
}

.training-task-list {
    border-top: 1px solid #e9ecef;
    background: white;
    padding: 16px;
}

.training-task-loading {
    text-align: center;
    padding: 24px;
    color: #666;
    font-style: italic;
}

.training-task-card {
    border: 2px solid #e9ecef;
    border-radius: 8px;
    margin-bottom: 12px;
    background: white;
    cursor: pointer;
    transition: all 0.2s ease;
    overflow: hidden;
}

.training-task-card:last-child {
    margin-bottom: 0;
}

.training-task-card:hover {
    border-color: #c8d7f0;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(74, 144, 226, 0.1);
}

.training-task-card.selected {
    border-color: #4A90E2;
    background: #f8fcff;
    box-shadow: 0 2px 12px rgba(74, 144, 226, 0.15);
}

.training-task-card-header {
    display: flex;
    align-items: flex-start;
    padding: 16px;
    gap: 12px;
}

.training-task-radio {
    flex-shrink: 0;
    margin-top: 2px;
}

.training-task-radio input[type="radio"] {
    width: 18px;
    height: 18px;
    accent-color: #4A90E2;
    cursor: pointer;
}

.training-task-main {
    flex: 1;
    min-width: 0;
}

.training-task-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
    flex-wrap: nowrap;
}

.training-task-id {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    background: #e9ecef;
    padding: 4px 8px;
    border-radius: 4px;
    flex-shrink: 0;
}

.training-task-category {
    font-size: 12px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    flex-shrink: 0;
    margin-left: 12px;
}

.training-task-category.flight {
    background: #e3f2fd;
    color: #1565c0;
    border: 1px solid #bbdefb;
}

.training-task-category.ground {
    background: #e8f5e8;
    color: #2e7d32;
    border: 1px solid #c8e6c9;
}

.training-task-title {
    font-size: 16px;
    font-weight: 600;
    color: #333;
    word-wrap: break-word;
    flex: 1;
    min-width: 0;
}

/* Progress Bar Styles */
.progress-bar-container {
    display: flex;
    align-items: center;
    gap: 12px;
}

.progress-bar {
    flex: 1;
    height: 6px;
    background: #e9ecef;
    border-radius: 3px;
    overflow: hidden;
    min-width: 80px;
}

.progress-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, #4A90E2, #357abd);
    border-radius: 3px;
    transition: width 0.3s ease;
}

.progress-text {
    font-size: 12px;
    font-weight: 600;
    color: #666;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Training Task Contribution */
.training-task-contribution {
    padding: 0 16px 12px 16px;
    border-top: 1px solid #f0f0f0;
}

.contribution-info {
    background: #e8f5e8;
    border: 1px solid #c8e6c9;
    border-radius: 6px;
    padding: 8px 12px;
    margin-top: 12px;
}

.contribution-hours {
    font-size: 14px;
    font-weight: 600;
    color: #2e7d32;
    display: block;
}

/* Training Task Notes */
.training-task-notes-section {
    padding: 0 16px 16px 16px;
    border-top: 1px solid #f0f0f0;
}

.training-task-notes {
    width: 100%;
    margin-top: 12px;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    font-family: inherit;
    resize: vertical;
    min-height: 70px;
    background: white;
}

.training-task-notes:focus {
    outline: none;
    border-color: #4A90E2;
    box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.1);
}

.training-task-notes::-moz-placeholder {
    color: #999;
}

.training-task-notes::placeholder {
    color: #999;
}

/* Completed Training Task Styles */
.training-task-card-completed {
    background: #f8fffe !important;
    border-color: #c8e6c9 !important;
    padding: 8px 12px !important;
    margin-bottom: 8px !important;
    opacity: 0.8;
    cursor: default !important;
    transform: scale(0.95);
    transition: all 0.2s ease;
}

.training-task-card-completed:hover {
    transform: scale(0.95) !important;
    border-color: #c8e6c9 !important;
    box-shadow: none !important;
}

.training-task-card-completed .training-task-card-header {
    padding: 8px !important;
}

.training-task-card-completed .training-task-title {
    font-size: 14px !important;
    margin-bottom: 6px !important;
    color: #666 !important;
}

.training-task-card-completed .training-task-id {
    font-size: 12px !important;
    padding: 2px 6px !important;
    background: #e8f5e8 !important;
    color: #2e7d32 !important;
}

.training-task-checkmark {
    width: 18px;
    height: 18px;
    background: #4caf50;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: bold;
    flex-shrink: 0;
}

.training-task-completed-badge {
    font-size: 10px !important;
    font-weight: 700 !important;
    padding: 2px 6px !important;
    border-radius: 8px !important;
    background: #4caf50 !important;
    color: white !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    flex-shrink: 0;
}

.training-task-card-completed .progress-bar-fill {
    background: linear-gradient(90deg, #4caf50, #388e3c) !important;
}

.training-task-card-completed .progress-text {
    color: #4caf50 !important;
    font-weight: 700 !important;
}

/* Mobile Responsive Adjustments */
@media (max-width: 768px) {
    .training-task-title-row {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        flex-wrap: nowrap;
    }
    
    .training-task-title {
        font-size: 14px;
    }
    
    .training-task-category {
        font-size: 11px;
        padding: 2px 6px;
        margin-left: 8px;
    }
    
    .progress-bar-container {
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
    }
    
    .progress-text {
        text-align: center;
    }
    
    .training-task-card-header {
        padding: 12px;
    }
    
    .training-task-contribution,
    .training-task-notes-section {
        padding-left: 12px;
        padding-right: 12px;
    }

    /* Mobile adjustments for completed tasks */
    .training-task-card-completed .training-task-card-header {
        padding: 6px !important;
    }

    .training-task-card-completed {
        padding: 6px 8px !important;
        margin-bottom: 6px !important;
    }

    .training-task-completed-badge {
        font-size: 9px !important;
        padding: 1px 4px !important;
    }
}
.flight-debrief-container {
    padding: 1rem;
    max-width: 600px;
    margin: 0 auto;
}

.flight-debrief-loading,
.flight-debrief-error {
    text-align: center;
    padding: 2rem;
    color: var(--medium-text);
}

.flight-debrief-error {
    color: var(--error-red);
}

.flight-summary-card {
    background: var(--white);
    border-radius: 12px;
    padding: 1.5rem;
    margin-bottom: 1rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.aircraft-info h1 {
    margin: 0 0 1rem 0;
    color: var(--dark-text);
    font-size: 1.5rem;
    font-weight: 600;
}

.flight-details {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.detail-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.detail-row .label {
    font-weight: 500;
    color: var(--medium-text);
}

.detail-row .value {
    color: var(--dark-text);
    font-weight: 500;
}

.debrief-form-card {
    background: var(--white);
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.form-field {
    margin-bottom: 1.5rem;
}

.form-field label {
    display: block;
    margin-bottom: 0.5rem;
    font-weight: 500;
    color: var(--dark-text);
}

.radio-group {
    display: flex;
    gap: 1rem;
    margin-top: 0.5rem;
}

.radio-option {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    padding: 0.5rem 1rem;
    border-radius: 8px;
    border: 2px solid var(--border-color);
    background: var(--white);
    transition: all 0.2s ease;
}

.radio-option:hover {
    border-color: var(--primary-red);
}

.radio-option input[type="radio"] {
    margin: 0;
}

.radio-option input[type="radio"]:checked + span {
    color: var(--primary-red);
    font-weight: 600;
}

.radio-option:has(input[type="radio"]:checked) {
    border-color: var(--primary-red);
    background: var(--light-blue);
}

textarea {
    width: 100%;
    min-height: 100px;
    padding: 0.75rem;
    border: 2px solid var(--border-color);
    border-radius: 8px;
    font-family: inherit;
    font-size: 1rem;
    resize: vertical;
    background: var(--white);
    color: var(--dark-text);
    transition: border-color 0.2s ease;
}

textarea:focus {
    outline: none;
    border-color: var(--primary-red);
}

textarea::-moz-placeholder {
    color: var(--medium-text);
}

textarea::placeholder {
    color: var(--medium-text);
}

.form-actions {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 2rem;
}

.cancel-button,
.submit-button {
    width: 100%;
    padding: 0.875rem 1.5rem;
    border: none;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
}

.cancel-button {
    background: var(--white);
    color: var(--medium-text);
    border: 2px solid var(--border-color);
}

.cancel-button:hover:not(:disabled) {
    background: var(--border-color);
    color: var(--dark-text);
}

.submit-button {
    background: var(--primary-blue);
    color: white;
}

.submit-button:hover:not(:disabled) {
    background: var(--primary-blue-dark);
}

.cancel-button:disabled,
.submit-button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.training-page {
  padding: var(--page-padding);
  max-width: 800px;
  margin: 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--section-padding);
}

.page-header {
  display: flex;
  width: 100%;
  margin: 0 !important;
}

/* We may need to address this as it's duplicated many times */
.back-button {
  display: flex;
  align-items: center;
  background: none;
  border: none;
  color: #333;
  cursor: pointer;
  font-size: 14px;
  padding: var(--small-padding);

}

.back-button svg {
  margin-right: 4px;
}

.page-header h1 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
}

/* Student Filter Styles */
.student-filter-container {
  background-color: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  padding: var(--page-padding);
  margin-bottom: var(--large-padding);
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.student-filter-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-dark);
  margin: 0;
}

.custom-dropdown-wrapper {
  position: relative;
  width: 100%;
  max-width: 300px;
}

.custom-dropdown-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background-color: #f8fafc;
  border: 2px solid #e2e8f0;
  border-radius: 8px;
  font-size: 14px;
  color: var(--text-dark);
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
  text-align: left;
}

.custom-dropdown-trigger:hover {
  border-color: var(--primary-blue);
  background-color: #f1f5f9;
}

.custom-dropdown-trigger:focus {
  outline: none;
  border-color: var(--primary-blue);
  box-shadow: 0 0 0 3px rgba(1, 38, 153, 0.1);
  background-color: white;
}

.dropdown-text {
  font-weight: 500;
  flex: 1;
  text-align: left;
}

.dropdown-arrow {
  color: #64748b;
  transition: transform 0.2s ease;
  flex-shrink: 0;
  margin-left: 8px;
}

.dropdown-arrow.rotate-180 {
  transform: rotate(180deg);
}

.custom-dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 50;
  margin-top: 4px;
  background-color: white;
  border: 2px solid #e2e8f0;
  border-radius: 8px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  animation: dropdown-appear 0.15s ease-out;
}

@keyframes dropdown-appear {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.dropdown-option {
  width: 100%;
  padding: 12px 16px;
  background: none;
  border: none;
  font-size: 14px;
  color: var(--text-dark);
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: left;
  font-family: inherit;
  border-bottom: 1px solid #f1f5f9;
}

.dropdown-option:last-child {
  border-bottom: none;
}

.dropdown-option:hover {
  background-color: #f8fafc;
  color: var(--primary-blue);
}

.dropdown-option.selected {
  background-color: var(--primary-blue);
  color: white;
  font-weight: 500;
}

.dropdown-option.selected:hover {
  background-color: #1e40af;
  color: white;
}

.training-content {
  background-color: transparent;
  width: 100%;
  border-radius: 8px;
  padding: 0;
  margin-top: 0;
}

/* Flight loading and empty states for filtered view */
.flight-list-loading {
  background-color: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  padding: var(--large-padding);
  text-align: center;
  color: var(--text-dark);
  font-size: 16px;
}

.flight-list-empty {
  background-color: white;
  border-radius: 12px;
  
  padding: 0;
  text-align: center;
  color: var(--medium-text);
  font-size: 16px;
}

/* Error banner styles */
.error-banner {
    background-color: #ffebee;
    border: 1px solid #ef9a9a;
    border-radius: 4px;
    padding: 12px var(--page-padding);
    margin-bottom: var(--section-padding);
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #c62828;
}
.error-banner p {
    margin: 0;
    flex: 1;
}
.error-actions {
    display: flex;
    gap: var(--small-padding);
}
.error-banner button {
    background-color: transparent;
    border: 1px solid #ef9a9a;
    border-radius: 4px;
    padding: 4px 8px;
    cursor: pointer;
    color: #c62828;
    font-size: 0.9rem;
    white-space: nowrap;
}
.error-banner button:first-child {
    background-color: #c62828;
    color: white;
    border-color: #c62828;
}
.error-banner button:hover {
    background-color: #ffcdd2;
}
.error-banner button:first-child:hover {
    background-color: #b71c1c;
}
/* Empty state when fetching is stopped */
.empty-state {
    text-align: center;
    padding: 40px 20px;
    margin: var(--section-padding) 0;
    background-color: #f5f5f5;
    border-radius: 8px;
    color: #666;
}
.empty-state p {
    margin-bottom: var(--page-padding);
    font-size: 1rem;
}
.empty-state button {
    background-color: #0c3b94;
    color: white;
    border: none;
    border-radius: 4px;
    padding: var(--small-padding) 16px;
    font-size: 0.9rem;
    cursor: pointer;
    transition: background-color 0.2s;
}
.empty-state button:hover {
    background-color: #092c70;
}
/* Error view */
.error-view {
    padding: var(--section-padding);
    text-align: center;
}
.error-view .error-banner {
    max-width: 500px;
    margin: 0 auto 20px;
} /* Aircraft Availability Calendar - Matching SimpleCalendar Style */
.aircraft-availability-calendar {
  width: 100%;
  max-width: 400px;
  margin: 0 auto;
  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.calendar-header {
  margin-bottom: 1rem;
}

.calendar-header-container {
  text-align: center;
}

.today-button {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  font-size: 0.875rem;
  color: #1565C0;
  text-decoration: none;
  border-radius: 4px;
  transition: all 0.2s ease;
}

.today-button:hover {
  background-color: #e3f2fd;
}

.month-navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.nav-button {
  background: none;
  border: none;
  font-size: 2rem;
  color: #666;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  transition: all 0.2s ease;
}

.nav-button:hover {
  background-color: #f0f0f0;
  color: #333;
}

.month-year {
  font-weight: 500;
  text-transform: uppercase;
  color: #333;
  text-align: center;
  flex: 1;
}

.weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 0.5rem;
}

.weekday {
  text-align: center;
  font-size: 0.875rem;
  color: #666;
  padding: 0.5rem 0;
  font-weight: bold;
}

.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.calendar-day {
  aspect-ratio: 1;
  border: none;
  border-radius: 50%;
  background: none;
  font-size: 0.875rem;
  color: #333;
  cursor: pointer;
  padding: 0;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  transition: all 0.2s ease;
}

.calendar-day::before {
  content: '';
  position: absolute;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: transparent;
  transition: background-color 0.2s ease;
  z-index: -1;
}

.calendar-day:hover:not(:disabled)::before {
  background-color: #f0f0f0;
}

.calendar-day.other-month {
  color: #ccc;
}

.calendar-day.selected::before {
  background-color: #1565C0;
}

.calendar-day.selected {
  color: white;
  font-weight: 500;
}

.calendar-day.today {
  font-weight: bold;
}

.calendar-day.today::before {
  border: 2px solid #1565C0;
}

.calendar-day.has-events::before {
  background-color: #e3f2fd;
  border: 1px solid #1565C0;
}

.calendar-day.has-events.selected::before {
  background-color: #1565C0;
  border-color: #1565C0;
}

.calendar-day.past-date {
  opacity: 0.5;
  cursor: not-allowed;
}

.day-number {
  font-size: 0.875rem;
  line-height: 1;
  margin-bottom: 2px;
}

.event-indicators {
  display: flex;
  gap: 2px;
  position: absolute;
  bottom: 4px;
  align-items: center;
}

.event-dot {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  cursor: pointer;
  transition: transform 0.2s;
}

.event-dot:hover {
  transform: scale(1.5);
}

.event-dot.blocked {
  background: #ff4d4f;
}

.event-dot.confirmed,
.event-dot.flight {
  background: #1890ff;
}

.event-dot.pending {
  background: #faad14;
}

.more-events {
  font-size: 0.6rem;
  color: #666;
  margin-left: 1px;
}

/* Form Sections - Inline Below Calendar */
.block-form-section,
.approval-form-section {
  margin-top: 2rem;
  animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.block-form,
.approval-form {
  background: white;
  border-radius: 12px;
  padding: 2rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  border: 1px solid #e0e0e0;
}

.block-form h3,
.approval-form h3 {
  margin: 0 0 0.5rem 0;
  color: #333;
  font-size: 1.5rem;
  font-weight: 600;
}

.block-date {
  color: #666;
  margin: 0 0 1.5rem 0;
  font-size: 1rem;
}

/* Aircraft Calendar - Existing Bookings Display */
.ac-existing-bookings {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 1rem;
  margin-bottom: 1.5rem;
  border: 1px solid #e9ecef;
}

.ac-existing-bookings h4 {
  margin: 0 0 0.75rem 0;
  color: #495057;
  font-size: 1rem;
  font-weight: 600;
}

.ac-booking-list {
  list-style: none;
  padding: 0;
  margin: 0 0 0.75rem 0;
}

.ac-booking-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem;
  margin-bottom: 0.5rem;
  background: white;
  border-radius: 6px;
  border: 1px solid #dee2e6;
}

.ac-booking-item:last-child {
  margin-bottom: 0;
}

.ac-booking-time {
  font-size: 0.875rem;
  font-weight: 500;
  color: #495057;
  min-width: 140px;
}

.ac-booking-title {
  flex: 1;
  font-size: 0.875rem;
  color: #333;
}

/* Aircraft Calendar specific status badges */
.ac-status-badge {
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
  border-radius: 4px;
  font-weight: 500;
  text-transform: uppercase;
  background: #fff3cd;
  color: #856404;
  border: 1px solid #ffeaa7;
}

.ac-status-badge.confirmed {
  background: #d1ecf1;
  color: #0c5460;
  border: 1px solid #bee5eb;
}

.ac-status-badge.blocked {
  background: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

.ac-status-badge.pending {
  background: #fff3cd;
  color: #856404;
  border: 1px solid #ffeaa7;
}

.ac-booking-note {
  margin: 0;
  font-size: 0.875rem;
  color: #6c757d;
  font-style: italic;
}

/* Time Slot Section */
.time-slot-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1.5rem;
  padding: 1rem;
  background: #f8f9fa;
  border-radius: 8px;
}

.time-slot-selector {
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

.time-slot-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.time-slot-group label {
  font-size: 0.875rem;
  font-weight: 500;
  color: #555;
}

.time-slot-group select {
  padding: 0.75rem;
  border: 1px solid #ddd;
  border-radius: 6px;
  font-size: 0.875rem;
  background: white;
  cursor: pointer;
  transition: border-color 0.2s;
}

.time-slot-group select:hover {
  border-color: #1565C0;
}

.time-slot-group select:focus {
  outline: none;
  border-color: #1565C0;
  box-shadow: 0 0 0 3px rgba(21, 101, 192, 0.1);
}

/* Time Slots Header - Matching ScheduleTraining */
.ac-time-slots-header {
  justify-content: space-between;
  align-items: center;
  margin: 1.5rem 0 1rem;
}

.time-slots-title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: #333;
}

.time-slots-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.timezone-display {
  font-size: 0.875rem;
  color: #666;
  padding: 0.25rem 0.75rem;
  background: #f0f0f0;
  border-radius: 4px;
}

.time-slots-actions a {
  font-size: 0.875rem;
  color: #1565C0;
  text-decoration: none;
  font-weight: 500;
  transition: color 0.2s;
}

.time-slots-actions a:hover {
  color: #0d47a1;
  text-decoration: underline;
}

/* Form Groups */
.form-group {
  margin-bottom: 1.25rem;
}

.form-group label {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: #555;
}

.form-group select,
.form-group input,
.form-group textarea {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid #ddd;
  border-radius: 6px;
  font-size: 0.875rem;
  font-family: inherit;
  transition: border-color 0.2s;
}

.form-group select:hover,
.form-group input:hover,
.form-group textarea:hover {
  border-color: #1565C0;
}

.form-group select:focus,
.form-group input:focus,
.form-group textarea:focus {
  outline: none;
  border-color: #1565C0;
  box-shadow: 0 0 0 3px rgba(21, 101, 192, 0.1);
}

.form-group textarea {
  resize: vertical;
  min-height: 80px;
}

/* Form Actions */
.form-actions {
  display: flex;
  gap: 1rem;
  justify-content: flex-end;
  margin-top: 1.5rem;
}

.primary-btn,
.secondary-btn {
  padding: 0.75rem 1.5rem;
  border: none;
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

.primary-btn {
  background: #1565C0;
  color: white;
}

.primary-btn:hover {
  background: #0d47a1;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(21, 101, 192, 0.3);
}

.primary-btn:disabled {
  background: #ccc;
  color: #999;
  cursor: not-allowed;
  transform: none;
}

.primary-btn:disabled:hover {
  background: #ccc;
  transform: none;
  box-shadow: none;
}

.secondary-btn {
  background: #f5f5f5;
  color: #666;
}

.secondary-btn:hover {
  background: #e0e0e0;
  color: #333;
}

/* Flight Details */
.flight-details {
  margin: 1.5rem 0;
  background: #f8f9fa;
  padding: 1rem;
  border-radius: 8px;
}

.detail-row {
  display: flex;
  padding: 0.5rem 0;
  border-bottom: 1px solid #e0e0e0;
}

.detail-row:last-child {
  border-bottom: none;
}

.detail-row.notes {
  flex-direction: column;
  gap: 0.5rem;
}

.detail-label {
  font-weight: 500;
  color: #555;
  min-width: 100px;
  font-size: 0.875rem;
}

.detail-value {
  color: #333;
  font-size: 0.875rem;
  flex: 1;
}

/* Approval Actions */
.approval-actions {
  display: flex;
  gap: 1rem;
  justify-content: flex-end;
  margin-top: 1.5rem;
}

.approve-btn,
.reject-btn,
.cancel-btn {
  padding: 0.75rem 1.5rem;
  border: none;
  border-radius: 6px;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

.approve-btn {
  background: #52c41a;
  color: white;
}

.approve-btn:hover {
  background: #389e0d;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(82, 196, 26, 0.3);
}

.reject-btn {
  background: #ff4d4f;
  color: white;
}

.reject-btn:hover {
  background: #d32f2f;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(255, 77, 79, 0.3);
}

.cancel-btn {
  background: #f5f5f5;
  color: #666;
}

.cancel-btn:hover {
  background: #e0e0e0;
  color: #333;
}

/* Loading and Error States */
.calendar-loading,
.calendar-error {
  text-align: center;
  padding: 3rem;
  color: #666;
  font-size: 1rem;
}

.calendar-error {
  color: #ff4d4f;
}

/* Modal styles */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 1rem;
}

.modal-content {
  background: white;
  border-radius: 8px;
  max-width: 500px;
  width: 100%;
  max-height: 80vh;
  overflow-y: auto;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem;
  border-bottom: 1px solid #e5e7eb;
}

.modal-header h3 {
  margin: 0;
  color: #1f2937;
}

.modal-close {
  background: none;
  border: none;
  font-size: 1.5rem;
  color: #6b7280;
  cursor: pointer;
  padding: 0.25rem;
  border-radius: 4px;
  transition: background-color 0.2s;
}

.modal-close:hover {
  background-color: #f3f4f6;
  color: #374151;
}

.modal-body {
  padding: 1.5rem;
}

.modal-actions {
  padding: 1rem 1.5rem;
  border-top: 1px solid #e5e7eb;
  display: flex;
  gap: 0.5rem;
  justify-content: flex-end;
}

/* Responsive modal */
@media (max-width: 768px) {
  .aircraft-availability-calendar {
    max-width: 100%;
  }
  
  .calendar-day {
    min-height: 35px;
  }
  
  .calendar-day::before {
    width: 28px;
    height: 28px;
  }
  
  .day-number {
    font-size: 0.75rem;
  }
  
  .event-dot {
    width: 3px;
    height: 3px;
  }
  
  .block-form,
  .approval-form {
    padding: 1.5rem;
  }
  
  .time-slot-section {
    grid-template-columns: 1fr;
  }
  
  .time-slots-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }
  
  .time-slots-actions {
    width: 100%;
    justify-content: space-between;
  }
  
  .ac-booking-time {
    min-width: 120px;
  }
  
  .form-actions,
  .approval-actions {
    flex-direction: column;
  }
  
  .primary-btn,
  .secondary-btn,
  .approve-btn,
  .reject-btn,
  .cancel-btn {
    width: 100%;
  }
  
  .detail-label {
    min-width: 80px;
  }

  .modal-overlay {
    padding: 0.5rem;
  }
  
  .modal-content {
    max-height: 90vh;
  }
  
  .modal-header,
  .modal-body,
  .modal-actions {
    padding: 1rem;
  }
} .flight-schedule-page {
  padding: var(--page-padding);
  max-width: 800px;
  margin: 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--section-padding);
}

.schedule-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--section-padding);
  width: 100%;
}

.schedule-header h1 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
}

/* Schedule view controls */
.schedule-view-controls {
  display: flex;
  gap: 12px;
}

.view-toggle-btn {
  padding: var(--small-padding) 12px;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  font-size: 0.875rem;
  color: #334155;
  background-color: white;
  cursor: pointer;
  transition: all 0.2s;
}

.view-toggle-btn:hover {
  background-color: #f1f5f9;
  border-color: #94a3b8;
}

.view-toggle-btn.active {
  background-color: #3b82f6;
  color: white;
  border-color: #3b82f6;
}

/* Aircraft Availability Section */
.aircraft-availability-section {
  background-color: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: var(--section-padding);
  margin-bottom: var(--section-padding);
}

.aircraft-availability-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--section-padding);
  flex-wrap: wrap;
  gap: 12px;
}

.aircraft-availability-header h2 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: #1e293b;
}

.aircraft-selector {
  display: flex;
  align-items: center;
  gap: 8px;
}

.aircraft-selector label {
  font-size: 0.875rem;
  color: #64748b;
  font-weight: 500;
}

.aircraft-select {
  padding: 6px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  font-size: 0.875rem;
  color: #334155;
  background-color: white;
  min-width: 200px;
}

.aircraft-select:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}

.aircraft-availability-loading {
  text-align: center;
  padding: 40px 0;
  color: #64748b;
}

.aircraft-availability-calendar {
  background-color: white;
  border-radius: 6px;
  padding: 16px;
  border: 1px solid #e2e8f0;
}

.aircraft-availability-empty {
  text-align: center;
  padding: 40px 0;
  color: #64748b;
}

.schedule-filters {
  display: flex;
  gap: 12px;
}

.status-filter {
  padding: var(--small-padding) 12px;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  font-size: 0.875rem;
  color: #334155;
  background-color: white;
  min-width: 150px;
}

.status-filter:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
}

.flights-list {
  background-color: transparent;
  width: 100%;
  border-radius: 8px;
  padding: 0;
  margin-top: 0;
}

/* Error banner styles */
.error-banner {
    background-color: #ffebee;
    border: 1px solid #ef9a9a;
    border-radius: 4px;
    padding: 12px var(--page-padding);
    margin-bottom: var(--section-padding);
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #c62828;
}

.error-banner p {
    margin: 0;
    flex: 1;
}

.error-actions {
    display: flex;
    gap: var(--small-padding);
}

.error-banner button {
    background-color: transparent;
    border: 1px solid #ef9a9a;
    border-radius: 4px;
    padding: 4px 8px;
    cursor: pointer;
    color: #c62828;
    font-size: 0.9rem;
    white-space: nowrap;
}

.error-banner button:first-child {
    background-color: #c62828;
    color: white;
    border-color: #c62828;
}

.error-banner button:hover {
    background-color: #ffcdd2;
}

.error-banner button:first-child:hover {
    background-color: #b71c1c;
}

/* Loading indicator */
.loading-indicator {
  text-align: center;
  color: #64748b;
  padding: 40px 0;
  font-size: 0.875rem;
}

/* Error message */
.error-message {
  background-color: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 4px;
  color: #b91c1c;
  padding: 12px var(--page-padding);
  font-size: 0.875rem;
  margin-bottom: var(--section-padding);
}

/* Empty state */
.empty-state {
  text-align: center;
  padding: 40px 20px;
  margin: var(--section-padding) 0;
  background-color: #f5f5f5;
  border-radius: 8px;
  color: #666;
}

.empty-state p {
  margin-bottom: var(--page-padding);
  font-size: 1rem;
}

.empty-state button,
.primary-button {
  background-color: #0c3b94;
  color: white;
  border: none;
  border-radius: 4px;
  padding: var(--small-padding) 16px;
  font-size: 0.9rem;
  cursor: pointer;
  transition: background-color 0.2s;
}

.empty-state button:hover,
.primary-button:hover {
  background-color: #092c70;
}

/* Date headers for grouped flights */
.date-header {
  font-size: 1rem;
  font-weight: 600;
  color: #1e293b;
  margin: 0 0 16px 0;
  padding-bottom: var(--small-padding);
  border-bottom: 1px solid #e2e8f0;
}

/* Modal overlay */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: var(--section-padding);
}

/* Responsive styles */
@media (max-width: 768px) {
  .schedule-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  
  .aircraft-availability-header {
    flex-direction: column;
    align-items: flex-start;
  }
  
  .aircraft-selector {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
  
  .aircraft-select {
    min-width: 100%;
  }
}
 .instructor-schedule-flight-page {
  padding: var(--section-padding);
  max-width: 1200px;
  margin: 0 auto;
}
.page-header {
  display: flex;
  align-items: center;
  gap: var(--page-padding);
  margin-bottom: var(--large-padding);
  padding-bottom: var(--page-padding);
  border-bottom: 1px solid #e5e7eb;
}
/*
.back-button {
  background: none;
  border: none;
  color: #6b7280;
  font-size: 16px;
  cursor: pointer;
  padding: var(--small-padding) 12px;
  border-radius: 8px;
  transition: all 0.2s ease;
} */
.page-header h1 {
  margin: 0;
  color: #111827;
  font-size: 28px;
  font-weight: 700;
}
.error-message {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #dc2626;
  padding: 12px var(--page-padding);
  border-radius: 8px;
  margin-bottom: var(--section-padding);
  font-size: 14px;
}
.schedule-content {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.schedule-step {
  background: white;
  border-radius: 12px;
  overflow: hidden;
}
.schedule-step h3 {
  margin: 0;
  padding: var(--section-padding);
  background: #f9fafb;
  border-bottom: 1px solid #e5e7eb;
  color: #374151;
  font-size: 18px;
  font-weight: 600;
}
.schedule-actions {
  display: flex;
  justify-content: center;
  padding: var(--large-padding) 0;
}
.schedule-button {
  padding: var(--page-padding) 32px;
  border: none;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  min-width: 200px;
}
.schedule-button.enabled {
  background: #10b981;
  color: white;
}
.schedule-button.enabled:hover {
  background: #059669;
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(16, 185, 129, 0.3);
}
.schedule-button.disabled {
  background: #d1d5db;
  color: #9ca3af;
  cursor: not-allowed;
}
.schedule-button:disabled {
  background: #d1d5db;
  color: #9ca3af;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}
/* Mobile responsive */
 /* Copy styles from ScheduleTraining.css and adapt for unified component */
.unified-scheduling-container {
  padding: var(--page-padding);
  background-color: #ffffff;
 
  padding-bottom: 1em;
}
.unified-scheduling-loading {
  padding: 40px 20px;
  text-align: center;
  color: #6b7280;
  font-size: 16px;
}
.unified-scheduling-header {
  margin-bottom: var(--section-padding);
  text-align: center;
}
.unified-scheduling-header h2 {
  font-size: 24px;
  margin: 0 0 10px 0;
  color: #000000;
  font-weight: 600;
}
.selected-aircraft {
  margin: var(--page-padding) 0;
}
.aircraft-label {
  font-size: 16px;
  color: #666;
  margin: 0;
}
.aircraft-value {
  font-weight: 600;
  color: #000;
}
.instructor-rate {
  font-size: 16px;
  color: #088d08;
  font-weight: 600;
  margin: 5px 0 0 0;
}
.calendar-container {
  margin-bottom: var(--section-padding);
}
.calendar-view-toggle {
  display: flex;
  justify-content: center;
  margin-bottom: 15px;
  gap: 5px;
}
.view-toggle-button {
  padding: var(--small-padding) 16px;
  border: 1px solid #ddd;
  background: #fff;
  color: #666;
  border-radius: 4px;
  cursor: pointer;
  font-size: 14px;
  transition: all 0.2s;
}
.view-toggle-button.active {
  background: #2c82c9;
  color: white;
  border-color: #2c82c9;
}
.view-toggle-button:hover:not(.active) {
  background: #f5f5f5;
}
.time-slots-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: var(--section-padding) 0 10px 0;
  padding: 0 5px;
}
.time-slots-title {
  font-size: 18px;
  font-weight: 600;
  color: #000;
  margin: 0;
}
.time-slots-actions {
  display: flex;
  align-items: center;
  gap: 15px;
}
.timezone-display {
  font-size: 14px;
  color: #666;
}
.time-slots-actions a {
  color: #2c82c9;
  text-decoration: none;
  font-size: 14px;
  cursor: pointer;
}
.time-slots-actions a:hover {
  text-decoration: underline;
}
.error-message {
  background-color: #fee;
  border: 1px solid #fcc;
  color: #c33;
  padding: var(--page-padding);
  border-radius: 4px;
  margin: 15px 0;
  text-align: center;
}
.schedule-actions {
  margin-top: var(--section-padding);
  padding: var(--page-padding) 0;
  text-align: center;
}
.schedule-button {
  background-color: var(--primary-blue);
  color: white;
  border: none;
  border-radius: 5px;
  padding: var(--page-padding) 30px;
  font-size: 17px;
  text-transform: uppercase;
  width: 100%;
  cursor: pointer;
  transition: background-color 0.2s;
  font-weight: 600;
}
.schedule-button:hover:not(:disabled) {
  background-color: var(--primary-blue-light);
}
.schedule-button:disabled {
  background-color: var(--border-color);
  color: var(--medium-text);
  border: 1px solid var(--border-color);
  cursor: not-allowed;
} .tos-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 16px;
}

.tos-content {
  flex: 1;
  overflow-y: auto;
  border: 1px solid #ccc;
  padding: 16px;
  border-radius: 8px;
  background-color: #fff;
}

.tos-actions {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.tos-actions .tos-checkbox {
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.tos-accept-btn {
  padding: 10px 20px;
  background-color: var(--primary-color, #007bff);
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.tos-accept-btn:disabled {
  background-color: #999;
  cursor: not-allowed;
}

.tos-scroll-warning {
  color: #d9534f;
  font-size: 0.9rem;
  margin-bottom: 8px;
} .donate-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 2rem 1rem;
}

.donate-title {
  font-size: 1.75rem;
  margin-bottom: 0.5rem;
  color: var(--primary-blue);
}

.donate-subtitle {
  font-size: 1rem;
  margin-bottom: 2rem;
  color: var(--text-color, #333);
}

.donate-buttons {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  max-width: 320px;
}

.donate-button {
  display: block;
  padding: 0.75rem 1rem;
  border: none;
  border-radius: 4px;
  font-size: 1rem;
  font-weight: 600;
  color: #fff;
  text-decoration: none;
  transition: background 0.2s ease;
}

.donate-button.gofundme {
  background: #00b964; /* GoFundMe green */
}

.donate-button.gofundme:hover {
  background: #019556;
}

.donate-button.givebutter {
  background: #FFC60A; /* GiveButter yellow */
  color: #000;
}

.donate-button.givebutter:hover {
  background: #e0b508;
}

.donate-success {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--success-green, #28a745);
  margin-bottom: 1rem;
}

.donate-skip {
  margin-top: 2rem;
  background: none;
  border: none;
  color: var(--primary-blue);
  font-size: 0.95rem;
  text-decoration: underline;
  cursor: pointer;
}

.donate-skip:hover {
  color: var(--primary-blue-dark, #003f7f);
} .flight-actions-page {
  padding: 1rem;
  max-width: 100%;
  margin: 0 auto;
}

.page-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border-color, #e0e0e0);
}

.page-header h2 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--text-primary, #1a1a1a);
}

.action-count {
  background: var(--primary-color, #007bff);
  color: white;
  padding: 0.25rem 0.75rem;
  border-radius: 1rem;
  font-size: 0.875rem;
  font-weight: 500;
}

.action-flights-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.flight-action-card {
  background: white;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  padding: 1rem;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.flight-action-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.flight-action-card:active {
  transform: translateY(0);
}

/* Priority-based left border */
.flight-action-card.priority-critical {
  border-left: 4px solid #dc3545;
}

.flight-action-card.priority-high {
  border-left: 4px solid #fd7e14;
}

.flight-action-card.priority-medium {
  border-left: 4px solid #0dcaf0;
}

.flight-action-card.priority-low {
  border-left: 4px solid #6c757d;
}

.flight-info {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.flight-name {
  font-weight: 600;
  font-size: 1rem;
  color: var(--text-primary, #1a1a1a);
  margin-bottom: 0.25rem;
}

.flight-action-details {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.875rem;
  color: var(--text-secondary, #666);
}

.flight-date-time {
  font-weight: 500;
}

.flight-action-person {
  background: var(--background-secondary, #f8f9fa);
  padding: 0.25rem 0.5rem;
  border-radius: 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-primary, #1a1a1a);
}

.flight-bottom-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0.5rem;
}

.action-description {
  font-size: 0.875rem;
  color: var(--text-secondary, #666);
  flex: 1;
}

.flight-status {
  padding: 0.25rem 0.75rem;
  border-radius: 1rem;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.025em;
}

/* Status colors */
.flight-status.pending {
  background: #fff3cd;
  color: #856404;
}

.flight-status.accepted {
  background: #d4edda;
  color: #155724;
}

.flight-status.preflight {
  background: #cce5ff;
  color: #004085;
}

.flight-status.takeoff {
  background: #e1ecf4;
  color: #0c5460;
}

.flight-status.preparing-landing {
  background: #f8d7da;
  color: #721c24;
}

.flight-status.pending-payment {
  background: #f5c6cb;
  color: #721c24;
}

.flight-status.paid-offline-verification {
  background: #fff3cd;
  color: #856404;
}

.flight-status.pending-debriefing {
  background: #bee5eb;
  color: #0c5460;
}

.flight-status.completed {
  background: #d4edda;
  color: #155724;
}

.flight-status.cancelled {
  background: #f8d7da;
  color: #721c24;
}

.flight-status.unfinished {
  background: #f5c6cb;
  color: #721c24;
}

/* States */
.error-state, .loading-state, .empty-state {
  text-align: center;
  padding: 3rem 1rem;
}

.error-message {
  color: #dc3545;
  margin-bottom: 1rem;
  font-size: 1rem;
}

.retry-button {
  background: var(--primary-color, #007bff);
  color: white;
  border: none;
  padding: 0.75rem 1.5rem;
  border-radius: 0.5rem;
  font-size: 1rem;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.retry-button:hover {
  background: var(--primary-color-hover, #0056b3);
}

.loading-spinner {
  font-size: 1.125rem;
  color: var(--text-secondary, #666);
}

.empty-state .empty-icon {
  font-size: 3rem;
  display: block;
  margin-bottom: 1rem;
}

.empty-state h3 {
  margin: 0 0 0.5rem 0;
  font-size: 1.25rem;
  color: var(--text-primary, #1a1a1a);
}

.empty-state p {
  margin: 0;
  color: var(--text-secondary, #666);
  font-size: 1rem;
}

.refresh-indicator {
  text-align: center;
  padding: 1rem;
  color: var(--text-secondary, #666);
  font-size: 0.875rem;
}

.flight-notes-container {
  padding: 1rem;
  max-width: 1200px;
  margin: 0 auto;
}

/* Loading states */
.flight-notes-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3rem;
  color: #6b7280;
}

/* Flight card hover effects */
.flight-notes-container .tw-cursor-pointer:hover {
  transform: translateY(-2px);
}

/* Mobile responsive adjustments */
@media (max-width: 768px) {
  .flight-notes-container {
    padding: 0.5rem;
  }
  
  .tw-grid-cols-2 {
    grid-template-columns: 1fr;
  }
  
  .tw-px-6 {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

/* Animation for flight cards */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.flight-notes-container .tw-space-y-4 > * {
  animation: fadeInUp 0.3s ease-out;
}

/* Custom scrollbar for long notes */
.flight-notes-container .tw-leading-relaxed {
  max-height: 150px;
  overflow-y: auto;
}

.flight-notes-container .tw-leading-relaxed::-webkit-scrollbar {
  width: 4px;
}

.flight-notes-container .tw-leading-relaxed::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 2px;
}

.flight-notes-container .tw-leading-relaxed::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 2px;
}

.flight-notes-container .tw-leading-relaxed::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
} .aircraft-availability-page {
  padding: 20px;
  max-width: 1200px;
  margin: 0 auto;
}

.aircraft-header {
  margin-bottom: 30px;
  text-align: center;
}

.aircraft-header h1 {
  font-size: 2rem;
  color: var(--primary-dark);
  margin-bottom: 5px;
  font-weight: 600;
}

.aircraft-tail-number {
  font-size: 1.1rem;
  color: var(--text-secondary);
  margin: 0;
  font-weight: 500;
}

.loading-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  text-align: center;
}

.loading-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid var(--light-gray);
  border-top: 3px solid var(--primary-blue);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 20px;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.loading-container p {
  color: var(--text-secondary);
  font-size: 1rem;
  margin: 0;
}

.error-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  text-align: center;
}

.error-container h2 {
  color: var(--error-color);
  font-size: 1.5rem;
  margin-bottom: 10px;
  font-weight: 600;
}

.error-container p {
  color: var(--text-secondary);
  font-size: 1rem;
  margin: 0;
}

/* Responsive design */
@media (max-width: 768px) {
  .aircraft-availability-page {
    padding: 15px;
  }
  
  .aircraft-header h1 {
    font-size: 1.5rem;
  }
  
  .aircraft-tail-number {
    font-size: 1rem;
  }
  
  .loading-container,
  .error-container {
    padding: 40px 15px;
  }
} /* Tailwind CSS directives */
*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}
::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}
.tw-absolute {
  position: absolute;
}
.tw-relative {
  position: relative;
}
.tw-bottom-0 {
  bottom: 0px;
}
.tw-bottom-2 {
  bottom: 0.5rem;
}
.tw-left-0 {
  left: 0px;
}
.tw-right-0 {
  right: 0px;
}
.tw-right-2 {
  right: 0.5rem;
}
.tw-right-3 {
  right: 0.75rem;
}
.tw-top-0 {
  top: 0px;
}
.tw-top-3 {
  top: 0.75rem;
}
.tw-z-10 {
  z-index: 10;
}
.tw-m-0 {
  margin: 0px;
}
.tw-mx-2 {
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.tw-mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.tw-mb-1 {
  margin-bottom: 0.25rem;
}
.tw-mb-2 {
  margin-bottom: 0.5rem;
}
.tw-mb-3 {
  margin-bottom: 0.75rem;
}
.tw-mb-4 {
  margin-bottom: 1rem;
}
.tw-mb-6 {
  margin-bottom: 1.5rem;
}
.tw-mb-large {
  margin-bottom: 24px;
}
.tw-mb-section {
  margin-bottom: 20px;
}
.tw-mb-small {
  margin-bottom: 8px;
}
.tw-ml-2 {
  margin-left: 0.5rem;
}
.tw-ml-3 {
  margin-left: 0.75rem;
}
.tw-mr-1 {
  margin-right: 0.25rem;
}
.tw-mt-0 {
  margin-top: 0px;
}
.tw-mt-1 {
  margin-top: 0.25rem;
}
.tw-mt-2 {
  margin-top: 0.5rem;
}
.tw-mt-3 {
  margin-top: 0.75rem;
}
.tw-mt-4 {
  margin-top: 1rem;
}
.tw-mt-6 {
  margin-top: 1.5rem;
}
.tw-mt-8 {
  margin-top: 2rem;
}
.tw-mt-large {
  margin-top: 24px;
}
.tw-mt-small {
  margin-top: 8px;
}
.tw-flex {
  display: flex;
}
.tw-inline-flex {
  display: inline-flex;
}
.tw-grid {
  display: grid;
}
.tw-h-10 {
  height: 2.5rem;
}
.tw-h-12 {
  height: 3rem;
}
.tw-h-16 {
  height: 4rem;
}
.tw-h-2 {
  height: 0.5rem;
}
.tw-h-24 {
  height: 6rem;
}
.tw-h-32 {
  height: 8rem;
}
.tw-h-4 {
  height: 1rem;
}
.tw-h-6 {
  height: 1.5rem;
}
.tw-h-8 {
  height: 2rem;
}
.tw-h-full {
  height: 100%;
}
.tw-min-h-64 {
  min-height: 16rem;
}
.tw-min-h-screen {
  min-height: 100vh;
}
.tw-w-10 {
  width: 2.5rem;
}
.tw-w-12 {
  width: 3rem;
}
.tw-w-16 {
  width: 4rem;
}
.tw-w-20 {
  width: 5rem;
}
.tw-w-24 {
  width: 6rem;
}
.tw-w-32 {
  width: 8rem;
}
.tw-w-4 {
  width: 1rem;
}
.tw-w-6 {
  width: 1.5rem;
}
.tw-w-8 {
  width: 2rem;
}
.tw-w-full {
  width: 100%;
}
.tw-min-w-0 {
  min-width: 0px;
}
.tw-max-w-32 {
  max-width: 8rem;
}
.tw-max-w-md {
  max-width: 28rem;
}
.tw-flex-1 {
  flex: 1 1 0%;
}
.tw-flex-shrink-0 {
  flex-shrink: 0;
}
.tw--translate-x-12 {
  --tw-translate-x: -3rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.tw--translate-y-16 {
  --tw-translate-y: -4rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.tw-translate-x-16 {
  --tw-translate-x: 4rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.tw-translate-y-12 {
  --tw-translate-y: 3rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.tw-rotate-90 {
  --tw-rotate: 90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes tw-spin {
  to {
    transform: rotate(360deg);
  }
}
.tw-animate-spin {
  animation: tw-spin 1s linear infinite;
}
.tw-cursor-pointer {
  cursor: pointer;
}
.tw-grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.tw-grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.tw-flex-col {
  flex-direction: column;
}
.tw-items-start {
  align-items: flex-start;
}
.tw-items-center {
  align-items: center;
}
.tw-justify-end {
  justify-content: flex-end;
}
.tw-justify-center {
  justify-content: center;
}
.tw-justify-between {
  justify-content: space-between;
}
.tw-gap-1 {
  gap: 0.25rem;
}
.tw-gap-2 {
  gap: 0.5rem;
}
.tw-gap-3 {
  gap: 0.75rem;
}
.tw-gap-4 {
  gap: 1rem;
}
.tw-gap-small {
  gap: 8px;
}
.tw-space-x-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(1rem * var(--tw-space-x-reverse));
  margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}
.tw-space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.tw-space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.tw-space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.tw-space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.tw-space-y-6 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.tw-overflow-auto {
  overflow: auto;
}
.tw-overflow-hidden {
  overflow: hidden;
}
.tw-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tw-rounded {
  border-radius: 0.25rem;
}
.tw-rounded-2xl {
  border-radius: 1rem;
}
.tw-rounded-full {
  border-radius: 9999px;
}
.tw-rounded-lg {
  border-radius: 0.5rem;
}
.tw-rounded-md {
  border-radius: 0.375rem;
}
.tw-rounded-xl {
  border-radius: 0.75rem;
}
.tw-border {
  border-width: 1px;
}
.tw-border-0 {
  border-width: 0px;
}
.tw-border-2 {
  border-width: 2px;
}
.tw-border-4 {
  border-width: 4px;
}
.tw-border-b {
  border-bottom-width: 1px;
}
.tw-border-b-2 {
  border-bottom-width: 2px;
}
.tw-border-l-4 {
  border-left-width: 4px;
}
.tw-border-t {
  border-top-width: 1px;
}
.tw-border-amber-200 {
  --tw-border-opacity: 1;
  border-color: rgb(253 230 138 / var(--tw-border-opacity, 1));
}
.tw-border-blue-100 {
  --tw-border-opacity: 1;
  border-color: rgb(219 234 254 / var(--tw-border-opacity, 1));
}
.tw-border-blue-200 {
  --tw-border-opacity: 1;
  border-color: rgb(191 219 254 / var(--tw-border-opacity, 1));
}
.tw-border-blue-500 {
  --tw-border-opacity: 1;
  border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
}
.tw-border-gray-100 {
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));
}
.tw-border-gray-200 {
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}
.tw-border-gray-300 {
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}
.tw-border-green-200 {
  --tw-border-opacity: 1;
  border-color: rgb(187 247 208 / var(--tw-border-opacity, 1));
}
.tw-border-primary {
  --tw-border-opacity: 1;
  border-color: rgb(1 38 153 / var(--tw-border-opacity, 1));
}
.tw-border-red-100 {
  --tw-border-opacity: 1;
  border-color: rgb(254 226 226 / var(--tw-border-opacity, 1));
}
.tw-border-transparent {
  border-color: transparent;
}
.tw-bg-accent {
  --tw-bg-opacity: 1;
  background-color: rgb(179 24 66 / var(--tw-bg-opacity, 1));
}
.tw-bg-amber-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(253 230 138 / var(--tw-bg-opacity, 1));
}
.tw-bg-amber-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1));
}
.tw-bg-amber-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(245 158 11 / var(--tw-bg-opacity, 1));
}
.tw-bg-background {
  --tw-bg-opacity: 1;
  background-color: rgb(250 250 250 / var(--tw-bg-opacity, 1));
}
.tw-bg-blue-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}
.tw-bg-blue-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}
.tw-bg-blue-50\/30 {
  background-color: rgb(239 246 255 / 0.3);
}
.tw-bg-blue-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
}
.tw-bg-blue-600 {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}
.tw-bg-gray-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.tw-bg-gray-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}
.tw-bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
.tw-bg-green-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
}
.tw-bg-green-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1));
}
.tw-bg-info {
  --tw-bg-opacity: 1;
  background-color: rgb(227 242 253 / var(--tw-bg-opacity, 1));
}
.tw-bg-orange-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1));
}
.tw-bg-primary {
  --tw-bg-opacity: 1;
  background-color: rgb(1 38 153 / var(--tw-bg-opacity, 1));
}
.tw-bg-primary-light {
  --tw-bg-opacity: 1;
  background-color: rgb(24 115 201 / var(--tw-bg-opacity, 1));
}
.tw-bg-purple-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1));
}
.tw-bg-red-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
}
.tw-bg-red-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));
}
.tw-bg-secondary-blue {
  --tw-bg-opacity: 1;
  background-color: rgb(107 157 209 / var(--tw-bg-opacity, 1));
}
.tw-bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.tw-bg-yellow-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1));
}
.tw-bg-opacity-10 {
  --tw-bg-opacity: 0.1;
}
.tw-bg-gradient-to-br {
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}
.tw-bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
.tw-from-blue-50 {
  --tw-gradient-from: #eff6ff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.tw-from-blue-500 {
  --tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.tw-from-blue-900 {
  --tw-gradient-from: #1e3a8a var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(30 58 138 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.tw-to-blue-800 {
  --tw-gradient-to: #1e40af var(--tw-gradient-to-position);
}
.tw-to-indigo-50 {
  --tw-gradient-to: #eef2ff var(--tw-gradient-to-position);
}
.tw-to-indigo-600 {
  --tw-gradient-to: #4f46e5 var(--tw-gradient-to-position);
}
.tw-object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}
.tw-p-1 {
  padding: 0.25rem;
}
.tw-p-12 {
  padding: 3rem;
}
.tw-p-2 {
  padding: 0.5rem;
}
.tw-p-3 {
  padding: 0.75rem;
}
.tw-p-4 {
  padding: 1rem;
}
.tw-p-6 {
  padding: 1.5rem;
}
.tw-p-8 {
  padding: 2rem;
}
.tw-p-card {
  padding: 16px;
}
.tw-p-large {
  padding: 24px;
}
.tw-p-page {
  padding: 16px;
}
.tw-p-section {
  padding: 20px;
}
.tw-p-small {
  padding: 8px;
}
.tw-px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.tw-px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.tw-px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.tw-px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.tw-px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.tw-py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.tw-py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.tw-py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.tw-py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.tw-py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.tw-py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.tw-pb-4 {
  padding-bottom: 1rem;
}
.tw-pt-3 {
  padding-top: 0.75rem;
}
.tw-pt-4 {
  padding-top: 1rem;
}
.tw-text-left {
  text-align: left;
}
.tw-text-center {
  text-align: center;
}
.tw-text-right {
  text-align: right;
}
.tw-text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.tw-text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.tw-text-4xl {
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.tw-text-6xl {
  font-size: 3.75rem;
  line-height: 1;
}
.tw-text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
.tw-text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.tw-text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.tw-text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.tw-text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.tw-font-app-medium {
  font-weight: 500;
}
.tw-font-app-semibold {
  font-weight: 600;
}
.tw-font-bold {
  font-weight: 700;
}
.tw-font-medium {
  font-weight: 500;
}
.tw-font-semibold {
  font-weight: 600;
}
.tw-leading-relaxed {
  line-height: 1.625;
}
.tw-text-amber-500 {
  --tw-text-opacity: 1;
  color: rgb(245 158 11 / var(--tw-text-opacity, 1));
}
.tw-text-amber-700 {
  --tw-text-opacity: 1;
  color: rgb(180 83 9 / var(--tw-text-opacity, 1));
}
.tw-text-amber-800 {
  --tw-text-opacity: 1;
  color: rgb(146 64 14 / var(--tw-text-opacity, 1));
}
.tw-text-blue-100 {
  --tw-text-opacity: 1;
  color: rgb(219 234 254 / var(--tw-text-opacity, 1));
}
.tw-text-blue-500 {
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity, 1));
}
.tw-text-blue-600 {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}
.tw-text-blue-700 {
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}
.tw-text-blue-800 {
  --tw-text-opacity: 1;
  color: rgb(30 64 175 / var(--tw-text-opacity, 1));
}
.tw-text-blue-900 {
  --tw-text-opacity: 1;
  color: rgb(30 58 138 / var(--tw-text-opacity, 1));
}
.tw-text-gray-300 {
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity, 1));
}
.tw-text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.tw-text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}
.tw-text-gray-600 {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}
.tw-text-gray-700 {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
.tw-text-gray-800 {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}
.tw-text-gray-900 {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}
.tw-text-green-500 {
  --tw-text-opacity: 1;
  color: rgb(34 197 94 / var(--tw-text-opacity, 1));
}
.tw-text-green-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}
.tw-text-green-700 {
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
}
.tw-text-green-800 {
  --tw-text-opacity: 1;
  color: rgb(22 101 52 / var(--tw-text-opacity, 1));
}
.tw-text-orange-700 {
  --tw-text-opacity: 1;
  color: rgb(194 65 12 / var(--tw-text-opacity, 1));
}
.tw-text-primary {
  --tw-text-opacity: 1;
  color: rgb(1 38 153 / var(--tw-text-opacity, 1));
}
.tw-text-purple-700 {
  --tw-text-opacity: 1;
  color: rgb(126 34 206 / var(--tw-text-opacity, 1));
}
.tw-text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.tw-text-red-600 {
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity, 1));
}
.tw-text-red-700 {
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity, 1));
}
.tw-text-red-800 {
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / var(--tw-text-opacity, 1));
}
.tw-text-red-900 {
  --tw-text-opacity: 1;
  color: rgb(127 29 29 / var(--tw-text-opacity, 1));
}
.tw-text-text-dark {
  --tw-text-opacity: 1;
  color: rgb(51 51 51 / var(--tw-text-opacity, 1));
}
.tw-text-text-light {
  --tw-text-opacity: 1;
  color: rgb(119 119 119 / var(--tw-text-opacity, 1));
}
.tw-text-text-medium {
  --tw-text-opacity: 1;
  color: rgb(85 85 85 / var(--tw-text-opacity, 1));
}
.tw-text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.tw-text-yellow-700 {
  --tw-text-opacity: 1;
  color: rgb(161 98 7 / var(--tw-text-opacity, 1));
}
.tw-text-yellow-800 {
  --tw-text-opacity: 1;
  color: rgb(133 77 14 / var(--tw-text-opacity, 1));
}
.tw-underline {
  text-decoration-line: underline;
}
.tw-line-through {
  text-decoration-line: line-through;
}
.tw-opacity-75 {
  opacity: 0.75;
}
.tw-shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.tw-shadow-card {
  --tw-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
  --tw-shadow-colored: 0 2px 4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.tw-shadow-lg {
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.tw-shadow-md {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.tw-shadow-sm {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.tw-transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.tw-transition-colors {
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.tw-transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.tw-transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.tw-duration-200 {
  transition-duration: 200ms;
}
.tw-duration-300 {
  transition-duration: 300ms;
}
.tw-duration-500 {
  transition-duration: 500ms;
}

:root {
  font-family: 'Poppins', system-ui, Avenir, Helvetica, Arial, sans-serif;
  line-height: 1.5;
  font-weight: 400;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
}
/* Fix for iOS 100vh issue */
@supports (-webkit-touch-callout: none) {
  html, body {
    height: -webkit-fill-available;
  }
}
html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
  overflow-x: hidden;
}
/* Root container - allow vertical scrolling */
#root {
  width: 100%;
  height: 100%;
  overflow-x: hidden;
}
/* Add this class to any container that should enable full-page scrolling */
.page-scrollable {
  width: 100%;
  height: 100%;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
.hover\:tw--translate-y-0\.5:hover {
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:tw-scale-105:hover {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:tw-scale-\[1\.01\]:hover {
  --tw-scale-x: 1.01;
  --tw-scale-y: 1.01;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:tw-border-gray-300:hover {
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}
.hover\:tw-bg-blue-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
}
.hover\:tw-bg-blue-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
}
.hover\:tw-bg-blue-700:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1));
}
.hover\:tw-bg-gray-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.hover\:tw-bg-gray-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}
.hover\:tw-bg-gray-300:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
}
.hover\:tw-bg-gray-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
.hover\:tw-bg-green-600:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1));
}
.hover\:tw-bg-primary-dark:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(1 77 145 / var(--tw-bg-opacity, 1));
}
.hover\:tw-text-blue-700:hover {
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity, 1));
}
.hover\:tw-text-gray-900:hover {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}
.hover\:tw-opacity-75:hover {
  opacity: 0.75;
}
.hover\:tw-shadow-md:hover {
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:tw-shadow-sm:hover {
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:tw-shadow-xl:hover {
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.active\:tw-scale-95:active {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.active\:tw-scale-\[0\.99\]:active {
  --tw-scale-x: 0.99;
  --tw-scale-y: 0.99;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.disabled\:tw-cursor-not-allowed:disabled {
  cursor: not-allowed;
}
.disabled\:tw-opacity-50:disabled {
  opacity: 0.5;
}
@media (min-width: 768px) {
  .md\:tw-grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .lg\:tw-grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
} 