
.guest-home { min-height: 100vh; }
.guest-home .topbar { min-height: 64px; }
.guest-logo { width: 38px; height: 38px; }
.guest-home .brand { color: var(--ink); text-decoration: none; }
.guest-home .brand small { line-height: 1.4; }
.guest-account-actions { display: flex; gap: .45rem; align-items: center; }
.guest-account-actions button { min-height: 40px; padding: .45rem .9rem; }
.guest-sidebar { gap: 2rem; }
#guest-nav { gap: .18rem; }


.guest-about { border-top: 1px solid var(--line); padding: 1rem .65rem; }
.guest-about strong { color: var(--green); }
.guest-about a { color: var(--green); font-size: .82rem; }
.guest-home .content { max-width: 1130px; }
.guest-intro { margin-bottom: 1.25rem; border-bottom: 1px solid var(--line); padding-bottom: 1.15rem; }
.guest-intro .eyebrow { margin: 0 0 .4rem; }
.guest-intro h1 { font-size: clamp(2.4rem, 4vw, 3.6rem); line-height: 1.08; font-weight: 400; margin: 0 0 .55rem; }
.guest-intro p:last-child { font-size: 1.05rem; line-height: 1.4; margin: 0; color: var(--muted); }
.guest-filters { display: flex; gap: .4rem; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; padding-bottom: .35rem; margin-bottom: .9rem; }
.guest-filters button { flex: 0 0 auto; white-space: nowrap; min-height: 36px; padding: .3rem .7rem; border: 1px solid var(--line); background: transparent; color: var(--green); border-radius: 2px; font-size: .85rem; }
.guest-filters button.active { background: var(--sage); border-color: #b8c9bb; }
.guest-search { width: min(100%, 330px); min-height: 38px; margin: 0 0 1rem; padding: .4rem .7rem; font-size: .9rem; border: 1px solid var(--line); background: var(--panel); border-radius: 2px; }
.guest-list { border-top: 1px solid var(--line); }
.guest-card { padding: 1.05rem 1.25rem 1rem; border-bottom: 1px solid var(--line); background: var(--panel); }
.guest-card .article-meta { gap: .55rem; font-size: .79rem; }
.guest-card h2 { margin: .45rem 0 .4rem; font-size: clamp(1.5rem, 2.2vw, 1.85rem); line-height: 1.2; font-weight: 400; }
.guest-title { padding: 0; border: 0; background: transparent; color: var(--ink); text-align: left; line-height: inherit; font: inherit; }
.guest-title:hover { color: var(--green); }
.guest-excerpt { max-width: 75ch; font-size: 1.02rem; color: #45574e; line-height: 1.47; margin: 0 0 .7rem; }
.guest-card-footer { display: flex; gap: .75rem; flex-wrap: wrap; align-items: center; }
.guest-read { min-height: 40px; border: 0; border-bottom: 1px solid var(--green); border-radius: 0; background: transparent; padding: .3rem 0; color: var(--green); font-size: .94rem; }
.guest-read span { margin-left: .55rem; }
.guest-source-list { color: var(--muted); font-size: .78rem; line-height: 1.35; }
.guest-source-list summary { cursor: pointer; min-height: 36px; display: flex; align-items: center; }
.guest-source-list[open] { width: 100%; }
.guest-source-list ul { list-style: none; padding: 0; margin: .3rem 0 0; display: flex; gap: 1rem; flex-wrap: wrap; }
.guest-source-list a { color: var(--green); }
.guest-footnote { font-size: .82rem; line-height: 1.4; color: var(--muted); margin: 1rem 0; }
.guest-list-progress { display: flex; justify-content: space-between; align-items: center; gap: .7rem; padding: .8rem 0; color: var(--muted); font-size: .85rem; }
.guest-list-progress button { min-height: 40px; padding: .45rem .8rem; color: var(--green); border: 1px solid var(--line); background: transparent; }
.guest-auth-dialog { width: min(440px, calc(100vw - 28px)); max-height: calc(100dvh - 28px); padding: 0; border: 1px solid #b8c3b7; background: var(--panel); box-shadow: none; border-radius: 2px; color: var(--ink); }
.guest-auth-dialog::backdrop { background: rgba(23,35,31,.26); backdrop-filter: none; }
.guest-auth-inner { padding: 1.4rem 1.5rem; }
.guest-auth-head { display: flex; align-items: start; justify-content: space-between; gap: .75rem; }
.guest-auth-head .eyebrow { margin: 0 0 .4rem; }
.guest-auth-head h2 { margin: 0; font-size: 1.9rem; line-height: 1.12; font-weight: 400; }
.guest-auth-close { width: 36px; height: 36px; flex: 0 0 36px; padding: 0; background: transparent; border: 0; color: var(--muted); font-size: 1.5rem; }
.guest-auth-copy { color: var(--muted); font-size: .96rem; line-height: 1.4; margin: .65rem 0 .9rem; }
.guest-intended-story { font-size: .92rem; line-height: 1.3; padding: .55rem .7rem; margin: 0 0 .85rem; border-left: 2px solid var(--green); background: #edf2e9; }
.guest-intended-story span { display: block; color: var(--muted); font-size: .73rem; margin-bottom: .2rem; }
.guest-auth-tabs { display: flex; gap: 1.4rem; border-bottom: 1px solid var(--line); margin-bottom: .85rem; }
.guest-auth-tabs button { background: transparent; border: 0; border-bottom: 2px solid transparent; padding: .4rem 0; color: var(--muted); font-size: .98rem; }
.guest-auth-tabs button[aria-selected=true] { color: var(--green); border-bottom-color: var(--green); }
.guest-auth-dialog form { padding: 0; }
.guest-auth-dialog .stack { gap: .7rem; }
.guest-auth-dialog .stack label { font-size: .87rem; gap: .28rem; }
.guest-auth-dialog .stack input { padding: .58rem .7rem; min-height: 40px; }
.guest-auth-dialog .primary { min-height: 42px; padding: .55rem .8rem; font-size: .96rem; }
.guest-invite-note { color: var(--muted); font-size: .85rem; line-height: 1.35; margin: 0; }
.guest-preview-note { font-size: .75rem; line-height: 1.4; margin: .9rem 0 0; color: var(--muted); border-top: 1px solid var(--line); padding-top: .65rem; }
.guest-keep-browsing { min-height: 36px; width: 100%; margin-top: .5rem; padding: .3rem; background: transparent; border: 0; color: var(--green); font-size: .85rem; }
@media (max-width: 820px) {
  .guest-home.app-shell { grid-template: 'top' 64px 'content' 1fr / minmax(0, 1fr); }
  .guest-sidebar { display: flex; gap: 0; }
  .guest-sidebar nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .12rem; }
  .guest-home .content { padding: 1.25rem .9rem 6rem; }
  .guest-home .topbar { padding: 0 .9rem; }
  .guest-home .brand { gap: .4rem; }
  .guest-home .brand strong { font-size: 1.18rem; }
  .guest-logo { width: 32px; height: 32px; }
  .guest-home .brand small, .guest-account-actions .guest-create-account { display: none; }
  .guest-account-actions button { padding: .35rem .7rem; font-size: .9rem; }
  .guest-intro { margin-bottom: .95rem; padding-bottom: .9rem; }
  .guest-intro p:last-child { font-size: .98rem; }
  .guest-card { padding: .9rem .8rem; }
  .guest-card h2 { font-size: 1.48rem; line-height: 1.2; }
  .guest-excerpt { font-size: .98rem; line-height: 1.43; }
  .guest-auth-inner { padding: 1.2rem; }
}

.guest-home .visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

.guest-title, .guest-read { text-decoration: none; display: inline-block; }
#account-dialog { width: min(500px, calc(100vw - 28px)); max-height: calc(100dvh - 28px); padding: 1.3rem; box-shadow: none; border: 1px solid var(--line); border-radius: 2px; }
#account-dialog::backdrop { background: rgba(23,35,31,.26); backdrop-filter: none; }
#account-dialog #auth { display: block; min-height: 0; padding: 0; }
#account-dialog .auth-story, #account-dialog .public-preview, #account-dialog .public-footer { display: none; }
#account-dialog .auth-panel { padding: .6rem 0 0; box-shadow: none; border: 0; }
#account-dialog h2 { font-size: 1.7rem; margin: 0; font-weight: 400; }
#account-dialog .guest-auth-copy { margin: .6rem 0; }
#account-dialog .auth-tabs { flex-wrap: wrap; }
#account-dialog .registration-policy { max-height: none; }
