/* ---------- access.css · the sign-in / approval surface, and the policy pages ----------
   On top of styles.css. Nothing here is shared with the landing page. */

.ax{padding:clamp(28px,7vh,84px) 0 80px; min-height:70vh; display:flex; align-items:center}
.ax-in{width:100%; max-width:720px}
[data-state]{display:block}
[data-state][hidden]{display:none !important}

.ax-card{padding:clamp(24px,3.4vw,40px); border-radius:var(--radius); position:relative; overflow:hidden;
  animation:axIn .4s cubic-bezier(.2,.7,.2,1)}
@keyframes axIn{from{opacity:0; transform:translateY(10px)}to{opacity:1; transform:none}}
.ax-card::before{content:""; position:absolute; inset:0 auto auto 0; width:100%; height:2px;
  background:linear-gradient(90deg, transparent, var(--cyan), transparent); opacity:.5}
.ax-card--go::before{background:linear-gradient(90deg, transparent, var(--green), transparent); opacity:.7}
.ax-card--wait::before{background:linear-gradient(90deg, transparent, var(--amber), transparent); opacity:.6}
.ax-card--off::before{background:linear-gradient(90deg, transparent, var(--steel), transparent)}

.ax-h{font-family:var(--font-display); font-size:clamp(1.6rem,3.6vw,2.4rem); font-weight:800; letter-spacing:-.035em;
  line-height:1.14; margin:0 0 14px; color:var(--text)}
.ax-h em{font-style:normal; color:var(--cyan)}
.ax-card--go .ax-h em{color:var(--green)}
.ax-lede{margin:0 0 16px; font-size:1rem; line-height:1.65; color:var(--text-2); max-width:58ch}
.ax-lede[hidden]{display:none}
.ax-actions{display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:24px}
.ax-msg{margin:14px 0 0; min-height:1.2em; font-size:.9rem; color:var(--amber)}
.ax-msg:empty{min-height:0}

/* the server's own facts about this account */
.ax-facts{display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:14px; margin:22px 0 0;
  padding:18px 0 0; border-top:1px solid var(--frost-hairline)}
.ax-facts div:has(dd[hidden]){display:none}
.ax-facts dt{font-family:var(--font-mono); font-size:.56rem; letter-spacing:.15em; text-transform:uppercase; color:var(--text-3); margin-bottom:5px}
.ax-facts dd{margin:0; font-family:var(--font-mono); font-size:.98rem; color:var(--text)}

/* sign-in is not switched on yet — say so, never fake it */
.ax-unwired{margin:16px 0 0; font-size:.62rem; letter-spacing:.09em; text-transform:uppercase; line-height:1.9; color:var(--amber); display:none}
html[data-auth-wired="0"] .ax-unwired{display:block}
html[data-auth-wired="0"] [data-signin]{opacity:.55}

.ax-safety{margin:26px 0 0; padding:16px 18px; border-radius:12px;
  background:rgba(255,181,71,.05); box-shadow:inset 0 0 0 1px rgba(255,181,71,.22)}
.ax-safety-h{margin:0 0 7px; font-size:.58rem; letter-spacing:.15em; text-transform:uppercase; color:var(--amber)}
.ax-safety p{margin:0; font-size:.88rem; line-height:1.6; color:var(--text-2)}

.ax-skel{display:grid; gap:10px; margin-top:22px}
.ax-skel i{height:12px; border-radius:6px; background:var(--frost-glass); animation:axSk 1.4s ease-in-out infinite}
.ax-skel i:nth-child(2){width:72%; animation-delay:.15s}
.ax-skel i:nth-child(3){width:45%; animation-delay:.3s}
@keyframes axSk{0%,100%{opacity:.35}50%{opacity:.75}}

.ax-foot{margin:26px 2px 0; font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; line-height:2; color:var(--text-3)}
.ax-foot a{color:var(--text-3); text-decoration:none; border-bottom:1px solid var(--frost-hairline)}
.ax-foot a:hover{color:var(--cyan); border-color:var(--cyan)}

/* ---------- the policy pages ---------- */
.doc{padding:clamp(28px,6vh,72px) 0 90px}
.doc-in{max-width:760px}
.doc h1{font-family:var(--font-display); font-size:clamp(1.8rem,4vw,2.6rem); font-weight:800; letter-spacing:-.035em; margin:0 0 10px; color:var(--text)}
.doc h1 em{font-style:normal; color:var(--cyan)}
.doc .doc-date{font-family:var(--font-mono); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-3); margin:0 0 34px}
.doc h2{font-family:var(--font-display); font-size:1.16rem; font-weight:700; letter-spacing:-.02em; margin:38px 0 12px; color:var(--text)}
.doc h3{font-size:.95rem; font-weight:600; margin:24px 0 8px; color:var(--text)}
.doc p,.doc li{font-size:.97rem; line-height:1.72; color:var(--text-2)}
.doc p{margin:0 0 14px; max-width:70ch}
.doc ul{margin:0 0 16px; padding-left:20px} .doc li{margin-bottom:8px}
.doc b,.doc strong{color:var(--text); font-weight:600}
.doc a{color:var(--cyan); text-decoration:none; border-bottom:1px solid rgba(0,212,255,.3)}
.doc a:hover{border-color:var(--cyan)}
.doc table{width:100%; border-collapse:collapse; margin:0 0 20px; font-size:.9rem}
.doc th,.doc td{text-align:left; padding:11px 12px; border-bottom:1px solid var(--frost-hairline); vertical-align:top; color:var(--text-2)}
.doc th{font-family:var(--font-mono); font-size:.56rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-3)}
.doc-note{padding:16px 18px; border-radius:12px; background:var(--frost-glass); box-shadow:inset 0 0 0 1px var(--frost-hairline); margin:0 0 22px}
.doc-note p{margin:0}
.doc-foot{margin:44px 0 0; padding-top:20px; border-top:1px solid var(--frost-hairline);
  font-family:var(--font-mono); font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-3); line-height:2}
.doc-foot a{color:var(--text-3); border-bottom:1px solid var(--frost-hairline)}

@media (max-width:640px){
  .ax{padding-top:20px}
  .ax-actions .btn{width:100%}
  .doc table{display:block; overflow-x:auto}
}
@media (prefers-reduced-motion:reduce){.ax-card{animation:none} .ax-skel i{animation:none}}

/* a forced state is always labelled as one */
html[data-preview="1"] .ax-in::before{content:"Preview · this state is being displayed, not read from the server";
  display:block; margin:0 0 14px; padding:9px 14px; border-radius:999px; justify-self:start;
  font-family:var(--font-mono); font-size:.56rem; letter-spacing:.14em; text-transform:uppercase; color:var(--amber);
  background:rgba(255,181,71,.08); box-shadow:inset 0 0 0 1px rgba(255,181,71,.3)}
html[data-preview="1"] [data-enter]{pointer-events:none; opacity:.6}
