/* ReportLinen — AI Recurring Client Report Operations Platform.
   ONE contrast rule, minimal !important: every surface sets --fg / --fg-muted
   / --title / --surface / --border on itself; components only ever reference
   those five custom properties. Put a component inside `.on-dark` (or a node
   that already redefines the tokens, e.g. .section--night) and every child
   recolors correctly with zero extra overrides.

   Visual direction: Structured White Space — margins, section numbers,
   version stamps, cutoff markers. NO linen fabric texture. NO score dials or
   instrument theater. Background carries soft vertical margin rules (like a
   printed page's margin guides) plus low-opacity plum/rose washes — not a
   cream-dot or ruler-tick twin of any sibling site. */
@import url("https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=IBM+Plex+Sans:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600;700&display=swap");

:root {
  --paper: #F5F0E7; /* Linen Ivory */
  --ink: #211827; /* Edition Plum */
  --rose: #BC496B;
  --cyan: #268DA0;
  --blue: #496FD2;
  --lime: #9DBE47;
  --amber: #D29A35;
  --pass: #39A87A;
  --risk: #D65161;
  --ai: #8469CF;

  --card-light: #FFFDF8;
  --card-dark: #2D2233;
  --border-light: #D7CEC1;
  --border-dark: #493A50;
  --title-light: #29232B;
  --title-dark: #FAF6F8;
  --body-light: #3F3A42;
  --body-muted-light: #6A646B; /* palette body */
  --body-dark: #D3C8D7;
  --body-muted-dark: #A79AAE;

  /* Contrast tokens — redefined inside .on-dark and night surfaces only. */
  --fg: var(--body-light);
  --fg-muted: var(--body-muted-light);
  --title: var(--title-light);
  --surface: var(--card-light);
  --border: var(--border-light);

  --font-sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;
  --font-serif: "Fraunces", Georgia, "Times New Roman", serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;

  --announce-h: 36px;
  --header-h: 58px;
  --site-top-h: calc(var(--announce-h) + var(--header-h));
  --container: min(1120px, calc(100% - 2.5rem));
  --container-wide: min(1280px, calc(100% - 2rem));
  --radius-s: 3px;
  --radius-m: 7px;
  --radius-l: 11px;
  --shadow-soft: 0 10px 28px rgba(33, 24, 39, 0.1);
  --shadow-night: 0 16px 44px rgba(0, 0, 0, 0.45);
  --ease-edition: cubic-bezier(0.22, 1, 0.36, 1);
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--fg);
  background-color: var(--paper);
  /* Structured whitespace ground — two soft vertical margin rules framing the
     content column (like a printed page's margin guides), plus low-opacity
     plum/rose corner washes. Not a cream-dot grid, not a ruler-tick strip. */
  background-image:
    linear-gradient(90deg,
      transparent 0, transparent calc(50% - 438px),
      rgba(33, 24, 39, 0.08) calc(50% - 438px), rgba(33, 24, 39, 0.08) calc(50% - 437px),
      transparent calc(50% - 437px), transparent calc(50% + 437px),
      rgba(33, 24, 39, 0.08) calc(50% + 437px), rgba(33, 24, 39, 0.08) calc(50% + 438px),
      transparent calc(50% + 438px), transparent 100%),
    radial-gradient(ellipse 70% 42% at 4% 2%, rgba(188, 73, 107, 0.1), transparent 55%),
    radial-gradient(ellipse 62% 40% at 97% 6%, rgba(33, 24, 39, 0.07), transparent 52%),
    radial-gradient(ellipse 66% 40% at 95% 98%, rgba(38, 141, 160, 0.06), transparent 52%);
  background-attachment: fixed;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: var(--rose); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--ink); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  color: var(--title);
  font-weight: 600;
  line-height: 1.16;
  margin: 0 0 0.65em;
  letter-spacing: -0.01em;
}

h1 { font-size: clamp(2rem, 4vw, 2.8rem); }
h2 { font-size: clamp(1.55rem, 3vw, 2.1rem); }
h3 { font-size: clamp(1.15rem, 2vw, 1.35rem); }
h4 { font-size: 1rem; font-family: var(--font-sans); font-weight: 700; }

p { margin: 0 0 1em; color: var(--fg); }
ul, ol { margin: 0 0 1em; padding-left: 1.25em; }
code { font-family: var(--font-mono); font-size: 0.92em; }

:focus-visible { outline: 2px solid var(--amber); outline-offset: 3px; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

@keyframes fade-up {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes edition-pulse {
  0%, 100% { box-shadow: inset 0 0 0 0 rgba(188, 73, 107, 0); }
  50% { box-shadow: inset 0 0 0 3px rgba(188, 73, 107, 0.32); }
}
@keyframes stamp-in {
  from { opacity: 0; transform: translateY(6px) rotate(-3deg); }
  to { opacity: 1; transform: translateY(0) rotate(-3deg); }
}

/* ————————————————— Layout shell ————————————————— */
.site-shell { min-height: 100dvh; display: flex; flex-direction: column; position: relative; isolation: isolate; padding-top: var(--site-top-h); }
.site-shell > main { flex: 1 1 auto; }

.container { width: var(--container); margin-inline: auto; }
.container--wide { width: var(--container-wide); margin-inline: auto; }

.section { padding: 1.5rem 0; position: relative; }
.section--tight { padding: 1.1rem 0; }
.section--docs { padding-top: 1.5rem; padding-bottom: 2rem; }
.section--docs .legal-body { max-width: 68ch; }

.section--night,
.on-dark {
  --fg: var(--body-dark);
  --fg-muted: var(--body-muted-dark);
  --title: var(--title-dark);
  --surface: var(--card-dark);
  --border: var(--border-dark);
}

.section--night {
  color: var(--fg);
  background:
    linear-gradient(135deg, rgba(41, 35, 43, 0.9) 0%, transparent 55%),
    repeating-linear-gradient(90deg, rgba(73, 58, 80, 0.32) 0, rgba(73, 58, 80, 0.32) 1px, transparent 1px, transparent 74px),
    linear-gradient(180deg, #241C29 0%, var(--ink) 100%);
}

.mt-s { margin-top: 0.75rem !important; }
.mt-m { margin-top: 1.5rem !important; }
.mt-l { margin-top: 2.5rem !important; }

.is-ok { color: var(--pass) !important; }
.is-warn { color: var(--risk) !important; }
.is-active { border-color: var(--amber) !important; }
.is-inview { animation: edition-pulse 0.65s var(--ease-edition) forwards; }

/* ————————————————— Type utilities ————————————————— */
.kicker {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rose);
  margin-bottom: 0.65rem;
}

.lead { font-size: clamp(1.05rem, 2vw, 1.2rem); line-height: 1.6; color: var(--fg); max-width: 62ch; }

.mono-label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--fg-muted);
  font-weight: 600;
}

.ai-badge {
  display: inline-flex; align-items: center; gap: 0.3rem;
  font-family: var(--font-mono); font-size: 0.6rem; text-transform: uppercase;
  letter-spacing: 0.05em; font-weight: 700; padding: 0.14rem 0.4rem;
  border-radius: 999px; background: rgba(132, 105, 207, 0.16); color: var(--ai);
}

.hint-line {
  font-family: var(--font-mono);
  font-size: 0.78rem;
  color: var(--fg-muted);
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--border);
  border-left: 3px solid var(--rose);
  background: var(--surface);
  margin: 1rem 0 0;
  border-radius: 0 var(--radius-s) var(--radius-s) 0;
}

.text-link { font-weight: 600; color: var(--rose); text-decoration: none; border-bottom: 1px solid rgba(188, 73, 107, 0.35); background: none; padding: 0; cursor: pointer; font-family: var(--font-sans); font-size: inherit; }
.text-link:hover { color: var(--ink); border-bottom-color: var(--amber); }
.on-dark .text-link, .section--night .text-link { color: #E79DB4; }
.on-dark a:hover, .section--night a:hover,
.on-dark .text-link:hover, .section--night .text-link:hover { color: var(--amber); }

.linkish {
  background: none; border: none; padding: 0; font-weight: 700; color: var(--rose);
  cursor: pointer; font-family: var(--font-sans); font-size: 0.86rem;
  text-decoration: underline; text-decoration-color: rgba(188, 73, 107, 0.4);
}
.linkish:hover { color: var(--ink); }

/* ————————————————— Site top: announce + header ————————————————— */
.site-top {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 900;
  width: 100%;
  min-height: var(--site-top-h);
  background: var(--card-light);
}

/* Folio stamp announce bar — a small rotated proof-stamp badge to the left of
   a centered, short message. Distinct from ScoreMeadow's calibration notch
   rail: no tick-mark background, no full-width rail — just the stamp + line. */
.announce-bar--folio {
  position: relative;
  min-height: var(--announce-h);
  color: #E8DEE2;
  font-size: 0.8rem;
  background: var(--ink);
  border-bottom: 1px solid rgba(215, 206, 193, 0.16);
}
.announce-bar--folio .announce-bar-inner {
  width: var(--container-wide);
  margin-inline: auto;
  padding: 0.45rem 1rem;
  min-height: var(--announce-h);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
}
.announce-stamp {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--amber);
  border: 1.5px dashed rgba(210, 154, 53, 0.65);
  border-radius: var(--radius-s);
  padding: 0.16rem 0.4rem;
  transform: rotate(-3deg);
  animation: stamp-in 0.4s var(--ease-edition);
}
.announce-bar--folio .announce-text {
  margin: 0;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem 0.65rem;
  line-height: 1.3;
  text-align: center;
}
.announce-bar--folio .announce-msg { color: #EFE7EA; font-weight: 500; }
.announce-bar--folio .announce-action {
  color: #F0B8C7;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(240, 184, 199, 0.4);
}
.announce-bar--folio .announce-action:hover,
.announce-bar--folio .announce-action:focus-visible {
  color: var(--amber);
  border-bottom-color: var(--amber);
}

.site-header {
  min-height: var(--header-h);
  background: rgba(255, 253, 248, 0.94);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border-light);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
}

.header-inner {
  width: var(--container-wide);
  margin-inline: auto;
  padding: 0 1rem;
  min-height: var(--header-h);
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
}

.header-actions { display: flex; align-items: center; gap: 0.65rem; }

.brand { display: inline-flex; align-items: center; gap: 0.6rem; text-decoration: none; color: var(--title-light); }
.brand:hover, .brand:focus-visible { color: var(--rose); }
.brand-text { display: flex; flex-direction: column; line-height: 1.15; }
.brand-text strong { font-family: var(--font-sans); font-size: 1.02rem; font-weight: 800; letter-spacing: -0.02em; color: inherit; }
.brand-text span { font-family: var(--font-mono); font-size: 0.6rem; letter-spacing: 0.03em; color: var(--rose); text-transform: uppercase; }
.brand-name { font-family: var(--font-sans); font-size: 1.02rem; font-weight: 800; letter-spacing: -0.02em; }
.brand-slogan-inline { display: block; color: var(--rose); font-weight: 600; margin: 0.2rem 0 0.6rem; }
.brand-headline { margin-top: 0.15rem; }
.brand-desc { color: var(--fg); }
.brand-lockup { display: flex; align-items: center; gap: 0.65rem; margin-bottom: 0.3rem; }
.brand-lockup h1 { margin: 0; }
.brand-concept-line {
  margin: 0.2rem 0 0.65rem;
  font-family: var(--font-serif);
  font-size: 0.98rem;
  color: var(--amber);
  font-style: italic;
}

.logo-mark { width: 2rem; height: 1.7rem; display: grid; place-items: center; flex-shrink: 0; color: var(--ink); }
.logo-mark svg { width: 100%; height: 100%; }
.logo-mark--hero { width: clamp(3rem, 5vw, 3.9rem); height: clamp(2.5rem, 4.2vw, 3.2rem); }

.nav-main { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0.15rem 0.25rem; }

.nav-link {
  font-size: 0.79rem;
  font-weight: 600;
  color: rgba(33, 24, 39, 0.75);
  text-decoration: none;
  padding: 0.45rem 0.55rem;
  border-radius: var(--radius-s);
  border: 1px solid transparent;
  transition: color 0.2s, background 0.2s, border-color 0.2s;
}
.nav-link:hover { color: var(--ink); background: rgba(255, 253, 248, 0.9); border-color: var(--border-light); }
.nav-link.is-active {
  color: var(--ink) !important;
  background: var(--card-light) !important;
  border-color: var(--border-light) !important;
  box-shadow: inset 0 -2px 0 var(--rose);
}

.header-signin { font-size: 0.82rem; font-weight: 600; color: var(--body-light); text-decoration: none; }
.header-signin:hover { color: var(--ink); }

.nav-toggle {
  display: none;
  border: 1px solid var(--border-light);
  background: var(--card-light);
  color: var(--ink);
  border-radius: var(--radius-s);
  padding: 0.35rem 0.55rem;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
}

.mobile-nav {
  display: none;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.75rem 1rem 1rem;
  border-top: 1px solid var(--border-light);
  background: var(--paper);
}
.mobile-nav.is-open { display: flex; }
.mobile-nav a { text-decoration: none; font-weight: 600; color: var(--body-light); padding: 0.5rem 0.65rem; border-radius: var(--radius-s); }
.mobile-nav a.is-active { background: var(--card-light); color: var(--ink); }

/* User menu */
.user-menu { position: relative; }
.user-avatar {
  width: 2.15rem; height: 2.15rem; border-radius: 50%;
  border: 1px solid var(--border-light);
  background: var(--rose); color: #fff;
  font-family: var(--font-mono); font-size: 0.72rem; font-weight: 700;
  cursor: pointer; display: grid; place-items: center;
}
.user-dropdown {
  --fg: var(--body-light); --fg-muted: var(--body-muted-light);
  --surface: var(--card-light); --border: var(--border-light);
  display: none; position: absolute; top: calc(100% + 0.6rem); right: 0;
  min-width: 228px; background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-m); box-shadow: var(--shadow-soft);
  padding: 0.5rem; flex-direction: column; z-index: 50;
}
.user-dropdown.is-open { display: flex; }
.user-workspace-label {
  font-family: var(--font-mono); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--fg-muted); padding: 0.35rem 0.6rem 0.5rem; border-bottom: 1px solid var(--border); margin-bottom: 0.3rem;
}
.user-dropdown a, .user-dropdown button {
  display: block; width: 100%; text-align: left; padding: 0.5rem 0.6rem; border-radius: var(--radius-s);
  color: var(--fg); text-decoration: none; font-size: 0.86rem; font-weight: 600;
  border: none; background: none; cursor: pointer; font-family: var(--font-sans);
}
.user-dropdown a:hover, .user-dropdown button:hover { background: var(--paper); color: var(--ink); }
.user-dropdown button[data-sign-out] { color: var(--risk); margin-top: 0.2rem; border-top: 1px solid var(--border); border-radius: 0; padding-top: 0.6rem; }

/* ————————————————— Buttons ————————————————— */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
  font-family: var(--font-sans); font-weight: 700; font-size: 0.9rem;
  padding: 0.65rem 1.15rem; border-radius: var(--radius-m); border: 1px solid transparent;
  cursor: pointer; text-decoration: none; line-height: 1.2;
  transition: transform 0.15s, box-shadow 0.15s, background 0.15s, color 0.15s, border-color 0.15s;
}
.btn:active { transform: translateY(1px); }
.btn-sm { padding: 0.45rem 0.85rem; font-size: 0.82rem; }
.btn-lg { padding: 0.85rem 1.5rem; font-size: 1rem; }

.btn-primary { background: var(--rose); color: #fff; box-shadow: 0 8px 20px rgba(188, 73, 107, 0.32); }
.btn-primary:hover { background: #A13B5C; box-shadow: 0 10px 24px rgba(188, 73, 107, 0.38); color: #fff; }

.btn-secondary { background: var(--card-light); color: var(--ink); border-color: var(--border-light); }
.btn-secondary:hover { border-color: var(--rose); color: var(--rose); }
.section--night .btn-secondary, .on-dark .btn-secondary { background: rgba(188, 73, 107, 0.18); color: var(--title-dark); border-color: rgba(211, 200, 215, 0.35); }
.section--night .btn-secondary:hover, .on-dark .btn-secondary:hover { background: var(--rose); color: #fff; }

.btn-ghost { background: transparent; color: var(--fg); border-color: var(--border); }
.btn-ghost:hover { background: rgba(188, 73, 107, 0.08); }
.section--night .btn-ghost, .on-dark .btn-ghost { color: var(--title-dark); border-color: rgba(211, 200, 215, 0.35); }

.btn-line { background: transparent; color: var(--rose); border-color: var(--rose); }
.btn-line:hover { background: rgba(188, 73, 107, 0.08); }

.btn-full { width: 100%; }
.btn[disabled] { opacity: 0.6; cursor: default; }

/* Side panel — used in folio-mast rail and standalone asides */
.side-panel {
  padding: 0.85rem 1rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 3px solid var(--rose);
  border-radius: var(--radius-m);
  box-shadow: var(--shadow-soft);
  color: var(--fg);
}
.side-panel-chips { display: grid; gap: 0.4rem; margin-top: 0.5rem; }
.side-chip { display: flex; justify-content: space-between; gap: 0.75rem; font-size: 0.82rem; padding: 0.4rem 0.55rem; border: 1px solid var(--border); border-radius: var(--radius-s); background: rgba(188, 73, 107, 0.06); }
.side-chip span { color: var(--fg-muted); font-family: var(--font-mono); font-size: 0.68rem; text-transform: uppercase; }
.side-chip b { color: var(--title); }

/* Reusable CTA + hint row used at the bottom of most interactive sections */
.case-action-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.85rem; margin-top: 1.1rem; padding-top: 1rem; border-top: 1px dashed var(--border-light); }
.case-action-row .hint-line { margin: 0; flex: 1 1 260px; }

/* ————————————————— Section headings ————————————————— */
.sec-head { margin-bottom: 1rem; }
.sec-head .lead { margin-top: 0.35rem; }

/* ————————————————— Workspace layout helpers ————————————————— */
.workspace { display: flex; flex-direction: column; gap: 0.9rem; }
.workspace-main {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(240px, 0.62fr);
  gap: 1rem;
  align-items: start;
}
.workspace-toolbar { grid-column: 1 / -1; width: 100%; display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; justify-content: space-between; }
.workspace-content { min-width: 0; }
.workspace-aside { min-width: 0; display: flex; flex-direction: column; gap: 0.6rem; }
.workspace-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; }

@media (max-width: 1024px) { .workspace-main { grid-template-columns: 1fr; } }

/* ————————————————— Fact lines / status ————————————————— */
.fact-lines { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.fact-lines li { display: flex; justify-content: space-between; gap: 0.75rem; font-size: 0.85rem; }
.fact-lines span { color: var(--fg-muted); }
.fact-lines b { color: var(--title); font-weight: 600; }
.fact-lines--compact li { font-size: 0.8rem; }
.fact-lines--dark { --fg-muted: var(--body-muted-dark); }
.fact-lines--dark span { color: var(--body-muted-dark); }
.fact-lines--dark b { color: var(--title-dark); }

.code-block, .code-textarea {
  font-family: var(--font-mono); font-size: 0.82rem; line-height: 1.6;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-m);
  color: var(--fg); padding: 1rem 1.1rem; overflow-x: auto;
}
.code-block { white-space: pre; }
.code-textarea { width: 100%; resize: vertical; min-height: 8rem; white-space: pre; }

.webhook-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; font-size: 0.86rem; }
.webhook-list li { padding: 0.55rem 0.7rem; border-radius: var(--radius-s); border: 1px solid var(--border); background: var(--surface); }

/* ————————————————— Forms ————————————————— */
.form-field { display: flex; flex-direction: column; gap: 0.35rem; margin-bottom: 0.85rem; font-size: 0.85rem; font-weight: 700; color: var(--title); }
.form-stack { display: flex; flex-direction: column; gap: 0.9rem; }

input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="search"], select, textarea {
  width: 100%; font-family: var(--font-sans); font-weight: 400; font-size: 0.9rem;
  padding: 0.6rem 0.75rem; border: 1px solid var(--border); border-radius: var(--radius-s);
  background: var(--surface); color: var(--fg);
}
textarea { font-family: var(--font-mono); font-size: 0.82rem; resize: vertical; min-height: 5.5rem; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--rose); outline-offset: 1px; }

input[type="range"] { width: 100%; accent-color: var(--rose); }

.checkbox-row { display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; font-weight: 400; color: var(--fg); }
.checkbox-row input[type="checkbox"], .checkbox-row input[type="radio"] { accent-color: var(--rose); width: 1rem; height: 1rem; flex-shrink: 0; }
.checkbox-row small { display: block; color: var(--fg-muted); font-weight: 400; }
.cookie-row { align-items: flex-start; margin-bottom: 0.6rem; }
.intake-section-row { justify-content: space-between; padding: 0.6rem 0.75rem; border: 1px solid var(--border-light); border-radius: var(--radius-s); background: var(--card-light); }
.intake-section-row b { flex: 1 1 auto; }
.intake-section-row span { color: var(--body-muted-light); font-size: 0.78rem; }

/* Custom English file picker — never rely on the native "Choose File" label. */
.file-picker { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.file-picker-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.file-picker-btn {
  display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.55rem 0.9rem;
  border: 1px dashed var(--border) !important; border-radius: var(--radius-s);
  color: var(--title); font-weight: 700; font-size: 0.82rem; background: var(--surface); cursor: pointer;
}
.file-picker-btn:hover { border-color: var(--rose) !important; color: var(--rose); background: transparent; }
.file-picker-name { font-family: var(--font-mono); font-size: 0.78rem; color: var(--fg-muted); }

@media (max-width: 640px) { .intake-field-row { grid-template-columns: 1fr !important; } }

/* Edition status strip — Current / Supported / Reviewed / Safe To Share */
.edition-status { background: #EFE8DB; border-bottom: 1px solid var(--border-light); }
.edition-badge-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.65rem; margin-top: 0.85rem; }
.edition-badge {
  padding: 0.75rem 0.9rem; border-radius: var(--radius-m); border: 1px solid var(--border-light);
  border-top: 3px solid var(--border-light); background: var(--card-light); display: flex; flex-direction: column; gap: 0.2rem;
}
.edition-badge b { font-size: 0.92rem; color: var(--title-light); }
.edition-badge span { font-size: 0.76rem; color: var(--body-muted-light); }
.edition-badge--current { border-top-color: var(--cyan); }
.edition-badge--supported { border-top-color: var(--blue); }
.edition-badge--reviewed { border-top-color: var(--amber); }
.edition-badge--safe { border-top-color: var(--pass); }
@media (max-width: 768px) { .edition-badge-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .edition-badge-strip { grid-template-columns: 1fr; } }

.edition-conclusion { background: rgba(210, 154, 53, 0.06); border-bottom: 1px solid var(--border-light); }
.edition-conclusion-inner { border-left: 3px solid var(--amber); padding-left: 1.1rem; }
.edition-conclusion-inner .mono-label { display: block; color: #8A5F14; margin-bottom: 0.5rem; }
.edition-conclusion-text { font-size: 1.05rem; max-width: 76ch; }

/* Instrument row rendered as numbered links, not cards */
.edition-instruments { border-bottom: 1px solid var(--border-light); }
.edition-instrument-row { display: flex; flex-wrap: wrap; gap: 0; margin-top: 0.75rem; border-top: 1px solid var(--border-light); }
.edition-instrument {
  flex: 1 1 150px; padding: 0.9rem 1rem 0.2rem; border-left: 1px solid var(--border-light);
  display: flex; flex-direction: column; gap: 0.25rem; text-decoration: none; color: inherit;
}
.edition-instrument:first-child { border-left: none; padding-left: 0; }
.edition-instrument span { display: block; width: 28px; font-family: var(--font-mono); font-size: 0.7rem; color: var(--rose); font-weight: 700; margin-bottom: 0.3rem; }
.edition-instrument b { font-size: 0.88rem; color: var(--title-light); }
.edition-instrument em { font-style: normal; font-size: 0.76rem; color: var(--body-muted-light); }
.edition-instrument:hover b { color: var(--rose); }
@media (max-width: 700px) {
  .edition-instrument { flex: 1 1 45%; border-left: none; border-top: 1px solid var(--border-light); }
}

/* ════════════════════════ PLATFORM — EDITION DESK ════════════════════════ */
.edition-desk { display: flex; flex-direction: column; gap: 0.9rem; }
.edition-desk-toolbar { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; justify-content: space-between; }
.edition-drawer-tabs { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.edition-drawer-tab {
  font-family: var(--font-mono); font-size: 0.74rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em;
  padding: 0.45rem 0.85rem; border-radius: 999px; border: 1px solid var(--border-light); background: var(--card-light); color: var(--body-muted-light); cursor: pointer;
}
.edition-drawer-tab[aria-pressed="true"] { background: var(--rose); color: #fff; border-color: var(--rose); }

.edition-desk-stage { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(240px, 0.75fr); gap: 1rem; align-items: start; }
.edition-desk-page {
  padding: 1.25rem 1.35rem; border-radius: var(--radius-l); border: 1px solid var(--border-light);
  background: var(--card-light); box-shadow: var(--shadow-soft); min-width: 0;
}
.edition-desk-content { display: flex; flex-direction: column; gap: 0; margin-top: 0.85rem; }
.edition-desk-para {
  display: block; width: 100%; text-align: left; padding: 0.85rem 0.9rem; border: 1px solid transparent;
  border-radius: var(--radius-s); background: transparent; cursor: pointer; font-family: var(--font-sans);
  border-bottom: 1px dashed var(--border-light);
}
.edition-desk-para:last-child { border-bottom: none; }
.edition-desk-para:hover, .edition-desk-para.is-active { border-color: var(--rose); background: rgba(188, 73, 107, 0.06); }
.edition-desk-para .mono-label { display: block; margin-bottom: 0.3rem; }
.edition-desk-para p { margin: 0; font-size: 0.9rem; color: var(--title-light); }

.edition-drawer {
  padding: 1rem 1.1rem; border-radius: var(--radius-l); border: 1px solid var(--border-light);
  background: #EFE8DB; min-width: 0; animation: fade-up 0.25s var(--ease-edition);
}
.edition-drawer p { margin: 0.4rem 0 0; font-size: 0.88rem; color: var(--body-light); }
.edition-drawer--source { border-top: 3px solid var(--cyan); }
.edition-drawer--narrative { border-top: 3px solid var(--blue); }
.edition-drawer--review { border-top: 3px solid var(--amber); }
.edition-drawer--delivery { border-top: 3px solid var(--pass); }

@media (max-width: 900px) { .edition-desk-stage { grid-template-columns: 1fr; } }

/* ════════════════════════ BLUEPRINTS — LIVING TOC ════════════════════════ */
.living-toc { overflow-x: auto; }
.living-toc-table { width: 100%; border-collapse: collapse; font-size: 0.86rem; }
.living-toc-table th, .living-toc-table td { padding: 0.7rem 0.75rem; border-bottom: 1px solid var(--border-light); text-align: left; }
.living-toc-table th { font-family: var(--font-mono); font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--body-muted-light); }
.living-toc-expand { background: none; border: none; padding: 0; font-weight: 700; color: var(--title-light); cursor: pointer; font-size: 0.9rem; font-family: var(--font-sans); text-align: left; }
.living-toc-expand::before { content: "+ "; color: var(--rose); font-weight: 700; }
.living-toc-row[aria-expanded="true"] .living-toc-expand::before,
.living-toc-detail:not([hidden]) + .living-toc-row .living-toc-expand::before { content: "\2212 "; }
.living-toc-detail td { background: #FBF7EF; border-bottom: 2px solid var(--border-light); }
.living-toc-detail p { margin: 0 0 0.5rem; font-size: 0.86rem; }

@media (max-width: 768px) { .living-toc-table { display: block; } .living-toc-table thead { display: none; } .living-toc-table tbody, .living-toc-table tr, .living-toc-table td { display: block; width: 100%; } .living-toc-table td { border-bottom: none; padding: 0.3rem 0; } .living-toc-row { border-bottom: 1px solid var(--border-light); padding: 0.5rem 0; } }

/* ════════════════════════ SOURCE CONTROL — CLOSING WINDOW ════════════════════════ */
.closing-window { display: flex; flex-direction: column; gap: 1.5rem; }
.closing-window-timeline {
  position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.5rem;
  padding-top: 1.5rem;
}
.closing-window-timeline::before {
  content: ""; position: absolute; top: 6px; left: 4%; right: 4%; height: 2px; background: var(--border-light);
}
.closing-window-node { position: relative; text-align: center; padding: 0 0.4rem; }
.closing-window-marker {
  display: block; width: 13px; height: 13px; border-radius: 50%; margin: 0 auto 0.6rem;
  background: var(--card-light); border: 2px solid var(--border-light); position: relative; z-index: 1;
}
.closing-window-node--included .closing-window-marker { border-color: var(--pass); background: var(--pass); }
.closing-window-node--late .closing-window-marker { border-color: var(--amber); background: var(--amber); }
.closing-window-node--pending .closing-window-marker { border-color: var(--border-light); }
.closing-window-node b { display: block; font-size: 0.86rem; color: var(--title-light); margin-bottom: 0.2rem; }
.closing-window-node p { margin: 0 0 0.3rem; font-size: 0.76rem; color: var(--body-muted-light); }
.closing-window-status { font-family: var(--font-mono); font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.1rem 0.4rem; border-radius: 999px; font-weight: 700; background: rgba(211, 206, 194, 0.4); color: var(--body-muted-light); }
.closing-window-node--included .closing-window-status { background: rgba(57, 168, 122, 0.16); color: var(--pass); }
.closing-window-node--late .closing-window-status { background: rgba(210, 154, 53, 0.2); color: #8A5F14; }

.closing-window-sources { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; }
.closing-window-source { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 0.6rem; padding: 0.65rem 0.85rem; border-radius: var(--radius-m); border-left: 3px solid var(--border-light); border: 1px solid var(--border-light); background: var(--card-light); }
.closing-window-source b { font-size: 0.86rem; color: var(--title-light); }
.closing-window-source span { font-size: 0.78rem; color: var(--body-muted-light); }
.closing-window-source code { font-size: 0.72rem; color: var(--fg-muted); }
.closing-window-source--included { border-left-color: var(--pass); }
.closing-window-source--late { border-left-color: var(--amber); }
.closing-window-source--excluded { border-left-color: var(--border-light); opacity: 0.7; }

@media (max-width: 900px) { .closing-window-timeline { grid-template-columns: repeat(3, minmax(0, 1fr)); } .closing-window-sources { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .closing-window-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ════════════════════════ NARRATIVE — PARAGRAPH DELTA ════════════════════════ */
.narrative-delta-view { display: flex; flex-direction: column; gap: 0.75rem; }
.narrative-delta {
  border-radius: var(--radius-m); border: 1px solid var(--border-light); background: var(--card-light); overflow: hidden;
}
.narrative-delta-head { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; padding: 0.65rem 0.9rem; background: #EFE8DB; }
.narrative-alert { font-family: var(--font-mono); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.03em; font-weight: 700; }
.narrative-alert.is-warn { color: #8A6414; background: rgba(210, 154, 53, 0.18); padding: 0.12rem 0.4rem; border-radius: 999px; }
.narrative-alert.is-risk { color: #8A2434; background: rgba(214, 81, 97, 0.16); padding: 0.12rem 0.4rem; border-radius: 999px; }
.narrative-delta--unsupported { border-color: var(--risk); }
.narrative-delta-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; }
.narrative-prior, .narrative-current { padding: 0.85rem 1rem; }
.narrative-prior { border-right: 1px dashed var(--border-light); opacity: 0.75; }
.narrative-prior span, .narrative-current span { display: block; font-family: var(--font-mono); font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--fg-muted); margin-bottom: 0.3rem; }
.narrative-prior p, .narrative-current p { margin: 0; font-size: 0.86rem; }
.narrative-delta--changed { border-left: 3px solid var(--blue); }
.narrative-delta--stale { border-left: 3px solid var(--risk); }
.narrative-delta--collapsed { border-style: dashed; opacity: 0.8; }
.narrative-collapse-toggle {
  display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 0.6rem;
  background: none; border: none; padding: 0.65rem 0.9rem; cursor: pointer; font-family: var(--font-sans);
  font-size: 0.85rem; color: var(--fg-muted); text-align: left;
}
.narrative-collapse-toggle::after { content: "Expand"; font-family: var(--font-mono); font-size: 0.68rem; color: var(--rose); text-transform: uppercase; flex-shrink: 0; }
.narrative-delta--collapsed.is-open .narrative-collapse-toggle::after { content: "Collapse"; }

@media (max-width: 700px) { .narrative-delta-body { grid-template-columns: 1fr; } .narrative-prior { border-right: none; border-bottom: 1px dashed var(--border-light); } }

/* ════════════════════════ EVIDENCE — ANNOTATED MARGIN ════════════════════════ */
.annotated-margin { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(220px, 0.72fr); gap: 1.5rem; align-items: start; }
.annotated-margin-body { font-size: 1rem; line-height: 1.75; }
.annotated-margin-body p { margin: 0 0 1.1rem; }
.annotated-margin-body sup { font-family: var(--font-mono); font-size: 0.68rem; color: var(--rose); font-weight: 700; margin-left: 0.15rem; cursor: pointer; }
.annotated-margin-rail { display: flex; flex-direction: column; gap: 0.75rem; position: sticky; top: calc(var(--site-top-h) + 1rem); }
.annotated-citation {
  padding: 0.75rem 0.9rem; border-radius: var(--radius-m); border: 1px solid var(--border-light); border-left: 3px solid var(--border-light);
  background: var(--card-light); display: flex; flex-direction: column; gap: 0.2rem;
}
.annotated-citation-num { display: inline-block; font-family: var(--font-mono); font-size: 0.66rem; color: var(--fg-muted); }
.annotated-citation b { font-size: 0.86rem; color: var(--title-light); }
.annotated-citation p { margin: 0; font-size: 0.78rem; color: var(--body-muted-light); }
.annotated-citation-status { font-family: var(--font-mono); font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.1rem 0.4rem; border-radius: 999px; font-weight: 700; align-self: flex-start; margin-top: 0.15rem; }
.annotated-citation--ok { border-left-color: var(--pass); }
.annotated-citation--ok .annotated-citation-status { background: rgba(57, 168, 122, 0.16); color: var(--pass); }
.annotated-citation--stale { border-left-color: var(--amber); }
.annotated-citation--stale .annotated-citation-status { background: rgba(210, 154, 53, 0.2); color: #8A5F14; }
.annotated-citation--missing { border-left-color: var(--risk); border-style: dashed; }
.annotated-citation--missing .annotated-citation-status { background: rgba(214, 81, 97, 0.16); color: var(--risk); }
.annotated-citation.is-highlighted { box-shadow: 0 0 0 2px var(--rose) inset; }

@media (max-width: 900px) { .annotated-margin { grid-template-columns: 1fr; } .annotated-margin-rail { position: static; } }

/* ════════════════════════ DISCLOSURE — CONTROLLED PRINT RUN ════════════════════════ */
.print-run-stack { display: flex; flex-direction: column; gap: 0.6rem; }
.print-run { border: 1px solid var(--border-light); border-radius: var(--radius-m); background: var(--card-light); overflow: hidden; }
.print-run-header {
  display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; width: 100%;
  padding: 0.85rem 1rem; background: none; border: none; cursor: pointer; text-align: left; font-family: var(--font-sans);
}
.print-run-header b { font-size: 0.98rem; color: var(--title-light); }
.print-run-header::after { content: "\25BE"; color: var(--fg-muted); transition: transform 0.2s; }
.print-run.is-expanded .print-run-header::after { transform: rotate(180deg); }
.print-run--internal { border-top: 3px solid var(--border-light); }
.print-run--client { border-top: 3px solid var(--blue); }
.print-run--executive { border-top: 3px solid var(--amber); }
.print-run--partner { border-top: 3px solid var(--cyan); }
.print-run-body { padding: 0 1rem 1rem; }
.print-run-rules { width: 100%; border-collapse: collapse; font-size: 0.84rem; }
.print-run-rules th, .print-run-rules td { padding: 0.5rem 0.6rem; border-bottom: 1px solid var(--border-light); text-align: left; }
.print-run-rules th { font-family: var(--font-mono); font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--body-muted-light); }
.print-run-rule { font-family: var(--font-mono); font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.14rem 0.5rem; border-radius: 999px; font-weight: 700; }
.print-run-rule--keep { background: rgba(57, 168, 122, 0.16); color: var(--pass); }
.print-run-rule--rewrite { background: rgba(73, 111, 210, 0.16); color: var(--blue); }
.print-run-rule--summarize { background: rgba(210, 154, 53, 0.18); color: #8A5F14; }
.print-run-rule--hide { background: rgba(214, 81, 97, 0.14); color: var(--risk); }

@media (max-width: 700px) { .print-run-rules { display: block; overflow-x: auto; } }

/* ════════════════════════ REPORT REVIEW — APPROVAL MATRIX ════════════════════════ */
.approval-matrix { overflow-x: auto; }
.approval-matrix-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; min-width: 620px; }
.approval-matrix-table th, .approval-matrix-table td { padding: 0.6rem 0.65rem; border: 1px solid var(--border-light); text-align: center; }
.approval-matrix-table th { font-family: var(--font-mono); font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--body-muted-light); background: #EFE8DB; }
.approval-matrix-table th:first-child, .approval-matrix-table td:first-child { text-align: left; font-weight: 700; color: var(--title-light); background: #EFE8DB; }
.approval-cell { display: inline-block; font-family: var(--font-mono); font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.02em; padding: 0.22rem 0.5rem; border-radius: 999px; font-weight: 700; cursor: pointer; }
.approval-cell--not-required { background: rgba(211, 206, 194, 0.35); color: var(--body-muted-light); }
.approval-cell--waiting { background: rgba(210, 154, 53, 0.2); color: #8A5F14; }
.approval-cell--changes-requested { background: rgba(214, 81, 97, 0.16); color: var(--risk); }
.approval-cell--approved { background: rgba(57, 168, 122, 0.18); color: var(--pass); }
.approval-cell.is-inview { box-shadow: 0 0 0 2px var(--rose); }

/* ════════════════════════ DELIVERY — RELEASE MANIFEST ════════════════════════ */
.release-manifest { display: flex; flex-direction: column; gap: 1rem; }
.release-manifest-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
.release-manifest-table th, .release-manifest-table td { padding: 0.65rem 0.7rem; border-bottom: 1px solid var(--border-dark); text-align: left; }
.release-manifest-table th { font-family: var(--font-mono); font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--fg-muted); }
.release-manifest-row { cursor: pointer; }
.release-manifest-row:hover, .release-manifest-row.is-selected { background: rgba(38, 141, 160, 0.1); }
.release-status { font-family: var(--font-mono); font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.16rem 0.5rem; border-radius: 999px; font-weight: 700; }
.release-status--ready { background: rgba(38, 141, 160, 0.22); color: #7FD4E5; }
.release-status--draft { background: rgba(210, 154, 53, 0.24); color: #E8C069; }
.release-status--released { background: rgba(57, 168, 122, 0.22); color: #7FE0BB; }
.release-status--not-generated { background: rgba(211, 206, 194, 0.16); color: var(--fg-muted); }
.release-manifest-detail { padding: 1rem 1.1rem; border-radius: var(--radius-m); border: 1px solid var(--border-dark); background: rgba(41, 35, 43, 0.75); animation: fade-up 0.25s var(--ease-edition); }

@media (max-width: 900px) { .release-manifest-table { display: block; overflow-x: auto; } }

/* ════════════════════════ DEVELOPERS — REPORT NOTEBOOK ════════════════════════ */
.report-notebook { display: flex; flex-direction: column; gap: 0.9rem; }
.report-notebook-cell { border: 1px solid var(--border-dark); border-radius: var(--radius-m); background: rgba(41, 35, 43, 0.55); overflow: hidden; }
.report-notebook-cell-head { display: flex; align-items: center; justify-content: space-between; padding: 0.55rem 0.9rem; background: rgba(73, 58, 80, 0.4); }
.report-notebook-lang { font-family: var(--font-mono); font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--fg-muted); }
.report-notebook-cell .code-block { border: none; border-radius: 0; margin: 0; background: transparent; }
.report-notebook-cell--source { border-left: 3px solid var(--cyan); }
.report-notebook-cell--metric { border-left: 3px solid var(--blue); }
.report-notebook-cell--narrative { border-left: 3px solid var(--ai); }
.report-notebook-cell--disclosure { border-left: 3px solid var(--amber); }
.report-notebook-cell--render { border-left: 3px solid var(--pass); }
.report-notebook-cell.is-inview { box-shadow: 0 0 0 2px var(--rose) inset; }

.integrations-list { display: flex; flex-direction: column; gap: 0.6rem; }
.integrations-list .hub-row, .hub-row { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 1rem; padding: 0.75rem 1rem; border-radius: var(--radius-m); border: 1px solid var(--border); background: var(--surface); }
.hub-row span { color: var(--fg-muted); font-size: 0.84rem; }
.hub-row small { color: var(--fg-muted); font-family: var(--font-mono); font-size: 0.72rem; }

@media (max-width: 768px) { .hub-row { grid-template-columns: 1fr; } }

/* ════════════════════════ PRICING — PORTFOLIO DESK (no left void) ════════════════════════ */
.portfolio-desk {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.78fr);
  gap: 1.35rem;
  align-items: stretch;
}
.portfolio-board {
  min-width: 0;
  display: flex; flex-direction: column; gap: 0.85rem;
  padding: 1.1rem 1.15rem 1.2rem;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-l);
  background:
    linear-gradient(180deg, #FFFDF8 0%, #F7F2E8 100%);
  box-shadow: var(--shadow-soft);
}
.portfolio-board-head { padding-bottom: 0.55rem; border-bottom: 1px solid var(--border-light); }
.portfolio-board-lead { margin: 0.35rem 0 0; font-size: 0.9rem; color: var(--body-muted-light); max-width: 62ch; }
.portfolio-rows { display: flex; flex-direction: column; gap: 0.75rem; }
.portfolio-card {
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--border-light);
  border-left: 3px solid var(--rose);
  border-radius: var(--radius-m);
  background: var(--card-light);
}
.portfolio-card-head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 0.75rem;
  margin-bottom: 0.7rem;
}
.portfolio-card-type {
  flex: 1 1 auto; display: flex; flex-direction: column; gap: 0.25rem;
  font-size: 0.72rem; font-weight: 700; color: var(--body-muted-light);
  text-transform: uppercase; letter-spacing: 0.04em; font-family: var(--font-mono);
}
.portfolio-card-type input {
  font-family: var(--font-serif); font-size: 1.05rem; font-weight: 600;
  color: var(--title-light); text-transform: none; letter-spacing: 0;
  border: none; border-bottom: 1px solid var(--border-light); border-radius: 0;
  background: transparent; padding: 0.25rem 0;
}
.portfolio-card-load {
  flex: 0 0 auto; font-family: var(--font-mono); font-size: 0.72rem;
  color: var(--rose); white-space: nowrap;
}
.portfolio-card-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem 0.65rem;
}
.portfolio-card-fields label {
  display: flex; flex-direction: column; gap: 0.2rem;
  font-size: 0.68rem; font-family: var(--font-mono); text-transform: uppercase;
  letter-spacing: 0.03em; color: var(--body-muted-light); font-weight: 600;
}
.portfolio-card-fields input,
.portfolio-card-fields select {
  font-size: 0.86rem; padding: 0.45rem 0.5rem;
}
.portfolio-board-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.portfolio-load {
  margin-top: 0.25rem; padding: 0.85rem 0.95rem;
  border-radius: var(--radius-m);
  border: 1px dashed var(--border-light);
  background: rgba(188, 73, 107, 0.04);
}
.portfolio-load-track {
  height: 10px; border-radius: 999px; margin: 0.55rem 0 0.45rem;
  background: #E8E0D4; overflow: hidden;
}
.portfolio-load-fill {
  display: block; height: 100%; border-radius: inherit;
  background: linear-gradient(90deg, var(--cyan), var(--rose));
  transition: width 0.35s var(--ease-edition);
}
.portfolio-load-readout { margin: 0; font-size: 0.86rem; color: var(--body-muted-light); }

.portfolio-aside {
  min-width: 0;
  padding: 1.1rem 1.15rem;
  border-radius: var(--radius-l);
  border: 1px solid var(--border-light);
  background: var(--card-light);
  box-shadow: var(--shadow-soft);
  display: flex; flex-direction: column; gap: 0.85rem;
}
.portfolio-recommendation {
  padding: 0.95rem 1rem;
  border-radius: var(--radius-m);
  border: 1px solid var(--rose);
  background: rgba(188, 73, 107, 0.06);
}
.portfolio-recommendation h3 { margin: 0.25rem 0 0; font-size: 1.35rem; }
.plan-price { font-family: var(--font-serif); font-size: 2rem; color: var(--title-light); margin: 0.35rem 0 0.5rem; }
.plan-price span { font-family: var(--font-sans); font-size: 0.85rem; color: var(--body-muted-light); font-weight: 600; }
.plan-price--sm { font-size: 1.45rem; }

.portfolio-tiers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  margin-top: 1.35rem;
}
.portfolio-tier {
  padding: 1rem 1.05rem;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-m);
  background: var(--card-light);
}
.portfolio-tier h3 { margin: 0.25rem 0 0; font-size: 1.15rem; }
.portfolio-tier p:last-child { margin: 0; font-size: 0.86rem; color: var(--body-muted-light); }
.portfolio-tier.is-recommended {
  border-color: var(--rose);
  box-shadow: 0 0 0 2px rgba(188, 73, 107, 0.18);
  background: linear-gradient(180deg, rgba(188, 73, 107, 0.07), var(--card-light));
}

@media (max-width: 1024px) {
  .portfolio-desk { grid-template-columns: 1fr; }
  .portfolio-tiers { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .portfolio-card-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ————————————————— About — publisher colophon (not ScoreMeadow about-ground) ————————————————— */
.colophon {
  max-width: 920px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
  padding: 0.5rem 0 1rem;
}
.colophon-imprint {
  padding-bottom: 1.25rem;
  border-bottom: 2px solid var(--ink);
}
.colophon-motto {
  margin: 0.55rem 0 0.75rem;
  font-family: var(--font-serif);
  font-size: clamp(1.55rem, 3vw, 2.1rem);
  color: var(--title-light);
  line-height: 1.2;
  max-width: 22ch;
}
.colophon-deck { margin: 0 0 0.85rem; max-width: 62ch; font-size: 0.98rem; }
.colophon-mission {
  margin: 0;
  max-width: 62ch;
  padding: 0.75rem 0 0;
  border-top: 1px dashed var(--border-light);
  font-size: 0.92rem;
}
.colophon-spread {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border: 1px solid var(--border-light);
  background:
    linear-gradient(90deg, transparent calc(50% - 0.5px), var(--border-light) calc(50% - 0.5px), var(--border-light) calc(50% + 0.5px), transparent calc(50% + 0.5px)),
    linear-gradient(180deg, #F8F4EC, var(--card-light));
  box-shadow: var(--shadow-soft);
}
.colophon-leaf { padding: 1.25rem 1.35rem; min-height: 10rem; }
.colophon-leaf h2 { margin: 0.35rem 0 0.5rem; font-family: var(--font-serif); font-size: 1.35rem; }
.colophon-leaf p { margin: 0; font-size: 0.9rem; color: var(--body-light); }
.colophon-leaf--verso { border-right: 1px solid transparent; }
.colophon-lineage-block { display: flex; flex-direction: column; gap: 0.55rem; }
.colophon-lineage {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.colophon-lineage-item {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 0.85rem;
  align-items: start;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--border-light);
}
.colophon-lineage-item:last-child { border-bottom: none; padding-bottom: 0; }
.colophon-lineage-num {
  font-family: var(--font-serif);
  font-size: 1.4rem;
  color: var(--rose);
  line-height: 1;
}
.colophon-lineage-item b { display: block; font-size: 0.98rem; margin-bottom: 0.25rem; color: var(--title-light); }
.colophon-lineage-item p { margin: 0; font-size: 0.86rem; color: var(--body-muted-light); max-width: 58ch; }
.colophon-exclusion {
  padding: 1rem 1.15rem;
  border-left: 3px solid var(--risk);
  background: rgba(214, 81, 97, 0.05);
}
.colophon-exclusion p { margin: 0.35rem 0 0.55rem; font-size: 0.88rem; }
.colophon-strike {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem 1.25rem;
}
.colophon-strike li { font-size: 0.86rem; color: var(--body-muted-light); }
.colophon-strike s { text-decoration-color: var(--risk); text-decoration-thickness: 1.5px; }
.colophon-foot { margin: 0; font-size: 0.88rem; }
@media (max-width: 760px) {
  .colophon-spread { grid-template-columns: 1fr; }
  .colophon-leaf--verso { border-bottom: 1px solid var(--border-light); }
  .colophon-strike { grid-template-columns: 1fr; }
}

/* ————————————————— Security ————————————————— */
.boundary-groups { display: flex; flex-direction: column; gap: 1.25rem; }
.boundary-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin-top: 0.6rem; }
.boundary-card { padding: 0.85rem 0.95rem; border-radius: var(--radius-m); border: 1px solid var(--border); background: var(--surface); }
.boundary-card b { display: block; color: var(--title); font-size: 0.86rem; margin-bottom: 0.3rem; }
.boundary-card p { margin: 0; font-size: 0.84rem; color: var(--fg-muted); }
.security-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; font-size: 0.86rem; }

@media (max-width: 768px) { .boundary-card-grid { grid-template-columns: 1fr; } }

/* ————————————————— Contact ————————————————— */
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr); gap: 1.75rem; align-items: start; }
.contact-form { max-width: 46ch; }
.contact-aside { padding: 1rem 1.1rem; border-radius: var(--radius-l); border: 1px solid var(--border-light); background: var(--card-light); box-shadow: var(--shadow-soft); }

@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }

/* ————————————————— Help / changelog / status boilerplate ————————————————— */
.help-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.help-list li a { display: block; padding: 0.8rem 1rem; border-radius: var(--radius-m); border: 1px solid var(--border-light); background: var(--card-light); color: var(--title-light); text-decoration: none; font-weight: 600; }
.help-list li a:hover { border-color: var(--rose); color: var(--rose); }

.changelog { display: flex; flex-direction: column; gap: 1.1rem; }
.changelog article { padding-left: 1.1rem; border-left: 2px solid var(--border-light); }
.changelog time { font-family: var(--font-mono); font-size: 0.72rem; text-transform: uppercase; color: var(--body-muted-light); }
.changelog h3 { margin: 0.3rem 0 0.35rem; font-size: 1.05rem; }
.changelog p { margin: 0; }

.status-list { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.55rem; font-size: 0.9rem; }
.status-list i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 0.55rem; background: var(--border); }
.status-list i.ok { background: var(--pass); box-shadow: 0 0 0 3px rgba(57, 168, 122, 0.2); }

.legal-body { max-width: 68ch; color: var(--fg); }
.cookie-settings-panel { max-width: 46ch; margin-top: 1.5rem; padding: 1rem 1.1rem; border-radius: var(--radius-m); border: 1px solid var(--border-light); background: var(--card-light); }

/* ————————————————— Footer ————————————————— */
.site-footer {
  --fg: var(--body-dark); --fg-muted: var(--body-muted-dark);
  --title: var(--title-dark); --surface: var(--card-dark); --border: var(--border-dark);
  background: var(--ink);
  color: var(--fg);
  padding-top: 2rem;
}

.footer-grid { width: var(--container-wide); margin-inline: auto; padding: 0 1rem 1.75rem; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.footer-col h4 { color: var(--title); font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 0.75rem; font-family: var(--font-sans); }
.footer-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }
.footer-col a { color: var(--fg); text-decoration: none; font-size: 0.86rem; }
/* Dark surface: override the global a:hover { color: var(--ink) } which would
   otherwise print black ink on Edition Plum. Footer links go rose/amber instead. */
.footer-col a:hover, .footer-col a:focus-visible { color: var(--rose); }

.footer-bar { border-top: 1px solid var(--border); padding: 1.1rem 0; }
.footer-bar-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; }
.footer-bar-inner > span { font-size: 0.8rem; color: var(--fg-muted); }
.footer-tagline { flex: 1 1 320px; font-size: 0.8rem; color: var(--fg-muted); margin: 0; max-width: 56ch; }
.footer-legal { display: flex; gap: 1rem; flex-wrap: wrap; }
.footer-legal a { color: var(--fg-muted); text-decoration: none; font-size: 0.8rem; }
.footer-legal a:hover, .footer-legal a:focus-visible { color: var(--amber); }

@media (max-width: 900px) { .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; } }

/* ————————————————— Sign-in — Linen shell ————————————————— */

/* ═══════════ FOLIO MAST — printed running-head (NOT ScoreMeadow 3-col mast) ═══════════ */
.folio-mast {
  position: relative;
  padding: 1.35rem 0 1.5rem;
  background: var(--card-light);
  border-bottom: 1px solid var(--border-light);
}
.folio-mast-rule {
  height: 3px;
  background: linear-gradient(90deg, var(--rose) 0 28%, var(--cyan) 28% 52%, var(--amber) 52% 72%, var(--ink) 72% 100%);
  margin-bottom: 1.1rem;
}
.folio-mast--ink {
  --fg: var(--body-dark); --fg-muted: var(--body-muted-dark);
  --title: var(--title-dark); --surface: var(--card-dark); --border: var(--border-dark);
  background: var(--ink); color: var(--fg);
}
.folio-mast--ink .folio-mast-rule {
  background: linear-gradient(90deg, var(--rose), var(--cyan), var(--lime));
}
.folio-mast-inner { display: flex; flex-direction: column; gap: 0.65rem; }
.folio-mast-running {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  font-family: var(--font-mono); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--fg-muted); border-bottom: 1px solid var(--border); padding-bottom: 0.45rem;
}
.folio-mast-kicker { color: var(--rose); font-weight: 700; }
.folio-mast--ink .folio-mast-kicker { color: #E79DB4; }
.folio-mast-title-row {
  display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem;
}
.folio-mast-title-row h1 {
  margin: 0; flex: 1 1 280px; font-family: var(--font-serif);
  font-size: clamp(1.75rem, 3.4vw, 2.45rem); letter-spacing: -0.02em; max-width: 22ch;
}
.folio-mast-stamp { flex: 0 0 auto; }
.folio-mast-lead { margin: 0; max-width: 72ch; font-size: 1.02rem; color: var(--fg); }
.folio-mast-rail { margin-top: 0.35rem; }
.folio-mast-rail .side-panel {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem;
  padding: 0.65rem 0; border: none; border-top: 1px dashed var(--border);
  background: transparent; box-shadow: none;
}
.folio-mast-rail .side-panel-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.folio-mast-rail .mono-label { margin: 0; }

/* ═══════════ HOME — EDITION PRESS (balanced 2-col, always-filled stage) ═══════════ */
.edition-press {
  --fg: var(--body-light); --fg-muted: var(--body-muted-light);
  --title: var(--title-light); --surface: var(--card-light); --border: var(--border-light);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: calc(100vh - var(--site-top-h));
  display: flex; flex-direction: column;
  background:
    radial-gradient(ellipse 55% 50% at 88% 18%, rgba(188, 73, 107, 0.12), transparent 58%),
    radial-gradient(ellipse 45% 45% at 8% 85%, rgba(38, 141, 160, 0.1), transparent 55%),
    linear-gradient(165deg, #EDE6D9 0%, var(--paper) 42%, #F3EEE4 100%);
  border-bottom: 1px solid var(--border-light);
}
.edition-press-atmosphere {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
}
.edition-press-wash {
  position: absolute; border-radius: 50%; filter: blur(48px); opacity: 0.55;
  animation: press-drift 16s ease-in-out infinite alternate;
}
.edition-press-wash--rose {
  width: min(42vw, 420px); height: min(42vw, 420px);
  right: 8%; top: -6%;
  background: radial-gradient(circle, rgba(188, 73, 107, 0.28), transparent 70%);
}
.edition-press-wash--cyan {
  width: min(36vw, 340px); height: min(36vw, 340px);
  left: -4%; bottom: 6%;
  background: radial-gradient(circle, rgba(38, 141, 160, 0.2), transparent 70%);
  animation-delay: -6s;
}
.edition-press-rules {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, transparent 0, transparent calc(50% - 520px), rgba(33,24,39,0.06) calc(50% - 520px), rgba(33,24,39,0.06) calc(50% - 519px), transparent calc(50% - 519px)),
    linear-gradient(90deg, transparent 0, transparent calc(50% + 520px), rgba(188,73,107,0.08) calc(50% + 520px), rgba(188,73,107,0.08) calc(50% + 521px), transparent calc(50% + 521px));
}
@keyframes press-drift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(2%, 3%, 0) scale(1.05); }
}

.edition-press-frame {
  position: relative; z-index: 1;
  flex: 1 1 auto;
  width: var(--container-wide);
  margin: 0 auto;
  padding: 1.75rem 1rem 1rem;
  display: grid;
  grid-template-columns: minmax(280px, 0.92fr) minmax(340px, 1.15fr);
  gap: 1.5rem 2rem;
  align-items: stretch;
}
.edition-press-copy {
  display: flex; flex-direction: column; justify-content: center;
  padding: 0.5rem 0 0.75rem;
  min-width: 0;
}
.edition-press-brand { margin-bottom: 0.35rem; }
.edition-press-brand h1 {
  margin: 0; font-size: clamp(2.1rem, 3.6vw, 2.85rem); color: var(--title-light);
}
.edition-press-brand .logo-mark { color: var(--title-light); }
.edition-press-copy .mono-label { color: var(--body-muted-light); }
.edition-press-copy .brand-slogan-inline { margin: 0.4rem 0 0.35rem; color: var(--rose); }
.edition-press-copy .brand-concept-line { color: #8A6414; margin: 0 0 0.85rem; }
.edition-press-headline {
  margin: 0 0 0.65rem;
  max-width: 16ch;
  font-size: clamp(1.75rem, 3.2vw, 2.35rem);
  color: var(--title-light);
}
.edition-press-sub {
  margin: 0 0 1.15rem;
  max-width: 40ch;
  font-size: 0.98rem;
  color: var(--body-light);
}
.edition-press-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; }

.edition-press-stage {
  min-width: 0;
  display: flex; align-items: stretch;
}
.press-sheet {
  width: 100%;
  display: flex; flex-direction: column;
  background: var(--card-light);
  border: 1px solid var(--border-light);
  border-radius: 2px;
  box-shadow: 0 22px 48px rgba(33, 24, 39, 0.12);
  overflow: hidden;
  transition: box-shadow 0.35s var(--ease-edition), border-color 0.35s ease;
}
.edition-press[data-press-phase="flaws"] .press-sheet {
  border-color: rgba(210, 154, 53, 0.55);
  box-shadow: 0 22px 48px rgba(210, 154, 53, 0.12);
}
.edition-press[data-press-phase="ready"] .press-sheet {
  border-color: rgba(57, 168, 122, 0.55);
  box-shadow: 0 22px 48px rgba(57, 168, 122, 0.12);
}
.press-sheet-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.25rem 0.75rem;
  padding: 0.85rem 1.1rem;
  border-bottom: 2px solid var(--ink);
  background: linear-gradient(180deg, #F8F3EA, #FFFDF8);
}
.press-sheet-client {
  font-family: var(--font-serif); font-weight: 700; font-size: 1.15rem; color: var(--title-light);
}
.press-sheet-meta {
  grid-column: 1; font-family: var(--font-mono); font-size: 0.7rem;
  color: var(--body-muted-light); letter-spacing: 0.03em;
}
.press-sheet-stamp {
  grid-row: 1 / 3; align-self: center;
  font-family: var(--font-mono); font-size: 0.68rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.05em;
  padding: 0.35rem 0.55rem;
  border: 1px solid var(--border-light);
  color: var(--body-muted-light);
  background: #F3EEE4;
}
.edition-press[data-press-phase="flaws"] .press-sheet-stamp {
  color: #8A6414; border-color: var(--amber); background: rgba(210, 154, 53, 0.12);
}
.edition-press[data-press-phase="ready"] .press-sheet-stamp {
  color: #1F6B4A; border-color: var(--pass); background: rgba(57, 168, 122, 0.12);
}
.press-sheet-body {
  padding: 0.85rem 1.1rem 1.1rem;
  display: flex; flex-direction: column; gap: 0.65rem;
  flex: 1 1 auto;
}
.press-block {
  position: relative;
  padding: 0.55rem 0.65rem 0.55rem 2.4rem;
  border-top: 1px solid var(--border-light);
}
.press-block:first-child { border-top: none; }
.press-block-num {
  position: absolute; left: 0; top: 0.65rem;
  font-family: var(--font-mono); font-size: 0.68rem; font-weight: 700; color: var(--rose);
}
.press-block h3 { margin: 0 0 0.3rem; font-size: 1rem; }
.press-block p { margin: 0; font-size: 0.88rem; color: var(--body-light); }
.press-chart {
  display: flex; align-items: flex-end; gap: 0.35rem; height: 3.2rem; margin-top: 0.55rem;
}
.press-chart span {
  flex: 1; height: var(--h);
  background: linear-gradient(180deg, var(--cyan), #1A6A78);
  border-radius: 2px 2px 0 0; opacity: 0.85;
}
.press-note {
  display: none;
  margin-top: 0.45rem;
  padding: 0.45rem 0.55rem;
  border-left: 3px solid var(--amber);
  background: rgba(210, 154, 53, 0.1);
  font-size: 0.8rem;
}
.press-note b {
  display: block; font-family: var(--font-mono); font-size: 0.62rem;
  text-transform: uppercase; letter-spacing: 0.05em; color: #8A6414; margin-bottom: 0.15rem;
}
.press-note span { color: var(--body-light); }
.press-note--risk { border-left-color: var(--risk); background: rgba(214, 81, 97, 0.1); }
.press-note--risk b { color: #8A2434; }
.edition-press[data-press-phase="flaws"] .press-note,
.edition-press[data-press-phase="ready"] .press-note { display: block; animation: fade-up 0.3s var(--ease-edition); }
.edition-press[data-press-phase="flaws"] [data-press-line] {
  background: rgba(210, 154, 53, 0.12);
  outline: 1px solid rgba(210, 154, 53, 0.35);
  padding: 0.1rem 0.2rem;
}
.press-block--ready {
  display: none;
  background: rgba(57, 168, 122, 0.08);
  border-top-color: rgba(57, 168, 122, 0.35);
}
.edition-press[data-press-phase="ready"] .press-block--ready { display: block; }
.press-ready-badges {
  list-style: none; margin: 0.35rem 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.4rem;
}
.press-ready-badges li {
  padding: 0.4rem 0.5rem; border: 1px solid rgba(57, 168, 122, 0.35);
  border-radius: var(--radius-s); background: #FFFDF8; font-size: 0.8rem;
}
.press-ready-badges b { color: var(--pass); font-family: var(--font-mono); font-size: 0.72rem; text-transform: uppercase; }

.edition-press-rail {
  position: relative; z-index: 1;
  width: var(--container-wide);
  margin: 0 auto;
  padding: 0 1rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}
.edition-press-phase {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 0.65rem;
  align-items: center;
  text-align: left;
  padding: 0.75rem 0.9rem;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-m);
  background: rgba(255, 253, 248, 0.88);
  cursor: pointer;
  font-family: var(--font-sans);
  color: inherit;
  transition: border-color 0.2s ease, transform 0.2s var(--ease-edition), box-shadow 0.2s ease;
}
.edition-press-phase:hover { border-color: var(--rose); transform: translateY(-1px); }
.edition-press-phase.is-active {
  border-color: var(--rose);
  box-shadow: 0 0 0 2px rgba(188, 73, 107, 0.2), var(--shadow-soft);
  background: var(--card-light);
}
.edition-press-phase-num {
  grid-row: 1 / 3;
  font-family: var(--font-mono); font-weight: 700; font-size: 1.15rem; color: var(--rose);
}
.edition-press-phase-label { font-weight: 700; font-size: 0.9rem; color: var(--title-light); }
.edition-press-phase em {
  grid-column: 2; font-style: normal; font-size: 0.74rem; color: var(--body-muted-light);
}
.edition-press-hint {
  position: relative; z-index: 1;
  width: var(--container-wide);
  margin: 0.75rem auto 1.25rem;
  padding: 0 1rem;
}

.edition-status { background: #EFE9DE; border-bottom: 1px solid var(--border-light); }
.edition-badge-strip {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem; margin-top: 0.85rem;
}
.edition-badge {
  padding: 0.8rem 0.9rem; border-radius: var(--radius-m);
  border: 1px solid var(--border-light); border-top: 3px solid var(--border-light);
  background: var(--card-light); display: flex; flex-direction: column; gap: 0.2rem;
}
.edition-badge b { font-size: 0.92rem; color: var(--title-light); }
.edition-badge span { font-size: 0.76rem; color: var(--body-muted-light); }
.edition-badge--current { border-top-color: var(--cyan); }
.edition-badge--supported { border-top-color: var(--blue); }
.edition-badge--reviewed { border-top-color: var(--amber); }
.edition-badge--safe { border-top-color: var(--pass); }

.edition-slip { background: var(--ink); color: var(--body-dark); }
.edition-slip .mono-label { color: var(--body-muted-dark); }
.edition-slip-inner { border-left: 4px solid var(--rose); padding-left: 1.25rem; }
.edition-slip-text { max-width: 72ch; font-size: 1.05rem; }
.edition-slip .text-link { color: #E79DB4; }
.edition-slip .text-link:hover { color: #fff; }

.edition-ops { background: #F7F2E8; border-top: 1px solid var(--border-light); }
.edition-ops-toc {
  list-style: none; margin: 0.75rem 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0;
}
.edition-ops-toc li { border-top: 1px solid var(--border-light); }
.edition-ops-toc a {
  display: grid; grid-template-columns: 1.75rem 1fr auto; gap: 0.65rem; align-items: baseline;
  padding: 0.8rem 0.35rem 0.8rem 0; text-decoration: none; color: inherit;
}
.edition-ops-toc a:hover { color: var(--rose); }
.edition-ops-toc span { font-family: var(--font-mono); font-weight: 700; color: var(--rose); }
.edition-ops-toc b { font-family: var(--font-serif); font-size: 1.05rem; }
.edition-ops-toc em { font-style: normal; font-size: 0.8rem; color: var(--fg-muted); }

@media (max-width: 960px) {
  .edition-press { min-height: 0; }
  .edition-press-frame { grid-template-columns: 1fr; padding-top: 1.25rem; }
  .edition-press-rail { grid-template-columns: 1fr; }
  .edition-badge-strip { grid-template-columns: 1fr 1fr; }
  .edition-ops-toc { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .edition-badge-strip { grid-template-columns: 1fr; }
  .press-ready-badges { grid-template-columns: 1fr; }
}

/* ═══════════ AUTH FOLIO GATE — centered sheet + margin stamps (NOT dark-left split) ═══════════ */
.auth-body--folio {
  margin: 0;
  min-height: 100dvh;
  background:
    linear-gradient(90deg, transparent 0, transparent calc(50% - 420px), rgba(33,24,39,0.06) calc(50% - 420px), rgba(33,24,39,0.06) calc(50% - 419px), transparent calc(50% - 419px)),
    var(--paper);
}
.auth-folio {
  min-height: 100dvh;
  display: grid;
  grid-template-columns: 72px minmax(0, 520px) 200px;
  gap: 0 1.25rem;
  justify-content: center;
  align-items: stretch;
  padding: 1.5rem 1rem;
}
.auth-folio-margin {
  display: flex; flex-direction: column; gap: 1.1rem; padding-top: 3rem;
  font-family: var(--font-mono); font-size: 0.72rem; color: var(--body-muted-light);
}
.auth-folio-margin--left { align-items: center; border-right: 1px solid var(--border-light); }
.auth-folio-margin--right { border-left: 1px solid var(--border-light); padding-left: 0.85rem; }
.auth-folio-sheet {
  background: var(--card-light);
  border: 1px solid var(--border-light);
  box-shadow: 0 16px 42px rgba(33, 24, 39, 0.1);
  padding: 1.5rem 1.75rem 1.25rem;
  display: flex; flex-direction: column; gap: 1rem;
}
.auth-folio-head { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; border-bottom: 2px solid var(--ink); padding-bottom: 0.75rem; }
.auth-folio-brand { display: inline-flex; align-items: center; gap: 0.45rem; text-decoration: none; color: var(--title-light); font-family: var(--font-serif); font-weight: 700; }
.auth-folio-brand:hover { color: var(--rose); }
.auth-folio-preview {
  padding: 0.85rem 0.95rem; background: #F3EEE4; border: 1px dashed var(--border-light);
  font-size: 0.88rem; color: var(--body-light);
}
.auth-folio-preview-label { display: block; font-family: var(--font-mono); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--rose); margin-bottom: 0.35rem; }
.auth-folio-preview ul { margin: 0.45rem 0 0; padding-left: 1.1rem; }
.auth-folio-form h1 { margin: 0 0 0.35rem; font-family: var(--font-serif); font-size: 1.75rem; }
.auth-folio-form .lead { margin: 0 0 1rem; }
.auth-folio-form .auth-submit { width: 100%; }
.auth-folio-foot { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--border-light); font-size: 0.74rem; color: var(--body-muted-light); }
.auth-folio-stamp {
  padding: 0.85rem; border: 2px solid var(--rose); border-radius: 2px;
  background: rgba(188, 73, 107, 0.06); color: var(--title-light);
}
.auth-folio-stamp b { display: block; font-family: var(--font-serif); font-size: 1.05rem; margin: 0.25rem 0; }
.auth-folio-stamp em { display: block; font-style: normal; font-family: var(--font-mono); font-size: 0.72rem; color: var(--fg-muted); margin-bottom: 0.55rem; }
.auth-folio-stamp ul { list-style: none; margin: 0; padding: 0; font-size: 0.78rem; display: grid; gap: 0.25rem; }
@media (max-width: 900px) {
  .auth-folio { grid-template-columns: 1fr; max-width: 480px; margin-inline: auto; }
  .auth-folio-margin--left { flex-direction: row; border-right: none; border-bottom: 1px solid var(--border); padding: 0.5rem 0; justify-content: space-around; }
  .auth-folio-margin--right { border-left: none; padding-left: 0; }
}

.auth-alt { font-size: 0.85rem; color: var(--body-muted-light); margin-top: 0.9rem; }
.auth-alt--secondary { font-size: 0.8rem; }
.auth-alt a { color: var(--rose); text-decoration: none; font-weight: 600; }
.auth-alt a:hover, .auth-alt a:focus-visible { color: #A13B5C; text-decoration: underline; text-underline-offset: 0.18em; }
.linkish {
  background: none; border: none; padding: 0; cursor: pointer;
  font: inherit; color: var(--rose); font-weight: 600; text-decoration: underline; text-underline-offset: 0.18em;
}

/* ————————————————— Responsive: nav/header ————————————————— */
@media (max-width: 1024px) {
  .nav-main { display: none; }
  .header-inner { grid-template-columns: auto auto; }
  .nav-toggle { display: inline-flex; }
  .header-actions .btn-sm, .header-signin { display: none; }
}


.edition-drawer-body { display: grid; gap: 0.65rem; }
.edition-drawer-body b { display: block; color: var(--title); font-size: 0.82rem; }
.edition-drawer-body p { margin: 0.15rem 0 0; font-size: 0.86rem; color: var(--fg); }
.narrative-drill {
  margin-top: 0.65rem; padding: 0.75rem; border: 1px dashed var(--border);
  border-radius: var(--radius-m); background: rgba(188, 73, 107, 0.05);
}
.narrative-current { display: block; width: 100%; text-align: left; cursor: pointer;
  border: 1px solid var(--border); background: var(--surface); border-radius: var(--radius-m); padding: 0.65rem 0.75rem; color: inherit; font: inherit; }
.narrative-current:hover { border-color: var(--rose); }
.approval-review-pane {
  margin-top: 1rem; padding: 1rem; border: 1px solid var(--border);
  border-radius: var(--radius-l); background: var(--surface);
  border-left: 3px solid var(--amber);
}
.release-presend { margin-top: 0.85rem; padding-top: 0.75rem; border-top: 1px solid var(--border); }
.closing-window-source small { display: block; font-size: 0.76rem; color: var(--fg-muted); margin-top: 0.2rem; }
.print-run-rule--rewritten { color: var(--lime); }
.print-run-rule--summarized { color: var(--cyan); }
.print-run-rule--hidden { color: var(--risk); }
.is-ok { color: var(--pass) !important; }
