/**
 * eGovDTR v1.2 Design System - Unified Executive Glassmorphism Architecture
 * Design System Baseline: Login Page Brand Identity
 */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Roboto+Mono:wght@400;500;600;700&display=swap');

:root {
  /* Obsidian Deep Space Canvas Tokens */
  --bg-obsidian: #0F172A;
  /* Deep Space Obsidian Canvas Background */
  --bg-app: #0F172A;
  /* Full Application Background */
  --bg-glass: rgba(255, 255, 255, 0.05);
  /* Translucent Glass Panels */
  --bg-sidebar: rgba(15, 23, 42, 0.95);
  /* Frosted Dark Anchor Sidebar */
  --bg-navbar: rgba(15, 23, 42, 0.85);
  /* Frosted Top Navigation Bar */
  --bg-table-header: rgba(15, 23, 42, 0.8);
  /* Dark Glass Table Header */

  /* Login Brand Identity Accents */
  --brand-indigo: #6366F1;
  /* Royal Indigo */
  --brand-cyan: #06B6D4;
  /* Electric Cyan */
  --brand-gradient: linear-gradient(135deg, #6366F1 0%, #06B6D4 100%);
  --brand-glow: rgba(6, 182, 212, 0.35);

  /* High-Contrast Readability Typography */
  --text-main: #FFFFFF;
  /* Crisp Pure White Headings & Values */
  --text-body: #CBD5E1;
  /* High Contrast Light Slate Body Copy */
  --text-muted: #94A3B8;
  /* Field Labels & Subtitles */
  --text-dim: #64748B;
  /* Secondary Captions */
  --text-on-dark: #F8FAFC;
  /* Sidebar White Text */

  /* Status Colors */
  --status-success: #10B981;
  /* Emerald Green */
  --status-warning: #F59E0B;
  /* Amber Gold */
  --status-danger: #F43F5E;
  /* Rose Crimson */
  --status-info: #06B6D4;
  /* Electric Cyan */

  /* Glass Borders & Elevation */
  --glass-bg: rgba(255, 255, 255, 0.05);
  --glass-border: rgba(255, 255, 255, 0.12);
  --glass-shadow: 0 20px 50px rgba(0, 0, 0, 0.4);

  /* Geometry */
  --font-sans: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: 'Roboto Mono', monospace;

  --radius-lg: 16px;
  --radius-md: 10px;
  --radius-sm: 8px;
  --radius-pill: 20px;
}

html,
body {
  background-color: var(--bg-obsidian) !important;
  background: var(--bg-obsidian) !important;
  color: #CBD5E1 !important;
  font-family: var(--font-sans) !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
}

body.v1_2-body {
  font-family: var(--font-sans);
  background-color: var(--bg-obsidian);
  color: #FFFFFF;
  margin: 0;
  padding: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow-x: hidden;
}

.ambient-glow-1 {
  position: absolute;
  top: -10%;
  left: -10%;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(99, 102, 241, 0.25) 0%, rgba(15, 23, 42, 0) 70%);
  border-radius: 50%;
  z-index: 0;
  pointer-events: none;
}

.ambient-glow-2 {
  position: absolute;
  bottom: -10%;
  right: -10%;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(6, 182, 212, 0.2) 0%, rgba(15, 23, 42, 0) 70%);
  border-radius: 50%;
  z-index: 0;
  pointer-events: none;
}

.glass-login-card {
  background: var(--glass-bg);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--glass-shadow);
  padding: 40px 32px;
  position: relative;
  z-index: 10;
  width: 100%;
  max-width: 440px;
  box-sizing: border-box;
  margin: 0 auto;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.glass-login-card:hover {
  box-shadow: 0 25px 60px rgba(6, 182, 212, 0.15);
}

.brand-badge {
  width: 70px;
  height: 70px;
  border-radius: 50%;
  background: var(--brand-gradient);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 15px auto;
  box-shadow: 0 0 25px var(--brand-glow);
}

.brand-badge i {
  font-size: 38px;
  color: #FFFFFF;
}

.login-title {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 26px;
  color: #FFFFFF;
  margin: 0;
  letter-spacing: -0.02em;
}

.login-subtitle {
  font-size: 13px;
  color: #94A3B8;
  margin-top: 4px;
  margin-bottom: 25px;
}

.input-field-custom {
  position: relative;
  margin-bottom: 22px;
  width: 100%;
  box-sizing: border-box;
}

.input-field-custom i.prefix {
  position: absolute;
  top: 13px;
  left: 14px;
  color: #94A3B8;
  font-size: 22px;
  transition: color 0.3s ease;
  z-index: 2;
  pointer-events: none;
}

.input-field-custom input[type=text],
.input-field-custom input[type=password] {
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 12px 42px 12px 46px !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: var(--radius-md) !important;
  color: #FFFFFF !important;
  font-family: var(--font-sans);
  font-size: 14px !important;
  outline: none !important;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, background 0.3s ease !important;
  height: 48px !important;
  margin: 0 !important;
  display: block !important;
}

.input-field-custom input[type=text]:focus,
.input-field-custom input[type=password]:focus {
  border: 1px solid var(--brand-cyan) !important;
  border-bottom: 1px solid var(--brand-cyan) !important;
  box-shadow: 0 0 15px rgba(6, 182, 212, 0.3) !important;
  background: rgba(255, 255, 255, 0.08) !important;
}

.pwd-toggle {
  position: absolute;
  right: 14px;
  top: 14px;
  color: #94A3B8;
  cursor: pointer;
  user-select: none;
  font-size: 20px;
  transition: color 0.3s ease;
}

.pwd-toggle:hover {
  color: #FFFFFF;
}

.btn-login-gradient {
  width: 100%;
  height: 48px;
  background: var(--brand-gradient);
  border: none;
  border-radius: var(--radius-md);
  color: #FFFFFF;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 15px;
  letter-spacing: 0.03em;
  cursor: pointer;
  box-shadow: 0 8px 25px var(--brand-glow);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.btn-login-gradient:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(6, 182, 212, 0.5);
}

.login-footer-text {
  font-size: 11px;
  color: #64748B;
  line-height: 1.5;
  margin-top: 25px;
}

.login-footer-text a {
  color: var(--brand-cyan);
  text-decoration: none;
}

/* ==========================================================================
   UNIFIED EXECUTIVE GLASSMORPHISM - ENTIRE APPLICATION WORKSPACE
   ========================================================================== */

/* Obsidian Canvas Base Reset & Visibility Normalization */
main.a3 {
  background-color: var(--bg-obsidian) !important;
  color: #CBD5E1 !important;
  font-family: var(--font-sans) !important;
  min-height: 100vh;
  padding-left: 300px;
  padding-bottom: 50px;
  position: relative;
  box-sizing: border-box;
}

@media only screen and (max-width: 992px) {
  main.a3 {
    padding-left: 0 !important;
  }
}

/* High Contrast White Headings */
main.a3 h1,
main.a3 h2,
main.a3 h3,
main.a3 h4,
main.a3 h5,
main.a3 h6,
main.a3 .card-title,
main.a3 .title,
main.a3 .black-text {
  color: #FFFFFF !important;
  font-family: var(--font-sans) !important;
}

/* High Contrast Readable Light Slate Copy */
main.a3 p,
main.a3 span,
main.a3 label,
main.a3 td,
main.a3 th,
main.a3 .grey-text,
main.a3 .grey-text.text-darken-1,
main.a3 .grey-text.text-darken-2,
main.a3 .grey-text.text-darken-3,
main.a3 .grey-text.text-darken-4 {
  color: #CBD5E1 !important;
  font-family: var(--font-sans);
}

main.a3 b,
main.a3 strong {
  color: #FFFFFF !important;
}

/* Top Navigation Bar */
.navbar-fixed nav.a2 {
  background: var(--bg-navbar) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-bottom: 1px solid var(--glass-border) !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3) !important;
}

.navbar-fixed nav .breadcrumb {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 15px;
  color: #FFFFFF !important;
}

.navbar-fixed nav .breadcrumb:before {
  color: var(--brand-cyan) !important;
}

.navbar-fixed nav i.material-icons {
  color: #FFFFFF !important;
}

/* Frosted Dark Anchor Sidebar Drawer */
.sidenav.exec-sidenav {
  background-color: var(--bg-sidebar) !important;
  border-right: 1px solid var(--glass-border) !important;
  box-shadow: 10px 0 30px rgba(0, 0, 0, 0.4) !important;
  width: 280px !important;
}

/* Profile Section Header */
.sidenav.exec-sidenav .user-view {
  padding: 16px 20px 12px 20px !important;
  background: linear-gradient(180deg, rgba(30, 41, 59, 0.9) 0%, rgba(11, 17, 32, 0.98) 100%) !important;
  border-bottom: 1px solid var(--glass-border) !important;
  margin-bottom: 6px !important;
}

.sidenav.exec-sidenav .user-view .circle {
  width: 44px !important;
  height: 44px !important;
  border: 2px solid var(--brand-cyan) !important;
  box-shadow: 0 0 12px var(--brand-glow) !important;
}

.sidenav.exec-sidenav .nav-group-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--brand-cyan);
  padding: 12px 24px 4px 24px;
  text-transform: uppercase;
}

/* Sidebar Navigation Items */
.sidenav.exec-sidenav li a {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 14px;
  color: #CBD5E1 !important;
  padding: 0 24px !important;
  height: 42px !important;
  line-height: 42px !important;
  border-radius: 0 21px 21px 0;
  margin-right: 12px;
  transition: all 0.2s ease !important;
}

.sidenav.exec-sidenav li a i.material-icons {
  color: #CBD5E1 !important;
  margin-right: 16px !important;
  line-height: 42px !important;
  transition: color 0.2s ease !important;
}

.sidenav.exec-sidenav li a:hover,
.sidenav.exec-sidenav li a:focus,
.sidenav.exec-sidenav .collapsible-header:hover,
.sidenav.exec-sidenav .collapsible-header:focus {
  background: rgba(255, 255, 255, 0.06) !important;
  color: #FFFFFF !important;
  outline: none !important;
}

.sidenav.exec-sidenav li a:hover i.material-icons,
.sidenav.exec-sidenav .collapsible-header:hover i.material-icons {
  color: var(--brand-cyan) !important;
}

/* Active Menu Pill Highlight (STRICT LOGIN BRAND GRADIENT) */
.sidenav.exec-sidenav li.active>a,
.sidenav.exec-sidenav li.active>.collapsible-header {
  background: var(--brand-gradient) !important;
  color: #FFFFFF !important;
  font-weight: 700 !important;
  border-left: none !important;
  box-shadow: 0 4px 20px var(--brand-glow) !important;
}

.sidenav.exec-sidenav li.active>a i.material-icons,
.sidenav.exec-sidenav li.active>.collapsible-header i.material-icons {
  color: #FFFFFF !important;
}

/* Softened Dividers */
.sidenav.exec-sidenav .divider {
  background-color: rgba(255, 255, 255, 0.08) !important;
  margin: 6px 16px !important;
  height: 1px !important;
}

/* Collapsible Accordion Header */
.sidenav.exec-sidenav .collapsible-header {
  background-color: transparent !important;
  color: #CBD5E1 !important;
  border: none !important;
  padding: 0 24px !important;
  height: 42px !important;
  line-height: 42px !important;
}

.sidenav.exec-sidenav .collapsible-header i.material-icons {
  color: #CBD5E1 !important;
  line-height: 42px !important;
}

.sidenav.exec-sidenav .collapsible-body {
  background-color: rgba(15, 23, 42, 0.6) !important;
  border: none !important;
  padding: 4px 0 !important;
}

.sidenav.exec-sidenav .collapsible-body li a {
  color: #CBD5E1 !important;
  padding-left: 48px !important;
  font-size: 13px !important;
  height: 36px !important;
  line-height: 36px !important;
}

.sidenav.exec-sidenav .collapsible-body li a:hover {
  color: #FFFFFF !important;
  background: rgba(255, 255, 255, 0.08) !important;
}

.sidenav.exec-sidenav .collapsible-body li.active a {
  background: var(--brand-gradient) !important;
  color: #FFFFFF !important;
  font-weight: 700 !important;
}

/* PURGE ALL LEGACY MATERIALIZE PINK/PEACH/CORAL LEAKS (#ee6e73) */
.sidenav li,
.sidenav li.active,
.sidenav ul li,
.sidenav ul li.active,
.sidenav .collapsible,
.sidenav .collapsible li,
.sidenav .collapsible li.active,
.sidenav .collapsible-body,
.sidenav .collapsible-body li,
.sidenav .collapsible-body li.active,
.sidenav .a4,
.sidenav .a4.active {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

.waves-effect .waves-ripple {
  background: rgba(6, 182, 212, 0.3) !important;
}

.sidenav li>a.active {
  background-color: transparent !important;
}

.sidenav .collapsible-header:focus,
.sidenav .collapsible-header:active {
  background-color: transparent !important;
}

/* Quick Command Toolbar */
.command-toolbar {
  background: var(--glass-bg) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--glass-shadow) !important;
  padding: 16px 20px !important;
  margin-bottom: 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 15px !important;
}

.command-toolbar-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  font-weight: 700;
  color: #FFFFFF;
}

.command-btn-group {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.btn-command-primary,
.btn:not(.a15),
button[type=submit] {
  background: var(--brand-gradient) !important;
  color: #FFFFFF !important;
  font-family: var(--font-sans) !important;
  font-weight: 600 !important;
  border: none !important;
  border-radius: var(--radius-md) !important;
  padding: 0 18px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  white-space: nowrap !important;
  box-shadow: 0 8px 25px var(--brand-glow) !important;
  text-decoration: none !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.btn-command-primary:hover,
.btn:not(.a15):hover,
button[type=submit]:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 30px rgba(6, 182, 212, 0.5) !important;
}

.btn-command-indigo {
  background: rgba(99, 102, 241, 0.2) !important;
  border: 1px solid rgba(99, 102, 241, 0.4) !important;
  color: #FFFFFF !important;
  font-weight: 600 !important;
  border-radius: var(--radius-md) !important;
  padding: 0 18px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  text-decoration: none !important;
}

.btn-command-dark {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid var(--glass-border) !important;
  color: #FFFFFF !important;
  font-weight: 600 !important;
  border-radius: var(--radius-md) !important;
  padding: 0 18px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  text-decoration: none !important;
}

/* Translucent Glass Panels & Cards (INSPIRED BY LOGIN CARD) */
.card-panel,
.card {
  background: var(--glass-bg) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--glass-shadow) !important;
  padding: 20px !important;
  color: var(--text-body) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
  position: relative !important;
  overflow: visible !important;
}

.card-kpi-dominant {
  background: var(--glass-bg) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--glass-shadow) !important;
  padding: 20px !important;
  color: var(--text-body) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
  position: relative !important;
  overflow: hidden !important;
}

.card-panel:hover,
.card-kpi-dominant:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 25px 60px rgba(6, 182, 212, 0.15) !important;
}

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

.kpi-icon-badge {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
}

.kpi-icon-badge i {
  font-size: 26px;
}

.kpi-value-dominant {
  font-size: 32px !important;
  font-weight: 800 !important;
  color: #FFFFFF !important;
  letter-spacing: -0.03em !important;
  line-height: 1.1 !important;
  margin: 4px 0 !important;
}

.kpi-subtext {
  font-size: 12px !important;
  font-weight: 500 !important;
  color: #94A3B8 !important;
}

/* Glass Data Tables */
table,
table.striped,
table.highlight {
  color: var(--text-body) !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border-radius: var(--radius-md) !important;
  overflow: hidden !important;
  background: rgba(255, 255, 255, 0.02) !important;
  border: 1px solid var(--glass-border) !important;
}

table thead th,
table.striped thead th {
  background-color: var(--bg-table-header) !important;
  color: var(--brand-cyan) !important;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--glass-border) !important;
  padding: 14px 16px !important;
}

table tbody tr,
table.striped tbody tr {
  background-color: transparent;
  transition: background-color 0.2s ease;
}

table.striped>tbody>tr:nth-child(odd) {
  background-color: rgba(255, 255, 255, 0.03) !important;
}

table.highlight tbody tr:hover {
  background-color: rgba(99, 102, 241, 0.15) !important;
}

table tbody td,
table.striped tbody td {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  padding: 12px 16px !important;
  font-size: 14px;
  color: #CBD5E1 !important;
}

table tbody td.mono-text {
  font-family: var(--font-mono);
  color: #FFFFFF !important;
}

/* Translucent Glass Inputs, Textboxes, Placeholders & Floating Labels */
.input-field {
  margin-top: 24px !important;
  margin-bottom: 18px !important;
  position: relative !important;
}

.input-field input[type=text],
.input-field input[type=password],
.input-field input[type=search],
.input-field input[type=number],
.input-field input[type=email],
.input-field input[type=date] {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: var(--radius-md) !important;
  color: #FFFFFF !important;
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  padding: 0 18px !important;
  height: 46px !important;
  line-height: 46px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  outline: none !important;
  transition: all 0.2s ease !important;
}

/* Multi-line text areas (e.g. employee Note field) - same dark-glass
   treatment as single-line inputs, but without the fixed single-line
   height/line-height so multi-line text lays out normally. */
.input-field textarea,
textarea.materialize-textarea {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: var(--radius-md) !important;
  color: #FFFFFF !important;
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  padding: 14px 18px !important;
  box-sizing: border-box !important;
  outline: none !important;
  transition: all 0.2s ease !important;
}

.input-field textarea:focus,
textarea.materialize-textarea:focus {
  border: 1px solid var(--brand-cyan) !important;
  box-shadow: 0 0 18px rgba(6, 182, 212, 0.35) !important;
  background: rgba(255, 255, 255, 0.08) !important;
}

/* Placeholder Styling & Horizontal Padding Inset */
.input-field input::placeholder,
input[type=search]::placeholder {
  color: #94A3B8 !important;
  font-size: 13px !important;
  opacity: 0.8 !important;
}

/* Focus State & Glow Ring */
.input-field input[type=text]:focus,
.input-field input[type=password]:focus,
.input-field input[type=search]:focus,
.input-field input[type=number]:focus,
.input-field input[type=email]:focus,
.input-field input[type=date]:focus {
  border: 1px solid var(--brand-cyan) !important;
  box-shadow: 0 0 18px rgba(6, 182, 212, 0.35) !important;
  background: rgba(255, 255, 255, 0.08) !important;
}

/* Floating Label Positioning - Eliminates border line collision */
.input-field label {
  color: #94A3B8 !important;
  font-size: 13px !important;
  font-family: var(--font-sans) !important;
  left: 18px !important;
  top: 14px !important;
  transform: none;
  pointer-events: none;
  transition: all 0.2s ease !important;
}

/* Active Floating Label Positioning - Cleanly Translated Above Box */
.input-field label.active {
  transform: translateY(-34px) scale(0.88) !important;
  transform-origin: 0 0 !important;
  color: var(--brand-cyan) !important;
  font-weight: 700 !important;
  left: 12px !important;
}

/* Select Dropdown Styling & Label Inset */
select,
.select-wrapper input.select-dropdown {
  background-color: rgba(255, 255, 255, 0.04) !important;
  color: #FFFFFF !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: var(--radius-md) !important;
  height: 46px !important;
  line-height: 46px !important;
  padding: 0 18px !important;
  box-sizing: border-box !important;
  font-family: var(--font-sans) !important;
}

/* Select Dropdown Label Positioning (Positioned Cleanly Above Box) */
.input-field select~label,
.input-field .select-wrapper~label,
.select-wrapper+label {
  position: absolute !important;
  top: -26px !important;
  left: 12px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #94A3B8 !important;
  transform: none !important;
  pointer-events: none !important;
}

.dropdown-content {
  background-color: rgba(15, 23, 42, 0.95) !important;
  backdrop-filter: blur(20px) !important;
  border: 1px solid var(--glass-border) !important;
  box-shadow: var(--glass-shadow) !important;
}

.dropdown-content li>a,
.dropdown-content li>span {
  color: #FFFFFF !important;
}

.dropdown-content li:hover,
.dropdown-content li.active {
  background-color: rgba(99, 102, 241, 0.25) !important;
}

/* Status Chips & Badges */
.chip-exec,
.chip {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: var(--radius-pill);
  font-size: 11px;
  font-weight: 700;
}

.chip-exec.chip-success,
.chip.green {
  background: rgba(16, 185, 129, 0.15) !important;
  color: var(--status-success) !important;
  border: 1px solid rgba(16, 185, 129, 0.3) !important;
}

.chip-exec.chip-warning,
.chip.orange {
  background: rgba(245, 158, 11, 0.15) !important;
  color: var(--status-warning) !important;
  border: 1px solid rgba(245, 158, 11, 0.3) !important;
}

.chip-exec.chip-danger,
.chip.red {
  background: rgba(244, 63, 94, 0.15) !important;
  color: var(--status-danger) !important;
  border: 1px solid rgba(244, 63, 94, 0.3) !important;
}

/* ==========================================================================
   MATERIALIZE DATEPICKER GLASSMORPHISM THEME OVERRIDES
   ========================================================================== */

/* ==========================================================================
   COMPLETE GLASSMORPHISM COMPONENT SUITE (8 CORE COMPONENTS)
   ========================================================================== */

/* 1. COMPONENT VISIBILITY NORMALIZATION */

/* 2. SELECT DROPDOWNS GLASSMORPHISM & POSITIONING OVERRIDES */
.card,
.card-panel,
.card-content,
.container,
.row,
.input-field,
.select-wrapper {
  overflow: visible !important;
}

/* Card Stacking Context Hierarchy - Prevents subsequent cards (e.g. Contact Info) from overlapping open dropdowns */
.card-panel,
.card {
  position: relative !important;
}

.card-panel:focus-within,
.card:focus-within,
.card-panel:hover,
.card:hover {
  z-index: 1000 !important;
}

.row > .col:nth-child(1) > .card-panel,
.row > .col:nth-child(2) > .card-panel,
.row > div:nth-of-type(1) > .card-panel {
  z-index: 40;
}

.row > .col:nth-child(3) > .card-panel,
.row > div:nth-of-type(2) > .card-panel {
  z-index: 30;
}

.row > .col:nth-child(4) > .card-panel,
.row > div:nth-of-type(3) > .card-panel {
  z-index: 20;
}

.select-wrapper {
  position: relative !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.select-wrapper input.select-dropdown {
  background-color: rgba(255, 255, 255, 0.04) !important;
  color: #FFFFFF !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: var(--radius-md) !important;
  height: 46px !important;
  line-height: 46px !important;
  padding: 0 18px !important;
  box-sizing: border-box !important;
  font-family: var(--font-sans) !important;
  cursor: pointer !important;
}

.select-wrapper input.select-dropdown:focus {
  border-color: var(--brand-cyan) !important;
  box-shadow: 0 0 18px rgba(6, 182, 212, 0.35) !important;
  background-color: rgba(255, 255, 255, 0.08) !important;
}

.select-wrapper .caret {
  fill: var(--brand-cyan) !important;
  color: var(--brand-cyan) !important;
  right: 14px !important;
  top: 0 !important;
  bottom: 0 !important;
  margin: auto 0 !important;
  z-index: 2 !important;
  pointer-events: none !important;
}

/* Scoped Dropdown Box - Matches exact width of parent input field */
.select-wrapper .dropdown-content,
.select-wrapper .select-dropdown.dropdown-content,
.select-wrapper ul.dropdown-content.select-dropdown,
.dropdown-content {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
  max-height: 220px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  z-index: 99999 !important;
  margin-top: 4px !important;
  box-sizing: border-box !important;
  background-color: rgba(15, 23, 42, 0.98) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6), 0 0 20px rgba(6, 182, 212, 0.25) !important;
  padding: 6px 0 !important;
}

.dropdown-content li,
.select-dropdown.dropdown-content li {
  min-height: 42px !important;
  height: auto !important;
  line-height: 1.4 !important;
  transition: background-color 0.2s ease !important;
  clear: both !important;
}

.dropdown-content li>a,
.dropdown-content li>span,
select option {
  color: #FFFFFF !important;
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  padding: 12px 18px !important;
  display: block !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.dropdown-content li:hover,
.dropdown-content li.active,
.dropdown-content li.selected,
select option:hover {
  background-color: rgba(99, 102, 241, 0.3) !important;
}

.dropdown-content li:hover>span,
.dropdown-content li.active>span,
.dropdown-content li.selected>span {
  color: var(--brand-cyan) !important;
  font-weight: 600 !important;
}

/* Custom Scrollbar for Dropdown Menu */
.dropdown-content::-webkit-scrollbar,
.select-dropdown.dropdown-content::-webkit-scrollbar {
  width: 6px !important;
}

.dropdown-content::-webkit-scrollbar-track,
.select-dropdown.dropdown-content::-webkit-scrollbar-track {
  background: rgba(15, 23, 42, 0.6) !important;
  border-radius: 3px !important;
}

.dropdown-content::-webkit-scrollbar-thumb,
.select-dropdown.dropdown-content::-webkit-scrollbar-thumb {
  background: rgba(6, 182, 212, 0.4) !important;
  border-radius: 3px !important;
}

.dropdown-content::-webkit-scrollbar-thumb:hover,
.select-dropdown.dropdown-content::-webkit-scrollbar-thumb:hover {
  background: rgba(6, 182, 212, 0.7) !important;
}

/* 3. MODAL DIALOGS GLASSMORPHISM */
.modal {
  background-color: #0F172A !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.6) !important;
  color: #CBD5E1 !important;
}

.modal .modal-content {
  padding: 24px 28px !important;
}

.modal h4,
.modal h5 {
  color: #FFFFFF !important;
  font-weight: 700 !important;
}

.modal .modal-footer {
  background-color: rgba(15, 23, 42, 0.95) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
  padding: 12px 24px !important;
}

/* 4. TOAST MESSAGES GLASSMORPHISM */
#toast-container {
  top: 10% !important;
  right: 7% !important;
}

.toast {
  background: rgba(15, 23, 42, 0.92) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: 1px solid var(--brand-cyan) !important;
  border-radius: var(--radius-md) !important;
  color: #FFFFFF !important;
  font-family: var(--font-sans) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  box-shadow: 0 10px 30px rgba(6, 182, 212, 0.25) !important;
  padding: 12px 24px !important;
}

/* 5. PAGINATION GLASSMORPHISM */
ul.pagination li {
  border-radius: var(--radius-md) !important;
  margin: 0 4px !important;
  transition: all 0.2s ease !important;
}

ul.pagination li a {
  color: #CBD5E1 !important;
  font-family: var(--font-sans) !important;
  font-weight: 600 !important;
  padding: 0 14px !important;
  line-height: 36px !important;
}

ul.pagination li.active {
  background: var(--brand-gradient) !important;
  box-shadow: 0 4px 15px var(--brand-glow) !important;
}

ul.pagination li.active a {
  color: #FFFFFF !important;
  font-weight: 700 !important;
}

ul.pagination li:hover:not(.active) {
  background: rgba(255, 255, 255, 0.08) !important;
}

ul.pagination li:hover:not(.active) a {
  color: #06B6D4 !important;
}

/* 6. SEARCH INPUTS GLASSMORPHISM */
.input-field input[type=search] {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: var(--radius-md) !important;
  color: #FFFFFF !important;
  padding: 0 18px !important;
  height: 46px !important;
  line-height: 46px !important;
}

.input-field input[type=search]:focus {
  border: 1px solid var(--brand-cyan) !important;
  box-shadow: 0 0 18px rgba(6, 182, 212, 0.35) !important;
  background: rgba(255, 255, 255, 0.08) !important;
}

/* 7. FILE UPLOAD COMPONENTS GLASSMORPHISM */
.file-field .btn:not(.a15) {
  background: var(--brand-gradient) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: 0 4px 15px var(--brand-glow) !important;
  height: 44px !important;
  line-height: 44px !important;
  padding: 0 20px !important;
}

.file-field .file-path-wrapper input.file-path {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  border-radius: var(--radius-md) !important;
  color: #FFFFFF !important;
  height: 44px !important;
  padding: 0 18px !important;
}

/* 8. TABLES GLASSMORPHISM */
table,
table.striped,
table.highlight {
  color: #CBD5E1 !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  border-radius: var(--radius-md) !important;
  overflow: hidden !important;
  background: rgba(255, 255, 255, 0.02) !important;
  border: 1px solid var(--glass-border) !important;
}

table thead th,
table.striped thead th {
  background-color: var(--bg-table-header) !important;
  color: #06B6D4 !important;
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--glass-border) !important;
  padding: 14px 16px !important;
}

table tbody tr,
table.striped tbody tr {
  background-color: transparent;
  transition: background-color 0.2s ease;
}

table.striped>tbody>tr:nth-child(odd) {
  background-color: rgba(255, 255, 255, 0.03) !important;
}

table.highlight tbody tr:hover {
  background-color: rgba(99, 102, 241, 0.15) !important;
}

table tbody td,
table.striped tbody td {
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  padding: 12px 16px !important;
  font-size: 14px;
  color: #CBD5E1 !important;
}

table tbody td.mono-text {
  font-family: var(--font-mono);
  color: #FFFFFF !important;
}

/* Absolute lock for the .a15 image upload button to prevent any movement/shifting on or off hover */
.file-field .btn.a15,
.file-field .btn.a15:hover {
  background: var(--brand-gradient) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: 0 4px 15px var(--brand-glow) !important;
  height: 150px !important;
  width: 150px !important;
  line-height: 150px !important;
  display: inline-block !important;
  position: relative !important;
  left: auto !important;
  right: auto !important;
  margin-left: 50% !important;
  transform: translateX(-50%) translateY(0) !important;
  transition: none !important;
}

/* ==========================================================================
   EXECUTIVE DARK GLASSMORPHISM ACCORDION & PROFILE CARD SYSTEM
   ========================================================================== */

/* Dark Collapsible Accordion Container Overrides */
main.a3 .collapsible,
main.a3 ul.collapsible,
.collapsible,
ul.collapsible {
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  margin: 1.5rem 0 !important;
}

main.a3 .collapsible > li,
main.a3 ul.collapsible.popout > li,
.collapsible > li,
ul.collapsible.popout > li {
  background: var(--glass-bg) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: 1px solid var(--glass-border) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--glass-shadow) !important;
  margin-bottom: 16px !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  overflow: hidden !important;
}

main.a3 .collapsible.popout > li.active,
.collapsible.popout > li.active {
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.5), 0 0 25px rgba(6, 182, 212, 0.2) !important;
  border-color: rgba(6, 182, 212, 0.35) !important;
  margin: 16px 0 !important;
}

main.a3 .collapsible-header,
.collapsible-header {
  background: rgba(255, 255, 255, 0.03) !important;
  color: #FFFFFF !important;
  font-family: var(--font-sans) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  padding: 16px 22px !important;
  border-bottom: 1px solid transparent !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  transition: background-color 0.2s ease, color 0.2s ease !important;
  cursor: pointer !important;
}

main.a3 .collapsible-header:hover,
.collapsible-header:hover {
  background: rgba(255, 255, 255, 0.06) !important;
  color: var(--brand-cyan) !important;
}

main.a3 .collapsible-header i.material-icons,
.collapsible-header i.material-icons {
  color: var(--brand-cyan) !important;
  font-size: 22px !important;
  margin-right: 0 !important;
  width: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

main.a3 .collapsible > li.active > .collapsible-header,
.collapsible > li.active > .collapsible-header {
  background: rgba(15, 23, 42, 0.85) !important;
  border-bottom: 1px solid var(--glass-border) !important;
  color: #FFFFFF !important;
}

main.a3 .collapsible-body,
.collapsible-body {
  background: rgba(15, 23, 42, 0.4) !important;
  border-bottom: none !important;
  padding: 22px !important;
  color: var(--text-body) !important;
}

/* Modern Profile Data Cards & Grid System */
.profile-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 16px !important;
  width: 100% !important;
}

.profile-field-card {
  background: rgba(255, 255, 255, 0.03) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: var(--radius-md) !important;
  padding: 14px 18px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  transition: border-color 0.2s ease, background 0.2s ease !important;
  text-align: left !important;
}

.profile-field-card:hover {
  background: rgba(255, 255, 255, 0.05) !important;
  border-color: rgba(6, 182, 212, 0.3) !important;
}

.profile-field-label {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: var(--brand-cyan) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.07em !important;
  font-family: var(--font-sans) !important;
}

.profile-field-value {
  font-size: 15px !important;
  font-weight: 500 !important;
  color: #FFFFFF !important;
  font-family: var(--font-sans) !important;
  margin: 0 !important;
  word-break: break-word !important;
}

/* Legacy Procont Dark Theme Fallback */
.procont {
  border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
  padding: 12px 16px !important;
  margin-bottom: 10px !important;
  border-radius: var(--radius-sm) !important;
  background: rgba(255, 255, 255, 0.02) !important;
}

.procont h5 {
  color: var(--brand-cyan) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 4px 0 !important;
}

.procont p {
  color: #FFFFFF !important;
  font-size: 15px !important;
  margin: 0 !important;
}

/* Profile Avatar Header Styling */
.profile-avatar-wrapper {
  display: inline-block;
  position: relative;
  margin: 15px 0 10px 0;
}

.profile-avatar-img {
  width: 130px !important;
  height: 130px !important;
  border-radius: 50% !important;
  border: 3px solid var(--brand-cyan) !important;
  box-shadow: 0 0 25px var(--brand-glow) !important;
  object-fit: cover !important;
}

.profile-name-title {
  color: #FFFFFF !important;
  font-weight: 700 !important;
  margin: 8px 0 4px 0 !important;
  letter-spacing: -0.01em;
}

.profile-id-badge {
  display: inline-block;
  background: rgba(6, 182, 212, 0.12);
  border: 1px solid rgba(6, 182, 212, 0.3);
  color: var(--brand-cyan) !important;
  padding: 4px 14px;
  border-radius: var(--radius-pill);
  font-family: var(--font-mono);
  font-weight: 600;
  font-size: 13px;
}

/* Form Action Container & Search Button Alignment */
.dtr-filter-form {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 0;
}

.dtr-filter-form .input-field {
  margin-top: 28px !important;
  margin-bottom: 12px !important;
}

.dtr-filter-form .btn-search {
  height: 46px !important;
  line-height: 46px !important;
  width: 100% !important;
  margin-bottom: 12px !important;
}

/* Management Table Action Buttons */
.btn-action-edit {
  background: rgba(99, 102, 241, 0.2) !important;
  border: 1px solid rgba(99, 102, 241, 0.4) !important;
  color: #FFFFFF !important;
  font-family: var(--font-sans) !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  border-radius: var(--radius-sm) !important;
  padding: 0 14px !important;
  height: 34px !important;
  line-height: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.btn-action-edit:hover {
  background: rgba(99, 102, 241, 0.35) !important;
  border-color: rgba(99, 102, 241, 0.6) !important;
  color: #FFFFFF !important;
}

.btn-action-delete {
  background: rgba(244, 63, 94, 0.15) !important;
  border: 1px solid rgba(244, 63, 94, 0.35) !important;
  color: var(--status-danger) !important;
  font-family: var(--font-sans) !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  border-radius: var(--radius-sm) !important;
  padding: 0 14px !important;
  height: 34px !important;
  line-height: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.btn-action-delete:hover {
  background: rgba(244, 63, 94, 0.28) !important;
  border-color: rgba(244, 63, 94, 0.6) !important;
  color: #FFFFFF !important;
}

/* Dashboard Equal-Height Flex Rows */
.dashboard-row-equal {
  display: flex !important;
  flex-wrap: wrap !important;
  margin-left: -0.75rem !important;
  margin-right: -0.75rem !important;
}

.dashboard-row-equal > [class*="col"] {
  display: flex !important;
  flex-direction: column !important;
}

.dashboard-row-equal > [class*="col"] > .card-panel {
  flex: 1 1 auto !important;
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  box-sizing: border-box !important;
  margin-bottom: 20px !important;
}

/* File Upload Component Hover Stability & Flex Alignment */
.file-field.input-field {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 15px !important;
  margin-bottom: 20px !important;
  flex-wrap: nowrap !important;
  width: 100% !important;
}

.file-field .btn {
  float: none !important;
  flex-shrink: 0 !important;
  width: 140px !important;
  height: 46px !important;
  line-height: 46px !important;
  margin: 0 !important;
  padding: 0 16px !important;
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  box-sizing: border-box !important;
  transform: none !important;
  transition: background-color 0.2s ease, box-shadow 0.2s ease !important;
}

.file-field .btn:hover,
.file-field .btn:focus,
.file-field .btn:active {
  transform: none !important;
  margin: 0 !important;
  box-shadow: 0 0 14px rgba(6, 182, 212, 0.5) !important;
}

.file-field .file-path-wrapper {
  flex: 1 1 auto !important;
  padding-left: 0 !important;
  overflow: visible !important;
  float: none !important;
  margin: 0 !important;
}

.file-field .file-path-wrapper input.file-path {
  margin: 0 !important;
  height: 46px !important;
  line-height: 46px !important;
  box-sizing: border-box !important;
}

/* Executive Dark Data Table Enhancements */
.exec-table-card {
  padding: 28px !important;
  margin-bottom: 28px !important;
}

.exec-table-wrapper {
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: var(--radius-md) !important;
  overflow-x: auto !important;
  background: rgba(15, 23, 42, 0.4) !important;
  margin-top: 16px !important;
  width: 100% !important;
}

.exec-table-wrapper table {
  margin: 0 !important;
  border-collapse: collapse !important;
  width: 100% !important;
  table-layout: fixed !important;
}

.exec-table-wrapper table th {
  background: rgba(30, 41, 59, 0.8) !important;
  color: #94A3B8 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 14px 16px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12) !important;
  white-space: nowrap !important;
}

.exec-table-wrapper table td {
  padding: 14px 16px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  vertical-align: middle !important;
  word-break: break-word !important;
  overflow-wrap: break-word !important;
}

.exec-table-wrapper table td.no-wrap,
.exec-table-wrapper table td:last-child {
  white-space: nowrap !important;
}

.exec-table-wrapper table tbody tr {
  transition: background-color 0.2s ease !important;
}

.exec-table-wrapper table tbody tr:hover {
  background-color: rgba(6, 182, 212, 0.06) !important;
}

.exec-table-wrapper table tbody tr:last-child td {
  border-bottom: none !important;
}

/* Dark Theme Table Checkboxes */
.exec-cb-label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  cursor: pointer !important;
}

.exec-cb-label input[type="checkbox"],
.exec-table-wrapper input[type="checkbox"] {
  position: relative !important;
  left: auto !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  width: 18px !important;
  height: 18px !important;
  cursor: pointer !important;
  accent-color: var(--brand-cyan) !important;
  margin: 0 !important;
  display: inline-block !important;
  z-index: 10 !important;
}

/* File Inspection & Progress Modal UI */
.file-info-card {
  background: rgba(30, 41, 59, 0.6) !important;
  border: 1px solid rgba(6, 182, 212, 0.3) !important;
  border-radius: var(--radius-md) !important;
  padding: 14px 18px !important;
  margin-top: 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}

.exec-progress-container {
  width: 100% !important;
  height: 10px !important;
  background: rgba(15, 23, 42, 0.8) !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  margin: 16px 0 !important;
}

.exec-progress-bar {
  height: 100% !important;
  min-height: 10px !important;
  width: 0%;
  background: linear-gradient(90deg, #06B6D4 0%, #3B82F6 100%) !important;
  border-radius: 6px !important;
  transition: width 0.3s ease-in-out !important;
  box-shadow: 0 0 12px rgba(6, 182, 212, 0.6) !important;
}

.upload-modal-overlay {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  background: rgba(15, 23, 42, 0.85) !important;
  backdrop-filter: blur(8px) !important;
  z-index: 99999 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
}

.upload-modal-overlay.active {
  display: flex !important;
}

.upload-modal-content {
  background: rgba(30, 41, 59, 0.95) !important;
  border: 1px solid rgba(6, 182, 212, 0.4) !important;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6) !important;
  border-radius: var(--radius-lg) !important;
  padding: 32px !important;
  width: 90% !important;
  max-width: 520px !important;
  text-align: center !important;
}

/* Executive Tabs (Settings page sections) */
.card-panel .tabs,
.exec-tabs-wrap .tabs {
  background: transparent !important;
  border-bottom: 1px solid var(--glass-border) !important;
  height: auto !important;
}

.tabs .tab {
  height: 44px !important;
}

.tabs .tab a {
  color: var(--text-muted) !important;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.02em;
  line-height: 44px !important;
  transition: color 0.2s ease;
}

.tabs .tab a:hover,
.tabs .tab a.active {
  color: var(--text-main) !important;
}

.tabs .indicator {
  background: var(--brand-gradient) !important;
  height: 3px !important;
}

.exec-tab-panel {
  padding-top: 24px;
}

/* Informational Callout (e.g. "feature not active yet" notices) */
.callout-note {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--bg-glass);
  border: 1px solid var(--glass-border);
  border-left: 3px solid var(--brand-cyan);
  border-radius: var(--radius-md);
  padding: 14px 18px;
  margin-bottom: 20px;
  color: var(--text-body);
  font-size: 13.5px;
  line-height: 1.5;
}

.callout-note i.material-icons {
  color: var(--brand-cyan);
  font-size: 20px;
  flex-shrink: 0;
  margin-top: 1px;
}

.callout-note a {
  color: var(--brand-cyan);
}

/* ==========================================================================
   TIME SCHEDULE SETTINGS (Teaching / Non-Teaching DTR schedules)
   ========================================================================== */

.ts-card-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 4px;
}

.ts-header-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border-radius: var(--radius-md);
  background: var(--brand-gradient);
  box-shadow: 0 8px 20px var(--brand-glow);
}

.ts-header-icon i.material-icons {
  color: #FFFFFF;
  font-size: 24px;
}

.ts-card-header h5 {
  margin: 0 0 2px 0;
}

.ts-card-header p {
  margin: 0;
  font-size: 13px;
}

.ts-toggle-row {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  background: var(--bg-glass);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-md);
  padding: 16px 18px;
  margin: 20px 0;
}

.ts-toggle-row .switch {
  flex-shrink: 0;
}

.ts-toggle-copy {
  flex: 1 1 260px;
}

.ts-toggle-copy strong {
  color: var(--text-main);
  font-size: 14.5px;
}

.ts-toggle-copy p {
  margin: 2px 0 0 0;
  color: var(--text-body);
  font-size: 13px;
  line-height: 1.5;
}

/* Materialize switch, restyled for the dark glass theme */
.switch label input[type=checkbox]:checked + .lever {
  background-color: rgba(6, 182, 212, 0.35);
}

.switch label input[type=checkbox]:checked + .lever:after {
  background-color: var(--brand-cyan);
}

.switch label .lever {
  background-color: rgba(255, 255, 255, 0.15);
}

.switch label .lever:after {
  background-color: #94A3B8;
}

.ts-profile-box {
  background: var(--bg-glass);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-md);
  padding: 18px 18px 6px 18px;
  margin-bottom: 18px;
}

.ts-profile-box.ts-profile-teaching {
  border-left: 3px solid var(--brand-indigo);
}

.ts-profile-box.ts-profile-admin {
  border-left: 3px solid var(--brand-cyan);
}

.ts-profile-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14.5px;
  font-weight: 700;
  color: var(--text-main);
  margin-bottom: 14px;
}

.ts-profile-title i.material-icons {
  font-size: 19px;
  color: var(--brand-cyan);
}

.ts-profile-teaching .ts-profile-title i.material-icons {
  color: var(--brand-indigo);
}

.ts-checkpoint-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 2px;
}

.ts-checkpoint-hint {
  display: block;
  font-size: 11.5px;
  color: var(--text-dim);
  margin-top: 6px;
  margin-bottom: 18px;
}

/* Hour/Minute/AM-PM trio - fully custom-styled selects instead of a native
   <input type=time>, so the dropdown is always drawn by us (matches the
   rest of the app, like the Dashboard Color pickers) rather than relying on
   the browser/OS's own picker chrome, which can't be restyled reliably. */
.ts-time-group {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
  flex-wrap: nowrap;
}

.ts-time-group .select-wrapper {
  flex: 1 1 0;
  min-width: 64px;
}

.ts-time-group .select-wrapper input.select-dropdown {
  padding: 0 8px !important;
  font-size: 15px !important;
  text-align: center;
}

/* The popup list Materialize opens for these selects otherwise inherits
   the (intentionally narrow) trigger's width, which isn't enough room for
   even a 2-character option once its own padding is applied - truncating
   everything to "0...". Give it a fixed floor so it's always readable. */
.ts-time-group .select-wrapper ul.dropdown-content {
  min-width: 90px !important;
  width: auto !important;
}

/* ==========================================================================
   DEVICE MANAGEMENT - PER-ROW ACTIONS
   ========================================================================== */

.dev-status-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  cursor: default;
}

/* Inactive/offline device row - muted, matching how professional device
   dashboards visually distinguish an offline unit from ones in service,
   rather than only the small status dot carrying that meaning. */
.exec-table-wrapper table tbody tr.dev-row-offline {
  opacity: 0.55;
}

.exec-table-wrapper table tbody tr.dev-row-offline:hover {
  opacity: 0.8;
}

.exec-table-wrapper table tbody tr.dev-row-offline td strong {
  color: var(--text-muted) !important;
}

.dev-status-dot-active {
  background: var(--status-success);
  box-shadow: 0 0 8px rgba(16, 185, 129, 0.7);
}

.dev-status-dot-inactive {
  background: var(--status-danger);
  box-shadow: 0 0 8px rgba(244, 63, 94, 0.6);
}

.dev-actions-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.dev-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-sm);
  background: var(--bg-glass);
  color: var(--text-main);
  cursor: pointer;
  transition: all 0.15s ease;
}

.dev-icon-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: var(--brand-cyan);
}

.dev-icon-btn:disabled {
  opacity: 0.5;
  cursor: default;
}

.dev-icon-btn i.material-icons {
  font-size: 19px;
}

.dev-icon-btn-pull i.material-icons {
  color: var(--brand-cyan);
}

.dev-icon-btn-push i.material-icons {
  color: var(--status-success);
}

/* Self-positioned overflow panel - anchored to its own wrapper with plain
   position:absolute, not Materialize's dropdown JS, so it can't misplace
   itself inside the horizontally-scrolling table wrapper this sits in. */
.dev-actions-panel {
  display: none;
  /* position:fixed, not absolute - the table this sits in scrolls
     horizontally (overflow-x) and would otherwise clip a popup that
     extends past its edge. Fixed positioning escapes that clipping;
     the exact top/right coordinates are computed in JS at open-time
     from the trigger's actual on-screen position. */
  position: fixed;
  min-width: 200px;
  background: rgba(15, 23, 42, 0.98);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-md);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6), 0 0 20px rgba(6, 182, 212, 0.2);
  padding: 6px 0;
  z-index: 9999;
  text-align: left;
}

.dev-actions-panel.dev-actions-panel-open {
  display: block;
}

.dev-actions-panel a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  color: var(--text-main);
  font-size: 13.5px;
  white-space: nowrap;
}

.dev-actions-panel a:hover {
  background: rgba(99, 102, 241, 0.2);
}

.dev-actions-panel a i.material-icons {
  font-size: 18px;
  color: var(--brand-cyan);
}

.dev-actions-panel-divider {
  height: 1px;
  background: var(--glass-border);
  margin: 6px 0;
}

.dev-actions-panel a.dev-actions-danger,
.dev-actions-panel a.dev-actions-danger i.material-icons {
  color: var(--status-danger);
}

/* Silently blocks clicks on the page underneath while a print/report popup
   is open, so a stray click doesn't steal window focus away from it. No
   visible dialog - just an invisible layer that swallows clicks. */
.print-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: rgba(15, 23, 42, 0.85);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

.print-modal-panel {
  position: relative;
  width: 1050px;
  max-width: 100%;
  height: 100%;
  max-height: 900px;
  background: #FFFFFF;
  border-radius: var(--radius-lg);
  box-shadow: var(--glass-shadow);
  overflow: hidden;
}

.print-modal-iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.print-modal-close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 1;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--bg-obsidian);
  border: 1px solid var(--glass-border);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
}

.print-modal-close:hover {
  background: var(--brand-cyan);
}

.print-modal-close i.material-icons {
  color: #FFFFFF;
  font-size: 20px;
}

/* master_user-only inline attendance time editor (Attendance Log Preview) */
.attendance-time-editable {
  cursor: pointer;
  border-bottom: 1px dashed transparent;
  transition: border-color 0.2s ease;
}

.attendance-time-editable:hover {
  border-bottom-color: currentColor;
}

.attendance-time-editable .material-icons {
  font-size: 14px !important;
  opacity: 0;
  margin-left: 4px;
  transition: opacity 0.2s ease;
  vertical-align: middle;
}

.attendance-time-editable:hover .material-icons {
  opacity: 0.7;
}

.edit-time-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: rgba(15, 23, 42, 0.75);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  align-items: center;
  justify-content: center;
  padding: 24px;
  box-sizing: border-box;
}

.edit-time-modal-panel {
  background: var(--bg-obsidian);
  border: 1px solid var(--glass-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--glass-shadow);
  padding: 28px 32px;
  max-width: 380px;
  width: 100%;
}

.edit-time-modal-panel h5 {
  color: #FFFFFF;
  margin: 0 0 6px 0;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
}

.edit-time-context {
  color: #CBD5E1;
  font-size: 13px;
  margin: 0 0 20px 0;
}

.edit-time-modal-actions {
  display: flex;
  gap: 8px;
  margin-top: 22px;
}

.edit-time-modal-actions a.btn {
  flex: 1;
  text-align: center;
  padding: 0 10px;
}

.ts-time-colon {
  color: var(--text-muted);
  font-weight: 700;
  flex-shrink: 0;
}