/* Taxichi Pro: final touch-first mobile layout. No application logic is changed. */
html.taxichi-auth-locked body > aside,
html.taxichi-auth-locked body > main,
html.taxichi-auth-locked body > dialog { display: none !important; }
html.taxichi-auth-locked #loginScreen { display: flex !important; visibility: visible !important; }
html.taxichi-auth-locked #loginScreen.hidden { display: flex !important; }

.mobile-nav-toggle { display: none; }

@media (max-width: 760px) {
  html, body { width: 100% !important; min-width: 0 !important; overflow-x: hidden !important; }
  body { display: block !important; background: #fafafc !important; }

  aside {
    position: sticky !important; top: 0 !important; z-index: 10000 !important;
    width: 100% !important; height: auto !important; min-height: 0 !important;
    padding: 10px 12px 9px !important; overflow: visible !important;
    border-right: 0 !important; border-bottom: 1px solid #2b2d31 !important;
    box-shadow: 0 8px 24px rgba(12, 14, 18, .12) !important;
  }
  aside .brand { min-height: 40px !important; margin: 0 0 8px !important; }
  aside .brand img { width: 38px !important; height: 38px !important; }
  aside .brand strong { font-size: 15px !important; line-height: 18px !important; }
  aside .brand small { font-size: 10px !important; line-height: 12px !important; }

  .mobile-nav-toggle {
    display: grid !important; grid-template-columns: 32px minmax(0,1fr) 24px !important;
    align-items: center !important; gap: 9px !important; width: 100% !important;
    min-height: 48px !important; padding: 7px 10px !important; margin: 0 0 7px !important;
    border: 1px solid #34373d !important; border-radius: 12px !important;
    background: #212328 !important; color: #fff !important; text-align: left !important;
  }
  .mobile-nav-toggle span:nth-child(2) { display: flex !important; flex-direction: column !important; min-width: 0 !important; }
  .mobile-nav-toggle small { color: #aeb4bf !important; font-size: 9px !important; line-height: 11px !important; text-transform: uppercase !important; letter-spacing: .06em !important; }
  .mobile-nav-toggle b { overflow: hidden !important; color: #fff !important; font-size: 13px !important; line-height: 17px !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
  .mobile-nav-bars { display: flex !important; flex-direction: column !important; justify-content: center !important; gap: 4px !important; width: 30px !important; height: 30px !important; padding: 6px !important; border-radius: 8px !important; background: #ffb800 !important; }
  .mobile-nav-bars i { display: block !important; width: 100% !important; height: 2px !important; border-radius: 2px !important; background: #171717 !important; }
  .mobile-nav-chevron { color: #ffcc16 !important; font-size: 21px !important; text-align: center !important; transition: transform .18s ease !important; }
  aside.mobile-nav-open .mobile-nav-chevron { transform: rotate(180deg) !important; }

  aside nav {
    display: none !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 7px !important;
    width: 100% !important; max-height: min(58dvh,440px) !important; padding: 2px 0 8px !important;
    overflow-y: auto !important; overflow-x: hidden !important; overscroll-behavior: contain !important;
  }
  aside.mobile-nav-open nav { display: grid !important; }
  aside nav button {
    width: 100% !important; min-width: 0 !important; min-height: 48px !important; padding: 7px 9px !important;
    border-radius: 11px !important; font-size: 12px !important; line-height: 16px !important;
    white-space: normal !important; text-align: left !important;
  }
  aside .nav-icon, aside nav button .nav-icon {
    flex: 0 0 30px !important; width: 30px !important; min-width: 30px !important;
    height: 30px !important; border-radius: 8px !important;
  }
  aside .nav-icon svg, aside nav button .nav-icon svg { width: 18px !important; height: 18px !important; }

  aside .user {
    display: grid !important; grid-template-columns: auto minmax(0, 1fr) auto !important;
    align-items: center !important; gap: 7px !important; margin: 1px 0 0 !important;
  }
  aside:not(.mobile-nav-open) .user { margin-top: 0 !important; }
  aside .report-link { min-height: 40px !important; padding: 7px 10px !important; border-radius: 10px !important; }
  aside .sidebar-account-card {
    display: flex !important; min-width: 0 !important; min-height: 40px !important;
    padding: 5px 8px !important; margin: 0 !important; border-radius: 10px !important;
  }
  aside .sidebar-account-card .sidebar-account-avatar { flex: 0 0 30px !important; width: 30px !important; height: 30px !important; }
  aside .sidebar-account-card strong, aside .sidebar-account-card b { font-size: 11px !important; line-height: 14px !important; }
  aside .sidebar-account-card small, aside .sidebar-account-card span { font-size: 9px !important; line-height: 12px !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
  aside .logout-access {
    display: inline-flex !important; align-items: center !important; justify-content: center !important;
    width: auto !important; min-width: 64px !important; min-height: 40px !important;
    margin: 0 !important; padding: 6px 9px !important; border-radius: 10px !important;
    font-size: 10px !important; white-space: nowrap !important;
  }

  main { margin-left: 0 !important; width: 100% !important; max-width: none !important; padding: 16px 12px 32px !important; }
  main > header, .page-header { display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 10px !important; margin-bottom: 16px !important; }
  main > header h1, .page-header h1, h1 { font-size: 24px !important; line-height: 29px !important; }
  main > header button, .page-header button, #addDriver, #addVehicle, #addOrganization { min-height: 44px !important; }

  .panel, .table-wrap, .table-container, main > section { width: 100% !important; max-width: 100% !important; border-radius: 14px !important; }
  .toolbar, .search-row, .filters { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 8px !important; padding: 10px !important; }
  input, select, textarea, .toolbar input, .toolbar select, #search, #toolbarFilter { min-height: 46px !important; font-size: 16px !important; }

  .table-wrap, .table-container, .panel:has(> table) {
    overflow-x: auto !important; overscroll-behavior-x: contain !important;
    -webkit-overflow-scrolling: touch !important; scroll-snap-type: x proximity !important;
  }
  table { width: max-content !important; min-width: 920px !important; font-size: 12px !important; }
  body[data-admin-page="drivers"] table, body[data-admin-page="vehicles"] table { min-width: 1120px !important; }
  th, td { padding-top: 11px !important; padding-bottom: 11px !important; }

  body[data-admin-page="vehicles"] .vehicle-filters, body[data-admin-page="vehicles"] .vehicle-stats,
  body[data-admin-page="vehicles"] .stats-row {
    display: flex !important; flex-flow: row nowrap !important; gap: 8px !important;
    overflow-x: auto !important; padding: 10px !important; scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important; -webkit-overflow-scrolling: touch !important;
  }
  body[data-admin-page="vehicles"] .vehicle-filters::-webkit-scrollbar,
  body[data-admin-page="vehicles"] .vehicle-stats::-webkit-scrollbar,
  body[data-admin-page="vehicles"] .stats-row::-webkit-scrollbar { display: none !important; }
  body[data-admin-page="vehicles"] .vehicle-filter, body[data-admin-page="vehicles"] .stat-card,
  body[data-admin-page="vehicles"] .filter-card { flex: 0 0 210px !important; min-height: 68px !important; scroll-snap-align: start !important; }

  dialog {
    width: calc(100vw - 12px) !important; max-width: none !important;
    height: auto !important; max-height: calc(100dvh - 12px) !important;
    margin: auto !important; padding: 18px 14px 14px !important;
    border-radius: 16px !important; overflow-y: auto !important; overscroll-behavior: contain !important;
  }
  dialog .form-grid, dialog .grid, .employee-form-grid, .cabinet-pages-checks { grid-template-columns: minmax(0, 1fr) !important; gap: 10px !important; }
  dialog .close, dialog .modal-close, dialog [data-close] { min-width: 38px !important; width: 38px !important; height: 38px !important; }
  dialog .actions, dialog footer, .edit-actions {
    position: sticky !important; bottom: -14px !important; z-index: 5 !important;
    display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 8px !important;
    margin: 14px -14px -14px !important; padding: 10px 14px 14px !important;
    background: rgba(255,255,255,.97) !important; border-top: 1px solid #ececec !important;
  }
  dialog .actions button, dialog footer button, .edit-actions button { width: 100% !important; min-width: 0 !important; min-height: 46px !important; }
  #driverDialog .driver-vehicle-search-row { grid-template-columns: minmax(0, 1fr) 88px !important; }
  #driverDialog #driverVehicleSearchButton { width: 88px !important; }

  button, [role="button"], a.report-link { touch-action: manipulation !important; -webkit-tap-highlight-color: transparent !important; }
}

@media (max-width: 420px) {
  aside { padding-left: 9px !important; padding-right: 9px !important; }
  aside .user { grid-template-columns: auto minmax(0, 1fr) !important; }
  aside .logout-access { grid-column: 1 / -1 !important; width: 100% !important; min-height: 38px !important; }
  main { padding-left: 9px !important; padding-right: 9px !important; }
  main > header h1, .page-header h1, h1 { font-size: 22px !important; line-height: 27px !important; }
  dialog { width: calc(100vw - 8px) !important; max-height: calc(100dvh - 8px) !important; padding-left: 12px !important; padding-right: 12px !important; }
}

@media (hover: none) and (pointer: coarse) {
  button, input, select, textarea, a[role="button"] { min-height: 44px; }
  button:hover, aside nav button:hover { transform: none !important; }
}

/* Compact phone header and clear full-height section picker. */
@media (max-width: 760px) {
  aside {
    display: grid !important; grid-template-columns: minmax(112px,auto) minmax(160px,1fr) !important;
    align-items: center !important; gap: 9px !important; min-height: 60px !important;
    padding: 8px 10px !important;
  }
  aside .brand { min-width: 0 !important; min-height: 42px !important; margin: 0 !important; }
  aside .brand img { width: 36px !important; height: 36px !important; }
  aside .brand strong, aside .brand b { font-size: 13px !important; line-height: 16px !important; white-space: nowrap !important; }
  aside .brand small { font-size: 9px !important; }
  .mobile-nav-toggle { min-height: 44px !important; margin: 0 !important; padding: 5px 8px !important; }
  .mobile-nav-toggle small { display: none !important; }
  .mobile-nav-toggle b { font-size: 12px !important; }
  .mobile-nav-bars { width: 28px !important; height: 28px !important; }

  aside nav {
    position: fixed !important; z-index: 10020 !important; top: 68px !important; left: 10px !important;
    right: 10px !important; bottom: 88px !important; width: auto !important; max-height: none !important;
    grid-template-columns: repeat(2,minmax(0,1fr)) !important; align-content: start !important;
    gap: 8px !important; padding: 12px !important; overflow-y: auto !important;
    border: 1px solid #34373d !important; border-radius: 16px 16px 8px 8px !important;
    background: #17191d !important; box-shadow: 0 18px 45px rgba(0,0,0,.36) !important;
  }
  aside nav button { min-height: 54px !important; padding: 8px 10px !important; font-size: 12px !important; }
  aside nav button.active, aside nav button.is-active { background: #ffefbd !important; color: #201a0b !important; }

  aside .user { display: none !important; }
  aside.mobile-nav-open .user {
    position: fixed !important; z-index: 10021 !important; left: 10px !important; right: 10px !important;
    bottom: 10px !important; display: grid !important; grid-template-columns: auto minmax(0,1fr) auto !important;
    gap: 7px !important; margin: 0 !important; padding: 8px !important;
    border: 1px solid #34373d !important; border-radius: 8px 8px 16px 16px !important;
    background: #17191d !important; box-shadow: 0 18px 45px rgba(0,0,0,.36) !important;
  }
  aside.mobile-nav-open::after {
    content: "" !important; position: fixed !important; z-index: 10010 !important;
    inset: 60px 0 0 !important; background: rgba(12,14,18,.44) !important; backdrop-filter: blur(2px) !important;
  }
  aside.mobile-nav-open nav, aside.mobile-nav-open .user { isolation: isolate !important; }
  main { padding-top: 14px !important; }
}

@media (max-width: 380px) {
  aside { grid-template-columns: 104px minmax(0,1fr) !important; gap: 6px !important; }
  aside .brand img { width: 32px !important; height: 32px !important; }
  aside .brand strong, aside .brand b { font-size: 12px !important; }
  .mobile-nav-toggle { grid-template-columns: 28px minmax(0,1fr) 18px !important; gap: 6px !important; }
  aside nav { grid-template-columns: minmax(0,1fr) !important; }
}
