/* UI 135: color-scheme aware controls, whole-card navigation, shared headings. */
:root { --td-surface: #f3f8fc; --td-surface-raised: #fff; --td-ink: #193747; --td-muted: #526b7b; --td-border: #bdd2df; --td-icon-fill: #e4f2fa; }
html[data-theme="dark"] {
  --td-surface: #122533; --td-surface-raised: #1b3344; --td-ink: #edf5fb; --td-muted: #b4cbd9; --td-border: #486477; --td-icon-fill: #214457;
  --mobile-ui-fill: #1b3344; --mobile-ui-ink: #edf5fb; --mobile-ui-border: #486477; --mobile-ui-muted: #b4cbd9;
  color-scheme: dark;
}
html[data-theme="light"] { color-scheme: light; }
/* UNKNOWN provenance is separate from the selected activity color. */
.unknown-activity-setting { min-width: 0; }
.unknown-activity-setting select { width: 100%; min-width: 0; }
.unknown-activity-setting small { font-size: 12px; line-height: 1.4; color: var(--td-muted); }
.unknown-origin-badge { display: block; width: max-content; max-width: 100%; box-sizing: border-box; padding: 2px 6px; margin: 4px 0 0; border: 1px dashed currentColor; border-radius: 5px; font: 700 10px/1.4 system-ui; color: #805000; background: #fff0c5; }
#settingsControlGroupContent { grid-template-columns: minmax(0, 1fr) !important; }
#settingsControlGroupContent > label { grid-column: 1 / -1 !important; grid-row: auto !important; width: 100% !important; min-width: 0 !important; display: grid; gap: 7px; }
#settingsControlGroupContent select { width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; min-height: 48px; border: 1px solid var(--td-border); border-radius: 12px; background: var(--td-surface-raised); color: var(--td-ink); padding: 10px 12px; font: 500 16px/1.4 system-ui; }
.unknown-origin-note { margin: 8px 12px; padding: 6px 10px; border-left: 3px dashed #ae7500; color: var(--td-ink); font: 600 12px/1.4 system-ui; }
.matlab-activity.was-unknown > rect { stroke: #885300 !important; stroke-width: 2px; stroke-dasharray: 4 3; }
.unknown-origin-mark { fill: #603d00; font: 800 13px system-ui; paint-order: stroke; stroke: #fff2ca; stroke-width: 3px; pointer-events: none; }
html[data-theme="dark"] .unknown-origin-badge { background: #3e341c; color: #fff1b7; }
/* UI 136: the entire Schengen card follows the theme, not only its controls. */
html[data-theme="dark"] :is(.schengen-shell, .schengen-stay-item, .schengen-legal-note) {
  background: var(--td-surface) !important;
  color: var(--td-ink) !important;
  border-color: var(--td-border) !important;
}
html[data-theme="dark"] .schengen-shell :is(.schengen-stat strong, .schengen-ongoing, .schengen-stay-item strong) { color: var(--td-ink) !important; }
html[data-theme="dark"] .schengen-shell :is(.workspace-feature-intro, .schengen-reference > span, .schengen-stat > span, .schengen-summary-status > span, .schengen-stay-form label:not(.schengen-ongoing) > span, .schengen-stay-item > div:first-child > span) { color: var(--td-muted) !important; }
html[data-theme="dark"] .schengen-shell .schengen-summary-status strong { color: #83dfb7; }
html[data-theme="dark"] .schengen-shell .schengen-summary-status.is-warning strong { color: #f8d48c; }
html[data-theme="dark"] .schengen-shell .schengen-summary-status.is-danger strong { color: #ff8791; }
html[data-theme="dark"] .schengen-progress { background: var(--td-icon-fill); }
html[data-theme="dark"] .schengen-legal-note a { color: #8fd6fc; }
/* Explicit final theme overrides for legacy fixed light-color layers. */
html[data-theme="dark"] :is([data-panel="activity_review"], [data-panel="violation_review"]) .review-range,
html[data-theme="dark"] [data-panel="violation_review"] .violation-summary-grid article,
html[data-theme="dark"] :is(.paid-leave-form, .documentation-tour-form, .schengen-stay-form, .schengen-reference, .schengen-stat, .schengen-summary-status) {
  background: var(--td-surface) !important; color: var(--td-ink) !important; border-color: var(--td-border) !important; box-shadow: none !important;
}
html[data-theme="dark"] #panels :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="hidden"]), select, textarea),
html[data-theme="dark"] .localized-datetime-value {
  background: var(--td-surface-raised) !important; color: var(--td-ink) !important; border-color: var(--td-border) !important; box-shadow: none !important;
}
html[data-theme="dark"] #panels :is(input, textarea)::placeholder { color: #b1c5d2 !important; opacity: 1; }
#panels :is(.review-range label > span, .violation-summary-grid article > span, .transport-meta-grid label > span, .transport-no-activities) { color: var(--td-muted) !important; }
html[data-theme="dark"] :is([data-panel="activity_review"], [data-panel="violation_review"]) .review-range > button:not(.primary-action),
html[data-theme="dark"] [data-panel="activity_review"] .activity-view-switch-buttons button:not(.active):not([aria-pressed="true"]),
html[data-theme="dark"] #addTransportCity {
  background: var(--td-surface-raised) !important; color: #8fd6fc !important; border-color: var(--td-border) !important; box-shadow: none !important;
}
html[data-theme="dark"] #transportCityBody :is(.transport-city-main-row, .transport-city-main-row > td) { background: #143c54 !important; color: #e5f5ff !important; border-color: #417f9f !important; }
html[data-theme="dark"] #transportCityBody :is(.transport-activity-detail > td, .transport-activity-editor) { background: #172f40 !important; color: #e5f5ff !important; }
html[data-theme="dark"] #transportCityBody .transport-border-card[data-multi-border-editor="1"] { background: #3e341c !important; color: #fff1b7 !important; border-color: #aa8b3b !important; }
html[data-theme="dark"] #transportCityBody :is(.transport-border-card strong, .transport-border-card h4, .transport-border-title) { color: #fff1b7 !important; }
html[data-theme="dark"] #transportCityBody :is(.transport-border-card label, .transport-border-editor-head, .transport-activity-editor-head, .transport-no-activities, .transport-border-card small) { color: #d2dce0 !important; }
html[data-theme="dark"] #transportCityBody :is(.transport-border-actions button, .transport-city-actions button, .transport-border-remove-activity) { background: #203c4c !important; color: #b8d9eb !important; border-color: #698494 !important; }
html[data-theme="dark"] #transportCityBody :is(.transport-border-actions button.remove, .transport-city-actions button.remove) { color: #ff8791 !important; }
html[data-theme="dark"] #transportCityBody :is(.transport-border-editor-head button, .transport-activity-editor-head button) { color: #8fd6fc !important; }

/* Snap points are card boundaries, arrows are outside the scroll area. */
.violation-groups-navigation { width: 100%; min-width: 0; }
.violation-groups-navigation > #violationGroups { scroll-snap-type: x mandatory; scroll-behavior: auto; padding: 0 !important; }
@media (max-width: 1050px) {
  .violation-groups-navigation.is-scrollable { grid-template-columns: 32px minmax(0, 1fr) 32px; gap: 6px; }
  .violation-groups-navigation > #violationGroups { display: flex !important; flex-wrap: nowrap !important; gap: 10px !important; }
  .violation-groups-navigation #violationGroups > .violation-group-button {
    flex: 0 0 100% !important; width: 100% !important; min-width: 0 !important; max-width: 100% !important;
    box-sizing: border-box !important; scroll-snap-align: start; scroll-snap-stop: always; margin: 0 !important;
    padding: 12px !important; white-space: normal !important; overflow-wrap: anywhere; min-height: 112px;
  }
  #violationGroups .violation-group-button strong { display: block; width: 100%; line-height: 1.3; }
  #violationGroups .violation-group-button > span { flex-wrap: wrap; gap: 5px; }
}

/* Native text input plus an embedded, accessible dropdown toggle. */
#panels .country-combobox { display: block; position: relative; width: 100%; }
#panels #schengenCountry { padding-right: 48px !important; }
#panels .country-combobox-toggle {
  position: absolute !important; top: 2px; right: 2px; width: 44px !important; height: 44px !important; min-height: 44px !important;
  display: grid !important; place-items: center; padding: 0 !important; margin: 0 !important;
  border: 0 !important; border-radius: 10px !important; background: transparent !important; color: var(--td-ink) !important; box-shadow: none !important;
}
.country-combobox-toggle svg { width: 20px; height: 20px; stroke: currentColor; stroke-width: 2; fill: none; }

/* All main pages use the same route-planner style title strip. */
#panels .td-page-heading, #panels .td-route-page-heading {
  scroll-margin-top: 76px;
  box-sizing: border-box; min-width: 0; margin: 0 0 18px !important; padding: 16px !important;
  background: var(--td-surface) !important; border: 1px solid var(--td-border) !important; border-radius: 16px !important;
  color: var(--td-ink) !important; box-shadow: none !important;
}
#panels .td-page-heading { display: grid !important; grid-template-columns: 40px minmax(0, 1fr) !important; align-items: center !important; gap: 10px 12px !important; }
#panels .td-page-heading > * { grid-column: 2; min-width: 0; margin: 0 !important; }
#panels .td-page-heading > .td-page-icon { grid-column: 1; grid-row: 1; }
#panels .td-page-heading :is(h2, h3), #panels .td-route-page-heading h3 {
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif !important; font-size: clamp(18px, 2.1vw, 24px) !important;
  line-height: 1.3 !important; font-weight: 750 !important; letter-spacing: -.02em !important; color: var(--td-ink) !important;
  margin: 0 !important; text-align: left !important; text-transform: none !important;
}
#panels .workspace-feature-heading.td-page-heading > div > span:not(.td-page-icon) { display: none; }
#panels .td-page-heading p { font: 400 13px/1.5 system-ui !important; color: var(--td-muted) !important; margin: 6px 0 0 !important; }
#panels .td-page-heading > :is(.review-status-summary, strong, .premium-live-dot, .ask-status) { grid-column: 1 / -1; font-size: 12px !important; }
.td-page-icon, #panels .td-route-page-heading .transport-step-badge {
  display: inline-grid !important; place-items: center; width: 40px !important; height: 40px !important; flex: 0 0 40px;
  border-radius: 12px !important; background: var(--td-icon-fill) !important; color: var(--td-ink) !important; margin: 0 !important;
}
.td-heading-symbol, .td-menu-icon { width: 22px; height: 22px; stroke: currentColor; stroke-width: 1.7; stroke-linejoin: round; stroke-linecap: round; fill: none; }
#panels .td-route-page-heading > div { gap: 12px !important; }
.td-tool-duplicate-heading { display: none !important; }

/* Preserve the existing functional color coding and add non-font icons. */
#structuredNavigation .structured-menu-link[data-menu-number]::before {
  content: attr(data-menu-number) !important; display: inline-flex !important; align-items: center; justify-content: center;
  position: static !important; width: 30px !important; height: 20px !important; flex: 0 0 30px; border: 0 !important;
  border-radius: 7px !important; background: #1686b514 !important; color: inherit; font: 700 12px/1 system-ui;
}
#structuredNavigation .structured-menu-link > span:first-child { flex: 1; min-width: 0; }
#structuredNavigation .td-menu-icon { flex: 0 0 20px; width: 20px; height: 20px; margin-left: auto; color: var(--menu-accent); }
html[data-theme="dark"] #structuredNavigation .td-menu-icon { color: #9ed5ef; }
#workspaceChatForm button[type="submit"] {
  appearance: none; min-height: 48px; padding: 10px 22px; border: 1px solid #087fc4; border-radius: 12px;
  background: linear-gradient(135deg, #159bdc, #0879bd); color: white; font: 700 15px/1.25 system-ui;
  box-shadow: 0 4px 12px #087fc425; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
#workspaceChatForm button[type="submit"]::after { content: "➤"; font-size: 16px; }
#workspaceChatForm button[type="submit"]:disabled { opacity: .5; cursor: not-allowed; }

.td-map-adjust, .td-map-report-confirm { width: 100% !important; margin-top: 10px !important; }
.transport-rest-popup .leaflet-popup-content { max-width: min(280px, calc(100vw - 105px)); white-space: normal; overflow-wrap: anywhere; line-height: 1.5; }
html[data-theme="dark"] :is(.td-map-bar, .td-map-panel, .td-map-sheet, .td-map-sheet-head, .td-map-place, .td-map-popup) { background: var(--td-surface) !important; color: var(--td-ink) !important; border-color: var(--td-border) !important; }
html[data-theme="dark"] :is(.td-map-muted, .td-map-empty) { color: var(--td-muted) !important; }
html[data-theme="dark"] .td-map-button:not(.is-primary):not([aria-pressed="true"]):not(.is-report),
html[data-theme="dark"] .td-map-field :is(input, textarea) { background: var(--td-surface-raised) !important; color: var(--td-ink) !important; border-color: var(--td-border) !important; }
html[data-theme="dark"] .td-map-ok { color: #83dfb7; }
html[data-theme="dark"] .td-map-warning { color: #f8d48c; }
html[data-theme="dark"] #transportMap :is(.leaflet-popup-content-wrapper, .leaflet-popup-tip) { background: var(--td-surface) !important; color: var(--td-ink) !important; }

/* UI 142: expanded Vehicle settings must not inherit the legacy white fallback. */
html[data-theme="dark"] #vehicleSettingsFields { background:var(--td-surface); color:var(--td-ink); border-color:var(--td-border); }
html[data-theme="dark"] #vehicleSettingsFields :is(input,select) { background:var(--td-surface-raised); color:var(--td-ink); border-color:var(--td-border); color-scheme:dark; }
html[data-theme="dark"] #vehicleSettingsFields h3 { color:var(--td-ink); }
html[data-theme="dark"] #vehicleSettingsFields :is(label > span,.vehicle-number-input small,.vehicle-settings-group p) { color:var(--td-muted); }
html[data-theme="dark"] #vehicleSettingsFields .vehicle-settings-group + .vehicle-settings-group { border-color:var(--td-border); }
html[data-theme="dark"] #vehicleSettingsStatus { color:#8fd6fc; }

/* UI 143: descriptive infringement titles, including narrow daily cards. */
@media(min-width:681px) {
  .inline-violation-table .inline-violation-label { min-width:170px; max-width:260px; white-space:normal; overflow-wrap:anywhere; font-weight:700; }
}
@media(max-width:680px) {
  .inline-violation-table tr.mobile-violation-card td.inline-violation-label::before { min-width:0; white-space:normal; overflow-wrap:anywhere; text-transform:none; letter-spacing:normal; }
}
