/*
 * Laurie V2 presentation layer
 *
 * This file deliberately sits above the proven V1 application. It changes
 * layout and visual language while preserving every route, form action and
 * JavaScript hook used by the server-rendered product.
 */

:root {
  color-scheme: light;
  --v2-paper: #f4f0e8;
  --v2-surface: #fbf8f2;
  --v2-surface-strong: #fffdf8;
  --v2-ink: #211f1c;
  --v2-soft: #49453f;
  --v2-muted: #716b63;
  --v2-line: #d8d0c4;
  --v2-line-strong: #b9afa1;
  --v2-accent: #c8513c;
  --v2-accent-dark: #a63e2c;
  --v2-accent-soft: #f0d8cf;
  --v2-success: #34704d;
  --v2-warning: #a36a16;
  --v2-danger: #9c382f;
  --v2-display: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --v2-ui: "Avenir Next", Avenir, "Segoe UI", Helvetica, Arial, sans-serif;
  --v2-radius-sm: 4px;
  --v2-radius: 10px;
  --v2-radius-lg: 18px;
  --v2-content: 1180px;
  --v2-feed: 760px;
  --v2-fast: 180ms cubic-bezier(.2,.7,.2,1);
  --ink: var(--v2-ink);
  --soft-ink: var(--v2-soft);
  --muted: var(--v2-muted);
  --line: var(--v2-line);
  --paper: var(--v2-paper);
  --surface: var(--v2-surface);
  --surface-2: var(--v2-surface-strong);
  --accent: var(--v2-accent);
  --accent-dark: var(--v2-accent-dark);
  --accent-soft: var(--v2-accent-soft);
  --danger: var(--v2-danger);
  --secondary-button: var(--v2-ink);
  --secondary-button-hover: var(--v2-soft);
  --shadow: none;
  --shadow-soft: none;
}

:root[data-theme="night"] {
  color-scheme: dark;
  --v2-paper: #171512;
  --v2-surface: #1f1c18;
  --v2-surface-strong: #26221d;
  --v2-ink: #f1ece3;
  --v2-soft: #d2c8ba;
  --v2-muted: #a79d90;
  --v2-line: #403a32;
  --v2-line-strong: #62594e;
  --v2-accent: #dd705a;
  --v2-accent-dark: #ef826c;
  --v2-accent-soft: #4a2b24;
  --v2-success: #6fab83;
  --v2-warning: #d39a43;
  --v2-danger: #df776c;
  --ink: var(--v2-ink);
  --soft-ink: var(--v2-soft);
  --muted: var(--v2-muted);
  --line: var(--v2-line);
  --paper: var(--v2-paper);
  --surface: var(--v2-surface);
  --surface-2: var(--v2-surface-strong);
  --accent: var(--v2-accent);
  --accent-dark: var(--v2-accent-dark);
  --accent-soft: var(--v2-accent-soft);
  --danger: var(--v2-danger);
  --secondary-button: var(--v2-ink);
  --secondary-button-hover: var(--v2-soft);
}

html { scroll-behavior: smooth; }

body {
  background: var(--v2-paper) !important;
  color: var(--v2-ink) !important;
  font-family: var(--v2-ui) !important;
  font-size: 16px;
  line-height: 1.55;
}

body::before,
body::after { display: none !important; }

::selection { background: var(--v2-accent-soft); color: var(--v2-ink); }

a, button, input, textarea, select, summary { -webkit-tap-highlight-color: transparent; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--v2-accent) !important;
  outline-offset: 3px;
}

h1, h2, h3 { color: var(--v2-ink); text-wrap: balance; }
h1, .feed-title { font-family: var(--v2-display); font-weight: 500; letter-spacing: -.045em; }
p { text-wrap: pretty; }

.muted { color: var(--v2-muted) !important; }
.eyebrow, .rail-label, .entry-kicker, .feed-kicker {
  color: var(--v2-muted) !important;
  font-size: .68rem !important;
  font-weight: 700 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase;
}

main {
  width: min(var(--v2-content), 100%) !important;
  padding: 44px 24px 80px !important;
}

.button, button:not(.theme-toggle):not(.install-app-button):not(.help-button):not(.feed-story):not(.story-viewer-nav):not(.story-viewer-close):not(.notification-center-button):not(.site-dock-item):not([data-theme-toggle]):not([data-more-install]):not([data-notification-center-open]),
input[type="submit"] {
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid var(--v2-accent) !important;
  border-radius: var(--v2-radius-sm) !important;
  background: var(--v2-accent) !important;
  color: #fff !important;
  box-shadow: none !important;
  font: 650 .9rem/1 var(--v2-ui) !important;
  transition: color var(--v2-fast), background var(--v2-fast), border-color var(--v2-fast), transform var(--v2-fast) !important;
}

.button:hover, button:not(.theme-toggle):not(.install-app-button):not(.help-button):not(.feed-story):not(.story-viewer-nav):not(.story-viewer-close):not(.notification-center-button):not(.site-dock-item):not([data-theme-toggle]):not([data-more-install]):not([data-notification-center-open]):hover {
  border-color: var(--v2-accent-dark) !important;
  background: var(--v2-accent-dark) !important;
  transform: translateY(-1px);
}

.button:active, button:active { transform: translateY(1px) scale(.99); }

.button.secondary, button.secondary, .outline-button,
.bookmark-button, .comment-toggle {
  border-color: var(--v2-line-strong) !important;
  background: transparent !important;
  color: var(--v2-ink) !important;
}

.button.secondary:hover, button.secondary:hover, .outline-button:hover,
.bookmark-button:hover, .comment-toggle:hover {
  border-color: var(--v2-ink) !important;
  background: var(--v2-surface-strong) !important;
}

button.danger, .danger {
  border-color: var(--v2-danger) !important;
  background: transparent !important;
  color: var(--v2-danger) !important;
}

input, textarea, select {
  border: 1px solid var(--v2-line-strong) !important;
  border-radius: var(--v2-radius-sm) !important;
  background: var(--v2-surface-strong) !important;
  color: var(--v2-ink) !important;
  box-shadow: none !important;
  font: inherit;
}

input:hover, textarea:hover, select:hover { border-color: var(--v2-muted) !important; }
input:focus, textarea:focus, select:focus { border-color: var(--v2-accent) !important; }

.panel, .community-section, .request-panel, .community-card, .stat,
.notification-prompt, .notification-center {
  border-color: var(--v2-line) !important;
  background: var(--v2-surface) !important;
  box-shadow: none !important;
}

.topbar {
  min-height: 68px !important;
  padding: 0 max(24px, calc((100vw - var(--v2-content)) / 2)) !important;
  border-bottom: 1px solid var(--v2-line) !important;
  background: color-mix(in srgb, var(--v2-paper) 94%, transparent) !important;
  box-shadow: none !important;
  backdrop-filter: blur(16px);
}

.brand-logo {
  width: 116px !important;
  height: 44px !important;
  object-fit: contain;
  filter: saturate(.75);
}

.topbar nav { gap: 30px !important; }
.topbar nav > a, .nav-change-link {
  position: relative;
  padding: 24px 0 22px !important;
  color: var(--v2-soft) !important;
  font-size: .88rem !important;
  font-weight: 550 !important;
}

.topbar nav > a:hover, .topbar nav > a.is-active { color: var(--v2-ink) !important; }
.topbar nav > a.is-active::after {
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 2px;
  content: "";
  background: var(--v2-accent);
}

.nav-profile {
  padding-left: 24px !important;
  border-left: 1px solid var(--v2-line);
}

.nav-avatar { width: 34px !important; height: 34px !important; border-radius: 50% !important; }
.nav-change-link { padding: 0 !important; font-size: .72rem !important; }
.nav-badge { background: var(--v2-accent) !important; }

.theme-toggle, .install-app-button, .help-button {
  width: 42px !important;
  height: 42px !important;
  min-height: 42px !important;
  border: 1px solid var(--v2-line) !important;
  border-radius: 50% !important;
  background: var(--v2-surface) !important;
  box-shadow: none !important;
}

.theme-toggle { right: 18px !important; bottom: 18px !important; padding: 8px !important; }
.install-app-button { right: 68px !important; bottom: 18px !important; padding: 8px !important; }
.help-button { right: 118px !important; bottom: 18px !important; padding: 8px !important; }
.theme-toggle img, .install-app-button img, .help-button img { width: 100%; height: 100%; object-fit: contain; }

.site-footer {
  border-top: 1px solid var(--v2-line) !important;
  background: transparent !important;
  color: var(--v2-muted) !important;
}
.footer-logo { filter: saturate(.6); }

/* Public membership and discover */
html body.public-entry-page {
  --public-paper: #f4f0e8 !important;
  --public-ink: #211f1c !important;
  --public-muted: #716b63 !important;
  --public-line: #d8d0c4 !important;
  --public-accent: #c8513c !important;
  --v2-paper: #f4f0e8;
  --v2-surface: #fbf8f2;
  --v2-surface-strong: #fffdf8;
  --v2-ink: #211f1c;
  --v2-soft: #49453f;
  --v2-muted: #716b63;
  --v2-line: #d8d0c4;
  --v2-line-strong: #b9afa1;
  --v2-accent: #c8513c;
  --v2-accent-dark: #a63e2c;
  --v2-accent-soft: #f0d8cf;
  background: #f4f0e8 !important;
  font-family: var(--v2-ui) !important;
}

html body.public-entry-page main {
  width: min(1440px, 100%) !important;
  padding: 0 clamp(20px, 4vw, 64px) !important;
}

.public-entry-nav, .preview-nav {
  min-height: 72px !important;
  border-bottom: 1px solid var(--v2-line) !important;
}

.public-wordmark, .preview-wordmark {
  color: var(--v2-ink) !important;
  font: 500 2rem/1 var(--v2-display) !important;
  letter-spacing: -.045em !important;
}

.public-entry-nav nav a, .preview-nav nav a {
  color: var(--v2-soft) !important;
  font-size: .84rem !important;
}

.public-entry-nav nav a.is-active::after, .preview-nav nav a.is-active::after { background: var(--v2-accent) !important; }
.preview-join-link { color: var(--v2-accent) !important; font-weight: 650 !important; }
.public-discover-page .preview-join-link,
.public-discover-page .discover-profile-cta,
.public-discover-page .preview-cta .button {
  border-color: #c8513c !important;
  border-radius: var(--v2-radius-sm) !important;
  background: #c8513c !important;
  color: #fff !important;
  box-shadow: none !important;
}

.public-join-page .join-gate {
  grid-template-columns: minmax(300px, .9fr) minmax(430px, 1.1fr) !important;
  min-height: calc(100dvh - 72px) !important;
  gap: clamp(44px, 7vw, 104px) !important;
  padding: 72px 0 120px !important;
}

.public-join-page .join-copy h1 {
  max-width: 9ch !important;
  color: var(--v2-ink) !important;
  font-family: var(--v2-display) !important;
  font-size: clamp(58px, 6.2vw, 92px) !important;
  letter-spacing: -.06em !important;
  line-height: .92 !important;
}

.public-join-page .join-intro {
  color: var(--v2-soft) !important;
  font-family: var(--v2-ui) !important;
  font-size: clamp(17px, 1.4vw, 20px) !important;
  line-height: 1.65 !important;
}

.public-join-page .join-actions .button {
  border-color: var(--v2-accent) !important;
  background: var(--v2-accent) !important;
  color: #fff !important;
}

.join-manifesto {
  min-height: 570px !important;
  padding: clamp(40px, 5vw, 72px) !important;
  border: 0 !important;
  border-left: 1px solid var(--v2-line) !important;
  background: #dfd5c7 !important;
}
:root[data-theme="night"] .join-manifesto { background: #29231d !important; }
.join-manifesto blockquote { font-family: var(--v2-display) !important; font-weight: 500 !important; }
.join-benefits { border-color: var(--v2-line) !important; }

html body.public-discover-page main { max-width: 1440px !important; }

.discover-profile { padding: 28px 0 0; }
.discover-cover {
  height: clamp(260px, 31vw, 470px);
  margin: 0;
  overflow: hidden;
  background: var(--v2-line);
}
.discover-cover img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.discover-profile-row {
  display: grid;
  grid-template-columns: 168px minmax(0, 1fr) auto;
  align-items: end;
  gap: 28px;
  width: min(1180px, calc(100% - 40px));
  margin: -74px auto 0;
  padding-bottom: 30px;
  border-bottom: 1px solid var(--v2-line);
}
.discover-avatar {
  width: 168px;
  aspect-ratio: 1;
  margin: 0;
  overflow: hidden;
  border: 7px solid var(--v2-paper);
  border-radius: 50%;
  background: var(--v2-line);
}
.discover-avatar img { width: 100%; height: 100%; object-fit: cover; }
.discover-profile-copy { padding-bottom: 6px; }
.discover-profile-copy .eyebrow { margin-bottom: 8px !important; }
.discover-profile-copy h1 {
  margin: 0 0 4px !important;
  font: 500 clamp(42px, 5vw, 70px)/.95 var(--v2-display) !important;
}
.discover-profile-copy p:last-child { max-width: 52ch; margin: 0; color: var(--v2-muted); font-size: 1.05rem; }
.discover-profile-cta { margin-bottom: 12px; min-width: 180px; }

.public-discover-page .discover-index {
  width: min(1180px, calc(100% - 40px)) !important;
  margin: 0 auto !important;
  padding: 26px 0 !important;
  border-bottom: 1px solid var(--v2-line) !important;
}

.public-discover-page .discover-index ol { gap: clamp(20px, 4vw, 58px) !important; }
.public-discover-page .discover-index li { color: var(--v2-soft) !important; font-size: .85rem !important; }
.public-discover-page .discover-index li span { color: var(--v2-accent) !important; }

.discover-stories-wrap, .preview-hero, .preview-cta {
  width: min(1180px, calc(100% - 40px)) !important;
  margin-right: auto !important;
  margin-left: auto !important;
}

.preview-hero { padding-top: 80px !important; }
.discover-section-head {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 300px !important;
  align-items: end !important;
  border-bottom: 1px solid var(--v2-line) !important;
}
.discover-section-head h2 { font: 500 clamp(44px, 5vw, 70px)/1 var(--v2-display) !important; }

.preview-hero-posts {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  max-width: 940px !important;
  margin: 0 auto !important;
}

.public-discover-page .preview-card {
  display: grid !important;
  grid-template-columns: 240px minmax(0, 1fr) !important;
  gap: 0 30px !important;
  padding: 36px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--v2-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.public-discover-page .preview-card:nth-child(even) { grid-template-columns: minmax(0, 1fr) 240px !important; }
.public-discover-page .preview-card:nth-child(even) .preview-media { grid-column: 1; grid-row: 1; }
.public-discover-page .preview-card:nth-child(even) .preview-card-copy { grid-column: 2; grid-row: 1; }
.public-discover-page .preview-media {
  aspect-ratio: 16 / 10 !important;
  min-height: 0 !important;
  border-radius: 0 !important;
}
.public-discover-page .preview-card-copy { align-self: center; padding: 0 !important; }
.public-discover-page .preview-card-copy span { color: var(--v2-muted) !important; font-size: .72rem !important; }
.public-discover-page .preview-card-copy h2 { font: 500 clamp(28px, 3vw, 44px)/1.05 var(--v2-display) !important; }
.public-discover-page .preview-lock { background: rgba(27, 24, 21, .48) !important; backdrop-filter: blur(9px); }
.public-discover-page .preview-lock strong { font-family: var(--v2-display) !important; font-size: 1.5rem !important; }

.preview-cta {
  grid-template-columns: 1fr 1fr auto !important;
  margin-top: 100px !important;
  border-color: var(--v2-line) !important;
  background: transparent !important;
}

/* Signed-in editorial feed */
body.member-journal-page {
  background: var(--v2-paper) !important;
  color: var(--v2-ink) !important;
}

body.member-journal-page main {
  display: grid;
  grid-template-columns: minmax(0, var(--v2-feed)) 290px;
  gap: 0 54px;
  align-items: start;
}

.member-journal-page .creator-masthead,
.member-journal-page .member-feed-heading,
.member-journal-page .feed-front-section,
.member-journal-page .timeout-notice,
.member-journal-page .announcement,
.member-journal-page .member-feed-layout { grid-column: 1; }

body.member-journal-page .creator-masthead {
  display: flex !important;
  align-items: end !important;
  justify-content: space-between !important;
  padding: 26px 0 30px !important;
  border-bottom: 1px solid var(--v2-line) !important;
}
body.member-journal-page .creator-masthead h1 { margin: 0 0 8px !important; color: var(--v2-ink) !important; font-size: clamp(46px, 5vw, 68px) !important; line-height: .98 !important; }
body.member-journal-page .creator-masthead p { max-width: 52ch !important; margin: 0; color: var(--v2-muted) !important; }
.creator-edition { color: var(--v2-muted) !important; }
.creator-message-link, .feed-archive-link { color: var(--v2-accent) !important; }

.member-feed-heading { padding: 28px 0 18px !important; border-bottom: 0 !important; }
.member-feed-heading .feed-title { margin: 0 !important; font-size: 2.2rem !important; }

.feed-stories { padding: 0 0 28px !important; border-bottom: 1px solid var(--v2-line) !important; }
.feed-story-track { gap: 18px !important; }
.feed-story {
  width: 72px !important;
  min-width: 72px !important;
  height: 72px !important;
  padding: 3px !important;
  border: 1px solid var(--v2-accent) !important;
  border-radius: 50% !important;
  background: transparent !important;
  box-shadow: none !important;
}
.feed-story-ring, .feed-story-ring img { border-radius: 50% !important; }

body.member-journal-page .member-feed-note {
  position: sticky !important;
  top: 100px !important;
  grid-column: 2 !important;
  grid-row: 1 / span 8 !important;
  width: auto !important;
  margin: 26px 0 0 !important;
  padding: 0 0 28px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--v2-line) !important;
  background: transparent !important;
  box-shadow: none !important;
  display: block !important;
}
body.member-journal-page .member-feed-note > div { display: block !important; }
body.member-journal-page .member-feed-note img { width: 100% !important; height: auto !important; aspect-ratio: 4/3; border-radius: 0 !important; object-fit: cover; }
body.member-journal-page .member-feed-note p:not(.rail-label) { width: auto !important; max-width: none !important; margin: 22px 0 !important; color: var(--v2-soft) !important; font: 500 1.45rem/1.35 var(--v2-display) !important; word-break: normal !important; }
.member-feed-note a { color: var(--v2-accent) !important; }

body.member-journal-page .member-feed-layout,
body.member-journal-page .member-feed-main,
body.member-journal-page .feed { width: 100% !important; max-width: none !important; }
body.member-journal-page .feed { display: block !important; gap: 0 !important; }

body.member-journal-page .post {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 38px 0 46px !important;
  border: 0 !important;
  border-bottom: 1px solid var(--v2-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  color: var(--v2-ink) !important;
}

.post:first-child { padding-top: 28px !important; }
.post-media, .post-gallery, .media-preview, .video-preview { border-radius: 0 !important; background: #ddd5c9 !important; }
.post-media img, .gallery-slide img, .media-preview img { display: block; width: 100%; height: auto; max-height: 82vh; object-fit: contain; }
.post-gallery { overflow: hidden; }
.gallery-nav { border-radius: 50% !important; background: rgba(22,20,18,.76) !important; }

.post-body { padding: 20px 0 0 !important; }
.post-author-row { margin-bottom: 18px !important; }
.post-author-row strong { font-size: .92rem; }
.post-author-row small, .post-author-row time { color: var(--v2-muted) !important; font-size: .75rem !important; }
.post-author-avatar img { border-radius: 50% !important; }
.post-body > h2 { margin: 0 0 8px !important; font: 500 clamp(30px, 4vw, 46px)/1.05 var(--v2-display) !important; }
.post-body > p { max-width: 64ch; color: var(--v2-soft); font-size: 1.02rem; }

.post-action-row {
  gap: 8px !important;
  margin-top: 22px !important;
  padding: 14px 0 !important;
  border-top: 1px solid var(--v2-line) !important;
  border-bottom: 1px solid var(--v2-line) !important;
}
.post-action-row .button, .post-action-row button {
  min-height: 38px !important;
  padding: 8px 12px !important;
  border-color: transparent !important;
  background: transparent !important;
  color: var(--v2-soft) !important;
}
.post-action-row button:hover { color: var(--v2-accent) !important; background: var(--v2-accent-soft) !important; }
.post-like-button.active, .bookmark-button.active { color: var(--v2-accent) !important; }

.comments { padding-top: 18px !important; }
.comments h3 { font-size: .75rem !important; letter-spacing: .12em; text-transform: uppercase; }
.comment { padding: 12px 0 !important; border-bottom: 1px solid color-mix(in srgb, var(--v2-line) 70%, transparent) !important; }
.comment p { margin-bottom: 0; }
.comment-composer { margin-top: 14px !important; padding: 16px 0 0 !important; border: 0 !important; background: transparent !important; }

.tier-locked .locked-placeholder, .locked-media { min-height: 420px !important; border-radius: 0 !important; }
.locked-overlay { padding: 16px 22px !important; border: 1px solid rgba(255,255,255,.5); border-radius: var(--v2-radius-sm) !important; background: rgba(28,24,21,.55) !important; backdrop-filter: blur(8px); }

.feed-polls { padding: 30px 0 !important; border-bottom: 1px solid var(--v2-line); }
.feed-poll-list { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px !important; }
.poll-card { border-radius: 0 !important; background: transparent !important; }

/* Member utility pages */
body.member-site-v3:not(.member-journal-page) main { max-width: 900px !important; }
.feed-header { border-color: var(--v2-line) !important; }
.feed-header h1 { font-size: clamp(42px, 6vw, 66px) !important; }

.community-shell, .chat-shell { max-width: 900px; margin: 0 auto; }
.community-section, .request-panel { border-radius: 0 !important; background: transparent !important; }
.event-list, .saved-grid { gap: 1px !important; background: var(--v2-line); }
.event-card, .saved-card { border: 0 !important; border-radius: 0 !important; background: var(--v2-surface) !important; }
.request-panel { border-top: 1px solid var(--v2-line) !important; }

.chat-thread { border-color: var(--v2-line) !important; border-radius: var(--v2-radius) !important; background: var(--v2-surface) !important; }
.chat-message { box-shadow: none !important; }
.chat-message.member { background: var(--v2-accent) !important; color: #fff !important; }
.chat-message.admin { background: var(--v2-surface-strong) !important; color: var(--v2-ink) !important; }
.chat-form { border: 0 !important; border-top: 1px solid var(--v2-line) !important; border-radius: 0 !important; background: transparent !important; }

.auth .panel, .profile-form {
  max-width: 620px !important;
  padding: clamp(28px, 5vw, 54px) !important;
  border-radius: 0 !important;
}
.profile-form h1 { font-size: clamp(42px, 6vw, 64px) !important; }

/* Creator workspace */
.admin-page {
  --v2-paper: #f3eee6;
  --v2-surface: #faf7f1;
}

.admin-page main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 0 44px;
  max-width: 1440px !important;
  width: calc(100% - 64px) !important;
  padding: 46px 0 80px !important;
}

.admin-topbar { padding: 0 32px !important; }
.admin-topbar .brand::after {
  content: "Studio";
  margin-left: 8px;
  color: var(--v2-ink);
  font: 500 1.25rem/1 var(--v2-display);
}
.admin-topbar nav { flex: 1; justify-content: flex-start; }
.admin-topbar .admin-view-site { margin-left: auto; padding-left: 22px !important; border-left: 1px solid var(--v2-line); }

.admin-studio-heading {
  grid-column: 1 / -1;
  display: flex !important;
  justify-content: space-between;
  min-height: 155px !important;
  padding: 0 0 36px !important;
  border-bottom: 1px solid var(--v2-line) !important;
}
.admin-studio-heading h1 {
  margin: 0 0 10px !important;
  font: 500 clamp(52px, 6vw, 80px)/.95 var(--v2-display) !important;
}
.admin-studio-heading p { color: var(--v2-muted); font-size: 1.05rem; }
.admin-studio-heading::after {
  content: "Same people. Deeper conversations.";
  align-self: center;
  max-width: 260px;
  padding-left: 28px;
  border-left: 1px solid var(--v2-line);
  color: var(--v2-soft);
  font: italic 500 1.2rem/1.4 var(--v2-display);
}
.admin-heading-action { align-self: center; min-width: 150px; }

.admin-dashboard-controls {
  grid-column: 1;
  padding: 28px 0 22px !important;
  border-bottom: 1px solid var(--v2-line);
}
.admin-dashboard-controls > h2 { display: none; }
.admin-top-controls { display: flex !important; flex-wrap: wrap; gap: 8px !important; }
.admin-top-controls .button { min-height: 38px !important; padding: 8px 13px !important; }
.admin-new-post { margin-right: 10px; }

.admin-dashboard-overview {
  grid-column: 2;
  grid-row: 2 / span 3;
  padding: 28px 0 0 32px !important;
  border-left: 1px solid var(--v2-line);
}
.admin-dashboard-overview h2 { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; }
.compact-stats { display: block !important; }
.compact-stats .stat {
  display: flex !important;
  align-items: baseline;
  justify-content: space-between;
  padding: 20px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--v2-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.compact-stats .stat strong { font: 500 2rem/1 var(--v2-display) !important; }
.compact-stats .stat span { color: var(--v2-muted) !important; font-size: .8rem !important; text-transform: capitalize; }

.admin-studio-content {
  grid-column: 1;
  margin-top: 0 !important;
  padding: 28px 0 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
.admin-studio-content .compact-header { padding-bottom: 16px; border-bottom: 1px solid var(--v2-line); }
.admin-studio-content .compact-header h2 { font: 500 2.1rem/1 var(--v2-display); }
.bulk-actions { padding: 14px 0 !important; border-bottom: 1px solid var(--v2-line); }

.admin-post {
  min-height: 96px;
  padding: 12px 0 !important;
  border: 0 !important;
  border-bottom: 1px solid var(--v2-line) !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.admin-post:hover { background: color-mix(in srgb, var(--v2-surface) 74%, transparent) !important; }
.admin-post-link { min-width: 0; }
.admin-post .media-preview { width: 112px !important; height: 70px !important; flex: 0 0 112px !important; }
.admin-post-main > span { font-family: var(--v2-display); font-size: 1.12rem; }
.admin-post-main small { color: var(--v2-muted) !important; }
.admin-post .row-actions button, .admin-post .row-actions .button {
  min-height: 34px !important;
  padding: 7px 10px !important;
  border-color: transparent !important;
  background: transparent !important;
  color: var(--v2-muted) !important;
}
.admin-post .row-actions button:hover, .admin-post .row-actions .button:hover { color: var(--v2-accent) !important; }

.admin-page main > .panel:not(.admin-studio-content),
.admin-page main > .chat-shell,
.admin-page main > .admin-community-shell {
  grid-column: 1 / -1;
  width: 100%;
  border-radius: 0 !important;
}

.editorial-editor, .form-section { border-color: var(--v2-line) !important; }
.form-section { border-radius: 0 !important; background: transparent !important; }
.status-pill { border-radius: var(--v2-radius-sm) !important; }

/* Tablet */
@media (max-width: 1020px) {
  .member-journal-page main { grid-template-columns: minmax(0, 1fr) 240px; gap: 36px; }
  .member-feed-note p:not(.rail-label) { font-size: 1.2rem; }
  .admin-page main { grid-template-columns: 1fr; width: calc(100% - 40px) !important; }
  .admin-dashboard-overview { grid-column: 1; grid-row: auto; padding: 26px 0 !important; border: 0; border-bottom: 1px solid var(--v2-line); }
  .compact-stats { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .admin-studio-content { grid-column: 1; }
  .admin-topbar nav { gap: 18px !important; }
  .admin-topbar nav a { font-size: .76rem !important; }
}

/* Mobile application shell */
@media (max-width: 760px) {
  body:not(.public-entry-page):not(.admin-page) { padding-bottom: 78px; }
  main { padding: 28px 18px 56px !important; }

  body.member-journal-page .topbar:not(.admin-topbar),
  body:not(.public-entry-page):not(.admin-page) .topbar:not(.admin-topbar) {
    position: sticky !important;
    top: 0;
    min-height: 66px !important;
    padding: 0 18px !important;
  }
  .topbar:not(.admin-topbar) .brand-logo { width: 104px !important; }
  body.member-journal-page .topbar:not(.admin-topbar) nav,
  body:not(.public-entry-page):not(.admin-page) .topbar:not(.admin-topbar) nav {
    position: fixed !important;
    z-index: 15;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid !important;
    grid-template-columns: repeat(5, 1fr);
    gap: 0 !important;
    height: 70px !important;
    min-height: 70px !important;
    padding: 6px 4px max(6px, env(safe-area-inset-bottom)) !important;
    border-top: 1px solid var(--v2-line);
    background: color-mix(in srgb, var(--v2-paper) 96%, transparent);
    backdrop-filter: blur(16px);
  }
  .topbar:not(.admin-topbar) nav > .nav-link,
  .topbar:not(.admin-topbar) .nav-profile {
    display: flex !important;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    min-height: 58px;
    padding: 4px 2px !important;
    border: 0 !important;
    color: var(--v2-muted) !important;
    font-size: .68rem !important;
    line-height: 1.1;
  }
  .topbar:not(.admin-topbar) nav > .nav-link::before,
  .topbar:not(.admin-topbar) .nav-profile::before {
    display: block;
    width: 22px;
    height: 22px;
    margin-bottom: 5px;
    content: "";
    border: 1.8px solid currentColor;
    border-radius: 50%;
  }
  .topbar:not(.admin-topbar) .nav-link:nth-child(1)::before { border-radius: 3px; box-shadow: inset 0 -8px 0 currentColor; }
  .topbar:not(.admin-topbar) .nav-link:nth-child(2)::before { border-radius: 3px 3px 7px 7px; }
  .topbar:not(.admin-topbar) .nav-chat-link::before { border-radius: 50% 50% 50% 3px; }
  .topbar:not(.admin-topbar) .nav-community-link::before { box-shadow: 10px 0 0 -4px var(--v2-paper), 10px 0 0 -2px currentColor; }
  .topbar:not(.admin-topbar) nav > .nav-link.is-active { color: var(--v2-accent) !important; }
  .topbar:not(.admin-topbar) nav > .nav-link.is-active::after { display: none; }
  .topbar:not(.admin-topbar) .nav-profile { grid-column: 5; grid-row: 1; }
  .topbar:not(.admin-topbar) .nav-profile::after { content: "Account"; }
  .topbar:not(.admin-topbar) .nav-member-name, .topbar:not(.admin-topbar) .nav-change-link { display: none !important; }
  .topbar:not(.admin-topbar) .nav-signout { display: none !important; }
  .nav-badge { position: absolute; top: 2px; right: 20%; }

  body.member-journal-page .mobile-profile-link { top: 13px !important; right: 16px !important; left: auto !important; }
  body.member-journal-page .notification-center-button { top: 14px !important; right: 62px !important; left: auto !important; }
  .mobile-profile-avatar { width: 38px !important; height: 38px !important; }

  body.member-journal-page main { display: block !important; width: 100% !important; padding-right: 18px !important; padding-left: 18px !important; }
  body.member-journal-page .creator-masthead { display: none !important; }
  body.member-journal-page .creator-edition { display: none !important; }
  body.member-journal-page .member-feed-heading { display: flex !important; width: 100% !important; padding-top: 22px !important; }
  .feed-stories { margin-right: -18px; overflow: hidden; }
  .feed-story-track { overflow-x: auto; padding-right: 18px; scrollbar-width: none; }
  .feed-story { width: 68px !important; min-width: 68px !important; height: 68px !important; }
  body.member-journal-page .member-feed-note { position: static !important; display: none !important; }
  .feed-poll-list { grid-template-columns: 1fr; }

  body.member-journal-page .post { width: calc(100% + 36px) !important; margin-right: -18px !important; margin-left: -18px !important; padding-top: 28px !important; }
  body.member-journal-page .post-body { padding: 18px 18px 0 !important; }
  .post > .post-gallery, .post > .post-media, .post > .video-preview,
  .post > .locked-media { width: 100% !important; }
  .post-media img, .gallery-slide img { max-height: none; }
  .post-body > h2 { font-size: 36px !important; }
  .post-action-row { justify-content: space-between; }
  .post-action-row .button, .post-action-row button { font-size: .82rem !important; }
  .tier-locked .locked-placeholder, .locked-media { min-height: 340px !important; }

  html body.member-journal-page > .theme-toggle,
  html body.member-journal-page > .install-app-button,
  html body.member-journal-page > .help-button { display: none !important; }
  body.member-journal-page .notification-prompt {
    right: 12px !important;
    bottom: 82px !important;
    left: 12px !important;
    width: auto !important;
    max-width: none !important;
    padding: 16px !important;
    border-radius: var(--v2-radius) !important;
  }
  body.member-journal-page .notification-prompt h2 { margin-bottom: 6px !important; font-size: 1.35rem !important; }
  body.member-journal-page .notification-prompt p { margin-bottom: 12px !important; font-size: .82rem; }
  body.member-journal-page .notification-prompt-actions { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; }
  body.member-journal-page .notification-prompt-actions button { min-height: 40px !important; padding: 8px !important; font-size: .74rem !important; }
  .site-footer { display: none !important; }

  .public-entry-nav, .preview-nav {
    grid-template-columns: 1fr auto !important;
    min-height: 64px !important;
  }
  .public-entry-nav nav, .preview-nav nav { gap: 16px !important; }
  .public-entry-nav nav a, .preview-nav nav a { padding: 22px 0 19px !important; font-size: .72rem !important; }
  .preview-join-link { display: none !important; }

  .public-join-page .join-gate { display: block !important; padding: 48px 0 90px !important; }
  .public-join-page .join-copy h1 { font-size: clamp(52px, 16vw, 72px) !important; }
  .join-manifesto { min-height: 420px !important; margin-top: 56px; border-left: 0 !important; }
  .join-benefits { position: static !important; display: block !important; margin-top: 24px !important; }
  .join-benefits span { padding: 16px 0 !important; border-bottom: 1px solid var(--v2-line); }

  .discover-profile { padding-top: 16px; }
  .discover-cover { height: 250px; margin-right: -20px; margin-left: -20px; }
  .discover-profile-row {
    grid-template-columns: 94px 1fr;
    gap: 16px;
    width: 100%;
    margin-top: -46px;
  }
  .discover-avatar { width: 94px; border-width: 5px; }
  .discover-profile-copy { align-self: end; padding-bottom: 0; }
  .discover-profile-copy .eyebrow { display: none; }
  .discover-profile-copy h1 { font-size: 42px !important; }
  .discover-profile-copy p:last-child { grid-column: 1 / -1; font-size: .9rem; }
  .discover-profile-cta { grid-column: 1 / -1; width: 100%; margin: 8px 0 0; }
  .public-discover-page .discover-index { width: 100% !important; overflow-x: auto; }
  .public-discover-page .discover-index > p { display: none; }
  .public-discover-page .discover-index ol { width: max-content; }
  .discover-stories-wrap, .preview-hero, .preview-cta { width: 100% !important; }
  .preview-hero { padding-top: 48px !important; }
  .discover-section-head { display: block !important; }
  .discover-section-head > p { max-width: 34ch; }
  .public-discover-page .preview-card,
  .public-discover-page .preview-card:nth-child(even) {
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
  }
  .public-discover-page .preview-card:nth-child(even) .preview-media,
  .public-discover-page .preview-card:nth-child(even) .preview-card-copy { grid-column: auto; grid-row: auto; }
  .public-discover-page .preview-card-copy { width: 100%; }
  .preview-cta { display: block !important; padding: 44px 0 !important; }

  .admin-page main { display: block; width: calc(100% - 28px) !important; padding-top: 28px !important; }
  .admin-topbar { padding: 0 14px !important; }
  .admin-topbar .brand::after { font-size: 1rem; }
  .admin-studio-heading { display: block !important; min-height: 0 !important; }
  .admin-studio-heading h1 { font-size: 48px !important; }
  .admin-studio-heading::after { display: none; }
  .admin-dashboard-overview { padding: 24px 0 !important; }
  .compact-stats { grid-template-columns: 1fr 1fr !important; gap: 0 18px; }
  .admin-top-controls { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 8px; }
  .admin-top-controls .button { flex: 0 0 auto; }
  .admin-post { grid-template-columns: auto minmax(0, 1fr) !important; }
  .admin-post .media-preview { width: 76px !important; height: 62px !important; flex-basis: 76px !important; }
  .admin-post .row-actions { grid-column: 2; justify-content: flex-start; }
}

@media (max-width: 420px) {
  html body.public-entry-page main { padding-right: 16px !important; padding-left: 16px !important; }
  .preview-nav nav a:last-child { display: none; }
  .creator-masthead h1 { font-size: 38px !important; }
  .post-body > h2 { font-size: 32px !important; }
  .post-action-row { gap: 0 !important; }
  .post-action-row .button, .post-action-row button { padding: 8px !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Final specificity bridge for legacy admin rules that used hard-coded pink. */
html[data-theme] body.admin-page .admin-heading-action,
html[data-theme] body.admin-page .admin-new-post {
  border-color: var(--v2-accent) !important;
  background: var(--v2-accent) !important;
  color: #fff !important;
  box-shadow: none !important;
}

html[data-theme] body.admin-page .admin-heading-action:hover,
html[data-theme] body.admin-page .admin-new-post:hover {
  border-color: var(--v2-accent-dark) !important;
  background: var(--v2-accent-dark) !important;
}

html[data-theme] body.admin-page .admin-post-main > span,
html[data-theme] body.admin-page .post-metrics,
html[data-theme] body.admin-page .post-metrics span,
html[data-theme] body.admin-page .stat,
html[data-theme] body.admin-page .stat strong,
html[data-theme] body.admin-page .stat span {
  border-color: var(--v2-line) !important;
  color: var(--v2-ink) !important;
}

html[data-theme] body.admin-page .post-metrics span {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}

html[data-theme] body.admin-page .stat::before,
html[data-theme] body.admin-page .stat::after {
  display: none !important;
}

html[data-theme] body.admin-page .admin-studio-content,
html[data-theme] body.admin-page .bulk-actions {
  border-color: var(--v2-line) !important;
  background: transparent !important;
}

html[data-theme] body.admin-page #main-content a.button.admin-heading-action,
html[data-theme] body.admin-page #main-content a.button.admin-new-post {
  border-color: var(--v2-accent) !important;
  background-color: var(--v2-accent) !important;
  background-image: none !important;
  color: #fff !important;
  box-shadow: none !important;
}

html[data-theme] body.admin-page #main-content .admin-post .danger {
  border-color: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: var(--v2-danger) !important;
  box-shadow: none !important;
}
