/*
 * CYC Ride UI141 R38W
 * Driver live occupancy, event pager and one-second status presentation.
 * This stylesheet is isolated to the driver page and does not alter passenger UI.
 */

.driver-ux18 .driver-vehicle-hero {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 16px;
}

.driver-ux18 .driver-seat-card .field {
  margin: 14px 0;
}

.driver-ux18 .trip-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 14px;
}

.driver-ux18 .trip-chip {
  appearance: none;
  border: 1px solid #bfd2e6;
  border-radius: 999px;
  background: #f4f8fc;
  color: #27435f;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 900;
  min-height: 36px;
  padding: 7px 12px;
}

.driver-ux18 .trip-chip.active {
  border-color: #22c55e;
  background: #ecfdf5;
  color: #166534;
}

.driver-ux18 .trip-chip.selected {
  border-color: #2563eb;
  background: #dbeafe;
  color: #1e40af;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, .11);
}

.driver-ux18 .seat-status {
  border: 2px solid #bfdbfe;
  border-radius: 18px;
  background: #eff6ff;
  padding: 16px;
}

.driver-ux18 .seat-status.yellow {
  border-color: #facc15;
  background: #fffbeb;
}

.driver-ux18 .seat-status.red {
  border-color: #f87171;
  background: #fef2f2;
}

.driver-ux18 .seat-status-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.driver-ux18 .seat-status-head b,
.driver-ux18 .seat-status-head span {
  display: block;
}

.driver-ux18 .seat-status-head b {
  color: #123f6b;
  font-size: 21px;
}

.driver-ux18 .seat-status-head > div > span {
  color: #334155;
  font-weight: 900;
  margin-top: 3px;
}

.driver-ux18 .live-dot {
  position: relative;
  border-radius: 999px;
  background: #dcfce7;
  color: #166534;
  font-size: 12px;
  font-weight: 950;
  padding: 7px 11px 7px 24px;
  white-space: nowrap;
}

.driver-ux18 .live-dot::before {
  position: absolute;
  left: 10px;
  top: 50%;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #22c55e;
  content: "";
  transform: translateY(-50%);
  animation: r38w-live-pulse 1s ease-in-out infinite;
}

@keyframes r38w-live-pulse {
  0%, 100% { opacity: .35; }
  50% { opacity: 1; }
}

.driver-ux18 .seat-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.driver-ux18 .seat-kpis > div {
  border: 1px solid rgba(148, 163, 184, .35);
  border-radius: 14px;
  background: rgba(255, 255, 255, .92);
  padding: 11px;
  text-align: center;
}

.driver-ux18 .seat-kpis small {
  display: block;
  color: #52657a;
  font-weight: 850;
}

.driver-ux18 .seat-kpis strong {
  display: block;
  color: #0f4c81;
  font-size: 30px;
  line-height: 1.2;
}

.driver-ux18 .seat-status.red .seat-kpis strong {
  color: #b91c1c;
}

.driver-ux18 .station-counts {
  border-top: 1px solid rgba(148, 163, 184, .32);
  padding-top: 12px;
}

.driver-ux18 .station-counts > b {
  color: #334155;
}

.driver-ux18 .station-counts > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.driver-ux18 .station-counts span {
  border-radius: 999px;
  background: #fff;
  color: #334155;
  font-weight: 850;
  padding: 6px 10px;
}

.driver-ux18 .driver-live-updated {
  color: #64748b;
  font-size: 12px;
  margin: 11px 0 0;
  text-align: right;
}

.driver-ux18 .driver-delay-block {
  border-top: 1px solid #e2e8f0;
  margin-top: 16px;
  padding-top: 16px;
}

.driver-ux18 .driver-delay-block h3 {
  margin-bottom: 10px;
}

.driver-ux18 .event-pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.driver-ux18 .event-page-buttons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.driver-ux18 #eventPageInfo {
  color: #52657a;
  font-size: 13px;
  font-weight: 850;
}

.driver-ux18 #events .empty {
  min-height: 108px;
}

@media (max-width: 720px) {
  .driver-ux18 .driver-vehicle-hero,
  .driver-ux18 .seat-status-head {
    align-items: stretch;
    flex-direction: column;
  }

  .driver-ux18 .seat-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .driver-ux18 .event-page-buttons {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
  }

  .driver-ux18 .event-page-buttons .btn {
    min-width: 0;
    padding-inline: 8px;
  }
}

/* ===== R38Y_DRIVER_COMPACT 20260812：司機端單頁精簡版 ===== */
.drv-scan-card,.drv-photo-card,.drv-delay-card,.drv-vehicle-bar{padding:10px 12px}
.drv-scan-placeholder{width:100%;padding:16px 12px;font-size:1.05rem;opacity:.5;cursor:not-allowed}
.drv-photo-btn{width:100%;padding:13px 12px;font-size:1rem}
.drv-delay-btn{width:100%;background:#d81e1e;border-color:#d81e1e;color:#fff;font-weight:700}
.drv-delay-btn:active{background:#a91111;border-color:#a91111}
.drv-small-note{font-size:.78rem;color:#8a5a00;margin-top:4px}
.latest-event-card h2{margin-bottom:6px}
.latest-msg{font-size:1.25rem;font-weight:700;line-height:1.3}
.latest-main{font-size:1.9rem;font-weight:800;line-height:1.2;margin:4px 0}
.latest-tags{display:flex;gap:8px;margin:6px 0;flex-wrap:wrap}
.tag-serial{background:#111;color:#fff;border-radius:999px;padding:4px 12px;font-weight:700}
.tag-balance{background:#1d4ed8;color:#fff;border-radius:999px;padding:4px 12px;font-weight:700}
.latest-detail{font-size:.95rem;color:#555}
.latest-time{font-size:.82rem;color:#888;margin-top:4px}
.drv-vehicle-bar .drv-vehicle-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.drv-carno{font-size:1.3rem;font-weight:800}
.drv-route{color:#555;font-size:.95rem}
.drv-vehicle-line .btn{margin-left:auto}
.drv-vehicle-sub{font-size:.78rem;color:#777;margin-top:4px}
.drv-link{background:none;border:none;color:#1d4ed8;text-decoration:underline;font-size:.78rem;padding:0;cursor:pointer}

/* ===== R38Z4 20260813：司機掃碼＋手動輸入 ===== */
.drv-scan-open{width:100%;padding:16px 12px;font-size:1.05rem;font-weight:700}
.drv-manual-card .form{display:flex;gap:8px}
.drv-manual-card .form .input{flex:1}
.drv-manual-serial{font-size:2.4rem;font-weight:800;letter-spacing:3px;font-family:Arial,monospace;line-height:1.2;margin-top:4px}
.drv-manual-community{font-size:1.1rem;color:#333;margin:2px 0}
.drv-manual-hint{color:#b00020;font-weight:700;margin-bottom:6px}
