.scu-access[data-app="portalx"] { --accent: #355dcc; --rgb: 53,93,204; --bg: #f4f6fc; --ink: #192642; --muted: #596982; --edge: #e3e9f6; }
.scu-access[data-app="iacdeck"] { --accent: #a92332; --rgb: 169,35,50; --bg: #fcf5f5; --ink: #361f25; --muted: #7a5d64; --edge: #f2e2e5; }
.scu-access[data-app="aibox"] { --accent: #087f5b; --rgb: 14,163,113; --bg: #f3f8f5; --ink: #14291f; --muted: #536f62; --edge: #deece4; }
.scu-access[data-app="shield"] { --accent: #145669; --rgb: 20,86,105; --bg: #f1f7f9; --ink: #15333e; --muted: #526e79; --edge: #dceaf0; }
 .scu-access, .scu-access * { box-sizing: border-box; }

.scu-access { position: fixed; inset: 0; z-index: 10000; overflow: auto; background: var(--bg); color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; }
.access-screen { isolation: isolate; display: grid; grid-template-rows: auto 1fr; min-height: 100vh; min-height: 100svh; }
.access-decor { position: fixed; inset: 0; overflow: hidden; z-index: -1; pointer-events: none; }
.access-grid { position: absolute; inset: 0; background-image: linear-gradient(to right,rgba(var(--rgb),.055) 1px,transparent 1px),linear-gradient(to bottom,rgba(var(--rgb),.055) 1px,transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(ellipse 75% 70% at 50% 45%,#000 30%,transparent 100%); -webkit-mask-image: radial-gradient(ellipse 75% 70% at 50% 45%,#000 30%,transparent 100%); }
.access-glow { position: absolute; left: 50%; top: 42%; width: min(760px,140vw); aspect-ratio: 1; transform: translate(-50%,-50%); background: radial-gradient(circle,rgba(var(--rgb),.16),rgba(var(--rgb),.06) 42%,transparent 68%); }
.access-edge { position: absolute; inset: 0; background: radial-gradient(ellipse 120% 100% at 50% 50%,transparent 55%,var(--edge) 100%); opacity: .7; }
.access-brand { display: flex; align-items: center; gap: 12px; padding: clamp(24px,3.2vw,44px) clamp(24px,4vw,52px); font-size: 19px; font-weight: 650; letter-spacing: .2px; }
.access-brand img { width: 30px; height: 30px; }
.access-brand .iacdeck-mark { width: 80px; height: 80px; object-fit: contain; }
/* Match the actual AIBox page mark in AIBox.Client/wwwroot/aibox.css. */
.aibox-page-logo { display: grid; flex: none; grid-template-columns: 11px 11px; gap: 3px; background: #eaf3f8; border-radius: 11px; padding: 10px; width: 45px; height: 45px; transform: rotate(-3deg); }
.aibox-page-logo span { border-radius: 2px; background: #397f9c; }
.aibox-page-logo span:nth-child(2) { background: #8bc2ca; }
.aibox-page-logo span:nth-child(3) { grid-column: span 2; background: #a8cdd9; }
.access-content { width: min(100%,624px); margin: auto; text-align: center; padding: 32px 24px max(72px,12vh); overflow-wrap: anywhere; }
.access-orb { width: 96px; height: 96px; margin: 0 auto; border-radius: 50%; display: grid; place-items: center; color: var(--accent); background: rgba(var(--rgb),.1); border: 1px solid rgba(var(--rgb),.28); box-shadow: 0 0 40px rgba(var(--rgb),.16),inset 0 0 24px rgba(var(--rgb),.05); }
.access-content h1 { margin: 32px 0 12px; font-size: clamp(28px,4vw,40px); line-height: 1.35; font-weight: 600; letter-spacing: .045em; }
.access-description { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.8; }
.access-login { display: inline-flex; align-items: center; justify-content: center; gap: 22px; min-height: 46px; margin-top: 28px; padding: 10px 26px; background: var(--accent); color: #fff; border: 1px solid var(--accent); border-radius: 10px; text-decoration: none; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
.access-login:hover { filter: brightness(.94); }
.access-login:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
.access-preview-note { color: var(--muted); font-size: 13px; line-height: 1.7; margin: 18px auto 0; max-width: 28em; }
.access-spinner { animation: access-spin 1.1s linear infinite; }
@keyframes access-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .access-spinner { animation: none; } }
@media (max-height: 520px) {
  .access-brand { padding: 18px 24px; }
  .access-brand .iacdeck-mark { width: 56px; height: 56px; }
  .access-content { padding: 8px 24px 28px; }
  .access-orb { width: 66px; height: 66px; }
  .access-orb svg { width: 34px; height: 34px; }
  .access-content h1 { font-size: 28px; margin-top: 18px; }
  .access-description { font-size: 15px; }
  .access-login { margin-top: 20px; }
}

.scu-access .access-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.scu-access .access-secondary { background: transparent; color: var(--accent); }
.scu-access [hidden] { display:none !important; }
