/* =====================================================================
   V120 · Digital Hub RWTH blue / white identity
   Visual-only refinement. The Hub controller, routes, permissions,
   authentication and app workflows are unchanged.

   Design intent:
   - Digital Hub uses RWTH institutional blue (#00549F), its official tints,
     white and blue-derived neutrals only.
   - Product logos remain their original assets, but their Hub framing uses
     the shared RWTH-blue system rather than app-specific colour washes.
   - Icons never receive filled background tiles; icon containers stay
     transparent in light and dark themes.
   - Workspace cards become an interactive access-portal surface with a
     cursor-aware blue light field and reduced-motion fallback.
   ===================================================================== */
:root{
  --hub120-blue:#00549F;
  --hub120-blue-75:#407FB7;
  --hub120-blue-50:#8EBAE5;
  --hub120-blue-25:#C7DDF2;
  --hub120-blue-10:#E8F1FA;
  --hub120-blue-05:#F5F9FD;
  --hub120-white:#FFFFFF;
  --hub120-ink:#0A355C;
  --hub120-ink-2:#315C7E;
  --hub120-muted:#6686A1;
  --hub120-line:#D7E6F3;
  --hub120-line-strong:#A9CAE5;
  --hub120-page:#F7FAFD;
  --hub120-surface:#FFFFFF;
  --hub120-surface-soft:#F2F7FC;
  --hub120-surface-strong:#E8F1FA;
  --hub120-hover:#EEF5FB;
  --hub120-active:#00549F;
  --hub120-active-ink:#FFFFFF;
  --hub120-focus:0 0 0 3px rgba(0,84,159,.17);

  /* Replace every earlier Hub colour bridge with RWTH blue / white. */
  --hub119-bg:var(--hub120-page);
  --hub119-surface:var(--hub120-surface);
  --hub119-surface-soft:var(--hub120-surface-soft);
  --hub119-surface-quiet:var(--hub120-surface-strong);
  --hub119-line:var(--hub120-line);
  --hub119-line-strong:var(--hub120-line-strong);
  --hub119-ink:var(--hub120-ink);
  --hub119-ink-2:var(--hub120-ink-2);
  --hub119-muted:var(--hub120-muted);
  --hub119-brand:var(--hub120-blue);
  --hub119-brand-hover:#00457F;
  --hub119-brand-soft:var(--hub120-blue-10);
  --hub119-cyan:var(--hub120-blue);
  --hub119-cyan-soft:var(--hub120-blue-10);
  --hub119-teal:var(--hub120-blue-75);
  --hub119-teal-soft:var(--hub120-blue-10);
  --hub119-event:var(--hub120-blue);
  --hub119-hiwi:var(--hub120-blue);
  --hub119-action:var(--hub120-blue);
  --hub119-action-hover:#00457F;
  --hub119-nav-idle:var(--hub120-ink-2);
  --hub119-nav-hover:var(--hub120-hover);
  --hub119-nav-active:var(--hub120-active);

  --hub118-bg:var(--hub120-page);
  --hub118-surface:var(--hub120-surface);
  --hub118-surface-soft:var(--hub120-surface-soft);
  --hub118-surface-muted:var(--hub120-surface-strong);
  --hub118-line:var(--hub120-line);
  --hub118-line-strong:var(--hub120-line-strong);
  --hub118-ink:var(--hub120-ink);
  --hub118-ink-2:var(--hub120-ink-2);
  --hub118-muted:var(--hub120-muted);
  --hub118-accent:var(--hub120-blue);
  --hub118-accent-strong:#00457F;
  --hub118-accent-soft:var(--hub120-blue-10);
  --hub118-teal:var(--hub120-blue);
  --hub118-violet:var(--hub120-blue);
  --hub-suite-violet:var(--hub120-blue);
  --hub-suite-brand:var(--hub120-blue);
  --hub-suite-brand-strong:#00457F;
  --hub-suite-brand-soft:var(--hub120-blue-10);

  --bg:var(--hub120-page);
  --surface:var(--hub120-surface);
  --surface-raised:var(--hub120-surface);
  --surface-soft:var(--hub120-surface-soft);
  --surface-sunken:var(--hub120-surface-strong);
  --surface-tint:var(--hub120-surface);
  --ink:var(--hub120-ink);
  --ink-secondary:var(--hub120-ink-2);
  --muted:var(--hub120-muted);
  --line:var(--hub120-line);
  --line-strong:var(--hub120-line-strong);
  --accent:var(--hub120-blue);
  --accent-hover:#00457F;
  --accent-soft:var(--hub120-blue-10);
  --info:var(--hub120-blue);
  --info-soft:var(--hub120-blue-10);
  --info-line:var(--hub120-blue-25);
  --success:var(--hub120-blue);
  --success-soft:var(--hub120-blue-10);
  --success-line:var(--hub120-blue-25);
  --warning:var(--hub120-blue);
  --warning-soft:var(--hub120-blue-10);
  --warning-line:var(--hub120-blue-25);
  --danger:var(--hub120-blue);
  --danger-soft:var(--hub120-blue-10);
  --danger-line:var(--hub120-blue-25);
  --focus:var(--hub120-focus);
}
[data-theme="dark"]{
  --hub120-blue:#00549F;
  --hub120-blue-75:#407FB7;
  --hub120-blue-50:#8EBAE5;
  --hub120-blue-25:#C7DDF2;
  --hub120-blue-10:#E8F1FA;
  --hub120-blue-05:#F5F9FD;
  --hub120-white:#FFFFFF;
  --hub120-ink:#FFFFFF;
  --hub120-ink-2:#D9E9F6;
  --hub120-muted:#AFCDE5;
  --hub120-line:#2A5D89;
  --hub120-line-strong:#407FB7;
  --hub120-page:#061B2D;
  --hub120-surface:#0A2B49;
  --hub120-surface-soft:#0D355A;
  --hub120-surface-strong:#123F69;
  --hub120-hover:#123F69;
  --hub120-active:#407FB7;
  --hub120-active-ink:#FFFFFF;
  --hub120-focus:0 0 0 3px rgba(142,186,229,.26);

  --hub119-brand:#8EBAE5;
  --hub119-brand-hover:#C7DDF2;
  --hub119-action:#00549F;
  --hub119-action-hover:#176CA9;
  --accent:#8EBAE5;
  --accent-hover:#C7DDF2;
  --accent-soft:#123F69;
  --info:#8EBAE5;
  --success:#8EBAE5;
  --warning:#8EBAE5;
  --danger:#8EBAE5;
}

html{background:var(--hub120-page)!important}
body.imb-institutional-aurora,
[data-theme="dark"] body.imb-institutional-aurora{
  background:var(--hub120-page)!important;
  color:var(--hub120-ink)!important;
}

/* ----- Hub chrome ---------------------------------------------------- */
body.imb-institutional-aurora #hubSidebar,
body.imb-institutional-aurora .topbar{
  background:var(--hub120-surface)!important;
  border-color:var(--hub120-line)!important;
  box-shadow:none!important;
}
body.imb-institutional-aurora #hubSidebar .sidebar-brand,
body.imb-institutional-aurora #hubSidebar .sidebar-kicker,
body.imb-institutional-aurora .topbar-kicker{color:var(--hub120-blue)!important}

body.imb-institutional-aurora #hubSidebar .nav-link,
body.hub-manager-mode.imb-institutional-aurora #hubSidebar .sidebar-nav>.nav-link{
  background:transparent!important;
  color:var(--hub120-ink-2)!important;
  border-color:transparent!important;
  border-left-color:transparent!important;
  box-shadow:none!important;
  transition:background-color .16s ease,color .16s ease,border-color .16s ease!important;
}
body.imb-institutional-aurora #hubSidebar .nav-link::before,
body.imb-institutional-aurora #hubSidebar .nav-link::after,
body.hub-manager-mode.imb-institutional-aurora #hubSidebar .sidebar-nav>.nav-link::before,
body.hub-manager-mode.imb-institutional-aurora #hubSidebar .sidebar-nav>.nav-link::after{
  display:none!important;
  content:none!important;
}
body.imb-institutional-aurora #hubSidebar .nav-link:hover,
body.hub-manager-mode.imb-institutional-aurora #hubSidebar .sidebar-nav>.nav-link:hover{
  background:var(--hub120-hover)!important;
  color:var(--hub120-blue)!important;
}
body.imb-institutional-aurora #hubSidebar .nav-link.active,
body.hub-manager-mode.imb-institutional-aurora #hubSidebar .sidebar-nav>.nav-link.active{
  background:var(--hub120-active)!important;
  color:var(--hub120-active-ink)!important;
  border-color:transparent!important;
  border-left-color:transparent!important;
}
[data-theme="dark"] body.imb-institutional-aurora #hubSidebar .nav-link.active,
[data-theme="dark"] body.hub-manager-mode.imb-institutional-aurora #hubSidebar .sidebar-nav>.nav-link.active{
  background:var(--hub120-blue-75)!important;
  color:#fff!important;
}

/* Icons are glyphs, not tiles: no icon receives a filled background. */
body.imb-institutional-aurora #hubSidebar .nav-icon,
body.imb-institutional-aurora #hubSidebar .nav-link.active .nav-icon,
body.imb-institutional-aurora .mobile-nav-svg,
body.imb-institutional-aurora .app-icon-large,
body.imb-institutional-aurora .app-mini-icon,
body.imb-institutional-aurora .governance-action-icon,
body.imb-institutional-aurora .request-icon,
body.imb-institutional-aurora .status-symbol,
body.imb-institutional-aurora .launcher-app-icon,
body.imb-institutional-aurora .workflow-number{
  background:transparent!important;
  background-color:transparent!important;
  background-image:none!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
body.imb-institutional-aurora #hubSidebar .nav-icon,
body.imb-institutional-aurora .mobile-nav-svg,
body.imb-institutional-aurora .governance-action-icon,
body.imb-institutional-aurora .request-icon,
body.imb-institutional-aurora .status-symbol{color:currentColor!important}
body.imb-institutional-aurora .workflow-number{
  color:var(--hub120-blue)!important;
  border:1px solid var(--hub120-blue-25)!important;
}
[data-theme="dark"] body.imb-institutional-aurora .workflow-number{color:var(--hub120-blue-50)!important;border-color:var(--hub120-line)!important}

/* Theme icons stay transparent too; selection is expressed by colour. */
body.imb-institutional-aurora .ui-theme-toggle,
body.imb-institutional-aurora .hub-login-theme{
  background:transparent!important;
  border-color:var(--hub120-blue-25)!important;
  box-shadow:none!important;
}
body.imb-institutional-aurora .ui-theme-toggle button,
body.imb-institutional-aurora .ui-theme-toggle button.active,
body.imb-institutional-aurora .ui-theme-toggle button[aria-pressed="true"],
body.imb-institutional-aurora .hub-login-theme button,
body.imb-institutional-aurora .hub-login-theme button.active{
  background:transparent!important;
  box-shadow:none!important;
}
body.imb-institutional-aurora .ui-theme-toggle button{color:var(--hub120-muted)!important}
body.imb-institutional-aurora .ui-theme-toggle button.active,
body.imb-institutional-aurora .ui-theme-toggle button[aria-pressed="true"]{color:var(--hub120-blue)!important}
[data-theme="dark"] body.imb-institutional-aurora .ui-theme-toggle button.active,
[data-theme="dark"] body.imb-institutional-aurora .ui-theme-toggle button[aria-pressed="true"]{color:var(--hub120-blue-50)!important}

/* ----- Unified account / sign-out control --------------------------- */
.hub-account-exit-control{
  display:flex;
  align-items:center;
  min-width:0;
  border:1px solid var(--hub120-blue-25)!important;
  border-radius:999px!important;
  background:var(--hub120-surface)!important;
  overflow:hidden;
  box-shadow:none!important;
}
.hub-account-exit-control .hub-session-identity{
  min-height:2.5rem!important;
  padding:.22rem .38rem .22rem .28rem!important;
  background:transparent!important;
  border:0!important;
}
.hub-account-exit-control .hub-session-avatar{
  background:transparent!important;
  color:var(--hub120-blue)!important;
  border:1px solid var(--hub120-blue-25)!important;
  box-shadow:none!important;
}
.hub-account-exit-control .hub-session-copy strong{color:var(--hub120-ink)!important}
.hub-account-exit-control .hub-session-copy small{color:var(--hub120-muted)!important}
.hub-account-exit-control .hub-direct-signout{
  min-height:2.5rem!important;
  padding:.45rem .72rem .45rem .5rem!important;
  background:transparent!important;
  color:var(--hub120-blue)!important;
  border:0!important;
  border-left:0!important;
  box-shadow:none!important;
}
.hub-account-exit-control .hub-direct-signout:hover{
  background:var(--hub120-blue-10)!important;
  color:var(--hub120-blue)!important;
}
[data-theme="dark"] .hub-account-exit-control .hub-direct-signout:hover{background:var(--hub120-surface-strong)!important;color:#fff!important}

/* ----- Page surfaces / controls ------------------------------------- */
body.imb-institutional-aurora .simple-intro,
body.imb-institutional-aurora .surface,
body.imb-institutional-aurora .person-row,
body.imb-institutional-aurora .registry-card,
body.imb-institutional-aurora .workflow-panel,
body.imb-institutional-aurora .governance-panel,
body.imb-institutional-aurora .ai-connection-panel,
body.imb-institutional-aurora .manager-row,
body.imb-institutional-aurora .modular-note{
  background:var(--hub120-surface)!important;
  border-color:var(--hub120-line)!important;
  box-shadow:none!important;
}
body.imb-institutional-aurora .simple-intro .eyebrow,
body.imb-institutional-aurora .governance-head .eyebrow,
body.imb-institutional-aurora .ai-connection-head .eyebrow,
body.imb-institutional-aurora .section-heading-clean h2,
body.imb-institutional-aurora .registry-card .eyebrow{color:var(--hub120-blue)!important}
body.imb-institutional-aurora .person-row:hover,
body.imb-institutional-aurora .registry-card:hover{background:var(--hub120-blue-05)!important;border-color:var(--hub120-blue-50)!important;box-shadow:none!important;transform:none!important}
body.imb-institutional-aurora .person-row.review-row{background:var(--hub120-blue-05)!important}
body.imb-institutional-aurora .governance-head,
body.imb-institutional-aurora .ai-connection-note{background:var(--hub120-blue-05)!important;border-color:var(--hub120-line)!important}
body.imb-institutional-aurora .ai-enabled-toggle{background:var(--hub120-surface)!important;border-color:var(--hub120-blue-25)!important}
body.imb-institutional-aurora .count-badge,
body.imb-institutional-aurora .account-status,
body.imb-institutional-aurora .launcher-status-badge,
body.imb-institutional-aurora .launcher-status-badge.ready{
  background:var(--hub120-blue-10)!important;
  color:var(--hub120-blue)!important;
  border-color:var(--hub120-blue-25)!important;
}
[data-theme="dark"] body.imb-institutional-aurora .count-badge,
[data-theme="dark"] body.imb-institutional-aurora .account-status,
[data-theme="dark"] body.imb-institutional-aurora .launcher-status-badge,
[data-theme="dark"] body.imb-institutional-aurora .launcher-status-badge.ready{
  background:var(--hub120-surface-strong)!important;
  color:var(--hub120-blue-50)!important;
  border-color:var(--hub120-line)!important;
}
body.imb-institutional-aurora .btn.btn-primary,
body.imb-institutional-aurora .launcher-open-pill{
  background:var(--hub120-blue)!important;
  color:#fff!important;
  border-color:var(--hub120-blue)!important;
  box-shadow:none!important;
}
body.imb-institutional-aurora .btn.btn-primary:hover,
body.imb-institutional-aurora .launcher-open-pill:hover{background:#00457F!important;border-color:#00457F!important}
body.imb-institutional-aurora .btn.btn-secondary,
body.imb-institutional-aurora .btn-danger-soft{
  background:var(--hub120-surface)!important;
  color:var(--hub120-blue)!important;
  border-color:var(--hub120-blue-25)!important;
  box-shadow:none!important;
}
body.imb-institutional-aurora .btn.btn-secondary:hover,
body.imb-institutional-aurora .btn-danger-soft:hover{background:var(--hub120-blue-10)!important;border-color:var(--hub120-blue-50)!important;color:var(--hub120-blue)!important}
body.imb-institutional-aurora .field input,
body.imb-institutional-aurora .field select,
body.imb-institutional-aurora .field textarea,
body.imb-institutional-aurora .search-box{
  background:var(--hub120-surface)!important;
  color:var(--hub120-ink)!important;
  border-color:var(--hub120-line)!important;
  box-shadow:none!important;
}
body.imb-institutional-aurora .field input:focus,
body.imb-institutional-aurora .field select:focus,
body.imb-institutional-aurora .field textarea:focus,
body.imb-institutional-aurora .search-box:focus-within{border-color:var(--hub120-blue)!important;box-shadow:var(--hub120-focus)!important}

/* ----- Workspace access cards: interactive RWTH-blue portals -------- */
body.imb-institutional-aurora .app-card-grid{
  gap:1.15rem!important;
  align-items:stretch;
}
body.imb-institutional-aurora .hub-app-launcher{
  --hub-card-x:78%;
  --hub-card-y:18%;
  --workspace-tone:var(--hub120-blue);
  position:relative;
  isolation:isolate;
  overflow:hidden!important;
  background:var(--hub120-surface)!important;
  border:1px solid var(--hub120-blue-25)!important;
  border-radius:1.2rem!important;
  box-shadow:none!important;
  transform:translateZ(0)!important;
  transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease!important;
}
body.imb-institutional-aurora .launcher-key-event_navigator,
body.imb-institutional-aurora .launcher-key-academic_event_navigator,
body.imb-institutional-aurora .launcher-key-hiwilog{
  --workspace-tone:var(--hub120-blue)!important;
  --workspace-tone-soft:var(--hub120-blue-10)!important;
}
/* Cursor-aware light field. */
body.imb-institutional-aurora .hub-app-launcher::before{
  content:""!important;
  display:block!important;
  position:absolute!important;
  inset:0!important;
  width:auto!important;
  height:auto!important;
  border-radius:inherit!important;
  pointer-events:none!important;
  z-index:0!important;
  opacity:.72!important;
  background:
    radial-gradient(circle at var(--hub-card-x) var(--hub-card-y),rgba(0,84,159,.16),rgba(0,84,159,.055) 18%,transparent 38%),
    linear-gradient(145deg,rgba(0,84,159,.025),transparent 48%)!important;
  transform:none!important;
  transition:opacity .22s ease!important;
}
/* Blueprint signal field: deliberately abstract, only blue + transparent. */
body.imb-institutional-aurora .hub-app-launcher::after{
  content:"";
  position:absolute;
  z-index:0;
  right:-2.2rem;
  top:-2.4rem;
  width:13.5rem;
  height:13.5rem;
  pointer-events:none;
  opacity:.34;
  background-image:
    radial-gradient(circle,rgba(0,84,159,.34) 1px,transparent 1.15px),
    radial-gradient(circle at 50% 50%,transparent 52%,rgba(0,84,159,.16) 52.5%,rgba(0,84,159,.16) 53.2%,transparent 53.7%),
    radial-gradient(circle at 50% 50%,transparent 68%,rgba(0,84,159,.11) 68.5%,rgba(0,84,159,.11) 69.2%,transparent 69.7%);
  background-size:16px 16px,100% 100%,100% 100%;
  mask-image:radial-gradient(circle at 50% 50%,#000 0 64%,transparent 83%);
  -webkit-mask-image:radial-gradient(circle at 50% 50%,#000 0 64%,transparent 83%);
  transition:opacity .22s ease,transform .32s ease;
}
body.imb-institutional-aurora .hub-app-launcher:hover{
  background:var(--hub120-surface)!important;
  border-color:var(--hub120-blue)!important;
  box-shadow:0 14px 32px rgba(0,84,159,.08)!important;
  transform:translateY(-2px)!important;
}
body.imb-institutional-aurora .hub-app-launcher:hover::before{opacity:1!important}
body.imb-institutional-aurora .hub-app-launcher:hover::after{
  opacity:.62;
  transform:translate(-.45rem,.45rem) rotate(3deg);
  animation:hub120SignalDrift 7s linear infinite;
}
body.imb-institutional-aurora .hub-app-launcher:focus-visible{
  outline:none!important;
  border-color:var(--hub120-blue)!important;
  box-shadow:var(--hub120-focus)!important;
}
body.imb-institutional-aurora .hub-app-launcher>*{position:relative;z-index:1}
body.imb-institutional-aurora .hub-app-launcher .launcher-window-bar{
  min-height:3rem!important;
  padding:.82rem 1rem .58rem!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
body.imb-institutional-aurora .hub-app-launcher .launcher-window-bar::before{
  content:"IMB DIGITAL HUB · WORKSPACE"!important;
  color:var(--hub120-blue)!important;
  font-size:.62rem!important;
  font-weight:850!important;
  letter-spacing:.13em!important;
}
body.imb-institutional-aurora .launcher-dots{display:none!important}
body.imb-institutional-aurora .hub-app-launcher .launcher-stage{
  display:grid!important;
  grid-template-rows:auto auto 1fr auto!important;
  gap:1rem!important;
  padding:.7rem 1rem 1rem!important;
}
body.imb-institutional-aurora .hub-app-launcher .launcher-brand{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  gap:.92rem!important;
}
body.imb-institutional-aurora .hub-app-launcher .launcher-app-icon{
  width:4.35rem!important;
  height:4.35rem!important;
  padding:0!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  transition:transform .22s ease!important;
}
body.imb-institutional-aurora .hub-app-launcher .launcher-app-icon img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  border-radius:.95rem!important;
  box-shadow:none!important;
}
body.imb-institutional-aurora .hub-app-launcher:hover .launcher-app-icon{transform:scale(1.035) rotate(-.6deg)!important}
body.imb-institutional-aurora .hub-app-launcher .launcher-copy .eyebrow{color:var(--hub120-blue)!important;font-size:.65rem!important;letter-spacing:.11em!important}
body.imb-institutional-aurora .hub-app-launcher .launcher-copy h2{color:var(--hub120-ink)!important;letter-spacing:-.03em!important}
body.imb-institutional-aurora .hub-app-launcher .launcher-copy p{color:var(--hub120-muted)!important;max-width:36rem}
body.imb-institutional-aurora .launcher-feature-row{display:flex!important;flex-wrap:wrap!important;gap:.42rem!important;margin-top:.02rem!important}
body.imb-institutional-aurora .launcher-feature-row span{
  min-height:1.85rem!important;
  padding:.3rem .58rem!important;
  border:1px solid var(--hub120-blue-25)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.72)!important;
  color:var(--hub120-blue)!important;
  font-size:.71rem!important;
  font-weight:760!important;
  box-shadow:none!important;
}
[data-theme="dark"] body.imb-institutional-aurora .launcher-feature-row span{background:rgba(255,255,255,.035)!important;color:var(--hub120-blue-50)!important;border-color:var(--hub120-line)!important}
body.imb-institutional-aurora .hub-app-launcher .launcher-footer{
  margin-top:auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:.75rem!important;
  padding:.75rem 0 0!important;
  border:0!important;
  border-top:1px solid var(--hub120-line)!important;
  border-radius:0!important;
  background:transparent!important;
}
body.imb-institutional-aurora .launcher-role{
  background:transparent!important;
  border:0!important;
  color:var(--hub120-ink-2)!important;
  padding:.18rem 0!important;
  font-size:.71rem!important;
  font-weight:760!important;
}
body.imb-institutional-aurora .hub-app-launcher .launcher-open-pill{
  min-height:2.35rem!important;
  padding:.5rem .88rem!important;
  border-radius:999px!important;
  background:var(--hub120-blue)!important;
  border-color:var(--hub120-blue)!important;
  color:#fff!important;
  transition:background-color .16s ease,transform .16s ease!important;
}
body.imb-institutional-aurora .hub-app-launcher .launcher-open-pill::after{content:"↗"!important;margin-left:.45rem!important;transition:transform .16s ease}
body.imb-institutional-aurora .hub-app-launcher:hover .launcher-open-pill::after{transform:translate(.12rem,-.12rem)}
body.imb-institutional-aurora .hub-app-launcher.is-waiting{opacity:.82!important;transform:none!important;background:var(--hub120-surface-soft)!important}
body.imb-institutional-aurora .hub-app-launcher.is-waiting::after{opacity:.12!important;animation:none!important}
body.imb-institutional-aurora .hub-app-launcher.is-waiting .launcher-open-pill{background:transparent!important;border-color:var(--hub120-blue-25)!important;color:var(--hub120-muted)!important}
body.imb-institutional-aurora .hub-app-launcher.is-waiting .launcher-open-pill::after{content:""!important}

@keyframes hub120SignalDrift{
  0%{background-position:0 0,0 0,0 0}
  50%{background-position:8px 4px,0 0,0 0}
  100%{background-position:16px 8px,0 0,0 0}
}

/* Apps registry cards use the same portal language, without fake elevation. */
body.imb-institutional-aurora .registry-card{
  position:relative!important;
  overflow:hidden!important;
  border-color:var(--hub120-blue-25)!important;
  border-radius:1.05rem!important;
}
body.imb-institutional-aurora .registry-card::after{
  content:"";
  position:absolute;
  width:9rem;
  height:9rem;
  right:-3rem;
  top:-3rem;
  pointer-events:none;
  opacity:.22;
  background:radial-gradient(circle,rgba(0,84,159,.28) 1px,transparent 1.1px);
  background-size:14px 14px;
  mask-image:radial-gradient(circle,#000,transparent 70%);
  -webkit-mask-image:radial-gradient(circle,#000,transparent 70%);
}
body.imb-institutional-aurora .registry-card>*{position:relative;z-index:1}
body.imb-institutional-aurora .registry-card:hover{background:var(--hub120-surface)!important;border-color:var(--hub120-blue)!important}

/* ----- Modals / access editor --------------------------------------- */
body.imb-institutional-aurora .modal-backdrop{
  background:rgba(0,48,88,.38)!important;
  backdrop-filter:blur(3px)!important;
}
[data-theme="dark"] body.imb-institutional-aurora .modal-backdrop{background:rgba(0,18,34,.72)!important}
body.imb-institutional-aurora .modal{
  background:var(--hub120-surface)!important;
  border-color:var(--hub120-blue-25)!important;
  box-shadow:0 22px 56px rgba(0,84,159,.12)!important;
}
[data-theme="dark"] body.imb-institutional-aurora .modal{box-shadow:0 22px 58px rgba(0,15,30,.35)!important}
body.imb-institutional-aurora .modal-head,
body.imb-institutional-aurora .modal-header,
body.imb-institutional-aurora .modal-actions{
  background:var(--hub120-surface)!important;
  border-color:var(--hub120-line)!important;
}
body.imb-institutional-aurora .modal-close{
  background:transparent!important;
  border-color:transparent!important;
  color:var(--hub120-blue)!important;
  box-shadow:none!important;
}
body.imb-institutional-aurora .modal-close:hover{background:transparent!important;color:var(--hub120-blue-75)!important;border-color:transparent!important}
body.imb-institutional-aurora .person-identity-panel,
body.imb-institutional-aurora .access-role-option{background:var(--hub120-blue-05)!important;border-color:var(--hub120-line)!important}
body.imb-institutional-aurora .access-role-option:hover{background:var(--hub120-blue-10)!important;border-color:var(--hub120-blue-50)!important}
body.imb-institutional-aurora .access-role-option.is-active{background:var(--hub120-blue-10)!important;border-color:var(--hub120-blue)!important;color:var(--hub120-ink)!important}
body.imb-institutional-aurora .access-app-row{background:var(--hub120-surface)!important;border-color:var(--hub120-line)!important}
body.imb-institutional-aurora .info-box{background:var(--hub120-blue-05)!important;border-color:var(--hub120-blue-25)!important}

/* ----- Mobile navigation: no rails and no icon tiles ---------------- */
body.imb-institutional-aurora .hub-mobile-nav{
  background:var(--hub120-surface)!important;
  border-color:var(--hub120-line)!important;
  box-shadow:0 -4px 18px rgba(0,84,159,.055)!important;
}
body.imb-institutional-aurora .hub-mobile-nav a{color:var(--hub120-muted)!important;background:transparent!important}
body.imb-institutional-aurora .hub-mobile-nav a:hover{color:var(--hub120-blue)!important;background:var(--hub120-blue-05)!important}
body.imb-institutional-aurora .hub-mobile-nav a.active{color:var(--hub120-blue)!important;background:var(--hub120-blue-10)!important}
body.imb-institutional-aurora .hub-mobile-nav a::before,
body.imb-institutional-aurora .hub-mobile-nav a::after{display:none!important;content:none!important}
body.imb-institutional-aurora .hub-mobile-nav .mobile-nav-svg{background:transparent!important;border:0!important;box-shadow:none!important}

/* ----- Authentication / pending / feedback -------------------------- */
.login-page,.pending-page,.hub-boot-page{background:var(--hub120-page)!important}
.login-shell,.pending-card,.hub-boot-card{background:var(--hub120-surface)!important;border-color:var(--hub120-blue-25)!important;box-shadow:none!important}
.login-story{
  background:linear-gradient(150deg,#003F75 0%,var(--hub120-blue) 62%,#407FB7 100%)!important;
  box-shadow:none!important;
}
[data-theme="dark"] .login-story{background:linear-gradient(150deg,#002E57 0%,#00549F 72%,#407FB7 100%)!important}
.login-story::before{background:transparent!important}
.login-story::after{
  opacity:.72!important;
  background:
    radial-gradient(circle at 82% 76%,rgba(255,255,255,.18),transparent 35%),
    radial-gradient(circle,rgba(255,255,255,.22) 1px,transparent 1.2px)!important;
  background-size:auto,20px 20px!important;
}
.login-form-panel{background:var(--hub120-surface)!important}
.login-form-panel .field input{background:var(--hub120-surface)!important;border-color:var(--hub120-blue-25)!important}
.login-form-panel .field input:focus{background:var(--hub120-surface)!important;border-color:var(--hub120-blue)!important;box-shadow:var(--hub120-focus)!important}
.hub-auth-steps b,.hub-auth-steps b.complete{background:transparent!important;color:var(--hub120-muted)!important;border-color:var(--hub120-blue-25)!important}
.hub-auth-steps b.active{background:var(--hub120-blue)!important;color:#fff!important;border-color:var(--hub120-blue)!important}
.pending-identity{background:var(--hub120-blue-05)!important;border-color:var(--hub120-blue-25)!important}
body.imb-institutional-aurora .toast{background:var(--hub120-blue)!important;color:#fff!important;box-shadow:none!important}

/* ----- Responsive composition --------------------------------------- */
@media(max-width:700px){
  body.imb-institutional-aurora .hub-app-launcher .launcher-window-bar{min-height:2.7rem!important;padding:.7rem .82rem .48rem!important}
  body.imb-institutional-aurora .hub-app-launcher .launcher-stage{padding:.62rem .82rem .82rem!important;gap:.82rem!important}
  body.imb-institutional-aurora .hub-app-launcher .launcher-app-icon{width:3.75rem!important;height:3.75rem!important}
  body.imb-institutional-aurora .hub-app-launcher::after{width:10.5rem;height:10.5rem;right:-3rem;top:-3rem}
  body.imb-institutional-aurora .modal{box-shadow:0 14px 32px rgba(0,84,159,.10)!important}
}
@media(max-width:520px){
  body.imb-institutional-aurora .hub-app-launcher{border-radius:1rem!important}
  body.imb-institutional-aurora .hub-app-launcher .launcher-brand{grid-template-columns:3.35rem minmax(0,1fr)!important;gap:.7rem!important}
  body.imb-institutional-aurora .hub-app-launcher .launcher-app-icon{width:3.35rem!important;height:3.35rem!important}
  body.imb-institutional-aurora .hub-app-launcher .launcher-copy h2{font-size:1.35rem!important}
  body.imb-institutional-aurora .launcher-feature-row span{font-size:.68rem!important;padding:.26rem .5rem!important}
  body.imb-institutional-aurora .hub-app-launcher .launcher-footer{align-items:center!important;flex-direction:row!important}
  body.imb-institutional-aurora .hub-app-launcher .launcher-open-pill{white-space:nowrap!important}
  .hub-account-exit-control{border-radius:.8rem!important}
  .hub-account-exit-control .hub-session-copy{display:none!important}
  .hub-account-exit-control .hub-session-identity{padding:.18rem .28rem!important}
  .hub-account-exit-control .hub-direct-signout{width:2.4rem!important;min-width:2.4rem!important;padding:0!important;justify-content:center!important}
  .hub-account-exit-control .hub-direct-signout span{display:none!important}
}
@media(max-width:380px){
  body.imb-institutional-aurora .hub-app-launcher .launcher-footer{align-items:stretch!important;flex-direction:column!important}
  body.imb-institutional-aurora .hub-app-launcher .launcher-open-pill{justify-content:center!important;width:100%!important}
}

@media(prefers-reduced-motion:reduce){
  body.imb-institutional-aurora .hub-app-launcher,
  body.imb-institutional-aurora .hub-app-launcher::before,
  body.imb-institutional-aurora .hub-app-launcher::after,
  body.imb-institutional-aurora .hub-app-launcher .launcher-app-icon,
  body.imb-institutional-aurora .hub-app-launcher .launcher-open-pill,
  body.imb-institutional-aurora .hub-app-launcher .launcher-open-pill::after{
    animation:none!important;
    transition:none!important;
    transform:none!important;
  }
}

/* Digital Hub presents connected apps through transparent RWTH-blue symbols.
   Product applications keep their original logos inside their own apps. */
body.imb-institutional-aurora img[data-hub-rwth-icon="true"]{
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
  object-fit:contain!important;
}
body.imb-institutional-aurora .launcher-app-icon img[data-hub-rwth-icon="true"],
body.imb-institutional-aurora .app-mini-icon img[data-hub-rwth-icon="true"],
body.imb-institutional-aurora .app-icon-large img[data-hub-rwth-icon="true"]{
  border-radius:0!important;
  padding:.15rem!important;
}
[data-theme="dark"] body.imb-institutional-aurora img[data-hub-rwth-icon="true"]{
  filter:brightness(0) invert(1)!important;
}
