/*
 * Unified admin palette
 *
 * This file intentionally loads after the individual admin feature sheets. It
 * only changes presentation: page structure, state classes, and interactions
 * remain owned by their feature styles.
 */
body.admin-page {
  --admin-ink: #020a11;
  --admin-center: #051722;
  --admin-center-deep: #03111a;
  --admin-center-raised: #08202e;
  --admin-line: #174e69;
  --admin-line-strong: #24769c;
  --admin-accent: #2aa9ff;
  --admin-accent-strong: #168de2;
  --admin-accent-soft: rgba(42, 169, 255, .105);
  --admin-copy: #f2f8fc;
  --admin-copy-soft: #a6c0d0;
  --admin-copy-muted: #7899ad;
  --admin-panel: rgba(5, 23, 34, .965);
  --admin-panel-soft: rgba(8, 32, 46, .97);
  --admin-border: #174e69;
  --au-bg: #03111a;
  --au-panel: #051722;
  --au-line: #174e69;
  --au-blue: #2aa9ff;
  --au-text: #f2f8fc;
  --au-muted: #8eafc2;
  color: var(--admin-copy);
}

/* Shared chrome */
body.admin-page .admin-toolbox :is(.admin-global-search, .admin-tool-menu > summary),
body.admin-page .admin-toolbox .admin-tool-popover {
  background: rgba(3, 17, 26, .97) !important;
  border-color: var(--admin-line) !important;
  box-shadow: none !important;
}

body.admin-page .admin-toolbox :is(.admin-global-search, .admin-tool-menu > summary):hover,
body.admin-page .admin-toolbox .admin-tool-menu[open] > summary {
  background: var(--admin-center) !important;
  border-color: var(--admin-line-strong) !important;
}

body.admin-page .admin-dashboard-return {
  background: linear-gradient(135deg, #239cf0, #146fca) !important;
  border-color: #3aaff8 !important;
  box-shadow: 0 10px 28px rgba(20, 111, 202, .2) !important;
}

/* The core surface language used by every feature family. */
body.admin-page :is(
  .admin-card,
  .admin-page-header,
  .admin-form-container,
  .admin-table-container,
  .admin-utility-hero,
  .admin-result-group,
  .admin-saved-view-list article,
  .admin-notification-list > article,
  .billing-admin__card,
  .billing-admin__webhook,
  .billing-admin__states,
  .ops-filter,
  .ops-records,
  .year-report-shell,
  .year-report,
  .invoice-ledger,
  .invoice-ledger__forms form,
  .dispute-summary > div,
  .dispute-card,
  .reconcile-summary > div,
  .reconcile-summary > form,
  .reconcile-explainer,
  .run-list details,
  .communications-card,
  .communications-policy,
  .audience-toolbar,
  .security-summary > div,
  .audit-summary > div,
  .audit-filter,
  .security-filter,
  .backup-summary article,
  .kb-admin-panel,
  .kb-content-block,
  .affiliate-panel,
  .affiliate-admin-card,
  .admin-create-user__card,
  .admin-user-card,
  .admin-addon-editor,
  .plan-editor-section,
  .admin-folder-picker-window,
  .admin-plan-image-picker__window
) {
  background: var(--admin-panel) !important;
  border-color: var(--admin-line) !important;
  box-shadow: 0 22px 55px rgba(0, 0, 0, .2) !important;
}

body.admin-page :is(
  .admin-card,
  .billing-admin__card,
  .year-report,
  .dispute-card,
  .communications-card,
  .backup-summary article,
  .kb-admin-panel,
  .affiliate-panel,
  .affiliate-admin-card,
  .admin-user-card
):hover {
  border-color: var(--admin-line-strong) !important;
}

body.admin-page :is(
  .admin-card,
  .billing-admin__card,
  .communications-card,
  .kb-admin-panel,
  .affiliate-panel,
  .admin-user-card
) {
  background-image: linear-gradient(145deg, rgba(8, 31, 45, .72), rgba(3, 17, 26, .36)) !important;
}

body.admin-page :is(
  .admin-card,
  .admin-page-header,
  .billing-admin__card,
  .communications-card,
  .kb-admin-panel,
  .affiliate-panel,
  .admin-user-card
)::before {
  animation: none !important;
}

/* Tables keep a darker center and use lines instead of grey fills. */
body.admin-page :is(
  .admin-table,
  .table,
  .ops-table,
  .campaign-table table,
  .backup-table,
  .audit-table,
  .security-table,
  .reconcile-table,
  .affiliate-table,
  .billing-mail__table
) thead {
  background: #082333 !important;
}

body.admin-page :is(
  .admin-table,
  .table,
  .ops-table,
  .campaign-table table,
  .backup-table,
  .audit-table,
  .security-table,
  .reconcile-table,
  .affiliate-table,
  .billing-mail__table
) :is(th, td) {
  border-color: #123b50 !important;
}

body.admin-page :is(
  .admin-table,
  .table,
  .ops-table,
  .campaign-table table,
  .backup-table,
  .audit-table,
  .security-table,
  .reconcile-table,
  .affiliate-table,
  .billing-mail__table
) th {
  color: #d9effb !important;
}

body.admin-page :is(
  .admin-table,
  .table,
  .ops-table,
  .campaign-table table,
  .backup-table,
  .audit-table,
  .security-table,
  .reconcile-table,
  .affiliate-table,
  .billing-mail__table
) td {
  color: var(--admin-copy-soft) !important;
}

body.admin-page :is(
  .admin-table,
  .table,
  .ops-table,
  .campaign-table table,
  .backup-table,
  .audit-table,
  .security-table,
  .reconcile-table,
  .affiliate-table,
  .billing-mail__table
) tbody tr:hover {
  background: var(--admin-accent-soft) !important;
}

/* Inputs and editors */
body.admin-page :is(
  .admin-form-input,
  .admin-form-select,
  .admin-form-textarea,
  .admin-filter-input,
  .admin-filter-select,
  .form-control,
  .form-select,
  .kb-input,
  .communications-page input,
  .communications-page select,
  .communications-page textarea,
  .billing-admin__card input:not([type='checkbox']),
  .billing-admin__card select,
  .ops-filter input,
  .ops-filter select,
  .reconcile-summary select,
  .invoice-ledger__forms input,
  .invoice-ledger__forms select,
  .affiliate-form input,
  .affiliate-form select,
  .affiliate-form textarea
) {
  background: var(--admin-center-deep) !important;
  border-color: #20536d !important;
  box-shadow: none !important;
  color: #f5fbff !important;
}

body.admin-page :is(
  .admin-form-input,
  .admin-form-select,
  .admin-form-textarea,
  .admin-filter-input,
  .admin-filter-select,
  .form-control,
  .form-select,
  .kb-input,
  .communications-page input,
  .communications-page select,
  .communications-page textarea,
  .billing-admin__card input:not([type='checkbox']),
  .billing-admin__card select,
  .ops-filter input,
  .ops-filter select,
  .reconcile-summary select,
  .invoice-ledger__forms input,
  .invoice-ledger__forms select,
  .affiliate-form input,
  .affiliate-form select,
  .affiliate-form textarea
):focus {
  border-color: var(--admin-accent) !important;
  box-shadow: 0 0 0 3px rgba(42, 169, 255, .13) !important;
  outline: 0 !important;
}

body.admin-page :is(input, textarea)::placeholder {
  color: #66889b !important;
  opacity: 1;
}

/*
 * Secondary controls use the requested dark center + crisp blue outline.
 * Primary, destructive, warning, and success states keep their semantic color.
 */
body.admin-page :is(
  .admin-card-button,
  .admin-action-btn-secondary,
  .admin-form-btn-secondary,
  .kb-btn-secondary,
  .kb-icon-btn,
  .kb-block-toolbar button,
  .affiliate-secondary,
  .admin-page-links a,
  .billing-admin__heading > a,
  .communications-page .admin-page-links a,
  .billing-ops-actions button:not(.danger),
  .reconcile-table form button,
  .admin-saved-view-list a,
  .admin-saved-view-list button,
  .admin-notification-list a,
  .admin-notification-list button
) {
  background: var(--admin-center-deep) !important;
  border: 1px solid #245b78 !important;
  box-shadow: none !important;
  color: #e8f6ff !important;
  text-shadow: none !important;
}

body.admin-page :is(
  .admin-card-button,
  .admin-action-btn-secondary,
  .admin-form-btn-secondary,
  .kb-btn-secondary,
  .kb-icon-btn,
  .kb-block-toolbar button,
  .affiliate-secondary,
  .admin-page-links a,
  .billing-admin__heading > a,
  .communications-page .admin-page-links a,
  .billing-ops-actions button:not(.danger),
  .reconcile-table form button,
  .admin-saved-view-list a,
  .admin-saved-view-list button,
  .admin-notification-list a,
  .admin-notification-list button
):hover,
body.admin-page :is(
  .admin-card-button,
  .admin-action-btn-secondary,
  .admin-form-btn-secondary,
  .kb-btn-secondary,
  .kb-icon-btn,
  .kb-block-toolbar button,
  .affiliate-secondary,
  .admin-page-links a,
  .billing-admin__heading > a,
  .communications-page .admin-page-links a,
  .billing-ops-actions button:not(.danger),
  .reconcile-table form button
):focus-visible {
  background: #082435 !important;
  border-color: var(--admin-accent) !important;
  color: #fff !important;
  transform: translateY(-1px);
}

body.admin-page :is(
  .admin-action-btn-primary,
  .admin-form-btn-primary,
  .admin-form-btn-success,
  .backup-primary,
  .affiliate-primary,
  .kb-btn:not(.kb-btn-secondary):not(.kb-danger),
  .billing-admin__card button,
  .ops-filter button,
  .reconcile-summary button,
  .communications-filters button,
  .composer-submit button,
  .invoice-ledger__forms button,
  .btn-primary
) {
  background: linear-gradient(135deg, #239cf0, #146fca) !important;
  border-color: #3aaff8 !important;
  box-shadow: none !important;
  color: #fff !important;
}

body.admin-page :is(
  .admin-action-btn-primary,
  .admin-form-btn-primary,
  .admin-form-btn-success,
  .backup-primary,
  .affiliate-primary,
  .kb-btn:not(.kb-btn-secondary):not(.kb-danger),
  .billing-admin__card button,
  .ops-filter button,
  .reconcile-summary button,
  .communications-filters button,
  .composer-submit button,
  .invoice-ledger__forms button,
  .btn-primary
):hover {
  background: linear-gradient(135deg, #31adfa, #197cd8) !important;
  border-color: #70c7ff !important;
}

/* Keep supporting type crisp enough to avoid the washed-out grey look. */
body.admin-page :is(
  .admin-page-subtitle,
  .admin-card-description,
  .billing-admin__heading p,
  .billing-admin__card p,
  .billing-admin__footnote,
  .kb-admin-hero p,
  .kb-admin-panel p,
  .kb-help,
  .communications-page p,
  .admin-empty-copy,
  .ops-section-title p,
  .backup-hero p
) {
  color: var(--admin-copy-soft) !important;
}

body.admin-page :is(
  .admin-eyebrow,
  .section-kicker,
  .kb-admin-kicker,
  .affiliate-kicker,
  .communications-title span,
  .backup-summary span,
  .billing-admin__heading span
) {
  color: #39b3ff !important;
}

body.admin-page :is(.admin-empty-state, .ops-empty, .communications-empty, .admin-utility-empty) {
  background: rgba(3, 17, 26, .72) !important;
  border-color: #21536d !important;
  color: var(--admin-copy-muted) !important;
}

body.admin-page :is(.card-header, .modal-header, .modal-footer, .kb-block-head, .audience-toolbar) {
  background: #08202e !important;
  border-color: var(--admin-line) !important;
}

/* Preserve semantic colors while removing the old grey inactive badges. */
body.admin-page :is(.admin-badge-inactive, .admin-badge-user, .status-archived) {
  background: #101d27 !important;
  border-color: #315069 !important;
  color: #a9c0cf !important;
}

body.admin-page :focus-visible {
  outline: 2px solid rgba(72, 185, 255, .8);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  body.admin-page *,
  body.admin-page *::before,
  body.admin-page *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
