/* Sprint 010: restrained Administrator system-update surface and legal/compliance pages. */

/* The primary site banner stays visible while the poster calendar loads earlier/later months. */
.site-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: var(--paper);
  isolation: isolate;
}

/* Keep keyboard skip navigation above the sticky banner and event drawer. */
.skip-link { z-index: 90; }

.system-update-page .update-status-section {
  border-top: 3px solid var(--ink);
}

.update-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
}

.update-section-heading h2,
.update-section-heading p {
  margin-bottom: 6px;
}

.update-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 22px 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}

.update-facts > div {
  min-width: 0;
  padding: 14px 16px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.update-facts dt {
  margin-bottom: 5px;
  font-family: var(--display);
  font-size: .69rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.update-facts dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.update-facts code {
  font-size: .78rem;
}

.update-state {
  font-family: var(--display);
  font-weight: 800;
  text-transform: capitalize;
}

.update-state-success,
.update-state-up_to_date,
.update-state-available {
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-decoration-color: var(--sun);
  text-underline-offset: 4px;
}

.update-state-failed,
.update-state-rollback_failed,
.update-state-unavailable,
.update-state-blocked {
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-decoration-color: var(--coral);
  text-underline-offset: 4px;
}

.update-state-running,
.update-state-checking,
.update-state-pending {
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-decoration-color: var(--sky);
  text-underline-offset: 4px;
}

.update-notice {
  margin: 18px 0;
  padding: 10px 14px;
  border-left: 5px solid var(--sky);
  background: rgba(255, 255, 255, .35);
}

.update-notice-success { border-left-color: var(--sun); }
.update-notice-error { border-left-color: var(--coral); }

.update-install-action {
  margin-top: 8px;
  font-size: 1rem;
}

.update-manual-required {
  margin: 20px 0;
  padding: 16px 18px;
  border: 2px solid var(--ink);
  box-shadow: 7px 7px 0 var(--sun);
}

.update-manual-required pre {
  max-width: 100%;
  overflow-x: auto;
  padding: 12px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, .5);
}

.update-live-status {
  margin-top: 18px;
  font-family: var(--display);
  font-weight: 800;
}

.system-update-page button[disabled] {
  opacity: .42;
  cursor: not-allowed;
}

.legal-page {
  max-width: 1040px;
}

.legal-page > h1 {
  max-width: 980px;
}

.legal-effective {
  margin: 18px 0 0;
  font-family: var(--display);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.legal-page > section {
  max-width: 860px;
}

.legal-page h3 {
  margin: 22px 0 7px;
  font-family: var(--display);
  font-size: 1.14rem;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.legal-page p,
.legal-page li {
  max-width: 800px;
}

.legal-page ul {
  max-width: 800px;
  padding-left: 1.3rem;
}

.legal-page li + li {
  margin-top: 7px;
}

.footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: .78rem;
  font-weight: 800;
}

.footer-legal a {
  text-decoration-thickness: 1px;
}

.legal-consent {
  grid-template-columns: 20px minmax(0, 1fr) !important;
  align-items: start;
  gap: 10px !important;
  font-size: .83rem !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  line-height: 1.4;
  text-transform: none !important;
}

.legal-consent input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  padding: 0;
  border: 1px solid var(--ink);
  box-shadow: none;
}

.auth-legal-notice {
  max-width: 560px;
  margin: 30px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .82rem;
}

@media (max-width: 860px) {
  .update-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .update-section-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .update-facts { grid-template-columns: 1fr; }
  .footer-legal { gap: 11px; }
}
