/* CSS Variables for theming */
:root {
  --preact-datefield-font-size: 0.875rem;

  /* Light theme variables */
  --preact-datefield-light-bg: #fff;
  --preact-datefield-light-text: #222;
  --preact-datefield-light-border: #c7c7c7;
  --preact-datefield-light-field-bg: #fff;
  --preact-datefield-light-field-disabled-bg: #f0f0f0;
  --preact-datefield-light-badge-bg: #e5e5e5;
  --preact-datefield-light-badge-text: #4a4a4a;
  --preact-datefield-light-placeholder: #222;
  --preact-datefield-light-options-bg: #fff;
  --preact-datefield-light-options-border: #ccc;
  --preact-datefield-light-option-hover-bg: #f0f0f0;
  --preact-datefield-light-option-active-bg: #e0e0e0;
  --preact-datefield-light-value-text: #4a4a4a;
  --preact-datefield-light-tooltip-bg: #000;
  --preact-datefield-light-tooltip-text: #fff;
  --preact-datefield-light-clear-button-color: #4a4a4a;
  --preact-datefield-light-chevron-fill: #666;
  --preact-datefield-light-checkbox-border: #ccc;
  --preact-datefield-light-checkbox-selected-bg: #222;
  --preact-datefield-light-checkbox-selected-border: #222;
  --preact-datefield-light-checkbox-selected-text: #fff;
  --preact-datefield-light-shadow: rgba(0, 0, 0, 0.1);
  --preact-datefield-light-hover-clear-bg: rgba(0, 0, 0, 0.1);
  --preact-datefield-light-warning-icon-color: #f44336;
  --preact-datefield-light-option-disabled-text: #999;
  --preact-datefield-light-option-disabled-bg: #fafafa;
  --preact-datefield-light-divider-border: #e0e0e0;

  /* Dark theme variables */
  --preact-datefield-dark-bg: #222;
  --preact-datefield-dark-text: #f7f7f7;
  --preact-datefield-dark-border: #555;
  --preact-datefield-dark-field-bg: #222;
  --preact-datefield-dark-field-disabled-bg: #282828;
  --preact-datefield-dark-badge-bg: #555;
  --preact-datefield-dark-badge-text: #f0f0f0;
  --preact-datefield-dark-placeholder: #f7f7f7;
  --preact-datefield-dark-options-bg: #222;
  --preact-datefield-dark-options-border: #555;
  --preact-datefield-dark-option-hover-bg: #444;
  --preact-datefield-dark-option-active-bg: #555;
  --preact-datefield-dark-value-text: #c9c9c9;
  --preact-datefield-dark-tooltip-bg: #383838;
  --preact-datefield-dark-tooltip-text: #ffffff;
  --preact-datefield-dark-clear-button-color: #aaa;
  --preact-datefield-dark-chevron-fill: #aaa;
  --preact-datefield-dark-checkbox-border: #555;
  --preact-datefield-dark-checkbox-selected-bg: #555;
  --preact-datefield-dark-checkbox-selected-border: #777;
  --preact-datefield-dark-checkbox-selected-text: white;
  --preact-datefield-dark-shadow: rgba(0, 0, 0, 0.3);
  --preact-datefield-dark-hover-clear-bg: rgba(255, 255, 255, 0.1);
  --preact-datefield-dark-warning-icon-color: #ffffff;
  --preact-datefield-dark-option-disabled-text: #777;
  --preact-datefield-dark-option-disabled-bg: #2a2a2a;
  --preact-datefield-dark-divider-border: #444;

  /* Default theme variables (using light theme) */
  --preact-datefield-bg: var(--preact-datefield-light-bg);
  --preact-datefield-text: var(--preact-datefield-light-text);
  --preact-datefield-border: var(--preact-datefield-light-border);
  --preact-datefield-field-bg: var(--preact-datefield-light-field-bg);
  --preact-datefield-field-disabled-bg: var(--preact-datefield-light-field-disabled-bg);
  --preact-datefield-badge-bg: var(--preact-datefield-light-badge-bg);
  --preact-datefield-badge-text: var(--preact-datefield-light-badge-text);
  --preact-datefield-placeholder: var(--preact-datefield-light-placeholder);
  --preact-datefield-options-bg: var(--preact-datefield-light-options-bg);
  --preact-datefield-options-border: var(--preact-datefield-light-options-border);
  --preact-datefield-option-hover-bg: var(--preact-datefield-light-option-hover-bg);
  --preact-datefield-option-active-bg: var(--preact-datefield-light-option-active-bg);
  --preact-datefield-value-text: var(--preact-datefield-light-value-text);
  --preact-datefield-tooltip-bg: var(--preact-datefield-light-tooltip-bg);
  --preact-datefield-tooltip-text: var(--preact-datefield-light-tooltip-text);
  --preact-datefield-clear-button-color: var(--preact-datefield-light-clear-button-color);
  --preact-datefield-chevron-fill: var(--preact-datefield-light-chevron-fill);
  --preact-datefield-checkbox-border: var(--preact-datefield-light-checkbox-border);
  --preact-datefield-checkbox-selected-bg: var(--preact-datefield-light-checkbox-selected-bg);
  --preact-datefield-checkbox-selected-border: var(
    --preact-datefield-light-checkbox-selected-border
  );
  --preact-datefield-checkbox-selected-text: var(--preact-datefield-light-checkbox-selected-text);
  --preact-datefield-shadow: var(--preact-datefield-light-shadow);
  --preact-datefield-hover-clear-bg: var(--preact-datefield-light-hover-clear-bg);
  --preact-datefield-warning-icon-color: var(--preact-datefield-light-warning-icon-color);
  --preact-datefield-option-disabled-text: var(--preact-datefield-light-option-disabled-text);
  --preact-datefield-option-disabled-bg: var(--preact-datefield-light-option-disabled-bg);
  --preact-datefield-divider-border: var(--preact-datefield-light-divider-border);
}

/* Support for system theme detection via prefers-color-scheme */
@media (prefers-color-scheme: dark) {
  /* For system theme, add the class .PreactDatefield--system to rely on this media query */
  .PreactDatefield--system {
    --preact-datefield-bg: var(--preact-datefield-dark-bg);
    --preact-datefield-text: var(--preact-datefield-dark-text);
    --preact-datefield-border: var(--preact-datefield-dark-border);
    --preact-datefield-field-bg: var(--preact-datefield-dark-field-bg);
    --preact-datefield-field-disabled-bg: var(--preact-datefield-dark-field-disabled-bg);
    --preact-datefield-badge-bg: var(--preact-datefield-dark-badge-bg);
    --preact-datefield-badge-text: var(--preact-datefield-dark-badge-text);
    --preact-datefield-placeholder: var(--preact-datefield-dark-placeholder);
    --preact-datefield-options-bg: var(--preact-datefield-dark-options-bg);
    --preact-datefield-options-border: var(--preact-datefield-dark-options-border);
    --preact-datefield-option-hover-bg: var(--preact-datefield-dark-option-hover-bg);
    --preact-datefield-option-active-bg: var(--preact-datefield-dark-option-active-bg);
    --preact-datefield-value-text: var(--preact-datefield-dark-value-text);
    --preact-datefield-tooltip-bg: var(--preact-datefield-dark-tooltip-bg);
    --preact-datefield-tooltip-text: var(--preact-datefield-dark-tooltip-text);
    --preact-datefield-clear-button-color: var(--preact-datefield-dark-clear-button-color);
    --preact-datefield-chevron-fill: var(--preact-datefield-dark-chevron-fill);
    --preact-datefield-checkbox-border: var(--preact-datefield-dark-checkbox-border);
    --preact-datefield-checkbox-selected-bg: var(--preact-datefield-dark-checkbox-selected-bg);
    --preact-datefield-checkbox-selected-border: var(
      --preact-datefield-dark-checkbox-selected-border
    );
    --preact-datefield-checkbox-selected-text: var(--preact-datefield-dark-checkbox-selected-text);
    --preact-datefield-shadow: var(--preact-datefield-dark-shadow);
    --preact-datefield-hover-clear-bg: var(--preact-datefield-dark-hover-clear-bg);
    --preact-datefield-warning-icon-color: var(--preact-datefield-dark-warning-icon-color);
    --preact-datefield-option-disabled-text: var(--preact-datefield-dark-option-disabled-text);
    --preact-datefield-option-disabled-bg: var(--preact-datefield-dark-option-disabled-bg);
    --preact-datefield-divider-border: var(--preact-datefield-dark-divider-border);
  }
}

/* Explicit dark theme via class */
.PreactDatefield--dark {
  --preact-datefield-bg: var(--preact-datefield-dark-bg);
  --preact-datefield-text: var(--preact-datefield-dark-text);
  --preact-datefield-border: var(--preact-datefield-dark-border);
  --preact-datefield-field-bg: var(--preact-datefield-dark-field-bg);
  --preact-datefield-field-disabled-bg: var(--preact-datefield-dark-field-disabled-bg);
  --preact-datefield-badge-bg: var(--preact-datefield-dark-badge-bg);
  --preact-datefield-badge-text: var(--preact-datefield-dark-badge-text);
  --preact-datefield-placeholder: var(--preact-datefield-dark-placeholder);
  --preact-datefield-options-bg: var(--preact-datefield-dark-options-bg);
  --preact-datefield-options-border: var(--preact-datefield-dark-options-border);
  --preact-datefield-option-hover-bg: var(--preact-datefield-dark-option-hover-bg);
  --preact-datefield-option-active-bg: var(--preact-datefield-dark-option-active-bg);
  --preact-datefield-value-text: var(--preact-datefield-dark-value-text);
  --preact-datefield-tooltip-bg: var(--preact-datefield-dark-tooltip-bg);
  --preact-datefield-tooltip-text: var(--preact-datefield-dark-tooltip-text);
  --preact-datefield-clear-button-color: var(--preact-datefield-dark-clear-button-color);
  --preact-datefield-chevron-fill: var(--preact-datefield-dark-chevron-fill);
  --preact-datefield-checkbox-border: var(--preact-datefield-dark-checkbox-border);
  --preact-datefield-checkbox-selected-bg: var(--preact-datefield-dark-checkbox-selected-bg);
  --preact-datefield-checkbox-selected-border: var(--preact-datefield-dark-checkbox-selected-border);
  --preact-datefield-checkbox-selected-text: var(--preact-datefield-dark-checkbox-selected-text);
  --preact-datefield-shadow: var(--preact-datefield-dark-shadow);
  --preact-datefield-hover-clear-bg: var(--preact-datefield-dark-hover-clear-bg);
  --preact-datefield-warning-icon-color: var(--preact-datefield-dark-warning-icon-color);
  --preact-datefield-option-disabled-text: var(--preact-datefield-dark-option-disabled-text);
  --preact-datefield-option-disabled-bg: var(--preact-datefield-dark-option-disabled-bg);
  --preact-datefield-divider-border: var(--preact-datefield-dark-divider-border);
}

/* Explicit light theme via class - explicitly uses light theme variables */
.PreactDatefield--light {
  --preact-datefield-bg: var(--preact-datefield-light-bg);
  --preact-datefield-text: var(--preact-datefield-light-text);
  --preact-datefield-border: var(--preact-datefield-light-border);
  --preact-datefield-field-bg: var(--preact-datefield-light-field-bg);
  --preact-datefield-field-disabled-bg: var(--preact-datefield-light-field-disabled-bg);
  --preact-datefield-badge-bg: var(--preact-datefield-light-badge-bg);
  --preact-datefield-badge-text: var(--preact-datefield-light-badge-text);
  --preact-datefield-placeholder: var(--preact-datefield-light-placeholder);
  --preact-datefield-options-bg: var(--preact-datefield-light-options-bg);
  --preact-datefield-options-border: var(--preact-datefield-light-options-border);
  --preact-datefield-option-hover-bg: var(--preact-datefield-light-option-hover-bg);
  --preact-datefield-option-active-bg: var(--preact-datefield-light-option-active-bg);
  --preact-datefield-value-text: var(--preact-datefield-light-value-text);
  --preact-datefield-tooltip-bg: var(--preact-datefield-light-tooltip-bg);
  --preact-datefield-tooltip-text: var(--preact-datefield-light-tooltip-text);
  --preact-datefield-clear-button-color: var(--preact-datefield-light-clear-button-color);
  --preact-datefield-chevron-fill: var(--preact-datefield-light-chevron-fill);
  --preact-datefield-checkbox-border: var(--preact-datefield-light-checkbox-border);
  --preact-datefield-checkbox-selected-bg: var(--preact-datefield-light-checkbox-selected-bg);
  --preact-datefield-checkbox-selected-border: var(
    --preact-datefield-light-checkbox-selected-border
  );
  --preact-datefield-checkbox-selected-text: var(--preact-datefield-light-checkbox-selected-text);
  --preact-datefield-shadow: var(--preact-datefield-light-shadow);
  --preact-datefield-hover-clear-bg: var(--preact-datefield-light-hover-clear-bg);
  --preact-datefield-warning-icon-color: var(--preact-datefield-light-warning-icon-color);
  --preact-datefield-option-disabled-text: var(--preact-datefield-light-option-disabled-text);
  --preact-datefield-option-disabled-bg: var(--preact-datefield-light-option-disabled-bg);
  --preact-datefield-divider-border: var(--preact-datefield-light-divider-border);
}

.PreactDatefield {
  position: relative;
  width: 100%;
  font-family: "Roboto", sans-serif;
  cursor: pointer;
  color: var(--preact-datefield-text);
}

.PreactDatefield-field {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  min-height: 38px;
  box-sizing: border-box;
  padding: 2px 8px;
  border: 1px solid var(--preact-datefield-border);
  border-radius: 4px;
  background: var(--preact-datefield-field-bg);
  position: relative;
}
.PreactDatefield-field--disabled {
  background-color: var(--preact-datefield-field-disabled-bg);
  cursor: not-allowed;
}

.PreactDatefield-input {
  font-size: var(--preact-datefield-font-size);
  flex: 1;
  width: 100%;
  box-sizing: border-box;
  border: none;
  outline: none;
  padding: 4px;
  background: transparent;
  text-overflow: ellipsis;
  color: var(--preact-datefield-text);
}

/* Make placeholder look like a label */
.PreactDatefield-input:not(:focus)::placeholder {
  color: var(--preact-datefield-placeholder);
  font-weight: 500;
}

.PreactDatefield-input--disabled {
  cursor: not-allowed;
}

.PreactDatefield-srOnly {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.PreactDatefield-clearButton {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 12px;
  color: var(--preact-datefield-clear-button-color);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  box-sizing: border-box;
  padding: 0 8px;
  margin-inline-start: 3px;
  transition: background-color 0.2s ease, color 0.2s ease;
  position: relative;
}

.PreactDatefield-clearButton:hover {
  background-color: var(--preact-datefield-hover-clear-bg);
}

.PreactDatefield-clearButton:focus {
  background-color: var(--preact-datefield-hover-clear-bg);
  color: var(--preact-datefield-text);
  outline: none;
}

/* Ensure there's still a visible focus indicator for accessibility */
.PreactDatefield-clearButton:focus-visible {
  background-color: var(--preact-datefield-hover-clear-bg);
  color: var(--preact-datefield-text);
}

.PreactDatefield-chevron {
  width: 18px;
  height: 18px;
  fill: var(--preact-datefield-chevron-fill);
  transition: transform 0.3s;
  margin-inline-start: 2px;
}

.PreactDatefield-options {
  inset-block-start: 2px;
  list-style-type: none;
  padding: 0;
  margin: 0;
  /* set min-width to make sure the options are clickable on mobile */
  min-width: 50px;
  max-height: 200px;
  overflow-y: auto;
  overscroll-behavior: contain;
  background-color: var(--preact-datefield-options-bg);
  border: 1px solid var(--preact-datefield-options-border);
  box-sizing: border-box;
  border-radius: 4px;
  box-shadow: 0 2px 4px var(--preact-datefield-shadow);
  z-index: 100;
  scrollbar-width: thin;
}
.PreactDatefield-options[hidden] {
  display: none;
}

.PreactDatefield-option {
  font-size: var(--preact-datefield-font-size);
  box-sizing: border-box;
  padding: 8px 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  /*
    Minimum clickable area WCAG 2.2 level AA.
    I recommend you to change this to 44px for WCAG level AAA.
  */
  min-height: 38px;
  color: var(--preact-datefield-text);

  /* Performance improvement: Only supported on Safari 18+ */
  content-visibility: auto;
  contain-intrinsic-height: auto 38px;
}

.PreactDatefield-option:hover {
  background-color: var(--preact-datefield-option-hover-bg);
}

.PreactDatefield-option--active {
  background-color: var(--preact-datefield-option-active-bg);
}

.PreactDatefield-option--disabled {
  color: var(--preact-datefield-option-disabled-text);
  background-color: var(--preact-datefield-option-disabled-bg);
  cursor: not-allowed;
  opacity: 0.6;
}

.PreactDatefield-option--disabled:hover {
  background-color: var(--preact-datefield-option-disabled-bg);
}

/* Mobile Tray Styles */
.PreactDatefield-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  z-index: 1000;
  overscroll-behavior: contain;
  touch-action: none;
}

.PreactDatefield-tray {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: calc(100vh - 60px); /* fallback for old safari */
  height: calc(100dvh - 60px);
  background: var(--preact-datefield-options-bg);
  box-shadow: 0 -4px 20px var(--preact-datefield-shadow);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.PreactDatefield-trayLabel {
  margin: 15px 12px 8px 12px;
  font-size: var(--preact-datefield-font-size);
  font-weight: 600;
  color: var(--preact-datefield-text);
  margin-bottom: 8px;
}

.PreactDatefield-trayHeader {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.PreactDatefield-trayInput {
  margin: 0 12px 8px 12px;
  font-size: var(--preact-datefield-font-size);
  padding: 8px 0;
  border: none;
  border-bottom: 1px solid var(--preact-datefield-border);
  background: var(--preact-datefield-field-bg);
  color: var(--preact-datefield-text);
  outline: none;
}

.PreactDatefield-trayInput--noLabel {
  margin-top: 15px;
}

.PreactDatefield-virtualKeyboardSpacer {
  flex-shrink: 0;
}

.PreactDatefield-trayInput:focus {
  border-color: var(--preact-datefield-text);
}

.PreactDatefield-options--tray {
  flex: 1;
  border: none;
  border-radius: 0;
  box-shadow: none;
  max-height: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  touch-action: pan-y pinch-zoom;
}

/* Hide normal dropdown on mobile when tray is auto-enabled */
@media (max-width: 768px) {
  .PreactDatefield--trayAuto .PreactDatefield-options:not(.PreactDatefield-options--tray) {
    display: none !important;
  }
}
