/* Practice mode shares the live judge workspace and has an unmistakable label. */
.site-header .portal-demo-link { font-size: .85rem; white-space: nowrap; }
.demo-mode .portal-demo-link, .demo-mode #signout { display: none; }
.demo-banner {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  max-width: 1424px; width: calc(100% - 80px); margin: 0 auto 20px;
  padding: 18px 22px; border: 1px solid var(--gold); border-left: 5px solid var(--gold);
  border-radius: 12px; background: #F1E7D0; color: var(--navy);
}
.demo-banner h1 { margin: 0 0 6px; font-size: 1rem; letter-spacing: 0; line-height: 1.4; }
.demo-banner p { max-width: 72ch; margin: 0; font-size: .85rem; line-height: 1.6; }
.demo-banner-actions { display: flex; gap: 10px; flex-shrink: 0; align-items: center; }
.demo-banner-actions .button { min-height: 44px; white-space: nowrap; font-size: .85rem; }
.demo-banner :is(a, button):focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; }
.login-demo { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--line); }
.login-demo .button { width: 100%; }
.login-demo p { margin: 10px 0 0; font-size: .85rem; }
@media (max-width: 700px) {
  .site-header { flex-wrap: wrap; gap: 12px; }
  .site-header .portal-demo-link { margin-left: auto; }
  .demo-banner { width: calc(100% - 32px); padding: 15px; gap: 14px; flex-direction: column; align-items: stretch; }
  .demo-banner-actions { flex-wrap: wrap; }
  .demo-banner-actions .button { flex: 1; }
}

.portal-demo-link[hidden] { display: none; }
