:root {
  --control-height: 40px;
  --control-height-compact: 34px;
  --control-bg: #fff;
  --control-bg-hover: #fbfcfc;
  --control-bg-disabled: #f4f6f6;
  --control-border: #d2d9dc;
  --control-border-hover: #aeb9bd;
  --control-border-focus: var(--accent);
  --control-text: #20262a;
  --control-muted: #69757c;
  --control-placeholder: #7a858b;
  --control-focus-ring: color-mix(in srgb, var(--accent) 14%, transparent);
  --control-radius: 6px;
  --control-menu-shadow: 0 14px 36px rgba(22, 34, 39, .16), 0 2px 8px rgba(22, 34, 39, .08);
}

:where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"]),
  textarea,
  select
) {
  min-height: var(--control-height);
  padding: 8px 11px;
  border: 1px solid var(--control-border);
  border-radius: var(--control-radius);
  background: var(--control-bg);
  color: var(--control-text);
  font: inherit;
  letter-spacing: 0;
  box-shadow: none;
  transition: border-color 140ms ease, box-shadow 140ms ease, background-color 140ms ease;
}

:where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"]),
  textarea,
  select
):hover:where(:not(:disabled):not([readonly])) {
  border-color: var(--control-border-hover);
  background: var(--control-bg-hover);
}

:where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"]),
  textarea,
  select
):focus,
:where(
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"]),
  textarea,
  select
):focus-visible {
  outline: 0;
  border-color: var(--control-border-focus);
  background: #fff;
  box-shadow: 0 0 0 3px var(--control-focus-ring);
}

:where(input, textarea)::placeholder { color: var(--control-placeholder); opacity: 1; }
:where(input, textarea, select):disabled { border-color: #dde2e4; background: var(--control-bg-disabled); color: #8b9499; cursor: not-allowed; }
:where(input, textarea, select)[aria-invalid="true"],
:where(input, textarea, select).error,
:where(input, textarea, select):user-invalid { border-color: #d9a6a3; box-shadow: 0 0 0 3px rgba(180, 67, 62, .08); }
textarea { min-height: 92px; line-height: 1.55; resize: vertical; }
input[type="search"] { appearance: none; }
body.routras-form-controls input[type="checkbox"],
body.routras-form-controls input[type="radio"] {
  width: 16px;
  height: 16px;
  min-width: 16px;
  min-height: 16px;
  margin: 0;
  padding: 0;
  flex: 0 0 16px;
  vertical-align: middle;
  accent-color: var(--accent);
}

body.routras-form-controls label.toggle-field {
  min-height: 34px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
}

body.routras-form-controls label.toggle-field > span {
  margin: 0 !important;
  line-height: 1.35;
}

body.routras-form-controls .automation-start-dialog label.toggle-field {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
}

body.routras-form-controls .automation-start-dialog label.toggle-field input {
  order: -1;
  width: 18px;
  height: 18px;
  min-width: 18px;
  min-height: 18px;
  margin-top: 1px;
}

table :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"]), select),
.compact-grid :where(input:not([type="checkbox"]):not([type="radio"]), select),
.filter-fields :where(input, select),
.filters :where(input, select) {
  min-height: var(--control-height-compact);
  padding-top: 5px;
  padding-bottom: 5px;
}

select:not([multiple]):not([size]) { appearance: none; }
select[multiple], select[size]:not([size="1"]) { width: 100%; min-height: 132px; padding: 6px; }
select[multiple] option, select[size]:not([size="1"]) option { padding: 7px 9px; border-radius: 4px; }

.routras-select {
  position: relative;
  display: inline-block;
  width: var(--routras-select-width, 100%);
  min-width: 0;
  max-width: 100%;
  min-height: var(--routras-select-height, var(--control-height));
  vertical-align: middle;
}

label > .routras-select,
.job-form .routras-select,
.setting-grid .routras-select,
.form-grid .routras-select,
.admin-inline-form .routras-select,
.project-automation-grid .routras-select,
.inspector-form .routras-select { width: 100%; }

table .routras-select,
.compact-grid .routras-select,
.filter-fields .routras-select,
.filters .routras-select {
  min-height: var(--control-height-compact);
  --routras-select-height: var(--control-height-compact);
}

.routras-select-native {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.routras-select-trigger {
  width: 100%;
  min-width: 0;
  min-height: var(--routras-select-height, var(--control-height));
  padding: 8px 38px 8px 11px;
  border: 1px solid var(--control-border);
  border-radius: var(--control-radius);
  background: var(--control-bg);
  color: var(--control-text);
  display: block;
  position: relative;
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: inherit;
  letter-spacing: 0;
  cursor: pointer;
  transition: border-color 140ms ease, box-shadow 140ms ease, background-color 140ms ease;
}

.routras-select-trigger::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 14px;
  width: 7px;
  height: 7px;
  border-right: 1.5px solid #69757b;
  border-bottom: 1.5px solid #69757b;
  transform: translateY(-68%) rotate(45deg);
  transition: transform 140ms ease;
  pointer-events: none;
}

.routras-select-trigger:hover:not(:disabled) { border-color: var(--control-border-hover); background: var(--control-bg-hover); }
.routras-select-trigger:focus-visible,
.routras-select.is-open .routras-select-trigger { outline: 0; border-color: var(--control-border-focus); background: #fff; box-shadow: 0 0 0 3px var(--control-focus-ring); }
.routras-select.is-open .routras-select-trigger::after { transform: translateY(-30%) rotate(225deg); }
.routras-select-trigger:disabled { border-color: #dde2e4; background: var(--control-bg-disabled); color: #8b9499; cursor: not-allowed; }
.routras-select-placeholder { color: var(--control-placeholder); }

.routras-select-menu {
  position: fixed;
  z-index: 1000;
  min-width: 180px;
  padding: 7px;
  border: 1px solid #d8dee1;
  border-radius: 7px;
  background: #fff;
  box-shadow: var(--control-menu-shadow);
  color: var(--control-text);
}
.routras-select-menu[hidden] { display: none !important; }
.routras-select-search { position: sticky; top: 0; z-index: 1; margin-bottom: 6px; padding: 2px; background: #fff; }
.routras-select-search input { width: 100%; min-height: 36px; padding: 7px 30px 7px 42px; border-color: #cfd6d9; background-color: #fff; }
.routras-select-search::before {
  content: "";
  position: absolute;
  z-index: 2;
  left: 15px;
  top: 50%;
  width: 10px;
  height: 10px;
  border: 1.5px solid #758087;
  border-radius: 50%;
  transform: translateY(-70%);
  pointer-events: none;
}
.routras-select-search::after {
  content: "";
  position: absolute;
  z-index: 2;
  left: 25px;
  top: calc(50% + 3px);
  width: 6px;
  border-top: 1.5px solid #758087;
  transform: rotate(45deg);
  transform-origin: left center;
  pointer-events: none;
}
.routras-select-suggestions {
  display: flex;
  gap: 5px;
  margin: 0 2px 7px;
  padding: 0 0 7px;
  overflow-x: auto;
  border-bottom: 1px solid #e3e7e8;
  scrollbar-width: thin;
}
.routras-select-suggestions button {
  flex: 0 0 auto;
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid #d6dcde;
  border-radius: 5px;
  background: #fff;
  color: var(--control-text);
  font: inherit;
  font-size: 12px;
  letter-spacing: 0;
  cursor: pointer;
}
.routras-select-suggestions button:hover,
.routras-select-suggestions button:focus-visible {
  outline: 0;
  border-color: var(--control-border-hover);
  background: #f1f3f3;
}
.routras-select-options {
  max-height: min(320px, calc(100vh - 150px));
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #c2c9cc transparent;
}
.routras-select-option {
  width: 100%;
  min-height: 38px;
  padding: 8px 11px 8px 36px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--control-text);
  display: block;
  position: relative;
  overflow: hidden;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: inherit;
  letter-spacing: 0;
  cursor: pointer;
}
.routras-select-option:hover,
.routras-select-option:focus-visible { outline: 0; background: #f1f3f3; }
.routras-select-option[aria-selected="true"] { background: #edf0ef; font-weight: 650; }
.routras-select-option[aria-selected="true"]::before {
  content: "";
  position: absolute;
  left: 15px;
  top: 50%;
  width: 8px;
  height: 4px;
  border-left: 1.5px solid #40504b;
  border-bottom: 1.5px solid #40504b;
  transform: translateY(-65%) rotate(-45deg);
}
.routras-select-option:disabled { color: #9aa2a6; cursor: not-allowed; }
.routras-select-empty { min-height: 84px; padding: 20px 12px; display: grid; place-items: center; color: var(--control-muted); text-align: center; font-size: 12px; }
.routras-select-search-proxy { display: none !important; }

.routras-select-compact {
  min-height: 30px;
  --routras-select-height: 30px !important;
}
.routras-select-compact .routras-select-trigger { min-height: 30px; padding-top: 4px; padding-bottom: 4px; }
.routras-select-menu-compact { padding: 5px; }
.routras-select-menu-compact .routras-select-search { margin-bottom: 4px; padding: 1px; }
.routras-select-menu-compact .routras-select-search input { min-height: 30px; padding-top: 4px; padding-bottom: 4px; }
.routras-select-menu-compact .routras-select-option { min-height: 31px; padding-top: 5px; padding-bottom: 5px; }
.routras-select-menu-compact .routras-select-suggestions button { min-height: 26px; padding-top: 3px; padding-bottom: 3px; }

.routras-command-project:has(.routras-select) .project-chevron { display: none; }
.routras-command-project .routras-select {
  width: auto;
  min-width: 72px;
  min-height: 30px;
  --routras-select-height: 30px;
}
.routras-command-project .routras-select-trigger {
  min-height: 30px;
  padding: 0 24px 0 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  font-size: 12.5px;
  font-weight: 650;
}
.routras-command-project .routras-select-trigger:hover:not(:disabled),
.routras-command-project .routras-select-trigger:focus-visible,
.routras-command-project .routras-select.is-open .routras-select-trigger {
  border: 0;
  background: transparent;
  box-shadow: none;
}
.routras-command-project .routras-select-trigger::after { right: 7px; }

.routras-form-controls input.routras-control,
.routras-form-controls textarea.routras-control {
  min-height: var(--control-height);
  padding: 8px 11px;
  border: 1px solid var(--control-border);
  border-radius: var(--control-radius);
  background: var(--control-bg);
  color: var(--control-text);
  box-shadow: none;
}
.routras-form-controls textarea.routras-control { min-height: 92px; }

/* Composite search fields draw one border on the icon-and-input container. */
.routras-form-controls :is(
  .asset-search,
  .automation-device-search,
  .template-device-search,
  .device-filter-searches label
) input.routras-control {
  width: 100%;
  min-width: 0;
  height: 100% !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  outline: 0 !important;
  box-shadow: none !important;
}

.routras-form-controls :is(.asset-search,.automation-device-search,.template-device-search):focus-within {
  border-color: var(--control-border-focus);
  box-shadow: 0 0 0 3px var(--control-focus-ring);
}
.routras-form-controls input.routras-control:hover:where(:not(:disabled):not([readonly])),
.routras-form-controls textarea.routras-control:hover:where(:not(:disabled):not([readonly])) { border-color: var(--control-border-hover); background: var(--control-bg-hover); }
.routras-form-controls input.routras-control:focus,
.routras-form-controls input.routras-control:focus-visible,
.routras-form-controls textarea.routras-control:focus,
.routras-form-controls textarea.routras-control:focus-visible { outline: 0; border-color: var(--control-border-focus); background: #fff; box-shadow: 0 0 0 3px var(--control-focus-ring); }
.routras-form-controls .routras-select-search input.routras-control {
  min-height: 36px;
  padding: 7px 30px 7px 42px;
}
.routras-form-controls .filter-bar input.routras-control {
  height: 30px;
  min-height: 30px;
  padding-top: 4px;
  padding-bottom: 4px;
}
.routras-form-controls .routras-select-menu-compact .routras-select-search input.routras-control {
  height: 30px;
  min-height: 30px;
  padding: 4px 30px 4px 42px;
}
.routras-form-controls .inspector-form input.routras-control {
  height: 30px;
  min-height: 30px;
  padding-top: 4px;
  padding-bottom: 4px;
}
.routras-form-controls table input.routras-control,
.routras-form-controls .compact-grid input.routras-control,
.routras-form-controls .filter-fields input.routras-control,
.routras-form-controls .filters input.routras-control { min-height: var(--control-height-compact); padding-top: 5px; padding-bottom: 5px; }

dialog.settings-dialog,
dialog.production-dialog,
dialog.management-dialog,
dialog.publishing-dialog { padding: 0; }
.settings-dialog :where(.dialog-head, .project-automation-head),
.routras-project-automation-dialog .project-automation-head { padding: 18px 22px; }
.settings-dialog :where(.dialog-actions, .project-automation-actions),
.routras-project-automation-dialog .project-automation-actions { padding: 15px 22px; }
.settings-dialog :where(.setting-grid, .form-grid, .job-form, .creative-plan-form, .review-form-body) { padding: 20px 22px; }
.supply-dialog > .admin-supply-section { margin: 0; padding: 20px 22px 22px; }
.supply-dialog > .admin-supply-section + .admin-supply-section { border-top: 1px solid var(--border, #dce2e6); }
.supply-dialog > .dialog-actions { border-top: 1px solid var(--border, #dce2e6); }
:where(.rights-warning, .dialog-note) { margin-right: 22px; margin-left: 22px; }
:where(.pack-dialog-list, .monitor-body, .token-result) { padding: 20px 22px; }
.settings-dialog > :where(#job-detail-content, #account-provider-content, #automation-run-content, #provider-test-content, #device-preview-content) { padding: 20px 22px; }

@media (max-width: 680px) {
  :root { --control-height: 42px; }
  .routras-select-menu { max-width: calc(100vw - 16px); }
  .settings-dialog :where(.dialog-head, .project-automation-head), .routras-project-automation-dialog .project-automation-head { padding: 16px 17px; }
  .settings-dialog :where(.dialog-actions, .project-automation-actions), .routras-project-automation-dialog .project-automation-actions { padding: 13px 17px; }
  .settings-dialog :where(.setting-grid, .form-grid, .job-form, .creative-plan-form, .review-form-body) { padding: 17px; }
  .supply-dialog > .admin-supply-section { padding: 17px; }
  :where(.rights-warning, .dialog-note) { margin-right: 17px; margin-left: 17px; }
}
