/* Shared site chrome: top nav + login gate */
.site-top{
  position:sticky; top:0; z-index:100;
  background:var(--surface); border-bottom:1px solid var(--border);
  backdrop-filter:saturate(1.2) blur(8px);
}
.site-top-inner{
  max-width:1320px; margin:0 auto; padding:10px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.site-brand{
  font-size:12px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--accent-ink); text-decoration:none; white-space:nowrap;
}
.site-nav{display:flex; align-items:center; gap:6px; flex-wrap:wrap;}
.site-nav a{
  font-size:13px; font-weight:600; padding:7px 13px; border-radius:9px;
  text-decoration:none; color:var(--ink-dim); border:1px solid transparent;
}
.site-nav a:hover{color:var(--accent-ink); background:var(--accent-soft);}
.site-nav a.is-active{
  color:var(--accent-ink); background:var(--accent-soft); border-color:var(--accent);
}
.site-logout{
  font-size:12.5px; font-weight:600; padding:7px 12px; border-radius:9px;
  border:1px solid var(--border); background:var(--surface); color:var(--ink-dim);
  cursor:pointer; font-family:inherit;
}
.site-logout:hover{border-color:var(--accent); color:var(--accent-ink);}

.auth-gate{
  position:fixed; inset:0; z-index:10000;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg); padding:24px;
}
.auth-gate[hidden]{display:none !important;}
.auth-card{
  width:100%; max-width:360px; background:var(--surface);
  border:1px solid var(--border); border-radius:14px; padding:28px 26px 24px;
  box-shadow:0 12px 40px rgba(32,30,26,0.08);
}
.auth-card h2{margin:0 0 6px; font-size:20px; font-weight:700; letter-spacing:-0.01em;}
.auth-card .auth-lede{margin:0 0 20px; font-size:13.5px; color:var(--ink-dim);}
.auth-field{margin-bottom:12px;}
.auth-field label{
  display:block; font-size:12px; font-weight:650; color:var(--ink-dim);
  margin-bottom:5px;
}
.auth-field input{
  width:100%; padding:10px 12px; border-radius:9px; border:1px solid var(--border);
  background:var(--surface-2, var(--bg)); color:var(--ink); font-size:14px; font-family:inherit;
}
.auth-field input:focus{outline:2px solid var(--accent); outline-offset:1px;}
.auth-error{
  display:none; margin:0 0 12px; font-size:13px; color:var(--intent-pain, #AE4128);
}
.auth-error.is-visible{display:block;}
.auth-submit{
  width:100%; margin-top:4px; padding:11px 14px; border-radius:9px;
  border:1px solid var(--accent); background:var(--accent); color:#fff;
  font-size:14px; font-weight:700; cursor:pointer; font-family:inherit;
}
.auth-submit:hover{filter:brightness(1.05);}

body.auth-locked .wrap,
body.auth-locked .site-top{visibility:hidden;}
body.auth-locked{overflow:hidden;}
html.auth-pending body > .wrap,
html.auth-pending body > .site-top{visibility:hidden;}
body:has(.site-top) .controls{top:52px;}
