/* driver-night-frost-20260907b: 雾凇绿。Night-only paint; no layout declarations. */
.driver-body.driver-theme-night {
  --bg: #141a19;
  --panel: #1e2725;
  --ink: #e4ede8;
  --text: #e4ede8;
  --muted: #a9b9b1;
  --line: #52675e;
  --brand: #8cc8ad;
  --brand-dark: #b6ddca;
  --soft: #2c4137;
  --brand-soft: #2c4137;
  --field-bg: #26332f;
  --field-line: #637d70;
  --field-placeholder: #a9b9b1;
  --field-focus: rgba(140, 200, 173, 0.28);
  --on-brand: #10251b;
  --fee-bg: #2c4137;
  --upload-bg: #2c4137;
  --upload-line: #637d70;
  --upload-text: #b6ddca;
  --topbar-bg: rgba(20, 26, 25, 0.96);
  --tabs-bg: rgba(30, 39, 37, 0.96);
  --shadow: 0 18px 42px rgba(5, 14, 10, 0.36);
  background: linear-gradient(180deg, #141a19 0%, #19221e 100%);
}

.driver-body.driver-theme-night .btn.secondary,
.driver-body.driver-theme-night .quick-date-btn,
.driver-body.driver-theme-night .calendar-nav {
  background-color: var(--field-bg);
  border-color: var(--field-line);
  color: var(--ink);
}

.driver-body.driver-theme-night .btn:not(.secondary):not(.ghost):not(.danger):hover {
  background-color: var(--brand-dark);
  color: var(--on-brand);
}

.driver-body.driver-theme-night .btn:not(.secondary):not(.ghost):not(.danger),
.driver-body.driver-theme-night .driver-login-panel .button-row .driver-app-download-btn,
.driver-body.driver-theme-night .driver-section-tab.active,
.driver-body.driver-theme-night .language-btn.active,
.driver-body.driver-theme-night .quick-date-btn.active,
.driver-body.driver-theme-night .calendar-day.selected,
.driver-body.driver-theme-night .add-row-btn {
  background-color: var(--brand);
  border-color: var(--brand);
  color: var(--on-brand);
}

.driver-body.driver-theme-night.driver-form-locked .driver-clock {
  border-color: var(--line);
  background: var(--panel);
}

.driver-body.driver-theme-night .driver-login-panel {
  background-color: var(--panel);
}

.driver-body.driver-theme-night .driver-login-content {
  background: radial-gradient(circle at 100% 0%, rgba(140, 200, 173, 0.13), transparent 36%), var(--panel);
}

.driver-body.driver-theme-night .driver-login-topline span,
.driver-body.driver-theme-night .driver-kind-option.active,
.driver-body.driver-theme-night .meal-project-option:has(input:checked),
.driver-body.driver-theme-night .driver-section-tab.attention:not(.active) {
  background-color: var(--brand-soft);
  border-color: var(--field-line);
  color: var(--brand-dark);
}

.driver-body.driver-theme-night .fixed-shuttle-toggle {
  border-color: var(--line);
  background: linear-gradient(135deg, rgba(140, 200, 173, 0.12), rgba(169, 185, 177, 0.10));
}

.driver-body.driver-theme-night .activity-address-driver-panel,
.driver-body.driver-theme-night .meal-driver-panel {
  background: linear-gradient(180deg, #26332f 0%, #1e2725 100%);
}

.driver-body.driver-theme-night .activity-address-driver-media-thumb,
.driver-body.driver-theme-night .activity-address-driver-media-link {
  border-color: var(--line);
  background-color: var(--field-bg);
  color: var(--brand-dark);
}

.driver-body.driver-theme-night .meal-result.success,
.driver-body.driver-theme-night .floating-feedback.notice {
  background-color: var(--brand-soft);
  border-color: var(--field-line);
  color: var(--brand-dark);
}

.driver-body.driver-theme-night .badge:not(.pending):not(.warning) {
  background-color: var(--brand-soft);
  color: var(--brand-dark);
}

/* Preserve the prerequisite cards' existing layout and halo dimensions. */
.driver-body.driver-theme-night.driver-trip-prereq-pending #tripForm .project-picker-field,
.driver-body.driver-theme-night.driver-trip-prereq-pending #tripForm .service-type-field,
.driver-body.driver-theme-night.driver-trip-prereq-pending.driver-dispatcher-pending #tripForm .dispatcher-field {
  background-color: var(--brand-soft);
  border-color: var(--field-line);
  box-shadow: 0 0 0 3px rgba(140, 200, 173, 0.1);
}

.driver-body.driver-theme-night .language-btn:not(.active) {
  background-color: var(--field-bg);
  border-color: var(--field-line);
  color: var(--ink);
}

/* Browser autofill paints over background-color; an inset fill covers only
   the input interior, preserving its border, focus outline and dimensions. */
.driver-body.driver-theme-night input:is(:-webkit-autofill, :autofill) {
  -webkit-text-fill-color: var(--ink);
  caret-color: var(--ink);
  -webkit-box-shadow: 0 0 0 1000px var(--field-bg) inset;
  box-shadow: 0 0 0 1000px var(--field-bg) inset;
}
