:root {
  color-scheme: light;
  /* Global Modern Font Stack */
  --font-family-base: 'SF Pro Text', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

* {
  font-family: var(--font-family-base);
}

/* Ionic Components Integration - Modern Minimalist */
ion-header {
  --background: #ffffff;
  --color: #111827;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

ion-toolbar {
  --background: #ffffff;
  --color: #111827;
  --border-width: 0;
}

ion-title {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.01em;
}

ion-content {
  --background: #f3f4f6; /* Gray 50 */
  --color: #1f2937;
}

/* Modern Card Style */
ion-card {
  --background: #ffffff;
  --color: #1f2937;
  margin: 12px;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(229, 231, 235, 0.5);
}

/* Compact & Elegant Items */
ion-item {
  --background: transparent;
  --color: #374151;
  --padding-start: 12px;
  --padding-end: 12px;
  --min-height: 40px;
  --inner-padding-end: 8px;
  font-size: 13px;
}

/* Modern Buttons - Compact & Rounded */
ion-button {
  --border-radius: 8px;
  --padding-start: 12px;
  --padding-end: 12px;
  font-weight: 500;
  letter-spacing: -0.01em;
  font-size: 13px;
  --box-shadow: none;
  text-transform: none;
  margin: 0;
}

/* Primary Button Gradient/Solid */
ion-button[color="primary"] {
  --background: #2563eb;
  --background-hover: #1d4ed8;
  --background-activated: #1e40af;
  --color: #ffffff;
}

/* Status Badges */
.status-badge {
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

/* Login Card Modernization */
.login-card {
  width: 100%;
  max-width: 380px;
  margin: 20px auto;
  border-radius: 24px;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.login-body {
  padding: 32px 24px;
}

.login-title {
  font-size: 24px;
  font-weight: 700;
  color: #111827;
  letter-spacing: -0.02em;
}

/* Input Fields Modern */
.input-modern {
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  background: #f9fafb;
  font-size: 13px;
  transition: all 0.2s ease;
}

.input-modern:focus-within {
  background: #ffffff;
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* Mobile responsive untuk login */
@media (max-width: 480px) {
  .login-body {
    padding: 20px 16px;
  }
  
  .login-title-row {
    flex-direction: row;
    align-items: center;
    gap: 8px;
  }
  
  .login-card h2 {
    font-size: 17px; /* 1.0625rem - dalam range 17-20px untuk mobile */
  }
  
  .login-type-dropdown {
    min-width: 90px;
  }
  
  .login-type-select {
    padding: 8px 28px 8px 10px;
    font-size: 12px; /* Sedikit lebih kecil untuk mobile */
    min-height: 36px;
  }
  
  .login-type-dropdown .dropdown-icon {
    right: 8px;
    font-size: 14px;
  }
}

.login-body ion-item {
  --padding-start: 0;
  --padding-end: 0;
  margin-bottom: 1px;
}

.login-body ion-button {
  margin-top: 8px;
  --padding-top: 12px;
  --padding-bottom: 12px;
}

.login-role-group {
  display: flex;
  gap: 12px;
  margin-bottom: 16px;
}

.login-role-group ion-button {
  flex: 1;
  max-width: 140px;
}

.login-role-group ion-button.active {
  --background: #1e40af;
}

/* Modal with Ionic header */
#details-modal .modal-card ion-header {
  border-bottom: 1px solid #e0e0e0;
}

#details-modal .modal-card ion-toolbar {
  --padding-start: 16px;
  --padding-end: 16px;
}

/* Filters card with Ionic */
#filters-card ion-item {
  --padding-start: 0;
  --padding-end: 0;
}

/* Removed .driver-date-filter - replaced with popup modal */

/* Driver Checkbox Filters - gap minimum 12px */
.driver-checkbox-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 12px; /* Recommended 12-16px */
  width: 100%;
}

/* Filter Buttons - Button style for checkboxes and date filter */
.filter-button {
  margin: 0;
  min-height: 36px;
  font-weight: 500;
  --box-shadow: none;
}

.filter-button.button-checked {
  --background: var(--ion-color-primary);
  --color: var(--ion-color-primary-contrast);
}

.driver-checkbox-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

/* Mobile responsive adjustments for filters */
@media (max-width: 480px) {
  .filter-button {
    min-height: 28px;
    height: 28px;
    font-size: 11px;
    --padding-start: 8px;
    --padding-end: 8px;
  }
  
  .driver-checkbox-filters {
    gap: 6px;
  }
}

/* Redesigned Filters Card */
.filters-container {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 4px 0;
}

.search-container {
  position: relative;
  width: 100%;
}

.search-input-wrapper {
  display: flex;
  align-items: center;
  background: #f3f4f6; /* Gray-100 */
  border-radius: 12px;
  padding: 0 12px;
  height: 44px;
  transition: all 0.2s ease;
  border: 1px solid transparent;
}

.search-input-wrapper:focus-within {
  background: #ffffff;
  border-color: var(--ion-color-primary);
  box-shadow: 0 0 0 3px rgba(var(--ion-color-primary-rgb), 0.1);
}

.search-icon {
  color: #9ca3af; /* Gray-400 */
  font-size: 20px;
  margin-right: 8px;
}

.custom-search-input {
  border: none;
  background: transparent;
  width: 100%;
  height: 100%;
  outline: none;
  font-size: 14px;
  color: #1f2937; /* Gray-800 */
}

.custom-search-input::placeholder {
  color: #9ca3af;
}

/* Modal base (Tailwind-only, no Preline) */
.modal {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 80;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  padding: 12px;
}
.modal.open {
  display: flex;
}
.modal-card {
  width: 100%;
  max-width: 640px;
  margin: 12px auto;
}
  /* Responsive font sizes - Mobile First */
html{
  font-size:16px; /* Mobile default - Base 16px untuk accessibility */
}
  /* Desktop version (>768px): font-size 14px */
@media (min-width:769px){
  html{
    font-size:14px;
  }
}
  html,body{
  min-width:280px; /* Minimum width for mobile devices (280-400px range) */
}
body{
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;
  margin:0;
  background:#ffffff;
  color:#1c1c1e;
  transition:background .3s ease,color .3s ease;
  font-size:15px; /* Body text - 15px (0.9375rem) */
  line-height:1.5; /* 22.5px - ideal untuk 15px font */
}
/* Header / Judul Halaman - 17-20px, Bold */
header{
  position:sticky;
  top:0;
  background:#007aff;
  color:#ffffff;
  padding:12px 16px;
  font-weight:700;
  font-size:18px; /* 1.125rem - dalam range 17-20px */
  line-height:1.4; /* 25.2px - ideal untuk 18px font */
  display:flex;
  align-items:center;
  gap:12px; /* Minimum 12px gap untuk touch-friendly */
  z-index:40;
}
main{padding:16px;max-width:980px;margin:0 auto}
.card{background:#ffffff;border-radius:12px;padding:16px;margin:12px 0}
/* Buttons - Minimum 44×44px, Font 16-17px, Semibold/Bold */
button{
  background:#007aff!important;
  border:0;
  color:#ffffff;
  padding:12px 16px!important; /* Minimum 12px vertical untuk 44px height */
  min-height:44px; /* Minimum touch target size */
  border-radius:12px; /* Tombol besar: 12px */
  font-weight:600; /* Semibold */
  font-size:16px; /* 1rem - dalam range 16-17px */
  line-height:1.5; /* 24px - ideal untuk 16px font */
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px; /* Minimum 8px gap untuk icon */
  transition:background .2s ease,transform .2s ease;
}
button:hover{background:#0056cc!important;transform:translateY(-1px)}
button:disabled{opacity:.6;cursor:not-allowed}
button[style*="background:#dc2626"]{background:#dc2626!important;padding:1px 3px!important}
button[style*="background:#dc2626"]:hover{background:#b91c1c!important;transform:translateY(-1px)}
/* Sub-header / Section - 15-17px, Semibold */
.menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.menu-header h2{
  margin:0;
  font-size:16px; /* 1rem - dalam range 15-17px */
  font-weight:600; /* Semibold */
  line-height:1.5; /* 24px - ideal untuk 16px font */
}
/* Icon Buttons - Minimum 44×44px, Icon 24px */
.icon-btn{
  width:44px!important; /* Minimum 44px */
  height:44px!important; /* Minimum 44px */
  min-width:44px;
  min-height:44px;
  padding:10px!important; /* Padding untuk center icon */
  justify-content:center;
  background:#007aff!important;
  border-radius:8px; /* Tombol kecil/icon: 8px */
}
.icon-btn:hover{background:#f3d30d!important;transform:translateY(-1px)}
.icon-btn svg{
  width:24px!important; /* Minimum 24px */
  height:24px!important; /* Minimum 24px */
}
.hamburger{
  background:#007aff!important;
  border:0;
  width:44px!important; /* Minimum 44px */
  height:44px!important; /* Minimum 44px */
  min-width:44px;
  min-height:44px;
  border-radius:8px; /* Tombol kecil/icon: 8px */
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px!important; /* Padding untuk center icon */
}
.hamburger:hover{background:#f3d30d;transform:translateY(-1px)}
.hamburger svg{
  width:24px!important; /* Minimum 24px */
  height:24px!important; /* Minimum 24px */
}
.drawer{position:fixed;inset:0;pointer-events:none;z-index:50}
.drawer .overlay{position:absolute;inset:0;background:rgba(0,0,0,.5);opacity:0;transition:opacity .2s}
/* Drawer & Panel - Elegant Dark Mode */
.drawer .panel {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 280px;
  background: linear-gradient(180deg, #1f2937 0%, #111827 100%);
  border-right: 1px solid rgba(255, 255, 255, 0.1);
  transform: translateX(-100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
  color: #ffffff;
  display: flex;
  flex-direction: column;
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.3);
}

.drawer .panel button {
  background: #3b82f6 !important;
  padding: 8px 16px !important;
  color: #ffffff !important;
  border-radius: 8px;
  font-weight: 500;
  transition: all 0.2s ease;
  border: none;
  box-shadow: 0 2px 4px rgba(59, 130, 246, 0.2);
}

.drawer .panel button:hover {
  background: #2563eb !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(59, 130, 246, 0.3);
}

.drawer .panel strong {
  color: #ffffff;
  font-weight: 600;
}

.drawer .panel #btn-logout {
  background: #ef4444 !important;
  padding: 8px 16px !important;
  box-shadow: 0 2px 4px rgba(239, 68, 68, 0.2);
}

.drawer .panel #btn-logout:hover {
  background: #dc2626 !important;
  box-shadow: 0 4px 8px rgba(239, 68, 68, 0.3);
}

.drawer .panel ion-header {
  --background: #1f2937;
  --color: #ffffff;
  flex-shrink: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.drawer .panel ion-content {
  --background: transparent;
  --color: #ffffff;
  flex: 1;
  overflow-y: auto;
}

.drawer .panel ion-list {
  background: transparent;
  padding: 8px 0;
}

.drawer .panel ion-item {
  --background: transparent;
  --color: #e5e7eb;
  --padding-start: 20px;
  --padding-end: 20px;
  --min-height: 52px;
  border-radius: 0;
  margin: 2px 8px;
  transition: all 0.2s ease;
  cursor: pointer;
  font-weight: 500;
}

.drawer .panel ion-item:hover {
  --background: rgba(59, 130, 246, 0.15);
  margin-left: 12px;
  border-radius: 8px;
}

.drawer .panel ion-item.active {
  --background: rgba(59, 130, 246, 0.2);
  --color: #60a5fa;
  border-left: 3px solid #3b82f6;
  font-weight: 600;
}

.drawer .panel ion-label {
  color: inherit;
  font-size: 14px;
}

.drawer .panel ion-icon {
  color: #9ca3af;
  margin-right: 12px;
}
.drawer.open{pointer-events:auto}
.drawer.open .overlay{opacity:1}
.drawer.open .panel{transform:translateX(0)}
body.login-active{overflow:hidden}
body.login-active ion-header,
body.login-active ion-content,
body.login-active #app-drawer{display:none}
#login-screen{position:fixed;inset:0;background:#f8f9fa;display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}
#login-screen.hidden{display:none}
.login-card{width:100%;max-width:420px;background:#ffffff;border-radius:16px;overflow:hidden;box-shadow:0 20px 45px rgba(0,0,0,.15);display:flex;flex-direction:column;border:1px solid #e0e0e0}
.login-header{
  height:140px;
  background:linear-gradient(135deg,#007aff 0%,#0056cc 50%,#003d99 100%);
  background-image:url('../images/logo.png');
  background-size:contain;
  background-position:center;
  background-repeat:no-repeat;
  position:relative;
  overflow:hidden;
  z-index:0
}
/* Fallback gradient overlay if logo image is not found - reduced opacity to show logo */
.login-header::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,#007aff 0%,#0056cc 50%,#003d99 100%);
  z-index:0;
  opacity:0.3
}
/* Optional: Subtle overlay for better logo visibility */
.login-header::after{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(circle at center,rgba(0,0,0,0.1) 0%,transparent 70%);
  z-index:1;
  pointer-events:none
}
.login-body{padding:32px 28px;display:flex;flex-direction:column;gap:20px;background:#ffffff}
/* Login Title Row - Flex container untuk title dan dropdown */
.login-title-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  gap: 12px;
}

/* Login Card Header - Judul Halaman, 17-20px, Bold */
.login-card h2{
  margin:0;
  text-align:left;
  font-size:18px; /* 1.125rem - dalam range 17-20px */
  font-weight:700; /* Bold */
  line-height:1.4; /* 25.2px - ideal untuk 18px font */
  color:#8b5cf6;
  text-transform:uppercase;
  letter-spacing:1px;
  flex: 1;
}

/* Login Type Dropdown - Mini dropdown untuk Admin/User */
.login-type-dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-width: 100px;
  flex-shrink: 0;
}

.login-type-select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background: #ffffff;
  border: 1px solid #d1d5db;
  border-radius: 8px; /* Input field: 8-12px */
  padding: 8px 32px 8px 12px;
  font-size: 13px; /* 0.8125rem - Caption */
  font-weight: 500; /* Medium */
  line-height: 1.4; /* 18.2px */
  color: #374151;
  cursor: pointer;
  min-height: 36px; /* Touch-friendly, mendekati 44px */
  width: 100%;
  outline: none;
  transition: all 0.2s ease;
}

.login-type-select:hover {
  border-color: #007aff;
  background: #f8f9fa;
}

.login-type-select:focus {
  border-color: #007aff;
  box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.1);
}

.login-type-dropdown .dropdown-icon {
  position: absolute;
  right: 10px;
  pointer-events: none;
  color: #6b7280;
  font-size: 16px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}
.login-role-group{display:flex;gap:12px;justify-content:center;margin-bottom:8px}
/* Login Role Button - Button text, 16-17px, Semibold */
.login-role-btn{
  background:#2563eb!important;
  color:#ffffff;
  border:none;   /* Minimum 12px vertical */
  min-height:44px; /* Minimum touch target */
  border-radius:12px; /* Tombol besar: 12px */
  font-size:16px; /* 1rem - dalam range 16-17px */
  font-weight:600; /* Semibold */
  line-height:1.5; /* 24px */
  cursor:pointer;
  transition:all .2s ease;
  flex:1;
  max-width:140px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.login-role-btn.active{background:#1e40af!important}
.login-role-btn:not(.active){background:#3b82f6!important;opacity:0.8}
.login-role-btn:hover{opacity:1;transform:translateY(-1px)}
.login-role-btn .role-checkbox{width:18px;height:18px;cursor:pointer;accent-color:#ffffff;flex-shrink:0}
.login-input-wrapper{position:relative;display:flex;align-items:center}
/* Login Input Icon - Icon dalam input, 24px */
.login-input-icon{
  position:absolute;
  left:12px;
  width:24px; /* Minimum 24px */
  height:24px; /* Minimum 24px */
  color:#9ca3af;
  pointer-events:none;
}
/* Login Label - Caption, 13px, Medium/Regular */
.login-card label{
  display:flex;
  flex-direction:column;
  font-size:13px; /* 0.8125rem - Caption */
  font-weight:500; /* Medium */
  line-height:1.4; /* 18.2px - ideal untuk 13px font */
  gap:8px;
  color:#374151;
}
/* Login Input - Body text, 15-16px, Regular */
.login-card input[type="text"],.login-card input[type="password"]{
  padding:12px 12px 12px 40px;
  min-height:44px; /* Minimum touch target */
  border-radius:10px; /* Input field: 8-12px */
  border:1px solid #d1d5db;
  background:#ffffff;
  color:#1c1c1e;
  font-size:15px; /* 0.9375rem - Body text */
  font-weight:400; /* Regular */
  line-height:1.5; /* 22.5px - ideal untuk 15px font */
  width:100%;
  box-sizing:border-box;
}
/* Datalist dropdown styling for login name options */
datalist#login-name-options{font-size:10px}
datalist#login-name-options option{padding:3px 6px;font-size:10px;line-height:1.4;margin:3px 0}
/* For browsers that support styling datalist dropdowns */
input[list="login-name-options"]::-webkit-calendar-picker-indicator{font-size:10px}
input[list="login-name-options"]::-webkit-list-button{font-size:10px}
/* Additional styling for datalist dropdown */
#login-name-options option{font-size:10px!important;padding:3px 6px!important;line-height:1.4!important;margin:3px 0!important}
.login-card input[type="text"]:focus,.login-card input[type="password"]:focus{outline:none;border-color:#007aff;background:#ffffff}
.login-card input[type="text"]::placeholder,.login-card input[type="password"]::placeholder{color:#9ca3af}
/* Login Submit Button - Button text, 16-17px, Bold */
#login-submit{
  width:100%;
  background:#22c55e!important;
  color:#ffffff;
  border:none;  /* Minimum 12px vertical */
  min-height:44px; /* Minimum touch target */
  border-radius:12px; /* Tombol besar: 12px */
  font-size:16px; /* 1rem - dalam range 16-17px */
  font-weight:700; /* Bold */
  line-height:1.5; /* 24px */
  text-transform:uppercase;
  letter-spacing:0.5px;
  cursor:pointer;
  transition:all .2s ease;
  margin-top:8px;
}
#login-submit:hover:not(:disabled){background:#16a34a;transform:translateY(-1px);box-shadow:0 4px 12px rgba(34,197,94,.3)}
#login-submit:disabled{opacity:.6;cursor:not-allowed}
/* Login Status - Caption, 13px, Medium */
#login-status{
  min-height:18px;
  font-size:13px; /* 0.8125rem - Caption */
  font-weight:500; /* Medium */
  line-height:1.4; /* 18.2px */
  color:#ef4444;
  text-align:center;
  margin-top:-8px;
}
/* List Items - Card, 12-16px border-radius */
ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px} /* Minimum 12px gap */
li{
  background:#ffffff;
  border:1px solid #e0e0e0;
  border-radius:12px; /* Card: 12-16px */
  padding:12px; /* Minimum 12px padding */
  font-size:15px; /* 0.9375rem - Body text */
  line-height:1.5; /* 22.5px */
}
table{width:100%;border-collapse:collapse}
/* Table Header & Cell - Body text, 15-16px */
th,td{
  border:1px solid #e0e0e0;
  padding:8px 12px; /* Minimum 8px vertical */
  text-align:left;
  font-size:15px; /* 0.9375rem - Body text */
  line-height:1.5; /* 22.5px */
}
/* Table Rows - Body text, 15-16px */
#rows th,#rows td{
  font-size:15px; /* 0.9375rem - Body text */
  line-height:1.5; /* 22.5px */
}
/* Table Row Button - Button text, 16-17px, Semibold */
#rows button{
  font-size:16px!important; /* 1rem - dalam range 16-17px */
  font-weight:600; /* Semibold */
  line-height:1.5; /* 24px */
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px; /* Minimum 8px gap */
  padding:12px 16px!important; /* Minimum 12px vertical */
  min-height:44px; /* Minimum touch target */
}
#rows button:hover{background:#f3d30d!important}
/* Table Row Button Icon - Icon dalam button, 24px */
#rows button svg{
  width:24px!important; /* Minimum 24px */
  height:24px!important; /* Minimum 24px */
}
.group-header{background:#f8f9fa;border-top:2px solid #007aff;border-bottom:1px solid #e0e0e0}
/* Group Header Cell - Sub-header, 15-17px, Semibold */
.group-header-cell{
  font-weight:600; /* Semibold */
  color:#000000;
  text-align:left;
  padding:12px 8px;
  font-size:16px; /* 1rem - dalam range 15-17px */
  line-height:1.5; /* 24px - ideal untuk 16px font */
}
#buttons-container{display:flex;width:100%;border-bottom:1px solid #e0e0e0}
#status-buttons-section{padding:12px 16px;display:flex;gap:16px;flex-wrap:wrap;justify-content:center}
/* Toggle Switch Styles */
.status-toggle-wrapper{display:flex;flex-direction:column;align-items:center;gap:3px}
.status-toggle-label{position:relative;display:inline-block;width:80px;height:44px;cursor:pointer}
.status-toggle-input{opacity:0;width:0;height:0}
.status-toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#0a9b40;transition:.3s;border-radius:44px}
.status-toggle-slider:before{position:absolute;content:"";height:36px;width:36px;left:4px;bottom:4px;background-color:#ffffff;transition:.3s;border-radius:50%}
.status-toggle-input:checked + .status-toggle-slider{background-color:#dc2626}
.status-toggle-input:checked + .status-toggle-slider:before{transform:translateX(36px)}
.status-toggle-input:disabled + .status-toggle-slider{opacity:0.6;cursor:not-allowed}
.status-toggle-input:disabled:checked + .status-toggle-slider{background-color:#dc2626;opacity:0.8}
/* Status Toggle Text - Caption, 13px, Medium/Regular */
.status-toggle-text{
  font-size:13px; /* 0.8125rem - Caption */
  font-weight:500; /* Medium */
  line-height:1.4; /* 18.2px - ideal untuk 13px font */
  text-align:center;
  color:#374151;
  white-space:nowrap;
  margin-top:4px; /* Spacing antara toggle dan text */
}
.status-toggle-wrapper .status-toggle-input:checked ~ * + .status-toggle-text,
.status-toggle-wrapper:has(.status-toggle-input:checked) .status-toggle-text{color:#dc2626;font-weight:600}
.status-toggle-wrapper .status-toggle-input:disabled ~ * + .status-toggle-text,
.status-toggle-wrapper:has(.status-toggle-input:disabled) .status-toggle-text{opacity:0.6}
/* Stopwatch Timer Styles */
#stopwatch-container{display:flex;flex-direction:column;align-items:center;gap:8px}
.stopwatch-display{display:flex;gap:8px;align-items:center;justify-content:center}
.stopwatch-box{display:flex;flex-direction:column;align-items:center;background:#ffffff;border:2px solid #e0e0e0;border-radius:8px;padding:8px 12px;min-width:60px}
.stopwatch-number{font-size:24px;font-weight:700;color:#ffffff;font-variant-numeric:tabular-nums;line-height:1.2}
/* Stopwatch Label - Micro text, 11-12px, Medium */
.stopwatch-label{
  font-size:11px; /* 0.6875rem - Micro text */
  font-weight:500; /* Medium */
  line-height:1.4; /* 15.4px - ideal untuk 11px font */
  color:#9ca3af;
  text-transform:uppercase;
  letter-spacing:0.5px;
  margin-top:4px;
}
.stopwatch-separator{font-size:24px;font-weight:700;color:#ffffff;padding:0 4px}
/* HTX Action Button - Button text, 16-17px, Semibold */
.htx-action-button{
  background:#c80c94!important;
  border:0;
  color:#ffffff;
  padding:12px 16px!important; /* Minimum 12px vertical */
  min-height:44px; /* Minimum touch target */
  border-radius:12px; /* Tombol besar: 12px */
  font-weight:600; /* Semibold */
  font-size:16px; /* 1rem - dalam range 16-17px */
  line-height:1.5; /* 24px */
  cursor:pointer;
  transition:background .2s ease,transform .2s ease;
  white-space:nowrap;
  width:100%;
}
.htx-action-button:hover{background:#a00a7a!important;transform:translateY(-1px)}
.htx-action-button.change-car{background:#e50b37!important}
.htx-action-button.change-car:hover{background:#c0092d!important}
.dropdown-list{max-height:200px;overflow-y:auto}
.dropdown-option{padding:10px 12px;cursor:pointer;color:#1c1c1e;border-bottom:1px solid #e0e0e0;transition:background .2s ease}
.dropdown-option:hover{background:#f5f5f5}
.dropdown-option:last-child{border-bottom:none}
.dropdown-option.highlight{background:#007aff;color:#ffffff}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#007aff;color:#ffffff;padding:12px 18px;border-radius:8px;font-weight:600;box-shadow:0 4px 12px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:60}
.toast.show{opacity:1;transform:translate(-50%,-6px)}
.muted{opacity:.8}
/* Modal - Elegant & Mobile-Friendly */
.modal{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(17, 24, 39, 0.7);
  backdrop-filter: blur(4px);
  padding:16px;
  z-index:1000;
  opacity:0;
  transition:opacity 0.2s ease;
}
.modal.open{
  display:flex;
  opacity:1;
}
.modal-card{
  background:#ffffff;
  border:1px solid #e5e7eb;
  border-radius:16px;
  max-width:720px;
  width:100%;
  max-height:80vh;
  overflow:auto;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
  animation: slideUp 0.3s ease-out;
}

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

/* Date Filter Modal - Elegant & Compact */
#date-filter-modal .modal-card {
  max-width: 360px;
}

#date-filter-modal input[type="date"] {
  font-size: 14px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  transition: all 0.2s ease;
}

#date-filter-modal input[type="date"]:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

#date-filter-modal label {
  font-size: 12px;
  font-weight: 600;
  color: #374151;
  margin-bottom: 6px;
}

#date-filter-modal .flex.justify-end.gap-2 button {
  font-size: 13px;
  padding: 8px 16px;
  border-radius: 8px;
  font-weight: 600;
  transition: all 0.2s ease;
}

#date-filter-modal button:hover {
  transform: translateY(-1px);
}

/* Mobile full page modal */
@media (max-width: 640px) {
  .modal-card {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;
    max-height: none !important;
    border-radius: 0 !important;
    margin: 0 !important;
  }
  
  #date-filter-modal .modal-card {
    max-width: none !important;
    border-radius: 0 !important;
  }
  
  #date-filter-modal .p-4 {
    padding: 16px !important;
  }
  
  #date-filter-modal input[type="date"] {
    font-size: 13px;
    padding: 9px 10px;
  }
  
  #date-filter-modal .flex.justify-end.gap-2 {
    flex-wrap: wrap;
  }
  
  #date-filter-modal .flex.justify-end.gap-2 button {
    flex: 1;
    min-width: 100px;
  }
}
.modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #e0e0e0}
.modal-body{padding:16px}
/* Details Content - 2 Column Layout */
#details-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 20px;
  padding: 16px;
}

/* KV (Key-Value) - Detail Information */
.kv{
  display:flex;
  flex-direction:column;
  gap:4px;
  border-bottom:1px dashed #e0e0e0;
  padding:6px 0;
}
/* KV Label - Caption, 13px, Medium */
.kv .muted{
  color:#666;
  font-weight:500; /* Medium */
  font-size:13px; /* 0.8125rem - Caption */
  line-height:1.4; /* 18.2px */
}
/* KV Value - Body text, 15-16px, Regular/Semibold */
.kv > div:last-child{
  font-weight:600; /* Semibold untuk value */
  color:#1c1c1e;
  font-size:15px; /* 0.9375rem - Body text */
  line-height:1.5; /* 22.5px */
}
/* Mobile Media Query - max-width: 768px */
@media (max-width:768px){
  /* Header - tetap 18px, padding disesuaikan */
  header{
    padding:12px 16px;
    gap:12px; /* Minimum 12px gap */
    font-size:17px; /* 1.0625rem - dalam range 17-20px untuk mobile */
  }
  header button{
    padding:12px 16px!important; /* Minimum 12px vertical */
    min-height:44px!important; /* Minimum touch target */
  }
  main{padding:12px;max-width:100%}
  .card{padding:12px;margin:10px 0}
  /* Buttons - tetap minimum 44px */
  button{
    width:100%;
    padding:12px 16px!important; /* Minimum 12px vertical */
    min-height:44px!important; /* Minimum touch target */
  }
  /* Icon buttons - tetap minimum 44px */
  .icon-btn{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
  }
  /* Hamburger - tetap minimum 44px */
  .hamburger{
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
  }
  #status{display:none}
  ul{grid-template-columns:1fr}
  /* Table - Body text, 15-16px */
  table{font-size:15px;line-height:1.5}
  th,td{
    padding:8px; /* Minimum 8px padding */
    font-size:15px; /* 0.9375rem - Body text */
    line-height:1.5; /* 22.5px */
  }
  /* Details Content - tetap 2 kolom di mobile */
  #details-content{
    grid-template-columns:1fr 1fr !important; /* Tetap 2 kolom */
    gap:10px 12px; /* 10px vertical, 12px horizontal untuk mobile */
    padding:12px;
  }
  .kv{flex-direction:column;gap:4px}
  /* Status Button - Minimum 44×44px */
  .status-button-wrapper{
    width:auto;
    align-items:center;
    min-width:44px; /* Minimum touch target */
  }
  .status-button{
    width:100%;
    padding:12px 16px!important; /* Minimum 12px vertical */
    min-width:44px!important; /* Minimum touch target */
    min-height:44px!important; /* Minimum touch target */
    font-size:16px!important; /* 1rem - Button text */
    font-weight:600; /* Semibold */
    line-height:1.5; /* 24px */
  }
  /* Status Button Icon - 24px */
  .status-button svg{
    width:24px!important; /* Minimum 24px */
    height:24px!important; /* Minimum 24px */
  }
  .status-button-label{
    font-size:13px; /* 0.8125rem - Caption */
    font-weight:500; /* Medium */
    line-height:1.4; /* 18.2px */
    margin-top:4px;
  }
  #buttons-container{flex-direction:column}
  #buttons-container > div{flex-direction:column}
  /* Status Buttons Section - gap minimum 12px */
  #status-buttons-section{
    flex-direction:row;
    gap:12px; /* Recommended 12-16px */
    padding:12px 16px; /* Minimum 12px padding */
    flex-wrap:wrap;
    justify-content:center;
    width:100%;
  }
  .stopwatch-box{min-width:50px;padding:6px 10px}
  .stopwatch-number{font-size:20px}
  .stopwatch-label{font-size:9px}
  .stopwatch-separator{font-size:20px}
  #htx-actions-section{flex-direction:row;gap:10px;width:100%;justify-content:center}
  /* HTX Action Button - tetap minimum 44px */
  .htx-action-button{
    padding:12px 16px!important; /* Minimum 12px vertical */
    min-height:44px!important; /* Minimum touch target */
    font-size:16px!important; /* 1rem - Button text */
    width:auto;
  }
  .modal-card{width:100%;max-height:85vh;border-radius:10px}
  /* Modal Header - Judul Halaman, 17-20px */
  .modal-header{
    padding:12px 16px;
    font-size:18px; /* 1.125rem - dalam range 17-20px */
    line-height:1.4; /* 25.2px */
  }
  .modal-header button{
    width:auto;
    padding:12px 16px!important; /* Minimum 12px vertical */
    min-height:44px!important; /* Minimum touch target */
    font-size:16px!important; /* 1rem - Button text */
  }
  .modal-body{padding:12px}
  /* KV Label - Caption, 13px */
  .kv .muted{
    font-size:13px!important; /* 0.8125rem - Caption */
    line-height:1.4; /* 18.2px */
  }
  /* KV Input - Body text, 15-16px */
  .kv input{
    padding:12px; /* Minimum 12px padding */
    min-height:44px; /* Minimum touch target */
    font-size:15px!important; /* 0.9375rem - Body text */
    line-height:1.5; /* 22.5px */
  }
/* Elegant Details Grid */
#details-content {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
  padding: 8px 0;
}

.detail-item {
  background: #f9fafb;
  border: 1px solid #f3f4f6;
  border-radius: 12px;
  padding: 12px;
  transition: all 0.2s ease;
}

.detail-item:hover {
  background: #ffffff;
  border-color: #e5e7eb;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
}

.detail-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #6b7280;
  font-weight: 600;
  margin-bottom: 4px;
  display: block;
}

.detail-value {
  font-size: 13px;
  color: #111827;
  font-weight: 500;
  line-height: 1.4;
  word-break: break-word;
}

/* Elegant Toggle Switch */
.status-toggle-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.status-toggle-label {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 26px;
  cursor: pointer;
}

.status-toggle-input {
  opacity: 0;
  width: 0;
  height: 0;
}

.status-toggle-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #e5e7eb;
  transition: .3s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: 34px;
  border: 1px solid #d1d5db;
}

.status-toggle-slider:before {
  position: absolute;
  content: "";
  height: 20px;
  width: 20px;
  left: 2px;
  bottom: 2px;
  background-color: white;
  transition: .3s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.status-toggle-input:checked + .status-toggle-slider {
  background-color: #10b981;
  border-color: #10b981;
}

.status-toggle-input:checked + .status-toggle-slider:before {
  transform: translateX(18px);
}

.status-toggle-text {
  font-size: 10px;
  font-weight: 600;
  color: #4b5563;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

/* GPS Signal Indicator */
.gps-signal-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.gps-signal-indicator {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 26px; /* Match toggle height */
  padding: 4px 8px;
  background: #f3f4f6;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
}

.signal-bar {
  width: 3px;
  background-color: #d1d5db;
  border-radius: 1px;
}

.signal-bar:nth-child(1) { height: 6px; }
.signal-bar:nth-child(2) { height: 10px; }
.signal-bar:nth-child(3) { height: 14px; }

.gps-signal-wrapper.active .signal-bar {
  background-color: #10b981;
  box-shadow: 0 0 4px rgba(16, 185, 129, 0.4);
}

.gps-signal-wrapper.inactive .signal-bar {
  background-color: #ef4444;
}

.gps-signal-text {
  font-size: 10px;
  font-weight: 600;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.gps-signal-wrapper.active .gps-signal-text {
  color: #10b981;
}

/* Mobile Layout Fixes */
@media (max-width: 480px) {
  #details-content {
    grid-template-columns: 1fr 1fr !important; /* Force 2 columns */
    gap: 10px !important;
  }

  .detail-item {
    padding: 10px;
  }

  .detail-value {
    font-size: 12px;
  }

  #buttons-container {
    justify-content: space-around; /* Better spacing on mobile */
    gap: 12px;
  }
}

/* Removed .driver-date-filter and .driver-date-input - replaced with popup modal */

/* Mobile card layout for operasional services */
#rows-card.os-card-layout {
  overflow-x: hidden;
}

.os-date-group {
  background: #ffffff;
  border-radius: 8px;
  margin: 20px 0 10px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

/* OS Date Header - Sub-header, 15-17px, Semibold */
.os-date-header {
  background: #f8f9fa;
  padding: 12px 16px; /* Minimum 12px vertical */
  font-size: 16px; /* 1rem - dalam range 15-17px */
  font-weight: 600; /* Semibold */
  line-height: 1.5; /* 24px */
  color: #1c1c1e;
  border-bottom: 1px solid #e0e0e0;
}

.os-transaction-card {
  background: #ffffff;
  padding: 14px 16px;
  border-bottom: 1px solid #f0f0f0;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  cursor: pointer;
  transition: background 0.2s ease;
}

.os-transaction-card:last-child {
  border-bottom: none;
}

.os-transaction-card:hover {
  background: #f5f5f5;
}

.os-transaction-left {
  flex: 1;
}

/* OS Guest Name - Body text, 15-16px, Semibold */
.os-guest-name {
  font-weight: 600; /* Semibold */
  font-size: 15px; /* 0.9375rem - Body text */
  line-height: 1.5; /* 22.5px */
  margin-bottom: 6px;
}

/* OS Services Line - Caption, 13px, Regular */
.os-services-line {
  font-size: 13px; /* 0.8125rem - Caption */
  font-weight: 400; /* Regular */
  line-height: 1.4; /* 18.2px */
  color: #333;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.os-services-label {
  color: #374151;
  font-weight: 500;
  font-size : 12px;
}

.os-separator {
  color: #6b7280;
}

/* OS Program Activity - Badge, 13px, Medium */
.os-program-activity {
  background: #e0f2fe;
  color: #0369a1;
  padding: 4px 10px; /* Minimum 4px vertical */
  border-radius: 8px; /* Badge: 8-12px */
  font-size: 12px; /* 0.8125rem - Caption */
  font-weight: 500; /* Medium */
  line-height: 1.4; /* 18.2px */
}

/* OS Service Status - Badge, 13px, Medium */
.os-service-status {
  background: #e5f7e5;
  color: #006400;
  padding: 4px 10px; /* Minimum 4px vertical */
  border-radius: 8px; /* Badge: 8-12px */
  font-size: 13px; /* 0.8125rem - Caption */
  font-weight: 500; /* Medium */
  line-height: 1.4; /* 18.2px */
  margin-bottom: 6px;
  text-align: right; /* Rata kanan */
  align-self: flex-end; /* Rata kanan dalam flex container */
}

/* OS Details Line - Caption, 13px, Regular */
.os-details-line {
  font-size: 13px; /* 0.8125rem - Caption */
  font-weight: 400; /* Regular */
  line-height: 1.4; /* 18.2px */
  color: #666;
}

.os-details-line span {
  margin-right: 14px;
}

/* OS Pickup Status - Body text, 15-16px, Semibold */
.os-pickup-status {
  font-size: 15px; /* 0.9375rem - Body text */
  font-weight: 600; /* Semibold */
  line-height: 1.5; /* 22.5px */
  color: #007aff;
  white-space: nowrap;
  padding-top: 2px;
  text-align: right; /* Rata kanan */
  align-self: flex-end; /* Rata kanan dalam flex container */
}

.os-pickup-status.os-pickup-done {
  color: #34c759;
}

.os-card-more-btn {
  font-size: 18px;
  color: #666;
  margin-left: 12px;
  padding: 4px;
}

/* GPS Status Indicator Styles */
/* GPS Status - Caption, 13px, Medium */
.gps-status {
  font-size: 13px; /* 0.8125rem - Caption */
  font-weight: 500; /* Medium */
  line-height: 1.4; /* 18.2px */
  padding: 12px 16px; /* Minimum 12px vertical */
  min-height: 44px; /* Minimum touch target */
  border-radius: 8px; /* Badge: 8-12px */
  text-align: center;
  transition: all 0.3s ease;
  margin: 8px 12px;
}

.gps-status.active {
  background: #dbeafe;
  color: #1e40af;
  border: 1px solid #93c5fd;
}

.gps-status.active.good {
  background: #dcfce7;
  color: #166534;
  border: 1px solid #86efac;
}

.gps-status.active.medium {
  background: #fef3c7;
  color: #92400e;
  border: 1px solid #fde047;
}

.gps-status.active.poor {
  background: #fed7aa;
  color: #9a3412;
  border: 1px solid #fdba74;
}

.gps-status.active.very-poor {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fca5a5;
}

.gps-status.inactive {
  background: #f8f9fa;
  color: #374151;
  border: 1px solid #e0e0e0;
}

/* ============================
   Mobile-friendly filters card
   ============================ */

#filters-card {
  padding: 14px 14px 12px;
}

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

/* Driver Search Box - Input field, 8-12px border-radius */
.driver-search-box {
  margin: 12px 0; /* Minimum 12px margin */
  background: #ffffff;
  border-radius: 10px; /* Input field: 8-12px */
  padding: 8px 12px; /* Minimum 8px vertical */
  border: 1px solid #e0e0e0;
}

/* Driver Search Input - Body text, 15-16px, Regular */
.driver-search-input {
  width: 100%;
  border: none;
  outline: none;
  font-size: 15px; /* 0.9375rem - Body text */
  font-weight: 400; /* Regular */
  line-height: 1.5; /* 22.5px */
  padding: 12px 0; /* Minimum 12px vertical */
  min-height: 44px; /* Minimum touch target */
  background: transparent;
  color: #1c1c1e;
}

.driver-search-input::placeholder {
  color: #64748b;
}

/* Driver Filters Row - gap minimum 12px */
.driver-filters-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px; /* Recommended 12-16px */
}

.driver-checkbox-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

/* Driver Filter Checkbox - Caption, 13px, Medium */
.driver-filter-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 8px; /* Minimum 8px gap */
  cursor: pointer;
  padding: 8px 12px; /* Minimum 8px vertical untuk touch-friendly */
  min-height: 44px; /* Minimum touch target */
  border-radius: 12px; /* Badge: 8-12px */
  background: #ffffff;
  border: 1px solid #e0e0e0;
  font-size: 13px; /* 0.8125rem - Caption */
  font-weight: 500; /* Medium */
  line-height: 1.4; /* 18.2px */
}

.driver-filter-checkbox input[type="checkbox"] {
  accent-color: #007aff;
}

/* Small Mobile - max-width: 480px */
@media (max-width: 480px) {
  #filters-card {
    padding: 12px;
  }
  /* Driver Search Input - tetap 15px */
  .driver-search-input {
    font-size: 15px !important; /* 0.9375rem - Body text */
    line-height: 1.5; /* 22.5px */
  }
  /* Driver Filter Checkbox - tetap 13px */
  .driver-filter-checkbox {
    font-size: 13px !important; /* 0.8125rem - Caption */
    line-height: 1.4; /* 18.2px */
  }
  /* Details Content - tetap 2 kolom di mobile kecil (<480px) */
  #details-content {
    grid-template-columns: 1fr 1fr !important; /* Tetap 2 kolom */
    gap: 8px 10px; /* 8px vertical, 10px horizontal untuk mobile kecil */
    padding: 12px;
  }
  /* KV items - tetap readable di mobile kecil */
  .kv {
    padding: 4px 0; /* Sedikit lebih kecil padding */
  }
  .kv .muted {
    font-size: 12px !important; /* Sedikit lebih kecil untuk mobile */
    line-height: 1.4;
  }
  .kv > div:last-child {
    font-size: 13px !important; /* Sedikit lebih kecil untuk mobile */
    line-height: 1.4;
  }
}

/* ===========================================
   Card layout for "operasional services" table
   =========================================== */

#rows-card.os-card-layout {
  overflow-x: visible;
}

#rows-card.os-card-layout #rows {
  min-width: 0;
}

#rows-card.os-card-layout table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

/* OS Date Group Header - Sub-header, 15-17px, Semibold */
.os-date-group-header-row .group-header-cell {
  background: #97edf2;
  border-bottom: 1px solid #e0e0e0;
  font-size: 16px; /* 1rem - dalam range 15-17px */
  font-weight: 600; /* Semibold */
  line-height: 1.5; /* 24px */
  color: #000000;
}

.os-card-row > td {
  padding: 0;
  border: none;
  border-bottom: 1px solid #000000;
}

/* OS Transaction Card - Body text, 15-16px */
.os-transaction-card {
  background: #ffffff;
  border-bottom: 1px solid #f0f0f0;
  padding: 12px 16px; /* Minimum 12px vertical */
  min-height: 44px; /* Minimum touch target */
  display: flex;
  align-items: center;
  gap: 12px; /* Minimum 12px gap */
  font-size: 15px; /* 0.9375rem - Body text */
  line-height: 1.5; /* 22.5px */
  cursor: pointer; /* Indikator bahwa card dapat diklik */
  transition: background-color 0.2s ease; /* Smooth hover effect */
}

.os-transaction-card:hover {
  background: #f8f9fa; /* Light background on hover */
}

.os-transaction-left {
  flex: 1;
}

.os-guest-name {
  font-weight: 600;
  font-size: 1.3rem;
  margin-bottom: 4px;
}

.os-services-line {
  font-size: 1.1rem;
  color: #e5e7eb;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.os-service-status {
  background: #166534;
  color: #bbf7d0;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 1.1rem;
  font-weight: 500;
  white-space: nowrap;
  text-align: right; /* Rata kanan */
  align-self: flex-end; /* Rata kanan dalam flex container */
}

.os-details-line {
  font-size: 12px;
  color: #9ca3af;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.os-details-line span {
  white-space: nowrap;
}

.os-transaction-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end; /* Rata kanan */
  gap: 4px;
  min-width: 120px;
}

.os-pickup-status {
  font-size: 1.2rem;
  font-weight: 600;
  color: #007aff;
  white-space: nowrap;
  text-align: right; /* Rata kanan */
  align-self: flex-end; /* Rata kanan dalam flex container */
}

.os-pickup-status.done {
  color: #22c55e;
}

/* OS Guide Driver Info - Caption, 13px, Regular */
.os-guide-driver-info {
  font-size: 12px; /* 0.8125rem - Caption */
  font-weight: 400; /* Regular */
  line-height: 1.4; /* 18.2px */
  color: #6b7280;
  margin-top: 6px;
  text-align: right; /* Rata kanan */
  align-self: flex-end; /* Rata kanan dalam flex container */
}

/* OS Card More Button - Icon button, minimum 44×44px */
.os-card-more-btn {
  background: transparent !important;
  border: none !important;
  padding: 10px !important; /* Padding untuk center icon */
  min-width: 44px; /* Minimum touch target */
  min-height: 44px; /* Minimum touch target */
  color: #007aff;
  margin-right: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.os-card-more-btn:hover {
  background: transparent !important;
  color: #0056cc;
}

/* OS Card More Button Icon - 24px */
.os-card-more-btn i {
  font-size: 24px !important; /* Minimum 24px */
}

/* Mobile - max-width: 768px */
@media (max-width: 768px) {
  .os-transaction-card {
    padding: 12px 16px; /* Minimum 12px vertical */
    min-height: 44px; /* Minimum touch target */
  }
  /* OS Guest Name - tetap 15px */
  .os-guest-name {
    font-size: 15px !important; /* 0.9375rem - Body text */
    line-height: 1.5; /* 22.5px */
  }
  /* OS Service Status - tetap 13px */
  .os-service-status {
    font-size: 12px !important; /* 0.8125rem - Caption */
    line-height: 1.4; /* 18.2px */
  }
  /* OS Pickup Status - tetap 15px */
  .os-pickup-status {
    font-size: 12px !important; /* 0.9375rem - Body text */
    line-height: 1.5; /* 22.5px */
  }
}
