/* Access gate — entry pages. Fleet-topology backdrop, flat auth card, ops voice. */
.auth-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; position: relative; overflow: hidden; }
#topo { position: fixed; inset: 0; z-index: 0; pointer-events: none; }

.gate { position: relative; z-index: 1; width: min(430px, 94vw); display: flex; flex-direction: column; gap: var(--s3); }
.bootlines { font-size: 11.5px; color: var(--faint); min-height: 54px; line-height: 1.6; }
.bootlines .ok { color: var(--green-dim); }

.auth-card {
  width: 100%; background: var(--surf-2); border: 1px solid var(--line); border-radius: 12px;
  padding: var(--s4); position: relative; z-index: 1; box-shadow: 0 24px 70px rgba(0, 0, 0, 0.55);
}
.authhead { display: flex; align-items: center; gap: 12px; margin-bottom: var(--s3); }
.authhead .sig {
  width: 34px; height: 34px; border: 1.5px solid var(--green); border-radius: 8px; flex: none;
  display: grid; place-items: center; color: var(--green); font-size: 16px; font-weight: 700;
}
.auth-logo { font-size: 16px; font-weight: 700; color: var(--head); letter-spacing: 0.14em; margin: 0; }
.auth-sub { color: var(--green-dim); font-size: 10px; margin: 2px 0 0; letter-spacing: 0.26em; text-transform: uppercase; }

.auth-tabs { display: flex; gap: 8px; margin-bottom: 20px; }
.auth-tab {
  flex: 1; text-align: center; padding: 8px; cursor: pointer; color: var(--muted);
  border-bottom: 1px solid var(--line); font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase;
  transition: color .15s, border-color .15s; background: none; border-top: 0; border-left: 0; border-right: 0; font-family: var(--mono);
}
.auth-tab.active { color: var(--green); border-color: var(--green); }
.auth-panel { display: none; }
.auth-panel.active { display: block; animation: rise .35s cubic-bezier(.2,.7,.2,1) both; }

.strength { height: 5px; border-radius: 3px; background: var(--inset); overflow: hidden; margin-top: 8px; }
.strength > i { display: block; height: 100%; width: 0; transition: width .3s, background .3s; }
.consent { display: flex; align-items: flex-start; gap: 8px; font-size: 12px; color: var(--muted); margin: 8px 0; }
.consent input { margin-top: 3px; }
.divider { text-align: center; color: var(--faint); font-size: 11px; margin: 16px 0; }
.link-row { margin-top: 14px; font-size: 12px; display: flex; justify-content: space-between; }
.gsi-slot { margin-top: 12px; }
.gatemeta { text-align: center; font-size: 10px; letter-spacing: 0.24em; color: var(--faint); text-transform: uppercase; }

/* ── landing (index.html) ─────────────────────────────────── */
.land { max-width: 1000px; margin: 0 auto; padding: 40px 20px 60px; position: relative; z-index: 1; }
.land .hero-block { text-align: center; padding: 56px 0 36px; }
.land .hero-block h1 { font-size: clamp(2.2rem, 6vw, 3.4rem); letter-spacing: 0.1em; margin: 0; color: var(--head); }
.land .hero-block .tag { color: var(--green-dim); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; margin: 14px 0 28px; }
.grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--s2); margin-top: 20px; }
.price h3 { margin: 0 0 6px; font-size: 15px; }
.price .amt { font-size: 1.5rem; color: var(--green-text); }
.price ul { list-style: none; padding: 0; margin: 14px 0 0; font-size: 12.5px; color: var(--muted); }
.price li { margin: 4px 0; }
.price li::before { content: "\203A "; color: var(--green); }
.features { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 36px; }
.feature { border: 1px solid var(--line); border-radius: 6px; padding: 8px 14px; font-size: 11px; color: var(--muted); letter-spacing: 0.12em; text-transform: uppercase; }
footer { text-align: center; color: var(--faint); font-size: 11px; margin-top: 48px; }

/* legal docs */
.doc { max-width: 760px; margin: 40px auto; position: relative; z-index: 1; }
.doc .card { padding: var(--s4); }
.doc h1 { font-size: 20px; }
.doc h2 { font-size: 15px; margin-top: 24px; }
.doc p, .doc li { color: var(--muted); font-size: 13px; }
