.public-header { width:100%; flex-shrink:0; border-bottom:1px solid var(--border); background:var(--bg); }
.public-header-inner { width:min(1440px,100%); margin:0 auto; padding:20px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; min-width:0; }
.public-header a { text-decoration:none; text-underline-offset:4px; }
.public-brand { color:var(--text); font-weight:700; font-size:1.04rem; letter-spacing:-.02em; flex-shrink:0; }
.public-site-links { display:flex; align-items:center; gap:12px; flex-wrap:wrap; min-width:0; }
.public-site-links a,.public-login { color:var(--text-muted); font-size:.82rem; white-space:nowrap; }
.public-site-links a:hover,.public-login:hover { color:var(--text); text-decoration:underline; }
.public-header-actions { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.public-header-actions .theme-toggle { font-size:.78rem; padding:8px; }
.public-start { padding:9px 12px; color:var(--on-accent); background:var(--accent); border-radius:9px; font-size:.82rem; font-weight:600; white-space:nowrap; }
.public-start:hover { background:var(--accent-strong); }
.public-menu-toggle { display:none; }
@media(max-width:1199px) {
  .public-header-inner { flex-wrap:wrap; gap:16px; padding:16px 24px; }
  .public-menu-toggle { display:inline-flex; align-items:center; gap:8px; width:auto; margin:0 0 0 auto; padding:8px 12px; border:1px solid var(--border-strong); background:var(--surface); color:var(--text); font-size:.82rem; border-radius:9px; }
  .public-site-links { display:none; order:3; flex-basis:100%; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }
  .public-header.is-menu-open .public-site-links { display:grid; }
  .public-site-links a { padding:10px 0; white-space:normal; }
}
@media(max-width:640px) {
  .public-header-inner { padding:14px 16px; gap:12px; }
  .public-header-actions { flex-basis:100%; justify-content:space-between; gap:8px; }
  .public-header-actions .theme-toggle { font-size:.75rem; }
  .public-site-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .public-start { padding:9px 10px; font-size:.78rem; }
}
