/* ═══════════════════════════════════════════════════════════════════
   WEAVER APP THEME — professional, assistant-first workspace.
   Loaded after styles.css and scoped to the logged-in app (#app-container),
   so the marketing landing page keeps its own styles.

   Palette    paper #F6F7F9 · surface #FFFFFF · ink #16203A · graphite #5B6474
              hairline #E3E6EB · ledger green #1E6A55 (the single accent)
   Type       Newsreader (greeting + page titles) · IBM Plex Sans (everything else)
   Principle  The composer is the one elevated object; everything else is flat,
              hairline-structured, and quiet.
   ═══════════════════════════════════════════════════════════════════ */

#app-container {
  --wv-paper: #F6F7F9;
  --wv-surface: #FFFFFF;
  --wv-sidebar: #EEF0F3;
  --wv-ink: #16203A;
  --wv-graphite: #5B6474;
  --wv-muted: #8A93A2;
  --wv-hair: #E3E6EB;
  --wv-hair-strong: #D3D8DF;
  --wv-ledger: #1E6A55;
  --wv-ledger-deep: #154C3D;
  --wv-ledger-tint: #E7F0EC;
  --wv-display: 'Newsreader', 'Iowan Old Style', Georgia, serif;
  --wv-ui: 'IBM Plex Sans', -apple-system, 'Segoe UI', sans-serif;

  /* Remap the legacy tokens so every existing screen picks up the theme */
  --navy: var(--wv-ink);
  --navy-deep: #0F1729;
  --blue: var(--wv-ledger);
  --blue-bright: #2E8A70;
  --blue-pale: #CFE2DA;
  --blue-ghost: var(--wv-ledger-tint);
  --slate: var(--wv-graphite);
  --slate-light: var(--wv-muted);
  --border: var(--wv-hair);
  --font: var(--wv-ui);
  --radius: 10px;
  --radius-sm: 8px;
  --shadow-sm: none;
  --shadow-md: 0 1px 2px rgba(22, 32, 58, 0.06);
  --shadow-lg: 0 8px 24px rgba(22, 32, 58, 0.08);
  --indigo: #3D4B6E;
  --accent-pale: #E8EBF1;
  --success: var(--wv-ledger);

  font-family: var(--wv-ui);
  color: var(--wv-ink);
  -webkit-font-smoothing: antialiased;
}
#app-container button, #app-container input, #app-container textarea, #app-container select { font-family: inherit; }
#app-container :focus-visible { outline: 2px solid var(--wv-ledger); outline-offset: 2px; }

/* ── Sidebar ─────────────────────────────────────────────────────── */
#app-container .sidebar { background: var(--wv-sidebar); border-right: 1px solid var(--wv-hair); padding: 18px 0 12px; }
#app-container .sb-brand { padding: 0 18px; margin-bottom: 18px; }
#app-container .sidebar-logo { filter: brightness(0) opacity(0.82); width: 24px; height: 24px; }
#app-container .sb-brand span { color: var(--wv-ink); font-family: var(--wv-display); font-weight: 500; font-size: 21px; letter-spacing: -0.01em; }
#app-container .sb-section { margin-bottom: 10px; padding: 0 10px; }
#app-container .wv-sb-secondary { margin-top: 6px; padding-top: 10px; border-top: 1px solid var(--wv-hair); margin-left: 10px; margin-right: 10px; padding-left: 0; padding-right: 0; }
#app-container .sb-label { display: none; }
#app-container .sb-item {
  color: var(--wv-graphite); font-size: 14px; font-weight: 450; padding: 7px 10px; border-left: 0;
  border-radius: 8px; gap: 10px; transition: background-color 0.12s, color 0.12s;
}
#app-container .sb-item:hover { color: var(--wv-ink); background: rgba(22, 32, 58, 0.05); }
#app-container .sb-item.active { color: var(--wv-ink); background: var(--wv-surface); box-shadow: 0 0 0 1px var(--wv-hair); font-weight: 500; }
#app-container .sb-item svg { opacity: 0.85; }

.wv-newchat {
  display: flex; align-items: center; gap: 8px; margin: 0 10px 12px; width: calc(100% - 20px);
  padding: 8px 10px; border: 1px solid var(--wv-hair-strong); border-radius: 8px; background: var(--wv-surface);
  color: var(--wv-ink); font-size: 14px; font-weight: 500; cursor: pointer; transition: border-color 0.12s;
}
.wv-newchat:hover { border-color: var(--wv-ink); }

.wv-threads { display: flex; flex-direction: column; margin: 2px 0 6px 28px; border-left: 1px solid var(--wv-hair-strong); }
.wv-threads:empty { display: none; }
.wv-thread-link {
  text-align: left; background: none; border: 0; padding: 4px 10px; font-size: 13px; color: var(--wv-graphite);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; border-radius: 6px; margin-left: 4px;
}
.wv-thread-link:hover { color: var(--wv-ink); background: rgba(22, 32, 58, 0.05); }
.wv-thread-link.is-current { color: var(--wv-ink); font-weight: 500; }
.wv-thread-more { color: var(--wv-ledger); }

.wv-workspace {
  margin: auto 10px 8px; display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 10px;
  cursor: pointer; border: 1px solid var(--wv-hair); background: var(--wv-surface);
}
.wv-workspace:hover { border-color: var(--wv-hair-strong); }
.wv-ws-mark {
  width: 30px; height: 30px; flex-shrink: 0; border-radius: 7px; background: var(--wv-ledger); color: #fff;
  display: flex; align-items: center; justify-content: center; font-family: var(--wv-display); font-size: 17px;
}
.wv-ws-text { min-width: 0; }
.wv-ws-name { font-size: 13px; font-weight: 600; color: var(--wv-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wv-ws-sub { font-size: 12px; color: var(--wv-graphite); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

#app-container .sb-bottom { margin-top: 0; border-top: 1px solid var(--wv-hair); padding: 10px 18px 4px; }
#app-container .sb-avatar { background: var(--wv-ink); width: 28px; height: 28px; font-size: 12px; font-weight: 600; }
#app-container .sb-name { color: var(--wv-ink); font-weight: 500; }
#app-container .sb-email { color: var(--wv-graphite); font-size: 12px; }

/* ── Main canvas, titles, cards, buttons ─────────────────────────── */
#app-container .main-content { background: var(--wv-paper); padding: 36px 48px; }
#app-container .top-bar h1 { font-family: var(--wv-display); font-weight: 400; font-size: 32px; letter-spacing: -0.01em; color: var(--wv-ink); }

#app-container .dash-stat-card,
#app-container .dash-card,
#app-container .settings-card,
#app-container .upload-box {
  background: var(--wv-surface); border: 1px solid var(--wv-hair); box-shadow: none; border-radius: 10px;
}
#app-container .dash-stat-card:hover { transform: none; box-shadow: none; border-color: var(--wv-hair-strong); }
#app-container .dash-stat-value { font-weight: 600; letter-spacing: -0.02em; color: var(--wv-ink); }
#club-content .settings-card-title { border-bottom: 0; padding-bottom: 0; }
#app-container .dash-card-title, #app-container .settings-card-title { font-weight: 600; font-size: 15px; color: var(--wv-ink); letter-spacing: 0; }

#app-container .tb-btn { font-weight: 500; border-radius: 8px; transition: background-color 0.12s, border-color 0.12s, color 0.12s; }
#app-container .tb-btn-primary { background: var(--wv-ink); color: #fff; }
#app-container .tb-btn-primary:hover { background: #24304F; transform: none; }
#app-container .tb-btn-outline { background: var(--wv-surface); color: var(--wv-ink); border: 1px solid var(--wv-hair-strong); }
#app-container .tb-btn-outline:hover { border-color: var(--wv-ink); }

.wv-pill { display: inline-block; vertical-align: 2px; margin-left: 6px; padding: 2px 8px; border-radius: 999px; font-size: 12px; font-weight: 500; background: #EEF0F3; color: var(--wv-graphite, #5B6474); }
.wv-pill-ok { background: var(--wv-ledger-tint, #E7F0EC); color: var(--wv-ledger-deep, #154C3D); }

/* ── Assistant ───────────────────────────────────────────────────── */
.wv-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wv-assist { max-width: 780px; margin: 0 auto; padding-top: 13vh; display: flex; flex-direction: column; min-height: calc(100vh - 72px); }
.wv-home { text-align: center; margin-bottom: 26px; }
.wv-greeting {
  font-family: var(--wv-display); font-weight: 400; font-size: 40px; line-height: 1.15; letter-spacing: -0.015em;
  color: var(--wv-ink); margin: 0 auto; max-width: 17em; text-wrap: balance;
}
.wv-home-sub { margin: 12px auto 0; max-width: 34em; color: var(--wv-graphite); font-size: 15px; line-height: 1.55; text-wrap: pretty; }

.wv-composer {
  background: var(--wv-surface); border: 1px solid var(--wv-hair-strong); border-radius: 14px;
  box-shadow: 0 1px 2px rgba(22, 32, 58, 0.05), 0 10px 30px rgba(22, 32, 58, 0.07);
  transition: border-color 0.15s;
}
.wv-composer:focus-within { border-color: var(--wv-ink); }
.wv-composer textarea {
  display: block; width: 100%; border: 0; resize: none; outline: none; background: transparent;
  padding: 16px 18px 6px; font-size: 15.5px; line-height: 1.55; color: var(--wv-ink); min-height: 78px; max-height: 260px;
}
.wv-composer textarea::placeholder { color: var(--wv-muted); }
.wv-composer textarea:focus-visible { outline: none; }
.wv-composer-bar { display: flex; align-items: center; justify-content: space-between; padding: 6px 8px 8px 10px; }
.wv-tools { display: flex; gap: 2px; flex-wrap: wrap; }
.wv-tool {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 9px; border: 0; background: none; border-radius: 7px;
  font-size: 13px; color: var(--wv-graphite); cursor: pointer; transition: background-color 0.12s, color 0.12s;
}
.wv-tool:hover { background: #F0F2F5; color: var(--wv-ink); }
.wv-tool.is-busy { opacity: 0.55; cursor: progress; }
.wv-send {
  width: 36px; height: 36px; border-radius: 10px; border: 0; background: var(--wv-ink); color: #fff;
  display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background-color 0.12s;
}
.wv-send:hover { background: #24304F; }
.wv-send:disabled { background: var(--wv-muted); cursor: progress; }

.wv-sources { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 14px; }
.wv-sources.is-collapsed { display: none; }
.wv-chip {
  display: inline-flex; align-items: center; gap: 7px; padding: 6px 12px; border-radius: 999px; cursor: pointer;
  border: 1px solid var(--wv-hair-strong); background: var(--wv-surface); color: var(--wv-graphite); font-size: 13px;
  transition: background-color 0.12s, border-color 0.12s, color 0.12s;
}
.wv-chip:hover { border-color: var(--wv-graphite); color: var(--wv-ink); }
.wv-chip-dot { width: 8px; height: 8px; border-radius: 50%; border: 1.5px solid var(--wv-muted); }
.wv-chip.is-on { background: var(--wv-ledger-tint); border-color: #B9D3C9; color: var(--wv-ledger-deep); }
.wv-chip.is-on .wv-chip-dot { background: var(--wv-ledger); border-color: var(--wv-ledger); }

.wv-workflows { margin-top: 44px; }
.wv-wf-title { font-family: var(--wv-ui); font-size: 13px; font-weight: 500; color: var(--wv-graphite); margin: 0 0 8px 2px; letter-spacing: 0; }
.wv-wf-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--wv-hair); }
.wv-wf-list > li { border-bottom: 1px solid var(--wv-hair); }
.wv-wf-list > li:nth-child(odd) { border-right: 1px solid var(--wv-hair); }
.wv-wf {
  display: flex; flex-direction: column; gap: 3px; width: 100%; height: 100%; text-align: left; background: none; border: 0;
  padding: 14px 16px; cursor: pointer; transition: background-color 0.12s;
}
.wv-wf:hover { background: var(--wv-surface); }
.wv-wf-name { font-size: 14px; font-weight: 500; color: var(--wv-ink); }
.wv-wf-desc { font-size: 13px; color: var(--wv-graphite); line-height: 1.45; }
.wv-linkbtn { background: none; border: 0; padding: 0; margin-top: 12px; color: var(--wv-ledger); font-size: 13px; font-weight: 500; cursor: pointer; }
.wv-linkbtn:hover { text-decoration: underline; text-underline-offset: 3px; }
.wv-muted { color: var(--wv-muted); font-size: 13px; }

/* Conversation layout */
.wv-thread { display: none; }
.wv-assist.has-thread { padding-top: 8px; }
.wv-assist.has-thread .wv-home, .wv-assist.has-thread .wv-workflows { display: none; }
.wv-assist.has-thread .wv-thread { display: flex; flex-direction: column; gap: 22px; flex: 1; padding-bottom: 20px; }
.wv-assist.has-thread .wv-composer { position: sticky; bottom: 14px; z-index: 5; }
.wv-assist.has-thread .wv-sources { margin-top: 10px; margin-bottom: 8px; }

.wv-msg { max-width: 100%; }
.wv-user { display: flex; justify-content: flex-end; }
.wv-bubble { background: #E8EBF0; color: var(--wv-ink); padding: 10px 14px; border-radius: 14px 14px 4px 14px; max-width: 78%; font-size: 15px; line-height: 1.5; }
.wv-ai-body { font-size: 15px; line-height: 1.65; color: var(--wv-ink); }
.wv-ai-body p { margin: 0 0 10px; }
.wv-ai-body ul, .wv-ai-body ol { margin: 0 0 10px; padding-left: 22px; }
.wv-ai-body li { margin-bottom: 4px; }
.wv-ai-body h4 { font-size: 15px; font-weight: 600; margin: 14px 0 6px; }
.wv-ai-body code { font-size: 13px; background: #EEF0F3; padding: 1px 5px; border-radius: 4px; }
.wv-ai-body a { color: var(--wv-ledger); }
.wv-table-wrap { overflow-x: auto; margin: 6px 0 12px; border: 1px solid var(--wv-hair); border-radius: 10px; background: var(--wv-surface); }
.wv-ai-body table { width: 100%; border-collapse: collapse; font-size: 14px; }
.wv-ai-body th { text-align: left; font-weight: 500; color: var(--wv-graphite); font-size: 13px; padding: 9px 12px; background: #FAFBFC; border-bottom: 1px solid var(--wv-hair); }
.wv-ai-body td { padding: 9px 12px; border-bottom: 1px solid var(--wv-hair); vertical-align: top; }
.wv-ai-body tr:last-child td { border-bottom: 0; }
.wv-error p { color: #8A2C1E; background: #FBF1EF; border: 1px solid #F0D5CF; padding: 10px 14px; border-radius: 10px; margin: 0; font-size: 14px; }

.wv-applied { margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: var(--wv-ledger-tint); }
.wv-applied-row { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; color: var(--wv-ledger-deep); line-height: 1.45; }
.wv-applied-row + .wv-applied-row { margin-top: 4px; }
.wv-applied-row svg { margin-top: 3px; flex-shrink: 0; }
.wv-applied-row.is-skipped { color: #7A5A12; }
.wv-applied .wv-linkbtn { margin-top: 8px; color: var(--wv-ledger-deep); }
.wv-applied .wv-muted { display: block; margin-top: 8px; }

.wv-draft { margin-top: 12px; background: var(--wv-surface); border: 1px solid var(--wv-hair); border-radius: 12px; overflow: hidden; }
.wv-draft-head { display: flex; gap: 8px; align-items: baseline; padding: 11px 14px 0; font-size: 13px; }
.wv-draft-kind { font-weight: 600; color: var(--wv-ink); }
.wv-draft-to { color: var(--wv-graphite); }
.wv-draft-subject { display: block; width: calc(100% - 28px); margin: 6px 14px 0; padding: 7px 0; border: 0; border-bottom: 1px solid var(--wv-hair); font-size: 14.5px; font-weight: 500; color: var(--wv-ink); background: transparent; }
.wv-draft-subject:focus { outline: none; border-bottom-color: var(--wv-ink); }
.wv-draft-body { display: block; width: 100%; border: 0; resize: vertical; padding: 10px 14px; font-size: 14.5px; line-height: 1.6; color: var(--wv-ink); background: transparent; }
.wv-draft-body:focus { outline: none; background: #FCFCFD; }
.wv-draft-actions { display: flex; gap: 8px; align-items: center; padding: 10px 14px; border-top: 1px solid var(--wv-hair); background: #FAFBFC; flex-wrap: wrap; }
.wv-btn {
  padding: 7px 12px; border-radius: 8px; border: 1px solid var(--wv-hair-strong); background: var(--wv-surface);
  color: var(--wv-ink); font-size: 13px; font-weight: 500; cursor: pointer; transition: border-color 0.12s, background-color 0.12s;
}
.wv-btn:hover { border-color: var(--wv-ink); }
.wv-btn-primary { background: var(--wv-ink); border-color: var(--wv-ink); color: #fff; }
.wv-btn-primary:hover { background: #24304F; }

.wv-pending { display: flex; align-items: center; gap: 10px; color: var(--wv-graphite); font-size: 14px; }
.wv-dots { display: inline-flex; gap: 4px; }
.wv-dots i { width: 6px; height: 6px; border-radius: 50%; background: var(--wv-ledger); opacity: 0.35; animation: wv-pulse 1.1s infinite ease-in-out; }
.wv-dots i:nth-child(2) { animation-delay: 0.15s; }
.wv-dots i:nth-child(3) { animation-delay: 0.3s; }
@keyframes wv-pulse { 0%, 100% { opacity: 0.25; } 50% { opacity: 1; } }

/* Library */
.wv-library { max-width: 880px; }
.wv-lib-group { margin-bottom: 30px; }
.wv-lib-group h2 { font-family: var(--wv-display); font-weight: 400; font-size: 22px; color: var(--wv-ink); margin: 0 0 10px; }
.wv-wf-row { display: flex; align-items: center; gap: 12px; padding-right: 14px; }
.wv-wf-row .wv-linkbtn { margin-top: 0; color: var(--wv-graphite); }
.wv-save-form { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.wv-save-form input { flex: 1; min-width: 180px; padding: 8px 10px; border: 1px solid var(--wv-hair-strong); border-radius: 8px; font-size: 14px; background: var(--wv-surface); }
.wv-hist { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--wv-hair); }
.wv-hist li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 2px; border-bottom: 1px solid var(--wv-hair); }
.wv-thread-open { background: none; border: 0; padding: 0; text-align: left; font-size: 14px; color: var(--wv-ink); cursor: pointer; }
.wv-thread-open:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ── Responsive / motion ─────────────────────────────────────────── */
@media (max-width: 768px) {
  #app-container .main-content { padding: 20px 16px 96px; }
  .wv-assist { padding-top: 5vh; min-height: auto; }
  .wv-greeting { font-size: 30px; }
  .wv-wf-list { grid-template-columns: 1fr; }
  .wv-wf-list > li:nth-child(odd) { border-right: 0; }
  .wv-assist.has-thread .wv-composer { bottom: 84px; }
  .wv-bubble { max-width: 90%; }
}
@media (prefers-reduced-motion: reduce) {
  .wv-dots i { animation: none; opacity: 0.7; }
  #app-container * { scroll-behavior: auto !important; }
}

/* ═══ Landing: B2B section + org pricing (global; uses landing tokens) ═══ */
.b2b { padding: 96px 24px; background: var(--white, #fff); border-top: 1px solid var(--border-landing); border-bottom: 1px solid var(--border-landing); }
.b2b-inner { max-width: 1040px; margin: 0 auto; }
.b2b h2 { font-family: var(--font-serif-landing); font-size: 38px; font-weight: 600; letter-spacing: -0.8px; line-height: 1.2; color: var(--charcoal); margin: 0 0 12px; max-width: 18em; }
.b2b-lede { font-size: 16px; line-height: 1.7; color: var(--text-secondary-landing); max-width: 36em; margin: 0 0 48px; }
.b2b-cols { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--border-landing); }
.b2b-col { padding: 32px 40px 8px 0; }
.b2b-col + .b2b-col { padding-left: 40px; border-left: 1px solid var(--border-landing); }
.b2b-col h3 { font-size: 20px; font-weight: 600; color: var(--charcoal); margin: 0 0 6px; }
.b2b-col > p { font-size: 15px; color: var(--text-secondary-landing); margin: 0 0 18px; line-height: 1.6; }
.b2b-col ul { list-style: none; padding: 0; margin: 0 0 22px; }
.b2b-col li { position: relative; padding: 9px 0 9px 22px; font-size: 15px; line-height: 1.55; color: var(--text-landing); border-bottom: 1px solid var(--border-landing); }
.b2b-col li::before { content: ''; position: absolute; left: 2px; top: 17px; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }
.b2b-link { display: inline-block; font-size: 15px; font-weight: 600; color: var(--indigo-deep); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.b2b-link:hover { color: var(--accent); }
.b2b-price-grid { grid-template-columns: repeat(2, 1fr); max-width: 720px; }
.b2b-price-grid .price-amount { font-size: 30px; }
.b2b-price-grid .price-period { letter-spacing: 0; font-size: 14px; font-weight: 500; margin-left: 4px; }
.pricing-sub { text-align: center; font-size: 15px; font-weight: 600; color: var(--text-secondary-landing); margin: 64px 0 20px; }
@media (max-width: 860px) {
  .b2b { padding: 64px 20px; }
  .b2b h2 { font-size: 30px; }
  .b2b-cols { grid-template-columns: 1fr; }
  .b2b-col, .b2b-col + .b2b-col { padding: 28px 0 8px; border-left: 0; }
  .b2b-price-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .landing-nav .nav-login, .landing-nav .nav-cta, .landing-nav .nav-brand span { white-space: nowrap; }
  .landing-nav .nav-login { padding: 8px 12px; }
  .landing-nav .nav-cta { padding: 8px 14px; }
  .landing-nav .nav-brand span { font-size: 16px; }
  .landing-nav { padding-left: 14px; padding-right: 14px; gap: 10px; }
  .landing-nav .landing-nav-right { gap: 8px; }
  .landing-nav .brand-logo { width: 26px; height: 26px; }
}

/* ═══════════════════════════════════════════════════════════════════
   WORKSPACE (workspace-ui.js) and shared components
   Type scale: 12 fine print · 13 secondary · 14 UI · 15 reading ·
               17 panel titles · 22 section titles · 32 page titles
   ═══════════════════════════════════════════════════════════════════ */
:root {
  --wv-paper: #F6F7F9; --wv-surface: #FFFFFF; --wv-ink: #16203A; --wv-graphite: #5B6474; --wv-muted: #8A93A2;
  --wv-hair: #E3E6EB; --wv-hair-strong: #D3D8DF; --wv-ledger: #1E6A55; --wv-ledger-deep: #154C3D; --wv-ledger-tint: #E7F0EC;
  --wv-amber: #7A5A12; --wv-amber-tint: #FBF5E6; --wv-red: #8A2C1E; --wv-red-tint: #FBF1EF;
  --wv-ui-font: 'IBM Plex Sans', -apple-system, 'Segoe UI', sans-serif;
  --wv-display-font: 'Newsreader', 'Iowan Old Style', Georgia, serif;
}

/* Page frame */
.wv-page-sub { margin: 4px 0 0; font-size: 14px; color: var(--wv-graphite); max-width: 40em; line-height: 1.5; }
.wv-page { max-width: 1120px; }
#app-container .top-bar { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.wv-loading { color: var(--wv-graphite); font-size: 14px; }
.wv-h3 { font-family: var(--wv-ui-font); font-size: 13px; font-weight: 500; color: var(--wv-graphite); margin: 28px 0 10px; letter-spacing: 0; }
.wv-h4 { font-size: 13px; font-weight: 600; color: var(--wv-ink); margin: 18px 0 8px; }
.wv-fine { font-size: 12px; line-height: 1.5; color: var(--wv-graphite); margin: 10px 0 0; }
.wv-label { font-size: 12px; color: var(--wv-graphite); }
.wv-optional { font-style: normal; font-weight: 400; color: var(--wv-muted); margin-left: 4px; }
.wv-warn-text { color: var(--wv-amber); }
.wv-cell-strong { font-weight: 500; color: var(--wv-ink); }
.wv-cell-sub { font-size: 12px; color: var(--wv-graphite); margin-top: 2px; }
.wv-inline { margin: 0 10px 0 0; }
.wv-danger-link { color: var(--wv-red) !important; }

/* Buttons */
.wv-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; font-family: var(--wv-ui-font); }
.wv-btn-sm { padding: 5px 10px; font-size: 12px; }
.wv-btn-quiet { border-color: transparent; background: transparent; color: var(--wv-graphite); }
.wv-btn-quiet:hover { border-color: var(--wv-hair-strong); color: var(--wv-ink); }
.wv-btn-danger { background: var(--wv-red); border-color: var(--wv-red); color: #fff; }
.wv-btn-danger:hover { background: #6E2318; border-color: #6E2318; }
.wv-btn.is-busy, .wv-btn:disabled { opacity: 0.6; cursor: progress; }

/* Notes and pills */
.wv-note { font-size: 13px; line-height: 1.5; color: var(--wv-ink); background: #F0F2F5; border: 1px solid var(--wv-hair); border-radius: 8px; padding: 10px 12px; margin: 0 0 16px; }
.wv-note a { color: var(--wv-ledger); }
.wv-note-warn { background: var(--wv-amber-tint); border-color: #EAD9AE; color: #4D3A0C; }
.wv-pill-warn { background: var(--wv-amber-tint); color: var(--wv-amber); }

/* Panels and forms */
.wv-panel { background: var(--wv-surface); border: 1px solid var(--wv-hair); border-radius: 10px; padding: 20px 22px; margin-bottom: 18px; }
.wv-narrow { max-width: 560px; }
.wv-panel-title { font-family: var(--wv-ui-font); font-size: 17px; font-weight: 600; color: var(--wv-ink); margin: 0 0 4px; }
.wv-panel-sub { font-size: 14px; color: var(--wv-graphite); margin: 0 0 16px; line-height: 1.5; }
.wv-form { display: flex; flex-direction: column; gap: 14px; }
.wv-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.wv-span-2 { grid-column: 1 / -1; }
.wv-form-actions { display: flex; gap: 8px; }
.wv-field { display: flex; flex-direction: column; gap: 6px; margin: 0; border: 0; padding: 0; min-width: 0; }
.wv-field > span, .wv-field > legend { font-size: 13px; font-weight: 500; color: var(--wv-ink); padding: 0; }
.wv-field input, .wv-field select, .wv-field textarea, .wv-inline-form input, .wv-search, .wv-select {
  font: inherit; font-size: 14px; color: var(--wv-ink); background: var(--wv-surface);
  border: 1px solid var(--wv-hair-strong); border-radius: 8px; padding: 8px 10px; width: 100%;
}
.wv-field textarea { resize: vertical; line-height: 1.5; }
.wv-field input:focus, .wv-field select:focus, .wv-field textarea:focus, .wv-inline-form input:focus, .wv-search:focus, .wv-select:focus { outline: 2px solid var(--wv-ledger); outline-offset: 0; border-color: transparent; }
.wv-inline-form { display: flex; gap: 8px; margin-top: 4px; }
.wv-inline-form input { flex: 1; }
.wv-check { display: flex; align-items: baseline; gap: 8px; font-size: 14px; color: var(--wv-ink); margin: 6px 0; line-height: 1.45; cursor: pointer; }
.wv-check input { accent-color: var(--wv-ledger); transform: translateY(1px); }
.wv-check .wv-muted { display: block; font-size: 12px; }
.wv-seg { display: inline-flex; gap: 16px; font-size: 14px; }
.wv-seg label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.wv-seg-quiet { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.wv-seg-quiet button { font: inherit; font-size: 13px; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--wv-hair-strong); background: var(--wv-surface); color: var(--wv-graphite); cursor: pointer; }
.wv-seg-quiet button.is-on { background: var(--wv-ink); border-color: var(--wv-ink); color: #fff; }
.wv-select { width: auto; font-size: 17px; font-weight: 600; padding: 6px 10px; }

/* Lists and progress */
.wv-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--wv-hair); }
.wv-list li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 2px; border-bottom: 1px solid var(--wv-hair); font-size: 14px; }
.wv-progress { display: inline-block; position: relative; width: 120px; height: 6px; border-radius: 999px; background: #E6E9EE; overflow: hidden; vertical-align: middle; }
.wv-progress > span { position: absolute; inset: 0 auto 0 0; background: var(--wv-ledger); border-radius: 999px; }
.wv-progress-lg { display: block; width: 100%; height: 8px; }
.wv-progress.is-high > span { background: var(--wv-amber); }

/* Empty states */
.wv-empty { background: var(--wv-surface); border: 1px dashed var(--wv-hair-strong); border-radius: 10px; padding: 28px; max-width: 620px; }
.wv-empty h2 { font-family: var(--wv-ui-font); font-size: 17px; font-weight: 600; color: var(--wv-ink); margin: 0 0 6px; }
.wv-empty p { font-size: 14px; color: var(--wv-graphite); margin: 0 0 14px; line-height: 1.55; }

/* Templates and presets */
.wv-preset-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--wv-hair); border-left: 1px solid var(--wv-hair); }
.wv-preset { display: flex; flex-direction: column; gap: 4px; text-align: left; padding: 16px 18px; background: var(--wv-surface); border: 0; border-right: 1px solid var(--wv-hair); border-bottom: 1px solid var(--wv-hair); cursor: pointer; font: inherit; transition: background-color 0.12s; }
.wv-preset:hover { background: #FAFBFC; }
.wv-preset-title { font-size: 14px; font-weight: 600; color: var(--wv-ink); }
.wv-preset-desc { font-size: 13px; color: var(--wv-graphite); line-height: 1.45; }

/* Tables */
.wv-table-scroll { overflow-x: auto; background: var(--wv-surface); border: 1px solid var(--wv-hair); border-radius: 10px; }
.wv-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.wv-table th { text-align: left; font-size: 12px; font-weight: 500; color: var(--wv-graphite); padding: 10px 12px; border-bottom: 1px solid var(--wv-hair); background: #FAFBFC; white-space: nowrap; }
.wv-table td, .wv-table tbody th { padding: 11px 12px; border-bottom: 1px solid var(--wv-hair); vertical-align: top; color: var(--wv-ink); text-align: left; font-weight: 400; }
.wv-table tbody tr:last-child td, .wv-table tbody tr:last-child th { border-bottom: 0; }
.wv-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.wv-table-click tbody tr { cursor: pointer; }
.wv-table-click tbody tr:hover td { background: #FAFBFC; }
.wv-table-click tbody tr:focus-visible { outline: 2px solid var(--wv-ledger); outline-offset: -2px; }
.wv-row-actions { white-space: nowrap; text-align: right; }
.wv-row-actions .wv-linkbtn { margin-top: 0; }
.wv-sort { font: inherit; font-size: 12px; font-weight: 500; color: var(--wv-graphite); background: none; border: 0; padding: 0; cursor: pointer; }
.wv-sort.is-on { color: var(--wv-ink); }
.wv-status { font-size: 12px; font-weight: 500; padding: 2px 8px; border-radius: 999px; background: #EEF0F3; color: var(--wv-graphite); white-space: nowrap; }
.wv-status-active { background: var(--wv-ledger-tint); color: var(--wv-ledger-deep); }
.wv-status-slowing { background: var(--wv-amber-tint); color: var(--wv-amber); }
.wv-status-inactive { background: var(--wv-red-tint); color: var(--wv-red); }

/* KPIs and tabs (console, outcomes) */
.wv-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border: 1px solid var(--wv-hair); border-radius: 10px; background: var(--wv-surface); margin-bottom: 18px; }
.wv-kpis-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 620px; }
.wv-kpi, .wv-stage { padding: 14px 16px; border-right: 1px solid var(--wv-hair); }
.wv-kpi:last-child, .wv-stage:last-child { border-right: 0; }
.wv-kpi-value { font-size: 22px; font-weight: 600; color: var(--wv-ink); letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.wv-kpi-label { font-size: 12px; color: var(--wv-graphite); margin-top: 2px; }
.wv-stage-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border: 1px solid var(--wv-hair); border-radius: 10px; background: var(--wv-surface); }
.wv-tabs { display: flex; align-items: center; gap: 4px; border-bottom: 1px solid var(--wv-hair); margin-bottom: 16px; }
.wv-tab { font: inherit; font-size: 14px; color: var(--wv-graphite); background: none; border: 0; border-bottom: 2px solid transparent; padding: 8px 10px; margin-bottom: -1px; cursor: pointer; }
.wv-tab:hover { color: var(--wv-ink); }
.wv-tab.is-on { color: var(--wv-ink); font-weight: 500; border-bottom-color: var(--wv-ink); }
.wv-tabs-spacer { flex: 1; }

/* Console header */
.wv-console-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.wv-console-name { font-family: var(--wv-ui-font); font-size: 22px; font-weight: 600; color: var(--wv-ink); margin: 0; }
.wv-console-meta { font-size: 13px; color: var(--wv-graphite); margin-top: 6px; }
.wv-console-meta .wv-pill { margin-left: 4px; }
.wv-console-code { display: flex; align-items: center; gap: 8px; background: var(--wv-surface); border: 1px solid var(--wv-hair); border-radius: 8px; padding: 8px 10px; }
.wv-console-code code { font-family: var(--wv-ui-font); font-size: 15px; font-weight: 600; letter-spacing: 0.06em; color: var(--wv-ink); background: none; }

/* Review builder and grid */
.wv-builder-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.wv-builder .wv-field { margin: 12px 0 4px; max-width: 520px; }
.wv-builder-cols { display: grid; grid-template-columns: 1.3fr 1fr; gap: 32px; margin-top: 8px; }
.wv-search { margin-bottom: 8px; }
.wv-pick { max-height: 320px; overflow-y: auto; border: 1px solid var(--wv-hair); border-radius: 8px; }
.wv-pick-row { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 8px 10px; border-bottom: 1px solid var(--wv-hair); font-size: 14px; cursor: pointer; }
.wv-pick-row:last-child { border-bottom: 0; }
.wv-pick-row input { accent-color: var(--wv-ledger); }
.wv-pick-row .wv-muted { font-size: 12px; text-align: right; }
.wv-custom-col { margin-top: 14px; font-size: 14px; }
.wv-custom-col summary { cursor: pointer; color: var(--wv-ledger); font-weight: 500; font-size: 13px; }
.wv-builder-foot { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--wv-hair); }
.wv-review-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.wv-review-title { font-family: var(--wv-ui-font); font-size: 22px; font-weight: 600; color: var(--wv-ink); margin: 0; }
.wv-review-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.wv-running { font-size: 13px; color: var(--wv-ledger-deep); background: var(--wv-ledger-tint); border-radius: 8px; padding: 8px 12px; margin: 0 0 12px; }
.wv-review-scroll { max-height: 70vh; }
.wv-review-table thead th { position: sticky; top: 0; z-index: 2; }
.wv-review-table td { min-width: 200px; max-width: 320px; line-height: 1.45; }
.wv-review-table .wv-sticky { position: sticky; left: 0; z-index: 1; background: var(--wv-surface); min-width: 170px; box-shadow: 1px 0 0 var(--wv-hair); }
.wv-review-table thead .wv-sticky { z-index: 3; background: #FAFBFC; }
.wv-contact-link { font: inherit; font-weight: 500; color: var(--wv-ink); background: none; border: 0; padding: 0; text-align: left; cursor: pointer; }
.wv-contact-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.wv-cite { font-size: 12px; color: var(--wv-muted); margin-top: 4px; }
.wv-cell-empty { color: var(--wv-muted); font-size: 13px; }
.wv-cell-weak { color: var(--wv-graphite); }
.wv-ai-mark { font-size: 10px; font-weight: 600; color: var(--wv-ledger-deep); background: var(--wv-ledger-tint); border-radius: 4px; padding: 1px 4px; margin-left: 6px; vertical-align: 1px; }

/* Documents */
.wv-doc-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.wv-doc-bar .wv-linkbtn { margin-top: 0; }
.wv-doc-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.wv-doc { background: var(--wv-surface); border: 1px solid var(--wv-hair); border-radius: 10px; padding: 36px 44px; max-width: 760px; }
.wv-doc-kind { font-size: 12px; color: var(--wv-graphite); margin-bottom: 8px; }
.wv-doc-title { font-family: var(--wv-display-font); font-weight: 400; font-size: 28px; line-height: 1.2; color: var(--wv-ink); margin: 0 0 18px; }
.wv-doc-subject { font-size: 15px; color: var(--wv-ink); padding: 10px 0; border-top: 1px solid var(--wv-hair); border-bottom: 1px solid var(--wv-hair); margin-bottom: 16px; }
.wv-doc-body { font-size: 15px; line-height: 1.7; color: var(--wv-ink); }
.wv-doc-body h4 { font-size: 15px; font-weight: 600; margin: 20px 0 6px; }
.wv-doc-email { white-space: normal; }
.wv-doc-title-input { width: 100%; font-family: var(--wv-display-font); font-size: 26px; color: var(--wv-ink); border: 0; border-bottom: 1px solid var(--wv-hair-strong); padding: 4px 0; margin-bottom: 14px; background: transparent; }
.wv-doc-title-input:focus { outline: none; border-bottom-color: var(--wv-ink); }
.wv-doc-editor { width: 100%; min-height: 320px; font-family: var(--wv-ui-font); font-size: 15px; line-height: 1.65; color: var(--wv-ink); border: 1px solid var(--wv-hair-strong); border-radius: 8px; padding: 14px; resize: vertical; }

/* Checklists */
.wv-ck-list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--wv-hair); border-radius: 10px; background: var(--wv-surface); }
.wv-ck-list li + li { border-top: 1px solid var(--wv-hair); }
.wv-ck-open { display: grid; grid-template-columns: 1fr 140px 80px; gap: 16px; align-items: center; width: 100%; padding: 12px 16px; background: none; border: 0; font: inherit; font-size: 14px; text-align: left; cursor: pointer; }
.wv-ck-open:hover { background: #FAFBFC; }
.wv-ck-open .wv-progress { width: 100%; }
.wv-ck { max-width: 760px; }
.wv-ck-title { width: 100%; font-family: var(--wv-ui-font); font-size: 22px; font-weight: 600; color: var(--wv-ink); border: 0; border-bottom: 1px solid transparent; padding: 2px 0; background: transparent; }
.wv-ck-title:hover { border-bottom-color: var(--wv-hair); }
.wv-ck-title:focus { outline: none; border-bottom-color: var(--wv-ink); }
.wv-ck-progress { display: flex; align-items: center; gap: 12px; margin: 10px 0 6px; }
.wv-ck-progress .wv-progress { flex: 1; }
.wv-ck-progress .wv-muted { white-space: nowrap; }
.wv-ck-items { list-style: none; margin: 0; padding: 0; }
.wv-ck-items li { display: flex; align-items: flex-start; gap: 8px; padding: 7px 0; border-bottom: 1px solid #F0F2F5; }
.wv-ck-items label { flex: 1; display: flex; gap: 10px; align-items: baseline; font-size: 14px; line-height: 1.5; color: var(--wv-ink); cursor: pointer; }
.wv-ck-items input { accent-color: var(--wv-ledger); transform: translateY(2px); }
.wv-ck-items li.is-done label span { color: var(--wv-muted); text-decoration: line-through; text-decoration-color: var(--wv-hair-strong); }
.wv-ck-x { background: none; border: 0; color: var(--wv-muted); cursor: pointer; padding: 2px 4px; border-radius: 4px; opacity: 0; transition: opacity 0.12s; }
.wv-ck-items li:hover .wv-ck-x, .wv-ck-x:focus-visible { opacity: 1; }
.wv-ck-x:hover { color: var(--wv-red); }
#wv-ck-add { margin-top: 14px; }

/* Outcomes */
.wv-switch { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--wv-graphite); cursor: pointer; }
.wv-switch input { accent-color: var(--wv-ledger); }

/* Settings: plan */
.wv-plan-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding-bottom: 14px; border-bottom: 1px solid var(--wv-hair); margin-bottom: 14px; }
.wv-plan-name { font-size: 17px; font-weight: 600; color: var(--wv-ink); }
.wv-plan-actions { display: flex; gap: 8px; }
.wv-meter { margin-bottom: 14px; }
.wv-meter-top { display: flex; justify-content: space-between; font-size: 14px; color: var(--wv-ink); margin-bottom: 6px; }

/* Profile menu */
.wv-menu { min-width: 220px; }
.wv-menu-head { padding: 10px 12px; border-bottom: 1px solid var(--wv-hair); }
.wv-menu-email { font-size: 13px; font-weight: 500; color: var(--wv-ink); overflow: hidden; text-overflow: ellipsis; }
.wv-menu-plan { font-size: 12px; color: var(--wv-graphite); margin-top: 2px; }
.wv-menu-item { display: block; width: 100%; text-align: left; padding: 9px 12px; font: inherit; font-size: 14px; color: var(--wv-ink); background: none; border: 0; cursor: pointer; }
.wv-menu-item:hover { background: #F0F2F5; }

/* Plan picker modal */
.wv-plan-modal { max-width: 560px !important; font-family: var(--wv-ui-font); color: var(--wv-ink); }
.wv-plan-title { font-family: var(--wv-display-font) !important; font-weight: 400 !important; font-size: 28px !important; margin: 0 0 10px !important; color: var(--wv-ink); }
.wv-plan-features { list-style: none; padding: 0; margin: 0 0 18px; }
.wv-plan-features li { position: relative; padding: 5px 0 5px 18px; font-size: 14px; color: var(--wv-ink); }
.wv-plan-features li::before { content: ''; position: absolute; left: 2px; top: 13px; width: 6px; height: 6px; border-radius: 50%; background: var(--wv-ledger); }
.wv-plan-options { display: grid; gap: 8px; }
.wv-plan-option { display: grid; grid-template-columns: 1fr auto; grid-template-areas: 'name price' 'sub price'; gap: 2px 12px; align-items: center; text-align: left; padding: 14px 16px; border: 1px solid var(--wv-hair-strong); border-radius: 10px; background: var(--wv-surface); cursor: pointer; font: inherit; transition: border-color 0.12s; }
.wv-plan-option:hover { border-color: var(--wv-ink); }
.wv-plan-option.is-busy { opacity: 0.6; cursor: progress; }
.wv-plan-option-name { grid-area: name; font-size: 15px; font-weight: 600; color: var(--wv-ink); }
.wv-plan-option-sub { grid-area: sub; font-size: 13px; color: var(--wv-graphite); }
.wv-plan-option-price { grid-area: price; font-size: 18px; font-weight: 600; color: var(--wv-ink); font-variant-numeric: tabular-nums; }
.wv-plan-option-price span { font-size: 13px; font-weight: 400; color: var(--wv-graphite); }
.wv-plan-save { font-size: 12px; font-weight: 500; color: var(--wv-ledger-deep); background: var(--wv-ledger-tint); border-radius: 999px; padding: 2px 8px; margin-left: 8px; }

/* Toasts and confirm dialog (appended to <body>) */
.wv-toasts { position: fixed; right: 20px; bottom: 20px; z-index: 6000; display: flex; flex-direction: column; gap: 8px; max-width: min(420px, calc(100vw - 32px)); font-family: var(--wv-ui-font); }
.wv-toast { display: flex; align-items: flex-start; gap: 10px; padding: 11px 12px 11px 14px; border-radius: 10px; background: var(--wv-ink); color: #fff; font-size: 14px; line-height: 1.45; box-shadow: 0 8px 24px rgba(22, 32, 58, 0.18); }
.wv-toast span { flex: 1; }
.wv-toast-error { background: #FFFFFF; color: var(--wv-red); border: 1px solid #F0D5CF; }
.wv-toast-success { background: var(--wv-ledger-deep); }
.wv-toast-x { background: none; border: 0; color: inherit; opacity: 0.7; font-size: 18px; line-height: 1; cursor: pointer; padding: 0 2px; }
.wv-toast-x:hover { opacity: 1; }
.wv-dialog-backdrop { position: fixed; inset: 0; z-index: 6100; background: rgba(22, 32, 58, 0.36); display: flex; align-items: center; justify-content: center; padding: 16px; font-family: var(--wv-ui-font); }
.wv-dialog { background: #fff; border-radius: 12px; padding: 22px 24px 18px; max-width: 440px; width: 100%; box-shadow: 0 16px 48px rgba(22, 32, 58, 0.22); }
.wv-dialog h2 { font-family: var(--wv-ui-font); font-size: 17px; font-weight: 600; color: var(--wv-ink); margin: 0 0 8px; }
.wv-dialog p { font-size: 14px; color: var(--wv-graphite); line-height: 1.55; margin: 0 0 18px; }
.wv-dialog-actions { display: flex; justify-content: flex-end; gap: 8px; }

/* Assistant: allowance link inside an error */
.wv-error .wv-inline { margin: 0 0 0 6px; color: var(--wv-red); text-decoration: underline; }

/* Responsive */
@media (max-width: 1100px) {
  .wv-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wv-kpis .wv-kpi:nth-child(3) { border-right: 0; }
  .wv-kpis .wv-kpi:nth-child(-n+3) { border-bottom: 1px solid var(--wv-hair); }
}
@media (max-width: 768px) {
  .wv-preset-grid { grid-template-columns: 1fr; }
  .wv-builder-cols, .wv-form-grid { grid-template-columns: 1fr; }
  .wv-kpis, .wv-kpis-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wv-kpis .wv-kpi { border-bottom: 1px solid var(--wv-hair); }
  .wv-kpis .wv-kpi:nth-child(2n) { border-right: 0; }
  .wv-kpis .wv-kpi:nth-child(3) { border-right: 1px solid var(--wv-hair); }
  .wv-stage-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wv-doc { padding: 22px 18px; }
  .wv-ck-open { grid-template-columns: 1fr 70px; }
  .wv-ck-open .wv-progress { display: none; }
  .wv-tabs { overflow-x: auto; }
  .wv-tabs-spacer, #wv-club-report { display: none; }
  .wv-toasts { left: 16px; right: 16px; bottom: 88px; }
  .wv-ck-x { opacity: 1; }
}

/* Print: only the open document */
@media print {
  body.wv-printing-doc * { visibility: hidden !important; }
  body.wv-printing-doc #wv-doc-print-area, body.wv-printing-doc #wv-doc-print-area * { visibility: visible !important; }
  body.wv-printing-doc #wv-doc-print-area { position: absolute; left: 0; top: 0; border: 0; padding: 0; max-width: none; }
}

/* ═══ Landing: still product preview instead of decorative motion ═══ */
.hero-preview { margin: 0; width: 100%; max-width: 520px; background: #fff; border: 1px solid #E3E6EB; border-radius: 12px; box-shadow: 0 1px 2px rgba(22,32,58,0.05), 0 20px 50px rgba(22,32,58,0.10); overflow: hidden; font-family: 'IBM Plex Sans', -apple-system, 'Segoe UI', sans-serif; text-align: left; }
.hp-bar { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 14px 16px; border-bottom: 1px solid #E3E6EB; }
.hp-title { font-size: 14px; font-weight: 600; color: #16203A; }
.hp-meta { font-size: 12px; color: #5B6474; }
.hp-table { width: 100%; border-collapse: collapse; font-size: 13px; color: #16203A; }
.hp-table th { text-align: left; font-size: 12px; font-weight: 500; color: #5B6474; background: #FAFBFC; padding: 8px 12px; border-bottom: 1px solid #E3E6EB; }
.hp-table td { padding: 10px 12px; border-bottom: 1px solid #E3E6EB; vertical-align: top; line-height: 1.4; }
.hp-table td strong { display: block; font-weight: 500; }
.hp-table td span { display: block; font-size: 12px; color: #5B6474; margin-top: 2px; }
.hp-table td em { display: block; font-style: normal; font-size: 11.5px; color: #8A93A2; margin-top: 4px; }
.hp-foot { font-size: 12px; color: #5B6474; padding: 10px 16px; }
#landing-page .hero-pill .dot, #landing-page .net-ring, #landing-page .net-node, #landing-page .float-card,
#landing-page .research-quotes-container.auto-scrolling,
#landing-page .hero-pill, #landing-page .hero h1, #landing-page .hero-sub, #landing-page .hero-actions,
#landing-page .hero-assurance, #landing-page .hero-visual { animation: none !important; }
#landing-page .reveal { opacity: 1 !important; transform: none !important; }
#landing-page .price-features li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; opacity: 0.5; display: inline-block; vertical-align: middle; margin-right: 10px; }
@media (max-width: 900px) { .hero-preview { max-width: 100%; } .hp-table td:nth-child(2), .hp-table th:nth-child(2) { display: none; } }

/* ═══ Polish pass ═══ */
/* Row headers in tables use body size (buttons and th otherwise default smaller). */
.wv-table tbody th { font-size: inherit; white-space: normal; background: transparent; }
.wv-panel-title + .wv-form, .wv-panel-title + form { margin-top: 14px; }
/* Action bars line up with the content card beneath them. */
#documents .wv-doc-bar, #checklists .wv-doc-bar { max-width: 760px; }

/* My network */
.wv-net-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 4px 0 16px; }
.wv-net-search { position: relative; flex: 1 1 280px; display: flex; align-items: center; }
.wv-net-search svg { position: absolute; left: 11px; color: var(--wv-graphite); pointer-events: none; }
.wv-net-search input { width: 100%; height: 36px; padding: 0 12px 0 34px; border: 1px solid var(--wv-hair); border-radius: 8px; background: var(--wv-surface); font: inherit; font-size: 14px; color: var(--wv-ink); }
.wv-net-search input:focus { outline: 2px solid var(--wv-ledger-tint); border-color: var(--wv-ledger); }
.wv-check-inline { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--wv-ink); margin: 0; white-space: nowrap; }
.wv-net-table td { vertical-align: middle; }
.wv-net-table .wv-net-vip { width: 36px; padding-right: 0; }
.wv-icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border: 0; border-radius: 6px; background: none; color: var(--wv-graphite); cursor: pointer; }
.wv-icon-btn:hover { background: var(--wv-paper); color: var(--wv-ink); }
.wv-icon-btn.is-on { color: #B7791F; }
.wv-icon-danger:hover { color: #B42318; }
.wv-icon-btn:focus-visible { outline: 2px solid var(--wv-ledger); outline-offset: 1px; }
.wv-net-table .wv-row-actions { white-space: nowrap; text-align: right; }

/* Settings */
.settings-field > label { text-transform: none; letter-spacing: 0; font-weight: 500; color: var(--wv-ink); }
.wv-settings-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 0; border-top: 1px solid var(--wv-hair); }
.wv-settings-row:first-of-type { border-top: 0; padding-top: 0; }
.wv-settings-row .wv-muted { font-size: 13px; margin-top: 2px; }
.wv-settings-row .wv-btn { flex-shrink: 0; }
.settings-photo-actions { display: flex; gap: 8px; align-items: center; }
@media (max-width: 640px) {
  .wv-settings-row { flex-direction: column; align-items: flex-start; }
  .wv-net-toolbar .wv-check-inline { font-size: 13px; }
}
.wv-row-me td { background: var(--wv-ledger-tint); }
#club .wv-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 640px) { #club .wv-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
#landing-page .price-features li { align-items: flex-start; line-height: 1.45; }
.wv-net-toolbar .wv-select { height: 36px; font-size: 14px; font-weight: 400; padding: 0 30px 0 10px; }
.wv-followup-guidance { max-width: 760px; margin: 0 0 16px; color: var(--wv-graphite); }
.wv-followup-guidance h3 { display: none; }

/* Contact detail */
#app-container .contact-detail-info .info-item strong { text-transform: none; letter-spacing: 0; font-size: 12px; font-weight: 500; color: var(--wv-graphite); }
#app-container .contact-detail-info .email-value { font-family: inherit; font-size: 14px; color: var(--wv-ink); }
#app-container .contact-detail-info .info-item .priority-badge,
#app-container .contact-detail-info .info-item .days-badge { align-self: flex-start; margin-left: 0; text-transform: capitalize; }
#app-container .quick-actions .btn { background: var(--wv-surface); color: var(--wv-ink); border: 1px solid var(--wv-hair); font-weight: 500; }
#app-container .quick-actions .btn:hover { border-color: var(--wv-graphite); }

/* Mobile */
@media (max-width: 640px) {
  .wv-kpis.wv-kpis-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .wv-kpis-3 .wv-kpi-value { font-size: 20px; }
  #wv-oc-form .wv-check { flex-wrap: wrap; }
  #wv-oc-form .wv-check .wv-muted { flex-basis: 100%; margin-left: 24px; }
}
#app-container .contact-detail-info .days-badge, #app-container #contact-detail .days-badge { display: inline-block; width: auto; max-width: max-content; margin-left: 0; }
#app-container input:disabled { background: var(--wv-paper); color: var(--wv-graphite); cursor: not-allowed; }
#wv-security-card .wv-btn, #wv-pw-form .wv-btn { width: auto; align-self: flex-start; }
#app-container .results-count { color: var(--wv-graphite); }
#app-container .contact-detail-info .info-item .days-count { align-self: flex-start; margin-left: 0; font-weight: 600; }

/* ── First run: start from Weaver ───────────────────────────────── */
.wv-start { background: var(--wv-surface); border: 1px solid var(--wv-hair); border-radius: 14px; padding: 22px 24px 18px; margin: 0 0 22px; text-align: left; }
.wv-assist.has-thread .wv-start { display: none; }
.wv-start-title { font-family: var(--wv-display); font-weight: 400; font-size: 24px; margin: 0; color: var(--wv-ink); }
.wv-start-sub { margin: 6px 0 16px; color: var(--wv-graphite); font-size: 14.5px; line-height: 1.55; max-width: 40em; }
.wv-start-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; align-items: end; }
.wv-start-form .wv-start-why { grid-column: 1 / -1; }
.wv-start-form button[type=submit] { grid-column: 1 / -1; justify-self: start; }
.wv-start-next { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: baseline; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--wv-hair); font-size: 13.5px; color: var(--wv-graphite); }
.wv-draft-note { margin: 0; padding: 8px 14px 0; font-size: 12.5px; color: var(--wv-graphite); border-top: 1px solid var(--wv-hair); }
.wv-draft-note + .wv-draft-actions { border-top: 0; }
@media (max-width: 640px) { .wv-start-form { grid-template-columns: 1fr; } .wv-start { padding: 18px 16px 14px; } }

/* ── Library tabs ───────────────────────────────────────────────── */
.wv-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--wv-hair); margin: 0 0 22px; }
.wv-tab { appearance: none; background: none; border: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; padding: 9px 14px; font: 500 14px var(--wv-ui); color: var(--wv-graphite); cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.wv-tab:hover { color: var(--wv-ink); }
.wv-tab.is-active { color: var(--wv-ink); border-bottom-color: var(--wv-ink); }
.wv-tab-count { font-size: 12px; background: var(--wv-sidebar); color: var(--wv-graphite); border-radius: 999px; padding: 1px 7px; }
.wv-tabpanel { margin-bottom: 34px; }
.wv-custom-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.wv-custom-head p { margin: 0; }
.wv-wf-list.wv-wf-single { grid-template-columns: 1fr; }
.wv-wf-list.wv-wf-single > li { border-right: 0; }
.wv-wf-row .wv-wf { flex: 1; min-width: 0; }
.wv-prompt-editor { display: flex; flex-direction: column; gap: 14px; max-width: 640px; }
.wv-prompt-editor .wv-panel-title { margin: 0; }
.wv-pe-hint { margin: -6px 0 0; font-size: 13px; }
.wv-pe-actions { display: flex; gap: 8px; }
.wv-lib-history { padding-top: 22px; border-top: 1px solid var(--wv-hair); }
@media (max-width: 640px) { .wv-custom-head { flex-direction: column; align-items: flex-start; } }
