/* Legal and operator access pages. Shared Skyfy typography and color tokens. */
.operator-access {
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--color-text);
  white-space: nowrap;
}
.operator-access:hover { color: var(--color-primary); }
.nav-inner { gap: var(--space-5); }
.nav-links { gap: var(--space-4); }
.footer-inner { grid-template-columns: 1fr minmax(0, 1.8fr) auto; }
.skip-link { position: absolute; left: 16px; top: -80px; z-index: 200; padding: 12px; background: var(--color-surface-2); }
.skip-link:focus { top: 12px; }
.utility-nav { justify-content: space-between; }
.utility-actions { display: flex; gap: 24px; align-items: center; font-size: var(--text-sm); }
.utility-actions a:hover { color: var(--color-primary); }
[data-theme="dark"] body:has(.utility-header) {
  --color-text-muted: #a7a7bc;
}
[data-theme="dark"] :is(.legal-hero .eyebrow, .legal-tools a, .legal-tools button, .legal-end a, .login-card .eyebrow, .login-support a) { color: #a5a4ff; }
.legal-hero { padding-block: 80px 48px; border-bottom: 1px solid var(--color-border); }
.legal-hero h1 { max-width: 750px; font-size: var(--text-2xl); letter-spacing: -.035em; margin-bottom: 24px; }
.legal-version { color: var(--color-text-muted); font-size: var(--text-sm); }
.legal-tools { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 28px; }
.legal-tools a, .legal-tools button { color: var(--color-primary); font-size: var(--text-sm); font-weight: 600; border-bottom: 1px solid var(--color-border); padding-bottom: 4px; }
.legal-layout { display: grid; grid-template-columns: 245px minmax(0,1fr); gap: 64px; padding-block: 48px 96px; align-items: start; }
.legal-toc { position: sticky; top: 100px; max-height: calc(100vh - 128px); overflow: auto; font-size: var(--text-xs); }
.legal-toc summary { font-size: var(--text-xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; list-style: none; margin-bottom: 16px; cursor: pointer; color: var(--color-text-muted); }
.legal-toc summary::after { content: ' −'; }
.legal-toc:not([open]) summary::after { content: ' +'; }
.legal-toc a { display: block; line-height: 1.5; padding: 8px 0; color: var(--color-text-muted); }
.legal-toc a:hover, .legal-toc a:focus-visible { color: var(--color-primary); }
.legal-document { min-width: 0; font-size: var(--text-sm); line-height: 1.85; }
.legal-document p { margin-bottom: 20px; }
.legal-document h2 { font-size: var(--text-xl); line-height: 1.25; margin: 56px 0 24px; padding-top: 24px; border-top: 1px solid var(--color-border); letter-spacing: -.02em; scroll-margin-top: 90px; }
.legal-document h3 { font-size: var(--text-base); margin: 30px 0 14px; line-height: 1.5; }
.legal-intro { padding: 28px; border: 1px solid var(--color-border); border-left: 3px solid var(--color-primary); border-radius: 0 12px 12px 0; background: var(--color-surface); }
.legal-document .legal-intro p { margin: 0; }
.legal-end { border-top: 1px solid var(--color-border); padding-top: 28px; margin-top: 48px; }
.legal-end a { color: var(--color-primary); }
.utility-footer { border-top: 1px solid var(--color-border); padding-block: 28px; color: var(--color-text-muted); font-size: var(--text-xs); }
.utility-footer .content-wide { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.utility-footer nav { display: flex; gap: 24px; flex-wrap: wrap; }
.login-page { min-height: 100svh; display: flex; flex-direction: column; }
.login-main { flex: 1; display: grid; place-items: center; padding: 64px 24px 72px; }
.login-wrap { width: 100%; max-width: 440px; }
.login-card { background: var(--color-surface-2); border: 1px solid var(--color-border); border-radius: 20px; padding: 40px; box-shadow: var(--shadow-md); }
.login-card .eyebrow { margin-bottom: 14px; font-size: var(--text-xs); letter-spacing: .12em; }
.login-card h1 { font-size: var(--text-xl); letter-spacing: -.035em; margin-bottom: 12px; }
.login-subtitle { color: var(--color-text-muted); font-size: var(--text-sm); line-height: 1.6; margin-bottom: 28px; }
.login-form fieldset { border: 0; min-width: 0; }
.login-form label { display: block; font-size: var(--text-sm); font-weight: 500; margin-bottom: 8px; }
.login-form input { display: block; width: 100%; min-height: 48px; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-bg); padding: 12px 14px; font: inherit; font-size: var(--text-sm); color: var(--color-text-muted); opacity: 1; margin-bottom: 20px; -webkit-text-fill-color: var(--color-text-muted); cursor: not-allowed; }
.login-form input::placeholder { color: var(--color-text-muted); opacity: .8; }
.login-form button { width: 100%; justify-content: center; min-height: 48px; border-radius: 8px; margin-top: 4px; opacity: .6; cursor: not-allowed; }
.login-form button:hover { transform: none; box-shadow: none; background: var(--color-primary); }
.login-status { border-top: 1px solid var(--color-border); margin-top: 28px; padding-top: 20px; font-size: var(--text-xs); color: var(--color-text-muted); line-height: 1.7; }
.login-status strong { display: block; color: var(--color-text); font-weight: 600; margin-bottom: 4px; }
.login-support { text-align: center; font-size: var(--text-xs); color: var(--color-text-muted); margin-top: 24px; }
.login-support a { color: var(--color-primary); font-weight: 600; }
@media (max-width: 1060px) {
  .site-nav:not(.utility-header) .nav-links { display: none; }
  .site-nav:not(.utility-header) .nav-actions { margin-left: auto; }
}
@media (max-width: 768px) {
  .legal-hero { padding-block: 48px 32px; }
  .legal-layout { grid-template-columns: 1fr; gap: 32px; padding-top: 28px; }
  .legal-toc { position: static; max-height: none; padding-bottom: 16px; border-bottom: 1px solid var(--color-border); }
  .legal-document { font-size: 16px; }
  .legal-intro { padding: 22px; }
  .footer-inner { grid-template-columns: 1fr; }
  .login-main { padding-top: 40px; }
  .login-card { padding: 28px; }
  .utility-actions { gap: 12px; font-size: var(--text-xs); }
}
@media (max-width: 520px) {
  .site-nav:not(.utility-header) .nav-inner { flex-wrap: wrap; height: auto; min-height: 64px; padding-top: 14px; padding-bottom: 12px; gap: 8px; }
  .site-nav:not(.utility-header) .nav-actions { display: contents; }
  .site-nav:not(.utility-header) .operator-access { margin-left: auto; }
  .site-nav:not(.utility-header) .nav-actions > .btn-primary { flex-basis: 100%; justify-content: center; }
  .operator-access { font-size: 12px; }
}
@media print {
  html, body { background: white !important; color: black !important; }
  .site-nav, .legal-toc, .legal-tools, .utility-footer, .skip-link { display: none !important; }
  .legal-layout { display: block; padding: 0; }
  .legal-hero { padding: 0 0 20px; }
  .content-wide { padding-inline: 0; max-width: none; }
  .legal-document { font-size: 11pt; }
  .legal-document h2, .legal-document h3 { break-after: avoid; }
  .legal-intro { background: transparent; color: black; }
}
