/* One visual language for the CRM, settings, reports, editors and admin dialogs. */
body.admin-interface {
  --admin-ui-ink: #344054;
  --admin-ui-muted: #667085;
  --admin-ui-border: #e4e7ec;
  --admin-ui-control-border: #dce1e8;
  --admin-ui-control-fill: #f9fafb;
  --admin-ui-control-radius: 7px;
  --admin-ui-surface-radius: 12px;
  --admin-ui-header-fill: #f9fafb;
  --admin-ui-focus: var(--admin-brand-ink, #475467);
  --admin-ui-ring: var(--admin-brand-ring, #10182812);
  --branding-border: var(--admin-ui-border);
  --branding-surface: var(--admin-ui-control-fill);
}

/* Baseline dimensions have deliberately low specificity: dense workspaces keep their sizes. */
:where(body.admin-interface) :is(input.form-control:not(:where([type="hidden"], [type="file"], [type="color"], [type="range"], [type="checkbox"], [type="radio"])), select.form-control, select.form-select) {
  height: 42px;
  padding: 9px 12px;
  font-size: 12px;
  line-height: 1.5;
}
:where(body.admin-interface) :is(input.form-control-sm:not(:where([type="hidden"], [type="file"], [type="color"], [type="range"], [type="checkbox"], [type="radio"])), select.form-control-sm, select.form-select-sm) {
  height: 34px;
  min-height: 30px;
  padding: 5px 9px;
}
:where(body.admin-interface) textarea.form-control { padding: 10px 12px; font-size: 12px; line-height: 1.6; }
:where(body.admin-interface) :is(.form-control-lg, .form-control-xl, .form-select-lg) { min-height: 48px; }

/* Appearance is shared even where a page owns the control's height or positioning. */
body.admin-interface :is(.form-control, .form-select, .admin-login-input, .navbar-search-field,
  .act-comment-edit-textarea, .apt-input, .apt-title-input, .apt-dt-input,
  .csv-mapping-select, .newCurrencyVal, .method-select,
  .ud-wl-row__addr-input, .ud-wl-row__net-input, .notification-email-sender-field input):not(:where([type="hidden"], [type="file"], [type="color"], [type="range"], [type="checkbox"], [type="radio"], .select2-hidden-accessible)) {
  border-color: var(--admin-ui-control-border) !important;
  background-color: var(--admin-ui-control-fill) !important;
  color: var(--admin-ui-ink);
  transition: border-color .15s, box-shadow .15s, background-color .15s;
}
body.admin-interface :is(.form-control, .form-select, .admin-login-input, .navbar-search-field,
  .act-comment-edit-textarea, .apt-input, .csv-mapping-select, .newCurrencyVal, .method-select, .notification-email-sender-field input):not(:where([type="hidden"], [type="file"], [type="color"], [type="range"], [type="checkbox"], [type="radio"], .select2-hidden-accessible)) {
  border-radius: var(--admin-ui-control-radius) !important;
}
body.admin-interface :is(.form-control, .form-select, .admin-login-input, .navbar-search-field,
  .act-comment-edit-textarea, .apt-input, .apt-title-input, .apt-dt-input,
  .csv-mapping-select, .newCurrencyVal, .method-select,
  .ud-wl-row__addr-input, .ud-wl-row__net-input, .notification-email-sender-field input):not(:where([type="hidden"], [type="file"], [type="color"], [type="range"], [type="checkbox"], [type="radio"], [readonly], [disabled])):focus {
  border-color: var(--admin-ui-focus) !important;
  background-color: #fff !important;
  outline: 0;
  box-shadow: 0 0 0 3px var(--admin-ui-ring) !important;
}
body.admin-interface :is(.form-control, .admin-login-input, .navbar-search-field, .act-comment-edit-textarea, .apt-input)::placeholder {
  color: #98a2b3;
  opacity: 1;
}
body.admin-interface :is(label.form-label, .form-group > label, .label--text) {
  color: #475467;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  text-transform: none;
  letter-spacing: 0;
}

/* Joined controls retain their internal seams and native validation/selection icons. */
body.admin-interface .input-group-text {
  border-color: var(--admin-ui-control-border);
  border-radius: var(--admin-ui-control-radius);
  background-color: #f2f4f7;
  color: var(--admin-ui-muted);
  font-size: 12px;
}
body.admin-interface .input-group > :is(.form-control, .form-select, .input-group-text, .btn):not(:first-child) {
  border-start-start-radius: 0 !important;
  border-end-start-radius: 0 !important;
}
body.admin-interface .input-group > :is(.form-control, .form-select, .input-group-text, .btn):not(:last-child) {
  border-start-end-radius: 0 !important;
  border-end-end-radius: 0 !important;
}
body.admin-interface :is(.form-control, .form-select):is([disabled], [readonly]) {
  border-color: var(--admin-ui-border) !important;
  background-color: #f2f4f7 !important;
  color: var(--admin-ui-muted);
  box-shadow: none !important;
}
body.admin-interface :is(.form-control, .form-select):is(.is-invalid, [aria-invalid="true"]) { border-color: #f04438 !important; }
body.admin-interface :is(.form-control, .form-select):is(.is-invalid, [aria-invalid="true"]):focus { border-color: #f04438 !important; box-shadow: 0 0 0 3px #fee4e2 !important; }
body.admin-interface :is(.form-control, .form-select).is-valid { border-color: #17b26a !important; }
body.admin-interface :is(.form-control, .form-select).is-valid:focus { border-color: #17b26a !important; box-shadow: 0 0 0 3px #dcfae6 !important; }

/* Enhanced selects share the same surface; page-specific compact and 45px heights survive. */
:where(body.admin-interface) .select2-container .select2-selection--single { display: flex; align-items: center; height: 42px; }
:where(body.admin-interface) .select2-container--default .select2-selection--single .select2-selection__rendered { min-width: 0; width: 100%; height: auto; line-height: 1.5; }
:where(body.admin-interface) .select2-container--default .select2-selection--single .select2-selection__arrow { top: 0; height: 100%; }
:where(body.admin-interface) .select2-container .select2-selection--multiple { min-height: 42px; }
:where(body.admin-interface) :is(.form-control-sm, .form-select-sm) + .select2-container .select2-selection--single { height: 34px; }
body.admin-interface .select2-container--default :is(.select2-selection--single, .select2-selection--multiple) {
  border-color: var(--admin-ui-control-border) !important;
  border-radius: var(--admin-ui-control-radius);
  background-color: var(--admin-ui-control-fill) !important;
}
body.admin-interface .select2-container--default .select2-selection__rendered { color: var(--admin-ui-ink); }
body.admin-interface .select2-container--default .select2-selection__placeholder { color: #98a2b3; }
body.admin-interface .select2-container--default:is(.select2-container--focus, .select2-container--open) :is(.select2-selection--single, .select2-selection--multiple) {
  border-color: var(--admin-ui-focus) !important;
  background-color: #fff !important;
  box-shadow: 0 0 0 3px var(--admin-ui-ring);
}
body.admin-interface .select2-dropdown { overflow: hidden; border-color: var(--admin-ui-control-border); border-radius: 8px; box-shadow: 0 8px 24px #1018281a; }
body.admin-interface .select2-search--dropdown .select2-search__field {
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--admin-ui-control-border);
  border-radius: 6px;
  background-color: var(--admin-ui-control-fill);
  color: var(--admin-ui-ink);
  font-family: inherit;
  font-size: 12px;
}
body.admin-interface .select2-search--dropdown .select2-search__field:focus { border-color: var(--admin-ui-focus); box-shadow: 0 0 0 2px var(--admin-ui-ring); }
body.admin-interface .select2-container--disabled :is(.select2-selection--single, .select2-selection--multiple) { background-color: #f2f4f7 !important; color: #98a2b3; box-shadow: none; }
body.admin-interface select:is(.is-invalid, [aria-invalid="true"]) + .select2-container :is(.select2-selection--single, .select2-selection--multiple) { border-color: #f04438 !important; }
body.admin-interface select:is(.is-invalid, [aria-invalid="true"]) + .select2-container:is(.select2-container--focus, .select2-container--open) :is(.select2-selection--single, .select2-selection--multiple) { box-shadow: 0 0 0 3px #fee4e2; }
body.admin-interface select.is-valid + .select2-container :is(.select2-selection--single, .select2-selection--multiple) { border-color: #17b26a !important; }
body.admin-interface select.is-valid + .select2-container:is(.select2-container--focus, .select2-container--open) :is(.select2-selection--single, .select2-selection--multiple) { box-shadow: 0 0 0 3px #dcfae6; }
body.admin-interface :is(input[type="file"].form-control, input[type="color"].form-control) { border-color: var(--admin-ui-control-border); border-radius: var(--admin-ui-control-radius); background-color: var(--admin-ui-control-fill); }

/* Shared layout surfaces, including settings cards and modal forms. */
body.admin-interface :is(.card, .branding-card, .notification-settings-card, .notification-email-card) {
  border-color: var(--admin-ui-border);
  border-radius: var(--admin-ui-surface-radius);
  box-shadow: 0 1px 2px #10182803;
}
body.admin-interface :is(.card-header, .card-footer) { border-color: var(--admin-ui-border); }
body.admin-interface .card-header { background-color: #fff; }
body.admin-interface .card-header :is(.card-title, h5, h6) { color: var(--admin-ui-ink); font-size: 14px; font-weight: 650; }
body.admin-interface .modal-content { border: 1px solid var(--admin-ui-border); border-radius: var(--admin-ui-surface-radius); }
body.admin-interface :is(.modal-header, .modal-footer, .offcanvas-header) { border-color: var(--admin-ui-border); }
body.admin-interface .modal-title { color: #202735; font-weight: 650; }
body.admin-interface :is(.btn, .page-link) { border-radius: var(--admin-ui-control-radius); }
body.admin-interface .pagination .page-item:not(:first-child) .page-link { border-start-start-radius: 0; border-end-start-radius: 0; }
body.admin-interface .pagination .page-item:not(:last-child) .page-link { border-start-end-radius: 0; border-end-end-radius: 0; }

/* Style real data tables only; calendar grids and email layout tables remain content. */
body.admin-interface :is(table.table, table.tp-table):not(.table-dark) > thead > tr:not(.crm-table-filter-row) > th {
  border-color: var(--admin-ui-border);
  background-color: var(--admin-ui-header-fill) !important;
  color: var(--admin-ui-muted);
  font-weight: 600;
  text-transform: none;
  letter-spacing: .015em;
}
body.admin-interface :is(table.table, table.tp-table):not(.table-dark) > tbody > tr > td { border-color: #eef1f5; color: #475467; }
body.admin-interface table.table:not(.table-sm):not(:where(.crm-fullpage-layout *, .crm-report__table-card *, .notification-template-list *, .ud-fullpage *, .ud-fullpage__body *)) > thead > tr > th {
  padding: 13px 20px;
  font-size: 11px;
  line-height: 1.5;
  text-align: left;
}
body.admin-interface table.table:not(.table-sm):not(:where(.crm-fullpage-layout *, .crm-report__table-card *, .notification-template-list *, .ud-fullpage *, .ud-fullpage__body *)) > tbody > tr > td {
  padding: 16px 20px;
  font-size: 12px;
  line-height: 1.6;
  vertical-align: middle;
  text-align: left;
}
body.admin-interface table.table:not(.table-dark) > tbody > tr:hover > td { background-color: #fcfcfd; }
body.admin-interface .table tbody :is(td[colspan="100%"], td[colspan="100"], td.dataTables_empty, td.dt-empty):not(.admin-report-empty-cell) {
  padding: 44px 20px !important;
  background-color: #fff;
  color: #98a2b3;
  font-size: 12px;
  text-align: center !important;
}
body.admin-interface .table tbody :is(td[colspan="100%"], td[colspan="100"], td.dataTables_empty, td.dt-empty)::before { display: none; }

/* Existing custom workspaces use the same appearance without losing their density. */
body.admin-interface .crm-fullpage-layout :is(.crm-toolbar, .crm-table-filter-row) :is(.form-control, .form-select) { background-color: var(--admin-ui-control-fill) !important; }
body.admin-interface .crm-fullpage-layout .crm-table-filter-row .select2-selection--single { background-color: var(--admin-ui-control-fill); }
body.admin-interface .crm-records :is(#leadsTable, #clientsTable) thead tr:first-child th { background-color: var(--admin-ui-header-fill); text-transform: none; }
body.admin-interface :is(.ud-details-edit-form, .ud-form-card) .form-control-sm { height: 30px; }
body.admin-interface .apt-datetime-card { border-color: var(--admin-ui-control-border); border-radius: var(--admin-ui-control-radius); background-color: var(--admin-ui-control-fill); }
body.admin-interface .apt-dt-input { color-scheme: light; }
body.admin-interface :is(input[type="date"], input[type="datetime-local"]) { color-scheme: light; cursor: pointer; }
body.admin-interface :is(input[type="date"], input[type="datetime-local"])::-webkit-calendar-picker-indicator { opacity: .6; cursor: pointer; }
body.admin-interface .admin-local-search { flex: 0 1 320px; width: min(320px, 100%); }
body.admin-interface :is(.card-header, .card-body) > .admin-filter-bar { padding: 0; border: 0; border-radius: 0; box-shadow: none; }

/* These fields are intentionally drawn by a surrounding control; avoid double borders. */
body.admin-interface :is(.notification-template-search, .settings-search) { border-color: var(--admin-ui-control-border); border-radius: var(--admin-ui-control-radius); background-color: var(--admin-ui-control-fill); }
body.admin-interface :is(.admin-filter-input, .notification-template-search, .settings-search) > :is(input, select),
body.admin-interface :is(.admin-filter-input, .notification-template-search, .settings-search) > :is(input, select):focus,
body.admin-interface .branding-heading .branding-context select,
body.admin-interface .branding-heading .branding-context select:focus {
  border: 0 !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  box-shadow: none !important;
}
body.admin-interface .admin-filter-input > :is(input, select) { height: 100%; min-height: 0; padding: 0; }
body.admin-interface .admin-filter-input:focus-within { border-color: var(--admin-ui-focus); box-shadow: 0 0 0 3px var(--admin-ui-ring); }

@media (max-width: 575px) {
  body.admin-interface .admin-local-search { flex-basis: 100%; width: 100%; }
  body.admin-interface :is(.modal-body, .card-body) :is(input.form-control, select.form-control, select.form-select, textarea.form-control):focus { scroll-margin-block: 80px; }
}
@media (prefers-reduced-motion: reduce) {
  body.admin-interface :is(.form-control, .form-select, .select2-selection) { transition: none; }
}
