/**
 * GENERATED FILE — do not edit.
 *
 * Built by scripts/bundle-shell.mjs from, in order:
 *   site/assets/cortex-identity.css
 *   site/assets/cortex-platform.css
 *   site/assets/cortex-modules.css
 *   site/assets/cortex-operations.css
 *   site/assets/cortex-integrations.css
 *   site/assets/cortex-light-surfaces-v560.css
 *   site/assets/salesforce-admissions-admin.css
 *   site/assets/ask-cortex.css
 *   site/assets/cortex-responsive.css
 *
 * Edit the sources and run `npm run build`.
 */

@layer reset, base, components, modules, shell, identity, responsive, utilities;

/* ---- site/assets/cortex-identity.css ---- */
@layer identity {
  /* UoL Cortex v5.5.0 — authenticated-shell startup and Cortex identity safeguards. */
  /* These intrinsic bounds remain active before the authenticated shell class is mounted. */
  .cx-home-lockup>img {
    width:50px;
    height:50px;
    max-width:50px;
    max-height:50px;
  }
  @media(max-width: 1024px) {
    .cx-operational-pulse .home-kpi-row {
      grid-column:2;
      grid-row:2;
    }
    .cx-source-note {
      grid-column:1/-1;
    }
  }
  @media(max-width: 768px) {
    .cx-operational-pulse .home-kpi-row {
      margin-top: var(--uol-space-1);
    }
  }
  @media(max-width: 480px) {
    .cx-hero-action {
      flex:1;
    }
  }
}


/* ---- site/assets/cortex-platform.css ---- */
@layer components {
  /* A calmer, task-first shell. */
  .global-shell {
    border-bottom:1px solid var(--uol-border);
    box-shadow:0 5px 22px rgba(39,22,52,.045);
  }
  .global-shell-inner {
    min-height:70px;
    gap: var(--uol-space-3);
    padding-inline:clamp(12px,1.6vw,28px);
  }
  .shell-brand {
    min-width:190px;
  }
  .shell-logo-box {
    width:50px;
    height:50px;
    border-radius: var(--uol-radius-md);
  }
  .shell-logo-box img {
    width:38px;
    height:38px;
  }
  .shell-brand-copy strong {
    font-size: var(--uol-text-base);
    letter-spacing:-.02em;
  }
  .shell-brand-copy small {
    max-width:140px;
    font-size: var(--uol-text-xs);
    line-height:1.3;
  }
  .primary-nav {
    gap: var(--uol-space-1);
  }
  .primary-nav>a,.cortex-more-trigger {
    min-height: var(--uol-control-h);
    padding: var(--uol-space-1) var(--uol-space-2);
    border:0;
    border-radius: var(--uol-radius-sm);
    background:transparent;
    color:#5f5864;
    font-size: var(--uol-text-xs);
    font-weight:750;
  }
  .primary-nav>a:hover,.cortex-more-trigger:hover {
    background:var(--uol-canvas);
    color:var(--uol-purple);
  }
  .primary-nav>a.active {
    background:#eee7f4;
    color:var(--uol-purple);
  }
  .nav-icon {
    width:22px;
    height:22px;
    display:grid;
    place-items:center;
    border-radius: var(--uol-radius-sm);
    background:transparent;
    color:currentColor;
  }
  .nav-icon svg {
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .shell-utility {
    gap: var(--uol-space-2);
  }
  .command-trigger,.global-ay,.cxui-utility-link,.user-chip {
    min-height:42px;
    border-radius: var(--uol-radius-sm);
  }
  .command-trigger {
    min-width:116px;
    justify-content:space-between;
  }
  .command-trigger kbd {
    opacity:.62;
  }
  .global-ay {
    max-width:108px;
    padding-inline: var(--uol-space-2);
  }
  .cxui-utility-link {
    padding-inline: var(--uol-space-3);
    font-size: var(--uol-text-xs);
  }
  .cortex-more {
    position:relative;
    display:flex;
    /* The trigger keeps its own width. As a shrinkable row item squeezed to 46px it wrapped "•••"
       above "More", which made it 104px tall and, through the bar's `align-items: center`, made the
       whole top bar 125px tall on every route. */
    flex:none;
  }
  .cortex-more-trigger {
    display:flex;
    align-items:center;
    gap: var(--uol-space-2);
    white-space:nowrap;
    cursor:pointer;
  }
  .nav-more-dots {
    font-size: var(--uol-text-xs);
    letter-spacing:1px;
    color:var(--uol-purple);
  }
  .cortex-more-menu {
    position:absolute;
    z-index: var(--uol-z-drawer);
    top:calc(100% + 10px);
    left:0;
    width:280px;
    max-width:calc(100vw - var(--uol-space-4));
    padding: var(--uol-space-2);
    border:1px solid var(--uol-border);
    border-radius: var(--uol-radius-md);
    background: var(--uol-surface);
    box-shadow: var(--uol-shadow-lg);
  }
  /* Three groups, each with a quiet heading. The heading is aria-hidden because the group
     carries the same text as an accessible name, so a screen reader hears it once. */
  .cortex-more-group + .cortex-more-group {
    margin-top: var(--uol-space-2);
    padding-top: var(--uol-space-2);
    border-top:1px solid var(--uol-border);
  }
  .cortex-more-group-title {
    margin: 0 0 var(--uol-space-1);
    padding: 0 var(--uol-space-3);
    font-size: var(--uol-text-xs);
    font-weight: var(--uol-weight-semibold);
    letter-spacing: var(--uol-tracking-wide);
    text-transform:uppercase;
    color: var(--uol-muted);
  }
  .cortex-more-menu a {
    display:flex;
    flex-direction:column;
    gap: var(--uol-space-1);
    min-height: var(--uol-control-h);
    padding: var(--uol-space-2) var(--uol-space-3);
    border-radius: var(--uol-radius-sm);
    text-decoration:none;
    color:var(--uol-ink);
  }
  .cortex-more-menu a:hover,.cortex-more-menu a:focus-visible {
    background:var(--uol-canvas);
  }
  /* The tint alone was the only focus signal in the overflow menu, and `outline:0` removed the
     ring the rest of the platform uses — the same tint as hover, so a keyboard user could not
     tell where they were. The ring is inset here because the menu clips at its own edge. */
  .cortex-more-menu a:focus-visible {
    outline: 3px solid var(--uol-teal-30);
    outline-offset: -3px;
  }
  .cortex-more-menu a span {
    font-size: var(--uol-text-sm);
    font-weight: var(--uol-weight-semibold);
    color:var(--uol-purple);
  }
  .cortex-more-menu a small {
    font-size: var(--uol-text-xs);
    color:var(--uol-muted);
  }
  /* One context bar and one visual grammar across modules. */
  .cxui-workspace-bar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: var(--uol-space-4);
    margin: 0 auto var(--uol-space-4);
    padding: var(--uol-space-3) var(--uol-space-4);
    border:1px solid var(--uol-border);
    border-radius: var(--uol-radius-md);
    background:rgba(255,255,255,.94);
    box-shadow:var(--uol-shadow-md);
  }
  .cxui-workspace-bar>div:first-child {
    display:flex;
    align-items:center;
    gap: var(--uol-space-3);
    min-width:0;
  }
  .cxui-context-label {
    padding: var(--uol-space-1) var(--uol-space-2);
    border-radius: var(--uol-radius-sm);
    background:#eee7f4;
    color:var(--uol-purple);
    font-size: var(--uol-text-xs);
    font-weight:850;
    white-space:nowrap;
  }
  .cxui-workspace-bar strong {
    overflow:hidden;
    text-overflow:ellipsis;
    color:var(--uol-ink);
    font-size: var(--uol-text-xs);
    white-space:nowrap;
  }
  .cxui-context-meta {
    display:flex;
    align-items:center;
    gap: var(--uol-space-1);
    flex-wrap:wrap;
    justify-content:flex-end;
  }
  .cxui-context-meta>span {
    padding: var(--uol-space-1) var(--uol-space-2);
    border:1px solid var(--uol-border);
    border-radius: var(--uol-radius-pill);
    color:var(--uol-muted);
    font-size: var(--uol-text-xs);
    font-weight:750;
    white-space:nowrap;
  }
  .cxui-context-meta .cxui-live {
    color:#17663f;
    background:#edf8f2;
    border-color:#d8eee2;
  }
  .cxui-live i {
    display:inline-block;
    width:6px;
    height:6px;
    margin-right: var(--uol-space-1);
    border-radius:50%;
    background:#228b57;
  }
  .cortex-platform-workspace main {
    color:var(--uol-ink);
  }
  .cortex-platform-workspace :is(.card,.platform-card,.simple-card,.home-panel,.module-hero-card) {
    border-color:var(--uol-border);
    box-shadow:var(--uol-shadow-md);
  }
  .cortex-platform-workspace :is(.card,.platform-card,.simple-card) :is(h2,h3) {
    letter-spacing:-.015em;
  }
  .cortex-platform-workspace :is(.tabs,.mi-tabs,.eec-tabs,.module-tabs) {
    scrollbar-width:thin;
  }
  .cxui-tab-control {
    min-height:44px;
  }
  .cxui-data-surface {
    border:1px solid var(--uol-border);
    border-radius: var(--uol-radius-sm);
    scrollbar-gutter:stable;
  }
  .cxui-data-surface:focus-visible {
    outline:3px solid rgba(140,99,183,.22);
    outline-offset:2px;
  }
  .cortex-platform-workspace table {
    font-variant-numeric:tabular-nums;
  }
  .cortex-platform-workspace thead th {
    position:sticky;
    top:0;
    z-index: var(--uol-z-raised);
    background:#f4f0f6;
    color:#4d3b59;
    font-size: var(--uol-text-xs);
    letter-spacing:.035em;
  }
  .cortex-platform-workspace tbody tr:hover {
    background:#faf8fb;
  }
  .cortex-platform-workspace :is(input,select,textarea,button):focus-visible {
    outline:3px solid rgba(140,99,183,.24);
    outline-offset:2px;
  }
  /* Less card weight and stronger attention hierarchy on Home. */
  .cortex-home {
    max-width:1540px;
  }
  .cx-command-hero {
    border-color:#dcd2e4;
    box-shadow:0 18px 48px rgba(42,24,57,.08);
  }
  .cx-hero-copy>p {
    max-width:680px;
    font-size: var(--uol-text-xs);
    line-height:1.65;
  }
  .cortex-ask-action {
    border-color:#d8c7e6;
    background:#f8f3fb;
    color:var(--uol-purple);
  }
  .home-module-grid {
    grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  }
  .home-module-card {
    min-height:104px;
    padding: var(--uol-space-3);
    border-radius: var(--uol-radius-sm);
    box-shadow:none;
  }
  .home-module-card:hover {
    box-shadow:var(--uol-shadow-md);
    transform:translateY(-2px);
  }
  .home-module-icon {
    background:#f2edf5;
  }
  .home-panel {
    box-shadow:none;
  }
  .home-list>a {
    min-height:48px;
    align-items:center;
  }
  .home-mini-kpi {
    box-shadow:none;
  }
  /* Shared loading, empty and state semantics. */
  .home-empty,.command-empty,.queue-empty,.empty {
    border:1px dashed #d9d0df;
    background:#faf8fb;
    color:var(--uol-muted);
  }
  [aria-busy="true"] {
    cursor:progress;
  }
  .platform-btn:disabled,.btn:disabled {
    opacity:.58;
    cursor:not-allowed;
  }
  .pill,.status-pill,.qa-chip {
    font-weight:800;
    letter-spacing:.015em;
  }
  @media(max-width: 1024px) {
    .shell-brand {
      min-width:150px;
    }
    .shell-brand-copy small {
      display:none;
    }
    .command-trigger {
      min-width:44px;
    }
    .command-trigger strong,.command-trigger kbd {
      display:none;
    }
    .global-ay {
      max-width:100px;
    }
    .cxui-utility-link {
      padding-inline: var(--uol-space-2);
    }
  }
  @media(max-width: 1024px) {
    .cortex-more {
      display:block;
    }
    .cortex-more-menu {
      position:static;
      width:100%;
      margin-top: var(--uol-space-1);
      box-shadow:none;
    }
    .cortex-more-trigger {
      width:100%;
      justify-content:flex-start;
    }
    .cxui-workspace-bar {
      align-items:flex-start;
      flex-direction:column;
    }
    .cxui-context-meta {
      justify-content:flex-start;
    }
  }
  @media(max-width: 768px) {
    .cxui-workspace-bar {
      margin-inline:0;
      padding: var(--uol-space-3);
    }
    .cxui-workspace-bar>div:first-child {
      align-items:flex-start;
      flex-direction:column;
      gap: var(--uol-space-1);
    }
    .cxui-workspace-bar strong {
      white-space:normal;
    }
    .home-module-grid {
      grid-template-columns:1fr;
    }
    .cx-hero-actions {
      display:grid;
      grid-template-columns:1fr 1fr;
    }
    .cx-hero-actions>* {
      justify-content:center;
    }
  }
  @media(max-width: 480px) {
    .cx-hero-actions {
      grid-template-columns:1fr;
    }
    .cxui-context-meta>span:first-child {
      display:none;
    }
  }
  @media(prefers-reduced-motion:reduce) {
    .home-module-card {
      transition:none;
    }
  }
  /* v5.5.0 universal operating surfaces */
  .cortex-module-status {
    max-width:1540px;
    margin: var(--uol-space-2) auto 0;
    padding: 0 var(--uol-space-5);
    display:flex;
    align-items:center;
    gap: var(--uol-space-4);
    color:#6f6774;
    font-size: var(--uol-text-xs);
    font-weight:700;
  }
  .cortex-module-status span {
    display:inline-flex;
    align-items:center;
    gap: var(--uol-space-2);
    min-height:28px;
  }
  .cortex-module-status span+span {
    padding-left: var(--uol-space-4);
    border-left:1px solid var(--uol-border);
  }
  .cortex-module-status i {
    width:8px;
    height:8px;
    border-radius:50%;
    background:#197a4d;
    box-shadow:0 0 0 4px rgba(31,122,78,.1);
  }
  .cortex-module-status .attention i {
    background:#a76400;
    box-shadow:0 0 0 4px rgba(167,99,0,.1);
  }
  .cortex-grid-toolbar {
    display:flex;
    align-items:center;
    gap: var(--uol-space-2);
    flex-wrap:wrap;
    margin: 0 0 var(--uol-space-2);
    padding: var(--uol-space-2);
    border:1px solid var(--uol-border);
    border-radius: var(--uol-radius-sm);
    background:#fff;
  }
  .cortex-grid-toolbar input,.cortex-grid-toolbar select,.cortex-grid-toolbar button {
    min-height: var(--uol-control-h-sm);
    border:1px solid var(--uol-border);
    border-radius: var(--uol-radius-sm);
    background:#fff;
    color:var(--uol-ink);
    font:inherit;
    font-size: var(--uol-text-xs);
    font-weight:700;
    padding: 0 var(--uol-space-2);
  }
  .cortex-grid-toolbar button {
    cursor:pointer;
  }
  .cortex-grid-toolbar button:hover {
    border-color:#9e7eb6;
    color:var(--uol-purple);
  }
  .cortex-grid-search {
    flex:1;
    min-width:180px;
  }
  .cortex-grid-search input {
    width:100%;
  }
  .cortex-grid-toolbar output {
    margin-left:auto;
    color:var(--uol-muted);
    font-size: var(--uol-text-xs);
    white-space:nowrap;
  }
  .cortex-grid-columns {
    position:relative;
  }
  .cortex-grid-column-menu {
    position:absolute;
    z-index: var(--uol-z-overlay);
    top:calc(100% + 6px);
    right:0;
    width:240px;
    max-height:320px;
    overflow:auto;
    padding: var(--uol-space-2);
    border:1px solid var(--uol-border);
    border-radius: var(--uol-radius-sm);
    background:#fff;
    box-shadow:0 18px 40px rgba(38,20,52,.15);
  }
  .cortex-grid-column-menu label {
    display:flex;
    align-items:center;
    gap: var(--uol-space-2);
    min-height:34px;
    padding: var(--uol-space-1) var(--uol-space-2);
    border-radius: var(--uol-radius-sm);
    font-size: var(--uol-text-xs);
  }
  .cortex-grid-column-menu label:hover {
    background:var(--uol-canvas);
  }
  .cortex-grid-pager {
    display:flex;
    gap: var(--uol-space-1);
  }
  .cortex-grid-pager button {
    width:34px;
    padding:0;
  }
  .cortex-grid-surface {
    position:relative;
    overflow:auto;
    max-width:100%;
    border-radius: var(--uol-radius-sm);
  }
  .cortex-grid-surface table {
    width:100%;
  }
  .cortex-grid-surface th {
    position:sticky;
    top:0;
    z-index: var(--uol-z-raised);
    cursor:pointer;
  }
  .cortex-sortable:after {
    content:'↕';
    margin-left: var(--uol-space-1);
    font-size: var(--uol-text-xs);
    opacity:.42;
  }
  .cortex-grid-surface[data-density="compact"] th,
  .cortex-grid-surface[data-density="compact"] td {
    padding-top: var(--uol-space-1);
    padding-bottom: var(--uol-space-1);
    font-size: var(--uol-text-xs);
  }
  .cortex-grid-surface tbody tr {
    cursor:pointer;
  }
  .cortex-grid-surface tbody tr:focus-within,.cortex-grid-surface tbody tr:hover {
    background:#f7f3fa;
  }
  .cortex-grid-surface tbody tr.cortex-row-selected {
    background:#f1e8f8;
  }
  .cortex-grid-surface input[data-grid-row-select],
  .cortex-grid-surface input[data-grid-select-all] {
    width:17px;
    height:17px;
    margin: 0 var(--uol-space-2) 0 0;
    vertical-align:middle;
    accent-color:var(--uol-purple);
  }
  .cortex-grid-toolbar [data-grid-export-selected]:disabled {
    cursor:default;
    opacity:.48;
  }
  .cortex-grid-toolbar [data-grid-selected] {
    margin-left:0;
    padding: var(--uol-space-1) var(--uol-space-2);
    border-radius: var(--uol-radius-pill);
    background:var(--uol-canvas);
    color:var(--uol-purple);
    font-weight:800;
  }
  .cortex-column-hidden {
    display:none;
  }
  .cortex-feedback-toast {
    position:fixed;
    z-index: var(--uol-z-toast);
    left:50%;
    bottom:24px;
    transform:translateX(-50%);
    display:flex;
    align-items:center;
    gap: var(--uol-space-2);
    max-width:min(520px,calc(100vw - 24px));
    padding: var(--uol-space-3) var(--uol-space-4);
    border:1px solid #d8cbe4;
    border-radius: var(--uol-radius-sm);
    background:#fff;
    color:#342c38;
    box-shadow:0 20px 50px rgba(37,18,49,.2);
    font-size: var(--uol-text-xs);
    font-weight:750;
  }
  .cortex-feedback-toast[hidden] {
    display:none;
  }
  .cortex-feedback-toast i {
    width:9px;
    height:9px;
    border-radius:50%;
    background:#6d4b82;
  }
  .cortex-feedback-toast[data-state="success"] i {
    background:#197a4d;
  }
  .cortex-feedback-toast[data-state="warning"] i {
    background:#a76400;
  }
  .cortex-feedback-toast[data-state="error"] {
    border-color:#efb8b8;
  }
  .cortex-feedback-toast[data-state="error"] i {
    background:#c43c3c;
  }
  .cortex-drawer {
    position:fixed;
    inset:0;
    z-index: var(--uol-z-drawer);
  }
  .cortex-drawer[hidden] {
    display:none;
  }
  .cortex-drawer-backdrop {
    position:absolute;
    inset:0;
    border:0;
    background:rgba(30,18,37,.32);
    backdrop-filter:blur(2px);
  }
  .cortex-drawer-panel {
    position:absolute;
    right:0;
    top:0;
    height:100%;
    width:min(470px,94vw);
    display:flex;
    flex-direction:column;
    background:#fff;
    box-shadow:-24px 0 60px rgba(30,18,37,.2);
    animation:cortexDrawerIn .18s ease-out;
  }
  .cortex-drawer-panel header {
    display:flex;
    justify-content:space-between;
    gap: var(--uol-space-4);
    align-items:center;
    padding: var(--uol-space-4) var(--uol-space-5);
    border-bottom:1px solid var(--uol-border);
  }
  .cortex-drawer-panel header span {
    display:block;
    color:var(--uol-muted);
    font-size: var(--uol-text-xs);
    text-transform:uppercase;
    letter-spacing:.1em;
    font-weight:800;
  }
  .cortex-drawer-panel h2 {
    margin: var(--uol-space-1) 0 0;
    color:var(--uol-purple);
    font-size: var(--uol-text-xl);
  }
  .cortex-drawer-panel header button {
    width:38px;
    height: var(--uol-control-h-sm);
    border:1px solid var(--uol-border);
    border-radius: var(--uol-radius-sm);
    background:#fff;
    font-size: var(--uol-text-lg);
    cursor:pointer;
  }
  .cortex-drawer-content {
    padding: var(--uol-space-4) var(--uol-space-5) var(--uol-space-5);
    overflow:auto;
  }
  .cortex-drawer-content dl {
    margin:0;
  }
  .cortex-drawer-content dl div {
    padding: var(--uol-space-3) 0;
    border-bottom:1px solid #eee9f1;
  }
  .cortex-drawer-content dt {
    color:var(--uol-muted);
    font-size: var(--uol-text-xs);
    text-transform:uppercase;
    letter-spacing:.06em;
    font-weight:800;
  }
  .cortex-drawer-content dd {
    margin: var(--uol-space-1) 0 0;
    color:var(--uol-ink);
    font-size: var(--uol-text-xs);
    line-height:1.5;
  }
  .cortex-drawer-content footer {
    display:flex;
    gap: var(--uol-space-2);
    flex-wrap:wrap;
    margin-top: var(--uol-space-4);
  }
  .cortex-drawer-open {
    overflow:hidden;
  }
  @keyframes cortexDrawerIn {
    from {
      transform:translateX(24px);
      opacity:.7;
    }
    to {
      transform:none;
      opacity:1;
    }
  }
  .home-attention-feed {
    display:grid;
    gap: var(--uol-space-1);
    margin-top: var(--uol-space-3);
    padding-top: var(--uol-space-3);
    border-top:1px solid rgba(255,255,255,.17);
  }
  .home-attention-feed a {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: var(--uol-space-3);
    padding: var(--uol-space-2) var(--uol-space-2);
    border-radius: var(--uol-radius-sm);
    background:rgba(255,255,255,.08);
    color:inherit;
    text-decoration:none;
  }
  .home-attention-feed a:hover {
    background:rgba(255,255,255,.14);
  }
  .home-attention-feed span {
    display:grid;
    gap: var(--uol-space-1);
  }
  .home-attention-feed b {
    font-size: var(--uol-text-xs);
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#dcc9e7;
  }
  .home-attention-feed strong {
    font-size: var(--uol-text-xs);
  }
  .home-attention-feed small {
    font-size: var(--uol-text-xs);
    color:#d9cde0;
  }
  .home-attention-feed i {
    font-style:normal;
  }
  @media(max-width: 1024px) {
    .cortex-module-status {
      padding: 0 var(--uol-space-4);
      overflow:auto;
      white-space:nowrap;
    }
    .cortex-grid-toolbar {
      position:sticky;
      left:0;
    }
    .cortex-grid-view,[data-grid-save] {
      display:none;
    }
    .cortex-grid-toolbar input,.cortex-grid-toolbar select,.cortex-grid-toolbar button {
      min-height:44px;
    }
    .cortex-grid-toolbar output {
      width:auto;
      margin:0;
    }
    .cortex-grid-toolbar [data-grid-count] {
      width:100%;
    }
    .cortex-drawer-panel {
      width:min(520px,100vw);
    }
  }
  @media(max-width: 768px) {
    .cortex-module-status span:nth-child(2) {
      display:none;
    }
    .cortex-grid-toolbar {
      gap: var(--uol-space-1);
    }
    .cortex-grid-search {
      flex-basis:100%;
    }
    .cortex-grid-toolbar button,.cortex-grid-toolbar select {
      min-height: var(--uol-control-h-sm);
    }
    .cortex-feedback-toast {
      bottom:12px;
    }
  }
  /* v5.5.0 navigation, table and drawer consistency */
  .primary-nav>a,
  .cortex-more-trigger,
  .command-trigger,
  .global-ay,
  .cxui-utility-link,
  .user-chip {
    min-height:44px;
  }
  .cortex-more-menu.is-portal {
    position:fixed;
    margin:0;
    width:260px;
    max-height:min(70vh,520px);
    overflow:auto;
    box-shadow:0 24px 54px rgba(38,20,52,.16);
  }
  .cortex-grid-toolbar input,.cortex-grid-toolbar select,.cortex-grid-toolbar button {
    min-height:44px;
  }
  .cortex-drawer-panel header button {
    width:44px;
    height:44px;
  }
  .cortex-module-status {
    flex-wrap:wrap;
    min-height:44px;
    padding-block: var(--uol-space-2);
  }
  @media(min-width: 1025px) and (max-width: 1024px) {
    .command-trigger {
      min-width:92px;
    }
    .command-trigger strong {
      display:inline;
    }
    .command-trigger kbd {
      display:none;
    }
  }
  @media(max-width: 768px) {
    .cortex-grid-toolbar button,.cortex-grid-toolbar select {
      min-height:44px;
    }
  }
}


/* ---- site/assets/cortex-modules.css ---- */
@layer components {
  [hidden] {
    display:none;
  }
  .sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin: var(--uol-space-1);
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  :where(button,.btn,.platform-btn,.tab,.utility-link,.mini-btn,.eec-tabs button,.mi-tabs button,.ap-tabs button,.cx-hero-action) {
    min-height:44px;
  }
  :where(button,a,input,select,textarea):focus-visible {
    outline:3px solid color-mix(in srgb,var(--uol-purple-80) 70%,white);
    outline-offset:2px;
  }
  .operational-toolbar,.saved-view-bar,.dataset-pagination,.cortex-group-nav {
    display:flex;
    align-items:center;
    gap: var(--uol-space-2);
    flex-wrap:wrap;
    padding: var(--uol-space-3) 0;
  }
  .operational-toolbar input,
  .operational-toolbar select,
  .saved-view-bar input,
  .saved-view-bar select {
    min-height:44px;
    border:1px solid #d7cce2;
    border-radius: var(--uol-radius-sm);
    padding: var(--uol-space-2) var(--uol-space-2);
    background:#fff;
  }
  .toolbar-divider {
    width:1px;
    height:32px;
    background:#ded6e7;
  }
  .dataset-pagination {
    justify-content:space-between;
    color:#6d6674;
    font-size: var(--uol-text-xs);
  }
  .record-actions {
    display:flex;
    gap: var(--uol-space-1);
    align-items:center;
    flex-wrap:wrap;
  }
  .record-drawer-layer {
    position:fixed;
    z-index: var(--uol-z-drawer);
    inset:0;
  }
  .record-drawer-backdrop {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border:0;
    background:rgba(26,14,36,.42);
    cursor:pointer;
  }
  .record-drawer {
    position:absolute;
    z-index: var(--uol-z-raised);
    inset:0 0 0 auto;
    width:min(520px,100vw);
    overflow:auto;
    background:#fff;
    box-shadow:-20px 0 50px rgba(39,20,55,.22);
    padding: var(--uol-space-5);
    border-left:1px solid #ded6e7;
  }
  .record-drawer-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap: var(--uol-space-4);
    margin-bottom: var(--uol-space-5);
  }
  .record-drawer-head h2 {
    margin: var(--uol-space-1) 0 0;
  }
  .record-drawer-head button {
    min-height:44px;
    min-width:44px;
  }
  .record-detail-list {
    display:grid;
    gap:0;
    margin: 0 0 var(--uol-space-5);
  }
  .record-detail-list>div {
    display:grid;
    grid-template-columns:minmax(110px,.7fr) minmax(0,1.3fr);
    gap: var(--uol-space-4);
    padding: var(--uol-space-3) 0;
    border-bottom:1px solid #eee8f2;
  }
  .record-detail-list dt {
    font-weight:800;
    color:#5b2a86;
  }
  .record-detail-list dd {
    margin:0;
    overflow-wrap:anywhere;
  }
  html.record-drawer-open {
    overflow:hidden;
  }
  .queue-summary {
    display:grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--uol-space-3);
    margin-bottom: var(--uol-space-3);
  }
  .queue-summary>div {
    background:#fff;
    border:1px solid #ded6e7;
    border-radius: var(--uol-radius-md);
    padding: var(--uol-space-4) var(--uol-space-4);
    box-shadow:0 6px 18px rgba(54,23,79,.06);
  }
  .queue-summary span {
    display:block;
    text-transform:uppercase;
    letter-spacing:.07em;
    font-size: var(--uol-text-xs);
    font-weight:800;
    color:#6d6674;
  }
  .queue-summary strong {
    display:block;
    font-size: var(--uol-text-2xl);
    color:#5b2a86;
    margin-top: var(--uol-space-1);
  }
  .queue-metadata {
    padding: var(--uol-space-2) var(--uol-space-3);
    margin-bottom: var(--uol-space-3);
    border-radius: var(--uol-radius-sm);
    background:#f4eef9;
    color:#5b2a86;
    font-size: var(--uol-text-xs);
    font-weight:700;
  }
  .queue-toolbar label {
    display:grid;
    gap: var(--uol-space-1);
    font-size: var(--uol-text-xs);
    font-weight:750;
    color:#655d6b;
  }
  .queue-toolbar input,.queue-toolbar select {
    min-height:44px;
    min-width:180px;
  }
  .queue-table td strong,.queue-table td small {
    display:block;
  }
  .queue-table td small {
    color:#746d79;
    margin-top: var(--uol-space-1);
  }
  .queue-table tr.queue-overdue {
    box-shadow:inset 4px 0 #b42318;
  }
  .queue-skeleton {
    display:grid;
    gap: var(--uol-space-2);
    padding: var(--uol-space-4);
  }
  .queue-skeleton i {
    display:block;
    height:48px;
    border-radius: var(--uol-radius-sm);
    background:linear-gradient(90deg,#f1edf5 20%,#faf8fc 50%,#f1edf5 80%);
    background-size:220% 100%;
    animation:cx-shimmer 1.4s linear infinite;
  }
  @keyframes cx-shimmer {
    to {
      background-position:-220% 0;
    }
  }
  .cx-command-hero {
    align-items:stretch;
  }
  .cx-command-hero .cx-hero-copy {
    padding-block: var(--uol-space-6);
  }
  .home-decision-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap: var(--uol-space-2);
  }
  .home-decision-grid .home-mini-kpi {
    min-height:106px;
  }
  .home-decision-grid .home-mini-kpi.coverage {
    grid-column:1/-1;
    min-height:82px;
  }
  .home-decision-grid .home-mini-kpi.exception strong {
    color:#b42318;
  }
  .cx-operational-pulse {
    display:flex;
    flex-direction:column;
    justify-content:space-between;
  }
  .cx-source-note {
    padding: var(--uol-space-2) var(--uol-space-3);
    border-radius: var(--uol-radius-sm);
    background:#f5f0fa;
  }
  .cortex-group-nav {
    margin: var(--uol-space-3) 0;
    border-bottom:1px solid #ded6e7;
  }
  .cortex-group-nav button,.cortex-group-nav a {
    border:1px solid #d8cbe4;
    background:#fff;
    color:#5b2a86;
    border-radius: var(--uol-radius-sm);
    padding: var(--uol-space-2) var(--uol-space-3);
    font-weight:800;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
  }
  .cortex-group-nav .active {
    background:#5b2a86;
    color:#fff;
    border-color:#5b2a86;
  }
  .cortex-group-nav .studio-action {
    margin-left:auto;
    background:#f1e7fb;
    border-color:#a57ac7;
  }
  .mi-readiness {
    display:flex;
    justify-content:space-between;
    gap: var(--uol-space-4);
    align-items:center;
    padding: var(--uol-space-3) var(--uol-space-3);
    border:1px solid #e6d8ef;
    border-radius: var(--uol-radius-sm);
    background:#faf7fc;
    margin: var(--uol-space-3) 0;
    color:#5a5360;
  }
  .mi-readiness.attention {
    border-color:#f0c36a;
    background:#fff9e9;
    color:#775000;
  }
  .mi-tabs.is-contextual {
    margin-top: var(--uol-space-2);
  }
  .mi-tabs.is-contextual button[hidden] {
    display:none;
  }
  body.cortex-budget-unified .container>.runtime-support,
  body.cortex-budget-unified .container>.upload-panel,
  body.cortex-budget-unified .container>.controls,
  body.cortex-budget-unified .container>#kpiGrid,
  body.cortex-budget-unified .container>#tabs,
  body.cortex-budget-unified .container>.tab-panel,
  body.cortex-budget-unified .container>.module-workspace.cortex-legacy-workspace {
    display:none;
  }
  body.cortex-budget-unified .module-sidebar {
    display:none;
  }
  body.cortex-budget-unified .module-workspace {
    grid-template-columns:1fr;
  }
  body.cortex-budget-unified #budget {
    display:block;
  }
  .budget-group-intro {
    padding: var(--uol-space-3) var(--uol-space-4);
    background:#f7f2fb;
    border:1px solid #e3d7ec;
    border-radius: var(--uol-radius-sm);
    margin-bottom: var(--uol-space-3);
    color:#5b2a86;
    font-weight:700;
  }
  .eec-tabs.is-contextual button[hidden] {
    display:none;
  }
  .governance-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap: var(--uol-space-3);
  }
  .governance-card {
    border:1px solid #ded6e7;
    border-radius: var(--uol-radius-sm);
    padding: var(--uol-space-3);
  }
  .governance-card.attention {
    border-color:#e6a34a;
    background:#fffaf0;
  }
  .governance-card strong,.governance-card span,.governance-card small {
    display:block;
  }
  .governance-card span {
    margin: var(--uol-space-2) 0;
  }
  .permission-preview {
    padding: var(--uol-space-3);
    border-radius: var(--uol-radius-sm);
    background:#f6f1f9;
    margin-top: var(--uol-space-3);
  }
  .release-history-details {
    margin-top: var(--uol-space-3);
    border:1px solid #ded6e7;
    border-radius: var(--uol-radius-md);
    background:#fff;
  }
  .release-history-details>summary {
    cursor:pointer;
    padding: var(--uol-space-4) var(--uol-space-4);
    font-weight:850;
    color:#5b2a86;
    min-height:52px;
  }
  .release-history-details>.simple-card {
    margin:0;
    border:0;
    box-shadow:none;
  }
  .current-release-banner {
    border-left:5px solid #14804a;
  }
  .kh-lifecycle {
    display:grid;
    gap: var(--uol-space-1);
    margin: var(--uol-space-2) 0;
    padding: var(--uol-space-2) var(--uol-space-2);
    border-radius: var(--uol-radius-sm);
    background:#eef9f2;
    color:#17633c;
  }
  .kh-lifecycle span {
    font-size: var(--uol-text-xs);
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.06em;
  }
  .kh-lifecycle small {
    line-height:1.35;
  }
  @media(max-width: 1024px) {
    .queue-summary {
      grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .home-decision-grid {
      grid-template-columns:1fr;
    }
    .home-decision-grid .home-mini-kpi.coverage {
      grid-column:auto;
    }
    .cortex-group-nav .studio-action {
      margin-left:0;
    }
    .record-detail-list>div {
      grid-template-columns:1fr;
      gap: var(--uol-space-1);
    }
    .operational-toolbar>* {
      flex:1 1 160px;
    }
  }
  @media(max-width: 768px) {
    .queue-summary {
      grid-template-columns:1fr 1fr;
    }
    .queue-toolbar label,.queue-toolbar input,.queue-toolbar select {
      width:100%;
      min-width:0;
    }
    .dataset-pagination span {
      order:3;
      width:100%;
      text-align:center;
    }
  }
  @media(prefers-reduced-motion:reduce) {
    .queue-skeleton i {
      animation:none;
    }
  }
  /* Multi-column grids, restored from the laptop breakpoint up. Below this width every
     one of these needs more horizontal room than the viewport has, so the base rule above
     keeps them in a single column. See scripts/mobile-first-grids.mjs. */
  @media (min-width: 769px) {
    .queue-summary {
      grid-template-columns: repeat(4,minmax(130px,1fr));
    }
  }
}


/* ---- site/assets/cortex-operations.css ---- */
@layer components {
  .cortex-sync-control {
    display:flex;
    align-items:center;
    gap: var(--uol-space-2);
    flex-wrap:wrap;
    max-width:460px;
  }
  .cortex-sync-control span {
    font-weight: var(--uol-weight-semibold);
    font-size: var(--uol-text-xs);
    line-height: var(--uol-leading-snug);
    font-family: var(--uol-font-sans);
    color:rgba(255,255,255,.82);
  }
  .simple-page>.cortex-sync-control,
  .container>.cortex-sync-control,
  .mi-container>.cortex-sync-control,
  .eec-container>.cortex-sync-control {
    margin: 0 0 var(--uol-space-3);
    padding: var(--uol-space-3) var(--uol-space-3);
    border:1px solid #e4dceb;
    border-radius: var(--uol-radius-md);
    background:#fff;
  }
  .simple-page>.cortex-sync-control span,
  .container>.cortex-sync-control span,
  .mi-container>.cortex-sync-control span,
  .eec-container>.cortex-sync-control span {
    color:#655b70;
  }
  @media(max-width: 768px) {
    .cortex-sync-control {
      width:100%;
      align-items:stretch;
      flex-direction:column;
    }
    .cortex-sync-control .platform-btn {
      width:100%;
      min-height:44px;
    }
  }
}


/* ---- site/assets/cortex-integrations.css ---- */
@layer components {
  .cx542-integrations {
    margin-top: var(--uol-space-3);
    scroll-margin-top:100px;
  }
  .cx542-section-head {
    align-items:flex-start;
  }
  .cx542-eyebrow {
    display:block;
    margin-bottom: var(--uol-space-1);
    color:#7b5b91;
    font-size: var(--uol-text-xs);
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
  }
  .cx542-section-head h2,.cx542-exec-heading h2 {
    margin: 0 0 var(--uol-space-1);
    color:var(--uol-ink);
  }
  .cx542-section-head p,.cx542-exec-heading p {
    margin:0;
    color:var(--uol-muted);
  }
  .cx542-integration-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap: var(--uol-space-4);
    margin-top: var(--uol-space-4);
  }
  .cx542-integration-card {
    padding: var(--uol-space-4);
    border:1px solid var(--uol-border);
    border-radius: var(--uol-radius-md);
    background:linear-gradient(180deg,#fff,#fcfafd);
  }
  .cx542-card-head {
    display:flex;
    gap: var(--uol-space-3);
    align-items:flex-start;
  }
  .cx542-card-head h3 {
    margin: var(--uol-space-1) 0 var(--uol-space-1);
    color:var(--uol-ink);
  }
  .cx542-card-head p {
    margin:0;
    color:var(--uol-muted);
    font-size: var(--uol-text-xs);
    line-height:1.55;
  }
  .cx542-source-mark {
    flex:0 0 44px;
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius: var(--uol-radius-sm);
    background:#1473e6;
    color:#fff;
    font-weight:900;
    letter-spacing:-.04em;
  }
  .cx542-source-mark.knowledge {
    background:linear-gradient(145deg,#623f99,#4a2b6f);
  }
  .cx542-connection-state {
    display:flex;
    align-items:center;
    gap: var(--uol-space-3);
    margin: var(--uol-space-4) 0 var(--uol-space-3);
    padding: var(--uol-space-3) var(--uol-space-3);
    border-radius: var(--uol-radius-sm);
    background:#f7f4f9;
    border:1px solid #e8e0ed;
  }
  .cx542-connection-state>i {
    width:9px;
    height:9px;
    border-radius:50%;
    background:#a79dad;
    box-shadow:0 0 0 4px rgba(120,110,128,.08);
  }
  .cx542-connection-state span {
    display:flex;
    flex-direction:column;
    gap: var(--uol-space-1);
  }
  .cx542-connection-state strong {
    font-size: var(--uol-text-xs);
    color:var(--uol-ink);
  }
  .cx542-connection-state small {
    font-size: var(--uol-text-xs);
    color:var(--uol-muted);
  }
  .cx542-connection-state.connected {
    background:#f1faf5;
    border-color:#cfe9da;
  }
  .cx542-connection-state.connected>i {
    background:var(--uol-ink-on-green);
    box-shadow:0 0 0 4px rgba(24,121,78,.1);
  }
  .cx542-connection-state.attention {
    background:#fff8ed;
    border-color:#f0dcc0;
  }
  .cx542-connection-state.attention>i {
    background:var(--uol-ink-on-orange);
    box-shadow:0 0 0 4px rgba(161,92,8,.1);
  }
  .cx542-integration-metrics {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap: var(--uol-space-2);
  }
  .cx542-integration-metrics span,.cx542-mini-metrics span {
    min-width:0;
    padding: var(--uol-space-2);
    border-radius: var(--uol-radius-sm);
    background:#f7f4f9;
  }
  .cx542-integration-metrics small,.cx542-mini-metrics small {
    display:block;
    margin-bottom: var(--uol-space-1);
    color:var(--uol-muted);
    font-size: var(--uol-text-xs);
    text-transform:uppercase;
    letter-spacing:.05em;
    font-weight:800;
  }
  .cx542-integration-metrics strong,.cx542-mini-metrics strong {
    display:block;
    overflow:hidden;
    color:var(--uol-ink);
    font-size: var(--uol-text-xs);
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .cx542-policy-note {
    min-height:37px;
    margin: var(--uol-space-3) 0;
    color:var(--uol-muted);
    font-size: var(--uol-text-xs);
    line-height:1.55;
  }
  .cx542-progress {
    display:block;
    width:100%;
    height:7px;
    margin: var(--uol-space-3) 0;
    border:0;
    border-radius: var(--uol-radius-pill);
    overflow:hidden;
    background:#eee8f2;
  }
  .cx542-progress::-webkit-progress-bar {
    background:#eee8f2;
  }
  .cx542-progress::-webkit-progress-value {
    background:linear-gradient(90deg,#623f99,#9b75ba);
  }
  .cx542-progress::-moz-progress-bar {
    background:linear-gradient(90deg,#623f99,#9b75ba);
  }
  .cx542-action-row {
    display:flex;
    align-items:center;
    gap: var(--uol-space-2);
    flex-wrap:wrap;
  }
  .cx542-action-row .platform-btn {
    min-height:44px;
  }
  .cx542-text-action {
    min-height:44px;
    padding: var(--uol-space-2) var(--uol-space-2);
    border:0;
    background:transparent;
    color:var(--uol-purple);
    font-weight:800;
    cursor:pointer;
  }
  .cx542-text-action.danger {
    color:#a33838;
  }
  .cx542-inline-result {
    display:flex;
    flex-direction:column;
    gap: var(--uol-space-1);
    margin-top: var(--uol-space-3);
    color:var(--uol-muted);
    font-size: var(--uol-text-xs);
    line-height:1.45;
  }
  .cx542-inline-result:empty {
    display:none;
  }
  .cx542-executive-layer {
    margin-bottom: var(--uol-space-4);
  }
  .cx542-exec-heading {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap: var(--uol-space-4);
    margin: var(--uol-space-1) 0 var(--uol-space-3);
  }
  .cx542-decision-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap: var(--uol-space-3);
  }
  .cx542-decision {
    position:relative;
    min-height:126px;
    padding: var(--uol-space-4);
    border:1px solid var(--uol-border);
    border-radius: var(--uol-radius-md);
    background:#fff;
    color:var(--uol-ink);
    text-decoration:none;
    box-shadow:0 8px 24px rgba(49,30,62,.045);
  }
  .cx542-decision>span {
    display:block;
    color:var(--uol-muted);
    font-size: var(--uol-text-xs);
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.06em;
  }
  .cx542-decision>strong {
    display:block;
    margin: var(--uol-space-2) 0 var(--uol-space-1);
    color:var(--uol-purple);
    font-size: var(--uol-text-2xl);
  }
  .cx542-decision>small {
    display:block;
    padding-right: var(--uol-space-4);
    color:var(--uol-muted);
    font-size: var(--uol-text-xs);
  }
  .cx542-decision>i {
    position:absolute;
    right:13px;
    bottom:13px;
    color:#8e719f;
    font-style:normal;
  }
  .cx542-decision.critical {
    border-color:#e6c7cb;
    background:#fffafb;
  }
  .cx542-decision.critical>strong {
    color:#a83845;
  }
  .cx542-decision.attention {
    border-color:#eedcc2;
    background:#fffcf6;
  }
  .cx542-decision.healthy {
    border-color:#cee5d7;
    background:#fbfefc;
  }
  .cx542-exec-columns {
    display:grid;
    grid-template-columns:1.08fr .92fr;
    gap: var(--uol-space-3);
    margin-top: var(--uol-space-3);
  }
  .cx542-exec-card {
    padding: var(--uol-space-4);
    border:1px solid var(--uol-border);
    border-radius: var(--uol-radius-md);
    background:#fff;
    box-shadow:0 8px 24px rgba(49,30,62,.045);
  }
  .cx542-exec-card h3 {
    margin: var(--uol-space-1) 0 var(--uol-space-2);
    color:var(--uol-ink);
  }
  .cx542-exec-card>p {
    color:var(--uol-muted);
    font-size: var(--uol-text-xs);
    line-height:1.55;
  }
  .cx542-card-title-row {
    display:flex;
    justify-content:space-between;
    gap: var(--uol-space-3);
  }
  .cx542-governance {
    height:fit-content;
    padding: var(--uol-space-1) var(--uol-space-2);
    border-radius: var(--uol-radius-pill);
    font-size: var(--uol-text-xs);
    font-weight:850;
  }
  .cx542-governance.pass {
    background:#eaf7ef;
    color:var(--uol-ink-on-green);
  }
  .cx542-governance.attention {
    background:#fff1df;
    color:var(--uol-ink-on-orange);
  }
  .cx542-admissions-number {
    display:flex;
    align-items:baseline;
    gap: var(--uol-space-2);
    margin: var(--uol-space-4) 0;
  }
  .cx542-admissions-number strong {
    color:var(--uol-purple);
    font-size: var(--uol-text-3xl);
    letter-spacing:-.04em;
  }
  .cx542-admissions-number span {
    color:var(--uol-muted);
    font-size: var(--uol-text-xs);
  }
  .cx542-mini-metrics {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap: var(--uol-space-2);
  }
  .cx542-source-line {
    font-size: var(--uol-text-xs);
  }
  .cx542-question-list {
    display:flex;
    flex-direction:column;
    gap: var(--uol-space-2);
    margin-top: var(--uol-space-3);
  }
  .cx542-question-list button {
    min-height:45px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: var(--uol-space-3);
    padding: var(--uol-space-2) var(--uol-space-3);
    border:1px solid var(--uol-border);
    border-radius: var(--uol-radius-sm);
    background:#faf8fc;
    color:var(--uol-ink);
    font:inherit;
    font-size: var(--uol-text-xs);
    font-weight:750;
    text-align:left;
    cursor:pointer;
  }
  .cx542-question-list button:hover {
    border-color:#bfa9cf;
    background:#f5f0f9;
    color:var(--uol-purple);
  }
  .cx542-skeleton {
    padding: var(--uol-space-6);
    color:var(--uol-muted);
    text-align:center;
  }
  .cx542-workspace-card {
    margin-top:0;
  }
  @media(max-width: 1024px) {
    .cx542-integration-grid,.cx542-exec-columns {
      grid-template-columns:1fr;
    }
    .cx542-decision-grid {
      grid-template-columns:repeat(2,minmax(0,1fr));
    }}
  @media(max-width: 768px) {
    .cx542-decision-grid,.cx542-integration-metrics,.cx542-mini-metrics {
      grid-template-columns:1fr;
    }
    .cx542-exec-heading {
      flex-direction:column;
    }
    .cx542-integration-card,.cx542-exec-card {
      padding: var(--uol-space-4);
    }
    .cx542-decision {
      min-height:108px;
    }}
  @media(prefers-reduced-motion:reduce) {
    .cx542-decision,.cx542-question-list button {
      transition:none;
    }}
  .admin-tabs {
    position:sticky;
    top:calc(var(--cortex-shell-height, 92px) + var(--uol-space-1));
    z-index: var(--uol-z-sticky);
    display:flex;
    gap: var(--uol-space-1);
    margin: 0 0 var(--uol-space-3);
    padding: var(--uol-space-2);
    border:1px solid #ded6e7;
    border-radius: var(--uol-radius-sm);
    background:rgba(255,255,255,.96);
    box-shadow:0 8px 24px rgba(40,20,55,.08);
    overflow:auto;
  }
  .admin-tabs button {
    min-height:44px;
    padding: 0 var(--uol-space-3);
    border:0;
    border-radius: var(--uol-radius-sm);
    background:transparent;
    color:#615769;
    font-weight:800;
    white-space:nowrap;
    cursor:pointer;
  }
  .admin-tabs button.active {
    background:#eee7f4;
    color:#563382;
  }
  .admin-tabs+* {
    margin-top:0;
  }}

/* ---- site/assets/cortex-light-surfaces-v560.css ---- */
/* Change Set B — only structural surfaces that were pure white before v5.6.0. */
@layer modules {
  :root {
    --cx560-light-surface: linear-gradient(110deg,#ffffff 0%,#ffffff 52%,#f5efff 100%);
  }

  .platform-card,
  .platform-kpi,
  .simple-card,
  .module-sidebar,
  .access-denied-card,
  .workspace-card,
  .hub-stat,
  .cx542-integration-card,
  .cx542-decision,
  .cx542-exec-card,
  .release-history-details {
    background: var(--cx560-light-surface) !important;
  }

  :where(.platform-card,.platform-kpi,.simple-card,.module-sidebar,.access-denied-card,.workspace-card,.hub-stat,.cx542-integration-card,.cx542-decision,.cx542-exec-card,.release-history-details)
  :where(h1,h2,h3,h4,h5,h6,p,li,td,th,label,time,small,legend,caption,dt,dd) {
    color:#000!important;
  }

  :where(.platform-card,.platform-kpi,.simple-card,.module-sidebar,.access-denied-card,.workspace-card,.hub-stat,.cx542-integration-card,.cx542-decision,.cx542-exec-card,.release-history-details)
  :where(.platform-btn,.btn,.status-pill,.role-chip,.platform-icon,.cx542-source-mark,.cx542-governance,.cx560-pill) {
    color: revert-layer;
  }
}


/* ---- site/assets/salesforce-admissions-admin.css ---- */
/* UoL Cortex v5.6.0 — Salesforce Admissions Phase 1, reconciled with the v5.5.0 design system. */
@layer modules {
  .cx560-salesforce-admin {
    margin-top: var(--uol-space-4);
    padding: var(--uol-space-5);
    border: 1px solid var(--uol-border);
    border-radius: var(--uol-radius-lg);
    background: linear-gradient(110deg,#ffffff 0%,#ffffff 52%,#f5efff 100%);
    box-shadow: var(--uol-shadow-sm);
    scroll-margin-top: calc(var(--uol-control-h) + var(--uol-space-8));
    color: var(--uol-black);
  }

  .cx560-salesforce-admin[hidden] { display: none !important; }

  .cx560-admin-head,
  .cx560-editor-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--uol-space-4);
    flex-direction: column;
  }

  .cx560-admin-head h2,
  .cx560-editor-head h3 {
    margin: 0 0 var(--uol-space-1) !important;
    color: var(--uol-black) !important;
  }

  .cx560-admin-head p,
  .cx560-editor-head p {
    margin: 0;
    color: var(--uol-black) !important;
    line-height: var(--uol-leading-normal);
  }

  .cx560-privacy-banner,
  .cx560-status-card {
    display: flex;
    align-items: flex-start;
    gap: var(--uol-space-3);
    padding: var(--uol-space-3) var(--uol-space-4);
    border: 1px solid var(--uol-border);
    border-radius: var(--uol-radius-md);
    color: var(--uol-black);
  }

  .cx560-privacy-banner {
    margin: var(--uol-space-4) 0;
    background: var(--uol-purple-15);
    flex-direction: column;
  }

  .cx560-privacy-banner strong { flex: 0 0 auto; }
  .cx560-privacy-banner strong,
  .cx560-privacy-banner span,
  .cx560-status-card span:last-child { color: var(--uol-black); }

  .cx560-status-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--uol-space-3);
  }

  .cx560-status-card {
    align-items: center;
    min-height: var(--uol-control-h);
    background: linear-gradient(110deg,#ffffff 0%,#ffffff 52%,#f5efff 100%);
  }

  .cx560-status-card span:last-child,
  .cx560-message,
  .cx560-table,
  .cx560-muted,
  .cx560-validation p {
    font-size: var(--uol-text-xs);
    line-height: var(--uol-leading-normal);
  }

  .cx560-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--uol-control-h-sm);
    padding: var(--uol-space-1) var(--uol-space-2);
    border-radius: var(--uol-radius-pill);
    background: var(--uol-purple-15);
    color: var(--uol-black);
    font-size: var(--uol-text-xs);
    font-weight: var(--uol-weight-bold);
    white-space: nowrap;
  }

  .cx560-pill.pass { background: var(--uol-green-15); color: var(--uol-ink-on-green); }
  .cx560-pill.warn { background: var(--uol-orange-15); color: var(--uol-ink-on-orange); }
  .cx560-pill.fail { background: var(--uol-red-15); color: var(--uol-ink-on-red); }

  .cx560-toolbar,
  .cx560-action-row,
  .cx560-row-actions,
  .cx560-result {
    display: flex;
    align-items: center;
    gap: var(--uol-space-2);
    flex-wrap: wrap;
  }

  .cx560-toolbar { margin: var(--uol-space-4) 0 var(--uol-space-3); }
  .cx560-toolbar .platform-btn,
  .cx560-action-row .platform-btn { width: 100%; }
  .cx560-message { min-height: var(--uol-control-h-sm); margin: var(--uol-space-2) 0 var(--uol-space-3); color: var(--uol-black); }

  .cx560-table-wrap {
    width: 100%;
    overflow: auto;
    border: 1px solid var(--uol-border);
    border-radius: var(--uol-radius-md);
    background: linear-gradient(110deg,#ffffff 0%,#ffffff 52%,#f5efff 100%);
  }

  .cx560-table {
    width: 100%;
    border-collapse: collapse;
    color: var(--uol-black);
  }

  .cx560-table th,
  .cx560-table td {
    padding: var(--uol-space-3);
    border-bottom: 1px solid var(--uol-border);
    text-align: left;
    vertical-align: top;
    color: var(--uol-black);
  }

  .cx560-table th {
    background: var(--uol-purple-15);
    font-size: var(--uol-text-xs);
    text-transform: uppercase;
    letter-spacing: var(--uol-tracking-wide);
  }

  .cx560-table tr:last-child td { border-bottom: 0; }
  .cx560-table td > strong,
  .cx560-table td > small { display: block; color: var(--uol-black); }
  .cx560-table td > small { margin-top: var(--uol-space-1); font-size: var(--uol-text-xs); }

  .cx560-link {
    min-height: var(--uol-control-h);
    padding: var(--uol-space-2) var(--uol-space-3);
    border: 1px solid var(--uol-border);
    border-radius: var(--uol-radius-sm);
    background: var(--uol-surface);
    color: var(--uol-black);
    font-family: var(--uol-font-sans);
    font-size: var(--uol-text-xs);
    font-weight: var(--uol-weight-bold);
    cursor: pointer;
  }

  .cx560-link:hover { border-color: var(--uol-purple); background: var(--uol-purple-15); }
  .cx560-link:disabled { opacity: .45; cursor: not-allowed; }
  .cx560-empty { padding: var(--uol-space-5); color: var(--uol-black); text-align: center; }

  .cx560-helper {
    margin: var(--uol-space-3) 0;
    padding: var(--uol-space-3);
    border-left: 1px solid var(--uol-purple);
    background: var(--uol-purple-15);
    color: var(--uol-black);
    font-size: var(--uol-text-xs);
    line-height: var(--uol-leading-normal);
  }

  .cx560-editor,
  .cx560-validation {
    margin-top: var(--uol-space-4);
    padding: var(--uol-space-4);
    border: 1px solid var(--uol-border);
    border-radius: var(--uol-radius-md);
    background: linear-gradient(110deg,#ffffff 0%,#ffffff 52%,#f5efff 100%);
    color: var(--uol-black);
  }

  .cx560-mapping-grid,
  .cx560-field-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--uol-space-3);
  }

  .cx560-mapping-grid { margin: var(--uol-space-4) 0; }
  .cx560-mapping-grid label { display: flex; flex-direction: column; gap: var(--uol-space-1); color: var(--uol-black); font-size: var(--uol-text-xs); font-weight: var(--uol-weight-bold); }

  .cx560-mapping-grid select {
    width: 100%;
    min-height: var(--uol-control-h);
    padding: var(--uol-space-2) var(--uol-space-3);
    border: 1px solid var(--uol-border);
    border-radius: var(--uol-radius-sm);
    background: var(--uol-surface);
    color: var(--uol-black);
    font-family: var(--uol-font-sans);
    font-size: var(--uol-input-font-size);
  }

  .cx560-field-audit { margin: var(--uol-space-4) 0; border: 1px solid var(--uol-border); border-radius: var(--uol-radius-md); background: var(--uol-surface); }
  .cx560-field-audit summary { min-height: var(--uol-control-h); padding: var(--uol-space-3); cursor: pointer; color: var(--uol-black); font-weight: var(--uol-weight-bold); }
  .cx560-field-list { padding: 0 var(--uol-space-3) var(--uol-space-3); }
  .cx560-field-list > div { padding: var(--uol-space-3); border-radius: var(--uol-radius-sm); background: var(--uol-warm-gray-15); color: var(--uol-black); }
  .cx560-field-list > div.prohibited { background: var(--uol-red-15); }
  .cx560-field-list strong,
  .cx560-field-list span,
  .cx560-field-list small { display: block; color: var(--uol-black); }
  .cx560-field-list span,
  .cx560-field-list small { margin-top: var(--uol-space-1); font-size: var(--uol-text-xs); line-height: var(--uol-leading-snug); }

  .cx560-preview {
    max-height: 70vh;
    margin: var(--uol-space-4) 0 0;
    padding: var(--uol-space-4);
    border: 1px solid var(--uol-border-inverse);
    border-radius: var(--uol-radius-md);
    background: var(--uol-purple-night);
    color: var(--uol-muted-inverse);
    overflow: auto;
    font-family: var(--uol-font-mono);
    font-size: var(--uol-text-xs);
    line-height: var(--uol-leading-normal);
    white-space: pre-wrap;
  }

  .cx560-validation {
    display: grid;
    grid-template-columns: 1fr;
    align-items: center;
    gap: var(--uol-space-4);
  }

  .cx560-validation h3 { margin: 0 0 var(--uol-space-1) !important; color: var(--uol-black) !important; }
  .cx560-validation p,
  .cx560-result { color: var(--uol-black); }
  .cx560-jobs { margin-top: var(--uol-space-4); }
  .cx560-jobs > summary { min-height: var(--uol-control-h); padding: var(--uol-space-3) 0; color: var(--uol-black); font-weight: var(--uol-weight-bold); cursor: pointer; }
  .cx560-muted { color: var(--uol-black); }

}


/* ---- site/assets/ask-cortex.css ---- */
@layer components {
  .ask-cortex-widget {
    position:fixed;
    right:18px;
    bottom:18px;
    z-index: var(--uol-z-overlay);
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap: var(--uol-space-3);
    font-family: var(--uol-font-sans);
  }
  .ask-cortex-launcher {
    display:flex;
    align-items:center;
    gap: var(--uol-space-3);
    min-height:78px;
    max-width:290px;
    padding: var(--uol-space-2) var(--uol-space-4) var(--uol-space-2) var(--uol-space-2);
    border:1px solid rgba(98,63,153,.18);
    border-radius: var(--uol-radius-lg);
    background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(245,240,251,.96));
    box-shadow:0 18px 40px rgba(35,18,56,.16);
    color:#241534;
    cursor:pointer;
    transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
  }
  .ask-cortex-launcher:hover {
    transform:translateY(-1px);
    box-shadow:0 22px 46px rgba(35,18,56,.2);
    border-color:rgba(98,63,153,.34);
  }
  .ask-cortex-launcher-figure {
    display:grid;
    place-items:end center;
    width:62px;
    height:58px;
    border-radius: var(--uol-radius-md);
    background:radial-gradient(circle at 30% 25%,rgba(164,123,220,.32),transparent 50%),linear-gradient(145deg,#f1ebfa,#ffffff);
    overflow:hidden;
  }
  .ask-cortex-launcher-figure img {
    width:58px;
    height:auto;
    transform:translateY(6px);
  }
  .ask-cortex-launcher-copy {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    text-align:left;
  }
  .ask-cortex-launcher-copy strong {
    font-size: var(--uol-text-base);
    line-height:1.1;
    color:#28163a;
  }
  .ask-cortex-launcher-copy small {
    font-size: var(--uol-text-xs);
    line-height:1.4;
    color:#655b70;
  }
  .ask-cortex-panel {
    width:min(420px,calc(100vw - 28px));
    max-height:min(760px,calc(100vh - 36px));
    border:1px solid rgba(98,63,153,.18);
    border-radius: var(--uol-radius-lg);
    overflow:hidden;
    background:#fcfbfe;
    box-shadow:0 28px 70px rgba(31,14,49,.22);
    display:grid;
    grid-template-rows:auto auto 1fr auto;
  }
  .ask-cortex-panel-head {
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) 138px;
    gap: var(--uol-space-3);
    padding: var(--uol-space-5) var(--uol-space-5) var(--uol-space-2);
    background:radial-gradient(circle at right top,rgba(161,114,218,.24),transparent 38%),linear-gradient(145deg,#3d215d 0%,#623f99 68%,#7b59b1 100%);
    color:#fff;
  }
  .ask-cortex-head-copy h2 {
    margin: var(--uol-space-1) 0 var(--uol-space-2);
    font-size: var(--uol-text-2xl);
    line-height:1;
    letter-spacing:-.04em;
    color:#fff;
  }
  .ask-cortex-kicker {
    display:inline-flex;
    align-items:center;
    gap: var(--uol-space-2);
    font-size: var(--uol-text-xs);
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:rgba(255,255,255,.7);
  }
  .ask-cortex-kicker:before {
    content:"";
    width:22px;
    height:1px;
    background:rgba(255,255,255,.46);
  }
  .ask-cortex-head-copy p {
    margin:0;
    max-width:240px;
    font-size: var(--uol-text-xs);
    line-height:1.55;
    color:rgba(255,255,255,.78);
  }
  .ask-cortex-hero-wrap {
    display:flex;
    align-items:flex-end;
    justify-content:center;
    overflow:hidden;
  }
  .ask-cortex-hero {
    width:126px;
    height:auto;
    filter:drop-shadow(0 14px 26px rgba(12,6,20,.2));
    animation:askCortexFloat 5.8s ease-in-out infinite;
  }
  .ask-cortex-close {
    position:absolute;
    top:14px;
    right:14px;
    width:34px;
    height:34px;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.14);
    color:#fff;
    font-size: var(--uol-text-xl);
    line-height:1;
    cursor:pointer;
  }
  .ask-cortex-close:hover {
    background:rgba(255,255,255,.22);
  }
  .ask-cortex-panel-meta {
    display:flex;
    align-items:center;
    gap: var(--uol-space-2);
    padding: var(--uol-space-2) var(--uol-space-4);
    border-bottom:1px solid rgba(98,63,153,.08);
    background:#f6f1fb;
    color:#5c5270;
    font-size: var(--uol-text-xs);
  }
  .ask-cortex-dot {
    width:8px;
    height:8px;
    border-radius:50%;
    background:#37b46e;
    box-shadow:0 0 0 4px rgba(55,180,110,.12);
  }
  .ask-cortex-messages {
    padding: var(--uol-space-4) var(--uol-space-4) var(--uol-space-1);
    overflow:auto;
    background:linear-gradient(180deg,#fcfbfe 0%,#f7f4fb 100%);
  }
  .ask-cortex-message {
    display:flex;
    align-items:flex-start;
    gap: var(--uol-space-2);
    margin-bottom: var(--uol-space-4);
  }
  .ask-cortex-message.user {
    justify-content:flex-end;
  }
  .ask-cortex-message.user .ask-cortex-avatar {
    order:2;
  }
  .ask-cortex-message.user .ask-cortex-bubble-wrap {
    order:1;
    align-items:flex-end;
  }
  .ask-cortex-avatar {
    flex:none;
    width:40px;
    height:40px;
    border-radius: var(--uol-radius-md);
    background:linear-gradient(145deg,#efe7fa,#ffffff);
    display:grid;
    place-items:end center;
    overflow:hidden;
    border:1px solid rgba(98,63,153,.12);
  }
  .ask-cortex-avatar img {
    width:38px;
    height:auto;
    transform:translateY(4px);
  }
  .ask-cortex-avatar.user {
    place-items:center;
    background:#623f99;
    color:#fff;
    font-weight:800;
  }
  .ask-cortex-bubble-wrap {
    display:flex;
    flex-direction:column;
    gap: var(--uol-space-2);
    max-width:min(300px,75vw);
  }
  .ask-cortex-bubble {
    padding: var(--uol-space-3) var(--uol-space-3);
    border-radius: var(--uol-radius-md);
    background:#fff;
    color:#2e2438;
    box-shadow:0 8px 22px rgba(35,18,56,.07);
    border:1px solid rgba(98,63,153,.08);
  }
  .ask-cortex-message.user .ask-cortex-bubble {
    background:linear-gradient(135deg,#623f99,#7b59b1);
    color:#fff;
  }
  .ask-cortex-bubble p {
    margin:0;
    font-size: var(--uol-text-xs);
    line-height:1.58;
  }
  .ask-cortex-status {
    display:inline-flex;
    align-items:center;
    margin-bottom: var(--uol-space-2);
    padding: var(--uol-space-1) var(--uol-space-2);
    border-radius: var(--uol-radius-pill);
    font-size: var(--uol-text-xs);
    font-weight:700;
    letter-spacing:.02em;
  }
  .ask-cortex-status.grounded {
    background:#ecf8f1;
    color:#23794c;
  }
  .ask-cortex-status.conversational {
    background:#f2edfa;
    color:#623f99;
  }
  .ask-cortex-status.limited {
    background:#fff5dd;
    color:#996500;
  }
  .ask-cortex-status.restricted {
    background:#fff0ef;
    color:#b24a3a;
  }
  .ask-cortex-answer-meta {
    display:flex;
    flex-wrap:wrap;
    gap: var(--uol-space-1);
    margin-top: var(--uol-space-1);
  }
  .ask-cortex-answer-meta span {
    padding: var(--uol-space-1) var(--uol-space-2);
    border:1px solid rgba(98,63,153,.1);
    border-radius: var(--uol-radius-pill);
    background:#f7f3fa;
    color:#6a5b77;
    font-size: var(--uol-text-xs);
    font-weight:750;
  }
  .ask-cortex-answer-meta span:first-child {
    color:#4f2e75;
    background:#eee7f4;
  }
  .ask-cortex-sources {
    display:flex;
    flex-wrap:wrap;
    gap: var(--uol-space-2);
    align-items:flex-start;
  }
  .ask-cortex-sources strong {
    width:100%;
    font-size: var(--uol-text-xs);
    color:#6c6177;
    text-transform:uppercase;
    letter-spacing:.08em;
  }
  .ask-cortex-sources a {
    display:flex;
    flex-direction:column;
    gap: var(--uol-space-1);
    min-width:0;
    padding: var(--uol-space-2) var(--uol-space-2);
    border-radius: var(--uol-radius-sm);
    background:rgba(255,255,255,.86);
    border:1px solid rgba(98,63,153,.1);
    text-decoration:none;
    color:#38284a;
    box-shadow:0 4px 14px rgba(35,18,56,.04);
  }
  .ask-cortex-sources a span {
    font-size: var(--uol-text-xs);
    font-weight:700;
    line-height:1.35;
  }
  .ask-cortex-sources a small {
    font-size: var(--uol-text-xs);
    color:#736981;
    line-height:1.3;
  }
  .ask-cortex-followups {
    display:flex;
    flex-wrap:wrap;
    gap: var(--uol-space-2);
  }
  .ask-cortex-chip {
    padding: var(--uol-space-2) var(--uol-space-3);
    border:1px solid rgba(98,63,153,.12);
    border-radius: var(--uol-radius-pill);
    background:#fff;
    color:#4c3b61;
    font-size: var(--uol-text-xs);
    font-weight:700;
    cursor:pointer;
  }
  .ask-cortex-chip:hover {
    border-color:rgba(98,63,153,.32);
    color:#2e2140;
  }
  .ask-cortex-form {
    padding: var(--uol-space-3) var(--uol-space-4) var(--uol-space-4);
    border-top:1px solid rgba(98,63,153,.08);
    background:#fff;
  }
  .ask-cortex-form textarea {
    width:100%;
    min-height:46px;
    max-height:140px;
    resize:none;
    padding: var(--uol-space-3) var(--uol-space-3);
    border:1px solid rgba(98,63,153,.16);
    border-radius: var(--uol-radius-md);
    background:#fbf9fe;
    outline:none;
    font:inherit;
    color:#2f2438;
  }
  .ask-cortex-form textarea:focus {
    border-color:#7c58b0;
    box-shadow:0 0 0 4px rgba(124,88,176,.1);
    background:#fff;
  }
  .ask-cortex-form-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: var(--uol-space-3);
    margin-top: var(--uol-space-2);
  }
  .ask-cortex-hint {
    font-size: var(--uol-text-xs);
    line-height:1.45;
    color:#736981;
  }
  .ask-cortex-form .platform-btn {
    min-width:88px;
    padding-inline: var(--uol-space-4);
  }
  @keyframes askCortexFloat {
    0%,100% {
      transform:translateY(0);
    }
    50% {
      transform:translateY(-6px);
    }
  }
  @media (max-width: 768px) {
    .ask-cortex-widget {
      right:10px;
      left:10px;
      bottom:10px;
      align-items:stretch;
    }
    .ask-cortex-launcher {
      max-width:none;
      width:100%;
      justify-content:flex-start;
    }
    .ask-cortex-panel {
      width:100%;
      max-height:calc(100vh - 20px);
    }}
  @media (max-width: 768px) {
    .ask-cortex-panel-head {
      grid-template-columns:minmax(0,1fr) 110px;
      padding: var(--uol-space-4) var(--uol-space-4) var(--uol-space-2);
    }
    .ask-cortex-head-copy h2 {
      font-size: var(--uol-text-2xl);
    }
    .ask-cortex-head-copy p {
      font-size: var(--uol-text-xs);
    }
    .ask-cortex-hero {
      width:104px;
    }
    .ask-cortex-form-row {
      align-items:flex-end;
      flex-direction:column;
    }
    .ask-cortex-hint {
      width:100%;
    }}
  /* Ask Cortex 3.2 — public welcome and assistant controls */
  .ask-cortex-sound {
    position:absolute;
    top:14px;
    right:56px;
    width:34px;
    height:34px;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.14);
    color:#fff;
    font-size: var(--uol-text-base);
    font-weight:800;
    cursor:pointer;
  }
  .ask-cortex-sound:hover {
    background:rgba(255,255,255,.22);
  }
  .ask-cortex-sound.muted {
    opacity:.62;
    text-decoration:line-through;
  }
  .ask-cortex-thinking {
    display:inline-flex;
    align-items:center;
    gap: var(--uol-space-1);
    min-width:42px;
    min-height:20px;
  }
  .ask-cortex-thinking i {
    width:7px;
    height:7px;
    border-radius:50%;
    background:#8b68b4;
    animation:askCortexThinking 1.15s ease-in-out infinite;
  }
  .ask-cortex-thinking i:nth-child(2) {
    animation-delay:.15s;
  }
  .ask-cortex-thinking i:nth-child(3) {
    animation-delay:.3s;
  }
  .ask-cortex-widget.is-arriving .ask-cortex-panel {
    animation:askCortexArrive .72s cubic-bezier(.2,.8,.2,1) both;
  }
  .ask-cortex-widget.is-arriving .ask-cortex-hero {
    animation:askCortexHeroArrive .82s cubic-bezier(.2,.9,.2,1) both;
  }
  html.ask-cortex-public .ask-cortex-launcher {
    border-color:rgba(187,145,226,.34);
    box-shadow:0 18px 46px rgba(33,13,52,.24),0 0 0 1px rgba(210,179,237,.08);
  }
  html.ask-cortex-executive .ask-cortex-panel-meta {
    background:#eee7f4;
    color:#4e2e70;
  }
  html.ask-cortex-executive .ask-cortex-dot {
    background:#7650a5;
    box-shadow:0 0 0 4px rgba(118,80,165,.12);
  }
  html.is-anonymous .ask-cortex-widget {
    z-index: calc(var(--uol-z-overlay) + 1);
  }
  html.is-anonymous .ask-cortex-panel {
    box-shadow:0 34px 90px rgba(15,5,24,.34);
  }
  @keyframes askCortexThinking {
    0%,60%,100% {
      transform:translateY(0);
      opacity:.38;
    }
    30% {
      transform:translateY(-5px);
      opacity:1;
    }
  }
  @keyframes askCortexArrive {
    0% {
      opacity:0;
      transform:translate3d(24px,24px,0) scale(.94);
    }
    100% {
      opacity:1;
      transform:translate3d(0,0,0) scale(1);
    }
  }
  @keyframes askCortexHeroArrive {
    0% {
      opacity:0;
      transform:translate3d(24px,30px,0) scale(.82);
    }
    100% {
      opacity:1;
      transform:translate3d(0,0,0) scale(1);
    }
  }
  html.reduce-motion .ask-cortex-hero,
  html.reduce-motion .ask-cortex-widget.is-arriving .ask-cortex-panel,
  html.reduce-motion .ask-cortex-thinking i {
    animation:none;
  }
  @media (prefers-reduced-motion:reduce) {
    .ask-cortex-hero, .ask-cortex-widget.is-arriving .ask-cortex-panel, .ask-cortex-thinking i {
      animation:none;
    }}
  .ask-cortex-widget.is-open .ask-cortex-launcher {
    display:none;
  }
  .ask-cortex-panel {
    height:min(760px,calc(100vh - 36px));
  }
  @media (max-width: 768px) {
    .ask-cortex-panel {
      height:calc(100vh - 20px);
    }}
  /* UoL Cortex 5.2 — accessible responsive assistant */
  .ask-cortex-widget {
    z-index: var(--uol-z-overlay);
    right:max(18px,env(safe-area-inset-right,0px));
    bottom:max(18px,env(safe-area-inset-bottom,0px));
  }
  .ask-cortex-panel {
    width:min(440px,calc(100vw - 32px));
    height:min(760px,calc(var(--ask-cortex-vvh,100dvh) - 32px));
    max-height:calc(var(--ask-cortex-vvh,100dvh) - 32px);
    min-height:0;
    grid-template-rows:auto auto minmax(0,1fr) auto;
    overscroll-behavior:contain;
  }
  .ask-cortex-panel-head {
    z-index: var(--uol-z-raised);
  }
  .ask-cortex-close,.ask-cortex-sound {
    min-width:44px;
    min-height:44px;
    display:grid;
    place-items:center;
    touch-action:manipulation;
    -webkit-tap-highlight-color:transparent;
  }
  .ask-cortex-close {
    top:10px;
    right:10px;
    font-size:0;
  }
  .ask-cortex-close span {
    font-size: var(--uol-text-2xl);
    line-height:1;
    transform:translateY(-2px);
  }
  .ask-cortex-sound {
    top:10px;
    right:60px;
  }
  .ask-cortex-messages {
    min-height:0;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .ask-cortex-form {
    padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));
  }
  .ask-cortex-form textarea {
    font-size: var(--uol-text-base);
    line-height:1.4;
    max-height:104px;
  }
  .ask-cortex-launcher {
    min-height:64px;
  }
  html.ask-cortex-open body {
    overscroll-behavior:none;
  }
  @media(max-width: 768px) {
    .ask-cortex-widget {
      inset:auto max(8px,env(safe-area-inset-right,0px)) max(8px,env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));
      align-items:stretch;
      pointer-events:none;
    }
    .ask-cortex-widget>* {
      pointer-events:auto;
    }
    .ask-cortex-panel {
      width:auto;
      height:min(calc(var(--ask-cortex-vvh,100dvh) - max(16px,env(safe-area-inset-top,0px)) - max(16px,env(safe-area-inset-bottom,0px))),900px);
      max-height:none;
      border-radius: var(--uol-radius-lg);
      box-shadow:0 22px 70px rgba(20,8,32,.34);
    }
    .ask-cortex-panel-head {
      grid-template-columns:minmax(0,1fr) 78px;
      min-height:116px;
      padding: var(--uol-space-4) var(--uol-space-8) var(--uol-space-3) var(--uol-space-4);
    }
    .ask-cortex-head-copy h2 {
      font-size: var(--uol-text-xl);
      margin: var(--uol-space-1) 0 var(--uol-space-1);
    }
    .ask-cortex-head-copy p {
      font-size: var(--uol-text-xs);
      line-height:1.35;
      max-width:250px;
    }
    .ask-cortex-kicker {
      font-size: var(--uol-text-xs);
    }
    .ask-cortex-hero-wrap {
      position:absolute;
      right:8px;
      bottom:0;
      width:92px;
      height:104px;
    }
    .ask-cortex-hero {
      width:88px;
    }
    .ask-cortex-panel-meta {
      padding: var(--uol-space-2) var(--uol-space-3);
      font-size: var(--uol-text-xs);
    }
    .ask-cortex-messages {
      padding: var(--uol-space-3) var(--uol-space-3) var(--uol-space-1);
    }
    .ask-cortex-message {
      gap: var(--uol-space-2);
      margin-bottom: var(--uol-space-3);
    }
    .ask-cortex-avatar {
      width:34px;
      height:34px;
      border-radius: var(--uol-radius-sm);
    }
    .ask-cortex-avatar img {
      width:33px;
    }
    .ask-cortex-bubble-wrap {
      max-width:calc(100vw - 92px);
    }
    .ask-cortex-bubble {
      padding: var(--uol-space-3) var(--uol-space-3);
      border-radius: var(--uol-radius-md);
    }
    .ask-cortex-bubble p {
      font-size: var(--uol-text-xs);
      line-height:1.5;
    }
    .ask-cortex-sources,.ask-cortex-followups {
      gap: var(--uol-space-2);
    }
    .ask-cortex-sources a {
      width:100%;
    }
    .ask-cortex-chip {
      width:100%;
      min-height:44px;
      text-align:left;
      border-radius: var(--uol-radius-md);
    }
    .ask-cortex-form {
      padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px));
    }
    .ask-cortex-form-row {
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
      gap: var(--uol-space-2);
      margin-top: var(--uol-space-2);
    }
    .ask-cortex-hint {
      font-size: var(--uol-text-xs);
      line-height:1.35;
    }
    .ask-cortex-form .platform-btn {
      min-width:82px;
      min-height:48px;
    }
    .ask-cortex-launcher {
      width:auto;
      max-width:220px;
      margin-left:auto;
      min-height:58px;
      padding: var(--uol-space-2) var(--uol-space-3) var(--uol-space-2) var(--uol-space-2);
      border-radius: var(--uol-radius-md);
    }
    .ask-cortex-launcher-figure {
      width:48px;
      height:46px;
      border-radius: var(--uol-radius-md);
    }
    .ask-cortex-launcher-figure img {
      width:46px;
    }
    .ask-cortex-launcher-copy strong {
      font-size: var(--uol-text-sm);
    }
    .ask-cortex-launcher-copy small {
      font-size: var(--uol-text-xs);
    }
    html.ask-cortex-open {
      overflow:hidden;
    }
    html.ask-cortex-open body {
      overflow:hidden;
      width:100%;
    }}
  @media(max-width: 480px) {
    .ask-cortex-panel-head {
      padding-right: var(--uol-space-8);
    }
    .ask-cortex-head-copy p {
      display:none;
    }
    .ask-cortex-panel-head {
      min-height:92px;
    }
    .ask-cortex-hero-wrap {
      height:84px;
      width:76px;
    }
    .ask-cortex-hero {
      width:72px;
    }
    .ask-cortex-form-row {
      grid-template-columns:1fr;
    }
    .ask-cortex-form .platform-btn {
      width:100%;
    }
    .ask-cortex-hint {
      display:none;
    }}
  /* Cortex v5.4: compact docked launcher and unobstructed application content. */
  html.is-authenticated .ask-cortex-launcher {
    width:64px;
    max-width:64px;
    min-width:64px;
    min-height:64px;
    padding: var(--uol-space-1);
    overflow:hidden;
    border-radius: var(--uol-radius-md);
    transition:max-width .2s ease,width .2s ease,transform .18s ease,box-shadow .18s ease;
  }
  html.is-authenticated .ask-cortex-launcher-copy {
    display:none;
    white-space:nowrap;
  }
  html.is-authenticated .ask-cortex-launcher-figure {
    width:50px;
    height:50px;
    flex:0 0 50px;
    border-radius: var(--uol-radius-md);
  }
  html.is-authenticated .ask-cortex-launcher-figure img {
    width:49px;
  }
  html.is-authenticated .ask-cortex-launcher:hover,
  html.is-authenticated .ask-cortex-launcher:focus-visible {
    width:218px;
    max-width:218px;
    padding-right: var(--uol-space-3);
  }
  html.is-authenticated .ask-cortex-launcher:hover .ask-cortex-launcher-copy,
  html.is-authenticated .ask-cortex-launcher:focus-visible .ask-cortex-launcher-copy {
    display:flex;
  }
  .ask-cortex-chip,.ask-cortex-sources a,.ask-cortex-form .platform-btn {
    min-height:44px;
  }
  .ask-cortex-panel:focus {
    outline:none;
  }
  /* The floating hero is absolutely positioned across the top-right of the head on small screens,
     which is exactly where the minimise and sound controls sit. Paint order already favours the
     buttons, but the tap target is the one thing on this panel that must never be intercepted,
     so it is stated rather than inherited. */
  .ask-cortex-close,.ask-cortex-sound {
    z-index: var(--uol-z-raised);
  }
  .ask-cortex-close {
    border:1px solid rgba(255,255,255,.36);
    background:rgba(255,255,255,.22);
  }
  .ask-cortex-close:hover,
  .ask-cortex-close:focus-visible {
    background:rgba(255,255,255,.34);
  }
  /* Cortex announces itself on the launcher instead of opening itself over the sign-in fields. */
  .ask-cortex-launcher.is-inviting {
    animation:askCortexInvite 2.2s ease-out 3;
  }
  @keyframes askCortexInvite {
    0%,100% {
      box-shadow:0 18px 40px rgba(35,18,56,.16),0 0 0 0 rgba(98,63,153,.34);
    }
    50% {
      box-shadow:0 22px 46px rgba(35,18,56,.2),0 0 0 12px rgba(98,63,153,0);
    }
  }
  html.reduce-motion .ask-cortex-launcher.is-inviting {
    animation:none;
  }
  @media (prefers-reduced-motion:reduce) {
    .ask-cortex-launcher.is-inviting {
      animation:none;
    }}
  @media(max-width: 768px) {
    html.is-authenticated .ask-cortex-launcher {
      width:58px;
      max-width:58px;
      min-width:58px;
      padding: var(--uol-space-1);
    }
    html.is-authenticated .ask-cortex-launcher-copy {
      display:none;
    }}
  /* A phone-width sign-in card fills the viewport, so the docked launcher is the only Cortex
     surface that can land on top of a credential field. It shrinks to the icon here for the same
     reason it is compact inside the authenticated shell. */
  @media(max-width: 480px) {
    html.is-anonymous .ask-cortex-launcher {
      width:58px;
      max-width:58px;
      min-width:58px;
      padding: var(--uol-space-1);
    }
    html.is-anonymous .ask-cortex-launcher-copy {
      display:none;
    }}}

/* ---- site/assets/cortex-responsive.css ---- */
/**
 * UoL Cortex responsive layer v5.5.0.
 *
 * Replaces cortex-mobile.css and cortex-enterprise-responsive.css, which between them held
 * 71 `!important` declarations and eleven breakpoints, and which treated the phone as a
 * correction applied after the desktop layout had already been decided.
 *
 * Everything here is authored against the four sanctioned breakpoints and nothing else:
 *
 *   mobile   <= 480px    (the base rules in every stylesheet; no query)
 *   tablet   481-768px   @media (min-width: 481px)
 *   laptop   769-1024px  @media (min-width: 769px)
 *   desktop  >= 1025px   @media (min-width: 1025px)
 *
 * Down-only rules use the mirrored boundaries (max-width: 480px / 768px / 1024px). No other
 * value may appear in a media query anywhere in the codebase — scripts/qa-v5.5.0.mjs fails the
 * build if one does.
 *
 * The single most important rule in this file is what is NOT here: the old
 * `table { min-width: 680px }`, which forced every data table on every phone into a sideways
 * scroll. Tables now become stacked cards, driven by `CortexUI.enhanceTable`.
 */
@layer base {
  :root {
    /* Viewport units that account for mobile browser chrome and notches. */
    --cortex-vvh: 100dvh;
    --cortex-safe-top: env(safe-area-inset-top, 0px);
    --cortex-safe-bottom: env(safe-area-inset-bottom, 0px);
    --cortex-safe-left: env(safe-area-inset-left, 0px);
    --cortex-safe-right: env(safe-area-inset-right, 0px);
  }

  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  body { min-height: var(--cortex-vvh); overflow-wrap: anywhere; }
  img, svg, canvas, video, iframe { max-width: 100%; height: auto; }
  button, a, input, select, textarea { touch-action: manipulation; }
  [hidden] { display: none; }
}

@layer responsive {
  /* ---- Overflow containment ---------------------------------------------------- */
  /* A grid or flex child defaults to `min-width: auto`, which means its content can force
     the track wider than the viewport. This is the single most common cause of horizontal
     scroll in this codebase, so it is neutralised structurally rather than per-component. */
  /* `overflow-x: hidden` on `body` was quietly disabling the sticky top bar on every route. A
     computed `overflow-x: hidden` forces the other axis to `auto`, which makes `body` a scroll
     container; a `position: sticky` child then sticks inside `body`'s scrollport while the document
     scrolls on `html`, so the bar simply scrolled away with the page. `clip` contains the same
     overflow without creating a scroll container, so the bar sticks to the viewport as intended.
     The root keeps `hidden`: its overflow propagates to the viewport, which is the scroll container
     rather than a sticky ancestor, so `hidden` costs nothing there — and `clip` on the root would
     propagate too, taking vertical scrolling with it. */
  html { max-width: 100%; overflow-x: hidden; }
  body { max-width: 100%; overflow-x: clip; }
  main, section, article, aside, nav, form, fieldset,
  [class*="-grid"], [class*="-panel"], [class*="-card"], [class*="-shell"],
  [class*="-container"], [class*="-workspace"], [class*="-row"] {
    min-width: 0;
  }
  input, select, textarea { max-width: 100%; }
  pre, code { overflow-x: auto; }

  /* ---- Tables become cards on narrow screens ---------------------------------- */
  /* enhanceTable stamps `data-cortex-cards` on the table, `data-label` on every cell and
     `.cortex-cell-priority` on the three or four columns worth showing at a glance. Rows stay
     in the DOM, so search, sort, selection and CSV export continue to run across the whole
     in-memory dataset exactly as they do on desktop. Tapping a card opens the record drawer,
     which shows every field. */
  .mi-table-wrap, .simple-table-wrap, .role-matrix-wrap, .table-wrap, [class*="table-wrap"] {
    max-width: 100%;
    overflow: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  table { max-width: 100%; }

  @media (max-width: 768px) {
    table[data-cortex-cards] { border-spacing: 0; display: block; }
    table[data-cortex-cards] thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    table[data-cortex-cards] tbody { display: grid; gap: var(--uol-space-3); }
    table[data-cortex-cards] tbody tr {
      display: grid;
      gap: var(--uol-space-1);
      padding: var(--uol-space-4);
      border: 1px solid var(--uol-border);
      border-radius: var(--uol-radius-md);
      background: var(--uol-surface);
      box-shadow: var(--uol-shadow-sm);
      cursor: pointer;
    }
    table[data-cortex-cards] tbody tr:hover td,
    table[data-cortex-cards] tbody tr:nth-child(even) td { background: transparent; }
    table[data-cortex-cards] tbody td {
      display: none;
      border: 0;
      padding: 0;
      min-height: var(--uol-space-5);
      font-size: var(--uol-text-sm);
    }
    /* Only the priority columns show on the card; the drawer holds the rest. */
    table[data-cortex-cards] tbody td.cortex-cell-priority {
      display: grid;
      grid-template-columns: minmax(0, 40%) minmax(0, 60%);
      gap: var(--uol-space-2);
      align-items: baseline;
    }
    table[data-cortex-cards] tbody td.cortex-cell-priority::before {
      content: attr(data-label);
      color: var(--uol-muted);
      font-size: var(--uol-text-xs);
      font-weight: var(--uol-weight-semibold);
      text-transform: uppercase;
      letter-spacing: var(--uol-tracking-wide);
    }
    /* The first priority cell reads as the card title. */
    table[data-cortex-cards] tbody td.cortex-cell-priority:first-of-type {
      display: block;
      font-size: var(--uol-text-base);
      font-weight: var(--uol-weight-semibold);
      color: var(--uol-ink);
    }
    table[data-cortex-cards] tbody td.cortex-cell-priority:first-of-type::before { content: none; }
    /* The row selector stays reachable and full-size. */
    table[data-cortex-cards] tbody td:first-child { display: block; }
    table[data-cortex-cards] input[data-grid-row-select] { width: 24px; height: 24px; }
    table[data-cortex-cards] tbody td.cortex-column-hidden { display: none; }
    .cortex-grid-toolbar { display: grid; grid-template-columns: 1fr; gap: var(--uol-space-2); }
    .cortex-grid-toolbar > * { width: 100%; min-width: 0; }
  }

  /* The role matrix is genuinely two-dimensional — nineteen roles against every module — so a
     card per row would lose the comparison the table exists to make. It keeps a horizontal
     scroll inside its own wrapper, which is honest, and the wrapper stops the page itself
     moving sideways. */
  @media (max-width: 768px) {
    .role-matrix { min-width: 620px; }
    .role-matrix-wrap { overflow: auto; }
  }

  /* ---- Touch targets ----------------------------------------------------------- */
  /* WCAG 2.2 AA target size. Applies to runtime-generated controls too, which is why the
     selectors are broad rather than a list of hand-maintained component classes. */
  button, [role="button"], summary,
  .platform-btn, .btn, .pm-btn, .mini-btn, .utility-link, .user-chip, .nav-toggle,
  .mi-tabs button, .studio-action-btn, .cortex-grid-toolbar button,
  .cortex-grid-toolbar select, .cortex-grid-toolbar input {
    min-height: var(--uol-control-h);
  }
  a[class*="btn"], a[role="menuitem"], a.utility-link { min-height: var(--uol-control-h); }
  input[type="checkbox"], input[type="radio"] { min-width: 24px; min-height: 24px; }

  /* ---- Application viewports --------------------------------------------------- */
  .cortex-app-viewport { height: calc(100svh - var(--cortex-shell-height, 76px)); overflow: hidden; }
  .cortex-scroll-pane { min-height: 0; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }

  /* ---- Global shell: mobile first ---------------------------------------------- */
  .global-shell { padding-top: var(--cortex-safe-top); }
  .global-shell-inner {
    min-height: 60px;
    gap: var(--uol-space-2);
    padding: var(--uol-space-2) var(--uol-gutter);
    flex-wrap: nowrap;
  }
  .shell-brand { min-width: 0; flex: 1; }
  .shell-brand-copy { display: none; }
  .shell-logo-box { width: 62px; height: 40px; }
  .shell-utility { margin-left: auto; gap: var(--uol-space-1); }
  .nav-toggle { display: grid; place-items: center; flex: none; width: 48px; height: 48px; border-radius: var(--uol-radius-md); }
  .command-trigger { min-width: var(--uol-control-h); width: var(--uol-control-h); padding: 0; justify-content: center; }
  .command-trigger span, .command-trigger strong { display: none; }
  .user-chip { min-width: var(--uol-control-h); padding: 0 var(--uol-space-2); }
  .user-chip #userLabel, .user-chip span:not(:first-child) { display: none; }
  .global-ay, .status-dot-link, .shell-utility > .utility-link { display: none; }

  /* Navigation is a sheet on small screens and an inline bar from laptop up. */
  .primary-nav {
    position: fixed;
    display: none;
    z-index: var(--uol-z-nav);
    left: var(--uol-gutter);
    right: var(--uol-gutter);
    top: calc(62px + var(--cortex-safe-top));
    width: auto;
    max-height: calc(var(--cortex-vvh) - 84px - var(--cortex-safe-top));
    overflow: auto;
    padding: var(--uol-space-2);
    border: 1px solid var(--uol-border);
    border-radius: var(--uol-radius-md);
    background: var(--uol-surface);
    box-shadow: var(--uol-shadow-lg);
  }
  .global-shell.nav-open .primary-nav { display: flex; }
  .primary-nav a { width: 100%; min-height: 48px; border-radius: var(--uol-radius-sm); }

  /* ---- Page architecture: one shared content column --------------------------- */
  /* Every page wrapper in the platform resolves its width and its gutters here, and nowhere
     else. This block used to read `main, … { max-width: 100% }`, and because a bare `main`
     selector in the `responsive` layer outranks a wrapper class in `modules` or `shell`, it
     silently defeated all thirteen module max-widths at every viewport width — the cap was
     never re-raised above mobile. What shipped was a page header centred in a 1540px column
     above content that ran the full width of the display: on a 1920px screen the two were
     misaligned by roughly 200px on each side, and every route had a different effective
     width because each module sheet also declared its own figure between 1080px and 1780px.
     Widths now come from three tokens and the header shares the content column exactly.
     `min-width: 0` stays because a grid or flex child otherwise sizes to its content. */
  .module-hero, .simple-page, .cortex-home, .hub-shell, .container, .action-container,
  .mos-page, .pm-container, .mi-container, .budget-shell, .eec-container, .kh-container,
  .campaign-shell, .request-shell {
    max-width: var(--uol-container-page);
    margin-inline: auto;
    min-width: 0;
    padding-left: max(var(--uol-gutter), var(--cortex-safe-left));
    padding-right: max(var(--uol-gutter), var(--cortex-safe-right));
  }
  /* One vertical rhythm between a page header and the first card beneath it. The module sheets
     variously used 0, 12px, 16px and 24px here, which is what made the gap look accidental. */
  .simple-page, .cortex-home, .hub-shell, .container, .action-container, .mos-page,
  .pm-container, .mi-container, .budget-shell, .eec-container, .kh-container, .campaign-shell {
    padding-top: var(--uol-space-4);
    padding-bottom: var(--uol-space-8);
  }

  /* The two deliberate exceptions to the standard column, both still inside the shell:
     the Campaign Studio builder, which carries a source panel, a canvas and an inspector
     side by side, and the public request form, which is a single column of fields. */
  .campaign-shell, .module-hero.cs-hero { max-width: var(--uol-container-workspace); }
  .request-shell { max-width: var(--uol-container-narrow); }

  /* Two workspaces own the whole viewport, and each does so only once its editor has mounted:
     Creative & Motion Studio and the Campaign Studio builder. Both declare `max-width: none`
     and `margin: 0` in `modules`, which this layer would otherwise beat, leaving the builder in
     a centred 1780px column instead of filling the shell. Only width and centring are restated
     — the gutters these two workspaces have always resolved through the shared rule above. */
  body.creative-motion-workspace.studio-pro-ready .mi-container,
  body.creative-motion-workspace.studio-layout .mi-container,
  body.campaign-workspace-ready .campaign-shell {
    max-width: none;
    margin-inline: 0;
  }
  .module-workspace { display: block; }
  .module-sidebar { position: static; width: auto; max-height: none; margin: 0 0 var(--uol-space-3); }

  /* One column is the default; wider screens opt in below. */
  .mi-grid-2, .mi-grid-3, .home-two-column, .home-three-column, .release-grid, .workspace-grid,
  .hub-summary, .mi-form, .scenario-grid, .quality-grid, .control-grid, .operating-cycle,
  .home-module-grid, .home-kpi-row, .request-grid, .form-grid, .detail-grid, .summary-grid,
  .metric-grid, .stats-grid, .mi-filterbar {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--uol-space-4);
  }
  .mi-filterbar > * { width: 100%; min-width: 0; }
  .module-hero-card { display: grid; grid-template-columns: 1fr; gap: var(--uol-space-5); align-items: flex-start; }
  .module-actions, .card-actions, .dialog-actions, .modal-actions, .mi-dialog-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    max-width: 100%;
    gap: var(--uol-space-2);
  }
  .module-actions > *, .card-actions > *, .dialog-actions > *, .modal-actions > *, .mi-dialog-actions > * {
    width: 100%;
    min-width: 0;
    justify-content: center;
  }
  .card-heading, .home-section-head, .hub-section-head, .library-head, .cs-library-head {
    align-items: flex-start;
    flex-direction: column;
    gap: var(--uol-space-3);
  }

  /* Tab strips scroll horizontally rather than wrapping into an unreadable stack. */
  .mi-tabs, [role="tablist"], .studio-toolbar, .cs-tool-tabs, .command-tabs {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .mi-tabs::-webkit-scrollbar, [role="tablist"]::-webkit-scrollbar, .studio-toolbar::-webkit-scrollbar { display: none; }
  .mi-tabs > *, [role="tablist"] > *, .studio-toolbar > * { flex: 0 0 auto; scroll-snap-align: start; }

  /* ---- Charts and dialogs ------------------------------------------------------ */
  .mi-chart, .chart-wrap, .chart-card, .canvas-wrap, .preview-wrap { max-width: 100%; min-width: 0; overflow: hidden; }
  /* Everything that opens over the page — dialog cards, drawer panels, the account menu, the
     command palettes, the assistant sheet — is capped to the viewport so it can never paint off
     screen. Only the cap is shared. The width and height each one wants belong to the component,
     and assigning them here is what painted the 330px account menu 640px wide, stopped the
     platform drawer 16px short of the bottom of its own overlay, and turned the assistant sheet
     into a 640px slab anchored to the left edge between 481px and 768px. Every element carrying
     `role="dialog"` in this platform declares its own width; none relied on one from here. */
  .mi-dialog, .dialog, .modal-card, [role="dialog"] {
    max-width: 100%;
    max-height: var(--cortex-vvh);
  }
  .mi-dialog, .dialog, .modal-card {
    width: calc(100vw - var(--uol-space-4));
    max-width: calc(100vw - var(--uol-space-4));
    max-height: calc(var(--cortex-vvh) - var(--uol-space-4));
    border-radius: var(--uol-radius-md);
  }
  .mi-modal, .modal, .cs-modal {
    overscroll-behavior: contain;
    padding: max(var(--uol-space-2), var(--cortex-safe-top)) var(--uol-gutter) max(var(--uol-space-2), var(--cortex-safe-bottom));
  }
  .page-footer { padding-bottom: calc(var(--uol-space-5) + var(--cortex-safe-bottom)); }

  /* ---- Ask Cortex -------------------------------------------------------------- */
  /* The assistant must never sit under the on-screen keyboard or over the safe area, and must
     never cover the content a question is about. `dvh` shrinks with the browser chrome. */
  .ask-cortex-launcher {
    position: fixed;
    right: max(var(--uol-space-4), var(--cortex-safe-right));
    bottom: calc(var(--uol-space-4) + var(--cortex-safe-bottom));
    z-index: var(--uol-z-drawer);
    min-width: 48px;
    min-height: 48px;
  }
  .ask-cortex-panel {
    position: fixed;
    inset: auto 0 0 0;
    z-index: var(--uol-z-drawer);
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
    height: min(88dvh, calc(var(--cortex-vvh) - var(--cortex-safe-top)));
    max-height: calc(var(--cortex-vvh) - var(--cortex-safe-top));
    padding-bottom: var(--cortex-safe-bottom);
    border-radius: var(--uol-radius-lg) var(--uol-radius-lg) 0 0;
    overscroll-behavior: contain;
  }
  .ask-cortex-panel [class*="transcript"], .ask-cortex-panel [class*="messages"] { flex: 1; min-height: 0; overflow: auto; }
  .ask-cortex-panel form, .ask-cortex-panel [class*="composer"] { flex: none; }
  /* An open assistant sheet stops the page behind it scrolling under the keyboard. */
  html.ask-cortex-open body { overflow: hidden; }

  /* ---- Studio on small screens ------------------------------------------------- */
  /* One workspace region at a time with a sticky switcher, rather than three panels
     compressed to 120px each. */
  @media (max-width: 1024px) {
    html.cortex-immersive-studio .global-shell { position: sticky; }
    .studio-workspace, .cs-pro-workspace, .cs-shell-grid, .studio-enterprise-grid {
      grid-template-columns: 1fr;
      height: auto;
      min-height: calc(var(--cortex-vvh) - 130px);
    }
    .studio-left-panel, .studio-right-panel, .cs-source-panel, .cs-inspector { max-height: none; width: 100%; }
    .studio-canvas-panel, .cs-preview-panel { min-height: 58vh; height: calc(var(--cortex-vvh) - 190px); }
    .studio-mobile-switcher, .cs-mobile-switcher {
      position: sticky;
      top: calc(62px + var(--cortex-safe-top));
      z-index: var(--uol-z-sticky);
      background: var(--uol-surface);
      padding: var(--uol-space-2) 0;
    }
    /* Regions the switcher has not selected are hidden rather than stacked. */
    .studio-workspace[data-mobile-region] > [data-studio-region]:not([data-studio-region-active]) { display: none; }
  }

  /* An honest message where a tool genuinely cannot work at phone width, instead of a
     silently broken canvas. Shown by studio-pro.js when it detects a hard minimum. */
  .studio-min-width-notice { display: none; }
  @media (max-width: 768px) {
    .studio-min-width-notice {
      display: block;
      padding: var(--uol-space-5);
      border: 1px dashed var(--uol-orange-30);
      border-radius: var(--uol-radius-md);
      background: var(--uol-orange-15);
      color: var(--uol-ink-on-orange);
      font-size: var(--uol-text-sm);
    }
    [data-min-width-tool] > :not(.studio-min-width-notice) { display: none; }
  }

  /* ---- Tablet: 481px and up --------------------------------------------------- */
  @media (min-width: 481px) {
    .module-actions, .card-actions, .dialog-actions, .modal-actions, .mi-dialog-actions {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .home-kpi-row, .metric-grid, .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mi-filterbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .shell-brand-copy { display: block; }
    .shell-brand-copy small { display: none; }
    /* Dialog cards only: a drawer panel, a popover menu and an assistant sheet each have their
       own width, and this is the rule that used to flatten all three to 640px. */
    .mi-dialog, .dialog, .modal-card { width: min(640px, calc(100vw - var(--uol-space-6))); }
  }

  /* ---- Laptop: 769px and up --------------------------------------------------- */
  @media (min-width: 769px) {
    .cx560-admin-head,
    .cx560-editor-head,
    .cx560-privacy-banner { flex-direction: row; }
    .cx560-status-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cx560-mapping-grid,
    .cx560-field-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cx560-validation { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
    .cx560-toolbar .platform-btn,
    .cx560-action-row .platform-btn { width: auto; }
    /* Wide data tables get their comfortable column widths back, unchanged from v5.5.0. The
       declarations were removed from the module sheets because there they also applied on a
       phone, where `min-width: 980px` in a 390px window is nothing but a sideways scroll. */
    .ap-table { min-width: 980px; }
    .mi-table { min-width: 850px; }
    .role-matrix { min-width: 920px; }
    .global-shell-inner { min-height: 76px; padding: var(--uol-space-2) var(--uol-space-5); }
    .shell-logo-box { width: 72px; height: 46px; }
    .shell-brand-copy small { display: block; }
    .user-chip #userLabel, .user-chip span:not(:first-child) { display: inline; }
    .nav-toggle { display: none; }
    .command-trigger { width: auto; min-width: 0; padding-inline: var(--uol-space-3); }
    .command-trigger span, .command-trigger strong { display: inline; }
    /* The brand takes the width of its own wordmark. It used to grow on equal terms with the
       navigation, which handed it 432px of a 1440px bar for 209px of content and left the five
       sections a share they could not fit. */
    .shell-brand { flex: 0 1 auto; }
    .primary-nav {
      position: static;
      display: flex;
      left: auto; right: auto; top: auto;
      max-height: none;
      /* The sheet's vertical scroll is not wanted here, but the row's horizontal one is: the shell
         layer declares `overflow: auto` with a hidden scrollbar precisely so a row that cannot fit
         is contained. Resetting both axes to `visible` removed the containment, and the sections
         that did not fit were painted across the utility cluster instead — "EEC" and the search
         trigger occupied the same pixels, so whichever painted last took the clicks. */
      overflow-x: auto;
      overflow-y: hidden;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: none;
      box-shadow: none;
    }
    .primary-nav a { width: auto; min-height: var(--uol-control-h); }
    .module-workspace { display: grid; }
    .mi-grid-2, .home-two-column, .workspace-grid, .hub-summary, .form-grid, .detail-grid,
    .summary-grid, .request-grid, .mi-form {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .mi-grid-3, .home-three-column, .release-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-kpi-row, .metric-grid, .stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .mi-filterbar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .module-hero-card { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
    .module-actions { display: flex; flex-wrap: wrap; justify-content: flex-start; width: auto; }
    .module-actions > * { width: auto; }
    .card-heading, .home-section-head, .hub-section-head, .library-head, .cs-library-head {
      flex-direction: row;
      align-items: center;
      justify-content: space-between;
    }
    /* Ask Cortex becomes a side panel that does not cover the content being asked about. */
    .ask-cortex-panel {
      inset: auto var(--uol-space-4) var(--uol-space-4) auto;
      width: min(420px, calc(100vw - var(--uol-space-6)));
      height: min(70dvh, 640px);
      border-radius: var(--uol-radius-lg);
    }
    html.ask-cortex-open body { overflow: auto; }
  }

  /* ---- Desktop: 1025px and up ------------------------------------------------- */
  @media (min-width: 1025px) {
    /* The full utility cluster belongs to the desktop band. On a laptop the bar has to seat the
       brand, five sections and the overflow trigger as well, and 1024px does not hold all three
       clusters at once: the academic year, the release dot and the two quick links are the ones
       that also appear behind "More" and in Settings, so they are what yields. Below this width
       the mobile-first rule above keeps them hidden. */
    .global-ay, .status-dot-link, .shell-utility > .utility-link { display: inline-flex; }
    .module-hero, .simple-page, .cortex-home, .hub-shell, .container, .action-container,
    .mos-page, .pm-container, .mi-container, .budget-shell, .eec-container, .kh-container,
    .campaign-shell, .request-shell {
      padding-left: var(--uol-space-5);
      padding-right: var(--uol-space-5);
    }
    .mi-grid-3, .home-three-column, .release-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .home-kpi-row, .metric-grid, .stats-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .mi-filterbar { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
    /* The sidebar pins below the bar, not 24px from the top of the window, which put it behind the
       nav on every route that has one. The bar's height is measured and republished on resize. */
    .module-sidebar { position: sticky; top: calc(var(--cortex-shell-height, 92px) + var(--uol-space-1)); width: 260px; }
    /* In the Studio the unified bar sits below the global one, so the sidebar clears both:
       `--cx-topbar` is the measured distance from the top of the window to the top of `main`. */
    .cm-studio .module-sidebar, .studio-pro-shell .module-sidebar { top: calc(var(--cx-topbar, 132px) + var(--uol-space-1)); }
  }
}

