/*
 * ActsTen Public Safety authenticated application foundation.
 * PLATFORM-05 scope: tokens, shared component contracts, auth, agency/Host shell,
 * accessibility, and central responsive behavior. Module migration stays additive.
 */

:root {
  --at-brand-midnight: #07111f;
  --at-brand-deep-navy: #0b1b2b;
  --at-brand-navy: #12324a;
  --at-brand-slate: #41566a;
  --at-brand-ice: #d9f1f7;
  --at-brand-cyan: #7fd8ea;
  --at-white: #ffffff;
  --at-off-white: #f4f7fa;

  --at-surface-canvas: var(--at-off-white);
  --at-surface-panel: var(--at-white);
  --at-surface-subtle: #edf3f7;
  --at-surface-selected: #e6f4f8;
  --at-surface-disabled: #e9eef2;
  --at-surface-overlay: rgba(7, 17, 31, .68);

  --at-text-primary: #13283a;
  --at-text-secondary: var(--at-brand-slate);
  --at-text-muted: #5b6f81;
  --at-text-inverse: var(--at-white);
  --at-text-inverse-muted: #bed0df;

  --at-border-subtle: #d7e1e9;
  --at-border-strong: #aebfcd;
  --at-interaction-primary: var(--at-brand-navy);
  --at-interaction-primary-hover: var(--at-brand-deep-navy);
  --at-interaction-on-dark: var(--at-brand-ice);
  --at-interaction-on-dark-hover: var(--at-white);

  --at-success: #176b47;
  --at-success-surface: #eaf6ef;
  --at-warning: #8a5700;
  --at-warning-surface: #fff5db;
  --at-danger: #b42318;
  --at-danger-hover: #8f1d14;
  --at-danger-surface: #fff0ef;
  --at-info: #1d5f8a;
  --at-info-surface: #eaf4fb;
  --at-neutral: #536779;
  --at-neutral-surface: #eef2f5;

  --at-focus-color: var(--at-brand-cyan);
  --at-focus-ring: 0 0 0 3px rgba(127, 216, 234, .48);

  --at-module-pro-standards: #63baff;
  --at-module-training: #69d59a;
  --at-module-fto: #64d8e8;
  --at-module-policy: #e3b75d;

  --at-font-sans: Inter, "Segoe UI", Roboto, Arial, sans-serif;
  --at-text-xs: .8125rem;
  --at-text-sm: .875rem;
  --at-text-base: 1rem;
  --at-text-lg: 1.125rem;
  --at-text-xl: 1.375rem;
  --at-text-2xl: clamp(1.75rem, 3vw, 2.25rem);
  --at-leading-body: 1.55;

  --at-space-1: .25rem;
  --at-space-2: .5rem;
  --at-space-3: .75rem;
  --at-space-4: 1rem;
  --at-space-5: 1.25rem;
  --at-space-6: 1.5rem;
  --at-space-8: 2rem;
  --at-space-10: 2.5rem;
  --at-radius-sm: .375rem;
  --at-radius-md: .625rem;
  --at-radius-lg: .875rem;
  --at-radius-pill: 999px;
  --at-elevation-1: 0 2px 8px rgba(11, 27, 43, .07);
  --at-elevation-2: 0 14px 34px rgba(11, 27, 43, .11);
}

body[data-authenticated-ui="true"] {
  --cd-font-sans: var(--at-font-sans);
  --cd-text-base: var(--at-text-base);
  --cd-text-md: var(--at-text-base);
  --cd-page-bg: var(--at-surface-canvas);
  --cd-bg: var(--at-surface-canvas);
  --cd-surface: var(--at-surface-panel);
  --cd-surface-soft: var(--at-surface-subtle);
  --cd-section-header-bg: var(--at-surface-subtle);
  --cd-border: var(--at-border-subtle);
  --cd-border-strong: var(--at-border-strong);
  --cd-text: var(--at-text-primary);
  --cd-muted: var(--at-text-muted);
  --cd-navy: var(--at-brand-navy);
  --cd-navy-soft: var(--at-brand-deep-navy);
  --cd-navy-light: var(--at-brand-slate);
  --cd-primary: var(--at-interaction-primary);
  --cd-primary-dark: var(--at-interaction-primary-hover);
  --cd-coral-primary: var(--at-interaction-primary);
  --cd-coral-hover: var(--at-interaction-primary-hover);
  --cd-primary-soft: var(--at-surface-selected);
  --cd-success: var(--at-success);
  --cd-warning: var(--at-warning);
  --cd-danger: var(--at-danger);
  --cd-header: var(--at-brand-deep-navy);
  --cd-table-header: var(--at-brand-navy);
  --cd-input-border: var(--at-border-strong);
  --cd-focus-ring: var(--at-focus-ring);
  --cd-radius: var(--at-radius-md);
  --cd-radius-sm: var(--at-radius-sm);
  --cd-shadow: var(--at-elevation-2);
  --cd-shadow-soft: var(--at-elevation-1);
  min-width: 0;
  color: var(--at-text-primary);
  background: var(--at-surface-canvas);
  font-family: var(--at-font-sans);
  font-size: var(--at-text-base);
  line-height: var(--at-leading-body);
}

body[data-authenticated-ui="true"] :focus-visible {
  outline: 3px solid var(--at-focus-color);
  outline-offset: 3px;
  box-shadow: var(--at-focus-ring);
}

body[data-authenticated-ui="true"] :disabled,
body[data-authenticated-ui="true"] [aria-disabled="true"] {
  cursor: not-allowed;
}

body.at-app-body .cd-layout-full,
body.at-app-body .cd-layout-full > main,
body.at-app-body .cd-page,
body.at-app-body .cd-content,
body.at-app-body .cd-module-content {
  min-width: 0;
  max-width: none;
}

body.at-app-body .cd-page,
body.at-app-body .cd-content,
body.at-app-body .cd-module-content,
body.at-host-body .cd-page-shell {
  background-color: var(--at-surface-canvas);
  background-image: none;
}

/* Authentication family */
body.at-auth-body {
  overflow-x: clip;
}

body.at-auth-body .cd-login-page {
  min-width: 0;
  background:
    radial-gradient(circle at 76% 14%, rgba(127, 216, 234, .13), transparent 30%),
    linear-gradient(135deg, var(--at-brand-midnight), var(--at-brand-deep-navy) 58%, var(--at-brand-navy));
}

body.at-auth-body .cd-login-page--split {
  background: var(--at-surface-canvas);
}

body.at-auth-body .cd-login-panel {
  color: var(--at-text-primary);
  background: var(--at-surface-panel);
  border-color: var(--at-border-subtle);
}

body.at-auth-body .cd-login-brand {
  display: grid;
  justify-items: center;
  gap: .55rem;
  margin-bottom: var(--at-space-6);
  text-align: center;
}

body.at-auth-body .cd-login-brand-text {
  display: grid;
  gap: .45rem;
  color: var(--at-brand-navy);
  line-height: 1.15;
}

body.at-auth-body .cd-login-brand-text strong {
  font-size: 1.2rem;
  font-weight: 800;
}

body.at-auth-body .cd-login-brand-text span {
  color: var(--at-brand-slate);
  font-size: .9rem;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
}

body.at-auth-body .cd-login-heading h1 {
  color: var(--at-text-primary);
  font-size: var(--at-text-2xl);
}

body.at-auth-body .cd-login-form label {
  color: var(--at-text-secondary);
  font-size: var(--at-text-sm);
}

body.at-auth-body .cd-login-form input[type="email"],
body.at-auth-body .cd-login-form input[type="password"],
body.at-auth-body .cd-login-form input[type="text"] {
  min-height: 48px;
  border-color: var(--at-border-strong);
  color: var(--at-text-primary);
  background: var(--at-white);
}

body.at-auth-body .cd-login-form input:focus {
  border-color: var(--at-brand-navy);
  outline: 3px solid var(--at-focus-color);
  outline-offset: 1px;
  box-shadow: var(--at-focus-ring);
}

body.at-auth-body .cd-login-button {
  min-height: 48px;
  border-color: var(--at-interaction-primary);
  color: var(--at-white);
  background: var(--at-interaction-primary);
  box-shadow: var(--at-elevation-1);
}

body.at-auth-body .cd-login-button:hover {
  border-color: var(--at-interaction-primary-hover);
  background: var(--at-interaction-primary-hover);
  box-shadow: var(--at-elevation-2);
}

body.at-auth-body .cd-login-back-link,
body.at-auth-body .cd-login-note a {
  color: var(--at-interaction-primary);
  text-decoration: underline;
  text-underline-offset: .18em;
}

body.at-auth-body .cd-login-hero {
  background:
    linear-gradient(rgba(217, 241, 247, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(217, 241, 247, .035) 1px, transparent 1px),
    radial-gradient(circle at 78% 18%, rgba(127, 216, 234, .18), transparent 30%),
    linear-gradient(135deg, var(--at-brand-midnight), var(--at-brand-deep-navy) 55%, var(--at-brand-navy));
  background-size: 34px 34px, 34px 34px, auto, auto;
}

body.at-auth-body .cd-login-hero::after {
  border-color: rgba(127, 216, 234, .22);
}

body.at-auth-body .cd-login-hero-pill,
body.at-auth-body .cd-login-hero-badge {
  border-color: rgba(217, 241, 247, .36);
  color: var(--at-brand-ice);
  background: rgba(7, 17, 31, .46);
}

body.at-auth-body .cd-validation-summary,
body.at-auth-body .validation-summary-errors {
  border: 1px solid color-mix(in srgb, var(--at-danger) 32%, white);
  color: var(--at-danger);
  background: var(--at-danger-surface);
}

body.at-auth-body .cd-field-validation,
body.at-auth-body .field-validation-error {
  color: var(--at-danger);
  font-size: var(--at-text-sm);
  font-weight: 700;
}

/* Shared shell identity */
.cd-pro-standards-body { --at-module-accent: var(--at-module-pro-standards); }
.cd-training-body { --at-module-accent: var(--at-module-training); }
.cd-fto-body { --at-module-accent: var(--at-module-fto); }
.cd-policy-compliance-body { --at-module-accent: var(--at-module-policy); }

body.at-agency-body .ps-common-header {
  border-bottom-color: rgba(217, 241, 247, .2);
  background: linear-gradient(100deg, var(--at-brand-midnight), var(--at-brand-navy) 58%, var(--at-brand-deep-navy));
}

body.at-agency-body .ps-common-nav {
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: thin;
}

body.at-agency-body .ps-common-nav > a,
body.at-agency-body .ps-menu > summary {
  min-height: 44px;
}

body.at-agency-body .cd-module-nav-shell,
body.at-agency-body .cd-pro-standards-module-nav,
body.at-agency-body .training-navigation,
body.at-agency-body .cd-fto-tabbar,
body.at-agency-body .pc-module-header {
  box-shadow: inset 0 -2px 0 var(--at-module-accent, var(--at-brand-cyan));
}

/* Host Administration: same family, unmistakably privileged. */
body.at-host-body {
  --cd-topbar-height: 86px;
}

body.at-host-body .at-host-shell {
  height: var(--cd-topbar-height);
  min-height: var(--cd-topbar-height);
  max-height: var(--cd-topbar-height);
}

body.at-host-body .at-host-header {
  grid-template-columns: 12.5rem minmax(12rem, 15rem) minmax(0, 1fr) auto;
  gap: 1rem;
  height: var(--cd-topbar-height);
  min-height: var(--cd-topbar-height);
  max-height: var(--cd-topbar-height);
  border-bottom: 1px solid rgba(217, 241, 247, .2);
  background: linear-gradient(100deg, var(--at-brand-midnight), var(--at-brand-navy) 58%, var(--at-brand-deep-navy));
}

body.at-host-body .at-host-header .cd-brand {
  grid-column: 1;
  width: 12.5rem;
  min-width: 0;
  max-width: 12.5rem;
}

.at-host-context {
  grid-column: 2;
  display: grid;
  min-width: 0;
  align-content: center;
  gap: .15rem;
  padding-left: 1rem;
  border-left: 1px solid rgba(217, 241, 247, .28);
  color: var(--at-text-inverse-muted);
  line-height: 1.2;
}

.at-host-context strong,
.at-privileged-marker {
  color: var(--at-brand-ice);
  font-size: .8rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.at-host-context span {
  overflow: hidden;
  font-size: .78rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.at-host-body .at-host-nav {
  grid-column: 3;
  display: flex;
  justify-content: flex-end;
  gap: .35rem;
  overflow-x: auto;
}

body.at-host-body .at-host-nav .cd-module {
  flex: 0 1 auto;
  width: auto;
  min-width: 5.5rem;
  min-height: 48px;
  height: 48px;
  padding-inline: .75rem;
  border-color: transparent;
  background: transparent;
  font-size: .8rem;
}

body.at-host-body .at-host-nav .cd-module:hover,
body.at-host-body .at-host-nav .cd-module.active {
  border-color: rgba(217, 241, 247, .34);
  color: var(--at-white);
  background: rgba(217, 241, 247, .1);
  box-shadow: inset 0 -3px 0 var(--at-brand-cyan);
}

body.at-host-body .cd-page-shell {
  width: min(88rem, calc(100% - 3rem));
}

body.at-host-body .cd-kicker {
  color: var(--at-text-secondary);
  font-size: var(--at-text-sm);
  letter-spacing: .04em;
}

.at-access-denied {
  min-height: 100vh;
  display: grid;
  place-items: center;
}

.at-access-denied .cd-page-hero {
  width: min(36rem, 100%);
  align-items: flex-start;
  padding: var(--at-space-8);
  border: 1px solid var(--at-border-subtle);
  border-radius: var(--at-radius-lg);
  background: var(--at-white);
  box-shadow: var(--at-elevation-2);
}

.at-access-denied .at-privileged-marker {
  color: var(--at-danger);
}

/* Shared action contract */
.at-button,
.at-icon-button,
body[data-authenticated-ui="true"] .cd-primary-button,
body[data-authenticated-ui="true"] .cd-secondary-button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: var(--at-space-2);
  border-radius: var(--at-radius-md);
  padding: .65rem 1rem;
  font-weight: 750;
  line-height: 1.2;
  text-decoration: none;
}

.at-button--primary,
body[data-authenticated-ui="true"] .cd-primary-button {
  border: 1px solid var(--at-interaction-primary);
  color: var(--at-white);
  background: var(--at-interaction-primary);
}

.at-button--primary:hover,
body[data-authenticated-ui="true"] .cd-primary-button:hover {
  border-color: var(--at-interaction-primary-hover);
  color: var(--at-white);
  background: var(--at-interaction-primary-hover);
}

.at-button--secondary,
body[data-authenticated-ui="true"] .cd-secondary-button {
  border: 1px solid var(--at-interaction-primary);
  color: var(--at-interaction-primary);
  background: var(--at-white);
}

.at-button--tertiary,
.at-button--link {
  border-color: transparent;
  color: var(--at-interaction-primary);
  background: transparent;
  text-decoration: underline;
  text-underline-offset: .18em;
}

.at-button--danger {
  border: 1px solid var(--at-danger);
  color: var(--at-white);
  background: var(--at-danger);
}

.at-button--danger:hover {
  border-color: var(--at-danger-hover);
  background: var(--at-danger-hover);
}

.at-icon-button {
  width: 44px;
  padding: 0;
}

.at-button:disabled,
.at-button[aria-disabled="true"],
.at-icon-button:disabled {
  border-color: var(--at-border-subtle);
  color: var(--at-text-muted);
  background: var(--at-surface-disabled);
  opacity: .72;
}

.at-button[aria-busy="true"]::before {
  width: 1em;
  height: 1em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  content: "";
  animation: at-spin .75s linear infinite;
}

/* Forms and validation */
.at-field {
  display: grid;
  min-width: 0;
  gap: var(--at-space-2);
}

.at-label,
.at-field > label {
  color: var(--at-text-primary);
  font-size: var(--at-text-sm);
  font-weight: 750;
}

.at-required::after {
  margin-left: .25em;
  color: var(--at-danger);
  content: "(required)";
  font-size: .8em;
}

.at-help {
  color: var(--at-text-muted);
  font-size: var(--at-text-sm);
}

.at-input,
.at-select,
.at-textarea,
.at-file-input {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--at-border-strong);
  border-radius: var(--at-radius-md);
  padding: .625rem .75rem;
  color: var(--at-text-primary);
  background: var(--at-white);
}

.at-textarea { min-height: 7rem; resize: vertical; }
.at-check { display: flex; min-height: 44px; align-items: center; gap: .65rem; }
.at-check input { width: 1.2rem; height: 1.2rem; accent-color: var(--at-interaction-primary); }

.at-input[readonly],
.at-textarea[readonly],
.at-readonly {
  color: var(--at-text-secondary);
  background: var(--at-neutral-surface);
}

.at-field-error,
.field-validation-error {
  color: var(--at-danger);
  font-size: var(--at-text-sm);
  font-weight: 700;
}

.at-validation-summary,
body[data-authenticated-ui="true"] .cd-validation-summary.validation-summary-errors {
  padding: var(--at-space-4);
  border: 1px solid color-mix(in srgb, var(--at-danger) 36%, white);
  border-left: 4px solid var(--at-danger);
  border-radius: var(--at-radius-md);
  color: var(--at-danger);
  background: var(--at-danger-surface);
}

/* Data, navigation, feedback, and workflow contracts */
.at-card,
.at-panel,
.at-summary-card,
.at-review-panel,
.at-audit-panel,
.at-empty-state,
body[data-authenticated-ui="true"] .cd-form-card,
body[data-authenticated-ui="true"] .cd-table-card,
body[data-authenticated-ui="true"] .cd-stat-card {
  border: 1px solid var(--at-border-subtle);
  border-radius: var(--at-radius-lg);
  background: var(--at-surface-panel);
  box-shadow: var(--at-elevation-1);
}

.at-card,
.at-panel,
.at-review-panel,
.at-audit-panel,
.at-empty-state { padding: var(--at-space-6); }

.at-summary-card { display: grid; gap: var(--at-space-2); padding: var(--at-space-5); }
.at-empty-state { color: var(--at-text-secondary); text-align: center; }

.at-table-region {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--at-border-subtle);
  border-radius: var(--at-radius-lg);
  background: var(--at-white);
}

.at-table {
  width: 100%;
  border-collapse: collapse;
  color: var(--at-text-primary);
}

.at-table th,
.at-table td { padding: .8rem 1rem; border-bottom: 1px solid var(--at-border-subtle); text-align: left; }
.at-table th { color: var(--at-text-secondary); background: var(--at-surface-subtle); font-size: var(--at-text-sm); }
.at-table--compact th,
.at-table--compact td { padding: .55rem .75rem; font-size: var(--at-text-sm); }

.at-filter-row,
.at-pagination,
.at-breadcrumbs,
.at-tabs { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: var(--at-space-2); }
.at-filter-row { padding: var(--at-space-4); border: 1px solid var(--at-border-subtle); border-radius: var(--at-radius-lg); background: var(--at-white); }
.at-breadcrumbs { color: var(--at-text-muted); font-size: var(--at-text-sm); }
.at-tabs { border-bottom: 1px solid var(--at-border-subtle); }
.at-tab { min-height: 44px; padding: .65rem .85rem; border-bottom: 3px solid transparent; color: var(--at-text-secondary); }
.at-tab[aria-current="page"],
.at-tab[aria-selected="true"] { border-bottom-color: var(--at-interaction-primary); color: var(--at-text-primary); font-weight: 750; }

.at-badge,
.at-status {
  display: inline-flex;
  min-height: 1.75rem;
  align-items: center;
  gap: .35rem;
  border: 1px solid currentColor;
  border-radius: var(--at-radius-pill);
  padding: .2rem .65rem;
  color: var(--at-neutral);
  background: var(--at-neutral-surface);
  font-size: var(--at-text-xs);
  font-weight: 750;
}

.at-status--success { color: var(--at-success); background: var(--at-success-surface); }
.at-status--warning { color: var(--at-warning); background: var(--at-warning-surface); }
.at-status--danger { color: var(--at-danger); background: var(--at-danger-surface); }
.at-status--info { color: var(--at-info); background: var(--at-info-surface); }
.at-status--pending,
.at-status--neutral { color: var(--at-neutral); background: var(--at-neutral-surface); }

.at-alert {
  padding: var(--at-space-4);
  border: 1px solid var(--at-border-strong);
  border-left-width: 4px;
  border-radius: var(--at-radius-md);
  color: var(--at-text-primary);
  background: var(--at-white);
}

.at-alert--success { border-left-color: var(--at-success); background: var(--at-success-surface); }
.at-alert--warning { border-left-color: var(--at-warning); background: var(--at-warning-surface); }
.at-alert--danger { border-left-color: var(--at-danger); background: var(--at-danger-surface); }
.at-alert--info { border-left-color: var(--at-info); background: var(--at-info-surface); }

.at-my-work-item,
.at-notification,
.at-evidence-row,
.at-document-row,
.at-history-row {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--at-space-4);
  align-items: center;
  padding: var(--at-space-4);
  border-bottom: 1px solid var(--at-border-subtle);
  background: var(--at-white);
}

.at-dialog {
  width: min(40rem, calc(100% - 2rem));
  max-height: calc(100vh - 2rem);
  overflow: auto;
  border: 1px solid var(--at-border-subtle);
  border-radius: var(--at-radius-lg);
  padding: var(--at-space-6);
  color: var(--at-text-primary);
  background: var(--at-white);
  box-shadow: var(--at-elevation-2);
}

.at-dialog::backdrop { background: var(--at-surface-overlay); }
.at-loading { color: var(--at-text-secondary); }

/* Menus are portaled to body while open so scroll regions cannot clip them. */
.at-overlay-menu {
  position: relative;
}

.at-host-signout {
  grid-column: 4;
  display: flex;
  align-items: center;
  margin: 0;
}

.at-host-signout button {
  min-width: 5.25rem;
  min-height: 44px;
  border: 1px solid rgba(217, 241, 247, .4);
  border-radius: var(--at-radius-md);
  padding: .55rem .75rem;
  color: var(--at-white);
  background: rgba(217, 241, 247, .08);
  font-size: .78rem;
  font-weight: 800;
}

.at-host-signout button:hover,
.at-host-signout button:focus-visible {
  border-color: var(--at-brand-ice);
  background: rgba(217, 241, 247, .18);
}

[data-at-overlay-panel][hidden],
.at-tooltip[hidden] {
  display: none;
}

body > .at-overlay-panel {
  position: fixed;
  right: auto;
  bottom: auto;
  z-index: 2200;
  margin: 0;
  overflow: auto;
  overscroll-behavior: contain;
}

.at-action-menu-panel {
  display: grid;
  width: min(15rem, calc(100vw - 1rem));
  gap: .3rem;
  padding: .5rem;
  border: 1px solid var(--at-border-strong);
  border-radius: var(--at-radius-md);
  color: var(--at-text-primary);
  background: var(--at-white);
  box-shadow: var(--at-elevation-2);
}

.at-action-menu-panel form {
  display: contents;
}

.at-action-menu-panel :where(a, button, [role="note"]) {
  width: 100%;
  min-height: 42px;
  border: 0;
  border-radius: var(--at-radius-sm);
  padding: .6rem .7rem;
  color: var(--at-text-primary);
  background: transparent;
  font: inherit;
  font-size: var(--at-text-sm);
  font-weight: 700;
  line-height: 1.25;
  text-align: left;
  text-decoration: none;
  white-space: normal;
}

.at-action-menu-panel :where(a, button):hover,
.at-action-menu-panel :where(a, button):focus-visible {
  background: var(--at-info-surface);
}

.at-action-menu-panel [role="note"] {
  color: var(--at-text-secondary);
  font-weight: 600;
}

.at-action-menu-panel .at-action-menu-danger {
  color: var(--at-danger);
}

.at-tooltip {
  position: fixed;
  z-index: 2300;
  width: max-content;
  max-width: min(18rem, calc(100vw - 1rem));
  padding: .4rem .55rem;
  border-radius: var(--at-radius-sm);
  color: var(--at-white);
  background: var(--at-brand-midnight);
  box-shadow: var(--at-elevation-2);
  font-size: var(--at-text-xs);
  font-weight: 700;
  line-height: 1.25;
  pointer-events: none;
}

.host-agency-detail-grid,
.host-sso-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--at-space-4);
}

.host-module-summary {
  display: flex;
  flex-wrap: wrap;
  gap: var(--at-space-2);
}

.host-section-heading {
  padding: var(--at-space-5) var(--at-space-5) var(--at-space-2);
}

.host-section-heading h2,
.host-section-heading p {
  margin-bottom: 0;
}

.host-readonly-field {
  display: grid;
  align-content: start;
  gap: .4rem;
}

.host-readonly-field strong {
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: .55rem .7rem;
  border: 1px solid var(--at-border-subtle);
  border-radius: var(--at-radius-sm);
  background: var(--at-surface-subtle);
}

/* Keep legacy administrative grids inside the shared authenticated canvas.
   Row-action menus previously switched their table wrapper back to visible
   overflow, allowing wide user and permission tables to escape the viewport. */
body[data-authenticated-ui="true"] .cd-manage-layout,
body[data-authenticated-ui="true"] .cd-manage-main,
body[data-authenticated-ui="true"] .cd-table-wrap {
  min-width: 0;
  max-width: 100%;
}

body[data-authenticated-ui="true"] .cd-table-wrap,
body[data-authenticated-ui="true"] .cd-table-wrap:has(.cd-row-action-menu) {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

@keyframes at-spin { to { transform: rotate(360deg); } }

@media (max-width: 68rem) {
  body.at-app-body:not(.cd-fto-body) .cd-page,
  body.at-app-body:not(.cd-fto-body) .cd-content,
  body.at-app-body:not(.cd-fto-body) .cd-module-content {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  body.at-host-body .at-host-header {
    grid-template-columns: 11rem minmax(11rem, 13rem) minmax(30rem, 1fr) auto;
  }

  body.at-host-body .at-host-header .cd-brand { width: 11rem; max-width: 11rem; }
}

@media (max-width: 52rem) {
  body.at-host-body {
    --cd-topbar-height: 138px;
  }

  body.at-host-body .at-host-header {
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-rows: 70px 58px;
    gap: 0 .75rem;
    padding-inline: .75rem;
  }

  body.at-host-body .at-host-header .cd-brand {
    grid-column: 1;
    grid-row: 1;
    width: auto;
    max-width: none;
    height: 70px;
    min-height: 70px;
    align-content: center;
    align-self: start;
  }

  .at-host-context {
    grid-column: 2;
    grid-row: 1;
    padding-left: .75rem;
  }


  .at-host-signout {
    grid-column: 3;
    grid-row: 1;
  }

  body.at-host-body .at-host-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: flex-start;
    height: 58px;
    min-height: 58px;
  }

  body.at-host-body .at-host-nav .cd-module {
    flex: 0 0 auto;
    min-width: 5rem;
    height: 44px;
    min-height: 44px;
  }

  body.at-host-body .cd-page-shell {
    width: calc(100% - 1.5rem);
  }

  .at-my-work-item,
  .at-notification,
  .at-evidence-row,
  .at-document-row,
  .at-history-row { grid-template-columns: 1fr; }

  .host-agency-detail-grid,
  .host-sso-summary { grid-template-columns: 1fr; }
}

@media (max-width: 36rem) {
  body.at-auth-body .cd-login-shell,
  body.at-auth-body .cd-login-page--split .cd-login-shell {
    width: 100%;
    min-width: 0;
    padding: 0;
  }

  body.at-auth-body .cd-login-panel,
  body.at-auth-body .cd-login-page--split .cd-login-panel {
    width: 100%;
    min-width: 0;
    min-height: 100vh;
    padding: 1.5rem 1rem;
    border: 0;
    border-radius: 0;
  }

  body.at-auth-body .cd-login-card { max-width: 24rem; }
  body.at-auth-body .cd-login-logo { width: min(11rem, 70vw); }
  body.at-auth-body .cd-login-heading h1 { font-size: 1.8rem; overflow-wrap: normal; }
  body.at-auth-body .cd-login-hero { display: none; }

  body.at-host-body .at-host-header {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .at-host-context { display: none; }
  .at-host-signout { grid-column: 2; }

  body.at-host-body .at-host-header .cd-brand-logo { width: 8.8rem; min-width: 8.8rem; max-width: 8.8rem; }
  body.at-host-body .at-host-header .cd-brand-copy { width: 8.8rem; }
  .at-host-context strong { font-size: .68rem; }
  .at-host-context span { font-size: .7rem; }

  body[data-authenticated-ui="true"] .cd-page-heading,
  body[data-authenticated-ui="true"] .cd-page-title-row,
  body[data-authenticated-ui="true"] .cd-module-title-row,
  body[data-authenticated-ui="true"] .cd-page-hero {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  body[data-authenticated-ui="true"] *,
  body[data-authenticated-ui="true"] *::before,
  body[data-authenticated-ui="true"] *::after {
    scroll-behavior: auto;
    transition-duration: .01ms;
    animation-duration: .01ms;
    animation-iteration-count: 1;
  }
}
