/* Shared AIMCODE portal iconography: preserve the React navigation and compact rail. */
.app-shell .sidebar {
  background:
    radial-gradient(ellipse 86% 26% at 36% 0%, rgba(112, 66, 203, .18), transparent 85%),
    linear-gradient(180deg, #1a1230 0%, #100c1c 52%, #110d1d 100%) !important;
  border-right: 1px solid rgba(188, 159, 243, .17) !important;
  box-shadow: inset -1px 0 rgba(255,255,255,.035), 10px 0 38px rgba(5,4,14,.12);
}
.app-shell .sidebar-head { border-bottom: 1px solid rgba(196,175,240,.13) !important; }
.app-shell .sidebar-head .brand-mark img {
  filter: drop-shadow(0 6px 13px rgba(135,94,248,.26));
}
.app-shell .sidebar-context {
  border-radius: 15px !important;
  border-color: rgba(201,177,248,.16) !important;
  background: rgba(176,139,246,.055) !important;
}
.app-shell .main-navigation {
  gap: 5px;
  padding-inline: 12px;
}
.app-shell .main-navigation > button,
.app-shell .main-navigation > a.aim-sidebar-doc-link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 51px;
  padding: 5px 10px;
  border: 1px solid transparent;
  border-radius: 12px;
  color: #b6adc8;
  background: transparent;
  font: 600 14px/1.2 "Instrument Sans", system-ui, sans-serif;
  text-align: left;
  text-decoration: none;
  transition: color .16s ease, background .16s ease, border-color .16s ease;
}
.app-shell .main-navigation > button > svg,
.app-shell .main-navigation > a.aim-sidebar-doc-link .aim-sidebar-icon {
  display: grid;
  flex: 0 0 36px;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 8px;
  border: 1px solid rgba(194,172,237,.14);
  border-radius: 10px;
  background: rgba(185,149,254,.075);
  color: #c4b3e9;
  box-sizing: border-box;
}
.app-shell .main-navigation > a.aim-sidebar-doc-link .aim-sidebar-icon { padding: 7px; }
.app-shell .main-navigation > a.aim-sidebar-doc-link .aim-sidebar-icon svg {
  display: block;
  width: 20px;
  height: 20px;
}
.app-shell .main-navigation > a.aim-sidebar-doc-link::before { content: none !important; display: none !important; }
.app-shell .main-navigation > button:hover,
.app-shell .main-navigation > a.aim-sidebar-doc-link:hover {
  color: #f3eafe !important;
  border-color: rgba(175,144,239,.22);
  background: rgba(182,143,248,.085) !important;
}
.app-shell .main-navigation > button.active {
  color: #fff !important;
  border-color: rgba(200,170,255,.61) !important;
  background: linear-gradient(104deg, rgba(130,90,223,.29), rgba(165,126,249,.13)) !important;
  box-shadow: inset 0 1px rgba(239,221,255,.10), 0 8px 24px rgba(10,6,23,.15);
}
.app-shell .main-navigation > button.active > svg {
  color: #fff;
  border-color: rgba(226,204,255,.38);
  background: linear-gradient(140deg,#a88af8,#724bdb);
  box-shadow: 0 4px 14px rgba(134,94,229,.30);
}
.app-shell .main-navigation > button:focus-visible,
.app-shell .main-navigation > a.aim-sidebar-doc-link:focus-visible,
.app-shell .collapse-button:focus-visible {
  outline: 2px solid #d7beff !important;
  outline-offset: 2px !important;
}
.app-shell .main-navigation > a.aim-sidebar-doc-link .aim-sidebar-copy {
  display: block;
  font: inherit;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.app-shell:not(.sidebar-compact) .main-navigation > a.aim-sidebar-doc-link {
  margin-top: 4px;
  width: 100%;
}
.app-shell.sidebar-compact .main-navigation > button,
.app-shell.sidebar-compact .main-navigation > a.aim-sidebar-doc-link {
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  border-radius: 13px !important;
}
.app-shell.sidebar-compact .main-navigation > button > svg,
.app-shell.sidebar-compact .main-navigation > a.aim-sidebar-doc-link .aim-sidebar-icon {
  display: grid !important;
  flex: none !important;
  width: 38px !important;
  height: 38px !important;
  padding: 9px !important;
}
.app-shell.sidebar-compact .main-navigation > a.aim-sidebar-doc-link .aim-sidebar-copy { display: none !important; }
.app-shell.sidebar-compact .sidebar-head .brand-mark img {
  width: 32px !important;
  height: 32px !important;
  object-fit: contain;
}
.app-shell.sidebar-compact .sidebar-head .brand-mark { width: 32px !important; min-width: 32px !important; max-width: 32px !important; }
@media (max-width: 760px) {
  .app-shell .main-navigation { padding-inline: 12px !important; }
  .app-shell .main-navigation > a.aim-sidebar-doc-link { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .app-shell .main-navigation > button,
  .app-shell .main-navigation > a.aim-sidebar-doc-link { transition: none; }
}

/* Present before React's first paint, on direct loads AND after sign-in. */
.app-shell .sidebar-context { display: none !important; }
.app-shell .sidebar {
  display: flex !important; flex-direction: column !important;
  height: 100dvh !important; max-height: 100dvh !important;
  overflow: hidden !important;
}
.app-shell .sidebar-head, .app-shell .sidebar-system { flex: 0 0 auto !important; }
.app-shell .main-navigation {
  display: flex !important; flex-direction: column !important;
  flex: 1 1 0 !important; min-height: 0 !important;
  padding-block: 16px !important; overflow-y: auto !important;
  overflow-x: hidden !important; overscroll-behavior-y: contain;
  scrollbar-width: thin; -webkit-overflow-scrolling: touch;
}
.app-shell .main-navigation > * { flex-shrink: 0 !important; }
.app-shell .sidebar-system { padding-bottom: max(14px, env(safe-area-inset-bottom)); }
/* No bootstrap is allowed to hide the entire authenticated application. */
html.aim-portal-boot .app-shell { visibility: visible !important; opacity: 1 !important; }
body.portal-menu-open .aim-pwa-install-launcher { display: none !important; }
.auth-screen .auth-panel > a.auth-text-action[href*="mode=login"] {
  display: flex !important; align-items: center !important; justify-content: center !important;
  gap: 10px !important; width: 100% !important; min-height: 48px !important;
  padding: 12px 16px !important; margin: 16px 0 20px !important;
  box-sizing: border-box !important; border: 1px solid #a88adc66 !important;
  border-radius: 12px !important; color: #e6d7ff !important;
  background: #30233e80 !important; font: 600 14px/1.4 system-ui,sans-serif !important;
  text-decoration: none !important; transition: background-color .15s, border-color .15s;
}
.auth-screen .auth-panel > a.auth-text-action[href*="mode=login"]::before {
  content: ""; width: 20px; height: 20px; flex: 0 0 20px;
  background: url("./aimcode-portal-login-key-20261018.svg") center / contain no-repeat;
}
.auth-screen .auth-panel > a.auth-text-action[href*="mode=login"]:hover {
  background: #4a326680 !important; border-color: #c0a2f4 !important;
}
.auth-screen .auth-panel > a.auth-text-action[href*="mode=login"]:focus-visible {
  outline: 2px solid #d5baff !important; outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .auth-screen .auth-panel > a.auth-text-action[href*="mode=login"] { transition: none; }
}
