/* Shared form tokens only.
 * Geometry belongs to the component that owns the control: a domain search,
 * filter bar or date range must never inherit a forced global height. */
:root {
  --fc-height:40px;
  --fc-radius:6px;
  --fc-border:#cfd7e3;
  --fc-border-hover:#aebbcf;
  --fc-focus:#2b5cd9;
  --fc-ring:rgba(43,92,217,.12);
  --fc-bg:#fff;
  --fc-text:#273449;
  --fc-placeholder:#98a2b3;
}

/* This layer deliberately does not use !important or set a height. Page
 * shells supply the visual skin; semantic controls get a predictable baseline.
 * Do not add global padding/border/height here: search bars, auth fields and
 * admin controls intentionally have different geometry. */
body:not(.auth-page) :is(input:not([type]),input[type="text"],input[type="email"],input[type="password"],input[type="tel"],input[type="url"],input[type="number"],input[type="search"],input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"],input[type="week"],select,textarea) {
  max-width:100%;
  margin:0;
  color:var(--fc-text);
  font:400 14px/1.4 system-ui,-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
  letter-spacing:0;
}
body:not(.auth-page) :is(input,textarea)::placeholder { color:var(--fc-placeholder); opacity:1; }
body:not(.auth-page) input[type="checkbox"],
body:not(.auth-page) input[type="radio"] { width:16px; height:16px; min-height:16px; margin:0; padding:0; accent-color:var(--fc-focus); }
body:not(.auth-page) input[type="file"] { max-width:100%; font-size:13px; }
body:not(.auth-page) input[type="file"]::file-selector-button { margin-right:10px; padding:6px 10px; border:0; border-radius:4px; background:#edf1f6; color:#344054; font:600 12px/1 system-ui,-apple-system,'PingFang SC','Microsoft YaHei',sans-serif; cursor:pointer; }

/* Compound controls own both border and height. Keep their child field fully
 * neutral so global input styles cannot enlarge, double-border or shadow it. */
body:not(.auth-page) :is(.wh-search,.wh-search-row,.wi-search,.doc-search,.prices-search-bar,.srch-box,.search-group,.cfcombo-search-wrap) input:not([type="hidden"]) {
  min-height:0;
  margin:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
body:not(.auth-page) :is(.wh-search,.wh-search-row,.wi-search,.doc-search,.prices-search-bar,.srch-box,.search-group,.cfcombo-search-wrap) input:not([type="hidden"]):is(:hover,:focus) { border:0; box-shadow:none; }

/* Mobile controls retain their component font size. Pages that need the iOS
 * no-zoom 16px rule must scope it to their own form, never the whole site. */
