/* Application launcher: quiet shared chrome, recognisable individual tools. */
.hub-main { max-width: 1140px; padding: 44px 40px 64px; }
.hub-header { padding: 0 32px; height: 64px; }
.intro-group { margin-bottom: 28px; align-items: flex-start; }
.workspace-greeting { font-size: 12px; color: var(--hub-ink-secondary); margin-bottom: 8px; }
.hub-title { font-size: 28px; line-height: 1.3; font-weight: 500; letter-spacing: -.7px; }
.hub-subtitle { font-size: 13px; margin-top: 10px; }
.hub-endpoint-caption { font-size: 11px; border: 1px solid var(--hub-line); border-radius: 20px; padding: 5px 10px; }
.omnibar-region { margin-bottom: 30px; gap: 14px; }
.omnibar-field { height: 46px; box-shadow: none; border-radius: 8px; font-size: 13px; }
.domain-chip { font-size: 11px; padding: 7px 11px; }
.launcher-section { margin-bottom: 30px; }
.launcher-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.launcher-section-heading h2 { font-size: 14px; font-weight: 500; display: flex; align-items: center; gap: 9px; }
.launcher-section-heading h2 > span { font-size: 11px; color: var(--hub-ink-muted); font-weight: 400; }
.launcher-section-heading p { color: var(--hub-ink-secondary); font-size: 11px; }
.application-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.application-tile { position: relative; border: 1px solid var(--hub-line); border-radius: 10px; background: var(--hub-bg-surface); transition: border-color .15s, box-shadow .15s; min-width: 0; }
.application-tile:hover { border-color: var(--hub-line-strong); box-shadow: 0 3px 12px rgb(0 0 0 / 3%); }
.application-link { display: flex; flex-direction: column; align-items: flex-start; height: 100%; min-height: 204px; padding: 22px; gap: 16px; color: var(--hub-ink-primary); text-decoration: none; border-radius: inherit; }
.app-icon { display: grid; place-items: center; width: 42px; height: 42px; background: var(--hub-bg-subtle); border: 1px solid var(--hub-line); border-radius: 10px; flex-shrink: 0; }
.app-icon svg { width: 23px; height: 23px; }
.app-copy { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.app-title-line { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.app-title-line strong { font-size: 14px; line-height: 1.4; font-weight: 500; }
.app-summary { color: var(--hub-ink-secondary); font-size: 12px; line-height: 1.65; max-width: 32ch; }
.launch-action { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 500; margin-top: auto; padding-top: 1px; }
.launch-action > span { color: var(--hub-ink-muted); font-size: 14px; }
.pin-app { position: absolute; top: 12px; right: 12px; width: 32px; height: 32px; display: grid; place-items: center; color: var(--hub-ink-muted); background: transparent; border: 0; border-radius: 6px; cursor: pointer; }
.pin-app:hover, .pin-app.is-pinned { background: var(--hub-bg-subtle); color: var(--hub-ink-primary); }
.lifecycle-tag { font-size: 9px; font-weight: 400; padding: 1px 5px; border-radius: 4px; }
.is-unavailable .application-link { opacity: .65; }
.application-list { display: flex; flex-direction: column; gap: 8px; }
.application-row .application-link { flex-direction: row; align-items: center; min-height: 90px; padding: 16px 60px 16px 18px; gap: 16px; }
.application-row .app-copy { flex: 1; }
.application-row .app-summary { max-width: none; }
.application-row .launch-action { margin: 0 8px 0 12px; flex-shrink: 0; }
.application-row .pin-app { top: 50%; transform: translateY(-50%); }
#documentsSection .application-grid { grid-template-columns: 1fr; }
#documentsSection .application-link { flex-direction: row; align-items: center; min-height: 94px; padding: 20px 60px 20px 22px; }
#documentsSection .app-copy { flex: 1; }
#documentsSection .app-summary { max-width: none; }
#documentsSection .launch-action { margin: 0 12px; flex-shrink: 0; }
#documentsSection .pin-app { top: 50%; transform: translateY(-50%); }
.hub-footer { font-size: 10px; color: var(--hub-ink-secondary); }

/* User identity header cluster enhancements */
.user-identity { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.user-meta { display: flex; align-items: center; gap: 8px; }
.user-signout-btn { background: none; border: none; padding: 0; font-size: 11px; color: var(--hub-ink-muted); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
.user-signout-btn:hover { color: var(--hub-ink-primary); }
.sim-badge { font-size: 10px; color: var(--hub-ink-muted); background: var(--hub-bg-subtle); border: 1px solid var(--hub-line); border-radius: 4px; padding: 1px 5px; margin-left: 4px; }

/* Auth Gate Container & Cards (Fail-closed Microsoft Entra gate) */
.auth-gate-container { display: flex; justify-content: center; align-items: center; padding: 60px 20px; width: 100%; min-height: 380px; }
.auth-gate-card { max-width: 480px; width: 100%; background: var(--hub-bg-surface); border: 1px solid var(--hub-line); border-radius: 12px; padding: 36px 32px; display: flex; flex-direction: column; align-items: center; text-align: center; box-shadow: 0 4px 20px rgb(0 0 0 / 2%); }
.auth-brand-mark { font-size: 14px; font-weight: 600; letter-spacing: 2px; color: var(--hub-ink-primary); margin-bottom: 20px; }
.auth-title { font-size: 20px; font-weight: 600; color: var(--hub-ink-primary); margin-bottom: 10px; letter-spacing: -0.3px; }
.auth-subtitle { font-size: 13px; color: var(--hub-ink-secondary); line-height: 1.6; margin-bottom: 28px; max-width: 38ch; }
.auth-primary-btn { display: inline-flex; align-items: center; justify-content: center; background: var(--hub-action-bg); color: var(--hub-action-text); border: 1px solid var(--hub-action-bg); border-radius: 6px; padding: 10px 20px; font-size: 13px; font-weight: 500; text-decoration: none; cursor: pointer; transition: background .15s; width: 100%; }
.auth-primary-btn:hover { background: var(--hub-action-hover); }
.auth-secondary-btn { display: inline-flex; align-items: center; justify-content: center; background: var(--hub-bg-subtle); color: var(--hub-ink-primary); border: 1px solid var(--hub-line); border-radius: 6px; padding: 10px 20px; font-size: 13px; font-weight: 500; text-decoration: none; cursor: pointer; transition: background .15s; width: 100%; }
.auth-secondary-btn:hover { background: var(--hub-bg-hover); }
.auth-footnote { font-size: 11px; color: var(--hub-ink-muted); margin-top: 20px; line-height: 1.5; }

@media (max-width: 900px) {
  .application-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hub-main { padding: 32px 24px 48px; }
  .hub-title { font-size: 25px; }
}
@media (max-width: 600px) {
  .hub-header { padding: 0 18px; height: 58px; }
  .hub-main { padding: 26px 18px 40px; }
  .intro-group { gap: 12px; }
  .hub-title { font-size: 24px; max-width: 20ch; }
  .hub-endpoint-caption { display: none; }
  .application-grid { grid-template-columns: 1fr; gap: 10px; }
  .application-link { min-height: 184px; padding: 20px; gap: 14px; }
  .pin-app { width: 44px; height: 44px; top: 7px; right: 7px; }
  .app-summary { max-width: 38ch; }
  .launcher-section-heading p { display: none; }
  .application-row .application-link { flex-wrap: wrap; padding-right: 52px; }
  .application-row .launch-action { margin: 0 0 0 58px; }
  #documentsSection .application-link { flex-wrap: wrap; padding: 20px 52px 20px 20px; }
  #documentsSection .app-copy { flex-basis: calc(100% - 62px); }
  #documentsSection .launch-action { margin: 0 0 0 58px; }
  .hub-footer { gap: 8px; text-align: center; }
}
