/* OmniFlow iPhone Safari / installed PWA input protection.
 * WebKit reports: 301648 (native date width + padding), 198959 (empty date height).
 * Shared by Hub, /app/* HTML and the separate LingoBridge web origin.
 * Preserve native date pickers, validation, zoom and intentional table scrolling.
 */
@supports (-webkit-touch-callout: none) {
  html { -webkit-text-size-adjust: 100%; }

  input:is([type="date"], [type="month"], [type="week"], [type="time"], [type="datetime-local"]) {
    -webkit-appearance: none;
    appearance: none;
    box-sizing: border-box !important;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100%;
    min-height: 44px;
    font-size: 16px !important;
    line-height: 1.5;
    text-align: start;
  }
  input:is([type="date"], [type="month"], [type="week"], [type="time"], [type="datetime-local"])::-webkit-date-and-time-value {
    min-width: 0;
    min-height: 1.5em;
    text-align: start;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  input:is([type="date"], [type="month"], [type="week"], [type="time"], [type="datetime-local"])::-webkit-datetime-edit {
    min-width: 0;
    padding: 0;
  }

  /* Let the field shrink inside flex/grid cells instead of retaining native intrinsic width. */
  :where(label, div, fieldset, .wp-fld, .field, .form-field, .q-field, .q-field__inner,
         .q-field__control, .q-field__control-container):has(input:is([type="date"], [type="month"], [type="week"], [type="time"], [type="datetime-local"])) {
    min-width: 0 !important;
    max-width: 100%;
    box-sizing: border-box;
  }
  :where(.wp-filterbar, .filter-bar, .filter-row, .filter-form, .filters, .toolbar,
         .ev-toolbar, .close-toolbar, .mc-filter, .inline-form, .wp-rep-filter) {
    min-width: 0;
    max-width: 100%;
    flex-wrap: wrap;
  }
  :where(.wp-filterbar, .filter-bar, .filter-row, .filter-form, .filters, .toolbar,
         .ev-toolbar, .close-toolbar, .mc-filter, .inline-form, .wp-rep-filter) > * {
    min-width: 0 !important;
    max-width: 100%;
    box-sizing: border-box;
  }
  :where(.form-grid, .form-row, .ev-form, .wp-form-grid) > * { min-width: 0; }

  @media (max-width: 1024px) {
    /* 16px editable text prevents focus zoom; pinch zoom stays available. */
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
    select, textarea {
      box-sizing: border-box !important;
      min-width: 0;
      max-width: 100%;
      font-size: 16px !important;
      min-height: 44px;
    }
    :where(label, div, fieldset, .wp-fld, .field, .form-field):has(> input:is([type="date"], [type="month"], [type="week"], [type="time"], [type="datetime-local"])) {
      flex-wrap: wrap;
      overflow-wrap: anywhere;
    }
    :where(.wp-modal, .hub-modal, .modal-card, .modal-dialog, .modal-overlay > .modal,
           [role="dialog"], .q-dialog__inner > .q-card) {
      box-sizing: border-box;
      min-width: 0;
      max-width: calc(100vw - max(12px, env(safe-area-inset-left, 0px)) - max(12px, env(safe-area-inset-right, 0px))) !important;
    }
    :where(.wp-modal, .hub-modal, .modal-card, .modal-overlay > .modal, .q-dialog__inner > .q-card) {
      max-height: calc(100dvh - max(12px, env(safe-area-inset-top, 0px)) - max(12px, env(safe-area-inset-bottom, 0px)));
      overflow-y: auto;
    }
    :where(.wp-date-stamp, .date-stamp, .timestamp) {
      min-width: 0;
      max-width: 100%;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    :where(.wp-topbar) {
      padding-left: max(14px, env(safe-area-inset-left, 0px));
      padding-right: max(14px, env(safe-area-inset-right, 0px));
    }
    :where(.wp-body, .wp-content) {
      padding-left: max(12px, env(safe-area-inset-left, 0px));
      padding-right: max(12px, env(safe-area-inset-right, 0px));
    }
    :where(.wp-sidebar, .wp-appbar) {
      padding-top: max(18px, env(safe-area-inset-top, 0px));
      padding-bottom: max(18px, env(safe-area-inset-bottom, 0px));
    }
    :where(.wp-sidebar) { padding-left: max(12px, env(safe-area-inset-left, 0px)); }
    :where(.wp-appbar) { padding-right: max(14px, env(safe-area-inset-right, 0px)); }
  }
}
