/* ==================== GLOBAL RESET ==================== */
* { box-sizing: border-box; }

/* ==================== DASHBOARD LAYOUT ==================== */
.dashboard-layout {
  display: flex;
  min-height: 100vh;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  background-color: #f1f5f9;
}

/* ==================== SIDEBAR ==================== */
.sidebar {
  width: 260px;
  background-color: #0f172a;
  color: #fff;
  display: flex;
  flex-direction: column;
  padding: 20px 0;
  flex-shrink: 0;
}

.sidebar-nav {
  flex: 1;
  padding: 16px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.nav-item {
  text-align: left;
  padding: 12px 16px;
  background: none;
  border: none;
  color: #cbd5e1;
  font-size: 14px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
}
.nav-item:hover { background-color: #1e293b; color: #fff; }
.nav-item.active { background-color: #2563eb; color: #fff; font-weight: 600; }

.sidebar-section-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  background: transparent;
  border: none;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #94a3b8;
  font-weight: 700;
  margin-top: 20px;
  margin-bottom: 4px;
  padding: 6px 16px;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}
.sidebar-section-title span { font-size: 16px; }

.sidebar-footer {
  padding: 16px 20px 0;
  border-top: 1px solid #1e293b;
}
.change-pw-btn {
  width: 100%;
  padding: 8px;
  background-color: #2563eb;
  color: white;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 500;
  font-family: inherit;
  font-size: 13px;
  margin-bottom: 8px;
}
.logout-btn {
  width: 100%;
  padding: 8px;
  background-color: #dc2626;
  color: white;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 500;
  font-family: inherit;
}

/* ==================== MAIN CONTENT ==================== */
.main-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
}

.main-app-header {
  background: #0f172a;
  color: #fff;
  padding: 16px 30px 14px;
  flex-shrink: 0;
}
.main-app-header h1 {
  margin: 0;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: 0.2px;
}
.main-app-header p {
  margin: 4px 0 0;
  font-size: 13px;
  color: #93c5fd;
  font-weight: 600;
}

/* ==================== TOP TABS ==================== */
.top-tabs-container {
  display: flex;
  background: #fff;
  border-bottom: 2px solid #e2e8f0;
  padding: 0 30px;
  flex-shrink: 0;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}
.top-tab {
  padding: 18px 24px;
  background: transparent;
  border: none;
  border-bottom: 4px solid transparent;
  font-size: 16px !important;
  font-weight: 800 !important;
  color: #64748b;
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
  letter-spacing: 0.3px;
}
.top-tab:hover { color: #1e293b; background: #f8fafc; }
.top-tab.active { 
  color: #2563eb; 
  border-bottom-color: #2563eb; 
  font-weight: 900 !important; 
  background: #eff6ff;
}

.page-wrapper {
  padding: 20px 30px;
  flex: 1;
  overflow-y: auto;
}

/* ==================== MODERN CLICKABLE TABS (NEW) ==================== */
.ops-tabs, .leave-tabs {
  display: flex;
  gap: 6px;
  margin-bottom: 24px;
  background: #f1f5f9;
  padding: 6px;
  border-radius: 12px;
  border: 1px solid #e2e8f0;
  flex-wrap: wrap;
  width: fit-content;
}

.ops-tab-btn, .leave-tab {
  padding: 10px 20px;
  border: none;
  background: transparent;
  color: #64748b;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  border-radius: 8px;
  font-family: inherit;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.ops-tab-btn:hover, .leave-tab:hover {
  background: #e2e8f0;
  color: #1e293b;
}

.ops-tab-btn.active, .leave-tab.active {
  background: #ffffff;
  color: #2563eb;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06);
}

/* ==================== STAFF PAGE ==================== */
.staff-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}
.staff-header h2 { margin: 0; color: #1e293b; }

.add-staff-btn {
  background-color: #2563eb;
  color: white;
  border: none;
  padding: 10px 18px;
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
}
.staff-form {
  background: white;
  padding: 20px;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  margin-bottom: 20px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.staff-form input, .staff-form select {
  padding: 10px;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  font-size: 14px;
  font-family: inherit;
  width: 100%;
}
.staff-form button {
  grid-column: span 2;
  padding: 12px;
  background-color: #16a34a;
  color: white;
  border: none;
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
}
.staff-list {
  background: white;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  overflow-x: auto;
}
.staff-list table { width: 100%; border-collapse: collapse; }
.staff-list th, .staff-list td {
  padding: 14px 18px;
  text-align: left;
  border-bottom: 1px solid #e2e8f0;
  font-size: 14px;
}
.staff-list th { background-color: #f8fafc; font-weight: 600; color: #475569; }
.delete-btn {
  background-color: #fee2e2;
  color: #dc2626;
  border: none;
  padding: 6px 12px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.edit-btn {
  background-color: #dbeafe;
  color: #1d4ed8;
  border: none;
  padding: 6px 12px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 12px;
}
.empty-state { padding: 40px; text-align: center; color: #64748b; }

/* ==================== EXPORT BUTTONS ==================== */
.export-btn {
  padding: 10px 16px;
  border: none;
  border-radius: 6px;
  font-weight: 600;
  cursor: pointer;
  font-size: 13px;
  font-family: inherit;
}
.jpg-btn { background-color: #0891b2; color: white; }
.pdf-btn { background-color: #dc2626; color: white; }
.print-btn { background-color: #475569; color: white; }
.copy-btn { background-color: #0891b2; color: white; }
.bulk-btn { background-color: #7c3aed; color: white; }

/* ==================== WEEK NAVIGATION ==================== */
.week-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  background: white;
  padding: 15px 20px;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  flex-wrap: wrap;
  gap: 10px;
}
.week-nav button { background-color: #2563eb; color: white; border: none; padding: 8px 16px; border-radius: 6px; cursor: pointer; font-weight: 600; font-family: inherit; }

/* ==================== BULK ASSIGN FORM ==================== */
.bulk-form {
  background: linear-gradient(135deg, #faf5ff 0%, #f3e8ff 100%);
  border: 2px solid #a855f7;
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 20px;
  box-shadow: 0 4px 12px rgba(124, 58, 237, 0.1);
}
.bulk-form-title {
  font-weight: 700;
  color: #6d28d9;
  font-size: 15px;
  margin-bottom: 16px;
}
.bulk-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 16px;
}
.bulk-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bulk-field-full { grid-column: span 2; }
.bulk-field label {
  font-size: 12px;
  font-weight: 600;
  color: #6b21a8;
  letter-spacing: 0.3px;
}
.bulk-field select,
.bulk-field input {
  padding: 10px;
  border: 1px solid #c4b5fd;
  border-radius: 6px;
  font-size: 14px;
  font-family: inherit;
  background: #ffffff;
  color: #1e293b;
}
.bulk-field select:focus,
.bulk-field input:focus {
  outline: none;
  border-color: #7c3aed;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.15);
}
.bulk-day-buttons {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.day-btn {
  padding: 8px 14px;
  border: 1px solid #c4b5fd;
  background: #ffffff;
  color: #6b21a8;
  border-radius: 6px;
  font-weight: 600;
  font-size: 12px;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.15s;
}
.day-btn:hover { background: #ede9fe; }
.day-btn.active {
  background: #7c3aed;
  color: #ffffff;
  border-color: #7c3aed;
}
.bulk-preview {
  background: #ffffff;
  border: 1px solid #c4b5fd;
  border-radius: 6px;
  padding: 12px 16px;
  margin-bottom: 14px;
  color: #6d28d9;
  font-size: 14px;
}
.bulk-submit-btn {
  width: 100%;
  padding: 12px;
  background: #7c3aed;
  color: white;
  border: none;
  border-radius: 6px;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  font-family: inherit;
}
.bulk-submit-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* ==================== ROSTER GRID & COLORS ==================== */
.roster-export-area {
  background: #ffffff;
  padding: 12px 16px;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
}
.roster-title { text-align: center; margin-bottom: 8px; }
.roster-title h1 { font-size: 20px !important; margin: 0; color: #0f172a !important; font-weight: 900 !important; font-family: Arial, sans-serif; text-transform: uppercase; letter-spacing: 1px; }
.roster-week-section { margin-bottom: 6px; }
.week-label { font-size: 10px; font-weight: 700; color: #000000; margin: 0 0 2px 0; font-family: Arial, sans-serif; }

.print-week-header { display: none; }

.week-grid { width: 100%; border-collapse: collapse; margin: 0; font-family: Arial, sans-serif; table-layout: fixed; }
.week-grid th, .week-grid td {
  border: 1px solid #000000; 
  padding: 1px 2px; 
  font-size: 9px;
  text-align: center; 
  white-space: nowrap; 
  overflow: hidden; 
  text-overflow: ellipsis;
  color: #000000; 
  background-color: #ffffff; 
  height: 18px;
  line-height: 1.1;
}
.week-grid thead th { background-color: #22c55e !important; color: #ffffff !important; font-weight: 700; height: 20px; font-size: 8px; }

.week-grid .col-sn { width: 55px; font-weight: 600; text-align: left; }
.week-grid .col-name { width: 160px; text-align: left; font-weight: 600; font-size: 10px; }

.week-grid tbody tr:nth-child(odd) td.empty-cell { background-color: #ffffff; }
.week-grid tbody tr:nth-child(even) td.empty-cell { background-color: #fdf6e3; }
.week-grid tbody tr:nth-child(odd) td.col-sn, .week-grid tbody tr:nth-child(odd) td.col-name { background-color: #ffffff; }
.week-grid tbody tr:nth-child(even) td.col-sn, .week-grid tbody tr:nth-child(even) td.col-name { background-color: #fdf6e3; }

.week-grid tbody td.shift-morning { background-color: #d1fae5 !important; color: #065f46 !important; font-weight: bold; }
.week-grid tbody td.shift-day { background-color: #dbeafe !important; color: #1e40af !important; font-weight: bold; }
.week-grid tbody td.shift-afternoon { background-color: #ffedd5 !important; color: #9a3412 !important; font-weight: bold; }
.week-grid tbody td.shift-night { background-color: #f3e8ff !important; color: #6b21a8 !important; font-weight: bold; }
.week-grid tbody td.shift-custom { background-color: #f1f5f9 !important; color: #334155 !important; font-weight: bold; }

.week-grid tbody td.leave-off { background-color: #fecaca !important; color: #991b1b !important; font-weight: bold; }
.week-grid tbody td.leave-annual { background-color: #dc2626 !important; color: #ffffff !important; font-weight: bold; }
.week-grid tbody td.leave-sick { background-color: #f59e0b !important; color: #ffffff !important; font-weight: bold; }
.week-grid tbody td.leave-nopay { background-color: #64748b !important; color: #ffffff !important; font-weight: bold; }
.week-grid tbody td.leave-travel { background-color: #0891b2 !important; color: #ffffff !important; font-weight: bold; }
.week-grid tbody td.leave-pat { background-color: #8b5cf6 !important; color: #ffffff !important; font-weight: bold; }
.week-grid tbody td.leave-mat { background-color: #ec4899 !important; color: #ffffff !important; font-weight: bold; }
.week-grid tbody td.leave-frl { background-color: #0ea5e9 !important; color: #ffffff !important; font-weight: bold; }
.week-grid tbody td.leave-absent { background-color: #000000 !important; color: #ffffff !important; font-weight: bold; }
.week-grid tbody td.leave-late { background-color: #f97316 !important; color: #ffffff !important; font-weight: bold; }
.week-grid tbody td.leave-other { background-color: #94a3b8 !important; color: #ffffff !important; font-weight: bold; }

/* Admin staff auto-holiday cells (Fri / Sat / government holidays) */
.week-grid tbody td.admin-holiday {
  background-color: #fef3c7 !important;
  color: #92400e !important;
  font-weight: bold;
  font-size: 8px;
  letter-spacing: 0.3px;
}

.week-grid tbody td.out-of-period-cell { background-color: #e2e8f0 !important; color: #94a3b8 !important; }
.clickable-cell { cursor: pointer; transition: all 0.15s; }
.clickable-cell:hover { background-color: #e2e8f0 !important; border-color: #94a3b8 !important; }

/* ==================== DEPARTMENT TABS ==================== */
.dept-tabs { display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; background: white; padding: 8px; border-radius: 8px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); }
.dept-tab { padding: 8px 16px; border: 1px solid #cbd5e1; background-color: #ffffff; color: #475569; border-radius: 6px; font-weight: 600; font-size: 13px; cursor: pointer; font-family: inherit; }
.dept-tab.active { background-color: #2563eb; color: #ffffff; border-color: #2563eb; }

/* ==================== DASHBOARD ==================== */
.dash-welcome { background: linear-gradient(135deg, #2563eb 0%, #1e40af 100%); color: #ffffff; padding: 24px 28px; border-radius: 12px; margin-bottom: 20px; }
.dash-welcome h2 { color: #ffffff !important; font-size: 22px; margin: 0; }
.dash-welcome p { color: rgba(255, 255, 255, 0.85) !important; margin: 6px 0 0; }
.dash-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin-bottom: 20px; }
.stat-card { background: #ffffff; border-radius: 10px; padding: 18px 20px; display: flex; align-items: center; gap: 14px; cursor: pointer; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); border: 1px solid #e2e8f0; }
.stat-icon { width: 48px; height: 48px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; }
.stat-value { font-size: 24px; font-weight: 800; color: #1e293b; line-height: 1.1; }
.stat-label { font-size: 12px; color: #64748b; font-weight: 600; margin-top: 4px; }
.dash-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 900px) { .dash-grid { grid-template-columns: 1fr; } }
.dash-card { background: #ffffff; border-radius: 10px; padding: 20px 22px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); border: 1px solid #e2e8f0; }
.dash-card h3 { margin: 0 0 14px; font-size: 15px; color: #1e293b; font-weight: 700; }
.quick-btn { padding: 10px 16px; background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; border-radius: 6px; font-weight: 600; font-size: 13px; cursor: pointer; font-family: inherit; }
.mini-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.mini-table th, .mini-table td { padding: 8px 10px; text-align: left; border-bottom: 1px solid #e2e8f0; color: #1e293b; }
.mini-table th { background: #f8fafc; font-weight: 700; font-size: 11px; color: #475569; text-transform: uppercase; }

/* ==================== MODAL ==================== */
.modal-backdrop { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(15, 23, 42, 0.6); display: flex; align-items: center; justify-content: center; z-index: 9999; padding: 20px; backdrop-filter: blur(2px); }
.modal-content { background: #ffffff; padding: 28px; border-radius: 12px; max-width: 440px; width: 100%; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3); }
.modal-content h3 { margin: 0 0 12px; font-size: 18px; font-weight: 700; }
.modal-actions { display: flex; gap: 12px; justify-content: flex-end; }
.cancel-btn { padding: 10px 18px; background: #e2e8f0; color: #475569; border: none; border-radius: 6px; font-weight: 600; cursor: pointer; }
.modal-actions .submit-btn { padding: 10px 18px; color: #ffffff; border: none; border-radius: 6px; font-weight: 600; cursor: pointer; background: #2563eb; }

/* ==================== PRINT STYLES ==================== */
@media print {
  @page { size: A4 landscape; margin: 4mm; }

  .sidebar, .top-tabs-container, .main-app-header, .staff-header, .week-nav, .dept-tabs, .no-print, .reorder-col, .bulk-form, .staff-form {
    display: none !important;
  }

  .dashboard-layout, .main-content, .page-wrapper, .page-content {
    display: block !important; padding: 0 !important; margin: 0 !important; 
    background: #ffffff !important; overflow: visible !important; height: auto !important;
  }

  .roster-export-area {
    box-shadow: none !important; padding: 0 !important; margin: 0 !important; 
    background: #ffffff !important; border: none !important; zoom: 1 !important;
    height: 100% !important;
  }

  .roster-title { margin-bottom: 6px !important; padding: 0 !important; }
  .roster-title h1 { font-family: Arial, sans-serif !important; font-size: 14px !important; font-weight: 500 !important; margin: 0 !important; padding: 0 !important; text-transform: uppercase !important; }

  .roster-week-section { page-break-inside: avoid !important; break-inside: avoid !important; margin: 0 !important; padding: 0 !important; }
  .week-label { font-size: 10px !important; margin: 0 0 2px 0 !important; padding: 0 !important; line-height: 1 !important; font-weight: 500 !important; text-transform: uppercase !important; }

  .week-grid { width: 100% !important; table-layout: fixed !important; }
  .week-grid th, .week-grid td {
    border: 1px solid #000 !important; 
    padding: 0px 1px !important;
    text-align: center !important; 
    -webkit-print-color-adjust: exact !important; 
    print-color-adjust: exact !important;
  }

  .week-grid .col-sn { width: 45px !important; }
  .week-grid .col-name { width: 140px !important; font-size: 9px !important; }
  .week-grid .col-date { width: auto !important; }

  body.print-all .roster-title { display: none !important; }
  body.print-all .print-week-header {
    display: block !important;
    text-align: center !important;
    font-family: Arial, sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    margin-bottom: 4px !important;
    margin-top: 0 !important;
    padding: 0 !important;
    color: #000 !important;
  }
  body.print-all .roster-week-section {
    page-break-after: always !important;
    break-after: page !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    margin-bottom: 0 !important;
  }
  body.print-all .roster-week-section:last-child {
    page-break-after: auto !important;
    break-after: auto !important;
  }
  body.print-all .week-grid th, body.print-all .week-grid td {
    height: 20px !important; font-size: 10px !important; line-height: 1.1 !important;
  }
  body.print-all .week-grid thead th {
    height: 24px !important; font-size: 9px !important;
  }

  body.print-large .roster-week-section { margin-bottom: 2px !important; }
  body.print-large .week-grid th, body.print-large .week-grid td {
    height: 12px !important; font-size: 7.5px !important; line-height: 1 !important; padding: 0 !important;
  }
  body.print-large .week-grid thead th {
    height: 16px !important; font-size: 7px !important;
  }

  body.print-small .roster-week-section { margin-bottom: 10px !important; }
  body.print-small .week-grid th, body.print-small .week-grid td {
    height: 24px !important; font-size: 10px !important; line-height: 1.1 !important;
  }
  body.print-small .week-grid thead th {
    height: 28px !important; font-size: 9px !important;
  }

  .week-grid thead th { background-color: #22c55e !important; color: #ffffff !important; }
  .shift-morning { background-color: #d1fae5 !important; }
  .shift-day { background-color: #dbeafe !important; }
  .shift-afternoon { background-color: #ffedd5 !important; }
  .shift-night { background-color: #f3e8ff !important; }
  .leave-off { background-color: #fecaca !important; }
  .leave-annual { background-color: #dc2626 !important; color: #fff !important; }
  .leave-sick { background-color: #f59e0b !important; color: #fff !important; }
  .leave-nopay { background-color: #64748b !important; color: #fff !important; }
  .leave-travel { background-color: #0891b2 !important; color: #fff !important; }
  .leave-pat { background-color: #8b5cf6 !important; color: #fff !important; }
  .leave-mat { background-color: #ec4899 !important; color: #fff !important; }
  .leave-frl { background-color: #0ea5e9 !important; color: #fff !important; }
  .leave-absent { background-color: #000000 !important; color: #fff !important; }
  .leave-late { background-color: #f97316 !important; color: #fff !important; }
  .admin-holiday { background-color: #fef3c7 !important; color: #92400e !important; }
  .out-of-period-cell { background-color: #e2e8f0 !important; }
}

/* =========================================================
   MOBILE RESPONSIVE LAYOUT (STRICTLY SCREEN ONLY)
   ========================================================= */
@media screen and (max-width: 1024px) {
  .dashboard-layout {
    display: flex !important;
    flex-direction: column !important;
    width: 100vw !important;
    min-height: 100vh !important;
    overflow-x: hidden !important;
  }

  .sidebar, .main-content { display: contents !important; }

  .top-tabs-container {
    display: flex !important; order: 2 !important; width: 100% !important;
    overflow-x: auto !important; background: #fff !important; border-bottom: 2px solid #e2e8f0 !important;
  }
  .top-tab {
    flex: 1 !important; padding: 12px 10px !important; font-size: 13px !important;
    white-space: nowrap !important; text-align: center !important;
  }

  .sidebar-nav {
    display: flex !important; flex-direction: row !important; order: 3 !important;
    width: 100% !important; overflow-x: auto !important; padding: 10px !important;
    background: #f8fafc !important; border-bottom: 1px solid #e2e8f0 !important; gap: 8px !important;
  }
  .sidebar-section-title { display: none !important; }
  .nav-item {
    white-space: nowrap !important; padding: 8px 16px !important; font-size: 13px !important;
    border: 1px solid #cbd5e1 !important; background: #fff !important;
    border-radius: 20px !important; color: #475569 !important; margin: 0 !important;
  }
  .nav-item.active {
    background: #2563eb !important; color: #fff !important; border-color: #2563eb !important;
  }

  .page-wrapper {
    display: block !important; order: 4 !important; width: 100% !important;
    padding: 15px !important; flex: 1 !important;
  }

  .sidebar-footer {
    display: flex !important; flex-direction: column !important; order: 5 !important;
    width: 100% !important; background: #0f172a !important; padding: 20px !important; margin-top: auto !important;
  }
  .sidebar-footer button { width: 100% !important; padding: 12px !important; font-size: 14px !important; }

  .bulk-form-grid { grid-template-columns: 1fr !important; }
  .bulk-field-full { grid-column: span 1 !important; }

  .week-grid th, .week-grid td { font-size: 10px !important; padding: 4px 2px !important; }
  .week-grid .col-sn { width: 45px !important; min-width: 45px !important; }
  .week-grid .col-name { width: 90px !important; min-width: 90px !important; white-space: nowrap !important; overflow: hidden; text-overflow: ellipsis; }
  .week-grid .col-date { min-width: 65px !important; padding: 0 2px !important; }
}
/* (Keep all your existing CSS at the top... just update the Mobile Responsive section at the very bottom) */

/* =========================================================
   MOBILE RESPONSIVE LAYOUT (STRICTLY SCREEN ONLY)
   ========================================================= */
@media screen and (max-width: 1024px) {
  .dashboard-layout {
    display: flex !important;
    flex-direction: column !important;
    width: 100vw !important;
    min-height: 100vh !important;
    overflow-x: hidden !important;
  }

  .sidebar, .main-content { display: contents !important; }

  .top-tabs-container {
    display: flex !important; order: 2 !important; width: 100% !important;
    overflow-x: auto !important; background: #fff !important; border-bottom: 2px solid #e2e8f0 !important;
  }
  .top-tab {
    flex: 1 !important; padding: 12px 10px !important; font-size: 13px !important;
    white-space: nowrap !important; text-align: center !important;
  }

  .sidebar-nav {
    display: flex !important; flex-direction: row !important; order: 3 !important;
    width: 100% !important; overflow-x: auto !important; padding: 10px !important;
    background: #f8fafc !important; border-bottom: 1px solid #e2e8f0 !important; gap: 8px !important;
    flex-wrap: nowrap !important; /* Prevent wrapping */
  }
  .sidebar-section-title { display: none !important; }
  
  .nav-item {
    white-space: nowrap !important; padding: 8px 16px !important; font-size: 13px !important;
    border: 1px solid #cbd5e1 !important; background: #fff !important;
    border-radius: 20px !important; color: #475569 !important; margin: 0 !important;
    flex-shrink: 0 !important; /* FIX: Prevents stretching */
  }
  .nav-item.active {
    background: #2563eb !important; color: #fff !important; border-color: #2563eb !important;
  }

  .page-wrapper {
    display: block !important; order: 4 !important; width: 100% !important;
    padding: 15px !important; flex: 1 !important;
  }

  .sidebar-footer {
    display: flex !important; flex-direction: column !important; order: 5 !important;
    width: 100% !important; background: #0f172a !important; padding: 20px !important; margin-top: auto !important;
  }
  .sidebar-footer button { width: 100% !important; padding: 12px !important; font-size: 14px !important; }

  .bulk-form-grid { grid-template-columns: 1fr !important; }
  .bulk-field-full { grid-column: span 1 !important; }

  .week-grid th, .week-grid td { font-size: 10px !important; padding: 4px 2px !important; }
  .week-grid .col-sn { width: 45px !important; min-width: 45px !important; }
  .week-grid .col-name { width: 90px !important; min-width: 90px !important; white-space: nowrap !important; overflow: hidden; text-overflow: ellipsis; }
  .week-grid .col-date { min-width: 65px !important; padding: 0 2px !important; }
}
/* ==================== FLIGHT CARD RESPONSIVE FIX ==================== */
.flight-card-details {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  padding: 20px;
  gap: 16px;
}

@media screen and (max-width: 768px) {
  .flight-card-details {
    grid-template-columns: 1fr;
    padding: 16px;
    text-align: center;
  }
  
  /* Remove the vertical borders on mobile */
  .flight-card-details > div {
    border: none !important;
    padding: 0 !important;
    align-items: center !important;
  }
}
/* ==================== PHASE 3 APPLICATION SHELL ==================== */
.app-shell {
  --shell-navy: #082f49;
  --shell-navy-deep: #06263b;
  --shell-accent: #0f766e;
  --shell-accent-soft: #ccfbf1;
  --shell-canvas: #f4f7f9;
  --shell-line: #dbe4ea;
  --shell-text: #102a43;
  --shell-muted: #627d98;
  display: flex;
  width: 100%;
  min-height: 100dvh;
  background: var(--shell-canvas);
  color: var(--shell-text);
  text-align: left;
}

.app-sidebar {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 272px;
  height: 100dvh;
  flex: 0 0 272px;
  display: flex;
  flex-direction: column;
  padding: 22px 16px 16px;
  background: var(--shell-navy);
  color: #e6f6ff;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.app-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  padding: 0 8px 22px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.app-brand-mark {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 12px;
  background: #ffffff;
  color: var(--shell-navy);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.app-brand strong,
.app-brand span {
  display: block;
}

.app-brand strong {
  color: #ffffff;
  font-size: 14px;
  line-height: 1.3;
  font-weight: 800;
}

.app-brand span {
  margin-top: 2px;
  color: #a7c7d9;
  font-size: 11px;
  line-height: 1.3;
}

.app-sidebar-label {
  padding: 24px 12px 8px;
  color: #79a9c2;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.app-module-nav {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.app-module-button {
  width: 100%;
  min-height: 46px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 7px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: #c7ddea;
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  text-align: left;
  cursor: pointer;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

.app-module-button:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
}

.app-module-button.active {
  background: #ffffff;
  border-color: #ffffff;
  color: var(--shell-navy);
}

.app-nav-icon {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.1);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.app-module-button.active .app-nav-icon {
  background: var(--shell-accent-soft);
  color: var(--shell-accent);
}

.app-sidebar-profile {
  margin-top: auto;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 14px 10px 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.app-avatar {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #0f766e;
  color: #ffffff;
  font-size: 11px;
  font-weight: 850;
}

.app-profile-copy {
  min-width: 0;
}

.app-profile-copy strong,
.app-profile-copy span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.app-profile-copy strong {
  color: #ffffff;
  font-size: 12px;
}

.app-profile-copy span {
  margin-top: 3px;
  color: #91b8ca;
  font-size: 9px;
  text-transform: capitalize;
}

.app-signout-button {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 4px;
  padding: 9px 12px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  background: transparent;
  color: #d7e8f1;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.app-signout-button:hover {
  border-color: #ffffff;
  color: #ffffff;
}

.app-main {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.app-topbar {
  position: sticky;
  top: 0;
  z-index: 35;
  min-height: 76px;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 28px;
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid var(--shell-line);
}

.app-page-heading {
  min-width: 0;
}

.app-page-heading > span {
  display: block;
  margin-bottom: 2px;
  color: var(--shell-accent);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.app-page-heading h1 {
  margin: 0;
  color: var(--shell-text);
  font-size: 20px;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -0.015em;
}

.app-system-status {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px 10px;
  border: 1px solid #b7e4d8;
  border-radius: 999px;
  background: #f0fdfa;
  color: #11695f;
  font-size: 10px;
  font-weight: 750;
  white-space: nowrap;
}

.app-status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #10b981;
}

.app-menu-button {
  display: none;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  padding: 10px;
  border: 1px solid var(--shell-line);
  border-radius: 9px;
  background: #ffffff;
  cursor: pointer;
}

.app-menu-button span {
  display: block;
  height: 2px;
  margin: 4px 0;
  border-radius: 2px;
  background: var(--shell-text);
}

.app-subnav {
  min-height: 54px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 28px;
  overflow-x: auto;
  background: #ffffff;
  border-bottom: 1px solid var(--shell-line);
  scrollbar-width: thin;
}

.app-subnav button {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  padding: 7px 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--shell-muted);
  font: inherit;
  font-size: 11px;
  font-weight: 750;
  cursor: pointer;
}

.app-subnav button:hover {
  background: #edf3f6;
  color: var(--shell-text);
}

.app-subnav button.active {
  border-color: #99d5cb;
  background: var(--shell-accent-soft);
  color: #0b665e;
}

.app-subnav button span {
  min-width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  background: #e7eef3;
  color: #486581;
  font-size: 8px;
  font-weight: 900;
}

.app-subnav button.active span {
  background: #ffffff;
  color: var(--shell-accent);
}

.app-page {
  width: 100%;
  max-width: 1680px;
  margin: 0 auto;
  padding: 24px 28px 40px;
  flex: 1;
}

.app-nav-backdrop {
  display: none;
}

@media screen and (max-width: 980px) {
  .app-sidebar {
    position: fixed;
    left: 0;
    top: 0;
    transform: translateX(-102%);
    transition: transform 180ms ease;
  }

  .app-sidebar.open {
    transform: translateX(0);
  }

  .app-nav-backdrop {
    position: fixed;
    inset: 0;
    z-index: 45;
    display: block;
    border: 0;
    background: rgba(8, 47, 73, 0.52);
  }

  .app-menu-button {
    display: block;
  }

  .app-topbar {
    padding: 10px 16px;
  }

  .app-subnav {
    padding: 8px 16px;
  }

  .app-page {
    padding: 18px 16px 32px;
  }
}

@media screen and (max-width: 560px) {
  .app-topbar {
    min-height: 68px;
  }

  .app-page-heading h1 {
    font-size: 17px;
  }

  .app-system-status {
    display: none;
  }

  .app-page {
    padding: 14px 10px 28px;
  }
}

@media print {
  .app-sidebar,
  .app-topbar,
  .app-subnav,
  .app-nav-backdrop {
    display: none !important;
  }

  .app-shell,
  .app-main,
  .app-page {
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    overflow: visible !important;
  }
}
/* ==================== PHASE 4 OVERVIEW DASHBOARD ==================== */
.overview-dashboard {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.overview-welcome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 148px;
  padding: 28px 30px;
  border: 1px solid #164e63;
  border-radius: 16px;
  background: #0c4a6e;
  color: #ffffff;
}

.overview-kicker,
.overview-panel-header span {
  display: block;
  margin-bottom: 6px;
  color: #0f766e;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.overview-welcome .overview-kicker {
  color: #a5f3fc;
}

.overview-welcome h1 {
  margin: 0;
  color: #ffffff;
  font-size: clamp(23px, 3vw, 32px);
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.overview-welcome p {
  margin-top: 10px;
  color: #c8e6f3;
  font-size: 12px;
  font-weight: 600;
}

.overview-clock {
  min-width: 190px;
  padding-left: 24px;
  border-left: 1px solid rgba(255, 255, 255, 0.24);
  text-align: right;
}

.overview-clock span,
.overview-clock small {
  display: block;
  color: #c8e6f3;
  font-size: 11px;
  font-weight: 650;
}

.overview-clock strong {
  display: block;
  margin: 3px 0;
  color: #ffffff;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 27px;
  line-height: 1.2;
  letter-spacing: 0.03em;
}

.overview-alert {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border: 1px solid #f5c2c7;
  border-radius: 10px;
  background: #fff5f5;
  color: #8a1c27;
  font-size: 12px;
}

.overview-alert strong {
  white-space: nowrap;
}

.overview-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.overview-metrics > button {
  min-height: 92px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border: 1px solid #dbe4ea;
  border-radius: 12px;
  background: #ffffff;
  color: #102a43;
  text-align: left;
  cursor: pointer;
  transition: border-color 150ms ease, transform 150ms ease;
}

.overview-metrics > button:hover {
  transform: translateY(-1px);
  border-color: #7bc8bb;
}

.overview-metric-code {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 10px;
  background: #e6fffa;
  color: #0f766e;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.overview-metrics strong,
.overview-metrics small {
  display: block;
}

.overview-metrics strong {
  font-size: 24px;
  line-height: 1.1;
  font-weight: 850;
}

.overview-metrics small {
  margin-top: 5px;
  color: #627d98;
  font-size: 10px;
  font-weight: 650;
}

.overview-primary-grid,
.overview-secondary-grid,
.overview-lower-grid {
  display: grid;
  gap: 18px;
  align-items: start;
}

.overview-primary-grid {
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, 0.9fr);
}

.overview-secondary-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.overview-lower-grid {
  grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.7fr);
}

.overview-panel {
  min-width: 0;
  padding: 20px;
  border: 1px solid #dbe4ea;
  border-radius: 14px;
  background: #ffffff;
}

.overview-panel-header {
  min-height: 39px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.overview-panel-header h2 {
  margin: 0;
  color: #102a43;
  font-size: 16px;
  line-height: 1.25;
  font-weight: 800;
}

.overview-text-button {
  flex: 0 0 auto;
  padding: 7px 10px;
  border: 1px solid #c7dbe5;
  border-radius: 7px;
  background: #ffffff;
  color: #0c6170;
  font: inherit;
  font-size: 9px;
  font-weight: 800;
  cursor: pointer;
}

.overview-text-button:hover {
  border-color: #7bc8bb;
  background: #f0fdfa;
}

.overview-flight-lead {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 17px;
  border-bottom: 1px solid #e6edf2;
}

.overview-flight-lead div > strong,
.overview-flight-lead div > span {
  display: block;
}

.overview-flight-lead div > strong {
  color: #0c4a6e;
  font-size: 27px;
  line-height: 1.1;
  font-weight: 900;
  letter-spacing: -0.02em;
}

.overview-flight-lead div > span {
  margin-top: 5px;
  color: #627d98;
  font-size: 11px;
  font-weight: 650;
}

.overview-status {
  padding: 6px 9px;
  border: 1px solid #99d5cb;
  border-radius: 999px;
  background: #f0fdfa;
  color: #0f6b62;
  font-size: 9px;
  font-weight: 850;
  white-space: nowrap;
}

.overview-flight-timeline {
  display: grid;
  grid-template-columns: minmax(90px, auto) minmax(80px, 1fr) minmax(90px, auto);
  align-items: center;
  gap: 14px;
  padding: 23px 0;
}

.overview-flight-timeline > div:first-child {
  text-align: left;
}

.overview-flight-timeline > div:last-child {
  text-align: right;
}

.overview-flight-timeline small,
.overview-flight-timeline strong {
  display: block;
}

.overview-flight-timeline small {
  color: #829ab1;
  font-size: 9px;
  font-weight: 750;
  text-transform: uppercase;
}

.overview-flight-timeline strong {
  margin-top: 5px;
  color: #243b53;
  font-size: 17px;
}

.overview-route-line {
  display: flex;
  align-items: center;
}

.overview-route-line span {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border: 2px solid #0f766e;
  border-radius: 50%;
  background: #ffffff;
}

.overview-route-line i {
  height: 2px;
  flex: 1;
  background: #99d5cb;
}

.overview-flight-details {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  overflow: hidden;
  border: 1px solid #e1e9ee;
  border-radius: 9px;
  background: #e1e9ee;
}

.overview-flight-details > div {
  min-width: 0;
  padding: 12px;
  background: #f8fafc;
}

.overview-flight-details dt {
  color: #829ab1;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.overview-flight-details dd {
  margin: 5px 0 0;
  overflow: hidden;
  color: #243b53;
  font-size: 11px;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.overview-staffing-total {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-bottom: 20px;
}

.overview-staffing-total > div {
  padding: 13px;
  border-radius: 9px;
  background: #f4f8fa;
}

.overview-staffing-total strong,
.overview-staffing-total span {
  display: block;
}

.overview-staffing-total strong {
  color: #0c4a6e;
  font-size: 24px;
  line-height: 1;
}

.overview-staffing-total span {
  margin-top: 6px;
  color: #627d98;
  font-size: 9px;
  font-weight: 700;
}

.overview-department-bars {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.overview-department-bars > div > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 5px;
  color: #486581;
  font-size: 9px;
  font-weight: 700;
}

.overview-department-bars i {
  height: 5px;
  display: block;
  overflow: hidden;
  border-radius: 999px;
  background: #e7eef3;
}

.overview-department-bars i span {
  height: 100%;
  display: block;
  border-radius: inherit;
  background: #0f766e;
}

.overview-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.overview-actions button {
  min-height: 72px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px;
  border: 1px solid #e0e8ed;
  border-radius: 9px;
  background: #f8fafc;
  text-align: left;
  cursor: pointer;
}

.overview-actions button:hover {
  border-color: #99d5cb;
  background: #f0fdfa;
}

.overview-actions button > span {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 8px;
  background: #e6fffa;
  color: #0f766e;
  font-size: 9px;
  font-weight: 900;
}

.overview-actions strong,
.overview-actions small {
  display: block;
}

.overview-actions strong {
  color: #243b53;
  font-size: 11px;
}

.overview-actions small {
  margin-top: 3px;
  color: #829ab1;
  font-size: 8px;
  line-height: 1.35;
}

.overview-request-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.overview-request-summary button {
  min-height: 90px;
  padding: 13px;
  border: 1px solid #e0e8ed;
  border-radius: 9px;
  background: #ffffff;
  text-align: left;
  cursor: pointer;
}

.overview-request-summary button:hover {
  border-color: #e3a008;
  background: #fffbeb;
}

.overview-request-summary span,
.overview-request-summary strong {
  display: block;
}

.overview-request-summary span {
  color: #627d98;
  font-size: 9px;
  font-weight: 700;
}

.overview-request-summary strong {
  margin-top: 14px;
  color: #9a6700;
  font-size: 25px;
  line-height: 1;
}

.overview-duty-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.overview-duty-grid article {
  min-height: 126px;
  padding: 13px;
  border: 1px solid #e0e8ed;
  border-radius: 9px;
  background: #fbfcfd;
}

.overview-duty-grid article header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-bottom: 9px;
  border-bottom: 1px solid #e7eef3;
}

.overview-duty-grid article header strong {
  color: #334e68;
  font-size: 10px;
}

.overview-duty-grid article header span {
  min-width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: #e6fffa;
  color: #0f766e;
  font-size: 9px;
  font-weight: 850;
}

.overview-duty-grid ul,
.overview-leave-list {
  margin: 9px 0 0;
  padding: 0;
  list-style: none;
}

.overview-duty-grid li {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 0;
  color: #486581;
  font-size: 9px;
}

.overview-duty-grid li span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.overview-duty-grid li small {
  flex: 0 0 auto;
  color: #829ab1;
  font-size: 8px;
}

.overview-duty-grid article p {
  margin-top: 12px;
  color: #9fb3c8;
  font-size: 9px;
}

.overview-leave-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.overview-leave-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px;
  border: 1px solid #e7eef3;
  border-radius: 9px;
}

.overview-person-mark {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #e6fffa;
  color: #0f766e;
  font-size: 9px;
  font-weight: 850;
}

.overview-leave-list strong,
.overview-leave-list small {
  display: block;
}

.overview-leave-list strong {
  color: #334e68;
  font-size: 10px;
}

.overview-leave-list small {
  margin-top: 3px;
  color: #829ab1;
  font-size: 8px;
}

.overview-empty {
  min-height: 110px;
  display: grid;
  place-items: center;
  padding: 20px;
  border: 1px dashed #cbd9e2;
  border-radius: 9px;
  color: #829ab1;
  font-size: 10px;
  text-align: center;
}

.overview-loading {
  min-height: 130px;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.overview-loading span {
  height: 22px;
  border-radius: 6px;
  background: #edf2f5;
}

.overview-loading span:nth-child(2) {
  width: 78%;
}

.overview-loading span:nth-child(3) {
  width: 55%;
}

@media screen and (max-width: 1200px) {
  .overview-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .overview-primary-grid,
  .overview-lower-grid {
    grid-template-columns: 1fr;
  }
}

@media screen and (max-width: 760px) {
  .overview-welcome {
    align-items: flex-start;
    padding: 22px;
  }

  .overview-clock {
    min-width: 0;
    padding-left: 18px;
  }

  .overview-secondary-grid {
    grid-template-columns: 1fr;
  }

  .overview-duty-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 560px) {
  .overview-welcome {
    flex-direction: column;
  }

  .overview-clock {
    width: 100%;
    padding: 14px 0 0;
    border-top: 1px solid rgba(255, 255, 255, 0.24);
    border-left: 0;
    text-align: left;
  }

  .overview-clock strong {
    font-size: 22px;
  }

  .overview-metrics,
  .overview-actions,
  .overview-request-summary,
  .overview-duty-grid {
    grid-template-columns: 1fr;
  }

  .overview-flight-timeline {
    grid-template-columns: minmax(72px, auto) minmax(35px, 1fr) minmax(72px, auto);
    gap: 8px;
  }

  .overview-flight-details {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media print {
  .overview-text-button,
  .overview-actions {
    display: none !important;
  }

  .overview-dashboard {
    gap: 10px !important;
  }

  .overview-panel,
  .overview-welcome,
  .overview-metrics > button {
    break-inside: avoid !important;
  }
}
/* Phase 5: Flight Schedule workspace */
.flight-schedule-page { display: flex; flex-direction: column; gap: 24px; }
.flight-schedule-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 30px; border-radius: 24px; color: #fff; background: radial-gradient(circle at 90% 10%, rgba(56,189,248,.28), transparent 30%), linear-gradient(135deg, #0f172a 0%, #123c66 60%, #075985 100%); box-shadow: 0 20px 45px rgba(15,23,42,.16); }
.flight-schedule-kicker { display: block; margin-bottom: 8px; color: #7dd3fc; font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.flight-schedule-hero h2 { margin: 0; font-size: clamp(28px, 4vw, 42px); letter-spacing: -.04em; }
.flight-schedule-hero p { max-width: 620px; margin: 10px 0 0; color: #cbd5e1; line-height: 1.6; }
.flight-schedule-hero__actions, .flight-schedule-form__actions { display: flex; gap: 10px; }
.flight-primary-button, .flight-secondary-button, .flight-danger-button { min-height: 42px; padding: 0 17px; border: 0; border-radius: 11px; font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease; }
.flight-primary-button { color: #082f49; background: #7dd3fc; box-shadow: 0 8px 20px rgba(14,165,233,.25); }
.flight-secondary-button { color: #334155; background: #fff; border: 1px solid #dbe4ee; }
.flight-danger-button { min-height: 36px; color: #b91c1c; background: #fff1f2; }
.flight-primary-button:hover, .flight-secondary-button:hover, .flight-danger-button:hover { transform: translateY(-1px); }
.flight-primary-button:disabled, .flight-secondary-button:disabled { cursor: wait; opacity: .65; transform: none; }
.flight-schedule-hero .flight-secondary-button { color: #e0f2fe; background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.2); }
.flight-schedule-alert { display: flex; gap: 10px 20px; flex-wrap: wrap; padding: 14px 18px; border: 1px solid #fed7aa; border-radius: 12px; color: #9a3412; background: #fff7ed; }
.flight-schedule-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.flight-schedule-summary > div { position: relative; overflow: hidden; padding: 20px; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px rgba(15,23,42,.05); }
.flight-schedule-summary > div::after { position: absolute; right: -20px; bottom: -34px; width: 90px; height: 90px; border-radius: 50%; background: #e0f2fe; content: ''; }
.flight-schedule-summary span, .flight-schedule-summary small { position: relative; z-index: 1; display: block; color: #64748b; font-size: 11px; font-weight: 700; }
.flight-schedule-summary strong { position: relative; z-index: 1; display: block; margin: 5px 0; color: #0f172a; font-size: 30px; line-height: 1; }
.flight-schedule-form { overflow: hidden; border: 1px solid #cbd5e1; border-radius: 20px; background: #fff; box-shadow: 0 18px 42px rgba(15,23,42,.08); }
.flight-schedule-form__heading { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; color: #fff; background: #172f4d; }
.flight-schedule-form__heading span { color: #7dd3fc; font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.flight-schedule-form__heading h3 { margin: 3px 0 0; font-size: 21px; }
.flight-schedule-form__heading button { width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.18); border-radius: 10px; color: #fff; background: rgba(255,255,255,.08); font-size: 25px; cursor: pointer; }
.flight-schedule-form__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; padding: 24px; }
.flight-schedule-form label { display: flex; flex-direction: column; gap: 7px; color: #475569; font-size: 11px; font-weight: 800; letter-spacing: .02em; }
.flight-schedule-form input, .flight-schedule-form select, .flight-schedule-form textarea { width: 100%; box-sizing: border-box; border: 1px solid #cbd5e1; border-radius: 10px; color: #172033; background: #f8fafc; font: inherit; font-size: 14px; outline: none; }
.flight-schedule-form input, .flight-schedule-form select { min-height: 43px; padding: 0 12px; }
.flight-schedule-form textarea { padding: 12px; resize: vertical; }
.flight-schedule-form input:focus, .flight-schedule-form select:focus, .flight-schedule-form textarea:focus { border-color: #0ea5e9; box-shadow: 0 0 0 3px rgba(14,165,233,.12); background: #fff; }
.flight-schedule-form__wide { grid-column: span 2; }
.flight-schedule-form__actions { justify-content: flex-end; padding: 0 24px 24px; }
.flight-schedule-workspace { overflow: hidden; border: 1px solid #e2e8f0; border-radius: 22px; background: #f8fafc; box-shadow: 0 16px 38px rgba(15,23,42,.06); }
.flight-schedule-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; border-bottom: 1px solid #e2e8f0; background: #fff; }
.flight-schedule-tabs { display: flex; gap: 5px; padding: 4px; border-radius: 12px; background: #eef2f7; }
.flight-schedule-tabs button { min-height: 38px; padding: 0 14px; border: 0; border-radius: 9px; color: #64748b; background: transparent; font: inherit; font-size: 13px; font-weight: 800; cursor: pointer; }
.flight-schedule-tabs button.is-active { color: #0c4a6e; background: #fff; box-shadow: 0 3px 10px rgba(15,23,42,.09); }
.flight-schedule-tabs span { display: inline-flex; min-width: 22px; height: 20px; align-items: center; justify-content: center; margin-left: 5px; border-radius: 10px; color: #0369a1; background: #e0f2fe; font-size: 10px; }
.flight-schedule-search { display: flex; align-items: center; gap: 10px; color: #64748b; font-size: 11px; font-weight: 800; }
.flight-schedule-search input { min-width: 240px; height: 40px; padding: 0 13px; border: 1px solid #cbd5e1; border-radius: 10px; font: inherit; }
.flight-schedule-list { display: flex; flex-direction: column; gap: 14px; padding: 18px; }
.flight-schedule-card { overflow: hidden; border: 1px solid #dbe4ee; border-left: 5px solid #0ea5e9; border-radius: 16px; background: #fff; box-shadow: 0 8px 20px rgba(15,23,42,.05); }
.flight-schedule-card--additional { border-left-color: #f59e0b; }
.flight-schedule-card--air-ambulance { border-left-color: #ef4444; }
.flight-schedule-card--cargo { border-left-color: #8b5cf6; }
.flight-schedule-card__header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 17px 20px; border-bottom: 1px solid #eef2f7; }
.flight-schedule-card__eyebrow { color: #64748b; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.flight-schedule-card__identity { display: flex; align-items: center; gap: 10px; margin-top: 3px; }
.flight-schedule-card__identity h3 { margin: 0; color: #0f172a; font-size: 22px; }
.flight-schedule-card__identity > span { padding: 4px 8px; border-radius: 6px; color: #475569; background: #eef2f7; font-size: 10px; font-weight: 800; }
.flight-status { display: inline-flex; align-items: center; justify-content: center; padding: 6px 10px; border-radius: 999px; color: #166534; background: #dcfce7; font-size: 10px; font-weight: 900; white-space: nowrap; }
.flight-status--delayed { color: #92400e; background: #fef3c7; }
.flight-status--cancelled { color: #991b1b; background: #fee2e2; }
.flight-status--departed, .flight-status--completed, .flight-status--landed { color: #475569; background: #e2e8f0; }
.flight-status--departed-origin { color: #6b21a8; background: #f3e8ff; }
.flight-schedule-card__body { display: grid; grid-template-columns: 1.15fr 1.4fr 1.4fr 1.2fr; }
.flight-schedule-card__body > section { min-width: 0; padding: 20px; border-right: 1px solid #eef2f7; }
.flight-schedule-card__body > section:last-child { border-right: 0; }
.flight-schedule-route span, .flight-schedule-pax > span, .flight-schedule-times span, .flight-schedule-live span { display: block; margin-bottom: 5px; color: #64748b; font-size: 9px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.flight-schedule-route strong { display: block; overflow-wrap: anywhere; color: #0f172a; font-size: 17px; }
.flight-schedule-route small { display: block; margin-top: 8px; color: #64748b; font-weight: 700; }
.flight-schedule-times, .flight-schedule-live { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.flight-schedule-times strong, .flight-schedule-live strong { color: #0f172a; font-size: 14px; }
.flight-schedule-pax > strong { display: block; color: #0f172a; font-size: 15px; }
.flight-schedule-pax strong small { color: #64748b; font-size: 10px; }
.flight-schedule-pax p { margin: 10px 0 0; color: #64748b; font-size: 11px; line-height: 1.45; }
.flight-schedule-card__actions { display: flex; justify-content: flex-end; gap: 8px; padding: 11px 16px; border-top: 1px solid #eef2f7; background: #fbfdff; }
.flight-schedule-card__actions button { min-height: 34px; padding: 0 12px; font-size: 11px; }
.flight-schedule-table-wrap { overflow-x: auto; background: #fff; }
.flight-schedule-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.flight-schedule-table th { padding: 12px 15px; color: #64748b; background: #f8fafc; font-size: 9px; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.flight-schedule-table td { padding: 14px 15px; border-top: 1px solid #eef2f7; color: #334155; vertical-align: middle; }
.flight-schedule-table td strong, .flight-schedule-table td small { display: block; }
.flight-schedule-table td small { margin-top: 3px; color: #64748b; font-size: 9px; }
.flight-schedule-table__actions { display: flex; gap: 6px; }
.flight-schedule-table__actions button { border: 0; color: #0369a1; background: transparent; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.flight-schedule-table__actions button.is-danger { color: #dc2626; }
.flight-schedule-empty, .flight-schedule-loading { padding: 60px 24px; color: #64748b; text-align: center; }
.flight-schedule-empty strong { color: #334155; font-size: 17px; }
.flight-schedule-empty p { margin: 7px 0 0; }
@media (max-width: 1100px) { .flight-schedule-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .flight-schedule-card__body { grid-template-columns: repeat(2, minmax(0, 1fr)); } .flight-schedule-card__body > section:nth-child(2) { border-right: 0; } .flight-schedule-card__body > section:nth-child(-n+2) { border-bottom: 1px solid #eef2f7; } }
@media (max-width: 760px) { .flight-schedule-hero { align-items: stretch; flex-direction: column; padding: 24px 20px; } .flight-schedule-hero__actions { width: 100%; } .flight-schedule-hero__actions button { flex: 1; } .flight-schedule-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .flight-schedule-toolbar { align-items: stretch; flex-direction: column; } .flight-schedule-search { align-items: stretch; flex-direction: column; } .flight-schedule-search input { width: 100%; min-width: 0; } .flight-schedule-card__body { grid-template-columns: 1fr; } .flight-schedule-card__body > section { border-right: 0; border-bottom: 1px solid #eef2f7; } .flight-schedule-card__body > section:last-child { border-bottom: 0; } .flight-schedule-form__grid { grid-template-columns: 1fr; padding: 18px; } .flight-schedule-form__wide { grid-column: auto; } .flight-schedule-form__actions { padding: 0 18px 18px; } }
@media (max-width: 480px) { .flight-schedule-summary { grid-template-columns: 1fr 1fr; gap: 9px; } .flight-schedule-summary > div { padding: 15px; } .flight-schedule-summary strong { font-size: 25px; } .flight-schedule-card__header { align-items: flex-start; } .flight-schedule-card__identity { align-items: flex-start; flex-direction: column; } .flight-schedule-times, .flight-schedule-live { grid-template-columns: 1fr 1fr; } }

/* Phase 6: Operations Board navigation and status */
.operations-board-page { display: flex; flex-direction: column; gap: 22px; }
.operations-board-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 30px; border-radius: 24px; color: #fff; background: radial-gradient(circle at 88% 15%, rgba(16,185,129,.25), transparent 28%), linear-gradient(135deg, #0f172a 0%, #17395c 58%, #065f46 120%); box-shadow: 0 20px 45px rgba(15,23,42,.16); }
.operations-board-kicker { display: block; margin-bottom: 8px; color: #6ee7b7; font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.operations-board-hero h2 { margin: 0; font-size: clamp(28px, 4vw, 42px); letter-spacing: -.04em; }
.operations-board-hero p { max-width: 650px; margin: 10px 0 0; color: #d1fae5; line-height: 1.6; }
.operations-board-hero__actions { display: flex; align-items: stretch; gap: 10px; }
.operations-board-refresh, .operations-board-add-staff button { min-height: 42px; padding: 0 16px; border: 1px solid rgba(255,255,255,.18); border-radius: 10px; color: #fff; background: rgba(255,255,255,.1); font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.operations-board-refresh:disabled { cursor: wait; opacity: .65; }
.operations-board-add-staff { display: flex; overflow: hidden; border: 1px solid rgba(255,255,255,.22); border-radius: 11px; background: #fff; }
.operations-board-add-staff input { width: 175px; min-height: 42px; padding: 0 13px; border: 0; color: #172033; font: inherit; outline: none; }
.operations-board-add-staff button { border: 0; border-radius: 0; color: #064e3b; background: #6ee7b7; }
.operations-board-alert { display: flex; gap: 8px 20px; flex-wrap: wrap; padding: 14px 18px; border: 1px solid #fed7aa; border-radius: 12px; color: #9a3412; background: #fff7ed; }
.operations-board-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.operations-board-summary > div { position: relative; overflow: hidden; padding: 20px; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px rgba(15,23,42,.05); }
.operations-board-summary > div::after { position: absolute; right: -24px; bottom: -36px; width: 94px; height: 94px; border-radius: 50%; background: #d1fae5; content: ''; }
.operations-board-summary span, .operations-board-summary small { position: relative; z-index: 1; display: block; color: #64748b; font-size: 11px; font-weight: 700; }
.operations-board-summary strong { position: relative; z-index: 1; display: block; margin: 5px 0; color: #0f172a; font-size: 30px; line-height: 1; }
.operations-board-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 7px; border: 1px solid #e2e8f0; border-radius: 18px; background: #eef2f7; }
.operations-board-tabs button { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 10px; padding: 13px; border: 0; border-radius: 12px; color: #64748b; background: transparent; font: inherit; text-align: left; cursor: pointer; transition: background .18s ease, box-shadow .18s ease, color .18s ease; }
.operations-board-tabs button > span { grid-row: 1 / span 2; align-self: center; display: inline-flex; width: 30px; height: 30px; align-items: center; justify-content: center; border-radius: 9px; color: #475569; background: #dde5ee; font-size: 10px; font-weight: 900; }
.operations-board-tabs button > strong { color: #334155; font-size: 13px; }
.operations-board-tabs button > small { margin-top: 2px; font-size: 9px; }
.operations-board-tabs button.active { color: #047857; background: #fff; box-shadow: 0 5px 14px rgba(15,23,42,.1); }
.operations-board-tabs button.active > span { color: #065f46; background: #d1fae5; }
.operations-board-tabs button.active > strong { color: #064e3b; }
.operations-board-page > div:not(.operations-board-alert), .operations-board-page > section:not(.operations-board-summary) { min-width: 0; }
@media (max-width: 1000px) { .operations-board-hero { align-items: stretch; flex-direction: column; } .operations-board-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .operations-board-hero { padding: 24px 20px; } .operations-board-hero__actions { flex-direction: column; } .operations-board-add-staff input { width: 100%; } .operations-board-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .operations-board-tabs { grid-template-columns: 1fr; } .operations-board-summary { gap: 9px; } .operations-board-summary > div { padding: 15px; } .operations-board-summary strong { font-size: 25px; } }

/* Phase 7: Staff Management workspace */
.staff-management-page { display: flex; flex-direction: column; gap: 22px; }
.staff-management-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 30px; border-radius: 24px; color: #fff; background: radial-gradient(circle at 90% 15%, rgba(99,102,241,.25), transparent 30%), linear-gradient(135deg, #0f172a 0%, #243b64 62%, #3730a3 120%); box-shadow: 0 20px 45px rgba(15,23,42,.16); }
.staff-management-kicker { display: block; margin-bottom: 8px; color: #a5b4fc; font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.staff-management-hero h2 { margin: 0; font-size: clamp(28px, 4vw, 42px); letter-spacing: -.04em; }
.staff-management-hero p { max-width: 650px; margin: 10px 0 0; color: #dbeafe; line-height: 1.6; }
.staff-management-hero__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.staff-management-primary, .staff-management-secondary { min-height: 42px; padding: 0 16px; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.staff-management-primary { border-color: #a5b4fc; color: #1e1b4b; background: #a5b4fc; }
.staff-management-secondary { color: #e0e7ff; background: rgba(255,255,255,.09); }
.staff-management-primary:disabled, .staff-management-secondary:disabled { cursor: wait; opacity: .65; }
.staff-management-alert { display: flex; gap: 8px 20px; flex-wrap: wrap; padding: 14px 18px; border: 1px solid #fed7aa; border-radius: 12px; color: #9a3412; background: #fff7ed; }
.staff-management-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.staff-management-summary > div { position: relative; overflow: hidden; padding: 20px; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px rgba(15,23,42,.05); }
.staff-management-summary > div::after { position: absolute; right: -24px; bottom: -36px; width: 94px; height: 94px; border-radius: 50%; background: #e0e7ff; content: ''; }
.staff-management-summary span, .staff-management-summary small { position: relative; z-index: 1; display: block; color: #64748b; font-size: 11px; font-weight: 700; }
.staff-management-summary strong { position: relative; z-index: 1; display: block; margin: 5px 0; color: #0f172a; font-size: 30px; line-height: 1; }
.staff-management-controls { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding: 18px 20px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; }
.staff-management-search { display: flex; flex: 1; max-width: 520px; flex-direction: column; gap: 7px; color: #64748b; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.staff-management-search input { width: 100%; min-height: 43px; box-sizing: border-box; padding: 0 13px; border: 1px solid #cbd5e1; border-radius: 10px; color: #172033; font: inherit; font-size: 13px; text-transform: none; outline: none; }
.staff-management-search input:focus { border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99,102,241,.12); }
.staff-management-filter-label { text-align: right; }
.staff-management-filter-label span, .staff-management-filter-label strong { display: block; }
.staff-management-filter-label span { color: #94a3b8; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.staff-management-filter-label strong { margin-top: 4px; color: #334155; font-size: 13px; }
.staff-management-tabs { display: flex; gap: 7px; overflow-x: auto; padding: 7px; border: 1px solid #e2e8f0; border-radius: 15px; background: #eef2f7; scrollbar-width: thin; }
.staff-management-tabs button { display: inline-flex; min-height: 40px; flex: 0 0 auto; align-items: center; gap: 7px; padding: 0 13px; border: 0; border-radius: 10px; color: #64748b; background: transparent; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.staff-management-tabs button span { display: inline-flex; min-width: 22px; height: 20px; align-items: center; justify-content: center; border-radius: 10px; color: #475569; background: #dbe3ed; font-size: 9px; }
.staff-management-tabs button.active { color: #3730a3; background: #fff; box-shadow: 0 4px 12px rgba(15,23,42,.1); }
.staff-management-tabs button.active span { color: #3730a3; background: #e0e7ff; }
.staff-management-tabs button.is-smt { color: #92400e; }
.staff-management-tabs button.is-smt span { color: #92400e; background: #fef3c7; }
.staff-management-form { gap: 14px; margin: 0; padding: 24px; border: 1px solid #dbe4ee; border-radius: 18px; box-shadow: 0 14px 34px rgba(15,23,42,.07); }
.staff-management-form__section { grid-column: span 2; margin-top: 8px; padding: 9px 11px; border-radius: 8px; color: #166534; background: #f0fdf4; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.staff-management-form__section--finance { color: #166534; background: #dcfce7; }
.staff-management-form button[type="submit"]:disabled { cursor: wait; opacity: .65; }
.staff-management-list { overflow: hidden; padding: 0; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; box-shadow: 0 12px 28px rgba(15,23,42,.05); }
.staff-management-table-wrap { max-height: 66vh; overflow: auto; }
.staff-management-table { min-width: 950px; margin: 0; }
.staff-management-table thead { position: sticky; z-index: 2; top: 0; background: #f8fafc; }
.staff-management-table th { color: #64748b; font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.staff-management-table tbody tr:hover { background: #f8fafc; }
@media (max-width: 1000px) { .staff-management-hero { align-items: stretch; flex-direction: column; } .staff-management-hero__actions { justify-content: flex-start; } }
@media (max-width: 760px) { .staff-management-hero { padding: 24px 20px; } .staff-management-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .staff-management-controls { align-items: stretch; flex-direction: column; } .staff-management-search { max-width: none; } .staff-management-filter-label { text-align: left; } .staff-management-form { grid-template-columns: 1fr; padding: 18px; } .staff-management-form > *, .staff-management-form__section { grid-column: auto !important; } }
@media (max-width: 480px) { .staff-management-hero__actions { flex-direction: column; } .staff-management-hero__actions button { width: 100%; } .staff-management-summary { gap: 9px; } .staff-management-summary > div { padding: 15px; } .staff-management-summary strong { font-size: 25px; } }

/* Phase 8: Leave Management workspace */
.leave-management-page { display: flex; flex-direction: column; gap: 22px; }
.leave-management-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 30px; border-radius: 24px; color: #fff; background: radial-gradient(circle at 90% 12%, rgba(244,114,182,.24), transparent 30%), linear-gradient(135deg, #0f172a 0%, #3b315c 62%, #831843 125%); box-shadow: 0 20px 45px rgba(15,23,42,.16); }
.leave-management-kicker { display: block; margin-bottom: 8px; color: #f9a8d4; font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.leave-management-hero h2 { margin: 0; font-size: clamp(28px, 4vw, 42px); letter-spacing: -.04em; }
.leave-management-hero p { max-width: 670px; margin: 10px 0 0; color: #fce7f3; line-height: 1.6; }
.leave-management-hero__actions { display: flex; gap: 9px; }
.leave-management-primary, .leave-management-secondary { min-height: 42px; padding: 0 17px; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.leave-management-primary { border-color: #f9a8d4; color: #500724; background: #f9a8d4; }
.leave-management-secondary { color: #fce7f3; background: rgba(255,255,255,.09); }
.leave-management-secondary:disabled { cursor: wait; opacity: .65; }
.leave-management-alert { display: flex; gap: 8px 20px; flex-wrap: wrap; padding: 14px 18px; border: 1px solid #fed7aa; border-radius: 12px; color: #9a3412; background: #fff7ed; }
.leave-management-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.leave-management-summary > div { position: relative; overflow: hidden; padding: 20px; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px rgba(15,23,42,.05); }
.leave-management-summary > div::after { position: absolute; right: -24px; bottom: -36px; width: 94px; height: 94px; border-radius: 50%; background: #fce7f3; content: ''; }
.leave-management-summary span, .leave-management-summary small { position: relative; z-index: 1; display: block; color: #64748b; font-size: 11px; font-weight: 700; }
.leave-management-summary strong { position: relative; z-index: 1; display: block; margin: 5px 0; color: #0f172a; font-size: 30px; line-height: 1; }
.leave-management-note { padding: 12px 16px; border: 1px solid #bae6fd; border-radius: 11px; color: #075985; background: #f0f9ff; font-size: 12px; font-weight: 700; }
.leave-management-controls { display: grid; grid-template-columns: minmax(250px, 1fr) minmax(180px, .35fr); gap: 14px; padding: 18px 20px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; }
.leave-management-controls label { display: flex; flex-direction: column; gap: 7px; color: #64748b; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.leave-management-controls input, .leave-management-controls select { width: 100%; min-height: 43px; box-sizing: border-box; padding: 0 13px; border: 1px solid #cbd5e1; border-radius: 10px; color: #172033; background: #fff; font: inherit; font-size: 13px; text-transform: none; outline: none; }
.leave-management-controls input:focus, .leave-management-controls select:focus { border-color: #db2777; box-shadow: 0 0 0 3px rgba(219,39,119,.1); }
.leave-management-tabs { display: flex; gap: 7px; overflow-x: auto; padding: 7px; border: 1px solid #e2e8f0; border-radius: 15px; background: #eef2f7; }
.leave-management-tabs button { display: inline-flex; min-height: 40px; flex: 0 0 auto; align-items: center; gap: 7px; padding: 0 15px; border: 0; border-radius: 10px; color: #64748b; background: transparent; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.leave-management-tabs button span { display: inline-flex; min-width: 23px; height: 20px; align-items: center; justify-content: center; border-radius: 10px; color: #475569; background: #dbe3ed; font-size: 9px; }
.leave-management-tabs button.active { color: #9d174d; background: #fff; box-shadow: 0 4px 12px rgba(15,23,42,.1); }
.leave-management-tabs button.active span { color: #9d174d; background: #fce7f3; }
.leave-management-form { margin: 0; padding: 24px; border: 1px solid #e2e8f0; border-radius: 18px; box-shadow: 0 14px 34px rgba(15,23,42,.07); }
.leave-management-list { overflow-x: auto; margin: 0 !important; padding: 0; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; box-shadow: 0 12px 28px rgba(15,23,42,.05); }
.leave-management-table { min-width: 920px; margin: 0; }
.leave-management-table thead { background: #f8fafc; }
.leave-management-table th { color: #64748b; font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.leave-management-table tbody tr:hover { background: #fdf2f8; }
.leave-management-table .approve-btn, .leave-management-table .reject-btn, .leave-management-table .delete-btn { margin: 2px; padding: 6px 9px; font-size: 10px; }
@media (max-width: 1000px) { .leave-management-hero { align-items: stretch; flex-direction: column; } }
@media (max-width: 760px) { .leave-management-hero { padding: 24px 20px; } .leave-management-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .leave-management-controls { grid-template-columns: 1fr; } .leave-management-form { grid-template-columns: 1fr; padding: 18px; } .leave-management-form > * { grid-column: auto !important; } }
@media (max-width: 480px) { .leave-management-hero__actions { flex-direction: column; } .leave-management-hero__actions button { width: 100%; } .leave-management-summary { gap: 9px; } .leave-management-summary > div { padding: 15px; } .leave-management-summary strong { font-size: 25px; } }

/* Phase 9: Overtime Management workspace */
.overtime-management-page { display: flex; flex-direction: column; gap: 22px; }
.overtime-management-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 30px; border-radius: 24px; color: #fff; background: radial-gradient(circle at 90% 12%, rgba(251,191,36,.25), transparent 30%), linear-gradient(135deg, #0f172a 0%, #40392b 62%, #92400e 130%); box-shadow: 0 20px 45px rgba(15,23,42,.16); }
.overtime-management-kicker { display: block; margin-bottom: 8px; color: #fcd34d; font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.overtime-management-hero h2 { margin: 0; font-size: clamp(28px, 4vw, 42px); letter-spacing: -.04em; }
.overtime-management-hero p { max-width: 680px; margin: 10px 0 0; color: #fef3c7; line-height: 1.6; }
.overtime-management-hero__actions { display: flex; gap: 9px; }
.overtime-management-primary, .overtime-management-secondary { min-height: 42px; padding: 0 17px; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.overtime-management-primary { border-color: #fcd34d; color: #451a03; background: #fcd34d; }
.overtime-management-secondary { color: #fef3c7; background: rgba(255,255,255,.09); }
.overtime-management-secondary:disabled { cursor: wait; opacity: .65; }
.overtime-management-alert { display: flex; gap: 8px 20px; flex-wrap: wrap; padding: 14px 18px; border: 1px solid #fed7aa; border-radius: 12px; color: #9a3412; background: #fff7ed; }
.overtime-management-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.overtime-management-summary > div { position: relative; overflow: hidden; padding: 20px; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px rgba(15,23,42,.05); }
.overtime-management-summary > div::after { position: absolute; right: -24px; bottom: -36px; width: 94px; height: 94px; border-radius: 50%; background: #fef3c7; content: ''; }
.overtime-management-summary span, .overtime-management-summary small { position: relative; z-index: 1; display: block; color: #64748b; font-size: 11px; font-weight: 700; }
.overtime-management-summary strong { position: relative; z-index: 1; display: block; margin: 5px 0; color: #0f172a; font-size: 30px; line-height: 1; }
.overtime-management-controls, .overtime-management-department-filters { display: grid; grid-template-columns: minmax(170px, .3fr) minmax(280px, 1fr); gap: 14px; padding: 18px 20px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; }
.overtime-management-department-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.overtime-management-controls label, .overtime-management-department-filters label { display: flex; flex-direction: column; gap: 7px; color: #64748b; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.overtime-management-controls input, .overtime-management-department-filters select { width: 100%; min-height: 43px; box-sizing: border-box; padding: 0 13px; border: 1px solid #cbd5e1; border-radius: 10px; color: #172033; background: #fff; font: inherit; font-size: 13px; text-transform: none; outline: none; }
.overtime-management-controls input:focus, .overtime-management-department-filters select:focus { border-color: #d97706; box-shadow: 0 0 0 3px rgba(217,119,6,.1); }
.overtime-management-view-tabs, .overtime-management-status-tabs { display: flex; gap: 7px; overflow-x: auto; padding: 7px; border: 1px solid #e2e8f0; border-radius: 15px; background: #eef2f7; }
.overtime-management-view-tabs button, .overtime-management-status-tabs button { display: inline-flex; min-height: 40px; flex: 0 0 auto; align-items: center; gap: 7px; padding: 0 15px; border: 0; border-radius: 10px; color: #64748b; background: transparent; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.overtime-management-view-tabs button.active, .overtime-management-status-tabs button.active { color: #92400e; background: #fff; box-shadow: 0 4px 12px rgba(15,23,42,.1); }
.overtime-management-status-tabs button span { display: inline-flex; min-width: 23px; height: 20px; align-items: center; justify-content: center; border-radius: 10px; color: #92400e; background: #fef3c7; font-size: 9px; }
.overtime-management-form { margin: 0; padding: 24px; border: 1px solid #e2e8f0; border-radius: 18px; box-shadow: 0 14px 34px rgba(15,23,42,.07); }
.overtime-week-card { overflow: hidden; border: 1px solid #e2e8f0; border-radius: 17px; background: #fff; box-shadow: 0 10px 25px rgba(15,23,42,.05); }
.overtime-week-card__header { display: flex; justify-content: space-between; gap: 15px; padding: 14px 17px; color: #475569; background: #f8fafc; font-size: 12px; font-weight: 800; }
.overtime-week-card__header.is-eligible { color: #065f46; background: #dcfce7; }
.overtime-week-card__table-wrap { overflow-x: auto; padding: 0; border: 0; border-radius: 0; box-shadow: none; }
.overtime-management-table { min-width: 940px; margin: 0; }
.overtime-management-table th { color: #64748b; font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.overtime-management-table tbody tr:hover { background: #fffbeb; }
@media (max-width: 1000px) { .overtime-management-hero { align-items: stretch; flex-direction: column; } }
@media (max-width: 760px) { .overtime-management-hero { padding: 24px 20px; } .overtime-management-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .overtime-management-controls, .overtime-management-department-filters { grid-template-columns: 1fr; } .overtime-management-form { grid-template-columns: 1fr; padding: 18px; } .overtime-management-form > * { grid-column: auto !important; } .overtime-week-card__header { flex-direction: column; } }
@media (max-width: 480px) { .overtime-management-hero__actions { flex-direction: column; } .overtime-management-hero__actions button { width: 100%; } .overtime-management-summary { gap: 9px; } .overtime-management-summary > div { padding: 15px; } .overtime-management-summary strong { font-size: 25px; } }

/* Phase 10: Duty Roster workspace */
.roster-workspace-page { display: flex; flex-direction: column; gap: 22px; }
.roster-workspace-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 30px; border-radius: 24px; color: #fff; background: radial-gradient(circle at 90% 12%, rgba(34,211,238,.24), transparent 30%), linear-gradient(135deg, #0f172a 0%, #164e63 68%, #155e75 120%); box-shadow: 0 20px 45px rgba(15,23,42,.16); }
.roster-workspace-kicker { display: block; margin-bottom: 8px; color: #67e8f9; font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.roster-workspace-hero h2 { margin: 0; font-size: clamp(28px, 4vw, 42px); letter-spacing: -.04em; }
.roster-workspace-hero p { max-width: 670px; margin: 10px 0 0; color: #cffafe; line-height: 1.6; }
.roster-workspace-hero__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.roster-workspace-primary, .roster-workspace-secondary { min-height: 40px; padding: 0 14px; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.roster-workspace-primary { border-color: #67e8f9; color: #083344; background: #67e8f9; }
.roster-workspace-secondary { color: #cffafe; background: rgba(255,255,255,.09); }
.roster-workspace-secondary:disabled { cursor: wait; opacity: .65; }
.roster-workspace-alert { display: flex; gap: 8px 20px; flex-wrap: wrap; padding: 14px 18px; border: 1px solid #fed7aa; border-radius: 12px; color: #9a3412; background: #fff7ed; }
.roster-workspace-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.roster-workspace-summary > div { position: relative; overflow: hidden; padding: 20px; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px rgba(15,23,42,.05); }
.roster-workspace-summary > div::after { position: absolute; right: -24px; bottom: -36px; width: 94px; height: 94px; border-radius: 50%; background: #cffafe; content: ''; }
.roster-workspace-summary span, .roster-workspace-summary small { position: relative; z-index: 1; display: block; color: #64748b; font-size: 11px; font-weight: 700; }
.roster-workspace-summary strong { position: relative; z-index: 1; display: block; margin: 5px 0; color: #0f172a; font-size: 30px; line-height: 1; }
.roster-workspace-controls { display: grid; grid-template-columns: minmax(250px, 1fr) auto auto; align-items: end; gap: 14px; padding: 18px 20px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; }
.roster-workspace-controls > label, .roster-workspace-zoom { display: flex; flex-direction: column; gap: 7px; color: #64748b; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.roster-workspace-controls input { width: 100%; min-height: 42px; box-sizing: border-box; padding: 0 13px; border: 1px solid #cbd5e1; border-radius: 10px; color: #172033; font: inherit; font-size: 13px; text-transform: none; outline: none; }
.roster-workspace-zoom > div { display: flex; overflow: hidden; min-height: 42px; border: 1px solid #cbd5e1; border-radius: 10px; }
.roster-workspace-zoom button, .roster-workspace-admin-actions button { padding: 0 12px; border: 0; border-right: 1px solid #e2e8f0; color: #475569; background: #f8fafc; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.roster-workspace-zoom strong { display: flex; min-width: 58px; align-items: center; justify-content: center; color: #0f172a; background: #fff; }
.roster-workspace-admin-actions { display: flex; overflow: hidden; min-height: 42px; border: 1px solid #cbd5e1; border-radius: 10px; }
.roster-workspace-admin-actions button:last-child, .roster-workspace-zoom button:last-child { border-right: 0; }
.roster-workspace-tabs { display: flex; gap: 7px; overflow-x: auto; padding: 7px; border: 1px solid #e2e8f0; border-radius: 15px; background: #eef2f7; }
.roster-workspace-tabs button { display: inline-flex; min-height: 40px; flex: 0 0 auto; align-items: center; gap: 7px; padding: 0 13px; border: 0; border-radius: 10px; color: #64748b; background: transparent; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.roster-workspace-tabs button span { display: inline-flex; min-width: 23px; height: 20px; align-items: center; justify-content: center; border-radius: 10px; color: #0e7490; background: #cffafe; font-size: 9px; }
.roster-workspace-tabs button.active { color: #155e75; background: #fff; box-shadow: 0 4px 12px rgba(15,23,42,.1); }
.roster-workspace-period { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 16px; border: 1px solid #bae6fd; border-radius: 15px; background: #f0f9ff; }
.roster-workspace-period div { flex: 1; text-align: center; }
.roster-workspace-period span, .roster-workspace-period strong { display: block; }
.roster-workspace-period span { color: #64748b; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.roster-workspace-period strong { margin-top: 4px; color: #0c4a6e; font-size: 13px; }
.roster-workspace-period button { min-height: 38px; padding: 0 13px; border: 1px solid #bae6fd; border-radius: 9px; color: #075985; background: #fff; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.roster-workspace-form, .roster-workspace-bulk { margin: 0; border: 1px solid #e2e8f0; border-radius: 18px; box-shadow: 0 14px 34px rgba(15,23,42,.07); }
@media (max-width: 1100px) { .roster-workspace-hero { align-items: stretch; flex-direction: column; } .roster-workspace-hero__actions { justify-content: flex-start; } .roster-workspace-controls { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .roster-workspace-hero { padding: 24px 20px; } .roster-workspace-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .roster-workspace-controls { grid-template-columns: 1fr; } .roster-workspace-period { align-items: stretch; flex-direction: column; } .roster-workspace-period div { order: -1; } .roster-workspace-form { grid-template-columns: 1fr; padding: 18px; } .roster-workspace-form > * { grid-column: auto !important; } }
@media (max-width: 480px) { .roster-workspace-hero__actions { flex-direction: column; } .roster-workspace-hero__actions button { width: 100%; } .roster-workspace-summary { gap: 9px; } .roster-workspace-summary > div { padding: 15px; } .roster-workspace-summary strong { font-size: 25px; } }

/* Phase 11: Runway Lights Inspection workspace */
.runway-lights-page { display: flex; flex-direction: column; gap: 22px; }
.runway-lights-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 30px; border-radius: 24px; color: #fff; background: radial-gradient(circle at 90% 12%, rgba(250,204,21,.28), transparent 30%), linear-gradient(135deg, #0f172a 0%, #1e3a5f 62%, #854d0e 130%); box-shadow: 0 20px 45px rgba(15,23,42,.16); }
.runway-lights-kicker { display: block; margin-bottom: 8px; color: #fde047; font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.runway-lights-hero h2 { margin: 0; font-size: clamp(28px, 4vw, 42px); letter-spacing: -.04em; }
.runway-lights-hero p { max-width: 670px; margin: 10px 0 0; color: #fef9c3; line-height: 1.6; }
.runway-lights-hero__actions { display: flex; gap: 9px; }
.runway-lights-primary, .runway-lights-secondary { min-height: 42px; padding: 0 17px; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.runway-lights-primary { border-color: #fde047; color: #422006; background: #fde047; }
.runway-lights-secondary { color: #fef9c3; background: rgba(255,255,255,.09); }
.runway-lights-secondary:disabled { cursor: wait; opacity: .65; }
.runway-lights-alert { display: flex; gap: 8px 20px; flex-wrap: wrap; padding: 14px 18px; border: 1px solid #fed7aa; border-radius: 12px; color: #9a3412; background: #fff7ed; }
.runway-lights-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.runway-lights-summary > div { position: relative; overflow: hidden; padding: 20px; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px rgba(15,23,42,.05); }
.runway-lights-summary > div::after { position: absolute; right: -24px; bottom: -36px; width: 94px; height: 94px; border-radius: 50%; background: #fef9c3; content: ''; }
.runway-lights-summary span, .runway-lights-summary small { position: relative; z-index: 1; display: block; color: #64748b; font-size: 11px; font-weight: 700; }
.runway-lights-summary strong { position: relative; z-index: 1; display: block; margin: 5px 0; color: #0f172a; font-size: 30px; line-height: 1; }
.runway-lights-controls { padding: 18px 20px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; }
.runway-lights-controls label { display: flex; max-width: 560px; flex-direction: column; gap: 7px; color: #64748b; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.runway-lights-controls input { min-height: 43px; padding: 0 13px; border: 1px solid #cbd5e1; border-radius: 10px; color: #172033; font: inherit; font-size: 13px; outline: none; }
.runway-lights-controls input:focus { border-color: #ca8a04; box-shadow: 0 0 0 3px rgba(202,138,4,.1); }
.runway-lights-form { margin: 0; padding: 24px; border: 1px solid #e2e8f0; border-radius: 18px; box-shadow: 0 14px 34px rgba(15,23,42,.07); }
.runway-lights-form button[type="submit"]:disabled { cursor: wait; opacity: .65; }
.runway-lights-history { overflow: hidden; padding: 0; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; box-shadow: 0 12px 28px rgba(15,23,42,.05); }
.runway-lights-table-wrap { overflow-x: auto; }
.runway-lights-history table { min-width: 880px; margin: 0; }
.runway-lights-history th { color: #64748b; font-size: 9px; letter-spacing: .07em; text-transform: uppercase; }
.runway-lights-history tbody tr:hover { background: #fffbeb; }
@media (max-width: 1000px) { .runway-lights-hero { align-items: stretch; flex-direction: column; } }
@media (max-width: 760px) { .runway-lights-hero { padding: 24px 20px; } .runway-lights-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .runway-lights-form { grid-template-columns: 1fr; padding: 18px; } .runway-lights-form > * { grid-column: auto !important; } }
@media (max-width: 480px) { .runway-lights-hero__actions { flex-direction: column; } .runway-lights-hero__actions button { width: 100%; } .runway-lights-summary { gap: 9px; } .runway-lights-summary > div { padding: 15px; } .runway-lights-summary strong { font-size: 25px; } }

/* Phase 12: Wildlife Monitoring workspace */
.wildlife-workspace-page { display: flex; flex-direction: column; gap: 22px; }
.wildlife-workspace-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 30px; border-radius: 24px; color: #fff; background: radial-gradient(circle at 90% 12%, rgba(74,222,128,.25), transparent 30%), linear-gradient(135deg, #0f172a 0%, #174333 65%, #166534 125%); box-shadow: 0 20px 45px rgba(15,23,42,.16); }
.wildlife-workspace-kicker { display: block; margin-bottom: 8px; color: #86efac; font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.wildlife-workspace-hero h2 { margin: 0; font-size: clamp(28px, 4vw, 42px); letter-spacing: -.04em; }
.wildlife-workspace-hero p { max-width: 680px; margin: 10px 0 0; color: #dcfce7; line-height: 1.6; }
.wildlife-workspace-hero__actions { display: flex; gap: 9px; }
.wildlife-workspace-primary, .wildlife-workspace-secondary { min-height: 42px; padding: 0 17px; border: 1px solid rgba(255,255,255,.2); border-radius: 10px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.wildlife-workspace-primary { border-color: #86efac; color: #052e16; background: #86efac; }
.wildlife-workspace-secondary { color: #dcfce7; background: rgba(255,255,255,.09); }
.wildlife-workspace-secondary:disabled { cursor: wait; opacity: .65; }
.wildlife-workspace-alert { display: flex; gap: 8px 20px; flex-wrap: wrap; padding: 14px 18px; border: 1px solid #fed7aa; border-radius: 12px; color: #9a3412; background: #fff7ed; }
.wildlife-workspace-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.wildlife-workspace-summary > div { position: relative; overflow: hidden; padding: 20px; border: 1px solid #e2e8f0; border-radius: 18px; background: #fff; box-shadow: 0 10px 24px rgba(15,23,42,.05); }
.wildlife-workspace-summary > div::after { position: absolute; right: -24px; bottom: -36px; width: 94px; height: 94px; border-radius: 50%; background: #dcfce7; content: ''; }
.wildlife-workspace-summary span, .wildlife-workspace-summary small { position: relative; z-index: 1; display: block; color: #64748b; font-size: 11px; font-weight: 700; }
.wildlife-workspace-summary strong { position: relative; z-index: 1; display: block; margin: 5px 0; color: #0f172a; font-size: 30px; line-height: 1; }
.wildlife-workspace-controls { padding: 18px 20px; border: 1px solid #e2e8f0; border-radius: 16px; background: #fff; }
.wildlife-workspace-controls label { display: flex; max-width: 560px; flex-direction: column; gap: 7px; color: #64748b; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.wildlife-workspace-controls input { min-height: 43px; padding: 0 13px; border: 1px solid #cbd5e1; border-radius: 10px; color: #172033; font: inherit; font-size: 13px; outline: none; }
.wildlife-workspace-tabs { display: flex; gap: 7px; overflow-x: auto; padding: 7px; border: 1px solid #e2e8f0; border-radius: 15px; background: #eef2f7; }
.wildlife-workspace-tabs button { min-height: 40px; padding: 0 15px; border: 0; border-radius: 10px; color: #64748b; background: transparent; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.wildlife-workspace-tabs button.active { color: #166534; background: #fff; box-shadow: 0 4px 12px rgba(15,23,42,.1); }
.wildlife-count-form { overflow-x: auto; padding: 24px; border-radius: 18px; }
.wildlife-count-form .add-staff-btn:disabled { cursor: wait; opacity: .65; }
@media (max-width: 1000px) { .wildlife-workspace-hero { align-items: stretch; flex-direction: column; } }
@media (max-width: 760px) { .wildlife-workspace-hero { padding: 24px 20px; } .wildlife-workspace-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .wildlife-workspace-hero__actions { flex-direction: column; } .wildlife-workspace-hero__actions button { width: 100%; } .wildlife-workspace-summary { gap: 9px; } .wildlife-workspace-summary > div { padding: 15px; } .wildlife-workspace-summary strong { font-size: 25px; } }

/* Phase 13: Safety occurrence reporting */
.occurrence-page{display:flex;flex-direction:column;gap:20px}.occurrence-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:30px;border-radius:24px;color:#fff;background:radial-gradient(circle at 88% 8%,rgba(251,146,60,.28),transparent 30%),linear-gradient(135deg,#111827,#7f1d1d 72%,#b91c1c);box-shadow:0 20px 45px rgba(15,23,42,.16)}.occurrence-hero span{color:#fed7aa;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.occurrence-hero h2{margin:7px 0 0;font-size:clamp(27px,4vw,42px);letter-spacing:-.04em}.occurrence-hero p{max-width:680px;margin:10px 0 0;color:#fee2e2;line-height:1.6}.occurrence-primary,.occurrence-submit{min-height:44px;padding:0 18px;border:0;border-radius:11px;background:#fff;color:#991b1b;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.occurrence-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.occurrence-summary>div{padding:19px 21px;border:1px solid #e2e8f0;border-radius:17px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.05)}.occurrence-summary span{display:block;color:#64748b;font-size:11px;font-weight:700}.occurrence-summary strong{display:block;margin-top:6px;color:#172033;font-size:29px}.occurrence-form{display:flex;flex-direction:column;gap:0;overflow:hidden;border:1px solid #e2e8f0;border-radius:20px;background:#fff;box-shadow:0 16px 35px rgba(15,23,42,.07)}.occurrence-form>header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;background:#fff7ed}.occurrence-form header span{color:#c2410c;font-size:10px;font-weight:800;text-transform:uppercase}.occurrence-form h3,.occurrence-form h4{margin:4px 0 0;color:#172033}.occurrence-form>section{display:flex;flex-direction:column;gap:13px;padding:22px 24px;border-top:1px solid #eef2f7}.occurrence-form label{display:flex;flex-direction:column;gap:7px;color:#475569;font-size:11px;font-weight:700}.occurrence-grid{display:grid;gap:12px}.occurrence-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.occurrence-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.occurrence-form input,.occurrence-form select,.occurrence-form textarea,.occurrence-register-head input{width:100%;min-height:42px;padding:9px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#172033;font:inherit;font-size:13px;outline:none;box-sizing:border-box}.occurrence-form textarea{resize:vertical}.occurrence-form input:focus,.occurrence-form select:focus,.occurrence-form textarea:focus,.occurrence-register-head input:focus{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.12)}.occurrence-add{align-self:flex-start;padding:8px 12px;border:0;border-radius:8px;color:#334155;background:#e2e8f0;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.occurrence-submit{margin:20px 24px 24px;background:#b91c1c;color:#fff}.occurrence-submit:disabled{cursor:wait;opacity:.65}.occurrence-register-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:19px 21px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.occurrence-register-head h3{margin:0;color:#172033}.occurrence-register-head p{margin:5px 0 0;color:#64748b;font-size:12px}.occurrence-register-head input{max-width:420px}.occurrence-register{border-radius:16px}.occurrence-register td small{display:block;margin-top:4px;color:#64748b;font-size:10px}.occurrence-danger{color:#b91c1c}.occurrence-readonly{color:#64748b;font-size:11px;font-weight:700}.occurrence-empty{padding:30px;text-align:center;color:#64748b}
@media(max-width:820px){.occurrence-hero{align-items:stretch;flex-direction:column}.occurrence-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.occurrence-register-head{align-items:stretch;flex-direction:column}.occurrence-register-head input{max-width:none}}
@media(max-width:560px){.occurrence-hero{padding:23px 20px}.occurrence-summary{grid-template-columns:1fr}.occurrence-grid.two,.occurrence-grid.four{grid-template-columns:1fr}.occurrence-form>section,.occurrence-form>header{padding:18px}.occurrence-submit{margin:18px}}
/* Phase 14: Daily operations checks */
.checks-page{display:flex;flex-direction:column;gap:20px}.checks-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:30px;border-radius:24px;color:#fff;background:radial-gradient(circle at 88% 10%,rgba(56,189,248,.25),transparent 31%),linear-gradient(135deg,#0f172a,#0c4a6e 72%,#0369a1);box-shadow:0 20px 45px rgba(15,23,42,.16)}.checks-hero>div:first-child>span{color:#7dd3fc;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.checks-hero h2{margin:7px 0 0;font-size:clamp(28px,4vw,42px);letter-spacing:-.04em}.checks-hero p{max-width:680px;margin:10px 0 0;color:#e0f2fe;line-height:1.6}.checks-hero-actions{display:flex;gap:9px}.checks-hero-actions button,.checks-form footer button{min-height:43px;padding:0 17px;border:1px solid rgba(255,255,255,.25);border-radius:10px;color:#e0f2fe;background:rgba(255,255,255,.08);font:inherit;font-size:12px;font-weight:800;cursor:pointer}.checks-hero-actions .primary{border-color:#7dd3fc;color:#082f49;background:#7dd3fc}.checks-hero-actions button:disabled{cursor:wait;opacity:.65}.checks-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.checks-toolbar label{display:flex;flex-direction:column;gap:7px;color:#64748b;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.checks-toolbar input{min-height:42px;padding:0 12px;border:1px solid #cbd5e1;border-radius:9px;color:#172033;font:inherit}.checks-toolbar>div{text-align:right}.checks-toolbar strong,.checks-toolbar span{display:block}.checks-toolbar strong{color:#172033;font-size:25px}.checks-toolbar span{color:#64748b;font-size:11px}.checks-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.checks-summary>div{padding:19px 20px;border:1px solid #e2e8f0;border-radius:17px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.05)}.checks-summary span{display:block;color:#64748b;font-size:11px;font-weight:700}.checks-summary strong{display:block;margin-top:6px;color:#172033;font-size:29px}.checks-summary .ok{border-top:3px solid #22c55e}.checks-summary .attention{border-top:3px solid #ef4444}.checks-summary .pending{border-top:3px solid #f59e0b}.checks-form{overflow:hidden;border:1px solid #e2e8f0;border-radius:19px;background:#fff;box-shadow:0 14px 32px rgba(15,23,42,.07)}.checks-form>header,.checks-form>footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 23px;background:#f0f9ff}.checks-form header span{color:#0369a1;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.checks-form h3{margin:4px 0 0;color:#172033}.checks-form small,.checks-form footer span{color:#64748b;font-size:10px}.checks-form-grid{display:grid;grid-template-columns:2fr 1fr 2fr;gap:13px;padding:22px 23px}.checks-form label{display:flex;flex-direction:column;gap:7px;color:#475569;font-size:11px;font-weight:700}.checks-form label.wide{grid-column:1/-1}.checks-form input,.checks-form select,.checks-form textarea{width:100%;min-height:42px;padding:9px 12px;border:1px solid #cbd5e1;border-radius:9px;color:#172033;background:#fff;font:inherit;font-size:13px;box-sizing:border-box;outline:none}.checks-form textarea{resize:vertical}.checks-form input:focus,.checks-form select:focus,.checks-form textarea:focus{border-color:#0284c7;box-shadow:0 0 0 3px rgba(2,132,199,.12)}.checks-form>footer{border-top:1px solid #e2e8f0;background:#fff}.checks-form footer button{border:0;color:#fff;background:#0369a1}.checks-register{overflow:hidden;border:1px solid #e2e8f0;border-radius:18px;background:#fff}.checks-register>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid #e2e8f0}.checks-register h3{margin:0;color:#172033}.checks-register header p{margin:4px 0 0;color:#64748b;font-size:11px}.checks-alert,.checks-clear{padding:6px 10px;border-radius:999px;font-size:10px;font-weight:800}.checks-alert{color:#991b1b;background:#fee2e2}.checks-clear{color:#166534;background:#dcfce7}.checks-table-wrap{overflow-x:auto}.checks-register table{width:100%;border-collapse:collapse}.checks-register th,.checks-register td{padding:13px 15px;border-bottom:1px solid #eef2f7;text-align:left}.checks-register th{color:#64748b;background:#f8fafc;font-size:10px;text-transform:uppercase}.checks-register td{color:#334155;font-size:12px}.checks-register td small{color:#64748b}.checks-remarks{min-width:220px;white-space:normal}.checks-status{display:inline-block;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:800;white-space:nowrap}.checks-status.ok{color:#166534;background:#dcfce7}.checks-status.attention{color:#991b1b;background:#fee2e2}.checks-status.pending{color:#92400e;background:#fef3c7}.checks-empty{padding:32px;text-align:center;color:#64748b}
@media(max-width:820px){.checks-hero{align-items:stretch;flex-direction:column}.checks-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.checks-form-grid{grid-template-columns:1fr 1fr}.checks-form label.wide{grid-column:1/-1}}
@media(max-width:560px){.checks-hero{padding:23px 20px}.checks-hero-actions,.checks-toolbar,.checks-form>header,.checks-form>footer{align-items:stretch;flex-direction:column}.checks-hero-actions button{width:100%}.checks-summary{gap:9px}.checks-form-grid{grid-template-columns:1fr}.checks-form label.wide{grid-column:auto}}
/* Phase 15: Conversations workspace */
.conversations-page{display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px;height:calc(100dvh - 120px);min-height:560px}.conversations-sidebar,.conversation-panel{overflow:hidden;border:1px solid #e2e8f0;border-radius:20px;background:#fff;box-shadow:0 12px 30px rgba(15,23,42,.06)}.conversations-sidebar{display:flex;min-height:0;flex-direction:column}.conversations-sidebar>header{padding:22px 20px;color:#fff;background:linear-gradient(135deg,#0f172a,#1e3a8a)}.conversations-sidebar header>span{color:#93c5fd;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.conversations-sidebar h2{margin:5px 0 0;font-size:24px}.conversations-sidebar header p{margin:4px 0 0;color:#bfdbfe;font-size:11px}.conversation-search{padding:13px;border-bottom:1px solid #e2e8f0}.conversation-search input{width:100%;min-height:39px;padding:0 11px;border:1px solid #cbd5e1;border-radius:9px;color:#172033;font:inherit;font-size:12px;box-sizing:border-box;outline:none}.conversation-search input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.12)}.conversations-sidebar nav{display:flex;min-height:0;flex:1;flex-direction:column;gap:4px;overflow-y:auto;padding:9px}.conversations-sidebar nav button{display:flex;align-items:center;gap:10px;width:100%;padding:11px;border:0;border-radius:10px;color:#475569;background:transparent;text-align:left;font:inherit;cursor:pointer}.conversations-sidebar nav button>span{display:grid;width:28px;height:28px;place-items:center;border-radius:8px;color:#64748b;background:#f1f5f9;font-weight:900}.conversations-sidebar nav button div{min-width:0}.conversations-sidebar nav strong,.conversations-sidebar nav small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversations-sidebar nav strong{font-size:12px}.conversations-sidebar nav small{margin-top:3px;color:#94a3b8;font-size:9px}.conversations-sidebar nav button.active{color:#1d4ed8;background:#eff6ff}.conversations-sidebar nav button.active>span{color:#fff;background:#2563eb}.conversations-sidebar nav>p{padding:18px;color:#94a3b8;font-size:11px;text-align:center}.conversation-panel{display:flex;min-width:0;min-height:0;flex-direction:column}.conversation-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 18px;border-bottom:1px solid #e2e8f0;background:#fff}.conversation-header>div{display:flex;align-items:center;gap:11px}.conversation-header>div>span{display:grid;width:36px;height:36px;place-items:center;border-radius:10px;color:#1d4ed8;background:#dbeafe;font-weight:900}.conversation-header h3{margin:0;color:#172033;font-size:15px}.conversation-header p{margin:3px 0 0;color:#64748b;font-size:10px}.conversation-header>button{padding:8px 11px;border:1px solid #cbd5e1;border-radius:8px;color:#475569;background:#fff;font:inherit;font-size:10px;font-weight:800;cursor:pointer}.conversation-messages{display:flex;min-height:0;flex:1;flex-direction:column;gap:16px;overflow-y:auto;padding:22px;background:#f8fafc}.conversation-messages article{display:flex;align-items:flex-start;gap:9px;max-width:min(76%,720px)}.conversation-messages article.mine{align-self:flex-end;flex-direction:row-reverse}.conversation-avatar{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border-radius:9px;color:#1d4ed8;background:#dbeafe;font-size:11px;font-weight:900}.conversation-messages article.mine .conversation-avatar{color:#fff;background:#2563eb}.conversation-messages article>div:last-child{min-width:0}.conversation-messages article header{display:flex;align-items:center;gap:8px;margin:0 4px 5px}.conversation-messages article.mine header{justify-content:flex-end}.conversation-messages article header strong{color:#475569;font-size:10px}.conversation-messages time{color:#94a3b8;font-size:9px}.conversation-bubble{overflow:hidden;padding:10px 13px;border:1px solid #e2e8f0;border-radius:4px 14px 14px;background:#fff;color:#334155;box-shadow:0 2px 6px rgba(15,23,42,.04)}.mine .conversation-bubble{border-color:#2563eb;border-radius:14px 4px 14px 14px;color:#fff;background:#2563eb}.conversation-bubble p{margin:0;line-height:1.55;overflow-wrap:anywhere;white-space:pre-wrap}.conversation-bubble img{display:block;max-width:min(100%,480px);max-height:360px;border-radius:9px;object-fit:contain}.conversation-bubble p+ a img{margin-top:8px}.conversation-empty{display:flex;flex:1;align-items:center;justify-content:center;flex-direction:column;gap:5px;padding:30px;color:#94a3b8;text-align:center}.conversation-empty strong{color:#475569}.conversation-empty.large{height:100%}.conversation-composer{display:flex;align-items:center;gap:9px;padding:13px 15px;border-top:1px solid #e2e8f0;background:#fff}.conversation-composer>div{position:relative;flex:1}.conversation-composer input[type=text],.conversation-composer>div>input{width:100%;min-height:43px;padding:0 54px 0 13px;border:1px solid #cbd5e1;border-radius:11px;color:#172033;font:inherit;font-size:12px;box-sizing:border-box;outline:none}.conversation-composer input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.12)}.conversation-composer small{position:absolute;right:10px;top:15px;color:#94a3b8;font-size:8px}.conversation-composer button{height:43px;border:0;border-radius:10px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.conversation-composer .attach{width:43px;color:#334155;background:#e2e8f0;font-size:19px}.conversation-composer .send{padding:0 18px;color:#fff;background:#2563eb}.conversation-composer button:disabled{cursor:not-allowed;opacity:.55}
@media(max-width:760px){.conversations-page{grid-template-columns:1fr;height:auto;min-height:0}.conversations-sidebar{max-height:260px}.conversations-sidebar>header{padding:17px}.conversations-sidebar nav{max-height:130px}.conversation-panel{height:68dvh;min-height:500px}.conversation-messages article{max-width:90%}}
@media(max-width:480px){.conversation-messages{padding:15px 11px}.conversation-messages article{max-width:96%}.conversation-avatar{display:none}.conversation-composer{padding:10px}.conversation-composer .send{padding:0 12px}.conversation-header{padding:12px}}
/* Phase 16: Public holiday management */
.holidays-page{display:flex;flex-direction:column;gap:20px}.holidays-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:30px;border-radius:24px;color:#fff;background:radial-gradient(circle at 88% 10%,rgba(196,181,253,.28),transparent 31%),linear-gradient(135deg,#172033,#4c1d95 74%,#6d28d9);box-shadow:0 20px 45px rgba(15,23,42,.16)}.holidays-hero>div:first-child>span{color:#ddd6fe;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.holidays-hero h2{margin:7px 0 0;font-size:clamp(28px,4vw,42px);letter-spacing:-.04em}.holidays-hero p{max-width:680px;margin:10px 0 0;color:#ede9fe;line-height:1.6}.holidays-hero-actions{display:flex;gap:9px}.holidays-hero-actions button,.holidays-form button{min-height:43px;padding:0 17px;border:1px solid rgba(255,255,255,.25);border-radius:10px;color:#ede9fe;background:rgba(255,255,255,.08);font:inherit;font-size:12px;font-weight:800;cursor:pointer}.holidays-hero-actions .primary{border-color:#c4b5fd;color:#2e1065;background:#c4b5fd}.holidays-hero-actions button:disabled{cursor:wait;opacity:.65}.holidays-summary{display:grid;grid-template-columns:1fr 1fr 2fr;gap:14px}.holidays-summary>div{padding:19px 21px;border:1px solid #e2e8f0;border-radius:17px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.05)}.holidays-summary span,.holidays-summary small{display:block;color:#64748b;font-size:10px;font-weight:700}.holidays-summary strong{display:block;margin:6px 0;color:#172033;font-size:29px}.holidays-summary .date-value{font-size:19px}.holidays-form{overflow:hidden;border:1px solid #e2e8f0;border-radius:18px;background:#fff;box-shadow:0 14px 32px rgba(15,23,42,.07)}.holidays-form>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 23px;background:#f5f3ff}.holidays-form header span{color:#6d28d9;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.holidays-form h3{margin:4px 0 0;color:#172033}.holidays-form header small{color:#64748b;font-size:10px}.holidays-form>div{display:grid;grid-template-columns:1fr 2fr auto;align-items:end;gap:13px;padding:22px 23px}.holidays-form label,.holidays-controls label{display:flex;flex-direction:column;gap:7px;color:#475569;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.holidays-form input,.holidays-controls input,.holidays-controls select{width:100%;min-height:42px;padding:0 12px;border:1px solid #cbd5e1;border-radius:9px;color:#172033;background:#fff;font:inherit;font-size:12px;box-sizing:border-box;outline:none}.holidays-form input:focus,.holidays-controls input:focus,.holidays-controls select:focus{border-color:#8b5cf6;box-shadow:0 0 0 3px rgba(139,92,246,.12)}.holidays-form button{border:0;color:#fff;background:#6d28d9}.holidays-form button:disabled{cursor:wait;opacity:.6}.holidays-controls{display:grid;grid-template-columns:180px minmax(260px,480px);gap:13px;padding:18px 20px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.holidays-register{overflow:hidden;border:1px solid #e2e8f0;border-radius:18px;background:#fff}.holidays-register>header{padding:20px 22px;border-bottom:1px solid #e2e8f0}.holidays-register h3{margin:0;color:#172033}.holidays-register header p{margin:5px 0 0;color:#64748b;font-size:11px}.holidays-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}.holidays-grid article{display:flex;align-items:center;gap:13px;padding:14px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.holidays-grid article.past{opacity:.68;background:#f8fafc}.holiday-date-block{display:flex;width:52px;height:57px;flex:0 0 52px;align-items:center;justify-content:center;flex-direction:column;border-radius:11px;color:#5b21b6;background:#ede9fe}.holiday-date-block strong{font-size:20px;line-height:1}.holiday-date-block span{margin-top:4px;font-size:9px;font-weight:800;text-transform:uppercase}.holiday-details{min-width:0;flex:1}.holiday-details h4{overflow:hidden;margin:0;color:#172033;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.holiday-details p{margin:4px 0;color:#64748b;font-size:10px}.holiday-details>span{display:inline-block;padding:4px 7px;border-radius:999px;color:#5b21b6;background:#ede9fe;font-size:8px;font-weight:800;text-transform:uppercase}.holidays-grid article.past .holiday-details>span{color:#475569;background:#e2e8f0}.holidays-empty{padding:34px;text-align:center;color:#64748b}
@media(max-width:780px){.holidays-hero{align-items:stretch;flex-direction:column}.holidays-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.holidays-summary>div:last-child{grid-column:1/-1}.holidays-grid{grid-template-columns:1fr}}
@media(max-width:560px){.holidays-hero{padding:23px 20px}.holidays-hero-actions,.holidays-form>header{align-items:stretch;flex-direction:column}.holidays-hero-actions button{width:100%}.holidays-summary{grid-template-columns:1fr}.holidays-summary>div:last-child{grid-column:auto}.holidays-form>div,.holidays-controls{grid-template-columns:1fr}.holidays-grid article{padding:11px}.holidays-grid .delete-btn{padding:6px}}
/* Phase 17: Ramp inspection reliability */
.ramp-workspace-page{display:flex;flex-direction:column;gap:18px}.ramp-workspace-header{padding:24px;border:0;border-radius:20px;color:#fff;background:radial-gradient(circle at 90% 8%,rgba(251,191,36,.23),transparent 30%),linear-gradient(135deg,#111827,#1e3a5f);box-shadow:0 16px 35px rgba(15,23,42,.14)}.ramp-workspace-header h2{margin:0;font-size:clamp(24px,3vw,34px);letter-spacing:-.03em}.ramp-workspace-header__actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.ramp-draft-status{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:#d1fae5;background:rgba(5,150,105,.22);font-size:10px;font-weight:800}.ramp-draft-status.saving{color:#fef3c7;background:rgba(217,119,6,.2)}.ramp-draft-status.error{color:#fee2e2;background:rgba(220,38,38,.25)}.ramp-workspace-page .ops-tabs{padding:7px;border:1px solid #e2e8f0;border-radius:14px;background:#eef2f7}.ramp-workspace-page .ops-tab-btn{border-radius:9px}.ramp-workspace-page .quick-btn:disabled{cursor:wait;opacity:.6}.ramp-workspace-page .ramp-container{border-radius:16px;box-shadow:0 12px 28px rgba(15,23,42,.07)}
@media(max-width:760px){.ramp-workspace-header{align-items:stretch;flex-direction:column}.ramp-workspace-header__actions{justify-content:flex-start}.ramp-workspace-header__actions .quick-btn{flex:1}.ramp-workspace-page .ops-tabs{overflow-x:auto;white-space:nowrap}}
/* Phase 18: Saved Ramp report register */
.ramp-reports-workspace{display:flex;flex-direction:column;gap:16px;margin-top:16px}.ramp-reports-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.ramp-reports-summary>div{padding:17px 18px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.ramp-reports-summary span{display:block;color:#64748b;font-size:10px;font-weight:700}.ramp-reports-summary strong{display:block;margin-top:5px;color:#172033;font-size:25px}.ramp-reports-controls{display:grid;grid-template-columns:minmax(240px,1fr) 160px 160px auto auto;align-items:end;gap:10px;padding:16px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.ramp-reports-controls label{display:flex;flex-direction:column;gap:6px;color:#64748b;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.ramp-reports-controls input{min-height:40px;padding:0 11px;border:1px solid #cbd5e1;border-radius:8px;color:#172033;font:inherit;font-size:11px;outline:none}.ramp-reports-controls input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.ramp-reports-controls button{min-height:40px;padding:0 13px;border:1px solid #cbd5e1;border-radius:8px;color:#475569;background:#fff;font:inherit;font-size:10px;font-weight:800;cursor:pointer}.ramp-reports-controls .refresh{border-color:#2563eb;color:#fff;background:#2563eb}.ramp-reports-register{overflow:hidden;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.ramp-reports-register>header{padding:18px 20px;border-bottom:1px solid #e2e8f0}.ramp-reports-register h3{margin:0;color:#172033}.ramp-reports-register header p{margin:4px 0 0;color:#64748b;font-size:10px}.ramp-reports-table{overflow-x:auto}.ramp-reports-table table{width:100%;border-collapse:collapse}.ramp-reports-table th,.ramp-reports-table td{padding:12px 14px;border-bottom:1px solid #eef2f7;text-align:left}.ramp-reports-table th{color:#64748b;background:#f8fafc;font-size:9px;text-transform:uppercase}.ramp-reports-table td{color:#334155;font-size:11px}.ramp-reports-table td small{display:block;margin-top:3px;color:#94a3b8;font-size:9px}.ramp-report-status{display:inline-block;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:800;white-space:nowrap}.ramp-report-status.departed{color:#166534;background:#dcfce7}.ramp-report-status.arrived{color:#1e40af;background:#dbeafe}.ramp-report-status.scheduled{color:#92400e;background:#fef3c7}.ramp-report-actions{display:flex;gap:5px;white-space:nowrap}.ramp-report-actions button{padding:6px 8px;border:0;border-radius:7px;color:#1e40af;background:#dbeafe;font:inherit;font-size:9px;font-weight:800;cursor:pointer}.ramp-report-actions .edit{color:#5b21b6;background:#ede9fe}.ramp-report-actions .delete{color:#991b1b;background:#fee2e2}.ramp-reports-empty{padding:28px;text-align:center;color:#64748b}.ramp-report-modal{display:flex;width:95%;max-width:1120px;max-height:94dvh;flex-direction:column;overflow:hidden}.ramp-report-modal>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 19px;border-bottom:1px solid #e2e8f0}.ramp-report-modal header span{color:#64748b;font-size:9px;font-weight:800;text-transform:uppercase}.ramp-report-modal h3{margin:3px 0 0;color:#172033}.ramp-report-modal header>div:last-child{display:flex;gap:8px}.ramp-report-modal header button{padding:8px 11px;border:1px solid #cbd5e1;border-radius:8px;color:#475569;background:#fff;font:inherit;font-size:10px;font-weight:800;cursor:pointer}.ramp-report-modal header .print{border-color:#166534;color:#fff;background:#166534}.ramp-report-modal .modal-scrollable-body{flex:1;overflow-y:auto;padding:18px;background:#f8fafc}
@media(max-width:900px){.ramp-reports-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ramp-reports-controls{grid-template-columns:1fr 1fr}.ramp-reports-controls label:first-child{grid-column:1/-1}}
@media(max-width:560px){.ramp-reports-summary{gap:8px}.ramp-reports-controls{grid-template-columns:1fr}.ramp-reports-controls label:first-child{grid-column:auto}.ramp-report-modal>header{align-items:stretch;flex-direction:column}.ramp-report-modal header>div:last-child button{flex:1}}
/* Phase 21: role-based access control */
.access-control-workspace{display:flex;flex-direction:column;gap:18px}.access-control-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:25px;border-radius:20px;color:#fff;background:radial-gradient(circle at 88% 8%,rgba(196,181,253,.28),transparent 30%),linear-gradient(135deg,#172033,#4c1d95 75%,#6d28d9)}.access-control-hero>div:first-child>span{color:#ddd6fe;font-size:9px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.access-control-hero h3{margin:6px 0 0;font-size:28px}.access-control-hero p{max-width:650px;margin:8px 0 0;color:#ede9fe;line-height:1.5}.access-control-hero>div:last-child{text-align:right}.access-control-hero>div:last-child strong,.access-control-hero>div:last-child span{display:block}.access-control-hero>div:last-child strong{font-size:28px}.access-control-hero>div:last-child span{color:#ddd6fe;font-size:9px}.access-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.access-policy-grid article{padding:17px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.access-policy-grid strong{display:block;color:#172033;font-size:12px}.access-policy-grid p{margin:6px 0;color:#64748b;font-size:10px;line-height:1.5}.access-policy-grid span{color:#6d28d9;font-size:9px;font-weight:700}.access-control-section{overflow:hidden;border:1px solid #e2e8f0;border-radius:17px;background:#fff}.access-control-section>header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.access-control-section h4{margin:0;color:#172033}.access-control-section header p{margin:4px 0 0;color:#64748b;font-size:10px}.access-control-section header>span{padding:5px 8px;border-radius:999px;color:#5b21b6;background:#ede9fe;font-size:9px;font-weight:800}.access-member-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px}.access-member-card{padding:15px;border:1px solid #e2e8f0;border-radius:14px}.access-member-head{display:flex;align-items:center;gap:10px}.access-member-avatar{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border-radius:10px;color:#5b21b6;background:#ede9fe;font-weight:900;text-transform:uppercase}.access-member-head>div:nth-child(2){min-width:0;flex:1}.access-member-head strong,.access-member-head span{display:block}.access-member-head strong{color:#172033;font-size:12px}.access-member-head span{overflow:hidden;margin-top:3px;color:#64748b;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.access-member-head em{padding:4px 7px;border-radius:999px;color:#92400e;background:#fef3c7;font-size:8px;font-style:normal;font-weight:900}.access-auto-list{display:flex;flex-wrap:wrap;gap:5px;margin:13px 0}.access-auto-list span,.access-bundle-label{padding:4px 7px;border-radius:999px;color:#166534;background:#dcfce7;font-size:8px;font-weight:800}.access-switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid #eef2f7}.access-switch-row strong,.access-switch-row small{display:block}.access-switch-row strong{color:#334155;font-size:10px}.access-switch-row small{margin-top:2px;color:#94a3b8;font-size:8px}.access-switch{position:relative;width:39px;height:22px;flex:0 0 39px;padding:0;border:0;border-radius:999px;background:#cbd5e1;cursor:pointer;transition:.2s}.access-switch span{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(15,23,42,.25);transition:.2s}.access-switch.active{background:#7c3aed}.access-switch.active span{left:20px}.access-switch:disabled{cursor:wait;opacity:.6}.access-special-list{display:flex;flex-direction:column}.access-special-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid #eef2f7}.access-special-list article:last-child{border-bottom:0}.access-special-list strong,.access-special-list article>div:first-child>span{display:block}.access-special-list strong{color:#172033;font-size:11px}.access-special-list article>div:first-child>span{margin-top:3px;color:#64748b;font-size:9px}.access-control-section.compact{padding-bottom:15px}.access-inline-form{display:flex;gap:9px;padding:14px 18px}.access-inline-form select{min-height:40px;flex:1;padding:0 11px;border:1px solid #cbd5e1;border-radius:9px;color:#172033;background:#fff;font:inherit;font-size:11px}.access-inline-form button{padding:0 15px;border:0;border-radius:9px;color:#fff;background:#6d28d9;font:inherit;font-size:10px;font-weight:800}.access-inspector-list{display:flex;flex-wrap:wrap;gap:7px;padding:0 18px}.access-inspector-list>span{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:9px;color:#334155;background:#f1f5f9;font-size:9px}.access-inspector-list button{border:0;color:#b91c1c;background:transparent;font:inherit;font-size:8px;font-weight:800;cursor:pointer}.access-empty{grid-column:1/-1;padding:20px;color:#94a3b8;font-size:10px;text-align:center}
@media(max-width:800px){.access-control-hero{align-items:stretch;flex-direction:column}.access-control-hero>div:last-child{text-align:left}.access-policy-grid{grid-template-columns:1fr}.access-member-grid{grid-template-columns:1fr}}
@media(max-width:520px){.access-control-hero{padding:21px}.access-special-list article{grid-template-columns:1fr auto}.access-bundle-label{grid-column:1/-1;grid-row:2}.access-inline-form{flex-direction:column}.access-inline-form button{min-height:40px}}
/* Phase 22: dashboard greeting and flight movement board */
.overview-greeting-board { position: relative; overflow: hidden; min-height: 178px; padding: 32px 36px; border: 0; border-radius: 24px; background: radial-gradient(circle at 76% 18%, rgba(34,211,238,.2), transparent 25%), linear-gradient(135deg,#082f49 0%,#0c4a6e 55%,#0f766e 120%); box-shadow: 0 20px 45px rgba(8,47,73,.18); }
.overview-greeting-board::after { position: absolute; right: -80px; bottom: -150px; width: 330px; height: 330px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; content: ''; }
.overview-greeting-copy { position: relative; z-index: 1; }
.overview-greeting-board h1 { font-size: clamp(27px,3.3vw,43px); font-weight: 500; }
.overview-greeting-board h1 strong { color: #a5f3fc; font-weight: 850; }
.overview-greeting-board p { margin: 9px 0 0; font-size: 13px; }
.overview-identity-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 19px; }
.overview-identity-row > span { display: inline-flex; min-height: 29px; align-items: center; padding: 0 10px; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; color: #e0f2fe; background: rgba(255,255,255,.08); font-size: 9px; font-weight: 800; }
.overview-live-label i { width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: #4ade80; box-shadow: 0 0 0 4px rgba(74,222,128,.14); }
.overview-greeting-board .overview-clock { position: relative; z-index: 1; min-width: 245px; padding: 18px 0 18px 28px; }
.overview-greeting-board .overview-clock strong { margin: 4px 0; font-size: 35px; letter-spacing: -.03em; }
.overview-greeting-board .overview-clock span { color: #67e8f9; font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.overview-primary-grid { grid-template-columns: minmax(0,1.65fr) minmax(300px,.75fr); }
.overview-flight-board { padding: 0; overflow: hidden; }
.overview-flight-board > .overview-panel-header { align-items: center; margin: 0; padding: 20px 22px; border-bottom: 1px solid #dfe8ee; }
.overview-flight-board-list { width: 100%; }
.overview-flight-board-head, .overview-flight-board-list>.overview-flight-board-entry { display: grid; grid-template-columns: 1.05fr 1.2fr 1fr 1fr minmax(90px,.7fr); align-items: center; gap: 14px; }
.overview-flight-board-head { padding: 9px 20px; color: #7b8fa3; background: #f4f7f9; font-size: 8px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.overview-flight-board-list>.overview-flight-board-entry { width: 100%; min-height: 72px; padding: 12px 20px; border: 0; border-top: 1px solid #edf2f5; color: #243b53; background: #fff; font: inherit; text-align: left; cursor: pointer; transition: background .15s ease, transform .15s ease; }
.overview-flight-board-list>.overview-flight-board-entry:hover { position: relative; background: #f0fdfa; }
.overview-flight-board-list>.overview-flight-board-entry.is-next { border-left: 4px solid #0891b2; padding-left: 16px; background: linear-gradient(90deg,#ecfeff 0%,#fff 32%); }
.overview-flight-service, .overview-flight-route, .overview-flight-times { min-width: 0; }
.overview-flight-service > *, .overview-flight-route > * { display: block; }
.overview-flight-service i { width: max-content; margin-bottom: 3px; color: #0891b2; font-size: 7px; font-style: normal; font-weight: 950; letter-spacing: .09em; }
.overview-flight-service strong { color: #0c4a6e; font-size: 15px; }
.overview-flight-service small, .overview-flight-route small { margin-top: 3px; color: #829ab1; font-size: 8px; }
.overview-flight-route strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.overview-flight-times { display: flex; gap: 13px; }
.overview-flight-times small { color: #829ab1; font-size: 7px; font-weight: 900; letter-spacing: .04em; }
.overview-flight-times strong { display: block; margin-top: 3px; color: #243b53; font-size: 11px; letter-spacing: 0; }
.overview-flight-live-times strong { color: #0f766e; }
.overview-board-status { justify-self: end; padding: 6px 9px; border-radius: 999px; color: #166534; background: #dcfce7; font-size: 8px; font-weight: 900; white-space: nowrap; }
.overview-board-status--delayed { color: #92400e; background: #fef3c7; }
.overview-board-status--cancelled { color: #991b1b; background: #fee2e2; }
.overview-board-status--departed, .overview-board-status--completed, .overview-board-status--arrived { color: #475569; background: #e2e8f0; }
.overview-board-status--departed-origin { color: #6b21a8; background: #f3e8ff; }
@media (max-width: 1050px) { .overview-flight-board-head { display: none; } .overview-flight-board-list>.overview-flight-board-entry { grid-template-columns: 1fr 1.2fr 1fr auto; } .overview-flight-live-times { display: none; } }
@media (max-width: 700px) { .overview-greeting-board { align-items: stretch; padding: 25px 22px; } .overview-greeting-board .overview-clock { width: 100%; min-width: 0; padding: 16px 0 0; border-top: 1px solid rgba(255,255,255,.18); border-left: 0; text-align: left; } .overview-greeting-board .overview-clock strong { font-size: 29px; } .overview-flight-board-list>.overview-flight-board-entry { grid-template-columns: 1fr auto; gap: 9px 12px; padding: 14px 16px; } .overview-flight-board-list>.overview-flight-board-entry.is-next { padding-left: 12px; } .overview-flight-route { text-align: right; } .overview-flight-times { grid-column: 1 / -1; padding-top: 8px; border-top: 1px solid #edf2f5; } .overview-flight-live-times { display: flex; grid-column: auto; padding: 0; border: 0; } .overview-board-status { grid-column: 2; grid-row: 3; } }
@media (max-width: 440px) { .overview-flight-live-times { display: none; } .overview-board-status { grid-row: 2; } .overview-identity-row > span { max-width: 100%; } }
/* Phase 23: targeted announcements */
.announcements-page{display:flex;flex-direction:column;gap:20px}.announcements-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:29px;border-radius:23px;color:#fff;background:radial-gradient(circle at 82% 12%,rgba(251,191,36,.24),transparent 28%),linear-gradient(135deg,#172033,#78350f 120%);box-shadow:0 18px 42px rgba(120,53,15,.14)}.announcements-hero>div:first-child>span,.announcement-editor header span{color:#fcd34d;font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.announcements-hero h2{margin:6px 0 0;font-size:clamp(27px,4vw,39px)}.announcements-hero p{max-width:650px;margin:9px 0 0;color:#fde68a;line-height:1.55}.announcements-hero-actions{display:flex;gap:9px}.announcements-hero button,.announcement-editor button{min-height:40px;padding:0 14px;border:1px solid rgba(255,255,255,.18);border-radius:10px;color:#fff;background:rgba(255,255,255,.09);font:inherit;font-size:10px;font-weight:850;cursor:pointer}.announcements-hero button.primary,.announcement-editor button.primary{border-color:#fbbf24;color:#422006;background:#fbbf24}.announcements-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.announcements-summary>div{padding:18px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}.announcements-summary span,.announcements-summary small,.announcements-summary strong{display:block}.announcements-summary span{color:#64748b;font-size:9px;font-weight:800;text-transform:uppercase}.announcements-summary strong{margin:6px 0;color:#172033;font-size:27px}.announcements-summary small{color:#94a3b8;font-size:9px}.announcement-editor{overflow:hidden;border:1px solid #d6dce5;border-radius:19px;background:#fff;box-shadow:0 14px 35px rgba(15,23,42,.07)}.announcement-editor>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 22px;color:#fff;background:#172033}.announcement-editor h3{margin:4px 0 0}.announcement-editor header small{color:#cbd5e1}.announcement-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:22px}.announcement-editor label{display:flex;flex-direction:column;gap:6px;color:#475569;font-size:10px;font-weight:800}.announcement-editor label.wide{grid-column:1/-1}.announcement-editor input,.announcement-editor select,.announcement-editor textarea{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:9px;color:#172033;background:#f8fafc;font:inherit}.announcement-editor input,.announcement-editor select{min-height:41px;padding:0 11px}.announcement-editor textarea{padding:11px;resize:vertical}.announcement-editor input:focus,.announcement-editor select:focus,.announcement-editor textarea:focus{border-color:#d97706;outline:0;box-shadow:0 0 0 3px rgba(217,119,6,.1);background:#fff}.announcement-editor>footer{display:flex;justify-content:flex-end;gap:8px;padding:0 22px 22px}.announcement-editor>footer button{border-color:#d6dce5;color:#475569;background:#fff}.announcement-editor>footer button.primary{color:#fff;background:#b45309}.announcement-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 19px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.announcement-toolbar strong,.announcement-toolbar span{display:block}.announcement-toolbar strong{color:#172033}.announcement-toolbar span{margin-top:3px;color:#94a3b8;font-size:9px}.announcement-toolbar select{min-height:36px;padding:0 32px 0 10px;border:1px solid #cbd5e1;border-radius:9px;background:#fff}.announcement-feed{display:flex;flex-direction:column;gap:11px}.announcement-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:15px;padding:18px;border:1px solid #e2e8f0;border-left:4px solid #0f766e;border-radius:15px;background:#fff}.announcement-card.priority-important{border-left-color:#d97706}.announcement-card.priority-urgent{border-left-color:#dc2626;background:linear-gradient(90deg,#fff7f7,#fff 22%)}.announcement-card.is-draft{opacity:.72;border-style:dashed}.announcement-priority-mark{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;color:#0f766e;background:#e6fffa;font-size:9px;font-weight:950}.priority-important .announcement-priority-mark{color:#92400e;background:#fef3c7}.priority-urgent .announcement-priority-mark{color:#991b1b;background:#fee2e2;font-size:19px}.announcement-content{min-width:0}.announcement-content>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.announcement-content header span{color:#64748b;font-size:8px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.announcement-content h3{margin:4px 0 0;color:#172033;font-size:15px}.announcement-content>p{margin:11px 0;color:#475569;font-size:11px;line-height:1.65;white-space:pre-wrap}.announcement-content>footer{display:flex;flex-wrap:wrap;gap:6px 14px;color:#94a3b8;font-size:8px}.announcement-badges{display:flex;gap:5px}.announcement-badges em{padding:4px 7px;border-radius:999px;color:#92400e;background:#fef3c7;font-size:7px;font-style:normal;font-weight:900;text-transform:uppercase}.announcement-actions{display:flex;align-items:flex-start;gap:5px}.announcement-actions button{padding:5px 8px;border:0;color:#0369a1;background:#e0f2fe;font:inherit;font-size:8px;font-weight:850;cursor:pointer}.announcement-actions button.danger{color:#b91c1c;background:#fee2e2}.announcement-empty{padding:48px;border:1px dashed #cbd5e1;border-radius:15px;color:#94a3b8;text-align:center}@media(max-width:700px){.announcements-hero{align-items:stretch;flex-direction:column;padding:23px}.announcements-hero-actions button{flex:1}.announcements-summary{grid-template-columns:1fr 1fr}.announcements-summary>div:last-child{grid-column:1/-1}.announcement-editor-grid{grid-template-columns:1fr}.announcement-editor label.wide{grid-column:auto}.announcement-card{grid-template-columns:auto 1fr}.announcement-actions{grid-column:2}.announcement-content>header{flex-direction:column}}@media(max-width:440px){.announcements-summary{grid-template-columns:1fr}.announcements-summary>div:last-child{grid-column:auto}.announcement-toolbar{align-items:stretch;flex-direction:column}.announcement-card{grid-template-columns:1fr}.announcement-priority-mark{width:34px;height:34px}.announcement-actions{grid-column:auto}}
/* Phase 25: live weather and radar dashboard */
.overview-live-grid{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(0,1.35fr);gap:18px;align-items:stretch}.overview-live-grid>.overview-panel{height:100%;box-sizing:border-box}.overview-live-source{display:inline-flex!important;align-items:center;gap:6px!important;margin:0!important;color:#0f766e!important;font-size:8px!important;letter-spacing:0!important;text-transform:none!important}.overview-live-source i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.12)}.overview-weather-panel{overflow:hidden;background:linear-gradient(145deg,#fff,#f0fdfa)}.overview-weather-content{display:flex;flex-direction:column;gap:16px}.overview-weather-now{display:grid;grid-template-columns:1fr 1fr;gap:13px}.overview-weather-now>div{padding:16px;border:1px solid #d8e8e5;border-radius:13px;background:rgba(255,255,255,.82)}.overview-weather-now span,.overview-weather-now strong,.overview-weather-now small{display:block}.overview-weather-now span{color:#64748b;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.overview-weather-now strong{margin:6px 0;color:#0c4a6e;font-size:30px;line-height:1}.overview-weather-now small{color:#64748b;font-size:9px}.overview-weather-wind strong{font-size:16px;line-height:1.2}.overview-weather-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;overflow:hidden;border:1px solid #dbe4ea;border-radius:10px;background:#dbe4ea}.overview-weather-metrics>div{min-width:0;padding:11px 8px;background:#fff}.overview-weather-metrics span,.overview-weather-metrics strong{display:block}.overview-weather-metrics span{color:#94a3b8;font-size:7px;font-weight:850;text-transform:uppercase}.overview-weather-metrics strong{margin-top:5px;overflow:hidden;color:#334155;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.overview-weather-content>p,.overview-radar-note{margin:0;color:#94a3b8;font-size:8px;line-height:1.5}.overview-radar-panel{padding:0;overflow:hidden}.overview-radar-panel>.overview-panel-header{align-items:center;margin:0;padding:20px 22px;border-bottom:1px solid #e2e8f0}.overview-radar-frame{height:300px;background:#dbeafe}.overview-radar-frame iframe{width:100%;height:100%;border:0}.overview-radar-note{padding:9px 16px;border-top:1px solid #e2e8f0;background:#f8fafc}.overview-radar-panel .overview-text-button{text-decoration:none}@media(max-width:1100px){.overview-live-grid{grid-template-columns:1fr}.overview-radar-frame{height:360px}}@media(max-width:600px){.overview-weather-now{grid-template-columns:1fr 1fr}.overview-weather-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-radar-frame{height:300px}}@media(max-width:420px){.overview-weather-now{grid-template-columns:1fr}.overview-weather-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-radar-panel>.overview-panel-header{align-items:flex-start;flex-direction:column}.overview-radar-frame{height:260px}}
/* Phase 26: dashboard hierarchy and reference-led greeting */
.overview-greeting-board{min-height:225px;padding:38px 44px;border:1px solid rgba(125,211,252,.25);border-radius:26px;background:radial-gradient(circle at 72% 25%,rgba(37,99,235,.2),transparent 32%),radial-gradient(circle at 8% 5%,rgba(255,255,255,.08),transparent 30%),linear-gradient(135deg,#17212c 0%,#111c2d 55%,#111f4a 120%);box-shadow:0 22px 55px rgba(15,23,42,.25)}.overview-greeting-board::after{right:-115px;bottom:-210px;width:440px;height:440px}.overview-greeting-board h1{display:flex;flex-direction:column;margin-top:10px;font-size:clamp(34px,4.8vw,58px);line-height:1.04;letter-spacing:-.055em}.overview-greeting-board h1 span{display:block;color:#fff;font-weight:620}.overview-greeting-board h1 strong{display:block;color:#fff;font-weight:850}.overview-greeting-board p{display:none}.overview-identity-row{margin-top:23px}.overview-identity-row>span{min-height:31px;padding:0 11px;border-color:rgba(148,163,184,.25);border-radius:7px;color:#e2e8f0;background:rgba(2,6,23,.5);font-size:10px}.overview-greeting-board .overview-clock{min-width:330px;padding-left:38px}.overview-greeting-board .overview-clock strong{margin:10px 0 12px;font-size:clamp(42px,6vw,72px);font-weight:300;letter-spacing:.015em}.overview-greeting-board .overview-clock small{font-size:13px}.overview-station-status{display:inline-flex!important;align-items:center;justify-content:flex-end;gap:8px;color:#cbd5e1!important;font-size:12px!important;letter-spacing:0!important;text-transform:none!important}.overview-station-status i{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 5px rgba(34,197,94,.12)}.overview-flight-stage,.overview-workforce-stage{display:block}.overview-flight-stage>.overview-panel,.overview-workforce-stage>.overview-panel{width:100%}.overview-flight-stage .overview-flight-board-list>.overview-flight-board-entry{min-height:76px}.overview-flight-radar-panel{padding:0;overflow:hidden}.overview-flight-radar-panel>.overview-panel-header{align-items:center;margin:0;padding:20px 22px;border-bottom:1px solid #e2e8f0}.overview-flight-radar-content{display:flex;flex-direction:column}.overview-flight-radar-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 20px;background:#f8fafc}.overview-flight-radar-summary>div>span,.overview-flight-radar-summary strong,.overview-flight-radar-summary small{display:block}.overview-flight-radar-summary>div>span{color:#64748b;font-size:8px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.overview-flight-radar-summary strong{margin:4px 0;color:#0c4a6e;font-size:19px}.overview-flight-radar-summary small{color:#64748b;font-size:9px}.overview-flight-radar-frame{height:360px;background:linear-gradient(135deg,#dbeafe,#e2e8f0)}.overview-flight-radar-frame iframe{width:100%;height:100%;border:0}.overview-flight-radar-content>p{margin:0;padding:9px 16px;border-top:1px solid #e2e8f0;color:#94a3b8;background:#f8fafc;font-size:8px}.overview-workforce-stage .overview-staffing-total{grid-template-columns:repeat(2,minmax(0,220px))}.overview-workforce-stage .overview-department-bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 20px}@media(max-width:900px){.overview-greeting-board{min-height:190px;padding:30px}.overview-greeting-board .overview-clock{min-width:245px;padding-left:25px}.overview-greeting-board .overview-clock strong{font-size:45px}.overview-workforce-stage .overview-department-bars{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.overview-greeting-board{min-height:0;padding:25px 22px}.overview-greeting-board h1{font-size:36px}.overview-greeting-board .overview-clock{min-width:0;padding:17px 0 0}.overview-station-status{justify-content:flex-start}.overview-flight-radar-frame{height:300px}}@media(max-width:480px){.overview-greeting-board h1{font-size:31px}.overview-identity-row{gap:6px}.overview-identity-row>span{font-size:8px}.overview-workforce-stage .overview-department-bars{grid-template-columns:1fr}.overview-flight-radar-frame{height:250px}}
/* Phase 27: simplified settings and operational access */
.settings-workspace{max-width:1160px;margin:0 auto}.settings-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:15px;padding:28px;border-radius:22px;color:#fff;background:radial-gradient(circle at 83% 10%,rgba(56,189,248,.23),transparent 30%),linear-gradient(135deg,#172033,#0c4a6e 105%);box-shadow:0 18px 42px rgba(15,23,42,.14)}.settings-hero>div:first-child>span{color:#7dd3fc;font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.settings-hero h2{margin:6px 0 0;font-size:clamp(27px,4vw,38px)}.settings-hero p{max-width:650px;margin:8px 0 0;color:#bae6fd;line-height:1.55}.settings-hero__identity{text-align:right}.settings-hero__identity strong,.settings-hero__identity span{display:block}.settings-hero__identity strong{font-size:14px}.settings-hero__identity span{margin-top:5px;color:#bae6fd;font-size:9px;text-transform:capitalize}.settings-tabs{justify-content:center;margin:0 auto 22px;padding:6px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.05)}.access-control-section>summary{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:18px 20px;background:#f8fafc;cursor:pointer;list-style:none}.access-control-section>summary::-webkit-details-marker{display:none}.access-control-section>summary::after{content:'+';display:grid;width:23px;height:23px;flex:0 0 23px;place-items:center;border-radius:7px;color:#5b21b6;background:#ede9fe;font-size:15px;font-weight:700}.access-control-section[open]>summary{border-bottom:1px solid #e2e8f0}.access-control-section[open]>summary::after{content:'−'}.access-control-section summary p{margin:4px 0 0;color:#64748b;font-size:10px}.access-control-section summary>span{margin-left:auto;padding:5px 8px;border-radius:999px;color:#5b21b6;background:#ede9fe;font-size:9px;font-weight:800}.access-control-section.compact{padding-bottom:0}.access-control-section.compact[open]{padding-bottom:15px}@media(max-width:700px){.settings-hero{align-items:stretch;flex-direction:column;padding:23px}.settings-hero__identity{text-align:left}.settings-tabs{justify-content:flex-start;overflow-x:auto}.access-control-section>summary{align-items:flex-start}.access-control-section summary>span{display:none}}
/* Phase 28: live dashboard reliability and mobile flight board */
.overview-flight-board-head,.overview-flight-board-list>.overview-flight-board-entry{grid-template-columns:minmax(105px,.9fr) minmax(125px,1.05fr) minmax(120px,.85fr) minmax(120px,.85fr) minmax(190px,1.25fr) auto}.overview-flight-details-compact{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;min-width:0}.overview-flight-details-compact small,.overview-flight-details-compact strong{display:block}.overview-flight-details-compact small{color:#829ab1;font-size:7px;font-weight:900;letter-spacing:.03em}.overview-flight-details-compact strong{margin-top:3px;color:#243b53;font-size:10px}.overview-mobile-radar-launch{display:none}
@media(max-width:1050px){.overview-flight-board-list>.overview-flight-board-entry{grid-template-columns:1fr 1.1fr 1fr 1fr auto}.overview-flight-details-compact{grid-column:1/-1;padding-top:9px;border-top:1px solid #edf2f5}.overview-flight-live-times{display:flex}}
@media(max-width:700px){.overview-flight-board-list>.overview-flight-board-entry{grid-template-columns:minmax(0,1fr) auto;gap:10px 12px}.overview-flight-service{grid-column:1;grid-row:1}.overview-board-status{grid-column:2;grid-row:1;align-self:center}.overview-flight-route{grid-column:1/-1;grid-row:2;text-align:left}.overview-flight-times{grid-column:1/-1;grid-row:3;padding-top:9px;border-top:1px solid #edf2f5}.overview-flight-live-times{display:flex!important;grid-column:1/-1;grid-row:4;padding-top:0;border-top:0}.overview-flight-details-compact{grid-column:1/-1;grid-row:5;padding:10px;border:1px solid #dbe7ec;border-radius:9px;background:#f8fafc}.overview-flight-radar-frame{height:auto;min-height:0;background:#e0f2fe}.overview-flight-radar-frame iframe{display:none}.overview-mobile-radar-launch{display:flex;min-height:145px;box-sizing:border-box;flex-direction:column;align-items:center;justify-content:center;padding:24px;color:#0c4a6e;text-align:center;text-decoration:none;background:radial-gradient(circle at 50% 0,rgba(34,211,238,.25),transparent 45%),linear-gradient(135deg,#ecfeff,#dbeafe)}.overview-mobile-radar-launch strong,.overview-mobile-radar-launch span{display:block}.overview-mobile-radar-launch strong{font-size:14px}.overview-mobile-radar-launch span{max-width:320px;margin-top:7px;color:#475569;font-size:9px;line-height:1.5}.overview-weather-now{grid-template-columns:1fr 1fr;gap:0;overflow:hidden;border:1px solid #d8e8e5;border-radius:13px;background:rgba(255,255,255,.82)}.overview-weather-now>div{border:0;border-radius:0;background:transparent}.overview-weather-now>div+div{border-left:1px solid #d8e8e5}}
@media(max-width:440px){.overview-flight-live-times{display:flex!important}.overview-weather-now{grid-template-columns:1fr 1fr}.overview-weather-now>div{padding:13px}.overview-weather-now strong{font-size:24px}.overview-weather-wind strong{font-size:13px}.overview-weather-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-weather-metrics>div{padding:9px 6px}}
/* Phase 29: unified operations assignment and export workspace */
.operations-assignment-panel{overflow:hidden;padding:0!important;border:1px solid #dbe4ea!important;border-radius:18px!important;box-shadow:0 13px 32px rgba(15,23,42,.07)!important}.operations-assignment-panel>h3,.operations-assignment-panel>div:first-child{margin:0!important;padding:17px 20px;border-bottom:1px solid #e2e8f0;background:linear-gradient(90deg,#f8fafc,#fff)}.operations-assignment-panel>h3{color:#172033;font-size:14px}.operations-runway-staff{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px!important;margin:0!important;padding:16px}.operations-runway-person{gap:10px!important;padding:13px!important;border-color:#dbe4ea!important;border-radius:11px!important;background:#fff!important}.operations-runway-person>div:first-child span{color:#172033;font-size:11px!important}.operations-runway-person>div:last-child{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px!important}.operations-runway-person label,.operations-task-person{display:flex!important;align-items:center!important;gap:5px!important;min-height:30px;box-sizing:border-box;padding:6px!important;border:1px solid #dbe4ea!important;border-radius:7px!important;color:#475569;background:#f8fafc!important;font-size:8px!important;font-weight:750;cursor:pointer}.operations-runway-person label:has(input:checked),.operations-task-person.selected{border-color:#7dd3fc!important;color:#0c4a6e;background:#ecfeff!important;box-shadow:inset 0 0 0 1px #a5f3fc}.operations-runway-person input,.operations-task-person input{accent-color:#0891b2}.operations-assignment-panel>div:nth-child(2){padding:16px!important}.operations-task-assignment{margin-bottom:12px;padding:15px!important;border:1px solid #e2e8f0!important;border-radius:12px;background:#fff}.operations-task-assignment:last-child{margin-bottom:0}.operations-task-assignment>div:first-child>span{color:#172033!important;font-size:11px!important}.operations-task-assignment>div:nth-child(2){grid-template-columns:repeat(4,minmax(0,1fr))!important}.operations-board-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:13px;padding:12px;border:1px solid #e2e8f0;border-radius:13px;background:#fff}.operations-board-action{min-height:38px;padding:0 13px;border:0;border-radius:9px;color:#fff;font:inherit;font-size:9px;font-weight:850;cursor:pointer}.operations-board-action.danger{color:#991b1b;background:#fee2e2}.operations-board-action.save{background:#059669}.operations-board-action.preview{background:#2563eb}.operations-board-action.export{background:#172033}.operations-board-action.pdf{background:#dc2626}
@media(max-width:900px){.operations-runway-staff{grid-template-columns:repeat(2,minmax(0,1fr))}.operations-task-assignment>div:nth-child(2){grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:600px){.operations-runway-staff{grid-template-columns:1fr}.operations-task-assignment>div:nth-child(2){grid-template-columns:repeat(2,minmax(0,1fr))!important}.operations-board-actions{display:grid;grid-template-columns:1fr 1fr}.operations-board-action{width:100%}}
/* Phase 30: user management workspace */
.users-workspace{max-width:1180px;margin:0 auto}.users-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding:28px;border-radius:22px;color:#fff;background:radial-gradient(circle at 85% 8%,rgba(45,212,191,.22),transparent 30%),linear-gradient(135deg,#172033,#134e4a 115%);box-shadow:0 18px 42px rgba(15,23,42,.14)}.users-hero>div:first-child>span,.users-create-form header span,.users-section>header span,.users-section>summary span{color:#5eead4;font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.users-hero h2{margin:6px 0 0;font-size:clamp(27px,4vw,39px)}.users-hero p{max-width:690px;margin:8px 0 0;color:#ccfbf1;line-height:1.55}.users-hero-actions{display:flex;align-items:center;gap:9px}.users-hero-actions button{min-height:40px;padding:0 15px;border:1px solid #5eead4;border-radius:10px;color:#134e4a;background:#5eead4;font:inherit;font-size:10px;font-weight:900;cursor:pointer}.users-view-badge{padding:7px 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:#ccfbf1;background:rgba(255,255,255,.08);font-size:9px;font-weight:800}.users-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.users-summary article{padding:18px;border:1px solid #e2e8f0;border-radius:15px;background:#fff}.users-summary span,.users-summary strong,.users-summary small{display:block}.users-summary span{color:#64748b;font-size:8px;font-weight:850;text-transform:uppercase}.users-summary strong{margin:6px 0;color:#172033;font-size:28px}.users-summary small{color:#94a3b8;font-size:9px}.users-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:15px;padding:15px 18px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}.users-toolbar strong,.users-toolbar span{display:block}.users-toolbar strong{color:#172033}.users-toolbar span{margin-top:3px;color:#94a3b8;font-size:9px}.users-toolbar input{width:min(330px,100%);min-height:39px;box-sizing:border-box;padding:0 12px;border:1px solid #cbd5e1;border-radius:9px;color:#172033;background:#f8fafc;font:inherit;font-size:11px}.users-create-form{overflow:hidden;margin-bottom:16px;border:1px solid #99f6e4;border-radius:18px;background:#fff;box-shadow:0 13px 32px rgba(15,118,110,.08)}.users-create-form>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 21px;color:#fff;background:#134e4a}.users-create-form h3{margin:4px 0 0}.users-create-form header small{color:#99f6e4}.users-create-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;padding:20px}.users-create-grid label{display:flex;flex-direction:column;gap:6px;color:#475569;font-size:9px;font-weight:850}.users-create-grid input,.users-create-grid select,.users-table select{width:100%;min-height:40px;box-sizing:border-box;padding:0 10px;border:1px solid #cbd5e1;border-radius:8px;color:#172033;background:#f8fafc;font:inherit;font-size:10px}.users-create-grid input:focus,.users-create-grid select:focus,.users-toolbar input:focus,.users-table select:focus{border-color:#0d9488;outline:0;box-shadow:0 0 0 3px rgba(13,148,136,.1);background:#fff}.users-create-form>footer{display:flex;justify-content:flex-end;gap:8px;padding:0 20px 20px}.users-create-form>footer button{min-height:38px;padding:0 14px;border:1px solid #cbd5e1;border-radius:8px;color:#475569;background:#fff;font:inherit;font-size:9px;font-weight:850;cursor:pointer}.users-create-form>footer button.primary{border-color:#0f766e;color:#fff;background:#0f766e}.users-section{overflow:hidden;margin-bottom:15px;border:1px solid #e2e8f0;border-radius:17px;background:#fff}.users-section>summary,.users-section>header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 19px;background:#f8fafc;list-style:none}.users-section>summary{cursor:pointer}.users-section>summary::-webkit-details-marker{display:none}.users-section>summary strong,.users-section>header strong{display:block;margin-top:3px;color:#172033}.users-section>summary em,.users-section>header em{display:grid;min-width:27px;height:27px;place-items:center;border-radius:9px;color:#0f766e;background:#ccfbf1;font-size:10px;font-style:normal;font-weight:900}.users-table-wrap{overflow-x:auto}.users-table{width:100%;border-collapse:collapse}.users-table th{padding:10px 15px;color:#64748b;background:#fff;font-size:8px;font-weight:900;letter-spacing:.08em;text-align:left;text-transform:uppercase}.users-table td{padding:12px 15px;border-top:1px solid #eef2f7;color:#475569;font-size:10px}.users-table tr:hover td{background:#fbfefd}.users-identity{display:flex;align-items:center;gap:10px;min-width:220px}.users-identity i{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border-radius:10px;color:#0f766e;background:#ccfbf1;font-style:normal;font-weight:950;text-transform:uppercase}.users-identity strong,.users-identity span,.users-identity small{display:block}.users-identity strong{color:#172033;font-size:11px}.users-identity span{margin-top:2px;color:#64748b;font-size:8px}.users-identity small{width:max-content;margin-top:3px;padding:2px 5px;border-radius:999px;color:#1d4ed8;background:#dbeafe;font-size:7px;font-weight:850}.users-role{display:inline-flex;padding:5px 8px;border-radius:999px;color:#334155;background:#e2e8f0;font-size:8px;font-weight:900;text-transform:uppercase}.users-role--manager,.users-role--admin,.users-role--owner{color:#5b21b6;background:#ede9fe}.users-role--developer{color:#991b1b;background:#fee2e2}.users-role--smt{color:#92400e;background:#fef3c7}.users-table select:disabled{cursor:not-allowed;opacity:.72;background:#f1f5f9}.users-row-actions{display:flex;flex-wrap:wrap;gap:5px}.users-row-actions button{padding:6px 8px;border:0;border-radius:7px;color:#0369a1;background:#e0f2fe;font:inherit;font-size:8px;font-weight:850;cursor:pointer}.users-row-actions button.danger{color:#b91c1c;background:#fee2e2}.users-row-actions button:disabled{cursor:not-allowed;opacity:.45}.users-protected{padding:5px 8px;border-radius:999px;color:#991b1b;background:#fee2e2;font-size:8px;font-weight:900}.users-empty{padding:42px;color:#94a3b8;text-align:center}
@media(max-width:760px){.users-hero{align-items:stretch;flex-direction:column;padding:23px}.users-summary{grid-template-columns:1fr 1fr}.users-summary article:last-child{grid-column:1/-1}.users-toolbar{align-items:stretch;flex-direction:column}.users-toolbar input{width:100%}.users-create-grid{grid-template-columns:1fr}.users-create-form>header{align-items:flex-start;flex-direction:column}.users-table thead{display:none}.users-table,.users-table tbody,.users-table tr,.users-table td{display:block;width:100%;box-sizing:border-box}.users-table tr{padding:13px 15px;border-top:1px solid #e2e8f0}.users-table td{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:9px;padding:7px 0;border:0}.users-table td::before{color:#94a3b8;font-size:7px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;content:attr(data-label)}.users-identity{min-width:0}.users-row-actions{justify-content:flex-start}}
@media(max-width:440px){.users-summary{grid-template-columns:1fr}.users-summary article:last-child{grid-column:auto}.users-table td{grid-template-columns:75px minmax(0,1fr)}.users-create-form>footer{display:grid;grid-template-columns:1fr 1fr}.users-create-form>footer button{width:100%}}
/* Phase 31: compact unified mobile flight and weather cards */
@media(max-width:600px){.overview-flight-board-list{padding:10px;background:#f4f8fa}.overview-flight-board-list>.overview-flight-board-entry,.overview-flight-board-list>.overview-flight-board-entry.is-next{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;min-height:0;margin-bottom:10px;padding:0;border:1px solid #dbe7ec;border-left:4px solid #0891b2;border-radius:12px;background:#fff;box-shadow:0 5px 14px rgba(15,23,42,.05);overflow:hidden}.overview-flight-board-list>.overview-flight-board-entry:last-child{margin-bottom:0}.overview-flight-service{grid-column:1;grid-row:1;padding:12px}.overview-flight-service i{margin-bottom:4px}.overview-flight-board-list .overview-board-status{grid-column:2;grid-row:1;align-self:center;justify-self:end;margin-right:12px}.overview-flight-route{grid-column:1/-1;grid-row:2;padding:9px 12px;border-top:1px solid #edf2f5;background:#f8fafc;text-align:left}.overview-flight-route strong,.overview-flight-route small{display:inline}.overview-flight-route small{margin-left:8px}.overview-flight-board-list .overview-flight-times{grid-column:1;grid-row:3;gap:18px;padding:10px 12px;border-top:1px solid #edf2f5}.overview-flight-board-list .overview-flight-live-times{display:flex!important;grid-column:2;grid-row:3;gap:18px;padding:10px 12px;border-top:1px solid #edf2f5;border-left:1px solid #edf2f5}.overview-flight-details-compact{grid-column:1/-1;grid-row:4;gap:0;padding:0;border:0;border-top:1px solid #dbe7ec;border-radius:0;background:#f8fafc}.overview-flight-details-compact small{padding:10px 8px;text-align:center}.overview-flight-details-compact small+small{border-left:1px solid #dbe7ec}.overview-flight-details-compact strong{font-size:9px}.overview-weather-panel{padding-bottom:16px}.overview-weather-content{gap:0;overflow:hidden;border:1px solid #d8e8e5;border-radius:13px;background:#fff}.overview-weather-now{grid-template-columns:1fr 1fr;gap:0;border:0;border-radius:0;background:linear-gradient(135deg,#f0fdfa,#fff)}.overview-weather-now>div{padding:14px;border:0;border-radius:0;background:transparent}.overview-weather-now>div+div{border-left:1px solid #d8e8e5}.overview-weather-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:0;border-top:1px solid #d8e8e5;border-radius:0;background:#fff}.overview-weather-metrics>div{padding:10px 7px;border-right:1px solid #edf2f5;border-bottom:1px solid #edf2f5;background:#fff}.overview-weather-metrics>div:nth-child(3n){border-right:0}.overview-weather-content>p{padding:9px 11px;background:#f8fafc}.overview-weather-now strong{font-size:25px}.overview-weather-wind strong{font-size:13px}}
@media(max-width:360px){.overview-flight-board-list .overview-flight-times,.overview-flight-board-list .overview-flight-live-times{gap:10px;padding:9px}.overview-flight-details-compact small{padding:9px 4px}.overview-weather-now>div{padding:11px}.overview-weather-now strong{font-size:22px}.overview-weather-wind strong{font-size:11px}.overview-weather-metrics>div{padding:9px 5px}}
/* Phase 32: SMT-managed operational staff pools */
.operations-assignment-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0!important;padding:17px 20px!important;border-bottom:1px solid #e2e8f0;background:linear-gradient(90deg,#f8fafc,#fff)}.operations-assignment-head h3,.operations-assignment-head p{margin:0}.operations-assignment-head h3{color:#172033;font-size:14px}.operations-assignment-head p{margin-top:4px;color:#64748b;font-size:9px}.operations-assignment-head>button{min-height:36px;padding:0 12px;border:0;border-radius:8px;color:#fff;background:#0f766e;font:inherit;font-size:9px;font-weight:850;cursor:pointer}.operations-staff-manager{margin:14px!important;padding:0!important;border:1px solid #99f6e4;border-radius:13px;background:#f0fdfa;overflow:hidden}.operations-staff-manager>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #ccfbf1}.operations-staff-manager>header strong,.operations-staff-manager>header span{display:block}.operations-staff-manager>header strong{color:#134e4a;font-size:11px}.operations-staff-manager>header span{color:#0f766e;font-size:8px;font-weight:750}.operations-staff-manager>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:12px}.operations-staff-manager>div>button{display:flex;align-items:center;justify-content:space-between;gap:9px;min-width:0;padding:9px;border:1px solid #dbe4ea;border-radius:9px;color:#475569;background:#fff;font:inherit;text-align:left;cursor:pointer}.operations-staff-manager>div>button.selected{border-color:#5eead4;background:#ccfbf1}.operations-staff-manager button span,.operations-staff-manager button strong,.operations-staff-manager button small{display:block;min-width:0}.operations-staff-manager button strong{overflow:hidden;color:#172033;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.operations-staff-manager button small{margin-top:3px;color:#64748b;font-size:7px}.operations-staff-manager button em{flex:0 0 auto;padding:4px 6px;border-radius:999px;color:#0369a1;background:#e0f2fe;font-size:7px;font-style:normal;font-weight:900}.operations-staff-manager button.selected em{color:#b91c1c;background:#fee2e2}
@media(max-width:800px){.operations-staff-manager>div{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.operations-assignment-head,.operations-staff-manager>header{align-items:stretch;flex-direction:column}.operations-assignment-head>button{width:100%}.operations-staff-manager>div{grid-template-columns:1fr}.operations-staff-manager>header span{line-height:1.4}}
/* Phase 33: online holiday import and editing */
.holidays-import-note{display:flex;align-items:center;gap:12px;margin-top:-6px;padding:12px 15px;border:1px solid #ddd6fe;border-radius:12px;color:#5b21b6;background:#f5f3ff}.holidays-import-note strong{flex:0 0 auto;font-size:9px;font-weight:900;text-transform:uppercase}.holidays-import-note span{color:#6b7280;font-size:9px;line-height:1.5}.holiday-card-actions{display:flex;flex-direction:column;gap:5px}.holiday-card-actions button{min-width:52px;padding:6px 8px;border:0;border-radius:7px;font:inherit;font-size:8px;font-weight:850;cursor:pointer}.holiday-card-actions .edit-btn{color:#0369a1;background:#e0f2fe}.holiday-card-actions .delete-btn{color:#b91c1c;background:#fee2e2}
@media(max-width:560px){.holidays-import-note{align-items:flex-start;flex-direction:column}.holiday-card-actions{flex-direction:row}.holiday-card-actions button{min-width:0}}
/* Phase 34: roster workspace clarity without export changes */
.roster-workspace-legend{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:13px 16px;border:1px solid #e2e8f0;border-radius:13px;background:#fff}.roster-workspace-legend>div strong,.roster-workspace-legend>div span{display:block}.roster-workspace-legend>div strong{color:#172033;font-size:10px}.roster-workspace-legend>div span{margin-top:3px;color:#94a3b8;font-size:8px}.roster-workspace-legend ul{display:flex;flex-wrap:wrap;gap:7px 13px;margin:0;padding:0;list-style:none}.roster-workspace-legend li{display:flex;align-items:center;gap:5px;color:#64748b;font-size:8px;font-weight:750}.roster-workspace-legend i{width:11px;height:11px;border:1px solid rgba(15,23,42,.08);border-radius:3px}.roster-workspace-legend i.morning{background:#d1fae5}.roster-workspace-legend i.day{background:#dbeafe}.roster-workspace-legend i.afternoon{background:#ffedd5}.roster-workspace-legend i.night{background:#f3e8ff}.roster-workspace-legend i.leave{background:#fecaca}.roster-workspace-legend i.holiday{background:#fef3c7}.roster-workspace-legend>p{max-width:220px;margin:0;color:#64748b;font-size:8px;line-height:1.45;text-align:right}
@media(max-width:860px){.roster-workspace-legend{grid-template-columns:1fr}.roster-workspace-legend>p{text-align:left}.roster-workspace-tabs{flex-wrap:nowrap;overflow-x:auto}.roster-workspace-tabs button{flex:0 0 auto}}
@media(max-width:480px){.roster-workspace-hero__actions{display:grid;grid-template-columns:1fr 1fr}.roster-workspace-hero__actions button{width:100%}.roster-workspace-period{display:grid;grid-template-columns:1fr 1fr}.roster-workspace-period>div{grid-column:1/-1;order:-1}.roster-workspace-period>button:last-child:nth-child(4){grid-column:1/-1}.roster-workspace-summary>div small{font-size:8px}.roster-workspace-legend ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}}
/* Phase 37: operational inspection forms */
.runway-lights-form{display:flex;flex-direction:column;gap:0;overflow:hidden;margin:0;padding:0;border:1px solid #dbe3ed;border-radius:20px;background:#fff;box-shadow:0 18px 42px rgba(15,23,42,.08)}
.runway-lights-form__header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:24px 26px;color:#fff;background:linear-gradient(135deg,#172033,#283b55)}
.runway-lights-form__header span,.runway-lights-form__section-title>span,.operations-fod-header>div>span,.operations-fod-form header>span,.operations-fod-history header span{font-size:10px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.runway-lights-form__header span{color:#fde047}
.runway-lights-form__header h3,.runway-lights-form__section-title h4,.operations-fod-header h3,.operations-fod-form h4,.operations-fod-history h4{margin:4px 0 0}.runway-lights-form__header p{max-width:440px;margin:0;color:#cbd5e1;font-size:12px;line-height:1.55}
.runway-lights-form__section{padding:22px 26px;border-bottom:1px solid #e7edf4}.runway-lights-form__section-title{display:flex;align-items:center;gap:12px;margin-bottom:17px}.runway-lights-form__section-title>span{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#854d0e;background:#fef3c7}.runway-lights-form__section-title h4{color:#172033;font-size:15px}.runway-lights-form__section-title p{margin:2px 0 0;color:#7b8797;font-size:11px}
.runway-lights-form__grid,.runway-lights-weather-grid,.runway-lights-equipment-grid,.runway-lights-status-grid{display:grid;gap:14px}.runway-lights-form__grid--three,.runway-lights-weather-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.runway-lights-form label,.runway-lights-composite{display:flex;min-width:0;flex-direction:column;gap:7px}.runway-lights-form label>span,.runway-lights-composite>strong{color:#586579;font-size:10px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}
.runway-lights-form input,.runway-lights-form select,.runway-lights-form textarea{width:100%;min-height:42px;padding:9px 11px;border:1px solid #cbd5e1;border-radius:9px;color:#172033;background:#fff;font:inherit;font-size:13px;outline:none;box-sizing:border-box}.runway-lights-form textarea{resize:vertical}.runway-lights-form input:focus,.runway-lights-form select:focus,.runway-lights-form textarea:focus{border-color:#ca8a04;box-shadow:0 0 0 3px rgba(202,138,4,.11)}
.runway-lights-composite{padding:14px;border:1px solid #e2e8f0;border-radius:13px;background:#f8fafc}.runway-lights-composite>div{display:grid;grid-template-columns:minmax(90px,1fr) 72px auto;align-items:center;overflow:hidden;border:1px solid #cbd5e1;border-radius:9px;background:#fff}.runway-lights-composite>div select,.runway-lights-composite>div input{border:0;border-radius:0;box-shadow:none}.runway-lights-composite>div input{border-left:1px solid #e2e8f0;text-align:center}.runway-lights-composite em{padding-right:9px;color:#64748b;font-size:10px;font-style:normal;font-weight:800}
.runway-lights-equipment-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.runway-lights-equipment-grid fieldset{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-width:0;margin:0;padding:14px;border:1px solid #dbe3ed;border-radius:13px;background:#fbfdff}.runway-lights-equipment-grid legend{padding:0 6px;color:#263449;font-size:11px;font-weight:850}.runway-lights-status-grid{grid-template-columns:1fr 1fr 2fr}.runway-lights-status-grid>label:not(.runway-lights-form__remarks){padding:13px;border:1px solid;border-radius:12px}.runway-lights-status-grid .is-serviceable{border-color:#bbf7d0;background:#f0fdf4}.runway-lights-status-grid .is-faulty{border-color:#fecaca;background:#fef2f2}.runway-lights-form__remarks{position:relative}.runway-lights-form__remarks small{position:absolute;right:8px;bottom:7px;color:#94a3b8;font-size:9px}
.runway-lights-form__footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 26px;background:#f8fafc}.runway-lights-form__footer span{color:#64748b;font-size:11px}.runway-lights-form__footer button{min-height:44px;padding:0 20px;border:0;border-radius:10px;color:#fff;background:#15803d;font-weight:850;cursor:pointer}
.operations-fod-workspace{display:flex;flex-direction:column;gap:16px}.operations-fod-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px;border-radius:18px;color:#fff;background:linear-gradient(135deg,#172033,#3f2d22);box-shadow:0 15px 34px rgba(15,23,42,.12)}.operations-fod-header>div>span{color:#fdba74}.operations-fod-header h3{font-size:23px}.operations-fod-header p{margin:5px 0 0;color:#fed7aa;font-size:12px}.operations-fod-header__metrics{display:flex;gap:9px}.operations-fod-header__metrics div{min-width:92px;padding:12px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.08);text-align:center}.operations-fod-header__metrics strong,.operations-fod-header__metrics span{display:block}.operations-fod-header__metrics strong{font-size:20px}.operations-fod-header__metrics span{margin-top:2px;color:#fed7aa;font-size:9px;text-transform:uppercase}
.operations-fod-layout{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.8fr);gap:16px}.operations-fod-layout.is-readonly{grid-template-columns:1fr}.operations-fod-form,.operations-fod-history{overflow:hidden;border:1px solid #e2e8f0;border-radius:17px;background:#fff;box-shadow:0 10px 25px rgba(15,23,42,.05)}.operations-fod-form{display:flex;flex-direction:column;gap:15px;padding:20px}.operations-fod-form header{padding-bottom:13px;border-bottom:1px solid #edf1f5}.operations-fod-form header>span,.operations-fod-history header span{color:#c2410c}.operations-fod-form header p{margin:4px 0 0;color:#7b8797;font-size:11px}.operations-fod-form label{display:flex;position:relative;flex-direction:column;gap:7px;color:#586579;font-size:10px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.operations-fod-form input,.operations-fod-form textarea{width:100%;padding:10px 11px;border:1px solid #cbd5e1;border-radius:9px;color:#172033;font:inherit;font-size:13px;box-sizing:border-box;outline:none}.operations-fod-form textarea{resize:vertical}.operations-fod-form input:focus,.operations-fod-form textarea:focus{border-color:#ea580c;box-shadow:0 0 0 3px rgba(234,88,12,.1)}.operations-fod-weight{display:grid;grid-template-columns:1fr auto;align-items:center;overflow:hidden;border:1px solid #cbd5e1;border-radius:9px}.operations-fod-weight input{border:0;border-radius:0;box-shadow:none}.operations-fod-weight strong{padding:0 11px;color:#9a3412;font-size:11px}.operations-fod-form label small{position:absolute;right:7px;bottom:6px;color:#94a3b8;font-size:9px;letter-spacing:0}.operations-fod-form button{min-height:43px;border:0;border-radius:9px;color:#fff;background:#c2410c;font-weight:850;cursor:pointer}.operations-fod-form button:disabled{cursor:wait;opacity:.6}
.operations-fod-history header{display:flex;align-items:center;justify-content:space-between;padding:17px 19px;border-bottom:1px solid #e2e8f0}.operations-fod-history header>strong{display:grid;width:35px;height:35px;place-items:center;border-radius:50%;color:#9a3412;background:#ffedd5}.operations-fod-table-wrap{max-height:520px;overflow:auto}.operations-fod-history table{width:100%;border-collapse:collapse}.operations-fod-history th,.operations-fod-history td{padding:12px 14px;border-bottom:1px solid #edf1f5;text-align:left}.operations-fod-history th{position:sticky;top:0;z-index:1;color:#64748b;background:#f8fafc;font-size:9px;letter-spacing:.07em;text-transform:uppercase}.operations-fod-history td{color:#475569;font-size:12px}.operations-fod-weight-badge{display:inline-flex;padding:4px 8px;border-radius:999px;color:#9a3412;background:#ffedd5;font-weight:850}.operations-fod-delete{border:0;color:#b91c1c;background:transparent;font-size:11px;font-weight:800;cursor:pointer}.operations-fod-empty{display:flex;align-items:center;flex-direction:column;gap:4px;padding:34px;color:#64748b}.operations-fod-empty span{font-size:11px}
@media(max-width:900px){.runway-lights-form__grid--three,.runway-lights-weather-grid,.runway-lights-equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.runway-lights-status-grid{grid-template-columns:1fr 1fr}.runway-lights-form__remarks{grid-column:1/-1}.operations-fod-layout{grid-template-columns:1fr}}
@media(max-width:620px){.runway-lights-form__header,.runway-lights-form__footer,.operations-fod-header{align-items:stretch;flex-direction:column}.runway-lights-form__section,.runway-lights-form__header,.runway-lights-form__footer{padding:18px}.runway-lights-form__grid--three,.runway-lights-weather-grid,.runway-lights-equipment-grid,.runway-lights-status-grid{grid-template-columns:1fr}.runway-lights-form__remarks{grid-column:auto}.runway-lights-form__footer button{width:100%}.operations-fod-header__metrics{display:grid;grid-template-columns:1fr 1fr}.operations-fod-history thead{display:none}.operations-fod-history tr{display:block;padding:10px 14px;border-bottom:1px solid #e2e8f0}.operations-fod-history td{display:grid;grid-template-columns:92px 1fr;padding:5px 0;border:0}.operations-fod-history td::before{color:#94a3b8;content:attr(data-label);font-size:9px;font-weight:800;text-transform:uppercase}}
/* Phase 38: runway lights reporting */
.reports-rwy-lights{min-width:980px;padding:18px}.reports-rwy-lights>header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;padding:18px 20px;border:1px solid #dbe3ed;border-radius:14px;background:linear-gradient(135deg,#f8fafc,#fffbeb)}.reports-rwy-lights header>div:first-child>span{color:#a16207;font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.reports-rwy-lights h2{margin:4px 0;color:#172033;font-size:20px}.reports-rwy-lights header p{margin:0;color:#64748b;font-size:11px}.reports-rwy-summary{display:flex;gap:9px}.reports-rwy-summary>div{min-width:86px;padding:10px;border:1px solid #fde68a;border-radius:10px;background:#fff;text-align:center}.reports-rwy-summary strong,.reports-rwy-summary span{display:block}.reports-rwy-summary strong{color:#172033;font-size:20px}.reports-rwy-summary span{color:#78716c;font-size:8px;font-weight:800;text-transform:uppercase}.reports-rwy-table{overflow-x:auto}.reports-rwy-table th{white-space:nowrap}.reports-rwy-table td{vertical-align:top;font-size:10px}.reports-rwy-table td small,.reports-rwy-table td em{display:block;max-width:220px;white-space:normal}.reports-rwy-table td em{margin-top:4px;color:#7c2d12;font-size:9px;font-style:normal}.reports-rwy-status{display:inline-flex;padding:4px 7px;border-radius:999px;color:#166534;background:#dcfce7;font-size:8px;font-weight:850;white-space:nowrap}.reports-rwy-status.is-faulty{color:#991b1b;background:#fee2e2}
@media print{.reports-rwy-lights{min-width:0;padding:0}.reports-rwy-lights>header{padding:8px 10px;box-shadow:none}.reports-rwy-lights h2{font-size:14px}.reports-rwy-table th,.reports-rwy-table td{padding:3px;font-size:6px}.reports-rwy-status{padding:2px 3px;font-size:5px}}
/* Phase 40: compact mobile widgets and system account */
.settings-account-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:22px 24px;border:1px solid #dbe3ed;border-radius:18px;background:linear-gradient(135deg,#fff,#f8fafc);box-shadow:0 12px 30px rgba(15,23,42,.06)}.settings-account-avatar{display:grid;width:58px;height:58px;place-items:center;border-radius:16px;color:#fff;background:linear-gradient(135deg,#2563eb,#0f766e);font-size:24px;font-weight:900;box-shadow:0 8px 18px rgba(37,99,235,.2)}.settings-account-copy>span{color:#64748b;font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.settings-account-copy h3{margin:4px 0 2px;color:#172033;font-size:20px}.settings-account-copy p{margin:0;color:#64748b;font-size:11px}.settings-account-copy>div{display:flex;gap:7px;margin-top:9px}.settings-account-copy strong,.settings-account-copy em{padding:4px 8px;border-radius:999px;font-size:8px;font-style:normal;font-weight:850;text-transform:uppercase}.settings-account-copy strong{color:#1d4ed8;background:#dbeafe}.settings-account-copy em{color:#0f766e;background:#ccfbf1}.settings-account-actions{display:flex;gap:8px}.settings-account-actions button{width:auto;min-height:40px;padding:0 14px;border-radius:9px;font-size:10px;font-weight:850}
@media(max-width:600px){.settings-account-card{grid-template-columns:auto 1fr;padding:18px}.settings-account-actions{grid-column:1/-1}.settings-account-actions button{flex:1}.overview-flight-board-list{padding:10px}.overview-flight-board-list>.overview-flight-board-entry,.overview-flight-board-list>.overview-flight-board-entry.is-next{border-radius:13px}.overview-flight-route,.overview-flight-board-list .overview-flight-times,.overview-flight-board-list .overview-flight-live-times,.overview-flight-details-compact{background:#fff}.overview-weather-panel{overflow:hidden}.overview-weather-panel .overview-panel-header{margin-bottom:0;padding-bottom:13px}.overview-weather-content{border-radius:12px}}
/* Phase 42: compact live dashboard and reliable print output */
.overview-greeting-board h1 strong{text-transform:uppercase}
@media(max-width:600px){.overview-flight-board-list{background:transparent}.overview-flight-board-list>.overview-flight-board-entry,.overview-flight-board-list>.overview-flight-board-entry.is-next{display:grid;width:100%;box-sizing:border-box;background:#fff}.overview-flight-route,.overview-flight-board-list .overview-flight-times,.overview-flight-board-list .overview-flight-live-times,.overview-flight-details-compact{background:transparent}.overview-flight-details-compact{overflow:hidden}.overview-weather-panel{background:#fff}.overview-weather-content{width:100%;box-sizing:border-box;box-shadow:0 5px 14px rgba(15,23,42,.04)}}
@media print{html,body{height:auto!important;min-height:0!important}.roster-export-area{height:auto!important;min-height:0!important}.roster-week-section:last-child{page-break-after:auto!important;break-after:auto!important}.ramp-sheet{page-break-after:avoid!important;break-after:avoid-page!important}.ramp-sheet:last-child{page-break-after:auto!important;break-after:auto!important}}
/* Phase 43: account identity, access directory and conversation channels */
.settings-account-avatar{width:88px;height:62px;padding:7px;box-sizing:border-box;line-height:1;text-align:center}.settings-account-avatar small,.settings-account-avatar strong{display:block}.settings-account-avatar small{font-size:7px;letter-spacing:.13em;opacity:.8}.settings-account-avatar strong{margin-top:5px;font-size:13px}.settings-account-copy>div b,.settings-user-sn{padding:4px 8px;border-radius:999px;color:#0f4c5c;background:#cffafe;font-size:8px;font-weight:900;font-style:normal;text-transform:uppercase}.settings-account-actions button{display:inline-flex;align-items:center;justify-content:center;min-width:132px;border:1px solid transparent}.settings-account-actions .change-pw-btn{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8)}.settings-account-actions .logout-btn{color:#991b1b;border-color:#fecaca;background:#fff}.settings-account-actions .logout-btn:hover{background:#fef2f2}.settings-rules-workspace,.access-matrix-card{overflow:hidden;border:1px solid #e2e8f0!important;border-left:0!important;border-radius:20px!important;background:linear-gradient(180deg,#fff,#f8fafc)!important;box-shadow:0 14px 35px rgba(15,23,42,.07)}.settings-rules-workspace>h3,.access-matrix-card>h3{margin:-20px -20px 0;padding:22px 24px;color:#fff;background:linear-gradient(135deg,#172033,#1e3a8a)}.settings-rules-panel,.settings-master-users{border-radius:14px!important;box-shadow:0 7px 20px rgba(15,23,42,.04)}.settings-master-users .mini-table th{background:#f8fafc}.settings-user-sn{display:inline-flex;white-space:nowrap}.access-matrix-wrap{border:1px solid #e2e8f0;border-radius:13px;background:#fff}.access-matrix-table{margin:0!important}.access-matrix-table th{position:sticky;top:0;padding:10px 9px!important;color:#475569;background:#eef2ff!important;font-size:7px!important;letter-spacing:.04em;text-transform:uppercase}.access-matrix-table td{padding:9px!important;border-top:1px solid #eef2f7!important}.access-matrix-table tbody tr:nth-child(even) td{background:#fafbff}.access-matrix-table tbody tr:hover td{background:#eff6ff}.users-identity .users-sn-avatar{width:66px;height:32px;flex-basis:66px;border-radius:8px;font-size:8px;letter-spacing:.03em}.conversation-create-button{min-height:34px;padding:0 10px;border:1px solid rgba(255,255,255,.28);border-radius:9px;color:#fff;background:rgba(255,255,255,.12);font:inherit;font-size:9px;font-weight:900;cursor:pointer}.conversations-sidebar>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.conversations-sidebar>header>div{min-width:0}.conversations-sidebar>header>div>span{color:#93c5fd;font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.conversation-create-modal{max-width:500px}.conversation-create-modal>span{color:#2563eb;font-size:8px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.conversation-create-modal>p{color:#64748b;font-size:11px;line-height:1.5}.conversation-create-modal label{display:flex;flex-direction:column;gap:6px;margin-top:13px;color:#475569;font-size:9px;font-weight:850}.conversation-create-modal input,.conversation-create-modal textarea,.conversation-create-modal select{width:100%;box-sizing:border-box;padding:10px 11px;border:1px solid #cbd5e1;border-radius:9px;color:#172033;background:#f8fafc;font:inherit;font-size:11px}.conversation-create-modal textarea{resize:vertical}.conversation-create-modal .modal-actions{margin-top:19px}
@media(max-width:600px){.settings-account-card{grid-template-columns:1fr}.settings-account-avatar{width:100%;height:auto;min-height:58px}.settings-account-actions{display:grid;grid-template-columns:1fr 1fr}.settings-account-actions button{min-width:0}.settings-rules-workspace,.access-matrix-card{padding:16px!important}.settings-rules-workspace>h3,.access-matrix-card>h3{margin:-16px -16px 0}.users-identity .users-sn-avatar{width:58px;flex-basis:58px}.conversation-create-button{flex:0 0 auto}}
/* Phase 44: mobile airport overview reference layout */
.overview-profile-mark{display:none}
@media(max-width:600px){
.overview-dashboard{gap:14px}.overview-greeting-board{display:grid;grid-template-columns:1fr;gap:0;padding:18px;border:1px solid rgba(103,232,249,.3);border-radius:22px;background:radial-gradient(circle at 75% 70%,rgba(6,182,212,.34),transparent 34%),linear-gradient(135deg,#062f55,#064e75 60%,#083344);box-shadow:0 13px 28px rgba(8,47,73,.2)}.overview-greeting-copy{position:relative;display:grid;grid-template-columns:54px minmax(0,1fr);column-gap:12px;padding-bottom:14px}.overview-profile-mark{display:grid;grid-column:1;grid-row:1/5;width:50px;height:50px;margin-top:19px;place-items:center;border:3px solid #fff;border-radius:50%;color:#fff;background:linear-gradient(145deg,#22d3ee,#0f766e);font-size:15px;font-weight:950;box-shadow:0 0 0 4px rgba(255,255,255,.12)}.overview-greeting-board .overview-kicker{grid-column:2;font-size:7px;color:#a5f3fc}.overview-greeting-board h1{grid-column:2;margin:5px 0 0;font-size:21px;line-height:1.08;letter-spacing:-.025em}.overview-greeting-board h1 span{font-size:16px;font-weight:600}.overview-greeting-board h1 strong{margin-top:3px;color:#67e8f9;font-size:21px;letter-spacing:.01em}.overview-identity-row{grid-column:2;display:grid;gap:4px;margin-top:9px}.overview-identity-row>span{justify-content:flex-start;width:max-content;max-width:100%;min-height:0;padding:0;border:0;color:#e0f2fe;background:transparent;font-size:9px}.overview-greeting-board .overview-clock{display:grid;grid-template-columns:1fr auto;align-items:end;gap:4px 12px;width:auto;padding:12px 0 0;border-top:1px solid rgba(255,255,255,.25)}.overview-station-status{grid-column:1;grid-row:1;justify-content:flex-start!important;font-size:9px!important}.overview-greeting-board .overview-clock strong{grid-column:2;grid-row:1/3;margin:0;font-size:27px;line-height:1;font-weight:500}.overview-greeting-board .overview-clock small{grid-column:1;grid-row:2;color:#bae6fd;font-size:9px}.overview-flight-board,.overview-weather-panel{border-color:#bae6fd;border-radius:20px;box-shadow:0 10px 25px rgba(14,116,144,.12)}.overview-flight-board>.overview-panel-header,.overview-weather-panel>.overview-panel-header{min-height:58px;box-sizing:border-box;padding:13px 15px;background:linear-gradient(90deg,#ecfeff,#f8fafc)}.overview-flight-board>.overview-panel-header h2,.overview-weather-panel>.overview-panel-header h2{font-size:16px}.overview-flight-board>.overview-panel-header span,.overview-weather-panel>.overview-panel-header span{font-size:7px}.overview-flight-board>.overview-panel-header:before,.overview-weather-panel>.overview-panel-header:before{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(145deg,#06b6d4,#0f766e);font-size:15px;font-weight:900}.overview-flight-board>.overview-panel-header:before{content:'✈'}.overview-weather-panel>.overview-panel-header:before{content:'☁'}.overview-flight-board>.overview-panel-header>div,.overview-weather-panel>.overview-panel-header>div{margin-right:auto}.overview-flight-board .overview-text-button{border-color:#bfdbfe;border-radius:999px;background:#fff;font-size:8px}.overview-flight-board-list{padding:10px;background:#f0f9ff}.overview-flight-board-list>.overview-flight-board-entry,.overview-flight-board-list>.overview-flight-board-entry.is-next{margin:0 0 10px;border-color:#bae6fd;border-left:5px solid #0891b2;border-radius:16px;box-shadow:0 7px 17px rgba(8,145,178,.1)}.overview-flight-service{padding:14px}.overview-flight-service strong{font-size:20px}.overview-flight-service small{margin-top:3px}.overview-flight-board-list .overview-board-status{padding:7px 10px;border-radius:999px}.overview-flight-route{padding:11px 14px;background:linear-gradient(90deg,#f0fdfa,#fff)!important}.overview-flight-route strong{font-size:13px}.overview-flight-board-list .overview-flight-times,.overview-flight-board-list .overview-flight-live-times{justify-content:space-around;padding:12px 8px;background:#fff!important}.overview-flight-times small{font-size:7px}.overview-flight-times strong{margin-top:4px;font-size:13px}.overview-flight-details-compact{background:#f8fafc!important}.overview-flight-details-compact small{padding:11px 5px}.overview-flight-details-compact strong{font-size:10px}.overview-weather-panel{padding:0}.overview-weather-content{margin:0 10px 10px;border-color:#bae6fd;border-radius:15px;box-shadow:none}.overview-weather-now{min-height:105px;background:linear-gradient(135deg,#fff,#ecfeff)}.overview-weather-now>div{display:flex;flex-direction:column;justify-content:center;padding:16px}.overview-weather-now>div:first-child:before{content:'☀️';position:absolute;margin-left:-2px;transform:translateY(-29px);font-size:21px}.overview-weather-now>div:first-child{position:relative;padding-left:47px}.overview-weather-now span{font-size:7px}.overview-weather-now strong{font-size:31px}.overview-weather-wind strong{font-size:14px}.overview-weather-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.overview-weather-metrics>div,.overview-weather-metrics>div:nth-child(3n){padding:10px 3px;border-right:1px solid #e2e8f0;border-bottom:0;text-align:center}.overview-weather-metrics>div:last-child{border-right:0}.overview-weather-metrics span{font-size:6px}.overview-weather-metrics strong{font-size:8px}.overview-weather-content>p{padding:10px;text-align:center;font-size:7px}
}
@media(max-width:380px){.overview-greeting-board .overview-clock{grid-template-columns:1fr}.overview-greeting-board .overview-clock strong{grid-column:1;grid-row:2;font-size:25px}.overview-greeting-board .overview-clock small{grid-row:3}.overview-weather-now>div:first-child{padding-left:38px}.overview-weather-now>div:first-child:before{font-size:17px}.overview-weather-now strong{font-size:26px}.overview-weather-wind strong{font-size:11px}.overview-weather-metrics span{font-size:5px}.overview-weather-metrics strong{font-size:7px}}
/* Phase 45: wide desktop airport overview */
@media(min-width:601px){
.overview-dashboard{max-width:1500px;margin:0 auto;gap:20px}.overview-greeting-board{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:245px;padding:38px 46px;border:1px solid rgba(103,232,249,.28);background:radial-gradient(circle at 70% 65%,rgba(6,182,212,.32),transparent 28%),linear-gradient(125deg,#062f55,#075985 58%,#083344);box-shadow:0 22px 50px rgba(8,47,73,.22)}.overview-greeting-copy{position:relative;display:grid;grid-template-columns:86px minmax(0,1fr);column-gap:22px;align-content:center}.overview-profile-mark{display:grid;grid-column:1;grid-row:1/5;width:76px;height:76px;margin-top:24px;place-items:center;border:4px solid #fff;border-radius:50%;color:#fff;background:linear-gradient(145deg,#22d3ee,#0f766e);font-size:22px;font-weight:950;box-shadow:0 0 0 6px rgba(255,255,255,.12)}.overview-greeting-board .overview-kicker,.overview-greeting-board h1,.overview-greeting-board p,.overview-greeting-board .overview-identity-row{grid-column:2}.overview-greeting-board h1{margin-top:7px;font-size:clamp(38px,4vw,58px)}.overview-greeting-board h1 span{font-size:.62em}.overview-greeting-board h1 strong{margin-top:3px;color:#67e8f9;letter-spacing:.015em}.overview-identity-row{margin-top:18px}.overview-identity-row>span{border-color:rgba(165,243,252,.24);background:rgba(2,6,23,.32)}.overview-greeting-board .overview-clock{align-self:center;min-width:360px;padding:26px 0 26px 42px;border-left:1px solid rgba(255,255,255,.28)}.overview-greeting-board .overview-clock strong{font-size:clamp(52px,5vw,76px)}.overview-flight-board,.overview-weather-panel{border:1px solid #bae6fd;border-radius:24px;box-shadow:0 16px 38px rgba(14,116,144,.1)}.overview-flight-board>.overview-panel-header,.overview-weather-panel>.overview-panel-header{min-height:78px;box-sizing:border-box;padding:18px 24px;background:linear-gradient(90deg,#ecfeff,#fff)}.overview-flight-board>.overview-panel-header:before,.overview-weather-panel>.overview-panel-header:before{display:grid;width:44px;height:44px;flex:0 0 44px;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(145deg,#06b6d4,#0f766e);font-size:20px;font-weight:900;box-shadow:0 8px 18px rgba(8,145,178,.2)}.overview-flight-board>.overview-panel-header:before{content:'✈'}.overview-weather-panel>.overview-panel-header:before{content:'☁'}.overview-flight-board>.overview-panel-header>div,.overview-weather-panel>.overview-panel-header>div{margin-right:auto}.overview-flight-board>.overview-panel-header h2,.overview-weather-panel>.overview-panel-header h2{font-size:22px}.overview-flight-board .overview-text-button{padding:9px 15px;border:1px solid #bae6fd;border-radius:999px;background:#fff}.overview-flight-board-list{padding:14px;background:#f0f9ff}.overview-flight-board-list>.overview-flight-board-entry,.overview-flight-board-list>.overview-flight-board-entry.is-next{margin-bottom:11px;border:1px solid #d7edf5;border-left:5px solid #0891b2;border-radius:16px;box-shadow:0 7px 17px rgba(8,145,178,.07);overflow:hidden}.overview-flight-board-list>.overview-flight-board-entry:last-child{margin-bottom:0}.overview-flight-service strong{font-size:18px}.overview-flight-route strong{font-size:14px}.overview-flight-times strong{font-size:13px}.overview-flight-details-compact strong{font-size:11px}.overview-live-grid{grid-template-columns:1fr}.overview-weather-panel{padding:0;overflow:hidden}.overview-weather-content{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(520px,1.2fr);gap:0;margin:0 18px 18px;border:1px solid #bae6fd;border-radius:17px;background:#fff;overflow:hidden}.overview-weather-now{grid-template-columns:1fr 1fr;gap:0}.overview-weather-now>div{display:flex;min-height:130px;box-sizing:border-box;flex-direction:column;justify-content:center;border:0;border-radius:0;background:linear-gradient(135deg,#fff,#ecfeff)}.overview-weather-now>div+div{border-left:1px solid #dbeafe}.overview-weather-now strong{font-size:38px}.overview-weather-wind strong{font-size:18px}.overview-weather-metrics{grid-template-columns:repeat(5,minmax(0,1fr));border:0;border-left:1px solid #dbeafe;border-radius:0;background:#fff}.overview-weather-metrics>div{display:flex;min-height:130px;box-sizing:border-box;flex-direction:column;justify-content:center;text-align:center}.overview-weather-metrics span{font-size:8px}.overview-weather-metrics strong{font-size:12px}.overview-weather-content>p{grid-column:1/-1;padding:11px 16px;border-top:1px solid #dbeafe;background:#f8fafc;text-align:center}.overview-radar-panel{width:100%}
}
@media(min-width:601px) and (max-width:950px){.overview-greeting-board{grid-template-columns:1fr;padding:30px}.overview-greeting-board .overview-clock{display:grid;grid-template-columns:1fr auto;min-width:0;margin-top:22px;padding:19px 0 0;border-top:1px solid rgba(255,255,255,.25);border-left:0}.overview-greeting-board .overview-clock strong{font-size:48px}.overview-weather-content{grid-template-columns:1fr}.overview-weather-metrics{border-top:1px solid #dbeafe;border-left:0}.overview-weather-metrics>div{min-height:90px}}
/* Phase 46: explicit report print roots */
@media print{
body.printing-report #root *{visibility:hidden!important}
body.printing-report .reports-print-root,body.printing-report .reports-print-root *{visibility:visible!important}
body.printing-report .reports-print-root{position:absolute!important;inset:0 auto auto 0!important;width:100%!important;max-width:none!important;box-sizing:border-box!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;overflow:visible!important;zoom:1!important;box-shadow:none!important;background:#fff!important}
body.printing-report .reports-print-root table{width:100%!important;break-inside:auto!important}
body.printing-report .reports-print-root tr{break-inside:avoid!important;page-break-inside:avoid!important}
body.printing-report .reports-print-root thead{display:table-header-group!important}
body.printing-bird-count #root *{visibility:hidden!important}
body.printing-bird-count .wildlife-print-root,body.printing-bird-count .wildlife-print-root *{visibility:visible!important}
body.printing-bird-count .wildlife-print-root{position:absolute!important;inset:0 auto auto 0!important;width:100%!important;max-width:none!important;max-height:none!important;box-sizing:border-box!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;overflow:visible!important;box-shadow:none!important;background:#fff!important}
body.printing-bird-count .bird-count-page-1{break-after:page!important;page-break-after:always!important}
body.printing-bird-count .bird-count-page-2{margin-top:0!important;padding-top:0!important;border-top:0!important;break-after:auto!important;page-break-after:auto!important}
body.printing-bird-count input,body.printing-bird-count select{color:#000!important;background:#fff!important;-webkit-appearance:none!important;appearance:none!important}
body.printing-bird-count .modal-backdrop,body.printing-bird-count .modal-content{position:static!important;width:100%!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;overflow:visible!important;background:#fff!important;box-shadow:none!important}
}

/* Phase 49: lazy workspace loading */
.module-loading{display:flex;min-height:260px;align-items:center;justify-content:center;flex-direction:column;gap:13px;color:#64748b}.module-loading span{width:34px;height:34px;border:3px solid #cbd5e1;border-top-color:#0891b2;border-radius:50%;animation:module-loading-spin .75s linear infinite}.module-loading strong{font-size:11px;letter-spacing:.04em}@keyframes module-loading-spin{to{transform:rotate(360deg)}}

/* Phase 51: request audit trails and complete duty lists */
.request-audit{display:flex;min-width:145px;flex-direction:column;gap:3px;margin-top:5px;color:#64748b;font-size:9px;line-height:1.35}.request-audit strong{color:#334155;font-size:10px}.request-audit.decision{align-items:flex-start}.leave-management-table{min-width:1180px}.overtime-management-table{min-width:1180px}.overview-duty-actions{display:flex;align-items:center;gap:7px}.overview-duty-actions select{min-height:34px;padding:0 9px;border:1px solid #cbd5e1;border-radius:8px;color:#334155;background:#fff;font:inherit;font-size:9px;font-weight:750}.overview-duty-department{overflow:hidden;border:1px solid #e2e8f0;border-radius:13px;background:#fff}.overview-duty-department>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;cursor:pointer;list-style:none}.overview-duty-department>summary::-webkit-details-marker{display:none}.overview-duty-department>summary:after{content:'+';display:grid;width:20px;height:20px;place-items:center;border-radius:6px;color:#0f766e;background:#ccfbf1;font-size:13px;font-weight:900}.overview-duty-department[open]>summary:after{content:'−'}.overview-duty-department>summary strong{flex:1;color:#172033;font-size:11px}.overview-duty-department>summary>span{display:grid;min-width:23px;height:23px;place-items:center;border-radius:8px;color:#0f766e;background:#ccfbf1;font-size:9px;font-weight:900}.overview-duty-department ul{margin:0;padding:0 12px 11px;list-style:none}.overview-duty-department li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 3px;border-top:1px solid #eef2f7}.overview-duty-department li span{color:#334155;font-size:10px;font-weight:700}.overview-duty-department li small{color:#64748b;font-size:8px;text-align:right}.overview-duty-department>p{margin:0;padding:4px 13px 13px;color:#94a3b8;font-size:9px}
@media(max-width:600px){.overview-duty-actions{align-items:stretch;flex-direction:column}.overview-duty-actions select{max-width:145px}.request-audit{min-width:120px}}
/* Phase 52: unified live widgets and channel membership controls */
.overview-widget-actions,.conversation-header-actions{display:flex;align-items:center;gap:10px}.overview-live-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;background:#fff0f0;color:#a81414;font-weight:800}.overview-live-badge i{width:9px;height:9px;border-radius:50%;background:#e11d2e;box-shadow:0 0 0 4px #ffd8dc}.overview-weather-condition{display:flex!important;align-items:center;gap:18px}.overview-weather-icon{font-size:58px;line-height:1;filter:drop-shadow(0 8px 8px #8ec5e6)}
.conversation-members-modal{width:min(680px,calc(100vw - 28px));max-height:86vh;display:flex;flex-direction:column;gap:16px}.conversation-members-modal>header,.conversation-members-modal>footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.conversation-members-modal>header>button{border:0;background:#eef4f7;border-radius:50%;width:38px;height:38px;font-size:24px}.conversation-member-search input{width:100%;padding:12px 14px;border:1px solid #cedbe2;border-radius:12px}.conversation-member-list{overflow:auto;display:grid;gap:8px;min-height:180px}.conversation-member-list>button{display:flex;align-items:center;gap:12px;text-align:left;padding:12px;border:1px solid #dbe5ea;border-radius:13px;background:#fff}.conversation-member-list>button.selected{border-color:#0f8c91;background:#effcfa}.conversation-member-list>button div{display:grid;gap:3px}.conversation-member-list>button small{color:#62747d}.conversation-member-check{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#edf2f4;font-weight:900}.conversation-member-list>button.selected .conversation-member-check{background:#07868c;color:#fff}.conversation-members-modal>footer>span{font-size:12px;color:#62747d;max-width:430px}
@media(max-width:700px){.overview-flight-panel .panel-header{align-items:flex-start}.overview-widget-actions{gap:5px}.overview-live-badge,.overview-flight-panel .overview-text-button{padding:6px 8px;font-size:11px}.overview-flight-board-list>.overview-flight-board-entry{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;padding:0!important;overflow:hidden;position:relative}.overview-flight-service,.overview-flight-route,.overview-board-status{padding:15px!important}.overview-flight-service{border-left:5px solid #0796a0}.overview-flight-route{border-left:1px solid #d6e4e9;padding-right:105px!important}.overview-flight-times,.overview-flight-details-compact{grid-column:1/-1;display:grid!important;grid-template-columns:repeat(2,1fr);border-top:1px solid #d6e4e9;padding:0!important}.overview-flight-times small,.overview-flight-details-compact small{padding:12px!important;border-right:1px solid #d6e4e9}.overview-flight-details-compact{grid-template-columns:repeat(3,1fr)}.overview-board-status{position:absolute;right:10px;top:12px}.overview-weather-now{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important}.overview-weather-condition,.overview-weather-wind{padding:15px!important}.overview-weather-wind{border-left:1px solid #d6e4e9}.overview-weather-icon{font-size:42px}.overview-weather-metrics{grid-template-columns:repeat(5,1fr)!important}.overview-weather-metrics>div{padding:10px 4px!important}.overview-weather-metrics span{font-size:9px}.overview-weather-metrics strong{font-size:13px!important}.conversation-header{align-items:flex-start!important}.conversation-header-actions{flex-direction:column;align-items:stretch}.conversation-members-modal>footer{align-items:flex-end}.conversation-members-modal>footer>span{max-width:70%}}
/* Phase 54: live command widgets, profile photo and account actions */
.overview-profile-stack{display:grid;justify-items:center;gap:6px}.overview-profile-stack small{padding:4px 8px;border-radius:999px;color:#dffcff;background:rgba(3,19,44,.62);font-size:9px;font-weight:900;letter-spacing:.06em}.overview-profile-mark{overflow:hidden}.overview-profile-mark img{width:100%;height:100%;object-fit:cover}.overview-flight-live-times{grid-template-columns:repeat(3,1fr)!important}.overview-request-summary button{position:relative}.overview-request-summary button small{color:#0f7f86;font-size:9px;font-weight:900}.settings-account-actions{display:grid!important;grid-template-columns:1fr 1fr;gap:10px;min-width:290px}.settings-account-actions button{width:100%!important;min-width:0!important;min-height:44px!important;margin:0!important}.staff-photo-upload{grid-column:1/-1;display:flex;align-items:center;gap:13px;padding:12px;border:1px dashed #7cb7c0;border-radius:14px;background:#f2fcfc}.staff-photo-upload>span{display:grid;width:72px;height:88px;flex:0 0 72px;place-items:center;overflow:hidden;border-radius:11px;color:#0f6f75;background:#d9f4f3;font-size:10px;font-weight:900}.staff-photo-upload img{width:100%;height:100%;object-fit:cover}.staff-photo-upload>div{display:grid;gap:4px;flex:1}.staff-photo-upload small{color:#64748b}.staff-photo-upload input{padding:6px!important;background:#fff}.staff-photo-upload>button{width:auto!important;padding:8px 11px!important;color:#991b1b;background:#fff!important;border:1px solid #fecaca!important}.overview-mobile-radar-launch>div{display:flex;gap:8px;margin-top:9px}.overview-mobile-radar-launch a{padding:7px 10px;border-radius:8px;color:#fff;background:#087e86;font-size:10px;font-weight:900;text-decoration:none}
@media(max-width:760px){.conversations-sidebar{max-height:none}.conversations-sidebar nav{display:flex;max-height:none;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding-bottom:12px}.conversations-sidebar nav button{min-width:175px;border:1px solid #e2e8f0}.conversation-search{padding-bottom:8px}.settings-account-actions{width:100%;min-width:0}.overview-profile-stack{align-self:center}.overview-flight-live-times{grid-template-columns:repeat(3,1fr)!important}}
/* Phase 55: collapsible long registers */
.long-register-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 8px;padding:11px 13px;border:1px solid #dbe5ea;border-radius:12px;background:#f8fafc}.long-register-toolbar>div{display:grid;gap:2px}.long-register-toolbar strong{color:#172033;font-size:12px}.long-register-toolbar span{color:#64748b;font-size:9px}.long-register-toolbar button{padding:7px 11px;border:1px solid #b9d5da;border-radius:8px;color:#0f6f75;background:#fff;font:inherit;font-size:9px;font-weight:900}.long-register-collapsed{display:none!important}
/* Phase 56: focused live flight carousel */
.overview-flight-carousel{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 15px;border-top:1px solid #d9e6eb;background:#f8fcfd}.overview-flight-carousel>button{display:grid;width:31px;height:31px;place-items:center;border:0;border-radius:50%;color:#083b55;background:#e1f2f4;font-size:22px;font-weight:900;cursor:pointer}.overview-flight-carousel>div{display:flex;align-items:center;gap:7px}.overview-flight-carousel>div button{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:#bdd5df;cursor:pointer}.overview-flight-carousel>div button.active{width:22px;border-radius:999px;background:#07868c}.overview-weather-icon{font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif}
@media(max-width:700px){.overview-flight-carousel{grid-column:1/-1}.overview-flight-board-head{display:none!important}}
/* Phase 57: restore profile-and-greeting alignment */
.overview-greeting-copy>.overview-profile-stack{grid-column:1;grid-row:1/5;align-self:center;justify-self:start;margin:0}.overview-greeting-copy>.overview-profile-stack .overview-profile-mark{grid-column:auto;grid-row:auto;width:88px;height:88px;margin:0;font-size:24px}.overview-greeting-copy>.overview-profile-stack small{margin-top:2px}.overview-greeting-copy>.overview-kicker,.overview-greeting-copy>h1,.overview-greeting-copy>.overview-identity-row{grid-column:2}.overview-greeting-copy>h1{align-self:start}
@media(max-width:600px){.overview-greeting-copy{grid-template-columns:68px minmax(0,1fr);column-gap:14px}.overview-greeting-copy>.overview-profile-stack{grid-column:1;grid-row:1/5;align-self:start;margin-top:12px}.overview-greeting-copy>.overview-profile-stack .overview-profile-mark{width:58px;height:58px;border-width:3px;font-size:17px}.overview-greeting-copy>.overview-profile-stack small{padding:3px 5px;font-size:7px}.overview-greeting-copy>.overview-kicker,.overview-greeting-copy>h1,.overview-greeting-copy>.overview-identity-row{grid-column:2}}
/* Phase 58: exact airport overview landing composition */
.overview-greeting-board{position:relative!important;isolation:isolate;min-height:250px!important;overflow:hidden!important;border:8px solid rgba(255,255,255,.92)!important;border-radius:30px!important;background:linear-gradient(112deg,#06294e 0%,#064d7a 62%,#0782a2 100%)!important;box-shadow:0 12px 28px rgba(7,74,110,.18)!important}.overview-greeting-board:before{position:absolute;inset:auto 0 0;height:42%;z-index:-1;background:linear-gradient(180deg,transparent,rgba(250,196,68,.33));content:''}.overview-greeting-copy{z-index:3!important;grid-template-columns:112px minmax(310px,1fr)!important;align-content:center!important}.overview-greeting-copy>.overview-profile-stack{grid-column:1!important;grid-row:1/5!important;align-self:center!important;justify-self:start!important}.overview-greeting-copy>.overview-profile-stack .overview-profile-mark{width:92px!important;height:92px!important;border:4px solid #fff!important;box-shadow:0 0 0 5px rgba(255,255,255,.16)!important}.overview-greeting-copy>.overview-profile-stack small{color:#fff!important;background:rgba(2,25,52,.72)!important}.overview-greeting-board .overview-kicker{display:none!important}.overview-greeting-copy>h1{grid-column:2!important;margin:0!important;font-size:clamp(29px,3vw,43px)!important;line-height:1.05!important}.overview-greeting-copy>h1 span{font-size:.72em!important;font-weight:750!important;letter-spacing:0!important;text-transform:none!important}.overview-greeting-copy>h1 strong{margin-top:7px!important;color:#67e8f9!important;font-size:1em!important;letter-spacing:.015em!important}.overview-greeting-copy>.overview-identity-row{grid-column:2!important;display:grid!important;gap:7px!important;margin-top:16px!important}.overview-greeting-copy>.overview-identity-row>span{position:relative;width:max-content!important;min-height:0!important;padding:0 0 0 28px!important;border:0!important;color:#fff!important;background:transparent!important;font-size:13px!important;font-weight:750!important}.overview-identity-row>span:before{position:absolute;left:0;top:50%;display:grid;width:19px;height:19px;place-items:center;transform:translateY(-50%);color:#dffcff;font-size:14px}.overview-identity-row .identity-designation:before{content:'▣'}.overview-identity-row .identity-department:before{content:'◇'}.overview-identity-row .identity-leadership:before{content:'☆';font-size:20px}.overview-airport-art{position:absolute;left:25%;right:27%;bottom:0;z-index:1;height:88%;pointer-events:none}.overview-airport-art svg{width:100%;height:100%;overflow:visible}.airport-horizon{fill:#03203d}.airport-terminal,.airport-tower{fill:rgba(3,31,58,.92);stroke:#20b9db;stroke-width:3}.airport-flight-path{fill:none;stroke:rgba(135,220,255,.65);stroke-width:2}.airport-plane{fill:#bdeeff;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}.overview-greeting-board .overview-clock{position:relative;z-index:3!important;min-width:345px!important;padding:26px 0 26px 38px!important;border-left:2px solid rgba(255,255,255,.72)!important}.overview-greeting-board .overview-clock strong{color:#fff!important;font-size:clamp(50px,5vw,72px)!important;font-weight:500!important}.overview-greeting-board .overview-clock small{color:#fff!important;font-size:14px!important;font-weight:700!important}.overview-station-status{color:#fff!important;font-size:13px!important;font-weight:800!important}
.overview-flight-board>.overview-panel-header,.overview-weather-panel>.overview-panel-header{border-radius:22px 22px 0 0!important;background:linear-gradient(90deg,#eefbff,#f8fbff)!important}.overview-flight-board>.overview-panel-header h2,.overview-weather-panel>.overview-panel-header h2{color:#07123f!important;font-size:24px!important}.overview-flight-board .overview-widget-actions{flex:1!important}.overview-flight-board .overview-live-badge{margin-left:18px!important}.overview-flight-board .overview-text-button{margin-left:auto!important;font-size:12px!important;font-weight:900!important}.overview-flight-board-head{display:none!important}.overview-flight-board-list{padding:0 16px 14px!important;background:#eef9ff!important}.overview-flight-board-list>.overview-flight-board-entry,.overview-flight-board-list>.overview-flight-board-entry.is-next{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;grid-template-rows:auto auto auto!important;gap:0!important;width:100%!important;min-height:0!important;margin:0!important;padding:0!important;border:1px solid #cde7f2!important;border-left:7px solid #078fa2!important;border-radius:18px!important;background:#fff!important;box-shadow:none!important;overflow:hidden!important}.overview-flight-service{grid-column:1/4!important;grid-row:1!important;padding:13px 18px!important;border-right:1px solid #cfdfeb!important;background:linear-gradient(90deg,#effdff,#fff)!important}.overview-flight-service i{display:none!important}.overview-flight-service strong{font-size:27px!important}.overview-flight-service small{font-size:12px!important}.overview-flight-route{grid-column:4/9!important;grid-row:1!important;padding:14px 22px!important;border:0!important;background:#fff!important;text-align:left!important}.overview-flight-route strong{font-size:21px!important}.overview-flight-route small{font-size:11px!important}.overview-flight-board-list .overview-board-status{position:static!important;grid-column:10/13!important;grid-row:1!important;align-self:center!important;justify-self:center!important;padding:11px 26px!important;border-radius:999px!important;color:#116329!important;background:#c9f8c9!important;font-size:14px!important}.overview-flight-board-list .overview-flight-times{grid-column:1/7!important;grid-row:2!important;display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:0!important;padding:0!important;border-top:1px solid #d8e7ef!important;background:#fff!important}.overview-flight-board-list .overview-flight-live-times{grid-column:7/13!important;grid-row:2!important;display:grid!important;grid-template-columns:repeat(3,1fr)!important;border-top:1px solid #d8e7ef!important;background:#fff!important}.overview-flight-times small{padding:12px 18px!important;border-right:1px solid #d8e7ef!important;color:#15203f!important;font-size:11px!important;text-align:center!important}.overview-flight-times strong{display:block!important;margin-top:3px!important;color:#07123f!important;font-size:20px!important}.overview-flight-details-compact{grid-column:1/13!important;grid-row:3!important;display:grid!important;grid-template-columns:repeat(3,1fr)!important;padding:0!important;border-top:1px solid #d8e7ef!important;background:#f9fcff!important}.overview-flight-details-compact small{padding:12px 18px!important;border-right:1px solid #d8e7ef!important;color:#15203f!important;font-size:11px!important;text-align:center!important}.overview-flight-details-compact strong{display:block!important;margin-top:3px!important;color:#07123f!important;font-size:18px!important}.overview-flight-carousel{margin:0 16px;border:0!important;background:#eef9ff!important}
.overview-weather-content{display:block!important;margin:0 16px 16px!important;border:1px solid #cde7f2!important;border-radius:18px!important;background:#fff!important}.overview-weather-now{display:grid!important;grid-template-columns:1fr 1fr!important;min-height:120px!important;border:0!important;background:#fff!important}.overview-weather-now>div{min-height:120px!important;padding:16px 28px!important;border:0!important;background:#fff!important}.overview-weather-now>div+div{border-left:1px solid #cde0eb!important}.overview-weather-now>div:first-child:before{content:none!important}.overview-weather-condition{display:flex!important;flex-direction:row!important;align-items:center!important;gap:25px!important}.overview-weather-condition>div{display:flex;flex-direction:column}.overview-weather-icon{font-size:67px!important}.overview-weather-now span{color:#26314f!important;font-size:10px!important}.overview-weather-now strong{color:#07123f!important;font-size:43px!important}.overview-weather-now small{color:#26314f!important;font-size:13px!important}.overview-weather-wind strong{font-size:25px!important}.overview-weather-metrics{display:grid!important;grid-template-columns:repeat(5,1fr)!important;border:1px solid #cde0eb!important;border-right:0!important;border-left:0!important;background:#fafdff!important}.overview-weather-metrics>div,.overview-weather-metrics>div:nth-child(3n){min-height:92px!important;padding:14px 8px!important;border-right:1px solid #cde0eb!important;border-bottom:0!important;text-align:center!important}.overview-weather-metrics>div:last-child{border-right:0!important}.overview-weather-metrics span{color:#26314f!important;font-size:11px!important}.overview-weather-metrics strong{color:#07123f!important;font-size:18px!important}.overview-weather-content>p{margin:0!important;padding:13px 24px!important;border:0!important;color:#172344!important;background:#f8fcff!important;font-size:12px!important;text-align:left!important}
@media(max-width:900px){.overview-greeting-board{grid-template-columns:1fr!important}.overview-airport-art{left:32%;right:0;opacity:.72}.overview-greeting-board .overview-clock{display:grid!important;grid-template-columns:1fr auto!important;min-width:0!important;margin-top:16px!important;padding:16px 0 0!important;border-top:1px solid rgba(255,255,255,.4)!important;border-left:0!important}.overview-greeting-board .overview-clock strong{font-size:38px!important}.overview-weather-now strong{font-size:34px!important}.overview-weather-icon{font-size:52px!important}}
@media(max-width:600px){.overview-greeting-board{min-height:0!important;padding:20px 17px!important;border-width:5px!important}.overview-greeting-copy{grid-template-columns:69px minmax(0,1fr)!important;column-gap:13px!important}.overview-greeting-copy>.overview-profile-stack{align-self:start!important;margin-top:4px!important}.overview-greeting-copy>.overview-profile-stack .overview-profile-mark{width:58px!important;height:58px!important;border-width:3px!important}.overview-greeting-copy>h1{font-size:22px!important}.overview-greeting-copy>h1 span{font-size:17px!important}.overview-greeting-copy>h1 strong{font-size:22px!important}.overview-greeting-copy>.overview-identity-row{gap:4px!important;margin-top:9px!important}.overview-greeting-copy>.overview-identity-row>span{padding-left:21px!important;font-size:9px!important}.overview-identity-row>span:before{width:15px;height:15px;font-size:11px}.overview-airport-art{left:38%;right:-16%;height:56%;opacity:.58}.overview-greeting-board .overview-clock{grid-template-columns:1fr auto!important}.overview-greeting-board .overview-clock strong{grid-column:2!important;grid-row:1/3!important;font-size:27px!important}.overview-greeting-board .overview-clock small{grid-column:1!important;grid-row:2!important;font-size:9px!important}.overview-station-status{grid-column:1!important;grid-row:1!important;font-size:9px!important}.overview-flight-board>.overview-panel-header,.overview-weather-panel>.overview-panel-header{padding:12px!important}.overview-flight-board>.overview-panel-header h2,.overview-weather-panel>.overview-panel-header h2{font-size:17px!important}.overview-flight-board .overview-live-badge{margin-left:6px!important;padding:6px 8px!important}.overview-flight-board .overview-text-button{padding:7px 9px!important;font-size:9px!important}.overview-flight-board-list{padding:0 9px 9px!important}.overview-flight-service{grid-column:1/6!important;padding:12px!important}.overview-flight-service strong{font-size:22px!important}.overview-flight-route{grid-column:6/13!important;padding:12px 82px 12px 13px!important}.overview-flight-route strong{font-size:15px!important}.overview-flight-board-list .overview-board-status{position:absolute!important;right:12px!important;top:13px!important;padding:7px 9px!important;font-size:9px!important}.overview-flight-times small,.overview-flight-details-compact small{padding:10px 4px!important;font-size:8px!important}.overview-flight-times strong{font-size:14px!important}.overview-flight-details-compact strong{font-size:12px!important}.overview-flight-carousel{margin:0 9px}.overview-weather-content{margin:0 9px 9px!important}.overview-weather-now{grid-template-columns:1fr 1fr!important;min-height:100px!important}.overview-weather-now>div{min-height:100px!important;padding:12px!important}.overview-weather-condition{gap:8px!important}.overview-weather-icon{font-size:37px!important}.overview-weather-now strong{font-size:27px!important}.overview-weather-now small{font-size:9px!important}.overview-weather-wind strong{font-size:14px!important}.overview-weather-metrics>div,.overview-weather-metrics>div:nth-child(3n){min-height:72px!important;padding:10px 2px!important}.overview-weather-metrics span{font-size:7px!important}.overview-weather-metrics strong{font-size:11px!important}.overview-weather-content>p{padding:10px!important;font-size:8px!important;text-align:center!important}}
/* Phase 59: explicit Ramp live-page control */
.ramp-clear-live-btn{border:1px solid rgba(254,202,202,.65)!important;color:#fee2e2!important;background:rgba(185,28,28,.32)!important}.ramp-clear-live-btn:hover{background:rgba(185,28,28,.52)!important}.ramp-live-cleared{display:flex;max-width:1100px;min-height:300px;box-sizing:border-box;margin:0 auto;align-items:center;justify-content:center;flex-direction:column;gap:8px;border:1px dashed #94a3b8;border-radius:16px;color:#64748b;background:#fff;text-align:center}.ramp-live-cleared strong{color:#1e293b;font-size:22px}.ramp-live-cleared span{font-size:13px}
/* Consolidated print isolation: prevent blank/extra sheets across operational exports. */
@media print {
  html,
  body {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  body.printing-roster #root * {
    visibility: hidden !important;
  }
  body.printing-roster .roster-export-area,
  body.printing-roster .roster-export-area * {
    visibility: visible !important;
  }
  body.printing-roster .roster-export-area {
    position: absolute !important;
    inset: 0 auto auto 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    box-shadow: none !important;
    background: #fff !important;
    zoom: 1 !important;
  }
  body.printing-roster .roster-week-section:last-child {
    page-break-after: auto !important;
    break-after: auto !important;
  }

  body.printing-ramp .ramp-sheet,
  body.printing-ramp .flight-form {
    height: auto !important;
    min-height: 0 !important;
    page-break-inside: avoid !important;
    break-inside: avoid-page !important;
    page-break-after: auto !important;
    break-after: auto !important;
  }
  body.printing-ramp:not(.printing-modal) .ramp-container {
    position: absolute !important;
    inset: 0 auto auto 0 !important;
  }
  body.printing-modal .ramp-container,
  body.printing-modal .ramp-container * {
    visibility: hidden !important;
  }
  body.printing-modal .modal-backdrop,
  body.printing-modal .modal-backdrop *,
  body.printing-modal .modal-backdrop .ramp-container,
  body.printing-modal .modal-backdrop .ramp-container * {
    visibility: visible !important;
  }
  body.printing-modal .modal-backdrop {
    position: absolute !important;
    inset: 0 auto auto 0 !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }
  body.printing-modal .modal-content,
  body.printing-modal .modal-scrollable-body {
    position: static !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.printing-report .reports-print-root,
  body.printing-bird-count .wildlife-print-root {
    height: auto !important;
    min-height: 0 !important;
    page-break-after: auto !important;
    break-after: auto !important;
  }
}
/* Keep the mobile roster grid at the requested half scale; browser accessibility zoom remains available. */
@media screen {.roster-workspace-page .roster-export-area{zoom:var(--roster-desktop-scale,1)}}
@media screen and (max-width:768px){.roster-workspace-page .roster-export-area{zoom:.5!important}.roster-workspace-page .roster-workspace-zoom{display:none!important}}

/* Route owns its date and live status; long mobile routes grow instead of meeting an absolute badge. */
.overview-flight-board-list .overview-flight-route-stack{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:7px!important;min-width:0!important;grid-column:4/13!important;padding-right:18px!important}
.overview-flight-board-list .overview-flight-route-stack>strong{max-width:100%;white-space:normal!important;overflow-wrap:anywhere;line-height:1.4}
.overview-flight-board-list .overview-flight-route-stack>.overview-flight-date{display:block;max-width:100%;white-space:normal!important;color:#64748b;font-size:11px!important;line-height:1.4}
.overview-flight-board-list .overview-flight-route-stack>.overview-board-status{position:static!important;inset:auto!important;grid-column:auto!important;grid-row:auto!important;align-self:flex-start!important;justify-self:start!important;max-width:100%;box-sizing:border-box;margin:0!important;padding:6px 12px!important;white-space:normal!important;overflow-wrap:anywhere;font-size:11px!important;line-height:1.4}
@media(max-width:600px){.overview-flight-board-list .overview-flight-route-stack{grid-column:6/13!important;padding:12px!important;gap:6px!important}.overview-flight-board-list .overview-flight-route-stack>.overview-flight-date{font-size:10px!important}.overview-flight-board-list .overview-flight-route-stack>.overview-board-status{font-size:10px!important;padding:5px 10px!important}}

/* On phones, start at the roster rather than the administration panels. */
.roster-mobile-heading,.roster-mobile-mode,.roster-mobile-view-tools{display:none}
@media screen and (max-width:768px){
 .roster-workspace-page .roster-mobile-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:#fff;border-radius:12px;border:1px solid #dbe5ed}
 .roster-mobile-heading small{display:block;font-size:10px;color:#64748b}.roster-mobile-heading h2{margin:3px 0 0;font-size:20px;color:#123956}
 .roster-mobile-heading button{border:1px solid #cbd5e1;border-radius:8px;padding:9px 12px;background:#f8fafc;color:#123956;font:inherit;font-size:11px}
 .roster-workspace-page .roster-mobile-mode{display:flex;gap:4px;padding:4px;background:#e8eef4;border-radius:10px;margin:8px 0}
 .roster-mobile-mode button{flex:1;min-height:38px;border:0;border-radius:7px;background:transparent;color:#64748b;font:inherit;font-size:12px;font-weight:750}
 .roster-mobile-mode button[aria-pressed=true]{background:#fff;color:#075985;box-shadow:0 1px 4px #0f172a12}
 .roster-mobile-view .roster-workspace-hero,.roster-mobile-view .roster-workspace-summary,.roster-mobile-view .roster-workspace-controls,.roster-mobile-view .roster-workspace-tabs,.roster-mobile-view .roster-workspace-period,.roster-mobile-view .roster-workspace-legend,.roster-mobile-view .roster-workspace-form,.roster-mobile-view .roster-workspace-bulk{display:none!important}
 .roster-mobile-view .roster-mobile-view-tools{display:grid;gap:8px;margin-bottom:10px}
 .roster-mobile-view-tools>label{display:flex;align-items:center;gap:10px;font-size:11px;color:#64748b}.roster-mobile-view-tools select{flex:1;min-width:0;padding:8px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font:inherit;color:#123956}
 .roster-mobile-view-tools>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px;border:1px solid #dbe5ed;border-radius:9px;background:#fff}
 .roster-mobile-view-tools button{flex:0 0 36px;height:34px;border:0;border-radius:6px;background:#edf5fa;color:#075985;font-size:23px}.roster-mobile-view-tools strong{font-size:10px;text-align:center;color:#334155;line-height:1.5}
 .roster-mobile-view .roster-export-area{margin-top:0!important}.roster-mobile-view .roster-workspace-alert{padding:9px;font-size:11px}
 .roster-mobile-mode button:focus-visible,.roster-mobile-view-tools button:focus-visible{outline:2px solid #0284c7;outline-offset:2px}
}

.roster-mobile-toolbar{display:none}
@media screen and (max-width:768px){
 .app-shell--roster .app-subnav{display:none!important}
 .roster-workspace-page{gap:8px!important}
 .roster-workspace-page .roster-mobile-toolbar{display:flex;align-items:center;gap:8px;margin:0;padding:0}
 .roster-mobile-toolbar>label{flex:1;min-width:0;margin:0}
 .roster-mobile-dept-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .roster-mobile-toolbar select{width:100%;min-width:0;min-height:40px;box-sizing:border-box;margin:0;padding:8px 30px 8px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#123956;font:inherit;font-size:12px}
 .roster-mobile-toolbar>strong{flex:1;min-width:0;color:#123956;font-size:12px;overflow-wrap:anywhere}
 .roster-mobile-toolbar>button{flex-shrink:0;min-height:40px;padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#075985;font:inherit;font-size:12px}
 .roster-mobile-toolbar select:focus-visible,.roster-mobile-toolbar button:focus-visible{outline:2px solid #0284c7;outline-offset:2px}
 .roster-workspace-page .roster-mobile-mode{margin:0!important}
 .roster-workspace-page .roster-mobile-view-tools{margin:0!important}
}

/* Soft, readable section colours; offboarding stays last and visually distinct. */
.app-module-button[data-module=operations],.app-subnav button[data-page=flights],.app-subnav button[data-page=opsboard]{--section-ink:#075985;--section-wash:#e0f2fe}
.app-module-button[data-module=reports],.app-subnav button[data-page=reports],.app-subnav button[data-page=managerReports]{--section-ink:#5b21b6;--section-wash:#ede9fe}
.app-module-button[data-module=hr],.app-subnav button[data-page=staff],.app-subnav button[data-page=leave],.app-subnav button[data-page=overtime]{--section-ink:#065f46;--section-wash:#d1fae5}
.app-subnav button[data-page=holidays]{--section-ink:#92400e;--section-wash:#fef3c7}.app-subnav button[data-page=announcements]{--section-ink:#3730a3;--section-wash:#e0e7ff}.app-subnav button[data-page=resignations]{--section-ink:#9f1239;--section-wash:#ffe4e6}
.app-module-button[data-module],.app-subnav button[data-page]{color:var(--section-ink,#334155);background:linear-gradient(110deg,var(--section-wash,#f1f5f9),#fff)}
.app-module-button[data-module].active,.app-subnav button[data-page].active{color:var(--section-ink,#334155);background:var(--section-wash,#e2e8f0);border-color:var(--section-ink,#64748b)}
.mobile-section-workspace{display:none}.holidays-load-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #fecaca;border-radius:9px;background:#fff1f2;color:#9f1239}
@media screen and (max-width:768px){
 .app-shell--compact-workspace .app-subnav{display:none!important}
 .mobile-section-workspace{display:grid;gap:7px;padding:10px 12px 0}
 .mobile-section-toolbar{display:flex;gap:8px}.mobile-section-toolbar select{flex:1;min-width:0;padding:9px 10px;min-height:40px;border:1px solid #cbd5e1;border-radius:9px;color:#123956;background:#fff;font:inherit;font-size:12px}.mobile-section-toolbar>button{padding:9px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#075985;font:inherit;font-size:12px}
 .mobile-section-workspace>nav{display:flex;gap:4px;padding:4px;border-radius:10px;background:#e8eef4}.mobile-section-workspace>nav button{flex:1;min-height:36px;border:0;border-radius:7px;background:transparent;color:#64748b;font:inherit;font-size:12px;font-weight:700}.mobile-section-workspace>nav button[aria-pressed=true]{background:#fff;color:#075985;box-shadow:0 1px 4px #0f172a14}
 .mobile-workspace-view .app-page :is(.operations-board-hero,.operations-board-summary,.flight-workspace-hero,.flights-workspace-hero,.flight-schedule-hero,.flight-schedule-summary,.ramp-workspace-header,.wildlife-workspace-hero,.wildlife-workspace-summary,.rwy-workspace-hero,.staff-management-hero,.staff-management-summary,.leave-management-hero,.leave-management-summary,.overtime-management-hero,.overtime-management-summary,.holidays-hero,.holidays-summary,.holidays-import-note,.announcements-hero,.announcements-summary,.resignation-hero){display:none!important}
 .mobile-workspace-view .app-page :is(.staff-management-form,.leave-management-form,.overtime-management-form,.holidays-form,.announcement-editor,.resignation-form,.operations-fod-form){display:none!important}
 .mobile-workspace-view .app-page :is(.edit-btn,.delete-btn,.approve-btn,.reject-btn,.holiday-card-actions,.announcement-actions,.leave-period-history-buttons,.staff-management-form__section,.wildlife-danger){display:none!important}
 .mobile-workspace-view .app-page .resignation-columns>.resignation-panel:first-child{display:none!important}
 .mobile-workspace-view .app-page .reports-print-root{margin-top:0}.mobile-workspace-view .app-page>.page-content>.staff-header{display:none!important}
 .mobile-workspace-view .app-page .announcements-hero-actions,.mobile-workspace-view .app-page .reports-management-actions{display:none!important}
 .app-shell--compact-workspace .app-page{padding-top:10px!important}.holidays-controls{gap:8px}.holidays-controls label{min-width:0}.holidays-empty p{font-size:12px;line-height:1.5}
}

@media screen and (max-width:768px){
 .mobile-workspace-view .app-page :is(.resignation-columns,.reports-management-controls,.runway-lights-hero,.runway-lights-summary){display:none!important}
 .mobile-workspace-view .app-page .ops-tabs{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;gap:6px;margin-bottom:10px!important}
 .mobile-workspace-view .app-page .ops-tabs>button{flex-shrink:0}
}

@media screen and (max-width:768px){.mobile-workspace-view .manager-reports-control{display:none!important}.mobile-section-toolbar select[data-page=resignations]{color:#9f1239;border-color:#fda4af;background:#fff1f2}.manager-report-empty{padding:16px;border:1px solid #dbe5ed;border-radius:10px;background:#fff;color:#475569;font-size:13px;line-height:1.5}}

.reports-mobile-workspace{display:none}.holiday-period-tabs{display:flex;gap:5px;padding:5px;border-radius:10px;background:#edf2f7}.holiday-period-tabs>button{flex:1;padding:10px;border:0;border-radius:8px;background:transparent;color:#64748b;font:inherit;font-size:12px;font-weight:700}.holiday-period-tabs>button[aria-pressed=true]{background:#fff;color:#075985;box-shadow:0 1px 4px #0f172a12}.holiday-period-tabs span{margin-left:6px;padding:2px 6px;border-radius:7px;background:#e2e8f0;font-size:10px}
@media screen and (max-width:768px){
 .mobile-section-workspace{width:100%;max-width:none;box-sizing:border-box;align-self:stretch;margin:0;padding:8px 12px 0;gap:7px}.mobile-section-workspace:empty{display:none}
 .mobile-section-workspace>.mobile-page-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:0;background:transparent;border-radius:0}
 .mobile-section-workspace>.mobile-page-tabs>button{min-width:0;min-height:35px;padding:7px 5px;border:1px solid #dbe5ed;border-radius:8px;background:linear-gradient(120deg,#edf8f3,#fff);color:#16634c;font-size:11px;line-height:1.3;font-weight:650;overflow-wrap:anywhere}
 .mobile-section-workspace>.mobile-page-tabs>button[aria-current=page]{background:#d1fae5;border-color:#6ee7b7;color:#065f46;box-shadow:none}
 .mobile-section-workspace>.mobile-page-tabs>button[data-page=resignations]{color:#9f1239;background:linear-gradient(120deg,#ffe4e6,#fff);border-color:#fecdd3}.mobile-section-workspace>.mobile-page-tabs>button[data-page=resignations][aria-current=page]{background:#ffe4e6;border-color:#fda4af}
 .mobile-section-workspace>.mobile-workspace-modes{margin:0;padding:3px;min-height:34px}.mobile-section-workspace>.mobile-workspace-modes>button{min-height:32px;font-size:11px}.mobile-section-workspace>.mobile-workspace-modes>.mobile-workspace-refresh{flex:0 0 auto;padding:6px 11px;color:#075985;background:transparent}
 .mobile-page-tabs button:focus-visible{outline:2px solid #0284c7;outline-offset:1px}
 .mobile-workspace-reports .reports-workspace-page>.staff-header,.mobile-workspace-reports .reports-management-controls,.mobile-workspace-reports .reports-workspace-page>.ops-tabs{display:none!important}
 .reports-mobile-workspace{display:grid;gap:7px;margin:0 0 10px}
 .reports-mobile-workspace>nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.reports-mobile-workspace>nav>button{min-width:0;min-height:33px;padding:7px 5px;border:1px solid #dbe5ed;border-radius:7px;background:#f1f5fb;color:#475569;font:inherit;font-size:11px;font-weight:700}.reports-mobile-workspace>nav>button[aria-pressed=true]{background:#e0e7ff;color:#3730a3;border-color:#a5b4fc}
 .reports-mobile-tools{display:flex;align-items:center;gap:5px}.reports-mobile-tools select,.reports-mobile-tools>button{min-height:34px;padding:6px 8px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#334155;font:inherit;font-size:11px}.reports-mobile-tools select{width:69px;min-width:0}.reports-mobile-tools .reports-mobile-print{flex:1;background:#e7f6ec;color:#166534;border-color:#bbdfc5;font-weight:700}
 .reports-mobile-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;border:1px solid #dbe5ed;border-radius:9px;background:#fff}.reports-mobile-filters label{display:grid;min-width:0;gap:4px;color:#64748b;font-size:10px}.reports-mobile-filters input,.reports-mobile-filters select{min-width:0;width:100%;box-sizing:border-box;padding:7px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;font-size:11px}.reports-mobile-filters button{border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;color:#475569;font-size:11px}
 .mobile-workspace-reports .manager-reports-control{display:block!important;padding:10px}.mobile-workspace-reports .manager-reports-control>h2,.mobile-workspace-reports .manager-reports-control>p{display:none}.mobile-workspace-reports .manager-reports-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .mobile-workspace-view .leave-management-policy-note{display:none!important}
 .app-shell--compact-workspace .leave-management-controls{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;padding:10px!important;margin:0!important;border-radius:10px!important}.leave-management-controls>label{min-width:0!important;gap:5px!important}.leave-management-controls>label>span{font-size:9px!important;letter-spacing:.04em!important}.leave-management-controls input,.leave-management-controls select{width:100%!important;min-width:0!important;box-sizing:border-box;min-height:35px!important;padding:7px 8px!important;font-size:11px!important;border-radius:7px!important}
 .app-shell--compact-workspace .leave-management-tabs{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px!important;padding:4px!important;margin:8px 0!important;overflow:visible!important;border-radius:9px!important}.leave-management-tabs>button{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:center;min-width:0!important;padding:7px 3px!important;gap:3px!important;font-size:10px!important;white-space:normal!important}.leave-management-tabs>button>span{padding:2px 4px!important;font-size:9px!important;min-width:0!important}
}

.staff-mobile-view-only,.holiday-quick-import{display:none}
.overview-flight-pax-live>em{display:block;margin-top:5px;color:#64748b;font-size:9px;font-weight:500;font-style:normal;line-height:1.35;overflow-wrap:anywhere}
@media screen and (max-width:768px){
 .overview-flight-details-compact .overview-flight-pax-live>strong{font-size:14px!important;white-space:normal!important;overflow-wrap:anywhere}.overview-flight-pax-live>em{font-size:8px}
 .mobile-workspace-view .staff-management-page>.staff-mobile-view-only{display:grid;gap:10px}
 .mobile-workspace-view .staff-management-page>.staff-management-controls,.mobile-workspace-view .staff-management-page>.staff-management-tabs,.mobile-workspace-view .staff-management-page>.long-register-toolbar,.mobile-workspace-view .staff-management-page>.staff-management-list{display:none!important}
 .staff-mobile-view-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.staff-mobile-view-filters>label{display:grid;min-width:0;gap:5px;color:#64748b;font-size:10px}.staff-mobile-view-filters input,.staff-mobile-view-filters select{width:100%;min-width:0;min-height:37px;box-sizing:border-box;padding:8px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#123956;font:inherit;font-size:11px}
 .staff-mobile-view-list{display:grid;gap:7px}.staff-mobile-view-list>article{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px;border:1px solid #dbe5ed;border-radius:10px;background:#fff}.staff-mobile-view-list>article>div{display:grid;gap:4px;min-width:0}.staff-mobile-view-list strong{color:#123956;font-size:13px;overflow-wrap:anywhere}.staff-mobile-view-list small{font-size:10px;color:#64748b;overflow-wrap:anywhere}.staff-mobile-view-list>article>span{flex:0 1 100px;padding:5px 7px;border-radius:7px;background:#edf7f3;color:#16634c;font-size:9px;line-height:1.4;text-align:center}
 .mobile-workspace-view .overtime-management-eligibility{display:none!important}
 .mobile-workspace-view .overtime-management-controls{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;padding:10px!important;margin:0!important;border-radius:10px!important}.mobile-workspace-view .overtime-management-controls>label{min-width:0!important;gap:5px!important}.mobile-workspace-view .overtime-management-controls>.overtime-management-search{grid-column:1;grid-row:1}.mobile-workspace-view .overtime-management-controls>label:first-child{grid-column:2;grid-row:1}.mobile-workspace-view .overtime-management-controls>label>small{display:none}.mobile-workspace-view .overtime-management-controls label>span{font-size:9px!important}.mobile-workspace-view .overtime-management-controls input{width:100%!important;min-width:0!important;min-height:35px!important;box-sizing:border-box;padding:7px!important;font-size:11px!important}
 .mobile-workspace-view .overtime-management-view-tabs,.mobile-workspace-view .overtime-management-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:4px;margin:7px 0;border-radius:9px}.mobile-workspace-view .overtime-management-view-tabs>button,.mobile-workspace-view .overtime-management-tabs>button{flex:1;min-width:0;min-height:33px;padding:7px 5px;font-size:10px;white-space:normal}
 .mobile-workspace-view .overtime-management-department-filters{gap:8px!important;padding:10px!important}.mobile-workspace-view .overtime-management-department-filters label{min-width:0;font-size:10px}.mobile-workspace-view .overtime-management-department-filters select{min-width:0;font-size:11px;padding:7px}
 .mobile-workspace-view .holiday-quick-import{display:inline-flex;justify-content:center;align-items:center;min-height:35px;padding:7px 12px;border:1px solid #f5d89c;border-radius:8px;background:#fff7e6;color:#92400e;font:inherit;font-size:11px;font-weight:700}
}

.app-sidebar{overflow-y:auto}
.app-window-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:16px 0;padding:12px 0;border-top:1px solid #ffffff1f}
.app-window-controls>button{display:flex;align-items:center;justify-content:flex-start;gap:7px;min-height:36px;padding:8px 9px;border:1px solid #ffffff26;border-radius:8px;background:#ffffff08;color:#d3e9f5;font:inherit;font-size:10px;font-weight:600;text-align:left;cursor:pointer}
.app-window-controls>button>span{font-size:17px;line-height:1}.app-window-controls>button:hover{background:#ffffff17;border-color:#ffffff4d}.app-window-controls>button:focus-visible{outline:2px solid #67e8f9;outline-offset:2px}.app-window-controls>.app-window-close{color:#fecdd3}.app-window-controls>.app-window-close:hover{background:#9f123930;border-color:#fda4af80}
@media print{.app-window-controls{display:none!important}}

.app-nav-icon>svg,.app-subnav button>span>svg,.overview-metric-code>svg{display:block}.app-window-controls>button>span{display:flex;align-items:center}
@media screen and (max-width:768px){
 .overview-dashboard .overview-metrics{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
 .overview-dashboard .overview-metrics>button{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:9px!important;min-width:0!important;min-height:83px!important;padding:12px 10px!important;border-radius:12px!important}
 .overview-dashboard .overview-metrics .overview-metric-code{display:grid!important;place-items:center!important;flex:0 0 34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;border-radius:10px!important;background:#f0f9ff!important}
 .overview-dashboard .overview-metrics .overview-metric-code>svg{width:23px;height:23px}
 .overview-dashboard .overview-metrics>button>span:last-child{display:grid;gap:4px;min-width:0}
 .overview-dashboard .overview-metrics strong{font-size:23px!important;line-height:1!important}
 .overview-dashboard .overview-metrics small{display:block;max-width:100%;font-size:10px!important;line-height:1.35!important;white-space:normal!important}
}

/* Faded matching artwork stays behind readable labels and never intercepts taps. */
.app-module-button,.app-subnav button,.mobile-page-tabs>button{position:relative;overflow:hidden}
.app-nav-text{position:relative;z-index:1}.app-module-button>.app-nav-icon{position:relative;z-index:1}
.app-button-watermark{position:absolute!important;right:6px!important;top:50%!important;transform:translateY(-50%);display:flex!important;width:54px!important;height:54px!important;min-width:0!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;opacity:.085;z-index:0;pointer-events:none}
.app-subnav button>.app-nav-text{display:inline;min-width:0;width:auto;height:auto;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit}
.operations-board-tabs>button{position:relative;overflow:hidden}
.operations-board-tabs>button>.operations-tab-watermark{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;width:60px;height:60px;min-width:0;background:transparent;border:0;opacity:.085;pointer-events:none;grid-row:auto}
.operations-board-tabs>button>.operations-tab-icon,.operations-board-tabs>button>strong,.operations-board-tabs>button>small{position:relative;z-index:1}
@media screen and (max-width:768px){
 .operations-board-page .operations-board-tabs{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important;padding:4px!important;border-radius:10px!important;margin-bottom:10px!important}
 .operations-board-page .operations-board-tabs>button{display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:23px auto!important;justify-items:center;align-items:center;min-width:0!important;min-height:62px!important;padding:7px 3px!important;gap:4px!important;border-radius:7px!important;text-align:center!important}
 .operations-board-page .operations-board-tabs>button>.operations-tab-icon{grid-row:1;align-self:center;width:23px;height:23px;background:transparent!important;border-radius:0}
 .operations-board-page .operations-board-tabs>button>strong{grid-row:2;font-size:10px!important;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
 .operations-board-page .operations-board-tabs>button>small{display:none!important}
 .operations-board-page .operations-board-tabs>button>.operations-tab-watermark{width:52px;height:52px;right:-5px;top:50%;grid-row:auto}
 .mobile-page-tabs .app-button-watermark{width:45px!important;height:45px!important;right:0!important;opacity:.075}
}

/* One selected surface, without a second white box beneath its text. */
.app-subnav button>.app-nav-text,.app-subnav button.active>.app-nav-text,.app-module-button>.app-nav-text,.app-module-button.active>.app-nav-text{display:inline!important;width:auto!important;min-width:0!important;height:auto!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:inherit!important;font:inherit!important}
.app-subnav button[data-page].active,.app-module-button[data-module].active{background:linear-gradient(120deg,var(--section-wash,#dff5f4),#f4fafb)!important;border-color:color-mix(in srgb,var(--section-ink,#0f766e) 35%,transparent)!important;box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--section-ink,#0f766e) 70%,transparent)!important}
.app-subnav button.active>span:not(.app-nav-text){background:rgba(255,255,255,.25)!important}
.operations-board-tabs>button.active{background:linear-gradient(135deg,#d8f3ed,#effaf7)!important;box-shadow:inset 0 -2px 0 #0d9488!important}
.movement-tabs__nav>button[aria-selected=true]{background:var(--movement-soft)!important;box-shadow:inset 0 -2px 0 var(--movement-accent)!important}
.holiday-period-tabs>button[aria-pressed=true]{background:linear-gradient(135deg,#dceff4,#edf7fb)!important;box-shadow:inset 0 -2px 0 #0284c7!important}
@media(max-width:768px){.roster-mobile-mode>button[aria-pressed=true],.mobile-workspace-modes>button[aria-pressed=true]{background:linear-gradient(135deg,#dceff2,#edf7fa)!important;box-shadow:inset 0 -2px 0 #0e7490!important}.mobile-page-tabs>button[aria-current=page]{box-shadow:inset 0 -2px 0 #059669!important}}

/* Shared signed-in portrait: reuse the optional self-profile image. */
.staff-photo-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;background:linear-gradient(145deg,#217c86,#305b86);color:#fff;font-weight:800}
.staff-photo-avatar img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.app-sidebar-profile .staff-photo-avatar{padding:0;border:2px solid rgba(255,255,255,.24)}
.settings-account-identity{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0}
.settings-account-identity .settings-account-copy{min-width:0}
.settings-account-copy p{overflow-wrap:anywhere}
.settings-profile-photo{width:92px;height:92px;border-radius:24px;border:3px solid #fff;box-shadow:0 5px 18px #0f4c5c22;font-size:26px}
.settings-account-copy>div{flex-wrap:wrap}
@media(max-width:600px){.settings-profile-photo{width:76px;height:76px;border-radius:20px}.settings-account-identity{gap:12px}.settings-account-copy h3{font-size:18px}}

.staff-workflow-panel{padding:14px 18px;margin:14px 0;border:1px solid #d3e4e8;border-radius:16px;background:linear-gradient(130deg,#f0fdfa,#f8fafc);color:#193b4b}
.staff-workflow-panel summary{cursor:pointer;font-weight:750}.staff-workflow-panel p{font-size:13px;line-height:1.5;color:#526776}
.staff-workflow-heading,.handover-summary{display:flex;justify-content:space-between;align-items:center;gap:12px}.handover-summary{padding-top:12px;font-size:13px}.handover-summary small,.photo-review small{display:block;margin-top:5px;color:#64748b}
.staff-workflow-panel button{padding:9px 13px;border:1px solid #bed7df;border-radius:10px;background:#e0f2f1;color:#185565;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.staff-workflow-panel button:disabled{opacity:.5;cursor:wait}
.staff-workflow-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.staff-workflow-form label{display:grid;gap:5px;font-size:13px}.staff-workflow-form select,.staff-workflow-form input{width:100%;box-sizing:border-box;padding:10px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#193b4b}.staff-workflow-form p{grid-column:1/-1}
.photo-preview,.photo-review{display:flex;align-items:center;gap:16px;margin-top:15px}.photo-preview img,.photo-review img{width:84px;height:108px;object-fit:cover;border-radius:8px;border:2px solid #fff;box-shadow:0 3px 12px #193b4b22}.photo-review{padding-top:15px;border-top:1px solid #d3e4e8}.photo-review button,.photo-preview button{margin:4px 8px 0 0}.photo-picker{display:grid;gap:8px;font-size:13px}
@media(max-width:600px){.staff-workflow-panel{padding:12px}.staff-workflow-form{grid-template-columns:1fr}.photo-review p{font-size:12px}.photo-review small{overflow-wrap:anywhere}.profile-photo-workflow{margin:8px 0 16px}}

@media(max-width:768px){.roster-mobile-view .roster-handover-controls{display:none}}

.staff-workflow-readonly button,.staff-workflow-readonly .staff-workflow-form{display:none}

/* Photo options are opened from the portrait, keeping the dashboard clear. */
button.overview-profile-photo-button{padding:0;appearance:none;cursor:pointer;font-family:inherit;line-height:1;overflow:hidden}
button.overview-profile-photo-button:focus-visible{outline:3px solid #67e8f9;outline-offset:7px}
button.overview-profile-photo-button:hover{filter:brightness(1.04)}
.profile-photo-dialog-content{margin:0;border:0;border-radius:0;padding:0;background:transparent;box-shadow:none}
.profile-photo-dialog-content .photo-picker input{max-width:100%}
@media(max-width:600px){.profile-photo-dialog-content{margin:0;padding:0}.profile-photo-dialog-content .photo-review{align-items:flex-start}}

@media(max-width:700px){
.reset-request-table,.reset-request-table tbody,.reset-request-table tr,.reset-request-table td{display:block;width:100%;box-sizing:border-box;min-width:0}
.reset-request-table thead{display:none}.reset-request-table td{padding:10px 0;white-space:normal;overflow-wrap:anywhere;border:0}
.reset-request-table td::before{content:attr(data-label);display:block;color:#64748b;font-size:11px;font-weight:700;margin-bottom:4px}
.reset-request-table td:last-child{display:flex;gap:8px;flex-wrap:wrap}.reset-request-table td:last-child::before{width:100%}
.reset-request-table .quick-btn{min-height:44px;flex:1 1 130px;white-space:normal}#pending-password-resets{padding:14px!important;min-width:0}
}

.fis-board{background:linear-gradient(120deg,#effbff,#f5f7ff);border:1px solid #bae6fd;border-radius:20px;padding:18px;margin-bottom:20px;color:#16374c}
.fis-board header{display:flex;align-items:center;justify-content:space-between;gap:12px}.fis-board h3{margin:4px 0}.fis-board p{font-size:13px;color:#526b7b}
.fis-row{display:flex;flex-wrap:wrap;gap:10px 18px;padding:12px 0;border-top:1px solid #cfe4ed;align-items:center;font-size:13px}.fis-row strong{color:#036985}.fis-board small{font-size:11px}

.flight-number-pair{display:flex;flex-wrap:wrap;gap:5px 14px;line-height:1.4}.flight-number-pair>span{white-space:nowrap}.flight-number-pair small{font-size:.55em;letter-spacing:.06em;color:#52758a}
.overview-flight-service .flight-number-pair{display:grid;font-size:16px;gap:4px}.overview-flight-service .flight-number-pair small{display:inline;font-size:9px}.overview-flight-details-compact small>em{display:block;font-size:9px;font-style:normal;color:#526b7b}
.fis-links{display:flex;gap:14px;flex-wrap:wrap;font-size:12px}.fis-view-tabs{display:flex;gap:6px;margin:14px 0}.fis-view-tabs button{padding:9px 14px;border:1px solid #cbdce9;border-radius:10px;background:#fff;color:#316080;font:inherit;font-size:13px;cursor:pointer}.fis-view-tabs button[aria-pressed=true]{background:#ddf3f4;border-color:#68adb6;color:#145460;font-weight:800}
.fis-tv-board{padding:18px;border-radius:15px;background:linear-gradient(125deg,#0b2034,#122f48);color:#f0f9ff}.fis-tv-board>header{padding-bottom:12px;border-bottom:1px solid #36556d}.fis-tv-board>header span{font-size:10px;letter-spacing:.1em}.fis-tv-board article{display:flex;justify-content:space-between;gap:16px;padding:20px 0;border-bottom:1px solid #29465e}.fis-tv-board article>div{display:grid;gap:7px}.fis-tv-board article>div+div{text-align:right}.fis-tv-board article strong{font-size:28px;color:#88e9ef;letter-spacing:.05em}.fis-tv-board article b{font-size:30px;font-variant-numeric:tabular-nums}.fis-tv-board article small,.fis-tv-board article span{font-size:10px;letter-spacing:.04em;color:#b8cddc}.fis-tv-board footer{padding-top:14px;font-size:10px;color:#90aabd}

.overview-flight-service .flight-number-pair{display:block;font-size:16px;white-space:normal;line-height:1.4}

.ramp-schedule-picker{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0;padding:12px 16px;border:1px solid #cbdfe8;border-radius:12px;background:#f0f9ff;color:#24536a;font-size:13px;font-weight:700}.ramp-schedule-picker select{flex:1;min-width:180px;max-width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;font:inherit}
/* Scoped to the FND notification workspace */
.notification-page{max-width:1100px;margin:0 auto;padding:12px 8px 35px;display:grid;gap:18px;color:#162d43}
.notification-intro{background:linear-gradient(112deg,#153b5a,#176a79);padding:24px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-radius:18px;color:#fff}
.notification-intro small{font-size:10px;letter-spacing:.18em;font-weight:800;opacity:.78}.notification-intro h2{font-size:27px;margin:5px 0 4px;color:#fff}.notification-intro p{font-size:13px;opacity:.85;margin:0}.notification-unread{white-space:nowrap;padding:8px 14px;border-radius:100px;border:1px solid #ffffff60;background:#ffffff1a;font-size:13px;font-weight:700}
.notification-phone-settings{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid #dce7ee;border-radius:16px;padding:20px;box-shadow:0 4px 12px #0d45600c}.notification-phone-settings h3,.notification-toolbar h3{font-size:16px;margin:0 0 5px}.notification-phone-settings p{font-size:13px;color:#64758b;max-width:540px;margin:0 0 6px}.notification-phone-settings small{font-size:12px;color:#64758b}
.notification-action-row,.notification-toolbar>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.notification-page button:not(.notification-item){cursor:pointer;border:1px solid #186d7e;border-radius:10px;background:#1a7082;color:white;padding:9px 14px;font-weight:700;font-size:12px}.notification-page button.secondary{background:#fff;border-color:#d6e1ea;color:#24526d}.notification-page button:disabled{opacity:.5;cursor:not-allowed}.notification-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 4px}.notification-toolbar h3{margin:0}
.notification-list{display:grid;gap:8px}.notification-item{width:100%;text-align:left;display:flex;gap:14px;padding:16px;align-items:flex-start;border:1px solid #e0e9ee;border-radius:14px;background:white;cursor:pointer;box-shadow:0 2px 8px #0b3d5010}.notification-item.unread{border-color:#87c7ce;background:#effaf9}.notification-item:hover{border-color:#49a5b0}.notification-item-symbol{flex:0 0 40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#dcecf5;color:#15536b;font-size:11px;font-weight:900}.notification-item-copy{display:grid;gap:4px;flex:1}.notification-item-copy strong{font-size:14px}.notification-item-copy span{font-size:13px;line-height:1.4;color:#526578}.notification-item-copy small{font-size:11px;color:#7d8d9c}.notification-dot{margin-top:8px;flex:0 0 8px;height:8px;border-radius:100%;background:#0d9f9a}.notification-empty{padding:35px;text-align:center;background:#fff;border:1px dashed #c7d8e3;border-radius:12px;color:#6c8193}
.app-alert-button{border:1px solid #d5e3ec;background:#fff;color:#214661;border-radius:10px;padding:9px 13px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-size:13px}.app-alert-count{background:#a91c35;color:#fff;min-width:20px;height:20px;border-radius:100px;display:inline-grid;place-items:center;font-size:11px;padding:0 5px}
@media(max-width:700px){.notification-page{padding:2px 0 25px}.notification-intro{padding:19px;align-items:flex-start;flex-direction:column}.notification-intro h2{font-size:24px}.notification-phone-settings{align-items:stretch;flex-direction:column;padding:16px}.notification-toolbar{align-items:stretch;flex-direction:column}.notification-action-row button{flex:1}}
/* src/styles/RampCheck.css */

/* ==================== SCREEN LAYOUT ==================== */
.ramp-container { background: #e2e8f0; padding: 20px; border-radius: 8px; overflow-x: auto; }
.ramp-sheet { font-family: Arial, sans-serif; font-size: 11px; color: #000; max-width: 1100px; margin: 0 auto; background: #fff; padding: 15px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); border-radius: 4px; }
.ramp-sheet .flight-form { border: 1px solid #000; padding: 10px; background: #fff; }
.ramp-sheet .company-header { display: flex; flex-direction: column; align-items: center; margin-bottom: 15px; width: 100%; }
.ramp-sheet .company-header img { height: 80px; object-fit: contain; margin-bottom: 10px; }
.ramp-sheet .company-title { font-weight: bold; font-size: 16px; text-align: center; }
.ramp-sheet .company-subtitle { font-weight: bold; font-size: 14px; text-align: center; margin-top: 2px; }
.ramp-sheet .company-unit-text { font-weight: bold; font-size: 13px; text-align: left; width: 100%; margin-top: 4px; }
.ramp-sheet .title { text-align: center; font-size: 14px; font-weight: bold; text-decoration: underline; margin-bottom: 10px; margin-top: 10px; }

.ramp-sheet .main-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 15px; }
.ramp-sheet .bottom-section { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 15px; }
.ramp-sheet .bottom-section-2 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 15px; }

.ramp-sheet .inner-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.ramp-sheet .inner-table th, .ramp-sheet .inner-table td { border: 1px solid #000; padding: 3px 5px; text-align: center; vertical-align: middle; }
.ramp-sheet .inner-table th { background: #f1f5f9; font-size: 11px; font-weight: bold; }
.ramp-sheet .inner-table td:first-child { width: 45%; white-space: nowrap; text-align: left; padding-left: 8px; }
.ramp-sheet .inner-table td:nth-child(2), .ramp-sheet .inner-table td:nth-child(3) { width: 27.5%; }

.ramp-sheet .inner-table input { 
  width: 100%; max-width: 100px; margin: 0 auto; 
  border: none; text-align: center; font-family: inherit; font-size: 12px; 
  background: transparent !important; color: #000 !important; padding: 2px; 
}
.ramp-sheet .inner-table input:focus { outline: none; background: transparent !important; }
.ramp-sheet .info-table td:first-child { width: 35% !important; }
.ramp-sheet .info-table td:nth-child(2) { width: 65% !important; padding: 0 !important; }
.ramp-sheet .info-table input { max-width: 100% !important; text-align: left !important; padding-left: 8px !important; }

.ramp-sheet .special-load-textarea { width: 100%; height: 46px; border: none; background: transparent !important; font-family: inherit; font-size: 10px; resize: none; padding: 4px; text-align: left; outline: none; color: #000 !important; }
.ramp-sheet .special-load-textarea:focus { background: transparent !important; }
.ramp-sheet input[readonly], .ramp-sheet textarea[readonly] { background-color: transparent !important; color: #475569; cursor: not-allowed; border: none; }

.ramp-sheet .header-row { display: flex; margin-bottom: 4px; align-items: center; }
.ramp-sheet .header-label { font-weight: bold; width: 80px; font-size: 12px; }
.ramp-sheet .header-value { flex: 1; border-bottom: 1px solid #000; padding: 2px 4px; font-family: inherit; font-size: 12px; background: transparent !important; color: #000 !important; }
.ramp-sheet .header-value:focus { outline: none; background: transparent !important; }

.ramp-sheet .ac-type-wrapper, .ramp-sheet .route-wrapper { display: flex; flex: 1; align-items: center; gap: 5px; }
.ramp-sheet .route-wrapper { padding: 2px 5px; }
.ramp-sheet .btn-plus { background: #e2e8f0; border: 1px solid #cbd5e1; border-radius: 4px; cursor: pointer; padding: 1px 5px; font-size: 11px; font-weight: bold; color: #0f172a; }
.ramp-sheet .route-select { padding: 2px; border-radius: 4px; border: 1px solid #cbd5e1; font-size: 11px; max-width: 80px; background: #f8fafc; cursor: pointer; }

.ramp-sheet .footer-section { display: flex; gap: 15px; border-top: 1px solid #000; padding-top: 10px; flex-wrap: wrap; }
.ramp-sheet .footer-box { flex: 1; min-width: 200px; }
.ramp-sheet .footer-box label { font-weight: bold; display: block; margin-bottom: 4px; }
.ramp-sheet .footer-box textarea { width: 100%; border: 1px solid #000; padding: 5px; font-family: inherit; font-size: 12px; resize: vertical; height: 50px; background: transparent !important; color: #000 !important; }

/* ==================== MOBILE RESPONSIVE (SCREEN ONLY) ==================== */
@media screen and (max-width: 768px) {
  .ramp-container { padding: 0 !important; background: transparent !important; }
  .ramp-sheet { padding: 10px; box-shadow: none; }
  .ramp-sheet .main-grid { grid-template-columns: 1fr; gap: 10px; }
  .ramp-sheet .bottom-section { grid-template-columns: 1fr; gap: 10px; }
  .ramp-sheet .bottom-section-2 { grid-template-columns: 1fr; gap: 10px; }
  .ramp-sheet .inner-table input, .ramp-sheet .header-value { font-size: 14px; padding: 6px; height: 32px; }
  .ramp-sheet .company-header img { height: 50px; }
  .ramp-sheet .company-title { font-size: 14px; }
  .ramp-sheet .company-subtitle { font-size: 12px; }
  .no-print { flex-wrap: wrap; justify-content: center !important; }
  .no-print .quick-btn { flex: 1; min-width: 45%; font-size: 12px; }
}

/* ==========================================
   A4 PRINT LAYOUT (YOUR EXACT SNIPPET)
   ========================================== */

@page {
  size: A4 portrait;
  margin: 5mm;
}

@media print {

  html,
  body {
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Reset application layout */
  html,
  body,
  #root,
  .dashboard-layout,
  .main-content,
  .page-wrapper,
  .page-content,
  .modal-backdrop,
  .modal-content,
  .modal-scrollable-body {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    display: block !important;
  }

  /* Hide UI */
  .sidebar,
  .top-tabs-container,
  .main-app-header,
  .staff-header,
  .week-nav,
  .dept-tabs,
  .no-print,
  .reorder-col,
  .bulk-form,
  .staff-form,
  button,
  .quick-btn,
  .add-staff-btn,
  .export-btn,
  .ops-tabs,
  .modal-header {
    display: none !important;
  }

  /* Only show ramp sheet */
  body > #root * {
    visibility: hidden;
  }

  body.printing-ramp .ramp-container,
  body.printing-ramp .ramp-container *,
  body.printing-ramp .modal-backdrop,
  body.printing-ramp .modal-backdrop * {
    visibility: visible !important;
  }

  .ramp-container {
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    background: transparent !important;
  }

  .ramp-sheet {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;

    /* Slightly larger than before */
    zoom: 0.97;

    font-size: 10px !important;
  }

  .ramp-sheet .flight-form {
    border: 1px solid #000 !important;
    padding: 10px !important;
  }

  /* Grids */
  .ramp-sheet .main-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px !important;
    margin-bottom: 10px !important;
  }

  .ramp-sheet .bottom-section {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px !important;
    margin-bottom: 10px !important;
  }

  .ramp-sheet .bottom-section-2 {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px !important;
    margin-bottom: 10px !important;
  }

  .ramp-sheet .bottom-section > *,
  .ramp-sheet .bottom-section-2 > *,
  .ramp-sheet .main-grid > * {
    min-width: 0 !important;
  }

  /* Header */
  .ramp-sheet .company-header {
    margin-bottom: 8px !important;
  }

  .ramp-sheet .company-header img {
    height: 50px !important;
  }

  .ramp-sheet .company-title {
    font-size: 13px !important;
  }

  .ramp-sheet .company-subtitle {
    font-size: 11px !important;
  }

  .ramp-sheet .company-unit-text {
    font-size: 10px !important;
  }

  .ramp-sheet .title {
    margin: 8px 0 !important;
    font-size: 12px !important;
  }

  /* Header rows */
  .ramp-sheet .header-row {
    margin-bottom: 4px !important;
  }

  .ramp-sheet .header-label {
    width: 65px !important;
    font-size: 10px !important;
  }

  /* Tables */
  .ramp-sheet .inner-table {
    width: 100% !important;
    table-layout: fixed !important;
  }

  .ramp-sheet .inner-table th,
  .ramp-sheet .inner-table td {
    padding: 4px 4px !important;
    font-size: 9px !important;
    line-height: 1.35 !important;
    word-break: break-word;
    overflow-wrap: break-word;
  }

  .ramp-sheet .inner-table td:first-child {
    white-space: normal !important;
  }

  /* Inputs */
  .ramp-sheet .inner-table input,
  .ramp-sheet .header-value {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    height: 26px !important;
    line-height: 26px !important;

    font-size: 10px !important;
    padding: 0 2px !important;
  }

  .ramp-sheet .header-value {
    border-bottom: 1px solid #000 !important;
  }

  /* Special Load */
  .ramp-sheet .special-load-textarea {
    height: 45px !important;
    font-size: 9.5px !important;
    padding: 3px !important;
  }

  /* Footer */
  .ramp-sheet .footer-section {
    gap: 8px !important;
    padding-top: 8px !important;
  }

  .ramp-sheet .footer-box label {
    font-size: 10px !important;
  }

  .ramp-sheet .footer-box textarea {
    height: 50px !important;
    font-size: 10px !important;
    padding: 4px !important;
  }

  /* Print cleanup */
  .ramp-sheet .route-select,
  .ramp-sheet .btn-plus {
    display: none !important;
  }

  .ramp-sheet .route-wrapper {
    display: block !important;
    padding: 0 !important;
  }

  /* Allow browser to manage page fit */
  .ramp-sheet {
    page-break-inside: auto !important;
  }

  .ramp-sheet table,
  .ramp-sheet tr,
  .ramp-sheet td {
    page-break-inside: avoid !important;
  }
}
@media print {
  body.printing-ramp:not(.printing-modal) .ramp-container {
    position: absolute !important;
    inset: 0 auto auto 0 !important;
    width: 100% !important;
  }
  body.printing-ramp .ramp-sheet,
  body.printing-ramp .flight-form {
    page-break-after: avoid !important;
    break-after: avoid-page !important;
  }
}

/* Phase 16: keep the printable Ramp Form in normal document flow.
   Absolute positioning left an extra empty sheet in Chromium print preview.
   This targets the main Ramp Form only, not its separately printed modals. */
@media print {
  body.printing-ramp:not(.printing-modal) .ramp-workspace-page,
  body.printing-ramp:not(.printing-modal) .ramp-workspace-page > div,
  body.printing-ramp:not(.printing-modal) .ramp-container {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  body.printing-ramp:not(.printing-modal) .ramp-workspace-page {
    display: block !important;
  }

  body.printing-ramp:not(.printing-modal) .ramp-container {
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    box-shadow: none !important;
  }

  body.printing-ramp:not(.printing-modal) .ramp-sheet {
    break-before: auto !important;
    break-after: auto !important;
    page-break-before: auto !important;
    page-break-after: auto !important;
  }

  body.printing-ramp:not(.printing-modal) .ramp-workspace-page .no-print {
    display: none !important;
  }
}

/* Phase 16B: saved Ramp report modal print isolation.
   Do not change the live Ramp sheet: only the saved-report modal is targeted. */
@media print {
  body.printing-ramp.printing-modal .ramp-reports-summary,
  body.printing-ramp.printing-modal .ramp-reports-controls,
  body.printing-ramp.printing-modal .ramp-reports-register {
    display: none !important;
  }

  body.printing-ramp.printing-modal .ramp-reports-workspace {
    display: block !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  body.printing-ramp.printing-modal #viewReportModal {
    display: block !important;
    position: static !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.printing-ramp.printing-modal #viewReportModal .modal-scrollable-body {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  body.printing-ramp.printing-modal .modal-backdrop {
    position: static !important;
    inset: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }

  body.printing-ramp.printing-modal .ramp-sheet {
    break-before: auto !important;
    break-after: auto !important;
    page-break-before: auto !important;
    page-break-after: auto !important;
  }
}
/* First-login screen is an independent route-level gate, not a dismissible overlay. */
.fnd-password-gate {
  min-height: 100vh;
  min-height: 100dvh;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(140deg, #101e34 0%, #213e5a 55%, #102638 100%);
  padding: 28px 16px;
  box-sizing: border-box;
  overflow-y: auto;
}
.fnd-password-gate-card {
  width: 100%;
  max-width: 470px;
  padding: 30px;
  border-radius: 18px;
  box-sizing: border-box;
  background: #fff;
  color: #15243a;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.24);
}
.fnd-password-gate-brand {
  font-size: 25px;
  font-weight: 850;
  color: #0f4c81;
  margin-bottom: 18px;
  letter-spacing: 0.035em;
}
.fnd-password-gate-brand span {
  font-size: 11px;
  letter-spacing: 0;
  font-weight: 600;
  color: #627083;
  padding-left: 8px;
}
.fnd-password-gate-card h3 { margin: 0 0 10px; font-size: 22px; line-height: 1.2; }
.fnd-password-gate-intro { margin: 0 0 22px; color: #556579; font-size: 14px; line-height: 1.55; }
.fnd-password-gate-card .input-group label { display: block; margin-bottom: 6px; font-weight: 600; }
.fnd-password-gate-card input {
  min-height: 44px;
  border: 1px solid #b8c5d6;
  border-radius: 9px;
  box-sizing: border-box;
  padding: 10px 12px;
  background: #fff;
  color: #17263b;
}
.fnd-password-gate-card input:focus { outline: 2px solid #2c77c5; outline-offset: 2px; }
.fnd-password-visibility-toggle {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  padding: 5px;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: #475569;
  font-size: 12px;
}
.fnd-password-hint { font-size: 12px; color: #627083; line-height: 1.5; margin: 6px 0 0; }
.fnd-password-actions { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; margin-top: 20px; }
.fnd-password-actions .submit-btn { min-height: 42px; }
@media (max-width: 480px) {
  .fnd-password-gate { padding: 16px 12px; align-items: flex-start; }
  .fnd-password-gate-card { padding: 22px 17px; margin: auto 0; border-radius: 14px; }
  .fnd-password-gate-card h3 { font-size: 20px; }
  .fnd-password-actions .submit-btn { flex-grow: 1; }
}
.login-container{min-height:100vh;display:grid;grid-template-columns:minmax(380px,1.05fr) minmax(440px,.95fr);overflow:hidden;background:#f8fafc;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.login-brand-panel{position:relative;display:flex;min-height:100vh;box-sizing:border-box;flex-direction:column;justify-content:space-between;overflow:hidden;padding:52px;color:#fff;background:radial-gradient(circle at 18% 12%,rgba(34,211,238,.2),transparent 25%),radial-gradient(circle at 80% 84%,rgba(16,185,129,.16),transparent 28%),linear-gradient(145deg,#082f49,#0c4a6e 58%,#134e4a)}.login-brand-panel::before,.login-brand-panel::after{position:absolute;border:1px solid rgba(255,255,255,.1);border-radius:50%;content:""}.login-brand-panel::before{right:-160px;bottom:-170px;width:520px;height:520px}.login-brand-panel::after{right:55px;bottom:55px;width:210px;height:210px}.login-brand-mark{position:relative;z-index:1;display:grid;width:58px;height:58px;place-items:center;border:1px solid rgba(255,255,255,.22);border-radius:17px;color:#a5f3fc;background:rgba(255,255,255,.09);font-size:16px;font-weight:950;letter-spacing:.08em}.login-brand-panel>div:nth-child(2){position:relative;z-index:1;max-width:620px}.login-brand-panel>div:nth-child(2)>span{color:#67e8f9;font-size:10px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.login-brand-panel h1{max-width:590px;margin:13px 0 17px;font-size:clamp(38px,5vw,68px);line-height:.99;letter-spacing:-.055em}.login-brand-panel p{max-width:540px;margin:0;color:#bae6fd;font-size:15px;line-height:1.65}.login-feature-list{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:10px}.login-feature-list span{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(255,255,255,.14);border-radius:999px;color:#e0f2fe;background:rgba(255,255,255,.07);font-size:9px;font-weight:800}.login-feature-list i{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.12)}.login-card-panel{display:grid;min-height:100vh;place-items:center;padding:38px}.login-box{width:100%;max-width:430px;box-sizing:border-box;padding:38px;border:1px solid #e2e8f0;border-radius:24px;background:#fff;box-shadow:0 24px 55px rgba(15,23,42,.1)}.login-box .header{margin-bottom:27px;text-align:left}.login-box .header>span{color:#0891b2;font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.login-box .header h1{margin:6px 0 0;color:#0f172a;font-size:31px;letter-spacing:-.035em}.login-box .header p{margin:7px 0 0;color:#64748b;font-size:12px}.role-toggle{display:flex;margin-bottom:17px;padding:4px;border-radius:11px;background:#eef2f7}.role-toggle button{min-height:40px;flex:1;border:0;border-radius:8px;color:#64748b;background:transparent;font:inherit;font-size:10px;font-weight:850;cursor:pointer}.role-toggle button.active{color:#fff;background:#0e7490;box-shadow:0 5px 13px rgba(14,116,144,.22)}.subtitle{margin:0 0 20px;color:#64748b;font-size:11px;line-height:1.5}.login-form{display:flex;flex-direction:column;gap:15px}.input-group{display:flex;flex-direction:column;gap:6px}.input-group label{color:#334155;font-size:10px;font-weight:850}.input-group input,.login-form select{width:100%;min-height:45px;box-sizing:border-box;padding:0 13px;border:1px solid #cbd5e1;border-radius:10px;color:#172033;background:#f8fafc;font:inherit;font-size:12px;outline:0}.input-group input:focus,.login-form select:focus{border-color:#0891b2;box-shadow:0 0 0 3px rgba(8,145,178,.1);background:#fff}.input-group>div>button{right:8px!important;padding:5px!important;color:#0e7490!important;font-size:8px!important;font-weight:850!important;text-transform:uppercase}.login-form .submit-btn{min-height:47px;margin-top:5px;border:0;border-radius:10px;color:#fff;background:linear-gradient(135deg,#0e7490,#0f766e);font:inherit;font-size:12px;font-weight:900;cursor:pointer;box-shadow:0 9px 20px rgba(14,116,144,.2)}.login-form .submit-btn:disabled{cursor:wait;opacity:.65}.footer-links{margin-top:22px;padding-top:18px;border-top:1px solid #edf2f7;text-align:center;font-size:10px}.footer-links a{color:#0369a1;font-weight:800;text-decoration:none}.footer-links p{margin:8px 0 0;color:#94a3b8}.reset-share-modal{max-width:520px!important}.reset-share-kicker{color:#2563eb;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.reset-share-modal h3{margin:5px 0 7px}.reset-share-modal>p{margin:0 0 13px;color:#64748b;font-size:11px}.reset-share-modal textarea{width:100%;box-sizing:border-box;padding:13px;border:1px solid #cbd5e1;border-radius:10px;color:#172033;background:#f8fafc;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;resize:none}.reset-share-details{display:flex;justify-content:space-between;margin:10px 0 18px;padding:9px 11px;border-radius:8px;color:#475569;background:#eff6ff;font-size:9px}.reset-share-details strong{color:#1d4ed8}@media(max-width:900px){.login-container{grid-template-columns:1fr}.login-brand-panel{min-height:auto;padding:28px}.login-brand-panel>div:nth-child(2){margin:65px 0}.login-brand-panel h1{font-size:42px}.login-card-panel{min-height:auto;padding:28px}.login-feature-list{display:none}}@media(max-width:520px){.login-brand-panel{padding:22px}.login-brand-panel>div:nth-child(2){margin:38px 0 15px}.login-brand-panel h1{font-size:34px}.login-card-panel{padding:16px}.login-box{padding:25px 20px;border-radius:18px}}
/* Add this to the bottom of your CSS file */
.table-scroll-wrapper {
  max-height: 65vh; /* Takes up 65% of the screen height */
  overflow-y: auto;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
}

/* Optional: Make the header stick to the top when scrolling */
.table-scroll-wrapper thead th {
  position: sticky;
  top: 0;
  background-color: #f8fafc;
  z-index: 10;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}:root {
  --text: #6b6375;
  --text-h: #08060d;
  --bg: #fff;
  --border: #e5e4e7;
  --code-bg: #f4f3ec;
  --accent: #aa3bff;
  --accent-bg: rgba(170, 59, 255, 0.1);
  --accent-border: rgba(170, 59, 255, 0.5);
  --social-bg: rgba(244, 243, 236, 0.5);
  --shadow: rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px;
  --sans: system-ui, 'Segoe UI', Roboto, sans-serif;
  --heading: system-ui, 'Segoe UI', Roboto, sans-serif;
  --mono: ui-monospace, Consolas, monospace;
  font: 18px/145% var(--sans);
  letter-spacing: 0.18px;
  color-scheme: light dark;
  color: var(--text);
  background: var(--bg);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  @media (max-width: 1024px) { font-size: 16px; }
}

@media (prefers-color-scheme: dark) {
  :root {
    --text: #9ca3af;
    --text-h: #f3f4f6;
    --bg: #16171d;
    --border: #2e303a;
    --code-bg: #1f2028;
    --accent: #c084fc;
    --accent-bg: rgba(192, 132, 252, 0.15);
    --accent-border: rgba(192, 132, 252, 0.5);
    --social-bg: rgba(47, 48, 58, 0.5);
    --shadow: rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px;
  }
  #social .button-icon { filter: invert(1) brightness(2); }
}

#root {
  width: 1126px;
  max-width: 100%;
  margin: 0 auto;
  text-align: center;
  border-inline: 1px solid var(--border);
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
}

body { margin: 0; }
h1, h2 { font-family: var(--heading); font-weight: 500; color: var(--text-h); }
h1 { font-size: 56px; letter-spacing: -1.68px; margin: 32px 0; @media (max-width: 1024px) { font-size: 36px; margin: 20px 0; } }
h2 { font-size: 24px; line-height: 118%; letter-spacing: -0.24px; margin: 0 0 8px; @media (max-width: 1024px) { font-size: 20px; } }
p { margin: 0; }
code, .counter { font-family: var(--mono); display: inline-flex; border-radius: 4px; color: var(--text-h); }
code { font-size: 15px; line-height: 135%; padding: 4px 8px; background: var(--code-bg); }

input, select, textarea { color: #1e293b !important; background-color: #ffffff !important; -webkit-text-fill-color: #1e293b !important; color-scheme: light !important; }
input:read-only, textarea:read-only, input:disabled, select:disabled { background-color: #f1f5f9 !important; color: #64748b !important; -webkit-text-fill-color: #64748b !important; }

.ramp-sheet input, .ramp-sheet textarea, .ramp-sheet select { color: #000000 !important; -webkit-text-fill-color: #000000 !important; }
.ramp-sheet input[readonly], .ramp-sheet textarea[readonly] { color: #475569 !important; -webkit-text-fill-color: #475569 !important; }

/* ==========================================
   PRINT STYLES (GLOBAL ISOLATION)
   ========================================== */
@media print {
  /* Collapse the Flexbox layout to prevent blank pages */
  html, body, #root, .dashboard-layout, .main-content, .page-wrapper, .page-content, .modal-backdrop, .modal-content, .modal-scrollable-body {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    display: block !important; 
    flex: none !important;
  }

  /* Hide UI completely so it takes zero space */
  .sidebar, .top-tabs-container, .main-app-header, .staff-header, 
  .week-nav, .dept-tabs, .no-print, .reorder-col, .bulk-form, .staff-form,
  button, .quick-btn, .add-staff-btn, .export-btn, .ops-tabs, .modal-header {
    display: none !important;
  }

  /* Hide everything by default */
  body > #root * { visibility: hidden; }
  
  /* Show ONLY the ramp form */
  body.printing-ramp .ramp-container, 
  body.printing-ramp .ramp-container *,
  body.printing-ramp .modal-backdrop,
  body.printing-ramp .modal-backdrop * { 
    visibility: visible !important; 
  }
}
/* Phase 3 application-wide layout normalization */
:root {
  color-scheme: light;
  --text: #486581;
  --text-h: #102a43;
  --bg: #f4f7f9;
  --border: #dbe4ea;
  --accent: #0f766e;
  font-size: 16px;
}

html,
body {
  min-width: 320px;
  min-height: 100%;
  background: #f4f7f9;
}

body {
  color: #102a43;
}

#root {
  width: 100%;
  max-width: none;
  margin: 0;
  border: 0;
  text-align: left;
}

button,
input,
select,
textarea {
  font-family: inherit;
}