@layer v2-utilities {
  body.v2-body .v2-search-select { position: relative; display: block; width: 100%; min-width: 0; }
  body.v2-body .v2-search-select[hidden] { display: none; }
  body.v2-body .v2-search-select__native { position: absolute; width: 1px; height: 1px; min-height: 0; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  body.v2-body .v2-search-select .v2-search-select__input { width: 100%; min-width: 0; padding-right: 4.75rem; text-overflow: ellipsis; background-image: none; cursor: text; }
  body.v2-body .v2-search-select__arrow { position: absolute; right: .85rem; top: 50%; transform: translateY(-50%); pointer-events: none; color: var(--v2-muted); }
  body.v2-body .v2-search-select__clear { position: absolute; right: 2rem; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 2.5rem; height: 2.5rem; min-height: 0; padding: 0; border: 0; border-radius: .3rem; background: transparent; color: var(--v2-muted); }
  body.v2-body .v2-search-select__clear:hover { color: var(--v2-danger); background: var(--v2-surface-soft); }
  body.v2-body .v2-search-select__clear[hidden], body.v2-body .v2-search-select__popup[hidden] { display: none; }
  body.v2-body .v2-search-select__popup { position: fixed; z-index: 30100; overflow: auto; overscroll-behavior: contain; padding: .35rem 0; border: 1px solid var(--v2-border); border-radius: .4rem; background: var(--v2-surface); color: var(--v2-text); box-shadow: var(--v2-shadow-lg); font-size: .9rem; text-align: left; }
  body.v2-body .v2-search-select__popup[popover] { margin: 0; right: auto; bottom: auto; }
  body.v2-body .v2-search-select__option { min-height: 44px; display: flex; align-items: center; padding: .6rem .9rem; cursor: pointer; overflow-wrap: anywhere; }
  body.v2-body .v2-search-select__option:is(:hover, .is-active) { color: var(--v2-accent); background: color-mix(in srgb, var(--v2-accent) 12%, var(--v2-surface)); }
  body.v2-body .v2-search-select__option[aria-selected="true"] { background: var(--v2-accent); color: var(--v2-on-accent); }
  body.v2-body .v2-search-select__group { padding: .55rem .9rem .25rem; color: var(--v2-muted); font-size: .75rem; font-weight: 600; }
  body.v2-body .v2-search-select__status { padding: .45rem .9rem; border-top: 1px solid var(--v2-border); font-size: .75rem; color: var(--v2-muted); }
  body.v2-body .v2-search-select.is-disabled { opacity: .65; }
  body.v2-body .v2-form-feedback { display: block; margin-top: .35rem; color: var(--v2-danger, #ea5455); font-size: .8rem; line-height: 1.45; }
  body.v2-body .v2-form-feedback[hidden] { display: none; }
  body.v2-body :is(input, select, textarea).is-invalid { border-color: var(--v2-danger, #ea5455); }
  body.v2-body .v2-input-unit { display: flex; align-items: stretch; width: 100%; min-width: 0; border: 1px solid var(--v2-border); border-radius: .4rem; background: var(--v2-surface); }
  body.v2-body .v2-input-unit:focus-within { border-color: var(--v2-accent); }
  body.v2-body .v2-input-unit input { flex: 1 1 auto; min-width: 0; width: 0; border: 0; border-radius: inherit; box-shadow: none; }
  body.v2-body .v2-input-unit__label { display: flex; align-items: center; padding: 0 .8rem; color: var(--v2-muted); background: var(--v2-surface-soft); border-radius: inherit; }
  body.v2-body .v2-image-upload { min-width: 0; display: grid; gap: .6rem; align-content: start; }
  body.v2-body .v2-image-upload__body { display: flex; gap: 1rem; flex-wrap: wrap; align-items: center; padding: 1rem; border: 1px solid var(--v2-border); border-radius: .5rem; }
  body.v2-body .v2-image-upload__preview { width: 80px; height: 80px; flex: 0 0 80px; object-fit: contain; padding: .25rem; border-radius: .4rem; background: var(--v2-surface-soft); }
  body.v2-body .v2-image-upload__actions { display: flex; flex: 1 1 10rem; min-width: 0; flex-wrap: wrap; align-items: center; gap: .5rem; }
  body.v2-body .v2-image-upload input[type="file"] { width: 100%; max-width: 100%; font-size: .8rem; }
  body.v2-body .v2-image-upload input[type="file"]::file-selector-button { min-height: 44px; padding: .6rem .85rem; margin-right: .6rem; border: 0; border-radius: .35rem; background: var(--v2-accent); color: var(--v2-on-accent); font: inherit; cursor: pointer; }
  body.v2-body .v2-image-upload__status { display: block; flex-basis: 100%; color: var(--v2-muted); font-size: .75rem; line-height: 1.5; overflow-wrap: anywhere; }
  body.v2-body .v2-account-nav__link { display: flex; align-items: center; gap: .65rem; }
  body.v2-body .v2-account-nav__link > .feather, body.v2-body .v2-settings-tab > .feather { flex: 0 0 auto; font-size: 1.15rem; }
  body.v2-body .v2-settings-tab { display: grid; grid-template-columns: 1.2rem minmax(0, 1fr); gap: .15rem .6rem; align-items: center; }
  body.v2-body .v2-settings-tab > small { grid-column: 2; }
  body.v2-body .v2-date-picker-input { cursor: pointer; background-image: none; }
  body.v2-body .v2-date-picker-calendar.flatpickr-calendar { max-width: calc(100vw - 1.5rem); z-index: 30090; border: 1px solid var(--v2-border); border-radius: var(--v2-radius-md); color: var(--v2-text); background: var(--v2-surface); box-shadow: var(--v2-shadow-lg); font-family: inherit; }
  body.v2-body .v2-date-picker-calendar.flatpickr-calendar.open { animation: none; }
  body.v2-body .v2-date-picker-calendar { pointer-events: auto; }
  body.v2-body .v2-date-picker-calendar[popover] { margin: 0; bottom: auto; }
  body.v2-body .v2-date-picker-calendar :is(.flatpickr-months, .flatpickr-month, .flatpickr-weekdays, .flatpickr-weekdaycontainer, .flatpickr-weekday, .flatpickr-current-month, .flatpickr-monthDropdown-months, .flatpickr-monthDropdown-month) { color: var(--v2-heading); background: var(--v2-surface); }
  body.v2-body .v2-date-picker-calendar .flatpickr-month { height: 44px; }
  body.v2-body .v2-date-picker-calendar .flatpickr-current-month { display: flex; width: calc(100% - 72px); height: 44px; left: 36px; align-items: center; justify-content: center; gap: .5rem; padding: 0; font-size: 1.1rem; }
  body.v2-body .v2-date-picker-calendar .flatpickr-monthDropdown-months { flex: 0 1 auto; width: auto; min-width: 0; max-width: calc(100% - 5rem); min-height: 0; height: 32px; margin: 0; padding: 0 .35rem; border: 0; font-size: inherit; line-height: normal; }
  body.v2-body .v2-date-picker-calendar .flatpickr-current-month .numInputWrapper { flex: 0 0 4.5rem; width: 4.5rem; height: 32px; padding: 0; }
  body.v2-body .v2-date-picker-calendar .flatpickr-current-month input.cur-year { width: 100%; min-width: 0; min-height: 0; height: 100%; padding: 0 .35rem; border: 0; color: inherit; background: transparent; font-size: inherit; line-height: normal; }
  body.v2-body .v2-date-picker-calendar :is(.flatpickr-prev-month, .flatpickr-next-month) { top: 0; height: 44px; padding-block: 15px; color: var(--v2-heading); fill: currentColor; }
  body.v2-body .v2-date-picker-calendar .flatpickr-day { color: var(--v2-text); border-radius: var(--v2-radius-sm); }
  body.v2-body .v2-date-picker-calendar .flatpickr-day.today { border-color: var(--v2-accent); }
  body.v2-body .v2-date-picker-calendar .flatpickr-day:is(:hover, :focus) { border-color: var(--v2-border); color: var(--v2-heading); background: var(--v2-surface-soft); }
  body.v2-body .v2-date-picker-calendar .flatpickr-day:is(.selected, .startRange, .endRange) { border-color: var(--v2-accent); color: var(--v2-on-accent); background: var(--v2-accent); box-shadow: none; }
  body.v2-body .v2-date-picker-calendar .flatpickr-day:is(.flatpickr-disabled, .prevMonthDay, .nextMonthDay) { color: var(--v2-faint); }
  body.v2-body .v2-date-picker-calendar :is(.flatpickr-days, .dayContainer) { width: 100%; min-width: 0; max-width: 100%; }
  @media (max-width: 767px) {
    body.v2-body .v2-search-select__input, body.v2-body .v2-date-picker-input { font-size: 16px; min-height: 44px; }
    body.v2-body .v2-search-select__clear { height: 44px; width: 44px; }
    body.v2-body .v2-date-picker-calendar :is(.flatpickr-month, .flatpickr-current-month) { height: 52px; }
    body.v2-body .v2-date-picker-calendar .flatpickr-current-month .numInputWrapper { height: 44px; }
    body.v2-body .v2-date-picker-calendar :is(.flatpickr-prev-month, .flatpickr-next-month) { height: 52px; padding-block: 19px; }
  }
  @media (max-width: 767px), (hover: none) and (pointer: coarse) {
    /* Keep native and enhanced text fields readable without iOS focus zoom,
       while allowing larger user/root text sizes instead of fixing them down. */
    :is(body.v2-body, body.v2-auth-body, .auth-v2, .auth-wrapper) :is(input:not([type="hidden"], [type="checkbox"], [type="radio"], [type="range"], [type="file"], [type="button"], [type="submit"], [type="reset"], [type="color"], [type="image"]), select, textarea) { font-size: max(16px, 1rem); }
  }
}
