/* Load after page styles in both CRM and external intake shells.
   iOS focus zoom uses a 16px target font size. Keep real control text at
   least that size, including landscape phones and touch devices. Do not
   restrict viewport scaling: readers must remain able to pinch zoom.
   The scoped !important also beats inventory's compact control overrides. */
@media (max-width: 1024px), (any-pointer: coarse) {
  :root input:not([type="hidden"]),
  :root select,
  :root textarea,
  :root [contenteditable="true"],
  :root [contenteditable=""],
  :root [contenteditable="plaintext-only"] {
    font-size: max(16px, 1rem) !important;
  }
}

/* Filter rows share a control height and align the controls, not label margins.
   Keep this scoped: ordinary edit forms and compact table actions stay intact. */
:root :is(.output-month, .schedule-report-filter, .project-task-filters,
  .telegram-request-filters, .task-filters, .filterbar, .inventory-filter,
  .housing-filters, .knowledge-search, .warehouse-active-filter, form.filters) {
  --filter-control-height: 40px;
  align-items: flex-end;
  flex-wrap: wrap;
}
:root :is(.output-month, .schedule-report-filter, .project-task-filters,
  .telegram-request-filters, .task-filters, .filterbar, .inventory-filter,
  .housing-filters, .knowledge-search, .warehouse-active-filter, form.filters) > label {
  margin-bottom: 0;
}
:root :is(.output-month, .schedule-report-filter, .project-task-filters,
  .telegram-request-filters, .task-filters, .filterbar, .housing-filters,
  .knowledge-search) > label:has(input:not([type=checkbox]):not([type=radio]), select) {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
:root :is(.output-month, .schedule-report-filter, .project-task-filters,
  .telegram-request-filters, .task-filters, .filterbar, .inventory-filter,
  .housing-filters, .knowledge-search, .warehouse-active-filter, form.filters)
  :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]), select, .button, .inventory-button) {
  box-sizing: border-box;
  height: var(--filter-control-height);
  min-height: var(--filter-control-height);
  margin-top: 0;
  margin-bottom: 0;
  line-height: 1.25;
  padding-top: 8px;
  padding-bottom: 8px;
}
:root :is(.output-month, .schedule-report-filter, .project-task-filters,
  .telegram-request-filters, .task-filters, .filterbar, .inventory-filter,
  .housing-filters, .knowledge-search, .warehouse-active-filter, form.filters)
  :is(.button, .inventory-button) {
  font-size: 14px;
  flex-shrink: 0;
}
:root :is(.schedule-report-filter, .knowledge-search) > a:not(.button),
:root :is(.filterbar, .inventory-filter, .warehouse-active-filter, form.filters) > label:has(input[type=checkbox]) {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: var(--filter-control-height);
}
:root :is(.filterbar, .inventory-filter, .warehouse-active-filter, form.filters) input[type=checkbox] {
  margin: 0;
}
:root form.filters { display: flex; gap: 12px; align-items: center; }
:root .output-month > a.button { min-width: var(--filter-control-height); }
@media (max-width: 520px) {
  :root .output-month {
    display: grid;
    grid-template-columns: var(--filter-control-height) minmax(0, 1fr) var(--filter-control-height);
    gap: 12px;
  }
  :root .output-month > a:first-of-type { grid-column: 1; grid-row: 2; }
  :root .output-month > label { grid-column: 1 / -1; grid-row: 1; }
  :root .output-month > a:last-of-type { grid-column: 3; grid-row: 2; }
  :root .output-month > button { grid-column: 2; grid-row: 2; }
  :root .output-month input { width: 100%; min-width: 0; max-width: none; }
  :root .output-month > .button { display: inline-flex; justify-content: center; align-items: center; }
}

/* Compact single-line fields: about 10% shorter, with readable iOS text.
   Checkbox/radio/range/file controls retain their native geometry. */
:root :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not([type=submit]):not([type=button]), select:not([multiple])) {
  min-height:40px; padding-block:8px; line-height:1.3;
}
:root textarea { padding-block:9px; line-height:1.4; }
:root .auth-card :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select) { padding-block:10px; }
:root :is(.formpanel,.inventory-field,.housing-form,.auth-card) label { margin-bottom:6px; }
