/* Shared form readability — light and dark themes */
:root {
  --sam-field-bg: #ffffff;
  --sam-field-text: #1b2b22;
  --sam-field-placeholder: #5c6f64;
  --sam-field-border: rgba(27, 43, 34, 0.18);
  --sam-field-label: #1b2b22;
  --sam-field-hint: #5c6f64;
  --sam-field-readonly: #f3f6f4;
}

body.dark-theme,
body.dark {
  --sam-field-bg: #1c2220;
  --sam-field-text: #f3f6f4;
  --sam-field-placeholder: #a8b8ae;
  --sam-field-border: rgba(255, 255, 255, 0.2);
  --sam-field-label: #e8eee9;
  --sam-field-hint: #b7c4bb;
  --sam-field-readonly: #151a17;
}

.form-control,
.custom-select,
select.form-control,
textarea.form-control,
.farmer-filter-search input,
.farmer-filter-select,
.live-feed-search-select,
.analytics-filter-select {
  background-color: var(--sam-field-bg) !important;
  color: var(--sam-field-text) !important;
  border-color: var(--sam-field-border) !important;
  caret-color: var(--sam-field-text);
}

.field input,
.field textarea,
.field select {
  color: var(--sam-field-text);
  caret-color: var(--sam-field-text);
}

.form-control:focus,
.custom-select:focus,
select.form-control:focus,
textarea.form-control:focus,
.farmer-filter-search input:focus,
.farmer-filter-select:focus,
.field input:focus,
.field textarea:focus,
.field select:focus {
  color: var(--sam-field-text) !important;
}

.form-control::placeholder,
textarea.form-control::placeholder,
.farmer-filter-search input::placeholder,
.tech-reports-search input::placeholder,
#concernSearch::placeholder,
.field input::placeholder,
.field textarea::placeholder,
.login-input::placeholder,
.user-login-input::placeholder,
.reg-input::placeholder,
.contact-form input::placeholder,
.contact-form textarea::placeholder,
.map-barangay-search-input::placeholder {
  color: var(--sam-field-placeholder) !important;
  opacity: 1 !important;
}

.form-control::-webkit-input-placeholder,
.farmer-filter-search input::-webkit-input-placeholder,
.field input::-webkit-input-placeholder {
  color: var(--sam-field-placeholder) !important;
  opacity: 1 !important;
}

.form-control::-moz-placeholder,
.farmer-filter-search input::-moz-placeholder,
.field input::-moz-placeholder {
  color: var(--sam-field-placeholder) !important;
  opacity: 1 !important;
}

.form-control:-ms-input-placeholder,
.farmer-filter-search input:-ms-input-placeholder,
.field input:-ms-input-placeholder {
  color: var(--sam-field-placeholder) !important;
  opacity: 1 !important;
}

label,
.form-group label,
.field label,
.smartagri-form-modal .form-group label {
  color: var(--sam-field-label);
  font-weight: 600;
}

.form-text,
.form-hint,
small.text-muted,
.smartagri-form-modal .form-note,
.assign-task-hint {
  color: var(--sam-field-hint) !important;
}

.form-hint {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.35;
  font-weight: 500;
}

.form-control[readonly],
.form-control:disabled,
.field input[readonly],
.field input:disabled,
.field textarea[readonly] {
  background-color: var(--sam-field-readonly) !important;
  color: var(--sam-field-text) !important;
  opacity: 1;
  cursor: default;
}

body.dark-theme .form-control.bg-light,
body.dark .form-control.bg-light {
  background-color: var(--sam-field-readonly) !important;
  color: var(--sam-field-text) !important;
}

select.form-control,
.farmer-filter-select,
.live-feed-search-select,
.analytics-filter-select,
.field select {
  color-scheme: light;
}

body.dark-theme select.form-control,
body.dark-theme .farmer-filter-select,
body.dark-theme .live-feed-search-select,
body.dark-theme .analytics-filter-select,
body.dark-theme .field select,
body.dark select.form-control,
body.dark .field select {
  color-scheme: dark;
}

select.form-control option,
.farmer-filter-select option,
.field select option {
  background: var(--sam-field-bg);
  color: var(--sam-field-text);
}

select.form-control:required:invalid,
select.form-control option[value=""] {
  color: var(--sam-field-placeholder);
}

input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"],
input[type="week"] {
  color: var(--sam-field-text) !important;
  color-scheme: light;
  min-height: 42px;
}

body.dark-theme input[type="date"],
body.dark-theme input[type="time"],
body.dark-theme input[type="datetime-local"],
body.dark-theme input[type="month"],
body.dark-theme input[type="week"],
body.dark input[type="date"],
body.dark input[type="time"] {
  color-scheme: dark;
}

input[type="date"]::-webkit-datetime-edit,
input[type="date"]::-webkit-datetime-edit-fields-wrapper,
input[type="date"]::-webkit-datetime-edit-text,
input[type="date"]::-webkit-datetime-edit-month-field,
input[type="date"]::-webkit-datetime-edit-day-field,
input[type="date"]::-webkit-datetime-edit-year-field,
input[type="time"]::-webkit-datetime-edit,
input[type="datetime-local"]::-webkit-datetime-edit {
  color: var(--sam-field-text);
  padding: 0;
}

input[type="date"]:invalid::-webkit-datetime-edit {
  color: var(--sam-field-placeholder);
}

input[type="date"]::-webkit-calendar-picker-indicator {
  opacity: 0.75;
  cursor: pointer;
}

body.dark-theme input[type="date"]::-webkit-calendar-picker-indicator,
body.dark input[type="date"]::-webkit-calendar-picker-indicator {
  filter: invert(1);
  opacity: 0.9;
}

.form-control:-webkit-autofill,
.form-control:-webkit-autofill:hover,
.form-control:-webkit-autofill:focus,
.field input:-webkit-autofill,
.field input:-webkit-autofill:hover,
.field input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--sam-field-text) !important;
  caret-color: var(--sam-field-text);
  box-shadow: 0 0 0 1000px var(--sam-field-bg) inset !important;
  border-color: var(--sam-field-border) !important;
  transition: background-color 9999s ease-out 0s;
}

.msg-composer .form-control::placeholder,
.farmer-chat-form .form-control::placeholder {
  color: var(--sam-field-placeholder) !important;
  opacity: 1 !important;
}

body.dark-theme .msg-composer .form-control,
body.dark-theme .farmer-assist-form .form-control,
body.dark-theme .tech-comm-form .form-control,
body.dark-theme .crop-register-modal .form-control {
  background-color: var(--sam-field-bg) !important;
  color: var(--sam-field-text) !important;
}
